From ca00aa67635f2421a41e4afb9048376f149fb180 Mon Sep 17 00:00:00 2001 From: Developer Date: Thu, 28 May 2026 15:15:30 +0000 Subject: [PATCH] fix: strip hallucinated blocks in ReACT loop Signed-off-by: god032396-del --- .dockerignore | 23 + .env.example | 16 + .github/workflows/docker-image.yml | 49 + .gitignore | 60 + Dockerfile | 29 + LICENSE | 661 +++ README-ZH.md | 203 + README.md | 203 + backend/app/__init__.py | 80 + backend/app/api/__init__.py | 14 + backend/app/api/graph.py | 622 ++ backend/app/api/report.py | 1020 ++++ backend/app/api/simulation.py | 2716 +++++++++ backend/app/config.py | 75 + backend/app/models/__init__.py | 9 + backend/app/models/project.py | 305 + backend/app/models/task.py | 186 + backend/app/services/__init__.py | 73 + backend/app/services/graph_builder.py | 506 ++ .../app/services/oasis_profile_generator.py | 1205 ++++ backend/app/services/ontology_generator.py | 506 ++ backend/app/services/report_agent.py | 2584 +++++++++ .../services/simulation_config_generator.py | 991 ++++ backend/app/services/simulation_ipc.py | 394 ++ backend/app/services/simulation_manager.py | 529 ++ backend/app/services/simulation_runner.py | 1768 ++++++ backend/app/services/text_processor.py | 71 + backend/app/services/zep_entity_reader.py | 437 ++ .../app/services/zep_graph_memory_updater.py | 554 ++ backend/app/services/zep_tools.py | 1736 ++++++ backend/app/utils/__init__.py | 10 + backend/app/utils/file_parser.py | 203 + backend/app/utils/llm_client.py | 103 + backend/app/utils/locale.py | 69 + backend/app/utils/logger.py | 126 + backend/app/utils/retry.py | 238 + backend/app/utils/zep_paging.py | 143 + backend/pyproject.toml | 55 + backend/requirements.txt | 35 + backend/run.py | 50 + backend/scripts/action_logger.py | 305 + backend/scripts/run_parallel_simulation.py | 1699 ++++++ backend/scripts/run_reddit_simulation.py | 769 +++ backend/scripts/run_twitter_simulation.py | 780 +++ backend/scripts/test_profile_format.py | 166 + backend/uv.lock | 2789 +++++++++ docker-compose.yml | 14 + frontend/.gitignore | 24 + frontend/index.html | 18 + frontend/package-lock.json | 2185 +++++++ frontend/package.json | 22 + frontend/public/icon.png | Bin 0 -> 30341 bytes frontend/src/App.vue | 47 + frontend/src/api/graph.js | 70 + frontend/src/api/index.js | 69 + frontend/src/api/report.js | 51 + frontend/src/api/simulation.js | 187 + .../assets/logo/MiroFish_logo_compressed.jpeg | Bin 0 -> 180620 bytes .../src/assets/logo/MiroFish_logo_left.jpeg | Bin 0 -> 600901 bytes frontend/src/components/GraphPanel.vue | 1423 +++++ frontend/src/components/HistoryDatabase.vue | 1342 +++++ frontend/src/components/LanguageSwitcher.vue | 124 + frontend/src/components/Step1GraphBuild.vue | 700 +++ frontend/src/components/Step2EnvSetup.vue | 2605 +++++++++ frontend/src/components/Step3Simulation.vue | 1267 ++++ frontend/src/components/Step4Report.vue | 5162 +++++++++++++++++ frontend/src/components/Step5Interaction.vue | 2584 +++++++++ frontend/src/i18n/index.js | 27 + frontend/src/main.js | 11 + frontend/src/router/index.js | 52 + frontend/src/store/pendingUpload.js | 33 + frontend/src/views/Home.vue | 953 +++ frontend/src/views/InteractionView.vue | 355 ++ frontend/src/views/MainView.vue | 545 ++ frontend/src/views/Process.vue | 2068 +++++++ frontend/src/views/ReportView.vue | 353 ++ frontend/src/views/SimulationRunView.vue | 452 ++ frontend/src/views/SimulationView.vue | 439 ++ frontend/vite.config.js | 25 + locales/en.json | 665 +++ locales/languages.json | 30 + locales/zh.json | 665 +++ package-lock.json | 333 ++ package.json | 21 + static/image/MiroFish_logo.jpeg | Bin 0 -> 3695828 bytes static/image/MiroFish_logo_compressed.jpeg | Bin 0 -> 180620 bytes static/image/QQ群.png | Bin 0 -> 120848 bytes static/image/Screenshot/运行截图1.png | Bin 0 -> 68746 bytes static/image/Screenshot/运行截图2.png | Bin 0 -> 251662 bytes static/image/Screenshot/运行截图3.png | Bin 0 -> 261109 bytes static/image/Screenshot/运行截图4.png | Bin 0 -> 79115 bytes static/image/Screenshot/运行截图5.png | Bin 0 -> 123071 bytes static/image/Screenshot/运行截图6.png | Bin 0 -> 460712 bytes static/image/shanda_logo.png | Bin 0 -> 29599 bytes static/image/武大模拟演示封面.png | Bin 0 -> 203822 bytes static/image/红楼梦模拟推演封面.jpg | Bin 0 -> 464493 bytes 96 files changed, 50086 insertions(+) create mode 100644 .dockerignore create mode 100644 .env.example create mode 100644 .github/workflows/docker-image.yml create mode 100644 .gitignore create mode 100644 Dockerfile create mode 100644 LICENSE create mode 100644 README-ZH.md create mode 100644 README.md create mode 100644 backend/app/__init__.py create mode 100644 backend/app/api/__init__.py create mode 100644 backend/app/api/graph.py create mode 100644 backend/app/api/report.py create mode 100644 backend/app/api/simulation.py create mode 100644 backend/app/config.py create mode 100644 backend/app/models/__init__.py create mode 100644 backend/app/models/project.py create mode 100644 backend/app/models/task.py create mode 100644 backend/app/services/__init__.py create mode 100644 backend/app/services/graph_builder.py create mode 100644 backend/app/services/oasis_profile_generator.py create mode 100644 backend/app/services/ontology_generator.py create mode 100644 backend/app/services/report_agent.py create mode 100644 backend/app/services/simulation_config_generator.py create mode 100644 backend/app/services/simulation_ipc.py create mode 100644 backend/app/services/simulation_manager.py create mode 100644 backend/app/services/simulation_runner.py create mode 100644 backend/app/services/text_processor.py create mode 100644 backend/app/services/zep_entity_reader.py create mode 100644 backend/app/services/zep_graph_memory_updater.py create mode 100644 backend/app/services/zep_tools.py create mode 100644 backend/app/utils/__init__.py create mode 100644 backend/app/utils/file_parser.py create mode 100644 backend/app/utils/llm_client.py create mode 100644 backend/app/utils/locale.py create mode 100644 backend/app/utils/logger.py create mode 100644 backend/app/utils/retry.py create mode 100644 backend/app/utils/zep_paging.py create mode 100644 backend/pyproject.toml create mode 100644 backend/requirements.txt create mode 100644 backend/run.py create mode 100644 backend/scripts/action_logger.py create mode 100644 backend/scripts/run_parallel_simulation.py create mode 100644 backend/scripts/run_reddit_simulation.py create mode 100644 backend/scripts/run_twitter_simulation.py create mode 100644 backend/scripts/test_profile_format.py create mode 100644 backend/uv.lock create mode 100644 docker-compose.yml create mode 100644 frontend/.gitignore create mode 100644 frontend/index.html create mode 100644 frontend/package-lock.json create mode 100644 frontend/package.json create mode 100644 frontend/public/icon.png create mode 100644 frontend/src/App.vue create mode 100644 frontend/src/api/graph.js create mode 100644 frontend/src/api/index.js create mode 100644 frontend/src/api/report.js create mode 100644 frontend/src/api/simulation.js create mode 100644 frontend/src/assets/logo/MiroFish_logo_compressed.jpeg create mode 100644 frontend/src/assets/logo/MiroFish_logo_left.jpeg create mode 100644 frontend/src/components/GraphPanel.vue create mode 100644 frontend/src/components/HistoryDatabase.vue create mode 100644 frontend/src/components/LanguageSwitcher.vue create mode 100644 frontend/src/components/Step1GraphBuild.vue create mode 100644 frontend/src/components/Step2EnvSetup.vue create mode 100644 frontend/src/components/Step3Simulation.vue create mode 100644 frontend/src/components/Step4Report.vue create mode 100644 frontend/src/components/Step5Interaction.vue create mode 100644 frontend/src/i18n/index.js create mode 100644 frontend/src/main.js create mode 100644 frontend/src/router/index.js create mode 100644 frontend/src/store/pendingUpload.js create mode 100644 frontend/src/views/Home.vue create mode 100644 frontend/src/views/InteractionView.vue create mode 100644 frontend/src/views/MainView.vue create mode 100644 frontend/src/views/Process.vue create mode 100644 frontend/src/views/ReportView.vue create mode 100644 frontend/src/views/SimulationRunView.vue create mode 100644 frontend/src/views/SimulationView.vue create mode 100644 frontend/vite.config.js create mode 100644 locales/en.json create mode 100644 locales/languages.json create mode 100644 locales/zh.json create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 static/image/MiroFish_logo.jpeg create mode 100644 static/image/MiroFish_logo_compressed.jpeg create mode 100644 static/image/QQ群.png create mode 100644 static/image/Screenshot/运行截图1.png create mode 100644 static/image/Screenshot/运行截图2.png create mode 100644 static/image/Screenshot/运行截图3.png create mode 100644 static/image/Screenshot/运行截图4.png create mode 100644 static/image/Screenshot/运行截图5.png create mode 100644 static/image/Screenshot/运行截图6.png create mode 100644 static/image/shanda_logo.png create mode 100644 static/image/武大模拟演示封面.png create mode 100644 static/image/红楼梦模拟推演封面.jpg diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..0e84a5ac --- /dev/null +++ b/.dockerignore @@ -0,0 +1,23 @@ +.git +.github +.gitignore +.cursor +.DS_Store +.env + +node_modules +frontend/node_modules +backend/.venv +.venv +.python-version + +__pycache__ +*.pyc +.pytest_cache +.mypy_cache +.ruff_cache + +frontend/dist +frontend/.vite + +backend/uploads diff --git a/.env.example b/.env.example new file mode 100644 index 00000000..78a3b72c --- /dev/null +++ b/.env.example @@ -0,0 +1,16 @@ +# LLM API配置(支持 OpenAI SDK 格式的任意 LLM API) +# 推荐使用阿里百炼平台qwen-plus模型:https://bailian.console.aliyun.com/ +# 注意消耗较大,可先进行小于40轮的模拟尝试 +LLM_API_KEY=your_api_key_here +LLM_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1 +LLM_MODEL_NAME=qwen-plus + +# ===== ZEP记忆图谱配置 ===== +# 每月免费额度即可支撑简单使用:https://app.getzep.com/ +ZEP_API_KEY=your_zep_api_key_here + +# ===== 加速 LLM 配置(可选)===== +# 注意如果不使用加速配置,env文件中就不要出现下面的配置项 +LLM_BOOST_API_KEY=your_api_key_here +LLM_BOOST_BASE_URL=your_base_url_here +LLM_BOOST_MODEL_NAME=your_model_name_here \ No newline at end of file diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml new file mode 100644 index 00000000..becbdec5 --- /dev/null +++ b/.github/workflows/docker-image.yml @@ -0,0 +1,49 @@ +name: Build and push Docker image + +on: + push: + tags: ["*"] + workflow_dispatch: + +permissions: + contents: read + packages: write + +jobs: + build-and-push: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Log in to GHCR + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract metadata + id: meta + uses: docker/metadata-action@v5 + with: + images: ghcr.io/${{ github.repository_owner }}/mirofish + tags: | + type=ref,event=tag + type=sha + type=raw,value=latest + + - name: Build and push + uses: docker/build-push-action@v5 + with: + context: . + file: ./Dockerfile + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..55d3ef19 --- /dev/null +++ b/.gitignore @@ -0,0 +1,60 @@ +# OS +.DS_Store +Thumbs.db + +# 环境变量(保护敏感信息) +.env +.env.local +.env.*.local +.env.development +.env.test +.env.production + +# Python +__pycache__/ +*.py[cod] +*$py.class +*.so +.Python +.venv/ +venv/ +ENV/ +.eggs/ +*.egg-info/ +dist/ +build/ + +# Node.js +node_modules/ +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# IDE +.vscode/ +.idea/ +*.swp +*.swo + +# 测试 +.pytest_cache/ +.coverage +htmlcov/ + +# Cursor +.cursor/ +.claude/ + +# 文档与测试程序 +mydoc/ +mytest/ + +# 日志文件 +backend/logs/ +*.log + +# 上传文件 +backend/uploads/ + +# Docker 数据 +data/ \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..e6564686 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,29 @@ +FROM python:3.11 + +# 安装 Node.js (满足 >=18)及必要工具 +RUN apt-get update \ + && apt-get install -y --no-install-recommends nodejs npm \ + && rm -rf /var/lib/apt/lists/* + +# 从 uv 官方镜像复制 uv +COPY --from=ghcr.io/astral-sh/uv:0.9.26 /uv /uvx /bin/ + +WORKDIR /app + +# 先复制依赖描述文件以利用缓存 +COPY package.json package-lock.json ./ +COPY frontend/package.json frontend/package-lock.json ./frontend/ +COPY backend/pyproject.toml backend/uv.lock ./backend/ + +# 安装依赖(Node + Python) +RUN npm ci \ + && npm ci --prefix frontend \ + && cd backend && uv sync --frozen + +# 复制项目源码 +COPY . . + +EXPOSE 3000 5001 + +# 同时启动前后端(开发模式) +CMD ["npm", "run", "dev"] \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..0ad25db4 --- /dev/null +++ b/LICENSE @@ -0,0 +1,661 @@ + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. + + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. + + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. + + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU Affero General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the +Program, your modified version must prominently offer all users +interacting with it remotely through a computer network (if your version +supports such interaction) an opportunity to receive the Corresponding +Source of your version by providing access to the Corresponding Source +from a network server at no charge, through some standard or customary +means of facilitating copying of software. This Corresponding Source +shall include the Corresponding Source for any work covered by version 3 +of the GNU General Public License that is incorporated pursuant to the +following paragraph. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the work with which it is combined will remain governed by version +3 of the GNU General Public License. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU Affero General Public License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU Affero General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU Affero General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU Affero General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If your software can interact with users remotely through a computer +network, you should also make sure that it provides a way for users to +get its source. For example, if your program is a web application, its +interface could display a "Source" link that leads users to an archive +of the code. There are many ways you could offer source, and different +solutions will be better for different programs; see section 13 for the +specific requirements. + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU AGPL, see +. diff --git a/README-ZH.md b/README-ZH.md new file mode 100644 index 00000000..13fbcb4d --- /dev/null +++ b/README-ZH.md @@ -0,0 +1,203 @@ +
+ +MiroFish Logo + +666ghj%2FMiroFish | Trendshift + +简洁通用的群体智能引擎,预测万物 +
+A Simple and Universal Swarm Intelligence Engine, Predicting Anything + +666ghj%2FMiroFish | Shanda + +[![GitHub Stars](https://img.shields.io/github/stars/666ghj/MiroFish?style=flat-square&color=DAA520)](https://github.com/666ghj/MiroFish/stargazers) +[![GitHub Watchers](https://img.shields.io/github/watchers/666ghj/MiroFish?style=flat-square)](https://github.com/666ghj/MiroFish/watchers) +[![GitHub Forks](https://img.shields.io/github/forks/666ghj/MiroFish?style=flat-square)](https://github.com/666ghj/MiroFish/network) +[![Docker](https://img.shields.io/badge/Docker-Build-2496ED?style=flat-square&logo=docker&logoColor=white)](https://hub.docker.com/) +[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/666ghj/MiroFish) + +[![Discord](https://img.shields.io/badge/Discord-Join-5865F2?style=flat-square&logo=discord&logoColor=white)](http://discord.gg/ePf5aPaHnA) +[![X](https://img.shields.io/badge/X-Follow-000000?style=flat-square&logo=x&logoColor=white)](https://x.com/mirofish_ai) +[![Instagram](https://img.shields.io/badge/Instagram-Follow-E4405F?style=flat-square&logo=instagram&logoColor=white)](https://www.instagram.com/mirofish_ai/) + +[English](./README.md) | [中文文档](./README-ZH.md) + +
+ +## ⚡ 项目概述 + +**MiroFish** 是一款基于多智能体技术的新一代 AI 预测引擎。通过提取现实世界的种子信息(如突发新闻、政策草案、金融信号),自动构建出高保真的平行数字世界。在此空间内,成千上万个具备独立人格、长期记忆与行为逻辑的智能体进行自由交互与社会演化。你可透过「上帝视角」动态注入变量,精准推演未来走向——**让未来在数字沙盘中预演,助决策在百战模拟后胜出**。 + +> 你只需:上传种子材料(数据分析报告或者有趣的小说故事),并用自然语言描述预测需求
+> MiroFish 将返回:一份详尽的预测报告,以及一个可深度交互的高保真数字世界 + +### 我们的愿景 + +MiroFish 致力于打造映射现实的群体智能镜像,通过捕捉个体互动引发的群体涌现,突破传统预测的局限: + +- **于宏观**:我们是决策者的预演实验室,让政策与公关在零风险中试错 +- **于微观**:我们是个人用户的创意沙盘,无论是推演小说结局还是探索脑洞,皆可有趣、好玩、触手可及 + +从严肃预测到趣味仿真,我们让每一个如果都能看见结果,让预测万物成为可能。 + +## 🌐 在线体验 + +欢迎访问在线 Demo 演示环境,体验我们为你准备的一次关于热点舆情事件的推演预测:[mirofish-live-demo](https://666ghj.github.io/mirofish-demo/) + +## 📸 系统截图 + +
+ + + + + + + + + + + + + +
截图1截图2
截图3截图4
截图5截图6
+
+ +## 🎬 演示视频 + +### 1. 武汉大学舆情推演预测 + MiroFish项目讲解 + +
+MiroFish Demo Video + +点击图片查看使用微舆BettaFish生成的《武大舆情报告》进行预测的完整演示视频 +
+ +### 2. 《红楼梦》失传结局推演预测 + +
+MiroFish Demo Video + +点击图片查看基于《红楼梦》前80回数十万字,MiroFish深度预测失传结局 +
+ +> **金融方向推演预测**、**时政要闻推演预测**等示例陆续更新中... + +## 🔄 工作流程 + +1. **图谱构建**:现实种子提取 & 个体与群体记忆注入 & GraphRAG构建 +2. **环境搭建**:实体关系抽取 & 人设生成 & 环境配置Agent注入仿真参数 +3. **开始模拟**:双平台并行模拟 & 自动解析预测需求 & 动态更新时序记忆 +4. **报告生成**:ReportAgent拥有丰富的工具集与模拟后环境进行深度交互 +5. **深度互动**:与模拟世界中的任意一位进行对话 & 与ReportAgent进行对话 + +## 🚀 快速开始 + +### 一、源码部署(推荐) + +#### 前置要求 + +| 工具 | 版本要求 | 说明 | 安装检查 | +|------|---------|------|---------| +| **Node.js** | 18+ | 前端运行环境,包含 npm | `node -v` | +| **Python** | ≥3.11, ≤3.12 | 后端运行环境 | `python --version` | +| **uv** | 最新版 | Python 包管理器 | `uv --version` | + +#### 1. 配置环境变量 + +```bash +# 复制示例配置文件 +cp .env.example .env + +# 编辑 .env 文件,填入必要的 API 密钥 +``` + +**必需的环境变量:** + +```env +# LLM API配置(支持 OpenAI SDK 格式的任意 LLM API) +# 推荐使用阿里百炼平台qwen-plus模型:https://bailian.console.aliyun.com/ +# 注意消耗较大,可先进行小于40轮的模拟尝试 +LLM_API_KEY=your_api_key +LLM_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1 +LLM_MODEL_NAME=qwen-plus + +# Zep Cloud 配置 +# 每月免费额度即可支撑简单使用:https://app.getzep.com/ +ZEP_API_KEY=your_zep_api_key +``` + +#### 2. 安装依赖 + +```bash +# 一键安装所有依赖(根目录 + 前端 + 后端) +npm run setup:all +``` + +或者分步安装: + +```bash +# 安装 Node 依赖(根目录 + 前端) +npm run setup + +# 安装 Python 依赖(后端,自动创建虚拟环境) +npm run setup:backend +``` + +#### 3. 启动服务 + +```bash +# 同时启动前后端(在项目根目录执行) +npm run dev +``` + +**服务地址:** +- 前端:`http://localhost:3000` +- 后端 API:`http://localhost:5001` + +**单独启动:** + +```bash +npm run backend # 仅启动后端 +npm run frontend # 仅启动前端 +``` + +### 二、Docker 部署 + +```bash +# 1. 配置环境变量(同源码部署) +cp .env.example .env + +# 2. 拉取镜像并启动 +docker compose up -d +``` + +默认会读取根目录下的 `.env`,并映射端口 `3000(前端)/5001(后端)` + +> 在 `docker-compose.yml` 中已通过注释提供加速镜像地址,可按需替换 + +## 📬 更多交流 + +
+QQ交流群 +
+ +  + +MiroFish团队长期招募全职/实习,如果你对多Agent应用感兴趣,欢迎投递简历至:**mirofish@shanda.com** + +## 📄 致谢 + +**MiroFish 得到了盛大集团的战略支持和孵化!** + +MiroFish 的仿真引擎由 **[OASIS](https://github.com/camel-ai/oasis)** 驱动,我们衷心感谢 CAMEL-AI 团队的开源贡献! + +## 📈 项目统计 + + + + + + Star History Chart + + diff --git a/README.md b/README.md new file mode 100644 index 00000000..de082935 --- /dev/null +++ b/README.md @@ -0,0 +1,203 @@ +
+ +MiroFish Logo + +666ghj%2FMiroFish | Trendshift + +简洁通用的群体智能引擎,预测万物 +
+A Simple and Universal Swarm Intelligence Engine, Predicting Anything + +666ghj%2FMiroFish | Shanda + +[![GitHub Stars](https://img.shields.io/github/stars/666ghj/MiroFish?style=flat-square&color=DAA520)](https://github.com/666ghj/MiroFish/stargazers) +[![GitHub Watchers](https://img.shields.io/github/watchers/666ghj/MiroFish?style=flat-square)](https://github.com/666ghj/MiroFish/watchers) +[![GitHub Forks](https://img.shields.io/github/forks/666ghj/MiroFish?style=flat-square)](https://github.com/666ghj/MiroFish/network) +[![Docker](https://img.shields.io/badge/Docker-Build-2496ED?style=flat-square&logo=docker&logoColor=white)](https://hub.docker.com/) +[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/666ghj/MiroFish) + +[![Discord](https://img.shields.io/badge/Discord-Join-5865F2?style=flat-square&logo=discord&logoColor=white)](http://discord.gg/ePf5aPaHnA) +[![X](https://img.shields.io/badge/X-Follow-000000?style=flat-square&logo=x&logoColor=white)](https://x.com/mirofish_ai) +[![Instagram](https://img.shields.io/badge/Instagram-Follow-E4405F?style=flat-square&logo=instagram&logoColor=white)](https://www.instagram.com/mirofish_ai/) + +[English](./README.md) | [中文文档](./README-ZH.md) + +
+ +## ⚡ Overview + +**MiroFish** is a next-generation AI prediction engine powered by multi-agent technology. By extracting seed information from the real world (such as breaking news, policy drafts, or financial signals), it automatically constructs a high-fidelity parallel digital world. Within this space, thousands of intelligent agents with independent personalities, long-term memory, and behavioral logic freely interact and undergo social evolution. You can inject variables dynamically from a "God's-eye view" to precisely deduce future trajectories — **rehearse the future in a digital sandbox, and win decisions after countless simulations**. + +> You only need to: Upload seed materials (data analysis reports or interesting novel stories) and describe your prediction requirements in natural language
+> MiroFish will return: A detailed prediction report and a deeply interactive high-fidelity digital world + +### Our Vision + +MiroFish is dedicated to creating a swarm intelligence mirror that maps reality. By capturing the collective emergence triggered by individual interactions, we break through the limitations of traditional prediction: + +- **At the Macro Level**: We are a rehearsal laboratory for decision-makers, allowing policies and public relations to be tested at zero risk +- **At the Micro Level**: We are a creative sandbox for individual users — whether deducing novel endings or exploring imaginative scenarios, everything can be fun, playful, and accessible + +From serious predictions to playful simulations, we let every "what if" see its outcome, making it possible to predict anything. + +## 🌐 Live Demo + +Welcome to visit our online demo environment and experience a prediction simulation on trending public opinion events we've prepared for you: [mirofish-live-demo](https://666ghj.github.io/mirofish-demo/) + +## 📸 Screenshots + +
+ + + + + + + + + + + + + +
Screenshot 1Screenshot 2
Screenshot 3Screenshot 4
Screenshot 5Screenshot 6
+
+ +## 🎬 Demo Videos + +### 1. Wuhan University Public Opinion Simulation + MiroFish Project Introduction + +
+MiroFish Demo Video + +Click the image to watch the complete demo video for prediction using BettaFish-generated "Wuhan University Public Opinion Report" +
+ +### 2. Dream of the Red Chamber Lost Ending Simulation + +
+MiroFish Demo Video + +Click the image to watch MiroFish's deep prediction of the lost ending based on hundreds of thousands of words from the first 80 chapters of "Dream of the Red Chamber" +
+ +> **Financial Prediction**, **Political News Prediction** and more examples coming soon... + +## 🔄 Workflow + +1. **Graph Building**: Seed extraction & Individual/collective memory injection & GraphRAG construction +2. **Environment Setup**: Entity relationship extraction & Persona generation & Agent configuration injection +3. **Simulation**: Dual-platform parallel simulation & Auto-parse prediction requirements & Dynamic temporal memory updates +4. **Report Generation**: ReportAgent with rich toolset for deep interaction with post-simulation environment +5. **Deep Interaction**: Chat with any agent in the simulated world & Interact with ReportAgent + +## 🚀 Quick Start + +### Option 1: Source Code Deployment (Recommended) + +#### Prerequisites + +| Tool | Version | Description | Check Installation | +|------|---------|-------------|-------------------| +| **Node.js** | 18+ | Frontend runtime, includes npm | `node -v` | +| **Python** | ≥3.11, ≤3.12 | Backend runtime | `python --version` | +| **uv** | Latest | Python package manager | `uv --version` | + +#### 1. Configure Environment Variables + +```bash +# Copy the example configuration file +cp .env.example .env + +# Edit the .env file and fill in the required API keys +``` + +**Required Environment Variables:** + +```env +# LLM API Configuration (supports any LLM API with OpenAI SDK format) +# Recommended: Alibaba Qwen-plus model via Bailian Platform: https://bailian.console.aliyun.com/ +# High consumption, try simulations with fewer than 40 rounds first +LLM_API_KEY=your_api_key +LLM_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1 +LLM_MODEL_NAME=qwen-plus + +# Zep Cloud Configuration +# Free monthly quota is sufficient for simple usage: https://app.getzep.com/ +ZEP_API_KEY=your_zep_api_key +``` + +#### 2. Install Dependencies + +```bash +# One-click installation of all dependencies (root + frontend + backend) +npm run setup:all +``` + +Or install step by step: + +```bash +# Install Node dependencies (root + frontend) +npm run setup + +# Install Python dependencies (backend, auto-creates virtual environment) +npm run setup:backend +``` + +#### 3. Start Services + +```bash +# Start both frontend and backend (run from project root) +npm run dev +``` + +**Service URLs:** +- Frontend: `http://localhost:3000` +- Backend API: `http://localhost:5001` + +**Start Individually:** + +```bash +npm run backend # Start backend only +npm run frontend # Start frontend only +``` + +### Option 2: Docker Deployment + +```bash +# 1. Configure environment variables (same as source deployment) +cp .env.example .env + +# 2. Pull image and start +docker compose up -d +``` + +Reads `.env` from root directory by default, maps ports `3000 (frontend) / 5001 (backend)` + +> Mirror address for faster pulling is provided as comments in `docker-compose.yml`, replace if needed. + +## 📬 Join the Conversation + +
+QQ Group +
+ +  + +The MiroFish team is recruiting full-time/internship positions. If you're interested in multi-agent simulation and LLM applications, feel free to send your resume to: **mirofish@shanda.com** + +## 📄 Acknowledgments + +**MiroFish has received strategic support and incubation from Shanda Group!** + +MiroFish's simulation engine is powered by **[OASIS (Open Agent Social Interaction Simulations)](https://github.com/camel-ai/oasis)**, We sincerely thank the CAMEL-AI team for their open-source contributions! + +## 📈 Project Statistics + + + + + + Star History Chart + + \ No newline at end of file diff --git a/backend/app/__init__.py b/backend/app/__init__.py new file mode 100644 index 00000000..aba624bb --- /dev/null +++ b/backend/app/__init__.py @@ -0,0 +1,80 @@ +""" +MiroFish Backend - Flask应用工厂 +""" + +import os +import warnings + +# 抑制 multiprocessing resource_tracker 的警告(来自第三方库如 transformers) +# 需要在所有其他导入之前设置 +warnings.filterwarnings("ignore", message=".*resource_tracker.*") + +from flask import Flask, request +from flask_cors import CORS + +from .config import Config +from .utils.logger import setup_logger, get_logger + + +def create_app(config_class=Config): + """Flask应用工厂函数""" + app = Flask(__name__) + app.config.from_object(config_class) + + # 设置JSON编码:确保中文直接显示(而不是 \uXXXX 格式) + # Flask >= 2.3 使用 app.json.ensure_ascii,旧版本使用 JSON_AS_ASCII 配置 + if hasattr(app, 'json') and hasattr(app.json, 'ensure_ascii'): + app.json.ensure_ascii = False + + # 设置日志 + logger = setup_logger('mirofish') + + # 只在 reloader 子进程中打印启动信息(避免 debug 模式下打印两次) + is_reloader_process = os.environ.get('WERKZEUG_RUN_MAIN') == 'true' + debug_mode = app.config.get('DEBUG', False) + should_log_startup = not debug_mode or is_reloader_process + + if should_log_startup: + logger.info("=" * 50) + logger.info("MiroFish Backend 启动中...") + logger.info("=" * 50) + + # 启用CORS + CORS(app, resources={r"/api/*": {"origins": "*"}}) + + # 注册模拟进程清理函数(确保服务器关闭时终止所有模拟进程) + from .services.simulation_runner import SimulationRunner + SimulationRunner.register_cleanup() + if should_log_startup: + logger.info("已注册模拟进程清理函数") + + # 请求日志中间件 + @app.before_request + def log_request(): + logger = get_logger('mirofish.request') + logger.debug(f"请求: {request.method} {request.path}") + if request.content_type and 'json' in request.content_type: + logger.debug(f"请求体: {request.get_json(silent=True)}") + + @app.after_request + def log_response(response): + logger = get_logger('mirofish.request') + logger.debug(f"响应: {response.status_code}") + return response + + # 注册蓝图 + from .api import graph_bp, simulation_bp, report_bp + app.register_blueprint(graph_bp, url_prefix='/api/graph') + app.register_blueprint(simulation_bp, url_prefix='/api/simulation') + app.register_blueprint(report_bp, url_prefix='/api/report') + + # 健康检查 + @app.route('/health') + def health(): + return {'status': 'ok', 'service': 'MiroFish Backend'} + + if should_log_startup: + logger.info("MiroFish Backend 启动完成") + + return app + diff --git a/backend/app/api/__init__.py b/backend/app/api/__init__.py new file mode 100644 index 00000000..ffda743a --- /dev/null +++ b/backend/app/api/__init__.py @@ -0,0 +1,14 @@ +""" +API路由模块 +""" + +from flask import Blueprint + +graph_bp = Blueprint('graph', __name__) +simulation_bp = Blueprint('simulation', __name__) +report_bp = Blueprint('report', __name__) + +from . import graph # noqa: E402, F401 +from . import simulation # noqa: E402, F401 +from . import report # noqa: E402, F401 + diff --git a/backend/app/api/graph.py b/backend/app/api/graph.py new file mode 100644 index 00000000..759ff48b --- /dev/null +++ b/backend/app/api/graph.py @@ -0,0 +1,622 @@ +""" +图谱相关API路由 +采用项目上下文机制,服务端持久化状态 +""" + +import os +import traceback +import threading +from flask import request, jsonify + +from . import graph_bp +from ..config import Config +from ..services.ontology_generator import OntologyGenerator +from ..services.graph_builder import GraphBuilderService +from ..services.text_processor import TextProcessor +from ..utils.file_parser import FileParser +from ..utils.logger import get_logger +from ..utils.locale import t, get_locale, set_locale +from ..models.task import TaskManager, TaskStatus +from ..models.project import ProjectManager, ProjectStatus + +# 获取日志器 +logger = get_logger('mirofish.api') + + +def allowed_file(filename: str) -> bool: + """检查文件扩展名是否允许""" + if not filename or '.' not in filename: + return False + ext = os.path.splitext(filename)[1].lower().lstrip('.') + return ext in Config.ALLOWED_EXTENSIONS + + +# ============== 项目管理接口 ============== + +@graph_bp.route('/project/', methods=['GET']) +def get_project(project_id: str): + """ + 获取项目详情 + """ + project = ProjectManager.get_project(project_id) + + if not project: + return jsonify({ + "success": False, + "error": t('api.projectNotFound', id=project_id) + }), 404 + + return jsonify({ + "success": True, + "data": project.to_dict() + }) + + +@graph_bp.route('/project/list', methods=['GET']) +def list_projects(): + """ + 列出所有项目 + """ + limit = request.args.get('limit', 50, type=int) + projects = ProjectManager.list_projects(limit=limit) + + return jsonify({ + "success": True, + "data": [p.to_dict() for p in projects], + "count": len(projects) + }) + + +@graph_bp.route('/project/', methods=['DELETE']) +def delete_project(project_id: str): + """ + 删除项目 + """ + success = ProjectManager.delete_project(project_id) + + if not success: + return jsonify({ + "success": False, + "error": t('api.projectDeleteFailed', id=project_id) + }), 404 + + return jsonify({ + "success": True, + "message": t('api.projectDeleted', id=project_id) + }) + + +@graph_bp.route('/project//reset', methods=['POST']) +def reset_project(project_id: str): + """ + 重置项目状态(用于重新构建图谱) + """ + project = ProjectManager.get_project(project_id) + + if not project: + return jsonify({ + "success": False, + "error": t('api.projectNotFound', id=project_id) + }), 404 + + # 重置到本体已生成状态 + if project.ontology: + project.status = ProjectStatus.ONTOLOGY_GENERATED + else: + project.status = ProjectStatus.CREATED + + project.graph_id = None + project.graph_build_task_id = None + project.error = None + ProjectManager.save_project(project) + + return jsonify({ + "success": True, + "message": t('api.projectReset', id=project_id), + "data": project.to_dict() + }) + + +# ============== 接口1:上传文件并生成本体 ============== + +@graph_bp.route('/ontology/generate', methods=['POST']) +def generate_ontology(): + """ + 接口1:上传文件,分析生成本体定义 + + 请求方式:multipart/form-data + + 参数: + files: 上传的文件(PDF/MD/TXT),可多个 + simulation_requirement: 模拟需求描述(必填) + project_name: 项目名称(可选) + additional_context: 额外说明(可选) + + 返回: + { + "success": true, + "data": { + "project_id": "proj_xxxx", + "ontology": { + "entity_types": [...], + "edge_types": [...], + "analysis_summary": "..." + }, + "files": [...], + "total_text_length": 12345 + } + } + """ + try: + logger.info("=== 开始生成本体定义 ===") + + # 获取参数 + simulation_requirement = request.form.get('simulation_requirement', '') + project_name = request.form.get('project_name', 'Unnamed Project') + additional_context = request.form.get('additional_context', '') + + logger.debug(f"项目名称: {project_name}") + logger.debug(f"模拟需求: {simulation_requirement[:100]}...") + + if not simulation_requirement: + return jsonify({ + "success": False, + "error": t('api.requireSimulationRequirement') + }), 400 + + # 获取上传的文件 + uploaded_files = request.files.getlist('files') + if not uploaded_files or all(not f.filename for f in uploaded_files): + return jsonify({ + "success": False, + "error": t('api.requireFileUpload') + }), 400 + + # 创建项目 + project = ProjectManager.create_project(name=project_name) + project.simulation_requirement = simulation_requirement + logger.info(f"创建项目: {project.project_id}") + + # 保存文件并提取文本 + document_texts = [] + all_text = "" + + for file in uploaded_files: + if file and file.filename and allowed_file(file.filename): + # 保存文件到项目目录 + file_info = ProjectManager.save_file_to_project( + project.project_id, + file, + file.filename + ) + project.files.append({ + "filename": file_info["original_filename"], + "size": file_info["size"] + }) + + # 提取文本 + text = FileParser.extract_text(file_info["path"]) + text = TextProcessor.preprocess_text(text) + document_texts.append(text) + all_text += f"\n\n=== {file_info['original_filename']} ===\n{text}" + + if not document_texts: + ProjectManager.delete_project(project.project_id) + return jsonify({ + "success": False, + "error": t('api.noDocProcessed') + }), 400 + + # 保存提取的文本 + project.total_text_length = len(all_text) + ProjectManager.save_extracted_text(project.project_id, all_text) + logger.info(f"文本提取完成,共 {len(all_text)} 字符") + + # 生成本体 + logger.info("调用 LLM 生成本体定义...") + generator = OntologyGenerator() + ontology = generator.generate( + document_texts=document_texts, + simulation_requirement=simulation_requirement, + additional_context=additional_context if additional_context else None + ) + + # 保存本体到项目 + entity_count = len(ontology.get("entity_types", [])) + edge_count = len(ontology.get("edge_types", [])) + logger.info(f"本体生成完成: {entity_count} 个实体类型, {edge_count} 个关系类型") + + project.ontology = { + "entity_types": ontology.get("entity_types", []), + "edge_types": ontology.get("edge_types", []) + } + project.analysis_summary = ontology.get("analysis_summary", "") + project.status = ProjectStatus.ONTOLOGY_GENERATED + ProjectManager.save_project(project) + logger.info(f"=== 本体生成完成 === 项目ID: {project.project_id}") + + return jsonify({ + "success": True, + "data": { + "project_id": project.project_id, + "project_name": project.name, + "ontology": project.ontology, + "analysis_summary": project.analysis_summary, + "files": project.files, + "total_text_length": project.total_text_length + } + }) + + except Exception as e: + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +# ============== 接口2:构建图谱 ============== + +@graph_bp.route('/build', methods=['POST']) +def build_graph(): + """ + 接口2:根据project_id构建图谱 + + 请求(JSON): + { + "project_id": "proj_xxxx", // 必填,来自接口1 + "graph_name": "图谱名称", // 可选 + "chunk_size": 500, // 可选,默认500 + "chunk_overlap": 50 // 可选,默认50 + } + + 返回: + { + "success": true, + "data": { + "project_id": "proj_xxxx", + "task_id": "task_xxxx", + "message": "图谱构建任务已启动" + } + } + """ + try: + logger.info("=== 开始构建图谱 ===") + + # 检查配置 + errors = [] + if not Config.ZEP_API_KEY: + errors.append(t('api.zepApiKeyMissing')) + if errors: + logger.error(f"配置错误: {errors}") + return jsonify({ + "success": False, + "error": t('api.configError', details="; ".join(errors)) + }), 500 + + # 解析请求 + data = request.get_json() or {} + project_id = data.get('project_id') + logger.debug(f"请求参数: project_id={project_id}") + + if not project_id: + return jsonify({ + "success": False, + "error": t('api.requireProjectId') + }), 400 + + # 获取项目 + project = ProjectManager.get_project(project_id) + if not project: + return jsonify({ + "success": False, + "error": t('api.projectNotFound', id=project_id) + }), 404 + + # 检查项目状态 + force = data.get('force', False) # 强制重新构建 + + if project.status == ProjectStatus.CREATED: + return jsonify({ + "success": False, + "error": t('api.ontologyNotGenerated') + }), 400 + + if project.status == ProjectStatus.GRAPH_BUILDING and not force: + return jsonify({ + "success": False, + "error": t('api.graphBuilding'), + "task_id": project.graph_build_task_id + }), 400 + + # 如果强制重建,重置状态 + if force and project.status in [ProjectStatus.GRAPH_BUILDING, ProjectStatus.FAILED, ProjectStatus.GRAPH_COMPLETED]: + project.status = ProjectStatus.ONTOLOGY_GENERATED + project.graph_id = None + project.graph_build_task_id = None + project.error = None + + # 获取配置 + graph_name = data.get('graph_name', project.name or 'MiroFish Graph') + chunk_size = data.get('chunk_size', project.chunk_size or Config.DEFAULT_CHUNK_SIZE) + chunk_overlap = data.get('chunk_overlap', project.chunk_overlap or Config.DEFAULT_CHUNK_OVERLAP) + + # 更新项目配置 + project.chunk_size = chunk_size + project.chunk_overlap = chunk_overlap + + # 获取提取的文本 + text = ProjectManager.get_extracted_text(project_id) + if not text: + return jsonify({ + "success": False, + "error": t('api.textNotFound') + }), 400 + + # 获取本体 + ontology = project.ontology + if not ontology: + return jsonify({ + "success": False, + "error": t('api.ontologyNotFound') + }), 400 + + # 创建异步任务 + task_manager = TaskManager() + task_id = task_manager.create_task(f"构建图谱: {graph_name}") + logger.info(f"创建图谱构建任务: task_id={task_id}, project_id={project_id}") + + # 更新项目状态 + project.status = ProjectStatus.GRAPH_BUILDING + project.graph_build_task_id = task_id + ProjectManager.save_project(project) + + # Capture locale before spawning background thread + current_locale = get_locale() + + # 启动后台任务 + def build_task(): + set_locale(current_locale) + build_logger = get_logger('mirofish.build') + try: + build_logger.info(f"[{task_id}] 开始构建图谱...") + task_manager.update_task( + task_id, + status=TaskStatus.PROCESSING, + message=t('progress.initGraphService') + ) + + # 创建图谱构建服务 + builder = GraphBuilderService(api_key=Config.ZEP_API_KEY) + + # 分块 + task_manager.update_task( + task_id, + message=t('progress.textChunking'), + progress=5 + ) + chunks = TextProcessor.split_text( + text, + chunk_size=chunk_size, + overlap=chunk_overlap + ) + total_chunks = len(chunks) + + # 创建图谱 + task_manager.update_task( + task_id, + message=t('progress.creatingZepGraph'), + progress=10 + ) + graph_id = builder.create_graph(name=graph_name) + + # 更新项目的graph_id + project.graph_id = graph_id + ProjectManager.save_project(project) + + # 设置本体 + task_manager.update_task( + task_id, + message=t('progress.settingOntology'), + progress=15 + ) + builder.set_ontology(graph_id, ontology) + + # 添加文本(progress_callback 签名是 (msg, progress_ratio)) + def add_progress_callback(msg, progress_ratio): + progress = 15 + int(progress_ratio * 40) # 15% - 55% + task_manager.update_task( + task_id, + message=msg, + progress=progress + ) + + task_manager.update_task( + task_id, + message=t('progress.addingChunks', count=total_chunks), + progress=15 + ) + + episode_uuids = builder.add_text_batches( + graph_id, + chunks, + batch_size=3, + progress_callback=add_progress_callback + ) + + # 等待Zep处理完成(查询每个episode的processed状态) + task_manager.update_task( + task_id, + message=t('progress.waitingZepProcess'), + progress=55 + ) + + def wait_progress_callback(msg, progress_ratio): + progress = 55 + int(progress_ratio * 35) # 55% - 90% + task_manager.update_task( + task_id, + message=msg, + progress=progress + ) + + builder._wait_for_episodes(episode_uuids, wait_progress_callback) + + # 获取图谱数据 + task_manager.update_task( + task_id, + message=t('progress.fetchingGraphData'), + progress=95 + ) + graph_data = builder.get_graph_data(graph_id) + + # 更新项目状态 + project.status = ProjectStatus.GRAPH_COMPLETED + ProjectManager.save_project(project) + + node_count = graph_data.get("node_count", 0) + edge_count = graph_data.get("edge_count", 0) + build_logger.info(f"[{task_id}] 图谱构建完成: graph_id={graph_id}, 节点={node_count}, 边={edge_count}") + + # 完成 + task_manager.update_task( + task_id, + status=TaskStatus.COMPLETED, + message=t('progress.graphBuildComplete'), + progress=100, + result={ + "project_id": project_id, + "graph_id": graph_id, + "node_count": node_count, + "edge_count": edge_count, + "chunk_count": total_chunks + } + ) + + except Exception as e: + # 更新项目状态为失败 + build_logger.error(f"[{task_id}] 图谱构建失败: {str(e)}") + build_logger.debug(traceback.format_exc()) + + project.status = ProjectStatus.FAILED + project.error = str(e) + ProjectManager.save_project(project) + + task_manager.update_task( + task_id, + status=TaskStatus.FAILED, + message=t('progress.buildFailed', error=str(e)), + error=traceback.format_exc() + ) + + # 启动后台线程 + thread = threading.Thread(target=build_task, daemon=True) + thread.start() + + return jsonify({ + "success": True, + "data": { + "project_id": project_id, + "task_id": task_id, + "message": t('api.graphBuildStarted', taskId=task_id) + } + }) + + except Exception as e: + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +# ============== 任务查询接口 ============== + +@graph_bp.route('/task/', methods=['GET']) +def get_task(task_id: str): + """ + 查询任务状态 + """ + task = TaskManager().get_task(task_id) + + if not task: + return jsonify({ + "success": False, + "error": t('api.taskNotFound', id=task_id) + }), 404 + + return jsonify({ + "success": True, + "data": task.to_dict() + }) + + +@graph_bp.route('/tasks', methods=['GET']) +def list_tasks(): + """ + 列出所有任务 + """ + tasks = TaskManager().list_tasks() + + return jsonify({ + "success": True, + "data": [t.to_dict() for t in tasks], + "count": len(tasks) + }) + + +# ============== 图谱数据接口 ============== + +@graph_bp.route('/data/', methods=['GET']) +def get_graph_data(graph_id: str): + """ + 获取图谱数据(节点和边) + """ + try: + if not Config.ZEP_API_KEY: + return jsonify({ + "success": False, + "error": t('api.zepApiKeyMissing') + }), 500 + + builder = GraphBuilderService(api_key=Config.ZEP_API_KEY) + graph_data = builder.get_graph_data(graph_id) + + return jsonify({ + "success": True, + "data": graph_data + }) + + except Exception as e: + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +@graph_bp.route('/delete/', methods=['DELETE']) +def delete_graph(graph_id: str): + """ + 删除Zep图谱 + """ + try: + if not Config.ZEP_API_KEY: + return jsonify({ + "success": False, + "error": t('api.zepApiKeyMissing') + }), 500 + + builder = GraphBuilderService(api_key=Config.ZEP_API_KEY) + builder.delete_graph(graph_id) + + return jsonify({ + "success": True, + "message": t('api.graphDeleted', id=graph_id) + }) + + except Exception as e: + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 diff --git a/backend/app/api/report.py b/backend/app/api/report.py new file mode 100644 index 00000000..d7f2a4d0 --- /dev/null +++ b/backend/app/api/report.py @@ -0,0 +1,1020 @@ +""" +Report API路由 +提供模拟报告生成、获取、对话等接口 +""" + +import os +import traceback +import threading +from flask import request, jsonify, send_file + +from . import report_bp +from ..config import Config +from ..services.report_agent import ReportAgent, ReportManager, ReportStatus +from ..services.simulation_manager import SimulationManager +from ..models.project import ProjectManager +from ..models.task import TaskManager, TaskStatus +from ..utils.logger import get_logger +from ..utils.locale import t, get_locale, set_locale + +logger = get_logger('mirofish.api.report') + + +# ============== 报告生成接口 ============== + +@report_bp.route('/generate', methods=['POST']) +def generate_report(): + """ + 生成模拟分析报告(异步任务) + + 这是一个耗时操作,接口会立即返回task_id, + 使用 GET /api/report/generate/status 查询进度 + + 请求(JSON): + { + "simulation_id": "sim_xxxx", // 必填,模拟ID + "force_regenerate": false // 可选,强制重新生成 + } + + 返回: + { + "success": true, + "data": { + "simulation_id": "sim_xxxx", + "task_id": "task_xxxx", + "status": "generating", + "message": "报告生成任务已启动" + } + } + """ + try: + data = request.get_json() or {} + + simulation_id = data.get('simulation_id') + if not simulation_id: + return jsonify({ + "success": False, + "error": t('api.requireSimulationId') + }), 400 + + force_regenerate = data.get('force_regenerate', False) + + # 获取模拟信息 + manager = SimulationManager() + state = manager.get_simulation(simulation_id) + + if not state: + return jsonify({ + "success": False, + "error": t('api.simulationNotFound', id=simulation_id) + }), 404 + + # 检查是否已有报告 + if not force_regenerate: + existing_report = ReportManager.get_report_by_simulation(simulation_id) + if existing_report and existing_report.status == ReportStatus.COMPLETED: + return jsonify({ + "success": True, + "data": { + "simulation_id": simulation_id, + "report_id": existing_report.report_id, + "status": "completed", + "message": t('api.reportAlreadyExists'), + "already_generated": True + } + }) + + # 获取项目信息 + project = ProjectManager.get_project(state.project_id) + if not project: + return jsonify({ + "success": False, + "error": t('api.projectNotFound', id=state.project_id) + }), 404 + + graph_id = state.graph_id or project.graph_id + if not graph_id: + return jsonify({ + "success": False, + "error": t('api.missingGraphIdEnsure') + }), 400 + + simulation_requirement = project.simulation_requirement + if not simulation_requirement: + return jsonify({ + "success": False, + "error": t('api.missingSimRequirement') + }), 400 + + # 提前生成 report_id,以便立即返回给前端 + import uuid + report_id = f"report_{uuid.uuid4().hex[:12]}" + + # 创建异步任务 + task_manager = TaskManager() + task_id = task_manager.create_task( + task_type="report_generate", + metadata={ + "simulation_id": simulation_id, + "graph_id": graph_id, + "report_id": report_id + } + ) + + # Capture locale before spawning background thread + current_locale = get_locale() + + # 定义后台任务 + def run_generate(): + set_locale(current_locale) + try: + task_manager.update_task( + task_id, + status=TaskStatus.PROCESSING, + progress=0, + message=t('api.initReportAgent') + ) + + # 创建Report Agent + agent = ReportAgent( + graph_id=graph_id, + simulation_id=simulation_id, + simulation_requirement=simulation_requirement + ) + + # 进度回调 + def progress_callback(stage, progress, message): + task_manager.update_task( + task_id, + progress=progress, + message=f"[{stage}] {message}" + ) + + # 生成报告(传入预先生成的 report_id) + report = agent.generate_report( + progress_callback=progress_callback, + report_id=report_id + ) + + # 保存报告 + ReportManager.save_report(report) + + if report.status == ReportStatus.COMPLETED: + task_manager.complete_task( + task_id, + result={ + "report_id": report.report_id, + "simulation_id": simulation_id, + "status": "completed" + } + ) + else: + task_manager.fail_task(task_id, report.error or t('api.reportGenerateFailed')) + + except Exception as e: + logger.error(f"报告生成失败: {str(e)}") + task_manager.fail_task(task_id, str(e)) + + # 启动后台线程 + thread = threading.Thread(target=run_generate, daemon=True) + thread.start() + + return jsonify({ + "success": True, + "data": { + "simulation_id": simulation_id, + "report_id": report_id, + "task_id": task_id, + "status": "generating", + "message": t('api.reportGenerateStarted'), + "already_generated": False + } + }) + + except Exception as e: + logger.error(f"启动报告生成任务失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +@report_bp.route('/generate/status', methods=['POST']) +def get_generate_status(): + """ + 查询报告生成任务进度 + + 请求(JSON): + { + "task_id": "task_xxxx", // 可选,generate返回的task_id + "simulation_id": "sim_xxxx" // 可选,模拟ID + } + + 返回: + { + "success": true, + "data": { + "task_id": "task_xxxx", + "status": "processing|completed|failed", + "progress": 45, + "message": "..." + } + } + """ + try: + data = request.get_json() or {} + + task_id = data.get('task_id') + simulation_id = data.get('simulation_id') + + # 如果提供了simulation_id,先检查是否已有完成的报告 + if simulation_id: + existing_report = ReportManager.get_report_by_simulation(simulation_id) + if existing_report and existing_report.status == ReportStatus.COMPLETED: + return jsonify({ + "success": True, + "data": { + "simulation_id": simulation_id, + "report_id": existing_report.report_id, + "status": "completed", + "progress": 100, + "message": t('api.reportGenerated'), + "already_completed": True + } + }) + + if not task_id: + return jsonify({ + "success": False, + "error": t('api.requireTaskOrSimId') + }), 400 + + task_manager = TaskManager() + task = task_manager.get_task(task_id) + + if not task: + return jsonify({ + "success": False, + "error": t('api.taskNotFound', id=task_id) + }), 404 + + return jsonify({ + "success": True, + "data": task.to_dict() + }) + + except Exception as e: + logger.error(f"查询任务状态失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e) + }), 500 + + +# ============== 报告获取接口 ============== + +@report_bp.route('/', methods=['GET']) +def get_report(report_id: str): + """ + 获取报告详情 + + 返回: + { + "success": true, + "data": { + "report_id": "report_xxxx", + "simulation_id": "sim_xxxx", + "status": "completed", + "outline": {...}, + "markdown_content": "...", + "created_at": "...", + "completed_at": "..." + } + } + """ + try: + report = ReportManager.get_report(report_id) + + if not report: + return jsonify({ + "success": False, + "error": t('api.reportNotFound', id=report_id) + }), 404 + + return jsonify({ + "success": True, + "data": report.to_dict() + }) + + except Exception as e: + logger.error(f"获取报告失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +@report_bp.route('/by-simulation/', methods=['GET']) +def get_report_by_simulation(simulation_id: str): + """ + 根据模拟ID获取报告 + + 返回: + { + "success": true, + "data": { + "report_id": "report_xxxx", + ... + } + } + """ + try: + report = ReportManager.get_report_by_simulation(simulation_id) + + if not report: + return jsonify({ + "success": False, + "error": t('api.noReportForSim', id=simulation_id), + "has_report": False + }), 404 + + return jsonify({ + "success": True, + "data": report.to_dict(), + "has_report": True + }) + + except Exception as e: + logger.error(f"获取报告失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +@report_bp.route('/list', methods=['GET']) +def list_reports(): + """ + 列出所有报告 + + Query参数: + simulation_id: 按模拟ID过滤(可选) + limit: 返回数量限制(默认50) + + 返回: + { + "success": true, + "data": [...], + "count": 10 + } + """ + try: + simulation_id = request.args.get('simulation_id') + limit = request.args.get('limit', 50, type=int) + + reports = ReportManager.list_reports( + simulation_id=simulation_id, + limit=limit + ) + + return jsonify({ + "success": True, + "data": [r.to_dict() for r in reports], + "count": len(reports) + }) + + except Exception as e: + logger.error(f"列出报告失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +@report_bp.route('//download', methods=['GET']) +def download_report(report_id: str): + """ + 下载报告(Markdown格式) + + 返回Markdown文件 + """ + try: + report = ReportManager.get_report(report_id) + + if not report: + return jsonify({ + "success": False, + "error": t('api.reportNotFound', id=report_id) + }), 404 + + md_path = ReportManager._get_report_markdown_path(report_id) + + if not os.path.exists(md_path): + # 如果MD文件不存在,生成一个临时文件 + import tempfile + with tempfile.NamedTemporaryFile(mode='w', suffix='.md', delete=False) as f: + f.write(report.markdown_content) + temp_path = f.name + + return send_file( + temp_path, + as_attachment=True, + download_name=f"{report_id}.md" + ) + + return send_file( + md_path, + as_attachment=True, + download_name=f"{report_id}.md" + ) + + except Exception as e: + logger.error(f"下载报告失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +@report_bp.route('/', methods=['DELETE']) +def delete_report(report_id: str): + """删除报告""" + try: + success = ReportManager.delete_report(report_id) + + if not success: + return jsonify({ + "success": False, + "error": t('api.reportNotFound', id=report_id) + }), 404 + + return jsonify({ + "success": True, + "message": t('api.reportDeleted', id=report_id) + }) + + except Exception as e: + logger.error(f"删除报告失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +# ============== Report Agent对话接口 ============== + +@report_bp.route('/chat', methods=['POST']) +def chat_with_report_agent(): + """ + 与Report Agent对话 + + Report Agent可以在对话中自主调用检索工具来回答问题 + + 请求(JSON): + { + "simulation_id": "sim_xxxx", // 必填,模拟ID + "message": "请解释一下舆情走向", // 必填,用户消息 + "chat_history": [ // 可选,对话历史 + {"role": "user", "content": "..."}, + {"role": "assistant", "content": "..."} + ] + } + + 返回: + { + "success": true, + "data": { + "response": "Agent回复...", + "tool_calls": [调用的工具列表], + "sources": [信息来源] + } + } + """ + try: + data = request.get_json() or {} + + simulation_id = data.get('simulation_id') + message = data.get('message') + chat_history = data.get('chat_history', []) + + if not simulation_id: + return jsonify({ + "success": False, + "error": t('api.requireSimulationId') + }), 400 + + if not message: + return jsonify({ + "success": False, + "error": t('api.requireMessage') + }), 400 + + # 获取模拟和项目信息 + manager = SimulationManager() + state = manager.get_simulation(simulation_id) + + if not state: + return jsonify({ + "success": False, + "error": t('api.simulationNotFound', id=simulation_id) + }), 404 + + project = ProjectManager.get_project(state.project_id) + if not project: + return jsonify({ + "success": False, + "error": t('api.projectNotFound', id=state.project_id) + }), 404 + + graph_id = state.graph_id or project.graph_id + if not graph_id: + return jsonify({ + "success": False, + "error": t('api.missingGraphId') + }), 400 + + simulation_requirement = project.simulation_requirement or "" + + # 创建Agent并进行对话 + agent = ReportAgent( + graph_id=graph_id, + simulation_id=simulation_id, + simulation_requirement=simulation_requirement + ) + + result = agent.chat(message=message, chat_history=chat_history) + + return jsonify({ + "success": True, + "data": result + }) + + except Exception as e: + logger.error(f"对话失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +# ============== 报告进度与分章节接口 ============== + +@report_bp.route('//progress', methods=['GET']) +def get_report_progress(report_id: str): + """ + 获取报告生成进度(实时) + + 返回: + { + "success": true, + "data": { + "status": "generating", + "progress": 45, + "message": "正在生成章节: 关键发现", + "current_section": "关键发现", + "completed_sections": ["执行摘要", "模拟背景"], + "updated_at": "2025-12-09T..." + } + } + """ + try: + progress = ReportManager.get_progress(report_id) + + if not progress: + return jsonify({ + "success": False, + "error": t('api.reportProgressNotAvail', id=report_id) + }), 404 + + return jsonify({ + "success": True, + "data": progress + }) + + except Exception as e: + logger.error(f"获取报告进度失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +@report_bp.route('//sections', methods=['GET']) +def get_report_sections(report_id: str): + """ + 获取已生成的章节列表(分章节输出) + + 前端可以轮询此接口获取已生成的章节内容,无需等待整个报告完成 + + 返回: + { + "success": true, + "data": { + "report_id": "report_xxxx", + "sections": [ + { + "filename": "section_01.md", + "section_index": 1, + "content": "## 执行摘要\\n\\n..." + }, + ... + ], + "total_sections": 3, + "is_complete": false + } + } + """ + try: + sections = ReportManager.get_generated_sections(report_id) + + # 获取报告状态 + report = ReportManager.get_report(report_id) + is_complete = report is not None and report.status == ReportStatus.COMPLETED + + return jsonify({ + "success": True, + "data": { + "report_id": report_id, + "sections": sections, + "total_sections": len(sections), + "is_complete": is_complete + } + }) + + except Exception as e: + logger.error(f"获取章节列表失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +@report_bp.route('//section/', methods=['GET']) +def get_single_section(report_id: str, section_index: int): + """ + 获取单个章节内容 + + 返回: + { + "success": true, + "data": { + "filename": "section_01.md", + "content": "## 执行摘要\\n\\n..." + } + } + """ + try: + section_path = ReportManager._get_section_path(report_id, section_index) + + if not os.path.exists(section_path): + return jsonify({ + "success": False, + "error": t('api.sectionNotFound', index=f"{section_index:02d}") + }), 404 + + with open(section_path, 'r', encoding='utf-8') as f: + content = f.read() + + return jsonify({ + "success": True, + "data": { + "filename": f"section_{section_index:02d}.md", + "section_index": section_index, + "content": content + } + }) + + except Exception as e: + logger.error(f"获取章节内容失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +# ============== 报告状态检查接口 ============== + +@report_bp.route('/check/', methods=['GET']) +def check_report_status(simulation_id: str): + """ + 检查模拟是否有报告,以及报告状态 + + 用于前端判断是否解锁Interview功能 + + 返回: + { + "success": true, + "data": { + "simulation_id": "sim_xxxx", + "has_report": true, + "report_status": "completed", + "report_id": "report_xxxx", + "interview_unlocked": true + } + } + """ + try: + report = ReportManager.get_report_by_simulation(simulation_id) + + has_report = report is not None + report_status = report.status.value if report else None + report_id = report.report_id if report else None + + # 只有报告完成后才解锁interview + interview_unlocked = has_report and report.status == ReportStatus.COMPLETED + + return jsonify({ + "success": True, + "data": { + "simulation_id": simulation_id, + "has_report": has_report, + "report_status": report_status, + "report_id": report_id, + "interview_unlocked": interview_unlocked + } + }) + + except Exception as e: + logger.error(f"检查报告状态失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +# ============== Agent 日志接口 ============== + +@report_bp.route('//agent-log', methods=['GET']) +def get_agent_log(report_id: str): + """ + 获取 Report Agent 的详细执行日志 + + 实时获取报告生成过程中的每一步动作,包括: + - 报告开始、规划开始/完成 + - 每个章节的开始、工具调用、LLM响应、完成 + - 报告完成或失败 + + Query参数: + from_line: 从第几行开始读取(可选,默认0,用于增量获取) + + 返回: + { + "success": true, + "data": { + "logs": [ + { + "timestamp": "2025-12-13T...", + "elapsed_seconds": 12.5, + "report_id": "report_xxxx", + "action": "tool_call", + "stage": "generating", + "section_title": "执行摘要", + "section_index": 1, + "details": { + "tool_name": "insight_forge", + "parameters": {...}, + ... + } + }, + ... + ], + "total_lines": 25, + "from_line": 0, + "has_more": false + } + } + """ + try: + from_line = request.args.get('from_line', 0, type=int) + + log_data = ReportManager.get_agent_log(report_id, from_line=from_line) + + return jsonify({ + "success": True, + "data": log_data + }) + + except Exception as e: + logger.error(f"获取Agent日志失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +@report_bp.route('//agent-log/stream', methods=['GET']) +def stream_agent_log(report_id: str): + """ + 获取完整的 Agent 日志(一次性获取全部) + + 返回: + { + "success": true, + "data": { + "logs": [...], + "count": 25 + } + } + """ + try: + logs = ReportManager.get_agent_log_stream(report_id) + + return jsonify({ + "success": True, + "data": { + "logs": logs, + "count": len(logs) + } + }) + + except Exception as e: + logger.error(f"获取Agent日志失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +# ============== 控制台日志接口 ============== + +@report_bp.route('//console-log', methods=['GET']) +def get_console_log(report_id: str): + """ + 获取 Report Agent 的控制台输出日志 + + 实时获取报告生成过程中的控制台输出(INFO、WARNING等), + 这与 agent-log 接口返回的结构化 JSON 日志不同, + 是纯文本格式的控制台风格日志。 + + Query参数: + from_line: 从第几行开始读取(可选,默认0,用于增量获取) + + 返回: + { + "success": true, + "data": { + "logs": [ + "[19:46:14] INFO: 搜索完成: 找到 15 条相关事实", + "[19:46:14] INFO: 图谱搜索: graph_id=xxx, query=...", + ... + ], + "total_lines": 100, + "from_line": 0, + "has_more": false + } + } + """ + try: + from_line = request.args.get('from_line', 0, type=int) + + log_data = ReportManager.get_console_log(report_id, from_line=from_line) + + return jsonify({ + "success": True, + "data": log_data + }) + + except Exception as e: + logger.error(f"获取控制台日志失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +@report_bp.route('//console-log/stream', methods=['GET']) +def stream_console_log(report_id: str): + """ + 获取完整的控制台日志(一次性获取全部) + + 返回: + { + "success": true, + "data": { + "logs": [...], + "count": 100 + } + } + """ + try: + logs = ReportManager.get_console_log_stream(report_id) + + return jsonify({ + "success": True, + "data": { + "logs": logs, + "count": len(logs) + } + }) + + except Exception as e: + logger.error(f"获取控制台日志失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +# ============== 工具调用接口(供调试使用)============== + +@report_bp.route('/tools/search', methods=['POST']) +def search_graph_tool(): + """ + 图谱搜索工具接口(供调试使用) + + 请求(JSON): + { + "graph_id": "mirofish_xxxx", + "query": "搜索查询", + "limit": 10 + } + """ + try: + data = request.get_json() or {} + + graph_id = data.get('graph_id') + query = data.get('query') + limit = data.get('limit', 10) + + if not graph_id or not query: + return jsonify({ + "success": False, + "error": t('api.requireGraphIdAndQuery') + }), 400 + + from ..services.zep_tools import ZepToolsService + + tools = ZepToolsService() + result = tools.search_graph( + graph_id=graph_id, + query=query, + limit=limit + ) + + return jsonify({ + "success": True, + "data": result.to_dict() + }) + + except Exception as e: + logger.error(f"图谱搜索失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +@report_bp.route('/tools/statistics', methods=['POST']) +def get_graph_statistics_tool(): + """ + 图谱统计工具接口(供调试使用) + + 请求(JSON): + { + "graph_id": "mirofish_xxxx" + } + """ + try: + data = request.get_json() or {} + + graph_id = data.get('graph_id') + + if not graph_id: + return jsonify({ + "success": False, + "error": t('api.requireGraphId') + }), 400 + + from ..services.zep_tools import ZepToolsService + + tools = ZepToolsService() + result = tools.get_graph_statistics(graph_id) + + return jsonify({ + "success": True, + "data": result + }) + + except Exception as e: + logger.error(f"获取图谱统计失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 diff --git a/backend/app/api/simulation.py b/backend/app/api/simulation.py new file mode 100644 index 00000000..3a8e1e3f --- /dev/null +++ b/backend/app/api/simulation.py @@ -0,0 +1,2716 @@ +""" +模拟相关API路由 +Step2: Zep实体读取与过滤、OASIS模拟准备与运行(全程自动化) +""" + +import os +import traceback +from flask import request, jsonify, send_file + +from . import simulation_bp +from ..config import Config +from ..services.zep_entity_reader import ZepEntityReader +from ..services.oasis_profile_generator import OasisProfileGenerator +from ..services.simulation_manager import SimulationManager, SimulationStatus +from ..services.simulation_runner import SimulationRunner, RunnerStatus +from ..utils.logger import get_logger +from ..utils.locale import t, get_locale, set_locale +from ..models.project import ProjectManager + +logger = get_logger('mirofish.api.simulation') + + +# Interview prompt 优化前缀 +# 添加此前缀可以避免Agent调用工具,直接用文本回复 +INTERVIEW_PROMPT_PREFIX = "结合你的人设、所有的过往记忆与行动,不调用任何工具直接用文本回复我:" + + +def optimize_interview_prompt(prompt: str) -> str: + """ + 优化Interview提问,添加前缀避免Agent调用工具 + + Args: + prompt: 原始提问 + + Returns: + 优化后的提问 + """ + if not prompt: + return prompt + # 避免重复添加前缀 + if prompt.startswith(INTERVIEW_PROMPT_PREFIX): + return prompt + return f"{INTERVIEW_PROMPT_PREFIX}{prompt}" + + +# ============== 实体读取接口 ============== + +@simulation_bp.route('/entities/', methods=['GET']) +def get_graph_entities(graph_id: str): + """ + 获取图谱中的所有实体(已过滤) + + 只返回符合预定义实体类型的节点(Labels不只是Entity的节点) + + Query参数: + entity_types: 逗号分隔的实体类型列表(可选,用于进一步过滤) + enrich: 是否获取相关边信息(默认true) + """ + try: + if not Config.ZEP_API_KEY: + return jsonify({ + "success": False, + "error": t('api.zepApiKeyMissing') + }), 500 + + entity_types_str = request.args.get('entity_types', '') + entity_types = [t.strip() for t in entity_types_str.split(',') if t.strip()] if entity_types_str else None + enrich = request.args.get('enrich', 'true').lower() == 'true' + + logger.info(f"获取图谱实体: graph_id={graph_id}, entity_types={entity_types}, enrich={enrich}") + + reader = ZepEntityReader() + result = reader.filter_defined_entities( + graph_id=graph_id, + defined_entity_types=entity_types, + enrich_with_edges=enrich + ) + + return jsonify({ + "success": True, + "data": result.to_dict() + }) + + except Exception as e: + logger.error(f"获取图谱实体失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +@simulation_bp.route('/entities//', methods=['GET']) +def get_entity_detail(graph_id: str, entity_uuid: str): + """获取单个实体的详细信息""" + try: + if not Config.ZEP_API_KEY: + return jsonify({ + "success": False, + "error": t('api.zepApiKeyMissing') + }), 500 + + reader = ZepEntityReader() + entity = reader.get_entity_with_context(graph_id, entity_uuid) + + if not entity: + return jsonify({ + "success": False, + "error": t('api.entityNotFound', id=entity_uuid) + }), 404 + + return jsonify({ + "success": True, + "data": entity.to_dict() + }) + + except Exception as e: + logger.error(f"获取实体详情失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +@simulation_bp.route('/entities//by-type/', methods=['GET']) +def get_entities_by_type(graph_id: str, entity_type: str): + """获取指定类型的所有实体""" + try: + if not Config.ZEP_API_KEY: + return jsonify({ + "success": False, + "error": t('api.zepApiKeyMissing') + }), 500 + + enrich = request.args.get('enrich', 'true').lower() == 'true' + + reader = ZepEntityReader() + entities = reader.get_entities_by_type( + graph_id=graph_id, + entity_type=entity_type, + enrich_with_edges=enrich + ) + + return jsonify({ + "success": True, + "data": { + "entity_type": entity_type, + "count": len(entities), + "entities": [e.to_dict() for e in entities] + } + }) + + except Exception as e: + logger.error(f"获取实体失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +# ============== 模拟管理接口 ============== + +@simulation_bp.route('/create', methods=['POST']) +def create_simulation(): + """ + 创建新的模拟 + + 注意:max_rounds等参数由LLM智能生成,无需手动设置 + + 请求(JSON): + { + "project_id": "proj_xxxx", // 必填 + "graph_id": "mirofish_xxxx", // 可选,如不提供则从project获取 + "enable_twitter": true, // 可选,默认true + "enable_reddit": true // 可选,默认true + } + + 返回: + { + "success": true, + "data": { + "simulation_id": "sim_xxxx", + "project_id": "proj_xxxx", + "graph_id": "mirofish_xxxx", + "status": "created", + "enable_twitter": true, + "enable_reddit": true, + "created_at": "2025-12-01T10:00:00" + } + } + """ + try: + data = request.get_json() or {} + + project_id = data.get('project_id') + if not project_id: + return jsonify({ + "success": False, + "error": t('api.requireProjectId') + }), 400 + + project = ProjectManager.get_project(project_id) + if not project: + return jsonify({ + "success": False, + "error": t('api.projectNotFound', id=project_id) + }), 404 + + graph_id = data.get('graph_id') or project.graph_id + if not graph_id: + return jsonify({ + "success": False, + "error": t('api.graphNotBuilt') + }), 400 + + manager = SimulationManager() + state = manager.create_simulation( + project_id=project_id, + graph_id=graph_id, + enable_twitter=data.get('enable_twitter', True), + enable_reddit=data.get('enable_reddit', True), + ) + + return jsonify({ + "success": True, + "data": state.to_dict() + }) + + except Exception as e: + logger.error(f"创建模拟失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +def _check_simulation_prepared(simulation_id: str) -> tuple: + """ + 检查模拟是否已经准备完成 + + 检查条件: + 1. state.json 存在且 status 为 "ready" + 2. 必要文件存在:reddit_profiles.json, twitter_profiles.csv, simulation_config.json + + 注意:运行脚本(run_*.py)保留在 backend/scripts/ 目录,不再复制到模拟目录 + + Args: + simulation_id: 模拟ID + + Returns: + (is_prepared: bool, info: dict) + """ + import os + from ..config import Config + + simulation_dir = os.path.join(Config.OASIS_SIMULATION_DATA_DIR, simulation_id) + + # 检查目录是否存在 + if not os.path.exists(simulation_dir): + return False, {"reason": "模拟目录不存在"} + + # 必要文件列表(不包括脚本,脚本位于 backend/scripts/) + required_files = [ + "state.json", + "simulation_config.json", + "reddit_profiles.json", + "twitter_profiles.csv" + ] + + # 检查文件是否存在 + existing_files = [] + missing_files = [] + for f in required_files: + file_path = os.path.join(simulation_dir, f) + if os.path.exists(file_path): + existing_files.append(f) + else: + missing_files.append(f) + + if missing_files: + return False, { + "reason": "缺少必要文件", + "missing_files": missing_files, + "existing_files": existing_files + } + + # 检查state.json中的状态 + state_file = os.path.join(simulation_dir, "state.json") + try: + import json + with open(state_file, 'r', encoding='utf-8') as f: + state_data = json.load(f) + + status = state_data.get("status", "") + config_generated = state_data.get("config_generated", False) + + # 详细日志 + logger.debug(f"检测模拟准备状态: {simulation_id}, status={status}, config_generated={config_generated}") + + # 如果 config_generated=True 且文件存在,认为准备完成 + # 以下状态都说明准备工作已完成: + # - ready: 准备完成,可以运行 + # - preparing: 如果 config_generated=True 说明已完成 + # - running: 正在运行,说明准备早就完成了 + # - completed: 运行完成,说明准备早就完成了 + # - stopped: 已停止,说明准备早就完成了 + # - failed: 运行失败(但准备是完成的) + prepared_statuses = ["ready", "preparing", "running", "completed", "stopped", "failed"] + if status in prepared_statuses and config_generated: + # 获取文件统计信息 + profiles_file = os.path.join(simulation_dir, "reddit_profiles.json") + config_file = os.path.join(simulation_dir, "simulation_config.json") + + profiles_count = 0 + if os.path.exists(profiles_file): + with open(profiles_file, 'r', encoding='utf-8') as f: + profiles_data = json.load(f) + profiles_count = len(profiles_data) if isinstance(profiles_data, list) else 0 + + # 如果状态是preparing但文件已完成,自动更新状态为ready + if status == "preparing": + try: + state_data["status"] = "ready" + from datetime import datetime + state_data["updated_at"] = datetime.now().isoformat() + with open(state_file, 'w', encoding='utf-8') as f: + json.dump(state_data, f, ensure_ascii=False, indent=2) + logger.info(f"自动更新模拟状态: {simulation_id} preparing -> ready") + status = "ready" + except Exception as e: + logger.warning(f"自动更新状态失败: {e}") + + logger.info(f"模拟 {simulation_id} 检测结果: 已准备完成 (status={status}, config_generated={config_generated})") + return True, { + "status": status, + "entities_count": state_data.get("entities_count", 0), + "profiles_count": profiles_count, + "entity_types": state_data.get("entity_types", []), + "config_generated": config_generated, + "created_at": state_data.get("created_at"), + "updated_at": state_data.get("updated_at"), + "existing_files": existing_files + } + else: + logger.warning(f"模拟 {simulation_id} 检测结果: 未准备完成 (status={status}, config_generated={config_generated})") + return False, { + "reason": f"状态不在已准备列表中或config_generated为false: status={status}, config_generated={config_generated}", + "status": status, + "config_generated": config_generated + } + + except Exception as e: + return False, {"reason": f"读取状态文件失败: {str(e)}"} + + +@simulation_bp.route('/prepare', methods=['POST']) +def prepare_simulation(): + """ + 准备模拟环境(异步任务,LLM智能生成所有参数) + + 这是一个耗时操作,接口会立即返回task_id, + 使用 GET /api/simulation/prepare/status 查询进度 + + 特性: + - 自动检测已完成的准备工作,避免重复生成 + - 如果已准备完成,直接返回已有结果 + - 支持强制重新生成(force_regenerate=true) + + 步骤: + 1. 检查是否已有完成的准备工作 + 2. 从Zep图谱读取并过滤实体 + 3. 为每个实体生成OASIS Agent Profile(带重试机制) + 4. LLM智能生成模拟配置(带重试机制) + 5. 保存配置文件和预设脚本 + + 请求(JSON): + { + "simulation_id": "sim_xxxx", // 必填,模拟ID + "entity_types": ["Student", "PublicFigure"], // 可选,指定实体类型 + "use_llm_for_profiles": true, // 可选,是否用LLM生成人设 + "parallel_profile_count": 5, // 可选,并行生成人设数量,默认5 + "force_regenerate": false // 可选,强制重新生成,默认false + } + + 返回: + { + "success": true, + "data": { + "simulation_id": "sim_xxxx", + "task_id": "task_xxxx", // 新任务时返回 + "status": "preparing|ready", + "message": "准备任务已启动|已有完成的准备工作", + "already_prepared": true|false // 是否已准备完成 + } + } + """ + import threading + import os + from ..models.task import TaskManager, TaskStatus + from ..config import Config + + try: + data = request.get_json() or {} + + simulation_id = data.get('simulation_id') + if not simulation_id: + return jsonify({ + "success": False, + "error": t('api.requireSimulationId') + }), 400 + + manager = SimulationManager() + state = manager.get_simulation(simulation_id) + + if not state: + return jsonify({ + "success": False, + "error": t('api.simulationNotFound', id=simulation_id) + }), 404 + + # 检查是否强制重新生成 + force_regenerate = data.get('force_regenerate', False) + logger.info(f"开始处理 /prepare 请求: simulation_id={simulation_id}, force_regenerate={force_regenerate}") + + # 检查是否已经准备完成(避免重复生成) + if not force_regenerate: + logger.debug(f"检查模拟 {simulation_id} 是否已准备完成...") + is_prepared, prepare_info = _check_simulation_prepared(simulation_id) + logger.debug(f"检查结果: is_prepared={is_prepared}, prepare_info={prepare_info}") + if is_prepared: + logger.info(f"模拟 {simulation_id} 已准备完成,跳过重复生成") + return jsonify({ + "success": True, + "data": { + "simulation_id": simulation_id, + "status": "ready", + "message": t('api.alreadyPrepared'), + "already_prepared": True, + "prepare_info": prepare_info + } + }) + else: + logger.info(f"模拟 {simulation_id} 未准备完成,将启动准备任务") + + # 从项目获取必要信息 + project = ProjectManager.get_project(state.project_id) + if not project: + return jsonify({ + "success": False, + "error": t('api.projectNotFound', id=state.project_id) + }), 404 + + # 获取模拟需求 + simulation_requirement = project.simulation_requirement or "" + if not simulation_requirement: + return jsonify({ + "success": False, + "error": t('api.projectMissingRequirement') + }), 400 + + # 获取文档文本 + document_text = ProjectManager.get_extracted_text(state.project_id) or "" + + entity_types_list = data.get('entity_types') + use_llm_for_profiles = data.get('use_llm_for_profiles', True) + parallel_profile_count = data.get('parallel_profile_count', 5) + + # ========== 同步获取实体数量(在后台任务启动前) ========== + # 这样前端在调用prepare后立即就能获取到预期Agent总数 + try: + logger.info(f"同步获取实体数量: graph_id={state.graph_id}") + reader = ZepEntityReader() + # 快速读取实体(不需要边信息,只统计数量) + filtered_preview = reader.filter_defined_entities( + graph_id=state.graph_id, + defined_entity_types=entity_types_list, + enrich_with_edges=False # 不获取边信息,加快速度 + ) + # 保存实体数量到状态(供前端立即获取) + state.entities_count = filtered_preview.filtered_count + state.entity_types = list(filtered_preview.entity_types) + logger.info(f"预期实体数量: {filtered_preview.filtered_count}, 类型: {filtered_preview.entity_types}") + except Exception as e: + logger.warning(f"同步获取实体数量失败(将在后台任务中重试): {e}") + # 失败不影响后续流程,后台任务会重新获取 + + # 创建异步任务 + task_manager = TaskManager() + task_id = task_manager.create_task( + task_type="simulation_prepare", + metadata={ + "simulation_id": simulation_id, + "project_id": state.project_id + } + ) + + # 更新模拟状态(包含预先获取的实体数量) + state.status = SimulationStatus.PREPARING + manager._save_simulation_state(state) + + # Capture locale before spawning background thread + current_locale = get_locale() + + # 定义后台任务 + def run_prepare(): + set_locale(current_locale) + try: + task_manager.update_task( + task_id, + status=TaskStatus.PROCESSING, + progress=0, + message=t('progress.startPreparingEnv') + ) + + # 准备模拟(带进度回调) + # 存储阶段进度详情 + stage_details = {} + + def progress_callback(stage, progress, message, **kwargs): + # 计算总进度 + stage_weights = { + "reading": (0, 20), # 0-20% + "generating_profiles": (20, 70), # 20-70% + "generating_config": (70, 90), # 70-90% + "copying_scripts": (90, 100) # 90-100% + } + + start, end = stage_weights.get(stage, (0, 100)) + current_progress = int(start + (end - start) * progress / 100) + + # 构建详细进度信息 + stage_names = { + "reading": t('progress.readingGraphEntities'), + "generating_profiles": t('progress.generatingProfiles'), + "generating_config": t('progress.generatingSimConfig'), + "copying_scripts": t('progress.preparingScripts') + } + + stage_index = list(stage_weights.keys()).index(stage) + 1 if stage in stage_weights else 1 + total_stages = len(stage_weights) + + # 更新阶段详情 + stage_details[stage] = { + "stage_name": stage_names.get(stage, stage), + "stage_progress": progress, + "current": kwargs.get("current", 0), + "total": kwargs.get("total", 0), + "item_name": kwargs.get("item_name", "") + } + + # 构建详细进度信息 + detail = stage_details[stage] + progress_detail_data = { + "current_stage": stage, + "current_stage_name": stage_names.get(stage, stage), + "stage_index": stage_index, + "total_stages": total_stages, + "stage_progress": progress, + "current_item": detail["current"], + "total_items": detail["total"], + "item_description": message + } + + # 构建简洁消息 + if detail["total"] > 0: + detailed_message = ( + f"[{stage_index}/{total_stages}] {stage_names.get(stage, stage)}: " + f"{detail['current']}/{detail['total']} - {message}" + ) + else: + detailed_message = f"[{stage_index}/{total_stages}] {stage_names.get(stage, stage)}: {message}" + + task_manager.update_task( + task_id, + progress=current_progress, + message=detailed_message, + progress_detail=progress_detail_data + ) + + result_state = manager.prepare_simulation( + simulation_id=simulation_id, + simulation_requirement=simulation_requirement, + document_text=document_text, + defined_entity_types=entity_types_list, + use_llm_for_profiles=use_llm_for_profiles, + progress_callback=progress_callback, + parallel_profile_count=parallel_profile_count + ) + + # 任务完成 + task_manager.complete_task( + task_id, + result=result_state.to_simple_dict() + ) + + except Exception as e: + logger.error(f"准备模拟失败: {str(e)}") + task_manager.fail_task(task_id, str(e)) + + # 更新模拟状态为失败 + state = manager.get_simulation(simulation_id) + if state: + state.status = SimulationStatus.FAILED + state.error = str(e) + manager._save_simulation_state(state) + + # 启动后台线程 + thread = threading.Thread(target=run_prepare, daemon=True) + thread.start() + + return jsonify({ + "success": True, + "data": { + "simulation_id": simulation_id, + "task_id": task_id, + "status": "preparing", + "message": t('api.prepareStarted'), + "already_prepared": False, + "expected_entities_count": state.entities_count, # 预期的Agent总数 + "entity_types": state.entity_types # 实体类型列表 + } + }) + + except ValueError as e: + return jsonify({ + "success": False, + "error": str(e) + }), 404 + + except Exception as e: + logger.error(f"启动准备任务失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +@simulation_bp.route('/prepare/status', methods=['POST']) +def get_prepare_status(): + """ + 查询准备任务进度 + + 支持两种查询方式: + 1. 通过task_id查询正在进行的任务进度 + 2. 通过simulation_id检查是否已有完成的准备工作 + + 请求(JSON): + { + "task_id": "task_xxxx", // 可选,prepare返回的task_id + "simulation_id": "sim_xxxx" // 可选,模拟ID(用于检查已完成的准备) + } + + 返回: + { + "success": true, + "data": { + "task_id": "task_xxxx", + "status": "processing|completed|ready", + "progress": 45, + "message": "...", + "already_prepared": true|false, // 是否已有完成的准备 + "prepare_info": {...} // 已准备完成时的详细信息 + } + } + """ + from ..models.task import TaskManager + + try: + data = request.get_json() or {} + + task_id = data.get('task_id') + simulation_id = data.get('simulation_id') + + # 如果提供了simulation_id,先检查是否已准备完成 + if simulation_id: + is_prepared, prepare_info = _check_simulation_prepared(simulation_id) + if is_prepared: + return jsonify({ + "success": True, + "data": { + "simulation_id": simulation_id, + "status": "ready", + "progress": 100, + "message": t('api.alreadyPrepared'), + "already_prepared": True, + "prepare_info": prepare_info + } + }) + + # 如果没有task_id,返回错误 + if not task_id: + if simulation_id: + # 有simulation_id但未准备完成 + return jsonify({ + "success": True, + "data": { + "simulation_id": simulation_id, + "status": "not_started", + "progress": 0, + "message": t('api.notStartedPrepare'), + "already_prepared": False + } + }) + return jsonify({ + "success": False, + "error": t('api.requireTaskOrSimId') + }), 400 + + task_manager = TaskManager() + task = task_manager.get_task(task_id) + + if not task: + # 任务不存在,但如果有simulation_id,检查是否已准备完成 + if simulation_id: + is_prepared, prepare_info = _check_simulation_prepared(simulation_id) + if is_prepared: + return jsonify({ + "success": True, + "data": { + "simulation_id": simulation_id, + "task_id": task_id, + "status": "ready", + "progress": 100, + "message": t('api.taskCompletedPrepared'), + "already_prepared": True, + "prepare_info": prepare_info + } + }) + + return jsonify({ + "success": False, + "error": t('api.taskNotFound', id=task_id) + }), 404 + + task_dict = task.to_dict() + task_dict["already_prepared"] = False + + return jsonify({ + "success": True, + "data": task_dict + }) + + except Exception as e: + logger.error(f"查询任务状态失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e) + }), 500 + + +@simulation_bp.route('/', methods=['GET']) +def get_simulation(simulation_id: str): + """获取模拟状态""" + try: + manager = SimulationManager() + state = manager.get_simulation(simulation_id) + + if not state: + return jsonify({ + "success": False, + "error": t('api.simulationNotFound', id=simulation_id) + }), 404 + + result = state.to_dict() + + # 如果模拟已准备好,附加运行说明 + if state.status == SimulationStatus.READY: + result["run_instructions"] = manager.get_run_instructions(simulation_id) + + return jsonify({ + "success": True, + "data": result + }) + + except Exception as e: + logger.error(f"获取模拟状态失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +@simulation_bp.route('/list', methods=['GET']) +def list_simulations(): + """ + 列出所有模拟 + + Query参数: + project_id: 按项目ID过滤(可选) + """ + try: + project_id = request.args.get('project_id') + + manager = SimulationManager() + simulations = manager.list_simulations(project_id=project_id) + + return jsonify({ + "success": True, + "data": [s.to_dict() for s in simulations], + "count": len(simulations) + }) + + except Exception as e: + logger.error(f"列出模拟失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +def _get_report_id_for_simulation(simulation_id: str) -> str: + """ + 获取 simulation 对应的最新 report_id + + 遍历 reports 目录,找出 simulation_id 匹配的 report, + 如果有多个则返回最新的(按 created_at 排序) + + Args: + simulation_id: 模拟ID + + Returns: + report_id 或 None + """ + import json + from datetime import datetime + + # reports 目录路径:backend/uploads/reports + # __file__ 是 app/api/simulation.py,需要向上两级到 backend/ + reports_dir = os.path.join(os.path.dirname(__file__), '../../uploads/reports') + if not os.path.exists(reports_dir): + return None + + matching_reports = [] + + try: + for report_folder in os.listdir(reports_dir): + report_path = os.path.join(reports_dir, report_folder) + if not os.path.isdir(report_path): + continue + + meta_file = os.path.join(report_path, "meta.json") + if not os.path.exists(meta_file): + continue + + try: + with open(meta_file, 'r', encoding='utf-8') as f: + meta = json.load(f) + + if meta.get("simulation_id") == simulation_id: + matching_reports.append({ + "report_id": meta.get("report_id"), + "created_at": meta.get("created_at", ""), + "status": meta.get("status", "") + }) + except Exception: + continue + + if not matching_reports: + return None + + # 按创建时间倒序排序,返回最新的 + matching_reports.sort(key=lambda x: x.get("created_at", ""), reverse=True) + return matching_reports[0].get("report_id") + + except Exception as e: + logger.warning(f"查找 simulation {simulation_id} 的 report 失败: {e}") + return None + + +@simulation_bp.route('/history', methods=['GET']) +def get_simulation_history(): + """ + 获取历史模拟列表(带项目详情) + + 用于首页历史项目展示,返回包含项目名称、描述等丰富信息的模拟列表 + + Query参数: + limit: 返回数量限制(默认20) + + 返回: + { + "success": true, + "data": [ + { + "simulation_id": "sim_xxxx", + "project_id": "proj_xxxx", + "project_name": "武大舆情分析", + "simulation_requirement": "如果武汉大学发布...", + "status": "completed", + "entities_count": 68, + "profiles_count": 68, + "entity_types": ["Student", "Professor", ...], + "created_at": "2024-12-10", + "updated_at": "2024-12-10", + "total_rounds": 120, + "current_round": 120, + "report_id": "report_xxxx", + "version": "v1.0.2" + }, + ... + ], + "count": 7 + } + """ + try: + limit = request.args.get('limit', 20, type=int) + + manager = SimulationManager() + simulations = manager.list_simulations()[:limit] + + # 增强模拟数据,只从 Simulation 文件读取 + enriched_simulations = [] + for sim in simulations: + sim_dict = sim.to_dict() + + # 获取模拟配置信息(从 simulation_config.json 读取 simulation_requirement) + config = manager.get_simulation_config(sim.simulation_id) + if config: + sim_dict["simulation_requirement"] = config.get("simulation_requirement", "") + time_config = config.get("time_config", {}) + sim_dict["total_simulation_hours"] = time_config.get("total_simulation_hours", 0) + # 推荐轮数(后备值) + recommended_rounds = int( + time_config.get("total_simulation_hours", 0) * 60 / + max(time_config.get("minutes_per_round", 60), 1) + ) + else: + sim_dict["simulation_requirement"] = "" + sim_dict["total_simulation_hours"] = 0 + recommended_rounds = 0 + + # 获取运行状态(从 run_state.json 读取用户设置的实际轮数) + run_state = SimulationRunner.get_run_state(sim.simulation_id) + if run_state: + sim_dict["current_round"] = run_state.current_round + sim_dict["runner_status"] = run_state.runner_status.value + # 使用用户设置的 total_rounds,若无则使用推荐轮数 + sim_dict["total_rounds"] = run_state.total_rounds if run_state.total_rounds > 0 else recommended_rounds + else: + sim_dict["current_round"] = 0 + sim_dict["runner_status"] = "idle" + sim_dict["total_rounds"] = recommended_rounds + + # 获取关联项目的文件列表(最多3个) + project = ProjectManager.get_project(sim.project_id) + if project and hasattr(project, 'files') and project.files: + sim_dict["files"] = [ + {"filename": f.get("filename", "未知文件")} + for f in project.files[:3] + ] + else: + sim_dict["files"] = [] + + # 获取关联的 report_id(查找该 simulation 最新的 report) + sim_dict["report_id"] = _get_report_id_for_simulation(sim.simulation_id) + + # 添加版本号 + sim_dict["version"] = "v1.0.2" + + # 格式化日期 + try: + created_date = sim_dict.get("created_at", "")[:10] + sim_dict["created_date"] = created_date + except: + sim_dict["created_date"] = "" + + enriched_simulations.append(sim_dict) + + return jsonify({ + "success": True, + "data": enriched_simulations, + "count": len(enriched_simulations) + }) + + except Exception as e: + logger.error(f"获取历史模拟失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +@simulation_bp.route('//profiles', methods=['GET']) +def get_simulation_profiles(simulation_id: str): + """ + 获取模拟的Agent Profile + + Query参数: + platform: 平台类型(reddit/twitter,默认reddit) + """ + try: + platform = request.args.get('platform', 'reddit') + + manager = SimulationManager() + profiles = manager.get_profiles(simulation_id, platform=platform) + + return jsonify({ + "success": True, + "data": { + "platform": platform, + "count": len(profiles), + "profiles": profiles + } + }) + + except ValueError as e: + return jsonify({ + "success": False, + "error": str(e) + }), 404 + + except Exception as e: + logger.error(f"获取Profile失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +@simulation_bp.route('//profiles/realtime', methods=['GET']) +def get_simulation_profiles_realtime(simulation_id: str): + """ + 实时获取模拟的Agent Profile(用于在生成过程中实时查看进度) + + 与 /profiles 接口的区别: + - 直接读取文件,不经过 SimulationManager + - 适用于生成过程中的实时查看 + - 返回额外的元数据(如文件修改时间、是否正在生成等) + + Query参数: + platform: 平台类型(reddit/twitter,默认reddit) + + 返回: + { + "success": true, + "data": { + "simulation_id": "sim_xxxx", + "platform": "reddit", + "count": 15, + "total_expected": 93, // 预期总数(如果有) + "is_generating": true, // 是否正在生成 + "file_exists": true, + "file_modified_at": "2025-12-04T18:20:00", + "profiles": [...] + } + } + """ + import json + import csv + from datetime import datetime + + try: + platform = request.args.get('platform', 'reddit') + + # 获取模拟目录 + sim_dir = os.path.join(Config.OASIS_SIMULATION_DATA_DIR, simulation_id) + + if not os.path.exists(sim_dir): + return jsonify({ + "success": False, + "error": t('api.simulationNotFound', id=simulation_id) + }), 404 + + # 确定文件路径 + if platform == "reddit": + profiles_file = os.path.join(sim_dir, "reddit_profiles.json") + else: + profiles_file = os.path.join(sim_dir, "twitter_profiles.csv") + + # 检查文件是否存在 + file_exists = os.path.exists(profiles_file) + profiles = [] + file_modified_at = None + + if file_exists: + # 获取文件修改时间 + file_stat = os.stat(profiles_file) + file_modified_at = datetime.fromtimestamp(file_stat.st_mtime).isoformat() + + try: + if platform == "reddit": + with open(profiles_file, 'r', encoding='utf-8') as f: + profiles = json.load(f) + else: + with open(profiles_file, 'r', encoding='utf-8') as f: + reader = csv.DictReader(f) + profiles = list(reader) + except (json.JSONDecodeError, Exception) as e: + logger.warning(f"读取 profiles 文件失败(可能正在写入中): {e}") + profiles = [] + + # 检查是否正在生成(通过 state.json 判断) + is_generating = False + total_expected = None + + state_file = os.path.join(sim_dir, "state.json") + if os.path.exists(state_file): + try: + with open(state_file, 'r', encoding='utf-8') as f: + state_data = json.load(f) + status = state_data.get("status", "") + is_generating = status == "preparing" + total_expected = state_data.get("entities_count") + except Exception: + pass + + return jsonify({ + "success": True, + "data": { + "simulation_id": simulation_id, + "platform": platform, + "count": len(profiles), + "total_expected": total_expected, + "is_generating": is_generating, + "file_exists": file_exists, + "file_modified_at": file_modified_at, + "profiles": profiles + } + }) + + except Exception as e: + logger.error(f"实时获取Profile失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +@simulation_bp.route('//config/realtime', methods=['GET']) +def get_simulation_config_realtime(simulation_id: str): + """ + 实时获取模拟配置(用于在生成过程中实时查看进度) + + 与 /config 接口的区别: + - 直接读取文件,不经过 SimulationManager + - 适用于生成过程中的实时查看 + - 返回额外的元数据(如文件修改时间、是否正在生成等) + - 即使配置还没生成完也能返回部分信息 + + 返回: + { + "success": true, + "data": { + "simulation_id": "sim_xxxx", + "file_exists": true, + "file_modified_at": "2025-12-04T18:20:00", + "is_generating": true, // 是否正在生成 + "generation_stage": "generating_config", // 当前生成阶段 + "config": {...} // 配置内容(如果存在) + } + } + """ + import json + from datetime import datetime + + try: + # 获取模拟目录 + sim_dir = os.path.join(Config.OASIS_SIMULATION_DATA_DIR, simulation_id) + + if not os.path.exists(sim_dir): + return jsonify({ + "success": False, + "error": t('api.simulationNotFound', id=simulation_id) + }), 404 + + # 配置文件路径 + config_file = os.path.join(sim_dir, "simulation_config.json") + + # 检查文件是否存在 + file_exists = os.path.exists(config_file) + config = None + file_modified_at = None + + if file_exists: + # 获取文件修改时间 + file_stat = os.stat(config_file) + file_modified_at = datetime.fromtimestamp(file_stat.st_mtime).isoformat() + + try: + with open(config_file, 'r', encoding='utf-8') as f: + config = json.load(f) + except (json.JSONDecodeError, Exception) as e: + logger.warning(f"读取 config 文件失败(可能正在写入中): {e}") + config = None + + # 检查是否正在生成(通过 state.json 判断) + is_generating = False + generation_stage = None + config_generated = False + + state_file = os.path.join(sim_dir, "state.json") + if os.path.exists(state_file): + try: + with open(state_file, 'r', encoding='utf-8') as f: + state_data = json.load(f) + status = state_data.get("status", "") + is_generating = status == "preparing" + config_generated = state_data.get("config_generated", False) + + # 判断当前阶段 + if is_generating: + if state_data.get("profiles_generated", False): + generation_stage = "generating_config" + else: + generation_stage = "generating_profiles" + elif status == "ready": + generation_stage = "completed" + except Exception: + pass + + # 构建返回数据 + response_data = { + "simulation_id": simulation_id, + "file_exists": file_exists, + "file_modified_at": file_modified_at, + "is_generating": is_generating, + "generation_stage": generation_stage, + "config_generated": config_generated, + "config": config + } + + # 如果配置存在,提取一些关键统计信息 + if config: + response_data["summary"] = { + "total_agents": len(config.get("agent_configs", [])), + "simulation_hours": config.get("time_config", {}).get("total_simulation_hours"), + "initial_posts_count": len(config.get("event_config", {}).get("initial_posts", [])), + "hot_topics_count": len(config.get("event_config", {}).get("hot_topics", [])), + "has_twitter_config": "twitter_config" in config, + "has_reddit_config": "reddit_config" in config, + "generated_at": config.get("generated_at"), + "llm_model": config.get("llm_model") + } + + return jsonify({ + "success": True, + "data": response_data + }) + + except Exception as e: + logger.error(f"实时获取Config失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +@simulation_bp.route('//config', methods=['GET']) +def get_simulation_config(simulation_id: str): + """ + 获取模拟配置(LLM智能生成的完整配置) + + 返回包含: + - time_config: 时间配置(模拟时长、轮次、高峰/低谷时段) + - agent_configs: 每个Agent的活动配置(活跃度、发言频率、立场等) + - event_config: 事件配置(初始帖子、热点话题) + - platform_configs: 平台配置 + - generation_reasoning: LLM的配置推理说明 + """ + try: + manager = SimulationManager() + config = manager.get_simulation_config(simulation_id) + + if not config: + return jsonify({ + "success": False, + "error": t('api.configNotFound') + }), 404 + + return jsonify({ + "success": True, + "data": config + }) + + except Exception as e: + logger.error(f"获取配置失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +@simulation_bp.route('//config/download', methods=['GET']) +def download_simulation_config(simulation_id: str): + """下载模拟配置文件""" + try: + manager = SimulationManager() + sim_dir = manager._get_simulation_dir(simulation_id) + config_path = os.path.join(sim_dir, "simulation_config.json") + + if not os.path.exists(config_path): + return jsonify({ + "success": False, + "error": t('api.configFileNotFound') + }), 404 + + return send_file( + config_path, + as_attachment=True, + download_name="simulation_config.json" + ) + + except Exception as e: + logger.error(f"下载配置失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +@simulation_bp.route('/script//download', methods=['GET']) +def download_simulation_script(script_name: str): + """ + 下载模拟运行脚本文件(通用脚本,位于 backend/scripts/) + + script_name可选值: + - run_twitter_simulation.py + - run_reddit_simulation.py + - run_parallel_simulation.py + - action_logger.py + """ + try: + # 脚本位于 backend/scripts/ 目录 + scripts_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '../../scripts')) + + # 验证脚本名称 + allowed_scripts = [ + "run_twitter_simulation.py", + "run_reddit_simulation.py", + "run_parallel_simulation.py", + "action_logger.py" + ] + + if script_name not in allowed_scripts: + return jsonify({ + "success": False, + "error": t('api.unknownScript', name=script_name, allowed=allowed_scripts) + }), 400 + + script_path = os.path.join(scripts_dir, script_name) + + if not os.path.exists(script_path): + return jsonify({ + "success": False, + "error": t('api.scriptFileNotFound', name=script_name) + }), 404 + + return send_file( + script_path, + as_attachment=True, + download_name=script_name + ) + + except Exception as e: + logger.error(f"下载脚本失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +# ============== Profile生成接口(独立使用) ============== + +@simulation_bp.route('/generate-profiles', methods=['POST']) +def generate_profiles(): + """ + 直接从图谱生成OASIS Agent Profile(不创建模拟) + + 请求(JSON): + { + "graph_id": "mirofish_xxxx", // 必填 + "entity_types": ["Student"], // 可选 + "use_llm": true, // 可选 + "platform": "reddit" // 可选 + } + """ + try: + data = request.get_json() or {} + + graph_id = data.get('graph_id') + if not graph_id: + return jsonify({ + "success": False, + "error": t('api.requireGraphId') + }), 400 + + entity_types = data.get('entity_types') + use_llm = data.get('use_llm', True) + platform = data.get('platform', 'reddit') + + reader = ZepEntityReader() + filtered = reader.filter_defined_entities( + graph_id=graph_id, + defined_entity_types=entity_types, + enrich_with_edges=True + ) + + if filtered.filtered_count == 0: + return jsonify({ + "success": False, + "error": t('api.noMatchingEntities') + }), 400 + + generator = OasisProfileGenerator() + profiles = generator.generate_profiles_from_entities( + entities=filtered.entities, + use_llm=use_llm + ) + + if platform == "reddit": + profiles_data = [p.to_reddit_format() for p in profiles] + elif platform == "twitter": + profiles_data = [p.to_twitter_format() for p in profiles] + else: + profiles_data = [p.to_dict() for p in profiles] + + return jsonify({ + "success": True, + "data": { + "platform": platform, + "entity_types": list(filtered.entity_types), + "count": len(profiles_data), + "profiles": profiles_data + } + }) + + except Exception as e: + logger.error(f"生成Profile失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +# ============== 模拟运行控制接口 ============== + +@simulation_bp.route('/start', methods=['POST']) +def start_simulation(): + """ + 开始运行模拟 + + 请求(JSON): + { + "simulation_id": "sim_xxxx", // 必填,模拟ID + "platform": "parallel", // 可选: twitter / reddit / parallel (默认) + "max_rounds": 100, // 可选: 最大模拟轮数,用于截断过长的模拟 + "enable_graph_memory_update": false, // 可选: 是否将Agent活动动态更新到Zep图谱记忆 + "force": false // 可选: 强制重新开始(会停止运行中的模拟并清理日志) + } + + 关于 force 参数: + - 启用后,如果模拟正在运行或已完成,会先停止并清理运行日志 + - 清理的内容包括:run_state.json, actions.jsonl, simulation.log 等 + - 不会清理配置文件(simulation_config.json)和 profile 文件 + - 适用于需要重新运行模拟的场景 + + 关于 enable_graph_memory_update: + - 启用后,模拟中所有Agent的活动(发帖、评论、点赞等)都会实时更新到Zep图谱 + - 这可以让图谱"记住"模拟过程,用于后续分析或AI对话 + - 需要模拟关联的项目有有效的 graph_id + - 采用批量更新机制,减少API调用次数 + + 返回: + { + "success": true, + "data": { + "simulation_id": "sim_xxxx", + "runner_status": "running", + "process_pid": 12345, + "twitter_running": true, + "reddit_running": true, + "started_at": "2025-12-01T10:00:00", + "graph_memory_update_enabled": true, // 是否启用了图谱记忆更新 + "force_restarted": true // 是否是强制重新开始 + } + } + """ + try: + data = request.get_json() or {} + + simulation_id = data.get('simulation_id') + if not simulation_id: + return jsonify({ + "success": False, + "error": t('api.requireSimulationId') + }), 400 + + platform = data.get('platform', 'parallel') + max_rounds = data.get('max_rounds') # 可选:最大模拟轮数 + enable_graph_memory_update = data.get('enable_graph_memory_update', False) # 可选:是否启用图谱记忆更新 + force = data.get('force', False) # 可选:强制重新开始 + + # 验证 max_rounds 参数 + if max_rounds is not None: + try: + max_rounds = int(max_rounds) + if max_rounds <= 0: + return jsonify({ + "success": False, + "error": t('api.maxRoundsPositive') + }), 400 + except (ValueError, TypeError): + return jsonify({ + "success": False, + "error": t('api.maxRoundsInvalid') + }), 400 + + if platform not in ['twitter', 'reddit', 'parallel']: + return jsonify({ + "success": False, + "error": t('api.invalidPlatform', platform=platform) + }), 400 + + # 检查模拟是否已准备好 + manager = SimulationManager() + state = manager.get_simulation(simulation_id) + + if not state: + return jsonify({ + "success": False, + "error": t('api.simulationNotFound', id=simulation_id) + }), 404 + + force_restarted = False + + # 智能处理状态:如果准备工作已完成,允许重新启动 + if state.status != SimulationStatus.READY: + # 检查准备工作是否已完成 + is_prepared, prepare_info = _check_simulation_prepared(simulation_id) + + if is_prepared: + # 准备工作已完成,检查是否有正在运行的进程 + if state.status == SimulationStatus.RUNNING: + # 检查模拟进程是否真的在运行 + run_state = SimulationRunner.get_run_state(simulation_id) + if run_state and run_state.runner_status.value == "running": + # 进程确实在运行 + if force: + # 强制模式:停止运行中的模拟 + logger.info(f"强制模式:停止运行中的模拟 {simulation_id}") + try: + SimulationRunner.stop_simulation(simulation_id) + except Exception as e: + logger.warning(f"停止模拟时出现警告: {str(e)}") + else: + return jsonify({ + "success": False, + "error": t('api.simRunningForceHint') + }), 400 + + # 如果是强制模式,清理运行日志 + if force: + logger.info(f"强制模式:清理模拟日志 {simulation_id}") + cleanup_result = SimulationRunner.cleanup_simulation_logs(simulation_id) + if not cleanup_result.get("success"): + logger.warning(f"清理日志时出现警告: {cleanup_result.get('errors')}") + force_restarted = True + + # 进程不存在或已结束,重置状态为 ready + logger.info(f"模拟 {simulation_id} 准备工作已完成,重置状态为 ready(原状态: {state.status.value})") + state.status = SimulationStatus.READY + manager._save_simulation_state(state) + else: + # 准备工作未完成 + return jsonify({ + "success": False, + "error": t('api.simNotReady', status=state.status.value) + }), 400 + + # 获取图谱ID(用于图谱记忆更新) + graph_id = None + if enable_graph_memory_update: + # 从模拟状态或项目中获取 graph_id + graph_id = state.graph_id + if not graph_id: + # 尝试从项目中获取 + project = ProjectManager.get_project(state.project_id) + if project: + graph_id = project.graph_id + + if not graph_id: + return jsonify({ + "success": False, + "error": t('api.graphIdRequiredForMemory') + }), 400 + + logger.info(f"启用图谱记忆更新: simulation_id={simulation_id}, graph_id={graph_id}") + + # 启动模拟 + run_state = SimulationRunner.start_simulation( + simulation_id=simulation_id, + platform=platform, + max_rounds=max_rounds, + enable_graph_memory_update=enable_graph_memory_update, + graph_id=graph_id + ) + + # 更新模拟状态 + state.status = SimulationStatus.RUNNING + manager._save_simulation_state(state) + + response_data = run_state.to_dict() + if max_rounds: + response_data['max_rounds_applied'] = max_rounds + response_data['graph_memory_update_enabled'] = enable_graph_memory_update + response_data['force_restarted'] = force_restarted + if enable_graph_memory_update: + response_data['graph_id'] = graph_id + + return jsonify({ + "success": True, + "data": response_data + }) + + except ValueError as e: + return jsonify({ + "success": False, + "error": str(e) + }), 400 + + except Exception as e: + logger.error(f"启动模拟失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +@simulation_bp.route('/stop', methods=['POST']) +def stop_simulation(): + """ + 停止模拟 + + 请求(JSON): + { + "simulation_id": "sim_xxxx" // 必填,模拟ID + } + + 返回: + { + "success": true, + "data": { + "simulation_id": "sim_xxxx", + "runner_status": "stopped", + "completed_at": "2025-12-01T12:00:00" + } + } + """ + try: + data = request.get_json() or {} + + simulation_id = data.get('simulation_id') + if not simulation_id: + return jsonify({ + "success": False, + "error": t('api.requireSimulationId') + }), 400 + + run_state = SimulationRunner.stop_simulation(simulation_id) + + # 更新模拟状态 + manager = SimulationManager() + state = manager.get_simulation(simulation_id) + if state: + state.status = SimulationStatus.PAUSED + manager._save_simulation_state(state) + + return jsonify({ + "success": True, + "data": run_state.to_dict() + }) + + except ValueError as e: + return jsonify({ + "success": False, + "error": str(e) + }), 400 + + except Exception as e: + logger.error(f"停止模拟失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +# ============== 实时状态监控接口 ============== + +@simulation_bp.route('//run-status', methods=['GET']) +def get_run_status(simulation_id: str): + """ + 获取模拟运行实时状态(用于前端轮询) + + 返回: + { + "success": true, + "data": { + "simulation_id": "sim_xxxx", + "runner_status": "running", + "current_round": 5, + "total_rounds": 144, + "progress_percent": 3.5, + "simulated_hours": 2, + "total_simulation_hours": 72, + "twitter_running": true, + "reddit_running": true, + "twitter_actions_count": 150, + "reddit_actions_count": 200, + "total_actions_count": 350, + "started_at": "2025-12-01T10:00:00", + "updated_at": "2025-12-01T10:30:00" + } + } + """ + try: + run_state = SimulationRunner.get_run_state(simulation_id) + + if not run_state: + return jsonify({ + "success": True, + "data": { + "simulation_id": simulation_id, + "runner_status": "idle", + "current_round": 0, + "total_rounds": 0, + "progress_percent": 0, + "twitter_actions_count": 0, + "reddit_actions_count": 0, + "total_actions_count": 0, + } + }) + + return jsonify({ + "success": True, + "data": run_state.to_dict() + }) + + except Exception as e: + logger.error(f"获取运行状态失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +@simulation_bp.route('//run-status/detail', methods=['GET']) +def get_run_status_detail(simulation_id: str): + """ + 获取模拟运行详细状态(包含所有动作) + + 用于前端展示实时动态 + + Query参数: + platform: 过滤平台(twitter/reddit,可选) + + 返回: + { + "success": true, + "data": { + "simulation_id": "sim_xxxx", + "runner_status": "running", + "current_round": 5, + ... + "all_actions": [ + { + "round_num": 5, + "timestamp": "2025-12-01T10:30:00", + "platform": "twitter", + "agent_id": 3, + "agent_name": "Agent Name", + "action_type": "CREATE_POST", + "action_args": {"content": "..."}, + "result": null, + "success": true + }, + ... + ], + "twitter_actions": [...], # Twitter 平台的所有动作 + "reddit_actions": [...] # Reddit 平台的所有动作 + } + } + """ + try: + run_state = SimulationRunner.get_run_state(simulation_id) + platform_filter = request.args.get('platform') + + if not run_state: + return jsonify({ + "success": True, + "data": { + "simulation_id": simulation_id, + "runner_status": "idle", + "all_actions": [], + "twitter_actions": [], + "reddit_actions": [] + } + }) + + # 获取完整的动作列表 + all_actions = SimulationRunner.get_all_actions( + simulation_id=simulation_id, + platform=platform_filter + ) + + # 分平台获取动作 + twitter_actions = SimulationRunner.get_all_actions( + simulation_id=simulation_id, + platform="twitter" + ) if not platform_filter or platform_filter == "twitter" else [] + + reddit_actions = SimulationRunner.get_all_actions( + simulation_id=simulation_id, + platform="reddit" + ) if not platform_filter or platform_filter == "reddit" else [] + + # 获取当前轮次的动作(recent_actions 只展示最新一轮) + current_round = run_state.current_round + recent_actions = SimulationRunner.get_all_actions( + simulation_id=simulation_id, + platform=platform_filter, + round_num=current_round + ) if current_round > 0 else [] + + # 获取基础状态信息 + result = run_state.to_dict() + result["all_actions"] = [a.to_dict() for a in all_actions] + result["twitter_actions"] = [a.to_dict() for a in twitter_actions] + result["reddit_actions"] = [a.to_dict() for a in reddit_actions] + result["rounds_count"] = len(run_state.rounds) + # recent_actions 只展示当前最新一轮两个平台的内容 + result["recent_actions"] = [a.to_dict() for a in recent_actions] + + return jsonify({ + "success": True, + "data": result + }) + + except Exception as e: + logger.error(f"获取详细状态失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +@simulation_bp.route('//actions', methods=['GET']) +def get_simulation_actions(simulation_id: str): + """ + 获取模拟中的Agent动作历史 + + Query参数: + limit: 返回数量(默认100) + offset: 偏移量(默认0) + platform: 过滤平台(twitter/reddit) + agent_id: 过滤Agent ID + round_num: 过滤轮次 + + 返回: + { + "success": true, + "data": { + "count": 100, + "actions": [...] + } + } + """ + try: + limit = request.args.get('limit', 100, type=int) + offset = request.args.get('offset', 0, type=int) + platform = request.args.get('platform') + agent_id = request.args.get('agent_id', type=int) + round_num = request.args.get('round_num', type=int) + + actions = SimulationRunner.get_actions( + simulation_id=simulation_id, + limit=limit, + offset=offset, + platform=platform, + agent_id=agent_id, + round_num=round_num + ) + + return jsonify({ + "success": True, + "data": { + "count": len(actions), + "actions": [a.to_dict() for a in actions] + } + }) + + except Exception as e: + logger.error(f"获取动作历史失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +@simulation_bp.route('//timeline', methods=['GET']) +def get_simulation_timeline(simulation_id: str): + """ + 获取模拟时间线(按轮次汇总) + + 用于前端展示进度条和时间线视图 + + Query参数: + start_round: 起始轮次(默认0) + end_round: 结束轮次(默认全部) + + 返回每轮的汇总信息 + """ + try: + start_round = request.args.get('start_round', 0, type=int) + end_round = request.args.get('end_round', type=int) + + timeline = SimulationRunner.get_timeline( + simulation_id=simulation_id, + start_round=start_round, + end_round=end_round + ) + + return jsonify({ + "success": True, + "data": { + "rounds_count": len(timeline), + "timeline": timeline + } + }) + + except Exception as e: + logger.error(f"获取时间线失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +@simulation_bp.route('//agent-stats', methods=['GET']) +def get_agent_stats(simulation_id: str): + """ + 获取每个Agent的统计信息 + + 用于前端展示Agent活跃度排行、动作分布等 + """ + try: + stats = SimulationRunner.get_agent_stats(simulation_id) + + return jsonify({ + "success": True, + "data": { + "agents_count": len(stats), + "stats": stats + } + }) + + except Exception as e: + logger.error(f"获取Agent统计失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +# ============== 数据库查询接口 ============== + +@simulation_bp.route('//posts', methods=['GET']) +def get_simulation_posts(simulation_id: str): + """ + 获取模拟中的帖子 + + Query参数: + platform: 平台类型(twitter/reddit) + limit: 返回数量(默认50) + offset: 偏移量 + + 返回帖子列表(从SQLite数据库读取) + """ + try: + platform = request.args.get('platform', 'reddit') + limit = request.args.get('limit', 50, type=int) + offset = request.args.get('offset', 0, type=int) + + sim_dir = os.path.join( + os.path.dirname(__file__), + f'../../uploads/simulations/{simulation_id}' + ) + + db_file = f"{platform}_simulation.db" + db_path = os.path.join(sim_dir, db_file) + + if not os.path.exists(db_path): + return jsonify({ + "success": True, + "data": { + "platform": platform, + "count": 0, + "posts": [], + "message": t('api.dbNotExist') + } + }) + + import sqlite3 + conn = sqlite3.connect(db_path) + conn.row_factory = sqlite3.Row + cursor = conn.cursor() + + try: + cursor.execute(""" + SELECT * FROM post + ORDER BY created_at DESC + LIMIT ? OFFSET ? + """, (limit, offset)) + + posts = [dict(row) for row in cursor.fetchall()] + + cursor.execute("SELECT COUNT(*) FROM post") + total = cursor.fetchone()[0] + + except sqlite3.OperationalError: + posts = [] + total = 0 + + conn.close() + + return jsonify({ + "success": True, + "data": { + "platform": platform, + "total": total, + "count": len(posts), + "posts": posts + } + }) + + except Exception as e: + logger.error(f"获取帖子失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +@simulation_bp.route('//comments', methods=['GET']) +def get_simulation_comments(simulation_id: str): + """ + 获取模拟中的评论(仅Reddit) + + Query参数: + post_id: 过滤帖子ID(可选) + limit: 返回数量 + offset: 偏移量 + """ + try: + post_id = request.args.get('post_id') + limit = request.args.get('limit', 50, type=int) + offset = request.args.get('offset', 0, type=int) + + sim_dir = os.path.join( + os.path.dirname(__file__), + f'../../uploads/simulations/{simulation_id}' + ) + + db_path = os.path.join(sim_dir, "reddit_simulation.db") + + if not os.path.exists(db_path): + return jsonify({ + "success": True, + "data": { + "count": 0, + "comments": [] + } + }) + + import sqlite3 + conn = sqlite3.connect(db_path) + conn.row_factory = sqlite3.Row + cursor = conn.cursor() + + try: + if post_id: + cursor.execute(""" + SELECT * FROM comment + WHERE post_id = ? + ORDER BY created_at DESC + LIMIT ? OFFSET ? + """, (post_id, limit, offset)) + else: + cursor.execute(""" + SELECT * FROM comment + ORDER BY created_at DESC + LIMIT ? OFFSET ? + """, (limit, offset)) + + comments = [dict(row) for row in cursor.fetchall()] + + except sqlite3.OperationalError: + comments = [] + + conn.close() + + return jsonify({ + "success": True, + "data": { + "count": len(comments), + "comments": comments + } + }) + + except Exception as e: + logger.error(f"获取评论失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +# ============== Interview 采访接口 ============== + +@simulation_bp.route('/interview', methods=['POST']) +def interview_agent(): + """ + 采访单个Agent + + 注意:此功能需要模拟环境处于运行状态(完成模拟循环后进入等待命令模式) + + 请求(JSON): + { + "simulation_id": "sim_xxxx", // 必填,模拟ID + "agent_id": 0, // 必填,Agent ID + "prompt": "你对这件事有什么看法?", // 必填,采访问题 + "platform": "twitter", // 可选,指定平台(twitter/reddit) + // 不指定时:双平台模拟同时采访两个平台 + "timeout": 60 // 可选,超时时间(秒),默认60 + } + + 返回(不指定platform,双平台模式): + { + "success": true, + "data": { + "agent_id": 0, + "prompt": "你对这件事有什么看法?", + "result": { + "agent_id": 0, + "prompt": "...", + "platforms": { + "twitter": {"agent_id": 0, "response": "...", "platform": "twitter"}, + "reddit": {"agent_id": 0, "response": "...", "platform": "reddit"} + } + }, + "timestamp": "2025-12-08T10:00:01" + } + } + + 返回(指定platform): + { + "success": true, + "data": { + "agent_id": 0, + "prompt": "你对这件事有什么看法?", + "result": { + "agent_id": 0, + "response": "我认为...", + "platform": "twitter", + "timestamp": "2025-12-08T10:00:00" + }, + "timestamp": "2025-12-08T10:00:01" + } + } + """ + try: + data = request.get_json() or {} + + simulation_id = data.get('simulation_id') + agent_id = data.get('agent_id') + prompt = data.get('prompt') + platform = data.get('platform') # 可选:twitter/reddit/None + timeout = data.get('timeout', 60) + + if not simulation_id: + return jsonify({ + "success": False, + "error": t('api.requireSimulationId') + }), 400 + + if agent_id is None: + return jsonify({ + "success": False, + "error": t('api.requireAgentId') + }), 400 + + if not prompt: + return jsonify({ + "success": False, + "error": t('api.requirePrompt') + }), 400 + + # 验证platform参数 + if platform and platform not in ("twitter", "reddit"): + return jsonify({ + "success": False, + "error": t('api.invalidInterviewPlatform') + }), 400 + + # 检查环境状态 + if not SimulationRunner.check_env_alive(simulation_id): + return jsonify({ + "success": False, + "error": t('api.envNotRunning') + }), 400 + + # 优化prompt,添加前缀避免Agent调用工具 + optimized_prompt = optimize_interview_prompt(prompt) + + result = SimulationRunner.interview_agent( + simulation_id=simulation_id, + agent_id=agent_id, + prompt=optimized_prompt, + platform=platform, + timeout=timeout + ) + + return jsonify({ + "success": result.get("success", False), + "data": result + }) + + except ValueError as e: + return jsonify({ + "success": False, + "error": str(e) + }), 400 + + except TimeoutError as e: + return jsonify({ + "success": False, + "error": t('api.interviewTimeout', error=str(e)) + }), 504 + + except Exception as e: + logger.error(f"Interview失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +@simulation_bp.route('/interview/batch', methods=['POST']) +def interview_agents_batch(): + """ + 批量采访多个Agent + + 注意:此功能需要模拟环境处于运行状态 + + 请求(JSON): + { + "simulation_id": "sim_xxxx", // 必填,模拟ID + "interviews": [ // 必填,采访列表 + { + "agent_id": 0, + "prompt": "你对A有什么看法?", + "platform": "twitter" // 可选,指定该Agent的采访平台 + }, + { + "agent_id": 1, + "prompt": "你对B有什么看法?" // 不指定platform则使用默认值 + } + ], + "platform": "reddit", // 可选,默认平台(被每项的platform覆盖) + // 不指定时:双平台模拟每个Agent同时采访两个平台 + "timeout": 120 // 可选,超时时间(秒),默认120 + } + + 返回: + { + "success": true, + "data": { + "interviews_count": 2, + "result": { + "interviews_count": 4, + "results": { + "twitter_0": {"agent_id": 0, "response": "...", "platform": "twitter"}, + "reddit_0": {"agent_id": 0, "response": "...", "platform": "reddit"}, + "twitter_1": {"agent_id": 1, "response": "...", "platform": "twitter"}, + "reddit_1": {"agent_id": 1, "response": "...", "platform": "reddit"} + } + }, + "timestamp": "2025-12-08T10:00:01" + } + } + """ + try: + data = request.get_json() or {} + + simulation_id = data.get('simulation_id') + interviews = data.get('interviews') + platform = data.get('platform') # 可选:twitter/reddit/None + timeout = data.get('timeout', 120) + + if not simulation_id: + return jsonify({ + "success": False, + "error": t('api.requireSimulationId') + }), 400 + + if not interviews or not isinstance(interviews, list): + return jsonify({ + "success": False, + "error": t('api.requireInterviews') + }), 400 + + # 验证platform参数 + if platform and platform not in ("twitter", "reddit"): + return jsonify({ + "success": False, + "error": t('api.invalidInterviewPlatform') + }), 400 + + # 验证每个采访项 + for i, interview in enumerate(interviews): + if 'agent_id' not in interview: + return jsonify({ + "success": False, + "error": t('api.interviewListMissingAgentId', index=i+1) + }), 400 + if 'prompt' not in interview: + return jsonify({ + "success": False, + "error": t('api.interviewListMissingPrompt', index=i+1) + }), 400 + # 验证每项的platform(如果有) + item_platform = interview.get('platform') + if item_platform and item_platform not in ("twitter", "reddit"): + return jsonify({ + "success": False, + "error": t('api.interviewListInvalidPlatform', index=i+1) + }), 400 + + # 检查环境状态 + if not SimulationRunner.check_env_alive(simulation_id): + return jsonify({ + "success": False, + "error": t('api.envNotRunning') + }), 400 + + # 优化每个采访项的prompt,添加前缀避免Agent调用工具 + optimized_interviews = [] + for interview in interviews: + optimized_interview = interview.copy() + optimized_interview['prompt'] = optimize_interview_prompt(interview.get('prompt', '')) + optimized_interviews.append(optimized_interview) + + result = SimulationRunner.interview_agents_batch( + simulation_id=simulation_id, + interviews=optimized_interviews, + platform=platform, + timeout=timeout + ) + + return jsonify({ + "success": result.get("success", False), + "data": result + }) + + except ValueError as e: + return jsonify({ + "success": False, + "error": str(e) + }), 400 + + except TimeoutError as e: + return jsonify({ + "success": False, + "error": t('api.batchInterviewTimeout', error=str(e)) + }), 504 + + except Exception as e: + logger.error(f"批量Interview失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +@simulation_bp.route('/interview/all', methods=['POST']) +def interview_all_agents(): + """ + 全局采访 - 使用相同问题采访所有Agent + + 注意:此功能需要模拟环境处于运行状态 + + 请求(JSON): + { + "simulation_id": "sim_xxxx", // 必填,模拟ID + "prompt": "你对这件事整体有什么看法?", // 必填,采访问题(所有Agent使用相同问题) + "platform": "reddit", // 可选,指定平台(twitter/reddit) + // 不指定时:双平台模拟每个Agent同时采访两个平台 + "timeout": 180 // 可选,超时时间(秒),默认180 + } + + 返回: + { + "success": true, + "data": { + "interviews_count": 50, + "result": { + "interviews_count": 100, + "results": { + "twitter_0": {"agent_id": 0, "response": "...", "platform": "twitter"}, + "reddit_0": {"agent_id": 0, "response": "...", "platform": "reddit"}, + ... + } + }, + "timestamp": "2025-12-08T10:00:01" + } + } + """ + try: + data = request.get_json() or {} + + simulation_id = data.get('simulation_id') + prompt = data.get('prompt') + platform = data.get('platform') # 可选:twitter/reddit/None + timeout = data.get('timeout', 180) + + if not simulation_id: + return jsonify({ + "success": False, + "error": t('api.requireSimulationId') + }), 400 + + if not prompt: + return jsonify({ + "success": False, + "error": t('api.requirePrompt') + }), 400 + + # 验证platform参数 + if platform and platform not in ("twitter", "reddit"): + return jsonify({ + "success": False, + "error": t('api.invalidInterviewPlatform') + }), 400 + + # 检查环境状态 + if not SimulationRunner.check_env_alive(simulation_id): + return jsonify({ + "success": False, + "error": t('api.envNotRunning') + }), 400 + + # 优化prompt,添加前缀避免Agent调用工具 + optimized_prompt = optimize_interview_prompt(prompt) + + result = SimulationRunner.interview_all_agents( + simulation_id=simulation_id, + prompt=optimized_prompt, + platform=platform, + timeout=timeout + ) + + return jsonify({ + "success": result.get("success", False), + "data": result + }) + + except ValueError as e: + return jsonify({ + "success": False, + "error": str(e) + }), 400 + + except TimeoutError as e: + return jsonify({ + "success": False, + "error": t('api.globalInterviewTimeout', error=str(e)) + }), 504 + + except Exception as e: + logger.error(f"全局Interview失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +@simulation_bp.route('/interview/history', methods=['POST']) +def get_interview_history(): + """ + 获取Interview历史记录 + + 从模拟数据库中读取所有Interview记录 + + 请求(JSON): + { + "simulation_id": "sim_xxxx", // 必填,模拟ID + "platform": "reddit", // 可选,平台类型(reddit/twitter) + // 不指定则返回两个平台的所有历史 + "agent_id": 0, // 可选,只获取该Agent的采访历史 + "limit": 100 // 可选,返回数量,默认100 + } + + 返回: + { + "success": true, + "data": { + "count": 10, + "history": [ + { + "agent_id": 0, + "response": "我认为...", + "prompt": "你对这件事有什么看法?", + "timestamp": "2025-12-08T10:00:00", + "platform": "reddit" + }, + ... + ] + } + } + """ + try: + data = request.get_json() or {} + + simulation_id = data.get('simulation_id') + platform = data.get('platform') # 不指定则返回两个平台的历史 + agent_id = data.get('agent_id') + limit = data.get('limit', 100) + + if not simulation_id: + return jsonify({ + "success": False, + "error": t('api.requireSimulationId') + }), 400 + + history = SimulationRunner.get_interview_history( + simulation_id=simulation_id, + platform=platform, + agent_id=agent_id, + limit=limit + ) + + return jsonify({ + "success": True, + "data": { + "count": len(history), + "history": history + } + }) + + except Exception as e: + logger.error(f"获取Interview历史失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +@simulation_bp.route('/env-status', methods=['POST']) +def get_env_status(): + """ + 获取模拟环境状态 + + 检查模拟环境是否存活(可以接收Interview命令) + + 请求(JSON): + { + "simulation_id": "sim_xxxx" // 必填,模拟ID + } + + 返回: + { + "success": true, + "data": { + "simulation_id": "sim_xxxx", + "env_alive": true, + "twitter_available": true, + "reddit_available": true, + "message": "环境正在运行,可以接收Interview命令" + } + } + """ + try: + data = request.get_json() or {} + + simulation_id = data.get('simulation_id') + + if not simulation_id: + return jsonify({ + "success": False, + "error": t('api.requireSimulationId') + }), 400 + + env_alive = SimulationRunner.check_env_alive(simulation_id) + + # 获取更详细的状态信息 + env_status = SimulationRunner.get_env_status_detail(simulation_id) + + if env_alive: + message = t('api.envRunning') + else: + message = t('api.envNotRunningShort') + + return jsonify({ + "success": True, + "data": { + "simulation_id": simulation_id, + "env_alive": env_alive, + "twitter_available": env_status.get("twitter_available", False), + "reddit_available": env_status.get("reddit_available", False), + "message": message + } + }) + + except Exception as e: + logger.error(f"获取环境状态失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 + + +@simulation_bp.route('/close-env', methods=['POST']) +def close_simulation_env(): + """ + 关闭模拟环境 + + 向模拟发送关闭环境命令,使其优雅退出等待命令模式。 + + 注意:这不同于 /stop 接口,/stop 会强制终止进程, + 而此接口会让模拟优雅地关闭环境并退出。 + + 请求(JSON): + { + "simulation_id": "sim_xxxx", // 必填,模拟ID + "timeout": 30 // 可选,超时时间(秒),默认30 + } + + 返回: + { + "success": true, + "data": { + "message": "环境关闭命令已发送", + "result": {...}, + "timestamp": "2025-12-08T10:00:01" + } + } + """ + try: + data = request.get_json() or {} + + simulation_id = data.get('simulation_id') + timeout = data.get('timeout', 30) + + if not simulation_id: + return jsonify({ + "success": False, + "error": t('api.requireSimulationId') + }), 400 + + result = SimulationRunner.close_simulation_env( + simulation_id=simulation_id, + timeout=timeout + ) + + # 更新模拟状态 + manager = SimulationManager() + state = manager.get_simulation(simulation_id) + if state: + state.status = SimulationStatus.COMPLETED + manager._save_simulation_state(state) + + return jsonify({ + "success": result.get("success", False), + "data": result + }) + + except ValueError as e: + return jsonify({ + "success": False, + "error": str(e) + }), 400 + + except Exception as e: + logger.error(f"关闭环境失败: {str(e)}") + return jsonify({ + "success": False, + "error": str(e), + "traceback": traceback.format_exc() + }), 500 diff --git a/backend/app/config.py b/backend/app/config.py new file mode 100644 index 00000000..de63e2b4 --- /dev/null +++ b/backend/app/config.py @@ -0,0 +1,75 @@ +""" +配置管理 +统一从项目根目录的 .env 文件加载配置 +""" + +import os +from dotenv import load_dotenv + +# 加载项目根目录的 .env 文件 +# 路径: MiroFish/.env (相对于 backend/app/config.py) +project_root_env = os.path.join(os.path.dirname(__file__), '../../.env') + +if os.path.exists(project_root_env): + load_dotenv(project_root_env, override=True) +else: + # 如果根目录没有 .env,尝试加载环境变量(用于生产环境) + load_dotenv(override=True) + + +class Config: + """Flask配置类""" + + # Flask配置 + SECRET_KEY = os.environ.get('SECRET_KEY', 'mirofish-secret-key') + DEBUG = os.environ.get('FLASK_DEBUG', 'True').lower() == 'true' + + # JSON配置 - 禁用ASCII转义,让中文直接显示(而不是 \uXXXX 格式) + JSON_AS_ASCII = False + + # LLM配置(统一使用OpenAI格式) + LLM_API_KEY = os.environ.get('LLM_API_KEY') + LLM_BASE_URL = os.environ.get('LLM_BASE_URL', 'https://api.openai.com/v1') + LLM_MODEL_NAME = os.environ.get('LLM_MODEL_NAME', 'gpt-4o-mini') + + # Zep配置 + ZEP_API_KEY = os.environ.get('ZEP_API_KEY') + + # 文件上传配置 + MAX_CONTENT_LENGTH = 50 * 1024 * 1024 # 50MB + UPLOAD_FOLDER = os.path.join(os.path.dirname(__file__), '../uploads') + ALLOWED_EXTENSIONS = {'pdf', 'md', 'txt', 'markdown'} + + # 文本处理配置 + DEFAULT_CHUNK_SIZE = 500 # 默认切块大小 + DEFAULT_CHUNK_OVERLAP = 50 # 默认重叠大小 + + # OASIS模拟配置 + OASIS_DEFAULT_MAX_ROUNDS = int(os.environ.get('OASIS_DEFAULT_MAX_ROUNDS', '10')) + OASIS_SIMULATION_DATA_DIR = os.path.join(os.path.dirname(__file__), '../uploads/simulations') + + # OASIS平台可用动作配置 + OASIS_TWITTER_ACTIONS = [ + 'CREATE_POST', 'LIKE_POST', 'REPOST', 'FOLLOW', 'DO_NOTHING', 'QUOTE_POST' + ] + OASIS_REDDIT_ACTIONS = [ + 'LIKE_POST', 'DISLIKE_POST', 'CREATE_POST', 'CREATE_COMMENT', + 'LIKE_COMMENT', 'DISLIKE_COMMENT', 'SEARCH_POSTS', 'SEARCH_USER', + 'TREND', 'REFRESH', 'DO_NOTHING', 'FOLLOW', 'MUTE' + ] + + # Report Agent配置 + REPORT_AGENT_MAX_TOOL_CALLS = int(os.environ.get('REPORT_AGENT_MAX_TOOL_CALLS', '5')) + REPORT_AGENT_MAX_REFLECTION_ROUNDS = int(os.environ.get('REPORT_AGENT_MAX_REFLECTION_ROUNDS', '2')) + REPORT_AGENT_TEMPERATURE = float(os.environ.get('REPORT_AGENT_TEMPERATURE', '0.5')) + + @classmethod + def validate(cls) -> list[str]: + """验证必要配置""" + errors: list[str] = [] + if not cls.LLM_API_KEY: + errors.append("LLM_API_KEY 未配置") + if not cls.ZEP_API_KEY: + errors.append("ZEP_API_KEY 未配置") + return errors + diff --git a/backend/app/models/__init__.py b/backend/app/models/__init__.py new file mode 100644 index 00000000..55bec619 --- /dev/null +++ b/backend/app/models/__init__.py @@ -0,0 +1,9 @@ +""" +数据模型模块 +""" + +from .task import TaskManager, TaskStatus +from .project import Project, ProjectStatus, ProjectManager + +__all__ = ['TaskManager', 'TaskStatus', 'Project', 'ProjectStatus', 'ProjectManager'] + diff --git a/backend/app/models/project.py b/backend/app/models/project.py new file mode 100644 index 00000000..08978937 --- /dev/null +++ b/backend/app/models/project.py @@ -0,0 +1,305 @@ +""" +项目上下文管理 +用于在服务端持久化项目状态,避免前端在接口间传递大量数据 +""" + +import os +import json +import uuid +import shutil +from datetime import datetime +from typing import Dict, Any, List, Optional +from enum import Enum +from dataclasses import dataclass, field, asdict +from ..config import Config + + +class ProjectStatus(str, Enum): + """项目状态""" + CREATED = "created" # 刚创建,文件已上传 + ONTOLOGY_GENERATED = "ontology_generated" # 本体已生成 + GRAPH_BUILDING = "graph_building" # 图谱构建中 + GRAPH_COMPLETED = "graph_completed" # 图谱构建完成 + FAILED = "failed" # 失败 + + +@dataclass +class Project: + """项目数据模型""" + project_id: str + name: str + status: ProjectStatus + created_at: str + updated_at: str + + # 文件信息 + files: List[Dict[str, str]] = field(default_factory=list) # [{filename, path, size}] + total_text_length: int = 0 + + # 本体信息(接口1生成后填充) + ontology: Optional[Dict[str, Any]] = None + analysis_summary: Optional[str] = None + + # 图谱信息(接口2完成后填充) + graph_id: Optional[str] = None + graph_build_task_id: Optional[str] = None + + # 配置 + simulation_requirement: Optional[str] = None + chunk_size: int = 500 + chunk_overlap: int = 50 + + # 错误信息 + error: Optional[str] = None + + def to_dict(self) -> Dict[str, Any]: + """转换为字典""" + return { + "project_id": self.project_id, + "name": self.name, + "status": self.status.value if isinstance(self.status, ProjectStatus) else self.status, + "created_at": self.created_at, + "updated_at": self.updated_at, + "files": self.files, + "total_text_length": self.total_text_length, + "ontology": self.ontology, + "analysis_summary": self.analysis_summary, + "graph_id": self.graph_id, + "graph_build_task_id": self.graph_build_task_id, + "simulation_requirement": self.simulation_requirement, + "chunk_size": self.chunk_size, + "chunk_overlap": self.chunk_overlap, + "error": self.error + } + + @classmethod + def from_dict(cls, data: Dict[str, Any]) -> 'Project': + """从字典创建""" + status = data.get('status', 'created') + if isinstance(status, str): + status = ProjectStatus(status) + + return cls( + project_id=data['project_id'], + name=data.get('name', 'Unnamed Project'), + status=status, + created_at=data.get('created_at', ''), + updated_at=data.get('updated_at', ''), + files=data.get('files', []), + total_text_length=data.get('total_text_length', 0), + ontology=data.get('ontology'), + analysis_summary=data.get('analysis_summary'), + graph_id=data.get('graph_id'), + graph_build_task_id=data.get('graph_build_task_id'), + simulation_requirement=data.get('simulation_requirement'), + chunk_size=data.get('chunk_size', 500), + chunk_overlap=data.get('chunk_overlap', 50), + error=data.get('error') + ) + + +class ProjectManager: + """项目管理器 - 负责项目的持久化存储和检索""" + + # 项目存储根目录 + PROJECTS_DIR = os.path.join(Config.UPLOAD_FOLDER, 'projects') + + @classmethod + def _ensure_projects_dir(cls): + """确保项目目录存在""" + os.makedirs(cls.PROJECTS_DIR, exist_ok=True) + + @classmethod + def _get_project_dir(cls, project_id: str) -> str: + """获取项目目录路径""" + return os.path.join(cls.PROJECTS_DIR, project_id) + + @classmethod + def _get_project_meta_path(cls, project_id: str) -> str: + """获取项目元数据文件路径""" + return os.path.join(cls._get_project_dir(project_id), 'project.json') + + @classmethod + def _get_project_files_dir(cls, project_id: str) -> str: + """获取项目文件存储目录""" + return os.path.join(cls._get_project_dir(project_id), 'files') + + @classmethod + def _get_project_text_path(cls, project_id: str) -> str: + """获取项目提取文本存储路径""" + return os.path.join(cls._get_project_dir(project_id), 'extracted_text.txt') + + @classmethod + def create_project(cls, name: str = "Unnamed Project") -> Project: + """ + 创建新项目 + + Args: + name: 项目名称 + + Returns: + 新创建的Project对象 + """ + cls._ensure_projects_dir() + + project_id = f"proj_{uuid.uuid4().hex[:12]}" + now = datetime.now().isoformat() + + project = Project( + project_id=project_id, + name=name, + status=ProjectStatus.CREATED, + created_at=now, + updated_at=now + ) + + # 创建项目目录结构 + project_dir = cls._get_project_dir(project_id) + files_dir = cls._get_project_files_dir(project_id) + os.makedirs(project_dir, exist_ok=True) + os.makedirs(files_dir, exist_ok=True) + + # 保存项目元数据 + cls.save_project(project) + + return project + + @classmethod + def save_project(cls, project: Project) -> None: + """保存项目元数据""" + project.updated_at = datetime.now().isoformat() + meta_path = cls._get_project_meta_path(project.project_id) + + with open(meta_path, 'w', encoding='utf-8') as f: + json.dump(project.to_dict(), f, ensure_ascii=False, indent=2) + + @classmethod + def get_project(cls, project_id: str) -> Optional[Project]: + """ + 获取项目 + + Args: + project_id: 项目ID + + Returns: + Project对象,如果不存在返回None + """ + meta_path = cls._get_project_meta_path(project_id) + + if not os.path.exists(meta_path): + return None + + with open(meta_path, 'r', encoding='utf-8') as f: + data = json.load(f) + + return Project.from_dict(data) + + @classmethod + def list_projects(cls, limit: int = 50) -> List[Project]: + """ + 列出所有项目 + + Args: + limit: 返回数量限制 + + Returns: + 项目列表,按创建时间倒序 + """ + cls._ensure_projects_dir() + + projects = [] + for project_id in os.listdir(cls.PROJECTS_DIR): + project = cls.get_project(project_id) + if project: + projects.append(project) + + # 按创建时间倒序排序 + projects.sort(key=lambda p: p.created_at, reverse=True) + + return projects[:limit] + + @classmethod + def delete_project(cls, project_id: str) -> bool: + """ + 删除项目及其所有文件 + + Args: + project_id: 项目ID + + Returns: + 是否删除成功 + """ + project_dir = cls._get_project_dir(project_id) + + if not os.path.exists(project_dir): + return False + + shutil.rmtree(project_dir) + return True + + @classmethod + def save_file_to_project(cls, project_id: str, file_storage, original_filename: str) -> Dict[str, str]: + """ + 保存上传的文件到项目目录 + + Args: + project_id: 项目ID + file_storage: Flask的FileStorage对象 + original_filename: 原始文件名 + + Returns: + 文件信息字典 {filename, path, size} + """ + files_dir = cls._get_project_files_dir(project_id) + os.makedirs(files_dir, exist_ok=True) + + # 生成安全的文件名 + ext = os.path.splitext(original_filename)[1].lower() + safe_filename = f"{uuid.uuid4().hex[:8]}{ext}" + file_path = os.path.join(files_dir, safe_filename) + + # 保存文件 + file_storage.save(file_path) + + # 获取文件大小 + file_size = os.path.getsize(file_path) + + return { + "original_filename": original_filename, + "saved_filename": safe_filename, + "path": file_path, + "size": file_size + } + + @classmethod + def save_extracted_text(cls, project_id: str, text: str) -> None: + """保存提取的文本""" + text_path = cls._get_project_text_path(project_id) + with open(text_path, 'w', encoding='utf-8') as f: + f.write(text) + + @classmethod + def get_extracted_text(cls, project_id: str) -> Optional[str]: + """获取提取的文本""" + text_path = cls._get_project_text_path(project_id) + + if not os.path.exists(text_path): + return None + + with open(text_path, 'r', encoding='utf-8') as f: + return f.read() + + @classmethod + def get_project_files(cls, project_id: str) -> List[str]: + """获取项目的所有文件路径""" + files_dir = cls._get_project_files_dir(project_id) + + if not os.path.exists(files_dir): + return [] + + return [ + os.path.join(files_dir, f) + for f in os.listdir(files_dir) + if os.path.isfile(os.path.join(files_dir, f)) + ] + diff --git a/backend/app/models/task.py b/backend/app/models/task.py new file mode 100644 index 00000000..dfebed23 --- /dev/null +++ b/backend/app/models/task.py @@ -0,0 +1,186 @@ +""" +任务状态管理 +用于跟踪长时间运行的任务(如图谱构建) +""" + +import uuid +import threading +from datetime import datetime +from enum import Enum +from typing import Dict, Any, Optional +from dataclasses import dataclass, field + +from ..utils.locale import t + + +class TaskStatus(str, Enum): + """任务状态枚举""" + PENDING = "pending" # 等待中 + PROCESSING = "processing" # 处理中 + COMPLETED = "completed" # 已完成 + FAILED = "failed" # 失败 + + +@dataclass +class Task: + """任务数据类""" + task_id: str + task_type: str + status: TaskStatus + created_at: datetime + updated_at: datetime + progress: int = 0 # 总进度百分比 0-100 + message: str = "" # 状态消息 + result: Optional[Dict] = None # 任务结果 + error: Optional[str] = None # 错误信息 + metadata: Dict = field(default_factory=dict) # 额外元数据 + progress_detail: Dict = field(default_factory=dict) # 详细进度信息 + + def to_dict(self) -> Dict[str, Any]: + """转换为字典""" + return { + "task_id": self.task_id, + "task_type": self.task_type, + "status": self.status.value, + "created_at": self.created_at.isoformat(), + "updated_at": self.updated_at.isoformat(), + "progress": self.progress, + "message": self.message, + "progress_detail": self.progress_detail, + "result": self.result, + "error": self.error, + "metadata": self.metadata, + } + + +class TaskManager: + """ + 任务管理器 + 线程安全的任务状态管理 + """ + + _instance = None + _lock = threading.Lock() + + def __new__(cls): + """单例模式""" + if cls._instance is None: + with cls._lock: + if cls._instance is None: + cls._instance = super().__new__(cls) + cls._instance._tasks: Dict[str, Task] = {} + cls._instance._task_lock = threading.Lock() + return cls._instance + + def create_task(self, task_type: str, metadata: Optional[Dict] = None) -> str: + """ + 创建新任务 + + Args: + task_type: 任务类型 + metadata: 额外元数据 + + Returns: + 任务ID + """ + task_id = str(uuid.uuid4()) + now = datetime.now() + + task = Task( + task_id=task_id, + task_type=task_type, + status=TaskStatus.PENDING, + created_at=now, + updated_at=now, + metadata=metadata or {} + ) + + with self._task_lock: + self._tasks[task_id] = task + + return task_id + + def get_task(self, task_id: str) -> Optional[Task]: + """获取任务""" + with self._task_lock: + return self._tasks.get(task_id) + + def update_task( + self, + task_id: str, + status: Optional[TaskStatus] = None, + progress: Optional[int] = None, + message: Optional[str] = None, + result: Optional[Dict] = None, + error: Optional[str] = None, + progress_detail: Optional[Dict] = None + ): + """ + 更新任务状态 + + Args: + task_id: 任务ID + status: 新状态 + progress: 进度 + message: 消息 + result: 结果 + error: 错误信息 + progress_detail: 详细进度信息 + """ + with self._task_lock: + task = self._tasks.get(task_id) + if task: + task.updated_at = datetime.now() + if status is not None: + task.status = status + if progress is not None: + task.progress = progress + if message is not None: + task.message = message + if result is not None: + task.result = result + if error is not None: + task.error = error + if progress_detail is not None: + task.progress_detail = progress_detail + + def complete_task(self, task_id: str, result: Dict): + """标记任务完成""" + self.update_task( + task_id, + status=TaskStatus.COMPLETED, + progress=100, + message=t('progress.taskComplete'), + result=result + ) + + def fail_task(self, task_id: str, error: str): + """标记任务失败""" + self.update_task( + task_id, + status=TaskStatus.FAILED, + message=t('progress.taskFailed'), + error=error + ) + + def list_tasks(self, task_type: Optional[str] = None) -> list: + """列出任务""" + with self._task_lock: + tasks = list(self._tasks.values()) + if task_type: + tasks = [t for t in tasks if t.task_type == task_type] + return [t.to_dict() for t in sorted(tasks, key=lambda x: x.created_at, reverse=True)] + + def cleanup_old_tasks(self, max_age_hours: int = 24): + """清理旧任务""" + from datetime import timedelta + cutoff = datetime.now() - timedelta(hours=max_age_hours) + + with self._task_lock: + old_ids = [ + tid for tid, task in self._tasks.items() + if task.created_at < cutoff and task.status in [TaskStatus.COMPLETED, TaskStatus.FAILED] + ] + for tid in old_ids: + del self._tasks[tid] + diff --git a/backend/app/services/__init__.py b/backend/app/services/__init__.py new file mode 100644 index 00000000..8db85d86 --- /dev/null +++ b/backend/app/services/__init__.py @@ -0,0 +1,73 @@ +""" +业务服务模块 +""" + +from .ontology_generator import OntologyGenerator +from .graph_builder import GraphBuilderService +from .text_processor import TextProcessor +from .zep_entity_reader import ZepEntityReader, EntityNode, FilteredEntities +from .oasis_profile_generator import OasisProfileGenerator, OasisAgentProfile +from .simulation_manager import SimulationManager, SimulationState, SimulationStatus +from .simulation_config_generator import ( + SimulationConfigGenerator, + SimulationParameters, + AgentActivityConfig, + TimeSimulationConfig, + EventConfig, + PlatformConfig +) +from .simulation_runner import ( + SimulationRunner, + SimulationRunState, + RunnerStatus, + AgentAction, + RoundSummary +) +from .zep_graph_memory_updater import ( + ZepGraphMemoryUpdater, + ZepGraphMemoryManager, + AgentActivity +) +from .simulation_ipc import ( + SimulationIPCClient, + SimulationIPCServer, + IPCCommand, + IPCResponse, + CommandType, + CommandStatus +) + +__all__ = [ + 'OntologyGenerator', + 'GraphBuilderService', + 'TextProcessor', + 'ZepEntityReader', + 'EntityNode', + 'FilteredEntities', + 'OasisProfileGenerator', + 'OasisAgentProfile', + 'SimulationManager', + 'SimulationState', + 'SimulationStatus', + 'SimulationConfigGenerator', + 'SimulationParameters', + 'AgentActivityConfig', + 'TimeSimulationConfig', + 'EventConfig', + 'PlatformConfig', + 'SimulationRunner', + 'SimulationRunState', + 'RunnerStatus', + 'AgentAction', + 'RoundSummary', + 'ZepGraphMemoryUpdater', + 'ZepGraphMemoryManager', + 'AgentActivity', + 'SimulationIPCClient', + 'SimulationIPCServer', + 'IPCCommand', + 'IPCResponse', + 'CommandType', + 'CommandStatus', +] + diff --git a/backend/app/services/graph_builder.py b/backend/app/services/graph_builder.py new file mode 100644 index 00000000..37c9969c --- /dev/null +++ b/backend/app/services/graph_builder.py @@ -0,0 +1,506 @@ +""" +图谱构建服务 +接口2:使用Zep API构建Standalone Graph +""" + +import os +import uuid +import time +import threading +from typing import Dict, Any, List, Optional, Callable +from dataclasses import dataclass + +from zep_cloud.client import Zep +from zep_cloud import EpisodeData, EntityEdgeSourceTarget + +from ..config import Config +from ..models.task import TaskManager, TaskStatus +from ..utils.zep_paging import fetch_all_nodes, fetch_all_edges +from .text_processor import TextProcessor +from ..utils.locale import t, get_locale, set_locale + + +@dataclass +class GraphInfo: + """图谱信息""" + graph_id: str + node_count: int + edge_count: int + entity_types: List[str] + + def to_dict(self) -> Dict[str, Any]: + return { + "graph_id": self.graph_id, + "node_count": self.node_count, + "edge_count": self.edge_count, + "entity_types": self.entity_types, + } + + +class GraphBuilderService: + """ + 图谱构建服务 + 负责调用Zep API构建知识图谱 + """ + + def __init__(self, api_key: Optional[str] = None): + self.api_key = api_key or Config.ZEP_API_KEY + if not self.api_key: + raise ValueError("ZEP_API_KEY 未配置") + + self.client = Zep(api_key=self.api_key) + self.task_manager = TaskManager() + + def build_graph_async( + self, + text: str, + ontology: Dict[str, Any], + graph_name: str = "MiroFish Graph", + chunk_size: int = 500, + chunk_overlap: int = 50, + batch_size: int = 3 + ) -> str: + """ + 异步构建图谱 + + Args: + text: 输入文本 + ontology: 本体定义(来自接口1的输出) + graph_name: 图谱名称 + chunk_size: 文本块大小 + chunk_overlap: 块重叠大小 + batch_size: 每批发送的块数量 + + Returns: + 任务ID + """ + # 创建任务 + task_id = self.task_manager.create_task( + task_type="graph_build", + metadata={ + "graph_name": graph_name, + "chunk_size": chunk_size, + "text_length": len(text), + } + ) + + # Capture locale before spawning background thread + current_locale = get_locale() + + # 在后台线程中执行构建 + thread = threading.Thread( + target=self._build_graph_worker, + args=(task_id, text, ontology, graph_name, chunk_size, chunk_overlap, batch_size, current_locale) + ) + thread.daemon = True + thread.start() + + return task_id + + def _build_graph_worker( + self, + task_id: str, + text: str, + ontology: Dict[str, Any], + graph_name: str, + chunk_size: int, + chunk_overlap: int, + batch_size: int, + locale: str = 'zh' + ): + """图谱构建工作线程""" + set_locale(locale) + try: + self.task_manager.update_task( + task_id, + status=TaskStatus.PROCESSING, + progress=5, + message=t('progress.startBuildingGraph') + ) + + # 1. 创建图谱 + graph_id = self.create_graph(graph_name) + self.task_manager.update_task( + task_id, + progress=10, + message=t('progress.graphCreated', graphId=graph_id) + ) + + # 2. 设置本体 + self.set_ontology(graph_id, ontology) + self.task_manager.update_task( + task_id, + progress=15, + message=t('progress.ontologySet') + ) + + # 3. 文本分块 + chunks = TextProcessor.split_text(text, chunk_size, chunk_overlap) + total_chunks = len(chunks) + self.task_manager.update_task( + task_id, + progress=20, + message=t('progress.textSplit', count=total_chunks) + ) + + # 4. 分批发送数据 + episode_uuids = self.add_text_batches( + graph_id, chunks, batch_size, + lambda msg, prog: self.task_manager.update_task( + task_id, + progress=20 + int(prog * 0.4), # 20-60% + message=msg + ) + ) + + # 5. 等待Zep处理完成 + self.task_manager.update_task( + task_id, + progress=60, + message=t('progress.waitingZepProcess') + ) + + self._wait_for_episodes( + episode_uuids, + lambda msg, prog: self.task_manager.update_task( + task_id, + progress=60 + int(prog * 0.3), # 60-90% + message=msg + ) + ) + + # 6. 获取图谱信息 + self.task_manager.update_task( + task_id, + progress=90, + message=t('progress.fetchingGraphInfo') + ) + + graph_info = self._get_graph_info(graph_id) + + # 完成 + self.task_manager.complete_task(task_id, { + "graph_id": graph_id, + "graph_info": graph_info.to_dict(), + "chunks_processed": total_chunks, + }) + + except Exception as e: + import traceback + error_msg = f"{str(e)}\n{traceback.format_exc()}" + self.task_manager.fail_task(task_id, error_msg) + + def create_graph(self, name: str) -> str: + """创建Zep图谱(公开方法)""" + graph_id = f"mirofish_{uuid.uuid4().hex[:16]}" + + self.client.graph.create( + graph_id=graph_id, + name=name, + description="MiroFish Social Simulation Graph" + ) + + return graph_id + + def set_ontology(self, graph_id: str, ontology: Dict[str, Any]): + """设置图谱本体(公开方法)""" + import warnings + from typing import Optional + from pydantic import Field + from zep_cloud.external_clients.ontology import EntityModel, EntityText, EdgeModel + + # 抑制 Pydantic v2 关于 Field(default=None) 的警告 + # 这是 Zep SDK 要求的用法,警告来自动态类创建,可以安全忽略 + warnings.filterwarnings('ignore', category=UserWarning, module='pydantic') + + # Zep 保留名称,不能作为属性名 + RESERVED_NAMES = {'uuid', 'name', 'group_id', 'name_embedding', 'summary', 'created_at'} + + def safe_attr_name(attr_name: str) -> str: + """将保留名称转换为安全名称""" + if attr_name.lower() in RESERVED_NAMES: + return f"entity_{attr_name}" + return attr_name + + # 动态创建实体类型 + entity_types = {} + for entity_def in ontology.get("entity_types", []): + name = entity_def["name"] + description = entity_def.get("description", f"A {name} entity.") + + # 创建属性字典和类型注解(Pydantic v2 需要) + attrs = {"__doc__": description} + annotations = {} + + for attr_def in entity_def.get("attributes", []): + attr_name = safe_attr_name(attr_def["name"]) # 使用安全名称 + attr_desc = attr_def.get("description", attr_name) + # Zep API 需要 Field 的 description,这是必需的 + attrs[attr_name] = Field(description=attr_desc, default=None) + annotations[attr_name] = Optional[EntityText] # 类型注解 + + attrs["__annotations__"] = annotations + + # 动态创建类 + entity_class = type(name, (EntityModel,), attrs) + entity_class.__doc__ = description + entity_types[name] = entity_class + + # 动态创建边类型 + edge_definitions = {} + for edge_def in ontology.get("edge_types", []): + name = edge_def["name"] + description = edge_def.get("description", f"A {name} relationship.") + + # 创建属性字典和类型注解 + attrs = {"__doc__": description} + annotations = {} + + for attr_def in edge_def.get("attributes", []): + attr_name = safe_attr_name(attr_def["name"]) # 使用安全名称 + attr_desc = attr_def.get("description", attr_name) + # Zep API 需要 Field 的 description,这是必需的 + attrs[attr_name] = Field(description=attr_desc, default=None) + annotations[attr_name] = Optional[str] # 边属性用str类型 + + attrs["__annotations__"] = annotations + + # 动态创建类 + class_name = ''.join(word.capitalize() for word in name.split('_')) + edge_class = type(class_name, (EdgeModel,), attrs) + edge_class.__doc__ = description + + # 构建source_targets + source_targets = [] + for st in edge_def.get("source_targets", []): + source_targets.append( + EntityEdgeSourceTarget( + source=st.get("source", "Entity"), + target=st.get("target", "Entity") + ) + ) + + if source_targets: + edge_definitions[name] = (edge_class, source_targets) + + # 调用Zep API设置本体 + if entity_types or edge_definitions: + self.client.graph.set_ontology( + graph_ids=[graph_id], + entities=entity_types if entity_types else None, + edges=edge_definitions if edge_definitions else None, + ) + + def add_text_batches( + self, + graph_id: str, + chunks: List[str], + batch_size: int = 3, + progress_callback: Optional[Callable] = None + ) -> List[str]: + """分批添加文本到图谱,返回所有 episode 的 uuid 列表""" + episode_uuids = [] + total_chunks = len(chunks) + + for i in range(0, total_chunks, batch_size): + batch_chunks = chunks[i:i + batch_size] + batch_num = i // batch_size + 1 + total_batches = (total_chunks + batch_size - 1) // batch_size + + if progress_callback: + progress = (i + len(batch_chunks)) / total_chunks + progress_callback( + t('progress.sendingBatch', current=batch_num, total=total_batches, chunks=len(batch_chunks)), + progress + ) + + # 构建episode数据 + episodes = [ + EpisodeData(data=chunk, type="text") + for chunk in batch_chunks + ] + + # 发送到Zep + try: + batch_result = self.client.graph.add_batch( + graph_id=graph_id, + episodes=episodes + ) + + # 收集返回的 episode uuid + if batch_result and isinstance(batch_result, list): + for ep in batch_result: + ep_uuid = getattr(ep, 'uuid_', None) or getattr(ep, 'uuid', None) + if ep_uuid: + episode_uuids.append(ep_uuid) + + # 避免请求过快 + time.sleep(1) + + except Exception as e: + if progress_callback: + progress_callback(t('progress.batchFailed', batch=batch_num, error=str(e)), 0) + raise + + return episode_uuids + + def _wait_for_episodes( + self, + episode_uuids: List[str], + progress_callback: Optional[Callable] = None, + timeout: int = 600 + ): + """等待所有 episode 处理完成(通过查询每个 episode 的 processed 状态)""" + if not episode_uuids: + if progress_callback: + progress_callback(t('progress.noEpisodesWait'), 1.0) + return + + start_time = time.time() + pending_episodes = set(episode_uuids) + completed_count = 0 + total_episodes = len(episode_uuids) + + if progress_callback: + progress_callback(t('progress.waitingEpisodes', count=total_episodes), 0) + + while pending_episodes: + if time.time() - start_time > timeout: + if progress_callback: + progress_callback( + t('progress.episodesTimeout', completed=completed_count, total=total_episodes), + completed_count / total_episodes + ) + break + + # 检查每个 episode 的处理状态 + for ep_uuid in list(pending_episodes): + try: + episode = self.client.graph.episode.get(uuid_=ep_uuid) + is_processed = getattr(episode, 'processed', False) + + if is_processed: + pending_episodes.remove(ep_uuid) + completed_count += 1 + + except Exception as e: + # 忽略单个查询错误,继续 + pass + + elapsed = int(time.time() - start_time) + if progress_callback: + progress_callback( + t('progress.zepProcessing', completed=completed_count, total=total_episodes, pending=len(pending_episodes), elapsed=elapsed), + completed_count / total_episodes if total_episodes > 0 else 0 + ) + + if pending_episodes: + time.sleep(3) # 每3秒检查一次 + + if progress_callback: + progress_callback(t('progress.processingComplete', completed=completed_count, total=total_episodes), 1.0) + + def _get_graph_info(self, graph_id: str) -> GraphInfo: + """获取图谱信息""" + # 获取节点(分页) + nodes = fetch_all_nodes(self.client, graph_id) + + # 获取边(分页) + edges = fetch_all_edges(self.client, graph_id) + + # 统计实体类型 + entity_types = set() + for node in nodes: + if node.labels: + for label in node.labels: + if label not in ["Entity", "Node"]: + entity_types.add(label) + + return GraphInfo( + graph_id=graph_id, + node_count=len(nodes), + edge_count=len(edges), + entity_types=list(entity_types) + ) + + def get_graph_data(self, graph_id: str) -> Dict[str, Any]: + """ + 获取完整图谱数据(包含详细信息) + + Args: + graph_id: 图谱ID + + Returns: + 包含nodes和edges的字典,包括时间信息、属性等详细数据 + """ + nodes = fetch_all_nodes(self.client, graph_id) + edges = fetch_all_edges(self.client, graph_id) + + # 创建节点映射用于获取节点名称 + node_map = {} + for node in nodes: + node_map[node.uuid_] = node.name or "" + + nodes_data = [] + for node in nodes: + # 获取创建时间 + created_at = getattr(node, 'created_at', None) + if created_at: + created_at = str(created_at) + + nodes_data.append({ + "uuid": node.uuid_, + "name": node.name, + "labels": node.labels or [], + "summary": node.summary or "", + "attributes": node.attributes or {}, + "created_at": created_at, + }) + + edges_data = [] + for edge in edges: + # 获取时间信息 + created_at = getattr(edge, 'created_at', None) + valid_at = getattr(edge, 'valid_at', None) + invalid_at = getattr(edge, 'invalid_at', None) + expired_at = getattr(edge, 'expired_at', None) + + # 获取 episodes + episodes = getattr(edge, 'episodes', None) or getattr(edge, 'episode_ids', None) + if episodes and not isinstance(episodes, list): + episodes = [str(episodes)] + elif episodes: + episodes = [str(e) for e in episodes] + + # 获取 fact_type + fact_type = getattr(edge, 'fact_type', None) or edge.name or "" + + edges_data.append({ + "uuid": edge.uuid_, + "name": edge.name or "", + "fact": edge.fact or "", + "fact_type": fact_type, + "source_node_uuid": edge.source_node_uuid, + "target_node_uuid": edge.target_node_uuid, + "source_node_name": node_map.get(edge.source_node_uuid, ""), + "target_node_name": node_map.get(edge.target_node_uuid, ""), + "attributes": edge.attributes or {}, + "created_at": str(created_at) if created_at else None, + "valid_at": str(valid_at) if valid_at else None, + "invalid_at": str(invalid_at) if invalid_at else None, + "expired_at": str(expired_at) if expired_at else None, + "episodes": episodes or [], + }) + + return { + "graph_id": graph_id, + "nodes": nodes_data, + "edges": edges_data, + "node_count": len(nodes_data), + "edge_count": len(edges_data), + } + + def delete_graph(self, graph_id: str): + """删除图谱""" + self.client.graph.delete(graph_id=graph_id) + diff --git a/backend/app/services/oasis_profile_generator.py b/backend/app/services/oasis_profile_generator.py new file mode 100644 index 00000000..7704a627 --- /dev/null +++ b/backend/app/services/oasis_profile_generator.py @@ -0,0 +1,1205 @@ +""" +OASIS Agent Profile生成器 +将Zep图谱中的实体转换为OASIS模拟平台所需的Agent Profile格式 + +优化改进: +1. 调用Zep检索功能二次丰富节点信息 +2. 优化提示词生成非常详细的人设 +3. 区分个人实体和抽象群体实体 +""" + +import json +import random +import time +from typing import Dict, Any, List, Optional +from dataclasses import dataclass, field +from datetime import datetime + +from openai import OpenAI +from zep_cloud.client import Zep + +from ..config import Config +from ..utils.logger import get_logger +from ..utils.locale import get_language_instruction, get_locale, set_locale, t +from .zep_entity_reader import EntityNode, ZepEntityReader + +logger = get_logger('mirofish.oasis_profile') + + +@dataclass +class OasisAgentProfile: + """OASIS Agent Profile数据结构""" + # 通用字段 + user_id: int + user_name: str + name: str + bio: str + persona: str + + # 可选字段 - Reddit风格 + karma: int = 1000 + + # 可选字段 - Twitter风格 + friend_count: int = 100 + follower_count: int = 150 + statuses_count: int = 500 + + # 额外人设信息 + age: Optional[int] = None + gender: Optional[str] = None + mbti: Optional[str] = None + country: Optional[str] = None + profession: Optional[str] = None + interested_topics: List[str] = field(default_factory=list) + + # 来源实体信息 + source_entity_uuid: Optional[str] = None + source_entity_type: Optional[str] = None + + created_at: str = field(default_factory=lambda: datetime.now().strftime("%Y-%m-%d")) + + def to_reddit_format(self) -> Dict[str, Any]: + """转换为Reddit平台格式""" + profile = { + "user_id": self.user_id, + "username": self.user_name, # OASIS 库要求字段名为 username(无下划线) + "name": self.name, + "bio": self.bio, + "persona": self.persona, + "karma": self.karma, + "created_at": self.created_at, + } + + # 添加额外人设信息(如果有) + if self.age: + profile["age"] = self.age + if self.gender: + profile["gender"] = self.gender + if self.mbti: + profile["mbti"] = self.mbti + if self.country: + profile["country"] = self.country + if self.profession: + profile["profession"] = self.profession + if self.interested_topics: + profile["interested_topics"] = self.interested_topics + + return profile + + def to_twitter_format(self) -> Dict[str, Any]: + """转换为Twitter平台格式""" + profile = { + "user_id": self.user_id, + "username": self.user_name, # OASIS 库要求字段名为 username(无下划线) + "name": self.name, + "bio": self.bio, + "persona": self.persona, + "friend_count": self.friend_count, + "follower_count": self.follower_count, + "statuses_count": self.statuses_count, + "created_at": self.created_at, + } + + # 添加额外人设信息 + if self.age: + profile["age"] = self.age + if self.gender: + profile["gender"] = self.gender + if self.mbti: + profile["mbti"] = self.mbti + if self.country: + profile["country"] = self.country + if self.profession: + profile["profession"] = self.profession + if self.interested_topics: + profile["interested_topics"] = self.interested_topics + + return profile + + def to_dict(self) -> Dict[str, Any]: + """转换为完整字典格式""" + return { + "user_id": self.user_id, + "user_name": self.user_name, + "name": self.name, + "bio": self.bio, + "persona": self.persona, + "karma": self.karma, + "friend_count": self.friend_count, + "follower_count": self.follower_count, + "statuses_count": self.statuses_count, + "age": self.age, + "gender": self.gender, + "mbti": self.mbti, + "country": self.country, + "profession": self.profession, + "interested_topics": self.interested_topics, + "source_entity_uuid": self.source_entity_uuid, + "source_entity_type": self.source_entity_type, + "created_at": self.created_at, + } + + +class OasisProfileGenerator: + """ + OASIS Profile生成器 + + 将Zep图谱中的实体转换为OASIS模拟所需的Agent Profile + + 优化特性: + 1. 调用Zep图谱检索功能获取更丰富的上下文 + 2. 生成非常详细的人设(包括基本信息、职业经历、性格特征、社交媒体行为等) + 3. 区分个人实体和抽象群体实体 + """ + + # MBTI类型列表 + MBTI_TYPES = [ + "INTJ", "INTP", "ENTJ", "ENTP", + "INFJ", "INFP", "ENFJ", "ENFP", + "ISTJ", "ISFJ", "ESTJ", "ESFJ", + "ISTP", "ISFP", "ESTP", "ESFP" + ] + + # 常见国家列表 + COUNTRIES = [ + "China", "US", "UK", "Japan", "Germany", "France", + "Canada", "Australia", "Brazil", "India", "South Korea" + ] + + # 个人类型实体(需要生成具体人设) + INDIVIDUAL_ENTITY_TYPES = [ + "student", "alumni", "professor", "person", "publicfigure", + "expert", "faculty", "official", "journalist", "activist" + ] + + # 群体/机构类型实体(需要生成群体代表人设) + GROUP_ENTITY_TYPES = [ + "university", "governmentagency", "organization", "ngo", + "mediaoutlet", "company", "institution", "group", "community" + ] + + def __init__( + self, + api_key: Optional[str] = None, + base_url: Optional[str] = None, + model_name: Optional[str] = None, + zep_api_key: Optional[str] = None, + graph_id: Optional[str] = None + ): + self.api_key = api_key or Config.LLM_API_KEY + self.base_url = base_url or Config.LLM_BASE_URL + self.model_name = model_name or Config.LLM_MODEL_NAME + + if not self.api_key: + raise ValueError("LLM_API_KEY 未配置") + + self.client = OpenAI( + api_key=self.api_key, + base_url=self.base_url + ) + + # Zep客户端用于检索丰富上下文 + self.zep_api_key = zep_api_key or Config.ZEP_API_KEY + self.zep_client = None + self.graph_id = graph_id + + if self.zep_api_key: + try: + self.zep_client = Zep(api_key=self.zep_api_key) + except Exception as e: + logger.warning(f"Zep客户端初始化失败: {e}") + + def generate_profile_from_entity( + self, + entity: EntityNode, + user_id: int, + use_llm: bool = True + ) -> OasisAgentProfile: + """ + 从Zep实体生成OASIS Agent Profile + + Args: + entity: Zep实体节点 + user_id: 用户ID(用于OASIS) + use_llm: 是否使用LLM生成详细人设 + + Returns: + OasisAgentProfile + """ + entity_type = entity.get_entity_type() or "Entity" + + # 基础信息 + name = entity.name + user_name = self._generate_username(name) + + # 构建上下文信息 + context = self._build_entity_context(entity) + + if use_llm: + # 使用LLM生成详细人设 + profile_data = self._generate_profile_with_llm( + entity_name=name, + entity_type=entity_type, + entity_summary=entity.summary, + entity_attributes=entity.attributes, + context=context + ) + else: + # 使用规则生成基础人设 + profile_data = self._generate_profile_rule_based( + entity_name=name, + entity_type=entity_type, + entity_summary=entity.summary, + entity_attributes=entity.attributes + ) + + return OasisAgentProfile( + user_id=user_id, + user_name=user_name, + name=name, + bio=profile_data.get("bio", f"{entity_type}: {name}"), + persona=profile_data.get("persona", entity.summary or f"A {entity_type} named {name}."), + karma=profile_data.get("karma", random.randint(500, 5000)), + friend_count=profile_data.get("friend_count", random.randint(50, 500)), + follower_count=profile_data.get("follower_count", random.randint(100, 1000)), + statuses_count=profile_data.get("statuses_count", random.randint(100, 2000)), + age=profile_data.get("age"), + gender=profile_data.get("gender"), + mbti=profile_data.get("mbti"), + country=profile_data.get("country"), + profession=profile_data.get("profession"), + interested_topics=profile_data.get("interested_topics", []), + source_entity_uuid=entity.uuid, + source_entity_type=entity_type, + ) + + def _generate_username(self, name: str) -> str: + """生成用户名""" + # 移除特殊字符,转换为小写 + username = name.lower().replace(" ", "_") + username = ''.join(c for c in username if c.isalnum() or c == '_') + + # 添加随机后缀避免重复 + suffix = random.randint(100, 999) + return f"{username}_{suffix}" + + def _search_zep_for_entity(self, entity: EntityNode) -> Dict[str, Any]: + """ + 使用Zep图谱混合搜索功能获取实体相关的丰富信息 + + Zep没有内置混合搜索接口,需要分别搜索edges和nodes然后合并结果。 + 使用并行请求同时搜索,提高效率。 + + Args: + entity: 实体节点对象 + + Returns: + 包含facts, node_summaries, context的字典 + """ + import concurrent.futures + + if not self.zep_client: + return {"facts": [], "node_summaries": [], "context": ""} + + entity_name = entity.name + + results = { + "facts": [], + "node_summaries": [], + "context": "" + } + + # 必须有graph_id才能进行搜索 + if not self.graph_id: + logger.debug(f"跳过Zep检索:未设置graph_id") + return results + + comprehensive_query = t('progress.zepSearchQuery', name=entity_name) + + def search_edges(): + """搜索边(事实/关系)- 带重试机制""" + max_retries = 3 + last_exception = None + delay = 2.0 + + for attempt in range(max_retries): + try: + return self.zep_client.graph.search( + query=comprehensive_query, + graph_id=self.graph_id, + limit=30, + scope="edges", + reranker="rrf" + ) + except Exception as e: + last_exception = e + if attempt < max_retries - 1: + logger.debug(f"Zep边搜索第 {attempt + 1} 次失败: {str(e)[:80]}, 重试中...") + time.sleep(delay) + delay *= 2 + else: + logger.debug(f"Zep边搜索在 {max_retries} 次尝试后仍失败: {e}") + return None + + def search_nodes(): + """搜索节点(实体摘要)- 带重试机制""" + max_retries = 3 + last_exception = None + delay = 2.0 + + for attempt in range(max_retries): + try: + return self.zep_client.graph.search( + query=comprehensive_query, + graph_id=self.graph_id, + limit=20, + scope="nodes", + reranker="rrf" + ) + except Exception as e: + last_exception = e + if attempt < max_retries - 1: + logger.debug(f"Zep节点搜索第 {attempt + 1} 次失败: {str(e)[:80]}, 重试中...") + time.sleep(delay) + delay *= 2 + else: + logger.debug(f"Zep节点搜索在 {max_retries} 次尝试后仍失败: {e}") + return None + + try: + # 并行执行edges和nodes搜索 + with concurrent.futures.ThreadPoolExecutor(max_workers=2) as executor: + edge_future = executor.submit(search_edges) + node_future = executor.submit(search_nodes) + + # 获取结果 + edge_result = edge_future.result(timeout=30) + node_result = node_future.result(timeout=30) + + # 处理边搜索结果 + all_facts = set() + if edge_result and hasattr(edge_result, 'edges') and edge_result.edges: + for edge in edge_result.edges: + if hasattr(edge, 'fact') and edge.fact: + all_facts.add(edge.fact) + results["facts"] = list(all_facts) + + # 处理节点搜索结果 + all_summaries = set() + if node_result and hasattr(node_result, 'nodes') and node_result.nodes: + for node in node_result.nodes: + if hasattr(node, 'summary') and node.summary: + all_summaries.add(node.summary) + if hasattr(node, 'name') and node.name and node.name != entity_name: + all_summaries.add(f"相关实体: {node.name}") + results["node_summaries"] = list(all_summaries) + + # 构建综合上下文 + context_parts = [] + if results["facts"]: + context_parts.append("事实信息:\n" + "\n".join(f"- {f}" for f in results["facts"][:20])) + if results["node_summaries"]: + context_parts.append("相关实体:\n" + "\n".join(f"- {s}" for s in results["node_summaries"][:10])) + results["context"] = "\n\n".join(context_parts) + + logger.info(f"Zep混合检索完成: {entity_name}, 获取 {len(results['facts'])} 条事实, {len(results['node_summaries'])} 个相关节点") + + except concurrent.futures.TimeoutError: + logger.warning(f"Zep检索超时 ({entity_name})") + except Exception as e: + logger.warning(f"Zep检索失败 ({entity_name}): {e}") + + return results + + def _build_entity_context(self, entity: EntityNode) -> str: + """ + 构建实体的完整上下文信息 + + 包括: + 1. 实体本身的边信息(事实) + 2. 关联节点的详细信息 + 3. Zep混合检索到的丰富信息 + """ + context_parts = [] + + # 1. 添加实体属性信息 + if entity.attributes: + attrs = [] + for key, value in entity.attributes.items(): + if value and str(value).strip(): + attrs.append(f"- {key}: {value}") + if attrs: + context_parts.append("### 实体属性\n" + "\n".join(attrs)) + + # 2. 添加相关边信息(事实/关系) + existing_facts = set() + if entity.related_edges: + relationships = [] + for edge in entity.related_edges: # 不限制数量 + fact = edge.get("fact", "") + edge_name = edge.get("edge_name", "") + direction = edge.get("direction", "") + + if fact: + relationships.append(f"- {fact}") + existing_facts.add(fact) + elif edge_name: + if direction == "outgoing": + relationships.append(f"- {entity.name} --[{edge_name}]--> (相关实体)") + else: + relationships.append(f"- (相关实体) --[{edge_name}]--> {entity.name}") + + if relationships: + context_parts.append("### 相关事实和关系\n" + "\n".join(relationships)) + + # 3. 添加关联节点的详细信息 + if entity.related_nodes: + related_info = [] + for node in entity.related_nodes: # 不限制数量 + node_name = node.get("name", "") + node_labels = node.get("labels", []) + node_summary = node.get("summary", "") + + # 过滤掉默认标签 + custom_labels = [l for l in node_labels if l not in ["Entity", "Node"]] + label_str = f" ({', '.join(custom_labels)})" if custom_labels else "" + + if node_summary: + related_info.append(f"- **{node_name}**{label_str}: {node_summary}") + else: + related_info.append(f"- **{node_name}**{label_str}") + + if related_info: + context_parts.append("### 关联实体信息\n" + "\n".join(related_info)) + + # 4. 使用Zep混合检索获取更丰富的信息 + zep_results = self._search_zep_for_entity(entity) + + if zep_results.get("facts"): + # 去重:排除已存在的事实 + new_facts = [f for f in zep_results["facts"] if f not in existing_facts] + if new_facts: + context_parts.append("### Zep检索到的事实信息\n" + "\n".join(f"- {f}" for f in new_facts[:15])) + + if zep_results.get("node_summaries"): + context_parts.append("### Zep检索到的相关节点\n" + "\n".join(f"- {s}" for s in zep_results["node_summaries"][:10])) + + return "\n\n".join(context_parts) + + def _is_individual_entity(self, entity_type: str) -> bool: + """判断是否是个人类型实体""" + return entity_type.lower() in self.INDIVIDUAL_ENTITY_TYPES + + def _is_group_entity(self, entity_type: str) -> bool: + """判断是否是群体/机构类型实体""" + return entity_type.lower() in self.GROUP_ENTITY_TYPES + + def _generate_profile_with_llm( + self, + entity_name: str, + entity_type: str, + entity_summary: str, + entity_attributes: Dict[str, Any], + context: str + ) -> Dict[str, Any]: + """ + 使用LLM生成非常详细的人设 + + 根据实体类型区分: + - 个人实体:生成具体的人物设定 + - 群体/机构实体:生成代表性账号设定 + """ + + is_individual = self._is_individual_entity(entity_type) + + if is_individual: + prompt = self._build_individual_persona_prompt( + entity_name, entity_type, entity_summary, entity_attributes, context + ) + else: + prompt = self._build_group_persona_prompt( + entity_name, entity_type, entity_summary, entity_attributes, context + ) + + # 尝试多次生成,直到成功或达到最大重试次数 + max_attempts = 3 + last_error = None + + for attempt in range(max_attempts): + try: + response = self.client.chat.completions.create( + model=self.model_name, + messages=[ + {"role": "system", "content": self._get_system_prompt(is_individual)}, + {"role": "user", "content": prompt} + ], + response_format={"type": "json_object"}, + temperature=0.7 - (attempt * 0.1) # 每次重试降低温度 + # 不设置max_tokens,让LLM自由发挥 + ) + + content = response.choices[0].message.content + + # 检查是否被截断(finish_reason不是'stop') + finish_reason = response.choices[0].finish_reason + if finish_reason == 'length': + logger.warning(f"LLM输出被截断 (attempt {attempt+1}), 尝试修复...") + content = self._fix_truncated_json(content) + + # 尝试解析JSON + try: + result = json.loads(content) + + # 验证必需字段 + if "bio" not in result or not result["bio"]: + result["bio"] = entity_summary[:200] if entity_summary else f"{entity_type}: {entity_name}" + if "persona" not in result or not result["persona"]: + result["persona"] = entity_summary or f"{entity_name}是一个{entity_type}。" + + return result + + except json.JSONDecodeError as je: + logger.warning(f"JSON解析失败 (attempt {attempt+1}): {str(je)[:80]}") + + # 尝试修复JSON + result = self._try_fix_json(content, entity_name, entity_type, entity_summary) + if result.get("_fixed"): + del result["_fixed"] + return result + + last_error = je + + except Exception as e: + logger.warning(f"LLM调用失败 (attempt {attempt+1}): {str(e)[:80]}") + last_error = e + import time + time.sleep(1 * (attempt + 1)) # 指数退避 + + logger.warning(f"LLM生成人设失败({max_attempts}次尝试): {last_error}, 使用规则生成") + return self._generate_profile_rule_based( + entity_name, entity_type, entity_summary, entity_attributes + ) + + def _fix_truncated_json(self, content: str) -> str: + """修复被截断的JSON(输出被max_tokens限制截断)""" + import re + + # 如果JSON被截断,尝试闭合它 + content = content.strip() + + # 计算未闭合的括号 + open_braces = content.count('{') - content.count('}') + open_brackets = content.count('[') - content.count(']') + + # 检查是否有未闭合的字符串 + # 简单检查:如果最后一个引号后没有逗号或闭合括号,可能是字符串被截断 + if content and content[-1] not in '",}]': + # 尝试闭合字符串 + content += '"' + + # 闭合括号 + content += ']' * open_brackets + content += '}' * open_braces + + return content + + def _try_fix_json(self, content: str, entity_name: str, entity_type: str, entity_summary: str = "") -> Dict[str, Any]: + """尝试修复损坏的JSON""" + import re + + # 1. 首先尝试修复被截断的情况 + content = self._fix_truncated_json(content) + + # 2. 尝试提取JSON部分 + json_match = re.search(r'\{[\s\S]*\}', content) + if json_match: + json_str = json_match.group() + + # 3. 处理字符串中的换行符问题 + # 找到所有字符串值并替换其中的换行符 + def fix_string_newlines(match): + s = match.group(0) + # 替换字符串内的实际换行符为空格 + s = s.replace('\n', ' ').replace('\r', ' ') + # 替换多余空格 + s = re.sub(r'\s+', ' ', s) + return s + + # 匹配JSON字符串值 + json_str = re.sub(r'"[^"\\]*(?:\\.[^"\\]*)*"', fix_string_newlines, json_str) + + # 4. 尝试解析 + try: + result = json.loads(json_str) + result["_fixed"] = True + return result + except json.JSONDecodeError as e: + # 5. 如果还是失败,尝试更激进的修复 + try: + # 移除所有控制字符 + json_str = re.sub(r'[\x00-\x1f\x7f-\x9f]', ' ', json_str) + # 替换所有连续空白 + json_str = re.sub(r'\s+', ' ', json_str) + result = json.loads(json_str) + result["_fixed"] = True + return result + except: + pass + + # 6. 尝试从内容中提取部分信息 + bio_match = re.search(r'"bio"\s*:\s*"([^"]*)"', content) + persona_match = re.search(r'"persona"\s*:\s*"([^"]*)', content) # 可能被截断 + + bio = bio_match.group(1) if bio_match else (entity_summary[:200] if entity_summary else f"{entity_type}: {entity_name}") + persona = persona_match.group(1) if persona_match else (entity_summary or f"{entity_name}是一个{entity_type}。") + + # 如果提取到了有意义的内容,标记为已修复 + if bio_match or persona_match: + logger.info(f"从损坏的JSON中提取了部分信息") + return { + "bio": bio, + "persona": persona, + "_fixed": True + } + + # 7. 完全失败,返回基础结构 + logger.warning(f"JSON修复失败,返回基础结构") + return { + "bio": entity_summary[:200] if entity_summary else f"{entity_type}: {entity_name}", + "persona": entity_summary or f"{entity_name}是一个{entity_type}。" + } + + def _get_system_prompt(self, is_individual: bool) -> str: + """获取系统提示词""" + base_prompt = "你是社交媒体用户画像生成专家。生成详细、真实的人设用于舆论模拟,最大程度还原已有现实情况。必须返回有效的JSON格式,所有字符串值不能包含未转义的换行符。" + return f"{base_prompt}\n\n{get_language_instruction()}" + + def _build_individual_persona_prompt( + self, + entity_name: str, + entity_type: str, + entity_summary: str, + entity_attributes: Dict[str, Any], + context: str + ) -> str: + """构建个人实体的详细人设提示词""" + + attrs_str = json.dumps(entity_attributes, ensure_ascii=False) if entity_attributes else "无" + context_str = context[:3000] if context else "无额外上下文" + + return f"""为实体生成详细的社交媒体用户人设,最大程度还原已有现实情况。 + +实体名称: {entity_name} +实体类型: {entity_type} +实体摘要: {entity_summary} +实体属性: {attrs_str} + +上下文信息: +{context_str} + +请生成JSON,包含以下字段: + +1. bio: 社交媒体简介,200字 +2. persona: 详细人设描述(2000字的纯文本),需包含: + - 基本信息(年龄、职业、教育背景、所在地) + - 人物背景(重要经历、与事件的关联、社会关系) + - 性格特征(MBTI类型、核心性格、情绪表达方式) + - 社交媒体行为(发帖频率、内容偏好、互动风格、语言特点) + - 立场观点(对话题的态度、可能被激怒/感动的内容) + - 独特特征(口头禅、特殊经历、个人爱好) + - 个人记忆(人设的重要部分,要介绍这个个体与事件的关联,以及这个个体在事件中的已有动作与反应) +3. age: 年龄数字(必须是整数) +4. gender: 性别,必须是英文: "male" 或 "female" +5. mbti: MBTI类型(如INTJ、ENFP等) +6. country: 国家(使用中文,如"中国") +7. profession: 职业 +8. interested_topics: 感兴趣话题数组 + +重要: +- 所有字段值必须是字符串或数字,不要使用换行符 +- persona必须是一段连贯的文字描述 +- {get_language_instruction()} (gender字段必须用英文male/female) +- 内容要与实体信息保持一致 +- age必须是有效的整数,gender必须是"male"或"female" +""" + + def _build_group_persona_prompt( + self, + entity_name: str, + entity_type: str, + entity_summary: str, + entity_attributes: Dict[str, Any], + context: str + ) -> str: + """构建群体/机构实体的详细人设提示词""" + + attrs_str = json.dumps(entity_attributes, ensure_ascii=False) if entity_attributes else "无" + context_str = context[:3000] if context else "无额外上下文" + + return f"""为机构/群体实体生成详细的社交媒体账号设定,最大程度还原已有现实情况。 + +实体名称: {entity_name} +实体类型: {entity_type} +实体摘要: {entity_summary} +实体属性: {attrs_str} + +上下文信息: +{context_str} + +请生成JSON,包含以下字段: + +1. bio: 官方账号简介,200字,专业得体 +2. persona: 详细账号设定描述(2000字的纯文本),需包含: + - 机构基本信息(正式名称、机构性质、成立背景、主要职能) + - 账号定位(账号类型、目标受众、核心功能) + - 发言风格(语言特点、常用表达、禁忌话题) + - 发布内容特点(内容类型、发布频率、活跃时间段) + - 立场态度(对核心话题的官方立场、面对争议的处理方式) + - 特殊说明(代表的群体画像、运营习惯) + - 机构记忆(机构人设的重要部分,要介绍这个机构与事件的关联,以及这个机构在事件中的已有动作与反应) +3. age: 固定填30(机构账号的虚拟年龄) +4. gender: 固定填"other"(机构账号使用other表示非个人) +5. mbti: MBTI类型,用于描述账号风格,如ISTJ代表严谨保守 +6. country: 国家(使用中文,如"中国") +7. profession: 机构职能描述 +8. interested_topics: 关注领域数组 + +重要: +- 所有字段值必须是字符串或数字,不允许null值 +- persona必须是一段连贯的文字描述,不要使用换行符 +- {get_language_instruction()} (gender字段必须用英文"other") +- age必须是整数30,gender必须是字符串"other" +- 机构账号发言要符合其身份定位""" + + def _generate_profile_rule_based( + self, + entity_name: str, + entity_type: str, + entity_summary: str, + entity_attributes: Dict[str, Any] + ) -> Dict[str, Any]: + """使用规则生成基础人设""" + + # 根据实体类型生成不同的人设 + entity_type_lower = entity_type.lower() + + if entity_type_lower in ["student", "alumni"]: + return { + "bio": f"{entity_type} with interests in academics and social issues.", + "persona": f"{entity_name} is a {entity_type.lower()} who is actively engaged in academic and social discussions. They enjoy sharing perspectives and connecting with peers.", + "age": random.randint(18, 30), + "gender": random.choice(["male", "female"]), + "mbti": random.choice(self.MBTI_TYPES), + "country": random.choice(self.COUNTRIES), + "profession": "Student", + "interested_topics": ["Education", "Social Issues", "Technology"], + } + + elif entity_type_lower in ["publicfigure", "expert", "faculty"]: + return { + "bio": f"Expert and thought leader in their field.", + "persona": f"{entity_name} is a recognized {entity_type.lower()} who shares insights and opinions on important matters. They are known for their expertise and influence in public discourse.", + "age": random.randint(35, 60), + "gender": random.choice(["male", "female"]), + "mbti": random.choice(["ENTJ", "INTJ", "ENTP", "INTP"]), + "country": random.choice(self.COUNTRIES), + "profession": entity_attributes.get("occupation", "Expert"), + "interested_topics": ["Politics", "Economics", "Culture & Society"], + } + + elif entity_type_lower in ["mediaoutlet", "socialmediaplatform"]: + return { + "bio": f"Official account for {entity_name}. News and updates.", + "persona": f"{entity_name} is a media entity that reports news and facilitates public discourse. The account shares timely updates and engages with the audience on current events.", + "age": 30, # 机构虚拟年龄 + "gender": "other", # 机构使用other + "mbti": "ISTJ", # 机构风格:严谨保守 + "country": "中国", + "profession": "Media", + "interested_topics": ["General News", "Current Events", "Public Affairs"], + } + + elif entity_type_lower in ["university", "governmentagency", "ngo", "organization"]: + return { + "bio": f"Official account of {entity_name}.", + "persona": f"{entity_name} is an institutional entity that communicates official positions, announcements, and engages with stakeholders on relevant matters.", + "age": 30, # 机构虚拟年龄 + "gender": "other", # 机构使用other + "mbti": "ISTJ", # 机构风格:严谨保守 + "country": "中国", + "profession": entity_type, + "interested_topics": ["Public Policy", "Community", "Official Announcements"], + } + + else: + # 默认人设 + return { + "bio": entity_summary[:150] if entity_summary else f"{entity_type}: {entity_name}", + "persona": entity_summary or f"{entity_name} is a {entity_type.lower()} participating in social discussions.", + "age": random.randint(25, 50), + "gender": random.choice(["male", "female"]), + "mbti": random.choice(self.MBTI_TYPES), + "country": random.choice(self.COUNTRIES), + "profession": entity_type, + "interested_topics": ["General", "Social Issues"], + } + + def set_graph_id(self, graph_id: str): + """设置图谱ID用于Zep检索""" + self.graph_id = graph_id + + def generate_profiles_from_entities( + self, + entities: List[EntityNode], + use_llm: bool = True, + progress_callback: Optional[callable] = None, + graph_id: Optional[str] = None, + parallel_count: int = 5, + realtime_output_path: Optional[str] = None, + output_platform: str = "reddit" + ) -> List[OasisAgentProfile]: + """ + 批量从实体生成Agent Profile(支持并行生成) + + Args: + entities: 实体列表 + use_llm: 是否使用LLM生成详细人设 + progress_callback: 进度回调函数 (current, total, message) + graph_id: 图谱ID,用于Zep检索获取更丰富上下文 + parallel_count: 并行生成数量,默认5 + realtime_output_path: 实时写入的文件路径(如果提供,每生成一个就写入一次) + output_platform: 输出平台格式 ("reddit" 或 "twitter") + + Returns: + Agent Profile列表 + """ + import concurrent.futures + from threading import Lock + + # 设置graph_id用于Zep检索 + if graph_id: + self.graph_id = graph_id + + total = len(entities) + profiles = [None] * total # 预分配列表保持顺序 + completed_count = [0] # 使用列表以便在闭包中修改 + lock = Lock() + + # 实时写入文件的辅助函数 + def save_profiles_realtime(): + """实时保存已生成的 profiles 到文件""" + if not realtime_output_path: + return + + with lock: + # 过滤出已生成的 profiles + existing_profiles = [p for p in profiles if p is not None] + if not existing_profiles: + return + + try: + if output_platform == "reddit": + # Reddit JSON 格式 + profiles_data = [p.to_reddit_format() for p in existing_profiles] + with open(realtime_output_path, 'w', encoding='utf-8') as f: + json.dump(profiles_data, f, ensure_ascii=False, indent=2) + else: + # Twitter CSV 格式 + import csv + profiles_data = [p.to_twitter_format() for p in existing_profiles] + if profiles_data: + fieldnames = list(profiles_data[0].keys()) + with open(realtime_output_path, 'w', encoding='utf-8', newline='') as f: + writer = csv.DictWriter(f, fieldnames=fieldnames) + writer.writeheader() + writer.writerows(profiles_data) + except Exception as e: + logger.warning(f"实时保存 profiles 失败: {e}") + + # Capture locale before spawning thread pool workers + current_locale = get_locale() + + def generate_single_profile(idx: int, entity: EntityNode) -> tuple: + """生成单个profile的工作函数""" + set_locale(current_locale) + entity_type = entity.get_entity_type() or "Entity" + + try: + profile = self.generate_profile_from_entity( + entity=entity, + user_id=idx, + use_llm=use_llm + ) + + # 实时输出生成的人设到控制台和日志 + self._print_generated_profile(entity.name, entity_type, profile) + + return idx, profile, None + + except Exception as e: + logger.error(f"生成实体 {entity.name} 的人设失败: {str(e)}") + # 创建一个基础profile + fallback_profile = OasisAgentProfile( + user_id=idx, + user_name=self._generate_username(entity.name), + name=entity.name, + bio=f"{entity_type}: {entity.name}", + persona=entity.summary or f"A participant in social discussions.", + source_entity_uuid=entity.uuid, + source_entity_type=entity_type, + ) + return idx, fallback_profile, str(e) + + logger.info(f"开始并行生成 {total} 个Agent人设(并行数: {parallel_count})...") + print(f"\n{'='*60}") + print(f"开始生成Agent人设 - 共 {total} 个实体,并行数: {parallel_count}") + print(f"{'='*60}\n") + + # 使用线程池并行执行 + with concurrent.futures.ThreadPoolExecutor(max_workers=parallel_count) as executor: + # 提交所有任务 + future_to_entity = { + executor.submit(generate_single_profile, idx, entity): (idx, entity) + for idx, entity in enumerate(entities) + } + + # 收集结果 + for future in concurrent.futures.as_completed(future_to_entity): + idx, entity = future_to_entity[future] + entity_type = entity.get_entity_type() or "Entity" + + try: + result_idx, profile, error = future.result() + profiles[result_idx] = profile + + with lock: + completed_count[0] += 1 + current = completed_count[0] + + # 实时写入文件 + save_profiles_realtime() + + if progress_callback: + progress_callback( + current, + total, + f"已完成 {current}/{total}: {entity.name}({entity_type})" + ) + + if error: + logger.warning(f"[{current}/{total}] {entity.name} 使用备用人设: {error}") + else: + logger.info(f"[{current}/{total}] 成功生成人设: {entity.name} ({entity_type})") + + except Exception as e: + logger.error(f"处理实体 {entity.name} 时发生异常: {str(e)}") + with lock: + completed_count[0] += 1 + profiles[idx] = OasisAgentProfile( + user_id=idx, + user_name=self._generate_username(entity.name), + name=entity.name, + bio=f"{entity_type}: {entity.name}", + persona=entity.summary or "A participant in social discussions.", + source_entity_uuid=entity.uuid, + source_entity_type=entity_type, + ) + # 实时写入文件(即使是备用人设) + save_profiles_realtime() + + print(f"\n{'='*60}") + print(f"人设生成完成!共生成 {len([p for p in profiles if p])} 个Agent") + print(f"{'='*60}\n") + + return profiles + + def _print_generated_profile(self, entity_name: str, entity_type: str, profile: OasisAgentProfile): + """实时输出生成的人设到控制台(完整内容,不截断)""" + separator = "-" * 70 + + # 构建完整输出内容(不截断) + topics_str = ', '.join(profile.interested_topics) if profile.interested_topics else '无' + + output_lines = [ + f"\n{separator}", + t('progress.profileGenerated', name=entity_name, type=entity_type), + f"{separator}", + f"用户名: {profile.user_name}", + f"", + f"【简介】", + f"{profile.bio}", + f"", + f"【详细人设】", + f"{profile.persona}", + f"", + f"【基本属性】", + f"年龄: {profile.age} | 性别: {profile.gender} | MBTI: {profile.mbti}", + f"职业: {profile.profession} | 国家: {profile.country}", + f"兴趣话题: {topics_str}", + separator + ] + + output = "\n".join(output_lines) + + # 只输出到控制台(避免重复,logger不再输出完整内容) + print(output) + + def save_profiles( + self, + profiles: List[OasisAgentProfile], + file_path: str, + platform: str = "reddit" + ): + """ + 保存Profile到文件(根据平台选择正确格式) + + OASIS平台格式要求: + - Twitter: CSV格式 + - Reddit: JSON格式 + + Args: + profiles: Profile列表 + file_path: 文件路径 + platform: 平台类型 ("reddit" 或 "twitter") + """ + if platform == "twitter": + self._save_twitter_csv(profiles, file_path) + else: + self._save_reddit_json(profiles, file_path) + + def _save_twitter_csv(self, profiles: List[OasisAgentProfile], file_path: str): + """ + 保存Twitter Profile为CSV格式(符合OASIS官方要求) + + OASIS Twitter要求的CSV字段: + - user_id: 用户ID(根据CSV顺序从0开始) + - name: 用户真实姓名 + - username: 系统中的用户名 + - user_char: 详细人设描述(注入到LLM系统提示中,指导Agent行为) + - description: 简短的公开简介(显示在用户资料页面) + + user_char vs description 区别: + - user_char: 内部使用,LLM系统提示,决定Agent如何思考和行动 + - description: 外部显示,其他用户可见的简介 + """ + import csv + + # 确保文件扩展名是.csv + if not file_path.endswith('.csv'): + file_path = file_path.replace('.json', '.csv') + + with open(file_path, 'w', newline='', encoding='utf-8') as f: + writer = csv.writer(f) + + # 写入OASIS要求的表头 + headers = ['user_id', 'name', 'username', 'user_char', 'description'] + writer.writerow(headers) + + # 写入数据行 + for idx, profile in enumerate(profiles): + # user_char: 完整人设(bio + persona),用于LLM系统提示 + user_char = profile.bio + if profile.persona and profile.persona != profile.bio: + user_char = f"{profile.bio} {profile.persona}" + # 处理换行符(CSV中用空格替代) + user_char = user_char.replace('\n', ' ').replace('\r', ' ') + + # description: 简短简介,用于外部显示 + description = profile.bio.replace('\n', ' ').replace('\r', ' ') + + row = [ + idx, # user_id: 从0开始的顺序ID + profile.name, # name: 真实姓名 + profile.user_name, # username: 用户名 + user_char, # user_char: 完整人设(内部LLM使用) + description # description: 简短简介(外部显示) + ] + writer.writerow(row) + + logger.info(f"已保存 {len(profiles)} 个Twitter Profile到 {file_path} (OASIS CSV格式)") + + def _normalize_gender(self, gender: Optional[str]) -> str: + """ + 标准化gender字段为OASIS要求的英文格式 + + OASIS要求: male, female, other + """ + if not gender: + return "other" + + gender_lower = gender.lower().strip() + + # 中文映射 + gender_map = { + "男": "male", + "女": "female", + "机构": "other", + "其他": "other", + # 英文已有 + "male": "male", + "female": "female", + "other": "other", + } + + return gender_map.get(gender_lower, "other") + + def _save_reddit_json(self, profiles: List[OasisAgentProfile], file_path: str): + """ + 保存Reddit Profile为JSON格式 + + 使用与 to_reddit_format() 一致的格式,确保 OASIS 能正确读取。 + 必须包含 user_id 字段,这是 OASIS agent_graph.get_agent() 匹配的关键! + + 必需字段: + - user_id: 用户ID(整数,用于匹配 initial_posts 中的 poster_agent_id) + - username: 用户名 + - name: 显示名称 + - bio: 简介 + - persona: 详细人设 + - age: 年龄(整数) + - gender: "male", "female", 或 "other" + - mbti: MBTI类型 + - country: 国家 + """ + data = [] + for idx, profile in enumerate(profiles): + # 使用与 to_reddit_format() 一致的格式 + item = { + "user_id": profile.user_id if profile.user_id is not None else idx, # 关键:必须包含 user_id + "username": profile.user_name, + "name": profile.name, + "bio": profile.bio[:150] if profile.bio else f"{profile.name}", + "persona": profile.persona or f"{profile.name} is a participant in social discussions.", + "karma": profile.karma if profile.karma else 1000, + "created_at": profile.created_at, + # OASIS必需字段 - 确保都有默认值 + "age": profile.age if profile.age else 30, + "gender": self._normalize_gender(profile.gender), + "mbti": profile.mbti if profile.mbti else "ISTJ", + "country": profile.country if profile.country else "中国", + } + + # 可选字段 + if profile.profession: + item["profession"] = profile.profession + if profile.interested_topics: + item["interested_topics"] = profile.interested_topics + + data.append(item) + + with open(file_path, 'w', encoding='utf-8') as f: + json.dump(data, f, ensure_ascii=False, indent=2) + + logger.info(f"已保存 {len(profiles)} 个Reddit Profile到 {file_path} (JSON格式,包含user_id字段)") + + # 保留旧方法名作为别名,保持向后兼容 + def save_profiles_to_json( + self, + profiles: List[OasisAgentProfile], + file_path: str, + platform: str = "reddit" + ): + """[已废弃] 请使用 save_profiles() 方法""" + logger.warning("save_profiles_to_json已废弃,请使用save_profiles方法") + self.save_profiles(profiles, file_path, platform) + diff --git a/backend/app/services/ontology_generator.py b/backend/app/services/ontology_generator.py new file mode 100644 index 00000000..01a3d799 --- /dev/null +++ b/backend/app/services/ontology_generator.py @@ -0,0 +1,506 @@ +""" +本体生成服务 +接口1:分析文本内容,生成适合社会模拟的实体和关系类型定义 +""" + +import json +import logging +import re +from typing import Dict, Any, List, Optional +from ..utils.llm_client import LLMClient +from ..utils.locale import get_language_instruction + +logger = logging.getLogger(__name__) + + +def _to_pascal_case(name: str) -> str: + """将任意格式的名称转换为 PascalCase(如 'works_for' -> 'WorksFor', 'person' -> 'Person')""" + # 按非字母数字字符分割 + parts = re.split(r'[^a-zA-Z0-9]+', name) + # 再按 camelCase 边界分割(如 'camelCase' -> ['camel', 'Case']) + words = [] + for part in parts: + words.extend(re.sub(r'([a-z])([A-Z])', r'\1_\2', part).split('_')) + # 每个词首字母大写,过滤空串 + result = ''.join(word.capitalize() for word in words if word) + return result if result else 'Unknown' + + +# 本体生成的系统提示词 +ONTOLOGY_SYSTEM_PROMPT = """你是一个专业的知识图谱本体设计专家。你的任务是分析给定的文本内容和模拟需求,设计适合**社交媒体舆论模拟**的实体类型和关系类型。 + +**重要:你必须输出有效的JSON格式数据,不要输出任何其他内容。** + +## 核心任务背景 + +我们正在构建一个**社交媒体舆论模拟系统**。在这个系统中: +- 每个实体都是一个可以在社交媒体上发声、互动、传播信息的"账号"或"主体" +- 实体之间会相互影响、转发、评论、回应 +- 我们需要模拟舆论事件中各方的反应和信息传播路径 + +因此,**实体必须是现实中真实存在的、可以在社媒上发声和互动的主体**: + +**可以是**: +- 具体的个人(公众人物、当事人、意见领袖、专家学者、普通人) +- 公司、企业(包括其官方账号) +- 组织机构(大学、协会、NGO、工会等) +- 政府部门、监管机构 +- 媒体机构(报纸、电视台、自媒体、网站) +- 社交媒体平台本身 +- 特定群体代表(如校友会、粉丝团、维权群体等) + +**不可以是**: +- 抽象概念(如"舆论"、"情绪"、"趋势") +- 主题/话题(如"学术诚信"、"教育改革") +- 观点/态度(如"支持方"、"反对方") + +## 输出格式 + +请输出JSON格式,包含以下结构: + +```json +{ + "entity_types": [ + { + "name": "实体类型名称(英文,PascalCase)", + "description": "简短描述(英文,不超过100字符)", + "attributes": [ + { + "name": "属性名(英文,snake_case)", + "type": "text", + "description": "属性描述" + } + ], + "examples": ["示例实体1", "示例实体2"] + } + ], + "edge_types": [ + { + "name": "关系类型名称(英文,UPPER_SNAKE_CASE)", + "description": "简短描述(英文,不超过100字符)", + "source_targets": [ + {"source": "源实体类型", "target": "目标实体类型"} + ], + "attributes": [] + } + ], + "analysis_summary": "对文本内容的简要分析说明" +} +``` + +## 设计指南(极其重要!) + +### 1. 实体类型设计 - 必须严格遵守 + +**数量要求:必须正好10个实体类型** + +**层次结构要求(必须同时包含具体类型和兜底类型)**: + +你的10个实体类型必须包含以下层次: + +A. **兜底类型(必须包含,放在列表最后2个)**: + - `Person`: 任何自然人个体的兜底类型。当一个人不属于其他更具体的人物类型时,归入此类。 + - `Organization`: 任何组织机构的兜底类型。当一个组织不属于其他更具体的组织类型时,归入此类。 + +B. **具体类型(8个,根据文本内容设计)**: + - 针对文本中出现的主要角色,设计更具体的类型 + - 例如:如果文本涉及学术事件,可以有 `Student`, `Professor`, `University` + - 例如:如果文本涉及商业事件,可以有 `Company`, `CEO`, `Employee` + +**为什么需要兜底类型**: +- 文本中会出现各种人物,如"中小学教师"、"路人甲"、"某位网友" +- 如果没有专门的类型匹配,他们应该被归入 `Person` +- 同理,小型组织、临时团体等应该归入 `Organization` + +**具体类型的设计原则**: +- 从文本中识别出高频出现或关键的角色类型 +- 每个具体类型应该有明确的边界,避免重叠 +- description 必须清晰说明这个类型和兜底类型的区别 + +### 2. 关系类型设计 + +- 数量:6-10个 +- 关系应该反映社媒互动中的真实联系 +- 确保关系的 source_targets 涵盖你定义的实体类型 + +### 3. 属性设计 + +- 每个实体类型1-3个关键属性 +- **注意**:属性名不能使用 `name`、`uuid`、`group_id`、`created_at`、`summary`(这些是系统保留字) +- 推荐使用:`full_name`, `title`, `role`, `position`, `location`, `description` 等 + +## 实体类型参考 + +**个人类(具体)**: +- Student: 学生 +- Professor: 教授/学者 +- Journalist: 记者 +- Celebrity: 明星/网红 +- Executive: 高管 +- Official: 政府官员 +- Lawyer: 律师 +- Doctor: 医生 + +**个人类(兜底)**: +- Person: 任何自然人(不属于上述具体类型时使用) + +**组织类(具体)**: +- University: 高校 +- Company: 公司企业 +- GovernmentAgency: 政府机构 +- MediaOutlet: 媒体机构 +- Hospital: 医院 +- School: 中小学 +- NGO: 非政府组织 + +**组织类(兜底)**: +- Organization: 任何组织机构(不属于上述具体类型时使用) + +## 关系类型参考 + +- WORKS_FOR: 工作于 +- STUDIES_AT: 就读于 +- AFFILIATED_WITH: 隶属于 +- REPRESENTS: 代表 +- REGULATES: 监管 +- REPORTS_ON: 报道 +- COMMENTS_ON: 评论 +- RESPONDS_TO: 回应 +- SUPPORTS: 支持 +- OPPOSES: 反对 +- COLLABORATES_WITH: 合作 +- COMPETES_WITH: 竞争 +""" + + +class OntologyGenerator: + """ + 本体生成器 + 分析文本内容,生成实体和关系类型定义 + """ + + def __init__(self, llm_client: Optional[LLMClient] = None): + self.llm_client = llm_client or LLMClient() + + def generate( + self, + document_texts: List[str], + simulation_requirement: str, + additional_context: Optional[str] = None + ) -> Dict[str, Any]: + """ + 生成本体定义 + + Args: + document_texts: 文档文本列表 + simulation_requirement: 模拟需求描述 + additional_context: 额外上下文 + + Returns: + 本体定义(entity_types, edge_types等) + """ + # 构建用户消息 + user_message = self._build_user_message( + document_texts, + simulation_requirement, + additional_context + ) + + lang_instruction = get_language_instruction() + system_prompt = f"{ONTOLOGY_SYSTEM_PROMPT}\n\n{lang_instruction}\nIMPORTANT: Entity type names MUST be in English PascalCase (e.g., 'PersonEntity', 'MediaOrganization'). Relationship type names MUST be in English UPPER_SNAKE_CASE (e.g., 'WORKS_FOR'). Attribute names MUST be in English snake_case. Only description fields and analysis_summary should use the specified language above." + messages = [ + {"role": "system", "content": system_prompt}, + {"role": "user", "content": user_message} + ] + + # 调用LLM + result = self.llm_client.chat_json( + messages=messages, + temperature=0.3, + max_tokens=4096 + ) + + # 验证和后处理 + result = self._validate_and_process(result) + + return result + + # 传给 LLM 的文本最大长度(5万字) + MAX_TEXT_LENGTH_FOR_LLM = 50000 + + def _build_user_message( + self, + document_texts: List[str], + simulation_requirement: str, + additional_context: Optional[str] + ) -> str: + """构建用户消息""" + + # 合并文本 + combined_text = "\n\n---\n\n".join(document_texts) + original_length = len(combined_text) + + # 如果文本超过5万字,截断(仅影响传给LLM的内容,不影响图谱构建) + if len(combined_text) > self.MAX_TEXT_LENGTH_FOR_LLM: + combined_text = combined_text[:self.MAX_TEXT_LENGTH_FOR_LLM] + combined_text += f"\n\n...(原文共{original_length}字,已截取前{self.MAX_TEXT_LENGTH_FOR_LLM}字用于本体分析)..." + + message = f"""## 模拟需求 + +{simulation_requirement} + +## 文档内容 + +{combined_text} +""" + + if additional_context: + message += f""" +## 额外说明 + +{additional_context} +""" + + message += """ +请根据以上内容,设计适合社会舆论模拟的实体类型和关系类型。 + +**必须遵守的规则**: +1. 必须正好输出10个实体类型 +2. 最后2个必须是兜底类型:Person(个人兜底)和 Organization(组织兜底) +3. 前8个是根据文本内容设计的具体类型 +4. 所有实体类型必须是现实中可以发声的主体,不能是抽象概念 +5. 属性名不能使用 name、uuid、group_id 等保留字,用 full_name、org_name 等替代 +""" + + return message + + def _validate_and_process(self, result: Dict[str, Any]) -> Dict[str, Any]: + """验证和后处理结果""" + + # 确保必要字段存在 + if "entity_types" not in result: + result["entity_types"] = [] + if "edge_types" not in result: + result["edge_types"] = [] + if "analysis_summary" not in result: + result["analysis_summary"] = "" + + # 验证实体类型 + # 记录原始名称到 PascalCase 的映射,用于后续修正 edge 的 source_targets 引用 + entity_name_map = {} + for entity in result["entity_types"]: + # 强制将 entity name 转为 PascalCase(Zep API 要求) + if "name" in entity: + original_name = entity["name"] + entity["name"] = _to_pascal_case(original_name) + if entity["name"] != original_name: + logger.warning(f"Entity type name '{original_name}' auto-converted to '{entity['name']}'") + entity_name_map[original_name] = entity["name"] + if "attributes" not in entity: + entity["attributes"] = [] + if "examples" not in entity: + entity["examples"] = [] + # 确保description不超过100字符 + if len(entity.get("description", "")) > 100: + entity["description"] = entity["description"][:97] + "..." + + # 验证关系类型 + for edge in result["edge_types"]: + # 强制将 edge name 转为 SCREAMING_SNAKE_CASE(Zep API 要求) + if "name" in edge: + original_name = edge["name"] + edge["name"] = original_name.upper() + if edge["name"] != original_name: + logger.warning(f"Edge type name '{original_name}' auto-converted to '{edge['name']}'") + # 修正 source_targets 中的实体名称引用,与转换后的 PascalCase 保持一致 + for st in edge.get("source_targets", []): + if st.get("source") in entity_name_map: + st["source"] = entity_name_map[st["source"]] + if st.get("target") in entity_name_map: + st["target"] = entity_name_map[st["target"]] + if "source_targets" not in edge: + edge["source_targets"] = [] + if "attributes" not in edge: + edge["attributes"] = [] + if len(edge.get("description", "")) > 100: + edge["description"] = edge["description"][:97] + "..." + + # Zep API 限制:最多 10 个自定义实体类型,最多 10 个自定义边类型 + MAX_ENTITY_TYPES = 10 + MAX_EDGE_TYPES = 10 + + # 去重:按 name 去重,保留首次出现的 + seen_names = set() + deduped = [] + for entity in result["entity_types"]: + name = entity.get("name", "") + if name and name not in seen_names: + seen_names.add(name) + deduped.append(entity) + elif name in seen_names: + logger.warning(f"Duplicate entity type '{name}' removed during validation") + result["entity_types"] = deduped + + # 兜底类型定义 + person_fallback = { + "name": "Person", + "description": "Any individual person not fitting other specific person types.", + "attributes": [ + {"name": "full_name", "type": "text", "description": "Full name of the person"}, + {"name": "role", "type": "text", "description": "Role or occupation"} + ], + "examples": ["ordinary citizen", "anonymous netizen"] + } + + organization_fallback = { + "name": "Organization", + "description": "Any organization not fitting other specific organization types.", + "attributes": [ + {"name": "org_name", "type": "text", "description": "Name of the organization"}, + {"name": "org_type", "type": "text", "description": "Type of organization"} + ], + "examples": ["small business", "community group"] + } + + # 检查是否已有兜底类型 + entity_names = {e["name"] for e in result["entity_types"]} + has_person = "Person" in entity_names + has_organization = "Organization" in entity_names + + # 需要添加的兜底类型 + fallbacks_to_add = [] + if not has_person: + fallbacks_to_add.append(person_fallback) + if not has_organization: + fallbacks_to_add.append(organization_fallback) + + if fallbacks_to_add: + current_count = len(result["entity_types"]) + needed_slots = len(fallbacks_to_add) + + # 如果添加后会超过 10 个,需要移除一些现有类型 + if current_count + needed_slots > MAX_ENTITY_TYPES: + # 计算需要移除多少个 + to_remove = current_count + needed_slots - MAX_ENTITY_TYPES + # 从末尾移除(保留前面更重要的具体类型) + result["entity_types"] = result["entity_types"][:-to_remove] + + # 添加兜底类型 + result["entity_types"].extend(fallbacks_to_add) + + # 最终确保不超过限制(防御性编程) + if len(result["entity_types"]) > MAX_ENTITY_TYPES: + result["entity_types"] = result["entity_types"][:MAX_ENTITY_TYPES] + + if len(result["edge_types"]) > MAX_EDGE_TYPES: + result["edge_types"] = result["edge_types"][:MAX_EDGE_TYPES] + + return result + + def generate_python_code(self, ontology: Dict[str, Any]) -> str: + """ + 将本体定义转换为Python代码(类似ontology.py) + + Args: + ontology: 本体定义 + + Returns: + Python代码字符串 + """ + code_lines = [ + '"""', + '自定义实体类型定义', + '由MiroFish自动生成,用于社会舆论模拟', + '"""', + '', + 'from pydantic import Field', + 'from zep_cloud.external_clients.ontology import EntityModel, EntityText, EdgeModel', + '', + '', + '# ============== 实体类型定义 ==============', + '', + ] + + # 生成实体类型 + for entity in ontology.get("entity_types", []): + name = entity["name"] + desc = entity.get("description", f"A {name} entity.") + + code_lines.append(f'class {name}(EntityModel):') + code_lines.append(f' """{desc}"""') + + attrs = entity.get("attributes", []) + if attrs: + for attr in attrs: + attr_name = attr["name"] + attr_desc = attr.get("description", attr_name) + code_lines.append(f' {attr_name}: EntityText = Field(') + code_lines.append(f' description="{attr_desc}",') + code_lines.append(f' default=None') + code_lines.append(f' )') + else: + code_lines.append(' pass') + + code_lines.append('') + code_lines.append('') + + code_lines.append('# ============== 关系类型定义 ==============') + code_lines.append('') + + # 生成关系类型 + for edge in ontology.get("edge_types", []): + name = edge["name"] + # 转换为PascalCase类名 + class_name = ''.join(word.capitalize() for word in name.split('_')) + desc = edge.get("description", f"A {name} relationship.") + + code_lines.append(f'class {class_name}(EdgeModel):') + code_lines.append(f' """{desc}"""') + + attrs = edge.get("attributes", []) + if attrs: + for attr in attrs: + attr_name = attr["name"] + attr_desc = attr.get("description", attr_name) + code_lines.append(f' {attr_name}: EntityText = Field(') + code_lines.append(f' description="{attr_desc}",') + code_lines.append(f' default=None') + code_lines.append(f' )') + else: + code_lines.append(' pass') + + code_lines.append('') + code_lines.append('') + + # 生成类型字典 + code_lines.append('# ============== 类型配置 ==============') + code_lines.append('') + code_lines.append('ENTITY_TYPES = {') + for entity in ontology.get("entity_types", []): + name = entity["name"] + code_lines.append(f' "{name}": {name},') + code_lines.append('}') + code_lines.append('') + code_lines.append('EDGE_TYPES = {') + for edge in ontology.get("edge_types", []): + name = edge["name"] + class_name = ''.join(word.capitalize() for word in name.split('_')) + code_lines.append(f' "{name}": {class_name},') + code_lines.append('}') + code_lines.append('') + + # 生成边的source_targets映射 + code_lines.append('EDGE_SOURCE_TARGETS = {') + for edge in ontology.get("edge_types", []): + name = edge["name"] + source_targets = edge.get("source_targets", []) + if source_targets: + st_list = ', '.join([ + f'{{"source": "{st.get("source", "Entity")}", "target": "{st.get("target", "Entity")}"}}' + for st in source_targets + ]) + code_lines.append(f' "{name}": [{st_list}],') + code_lines.append('}') + + return '\n'.join(code_lines) + diff --git a/backend/app/services/report_agent.py b/backend/app/services/report_agent.py new file mode 100644 index 00000000..1bbdac63 --- /dev/null +++ b/backend/app/services/report_agent.py @@ -0,0 +1,2584 @@ +""" +Report Agent服务 +使用LangChain + Zep实现ReACT模式的模拟报告生成 + +功能: +1. 根据模拟需求和Zep图谱信息生成报告 +2. 先规划目录结构,然后分段生成 +3. 每段采用ReACT多轮思考与反思模式 +4. 支持与用户对话,在对话中自主调用检索工具 +""" + +import os +import json +import time +import re +from typing import Dict, Any, List, Optional, Callable +from dataclasses import dataclass, field +from datetime import datetime +from enum import Enum + +from ..config import Config +from ..utils.llm_client import LLMClient +from ..utils.logger import get_logger +from ..utils.locale import get_language_instruction, t +from .zep_tools import ( + ZepToolsService, + SearchResult, + InsightForgeResult, + PanoramaResult, + InterviewResult +) + +logger = get_logger('mirofish.report_agent') + + +class ReportLogger: + """ + Report Agent 详细日志记录器 + + 在报告文件夹中生成 agent_log.jsonl 文件,记录每一步详细动作。 + 每行是一个完整的 JSON 对象,包含时间戳、动作类型、详细内容等。 + """ + + def __init__(self, report_id: str): + """ + 初始化日志记录器 + + Args: + report_id: 报告ID,用于确定日志文件路径 + """ + self.report_id = report_id + self.log_file_path = os.path.join( + Config.UPLOAD_FOLDER, 'reports', report_id, 'agent_log.jsonl' + ) + self.start_time = datetime.now() + self._ensure_log_file() + + def _ensure_log_file(self): + """确保日志文件所在目录存在""" + log_dir = os.path.dirname(self.log_file_path) + os.makedirs(log_dir, exist_ok=True) + + def _get_elapsed_time(self) -> float: + """获取从开始到现在的耗时(秒)""" + return (datetime.now() - self.start_time).total_seconds() + + def log( + self, + action: str, + stage: str, + details: Dict[str, Any], + section_title: str = None, + section_index: int = None + ): + """ + 记录一条日志 + + Args: + action: 动作类型,如 'start', 'tool_call', 'llm_response', 'section_complete' 等 + stage: 当前阶段,如 'planning', 'generating', 'completed' + details: 详细内容字典,不截断 + section_title: 当前章节标题(可选) + section_index: 当前章节索引(可选) + """ + log_entry = { + "timestamp": datetime.now().isoformat(), + "elapsed_seconds": round(self._get_elapsed_time(), 2), + "report_id": self.report_id, + "action": action, + "stage": stage, + "section_title": section_title, + "section_index": section_index, + "details": details + } + + # 追加写入 JSONL 文件 + with open(self.log_file_path, 'a', encoding='utf-8') as f: + f.write(json.dumps(log_entry, ensure_ascii=False) + '\n') + + def log_start(self, simulation_id: str, graph_id: str, simulation_requirement: str): + """记录报告生成开始""" + self.log( + action="report_start", + stage="pending", + details={ + "simulation_id": simulation_id, + "graph_id": graph_id, + "simulation_requirement": simulation_requirement, + "message": t('report.taskStarted') + } + ) + + def log_planning_start(self): + """记录大纲规划开始""" + self.log( + action="planning_start", + stage="planning", + details={"message": t('report.planningStart')} + ) + + def log_planning_context(self, context: Dict[str, Any]): + """记录规划时获取的上下文信息""" + self.log( + action="planning_context", + stage="planning", + details={ + "message": t('report.fetchSimContext'), + "context": context + } + ) + + def log_planning_complete(self, outline_dict: Dict[str, Any]): + """记录大纲规划完成""" + self.log( + action="planning_complete", + stage="planning", + details={ + "message": t('report.planningComplete'), + "outline": outline_dict + } + ) + + def log_section_start(self, section_title: str, section_index: int): + """记录章节生成开始""" + self.log( + action="section_start", + stage="generating", + section_title=section_title, + section_index=section_index, + details={"message": t('report.sectionStart', title=section_title)} + ) + + def log_react_thought(self, section_title: str, section_index: int, iteration: int, thought: str): + """记录 ReACT 思考过程""" + self.log( + action="react_thought", + stage="generating", + section_title=section_title, + section_index=section_index, + details={ + "iteration": iteration, + "thought": thought, + "message": t('report.reactThought', iteration=iteration) + } + ) + + def log_tool_call( + self, + section_title: str, + section_index: int, + tool_name: str, + parameters: Dict[str, Any], + iteration: int + ): + """记录工具调用""" + self.log( + action="tool_call", + stage="generating", + section_title=section_title, + section_index=section_index, + details={ + "iteration": iteration, + "tool_name": tool_name, + "parameters": parameters, + "message": t('report.toolCall', toolName=tool_name) + } + ) + + def log_tool_result( + self, + section_title: str, + section_index: int, + tool_name: str, + result: str, + iteration: int + ): + """记录工具调用结果(完整内容,不截断)""" + self.log( + action="tool_result", + stage="generating", + section_title=section_title, + section_index=section_index, + details={ + "iteration": iteration, + "tool_name": tool_name, + "result": result, # 完整结果,不截断 + "result_length": len(result), + "message": t('report.toolResult', toolName=tool_name) + } + ) + + def log_llm_response( + self, + section_title: str, + section_index: int, + response: str, + iteration: int, + has_tool_calls: bool, + has_final_answer: bool + ): + """记录 LLM 响应(完整内容,不截断)""" + self.log( + action="llm_response", + stage="generating", + section_title=section_title, + section_index=section_index, + details={ + "iteration": iteration, + "response": response, # 完整响应,不截断 + "response_length": len(response), + "has_tool_calls": has_tool_calls, + "has_final_answer": has_final_answer, + "message": t('report.llmResponse', hasToolCalls=has_tool_calls, hasFinalAnswer=has_final_answer) + } + ) + + def log_section_content( + self, + section_title: str, + section_index: int, + content: str, + tool_calls_count: int + ): + """记录章节内容生成完成(仅记录内容,不代表整个章节完成)""" + self.log( + action="section_content", + stage="generating", + section_title=section_title, + section_index=section_index, + details={ + "content": content, # 完整内容,不截断 + "content_length": len(content), + "tool_calls_count": tool_calls_count, + "message": t('report.sectionContentDone', title=section_title) + } + ) + + def log_section_full_complete( + self, + section_title: str, + section_index: int, + full_content: str + ): + """ + 记录章节生成完成 + + 前端应监听此日志来判断一个章节是否真正完成,并获取完整内容 + """ + self.log( + action="section_complete", + stage="generating", + section_title=section_title, + section_index=section_index, + details={ + "content": full_content, + "content_length": len(full_content), + "message": t('report.sectionComplete', title=section_title) + } + ) + + def log_report_complete(self, total_sections: int, total_time_seconds: float): + """记录报告生成完成""" + self.log( + action="report_complete", + stage="completed", + details={ + "total_sections": total_sections, + "total_time_seconds": round(total_time_seconds, 2), + "message": t('report.reportComplete') + } + ) + + def log_error(self, error_message: str, stage: str, section_title: str = None): + """记录错误""" + self.log( + action="error", + stage=stage, + section_title=section_title, + section_index=None, + details={ + "error": error_message, + "message": t('report.errorOccurred', error=error_message) + } + ) + + +class ReportConsoleLogger: + """ + Report Agent 控制台日志记录器 + + 将控制台风格的日志(INFO、WARNING等)写入报告文件夹中的 console_log.txt 文件。 + 这些日志与 agent_log.jsonl 不同,是纯文本格式的控制台输出。 + """ + + def __init__(self, report_id: str): + """ + 初始化控制台日志记录器 + + Args: + report_id: 报告ID,用于确定日志文件路径 + """ + self.report_id = report_id + self.log_file_path = os.path.join( + Config.UPLOAD_FOLDER, 'reports', report_id, 'console_log.txt' + ) + self._ensure_log_file() + self._file_handler = None + self._setup_file_handler() + + def _ensure_log_file(self): + """确保日志文件所在目录存在""" + log_dir = os.path.dirname(self.log_file_path) + os.makedirs(log_dir, exist_ok=True) + + def _setup_file_handler(self): + """设置文件处理器,将日志同时写入文件""" + import logging + + # 创建文件处理器 + self._file_handler = logging.FileHandler( + self.log_file_path, + mode='a', + encoding='utf-8' + ) + self._file_handler.setLevel(logging.INFO) + + # 使用与控制台相同的简洁格式 + formatter = logging.Formatter( + '[%(asctime)s] %(levelname)s: %(message)s', + datefmt='%H:%M:%S' + ) + self._file_handler.setFormatter(formatter) + + # 添加到 report_agent 相关的 logger + loggers_to_attach = [ + 'mirofish.report_agent', + 'mirofish.zep_tools', + ] + + for logger_name in loggers_to_attach: + target_logger = logging.getLogger(logger_name) + # 避免重复添加 + if self._file_handler not in target_logger.handlers: + target_logger.addHandler(self._file_handler) + + def close(self): + """关闭文件处理器并从 logger 中移除""" + import logging + + if self._file_handler: + loggers_to_detach = [ + 'mirofish.report_agent', + 'mirofish.zep_tools', + ] + + for logger_name in loggers_to_detach: + target_logger = logging.getLogger(logger_name) + if self._file_handler in target_logger.handlers: + target_logger.removeHandler(self._file_handler) + + self._file_handler.close() + self._file_handler = None + + def __del__(self): + """析构时确保关闭文件处理器""" + self.close() + + +class ReportStatus(str, Enum): + """报告状态""" + PENDING = "pending" + PLANNING = "planning" + GENERATING = "generating" + COMPLETED = "completed" + FAILED = "failed" + + +@dataclass +class ReportSection: + """报告章节""" + title: str + content: str = "" + + def to_dict(self) -> Dict[str, Any]: + return { + "title": self.title, + "content": self.content + } + + def to_markdown(self, level: int = 2) -> str: + """转换为Markdown格式""" + md = f"{'#' * level} {self.title}\n\n" + if self.content: + md += f"{self.content}\n\n" + return md + + +@dataclass +class ReportOutline: + """报告大纲""" + title: str + summary: str + sections: List[ReportSection] + + def to_dict(self) -> Dict[str, Any]: + return { + "title": self.title, + "summary": self.summary, + "sections": [s.to_dict() for s in self.sections] + } + + def to_markdown(self) -> str: + """转换为Markdown格式""" + md = f"# {self.title}\n\n" + md += f"> {self.summary}\n\n" + for section in self.sections: + md += section.to_markdown() + return md + + +@dataclass +class Report: + """完整报告""" + report_id: str + simulation_id: str + graph_id: str + simulation_requirement: str + status: ReportStatus + outline: Optional[ReportOutline] = None + markdown_content: str = "" + created_at: str = "" + completed_at: str = "" + error: Optional[str] = None + + def to_dict(self) -> Dict[str, Any]: + return { + "report_id": self.report_id, + "simulation_id": self.simulation_id, + "graph_id": self.graph_id, + "simulation_requirement": self.simulation_requirement, + "status": self.status.value, + "outline": self.outline.to_dict() if self.outline else None, + "markdown_content": self.markdown_content, + "created_at": self.created_at, + "completed_at": self.completed_at, + "error": self.error + } + + +# ═══════════════════════════════════════════════════════════════ +# Prompt 模板常量 +# ═══════════════════════════════════════════════════════════════ + +# ── 工具描述 ── + +TOOL_DESC_INSIGHT_FORGE = """\ +【深度洞察检索 - 强大的检索工具】 +这是我们强大的检索函数,专为深度分析设计。它会: +1. 自动将你的问题分解为多个子问题 +2. 从多个维度检索模拟图谱中的信息 +3. 整合语义搜索、实体分析、关系链追踪的结果 +4. 返回最全面、最深度的检索内容 + +【使用场景】 +- 需要深入分析某个话题 +- 需要了解事件的多个方面 +- 需要获取支撑报告章节的丰富素材 + +【返回内容】 +- 相关事实原文(可直接引用) +- 核心实体洞察 +- 关系链分析""" + +TOOL_DESC_PANORAMA_SEARCH = """\ +【广度搜索 - 获取全貌视图】 +这个工具用于获取模拟结果的完整全貌,特别适合了解事件演变过程。它会: +1. 获取所有相关节点和关系 +2. 区分当前有效的事实和历史/过期的事实 +3. 帮助你了解舆情是如何演变的 + +【使用场景】 +- 需要了解事件的完整发展脉络 +- 需要对比不同阶段的舆情变化 +- 需要获取全面的实体和关系信息 + +【返回内容】 +- 当前有效事实(模拟最新结果) +- 历史/过期事实(演变记录) +- 所有涉及的实体""" + +TOOL_DESC_QUICK_SEARCH = """\ +【简单搜索 - 快速检索】 +轻量级的快速检索工具,适合简单、直接的信息查询。 + +【使用场景】 +- 需要快速查找某个具体信息 +- 需要验证某个事实 +- 简单的信息检索 + +【返回内容】 +- 与查询最相关的事实列表""" + +TOOL_DESC_INTERVIEW_AGENTS = """\ +【深度采访 - 真实Agent采访(双平台)】 +调用OASIS模拟环境的采访API,对正在运行的模拟Agent进行真实采访! +这不是LLM模拟,而是调用真实的采访接口获取模拟Agent的原始回答。 +默认在Twitter和Reddit两个平台同时采访,获取更全面的观点。 + +功能流程: +1. 自动读取人设文件,了解所有模拟Agent +2. 智能选择与采访主题最相关的Agent(如学生、媒体、官方等) +3. 自动生成采访问题 +4. 调用 /api/simulation/interview/batch 接口在双平台进行真实采访 +5. 整合所有采访结果,提供多视角分析 + +【使用场景】 +- 需要从不同角色视角了解事件看法(学生怎么看?媒体怎么看?官方怎么说?) +- 需要收集多方意见和立场 +- 需要获取模拟Agent的真实回答(来自OASIS模拟环境) +- 想让报告更生动,包含"采访实录" + +【返回内容】 +- 被采访Agent的身份信息 +- 各Agent在Twitter和Reddit两个平台的采访回答 +- 关键引言(可直接引用) +- 采访摘要和观点对比 + +【重要】需要OASIS模拟环境正在运行才能使用此功能!""" + +# ── 大纲规划 prompt ── + +PLAN_SYSTEM_PROMPT = """\ +你是一个「未来预测报告」的撰写专家,拥有对模拟世界的「上帝视角」——你可以洞察模拟中每一位Agent的行为、言论和互动。 + +【核心理念】 +我们构建了一个模拟世界,并向其中注入了特定的「模拟需求」作为变量。模拟世界的演化结果,就是对未来可能发生情况的预测。你正在观察的不是"实验数据",而是"未来的预演"。 + +【你的任务】 +撰写一份「未来预测报告」,回答: +1. 在我们设定的条件下,未来发生了什么? +2. 各类Agent(人群)是如何反应和行动? +3. 这个模拟揭示了哪些值得关注的未来趋势和风险? + +【报告定位】 +- ✅ 这是一份基于模拟的未来预测报告,揭示"如果这样,未来会怎样" +- ✅ 聚焦于预测结果:事件走向、群体反应、涌现现象、潜在风险 +- ✅ 模拟世界中的Agent言行就是对未来人群行为的预测 +- ❌ 不是对现实世界现状的分析 +- ❌ 不是泛泛而谈的舆情综述 + +【章节数量限制】 +- 最少2个章节,最多5个章节 +- 不需要子章节,每个章节直接撰写完整内容 +- 内容要精炼,聚焦于核心预测发现 +- 章节结构由你根据预测结果自主设计 + +请输出JSON格式的报告大纲,格式如下: +{ + "title": "报告标题", + "summary": "报告摘要(一句话概括核心预测发现)", + "sections": [ + { + "title": "章节标题", + "description": "章节内容描述" + } + ] +} + +注意:sections数组最少2个,最多5个元素!""" + +PLAN_USER_PROMPT_TEMPLATE = """\ +【预测场景设定】 +我们向模拟世界注入的变量(模拟需求):{simulation_requirement} + +【模拟世界规模】 +- 参与模拟的实体数量: {total_nodes} +- 实体间产生的关系数量: {total_edges} +- 实体类型分布: {entity_types} +- 活跃Agent数量: {total_entities} + +【模拟预测到的部分未来事实样本】 +{related_facts_json} + +请以「上帝视角」审视这个未来预演: +1. 在我们设定的条件下,未来呈现出了什么样的状态? +2. 各类人群(Agent)是如何反应和行动的? +3. 这个模拟揭示了哪些值得关注的未来趋势? + +根据预测结果,设计最合适的报告章节结构。 + +【再次提醒】报告章节数量:最少2个,最多5个,内容要精炼聚焦于核心预测发现。""" + +# ── 章节生成 prompt ── + +SECTION_SYSTEM_PROMPT_TEMPLATE = """\ +你是一个「未来预测报告」的撰写专家,正在撰写报告的一个章节。 + +报告标题: {report_title} +报告摘要: {report_summary} +预测场景(模拟需求): {simulation_requirement} + +当前要撰写的章节: {section_title} + +═══════════════════════════════════════════════════════════════ +【核心理念】 +═══════════════════════════════════════════════════════════════ + +模拟世界是对未来的预演。我们向模拟世界注入了特定条件(模拟需求), +模拟中Agent的行为和互动,就是对未来人群行为的预测。 + +你的任务是: +- 揭示在设定条件下,未来发生了什么 +- 预测各类人群(Agent)是如何反应和行动的 +- 发现值得关注的未来趋势、风险和机会 + +❌ 不要写成对现实世界现状的分析 +✅ 要聚焦于"未来会怎样"——模拟结果就是预测的未来 + +═══════════════════════════════════════════════════════════════ +【最重要的规则 - 必须遵守】 +═══════════════════════════════════════════════════════════════ + +1. 【必须调用工具观察模拟世界】 + - 你正在以「上帝视角」观察未来的预演 + - 所有内容必须来自模拟世界中发生的事件和Agent言行 + - 禁止使用你自己的知识来编写报告内容 + - 每个章节至少调用3次工具(最多5次)来观察模拟的世界,它代表了未来 + +2. 【必须引用Agent的原始言行】 + - Agent的发言和行为是对未来人群行为的预测 + - 在报告中使用引用格式展示这些预测,例如: + > "某类人群会表示:原文内容..." + - 这些引用是模拟预测的核心证据 + +3. 【语言一致性 - 引用内容必须翻译为报告语言】 + - 工具返回的内容可能包含与报告语言不同的表述 + - 报告必须全部使用与用户指定语言一致的语言撰写 + - 当你引用工具返回的其他语言内容时,必须将其翻译为报告语言后再写入 + - 翻译时保持原意不变,确保表述自然通顺 + - 这一规则同时适用于正文和引用块(> 格式)中的内容 + +4. 【忠实呈现预测结果】 + - 报告内容必须反映模拟世界中的代表未来的模拟结果 + - 不要添加模拟中不存在的信息 + - 如果某方面信息不足,如实说明 + +═══════════════════════════════════════════════════════════════ +【⚠️ 格式规范 - 极其重要!】 +═══════════════════════════════════════════════════════════════ + +【一个章节 = 最小内容单位】 +- 每个章节是报告的最小分块单位 +- ❌ 禁止在章节内使用任何 Markdown 标题(#、##、###、#### 等) +- ❌ 禁止在内容开头添加章节主标题 +- ✅ 章节标题由系统自动添加,你只需撰写纯正文内容 +- ✅ 使用**粗体**、段落分隔、引用、列表来组织内容,但不要用标题 + +【正确示例】 +``` +本章节分析了事件的舆论传播态势。通过对模拟数据的深入分析,我们发现... + +**首发引爆阶段** + +微博作为舆情的第一现场,承担了信息首发的核心功能: + +> "微博贡献了68%的首发声量..." + +**情绪放大阶段** + +抖音平台进一步放大了事件影响力: + +- 视觉冲击力强 +- 情绪共鸣度高 +``` + +【错误示例】 +``` +## 执行摘要 ← 错误!不要添加任何标题 +### 一、首发阶段 ← 错误!不要用###分小节 +#### 1.1 详细分析 ← 错误!不要用####细分 + +本章节分析了... +``` + +═══════════════════════════════════════════════════════════════ +【可用检索工具】(每章节调用3-5次) +═══════════════════════════════════════════════════════════════ + +{tools_description} + +【工具使用建议 - 请混合使用不同工具,不要只用一种】 +- insight_forge: 深度洞察分析,自动分解问题并多维度检索事实和关系 +- panorama_search: 广角全景搜索,了解事件全貌、时间线和演变过程 +- quick_search: 快速验证某个具体信息点 +- interview_agents: 采访模拟Agent,获取不同角色的第一人称观点和真实反应 + +═══════════════════════════════════════════════════════════════ +【工作流程】 +═══════════════════════════════════════════════════════════════ + +每次回复你只能做以下两件事之一(不可同时做): + +选项A - 调用工具: +输出你的思考,然后用以下格式调用一个工具: + +{{"name": "工具名称", "parameters": {{"参数名": "参数值"}}}} + +系统会执行工具并把结果返回给你。你不需要也不能自己编写工具返回结果。 + +选项B - 输出最终内容: +当你已通过工具获取了足够信息,以 "Final Answer:" 开头输出章节内容。 + +⚠️ 严格禁止: +- 禁止在一次回复中同时包含工具调用和 Final Answer +- 禁止自己编造工具返回结果(Observation),所有工具结果由系统注入 +- 每次回复最多调用一个工具 + +═══════════════════════════════════════════════════════════════ +【章节内容要求】 +═══════════════════════════════════════════════════════════════ + +1. 内容必须基于工具检索到的模拟数据 +2. 大量引用原文来展示模拟效果 +3. 使用Markdown格式(但禁止使用标题): + - 使用 **粗体文字** 标记重点(代替子标题) + - 使用列表(-或1.2.3.)组织要点 + - 使用空行分隔不同段落 + - ❌ 禁止使用 #、##、###、#### 等任何标题语法 +4. 【引用格式规范 - 必须单独成段】 + 引用必须独立成段,前后各有一个空行,不能混在段落中: + + ✅ 正确格式: + ``` + 校方的回应被认为缺乏实质内容。 + + > "校方的应对模式在瞬息万变的社交媒体环境中显得僵化和迟缓。" + + 这一评价反映了公众的普遍不满。 + ``` + + ❌ 错误格式: + ``` + 校方的回应被认为缺乏实质内容。> "校方的应对模式..." 这一评价反映了... + ``` +5. 保持与其他章节的逻辑连贯性 +6. 【避免重复】仔细阅读下方已完成的章节内容,不要重复描述相同的信息 +7. 【再次强调】不要添加任何标题!用**粗体**代替小节标题""" + +SECTION_USER_PROMPT_TEMPLATE = """\ +已完成的章节内容(请仔细阅读,避免重复): +{previous_content} + +═══════════════════════════════════════════════════════════════ +【当前任务】撰写章节: {section_title} +═══════════════════════════════════════════════════════════════ + +【重要提醒】 +1. 仔细阅读上方已完成的章节,避免重复相同的内容! +2. 开始前必须先调用工具获取模拟数据 +3. 请混合使用不同工具,不要只用一种 +4. 报告内容必须来自检索结果,不要使用自己的知识 + +【⚠️ 格式警告 - 必须遵守】 +- ❌ 不要写任何标题(#、##、###、####都不行) +- ❌ 不要写"{section_title}"作为开头 +- ✅ 章节标题由系统自动添加 +- ✅ 直接写正文,用**粗体**代替小节标题 + +请开始: +1. 首先思考(Thought)这个章节需要什么信息 +2. 然后调用工具(Action)获取模拟数据 +3. 收集足够信息后输出 Final Answer(纯正文,无任何标题)""" + +# ── ReACT 循环内消息模板 ── + +REACT_OBSERVATION_TEMPLATE = """\ +Observation(检索结果): + +═══ 工具 {tool_name} 返回 ═══ +{result} + +═══════════════════════════════════════════════════════════════ +已调用工具 {tool_calls_count}/{max_tool_calls} 次(已用: {used_tools_str}){unused_hint} +- 如果信息充分:以 "Final Answer:" 开头输出章节内容(必须引用上述原文) +- 如果需要更多信息:调用一个工具继续检索 +═══════════════════════════════════════════════════════════════""" + +REACT_INSUFFICIENT_TOOLS_MSG = ( + "【注意】你只调用了{tool_calls_count}次工具,至少需要{min_tool_calls}次。" + "请再调用工具获取更多模拟数据,然后再输出 Final Answer。{unused_hint}" +) + +REACT_INSUFFICIENT_TOOLS_MSG_ALT = ( + "当前只调用了 {tool_calls_count} 次工具,至少需要 {min_tool_calls} 次。" + "请调用工具获取模拟数据。{unused_hint}" +) + +REACT_TOOL_LIMIT_MSG = ( + "工具调用次数已达上限({tool_calls_count}/{max_tool_calls}),不能再调用工具。" + '请立即基于已获取的信息,以 "Final Answer:" 开头输出章节内容。' +) + +REACT_UNUSED_TOOLS_HINT = "\n💡 你还没有使用过: {unused_list},建议尝试不同工具获取多角度信息" + +REACT_FORCE_FINAL_MSG = "已达到工具调用限制,请直接输出 Final Answer: 并生成章节内容。" + +# ── Chat prompt ── + +CHAT_SYSTEM_PROMPT_TEMPLATE = """\ +你是一个简洁高效的模拟预测助手。 + +【背景】 +预测条件: {simulation_requirement} + +【已生成的分析报告】 +{report_content} + +【规则】 +1. 优先基于上述报告内容回答问题 +2. 直接回答问题,避免冗长的思考论述 +3. 仅在报告内容不足以回答时,才调用工具检索更多数据 +4. 回答要简洁、清晰、有条理 + +【可用工具】(仅在需要时使用,最多调用1-2次) +{tools_description} + +【工具调用格式】 + +{{"name": "工具名称", "parameters": {{"参数名": "参数值"}}}} + + +【回答风格】 +- 简洁直接,不要长篇大论 +- 使用 > 格式引用关键内容 +- 优先给出结论,再解释原因""" + +CHAT_OBSERVATION_SUFFIX = "\n\n请简洁回答问题。" + + +# ═══════════════════════════════════════════════════════════════ +# ReportAgent 主类 +# ═══════════════════════════════════════════════════════════════ + + +class ReportAgent: + """ + Report Agent - 模拟报告生成Agent + + 采用ReACT(Reasoning + Acting)模式: + 1. 规划阶段:分析模拟需求,规划报告目录结构 + 2. 生成阶段:逐章节生成内容,每章节可多次调用工具获取信息 + 3. 反思阶段:检查内容完整性和准确性 + """ + + # 最大工具调用次数(每个章节) + MAX_TOOL_CALLS_PER_SECTION = 5 + + # 最大反思轮数 + MAX_REFLECTION_ROUNDS = 3 + + # 对话中的最大工具调用次数 + MAX_TOOL_CALLS_PER_CHAT = 2 + + def __init__( + self, + graph_id: str, + simulation_id: str, + simulation_requirement: str, + llm_client: Optional[LLMClient] = None, + zep_tools: Optional[ZepToolsService] = None + ): + """ + 初始化Report Agent + + Args: + graph_id: 图谱ID + simulation_id: 模拟ID + simulation_requirement: 模拟需求描述 + llm_client: LLM客户端(可选) + zep_tools: Zep工具服务(可选) + """ + self.graph_id = graph_id + self.simulation_id = simulation_id + self.simulation_requirement = simulation_requirement + + self.llm = llm_client or LLMClient() + self.zep_tools = zep_tools or ZepToolsService() + + # 工具定义 + self.tools = self._define_tools() + + # 日志记录器(在 generate_report 中初始化) + self.report_logger: Optional[ReportLogger] = None + # 控制台日志记录器(在 generate_report 中初始化) + self.console_logger: Optional[ReportConsoleLogger] = None + + logger.info(t('report.agentInitDone', graphId=graph_id, simulationId=simulation_id)) + + def _define_tools(self) -> Dict[str, Dict[str, Any]]: + """定义可用工具""" + return { + "insight_forge": { + "name": "insight_forge", + "description": TOOL_DESC_INSIGHT_FORGE, + "parameters": { + "query": "你想深入分析的问题或话题", + "report_context": "当前报告章节的上下文(可选,有助于生成更精准的子问题)" + } + }, + "panorama_search": { + "name": "panorama_search", + "description": TOOL_DESC_PANORAMA_SEARCH, + "parameters": { + "query": "搜索查询,用于相关性排序", + "include_expired": "是否包含过期/历史内容(默认True)" + } + }, + "quick_search": { + "name": "quick_search", + "description": TOOL_DESC_QUICK_SEARCH, + "parameters": { + "query": "搜索查询字符串", + "limit": "返回结果数量(可选,默认10)" + } + }, + "interview_agents": { + "name": "interview_agents", + "description": TOOL_DESC_INTERVIEW_AGENTS, + "parameters": { + "interview_topic": "采访主题或需求描述(如:'了解学生对宿舍甲醛事件的看法')", + "max_agents": "最多采访的Agent数量(可选,默认5,最大10)" + } + } + } + + def _execute_tool(self, tool_name: str, parameters: Dict[str, Any], report_context: str = "") -> str: + """ + 执行工具调用 + + Args: + tool_name: 工具名称 + parameters: 工具参数 + report_context: 报告上下文(用于InsightForge) + + Returns: + 工具执行结果(文本格式) + """ + logger.info(t('report.executingTool', toolName=tool_name, params=parameters)) + + try: + if tool_name == "insight_forge": + query = parameters.get("query", "") + ctx = parameters.get("report_context", "") or report_context + result = self.zep_tools.insight_forge( + graph_id=self.graph_id, + query=query, + simulation_requirement=self.simulation_requirement, + report_context=ctx + ) + return result.to_text() + + elif tool_name == "panorama_search": + # 广度搜索 - 获取全貌 + query = parameters.get("query", "") + include_expired = parameters.get("include_expired", True) + if isinstance(include_expired, str): + include_expired = include_expired.lower() in ['true', '1', 'yes'] + result = self.zep_tools.panorama_search( + graph_id=self.graph_id, + query=query, + include_expired=include_expired + ) + return result.to_text() + + elif tool_name == "quick_search": + # 简单搜索 - 快速检索 + query = parameters.get("query", "") + limit = parameters.get("limit", 10) + if isinstance(limit, str): + limit = int(limit) + result = self.zep_tools.quick_search( + graph_id=self.graph_id, + query=query, + limit=limit + ) + return result.to_text() + + elif tool_name == "interview_agents": + # 深度采访 - 调用真实的OASIS采访API获取模拟Agent的回答(双平台) + interview_topic = parameters.get("interview_topic", parameters.get("query", "")) + max_agents = parameters.get("max_agents", 5) + if isinstance(max_agents, str): + max_agents = int(max_agents) + max_agents = min(max_agents, 10) + result = self.zep_tools.interview_agents( + simulation_id=self.simulation_id, + interview_requirement=interview_topic, + simulation_requirement=self.simulation_requirement, + max_agents=max_agents + ) + return result.to_text() + + # ========== 向后兼容的旧工具(内部重定向到新工具) ========== + + elif tool_name == "search_graph": + # 重定向到 quick_search + logger.info(t('report.redirectToQuickSearch')) + return self._execute_tool("quick_search", parameters, report_context) + + elif tool_name == "get_graph_statistics": + result = self.zep_tools.get_graph_statistics(self.graph_id) + return json.dumps(result, ensure_ascii=False, indent=2) + + elif tool_name == "get_entity_summary": + entity_name = parameters.get("entity_name", "") + result = self.zep_tools.get_entity_summary( + graph_id=self.graph_id, + entity_name=entity_name + ) + return json.dumps(result, ensure_ascii=False, indent=2) + + elif tool_name == "get_simulation_context": + # 重定向到 insight_forge,因为它更强大 + logger.info(t('report.redirectToInsightForge')) + query = parameters.get("query", self.simulation_requirement) + return self._execute_tool("insight_forge", {"query": query}, report_context) + + elif tool_name == "get_entities_by_type": + entity_type = parameters.get("entity_type", "") + nodes = self.zep_tools.get_entities_by_type( + graph_id=self.graph_id, + entity_type=entity_type + ) + result = [n.to_dict() for n in nodes] + return json.dumps(result, ensure_ascii=False, indent=2) + + else: + return f"未知工具: {tool_name}。请使用以下工具之一: insight_forge, panorama_search, quick_search" + + except Exception as e: + logger.error(t('report.toolExecFailed', toolName=tool_name, error=str(e))) + return f"工具执行失败: {str(e)}" + + # 合法的工具名称集合,用于裸 JSON 兜底解析时校验 + VALID_TOOL_NAMES = {"insight_forge", "panorama_search", "quick_search", "interview_agents"} + + def _parse_tool_calls(self, response: str) -> List[Dict[str, Any]]: + """ + 从LLM响应中解析工具调用 + + 支持的格式(按优先级): + 1. {"name": "tool_name", "parameters": {...}} + 2. 裸 JSON(响应整体或单行就是一个工具调用 JSON) + """ + tool_calls = [] + + # 格式1: XML风格(标准格式) + xml_pattern = r'\s*(\{.*?\})\s*' + for match in re.finditer(xml_pattern, response, re.DOTALL): + try: + call_data = json.loads(match.group(1)) + tool_calls.append(call_data) + except json.JSONDecodeError: + pass + + if tool_calls: + return tool_calls + + # 格式2: 兜底 - LLM 直接输出裸 JSON(没包 标签) + # 只在格式1未匹配时尝试,避免误匹配正文中的 JSON + stripped = response.strip() + if stripped.startswith('{') and stripped.endswith('}'): + try: + call_data = json.loads(stripped) + if self._is_valid_tool_call(call_data): + tool_calls.append(call_data) + return tool_calls + except json.JSONDecodeError: + pass + + # 响应可能包含思考文字 + 裸 JSON,尝试提取最后一个 JSON 对象 + json_pattern = r'(\{"(?:name|tool)"\s*:.*?\})\s*$' + match = re.search(json_pattern, stripped, re.DOTALL) + if match: + try: + call_data = json.loads(match.group(1)) + if self._is_valid_tool_call(call_data): + tool_calls.append(call_data) + except json.JSONDecodeError: + pass + + return tool_calls + + def _is_valid_tool_call(self, data: dict) -> bool: + """校验解析出的 JSON 是否是合法的工具调用""" + # 支持 {"name": ..., "parameters": ...} 和 {"tool": ..., "params": ...} 两种键名 + tool_name = data.get("name") or data.get("tool") + if tool_name and tool_name in self.VALID_TOOL_NAMES: + # 统一键名为 name / parameters + if "tool" in data: + data["name"] = data.pop("tool") + if "params" in data and "parameters" not in data: + data["parameters"] = data.pop("params") + return True + return False + + def _get_tools_description(self) -> str: + """生成工具描述文本""" + desc_parts = ["可用工具:"] + for name, tool in self.tools.items(): + params_desc = ", ".join([f"{k}: {v}" for k, v in tool["parameters"].items()]) + desc_parts.append(f"- {name}: {tool['description']}") + if params_desc: + desc_parts.append(f" 参数: {params_desc}") + return "\n".join(desc_parts) + + def plan_outline( + self, + progress_callback: Optional[Callable] = None + ) -> ReportOutline: + """ + 规划报告大纲 + + 使用LLM分析模拟需求,规划报告的目录结构 + + Args: + progress_callback: 进度回调函数 + + Returns: + ReportOutline: 报告大纲 + """ + logger.info(t('report.startPlanningOutline')) + + if progress_callback: + progress_callback("planning", 0, t('progress.analyzingRequirements')) + + # 首先获取模拟上下文 + context = self.zep_tools.get_simulation_context( + graph_id=self.graph_id, + simulation_requirement=self.simulation_requirement + ) + + if progress_callback: + progress_callback("planning", 30, t('progress.generatingOutline')) + + system_prompt = f"{PLAN_SYSTEM_PROMPT}\n\n{get_language_instruction()}" + user_prompt = PLAN_USER_PROMPT_TEMPLATE.format( + simulation_requirement=self.simulation_requirement, + total_nodes=context.get('graph_statistics', {}).get('total_nodes', 0), + total_edges=context.get('graph_statistics', {}).get('total_edges', 0), + entity_types=list(context.get('graph_statistics', {}).get('entity_types', {}).keys()), + total_entities=context.get('total_entities', 0), + related_facts_json=json.dumps(context.get('related_facts', [])[:10], ensure_ascii=False, indent=2), + ) + + try: + response = self.llm.chat_json( + messages=[ + {"role": "system", "content": system_prompt}, + {"role": "user", "content": user_prompt} + ], + temperature=0.3 + ) + + if progress_callback: + progress_callback("planning", 80, t('progress.parsingOutline')) + + # 解析大纲 + sections = [] + for section_data in response.get("sections", []): + sections.append(ReportSection( + title=section_data.get("title", ""), + content="" + )) + + outline = ReportOutline( + title=response.get("title", "模拟分析报告"), + summary=response.get("summary", ""), + sections=sections + ) + + if progress_callback: + progress_callback("planning", 100, t('progress.outlinePlanComplete')) + + logger.info(t('report.outlinePlanDone', count=len(sections))) + return outline + + except Exception as e: + logger.error(t('report.outlinePlanFailed', error=str(e))) + # 返回默认大纲(3个章节,作为fallback) + return ReportOutline( + title="未来预测报告", + summary="基于模拟预测的未来趋势与风险分析", + sections=[ + ReportSection(title="预测场景与核心发现"), + ReportSection(title="人群行为预测分析"), + ReportSection(title="趋势展望与风险提示") + ] + ) + + def _generate_section_react( + self, + section: ReportSection, + outline: ReportOutline, + previous_sections: List[str], + progress_callback: Optional[Callable] = None, + section_index: int = 0 + ) -> str: + """ + 使用ReACT模式生成单个章节内容 + + ReACT循环: + 1. Thought(思考)- 分析需要什么信息 + 2. Action(行动)- 调用工具获取信息 + 3. Observation(观察)- 分析工具返回结果 + 4. 重复直到信息足够或达到最大次数 + 5. Final Answer(最终回答)- 生成章节内容 + + Args: + section: 要生成的章节 + outline: 完整大纲 + previous_sections: 之前章节的内容(用于保持连贯性) + progress_callback: 进度回调 + section_index: 章节索引(用于日志记录) + + Returns: + 章节内容(Markdown格式) + """ + logger.info(t('report.reactGenerateSection', title=section.title)) + + # 记录章节开始日志 + if self.report_logger: + self.report_logger.log_section_start(section.title, section_index) + + system_prompt = SECTION_SYSTEM_PROMPT_TEMPLATE.format( + report_title=outline.title, + report_summary=outline.summary, + simulation_requirement=self.simulation_requirement, + section_title=section.title, + tools_description=self._get_tools_description(), + ) + system_prompt = f"{system_prompt}\n\n{get_language_instruction()}" + + # 构建用户prompt - 每个已完成章节各传入最大4000字 + if previous_sections: + previous_parts = [] + for sec in previous_sections: + # 每个章节最多4000字 + truncated = sec[:4000] + "..." if len(sec) > 4000 else sec + previous_parts.append(truncated) + previous_content = "\n\n---\n\n".join(previous_parts) + else: + previous_content = "(这是第一个章节)" + + user_prompt = SECTION_USER_PROMPT_TEMPLATE.format( + previous_content=previous_content, + section_title=section.title, + ) + + messages = [ + {"role": "system", "content": system_prompt}, + {"role": "user", "content": user_prompt} + ] + + # ReACT循环 + tool_calls_count = 0 + max_iterations = 5 # 最大迭代轮数 + min_tool_calls = 3 # 最少工具调用次数 + conflict_retries = 0 # 工具调用与Final Answer同时出现的连续冲突次数 + used_tools = set() # 记录已调用过的工具名 + all_tools = {"insight_forge", "panorama_search", "quick_search", "interview_agents"} + + # 报告上下文,用于InsightForge的子问题生成 + report_context = f"章节标题: {section.title}\n模拟需求: {self.simulation_requirement}" + + for iteration in range(max_iterations): + if progress_callback: + progress_callback( + "generating", + int((iteration / max_iterations) * 100), + t('progress.deepSearchAndWrite', current=tool_calls_count, max=self.MAX_TOOL_CALLS_PER_SECTION) + ) + + # 调用LLM + response = self.llm.chat( + messages=messages, + temperature=0.5, + max_tokens=4096 + ) + + # 剥离模型幻觉产生的 块,防止模型模拟工具返回结果 + if response: + response = re.sub(r'.*?', '', response, flags=re.DOTALL) + + # 检查 LLM 返回是否为 None(API 异常或内容为空) + if response is None: + logger.warning(t('report.sectionIterNone', title=section.title, iteration=iteration + 1)) + # 如果还有迭代次数,添加消息并重试 + if iteration < max_iterations - 1: + messages.append({"role": "assistant", "content": "(响应为空)"}) + messages.append({"role": "user", "content": "请继续生成内容。"}) + continue + # 最后一次迭代也返回 None,跳出循环进入强制收尾 + break + + logger.debug(f"LLM响应: {response[:200]}...") + + # 解析一次,复用结果 + tool_calls = self._parse_tool_calls(response) + has_tool_calls = bool(tool_calls) + has_final_answer = "Final Answer:" in response + + # ── 冲突处理:LLM 同时输出了工具调用和 Final Answer ── + if has_tool_calls and has_final_answer: + conflict_retries += 1 + logger.warning( + t('report.sectionConflict', title=section.title, iteration=iteration+1, conflictCount=conflict_retries) + ) + + if conflict_retries <= 2: + # 前两次:丢弃本次响应,要求 LLM 重新回复 + messages.append({"role": "assistant", "content": response}) + messages.append({ + "role": "user", + "content": ( + "【格式错误】你在一次回复中同时包含了工具调用和 Final Answer,这是不允许的。\n" + "每次回复只能做以下两件事之一:\n" + "- 调用一个工具(输出一个 块,不要写 Final Answer)\n" + "- 输出最终内容(以 'Final Answer:' 开头,不要包含 )\n" + "请重新回复,只做其中一件事。" + ), + }) + continue + else: + # 第三次:降级处理,截断到第一个工具调用,强制执行 + logger.warning( + t('report.sectionConflictDowngrade', title=section.title, conflictCount=conflict_retries) + ) + first_tool_end = response.find('') + if first_tool_end != -1: + response = response[:first_tool_end + len('')] + tool_calls = self._parse_tool_calls(response) + has_tool_calls = bool(tool_calls) + has_final_answer = False + conflict_retries = 0 + + # 记录 LLM 响应日志 + if self.report_logger: + self.report_logger.log_llm_response( + section_title=section.title, + section_index=section_index, + response=response, + iteration=iteration + 1, + has_tool_calls=has_tool_calls, + has_final_answer=has_final_answer + ) + + # ── 情况1:LLM 输出了 Final Answer ── + if has_final_answer: + # 工具调用次数不足,拒绝并要求继续调工具 + if tool_calls_count < min_tool_calls: + messages.append({"role": "assistant", "content": response}) + unused_tools = all_tools - used_tools + unused_hint = f"(这些工具还未使用,推荐用一下他们: {', '.join(unused_tools)})" if unused_tools else "" + messages.append({ + "role": "user", + "content": REACT_INSUFFICIENT_TOOLS_MSG.format( + tool_calls_count=tool_calls_count, + min_tool_calls=min_tool_calls, + unused_hint=unused_hint, + ), + }) + continue + + # 正常结束 + final_answer = response.split("Final Answer:")[-1].strip() + logger.info(t('report.sectionGenDone', title=section.title, count=tool_calls_count)) + + if self.report_logger: + self.report_logger.log_section_content( + section_title=section.title, + section_index=section_index, + content=final_answer, + tool_calls_count=tool_calls_count + ) + return final_answer + + # ── 情况2:LLM 尝试调用工具 ── + if has_tool_calls: + # 工具额度已耗尽 → 明确告知,要求输出 Final Answer + if tool_calls_count >= self.MAX_TOOL_CALLS_PER_SECTION: + messages.append({"role": "assistant", "content": response}) + messages.append({ + "role": "user", + "content": REACT_TOOL_LIMIT_MSG.format( + tool_calls_count=tool_calls_count, + max_tool_calls=self.MAX_TOOL_CALLS_PER_SECTION, + ), + }) + continue + + # 只执行第一个工具调用 + call = tool_calls[0] + if len(tool_calls) > 1: + logger.info(t('report.multiToolOnlyFirst', total=len(tool_calls), toolName=call['name'])) + + if self.report_logger: + self.report_logger.log_tool_call( + section_title=section.title, + section_index=section_index, + tool_name=call["name"], + parameters=call.get("parameters", {}), + iteration=iteration + 1 + ) + + result = self._execute_tool( + call["name"], + call.get("parameters", {}), + report_context=report_context + ) + + if self.report_logger: + self.report_logger.log_tool_result( + section_title=section.title, + section_index=section_index, + tool_name=call["name"], + result=result, + iteration=iteration + 1 + ) + + tool_calls_count += 1 + used_tools.add(call['name']) + + # 构建未使用工具提示 + unused_tools = all_tools - used_tools + unused_hint = "" + if unused_tools and tool_calls_count < self.MAX_TOOL_CALLS_PER_SECTION: + unused_hint = REACT_UNUSED_TOOLS_HINT.format(unused_list="、".join(unused_tools)) + + messages.append({"role": "assistant", "content": response}) + messages.append({ + "role": "user", + "content": REACT_OBSERVATION_TEMPLATE.format( + tool_name=call["name"], + result=result, + tool_calls_count=tool_calls_count, + max_tool_calls=self.MAX_TOOL_CALLS_PER_SECTION, + used_tools_str=", ".join(used_tools), + unused_hint=unused_hint, + ), + }) + continue + + # ── 情况3:既没有工具调用,也没有 Final Answer ── + messages.append({"role": "assistant", "content": response}) + + if tool_calls_count < min_tool_calls: + # 工具调用次数不足,推荐未用过的工具 + unused_tools = all_tools - used_tools + unused_hint = f"(这些工具还未使用,推荐用一下他们: {', '.join(unused_tools)})" if unused_tools else "" + + messages.append({ + "role": "user", + "content": REACT_INSUFFICIENT_TOOLS_MSG_ALT.format( + tool_calls_count=tool_calls_count, + min_tool_calls=min_tool_calls, + unused_hint=unused_hint, + ), + }) + continue + + # 工具调用已足够,LLM 输出了内容但没带 "Final Answer:" 前缀 + # 直接将这段内容作为最终答案,不再空转 + logger.info(t('report.sectionNoPrefix', title=section.title, count=tool_calls_count)) + final_answer = response.strip() + + if self.report_logger: + self.report_logger.log_section_content( + section_title=section.title, + section_index=section_index, + content=final_answer, + tool_calls_count=tool_calls_count + ) + return final_answer + + # 达到最大迭代次数,强制生成内容 + logger.warning(t('report.sectionMaxIter', title=section.title)) + messages.append({"role": "user", "content": REACT_FORCE_FINAL_MSG}) + + response = self.llm.chat( + messages=messages, + temperature=0.5, + max_tokens=4096 + ) + + # 检查强制收尾时 LLM 返回是否为 None + if response is None: + logger.error(t('report.sectionForceFailed', title=section.title)) + final_answer = t('report.sectionGenFailedContent') + elif "Final Answer:" in response: + final_answer = response.split("Final Answer:")[-1].strip() + else: + final_answer = response + + # 记录章节内容生成完成日志 + if self.report_logger: + self.report_logger.log_section_content( + section_title=section.title, + section_index=section_index, + content=final_answer, + tool_calls_count=tool_calls_count + ) + + return final_answer + + def generate_report( + self, + progress_callback: Optional[Callable[[str, int, str], None]] = None, + report_id: Optional[str] = None + ) -> Report: + """ + 生成完整报告(分章节实时输出) + + 每个章节生成完成后立即保存到文件夹,不需要等待整个报告完成。 + 文件结构: + reports/{report_id}/ + meta.json - 报告元信息 + outline.json - 报告大纲 + progress.json - 生成进度 + section_01.md - 第1章节 + section_02.md - 第2章节 + ... + full_report.md - 完整报告 + + Args: + progress_callback: 进度回调函数 (stage, progress, message) + report_id: 报告ID(可选,如果不传则自动生成) + + Returns: + Report: 完整报告 + """ + import uuid + + # 如果没有传入 report_id,则自动生成 + if not report_id: + report_id = f"report_{uuid.uuid4().hex[:12]}" + start_time = datetime.now() + + report = Report( + report_id=report_id, + simulation_id=self.simulation_id, + graph_id=self.graph_id, + simulation_requirement=self.simulation_requirement, + status=ReportStatus.PENDING, + created_at=datetime.now().isoformat() + ) + + # 已完成的章节标题列表(用于进度追踪) + completed_section_titles = [] + + try: + # 初始化:创建报告文件夹并保存初始状态 + ReportManager._ensure_report_folder(report_id) + + # 初始化日志记录器(结构化日志 agent_log.jsonl) + self.report_logger = ReportLogger(report_id) + self.report_logger.log_start( + simulation_id=self.simulation_id, + graph_id=self.graph_id, + simulation_requirement=self.simulation_requirement + ) + + # 初始化控制台日志记录器(console_log.txt) + self.console_logger = ReportConsoleLogger(report_id) + + ReportManager.update_progress( + report_id, "pending", 0, t('progress.initReport'), + completed_sections=[] + ) + ReportManager.save_report(report) + + # 阶段1: 规划大纲 + report.status = ReportStatus.PLANNING + ReportManager.update_progress( + report_id, "planning", 5, t('progress.startPlanningOutline'), + completed_sections=[] + ) + + # 记录规划开始日志 + self.report_logger.log_planning_start() + + if progress_callback: + progress_callback("planning", 0, t('progress.startPlanningOutline')) + + outline = self.plan_outline( + progress_callback=lambda stage, prog, msg: + progress_callback(stage, prog // 5, msg) if progress_callback else None + ) + report.outline = outline + + # 记录规划完成日志 + self.report_logger.log_planning_complete(outline.to_dict()) + + # 保存大纲到文件 + ReportManager.save_outline(report_id, outline) + ReportManager.update_progress( + report_id, "planning", 15, t('progress.outlineDone', count=len(outline.sections)), + completed_sections=[] + ) + ReportManager.save_report(report) + + logger.info(t('report.outlineSavedToFile', reportId=report_id)) + + # 阶段2: 逐章节生成(分章节保存) + report.status = ReportStatus.GENERATING + + total_sections = len(outline.sections) + generated_sections = [] # 保存内容用于上下文 + + for i, section in enumerate(outline.sections): + section_num = i + 1 + base_progress = 20 + int((i / total_sections) * 70) + + # 更新进度 + ReportManager.update_progress( + report_id, "generating", base_progress, + t('progress.generatingSection', title=section.title, current=section_num, total=total_sections), + current_section=section.title, + completed_sections=completed_section_titles + ) + + if progress_callback: + progress_callback( + "generating", + base_progress, + t('progress.generatingSection', title=section.title, current=section_num, total=total_sections) + ) + + # 生成主章节内容 + section_content = self._generate_section_react( + section=section, + outline=outline, + previous_sections=generated_sections, + progress_callback=lambda stage, prog, msg: + progress_callback( + stage, + base_progress + int(prog * 0.7 / total_sections), + msg + ) if progress_callback else None, + section_index=section_num + ) + + section.content = section_content + generated_sections.append(f"## {section.title}\n\n{section_content}") + + # 保存章节 + ReportManager.save_section(report_id, section_num, section) + completed_section_titles.append(section.title) + + # 记录章节完成日志 + full_section_content = f"## {section.title}\n\n{section_content}" + + if self.report_logger: + self.report_logger.log_section_full_complete( + section_title=section.title, + section_index=section_num, + full_content=full_section_content.strip() + ) + + logger.info(t('report.sectionSaved', reportId=report_id, sectionNum=f"{section_num:02d}")) + + # 更新进度 + ReportManager.update_progress( + report_id, "generating", + base_progress + int(70 / total_sections), + t('progress.sectionDone', title=section.title), + current_section=None, + completed_sections=completed_section_titles + ) + + # 阶段3: 组装完整报告 + if progress_callback: + progress_callback("generating", 95, t('progress.assemblingReport')) + + ReportManager.update_progress( + report_id, "generating", 95, t('progress.assemblingReport'), + completed_sections=completed_section_titles + ) + + # 使用ReportManager组装完整报告 + report.markdown_content = ReportManager.assemble_full_report(report_id, outline) + report.status = ReportStatus.COMPLETED + report.completed_at = datetime.now().isoformat() + + # 计算总耗时 + total_time_seconds = (datetime.now() - start_time).total_seconds() + + # 记录报告完成日志 + if self.report_logger: + self.report_logger.log_report_complete( + total_sections=total_sections, + total_time_seconds=total_time_seconds + ) + + # 保存最终报告 + ReportManager.save_report(report) + ReportManager.update_progress( + report_id, "completed", 100, t('progress.reportComplete'), + completed_sections=completed_section_titles + ) + + if progress_callback: + progress_callback("completed", 100, t('progress.reportComplete')) + + logger.info(t('report.reportGenDone', reportId=report_id)) + + # 关闭控制台日志记录器 + if self.console_logger: + self.console_logger.close() + self.console_logger = None + + return report + + except Exception as e: + logger.error(t('report.reportGenFailed', error=str(e))) + report.status = ReportStatus.FAILED + report.error = str(e) + + # 记录错误日志 + if self.report_logger: + self.report_logger.log_error(str(e), "failed") + + # 保存失败状态 + try: + ReportManager.save_report(report) + ReportManager.update_progress( + report_id, "failed", -1, t('progress.reportFailed', error=str(e)), + completed_sections=completed_section_titles + ) + except Exception: + pass # 忽略保存失败的错误 + + # 关闭控制台日志记录器 + if self.console_logger: + self.console_logger.close() + self.console_logger = None + + return report + + def chat( + self, + message: str, + chat_history: List[Dict[str, str]] = None + ) -> Dict[str, Any]: + """ + 与Report Agent对话 + + 在对话中Agent可以自主调用检索工具来回答问题 + + Args: + message: 用户消息 + chat_history: 对话历史 + + Returns: + { + "response": "Agent回复", + "tool_calls": [调用的工具列表], + "sources": [信息来源] + } + """ + logger.info(t('report.agentChat', message=message[:50])) + + chat_history = chat_history or [] + + # 获取已生成的报告内容 + report_content = "" + try: + report = ReportManager.get_report_by_simulation(self.simulation_id) + if report and report.markdown_content: + # 限制报告长度,避免上下文过长 + report_content = report.markdown_content[:15000] + if len(report.markdown_content) > 15000: + report_content += "\n\n... [报告内容已截断] ..." + except Exception as e: + logger.warning(t('report.fetchReportFailed', error=e)) + + system_prompt = CHAT_SYSTEM_PROMPT_TEMPLATE.format( + simulation_requirement=self.simulation_requirement, + report_content=report_content if report_content else "(暂无报告)", + tools_description=self._get_tools_description(), + ) + system_prompt = f"{system_prompt}\n\n{get_language_instruction()}" + + # 构建消息 + messages = [{"role": "system", "content": system_prompt}] + + # 添加历史对话 + for h in chat_history[-10:]: # 限制历史长度 + messages.append(h) + + # 添加用户消息 + messages.append({ + "role": "user", + "content": message + }) + + # ReACT循环(简化版) + tool_calls_made = [] + max_iterations = 2 # 减少迭代轮数 + + for iteration in range(max_iterations): + response = self.llm.chat( + messages=messages, + temperature=0.5 + ) + + # 剥离模型幻觉产生的 块 + if response: + response = re.sub(r'.*?', '', response, flags=re.DOTALL) + + # 解析工具调用 + tool_calls = self._parse_tool_calls(response) + + if not tool_calls: + # 没有工具调用,直接返回响应 + clean_response = re.sub(r'.*?', '', response, flags=re.DOTALL) + clean_response = re.sub(r'\[TOOL_CALL\].*?\)', '', clean_response) + + return { + "response": clean_response.strip(), + "tool_calls": tool_calls_made, + "sources": [tc.get("parameters", {}).get("query", "") for tc in tool_calls_made] + } + + # 执行工具调用(限制数量) + tool_results = [] + for call in tool_calls[:1]: # 每轮最多执行1次工具调用 + if len(tool_calls_made) >= self.MAX_TOOL_CALLS_PER_CHAT: + break + result = self._execute_tool(call["name"], call.get("parameters", {})) + tool_results.append({ + "tool": call["name"], + "result": result[:1500] # 限制结果长度 + }) + tool_calls_made.append(call) + + # 将结果添加到消息 + messages.append({"role": "assistant", "content": response}) + observation = "\n".join([f"[{r['tool']}结果]\n{r['result']}" for r in tool_results]) + messages.append({ + "role": "user", + "content": observation + CHAT_OBSERVATION_SUFFIX + }) + + # 达到最大迭代,获取最终响应 + final_response = self.llm.chat( + messages=messages, + temperature=0.5 + ) + + # 剥离模型幻觉产生的 块 + if final_response: + final_response = re.sub(r'.*?', '', final_response, flags=re.DOTALL) + + # 清理响应 + clean_response = re.sub(r'.*?', '', final_response, flags=re.DOTALL) + clean_response = re.sub(r'\[TOOL_CALL\].*?\)', '', clean_response) + + return { + "response": clean_response.strip(), + "tool_calls": tool_calls_made, + "sources": [tc.get("parameters", {}).get("query", "") for tc in tool_calls_made] + } + + +class ReportManager: + """ + 报告管理器 + + 负责报告的持久化存储和检索 + + 文件结构(分章节输出): + reports/ + {report_id}/ + meta.json - 报告元信息和状态 + outline.json - 报告大纲 + progress.json - 生成进度 + section_01.md - 第1章节 + section_02.md - 第2章节 + ... + full_report.md - 完整报告 + """ + + # 报告存储目录 + REPORTS_DIR = os.path.join(Config.UPLOAD_FOLDER, 'reports') + + @classmethod + def _ensure_reports_dir(cls): + """确保报告根目录存在""" + os.makedirs(cls.REPORTS_DIR, exist_ok=True) + + @classmethod + def _get_report_folder(cls, report_id: str) -> str: + """获取报告文件夹路径""" + return os.path.join(cls.REPORTS_DIR, report_id) + + @classmethod + def _ensure_report_folder(cls, report_id: str) -> str: + """确保报告文件夹存在并返回路径""" + folder = cls._get_report_folder(report_id) + os.makedirs(folder, exist_ok=True) + return folder + + @classmethod + def _get_report_path(cls, report_id: str) -> str: + """获取报告元信息文件路径""" + return os.path.join(cls._get_report_folder(report_id), "meta.json") + + @classmethod + def _get_report_markdown_path(cls, report_id: str) -> str: + """获取完整报告Markdown文件路径""" + return os.path.join(cls._get_report_folder(report_id), "full_report.md") + + @classmethod + def _get_outline_path(cls, report_id: str) -> str: + """获取大纲文件路径""" + return os.path.join(cls._get_report_folder(report_id), "outline.json") + + @classmethod + def _get_progress_path(cls, report_id: str) -> str: + """获取进度文件路径""" + return os.path.join(cls._get_report_folder(report_id), "progress.json") + + @classmethod + def _get_section_path(cls, report_id: str, section_index: int) -> str: + """获取章节Markdown文件路径""" + return os.path.join(cls._get_report_folder(report_id), f"section_{section_index:02d}.md") + + @classmethod + def _get_agent_log_path(cls, report_id: str) -> str: + """获取 Agent 日志文件路径""" + return os.path.join(cls._get_report_folder(report_id), "agent_log.jsonl") + + @classmethod + def _get_console_log_path(cls, report_id: str) -> str: + """获取控制台日志文件路径""" + return os.path.join(cls._get_report_folder(report_id), "console_log.txt") + + @classmethod + def get_console_log(cls, report_id: str, from_line: int = 0) -> Dict[str, Any]: + """ + 获取控制台日志内容 + + 这是报告生成过程中的控制台输出日志(INFO、WARNING等), + 与 agent_log.jsonl 的结构化日志不同。 + + Args: + report_id: 报告ID + from_line: 从第几行开始读取(用于增量获取,0 表示从头开始) + + Returns: + { + "logs": [日志行列表], + "total_lines": 总行数, + "from_line": 起始行号, + "has_more": 是否还有更多日志 + } + """ + log_path = cls._get_console_log_path(report_id) + + if not os.path.exists(log_path): + return { + "logs": [], + "total_lines": 0, + "from_line": 0, + "has_more": False + } + + logs = [] + total_lines = 0 + + with open(log_path, 'r', encoding='utf-8') as f: + for i, line in enumerate(f): + total_lines = i + 1 + if i >= from_line: + # 保留原始日志行,去掉末尾换行符 + logs.append(line.rstrip('\n\r')) + + return { + "logs": logs, + "total_lines": total_lines, + "from_line": from_line, + "has_more": False # 已读取到末尾 + } + + @classmethod + def get_console_log_stream(cls, report_id: str) -> List[str]: + """ + 获取完整的控制台日志(一次性获取全部) + + Args: + report_id: 报告ID + + Returns: + 日志行列表 + """ + result = cls.get_console_log(report_id, from_line=0) + return result["logs"] + + @classmethod + def get_agent_log(cls, report_id: str, from_line: int = 0) -> Dict[str, Any]: + """ + 获取 Agent 日志内容 + + Args: + report_id: 报告ID + from_line: 从第几行开始读取(用于增量获取,0 表示从头开始) + + Returns: + { + "logs": [日志条目列表], + "total_lines": 总行数, + "from_line": 起始行号, + "has_more": 是否还有更多日志 + } + """ + log_path = cls._get_agent_log_path(report_id) + + if not os.path.exists(log_path): + return { + "logs": [], + "total_lines": 0, + "from_line": 0, + "has_more": False + } + + logs = [] + total_lines = 0 + + with open(log_path, 'r', encoding='utf-8') as f: + for i, line in enumerate(f): + total_lines = i + 1 + if i >= from_line: + try: + log_entry = json.loads(line.strip()) + logs.append(log_entry) + except json.JSONDecodeError: + # 跳过解析失败的行 + continue + + return { + "logs": logs, + "total_lines": total_lines, + "from_line": from_line, + "has_more": False # 已读取到末尾 + } + + @classmethod + def get_agent_log_stream(cls, report_id: str) -> List[Dict[str, Any]]: + """ + 获取完整的 Agent 日志(用于一次性获取全部) + + Args: + report_id: 报告ID + + Returns: + 日志条目列表 + """ + result = cls.get_agent_log(report_id, from_line=0) + return result["logs"] + + @classmethod + def save_outline(cls, report_id: str, outline: ReportOutline) -> None: + """ + 保存报告大纲 + + 在规划阶段完成后立即调用 + """ + cls._ensure_report_folder(report_id) + + with open(cls._get_outline_path(report_id), 'w', encoding='utf-8') as f: + json.dump(outline.to_dict(), f, ensure_ascii=False, indent=2) + + logger.info(t('report.outlineSaved', reportId=report_id)) + + @classmethod + def save_section( + cls, + report_id: str, + section_index: int, + section: ReportSection + ) -> str: + """ + 保存单个章节 + + 在每个章节生成完成后立即调用,实现分章节输出 + + Args: + report_id: 报告ID + section_index: 章节索引(从1开始) + section: 章节对象 + + Returns: + 保存的文件路径 + """ + cls._ensure_report_folder(report_id) + + # 构建章节Markdown内容 - 清理可能存在的重复标题 + cleaned_content = cls._clean_section_content(section.content, section.title) + md_content = f"## {section.title}\n\n" + if cleaned_content: + md_content += f"{cleaned_content}\n\n" + + # 保存文件 + file_suffix = f"section_{section_index:02d}.md" + file_path = os.path.join(cls._get_report_folder(report_id), file_suffix) + with open(file_path, 'w', encoding='utf-8') as f: + f.write(md_content) + + logger.info(t('report.sectionFileSaved', reportId=report_id, fileSuffix=file_suffix)) + return file_path + + @classmethod + def _clean_section_content(cls, content: str, section_title: str) -> str: + """ + 清理章节内容 + + 1. 移除内容开头与章节标题重复的Markdown标题行 + 2. 将所有 ### 及以下级别的标题转换为粗体文本 + + Args: + content: 原始内容 + section_title: 章节标题 + + Returns: + 清理后的内容 + """ + import re + + if not content: + return content + + content = content.strip() + lines = content.split('\n') + cleaned_lines = [] + skip_next_empty = False + + for i, line in enumerate(lines): + stripped = line.strip() + + # 检查是否是Markdown标题行 + heading_match = re.match(r'^(#{1,6})\s+(.+)$', stripped) + + if heading_match: + level = len(heading_match.group(1)) + title_text = heading_match.group(2).strip() + + # 检查是否是与章节标题重复的标题(跳过前5行内的重复) + if i < 5: + if title_text == section_title or title_text.replace(' ', '') == section_title.replace(' ', ''): + skip_next_empty = True + continue + + # 将所有级别的标题(#, ##, ###, ####等)转换为粗体 + # 因为章节标题由系统添加,内容中不应有任何标题 + cleaned_lines.append(f"**{title_text}**") + cleaned_lines.append("") # 添加空行 + continue + + # 如果上一行是被跳过的标题,且当前行为空,也跳过 + if skip_next_empty and stripped == '': + skip_next_empty = False + continue + + skip_next_empty = False + cleaned_lines.append(line) + + # 移除开头的空行 + while cleaned_lines and cleaned_lines[0].strip() == '': + cleaned_lines.pop(0) + + # 移除开头的分隔线 + while cleaned_lines and cleaned_lines[0].strip() in ['---', '***', '___']: + cleaned_lines.pop(0) + # 同时移除分隔线后的空行 + while cleaned_lines and cleaned_lines[0].strip() == '': + cleaned_lines.pop(0) + + return '\n'.join(cleaned_lines) + + @classmethod + def update_progress( + cls, + report_id: str, + status: str, + progress: int, + message: str, + current_section: str = None, + completed_sections: List[str] = None + ) -> None: + """ + 更新报告生成进度 + + 前端可以通过读取progress.json获取实时进度 + """ + cls._ensure_report_folder(report_id) + + progress_data = { + "status": status, + "progress": progress, + "message": message, + "current_section": current_section, + "completed_sections": completed_sections or [], + "updated_at": datetime.now().isoformat() + } + + with open(cls._get_progress_path(report_id), 'w', encoding='utf-8') as f: + json.dump(progress_data, f, ensure_ascii=False, indent=2) + + @classmethod + def get_progress(cls, report_id: str) -> Optional[Dict[str, Any]]: + """获取报告生成进度""" + path = cls._get_progress_path(report_id) + + if not os.path.exists(path): + return None + + with open(path, 'r', encoding='utf-8') as f: + return json.load(f) + + @classmethod + def get_generated_sections(cls, report_id: str) -> List[Dict[str, Any]]: + """ + 获取已生成的章节列表 + + 返回所有已保存的章节文件信息 + """ + folder = cls._get_report_folder(report_id) + + if not os.path.exists(folder): + return [] + + sections = [] + for filename in sorted(os.listdir(folder)): + if filename.startswith('section_') and filename.endswith('.md'): + file_path = os.path.join(folder, filename) + with open(file_path, 'r', encoding='utf-8') as f: + content = f.read() + + # 从文件名解析章节索引 + parts = filename.replace('.md', '').split('_') + section_index = int(parts[1]) + + sections.append({ + "filename": filename, + "section_index": section_index, + "content": content + }) + + return sections + + @classmethod + def assemble_full_report(cls, report_id: str, outline: ReportOutline) -> str: + """ + 组装完整报告 + + 从已保存的章节文件组装完整报告,并进行标题清理 + """ + folder = cls._get_report_folder(report_id) + + # 构建报告头部 + md_content = f"# {outline.title}\n\n" + md_content += f"> {outline.summary}\n\n" + md_content += f"---\n\n" + + # 按顺序读取所有章节文件 + sections = cls.get_generated_sections(report_id) + for section_info in sections: + md_content += section_info["content"] + + # 后处理:清理整个报告的标题问题 + md_content = cls._post_process_report(md_content, outline) + + # 保存完整报告 + full_path = cls._get_report_markdown_path(report_id) + with open(full_path, 'w', encoding='utf-8') as f: + f.write(md_content) + + logger.info(t('report.fullReportAssembled', reportId=report_id)) + return md_content + + @classmethod + def _post_process_report(cls, content: str, outline: ReportOutline) -> str: + """ + 后处理报告内容 + + 1. 移除重复的标题 + 2. 保留报告主标题(#)和章节标题(##),移除其他级别的标题(###, ####等) + 3. 清理多余的空行和分隔线 + + Args: + content: 原始报告内容 + outline: 报告大纲 + + Returns: + 处理后的内容 + """ + import re + + lines = content.split('\n') + processed_lines = [] + prev_was_heading = False + + # 收集大纲中的所有章节标题 + section_titles = set() + for section in outline.sections: + section_titles.add(section.title) + + i = 0 + while i < len(lines): + line = lines[i] + stripped = line.strip() + + # 检查是否是标题行 + heading_match = re.match(r'^(#{1,6})\s+(.+)$', stripped) + + if heading_match: + level = len(heading_match.group(1)) + title = heading_match.group(2).strip() + + # 检查是否是重复标题(在连续5行内出现相同内容的标题) + is_duplicate = False + for j in range(max(0, len(processed_lines) - 5), len(processed_lines)): + prev_line = processed_lines[j].strip() + prev_match = re.match(r'^(#{1,6})\s+(.+)$', prev_line) + if prev_match: + prev_title = prev_match.group(2).strip() + if prev_title == title: + is_duplicate = True + break + + if is_duplicate: + # 跳过重复标题及其后的空行 + i += 1 + while i < len(lines) and lines[i].strip() == '': + i += 1 + continue + + # 标题层级处理: + # - # (level=1) 只保留报告主标题 + # - ## (level=2) 保留章节标题 + # - ### 及以下 (level>=3) 转换为粗体文本 + + if level == 1: + if title == outline.title: + # 保留报告主标题 + processed_lines.append(line) + prev_was_heading = True + elif title in section_titles: + # 章节标题错误使用了#,修正为## + processed_lines.append(f"## {title}") + prev_was_heading = True + else: + # 其他一级标题转为粗体 + processed_lines.append(f"**{title}**") + processed_lines.append("") + prev_was_heading = False + elif level == 2: + if title in section_titles or title == outline.title: + # 保留章节标题 + processed_lines.append(line) + prev_was_heading = True + else: + # 非章节的二级标题转为粗体 + processed_lines.append(f"**{title}**") + processed_lines.append("") + prev_was_heading = False + else: + # ### 及以下级别的标题转换为粗体文本 + processed_lines.append(f"**{title}**") + processed_lines.append("") + prev_was_heading = False + + i += 1 + continue + + elif stripped == '---' and prev_was_heading: + # 跳过标题后紧跟的分隔线 + i += 1 + continue + + elif stripped == '' and prev_was_heading: + # 标题后只保留一个空行 + if processed_lines and processed_lines[-1].strip() != '': + processed_lines.append(line) + prev_was_heading = False + + else: + processed_lines.append(line) + prev_was_heading = False + + i += 1 + + # 清理连续的多个空行(保留最多2个) + result_lines = [] + empty_count = 0 + for line in processed_lines: + if line.strip() == '': + empty_count += 1 + if empty_count <= 2: + result_lines.append(line) + else: + empty_count = 0 + result_lines.append(line) + + return '\n'.join(result_lines) + + @classmethod + def save_report(cls, report: Report) -> None: + """保存报告元信息和完整报告""" + cls._ensure_report_folder(report.report_id) + + # 保存元信息JSON + with open(cls._get_report_path(report.report_id), 'w', encoding='utf-8') as f: + json.dump(report.to_dict(), f, ensure_ascii=False, indent=2) + + # 保存大纲 + if report.outline: + cls.save_outline(report.report_id, report.outline) + + # 保存完整Markdown报告 + if report.markdown_content: + with open(cls._get_report_markdown_path(report.report_id), 'w', encoding='utf-8') as f: + f.write(report.markdown_content) + + logger.info(t('report.reportSaved', reportId=report.report_id)) + + @classmethod + def get_report(cls, report_id: str) -> Optional[Report]: + """获取报告""" + path = cls._get_report_path(report_id) + + if not os.path.exists(path): + # 兼容旧格式:检查直接存储在reports目录下的文件 + old_path = os.path.join(cls.REPORTS_DIR, f"{report_id}.json") + if os.path.exists(old_path): + path = old_path + else: + return None + + with open(path, 'r', encoding='utf-8') as f: + data = json.load(f) + + # 重建Report对象 + outline = None + if data.get('outline'): + outline_data = data['outline'] + sections = [] + for s in outline_data.get('sections', []): + sections.append(ReportSection( + title=s['title'], + content=s.get('content', '') + )) + outline = ReportOutline( + title=outline_data['title'], + summary=outline_data['summary'], + sections=sections + ) + + # 如果markdown_content为空,尝试从full_report.md读取 + markdown_content = data.get('markdown_content', '') + if not markdown_content: + full_report_path = cls._get_report_markdown_path(report_id) + if os.path.exists(full_report_path): + with open(full_report_path, 'r', encoding='utf-8') as f: + markdown_content = f.read() + + return Report( + report_id=data['report_id'], + simulation_id=data['simulation_id'], + graph_id=data['graph_id'], + simulation_requirement=data['simulation_requirement'], + status=ReportStatus(data['status']), + outline=outline, + markdown_content=markdown_content, + created_at=data.get('created_at', ''), + completed_at=data.get('completed_at', ''), + error=data.get('error') + ) + + @classmethod + def get_report_by_simulation(cls, simulation_id: str) -> Optional[Report]: + """根据模拟ID获取报告""" + cls._ensure_reports_dir() + + for item in os.listdir(cls.REPORTS_DIR): + item_path = os.path.join(cls.REPORTS_DIR, item) + # 新格式:文件夹 + if os.path.isdir(item_path): + report = cls.get_report(item) + if report and report.simulation_id == simulation_id: + return report + # 兼容旧格式:JSON文件 + elif item.endswith('.json'): + report_id = item[:-5] + report = cls.get_report(report_id) + if report and report.simulation_id == simulation_id: + return report + + return None + + @classmethod + def list_reports(cls, simulation_id: Optional[str] = None, limit: int = 50) -> List[Report]: + """列出报告""" + cls._ensure_reports_dir() + + reports = [] + for item in os.listdir(cls.REPORTS_DIR): + item_path = os.path.join(cls.REPORTS_DIR, item) + # 新格式:文件夹 + if os.path.isdir(item_path): + report = cls.get_report(item) + if report: + if simulation_id is None or report.simulation_id == simulation_id: + reports.append(report) + # 兼容旧格式:JSON文件 + elif item.endswith('.json'): + report_id = item[:-5] + report = cls.get_report(report_id) + if report: + if simulation_id is None or report.simulation_id == simulation_id: + reports.append(report) + + # 按创建时间倒序 + reports.sort(key=lambda r: r.created_at, reverse=True) + + return reports[:limit] + + @classmethod + def delete_report(cls, report_id: str) -> bool: + """删除报告(整个文件夹)""" + import shutil + + folder_path = cls._get_report_folder(report_id) + + # 新格式:删除整个文件夹 + if os.path.exists(folder_path) and os.path.isdir(folder_path): + shutil.rmtree(folder_path) + logger.info(t('report.reportFolderDeleted', reportId=report_id)) + return True + + # 兼容旧格式:删除单独的文件 + deleted = False + old_json_path = os.path.join(cls.REPORTS_DIR, f"{report_id}.json") + old_md_path = os.path.join(cls.REPORTS_DIR, f"{report_id}.md") + + if os.path.exists(old_json_path): + os.remove(old_json_path) + deleted = True + if os.path.exists(old_md_path): + os.remove(old_md_path) + deleted = True + + return deleted diff --git a/backend/app/services/simulation_config_generator.py b/backend/app/services/simulation_config_generator.py new file mode 100644 index 00000000..cb77f6b6 --- /dev/null +++ b/backend/app/services/simulation_config_generator.py @@ -0,0 +1,991 @@ +""" +模拟配置智能生成器 +使用LLM根据模拟需求、文档内容、图谱信息自动生成细致的模拟参数 +实现全程自动化,无需人工设置参数 + +采用分步生成策略,避免一次性生成过长内容导致失败: +1. 生成时间配置 +2. 生成事件配置 +3. 分批生成Agent配置 +4. 生成平台配置 +""" + +import json +import math +from typing import Dict, Any, List, Optional, Callable +from dataclasses import dataclass, field, asdict +from datetime import datetime + +from openai import OpenAI + +from ..config import Config +from ..utils.logger import get_logger +from ..utils.locale import get_language_instruction, t +from .zep_entity_reader import EntityNode, ZepEntityReader + +logger = get_logger('mirofish.simulation_config') + +# 中国作息时间配置(北京时间) +CHINA_TIMEZONE_CONFIG = { + # 深夜时段(几乎无人活动) + "dead_hours": [0, 1, 2, 3, 4, 5], + # 早间时段(逐渐醒来) + "morning_hours": [6, 7, 8], + # 工作时段 + "work_hours": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18], + # 晚间高峰(最活跃) + "peak_hours": [19, 20, 21, 22], + # 夜间时段(活跃度下降) + "night_hours": [23], + # 活跃度系数 + "activity_multipliers": { + "dead": 0.05, # 凌晨几乎无人 + "morning": 0.4, # 早间逐渐活跃 + "work": 0.7, # 工作时段中等 + "peak": 1.5, # 晚间高峰 + "night": 0.5 # 深夜下降 + } +} + + +@dataclass +class AgentActivityConfig: + """单个Agent的活动配置""" + agent_id: int + entity_uuid: str + entity_name: str + entity_type: str + + # 活跃度配置 (0.0-1.0) + activity_level: float = 0.5 # 整体活跃度 + + # 发言频率(每小时预期发言次数) + posts_per_hour: float = 1.0 + comments_per_hour: float = 2.0 + + # 活跃时间段(24小时制,0-23) + active_hours: List[int] = field(default_factory=lambda: list(range(8, 23))) + + # 响应速度(对热点事件的反应延迟,单位:模拟分钟) + response_delay_min: int = 5 + response_delay_max: int = 60 + + # 情感倾向 (-1.0到1.0,负面到正面) + sentiment_bias: float = 0.0 + + # 立场(对特定话题的态度) + stance: str = "neutral" # supportive, opposing, neutral, observer + + # 影响力权重(决定其发言被其他Agent看到的概率) + influence_weight: float = 1.0 + + +@dataclass +class TimeSimulationConfig: + """时间模拟配置(基于中国人作息习惯)""" + # 模拟总时长(模拟小时数) + total_simulation_hours: int = 72 # 默认模拟72小时(3天) + + # 每轮代表的时间(模拟分钟)- 默认60分钟(1小时),加快时间流速 + minutes_per_round: int = 60 + + # 每小时激活的Agent数量范围 + agents_per_hour_min: int = 5 + agents_per_hour_max: int = 20 + + # 高峰时段(晚间19-22点,中国人最活跃的时间) + peak_hours: List[int] = field(default_factory=lambda: [19, 20, 21, 22]) + peak_activity_multiplier: float = 1.5 + + # 低谷时段(凌晨0-5点,几乎无人活动) + off_peak_hours: List[int] = field(default_factory=lambda: [0, 1, 2, 3, 4, 5]) + off_peak_activity_multiplier: float = 0.05 # 凌晨活跃度极低 + + # 早间时段 + morning_hours: List[int] = field(default_factory=lambda: [6, 7, 8]) + morning_activity_multiplier: float = 0.4 + + # 工作时段 + work_hours: List[int] = field(default_factory=lambda: [9, 10, 11, 12, 13, 14, 15, 16, 17, 18]) + work_activity_multiplier: float = 0.7 + + +@dataclass +class EventConfig: + """事件配置""" + # 初始事件(模拟开始时的触发事件) + initial_posts: List[Dict[str, Any]] = field(default_factory=list) + + # 定时事件(在特定时间触发的事件) + scheduled_events: List[Dict[str, Any]] = field(default_factory=list) + + # 热点话题关键词 + hot_topics: List[str] = field(default_factory=list) + + # 舆论引导方向 + narrative_direction: str = "" + + +@dataclass +class PlatformConfig: + """平台特定配置""" + platform: str # twitter or reddit + + # 推荐算法权重 + recency_weight: float = 0.4 # 时间新鲜度 + popularity_weight: float = 0.3 # 热度 + relevance_weight: float = 0.3 # 相关性 + + # 病毒传播阈值(达到多少互动后触发扩散) + viral_threshold: int = 10 + + # 回声室效应强度(相似观点聚集程度) + echo_chamber_strength: float = 0.5 + + +@dataclass +class SimulationParameters: + """完整的模拟参数配置""" + # 基础信息 + simulation_id: str + project_id: str + graph_id: str + simulation_requirement: str + + # 时间配置 + time_config: TimeSimulationConfig = field(default_factory=TimeSimulationConfig) + + # Agent配置列表 + agent_configs: List[AgentActivityConfig] = field(default_factory=list) + + # 事件配置 + event_config: EventConfig = field(default_factory=EventConfig) + + # 平台配置 + twitter_config: Optional[PlatformConfig] = None + reddit_config: Optional[PlatformConfig] = None + + # LLM配置 + llm_model: str = "" + llm_base_url: str = "" + + # 生成元数据 + generated_at: str = field(default_factory=lambda: datetime.now().isoformat()) + generation_reasoning: str = "" # LLM的推理说明 + + def to_dict(self) -> Dict[str, Any]: + """转换为字典""" + time_dict = asdict(self.time_config) + return { + "simulation_id": self.simulation_id, + "project_id": self.project_id, + "graph_id": self.graph_id, + "simulation_requirement": self.simulation_requirement, + "time_config": time_dict, + "agent_configs": [asdict(a) for a in self.agent_configs], + "event_config": asdict(self.event_config), + "twitter_config": asdict(self.twitter_config) if self.twitter_config else None, + "reddit_config": asdict(self.reddit_config) if self.reddit_config else None, + "llm_model": self.llm_model, + "llm_base_url": self.llm_base_url, + "generated_at": self.generated_at, + "generation_reasoning": self.generation_reasoning, + } + + def to_json(self, indent: int = 2) -> str: + """转换为JSON字符串""" + return json.dumps(self.to_dict(), ensure_ascii=False, indent=indent) + + +class SimulationConfigGenerator: + """ + 模拟配置智能生成器 + + 使用LLM分析模拟需求、文档内容、图谱实体信息, + 自动生成最佳的模拟参数配置 + + 采用分步生成策略: + 1. 生成时间配置和事件配置(轻量级) + 2. 分批生成Agent配置(每批10-20个) + 3. 生成平台配置 + """ + + # 上下文最大字符数 + MAX_CONTEXT_LENGTH = 50000 + # 每批生成的Agent数量 + AGENTS_PER_BATCH = 15 + + # 各步骤的上下文截断长度(字符数) + TIME_CONFIG_CONTEXT_LENGTH = 10000 # 时间配置 + EVENT_CONFIG_CONTEXT_LENGTH = 8000 # 事件配置 + ENTITY_SUMMARY_LENGTH = 300 # 实体摘要 + AGENT_SUMMARY_LENGTH = 300 # Agent配置中的实体摘要 + ENTITIES_PER_TYPE_DISPLAY = 20 # 每类实体显示数量 + + def __init__( + self, + api_key: Optional[str] = None, + base_url: Optional[str] = None, + model_name: Optional[str] = None + ): + self.api_key = api_key or Config.LLM_API_KEY + self.base_url = base_url or Config.LLM_BASE_URL + self.model_name = model_name or Config.LLM_MODEL_NAME + + if not self.api_key: + raise ValueError("LLM_API_KEY 未配置") + + self.client = OpenAI( + api_key=self.api_key, + base_url=self.base_url + ) + + def generate_config( + self, + simulation_id: str, + project_id: str, + graph_id: str, + simulation_requirement: str, + document_text: str, + entities: List[EntityNode], + enable_twitter: bool = True, + enable_reddit: bool = True, + progress_callback: Optional[Callable[[int, int, str], None]] = None, + ) -> SimulationParameters: + """ + 智能生成完整的模拟配置(分步生成) + + Args: + simulation_id: 模拟ID + project_id: 项目ID + graph_id: 图谱ID + simulation_requirement: 模拟需求描述 + document_text: 原始文档内容 + entities: 过滤后的实体列表 + enable_twitter: 是否启用Twitter + enable_reddit: 是否启用Reddit + progress_callback: 进度回调函数(current_step, total_steps, message) + + Returns: + SimulationParameters: 完整的模拟参数 + """ + logger.info(f"开始智能生成模拟配置: simulation_id={simulation_id}, 实体数={len(entities)}") + + # 计算总步骤数 + num_batches = math.ceil(len(entities) / self.AGENTS_PER_BATCH) + total_steps = 3 + num_batches # 时间配置 + 事件配置 + N批Agent + 平台配置 + current_step = 0 + + def report_progress(step: int, message: str): + nonlocal current_step + current_step = step + if progress_callback: + progress_callback(step, total_steps, message) + logger.info(f"[{step}/{total_steps}] {message}") + + # 1. 构建基础上下文信息 + context = self._build_context( + simulation_requirement=simulation_requirement, + document_text=document_text, + entities=entities + ) + + reasoning_parts = [] + + # ========== 步骤1: 生成时间配置 ========== + report_progress(1, t('progress.generatingTimeConfig')) + num_entities = len(entities) + time_config_result = self._generate_time_config(context, num_entities) + time_config = self._parse_time_config(time_config_result, num_entities) + reasoning_parts.append(f"{t('progress.timeConfigLabel')}: {time_config_result.get('reasoning', t('common.success'))}") + + # ========== 步骤2: 生成事件配置 ========== + report_progress(2, t('progress.generatingEventConfig')) + event_config_result = self._generate_event_config(context, simulation_requirement, entities) + event_config = self._parse_event_config(event_config_result) + reasoning_parts.append(f"{t('progress.eventConfigLabel')}: {event_config_result.get('reasoning', t('common.success'))}") + + # ========== 步骤3-N: 分批生成Agent配置 ========== + all_agent_configs = [] + for batch_idx in range(num_batches): + start_idx = batch_idx * self.AGENTS_PER_BATCH + end_idx = min(start_idx + self.AGENTS_PER_BATCH, len(entities)) + batch_entities = entities[start_idx:end_idx] + + report_progress( + 3 + batch_idx, + t('progress.generatingAgentConfig', start=start_idx + 1, end=end_idx, total=len(entities)) + ) + + batch_configs = self._generate_agent_configs_batch( + context=context, + entities=batch_entities, + start_idx=start_idx, + simulation_requirement=simulation_requirement + ) + all_agent_configs.extend(batch_configs) + + reasoning_parts.append(t('progress.agentConfigResult', count=len(all_agent_configs))) + + # ========== 为初始帖子分配发布者 Agent ========== + logger.info("为初始帖子分配合适的发布者 Agent...") + event_config = self._assign_initial_post_agents(event_config, all_agent_configs) + assigned_count = len([p for p in event_config.initial_posts if p.get("poster_agent_id") is not None]) + reasoning_parts.append(t('progress.postAssignResult', count=assigned_count)) + + # ========== 最后一步: 生成平台配置 ========== + report_progress(total_steps, t('progress.generatingPlatformConfig')) + twitter_config = None + reddit_config = None + + if enable_twitter: + twitter_config = PlatformConfig( + platform="twitter", + recency_weight=0.4, + popularity_weight=0.3, + relevance_weight=0.3, + viral_threshold=10, + echo_chamber_strength=0.5 + ) + + if enable_reddit: + reddit_config = PlatformConfig( + platform="reddit", + recency_weight=0.3, + popularity_weight=0.4, + relevance_weight=0.3, + viral_threshold=15, + echo_chamber_strength=0.6 + ) + + # 构建最终参数 + params = SimulationParameters( + simulation_id=simulation_id, + project_id=project_id, + graph_id=graph_id, + simulation_requirement=simulation_requirement, + time_config=time_config, + agent_configs=all_agent_configs, + event_config=event_config, + twitter_config=twitter_config, + reddit_config=reddit_config, + llm_model=self.model_name, + llm_base_url=self.base_url, + generation_reasoning=" | ".join(reasoning_parts) + ) + + logger.info(f"模拟配置生成完成: {len(params.agent_configs)} 个Agent配置") + + return params + + def _build_context( + self, + simulation_requirement: str, + document_text: str, + entities: List[EntityNode] + ) -> str: + """构建LLM上下文,截断到最大长度""" + + # 实体摘要 + entity_summary = self._summarize_entities(entities) + + # 构建上下文 + context_parts = [ + f"## 模拟需求\n{simulation_requirement}", + f"\n## 实体信息 ({len(entities)}个)\n{entity_summary}", + ] + + current_length = sum(len(p) for p in context_parts) + remaining_length = self.MAX_CONTEXT_LENGTH - current_length - 500 # 留500字符余量 + + if remaining_length > 0 and document_text: + doc_text = document_text[:remaining_length] + if len(document_text) > remaining_length: + doc_text += "\n...(文档已截断)" + context_parts.append(f"\n## 原始文档内容\n{doc_text}") + + return "\n".join(context_parts) + + def _summarize_entities(self, entities: List[EntityNode]) -> str: + """生成实体摘要""" + lines = [] + + # 按类型分组 + by_type: Dict[str, List[EntityNode]] = {} + for e in entities: + t = e.get_entity_type() or "Unknown" + if t not in by_type: + by_type[t] = [] + by_type[t].append(e) + + for entity_type, type_entities in by_type.items(): + lines.append(f"\n### {entity_type} ({len(type_entities)}个)") + # 使用配置的显示数量和摘要长度 + display_count = self.ENTITIES_PER_TYPE_DISPLAY + summary_len = self.ENTITY_SUMMARY_LENGTH + for e in type_entities[:display_count]: + summary_preview = (e.summary[:summary_len] + "...") if len(e.summary) > summary_len else e.summary + lines.append(f"- {e.name}: {summary_preview}") + if len(type_entities) > display_count: + lines.append(f" ... 还有 {len(type_entities) - display_count} 个") + + return "\n".join(lines) + + def _call_llm_with_retry(self, prompt: str, system_prompt: str) -> Dict[str, Any]: + """带重试的LLM调用,包含JSON修复逻辑""" + import re + + max_attempts = 3 + last_error = None + + for attempt in range(max_attempts): + try: + response = self.client.chat.completions.create( + model=self.model_name, + messages=[ + {"role": "system", "content": system_prompt}, + {"role": "user", "content": prompt} + ], + response_format={"type": "json_object"}, + temperature=0.7 - (attempt * 0.1) # 每次重试降低温度 + # 不设置max_tokens,让LLM自由发挥 + ) + + content = response.choices[0].message.content + finish_reason = response.choices[0].finish_reason + + # 检查是否被截断 + if finish_reason == 'length': + logger.warning(f"LLM输出被截断 (attempt {attempt+1})") + content = self._fix_truncated_json(content) + + # 尝试解析JSON + try: + return json.loads(content) + except json.JSONDecodeError as e: + logger.warning(f"JSON解析失败 (attempt {attempt+1}): {str(e)[:80]}") + + # 尝试修复JSON + fixed = self._try_fix_config_json(content) + if fixed: + return fixed + + last_error = e + + except Exception as e: + logger.warning(f"LLM调用失败 (attempt {attempt+1}): {str(e)[:80]}") + last_error = e + import time + time.sleep(2 * (attempt + 1)) + + raise last_error or Exception("LLM调用失败") + + def _fix_truncated_json(self, content: str) -> str: + """修复被截断的JSON""" + content = content.strip() + + # 计算未闭合的括号 + open_braces = content.count('{') - content.count('}') + open_brackets = content.count('[') - content.count(']') + + # 检查是否有未闭合的字符串 + if content and content[-1] not in '",}]': + content += '"' + + # 闭合括号 + content += ']' * open_brackets + content += '}' * open_braces + + return content + + def _try_fix_config_json(self, content: str) -> Optional[Dict[str, Any]]: + """尝试修复配置JSON""" + import re + + # 修复被截断的情况 + content = self._fix_truncated_json(content) + + # 提取JSON部分 + json_match = re.search(r'\{[\s\S]*\}', content) + if json_match: + json_str = json_match.group() + + # 移除字符串中的换行符 + def fix_string(match): + s = match.group(0) + s = s.replace('\n', ' ').replace('\r', ' ') + s = re.sub(r'\s+', ' ', s) + return s + + json_str = re.sub(r'"[^"\\]*(?:\\.[^"\\]*)*"', fix_string, json_str) + + try: + return json.loads(json_str) + except: + # 尝试移除所有控制字符 + json_str = re.sub(r'[\x00-\x1f\x7f-\x9f]', ' ', json_str) + json_str = re.sub(r'\s+', ' ', json_str) + try: + return json.loads(json_str) + except: + pass + + return None + + def _generate_time_config(self, context: str, num_entities: int) -> Dict[str, Any]: + """生成时间配置""" + # 使用配置的上下文截断长度 + context_truncated = context[:self.TIME_CONFIG_CONTEXT_LENGTH] + + # 计算最大允许值(80%的agent数) + max_agents_allowed = max(1, int(num_entities * 0.9)) + + prompt = f"""基于以下模拟需求,生成时间模拟配置。 + +{context_truncated} + +## 任务 +请生成时间配置JSON。 + +### 基本原则(仅供参考,需根据具体事件和参与群体灵活调整): +- 请根据模拟场景推断目标用户群体所在时区和作息习惯,以下为东八区(UTC+8)的参考示例 +- 凌晨0-5点几乎无人活动(活跃度系数0.05) +- 早上6-8点逐渐活跃(活跃度系数0.4) +- 工作时间9-18点中等活跃(活跃度系数0.7) +- 晚间19-22点是高峰期(活跃度系数1.5) +- 23点后活跃度下降(活跃度系数0.5) +- 一般规律:凌晨低活跃、早间渐增、工作时段中等、晚间高峰 +- **重要**:以下示例值仅供参考,你需要根据事件性质、参与群体特点来调整具体时段 + - 例如:学生群体高峰可能是21-23点;媒体全天活跃;官方机构只在工作时间 + - 例如:突发热点可能导致深夜也有讨论,off_peak_hours 可适当缩短 + +### 返回JSON格式(不要markdown) + +示例: +{{ + "total_simulation_hours": 72, + "minutes_per_round": 60, + "agents_per_hour_min": 5, + "agents_per_hour_max": 50, + "peak_hours": [19, 20, 21, 22], + "off_peak_hours": [0, 1, 2, 3, 4, 5], + "morning_hours": [6, 7, 8], + "work_hours": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18], + "reasoning": "针对该事件的时间配置说明" +}} + +字段说明: +- total_simulation_hours (int): 模拟总时长,24-168小时,突发事件短、持续话题长 +- minutes_per_round (int): 每轮时长,30-120分钟,建议60分钟 +- agents_per_hour_min (int): 每小时最少激活Agent数(取值范围: 1-{max_agents_allowed}) +- agents_per_hour_max (int): 每小时最多激活Agent数(取值范围: 1-{max_agents_allowed}) +- peak_hours (int数组): 高峰时段,根据事件参与群体调整 +- off_peak_hours (int数组): 低谷时段,通常深夜凌晨 +- morning_hours (int数组): 早间时段 +- work_hours (int数组): 工作时段 +- reasoning (string): 简要说明为什么这样配置""" + + system_prompt = "你是社交媒体模拟专家。返回纯JSON格式,时间配置需符合模拟场景中目标用户群体的作息习惯。" + system_prompt = f"{system_prompt}\n\n{get_language_instruction()}" + + try: + return self._call_llm_with_retry(prompt, system_prompt) + except Exception as e: + logger.warning(f"时间配置LLM生成失败: {e}, 使用默认配置") + return self._get_default_time_config(num_entities) + + def _get_default_time_config(self, num_entities: int) -> Dict[str, Any]: + """获取默认时间配置(中国人作息)""" + return { + "total_simulation_hours": 72, + "minutes_per_round": 60, # 每轮1小时,加快时间流速 + "agents_per_hour_min": max(1, num_entities // 15), + "agents_per_hour_max": max(5, num_entities // 5), + "peak_hours": [19, 20, 21, 22], + "off_peak_hours": [0, 1, 2, 3, 4, 5], + "morning_hours": [6, 7, 8], + "work_hours": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18], + "reasoning": "使用默认中国人作息配置(每轮1小时)" + } + + def _parse_time_config(self, result: Dict[str, Any], num_entities: int) -> TimeSimulationConfig: + """解析时间配置结果,并验证agents_per_hour值不超过总agent数""" + # 获取原始值 + agents_per_hour_min = result.get("agents_per_hour_min", max(1, num_entities // 15)) + agents_per_hour_max = result.get("agents_per_hour_max", max(5, num_entities // 5)) + + # 验证并修正:确保不超过总agent数 + if agents_per_hour_min > num_entities: + logger.warning(f"agents_per_hour_min ({agents_per_hour_min}) 超过总Agent数 ({num_entities}),已修正") + agents_per_hour_min = max(1, num_entities // 10) + + if agents_per_hour_max > num_entities: + logger.warning(f"agents_per_hour_max ({agents_per_hour_max}) 超过总Agent数 ({num_entities}),已修正") + agents_per_hour_max = max(agents_per_hour_min + 1, num_entities // 2) + + # 确保 min < max + if agents_per_hour_min >= agents_per_hour_max: + agents_per_hour_min = max(1, agents_per_hour_max // 2) + logger.warning(f"agents_per_hour_min >= max,已修正为 {agents_per_hour_min}") + + return TimeSimulationConfig( + total_simulation_hours=result.get("total_simulation_hours", 72), + minutes_per_round=result.get("minutes_per_round", 60), # 默认每轮1小时 + agents_per_hour_min=agents_per_hour_min, + agents_per_hour_max=agents_per_hour_max, + peak_hours=result.get("peak_hours", [19, 20, 21, 22]), + off_peak_hours=result.get("off_peak_hours", [0, 1, 2, 3, 4, 5]), + off_peak_activity_multiplier=0.05, # 凌晨几乎无人 + morning_hours=result.get("morning_hours", [6, 7, 8]), + morning_activity_multiplier=0.4, + work_hours=result.get("work_hours", list(range(9, 19))), + work_activity_multiplier=0.7, + peak_activity_multiplier=1.5 + ) + + def _generate_event_config( + self, + context: str, + simulation_requirement: str, + entities: List[EntityNode] + ) -> Dict[str, Any]: + """生成事件配置""" + + # 获取可用的实体类型列表,供 LLM 参考 + entity_types_available = list(set( + e.get_entity_type() or "Unknown" for e in entities + )) + + # 为每种类型列出代表性实体名称 + type_examples = {} + for e in entities: + etype = e.get_entity_type() or "Unknown" + if etype not in type_examples: + type_examples[etype] = [] + if len(type_examples[etype]) < 3: + type_examples[etype].append(e.name) + + type_info = "\n".join([ + f"- {t}: {', '.join(examples)}" + for t, examples in type_examples.items() + ]) + + # 使用配置的上下文截断长度 + context_truncated = context[:self.EVENT_CONFIG_CONTEXT_LENGTH] + + prompt = f"""基于以下模拟需求,生成事件配置。 + +模拟需求: {simulation_requirement} + +{context_truncated} + +## 可用实体类型及示例 +{type_info} + +## 任务 +请生成事件配置JSON: +- 提取热点话题关键词 +- 描述舆论发展方向 +- 设计初始帖子内容,**每个帖子必须指定 poster_type(发布者类型)** + +**重要**: poster_type 必须从上面的"可用实体类型"中选择,这样初始帖子才能分配给合适的 Agent 发布。 +例如:官方声明应由 Official/University 类型发布,新闻由 MediaOutlet 发布,学生观点由 Student 发布。 + +返回JSON格式(不要markdown): +{{ + "hot_topics": ["关键词1", "关键词2", ...], + "narrative_direction": "<舆论发展方向描述>", + "initial_posts": [ + {{"content": "帖子内容", "poster_type": "实体类型(必须从可用类型中选择)"}}, + ... + ], + "reasoning": "<简要说明>" +}}""" + + system_prompt = "你是舆论分析专家。返回纯JSON格式。注意 poster_type 必须精确匹配可用实体类型。" + system_prompt = f"{system_prompt}\n\n{get_language_instruction()}\nIMPORTANT: The 'poster_type' field value MUST be in English PascalCase exactly matching the available entity types. Only 'content', 'narrative_direction', 'hot_topics' and 'reasoning' fields should use the specified language." + + try: + return self._call_llm_with_retry(prompt, system_prompt) + except Exception as e: + logger.warning(f"事件配置LLM生成失败: {e}, 使用默认配置") + return { + "hot_topics": [], + "narrative_direction": "", + "initial_posts": [], + "reasoning": "使用默认配置" + } + + def _parse_event_config(self, result: Dict[str, Any]) -> EventConfig: + """解析事件配置结果""" + return EventConfig( + initial_posts=result.get("initial_posts", []), + scheduled_events=[], + hot_topics=result.get("hot_topics", []), + narrative_direction=result.get("narrative_direction", "") + ) + + def _assign_initial_post_agents( + self, + event_config: EventConfig, + agent_configs: List[AgentActivityConfig] + ) -> EventConfig: + """ + 为初始帖子分配合适的发布者 Agent + + 根据每个帖子的 poster_type 匹配最合适的 agent_id + """ + if not event_config.initial_posts: + return event_config + + # 按实体类型建立 agent 索引 + agents_by_type: Dict[str, List[AgentActivityConfig]] = {} + for agent in agent_configs: + etype = agent.entity_type.lower() + if etype not in agents_by_type: + agents_by_type[etype] = [] + agents_by_type[etype].append(agent) + + # 类型映射表(处理 LLM 可能输出的不同格式) + type_aliases = { + "official": ["official", "university", "governmentagency", "government"], + "university": ["university", "official"], + "mediaoutlet": ["mediaoutlet", "media"], + "student": ["student", "person"], + "professor": ["professor", "expert", "teacher"], + "alumni": ["alumni", "person"], + "organization": ["organization", "ngo", "company", "group"], + "person": ["person", "student", "alumni"], + } + + # 记录每种类型已使用的 agent 索引,避免重复使用同一个 agent + used_indices: Dict[str, int] = {} + + updated_posts = [] + for post in event_config.initial_posts: + poster_type = post.get("poster_type", "").lower() + content = post.get("content", "") + + # 尝试找到匹配的 agent + matched_agent_id = None + + # 1. 直接匹配 + if poster_type in agents_by_type: + agents = agents_by_type[poster_type] + idx = used_indices.get(poster_type, 0) % len(agents) + matched_agent_id = agents[idx].agent_id + used_indices[poster_type] = idx + 1 + else: + # 2. 使用别名匹配 + for alias_key, aliases in type_aliases.items(): + if poster_type in aliases or alias_key == poster_type: + for alias in aliases: + if alias in agents_by_type: + agents = agents_by_type[alias] + idx = used_indices.get(alias, 0) % len(agents) + matched_agent_id = agents[idx].agent_id + used_indices[alias] = idx + 1 + break + if matched_agent_id is not None: + break + + # 3. 如果仍未找到,使用影响力最高的 agent + if matched_agent_id is None: + logger.warning(f"未找到类型 '{poster_type}' 的匹配 Agent,使用影响力最高的 Agent") + if agent_configs: + # 按影响力排序,选择影响力最高的 + sorted_agents = sorted(agent_configs, key=lambda a: a.influence_weight, reverse=True) + matched_agent_id = sorted_agents[0].agent_id + else: + matched_agent_id = 0 + + updated_posts.append({ + "content": content, + "poster_type": post.get("poster_type", "Unknown"), + "poster_agent_id": matched_agent_id + }) + + logger.info(f"初始帖子分配: poster_type='{poster_type}' -> agent_id={matched_agent_id}") + + event_config.initial_posts = updated_posts + return event_config + + def _generate_agent_configs_batch( + self, + context: str, + entities: List[EntityNode], + start_idx: int, + simulation_requirement: str + ) -> List[AgentActivityConfig]: + """分批生成Agent配置""" + + # 构建实体信息(使用配置的摘要长度) + entity_list = [] + summary_len = self.AGENT_SUMMARY_LENGTH + for i, e in enumerate(entities): + entity_list.append({ + "agent_id": start_idx + i, + "entity_name": e.name, + "entity_type": e.get_entity_type() or "Unknown", + "summary": e.summary[:summary_len] if e.summary else "" + }) + + prompt = f"""基于以下信息,为每个实体生成社交媒体活动配置。 + +模拟需求: {simulation_requirement} + +## 实体列表 +```json +{json.dumps(entity_list, ensure_ascii=False, indent=2)} +``` + +## 任务 +为每个实体生成活动配置,注意: +- **时间符合目标用户群体作息**:以下为参考(东八区),请根据模拟场景调整 +- **官方机构**(University/GovernmentAgency):活跃度低(0.1-0.3),工作时间(9-17)活动,响应慢(60-240分钟),影响力高(2.5-3.0) +- **媒体**(MediaOutlet):活跃度中(0.4-0.6),全天活动(8-23),响应快(5-30分钟),影响力高(2.0-2.5) +- **个人**(Student/Person/Alumni):活跃度高(0.6-0.9),主要晚间活动(18-23),响应快(1-15分钟),影响力低(0.8-1.2) +- **公众人物/专家**:活跃度中(0.4-0.6),影响力中高(1.5-2.0) + +返回JSON格式(不要markdown): +{{ + "agent_configs": [ + {{ + "agent_id": <必须与输入一致>, + "activity_level": <0.0-1.0>, + "posts_per_hour": <发帖频率>, + "comments_per_hour": <评论频率>, + "active_hours": [<活跃小时列表,考虑中国人作息>], + "response_delay_min": <最小响应延迟分钟>, + "response_delay_max": <最大响应延迟分钟>, + "sentiment_bias": <-1.0到1.0>, + "stance": "", + "influence_weight": <影响力权重> + }}, + ... + ] +}}""" + + system_prompt = "你是社交媒体行为分析专家。返回纯JSON,配置需符合模拟场景中目标用户群体的作息习惯。" + system_prompt = f"{system_prompt}\n\n{get_language_instruction()}\nIMPORTANT: The 'stance' field value MUST be one of the English strings: 'supportive', 'opposing', 'neutral', 'observer'. All JSON field names and numeric values must remain unchanged. Only natural language text fields should use the specified language." + + try: + result = self._call_llm_with_retry(prompt, system_prompt) + llm_configs = {cfg["agent_id"]: cfg for cfg in result.get("agent_configs", [])} + except Exception as e: + logger.warning(f"Agent配置批次LLM生成失败: {e}, 使用规则生成") + llm_configs = {} + + # 构建AgentActivityConfig对象 + configs = [] + for i, entity in enumerate(entities): + agent_id = start_idx + i + cfg = llm_configs.get(agent_id, {}) + + # 如果LLM没有生成,使用规则生成 + if not cfg: + cfg = self._generate_agent_config_by_rule(entity) + + config = AgentActivityConfig( + agent_id=agent_id, + entity_uuid=entity.uuid, + entity_name=entity.name, + entity_type=entity.get_entity_type() or "Unknown", + activity_level=cfg.get("activity_level", 0.5), + posts_per_hour=cfg.get("posts_per_hour", 0.5), + comments_per_hour=cfg.get("comments_per_hour", 1.0), + active_hours=cfg.get("active_hours", list(range(9, 23))), + response_delay_min=cfg.get("response_delay_min", 5), + response_delay_max=cfg.get("response_delay_max", 60), + sentiment_bias=cfg.get("sentiment_bias", 0.0), + stance=cfg.get("stance", "neutral"), + influence_weight=cfg.get("influence_weight", 1.0) + ) + configs.append(config) + + return configs + + def _generate_agent_config_by_rule(self, entity: EntityNode) -> Dict[str, Any]: + """基于规则生成单个Agent配置(中国人作息)""" + entity_type = (entity.get_entity_type() or "Unknown").lower() + + if entity_type in ["university", "governmentagency", "ngo"]: + # 官方机构:工作时间活动,低频率,高影响力 + return { + "activity_level": 0.2, + "posts_per_hour": 0.1, + "comments_per_hour": 0.05, + "active_hours": list(range(9, 18)), # 9:00-17:59 + "response_delay_min": 60, + "response_delay_max": 240, + "sentiment_bias": 0.0, + "stance": "neutral", + "influence_weight": 3.0 + } + elif entity_type in ["mediaoutlet"]: + # 媒体:全天活动,中等频率,高影响力 + return { + "activity_level": 0.5, + "posts_per_hour": 0.8, + "comments_per_hour": 0.3, + "active_hours": list(range(7, 24)), # 7:00-23:59 + "response_delay_min": 5, + "response_delay_max": 30, + "sentiment_bias": 0.0, + "stance": "observer", + "influence_weight": 2.5 + } + elif entity_type in ["professor", "expert", "official"]: + # 专家/教授:工作+晚间活动,中等频率 + return { + "activity_level": 0.4, + "posts_per_hour": 0.3, + "comments_per_hour": 0.5, + "active_hours": list(range(8, 22)), # 8:00-21:59 + "response_delay_min": 15, + "response_delay_max": 90, + "sentiment_bias": 0.0, + "stance": "neutral", + "influence_weight": 2.0 + } + elif entity_type in ["student"]: + # 学生:晚间为主,高频率 + return { + "activity_level": 0.8, + "posts_per_hour": 0.6, + "comments_per_hour": 1.5, + "active_hours": [8, 9, 10, 11, 12, 13, 18, 19, 20, 21, 22, 23], # 上午+晚间 + "response_delay_min": 1, + "response_delay_max": 15, + "sentiment_bias": 0.0, + "stance": "neutral", + "influence_weight": 0.8 + } + elif entity_type in ["alumni"]: + # 校友:晚间为主 + return { + "activity_level": 0.6, + "posts_per_hour": 0.4, + "comments_per_hour": 0.8, + "active_hours": [12, 13, 19, 20, 21, 22, 23], # 午休+晚间 + "response_delay_min": 5, + "response_delay_max": 30, + "sentiment_bias": 0.0, + "stance": "neutral", + "influence_weight": 1.0 + } + else: + # 普通人:晚间高峰 + return { + "activity_level": 0.7, + "posts_per_hour": 0.5, + "comments_per_hour": 1.2, + "active_hours": [9, 10, 11, 12, 13, 18, 19, 20, 21, 22, 23], # 白天+晚间 + "response_delay_min": 2, + "response_delay_max": 20, + "sentiment_bias": 0.0, + "stance": "neutral", + "influence_weight": 1.0 + } + + diff --git a/backend/app/services/simulation_ipc.py b/backend/app/services/simulation_ipc.py new file mode 100644 index 00000000..9d70d0be --- /dev/null +++ b/backend/app/services/simulation_ipc.py @@ -0,0 +1,394 @@ +""" +模拟IPC通信模块 +用于Flask后端和模拟脚本之间的进程间通信 + +通过文件系统实现简单的命令/响应模式: +1. Flask写入命令到 commands/ 目录 +2. 模拟脚本轮询命令目录,执行命令并写入响应到 responses/ 目录 +3. Flask轮询响应目录获取结果 +""" + +import os +import json +import time +import uuid +from typing import Dict, Any, Optional, List +from dataclasses import dataclass, field +from datetime import datetime +from enum import Enum + +from ..utils.logger import get_logger + +logger = get_logger('mirofish.simulation_ipc') + + +class CommandType(str, Enum): + """命令类型""" + INTERVIEW = "interview" # 单个Agent采访 + BATCH_INTERVIEW = "batch_interview" # 批量采访 + CLOSE_ENV = "close_env" # 关闭环境 + + +class CommandStatus(str, Enum): + """命令状态""" + PENDING = "pending" + PROCESSING = "processing" + COMPLETED = "completed" + FAILED = "failed" + + +@dataclass +class IPCCommand: + """IPC命令""" + command_id: str + command_type: CommandType + args: Dict[str, Any] + timestamp: str = field(default_factory=lambda: datetime.now().isoformat()) + + def to_dict(self) -> Dict[str, Any]: + return { + "command_id": self.command_id, + "command_type": self.command_type.value, + "args": self.args, + "timestamp": self.timestamp + } + + @classmethod + def from_dict(cls, data: Dict[str, Any]) -> 'IPCCommand': + return cls( + command_id=data["command_id"], + command_type=CommandType(data["command_type"]), + args=data.get("args", {}), + timestamp=data.get("timestamp", datetime.now().isoformat()) + ) + + +@dataclass +class IPCResponse: + """IPC响应""" + command_id: str + status: CommandStatus + result: Optional[Dict[str, Any]] = None + error: Optional[str] = None + timestamp: str = field(default_factory=lambda: datetime.now().isoformat()) + + def to_dict(self) -> Dict[str, Any]: + return { + "command_id": self.command_id, + "status": self.status.value, + "result": self.result, + "error": self.error, + "timestamp": self.timestamp + } + + @classmethod + def from_dict(cls, data: Dict[str, Any]) -> 'IPCResponse': + return cls( + command_id=data["command_id"], + status=CommandStatus(data["status"]), + result=data.get("result"), + error=data.get("error"), + timestamp=data.get("timestamp", datetime.now().isoformat()) + ) + + +class SimulationIPCClient: + """ + 模拟IPC客户端(Flask端使用) + + 用于向模拟进程发送命令并等待响应 + """ + + def __init__(self, simulation_dir: str): + """ + 初始化IPC客户端 + + Args: + simulation_dir: 模拟数据目录 + """ + self.simulation_dir = simulation_dir + self.commands_dir = os.path.join(simulation_dir, "ipc_commands") + self.responses_dir = os.path.join(simulation_dir, "ipc_responses") + + # 确保目录存在 + os.makedirs(self.commands_dir, exist_ok=True) + os.makedirs(self.responses_dir, exist_ok=True) + + def send_command( + self, + command_type: CommandType, + args: Dict[str, Any], + timeout: float = 60.0, + poll_interval: float = 0.5 + ) -> IPCResponse: + """ + 发送命令并等待响应 + + Args: + command_type: 命令类型 + args: 命令参数 + timeout: 超时时间(秒) + poll_interval: 轮询间隔(秒) + + Returns: + IPCResponse + + Raises: + TimeoutError: 等待响应超时 + """ + command_id = str(uuid.uuid4()) + command = IPCCommand( + command_id=command_id, + command_type=command_type, + args=args + ) + + # 写入命令文件 + command_file = os.path.join(self.commands_dir, f"{command_id}.json") + with open(command_file, 'w', encoding='utf-8') as f: + json.dump(command.to_dict(), f, ensure_ascii=False, indent=2) + + logger.info(f"发送IPC命令: {command_type.value}, command_id={command_id}") + + # 等待响应 + response_file = os.path.join(self.responses_dir, f"{command_id}.json") + start_time = time.time() + + while time.time() - start_time < timeout: + if os.path.exists(response_file): + try: + with open(response_file, 'r', encoding='utf-8') as f: + response_data = json.load(f) + response = IPCResponse.from_dict(response_data) + + # 清理命令和响应文件 + try: + os.remove(command_file) + os.remove(response_file) + except OSError: + pass + + logger.info(f"收到IPC响应: command_id={command_id}, status={response.status.value}") + return response + except (json.JSONDecodeError, KeyError) as e: + logger.warning(f"解析响应失败: {e}") + + time.sleep(poll_interval) + + # 超时 + logger.error(f"等待IPC响应超时: command_id={command_id}") + + # 清理命令文件 + try: + os.remove(command_file) + except OSError: + pass + + raise TimeoutError(f"等待命令响应超时 ({timeout}秒)") + + def send_interview( + self, + agent_id: int, + prompt: str, + platform: str = None, + timeout: float = 60.0 + ) -> IPCResponse: + """ + 发送单个Agent采访命令 + + Args: + agent_id: Agent ID + prompt: 采访问题 + platform: 指定平台(可选) + - "twitter": 只采访Twitter平台 + - "reddit": 只采访Reddit平台 + - None: 双平台模拟时同时采访两个平台,单平台模拟时采访该平台 + timeout: 超时时间 + + Returns: + IPCResponse,result字段包含采访结果 + """ + args = { + "agent_id": agent_id, + "prompt": prompt + } + if platform: + args["platform"] = platform + + return self.send_command( + command_type=CommandType.INTERVIEW, + args=args, + timeout=timeout + ) + + def send_batch_interview( + self, + interviews: List[Dict[str, Any]], + platform: str = None, + timeout: float = 120.0 + ) -> IPCResponse: + """ + 发送批量采访命令 + + Args: + interviews: 采访列表,每个元素包含 {"agent_id": int, "prompt": str, "platform": str(可选)} + platform: 默认平台(可选,会被每个采访项的platform覆盖) + - "twitter": 默认只采访Twitter平台 + - "reddit": 默认只采访Reddit平台 + - None: 双平台模拟时每个Agent同时采访两个平台 + timeout: 超时时间 + + Returns: + IPCResponse,result字段包含所有采访结果 + """ + args = {"interviews": interviews} + if platform: + args["platform"] = platform + + return self.send_command( + command_type=CommandType.BATCH_INTERVIEW, + args=args, + timeout=timeout + ) + + def send_close_env(self, timeout: float = 30.0) -> IPCResponse: + """ + 发送关闭环境命令 + + Args: + timeout: 超时时间 + + Returns: + IPCResponse + """ + return self.send_command( + command_type=CommandType.CLOSE_ENV, + args={}, + timeout=timeout + ) + + def check_env_alive(self) -> bool: + """ + 检查模拟环境是否存活 + + 通过检查 env_status.json 文件来判断 + """ + status_file = os.path.join(self.simulation_dir, "env_status.json") + if not os.path.exists(status_file): + return False + + try: + with open(status_file, 'r', encoding='utf-8') as f: + status = json.load(f) + return status.get("status") == "alive" + except (json.JSONDecodeError, OSError): + return False + + +class SimulationIPCServer: + """ + 模拟IPC服务器(模拟脚本端使用) + + 轮询命令目录,执行命令并返回响应 + """ + + def __init__(self, simulation_dir: str): + """ + 初始化IPC服务器 + + Args: + simulation_dir: 模拟数据目录 + """ + self.simulation_dir = simulation_dir + self.commands_dir = os.path.join(simulation_dir, "ipc_commands") + self.responses_dir = os.path.join(simulation_dir, "ipc_responses") + + # 确保目录存在 + os.makedirs(self.commands_dir, exist_ok=True) + os.makedirs(self.responses_dir, exist_ok=True) + + # 环境状态 + self._running = False + + def start(self): + """标记服务器为运行状态""" + self._running = True + self._update_env_status("alive") + + def stop(self): + """标记服务器为停止状态""" + self._running = False + self._update_env_status("stopped") + + def _update_env_status(self, status: str): + """更新环境状态文件""" + status_file = os.path.join(self.simulation_dir, "env_status.json") + with open(status_file, 'w', encoding='utf-8') as f: + json.dump({ + "status": status, + "timestamp": datetime.now().isoformat() + }, f, ensure_ascii=False, indent=2) + + def poll_commands(self) -> Optional[IPCCommand]: + """ + 轮询命令目录,返回第一个待处理的命令 + + Returns: + IPCCommand 或 None + """ + if not os.path.exists(self.commands_dir): + return None + + # 按时间排序获取命令文件 + command_files = [] + for filename in os.listdir(self.commands_dir): + if filename.endswith('.json'): + filepath = os.path.join(self.commands_dir, filename) + command_files.append((filepath, os.path.getmtime(filepath))) + + command_files.sort(key=lambda x: x[1]) + + for filepath, _ in command_files: + try: + with open(filepath, 'r', encoding='utf-8') as f: + data = json.load(f) + return IPCCommand.from_dict(data) + except (json.JSONDecodeError, KeyError, OSError) as e: + logger.warning(f"读取命令文件失败: {filepath}, {e}") + continue + + return None + + def send_response(self, response: IPCResponse): + """ + 发送响应 + + Args: + response: IPC响应 + """ + response_file = os.path.join(self.responses_dir, f"{response.command_id}.json") + with open(response_file, 'w', encoding='utf-8') as f: + json.dump(response.to_dict(), f, ensure_ascii=False, indent=2) + + # 删除命令文件 + command_file = os.path.join(self.commands_dir, f"{response.command_id}.json") + try: + os.remove(command_file) + except OSError: + pass + + def send_success(self, command_id: str, result: Dict[str, Any]): + """发送成功响应""" + self.send_response(IPCResponse( + command_id=command_id, + status=CommandStatus.COMPLETED, + result=result + )) + + def send_error(self, command_id: str, error: str): + """发送错误响应""" + self.send_response(IPCResponse( + command_id=command_id, + status=CommandStatus.FAILED, + error=error + )) diff --git a/backend/app/services/simulation_manager.py b/backend/app/services/simulation_manager.py new file mode 100644 index 00000000..0d161a90 --- /dev/null +++ b/backend/app/services/simulation_manager.py @@ -0,0 +1,529 @@ +""" +OASIS模拟管理器 +管理Twitter和Reddit双平台并行模拟 +使用预设脚本 + LLM智能生成配置参数 +""" + +import os +import json +import shutil +from typing import Dict, Any, List, Optional +from dataclasses import dataclass, field +from datetime import datetime +from enum import Enum + +from ..config import Config +from ..utils.logger import get_logger +from .zep_entity_reader import ZepEntityReader, FilteredEntities +from .oasis_profile_generator import OasisProfileGenerator, OasisAgentProfile +from .simulation_config_generator import SimulationConfigGenerator, SimulationParameters +from ..utils.locale import t + +logger = get_logger('mirofish.simulation') + + +class SimulationStatus(str, Enum): + """模拟状态""" + CREATED = "created" + PREPARING = "preparing" + READY = "ready" + RUNNING = "running" + PAUSED = "paused" + STOPPED = "stopped" # 模拟被手动停止 + COMPLETED = "completed" # 模拟自然完成 + FAILED = "failed" + + +class PlatformType(str, Enum): + """平台类型""" + TWITTER = "twitter" + REDDIT = "reddit" + + +@dataclass +class SimulationState: + """模拟状态""" + simulation_id: str + project_id: str + graph_id: str + + # 平台启用状态 + enable_twitter: bool = True + enable_reddit: bool = True + + # 状态 + status: SimulationStatus = SimulationStatus.CREATED + + # 准备阶段数据 + entities_count: int = 0 + profiles_count: int = 0 + entity_types: List[str] = field(default_factory=list) + + # 配置生成信息 + config_generated: bool = False + config_reasoning: str = "" + + # 运行时数据 + current_round: int = 0 + twitter_status: str = "not_started" + reddit_status: str = "not_started" + + # 时间戳 + created_at: str = field(default_factory=lambda: datetime.now().isoformat()) + updated_at: str = field(default_factory=lambda: datetime.now().isoformat()) + + # 错误信息 + error: Optional[str] = None + + def to_dict(self) -> Dict[str, Any]: + """完整状态字典(内部使用)""" + return { + "simulation_id": self.simulation_id, + "project_id": self.project_id, + "graph_id": self.graph_id, + "enable_twitter": self.enable_twitter, + "enable_reddit": self.enable_reddit, + "status": self.status.value, + "entities_count": self.entities_count, + "profiles_count": self.profiles_count, + "entity_types": self.entity_types, + "config_generated": self.config_generated, + "config_reasoning": self.config_reasoning, + "current_round": self.current_round, + "twitter_status": self.twitter_status, + "reddit_status": self.reddit_status, + "created_at": self.created_at, + "updated_at": self.updated_at, + "error": self.error, + } + + def to_simple_dict(self) -> Dict[str, Any]: + """简化状态字典(API返回使用)""" + return { + "simulation_id": self.simulation_id, + "project_id": self.project_id, + "graph_id": self.graph_id, + "status": self.status.value, + "entities_count": self.entities_count, + "profiles_count": self.profiles_count, + "entity_types": self.entity_types, + "config_generated": self.config_generated, + "error": self.error, + } + + +class SimulationManager: + """ + 模拟管理器 + + 核心功能: + 1. 从Zep图谱读取实体并过滤 + 2. 生成OASIS Agent Profile + 3. 使用LLM智能生成模拟配置参数 + 4. 准备预设脚本所需的所有文件 + """ + + # 模拟数据存储目录 + SIMULATION_DATA_DIR = os.path.join( + os.path.dirname(__file__), + '../../uploads/simulations' + ) + + def __init__(self): + # 确保目录存在 + os.makedirs(self.SIMULATION_DATA_DIR, exist_ok=True) + + # 内存中的模拟状态缓存 + self._simulations: Dict[str, SimulationState] = {} + + def _get_simulation_dir(self, simulation_id: str) -> str: + """获取模拟数据目录""" + sim_dir = os.path.join(self.SIMULATION_DATA_DIR, simulation_id) + os.makedirs(sim_dir, exist_ok=True) + return sim_dir + + def _save_simulation_state(self, state: SimulationState): + """保存模拟状态到文件""" + sim_dir = self._get_simulation_dir(state.simulation_id) + state_file = os.path.join(sim_dir, "state.json") + + state.updated_at = datetime.now().isoformat() + + with open(state_file, 'w', encoding='utf-8') as f: + json.dump(state.to_dict(), f, ensure_ascii=False, indent=2) + + self._simulations[state.simulation_id] = state + + def _load_simulation_state(self, simulation_id: str) -> Optional[SimulationState]: + """从文件加载模拟状态""" + if simulation_id in self._simulations: + return self._simulations[simulation_id] + + sim_dir = self._get_simulation_dir(simulation_id) + state_file = os.path.join(sim_dir, "state.json") + + if not os.path.exists(state_file): + return None + + with open(state_file, 'r', encoding='utf-8') as f: + data = json.load(f) + + state = SimulationState( + simulation_id=simulation_id, + project_id=data.get("project_id", ""), + graph_id=data.get("graph_id", ""), + enable_twitter=data.get("enable_twitter", True), + enable_reddit=data.get("enable_reddit", True), + status=SimulationStatus(data.get("status", "created")), + entities_count=data.get("entities_count", 0), + profiles_count=data.get("profiles_count", 0), + entity_types=data.get("entity_types", []), + config_generated=data.get("config_generated", False), + config_reasoning=data.get("config_reasoning", ""), + current_round=data.get("current_round", 0), + twitter_status=data.get("twitter_status", "not_started"), + reddit_status=data.get("reddit_status", "not_started"), + created_at=data.get("created_at", datetime.now().isoformat()), + updated_at=data.get("updated_at", datetime.now().isoformat()), + error=data.get("error"), + ) + + self._simulations[simulation_id] = state + return state + + def create_simulation( + self, + project_id: str, + graph_id: str, + enable_twitter: bool = True, + enable_reddit: bool = True, + ) -> SimulationState: + """ + 创建新的模拟 + + Args: + project_id: 项目ID + graph_id: Zep图谱ID + enable_twitter: 是否启用Twitter模拟 + enable_reddit: 是否启用Reddit模拟 + + Returns: + SimulationState + """ + import uuid + simulation_id = f"sim_{uuid.uuid4().hex[:12]}" + + state = SimulationState( + simulation_id=simulation_id, + project_id=project_id, + graph_id=graph_id, + enable_twitter=enable_twitter, + enable_reddit=enable_reddit, + status=SimulationStatus.CREATED, + ) + + self._save_simulation_state(state) + logger.info(f"创建模拟: {simulation_id}, project={project_id}, graph={graph_id}") + + return state + + def prepare_simulation( + self, + simulation_id: str, + simulation_requirement: str, + document_text: str, + defined_entity_types: Optional[List[str]] = None, + use_llm_for_profiles: bool = True, + progress_callback: Optional[callable] = None, + parallel_profile_count: int = 3 + ) -> SimulationState: + """ + 准备模拟环境(全程自动化) + + 步骤: + 1. 从Zep图谱读取并过滤实体 + 2. 为每个实体生成OASIS Agent Profile(可选LLM增强,支持并行) + 3. 使用LLM智能生成模拟配置参数(时间、活跃度、发言频率等) + 4. 保存配置文件和Profile文件 + 5. 复制预设脚本到模拟目录 + + Args: + simulation_id: 模拟ID + simulation_requirement: 模拟需求描述(用于LLM生成配置) + document_text: 原始文档内容(用于LLM理解背景) + defined_entity_types: 预定义的实体类型(可选) + use_llm_for_profiles: 是否使用LLM生成详细人设 + progress_callback: 进度回调函数 (stage, progress, message) + parallel_profile_count: 并行生成人设的数量,默认3 + + Returns: + SimulationState + """ + state = self._load_simulation_state(simulation_id) + if not state: + raise ValueError(f"模拟不存在: {simulation_id}") + + try: + state.status = SimulationStatus.PREPARING + self._save_simulation_state(state) + + sim_dir = self._get_simulation_dir(simulation_id) + + # ========== 阶段1: 读取并过滤实体 ========== + if progress_callback: + progress_callback("reading", 0, t('progress.connectingZepGraph')) + + reader = ZepEntityReader() + + if progress_callback: + progress_callback("reading", 30, t('progress.readingNodeData')) + + filtered = reader.filter_defined_entities( + graph_id=state.graph_id, + defined_entity_types=defined_entity_types, + enrich_with_edges=True + ) + + state.entities_count = filtered.filtered_count + state.entity_types = list(filtered.entity_types) + + if progress_callback: + progress_callback( + "reading", 100, + t('progress.readingComplete', count=filtered.filtered_count), + current=filtered.filtered_count, + total=filtered.filtered_count + ) + + if filtered.filtered_count == 0: + state.status = SimulationStatus.FAILED + state.error = "没有找到符合条件的实体,请检查图谱是否正确构建" + self._save_simulation_state(state) + return state + + # ========== 阶段2: 生成Agent Profile ========== + total_entities = len(filtered.entities) + + if progress_callback: + progress_callback( + "generating_profiles", 0, + t('progress.startGenerating'), + current=0, + total=total_entities + ) + + # 传入graph_id以启用Zep检索功能,获取更丰富的上下文 + generator = OasisProfileGenerator(graph_id=state.graph_id) + + def profile_progress(current, total, msg): + if progress_callback: + progress_callback( + "generating_profiles", + int(current / total * 100), + msg, + current=current, + total=total, + item_name=msg + ) + + # 设置实时保存的文件路径(优先使用 Reddit JSON 格式) + realtime_output_path = None + realtime_platform = "reddit" + if state.enable_reddit: + realtime_output_path = os.path.join(sim_dir, "reddit_profiles.json") + realtime_platform = "reddit" + elif state.enable_twitter: + realtime_output_path = os.path.join(sim_dir, "twitter_profiles.csv") + realtime_platform = "twitter" + + profiles = generator.generate_profiles_from_entities( + entities=filtered.entities, + use_llm=use_llm_for_profiles, + progress_callback=profile_progress, + graph_id=state.graph_id, # 传入graph_id用于Zep检索 + parallel_count=parallel_profile_count, # 并行生成数量 + realtime_output_path=realtime_output_path, # 实时保存路径 + output_platform=realtime_platform # 输出格式 + ) + + state.profiles_count = len(profiles) + + # 保存Profile文件(注意:Twitter使用CSV格式,Reddit使用JSON格式) + # Reddit 已经在生成过程中实时保存了,这里再保存一次确保完整性 + if progress_callback: + progress_callback( + "generating_profiles", 95, + t('progress.savingProfiles'), + current=total_entities, + total=total_entities + ) + + if state.enable_reddit: + generator.save_profiles( + profiles=profiles, + file_path=os.path.join(sim_dir, "reddit_profiles.json"), + platform="reddit" + ) + + if state.enable_twitter: + # Twitter使用CSV格式!这是OASIS的要求 + generator.save_profiles( + profiles=profiles, + file_path=os.path.join(sim_dir, "twitter_profiles.csv"), + platform="twitter" + ) + + if progress_callback: + progress_callback( + "generating_profiles", 100, + t('progress.profilesComplete', count=len(profiles)), + current=len(profiles), + total=len(profiles) + ) + + # ========== 阶段3: LLM智能生成模拟配置 ========== + if progress_callback: + progress_callback( + "generating_config", 0, + t('progress.analyzingRequirements'), + current=0, + total=3 + ) + + config_generator = SimulationConfigGenerator() + + if progress_callback: + progress_callback( + "generating_config", 30, + t('progress.callingLLMConfig'), + current=1, + total=3 + ) + + sim_params = config_generator.generate_config( + simulation_id=simulation_id, + project_id=state.project_id, + graph_id=state.graph_id, + simulation_requirement=simulation_requirement, + document_text=document_text, + entities=filtered.entities, + enable_twitter=state.enable_twitter, + enable_reddit=state.enable_reddit + ) + + if progress_callback: + progress_callback( + "generating_config", 70, + t('progress.savingConfigFiles'), + current=2, + total=3 + ) + + # 保存配置文件 + config_path = os.path.join(sim_dir, "simulation_config.json") + with open(config_path, 'w', encoding='utf-8') as f: + f.write(sim_params.to_json()) + + state.config_generated = True + state.config_reasoning = sim_params.generation_reasoning + + if progress_callback: + progress_callback( + "generating_config", 100, + t('progress.configComplete'), + current=3, + total=3 + ) + + # 注意:运行脚本保留在 backend/scripts/ 目录,不再复制到模拟目录 + # 启动模拟时,simulation_runner 会从 scripts/ 目录运行脚本 + + # 更新状态 + state.status = SimulationStatus.READY + self._save_simulation_state(state) + + logger.info(f"模拟准备完成: {simulation_id}, " + f"entities={state.entities_count}, profiles={state.profiles_count}") + + return state + + except Exception as e: + logger.error(f"模拟准备失败: {simulation_id}, error={str(e)}") + import traceback + logger.error(traceback.format_exc()) + state.status = SimulationStatus.FAILED + state.error = str(e) + self._save_simulation_state(state) + raise + + def get_simulation(self, simulation_id: str) -> Optional[SimulationState]: + """获取模拟状态""" + return self._load_simulation_state(simulation_id) + + def list_simulations(self, project_id: Optional[str] = None) -> List[SimulationState]: + """列出所有模拟""" + simulations = [] + + if os.path.exists(self.SIMULATION_DATA_DIR): + for sim_id in os.listdir(self.SIMULATION_DATA_DIR): + # 跳过隐藏文件(如 .DS_Store)和非目录文件 + sim_path = os.path.join(self.SIMULATION_DATA_DIR, sim_id) + if sim_id.startswith('.') or not os.path.isdir(sim_path): + continue + + state = self._load_simulation_state(sim_id) + if state: + if project_id is None or state.project_id == project_id: + simulations.append(state) + + return simulations + + def get_profiles(self, simulation_id: str, platform: str = "reddit") -> List[Dict[str, Any]]: + """获取模拟的Agent Profile""" + state = self._load_simulation_state(simulation_id) + if not state: + raise ValueError(f"模拟不存在: {simulation_id}") + + sim_dir = self._get_simulation_dir(simulation_id) + profile_path = os.path.join(sim_dir, f"{platform}_profiles.json") + + if not os.path.exists(profile_path): + return [] + + with open(profile_path, 'r', encoding='utf-8') as f: + return json.load(f) + + def get_simulation_config(self, simulation_id: str) -> Optional[Dict[str, Any]]: + """获取模拟配置""" + sim_dir = self._get_simulation_dir(simulation_id) + config_path = os.path.join(sim_dir, "simulation_config.json") + + if not os.path.exists(config_path): + return None + + with open(config_path, 'r', encoding='utf-8') as f: + return json.load(f) + + def get_run_instructions(self, simulation_id: str) -> Dict[str, str]: + """获取运行说明""" + sim_dir = self._get_simulation_dir(simulation_id) + config_path = os.path.join(sim_dir, "simulation_config.json") + scripts_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '../../scripts')) + + return { + "simulation_dir": sim_dir, + "scripts_dir": scripts_dir, + "config_file": config_path, + "commands": { + "twitter": f"python {scripts_dir}/run_twitter_simulation.py --config {config_path}", + "reddit": f"python {scripts_dir}/run_reddit_simulation.py --config {config_path}", + "parallel": f"python {scripts_dir}/run_parallel_simulation.py --config {config_path}", + }, + "instructions": ( + f"1. 激活conda环境: conda activate MiroFish\n" + f"2. 运行模拟 (脚本位于 {scripts_dir}):\n" + f" - 单独运行Twitter: python {scripts_dir}/run_twitter_simulation.py --config {config_path}\n" + f" - 单独运行Reddit: python {scripts_dir}/run_reddit_simulation.py --config {config_path}\n" + f" - 并行运行双平台: python {scripts_dir}/run_parallel_simulation.py --config {config_path}" + ) + } diff --git a/backend/app/services/simulation_runner.py b/backend/app/services/simulation_runner.py new file mode 100644 index 00000000..e86021f8 --- /dev/null +++ b/backend/app/services/simulation_runner.py @@ -0,0 +1,1768 @@ +""" +OASIS模拟运行器 +在后台运行模拟并记录每个Agent的动作,支持实时状态监控 +""" + +import os +import sys +import json +import time +import asyncio +import threading +import subprocess +import signal +import atexit +from typing import Dict, Any, List, Optional, Union +from dataclasses import dataclass, field +from datetime import datetime +from enum import Enum +from queue import Queue + +from ..config import Config +from ..utils.logger import get_logger +from ..utils.locale import get_locale, set_locale +from .zep_graph_memory_updater import ZepGraphMemoryManager +from .simulation_ipc import SimulationIPCClient, CommandType, IPCResponse + +logger = get_logger('mirofish.simulation_runner') + +# 标记是否已注册清理函数 +_cleanup_registered = False + +# 平台检测 +IS_WINDOWS = sys.platform == 'win32' + + +class RunnerStatus(str, Enum): + """运行器状态""" + IDLE = "idle" + STARTING = "starting" + RUNNING = "running" + PAUSED = "paused" + STOPPING = "stopping" + STOPPED = "stopped" + COMPLETED = "completed" + FAILED = "failed" + + +@dataclass +class AgentAction: + """Agent动作记录""" + round_num: int + timestamp: str + platform: str # twitter / reddit + agent_id: int + agent_name: str + action_type: str # CREATE_POST, LIKE_POST, etc. + action_args: Dict[str, Any] = field(default_factory=dict) + result: Optional[str] = None + success: bool = True + + def to_dict(self) -> Dict[str, Any]: + return { + "round_num": self.round_num, + "timestamp": self.timestamp, + "platform": self.platform, + "agent_id": self.agent_id, + "agent_name": self.agent_name, + "action_type": self.action_type, + "action_args": self.action_args, + "result": self.result, + "success": self.success, + } + + +@dataclass +class RoundSummary: + """每轮摘要""" + round_num: int + start_time: str + end_time: Optional[str] = None + simulated_hour: int = 0 + twitter_actions: int = 0 + reddit_actions: int = 0 + active_agents: List[int] = field(default_factory=list) + actions: List[AgentAction] = field(default_factory=list) + + def to_dict(self) -> Dict[str, Any]: + return { + "round_num": self.round_num, + "start_time": self.start_time, + "end_time": self.end_time, + "simulated_hour": self.simulated_hour, + "twitter_actions": self.twitter_actions, + "reddit_actions": self.reddit_actions, + "active_agents": self.active_agents, + "actions_count": len(self.actions), + "actions": [a.to_dict() for a in self.actions], + } + + +@dataclass +class SimulationRunState: + """模拟运行状态(实时)""" + simulation_id: str + runner_status: RunnerStatus = RunnerStatus.IDLE + + # 进度信息 + current_round: int = 0 + total_rounds: int = 0 + simulated_hours: int = 0 + total_simulation_hours: int = 0 + + # 各平台独立轮次和模拟时间(用于双平台并行显示) + twitter_current_round: int = 0 + reddit_current_round: int = 0 + twitter_simulated_hours: int = 0 + reddit_simulated_hours: int = 0 + + # 平台状态 + twitter_running: bool = False + reddit_running: bool = False + twitter_actions_count: int = 0 + reddit_actions_count: int = 0 + + # 平台完成状态(通过检测 actions.jsonl 中的 simulation_end 事件) + twitter_completed: bool = False + reddit_completed: bool = False + + # 每轮摘要 + rounds: List[RoundSummary] = field(default_factory=list) + + # 最近动作(用于前端实时展示) + recent_actions: List[AgentAction] = field(default_factory=list) + max_recent_actions: int = 50 + + # 时间戳 + started_at: Optional[str] = None + updated_at: str = field(default_factory=lambda: datetime.now().isoformat()) + completed_at: Optional[str] = None + + # 错误信息 + error: Optional[str] = None + + # 进程ID(用于停止) + process_pid: Optional[int] = None + + def add_action(self, action: AgentAction): + """添加动作到最近动作列表""" + self.recent_actions.insert(0, action) + if len(self.recent_actions) > self.max_recent_actions: + self.recent_actions = self.recent_actions[:self.max_recent_actions] + + if action.platform == "twitter": + self.twitter_actions_count += 1 + else: + self.reddit_actions_count += 1 + + self.updated_at = datetime.now().isoformat() + + def to_dict(self) -> Dict[str, Any]: + return { + "simulation_id": self.simulation_id, + "runner_status": self.runner_status.value, + "current_round": self.current_round, + "total_rounds": self.total_rounds, + "simulated_hours": self.simulated_hours, + "total_simulation_hours": self.total_simulation_hours, + "progress_percent": round(self.current_round / max(self.total_rounds, 1) * 100, 1), + # 各平台独立轮次和时间 + "twitter_current_round": self.twitter_current_round, + "reddit_current_round": self.reddit_current_round, + "twitter_simulated_hours": self.twitter_simulated_hours, + "reddit_simulated_hours": self.reddit_simulated_hours, + "twitter_running": self.twitter_running, + "reddit_running": self.reddit_running, + "twitter_completed": self.twitter_completed, + "reddit_completed": self.reddit_completed, + "twitter_actions_count": self.twitter_actions_count, + "reddit_actions_count": self.reddit_actions_count, + "total_actions_count": self.twitter_actions_count + self.reddit_actions_count, + "started_at": self.started_at, + "updated_at": self.updated_at, + "completed_at": self.completed_at, + "error": self.error, + "process_pid": self.process_pid, + } + + def to_detail_dict(self) -> Dict[str, Any]: + """包含最近动作的详细信息""" + result = self.to_dict() + result["recent_actions"] = [a.to_dict() for a in self.recent_actions] + result["rounds_count"] = len(self.rounds) + return result + + +class SimulationRunner: + """ + 模拟运行器 + + 负责: + 1. 在后台进程中运行OASIS模拟 + 2. 解析运行日志,记录每个Agent的动作 + 3. 提供实时状态查询接口 + 4. 支持暂停/停止/恢复操作 + """ + + # 运行状态存储目录 + RUN_STATE_DIR = os.path.join( + os.path.dirname(__file__), + '../../uploads/simulations' + ) + + # 脚本目录 + SCRIPTS_DIR = os.path.join( + os.path.dirname(__file__), + '../../scripts' + ) + + # 内存中的运行状态 + _run_states: Dict[str, SimulationRunState] = {} + _processes: Dict[str, subprocess.Popen] = {} + _action_queues: Dict[str, Queue] = {} + _monitor_threads: Dict[str, threading.Thread] = {} + _stdout_files: Dict[str, Any] = {} # 存储 stdout 文件句柄 + _stderr_files: Dict[str, Any] = {} # 存储 stderr 文件句柄 + + # 图谱记忆更新配置 + _graph_memory_enabled: Dict[str, bool] = {} # simulation_id -> enabled + + @classmethod + def get_run_state(cls, simulation_id: str) -> Optional[SimulationRunState]: + """获取运行状态""" + if simulation_id in cls._run_states: + return cls._run_states[simulation_id] + + # 尝试从文件加载 + state = cls._load_run_state(simulation_id) + if state: + cls._run_states[simulation_id] = state + return state + + @classmethod + def _load_run_state(cls, simulation_id: str) -> Optional[SimulationRunState]: + """从文件加载运行状态""" + state_file = os.path.join(cls.RUN_STATE_DIR, simulation_id, "run_state.json") + if not os.path.exists(state_file): + return None + + try: + with open(state_file, 'r', encoding='utf-8') as f: + data = json.load(f) + + state = SimulationRunState( + simulation_id=simulation_id, + runner_status=RunnerStatus(data.get("runner_status", "idle")), + current_round=data.get("current_round", 0), + total_rounds=data.get("total_rounds", 0), + simulated_hours=data.get("simulated_hours", 0), + total_simulation_hours=data.get("total_simulation_hours", 0), + # 各平台独立轮次和时间 + twitter_current_round=data.get("twitter_current_round", 0), + reddit_current_round=data.get("reddit_current_round", 0), + twitter_simulated_hours=data.get("twitter_simulated_hours", 0), + reddit_simulated_hours=data.get("reddit_simulated_hours", 0), + twitter_running=data.get("twitter_running", False), + reddit_running=data.get("reddit_running", False), + twitter_completed=data.get("twitter_completed", False), + reddit_completed=data.get("reddit_completed", False), + twitter_actions_count=data.get("twitter_actions_count", 0), + reddit_actions_count=data.get("reddit_actions_count", 0), + started_at=data.get("started_at"), + updated_at=data.get("updated_at", datetime.now().isoformat()), + completed_at=data.get("completed_at"), + error=data.get("error"), + process_pid=data.get("process_pid"), + ) + + # 加载最近动作 + actions_data = data.get("recent_actions", []) + for a in actions_data: + state.recent_actions.append(AgentAction( + round_num=a.get("round_num", 0), + timestamp=a.get("timestamp", ""), + platform=a.get("platform", ""), + agent_id=a.get("agent_id", 0), + agent_name=a.get("agent_name", ""), + action_type=a.get("action_type", ""), + action_args=a.get("action_args", {}), + result=a.get("result"), + success=a.get("success", True), + )) + + return state + except Exception as e: + logger.error(f"加载运行状态失败: {str(e)}") + return None + + @classmethod + def _save_run_state(cls, state: SimulationRunState): + """保存运行状态到文件""" + sim_dir = os.path.join(cls.RUN_STATE_DIR, state.simulation_id) + os.makedirs(sim_dir, exist_ok=True) + state_file = os.path.join(sim_dir, "run_state.json") + + data = state.to_detail_dict() + + with open(state_file, 'w', encoding='utf-8') as f: + json.dump(data, f, ensure_ascii=False, indent=2) + + cls._run_states[state.simulation_id] = state + + @classmethod + def start_simulation( + cls, + simulation_id: str, + platform: str = "parallel", # twitter / reddit / parallel + max_rounds: int = None, # 最大模拟轮数(可选,用于截断过长的模拟) + enable_graph_memory_update: bool = False, # 是否将活动更新到Zep图谱 + graph_id: str = None # Zep图谱ID(启用图谱更新时必需) + ) -> SimulationRunState: + """ + 启动模拟 + + Args: + simulation_id: 模拟ID + platform: 运行平台 (twitter/reddit/parallel) + max_rounds: 最大模拟轮数(可选,用于截断过长的模拟) + enable_graph_memory_update: 是否将Agent活动动态更新到Zep图谱 + graph_id: Zep图谱ID(启用图谱更新时必需) + + Returns: + SimulationRunState + """ + # 检查是否已在运行 + existing = cls.get_run_state(simulation_id) + if existing and existing.runner_status in [RunnerStatus.RUNNING, RunnerStatus.STARTING]: + raise ValueError(f"模拟已在运行中: {simulation_id}") + + # 加载模拟配置 + sim_dir = os.path.join(cls.RUN_STATE_DIR, simulation_id) + config_path = os.path.join(sim_dir, "simulation_config.json") + + if not os.path.exists(config_path): + raise ValueError(f"模拟配置不存在,请先调用 /prepare 接口") + + with open(config_path, 'r', encoding='utf-8') as f: + config = json.load(f) + + # 初始化运行状态 + time_config = config.get("time_config", {}) + total_hours = time_config.get("total_simulation_hours", 72) + minutes_per_round = time_config.get("minutes_per_round", 30) + total_rounds = int(total_hours * 60 / minutes_per_round) + + # 如果指定了最大轮数,则截断 + if max_rounds is not None and max_rounds > 0: + original_rounds = total_rounds + total_rounds = min(total_rounds, max_rounds) + if total_rounds < original_rounds: + logger.info(f"轮数已截断: {original_rounds} -> {total_rounds} (max_rounds={max_rounds})") + + state = SimulationRunState( + simulation_id=simulation_id, + runner_status=RunnerStatus.STARTING, + total_rounds=total_rounds, + total_simulation_hours=total_hours, + started_at=datetime.now().isoformat(), + ) + + cls._save_run_state(state) + + # 如果启用图谱记忆更新,创建更新器 + if enable_graph_memory_update: + if not graph_id: + raise ValueError("启用图谱记忆更新时必须提供 graph_id") + + try: + ZepGraphMemoryManager.create_updater(simulation_id, graph_id) + cls._graph_memory_enabled[simulation_id] = True + logger.info(f"已启用图谱记忆更新: simulation_id={simulation_id}, graph_id={graph_id}") + except Exception as e: + logger.error(f"创建图谱记忆更新器失败: {e}") + cls._graph_memory_enabled[simulation_id] = False + else: + cls._graph_memory_enabled[simulation_id] = False + + # 确定运行哪个脚本(脚本位于 backend/scripts/ 目录) + if platform == "twitter": + script_name = "run_twitter_simulation.py" + state.twitter_running = True + elif platform == "reddit": + script_name = "run_reddit_simulation.py" + state.reddit_running = True + else: + script_name = "run_parallel_simulation.py" + state.twitter_running = True + state.reddit_running = True + + script_path = os.path.join(cls.SCRIPTS_DIR, script_name) + + if not os.path.exists(script_path): + raise ValueError(f"脚本不存在: {script_path}") + + # 创建动作队列 + action_queue = Queue() + cls._action_queues[simulation_id] = action_queue + + # 启动模拟进程 + try: + # 构建运行命令,使用完整路径 + # 新的日志结构: + # twitter/actions.jsonl - Twitter 动作日志 + # reddit/actions.jsonl - Reddit 动作日志 + # simulation.log - 主进程日志 + + cmd = [ + sys.executable, # Python解释器 + script_path, + "--config", config_path, # 使用完整配置文件路径 + ] + + # 如果指定了最大轮数,添加到命令行参数 + if max_rounds is not None and max_rounds > 0: + cmd.extend(["--max-rounds", str(max_rounds)]) + + # 创建主日志文件,避免 stdout/stderr 管道缓冲区满导致进程阻塞 + main_log_path = os.path.join(sim_dir, "simulation.log") + main_log_file = open(main_log_path, 'w', encoding='utf-8') + + # 设置子进程环境变量,确保 Windows 上使用 UTF-8 编码 + # 这可以修复第三方库(如 OASIS)读取文件时未指定编码的问题 + env = os.environ.copy() + env['PYTHONUTF8'] = '1' # Python 3.7+ 支持,让所有 open() 默认使用 UTF-8 + env['PYTHONIOENCODING'] = 'utf-8' # 确保 stdout/stderr 使用 UTF-8 + + # 设置工作目录为模拟目录(数据库等文件会生成在此) + # 使用 start_new_session=True 创建新的进程组,确保可以通过 os.killpg 终止所有子进程 + process = subprocess.Popen( + cmd, + cwd=sim_dir, + stdout=main_log_file, + stderr=subprocess.STDOUT, # stderr 也写入同一个文件 + text=True, + encoding='utf-8', # 显式指定编码 + bufsize=1, + env=env, # 传递带有 UTF-8 设置的环境变量 + start_new_session=True, # 创建新进程组,确保服务器关闭时能终止所有相关进程 + ) + + # 保存文件句柄以便后续关闭 + cls._stdout_files[simulation_id] = main_log_file + cls._stderr_files[simulation_id] = None # 不再需要单独的 stderr + + state.process_pid = process.pid + state.runner_status = RunnerStatus.RUNNING + cls._processes[simulation_id] = process + cls._save_run_state(state) + + # Capture locale before spawning monitor thread + current_locale = get_locale() + + # 启动监控线程 + monitor_thread = threading.Thread( + target=cls._monitor_simulation, + args=(simulation_id, current_locale), + daemon=True + ) + monitor_thread.start() + cls._monitor_threads[simulation_id] = monitor_thread + + logger.info(f"模拟启动成功: {simulation_id}, pid={process.pid}, platform={platform}") + + except Exception as e: + state.runner_status = RunnerStatus.FAILED + state.error = str(e) + cls._save_run_state(state) + raise + + return state + + @classmethod + def _monitor_simulation(cls, simulation_id: str, locale: str = 'zh'): + """监控模拟进程,解析动作日志""" + set_locale(locale) + sim_dir = os.path.join(cls.RUN_STATE_DIR, simulation_id) + + # 新的日志结构:分平台的动作日志 + twitter_actions_log = os.path.join(sim_dir, "twitter", "actions.jsonl") + reddit_actions_log = os.path.join(sim_dir, "reddit", "actions.jsonl") + + process = cls._processes.get(simulation_id) + state = cls.get_run_state(simulation_id) + + if not process or not state: + return + + twitter_position = 0 + reddit_position = 0 + + try: + while process.poll() is None: # 进程仍在运行 + # 读取 Twitter 动作日志 + if os.path.exists(twitter_actions_log): + twitter_position = cls._read_action_log( + twitter_actions_log, twitter_position, state, "twitter" + ) + + # 读取 Reddit 动作日志 + if os.path.exists(reddit_actions_log): + reddit_position = cls._read_action_log( + reddit_actions_log, reddit_position, state, "reddit" + ) + + # 更新状态 + cls._save_run_state(state) + time.sleep(2) + + # 进程结束后,最后读取一次日志 + if os.path.exists(twitter_actions_log): + cls._read_action_log(twitter_actions_log, twitter_position, state, "twitter") + if os.path.exists(reddit_actions_log): + cls._read_action_log(reddit_actions_log, reddit_position, state, "reddit") + + # 进程结束 + exit_code = process.returncode + + if exit_code == 0: + state.runner_status = RunnerStatus.COMPLETED + state.completed_at = datetime.now().isoformat() + logger.info(f"模拟完成: {simulation_id}") + else: + state.runner_status = RunnerStatus.FAILED + # 从主日志文件读取错误信息 + main_log_path = os.path.join(sim_dir, "simulation.log") + error_info = "" + try: + if os.path.exists(main_log_path): + with open(main_log_path, 'r', encoding='utf-8') as f: + error_info = f.read()[-2000:] # 取最后2000字符 + except Exception: + pass + state.error = f"进程退出码: {exit_code}, 错误: {error_info}" + logger.error(f"模拟失败: {simulation_id}, error={state.error}") + + state.twitter_running = False + state.reddit_running = False + cls._save_run_state(state) + + except Exception as e: + logger.error(f"监控线程异常: {simulation_id}, error={str(e)}") + state.runner_status = RunnerStatus.FAILED + state.error = str(e) + cls._save_run_state(state) + + finally: + # 停止图谱记忆更新器 + if cls._graph_memory_enabled.get(simulation_id, False): + try: + ZepGraphMemoryManager.stop_updater(simulation_id) + logger.info(f"已停止图谱记忆更新: simulation_id={simulation_id}") + except Exception as e: + logger.error(f"停止图谱记忆更新器失败: {e}") + cls._graph_memory_enabled.pop(simulation_id, None) + + # 清理进程资源 + cls._processes.pop(simulation_id, None) + cls._action_queues.pop(simulation_id, None) + + # 关闭日志文件句柄 + if simulation_id in cls._stdout_files: + try: + cls._stdout_files[simulation_id].close() + except Exception: + pass + cls._stdout_files.pop(simulation_id, None) + if simulation_id in cls._stderr_files and cls._stderr_files[simulation_id]: + try: + cls._stderr_files[simulation_id].close() + except Exception: + pass + cls._stderr_files.pop(simulation_id, None) + + @classmethod + def _read_action_log( + cls, + log_path: str, + position: int, + state: SimulationRunState, + platform: str + ) -> int: + """ + 读取动作日志文件 + + Args: + log_path: 日志文件路径 + position: 上次读取位置 + state: 运行状态对象 + platform: 平台名称 (twitter/reddit) + + Returns: + 新的读取位置 + """ + # 检查是否启用了图谱记忆更新 + graph_memory_enabled = cls._graph_memory_enabled.get(state.simulation_id, False) + graph_updater = None + if graph_memory_enabled: + graph_updater = ZepGraphMemoryManager.get_updater(state.simulation_id) + + try: + with open(log_path, 'r', encoding='utf-8') as f: + f.seek(position) + for line in f: + line = line.strip() + if line: + try: + action_data = json.loads(line) + + # 处理事件类型的条目 + if "event_type" in action_data: + event_type = action_data.get("event_type") + + # 检测 simulation_end 事件,标记平台已完成 + if event_type == "simulation_end": + if platform == "twitter": + state.twitter_completed = True + state.twitter_running = False + logger.info(f"Twitter 模拟已完成: {state.simulation_id}, total_rounds={action_data.get('total_rounds')}, total_actions={action_data.get('total_actions')}") + elif platform == "reddit": + state.reddit_completed = True + state.reddit_running = False + logger.info(f"Reddit 模拟已完成: {state.simulation_id}, total_rounds={action_data.get('total_rounds')}, total_actions={action_data.get('total_actions')}") + + # 检查是否所有启用的平台都已完成 + # 如果只运行了一个平台,只检查那个平台 + # 如果运行了两个平台,需要两个都完成 + all_completed = cls._check_all_platforms_completed(state) + if all_completed: + state.runner_status = RunnerStatus.COMPLETED + state.completed_at = datetime.now().isoformat() + logger.info(f"所有平台模拟已完成: {state.simulation_id}") + + # 更新轮次信息(从 round_end 事件) + elif event_type == "round_end": + round_num = action_data.get("round", 0) + simulated_hours = action_data.get("simulated_hours", 0) + + # 更新各平台独立的轮次和时间 + if platform == "twitter": + if round_num > state.twitter_current_round: + state.twitter_current_round = round_num + state.twitter_simulated_hours = simulated_hours + elif platform == "reddit": + if round_num > state.reddit_current_round: + state.reddit_current_round = round_num + state.reddit_simulated_hours = simulated_hours + + # 总体轮次取两个平台的最大值 + if round_num > state.current_round: + state.current_round = round_num + # 总体时间取两个平台的最大值 + state.simulated_hours = max(state.twitter_simulated_hours, state.reddit_simulated_hours) + + continue + + action = AgentAction( + round_num=action_data.get("round", 0), + timestamp=action_data.get("timestamp", datetime.now().isoformat()), + platform=platform, + agent_id=action_data.get("agent_id", 0), + agent_name=action_data.get("agent_name", ""), + action_type=action_data.get("action_type", ""), + action_args=action_data.get("action_args", {}), + result=action_data.get("result"), + success=action_data.get("success", True), + ) + state.add_action(action) + + # 更新轮次 + if action.round_num and action.round_num > state.current_round: + state.current_round = action.round_num + + # 如果启用了图谱记忆更新,将活动发送到Zep + if graph_updater: + graph_updater.add_activity_from_dict(action_data, platform) + + except json.JSONDecodeError: + pass + return f.tell() + except Exception as e: + logger.warning(f"读取动作日志失败: {log_path}, error={e}") + return position + + @classmethod + def _check_all_platforms_completed(cls, state: SimulationRunState) -> bool: + """ + 检查所有启用的平台是否都已完成模拟 + + 通过检查对应的 actions.jsonl 文件是否存在来判断平台是否被启用 + + Returns: + True 如果所有启用的平台都已完成 + """ + sim_dir = os.path.join(cls.RUN_STATE_DIR, state.simulation_id) + twitter_log = os.path.join(sim_dir, "twitter", "actions.jsonl") + reddit_log = os.path.join(sim_dir, "reddit", "actions.jsonl") + + # 检查哪些平台被启用(通过文件是否存在判断) + twitter_enabled = os.path.exists(twitter_log) + reddit_enabled = os.path.exists(reddit_log) + + # 如果平台被启用但未完成,则返回 False + if twitter_enabled and not state.twitter_completed: + return False + if reddit_enabled and not state.reddit_completed: + return False + + # 至少有一个平台被启用且已完成 + return twitter_enabled or reddit_enabled + + @classmethod + def _terminate_process(cls, process: subprocess.Popen, simulation_id: str, timeout: int = 10): + """ + 跨平台终止进程及其子进程 + + Args: + process: 要终止的进程 + simulation_id: 模拟ID(用于日志) + timeout: 等待进程退出的超时时间(秒) + """ + if IS_WINDOWS: + # Windows: 使用 taskkill 命令终止进程树 + # /F = 强制终止, /T = 终止进程树(包括子进程) + logger.info(f"终止进程树 (Windows): simulation={simulation_id}, pid={process.pid}") + try: + # 先尝试优雅终止 + subprocess.run( + ['taskkill', '/PID', str(process.pid), '/T'], + capture_output=True, + timeout=5 + ) + try: + process.wait(timeout=timeout) + except subprocess.TimeoutExpired: + # 强制终止 + logger.warning(f"进程未响应,强制终止: {simulation_id}") + subprocess.run( + ['taskkill', '/F', '/PID', str(process.pid), '/T'], + capture_output=True, + timeout=5 + ) + process.wait(timeout=5) + except Exception as e: + logger.warning(f"taskkill 失败,尝试 terminate: {e}") + process.terminate() + try: + process.wait(timeout=5) + except subprocess.TimeoutExpired: + process.kill() + else: + # Unix: 使用进程组终止 + # 由于使用了 start_new_session=True,进程组 ID 等于主进程 PID + pgid = os.getpgid(process.pid) + logger.info(f"终止进程组 (Unix): simulation={simulation_id}, pgid={pgid}") + + # 先发送 SIGTERM 给整个进程组 + os.killpg(pgid, signal.SIGTERM) + + try: + process.wait(timeout=timeout) + except subprocess.TimeoutExpired: + # 如果超时后还没结束,强制发送 SIGKILL + logger.warning(f"进程组未响应 SIGTERM,强制终止: {simulation_id}") + os.killpg(pgid, signal.SIGKILL) + process.wait(timeout=5) + + @classmethod + def stop_simulation(cls, simulation_id: str) -> SimulationRunState: + """停止模拟""" + state = cls.get_run_state(simulation_id) + if not state: + raise ValueError(f"模拟不存在: {simulation_id}") + + if state.runner_status not in [RunnerStatus.RUNNING, RunnerStatus.PAUSED]: + raise ValueError(f"模拟未在运行: {simulation_id}, status={state.runner_status}") + + state.runner_status = RunnerStatus.STOPPING + cls._save_run_state(state) + + # 终止进程 + process = cls._processes.get(simulation_id) + if process and process.poll() is None: + try: + cls._terminate_process(process, simulation_id) + except ProcessLookupError: + # 进程已经不存在 + pass + except Exception as e: + logger.error(f"终止进程组失败: {simulation_id}, error={e}") + # 回退到直接终止进程 + try: + process.terminate() + process.wait(timeout=5) + except Exception: + process.kill() + + state.runner_status = RunnerStatus.STOPPED + state.twitter_running = False + state.reddit_running = False + state.completed_at = datetime.now().isoformat() + cls._save_run_state(state) + + # 停止图谱记忆更新器 + if cls._graph_memory_enabled.get(simulation_id, False): + try: + ZepGraphMemoryManager.stop_updater(simulation_id) + logger.info(f"已停止图谱记忆更新: simulation_id={simulation_id}") + except Exception as e: + logger.error(f"停止图谱记忆更新器失败: {e}") + cls._graph_memory_enabled.pop(simulation_id, None) + + logger.info(f"模拟已停止: {simulation_id}") + return state + + @classmethod + def _read_actions_from_file( + cls, + file_path: str, + default_platform: Optional[str] = None, + platform_filter: Optional[str] = None, + agent_id: Optional[int] = None, + round_num: Optional[int] = None + ) -> List[AgentAction]: + """ + 从单个动作文件中读取动作 + + Args: + file_path: 动作日志文件路径 + default_platform: 默认平台(当动作记录中没有 platform 字段时使用) + platform_filter: 过滤平台 + agent_id: 过滤 Agent ID + round_num: 过滤轮次 + """ + if not os.path.exists(file_path): + return [] + + actions = [] + + with open(file_path, 'r', encoding='utf-8') as f: + for line in f: + line = line.strip() + if not line: + continue + + try: + data = json.loads(line) + + # 跳过非动作记录(如 simulation_start, round_start, round_end 等事件) + if "event_type" in data: + continue + + # 跳过没有 agent_id 的记录(非 Agent 动作) + if "agent_id" not in data: + continue + + # 获取平台:优先使用记录中的 platform,否则使用默认平台 + record_platform = data.get("platform") or default_platform or "" + + # 过滤 + if platform_filter and record_platform != platform_filter: + continue + if agent_id is not None and data.get("agent_id") != agent_id: + continue + if round_num is not None and data.get("round") != round_num: + continue + + actions.append(AgentAction( + round_num=data.get("round", 0), + timestamp=data.get("timestamp", ""), + platform=record_platform, + agent_id=data.get("agent_id", 0), + agent_name=data.get("agent_name", ""), + action_type=data.get("action_type", ""), + action_args=data.get("action_args", {}), + result=data.get("result"), + success=data.get("success", True), + )) + + except json.JSONDecodeError: + continue + + return actions + + @classmethod + def get_all_actions( + cls, + simulation_id: str, + platform: Optional[str] = None, + agent_id: Optional[int] = None, + round_num: Optional[int] = None + ) -> List[AgentAction]: + """ + 获取所有平台的完整动作历史(无分页限制) + + Args: + simulation_id: 模拟ID + platform: 过滤平台(twitter/reddit) + agent_id: 过滤Agent + round_num: 过滤轮次 + + Returns: + 完整的动作列表(按时间戳排序,新的在前) + """ + sim_dir = os.path.join(cls.RUN_STATE_DIR, simulation_id) + actions = [] + + # 读取 Twitter 动作文件(根据文件路径自动设置 platform 为 twitter) + twitter_actions_log = os.path.join(sim_dir, "twitter", "actions.jsonl") + if not platform or platform == "twitter": + actions.extend(cls._read_actions_from_file( + twitter_actions_log, + default_platform="twitter", # 自动填充 platform 字段 + platform_filter=platform, + agent_id=agent_id, + round_num=round_num + )) + + # 读取 Reddit 动作文件(根据文件路径自动设置 platform 为 reddit) + reddit_actions_log = os.path.join(sim_dir, "reddit", "actions.jsonl") + if not platform or platform == "reddit": + actions.extend(cls._read_actions_from_file( + reddit_actions_log, + default_platform="reddit", # 自动填充 platform 字段 + platform_filter=platform, + agent_id=agent_id, + round_num=round_num + )) + + # 如果分平台文件不存在,尝试读取旧的单一文件格式 + if not actions: + actions_log = os.path.join(sim_dir, "actions.jsonl") + actions = cls._read_actions_from_file( + actions_log, + default_platform=None, # 旧格式文件中应该有 platform 字段 + platform_filter=platform, + agent_id=agent_id, + round_num=round_num + ) + + # 按时间戳排序(新的在前) + actions.sort(key=lambda x: x.timestamp, reverse=True) + + return actions + + @classmethod + def get_actions( + cls, + simulation_id: str, + limit: int = 100, + offset: int = 0, + platform: Optional[str] = None, + agent_id: Optional[int] = None, + round_num: Optional[int] = None + ) -> List[AgentAction]: + """ + 获取动作历史(带分页) + + Args: + simulation_id: 模拟ID + limit: 返回数量限制 + offset: 偏移量 + platform: 过滤平台 + agent_id: 过滤Agent + round_num: 过滤轮次 + + Returns: + 动作列表 + """ + actions = cls.get_all_actions( + simulation_id=simulation_id, + platform=platform, + agent_id=agent_id, + round_num=round_num + ) + + # 分页 + return actions[offset:offset + limit] + + @classmethod + def get_timeline( + cls, + simulation_id: str, + start_round: int = 0, + end_round: Optional[int] = None + ) -> List[Dict[str, Any]]: + """ + 获取模拟时间线(按轮次汇总) + + Args: + simulation_id: 模拟ID + start_round: 起始轮次 + end_round: 结束轮次 + + Returns: + 每轮的汇总信息 + """ + actions = cls.get_actions(simulation_id, limit=10000) + + # 按轮次分组 + rounds: Dict[int, Dict[str, Any]] = {} + + for action in actions: + round_num = action.round_num + + if round_num < start_round: + continue + if end_round is not None and round_num > end_round: + continue + + if round_num not in rounds: + rounds[round_num] = { + "round_num": round_num, + "twitter_actions": 0, + "reddit_actions": 0, + "active_agents": set(), + "action_types": {}, + "first_action_time": action.timestamp, + "last_action_time": action.timestamp, + } + + r = rounds[round_num] + + if action.platform == "twitter": + r["twitter_actions"] += 1 + else: + r["reddit_actions"] += 1 + + r["active_agents"].add(action.agent_id) + r["action_types"][action.action_type] = r["action_types"].get(action.action_type, 0) + 1 + r["last_action_time"] = action.timestamp + + # 转换为列表 + result = [] + for round_num in sorted(rounds.keys()): + r = rounds[round_num] + result.append({ + "round_num": round_num, + "twitter_actions": r["twitter_actions"], + "reddit_actions": r["reddit_actions"], + "total_actions": r["twitter_actions"] + r["reddit_actions"], + "active_agents_count": len(r["active_agents"]), + "active_agents": list(r["active_agents"]), + "action_types": r["action_types"], + "first_action_time": r["first_action_time"], + "last_action_time": r["last_action_time"], + }) + + return result + + @classmethod + def get_agent_stats(cls, simulation_id: str) -> List[Dict[str, Any]]: + """ + 获取每个Agent的统计信息 + + Returns: + Agent统计列表 + """ + actions = cls.get_actions(simulation_id, limit=10000) + + agent_stats: Dict[int, Dict[str, Any]] = {} + + for action in actions: + agent_id = action.agent_id + + if agent_id not in agent_stats: + agent_stats[agent_id] = { + "agent_id": agent_id, + "agent_name": action.agent_name, + "total_actions": 0, + "twitter_actions": 0, + "reddit_actions": 0, + "action_types": {}, + "first_action_time": action.timestamp, + "last_action_time": action.timestamp, + } + + stats = agent_stats[agent_id] + stats["total_actions"] += 1 + + if action.platform == "twitter": + stats["twitter_actions"] += 1 + else: + stats["reddit_actions"] += 1 + + stats["action_types"][action.action_type] = stats["action_types"].get(action.action_type, 0) + 1 + stats["last_action_time"] = action.timestamp + + # 按总动作数排序 + result = sorted(agent_stats.values(), key=lambda x: x["total_actions"], reverse=True) + + return result + + @classmethod + def cleanup_simulation_logs(cls, simulation_id: str) -> Dict[str, Any]: + """ + 清理模拟的运行日志(用于强制重新开始模拟) + + 会删除以下文件: + - run_state.json + - twitter/actions.jsonl + - reddit/actions.jsonl + - simulation.log + - stdout.log / stderr.log + - twitter_simulation.db(模拟数据库) + - reddit_simulation.db(模拟数据库) + - env_status.json(环境状态) + + 注意:不会删除配置文件(simulation_config.json)和 profile 文件 + + Args: + simulation_id: 模拟ID + + Returns: + 清理结果信息 + """ + import shutil + + sim_dir = os.path.join(cls.RUN_STATE_DIR, simulation_id) + + if not os.path.exists(sim_dir): + return {"success": True, "message": "模拟目录不存在,无需清理"} + + cleaned_files = [] + errors = [] + + # 要删除的文件列表(包括数据库文件) + files_to_delete = [ + "run_state.json", + "simulation.log", + "stdout.log", + "stderr.log", + "twitter_simulation.db", # Twitter 平台数据库 + "reddit_simulation.db", # Reddit 平台数据库 + "env_status.json", # 环境状态文件 + ] + + # 要删除的目录列表(包含动作日志) + dirs_to_clean = ["twitter", "reddit"] + + # 删除文件 + for filename in files_to_delete: + file_path = os.path.join(sim_dir, filename) + if os.path.exists(file_path): + try: + os.remove(file_path) + cleaned_files.append(filename) + except Exception as e: + errors.append(f"删除 {filename} 失败: {str(e)}") + + # 清理平台目录中的动作日志 + for dir_name in dirs_to_clean: + dir_path = os.path.join(sim_dir, dir_name) + if os.path.exists(dir_path): + actions_file = os.path.join(dir_path, "actions.jsonl") + if os.path.exists(actions_file): + try: + os.remove(actions_file) + cleaned_files.append(f"{dir_name}/actions.jsonl") + except Exception as e: + errors.append(f"删除 {dir_name}/actions.jsonl 失败: {str(e)}") + + # 清理内存中的运行状态 + if simulation_id in cls._run_states: + del cls._run_states[simulation_id] + + logger.info(f"清理模拟日志完成: {simulation_id}, 删除文件: {cleaned_files}") + + return { + "success": len(errors) == 0, + "cleaned_files": cleaned_files, + "errors": errors if errors else None + } + + # 防止重复清理的标志 + _cleanup_done = False + + @classmethod + def cleanup_all_simulations(cls): + """ + 清理所有运行中的模拟进程 + + 在服务器关闭时调用,确保所有子进程被终止 + """ + # 防止重复清理 + if cls._cleanup_done: + return + cls._cleanup_done = True + + # 检查是否有内容需要清理(避免空进程的进程打印无用日志) + has_processes = bool(cls._processes) + has_updaters = bool(cls._graph_memory_enabled) + + if not has_processes and not has_updaters: + return # 没有需要清理的内容,静默返回 + + logger.info("正在清理所有模拟进程...") + + # 首先停止所有图谱记忆更新器(stop_all 内部会打印日志) + try: + ZepGraphMemoryManager.stop_all() + except Exception as e: + logger.error(f"停止图谱记忆更新器失败: {e}") + cls._graph_memory_enabled.clear() + + # 复制字典以避免在迭代时修改 + processes = list(cls._processes.items()) + + for simulation_id, process in processes: + try: + if process.poll() is None: # 进程仍在运行 + logger.info(f"终止模拟进程: {simulation_id}, pid={process.pid}") + + try: + # 使用跨平台的进程终止方法 + cls._terminate_process(process, simulation_id, timeout=5) + except (ProcessLookupError, OSError): + # 进程可能已经不存在,尝试直接终止 + try: + process.terminate() + process.wait(timeout=3) + except Exception: + process.kill() + + # 更新 run_state.json + state = cls.get_run_state(simulation_id) + if state: + state.runner_status = RunnerStatus.STOPPED + state.twitter_running = False + state.reddit_running = False + state.completed_at = datetime.now().isoformat() + state.error = "服务器关闭,模拟被终止" + cls._save_run_state(state) + + # 同时更新 state.json,将状态设为 stopped + try: + sim_dir = os.path.join(cls.RUN_STATE_DIR, simulation_id) + state_file = os.path.join(sim_dir, "state.json") + logger.info(f"尝试更新 state.json: {state_file}") + if os.path.exists(state_file): + with open(state_file, 'r', encoding='utf-8') as f: + state_data = json.load(f) + state_data['status'] = 'stopped' + state_data['updated_at'] = datetime.now().isoformat() + with open(state_file, 'w', encoding='utf-8') as f: + json.dump(state_data, f, indent=2, ensure_ascii=False) + logger.info(f"已更新 state.json 状态为 stopped: {simulation_id}") + else: + logger.warning(f"state.json 不存在: {state_file}") + except Exception as state_err: + logger.warning(f"更新 state.json 失败: {simulation_id}, error={state_err}") + + except Exception as e: + logger.error(f"清理进程失败: {simulation_id}, error={e}") + + # 清理文件句柄 + for simulation_id, file_handle in list(cls._stdout_files.items()): + try: + if file_handle: + file_handle.close() + except Exception: + pass + cls._stdout_files.clear() + + for simulation_id, file_handle in list(cls._stderr_files.items()): + try: + if file_handle: + file_handle.close() + except Exception: + pass + cls._stderr_files.clear() + + # 清理内存中的状态 + cls._processes.clear() + cls._action_queues.clear() + + logger.info("模拟进程清理完成") + + @classmethod + def register_cleanup(cls): + """ + 注册清理函数 + + 在 Flask 应用启动时调用,确保服务器关闭时清理所有模拟进程 + """ + global _cleanup_registered + + if _cleanup_registered: + return + + # Flask debug 模式下,只在 reloader 子进程中注册清理(实际运行应用的进程) + # WERKZEUG_RUN_MAIN=true 表示是 reloader 子进程 + # 如果不是 debug 模式,则没有这个环境变量,也需要注册 + is_reloader_process = os.environ.get('WERKZEUG_RUN_MAIN') == 'true' + is_debug_mode = os.environ.get('FLASK_DEBUG') == '1' or os.environ.get('WERKZEUG_RUN_MAIN') is not None + + # 在 debug 模式下,只在 reloader 子进程中注册;非 debug 模式下始终注册 + if is_debug_mode and not is_reloader_process: + _cleanup_registered = True # 标记已注册,防止子进程再次尝试 + return + + # 保存原有的信号处理器 + original_sigint = signal.getsignal(signal.SIGINT) + original_sigterm = signal.getsignal(signal.SIGTERM) + # SIGHUP 只在 Unix 系统存在(macOS/Linux),Windows 没有 + original_sighup = None + has_sighup = hasattr(signal, 'SIGHUP') + if has_sighup: + original_sighup = signal.getsignal(signal.SIGHUP) + + def cleanup_handler(signum=None, frame=None): + """信号处理器:先清理模拟进程,再调用原处理器""" + # 只有在有进程需要清理时才打印日志 + if cls._processes or cls._graph_memory_enabled: + logger.info(f"收到信号 {signum},开始清理...") + cls.cleanup_all_simulations() + + # 调用原有的信号处理器,让 Flask 正常退出 + if signum == signal.SIGINT and callable(original_sigint): + original_sigint(signum, frame) + elif signum == signal.SIGTERM and callable(original_sigterm): + original_sigterm(signum, frame) + elif has_sighup and signum == signal.SIGHUP: + # SIGHUP: 终端关闭时发送 + if callable(original_sighup): + original_sighup(signum, frame) + else: + # 默认行为:正常退出 + sys.exit(0) + else: + # 如果原处理器不可调用(如 SIG_DFL),则使用默认行为 + raise KeyboardInterrupt + + # 注册 atexit 处理器(作为备用) + atexit.register(cls.cleanup_all_simulations) + + # 注册信号处理器(仅在主线程中) + try: + # SIGTERM: kill 命令默认信号 + signal.signal(signal.SIGTERM, cleanup_handler) + # SIGINT: Ctrl+C + signal.signal(signal.SIGINT, cleanup_handler) + # SIGHUP: 终端关闭(仅 Unix 系统) + if has_sighup: + signal.signal(signal.SIGHUP, cleanup_handler) + except ValueError: + # 不在主线程中,只能使用 atexit + logger.warning("无法注册信号处理器(不在主线程),仅使用 atexit") + + _cleanup_registered = True + + @classmethod + def get_running_simulations(cls) -> List[str]: + """ + 获取所有正在运行的模拟ID列表 + """ + running = [] + for sim_id, process in cls._processes.items(): + if process.poll() is None: + running.append(sim_id) + return running + + # ============== Interview 功能 ============== + + @classmethod + def check_env_alive(cls, simulation_id: str) -> bool: + """ + 检查模拟环境是否存活(可以接收Interview命令) + + Args: + simulation_id: 模拟ID + + Returns: + True 表示环境存活,False 表示环境已关闭 + """ + sim_dir = os.path.join(cls.RUN_STATE_DIR, simulation_id) + if not os.path.exists(sim_dir): + return False + + ipc_client = SimulationIPCClient(sim_dir) + return ipc_client.check_env_alive() + + @classmethod + def get_env_status_detail(cls, simulation_id: str) -> Dict[str, Any]: + """ + 获取模拟环境的详细状态信息 + + Args: + simulation_id: 模拟ID + + Returns: + 状态详情字典,包含 status, twitter_available, reddit_available, timestamp + """ + sim_dir = os.path.join(cls.RUN_STATE_DIR, simulation_id) + status_file = os.path.join(sim_dir, "env_status.json") + + default_status = { + "status": "stopped", + "twitter_available": False, + "reddit_available": False, + "timestamp": None + } + + if not os.path.exists(status_file): + return default_status + + try: + with open(status_file, 'r', encoding='utf-8') as f: + status = json.load(f) + return { + "status": status.get("status", "stopped"), + "twitter_available": status.get("twitter_available", False), + "reddit_available": status.get("reddit_available", False), + "timestamp": status.get("timestamp") + } + except (json.JSONDecodeError, OSError): + return default_status + + @classmethod + def interview_agent( + cls, + simulation_id: str, + agent_id: int, + prompt: str, + platform: str = None, + timeout: float = 60.0 + ) -> Dict[str, Any]: + """ + 采访单个Agent + + Args: + simulation_id: 模拟ID + agent_id: Agent ID + prompt: 采访问题 + platform: 指定平台(可选) + - "twitter": 只采访Twitter平台 + - "reddit": 只采访Reddit平台 + - None: 双平台模拟时同时采访两个平台,返回整合结果 + timeout: 超时时间(秒) + + Returns: + 采访结果字典 + + Raises: + ValueError: 模拟不存在或环境未运行 + TimeoutError: 等待响应超时 + """ + sim_dir = os.path.join(cls.RUN_STATE_DIR, simulation_id) + if not os.path.exists(sim_dir): + raise ValueError(f"模拟不存在: {simulation_id}") + + ipc_client = SimulationIPCClient(sim_dir) + + if not ipc_client.check_env_alive(): + raise ValueError(f"模拟环境未运行或已关闭,无法执行Interview: {simulation_id}") + + logger.info(f"发送Interview命令: simulation_id={simulation_id}, agent_id={agent_id}, platform={platform}") + + response = ipc_client.send_interview( + agent_id=agent_id, + prompt=prompt, + platform=platform, + timeout=timeout + ) + + if response.status.value == "completed": + return { + "success": True, + "agent_id": agent_id, + "prompt": prompt, + "result": response.result, + "timestamp": response.timestamp + } + else: + return { + "success": False, + "agent_id": agent_id, + "prompt": prompt, + "error": response.error, + "timestamp": response.timestamp + } + + @classmethod + def interview_agents_batch( + cls, + simulation_id: str, + interviews: List[Dict[str, Any]], + platform: str = None, + timeout: float = 120.0 + ) -> Dict[str, Any]: + """ + 批量采访多个Agent + + Args: + simulation_id: 模拟ID + interviews: 采访列表,每个元素包含 {"agent_id": int, "prompt": str, "platform": str(可选)} + platform: 默认平台(可选,会被每个采访项的platform覆盖) + - "twitter": 默认只采访Twitter平台 + - "reddit": 默认只采访Reddit平台 + - None: 双平台模拟时每个Agent同时采访两个平台 + timeout: 超时时间(秒) + + Returns: + 批量采访结果字典 + + Raises: + ValueError: 模拟不存在或环境未运行 + TimeoutError: 等待响应超时 + """ + sim_dir = os.path.join(cls.RUN_STATE_DIR, simulation_id) + if not os.path.exists(sim_dir): + raise ValueError(f"模拟不存在: {simulation_id}") + + ipc_client = SimulationIPCClient(sim_dir) + + if not ipc_client.check_env_alive(): + raise ValueError(f"模拟环境未运行或已关闭,无法执行Interview: {simulation_id}") + + logger.info(f"发送批量Interview命令: simulation_id={simulation_id}, count={len(interviews)}, platform={platform}") + + response = ipc_client.send_batch_interview( + interviews=interviews, + platform=platform, + timeout=timeout + ) + + if response.status.value == "completed": + return { + "success": True, + "interviews_count": len(interviews), + "result": response.result, + "timestamp": response.timestamp + } + else: + return { + "success": False, + "interviews_count": len(interviews), + "error": response.error, + "timestamp": response.timestamp + } + + @classmethod + def interview_all_agents( + cls, + simulation_id: str, + prompt: str, + platform: str = None, + timeout: float = 180.0 + ) -> Dict[str, Any]: + """ + 采访所有Agent(全局采访) + + 使用相同的问题采访模拟中的所有Agent + + Args: + simulation_id: 模拟ID + prompt: 采访问题(所有Agent使用相同问题) + platform: 指定平台(可选) + - "twitter": 只采访Twitter平台 + - "reddit": 只采访Reddit平台 + - None: 双平台模拟时每个Agent同时采访两个平台 + timeout: 超时时间(秒) + + Returns: + 全局采访结果字典 + """ + sim_dir = os.path.join(cls.RUN_STATE_DIR, simulation_id) + if not os.path.exists(sim_dir): + raise ValueError(f"模拟不存在: {simulation_id}") + + # 从配置文件获取所有Agent信息 + config_path = os.path.join(sim_dir, "simulation_config.json") + if not os.path.exists(config_path): + raise ValueError(f"模拟配置不存在: {simulation_id}") + + with open(config_path, 'r', encoding='utf-8') as f: + config = json.load(f) + + agent_configs = config.get("agent_configs", []) + if not agent_configs: + raise ValueError(f"模拟配置中没有Agent: {simulation_id}") + + # 构建批量采访列表 + interviews = [] + for agent_config in agent_configs: + agent_id = agent_config.get("agent_id") + if agent_id is not None: + interviews.append({ + "agent_id": agent_id, + "prompt": prompt + }) + + logger.info(f"发送全局Interview命令: simulation_id={simulation_id}, agent_count={len(interviews)}, platform={platform}") + + return cls.interview_agents_batch( + simulation_id=simulation_id, + interviews=interviews, + platform=platform, + timeout=timeout + ) + + @classmethod + def close_simulation_env( + cls, + simulation_id: str, + timeout: float = 30.0 + ) -> Dict[str, Any]: + """ + 关闭模拟环境(而不是停止模拟进程) + + 向模拟发送关闭环境命令,使其优雅退出等待命令模式 + + Args: + simulation_id: 模拟ID + timeout: 超时时间(秒) + + Returns: + 操作结果字典 + """ + sim_dir = os.path.join(cls.RUN_STATE_DIR, simulation_id) + if not os.path.exists(sim_dir): + raise ValueError(f"模拟不存在: {simulation_id}") + + ipc_client = SimulationIPCClient(sim_dir) + + if not ipc_client.check_env_alive(): + return { + "success": True, + "message": "环境已经关闭" + } + + logger.info(f"发送关闭环境命令: simulation_id={simulation_id}") + + try: + response = ipc_client.send_close_env(timeout=timeout) + + return { + "success": response.status.value == "completed", + "message": "环境关闭命令已发送", + "result": response.result, + "timestamp": response.timestamp + } + except TimeoutError: + # 超时可能是因为环境正在关闭 + return { + "success": True, + "message": "环境关闭命令已发送(等待响应超时,环境可能正在关闭)" + } + + @classmethod + def _get_interview_history_from_db( + cls, + db_path: str, + platform_name: str, + agent_id: Optional[int] = None, + limit: int = 100 + ) -> List[Dict[str, Any]]: + """从单个数据库获取Interview历史""" + import sqlite3 + + if not os.path.exists(db_path): + return [] + + results = [] + + try: + conn = sqlite3.connect(db_path) + cursor = conn.cursor() + + if agent_id is not None: + cursor.execute(""" + SELECT user_id, info, created_at + FROM trace + WHERE action = 'interview' AND user_id = ? + ORDER BY created_at DESC + LIMIT ? + """, (agent_id, limit)) + else: + cursor.execute(""" + SELECT user_id, info, created_at + FROM trace + WHERE action = 'interview' + ORDER BY created_at DESC + LIMIT ? + """, (limit,)) + + for user_id, info_json, created_at in cursor.fetchall(): + try: + info = json.loads(info_json) if info_json else {} + except json.JSONDecodeError: + info = {"raw": info_json} + + results.append({ + "agent_id": user_id, + "response": info.get("response", info), + "prompt": info.get("prompt", ""), + "timestamp": created_at, + "platform": platform_name + }) + + conn.close() + + except Exception as e: + logger.error(f"读取Interview历史失败 ({platform_name}): {e}") + + return results + + @classmethod + def get_interview_history( + cls, + simulation_id: str, + platform: str = None, + agent_id: Optional[int] = None, + limit: int = 100 + ) -> List[Dict[str, Any]]: + """ + 获取Interview历史记录(从数据库读取) + + Args: + simulation_id: 模拟ID + platform: 平台类型(reddit/twitter/None) + - "reddit": 只获取Reddit平台的历史 + - "twitter": 只获取Twitter平台的历史 + - None: 获取两个平台的所有历史 + agent_id: 指定Agent ID(可选,只获取该Agent的历史) + limit: 每个平台返回数量限制 + + Returns: + Interview历史记录列表 + """ + sim_dir = os.path.join(cls.RUN_STATE_DIR, simulation_id) + + results = [] + + # 确定要查询的平台 + if platform in ("reddit", "twitter"): + platforms = [platform] + else: + # 不指定platform时,查询两个平台 + platforms = ["twitter", "reddit"] + + for p in platforms: + db_path = os.path.join(sim_dir, f"{p}_simulation.db") + platform_results = cls._get_interview_history_from_db( + db_path=db_path, + platform_name=p, + agent_id=agent_id, + limit=limit + ) + results.extend(platform_results) + + # 按时间降序排序 + results.sort(key=lambda x: x.get("timestamp", ""), reverse=True) + + # 如果查询了多个平台,限制总数 + if len(platforms) > 1 and len(results) > limit: + results = results[:limit] + + return results + diff --git a/backend/app/services/text_processor.py b/backend/app/services/text_processor.py new file mode 100644 index 00000000..91e32acc --- /dev/null +++ b/backend/app/services/text_processor.py @@ -0,0 +1,71 @@ +""" +文本处理服务 +""" + +from typing import List, Optional +from ..utils.file_parser import FileParser, split_text_into_chunks + + +class TextProcessor: + """文本处理器""" + + @staticmethod + def extract_from_files(file_paths: List[str]) -> str: + """从多个文件提取文本""" + return FileParser.extract_from_multiple(file_paths) + + @staticmethod + def split_text( + text: str, + chunk_size: int = 500, + overlap: int = 50 + ) -> List[str]: + """ + 分割文本 + + Args: + text: 原始文本 + chunk_size: 块大小 + overlap: 重叠大小 + + Returns: + 文本块列表 + """ + return split_text_into_chunks(text, chunk_size, overlap) + + @staticmethod + def preprocess_text(text: str) -> str: + """ + 预处理文本 + - 移除多余空白 + - 标准化换行 + + Args: + text: 原始文本 + + Returns: + 处理后的文本 + """ + import re + + # 标准化换行 + text = text.replace('\r\n', '\n').replace('\r', '\n') + + # 移除连续空行(保留最多两个换行) + text = re.sub(r'\n{3,}', '\n\n', text) + + # 移除行首行尾空白 + lines = [line.strip() for line in text.split('\n')] + text = '\n'.join(lines) + + return text.strip() + + @staticmethod + def get_text_stats(text: str) -> dict: + """获取文本统计信息""" + return { + "total_chars": len(text), + "total_lines": text.count('\n') + 1, + "total_words": len(text.split()), + } + diff --git a/backend/app/services/zep_entity_reader.py b/backend/app/services/zep_entity_reader.py new file mode 100644 index 00000000..71661be4 --- /dev/null +++ b/backend/app/services/zep_entity_reader.py @@ -0,0 +1,437 @@ +""" +Zep实体读取与过滤服务 +从Zep图谱中读取节点,筛选出符合预定义实体类型的节点 +""" + +import time +from typing import Dict, Any, List, Optional, Set, Callable, TypeVar +from dataclasses import dataclass, field + +from zep_cloud.client import Zep + +from ..config import Config +from ..utils.logger import get_logger +from ..utils.zep_paging import fetch_all_nodes, fetch_all_edges + +logger = get_logger('mirofish.zep_entity_reader') + +# 用于泛型返回类型 +T = TypeVar('T') + + +@dataclass +class EntityNode: + """实体节点数据结构""" + uuid: str + name: str + labels: List[str] + summary: str + attributes: Dict[str, Any] + # 相关的边信息 + related_edges: List[Dict[str, Any]] = field(default_factory=list) + # 相关的其他节点信息 + related_nodes: List[Dict[str, Any]] = field(default_factory=list) + + def to_dict(self) -> Dict[str, Any]: + return { + "uuid": self.uuid, + "name": self.name, + "labels": self.labels, + "summary": self.summary, + "attributes": self.attributes, + "related_edges": self.related_edges, + "related_nodes": self.related_nodes, + } + + def get_entity_type(self) -> Optional[str]: + """获取实体类型(排除默认的Entity标签)""" + for label in self.labels: + if label not in ["Entity", "Node"]: + return label + return None + + +@dataclass +class FilteredEntities: + """过滤后的实体集合""" + entities: List[EntityNode] + entity_types: Set[str] + total_count: int + filtered_count: int + + def to_dict(self) -> Dict[str, Any]: + return { + "entities": [e.to_dict() for e in self.entities], + "entity_types": list(self.entity_types), + "total_count": self.total_count, + "filtered_count": self.filtered_count, + } + + +class ZepEntityReader: + """ + Zep实体读取与过滤服务 + + 主要功能: + 1. 从Zep图谱读取所有节点 + 2. 筛选出符合预定义实体类型的节点(Labels不只是Entity的节点) + 3. 获取每个实体的相关边和关联节点信息 + """ + + def __init__(self, api_key: Optional[str] = None): + self.api_key = api_key or Config.ZEP_API_KEY + if not self.api_key: + raise ValueError("ZEP_API_KEY 未配置") + + self.client = Zep(api_key=self.api_key) + + def _call_with_retry( + self, + func: Callable[[], T], + operation_name: str, + max_retries: int = 3, + initial_delay: float = 2.0 + ) -> T: + """ + 带重试机制的Zep API调用 + + Args: + func: 要执行的函数(无参数的lambda或callable) + operation_name: 操作名称,用于日志 + max_retries: 最大重试次数(默认3次,即最多尝试3次) + initial_delay: 初始延迟秒数 + + Returns: + API调用结果 + """ + last_exception = None + delay = initial_delay + + for attempt in range(max_retries): + try: + return func() + except Exception as e: + last_exception = e + if attempt < max_retries - 1: + logger.warning( + f"Zep {operation_name} 第 {attempt + 1} 次尝试失败: {str(e)[:100]}, " + f"{delay:.1f}秒后重试..." + ) + time.sleep(delay) + delay *= 2 # 指数退避 + else: + logger.error(f"Zep {operation_name} 在 {max_retries} 次尝试后仍失败: {str(e)}") + + raise last_exception + + def get_all_nodes(self, graph_id: str) -> List[Dict[str, Any]]: + """ + 获取图谱的所有节点(分页获取) + + Args: + graph_id: 图谱ID + + Returns: + 节点列表 + """ + logger.info(f"获取图谱 {graph_id} 的所有节点...") + + nodes = fetch_all_nodes(self.client, graph_id) + + nodes_data = [] + for node in nodes: + nodes_data.append({ + "uuid": getattr(node, 'uuid_', None) or getattr(node, 'uuid', ''), + "name": node.name or "", + "labels": node.labels or [], + "summary": node.summary or "", + "attributes": node.attributes or {}, + }) + + logger.info(f"共获取 {len(nodes_data)} 个节点") + return nodes_data + + def get_all_edges(self, graph_id: str) -> List[Dict[str, Any]]: + """ + 获取图谱的所有边(分页获取) + + Args: + graph_id: 图谱ID + + Returns: + 边列表 + """ + logger.info(f"获取图谱 {graph_id} 的所有边...") + + edges = fetch_all_edges(self.client, graph_id) + + edges_data = [] + for edge in edges: + edges_data.append({ + "uuid": getattr(edge, 'uuid_', None) or getattr(edge, 'uuid', ''), + "name": edge.name or "", + "fact": edge.fact or "", + "source_node_uuid": edge.source_node_uuid, + "target_node_uuid": edge.target_node_uuid, + "attributes": edge.attributes or {}, + }) + + logger.info(f"共获取 {len(edges_data)} 条边") + return edges_data + + def get_node_edges(self, node_uuid: str) -> List[Dict[str, Any]]: + """ + 获取指定节点的所有相关边(带重试机制) + + Args: + node_uuid: 节点UUID + + Returns: + 边列表 + """ + try: + # 使用重试机制调用Zep API + edges = self._call_with_retry( + func=lambda: self.client.graph.node.get_entity_edges(node_uuid=node_uuid), + operation_name=f"获取节点边(node={node_uuid[:8]}...)" + ) + + edges_data = [] + for edge in edges: + edges_data.append({ + "uuid": getattr(edge, 'uuid_', None) or getattr(edge, 'uuid', ''), + "name": edge.name or "", + "fact": edge.fact or "", + "source_node_uuid": edge.source_node_uuid, + "target_node_uuid": edge.target_node_uuid, + "attributes": edge.attributes or {}, + }) + + return edges_data + except Exception as e: + logger.warning(f"获取节点 {node_uuid} 的边失败: {str(e)}") + return [] + + def filter_defined_entities( + self, + graph_id: str, + defined_entity_types: Optional[List[str]] = None, + enrich_with_edges: bool = True + ) -> FilteredEntities: + """ + 筛选出符合预定义实体类型的节点 + + 筛选逻辑: + - 如果节点的Labels只有一个"Entity",说明这个实体不符合我们预定义的类型,跳过 + - 如果节点的Labels包含除"Entity"和"Node"之外的标签,说明符合预定义类型,保留 + + Args: + graph_id: 图谱ID + defined_entity_types: 预定义的实体类型列表(可选,如果提供则只保留这些类型) + enrich_with_edges: 是否获取每个实体的相关边信息 + + Returns: + FilteredEntities: 过滤后的实体集合 + """ + logger.info(f"开始筛选图谱 {graph_id} 的实体...") + + # 获取所有节点 + all_nodes = self.get_all_nodes(graph_id) + total_count = len(all_nodes) + + # 获取所有边(用于后续关联查找) + all_edges = self.get_all_edges(graph_id) if enrich_with_edges else [] + + # 构建节点UUID到节点数据的映射 + node_map = {n["uuid"]: n for n in all_nodes} + + # 筛选符合条件的实体 + filtered_entities = [] + entity_types_found = set() + + for node in all_nodes: + labels = node.get("labels", []) + + # 筛选逻辑:Labels必须包含除"Entity"和"Node"之外的标签 + custom_labels = [l for l in labels if l not in ["Entity", "Node"]] + + if not custom_labels: + # 只有默认标签,跳过 + continue + + # 如果指定了预定义类型,检查是否匹配 + if defined_entity_types: + matching_labels = [l for l in custom_labels if l in defined_entity_types] + if not matching_labels: + continue + entity_type = matching_labels[0] + else: + entity_type = custom_labels[0] + + entity_types_found.add(entity_type) + + # 创建实体节点对象 + entity = EntityNode( + uuid=node["uuid"], + name=node["name"], + labels=labels, + summary=node["summary"], + attributes=node["attributes"], + ) + + # 获取相关边和节点 + if enrich_with_edges: + related_edges = [] + related_node_uuids = set() + + for edge in all_edges: + if edge["source_node_uuid"] == node["uuid"]: + related_edges.append({ + "direction": "outgoing", + "edge_name": edge["name"], + "fact": edge["fact"], + "target_node_uuid": edge["target_node_uuid"], + }) + related_node_uuids.add(edge["target_node_uuid"]) + elif edge["target_node_uuid"] == node["uuid"]: + related_edges.append({ + "direction": "incoming", + "edge_name": edge["name"], + "fact": edge["fact"], + "source_node_uuid": edge["source_node_uuid"], + }) + related_node_uuids.add(edge["source_node_uuid"]) + + entity.related_edges = related_edges + + # 获取关联节点的基本信息 + related_nodes = [] + for related_uuid in related_node_uuids: + if related_uuid in node_map: + related_node = node_map[related_uuid] + related_nodes.append({ + "uuid": related_node["uuid"], + "name": related_node["name"], + "labels": related_node["labels"], + "summary": related_node.get("summary", ""), + }) + + entity.related_nodes = related_nodes + + filtered_entities.append(entity) + + logger.info(f"筛选完成: 总节点 {total_count}, 符合条件 {len(filtered_entities)}, " + f"实体类型: {entity_types_found}") + + return FilteredEntities( + entities=filtered_entities, + entity_types=entity_types_found, + total_count=total_count, + filtered_count=len(filtered_entities), + ) + + def get_entity_with_context( + self, + graph_id: str, + entity_uuid: str + ) -> Optional[EntityNode]: + """ + 获取单个实体及其完整上下文(边和关联节点,带重试机制) + + Args: + graph_id: 图谱ID + entity_uuid: 实体UUID + + Returns: + EntityNode或None + """ + try: + # 使用重试机制获取节点 + node = self._call_with_retry( + func=lambda: self.client.graph.node.get(uuid_=entity_uuid), + operation_name=f"获取节点详情(uuid={entity_uuid[:8]}...)" + ) + + if not node: + return None + + # 获取节点的边 + edges = self.get_node_edges(entity_uuid) + + # 获取所有节点用于关联查找 + all_nodes = self.get_all_nodes(graph_id) + node_map = {n["uuid"]: n for n in all_nodes} + + # 处理相关边和节点 + related_edges = [] + related_node_uuids = set() + + for edge in edges: + if edge["source_node_uuid"] == entity_uuid: + related_edges.append({ + "direction": "outgoing", + "edge_name": edge["name"], + "fact": edge["fact"], + "target_node_uuid": edge["target_node_uuid"], + }) + related_node_uuids.add(edge["target_node_uuid"]) + else: + related_edges.append({ + "direction": "incoming", + "edge_name": edge["name"], + "fact": edge["fact"], + "source_node_uuid": edge["source_node_uuid"], + }) + related_node_uuids.add(edge["source_node_uuid"]) + + # 获取关联节点信息 + related_nodes = [] + for related_uuid in related_node_uuids: + if related_uuid in node_map: + related_node = node_map[related_uuid] + related_nodes.append({ + "uuid": related_node["uuid"], + "name": related_node["name"], + "labels": related_node["labels"], + "summary": related_node.get("summary", ""), + }) + + return EntityNode( + uuid=getattr(node, 'uuid_', None) or getattr(node, 'uuid', ''), + name=node.name or "", + labels=node.labels or [], + summary=node.summary or "", + attributes=node.attributes or {}, + related_edges=related_edges, + related_nodes=related_nodes, + ) + + except Exception as e: + logger.error(f"获取实体 {entity_uuid} 失败: {str(e)}") + return None + + def get_entities_by_type( + self, + graph_id: str, + entity_type: str, + enrich_with_edges: bool = True + ) -> List[EntityNode]: + """ + 获取指定类型的所有实体 + + Args: + graph_id: 图谱ID + entity_type: 实体类型(如 "Student", "PublicFigure" 等) + enrich_with_edges: 是否获取相关边信息 + + Returns: + 实体列表 + """ + result = self.filter_defined_entities( + graph_id=graph_id, + defined_entity_types=[entity_type], + enrich_with_edges=enrich_with_edges + ) + return result.entities + + diff --git a/backend/app/services/zep_graph_memory_updater.py b/backend/app/services/zep_graph_memory_updater.py new file mode 100644 index 00000000..e034fee2 --- /dev/null +++ b/backend/app/services/zep_graph_memory_updater.py @@ -0,0 +1,554 @@ +""" +Zep图谱记忆更新服务 +将模拟中的Agent活动动态更新到Zep图谱中 +""" + +import os +import time +import threading +import json +from typing import Dict, Any, List, Optional, Callable +from dataclasses import dataclass +from datetime import datetime +from queue import Queue, Empty + +from zep_cloud.client import Zep + +from ..config import Config +from ..utils.logger import get_logger +from ..utils.locale import get_locale, set_locale + +logger = get_logger('mirofish.zep_graph_memory_updater') + + +@dataclass +class AgentActivity: + """Agent活动记录""" + platform: str # twitter / reddit + agent_id: int + agent_name: str + action_type: str # CREATE_POST, LIKE_POST, etc. + action_args: Dict[str, Any] + round_num: int + timestamp: str + + def to_episode_text(self) -> str: + """ + 将活动转换为可以发送给Zep的文本描述 + + 采用自然语言描述格式,让Zep能够从中提取实体和关系 + 不添加模拟相关的前缀,避免误导图谱更新 + """ + # 根据不同的动作类型生成不同的描述 + action_descriptions = { + "CREATE_POST": self._describe_create_post, + "LIKE_POST": self._describe_like_post, + "DISLIKE_POST": self._describe_dislike_post, + "REPOST": self._describe_repost, + "QUOTE_POST": self._describe_quote_post, + "FOLLOW": self._describe_follow, + "CREATE_COMMENT": self._describe_create_comment, + "LIKE_COMMENT": self._describe_like_comment, + "DISLIKE_COMMENT": self._describe_dislike_comment, + "SEARCH_POSTS": self._describe_search, + "SEARCH_USER": self._describe_search_user, + "MUTE": self._describe_mute, + } + + describe_func = action_descriptions.get(self.action_type, self._describe_generic) + description = describe_func() + + # 直接返回 "agent名称: 活动描述" 格式,不添加模拟前缀 + return f"{self.agent_name}: {description}" + + def _describe_create_post(self) -> str: + content = self.action_args.get("content", "") + if content: + return f"发布了一条帖子:「{content}」" + return "发布了一条帖子" + + def _describe_like_post(self) -> str: + """点赞帖子 - 包含帖子原文和作者信息""" + post_content = self.action_args.get("post_content", "") + post_author = self.action_args.get("post_author_name", "") + + if post_content and post_author: + return f"点赞了{post_author}的帖子:「{post_content}」" + elif post_content: + return f"点赞了一条帖子:「{post_content}」" + elif post_author: + return f"点赞了{post_author}的一条帖子" + return "点赞了一条帖子" + + def _describe_dislike_post(self) -> str: + """踩帖子 - 包含帖子原文和作者信息""" + post_content = self.action_args.get("post_content", "") + post_author = self.action_args.get("post_author_name", "") + + if post_content and post_author: + return f"踩了{post_author}的帖子:「{post_content}」" + elif post_content: + return f"踩了一条帖子:「{post_content}」" + elif post_author: + return f"踩了{post_author}的一条帖子" + return "踩了一条帖子" + + def _describe_repost(self) -> str: + """转发帖子 - 包含原帖内容和作者信息""" + original_content = self.action_args.get("original_content", "") + original_author = self.action_args.get("original_author_name", "") + + if original_content and original_author: + return f"转发了{original_author}的帖子:「{original_content}」" + elif original_content: + return f"转发了一条帖子:「{original_content}」" + elif original_author: + return f"转发了{original_author}的一条帖子" + return "转发了一条帖子" + + def _describe_quote_post(self) -> str: + """引用帖子 - 包含原帖内容、作者信息和引用评论""" + original_content = self.action_args.get("original_content", "") + original_author = self.action_args.get("original_author_name", "") + quote_content = self.action_args.get("quote_content", "") or self.action_args.get("content", "") + + base = "" + if original_content and original_author: + base = f"引用了{original_author}的帖子「{original_content}」" + elif original_content: + base = f"引用了一条帖子「{original_content}」" + elif original_author: + base = f"引用了{original_author}的一条帖子" + else: + base = "引用了一条帖子" + + if quote_content: + base += f",并评论道:「{quote_content}」" + return base + + def _describe_follow(self) -> str: + """关注用户 - 包含被关注用户的名称""" + target_user_name = self.action_args.get("target_user_name", "") + + if target_user_name: + return f"关注了用户「{target_user_name}」" + return "关注了一个用户" + + def _describe_create_comment(self) -> str: + """发表评论 - 包含评论内容和所评论的帖子信息""" + content = self.action_args.get("content", "") + post_content = self.action_args.get("post_content", "") + post_author = self.action_args.get("post_author_name", "") + + if content: + if post_content and post_author: + return f"在{post_author}的帖子「{post_content}」下评论道:「{content}」" + elif post_content: + return f"在帖子「{post_content}」下评论道:「{content}」" + elif post_author: + return f"在{post_author}的帖子下评论道:「{content}」" + return f"评论道:「{content}」" + return "发表了评论" + + def _describe_like_comment(self) -> str: + """点赞评论 - 包含评论内容和作者信息""" + comment_content = self.action_args.get("comment_content", "") + comment_author = self.action_args.get("comment_author_name", "") + + if comment_content and comment_author: + return f"点赞了{comment_author}的评论:「{comment_content}」" + elif comment_content: + return f"点赞了一条评论:「{comment_content}」" + elif comment_author: + return f"点赞了{comment_author}的一条评论" + return "点赞了一条评论" + + def _describe_dislike_comment(self) -> str: + """踩评论 - 包含评论内容和作者信息""" + comment_content = self.action_args.get("comment_content", "") + comment_author = self.action_args.get("comment_author_name", "") + + if comment_content and comment_author: + return f"踩了{comment_author}的评论:「{comment_content}」" + elif comment_content: + return f"踩了一条评论:「{comment_content}」" + elif comment_author: + return f"踩了{comment_author}的一条评论" + return "踩了一条评论" + + def _describe_search(self) -> str: + """搜索帖子 - 包含搜索关键词""" + query = self.action_args.get("query", "") or self.action_args.get("keyword", "") + return f"搜索了「{query}」" if query else "进行了搜索" + + def _describe_search_user(self) -> str: + """搜索用户 - 包含搜索关键词""" + query = self.action_args.get("query", "") or self.action_args.get("username", "") + return f"搜索了用户「{query}」" if query else "搜索了用户" + + def _describe_mute(self) -> str: + """屏蔽用户 - 包含被屏蔽用户的名称""" + target_user_name = self.action_args.get("target_user_name", "") + + if target_user_name: + return f"屏蔽了用户「{target_user_name}」" + return "屏蔽了一个用户" + + def _describe_generic(self) -> str: + # 对于未知的动作类型,生成通用描述 + return f"执行了{self.action_type}操作" + + +class ZepGraphMemoryUpdater: + """ + Zep图谱记忆更新器 + + 监控模拟的actions日志文件,将新的agent活动实时更新到Zep图谱中。 + 按平台分组,每累积BATCH_SIZE条活动后批量发送到Zep。 + + 所有有意义的行为都会被更新到Zep,action_args中会包含完整的上下文信息: + - 点赞/踩的帖子原文 + - 转发/引用的帖子原文 + - 关注/屏蔽的用户名 + - 点赞/踩的评论原文 + """ + + # 批量发送大小(每个平台累积多少条后发送) + BATCH_SIZE = 5 + + # 平台名称映射(用于控制台显示) + PLATFORM_DISPLAY_NAMES = { + 'twitter': '世界1', + 'reddit': '世界2', + } + + # 发送间隔(秒),避免请求过快 + SEND_INTERVAL = 0.5 + + # 重试配置 + MAX_RETRIES = 3 + RETRY_DELAY = 2 # 秒 + + def __init__(self, graph_id: str, api_key: Optional[str] = None): + """ + 初始化更新器 + + Args: + graph_id: Zep图谱ID + api_key: Zep API Key(可选,默认从配置读取) + """ + self.graph_id = graph_id + self.api_key = api_key or Config.ZEP_API_KEY + + if not self.api_key: + raise ValueError("ZEP_API_KEY未配置") + + self.client = Zep(api_key=self.api_key) + + # 活动队列 + self._activity_queue: Queue = Queue() + + # 按平台分组的活动缓冲区(每个平台各自累积到BATCH_SIZE后批量发送) + self._platform_buffers: Dict[str, List[AgentActivity]] = { + 'twitter': [], + 'reddit': [], + } + self._buffer_lock = threading.Lock() + + # 控制标志 + self._running = False + self._worker_thread: Optional[threading.Thread] = None + + # 统计 + self._total_activities = 0 # 实际添加到队列的活动数 + self._total_sent = 0 # 成功发送到Zep的批次数 + self._total_items_sent = 0 # 成功发送到Zep的活动条数 + self._failed_count = 0 # 发送失败的批次数 + self._skipped_count = 0 # 被过滤跳过的活动数(DO_NOTHING) + + logger.info(f"ZepGraphMemoryUpdater 初始化完成: graph_id={graph_id}, batch_size={self.BATCH_SIZE}") + + def _get_platform_display_name(self, platform: str) -> str: + """获取平台的显示名称""" + return self.PLATFORM_DISPLAY_NAMES.get(platform.lower(), platform) + + def start(self): + """启动后台工作线程""" + if self._running: + return + + # Capture locale before spawning background thread + current_locale = get_locale() + + self._running = True + self._worker_thread = threading.Thread( + target=self._worker_loop, + args=(current_locale,), + daemon=True, + name=f"ZepMemoryUpdater-{self.graph_id[:8]}" + ) + self._worker_thread.start() + logger.info(f"ZepGraphMemoryUpdater 已启动: graph_id={self.graph_id}") + + def stop(self): + """停止后台工作线程""" + self._running = False + + # 发送剩余的活动 + self._flush_remaining() + + if self._worker_thread and self._worker_thread.is_alive(): + self._worker_thread.join(timeout=10) + + logger.info(f"ZepGraphMemoryUpdater 已停止: graph_id={self.graph_id}, " + f"total_activities={self._total_activities}, " + f"batches_sent={self._total_sent}, " + f"items_sent={self._total_items_sent}, " + f"failed={self._failed_count}, " + f"skipped={self._skipped_count}") + + def add_activity(self, activity: AgentActivity): + """ + 添加一个agent活动到队列 + + 所有有意义的行为都会被添加到队列,包括: + - CREATE_POST(发帖) + - CREATE_COMMENT(评论) + - QUOTE_POST(引用帖子) + - SEARCH_POSTS(搜索帖子) + - SEARCH_USER(搜索用户) + - LIKE_POST/DISLIKE_POST(点赞/踩帖子) + - REPOST(转发) + - FOLLOW(关注) + - MUTE(屏蔽) + - LIKE_COMMENT/DISLIKE_COMMENT(点赞/踩评论) + + action_args中会包含完整的上下文信息(如帖子原文、用户名等)。 + + Args: + activity: Agent活动记录 + """ + # 跳过DO_NOTHING类型的活动 + if activity.action_type == "DO_NOTHING": + self._skipped_count += 1 + return + + self._activity_queue.put(activity) + self._total_activities += 1 + logger.debug(f"添加活动到Zep队列: {activity.agent_name} - {activity.action_type}") + + def add_activity_from_dict(self, data: Dict[str, Any], platform: str): + """ + 从字典数据添加活动 + + Args: + data: 从actions.jsonl解析的字典数据 + platform: 平台名称 (twitter/reddit) + """ + # 跳过事件类型的条目 + if "event_type" in data: + return + + activity = AgentActivity( + platform=platform, + agent_id=data.get("agent_id", 0), + agent_name=data.get("agent_name", ""), + action_type=data.get("action_type", ""), + action_args=data.get("action_args", {}), + round_num=data.get("round", 0), + timestamp=data.get("timestamp", datetime.now().isoformat()), + ) + + self.add_activity(activity) + + def _worker_loop(self, locale: str = 'zh'): + """后台工作循环 - 按平台批量发送活动到Zep""" + set_locale(locale) + while self._running or not self._activity_queue.empty(): + try: + # 尝试从队列获取活动(超时1秒) + try: + activity = self._activity_queue.get(timeout=1) + + # 将活动添加到对应平台的缓冲区 + platform = activity.platform.lower() + with self._buffer_lock: + if platform not in self._platform_buffers: + self._platform_buffers[platform] = [] + self._platform_buffers[platform].append(activity) + + # 检查该平台是否达到批量大小 + if len(self._platform_buffers[platform]) >= self.BATCH_SIZE: + batch = self._platform_buffers[platform][:self.BATCH_SIZE] + self._platform_buffers[platform] = self._platform_buffers[platform][self.BATCH_SIZE:] + # 释放锁后再发送 + self._send_batch_activities(batch, platform) + # 发送间隔,避免请求过快 + time.sleep(self.SEND_INTERVAL) + + except Empty: + pass + + except Exception as e: + logger.error(f"工作循环异常: {e}") + time.sleep(1) + + def _send_batch_activities(self, activities: List[AgentActivity], platform: str): + """ + 批量发送活动到Zep图谱(合并为一条文本) + + Args: + activities: Agent活动列表 + platform: 平台名称 + """ + if not activities: + return + + # 将多条活动合并为一条文本,用换行分隔 + episode_texts = [activity.to_episode_text() for activity in activities] + combined_text = "\n".join(episode_texts) + + # 带重试的发送 + for attempt in range(self.MAX_RETRIES): + try: + self.client.graph.add( + graph_id=self.graph_id, + type="text", + data=combined_text + ) + + self._total_sent += 1 + self._total_items_sent += len(activities) + display_name = self._get_platform_display_name(platform) + logger.info(f"成功批量发送 {len(activities)} 条{display_name}活动到图谱 {self.graph_id}") + logger.debug(f"批量内容预览: {combined_text[:200]}...") + return + + except Exception as e: + if attempt < self.MAX_RETRIES - 1: + logger.warning(f"批量发送到Zep失败 (尝试 {attempt + 1}/{self.MAX_RETRIES}): {e}") + time.sleep(self.RETRY_DELAY * (attempt + 1)) + else: + logger.error(f"批量发送到Zep失败,已重试{self.MAX_RETRIES}次: {e}") + self._failed_count += 1 + + def _flush_remaining(self): + """发送队列和缓冲区中剩余的活动""" + # 首先处理队列中剩余的活动,添加到缓冲区 + while not self._activity_queue.empty(): + try: + activity = self._activity_queue.get_nowait() + platform = activity.platform.lower() + with self._buffer_lock: + if platform not in self._platform_buffers: + self._platform_buffers[platform] = [] + self._platform_buffers[platform].append(activity) + except Empty: + break + + # 然后发送各平台缓冲区中剩余的活动(即使不足BATCH_SIZE条) + with self._buffer_lock: + for platform, buffer in self._platform_buffers.items(): + if buffer: + display_name = self._get_platform_display_name(platform) + logger.info(f"发送{display_name}平台剩余的 {len(buffer)} 条活动") + self._send_batch_activities(buffer, platform) + # 清空所有缓冲区 + for platform in self._platform_buffers: + self._platform_buffers[platform] = [] + + def get_stats(self) -> Dict[str, Any]: + """获取统计信息""" + with self._buffer_lock: + buffer_sizes = {p: len(b) for p, b in self._platform_buffers.items()} + + return { + "graph_id": self.graph_id, + "batch_size": self.BATCH_SIZE, + "total_activities": self._total_activities, # 添加到队列的活动总数 + "batches_sent": self._total_sent, # 成功发送的批次数 + "items_sent": self._total_items_sent, # 成功发送的活动条数 + "failed_count": self._failed_count, # 发送失败的批次数 + "skipped_count": self._skipped_count, # 被过滤跳过的活动数(DO_NOTHING) + "queue_size": self._activity_queue.qsize(), + "buffer_sizes": buffer_sizes, # 各平台缓冲区大小 + "running": self._running, + } + + +class ZepGraphMemoryManager: + """ + 管理多个模拟的Zep图谱记忆更新器 + + 每个模拟可以有自己的更新器实例 + """ + + _updaters: Dict[str, ZepGraphMemoryUpdater] = {} + _lock = threading.Lock() + + @classmethod + def create_updater(cls, simulation_id: str, graph_id: str) -> ZepGraphMemoryUpdater: + """ + 为模拟创建图谱记忆更新器 + + Args: + simulation_id: 模拟ID + graph_id: Zep图谱ID + + Returns: + ZepGraphMemoryUpdater实例 + """ + with cls._lock: + # 如果已存在,先停止旧的 + if simulation_id in cls._updaters: + cls._updaters[simulation_id].stop() + + updater = ZepGraphMemoryUpdater(graph_id) + updater.start() + cls._updaters[simulation_id] = updater + + logger.info(f"创建图谱记忆更新器: simulation_id={simulation_id}, graph_id={graph_id}") + return updater + + @classmethod + def get_updater(cls, simulation_id: str) -> Optional[ZepGraphMemoryUpdater]: + """获取模拟的更新器""" + return cls._updaters.get(simulation_id) + + @classmethod + def stop_updater(cls, simulation_id: str): + """停止并移除模拟的更新器""" + with cls._lock: + if simulation_id in cls._updaters: + cls._updaters[simulation_id].stop() + del cls._updaters[simulation_id] + logger.info(f"已停止图谱记忆更新器: simulation_id={simulation_id}") + + # 防止 stop_all 重复调用的标志 + _stop_all_done = False + + @classmethod + def stop_all(cls): + """停止所有更新器""" + # 防止重复调用 + if cls._stop_all_done: + return + cls._stop_all_done = True + + with cls._lock: + if cls._updaters: + for simulation_id, updater in list(cls._updaters.items()): + try: + updater.stop() + except Exception as e: + logger.error(f"停止更新器失败: simulation_id={simulation_id}, error={e}") + cls._updaters.clear() + logger.info("已停止所有图谱记忆更新器") + + @classmethod + def get_all_stats(cls) -> Dict[str, Dict[str, Any]]: + """获取所有更新器的统计信息""" + return { + sim_id: updater.get_stats() + for sim_id, updater in cls._updaters.items() + } diff --git a/backend/app/services/zep_tools.py b/backend/app/services/zep_tools.py new file mode 100644 index 00000000..3bc8a57a --- /dev/null +++ b/backend/app/services/zep_tools.py @@ -0,0 +1,1736 @@ +""" +Zep检索工具服务 +封装图谱搜索、节点读取、边查询等工具,供Report Agent使用 + +核心检索工具(优化后): +1. InsightForge(深度洞察检索)- 最强大的混合检索,自动生成子问题并多维度检索 +2. PanoramaSearch(广度搜索)- 获取全貌,包括过期内容 +3. QuickSearch(简单搜索)- 快速检索 +""" + +import time +import json +from typing import Dict, Any, List, Optional +from dataclasses import dataclass, field + +from zep_cloud.client import Zep + +from ..config import Config +from ..utils.logger import get_logger +from ..utils.llm_client import LLMClient +from ..utils.locale import get_locale, t +from ..utils.zep_paging import fetch_all_nodes, fetch_all_edges + +logger = get_logger('mirofish.zep_tools') + + +@dataclass +class SearchResult: + """搜索结果""" + facts: List[str] + edges: List[Dict[str, Any]] + nodes: List[Dict[str, Any]] + query: str + total_count: int + + def to_dict(self) -> Dict[str, Any]: + return { + "facts": self.facts, + "edges": self.edges, + "nodes": self.nodes, + "query": self.query, + "total_count": self.total_count + } + + def to_text(self) -> str: + """转换为文本格式,供LLM理解""" + text_parts = [f"搜索查询: {self.query}", f"找到 {self.total_count} 条相关信息"] + + if self.facts: + text_parts.append("\n### 相关事实:") + for i, fact in enumerate(self.facts, 1): + text_parts.append(f"{i}. {fact}") + + return "\n".join(text_parts) + + +@dataclass +class NodeInfo: + """节点信息""" + uuid: str + name: str + labels: List[str] + summary: str + attributes: Dict[str, Any] + + def to_dict(self) -> Dict[str, Any]: + return { + "uuid": self.uuid, + "name": self.name, + "labels": self.labels, + "summary": self.summary, + "attributes": self.attributes + } + + def to_text(self) -> str: + """转换为文本格式""" + entity_type = next((l for l in self.labels if l not in ["Entity", "Node"]), "未知类型") + return f"实体: {self.name} (类型: {entity_type})\n摘要: {self.summary}" + + +@dataclass +class EdgeInfo: + """边信息""" + uuid: str + name: str + fact: str + source_node_uuid: str + target_node_uuid: str + source_node_name: Optional[str] = None + target_node_name: Optional[str] = None + # 时间信息 + created_at: Optional[str] = None + valid_at: Optional[str] = None + invalid_at: Optional[str] = None + expired_at: Optional[str] = None + + def to_dict(self) -> Dict[str, Any]: + return { + "uuid": self.uuid, + "name": self.name, + "fact": self.fact, + "source_node_uuid": self.source_node_uuid, + "target_node_uuid": self.target_node_uuid, + "source_node_name": self.source_node_name, + "target_node_name": self.target_node_name, + "created_at": self.created_at, + "valid_at": self.valid_at, + "invalid_at": self.invalid_at, + "expired_at": self.expired_at + } + + def to_text(self, include_temporal: bool = False) -> str: + """转换为文本格式""" + source = self.source_node_name or self.source_node_uuid[:8] + target = self.target_node_name or self.target_node_uuid[:8] + base_text = f"关系: {source} --[{self.name}]--> {target}\n事实: {self.fact}" + + if include_temporal: + valid_at = self.valid_at or "未知" + invalid_at = self.invalid_at or "至今" + base_text += f"\n时效: {valid_at} - {invalid_at}" + if self.expired_at: + base_text += f" (已过期: {self.expired_at})" + + return base_text + + @property + def is_expired(self) -> bool: + """是否已过期""" + return self.expired_at is not None + + @property + def is_invalid(self) -> bool: + """是否已失效""" + return self.invalid_at is not None + + +@dataclass +class InsightForgeResult: + """ + 深度洞察检索结果 (InsightForge) + 包含多个子问题的检索结果,以及综合分析 + """ + query: str + simulation_requirement: str + sub_queries: List[str] + + # 各维度检索结果 + semantic_facts: List[str] = field(default_factory=list) # 语义搜索结果 + entity_insights: List[Dict[str, Any]] = field(default_factory=list) # 实体洞察 + relationship_chains: List[str] = field(default_factory=list) # 关系链 + + # 统计信息 + total_facts: int = 0 + total_entities: int = 0 + total_relationships: int = 0 + + def to_dict(self) -> Dict[str, Any]: + return { + "query": self.query, + "simulation_requirement": self.simulation_requirement, + "sub_queries": self.sub_queries, + "semantic_facts": self.semantic_facts, + "entity_insights": self.entity_insights, + "relationship_chains": self.relationship_chains, + "total_facts": self.total_facts, + "total_entities": self.total_entities, + "total_relationships": self.total_relationships + } + + def to_text(self) -> str: + """转换为详细的文本格式,供LLM理解""" + text_parts = [ + f"## 未来预测深度分析", + f"分析问题: {self.query}", + f"预测场景: {self.simulation_requirement}", + f"\n### 预测数据统计", + f"- 相关预测事实: {self.total_facts}条", + f"- 涉及实体: {self.total_entities}个", + f"- 关系链: {self.total_relationships}条" + ] + + # 子问题 + if self.sub_queries: + text_parts.append(f"\n### 分析的子问题") + for i, sq in enumerate(self.sub_queries, 1): + text_parts.append(f"{i}. {sq}") + + # 语义搜索结果 + if self.semantic_facts: + text_parts.append(f"\n### 【关键事实】(请在报告中引用这些原文)") + for i, fact in enumerate(self.semantic_facts, 1): + text_parts.append(f"{i}. \"{fact}\"") + + # 实体洞察 + if self.entity_insights: + text_parts.append(f"\n### 【核心实体】") + for entity in self.entity_insights: + text_parts.append(f"- **{entity.get('name', '未知')}** ({entity.get('type', '实体')})") + if entity.get('summary'): + text_parts.append(f" 摘要: \"{entity.get('summary')}\"") + if entity.get('related_facts'): + text_parts.append(f" 相关事实: {len(entity.get('related_facts', []))}条") + + # 关系链 + if self.relationship_chains: + text_parts.append(f"\n### 【关系链】") + for chain in self.relationship_chains: + text_parts.append(f"- {chain}") + + return "\n".join(text_parts) + + +@dataclass +class PanoramaResult: + """ + 广度搜索结果 (Panorama) + 包含所有相关信息,包括过期内容 + """ + query: str + + # 全部节点 + all_nodes: List[NodeInfo] = field(default_factory=list) + # 全部边(包括过期的) + all_edges: List[EdgeInfo] = field(default_factory=list) + # 当前有效的事实 + active_facts: List[str] = field(default_factory=list) + # 已过期/失效的事实(历史记录) + historical_facts: List[str] = field(default_factory=list) + + # 统计 + total_nodes: int = 0 + total_edges: int = 0 + active_count: int = 0 + historical_count: int = 0 + + def to_dict(self) -> Dict[str, Any]: + return { + "query": self.query, + "all_nodes": [n.to_dict() for n in self.all_nodes], + "all_edges": [e.to_dict() for e in self.all_edges], + "active_facts": self.active_facts, + "historical_facts": self.historical_facts, + "total_nodes": self.total_nodes, + "total_edges": self.total_edges, + "active_count": self.active_count, + "historical_count": self.historical_count + } + + def to_text(self) -> str: + """转换为文本格式(完整版本,不截断)""" + text_parts = [ + f"## 广度搜索结果(未来全景视图)", + f"查询: {self.query}", + f"\n### 统计信息", + f"- 总节点数: {self.total_nodes}", + f"- 总边数: {self.total_edges}", + f"- 当前有效事实: {self.active_count}条", + f"- 历史/过期事实: {self.historical_count}条" + ] + + # 当前有效的事实(完整输出,不截断) + if self.active_facts: + text_parts.append(f"\n### 【当前有效事实】(模拟结果原文)") + for i, fact in enumerate(self.active_facts, 1): + text_parts.append(f"{i}. \"{fact}\"") + + # 历史/过期事实(完整输出,不截断) + if self.historical_facts: + text_parts.append(f"\n### 【历史/过期事实】(演变过程记录)") + for i, fact in enumerate(self.historical_facts, 1): + text_parts.append(f"{i}. \"{fact}\"") + + # 关键实体(完整输出,不截断) + if self.all_nodes: + text_parts.append(f"\n### 【涉及实体】") + for node in self.all_nodes: + entity_type = next((l for l in node.labels if l not in ["Entity", "Node"]), "实体") + text_parts.append(f"- **{node.name}** ({entity_type})") + + return "\n".join(text_parts) + + +@dataclass +class AgentInterview: + """单个Agent的采访结果""" + agent_name: str + agent_role: str # 角色类型(如:学生、教师、媒体等) + agent_bio: str # 简介 + question: str # 采访问题 + response: str # 采访回答 + key_quotes: List[str] = field(default_factory=list) # 关键引言 + + def to_dict(self) -> Dict[str, Any]: + return { + "agent_name": self.agent_name, + "agent_role": self.agent_role, + "agent_bio": self.agent_bio, + "question": self.question, + "response": self.response, + "key_quotes": self.key_quotes + } + + def to_text(self) -> str: + text = f"**{self.agent_name}** ({self.agent_role})\n" + # 显示完整的agent_bio,不截断 + text += f"_简介: {self.agent_bio}_\n\n" + text += f"**Q:** {self.question}\n\n" + text += f"**A:** {self.response}\n" + if self.key_quotes: + text += "\n**关键引言:**\n" + for quote in self.key_quotes: + # 清理各种引号 + clean_quote = quote.replace('\u201c', '').replace('\u201d', '').replace('"', '') + clean_quote = clean_quote.replace('\u300c', '').replace('\u300d', '') + clean_quote = clean_quote.strip() + # 去掉开头的标点 + while clean_quote and clean_quote[0] in ',,;;::、。!?\n\r\t ': + clean_quote = clean_quote[1:] + # 过滤包含问题编号的垃圾内容(问题1-9) + skip = False + for d in '123456789': + if f'\u95ee\u9898{d}' in clean_quote: + skip = True + break + if skip: + continue + # 截断过长内容(按句号截断,而非硬截断) + if len(clean_quote) > 150: + dot_pos = clean_quote.find('\u3002', 80) + if dot_pos > 0: + clean_quote = clean_quote[:dot_pos + 1] + else: + clean_quote = clean_quote[:147] + "..." + if clean_quote and len(clean_quote) >= 10: + text += f'> "{clean_quote}"\n' + return text + + +@dataclass +class InterviewResult: + """ + 采访结果 (Interview) + 包含多个模拟Agent的采访回答 + """ + interview_topic: str # 采访主题 + interview_questions: List[str] # 采访问题列表 + + # 采访选择的Agent + selected_agents: List[Dict[str, Any]] = field(default_factory=list) + # 各Agent的采访回答 + interviews: List[AgentInterview] = field(default_factory=list) + + # 选择Agent的理由 + selection_reasoning: str = "" + # 整合后的采访摘要 + summary: str = "" + + # 统计 + total_agents: int = 0 + interviewed_count: int = 0 + + def to_dict(self) -> Dict[str, Any]: + return { + "interview_topic": self.interview_topic, + "interview_questions": self.interview_questions, + "selected_agents": self.selected_agents, + "interviews": [i.to_dict() for i in self.interviews], + "selection_reasoning": self.selection_reasoning, + "summary": self.summary, + "total_agents": self.total_agents, + "interviewed_count": self.interviewed_count + } + + def to_text(self) -> str: + """转换为详细的文本格式,供LLM理解和报告引用""" + text_parts = [ + "## 深度采访报告", + f"**采访主题:** {self.interview_topic}", + f"**采访人数:** {self.interviewed_count} / {self.total_agents} 位模拟Agent", + "\n### 采访对象选择理由", + self.selection_reasoning or "(自动选择)", + "\n---", + "\n### 采访实录", + ] + + if self.interviews: + for i, interview in enumerate(self.interviews, 1): + text_parts.append(f"\n#### 采访 #{i}: {interview.agent_name}") + text_parts.append(interview.to_text()) + text_parts.append("\n---") + else: + text_parts.append("(无采访记录)\n\n---") + + text_parts.append("\n### 采访摘要与核心观点") + text_parts.append(self.summary or "(无摘要)") + + return "\n".join(text_parts) + + +class ZepToolsService: + """ + Zep检索工具服务 + + 【核心检索工具 - 优化后】 + 1. insight_forge - 深度洞察检索(最强大,自动生成子问题,多维度检索) + 2. panorama_search - 广度搜索(获取全貌,包括过期内容) + 3. quick_search - 简单搜索(快速检索) + 4. interview_agents - 深度采访(采访模拟Agent,获取多视角观点) + + 【基础工具】 + - search_graph - 图谱语义搜索 + - get_all_nodes - 获取图谱所有节点 + - get_all_edges - 获取图谱所有边(含时间信息) + - get_node_detail - 获取节点详细信息 + - get_node_edges - 获取节点相关的边 + - get_entities_by_type - 按类型获取实体 + - get_entity_summary - 获取实体的关系摘要 + """ + + # 重试配置 + MAX_RETRIES = 3 + RETRY_DELAY = 2.0 + + def __init__(self, api_key: Optional[str] = None, llm_client: Optional[LLMClient] = None): + self.api_key = api_key or Config.ZEP_API_KEY + if not self.api_key: + raise ValueError("ZEP_API_KEY 未配置") + + self.client = Zep(api_key=self.api_key) + # LLM客户端用于InsightForge生成子问题 + self._llm_client = llm_client + logger.info(t("console.zepToolsInitialized")) + + @property + def llm(self) -> LLMClient: + """延迟初始化LLM客户端""" + if self._llm_client is None: + self._llm_client = LLMClient() + return self._llm_client + + def _call_with_retry(self, func, operation_name: str, max_retries: int = None): + """带重试机制的API调用""" + max_retries = max_retries or self.MAX_RETRIES + last_exception = None + delay = self.RETRY_DELAY + + for attempt in range(max_retries): + try: + return func() + except Exception as e: + last_exception = e + if attempt < max_retries - 1: + logger.warning( + t("console.zepRetryAttempt", operation=operation_name, attempt=attempt + 1, error=str(e)[:100], delay=f"{delay:.1f}") + ) + time.sleep(delay) + delay *= 2 + else: + logger.error(t("console.zepAllRetriesFailed", operation=operation_name, retries=max_retries, error=str(e))) + + raise last_exception + + def search_graph( + self, + graph_id: str, + query: str, + limit: int = 10, + scope: str = "edges" + ) -> SearchResult: + """ + 图谱语义搜索 + + 使用混合搜索(语义+BM25)在图谱中搜索相关信息。 + 如果Zep Cloud的search API不可用,则降级为本地关键词匹配。 + + Args: + graph_id: 图谱ID (Standalone Graph) + query: 搜索查询 + limit: 返回结果数量 + scope: 搜索范围,"edges" 或 "nodes" + + Returns: + SearchResult: 搜索结果 + """ + logger.info(t("console.graphSearch", graphId=graph_id, query=query[:50])) + + # 尝试使用Zep Cloud Search API + try: + search_results = self._call_with_retry( + func=lambda: self.client.graph.search( + graph_id=graph_id, + query=query, + limit=limit, + scope=scope, + reranker="cross_encoder" + ), + operation_name=t("console.graphSearchOp", graphId=graph_id) + ) + + facts = [] + edges = [] + nodes = [] + + # 解析边搜索结果 + if hasattr(search_results, 'edges') and search_results.edges: + for edge in search_results.edges: + if hasattr(edge, 'fact') and edge.fact: + facts.append(edge.fact) + edges.append({ + "uuid": getattr(edge, 'uuid_', None) or getattr(edge, 'uuid', ''), + "name": getattr(edge, 'name', ''), + "fact": getattr(edge, 'fact', ''), + "source_node_uuid": getattr(edge, 'source_node_uuid', ''), + "target_node_uuid": getattr(edge, 'target_node_uuid', ''), + }) + + # 解析节点搜索结果 + if hasattr(search_results, 'nodes') and search_results.nodes: + for node in search_results.nodes: + nodes.append({ + "uuid": getattr(node, 'uuid_', None) or getattr(node, 'uuid', ''), + "name": getattr(node, 'name', ''), + "labels": getattr(node, 'labels', []), + "summary": getattr(node, 'summary', ''), + }) + # 节点摘要也算作事实 + if hasattr(node, 'summary') and node.summary: + facts.append(f"[{node.name}]: {node.summary}") + + logger.info(t("console.searchComplete", count=len(facts))) + + return SearchResult( + facts=facts, + edges=edges, + nodes=nodes, + query=query, + total_count=len(facts) + ) + + except Exception as e: + logger.warning(t("console.zepSearchApiFallback", error=str(e))) + # 降级:使用本地关键词匹配搜索 + return self._local_search(graph_id, query, limit, scope) + + def _local_search( + self, + graph_id: str, + query: str, + limit: int = 10, + scope: str = "edges" + ) -> SearchResult: + """ + 本地关键词匹配搜索(作为Zep Search API的降级方案) + + 获取所有边/节点,然后在本地进行关键词匹配 + + Args: + graph_id: 图谱ID + query: 搜索查询 + limit: 返回结果数量 + scope: 搜索范围 + + Returns: + SearchResult: 搜索结果 + """ + logger.info(t("console.usingLocalSearch", query=query[:30])) + + facts = [] + edges_result = [] + nodes_result = [] + + # 提取查询关键词(简单分词) + query_lower = query.lower() + keywords = [w.strip() for w in query_lower.replace(',', ' ').replace(',', ' ').split() if len(w.strip()) > 1] + + def match_score(text: str) -> int: + """计算文本与查询的匹配分数""" + if not text: + return 0 + text_lower = text.lower() + # 完全匹配查询 + if query_lower in text_lower: + return 100 + # 关键词匹配 + score = 0 + for keyword in keywords: + if keyword in text_lower: + score += 10 + return score + + try: + if scope in ["edges", "both"]: + # 获取所有边并匹配 + all_edges = self.get_all_edges(graph_id) + scored_edges = [] + for edge in all_edges: + score = match_score(edge.fact) + match_score(edge.name) + if score > 0: + scored_edges.append((score, edge)) + + # 按分数排序 + scored_edges.sort(key=lambda x: x[0], reverse=True) + + for score, edge in scored_edges[:limit]: + if edge.fact: + facts.append(edge.fact) + edges_result.append({ + "uuid": edge.uuid, + "name": edge.name, + "fact": edge.fact, + "source_node_uuid": edge.source_node_uuid, + "target_node_uuid": edge.target_node_uuid, + }) + + if scope in ["nodes", "both"]: + # 获取所有节点并匹配 + all_nodes = self.get_all_nodes(graph_id) + scored_nodes = [] + for node in all_nodes: + score = match_score(node.name) + match_score(node.summary) + if score > 0: + scored_nodes.append((score, node)) + + scored_nodes.sort(key=lambda x: x[0], reverse=True) + + for score, node in scored_nodes[:limit]: + nodes_result.append({ + "uuid": node.uuid, + "name": node.name, + "labels": node.labels, + "summary": node.summary, + }) + if node.summary: + facts.append(f"[{node.name}]: {node.summary}") + + logger.info(t("console.localSearchComplete", count=len(facts))) + + except Exception as e: + logger.error(t("console.localSearchFailed", error=str(e))) + + return SearchResult( + facts=facts, + edges=edges_result, + nodes=nodes_result, + query=query, + total_count=len(facts) + ) + + def get_all_nodes(self, graph_id: str) -> List[NodeInfo]: + """ + 获取图谱的所有节点(分页获取) + + Args: + graph_id: 图谱ID + + Returns: + 节点列表 + """ + logger.info(t("console.fetchingAllNodes", graphId=graph_id)) + + nodes = fetch_all_nodes(self.client, graph_id) + + result = [] + for node in nodes: + node_uuid = getattr(node, 'uuid_', None) or getattr(node, 'uuid', None) or "" + result.append(NodeInfo( + uuid=str(node_uuid) if node_uuid else "", + name=node.name or "", + labels=node.labels or [], + summary=node.summary or "", + attributes=node.attributes or {} + )) + + logger.info(t("console.fetchedNodes", count=len(result))) + return result + + def get_all_edges(self, graph_id: str, include_temporal: bool = True) -> List[EdgeInfo]: + """ + 获取图谱的所有边(分页获取,包含时间信息) + + Args: + graph_id: 图谱ID + include_temporal: 是否包含时间信息(默认True) + + Returns: + 边列表(包含created_at, valid_at, invalid_at, expired_at) + """ + logger.info(t("console.fetchingAllEdges", graphId=graph_id)) + + edges = fetch_all_edges(self.client, graph_id) + + result = [] + for edge in edges: + edge_uuid = getattr(edge, 'uuid_', None) or getattr(edge, 'uuid', None) or "" + edge_info = EdgeInfo( + uuid=str(edge_uuid) if edge_uuid else "", + name=edge.name or "", + fact=edge.fact or "", + source_node_uuid=edge.source_node_uuid or "", + target_node_uuid=edge.target_node_uuid or "" + ) + + # 添加时间信息 + if include_temporal: + edge_info.created_at = getattr(edge, 'created_at', None) + edge_info.valid_at = getattr(edge, 'valid_at', None) + edge_info.invalid_at = getattr(edge, 'invalid_at', None) + edge_info.expired_at = getattr(edge, 'expired_at', None) + + result.append(edge_info) + + logger.info(t("console.fetchedEdges", count=len(result))) + return result + + def get_node_detail(self, node_uuid: str) -> Optional[NodeInfo]: + """ + 获取单个节点的详细信息 + + Args: + node_uuid: 节点UUID + + Returns: + 节点信息或None + """ + logger.info(t("console.fetchingNodeDetail", uuid=node_uuid[:8])) + + try: + node = self._call_with_retry( + func=lambda: self.client.graph.node.get(uuid_=node_uuid), + operation_name=t("console.fetchNodeDetailOp", uuid=node_uuid[:8]) + ) + + if not node: + return None + + return NodeInfo( + uuid=getattr(node, 'uuid_', None) or getattr(node, 'uuid', ''), + name=node.name or "", + labels=node.labels or [], + summary=node.summary or "", + attributes=node.attributes or {} + ) + except Exception as e: + logger.error(t("console.fetchNodeDetailFailed", error=str(e))) + return None + + def get_node_edges(self, graph_id: str, node_uuid: str) -> List[EdgeInfo]: + """ + 获取节点相关的所有边 + + 通过获取图谱所有边,然后过滤出与指定节点相关的边 + + Args: + graph_id: 图谱ID + node_uuid: 节点UUID + + Returns: + 边列表 + """ + logger.info(t("console.fetchingNodeEdges", uuid=node_uuid[:8])) + + try: + # 获取图谱所有边,然后过滤 + all_edges = self.get_all_edges(graph_id) + + result = [] + for edge in all_edges: + # 检查边是否与指定节点相关(作为源或目标) + if edge.source_node_uuid == node_uuid or edge.target_node_uuid == node_uuid: + result.append(edge) + + logger.info(t("console.foundNodeEdges", count=len(result))) + return result + + except Exception as e: + logger.warning(t("console.fetchNodeEdgesFailed", error=str(e))) + return [] + + def get_entities_by_type( + self, + graph_id: str, + entity_type: str + ) -> List[NodeInfo]: + """ + 按类型获取实体 + + Args: + graph_id: 图谱ID + entity_type: 实体类型(如 Student, PublicFigure 等) + + Returns: + 符合类型的实体列表 + """ + logger.info(t("console.fetchingEntitiesByType", type=entity_type)) + + all_nodes = self.get_all_nodes(graph_id) + + filtered = [] + for node in all_nodes: + # 检查labels是否包含指定类型 + if entity_type in node.labels: + filtered.append(node) + + logger.info(t("console.foundEntitiesByType", count=len(filtered), type=entity_type)) + return filtered + + def get_entity_summary( + self, + graph_id: str, + entity_name: str + ) -> Dict[str, Any]: + """ + 获取指定实体的关系摘要 + + 搜索与该实体相关的所有信息,并生成摘要 + + Args: + graph_id: 图谱ID + entity_name: 实体名称 + + Returns: + 实体摘要信息 + """ + logger.info(t("console.fetchingEntitySummary", name=entity_name)) + + # 先搜索该实体相关的信息 + search_result = self.search_graph( + graph_id=graph_id, + query=entity_name, + limit=20 + ) + + # 尝试在所有节点中找到该实体 + all_nodes = self.get_all_nodes(graph_id) + entity_node = None + for node in all_nodes: + if node.name.lower() == entity_name.lower(): + entity_node = node + break + + related_edges = [] + if entity_node: + # 传入graph_id参数 + related_edges = self.get_node_edges(graph_id, entity_node.uuid) + + return { + "entity_name": entity_name, + "entity_info": entity_node.to_dict() if entity_node else None, + "related_facts": search_result.facts, + "related_edges": [e.to_dict() for e in related_edges], + "total_relations": len(related_edges) + } + + def get_graph_statistics(self, graph_id: str) -> Dict[str, Any]: + """ + 获取图谱的统计信息 + + Args: + graph_id: 图谱ID + + Returns: + 统计信息 + """ + logger.info(t("console.fetchingGraphStats", graphId=graph_id)) + + nodes = self.get_all_nodes(graph_id) + edges = self.get_all_edges(graph_id) + + # 统计实体类型分布 + entity_types = {} + for node in nodes: + for label in node.labels: + if label not in ["Entity", "Node"]: + entity_types[label] = entity_types.get(label, 0) + 1 + + # 统计关系类型分布 + relation_types = {} + for edge in edges: + relation_types[edge.name] = relation_types.get(edge.name, 0) + 1 + + return { + "graph_id": graph_id, + "total_nodes": len(nodes), + "total_edges": len(edges), + "entity_types": entity_types, + "relation_types": relation_types + } + + def get_simulation_context( + self, + graph_id: str, + simulation_requirement: str, + limit: int = 30 + ) -> Dict[str, Any]: + """ + 获取模拟相关的上下文信息 + + 综合搜索与模拟需求相关的所有信息 + + Args: + graph_id: 图谱ID + simulation_requirement: 模拟需求描述 + limit: 每类信息的数量限制 + + Returns: + 模拟上下文信息 + """ + logger.info(t("console.fetchingSimContext", requirement=simulation_requirement[:50])) + + # 搜索与模拟需求相关的信息 + search_result = self.search_graph( + graph_id=graph_id, + query=simulation_requirement, + limit=limit + ) + + # 获取图谱统计 + stats = self.get_graph_statistics(graph_id) + + # 获取所有实体节点 + all_nodes = self.get_all_nodes(graph_id) + + # 筛选有实际类型的实体(非纯Entity节点) + entities = [] + for node in all_nodes: + custom_labels = [l for l in node.labels if l not in ["Entity", "Node"]] + if custom_labels: + entities.append({ + "name": node.name, + "type": custom_labels[0], + "summary": node.summary + }) + + return { + "simulation_requirement": simulation_requirement, + "related_facts": search_result.facts, + "graph_statistics": stats, + "entities": entities[:limit], # 限制数量 + "total_entities": len(entities) + } + + # ========== 核心检索工具(优化后) ========== + + def insight_forge( + self, + graph_id: str, + query: str, + simulation_requirement: str, + report_context: str = "", + max_sub_queries: int = 5 + ) -> InsightForgeResult: + """ + 【InsightForge - 深度洞察检索】 + + 最强大的混合检索函数,自动分解问题并多维度检索: + 1. 使用LLM将问题分解为多个子问题 + 2. 对每个子问题进行语义搜索 + 3. 提取相关实体并获取其详细信息 + 4. 追踪关系链 + 5. 整合所有结果,生成深度洞察 + + Args: + graph_id: 图谱ID + query: 用户问题 + simulation_requirement: 模拟需求描述 + report_context: 报告上下文(可选,用于更精准的子问题生成) + max_sub_queries: 最大子问题数量 + + Returns: + InsightForgeResult: 深度洞察检索结果 + """ + logger.info(t("console.insightForgeStart", query=query[:50])) + + result = InsightForgeResult( + query=query, + simulation_requirement=simulation_requirement, + sub_queries=[] + ) + + # Step 1: 使用LLM生成子问题 + sub_queries = self._generate_sub_queries( + query=query, + simulation_requirement=simulation_requirement, + report_context=report_context, + max_queries=max_sub_queries + ) + result.sub_queries = sub_queries + logger.info(t("console.generatedSubQueries", count=len(sub_queries))) + + # Step 2: 对每个子问题进行语义搜索 + all_facts = [] + all_edges = [] + seen_facts = set() + + for sub_query in sub_queries: + search_result = self.search_graph( + graph_id=graph_id, + query=sub_query, + limit=15, + scope="edges" + ) + + for fact in search_result.facts: + if fact not in seen_facts: + all_facts.append(fact) + seen_facts.add(fact) + + all_edges.extend(search_result.edges) + + # 对原始问题也进行搜索 + main_search = self.search_graph( + graph_id=graph_id, + query=query, + limit=20, + scope="edges" + ) + for fact in main_search.facts: + if fact not in seen_facts: + all_facts.append(fact) + seen_facts.add(fact) + + result.semantic_facts = all_facts + result.total_facts = len(all_facts) + + # Step 3: 从边中提取相关实体UUID,只获取这些实体的信息(不获取全部节点) + entity_uuids = set() + for edge_data in all_edges: + if isinstance(edge_data, dict): + source_uuid = edge_data.get('source_node_uuid', '') + target_uuid = edge_data.get('target_node_uuid', '') + if source_uuid: + entity_uuids.add(source_uuid) + if target_uuid: + entity_uuids.add(target_uuid) + + # 获取所有相关实体的详情(不限制数量,完整输出) + entity_insights = [] + node_map = {} # 用于后续关系链构建 + + for uuid in list(entity_uuids): # 处理所有实体,不截断 + if not uuid: + continue + try: + # 单独获取每个相关节点的信息 + node = self.get_node_detail(uuid) + if node: + node_map[uuid] = node + entity_type = next((l for l in node.labels if l not in ["Entity", "Node"]), "实体") + + # 获取该实体相关的所有事实(不截断) + related_facts = [ + f for f in all_facts + if node.name.lower() in f.lower() + ] + + entity_insights.append({ + "uuid": node.uuid, + "name": node.name, + "type": entity_type, + "summary": node.summary, + "related_facts": related_facts # 完整输出,不截断 + }) + except Exception as e: + logger.debug(f"获取节点 {uuid} 失败: {e}") + continue + + result.entity_insights = entity_insights + result.total_entities = len(entity_insights) + + # Step 4: 构建所有关系链(不限制数量) + relationship_chains = [] + for edge_data in all_edges: # 处理所有边,不截断 + if isinstance(edge_data, dict): + source_uuid = edge_data.get('source_node_uuid', '') + target_uuid = edge_data.get('target_node_uuid', '') + relation_name = edge_data.get('name', '') + + source_name = node_map.get(source_uuid, NodeInfo('', '', [], '', {})).name or source_uuid[:8] + target_name = node_map.get(target_uuid, NodeInfo('', '', [], '', {})).name or target_uuid[:8] + + chain = f"{source_name} --[{relation_name}]--> {target_name}" + if chain not in relationship_chains: + relationship_chains.append(chain) + + result.relationship_chains = relationship_chains + result.total_relationships = len(relationship_chains) + + logger.info(t("console.insightForgeComplete", facts=result.total_facts, entities=result.total_entities, relationships=result.total_relationships)) + return result + + def _generate_sub_queries( + self, + query: str, + simulation_requirement: str, + report_context: str = "", + max_queries: int = 5 + ) -> List[str]: + """ + 使用LLM生成子问题 + + 将复杂问题分解为多个可以独立检索的子问题 + """ + system_prompt = """你是一个专业的问题分析专家。你的任务是将一个复杂问题分解为多个可以在模拟世界中独立观察的子问题。 + +要求: +1. 每个子问题应该足够具体,可以在模拟世界中找到相关的Agent行为或事件 +2. 子问题应该覆盖原问题的不同维度(如:谁、什么、为什么、怎么样、何时、何地) +3. 子问题应该与模拟场景相关 +4. 返回JSON格式:{"sub_queries": ["子问题1", "子问题2", ...]}""" + + user_prompt = f"""模拟需求背景: +{simulation_requirement} + +{f"报告上下文:{report_context[:500]}" if report_context else ""} + +请将以下问题分解为{max_queries}个子问题: +{query} + +返回JSON格式的子问题列表。""" + + try: + response = self.llm.chat_json( + messages=[ + {"role": "system", "content": system_prompt}, + {"role": "user", "content": user_prompt} + ], + temperature=0.3 + ) + + sub_queries = response.get("sub_queries", []) + # 确保是字符串列表 + return [str(sq) for sq in sub_queries[:max_queries]] + + except Exception as e: + logger.warning(t("console.generateSubQueriesFailed", error=str(e))) + # 降级:返回基于原问题的变体 + return [ + query, + f"{query} 的主要参与者", + f"{query} 的原因和影响", + f"{query} 的发展过程" + ][:max_queries] + + def panorama_search( + self, + graph_id: str, + query: str, + include_expired: bool = True, + limit: int = 50 + ) -> PanoramaResult: + """ + 【PanoramaSearch - 广度搜索】 + + 获取全貌视图,包括所有相关内容和历史/过期信息: + 1. 获取所有相关节点 + 2. 获取所有边(包括已过期/失效的) + 3. 分类整理当前有效和历史信息 + + 这个工具适用于需要了解事件全貌、追踪演变过程的场景。 + + Args: + graph_id: 图谱ID + query: 搜索查询(用于相关性排序) + include_expired: 是否包含过期内容(默认True) + limit: 返回结果数量限制 + + Returns: + PanoramaResult: 广度搜索结果 + """ + logger.info(t("console.panoramaSearchStart", query=query[:50])) + + result = PanoramaResult(query=query) + + # 获取所有节点 + all_nodes = self.get_all_nodes(graph_id) + node_map = {n.uuid: n for n in all_nodes} + result.all_nodes = all_nodes + result.total_nodes = len(all_nodes) + + # 获取所有边(包含时间信息) + all_edges = self.get_all_edges(graph_id, include_temporal=True) + result.all_edges = all_edges + result.total_edges = len(all_edges) + + # 分类事实 + active_facts = [] + historical_facts = [] + + for edge in all_edges: + if not edge.fact: + continue + + # 为事实添加实体名称 + source_name = node_map.get(edge.source_node_uuid, NodeInfo('', '', [], '', {})).name or edge.source_node_uuid[:8] + target_name = node_map.get(edge.target_node_uuid, NodeInfo('', '', [], '', {})).name or edge.target_node_uuid[:8] + + # 判断是否过期/失效 + is_historical = edge.is_expired or edge.is_invalid + + if is_historical: + # 历史/过期事实,添加时间标记 + valid_at = edge.valid_at or "未知" + invalid_at = edge.invalid_at or edge.expired_at or "未知" + fact_with_time = f"[{valid_at} - {invalid_at}] {edge.fact}" + historical_facts.append(fact_with_time) + else: + # 当前有效事实 + active_facts.append(edge.fact) + + # 基于查询进行相关性排序 + query_lower = query.lower() + keywords = [w.strip() for w in query_lower.replace(',', ' ').replace(',', ' ').split() if len(w.strip()) > 1] + + def relevance_score(fact: str) -> int: + fact_lower = fact.lower() + score = 0 + if query_lower in fact_lower: + score += 100 + for kw in keywords: + if kw in fact_lower: + score += 10 + return score + + # 排序并限制数量 + active_facts.sort(key=relevance_score, reverse=True) + historical_facts.sort(key=relevance_score, reverse=True) + + result.active_facts = active_facts[:limit] + result.historical_facts = historical_facts[:limit] if include_expired else [] + result.active_count = len(active_facts) + result.historical_count = len(historical_facts) + + logger.info(t("console.panoramaSearchComplete", active=result.active_count, historical=result.historical_count)) + return result + + def quick_search( + self, + graph_id: str, + query: str, + limit: int = 10 + ) -> SearchResult: + """ + 【QuickSearch - 简单搜索】 + + 快速、轻量级的检索工具: + 1. 直接调用Zep语义搜索 + 2. 返回最相关的结果 + 3. 适用于简单、直接的检索需求 + + Args: + graph_id: 图谱ID + query: 搜索查询 + limit: 返回结果数量 + + Returns: + SearchResult: 搜索结果 + """ + logger.info(t("console.quickSearchStart", query=query[:50])) + + # 直接调用现有的search_graph方法 + result = self.search_graph( + graph_id=graph_id, + query=query, + limit=limit, + scope="edges" + ) + + logger.info(t("console.quickSearchComplete", count=result.total_count)) + return result + + def interview_agents( + self, + simulation_id: str, + interview_requirement: str, + simulation_requirement: str = "", + max_agents: int = 5, + custom_questions: List[str] = None + ) -> InterviewResult: + """ + 【InterviewAgents - 深度采访】 + + 调用真实的OASIS采访API,采访模拟中正在运行的Agent: + 1. 自动读取人设文件,了解所有模拟Agent + 2. 使用LLM分析采访需求,智能选择最相关的Agent + 3. 使用LLM生成采访问题 + 4. 调用 /api/simulation/interview/batch 接口进行真实采访(双平台同时采访) + 5. 整合所有采访结果,生成采访报告 + + 【重要】此功能需要模拟环境处于运行状态(OASIS环境未关闭) + + 【使用场景】 + - 需要从不同角色视角了解事件看法 + - 需要收集多方意见和观点 + - 需要获取模拟Agent的真实回答(非LLM模拟) + + Args: + simulation_id: 模拟ID(用于定位人设文件和调用采访API) + interview_requirement: 采访需求描述(非结构化,如"了解学生对事件的看法") + simulation_requirement: 模拟需求背景(可选) + max_agents: 最多采访的Agent数量 + custom_questions: 自定义采访问题(可选,若不提供则自动生成) + + Returns: + InterviewResult: 采访结果 + """ + from .simulation_runner import SimulationRunner + + logger.info(t("console.interviewAgentsStart", requirement=interview_requirement[:50])) + + result = InterviewResult( + interview_topic=interview_requirement, + interview_questions=custom_questions or [] + ) + + # Step 1: 读取人设文件 + profiles = self._load_agent_profiles(simulation_id) + + if not profiles: + logger.warning(t("console.profilesNotFound", simId=simulation_id)) + result.summary = "未找到可采访的Agent人设文件" + return result + + result.total_agents = len(profiles) + logger.info(t("console.loadedProfiles", count=len(profiles))) + + # Step 2: 使用LLM选择要采访的Agent(返回agent_id列表) + selected_agents, selected_indices, selection_reasoning = self._select_agents_for_interview( + profiles=profiles, + interview_requirement=interview_requirement, + simulation_requirement=simulation_requirement, + max_agents=max_agents + ) + + result.selected_agents = selected_agents + result.selection_reasoning = selection_reasoning + logger.info(t("console.selectedAgentsForInterview", count=len(selected_agents), indices=selected_indices)) + + # Step 3: 生成采访问题(如果没有提供) + if not result.interview_questions: + result.interview_questions = self._generate_interview_questions( + interview_requirement=interview_requirement, + simulation_requirement=simulation_requirement, + selected_agents=selected_agents + ) + logger.info(t("console.generatedInterviewQuestions", count=len(result.interview_questions))) + + # 将问题合并为一个采访prompt + combined_prompt = "\n".join([f"{i+1}. {q}" for i, q in enumerate(result.interview_questions)]) + + # 添加优化前缀,约束Agent回复格式 + INTERVIEW_PROMPT_PREFIX = ( + "你正在接受一次采访。请结合你的人设、所有的过往记忆与行动," + "以纯文本方式直接回答以下问题。\n" + "回复要求:\n" + "1. 直接用自然语言回答,不要调用任何工具\n" + "2. 不要返回JSON格式或工具调用格式\n" + "3. 不要使用Markdown标题(如#、##、###)\n" + "4. 按问题编号逐一回答,每个回答以「问题X:」开头(X为问题编号)\n" + "5. 每个问题的回答之间用空行分隔\n" + "6. 回答要有实质内容,每个问题至少回答2-3句话\n\n" + ) + optimized_prompt = f"{INTERVIEW_PROMPT_PREFIX}{combined_prompt}" + + # Step 4: 调用真实的采访API(不指定platform,默认双平台同时采访) + try: + # 构建批量采访列表(不指定platform,双平台采访) + interviews_request = [] + for agent_idx in selected_indices: + interviews_request.append({ + "agent_id": agent_idx, + "prompt": optimized_prompt # 使用优化后的prompt + # 不指定platform,API会在twitter和reddit两个平台都采访 + }) + + logger.info(t("console.callingBatchInterviewApi", count=len(interviews_request))) + + # 调用 SimulationRunner 的批量采访方法(不传platform,双平台采访) + api_result = SimulationRunner.interview_agents_batch( + simulation_id=simulation_id, + interviews=interviews_request, + platform=None, # 不指定platform,双平台采访 + timeout=180.0 # 双平台需要更长超时 + ) + + logger.info(t("console.interviewApiReturned", count=api_result.get('interviews_count', 0), success=api_result.get('success'))) + + # 检查API调用是否成功 + if not api_result.get("success", False): + error_msg = api_result.get("error", "未知错误") + logger.warning(t("console.interviewApiReturnedFailure", error=error_msg)) + result.summary = f"采访API调用失败:{error_msg}。请检查OASIS模拟环境状态。" + return result + + # Step 5: 解析API返回结果,构建AgentInterview对象 + # 双平台模式返回格式: {"twitter_0": {...}, "reddit_0": {...}, "twitter_1": {...}, ...} + api_data = api_result.get("result", {}) + results_dict = api_data.get("results", {}) if isinstance(api_data, dict) else {} + + for i, agent_idx in enumerate(selected_indices): + agent = selected_agents[i] + agent_name = agent.get("realname", agent.get("username", f"Agent_{agent_idx}")) + agent_role = agent.get("profession", "未知") + agent_bio = agent.get("bio", "") + + # 获取该Agent在两个平台的采访结果 + twitter_result = results_dict.get(f"twitter_{agent_idx}", {}) + reddit_result = results_dict.get(f"reddit_{agent_idx}", {}) + + twitter_response = twitter_result.get("response", "") + reddit_response = reddit_result.get("response", "") + + # 清理可能的工具调用 JSON 包裹 + twitter_response = self._clean_tool_call_response(twitter_response) + reddit_response = self._clean_tool_call_response(reddit_response) + + # 始终输出双平台标记 + twitter_text = twitter_response if twitter_response else "(该平台未获得回复)" + reddit_text = reddit_response if reddit_response else "(该平台未获得回复)" + response_text = f"【Twitter平台回答】\n{twitter_text}\n\n【Reddit平台回答】\n{reddit_text}" + + # 提取关键引言(从两个平台的回答中) + import re + combined_responses = f"{twitter_response} {reddit_response}" + + # 清理响应文本:去掉标记、编号、Markdown 等干扰 + clean_text = re.sub(r'#{1,6}\s+', '', combined_responses) + clean_text = re.sub(r'\{[^}]*tool_name[^}]*\}', '', clean_text) + clean_text = re.sub(r'[*_`|>~\-]{2,}', '', clean_text) + clean_text = re.sub(r'问题\d+[::]\s*', '', clean_text) + clean_text = re.sub(r'【[^】]+】', '', clean_text) + + # 策略1(主): 提取完整的有实质内容的句子 + sentences = re.split(r'[。!?]', clean_text) + meaningful = [ + s.strip() for s in sentences + if 20 <= len(s.strip()) <= 150 + and not re.match(r'^[\s\W,,;;::、]+', s.strip()) + and not s.strip().startswith(('{', '问题')) + ] + meaningful.sort(key=len, reverse=True) + key_quotes = [s + "。" for s in meaningful[:3]] + + # 策略2(补充): 正确配对的中文引号「」内长文本 + if not key_quotes: + paired = re.findall(r'\u201c([^\u201c\u201d]{15,100})\u201d', clean_text) + paired += re.findall(r'\u300c([^\u300c\u300d]{15,100})\u300d', clean_text) + key_quotes = [q for q in paired if not re.match(r'^[,,;;::、]', q)][:3] + + interview = AgentInterview( + agent_name=agent_name, + agent_role=agent_role, + agent_bio=agent_bio[:1000], # 扩大bio长度限制 + question=combined_prompt, + response=response_text, + key_quotes=key_quotes[:5] + ) + result.interviews.append(interview) + + result.interviewed_count = len(result.interviews) + + except ValueError as e: + # 模拟环境未运行 + logger.warning(t("console.interviewApiCallFailed", error=e)) + result.summary = f"采访失败:{str(e)}。模拟环境可能已关闭,请确保OASIS环境正在运行。" + return result + except Exception as e: + logger.error(t("console.interviewApiCallException", error=e)) + import traceback + logger.error(traceback.format_exc()) + result.summary = f"采访过程发生错误:{str(e)}" + return result + + # Step 6: 生成采访摘要 + if result.interviews: + result.summary = self._generate_interview_summary( + interviews=result.interviews, + interview_requirement=interview_requirement + ) + + logger.info(t("console.interviewAgentsComplete", count=result.interviewed_count)) + return result + + @staticmethod + def _clean_tool_call_response(response: str) -> str: + """清理 Agent 回复中的 JSON 工具调用包裹,提取实际内容""" + if not response or not response.strip().startswith('{'): + return response + text = response.strip() + if 'tool_name' not in text[:80]: + return response + import re as _re + try: + data = json.loads(text) + if isinstance(data, dict) and 'arguments' in data: + for key in ('content', 'text', 'body', 'message', 'reply'): + if key in data['arguments']: + return str(data['arguments'][key]) + except (json.JSONDecodeError, KeyError, TypeError): + match = _re.search(r'"content"\s*:\s*"((?:[^"\\]|\\.)*)"', text) + if match: + return match.group(1).replace('\\n', '\n').replace('\\"', '"') + return response + + def _load_agent_profiles(self, simulation_id: str) -> List[Dict[str, Any]]: + """加载模拟的Agent人设文件""" + import os + import csv + + # 构建人设文件路径 + sim_dir = os.path.join( + os.path.dirname(__file__), + f'../../uploads/simulations/{simulation_id}' + ) + + profiles = [] + + # 优先尝试读取Reddit JSON格式 + reddit_profile_path = os.path.join(sim_dir, "reddit_profiles.json") + if os.path.exists(reddit_profile_path): + try: + with open(reddit_profile_path, 'r', encoding='utf-8') as f: + profiles = json.load(f) + logger.info(t("console.loadedRedditProfiles", count=len(profiles))) + return profiles + except Exception as e: + logger.warning(t("console.readRedditProfilesFailed", error=e)) + + # 尝试读取Twitter CSV格式 + twitter_profile_path = os.path.join(sim_dir, "twitter_profiles.csv") + if os.path.exists(twitter_profile_path): + try: + with open(twitter_profile_path, 'r', encoding='utf-8') as f: + reader = csv.DictReader(f) + for row in reader: + # CSV格式转换为统一格式 + profiles.append({ + "realname": row.get("name", ""), + "username": row.get("username", ""), + "bio": row.get("description", ""), + "persona": row.get("user_char", ""), + "profession": "未知" + }) + logger.info(t("console.loadedTwitterProfiles", count=len(profiles))) + return profiles + except Exception as e: + logger.warning(t("console.readTwitterProfilesFailed", error=e)) + + return profiles + + def _select_agents_for_interview( + self, + profiles: List[Dict[str, Any]], + interview_requirement: str, + simulation_requirement: str, + max_agents: int + ) -> tuple: + """ + 使用LLM选择要采访的Agent + + Returns: + tuple: (selected_agents, selected_indices, reasoning) + - selected_agents: 选中Agent的完整信息列表 + - selected_indices: 选中Agent的索引列表(用于API调用) + - reasoning: 选择理由 + """ + + # 构建Agent摘要列表 + agent_summaries = [] + for i, profile in enumerate(profiles): + summary = { + "index": i, + "name": profile.get("realname", profile.get("username", f"Agent_{i}")), + "profession": profile.get("profession", "未知"), + "bio": profile.get("bio", "")[:200], + "interested_topics": profile.get("interested_topics", []) + } + agent_summaries.append(summary) + + system_prompt = """你是一个专业的采访策划专家。你的任务是根据采访需求,从模拟Agent列表中选择最适合采访的对象。 + +选择标准: +1. Agent的身份/职业与采访主题相关 +2. Agent可能持有独特或有价值的观点 +3. 选择多样化的视角(如:支持方、反对方、中立方、专业人士等) +4. 优先选择与事件直接相关的角色 + +返回JSON格式: +{ + "selected_indices": [选中Agent的索引列表], + "reasoning": "选择理由说明" +}""" + + user_prompt = f"""采访需求: +{interview_requirement} + +模拟背景: +{simulation_requirement if simulation_requirement else "未提供"} + +可选择的Agent列表(共{len(agent_summaries)}个): +{json.dumps(agent_summaries, ensure_ascii=False, indent=2)} + +请选择最多{max_agents}个最适合采访的Agent,并说明选择理由。""" + + try: + response = self.llm.chat_json( + messages=[ + {"role": "system", "content": system_prompt}, + {"role": "user", "content": user_prompt} + ], + temperature=0.3 + ) + + selected_indices = response.get("selected_indices", [])[:max_agents] + reasoning = response.get("reasoning", "基于相关性自动选择") + + # 获取选中的Agent完整信息 + selected_agents = [] + valid_indices = [] + for idx in selected_indices: + if 0 <= idx < len(profiles): + selected_agents.append(profiles[idx]) + valid_indices.append(idx) + + return selected_agents, valid_indices, reasoning + + except Exception as e: + logger.warning(t("console.llmSelectAgentFailed", error=e)) + # 降级:选择前N个 + selected = profiles[:max_agents] + indices = list(range(min(max_agents, len(profiles)))) + return selected, indices, "使用默认选择策略" + + def _generate_interview_questions( + self, + interview_requirement: str, + simulation_requirement: str, + selected_agents: List[Dict[str, Any]] + ) -> List[str]: + """使用LLM生成采访问题""" + + agent_roles = [a.get("profession", "未知") for a in selected_agents] + + system_prompt = """你是一个专业的记者/采访者。根据采访需求,生成3-5个深度采访问题。 + +问题要求: +1. 开放性问题,鼓励详细回答 +2. 针对不同角色可能有不同答案 +3. 涵盖事实、观点、感受等多个维度 +4. 语言自然,像真实采访一样 +5. 每个问题控制在50字以内,简洁明了 +6. 直接提问,不要包含背景说明或前缀 + +返回JSON格式:{"questions": ["问题1", "问题2", ...]}""" + + user_prompt = f"""采访需求:{interview_requirement} + +模拟背景:{simulation_requirement if simulation_requirement else "未提供"} + +采访对象角色:{', '.join(agent_roles)} + +请生成3-5个采访问题。""" + + try: + response = self.llm.chat_json( + messages=[ + {"role": "system", "content": system_prompt}, + {"role": "user", "content": user_prompt} + ], + temperature=0.5 + ) + + return response.get("questions", [f"关于{interview_requirement},您有什么看法?"]) + + except Exception as e: + logger.warning(t("console.generateInterviewQuestionsFailed", error=e)) + return [ + f"关于{interview_requirement},您的观点是什么?", + "这件事对您或您所代表的群体有什么影响?", + "您认为应该如何解决或改进这个问题?" + ] + + def _generate_interview_summary( + self, + interviews: List[AgentInterview], + interview_requirement: str + ) -> str: + """生成采访摘要""" + + if not interviews: + return "未完成任何采访" + + # 收集所有采访内容 + interview_texts = [] + for interview in interviews: + interview_texts.append(f"【{interview.agent_name}({interview.agent_role})】\n{interview.response[:500]}") + + quote_instruction = "引用受访者原话时使用中文引号「」" if get_locale() == 'zh' else 'Use quotation marks "" when quoting interviewees' + system_prompt = f"""你是一个专业的新闻编辑。请根据多位受访者的回答,生成一份采访摘要。 + +摘要要求: +1. 提炼各方主要观点 +2. 指出观点的共识和分歧 +3. 突出有价值的引言 +4. 客观中立,不偏袒任何一方 +5. 控制在1000字内 + +格式约束(必须遵守): +- 使用纯文本段落,用空行分隔不同部分 +- 不要使用Markdown标题(如#、##、###) +- 不要使用分割线(如---、***) +- {quote_instruction} +- 可以使用**加粗**标记关键词,但不要使用其他Markdown语法""" + + user_prompt = f"""采访主题:{interview_requirement} + +采访内容: +{"".join(interview_texts)} + +请生成采访摘要。""" + + try: + summary = self.llm.chat( + messages=[ + {"role": "system", "content": system_prompt}, + {"role": "user", "content": user_prompt} + ], + temperature=0.3, + max_tokens=800 + ) + return summary + + except Exception as e: + logger.warning(t("console.generateInterviewSummaryFailed", error=e)) + # 降级:简单拼接 + return f"共采访了{len(interviews)}位受访者,包括:" + "、".join([i.agent_name for i in interviews]) diff --git a/backend/app/utils/__init__.py b/backend/app/utils/__init__.py new file mode 100644 index 00000000..e70161ac --- /dev/null +++ b/backend/app/utils/__init__.py @@ -0,0 +1,10 @@ +""" +工具模块 +""" + +from .file_parser import FileParser +from .llm_client import LLMClient +from .locale import t, get_locale, set_locale, get_language_instruction + +__all__ = ['FileParser', 'LLMClient', 't', 'get_locale', 'set_locale', 'get_language_instruction'] + diff --git a/backend/app/utils/file_parser.py b/backend/app/utils/file_parser.py new file mode 100644 index 00000000..5e540434 --- /dev/null +++ b/backend/app/utils/file_parser.py @@ -0,0 +1,203 @@ +""" +文件解析工具 +支持PDF、Markdown、TXT文件的文本提取 +""" + +import os +from pathlib import Path +from typing import List, Optional + + +def _read_text_with_fallback(file_path: str) -> str: + """ + 读取文本文件,UTF-8失败时自动探测编码。 + + 采用多级回退策略: + 1. 首先尝试 UTF-8 解码 + 2. 使用 charset_normalizer 检测编码 + 3. 回退到 chardet 检测编码 + 4. 最终使用 UTF-8 + errors='replace' 兜底 + + Args: + file_path: 文件路径 + + Returns: + 解码后的文本内容 + """ + data = Path(file_path).read_bytes() + + # 首先尝试 UTF-8 + try: + return data.decode('utf-8') + except UnicodeDecodeError: + pass + + # 尝试使用 charset_normalizer 检测编码 + encoding = None + try: + from charset_normalizer import from_bytes + best = from_bytes(data).best() + if best and best.encoding: + encoding = best.encoding + except Exception: + pass + + # 回退到 chardet + if not encoding: + try: + import chardet + result = chardet.detect(data) + encoding = result.get('encoding') if result else None + except Exception: + pass + + # 最终兜底:使用 UTF-8 + replace + if not encoding: + encoding = 'utf-8' + + return data.decode(encoding, errors='replace') + + +class FileParser: + """文件解析器""" + + SUPPORTED_EXTENSIONS = {'.pdf', '.md', '.markdown', '.txt'} + + @classmethod + def is_supported(cls, file_path: str) -> bool: + """ + 检查文件是否为支持的格式 + + Args: + file_path: 文件路径 + + Returns: + 如果文件格式受支持则返回 True + """ + suffix = Path(file_path).suffix.lower() + return suffix in cls.SUPPORTED_EXTENSIONS + + @classmethod + def extract_text(cls, file_path: str) -> str: + """ + 从文件中提取文本 + + Args: + file_path: 文件路径 + + Returns: + 提取的文本内容 + """ + path = Path(file_path) + + if not path.exists(): + raise FileNotFoundError(f"文件不存在: {file_path}") + + suffix = path.suffix.lower() + + if suffix not in cls.SUPPORTED_EXTENSIONS: + raise ValueError(f"不支持的文件格式: {suffix}") + + if suffix == '.pdf': + return cls._extract_from_pdf(file_path) + elif suffix in {'.md', '.markdown'}: + return cls._extract_from_md(file_path) + elif suffix == '.txt': + return cls._extract_from_txt(file_path) + + raise ValueError(f"无法处理的文件格式: {suffix}") + + @staticmethod + def _extract_from_pdf(file_path: str) -> str: + """从PDF提取文本""" + try: + import fitz # PyMuPDF + except ImportError: + raise ImportError("需要安装PyMuPDF: pip install PyMuPDF") + + text_parts = [] + with fitz.open(file_path) as doc: + for page in doc: + text = page.get_text() + if text.strip(): + text_parts.append(text) + + return "\n\n".join(text_parts) + + @staticmethod + def _extract_from_md(file_path: str) -> str: + """从Markdown提取文本,支持自动编码检测""" + return _read_text_with_fallback(file_path) + + @staticmethod + def _extract_from_txt(file_path: str) -> str: + """从TXT提取文本,支持自动编码检测""" + return _read_text_with_fallback(file_path) + + @classmethod + def extract_from_multiple(cls, file_paths: List[str]) -> str: + """ + 从多个文件提取文本并合并 + + Args: + file_paths: 文件路径列表 + + Returns: + 合并后的文本 + """ + all_texts = [] + + for i, file_path in enumerate(file_paths, 1): + try: + text = cls.extract_text(file_path) + filename = Path(file_path).name + all_texts.append(f"=== 文档 {i}: {filename} ===\n{text}") + except Exception as e: + all_texts.append(f"=== 文档 {i}: {file_path} (提取失败: {str(e)}) ===") + + return "\n\n".join(all_texts) + + +def split_text_into_chunks( + text: str, + chunk_size: int = 500, + overlap: int = 50 +) -> List[str]: + """ + 将文本分割成小块 + + Args: + text: 原始文本 + chunk_size: 每块的字符数 + overlap: 重叠字符数 + + Returns: + 文本块列表 + """ + if len(text) <= chunk_size: + return [text] if text.strip() else [] + + chunks = [] + start = 0 + + while start < len(text): + end = start + chunk_size + + # 尝试在句子边界处分割 + if end < len(text): + # 查找最近的句子结束符 + for sep in ['。', '!', '?', '.\n', '!\n', '?\n', '\n\n', '. ', '! ', '? ']: + last_sep = text[start:end].rfind(sep) + if last_sep != -1 and last_sep > chunk_size * 0.3: + end = start + last_sep + len(sep) + break + + chunk = text[start:end].strip() + if chunk: + chunks.append(chunk) + + # 下一个块从重叠位置开始 + start = end - overlap if end < len(text) else len(text) + + return chunks + diff --git a/backend/app/utils/llm_client.py b/backend/app/utils/llm_client.py new file mode 100644 index 00000000..6c1a81f4 --- /dev/null +++ b/backend/app/utils/llm_client.py @@ -0,0 +1,103 @@ +""" +LLM客户端封装 +统一使用OpenAI格式调用 +""" + +import json +import re +from typing import Optional, Dict, Any, List +from openai import OpenAI + +from ..config import Config + + +class LLMClient: + """LLM客户端""" + + def __init__( + self, + api_key: Optional[str] = None, + base_url: Optional[str] = None, + model: Optional[str] = None + ): + self.api_key = api_key or Config.LLM_API_KEY + self.base_url = base_url or Config.LLM_BASE_URL + self.model = model or Config.LLM_MODEL_NAME + + if not self.api_key: + raise ValueError("LLM_API_KEY 未配置") + + self.client = OpenAI( + api_key=self.api_key, + base_url=self.base_url + ) + + def chat( + self, + messages: List[Dict[str, str]], + temperature: float = 0.7, + max_tokens: int = 4096, + response_format: Optional[Dict] = None + ) -> str: + """ + 发送聊天请求 + + Args: + messages: 消息列表 + temperature: 温度参数 + max_tokens: 最大token数 + response_format: 响应格式(如JSON模式) + + Returns: + 模型响应文本 + """ + kwargs = { + "model": self.model, + "messages": messages, + "temperature": temperature, + "max_tokens": max_tokens, + } + + if response_format: + kwargs["response_format"] = response_format + + response = self.client.chat.completions.create(**kwargs) + content = response.choices[0].message.content + # 部分模型(如MiniMax M2.5)会在content中包含思考内容,需要移除 + content = re.sub(r'[\s\S]*?', '', content).strip() + return content + + def chat_json( + self, + messages: List[Dict[str, str]], + temperature: float = 0.3, + max_tokens: int = 4096 + ) -> Dict[str, Any]: + """ + 发送聊天请求并返回JSON + + Args: + messages: 消息列表 + temperature: 温度参数 + max_tokens: 最大token数 + + Returns: + 解析后的JSON对象 + """ + response = self.chat( + messages=messages, + temperature=temperature, + max_tokens=max_tokens, + response_format={"type": "json_object"} + ) + # 清理markdown代码块标记 + cleaned_response = response.strip() + cleaned_response = re.sub(r'^```(?:json)?\s*\n?', '', cleaned_response, flags=re.IGNORECASE) + cleaned_response = re.sub(r'\n?```\s*$', '', cleaned_response) + cleaned_response = cleaned_response.strip() + + try: + return json.loads(cleaned_response) + except json.JSONDecodeError: + raise ValueError(f"LLM返回的JSON格式无效: {cleaned_response}") + diff --git a/backend/app/utils/locale.py b/backend/app/utils/locale.py new file mode 100644 index 00000000..23d04aa9 --- /dev/null +++ b/backend/app/utils/locale.py @@ -0,0 +1,69 @@ +import json +import os +import threading +from flask import request, has_request_context + +_thread_local = threading.local() + +_locales_dir = os.path.join(os.path.dirname(__file__), '..', '..', '..', 'locales') + +# Load language registry +with open(os.path.join(_locales_dir, 'languages.json'), 'r', encoding='utf-8') as f: + _languages = json.load(f) + +# Load translation files +_translations = {} +for filename in os.listdir(_locales_dir): + if filename.endswith('.json') and filename != 'languages.json': + locale_name = filename[:-5] + with open(os.path.join(_locales_dir, filename), 'r', encoding='utf-8') as f: + _translations[locale_name] = json.load(f) + + +def set_locale(locale: str): + """Set locale for current thread. Call at the start of background threads.""" + _thread_local.locale = locale + + +def get_locale() -> str: + if has_request_context(): + raw = request.headers.get('Accept-Language', 'zh') + return raw if raw in _translations else 'zh' + return getattr(_thread_local, 'locale', 'zh') + + +def t(key: str, **kwargs) -> str: + locale = get_locale() + messages = _translations.get(locale, _translations.get('zh', {})) + + value = messages + for part in key.split('.'): + if isinstance(value, dict): + value = value.get(part) + else: + value = None + break + + if value is None: + value = _translations.get('zh', {}) + for part in key.split('.'): + if isinstance(value, dict): + value = value.get(part) + else: + value = None + break + + if value is None: + return key + + if kwargs: + for k, v in kwargs.items(): + value = value.replace(f'{{{k}}}', str(v)) + + return value + + +def get_language_instruction() -> str: + locale = get_locale() + lang_config = _languages.get(locale, _languages.get('zh', {})) + return lang_config.get('llmInstruction', '请使用中文回答。') diff --git a/backend/app/utils/logger.py b/backend/app/utils/logger.py new file mode 100644 index 00000000..93422afa --- /dev/null +++ b/backend/app/utils/logger.py @@ -0,0 +1,126 @@ +""" +日志配置模块 +提供统一的日志管理,同时输出到控制台和文件 +""" + +import os +import sys +import logging +from datetime import datetime +from logging.handlers import RotatingFileHandler + + +def _ensure_utf8_stdout(): + """ + 确保 stdout/stderr 使用 UTF-8 编码 + 解决 Windows 控制台中文乱码问题 + """ + if sys.platform == 'win32': + # Windows 下重新配置标准输出为 UTF-8 + if hasattr(sys.stdout, 'reconfigure'): + sys.stdout.reconfigure(encoding='utf-8', errors='replace') + if hasattr(sys.stderr, 'reconfigure'): + sys.stderr.reconfigure(encoding='utf-8', errors='replace') + + +# 日志目录 +LOG_DIR = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(__file__))), 'logs') + + +def setup_logger(name: str = 'mirofish', level: int = logging.DEBUG) -> logging.Logger: + """ + 设置日志器 + + Args: + name: 日志器名称 + level: 日志级别 + + Returns: + 配置好的日志器 + """ + # 确保日志目录存在 + os.makedirs(LOG_DIR, exist_ok=True) + + # 创建日志器 + logger = logging.getLogger(name) + logger.setLevel(level) + + # 阻止日志向上传播到根 logger,避免重复输出 + logger.propagate = False + + # 如果已经有处理器,不重复添加 + if logger.handlers: + return logger + + # 日志格式 + detailed_formatter = logging.Formatter( + '[%(asctime)s] %(levelname)s [%(name)s.%(funcName)s:%(lineno)d] %(message)s', + datefmt='%Y-%m-%d %H:%M:%S' + ) + + simple_formatter = logging.Formatter( + '[%(asctime)s] %(levelname)s: %(message)s', + datefmt='%H:%M:%S' + ) + + # 1. 文件处理器 - 详细日志(按日期命名,带轮转) + log_filename = datetime.now().strftime('%Y-%m-%d') + '.log' + file_handler = RotatingFileHandler( + os.path.join(LOG_DIR, log_filename), + maxBytes=10 * 1024 * 1024, # 10MB + backupCount=5, + encoding='utf-8' + ) + file_handler.setLevel(logging.DEBUG) + file_handler.setFormatter(detailed_formatter) + + # 2. 控制台处理器 - 简洁日志(INFO及以上) + # 确保 Windows 下使用 UTF-8 编码,避免中文乱码 + _ensure_utf8_stdout() + console_handler = logging.StreamHandler(sys.stdout) + console_handler.setLevel(logging.INFO) + console_handler.setFormatter(simple_formatter) + + # 添加处理器 + logger.addHandler(file_handler) + logger.addHandler(console_handler) + + return logger + + +def get_logger(name: str = 'mirofish') -> logging.Logger: + """ + 获取日志器(如果不存在则创建) + + Args: + name: 日志器名称 + + Returns: + 日志器实例 + """ + logger = logging.getLogger(name) + if not logger.handlers: + return setup_logger(name) + return logger + + +# 创建默认日志器 +logger = setup_logger() + + +# 便捷方法 +def debug(msg: str, *args, **kwargs) -> None: + logger.debug(msg, *args, **kwargs) + +def info(msg: str, *args, **kwargs) -> None: + logger.info(msg, *args, **kwargs) + +def warning(msg: str, *args, **kwargs) -> None: + logger.warning(msg, *args, **kwargs) + +def error(msg: str, *args, **kwargs) -> None: + logger.error(msg, *args, **kwargs) + +def critical(msg: str, *args, **kwargs) -> None: + logger.critical(msg, *args, **kwargs) + diff --git a/backend/app/utils/retry.py b/backend/app/utils/retry.py new file mode 100644 index 00000000..819b1cfc --- /dev/null +++ b/backend/app/utils/retry.py @@ -0,0 +1,238 @@ +""" +API调用重试机制 +用于处理LLM等外部API调用的重试逻辑 +""" + +import time +import random +import functools +from typing import Callable, Any, Optional, Type, Tuple +from ..utils.logger import get_logger + +logger = get_logger('mirofish.retry') + + +def retry_with_backoff( + max_retries: int = 3, + initial_delay: float = 1.0, + max_delay: float = 30.0, + backoff_factor: float = 2.0, + jitter: bool = True, + exceptions: Tuple[Type[Exception], ...] = (Exception,), + on_retry: Optional[Callable[[Exception, int], None]] = None +): + """ + 带指数退避的重试装饰器 + + Args: + max_retries: 最大重试次数 + initial_delay: 初始延迟(秒) + max_delay: 最大延迟(秒) + backoff_factor: 退避因子 + jitter: 是否添加随机抖动 + exceptions: 需要重试的异常类型 + on_retry: 重试时的回调函数 (exception, retry_count) + + Usage: + @retry_with_backoff(max_retries=3) + def call_llm_api(): + ... + """ + def decorator(func: Callable) -> Callable: + @functools.wraps(func) + def wrapper(*args, **kwargs) -> Any: + last_exception = None + delay = initial_delay + + for attempt in range(max_retries + 1): + try: + return func(*args, **kwargs) + + except exceptions as e: + last_exception = e + + if attempt == max_retries: + logger.error(f"函数 {func.__name__} 在 {max_retries} 次重试后仍失败: {str(e)}") + raise + + # 计算延迟 + current_delay = min(delay, max_delay) + if jitter: + current_delay = current_delay * (0.5 + random.random()) + + logger.warning( + f"函数 {func.__name__} 第 {attempt + 1} 次尝试失败: {str(e)}, " + f"{current_delay:.1f}秒后重试..." + ) + + if on_retry: + on_retry(e, attempt + 1) + + time.sleep(current_delay) + delay *= backoff_factor + + raise last_exception + + return wrapper + return decorator + + +def retry_with_backoff_async( + max_retries: int = 3, + initial_delay: float = 1.0, + max_delay: float = 30.0, + backoff_factor: float = 2.0, + jitter: bool = True, + exceptions: Tuple[Type[Exception], ...] = (Exception,), + on_retry: Optional[Callable[[Exception, int], None]] = None +): + """ + 异步版本的重试装饰器 + """ + import asyncio + + def decorator(func: Callable) -> Callable: + @functools.wraps(func) + async def wrapper(*args, **kwargs) -> Any: + last_exception = None + delay = initial_delay + + for attempt in range(max_retries + 1): + try: + return await func(*args, **kwargs) + + except exceptions as e: + last_exception = e + + if attempt == max_retries: + logger.error(f"异步函数 {func.__name__} 在 {max_retries} 次重试后仍失败: {str(e)}") + raise + + current_delay = min(delay, max_delay) + if jitter: + current_delay = current_delay * (0.5 + random.random()) + + logger.warning( + f"异步函数 {func.__name__} 第 {attempt + 1} 次尝试失败: {str(e)}, " + f"{current_delay:.1f}秒后重试..." + ) + + if on_retry: + on_retry(e, attempt + 1) + + await asyncio.sleep(current_delay) + delay *= backoff_factor + + raise last_exception + + return wrapper + return decorator + + +class RetryableAPIClient: + """ + 可重试的API客户端封装 + """ + + def __init__( + self, + max_retries: int = 3, + initial_delay: float = 1.0, + max_delay: float = 30.0, + backoff_factor: float = 2.0 + ): + self.max_retries = max_retries + self.initial_delay = initial_delay + self.max_delay = max_delay + self.backoff_factor = backoff_factor + + def call_with_retry( + self, + func: Callable, + *args, + exceptions: Tuple[Type[Exception], ...] = (Exception,), + **kwargs + ) -> Any: + """ + 执行函数调用并在失败时重试 + + Args: + func: 要调用的函数 + *args: 函数参数 + exceptions: 需要重试的异常类型 + **kwargs: 函数关键字参数 + + Returns: + 函数返回值 + """ + last_exception = None + delay = self.initial_delay + + for attempt in range(self.max_retries + 1): + try: + return func(*args, **kwargs) + + except exceptions as e: + last_exception = e + + if attempt == self.max_retries: + logger.error(f"API调用在 {self.max_retries} 次重试后仍失败: {str(e)}") + raise + + current_delay = min(delay, self.max_delay) + current_delay = current_delay * (0.5 + random.random()) + + logger.warning( + f"API调用第 {attempt + 1} 次尝试失败: {str(e)}, " + f"{current_delay:.1f}秒后重试..." + ) + + time.sleep(current_delay) + delay *= self.backoff_factor + + raise last_exception + + def call_batch_with_retry( + self, + items: list, + process_func: Callable, + exceptions: Tuple[Type[Exception], ...] = (Exception,), + continue_on_failure: bool = True + ) -> Tuple[list, list]: + """ + 批量调用并对每个失败项单独重试 + + Args: + items: 要处理的项目列表 + process_func: 处理函数,接收单个item作为参数 + exceptions: 需要重试的异常类型 + continue_on_failure: 单项失败后是否继续处理其他项 + + Returns: + (成功结果列表, 失败项列表) + """ + results = [] + failures = [] + + for idx, item in enumerate(items): + try: + result = self.call_with_retry( + process_func, + item, + exceptions=exceptions + ) + results.append(result) + + except Exception as e: + logger.error(f"处理第 {idx + 1} 项失败: {str(e)}") + failures.append({ + "index": idx, + "item": item, + "error": str(e) + }) + + if not continue_on_failure: + raise + + return results, failures + diff --git a/backend/app/utils/zep_paging.py b/backend/app/utils/zep_paging.py new file mode 100644 index 00000000..943cd1ae --- /dev/null +++ b/backend/app/utils/zep_paging.py @@ -0,0 +1,143 @@ +"""Zep Graph 分页读取工具。 + +Zep 的 node/edge 列表接口使用 UUID cursor 分页, +本模块封装自动翻页逻辑(含单页重试),对调用方透明地返回完整列表。 +""" + +from __future__ import annotations + +import time +from collections.abc import Callable +from typing import Any + +from zep_cloud import InternalServerError +from zep_cloud.client import Zep + +from .logger import get_logger + +logger = get_logger('mirofish.zep_paging') + +_DEFAULT_PAGE_SIZE = 100 +_MAX_NODES = 2000 +_DEFAULT_MAX_RETRIES = 3 +_DEFAULT_RETRY_DELAY = 2.0 # seconds, doubles each retry + + +def _fetch_page_with_retry( + api_call: Callable[..., list[Any]], + *args: Any, + max_retries: int = _DEFAULT_MAX_RETRIES, + retry_delay: float = _DEFAULT_RETRY_DELAY, + page_description: str = "page", + **kwargs: Any, +) -> list[Any]: + """单页请求,失败时指数退避重试。仅重试网络/IO类瞬态错误。""" + if max_retries < 1: + raise ValueError("max_retries must be >= 1") + + last_exception: Exception | None = None + delay = retry_delay + + for attempt in range(max_retries): + try: + return api_call(*args, **kwargs) + except (ConnectionError, TimeoutError, OSError, InternalServerError) as e: + last_exception = e + if attempt < max_retries - 1: + logger.warning( + f"Zep {page_description} attempt {attempt + 1} failed: {str(e)[:100]}, retrying in {delay:.1f}s..." + ) + time.sleep(delay) + delay *= 2 + else: + logger.error(f"Zep {page_description} failed after {max_retries} attempts: {str(e)}") + + assert last_exception is not None + raise last_exception + + +def fetch_all_nodes( + client: Zep, + graph_id: str, + page_size: int = _DEFAULT_PAGE_SIZE, + max_items: int = _MAX_NODES, + max_retries: int = _DEFAULT_MAX_RETRIES, + retry_delay: float = _DEFAULT_RETRY_DELAY, +) -> list[Any]: + """分页获取图谱节点,最多返回 max_items 条(默认 2000)。每页请求自带重试。""" + all_nodes: list[Any] = [] + cursor: str | None = None + page_num = 0 + + while True: + kwargs: dict[str, Any] = {"limit": page_size} + if cursor is not None: + kwargs["uuid_cursor"] = cursor + + page_num += 1 + batch = _fetch_page_with_retry( + client.graph.node.get_by_graph_id, + graph_id, + max_retries=max_retries, + retry_delay=retry_delay, + page_description=f"fetch nodes page {page_num} (graph={graph_id})", + **kwargs, + ) + if not batch: + break + + all_nodes.extend(batch) + if len(all_nodes) >= max_items: + all_nodes = all_nodes[:max_items] + logger.warning(f"Node count reached limit ({max_items}), stopping pagination for graph {graph_id}") + break + if len(batch) < page_size: + break + + cursor = getattr(batch[-1], "uuid_", None) or getattr(batch[-1], "uuid", None) + if cursor is None: + logger.warning(f"Node missing uuid field, stopping pagination at {len(all_nodes)} nodes") + break + + return all_nodes + + +def fetch_all_edges( + client: Zep, + graph_id: str, + page_size: int = _DEFAULT_PAGE_SIZE, + max_retries: int = _DEFAULT_MAX_RETRIES, + retry_delay: float = _DEFAULT_RETRY_DELAY, +) -> list[Any]: + """分页获取图谱所有边,返回完整列表。每页请求自带重试。""" + all_edges: list[Any] = [] + cursor: str | None = None + page_num = 0 + + while True: + kwargs: dict[str, Any] = {"limit": page_size} + if cursor is not None: + kwargs["uuid_cursor"] = cursor + + page_num += 1 + batch = _fetch_page_with_retry( + client.graph.edge.get_by_graph_id, + graph_id, + max_retries=max_retries, + retry_delay=retry_delay, + page_description=f"fetch edges page {page_num} (graph={graph_id})", + **kwargs, + ) + if not batch: + break + + all_edges.extend(batch) + if len(batch) < page_size: + break + + cursor = getattr(batch[-1], "uuid_", None) or getattr(batch[-1], "uuid", None) + if cursor is None: + logger.warning(f"Edge missing uuid field, stopping pagination at {len(all_edges)} edges") + break + + return all_edges diff --git a/backend/pyproject.toml b/backend/pyproject.toml new file mode 100644 index 00000000..8c65b729 --- /dev/null +++ b/backend/pyproject.toml @@ -0,0 +1,55 @@ +[project] +name = "mirofish-backend" +version = "0.1.0" +description = "MiroFish - 简洁通用的群体智能引擎,预测万物" +requires-python = ">=3.11,<3.13" +license = { text = "AGPL-3.0" } +authors = [ + { name = "MiroFish Team" } +] + +dependencies = [ + # 核心框架 + "flask>=3.0.0", + "flask-cors>=6.0.0", + + # LLM 相关 + "openai>=1.0.0", + + # Zep Cloud + "zep-cloud==3.13.0", + + # OASIS 社交媒体模拟 + "camel-oasis==0.2.5", + "camel-ai==0.2.78", + + # 文件处理 + "PyMuPDF>=1.24.0", + # 编码检测(支持非UTF-8编码的文本文件) + "charset-normalizer>=3.0.0", + "chardet>=5.0.0", + + # 工具库 + "python-dotenv>=1.0.0", + "pydantic>=2.0.0", +] + +[project.optional-dependencies] +dev = [ + "pytest>=8.0.0", + "pytest-asyncio>=0.23.0", + "pipreqs>=0.5.0", +] + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[dependency-groups] +dev = [ + "pytest>=8.0.0", + "pytest-asyncio>=0.23.0", +] + +[tool.hatch.build.targets.wheel] +packages = ["app"] diff --git a/backend/requirements.txt b/backend/requirements.txt new file mode 100644 index 00000000..4f146296 --- /dev/null +++ b/backend/requirements.txt @@ -0,0 +1,35 @@ +# =========================================== +# MiroFish Backend Dependencies +# =========================================== +# Python 3.11+ required +# Install: pip install -r requirements.txt +# =========================================== + +# ============= 核心框架 ============= +flask>=3.0.0 +flask-cors>=6.0.0 + +# ============= LLM 相关 ============= +# OpenAI SDK(统一使用 OpenAI 格式调用 LLM) +openai>=1.0.0 + +# ============= Zep Cloud ============= +zep-cloud==3.13.0 + +# ============= OASIS 社交媒体模拟 ============= +# OASIS 社交模拟框架 +camel-oasis==0.2.5 +camel-ai==0.2.78 + +# ============= 文件处理 ============= +PyMuPDF>=1.24.0 +# 编码检测(支持非UTF-8编码的文本文件) +charset-normalizer>=3.0.0 +chardet>=5.0.0 + +# ============= 工具库 ============= +# 环境变量加载 +python-dotenv>=1.0.0 + +# 数据验证 +pydantic>=2.0.0 diff --git a/backend/run.py b/backend/run.py new file mode 100644 index 00000000..4e3b04fa --- /dev/null +++ b/backend/run.py @@ -0,0 +1,50 @@ +""" +MiroFish Backend 启动入口 +""" + +import os +import sys + +# 解决 Windows 控制台中文乱码问题:在所有导入之前设置 UTF-8 编码 +if sys.platform == 'win32': + # 设置环境变量确保 Python 使用 UTF-8 + os.environ.setdefault('PYTHONIOENCODING', 'utf-8') + # 重新配置标准输出流为 UTF-8 + if hasattr(sys.stdout, 'reconfigure'): + sys.stdout.reconfigure(encoding='utf-8', errors='replace') + if hasattr(sys.stderr, 'reconfigure'): + sys.stderr.reconfigure(encoding='utf-8', errors='replace') + +# 添加项目根目录到路径 +sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) + +from app import create_app +from app.config import Config + + +def main(): + """主函数""" + # 验证配置 + errors = Config.validate() + if errors: + print("配置错误:") + for err in errors: + print(f" - {err}") + print("\n请检查 .env 文件中的配置") + sys.exit(1) + + # 创建应用 + app = create_app() + + # 获取运行配置 + host = os.environ.get('FLASK_HOST', '0.0.0.0') + port = int(os.environ.get('FLASK_PORT', 5001)) + debug = Config.DEBUG + + # 启动服务 + app.run(host=host, port=port, debug=debug, threaded=True) + + +if __name__ == '__main__': + main() + diff --git a/backend/scripts/action_logger.py b/backend/scripts/action_logger.py new file mode 100644 index 00000000..38d025a6 --- /dev/null +++ b/backend/scripts/action_logger.py @@ -0,0 +1,305 @@ +""" +动作日志记录器 +用于记录OASIS模拟中每个Agent的动作,供后端监控使用 + +日志结构: + sim_xxx/ + ├── twitter/ + │ └── actions.jsonl # Twitter 平台动作日志 + ├── reddit/ + │ └── actions.jsonl # Reddit 平台动作日志 + ├── simulation.log # 主模拟进程日志 + └── run_state.json # 运行状态(API 查询用) +""" + +import json +import os +import logging +from datetime import datetime +from typing import Dict, Any, Optional + + +class PlatformActionLogger: + """单平台动作日志记录器""" + + def __init__(self, platform: str, base_dir: str): + """ + 初始化日志记录器 + + Args: + platform: 平台名称 (twitter/reddit) + base_dir: 模拟目录的基础路径 + """ + self.platform = platform + self.base_dir = base_dir + self.log_dir = os.path.join(base_dir, platform) + self.log_path = os.path.join(self.log_dir, "actions.jsonl") + self._ensure_dir() + + def _ensure_dir(self): + """确保目录存在""" + os.makedirs(self.log_dir, exist_ok=True) + + def log_action( + self, + round_num: int, + agent_id: int, + agent_name: str, + action_type: str, + action_args: Optional[Dict[str, Any]] = None, + result: Optional[str] = None, + success: bool = True + ): + """记录一个动作""" + entry = { + "round": round_num, + "timestamp": datetime.now().isoformat(), + "agent_id": agent_id, + "agent_name": agent_name, + "action_type": action_type, + "action_args": action_args or {}, + "result": result, + "success": success, + } + + with open(self.log_path, 'a', encoding='utf-8') as f: + f.write(json.dumps(entry, ensure_ascii=False) + '\n') + + def log_round_start(self, round_num: int, simulated_hour: int): + """记录轮次开始""" + entry = { + "round": round_num, + "timestamp": datetime.now().isoformat(), + "event_type": "round_start", + "simulated_hour": simulated_hour, + } + + with open(self.log_path, 'a', encoding='utf-8') as f: + f.write(json.dumps(entry, ensure_ascii=False) + '\n') + + def log_round_end(self, round_num: int, actions_count: int): + """记录轮次结束""" + entry = { + "round": round_num, + "timestamp": datetime.now().isoformat(), + "event_type": "round_end", + "actions_count": actions_count, + } + + with open(self.log_path, 'a', encoding='utf-8') as f: + f.write(json.dumps(entry, ensure_ascii=False) + '\n') + + def log_simulation_start(self, config: Dict[str, Any]): + """记录模拟开始""" + entry = { + "timestamp": datetime.now().isoformat(), + "event_type": "simulation_start", + "platform": self.platform, + "total_rounds": config.get("time_config", {}).get("total_simulation_hours", 72) * 2, + "agents_count": len(config.get("agent_configs", [])), + } + + with open(self.log_path, 'a', encoding='utf-8') as f: + f.write(json.dumps(entry, ensure_ascii=False) + '\n') + + def log_simulation_end(self, total_rounds: int, total_actions: int): + """记录模拟结束""" + entry = { + "timestamp": datetime.now().isoformat(), + "event_type": "simulation_end", + "platform": self.platform, + "total_rounds": total_rounds, + "total_actions": total_actions, + } + + with open(self.log_path, 'a', encoding='utf-8') as f: + f.write(json.dumps(entry, ensure_ascii=False) + '\n') + + +class SimulationLogManager: + """ + 模拟日志管理器 + 统一管理所有日志文件,按平台分离 + """ + + def __init__(self, simulation_dir: str): + """ + 初始化日志管理器 + + Args: + simulation_dir: 模拟目录路径 + """ + self.simulation_dir = simulation_dir + self.twitter_logger: Optional[PlatformActionLogger] = None + self.reddit_logger: Optional[PlatformActionLogger] = None + self._main_logger: Optional[logging.Logger] = None + + # 设置主日志 + self._setup_main_logger() + + def _setup_main_logger(self): + """设置主模拟日志""" + log_path = os.path.join(self.simulation_dir, "simulation.log") + + # 创建 logger + self._main_logger = logging.getLogger(f"simulation.{os.path.basename(self.simulation_dir)}") + self._main_logger.setLevel(logging.INFO) + self._main_logger.handlers.clear() + + # 文件处理器 + file_handler = logging.FileHandler(log_path, encoding='utf-8', mode='w') + file_handler.setLevel(logging.INFO) + file_handler.setFormatter(logging.Formatter( + '%(asctime)s - %(levelname)s - %(message)s', + datefmt='%Y-%m-%d %H:%M:%S' + )) + self._main_logger.addHandler(file_handler) + + # 控制台处理器 + console_handler = logging.StreamHandler() + console_handler.setLevel(logging.INFO) + console_handler.setFormatter(logging.Formatter( + '[%(asctime)s] %(message)s', + datefmt='%H:%M:%S' + )) + self._main_logger.addHandler(console_handler) + + self._main_logger.propagate = False + + def get_twitter_logger(self) -> PlatformActionLogger: + """获取 Twitter 平台日志记录器""" + if self.twitter_logger is None: + self.twitter_logger = PlatformActionLogger("twitter", self.simulation_dir) + return self.twitter_logger + + def get_reddit_logger(self) -> PlatformActionLogger: + """获取 Reddit 平台日志记录器""" + if self.reddit_logger is None: + self.reddit_logger = PlatformActionLogger("reddit", self.simulation_dir) + return self.reddit_logger + + def log(self, message: str, level: str = "info"): + """记录主日志""" + if self._main_logger: + getattr(self._main_logger, level.lower(), self._main_logger.info)(message) + + def info(self, message: str): + self.log(message, "info") + + def warning(self, message: str): + self.log(message, "warning") + + def error(self, message: str): + self.log(message, "error") + + def debug(self, message: str): + self.log(message, "debug") + + +# ============ 兼容旧接口 ============ + +class ActionLogger: + """ + 动作日志记录器(兼容旧接口) + 建议使用 SimulationLogManager 代替 + """ + + def __init__(self, log_path: str): + self.log_path = log_path + self._ensure_dir() + + def _ensure_dir(self): + log_dir = os.path.dirname(self.log_path) + if log_dir: + os.makedirs(log_dir, exist_ok=True) + + def log_action( + self, + round_num: int, + platform: str, + agent_id: int, + agent_name: str, + action_type: str, + action_args: Optional[Dict[str, Any]] = None, + result: Optional[str] = None, + success: bool = True + ): + entry = { + "round": round_num, + "timestamp": datetime.now().isoformat(), + "platform": platform, + "agent_id": agent_id, + "agent_name": agent_name, + "action_type": action_type, + "action_args": action_args or {}, + "result": result, + "success": success, + } + + with open(self.log_path, 'a', encoding='utf-8') as f: + f.write(json.dumps(entry, ensure_ascii=False) + '\n') + + def log_round_start(self, round_num: int, simulated_hour: int, platform: str): + entry = { + "round": round_num, + "timestamp": datetime.now().isoformat(), + "platform": platform, + "event_type": "round_start", + "simulated_hour": simulated_hour, + } + + with open(self.log_path, 'a', encoding='utf-8') as f: + f.write(json.dumps(entry, ensure_ascii=False) + '\n') + + def log_round_end(self, round_num: int, actions_count: int, platform: str): + entry = { + "round": round_num, + "timestamp": datetime.now().isoformat(), + "platform": platform, + "event_type": "round_end", + "actions_count": actions_count, + } + + with open(self.log_path, 'a', encoding='utf-8') as f: + f.write(json.dumps(entry, ensure_ascii=False) + '\n') + + def log_simulation_start(self, platform: str, config: Dict[str, Any]): + entry = { + "timestamp": datetime.now().isoformat(), + "platform": platform, + "event_type": "simulation_start", + "total_rounds": config.get("time_config", {}).get("total_simulation_hours", 72) * 2, + "agents_count": len(config.get("agent_configs", [])), + } + + with open(self.log_path, 'a', encoding='utf-8') as f: + f.write(json.dumps(entry, ensure_ascii=False) + '\n') + + def log_simulation_end(self, platform: str, total_rounds: int, total_actions: int): + entry = { + "timestamp": datetime.now().isoformat(), + "platform": platform, + "event_type": "simulation_end", + "total_rounds": total_rounds, + "total_actions": total_actions, + } + + with open(self.log_path, 'a', encoding='utf-8') as f: + f.write(json.dumps(entry, ensure_ascii=False) + '\n') + + +# 全局日志实例(兼容旧接口) +_global_logger: Optional[ActionLogger] = None + + +def get_logger(log_path: Optional[str] = None) -> ActionLogger: + """获取全局日志实例(兼容旧接口)""" + global _global_logger + + if log_path: + _global_logger = ActionLogger(log_path) + + if _global_logger is None: + _global_logger = ActionLogger("actions.jsonl") + + return _global_logger diff --git a/backend/scripts/run_parallel_simulation.py b/backend/scripts/run_parallel_simulation.py new file mode 100644 index 00000000..2a627ffd --- /dev/null +++ b/backend/scripts/run_parallel_simulation.py @@ -0,0 +1,1699 @@ +""" +OASIS 双平台并行模拟预设脚本 +同时运行Twitter和Reddit模拟,读取相同的配置文件 + +功能特性: +- 双平台(Twitter + Reddit)并行模拟 +- 完成模拟后不立即关闭环境,进入等待命令模式 +- 支持通过IPC接收Interview命令 +- 支持单个Agent采访和批量采访 +- 支持远程关闭环境命令 + +使用方式: + python run_parallel_simulation.py --config simulation_config.json + python run_parallel_simulation.py --config simulation_config.json --no-wait # 完成后立即关闭 + python run_parallel_simulation.py --config simulation_config.json --twitter-only + python run_parallel_simulation.py --config simulation_config.json --reddit-only + +日志结构: + sim_xxx/ + ├── twitter/ + │ └── actions.jsonl # Twitter 平台动作日志 + ├── reddit/ + │ └── actions.jsonl # Reddit 平台动作日志 + ├── simulation.log # 主模拟进程日志 + └── run_state.json # 运行状态(API 查询用) +""" + +# ============================================================ +# 解决 Windows 编码问题:在所有 import 之前设置 UTF-8 编码 +# 这是为了修复 OASIS 第三方库读取文件时未指定编码的问题 +# ============================================================ +import sys +import os + +if sys.platform == 'win32': + # 设置 Python 默认 I/O 编码为 UTF-8 + # 这会影响所有未指定编码的 open() 调用 + os.environ.setdefault('PYTHONUTF8', '1') + os.environ.setdefault('PYTHONIOENCODING', 'utf-8') + + # 重新配置标准输出流为 UTF-8(解决控制台中文乱码) + if hasattr(sys.stdout, 'reconfigure'): + sys.stdout.reconfigure(encoding='utf-8', errors='replace') + if hasattr(sys.stderr, 'reconfigure'): + sys.stderr.reconfigure(encoding='utf-8', errors='replace') + + # 强制设置默认编码(影响 open() 函数的默认编码) + # 注意:这需要在 Python 启动时就设置,运行时设置可能不生效 + # 所以我们还需要 monkey-patch 内置的 open 函数 + import builtins + _original_open = builtins.open + + def _utf8_open(file, mode='r', buffering=-1, encoding=None, errors=None, + newline=None, closefd=True, opener=None): + """ + 包装 open() 函数,对于文本模式默认使用 UTF-8 编码 + 这可以修复第三方库(如 OASIS)读取文件时未指定编码的问题 + """ + # 只对文本模式(非二进制)且未指定编码的情况设置默认编码 + if encoding is None and 'b' not in mode: + encoding = 'utf-8' + return _original_open(file, mode, buffering, encoding, errors, + newline, closefd, opener) + + builtins.open = _utf8_open + +import argparse +import asyncio +import json +import logging +import multiprocessing +import random +import signal +import sqlite3 +import warnings +from datetime import datetime +from typing import Dict, Any, List, Optional, Tuple + + +# 全局变量:用于信号处理 +_shutdown_event = None +_cleanup_done = False + +# 添加 backend 目录到路径 +# 脚本固定位于 backend/scripts/ 目录 +_scripts_dir = os.path.dirname(os.path.abspath(__file__)) +_backend_dir = os.path.abspath(os.path.join(_scripts_dir, '..')) +_project_root = os.path.abspath(os.path.join(_backend_dir, '..')) +sys.path.insert(0, _scripts_dir) +sys.path.insert(0, _backend_dir) + +# 加载项目根目录的 .env 文件(包含 LLM_API_KEY 等配置) +from dotenv import load_dotenv +_env_file = os.path.join(_project_root, '.env') +if os.path.exists(_env_file): + load_dotenv(_env_file) + print(f"已加载环境配置: {_env_file}") +else: + # 尝试加载 backend/.env + _backend_env = os.path.join(_backend_dir, '.env') + if os.path.exists(_backend_env): + load_dotenv(_backend_env) + print(f"已加载环境配置: {_backend_env}") + + +class MaxTokensWarningFilter(logging.Filter): + """过滤掉 camel-ai 关于 max_tokens 的警告(我们故意不设置 max_tokens,让模型自行决定)""" + + def filter(self, record): + # 过滤掉包含 max_tokens 警告的日志 + if "max_tokens" in record.getMessage() and "Invalid or missing" in record.getMessage(): + return False + return True + + +# 在模块加载时立即添加过滤器,确保在 camel 代码执行前生效 +logging.getLogger().addFilter(MaxTokensWarningFilter()) + + +def disable_oasis_logging(): + """ + 禁用 OASIS 库的详细日志输出 + OASIS 的日志太冗余(记录每个 agent 的观察和动作),我们使用自己的 action_logger + """ + # 禁用 OASIS 的所有日志器 + oasis_loggers = [ + "social.agent", + "social.twitter", + "social.rec", + "oasis.env", + "table", + ] + + for logger_name in oasis_loggers: + logger = logging.getLogger(logger_name) + logger.setLevel(logging.CRITICAL) # 只记录严重错误 + logger.handlers.clear() + logger.propagate = False + + +def init_logging_for_simulation(simulation_dir: str): + """ + 初始化模拟的日志配置 + + Args: + simulation_dir: 模拟目录路径 + """ + # 禁用 OASIS 的详细日志 + disable_oasis_logging() + + # 清理旧的 log 目录(如果存在) + old_log_dir = os.path.join(simulation_dir, "log") + if os.path.exists(old_log_dir): + import shutil + shutil.rmtree(old_log_dir, ignore_errors=True) + + +from action_logger import SimulationLogManager, PlatformActionLogger + +try: + from camel.models import ModelFactory + from camel.types import ModelPlatformType + import oasis + from oasis import ( + ActionType, + LLMAction, + ManualAction, + generate_twitter_agent_graph, + generate_reddit_agent_graph + ) +except ImportError as e: + print(f"错误: 缺少依赖 {e}") + print("请先安装: pip install oasis-ai camel-ai") + sys.exit(1) + + +# Twitter可用动作(不包含INTERVIEW,INTERVIEW只能通过ManualAction手动触发) +TWITTER_ACTIONS = [ + ActionType.CREATE_POST, + ActionType.LIKE_POST, + ActionType.REPOST, + ActionType.FOLLOW, + ActionType.DO_NOTHING, + ActionType.QUOTE_POST, +] + +# Reddit可用动作(不包含INTERVIEW,INTERVIEW只能通过ManualAction手动触发) +REDDIT_ACTIONS = [ + ActionType.LIKE_POST, + ActionType.DISLIKE_POST, + ActionType.CREATE_POST, + ActionType.CREATE_COMMENT, + ActionType.LIKE_COMMENT, + ActionType.DISLIKE_COMMENT, + ActionType.SEARCH_POSTS, + ActionType.SEARCH_USER, + ActionType.TREND, + ActionType.REFRESH, + ActionType.DO_NOTHING, + ActionType.FOLLOW, + ActionType.MUTE, +] + + +# IPC相关常量 +IPC_COMMANDS_DIR = "ipc_commands" +IPC_RESPONSES_DIR = "ipc_responses" +ENV_STATUS_FILE = "env_status.json" + +class CommandType: + """命令类型常量""" + INTERVIEW = "interview" + BATCH_INTERVIEW = "batch_interview" + CLOSE_ENV = "close_env" + + +class ParallelIPCHandler: + """ + 双平台IPC命令处理器 + + 管理两个平台的环境,处理Interview命令 + """ + + def __init__( + self, + simulation_dir: str, + twitter_env=None, + twitter_agent_graph=None, + reddit_env=None, + reddit_agent_graph=None + ): + self.simulation_dir = simulation_dir + self.twitter_env = twitter_env + self.twitter_agent_graph = twitter_agent_graph + self.reddit_env = reddit_env + self.reddit_agent_graph = reddit_agent_graph + + self.commands_dir = os.path.join(simulation_dir, IPC_COMMANDS_DIR) + self.responses_dir = os.path.join(simulation_dir, IPC_RESPONSES_DIR) + self.status_file = os.path.join(simulation_dir, ENV_STATUS_FILE) + + # 确保目录存在 + os.makedirs(self.commands_dir, exist_ok=True) + os.makedirs(self.responses_dir, exist_ok=True) + + def update_status(self, status: str): + """更新环境状态""" + with open(self.status_file, 'w', encoding='utf-8') as f: + json.dump({ + "status": status, + "twitter_available": self.twitter_env is not None, + "reddit_available": self.reddit_env is not None, + "timestamp": datetime.now().isoformat() + }, f, ensure_ascii=False, indent=2) + + def poll_command(self) -> Optional[Dict[str, Any]]: + """轮询获取待处理命令""" + if not os.path.exists(self.commands_dir): + return None + + # 获取命令文件(按时间排序) + command_files = [] + for filename in os.listdir(self.commands_dir): + if filename.endswith('.json'): + filepath = os.path.join(self.commands_dir, filename) + command_files.append((filepath, os.path.getmtime(filepath))) + + command_files.sort(key=lambda x: x[1]) + + for filepath, _ in command_files: + try: + with open(filepath, 'r', encoding='utf-8') as f: + return json.load(f) + except (json.JSONDecodeError, OSError): + continue + + return None + + def send_response(self, command_id: str, status: str, result: Dict = None, error: str = None): + """发送响应""" + response = { + "command_id": command_id, + "status": status, + "result": result, + "error": error, + "timestamp": datetime.now().isoformat() + } + + response_file = os.path.join(self.responses_dir, f"{command_id}.json") + with open(response_file, 'w', encoding='utf-8') as f: + json.dump(response, f, ensure_ascii=False, indent=2) + + # 删除命令文件 + command_file = os.path.join(self.commands_dir, f"{command_id}.json") + try: + os.remove(command_file) + except OSError: + pass + + def _get_env_and_graph(self, platform: str): + """ + 获取指定平台的环境和agent_graph + + Args: + platform: 平台名称 ("twitter" 或 "reddit") + + Returns: + (env, agent_graph, platform_name) 或 (None, None, None) + """ + if platform == "twitter" and self.twitter_env: + return self.twitter_env, self.twitter_agent_graph, "twitter" + elif platform == "reddit" and self.reddit_env: + return self.reddit_env, self.reddit_agent_graph, "reddit" + else: + return None, None, None + + async def _interview_single_platform(self, agent_id: int, prompt: str, platform: str) -> Dict[str, Any]: + """ + 在单个平台上执行Interview + + Returns: + 包含结果的字典,或包含error的字典 + """ + env, agent_graph, actual_platform = self._get_env_and_graph(platform) + + if not env or not agent_graph: + return {"platform": platform, "error": f"{platform}平台不可用"} + + try: + agent = agent_graph.get_agent(agent_id) + interview_action = ManualAction( + action_type=ActionType.INTERVIEW, + action_args={"prompt": prompt} + ) + actions = {agent: interview_action} + await env.step(actions) + + result = self._get_interview_result(agent_id, actual_platform) + result["platform"] = actual_platform + return result + + except Exception as e: + return {"platform": platform, "error": str(e)} + + async def handle_interview(self, command_id: str, agent_id: int, prompt: str, platform: str = None) -> bool: + """ + 处理单个Agent采访命令 + + Args: + command_id: 命令ID + agent_id: Agent ID + prompt: 采访问题 + platform: 指定平台(可选) + - "twitter": 只采访Twitter平台 + - "reddit": 只采访Reddit平台 + - None/不指定: 同时采访两个平台,返回整合结果 + + Returns: + True 表示成功,False 表示失败 + """ + # 如果指定了平台,只采访该平台 + if platform in ("twitter", "reddit"): + result = await self._interview_single_platform(agent_id, prompt, platform) + + if "error" in result: + self.send_response(command_id, "failed", error=result["error"]) + print(f" Interview失败: agent_id={agent_id}, platform={platform}, error={result['error']}") + return False + else: + self.send_response(command_id, "completed", result=result) + print(f" Interview完成: agent_id={agent_id}, platform={platform}") + return True + + # 未指定平台:同时采访两个平台 + if not self.twitter_env and not self.reddit_env: + self.send_response(command_id, "failed", error="没有可用的模拟环境") + return False + + results = { + "agent_id": agent_id, + "prompt": prompt, + "platforms": {} + } + success_count = 0 + + # 并行采访两个平台 + tasks = [] + platforms_to_interview = [] + + if self.twitter_env: + tasks.append(self._interview_single_platform(agent_id, prompt, "twitter")) + platforms_to_interview.append("twitter") + + if self.reddit_env: + tasks.append(self._interview_single_platform(agent_id, prompt, "reddit")) + platforms_to_interview.append("reddit") + + # 并行执行 + platform_results = await asyncio.gather(*tasks) + + for platform_name, platform_result in zip(platforms_to_interview, platform_results): + results["platforms"][platform_name] = platform_result + if "error" not in platform_result: + success_count += 1 + + if success_count > 0: + self.send_response(command_id, "completed", result=results) + print(f" Interview完成: agent_id={agent_id}, 成功平台数={success_count}/{len(platforms_to_interview)}") + return True + else: + errors = [f"{p}: {r.get('error', '未知错误')}" for p, r in results["platforms"].items()] + self.send_response(command_id, "failed", error="; ".join(errors)) + print(f" Interview失败: agent_id={agent_id}, 所有平台都失败") + return False + + async def handle_batch_interview(self, command_id: str, interviews: List[Dict], platform: str = None) -> bool: + """ + 处理批量采访命令 + + Args: + command_id: 命令ID + interviews: [{"agent_id": int, "prompt": str, "platform": str(optional)}, ...] + platform: 默认平台(可被每个interview项覆盖) + - "twitter": 只采访Twitter平台 + - "reddit": 只采访Reddit平台 + - None/不指定: 每个Agent同时采访两个平台 + """ + # 按平台分组 + twitter_interviews = [] + reddit_interviews = [] + both_platforms_interviews = [] # 需要同时采访两个平台的 + + for interview in interviews: + item_platform = interview.get("platform", platform) + if item_platform == "twitter": + twitter_interviews.append(interview) + elif item_platform == "reddit": + reddit_interviews.append(interview) + else: + # 未指定平台:两个平台都采访 + both_platforms_interviews.append(interview) + + # 把 both_platforms_interviews 拆分到两个平台 + if both_platforms_interviews: + if self.twitter_env: + twitter_interviews.extend(both_platforms_interviews) + if self.reddit_env: + reddit_interviews.extend(both_platforms_interviews) + + results = {} + + # 处理Twitter平台的采访 + if twitter_interviews and self.twitter_env: + try: + twitter_actions = {} + for interview in twitter_interviews: + agent_id = interview.get("agent_id") + prompt = interview.get("prompt", "") + try: + agent = self.twitter_agent_graph.get_agent(agent_id) + twitter_actions[agent] = ManualAction( + action_type=ActionType.INTERVIEW, + action_args={"prompt": prompt} + ) + except Exception as e: + print(f" 警告: 无法获取Twitter Agent {agent_id}: {e}") + + if twitter_actions: + await self.twitter_env.step(twitter_actions) + + for interview in twitter_interviews: + agent_id = interview.get("agent_id") + result = self._get_interview_result(agent_id, "twitter") + result["platform"] = "twitter" + results[f"twitter_{agent_id}"] = result + except Exception as e: + print(f" Twitter批量Interview失败: {e}") + + # 处理Reddit平台的采访 + if reddit_interviews and self.reddit_env: + try: + reddit_actions = {} + for interview in reddit_interviews: + agent_id = interview.get("agent_id") + prompt = interview.get("prompt", "") + try: + agent = self.reddit_agent_graph.get_agent(agent_id) + reddit_actions[agent] = ManualAction( + action_type=ActionType.INTERVIEW, + action_args={"prompt": prompt} + ) + except Exception as e: + print(f" 警告: 无法获取Reddit Agent {agent_id}: {e}") + + if reddit_actions: + await self.reddit_env.step(reddit_actions) + + for interview in reddit_interviews: + agent_id = interview.get("agent_id") + result = self._get_interview_result(agent_id, "reddit") + result["platform"] = "reddit" + results[f"reddit_{agent_id}"] = result + except Exception as e: + print(f" Reddit批量Interview失败: {e}") + + if results: + self.send_response(command_id, "completed", result={ + "interviews_count": len(results), + "results": results + }) + print(f" 批量Interview完成: {len(results)} 个Agent") + return True + else: + self.send_response(command_id, "failed", error="没有成功的采访") + return False + + def _get_interview_result(self, agent_id: int, platform: str) -> Dict[str, Any]: + """从数据库获取最新的Interview结果""" + db_path = os.path.join(self.simulation_dir, f"{platform}_simulation.db") + + result = { + "agent_id": agent_id, + "response": None, + "timestamp": None + } + + if not os.path.exists(db_path): + return result + + try: + conn = sqlite3.connect(db_path) + cursor = conn.cursor() + + # 查询最新的Interview记录 + cursor.execute(""" + SELECT user_id, info, created_at + FROM trace + WHERE action = ? AND user_id = ? + ORDER BY created_at DESC + LIMIT 1 + """, (ActionType.INTERVIEW.value, agent_id)) + + row = cursor.fetchone() + if row: + user_id, info_json, created_at = row + try: + info = json.loads(info_json) if info_json else {} + result["response"] = info.get("response", info) + result["timestamp"] = created_at + except json.JSONDecodeError: + result["response"] = info_json + + conn.close() + + except Exception as e: + print(f" 读取Interview结果失败: {e}") + + return result + + async def process_commands(self) -> bool: + """ + 处理所有待处理命令 + + Returns: + True 表示继续运行,False 表示应该退出 + """ + command = self.poll_command() + if not command: + return True + + command_id = command.get("command_id") + command_type = command.get("command_type") + args = command.get("args", {}) + + print(f"\n收到IPC命令: {command_type}, id={command_id}") + + if command_type == CommandType.INTERVIEW: + await self.handle_interview( + command_id, + args.get("agent_id", 0), + args.get("prompt", ""), + args.get("platform") + ) + return True + + elif command_type == CommandType.BATCH_INTERVIEW: + await self.handle_batch_interview( + command_id, + args.get("interviews", []), + args.get("platform") + ) + return True + + elif command_type == CommandType.CLOSE_ENV: + print("收到关闭环境命令") + self.send_response(command_id, "completed", result={"message": "环境即将关闭"}) + return False + + else: + self.send_response(command_id, "failed", error=f"未知命令类型: {command_type}") + return True + + +def load_config(config_path: str) -> Dict[str, Any]: + """加载配置文件""" + with open(config_path, 'r', encoding='utf-8') as f: + return json.load(f) + + +# 需要过滤掉的非核心动作类型(这些动作对分析价值较低) +FILTERED_ACTIONS = {'refresh', 'sign_up'} + +# 动作类型映射表(数据库中的名称 -> 标准名称) +ACTION_TYPE_MAP = { + 'create_post': 'CREATE_POST', + 'like_post': 'LIKE_POST', + 'dislike_post': 'DISLIKE_POST', + 'repost': 'REPOST', + 'quote_post': 'QUOTE_POST', + 'follow': 'FOLLOW', + 'mute': 'MUTE', + 'create_comment': 'CREATE_COMMENT', + 'like_comment': 'LIKE_COMMENT', + 'dislike_comment': 'DISLIKE_COMMENT', + 'search_posts': 'SEARCH_POSTS', + 'search_user': 'SEARCH_USER', + 'trend': 'TREND', + 'do_nothing': 'DO_NOTHING', + 'interview': 'INTERVIEW', +} + + +def get_agent_names_from_config(config: Dict[str, Any]) -> Dict[int, str]: + """ + 从 simulation_config 中获取 agent_id -> entity_name 的映射 + + 这样可以在 actions.jsonl 中显示真实的实体名称,而不是 "Agent_0" 这样的代号 + + Args: + config: simulation_config.json 的内容 + + Returns: + agent_id -> entity_name 的映射字典 + """ + agent_names = {} + agent_configs = config.get("agent_configs", []) + + for agent_config in agent_configs: + agent_id = agent_config.get("agent_id") + entity_name = agent_config.get("entity_name", f"Agent_{agent_id}") + if agent_id is not None: + agent_names[agent_id] = entity_name + + return agent_names + + +def fetch_new_actions_from_db( + db_path: str, + last_rowid: int, + agent_names: Dict[int, str] +) -> Tuple[List[Dict[str, Any]], int]: + """ + 从数据库中获取新的动作记录,并补充完整的上下文信息 + + Args: + db_path: 数据库文件路径 + last_rowid: 上次读取的最大 rowid 值(使用 rowid 而不是 created_at,因为不同平台的 created_at 格式不同) + agent_names: agent_id -> agent_name 映射 + + Returns: + (actions_list, new_last_rowid) + - actions_list: 动作列表,每个元素包含 agent_id, agent_name, action_type, action_args(含上下文信息) + - new_last_rowid: 新的最大 rowid 值 + """ + actions = [] + new_last_rowid = last_rowid + + if not os.path.exists(db_path): + return actions, new_last_rowid + + try: + conn = sqlite3.connect(db_path) + cursor = conn.cursor() + + # 使用 rowid 来追踪已处理的记录(rowid 是 SQLite 的内置自增字段) + # 这样可以避免 created_at 格式差异问题(Twitter 用整数,Reddit 用日期时间字符串) + cursor.execute(""" + SELECT rowid, user_id, action, info + FROM trace + WHERE rowid > ? + ORDER BY rowid ASC + """, (last_rowid,)) + + for rowid, user_id, action, info_json in cursor.fetchall(): + # 更新最大 rowid + new_last_rowid = rowid + + # 过滤非核心动作 + if action in FILTERED_ACTIONS: + continue + + # 解析动作参数 + try: + action_args = json.loads(info_json) if info_json else {} + except json.JSONDecodeError: + action_args = {} + + # 精简 action_args,只保留关键字段(保留完整内容,不截断) + simplified_args = {} + if 'content' in action_args: + simplified_args['content'] = action_args['content'] + if 'post_id' in action_args: + simplified_args['post_id'] = action_args['post_id'] + if 'comment_id' in action_args: + simplified_args['comment_id'] = action_args['comment_id'] + if 'quoted_id' in action_args: + simplified_args['quoted_id'] = action_args['quoted_id'] + if 'new_post_id' in action_args: + simplified_args['new_post_id'] = action_args['new_post_id'] + if 'follow_id' in action_args: + simplified_args['follow_id'] = action_args['follow_id'] + if 'query' in action_args: + simplified_args['query'] = action_args['query'] + if 'like_id' in action_args: + simplified_args['like_id'] = action_args['like_id'] + if 'dislike_id' in action_args: + simplified_args['dislike_id'] = action_args['dislike_id'] + + # 转换动作类型名称 + action_type = ACTION_TYPE_MAP.get(action, action.upper()) + + # 补充上下文信息(帖子内容、用户名等) + _enrich_action_context(cursor, action_type, simplified_args, agent_names) + + actions.append({ + 'agent_id': user_id, + 'agent_name': agent_names.get(user_id, f'Agent_{user_id}'), + 'action_type': action_type, + 'action_args': simplified_args, + }) + + conn.close() + except Exception as e: + print(f"读取数据库动作失败: {e}") + + return actions, new_last_rowid + + +def _enrich_action_context( + cursor, + action_type: str, + action_args: Dict[str, Any], + agent_names: Dict[int, str] +) -> None: + """ + 为动作补充上下文信息(帖子内容、用户名等) + + Args: + cursor: 数据库游标 + action_type: 动作类型 + action_args: 动作参数(会被修改) + agent_names: agent_id -> agent_name 映射 + """ + try: + # 点赞/踩帖子:补充帖子内容和作者 + if action_type in ('LIKE_POST', 'DISLIKE_POST'): + post_id = action_args.get('post_id') + if post_id: + post_info = _get_post_info(cursor, post_id, agent_names) + if post_info: + action_args['post_content'] = post_info.get('content', '') + action_args['post_author_name'] = post_info.get('author_name', '') + + # 转发帖子:补充原帖内容和作者 + elif action_type == 'REPOST': + new_post_id = action_args.get('new_post_id') + if new_post_id: + # 转发帖子的 original_post_id 指向原帖 + cursor.execute(""" + SELECT original_post_id FROM post WHERE post_id = ? + """, (new_post_id,)) + row = cursor.fetchone() + if row and row[0]: + original_post_id = row[0] + original_info = _get_post_info(cursor, original_post_id, agent_names) + if original_info: + action_args['original_content'] = original_info.get('content', '') + action_args['original_author_name'] = original_info.get('author_name', '') + + # 引用帖子:补充原帖内容、作者和引用评论 + elif action_type == 'QUOTE_POST': + quoted_id = action_args.get('quoted_id') + new_post_id = action_args.get('new_post_id') + + if quoted_id: + original_info = _get_post_info(cursor, quoted_id, agent_names) + if original_info: + action_args['original_content'] = original_info.get('content', '') + action_args['original_author_name'] = original_info.get('author_name', '') + + # 获取引用帖子的评论内容(quote_content) + if new_post_id: + cursor.execute(""" + SELECT quote_content FROM post WHERE post_id = ? + """, (new_post_id,)) + row = cursor.fetchone() + if row and row[0]: + action_args['quote_content'] = row[0] + + # 关注用户:补充被关注用户的名称 + elif action_type == 'FOLLOW': + follow_id = action_args.get('follow_id') + if follow_id: + # 从 follow 表获取 followee_id + cursor.execute(""" + SELECT followee_id FROM follow WHERE follow_id = ? + """, (follow_id,)) + row = cursor.fetchone() + if row: + followee_id = row[0] + target_name = _get_user_name(cursor, followee_id, agent_names) + if target_name: + action_args['target_user_name'] = target_name + + # 屏蔽用户:补充被屏蔽用户的名称 + elif action_type == 'MUTE': + # 从 action_args 中获取 user_id 或 target_id + target_id = action_args.get('user_id') or action_args.get('target_id') + if target_id: + target_name = _get_user_name(cursor, target_id, agent_names) + if target_name: + action_args['target_user_name'] = target_name + + # 点赞/踩评论:补充评论内容和作者 + elif action_type in ('LIKE_COMMENT', 'DISLIKE_COMMENT'): + comment_id = action_args.get('comment_id') + if comment_id: + comment_info = _get_comment_info(cursor, comment_id, agent_names) + if comment_info: + action_args['comment_content'] = comment_info.get('content', '') + action_args['comment_author_name'] = comment_info.get('author_name', '') + + # 发表评论:补充所评论的帖子信息 + elif action_type == 'CREATE_COMMENT': + post_id = action_args.get('post_id') + if post_id: + post_info = _get_post_info(cursor, post_id, agent_names) + if post_info: + action_args['post_content'] = post_info.get('content', '') + action_args['post_author_name'] = post_info.get('author_name', '') + + except Exception as e: + # 补充上下文失败不影响主流程 + print(f"补充动作上下文失败: {e}") + + +def _get_post_info( + cursor, + post_id: int, + agent_names: Dict[int, str] +) -> Optional[Dict[str, str]]: + """ + 获取帖子信息 + + Args: + cursor: 数据库游标 + post_id: 帖子ID + agent_names: agent_id -> agent_name 映射 + + Returns: + 包含 content 和 author_name 的字典,或 None + """ + try: + cursor.execute(""" + SELECT p.content, p.user_id, u.agent_id + FROM post p + LEFT JOIN user u ON p.user_id = u.user_id + WHERE p.post_id = ? + """, (post_id,)) + row = cursor.fetchone() + if row: + content = row[0] or '' + user_id = row[1] + agent_id = row[2] + + # 优先使用 agent_names 中的名称 + author_name = '' + if agent_id is not None and agent_id in agent_names: + author_name = agent_names[agent_id] + elif user_id: + # 从 user 表获取名称 + cursor.execute("SELECT name, user_name FROM user WHERE user_id = ?", (user_id,)) + user_row = cursor.fetchone() + if user_row: + author_name = user_row[0] or user_row[1] or '' + + return {'content': content, 'author_name': author_name} + except Exception: + pass + return None + + +def _get_user_name( + cursor, + user_id: int, + agent_names: Dict[int, str] +) -> Optional[str]: + """ + 获取用户名称 + + Args: + cursor: 数据库游标 + user_id: 用户ID + agent_names: agent_id -> agent_name 映射 + + Returns: + 用户名称,或 None + """ + try: + cursor.execute(""" + SELECT agent_id, name, user_name FROM user WHERE user_id = ? + """, (user_id,)) + row = cursor.fetchone() + if row: + agent_id = row[0] + name = row[1] + user_name = row[2] + + # 优先使用 agent_names 中的名称 + if agent_id is not None and agent_id in agent_names: + return agent_names[agent_id] + return name or user_name or '' + except Exception: + pass + return None + + +def _get_comment_info( + cursor, + comment_id: int, + agent_names: Dict[int, str] +) -> Optional[Dict[str, str]]: + """ + 获取评论信息 + + Args: + cursor: 数据库游标 + comment_id: 评论ID + agent_names: agent_id -> agent_name 映射 + + Returns: + 包含 content 和 author_name 的字典,或 None + """ + try: + cursor.execute(""" + SELECT c.content, c.user_id, u.agent_id + FROM comment c + LEFT JOIN user u ON c.user_id = u.user_id + WHERE c.comment_id = ? + """, (comment_id,)) + row = cursor.fetchone() + if row: + content = row[0] or '' + user_id = row[1] + agent_id = row[2] + + # 优先使用 agent_names 中的名称 + author_name = '' + if agent_id is not None and agent_id in agent_names: + author_name = agent_names[agent_id] + elif user_id: + # 从 user 表获取名称 + cursor.execute("SELECT name, user_name FROM user WHERE user_id = ?", (user_id,)) + user_row = cursor.fetchone() + if user_row: + author_name = user_row[0] or user_row[1] or '' + + return {'content': content, 'author_name': author_name} + except Exception: + pass + return None + + +def create_model(config: Dict[str, Any], use_boost: bool = False): + """ + 创建LLM模型 + + 支持双 LLM 配置,用于并行模拟时提速: + - 通用配置:LLM_API_KEY, LLM_BASE_URL, LLM_MODEL_NAME + - 加速配置(可选):LLM_BOOST_API_KEY, LLM_BOOST_BASE_URL, LLM_BOOST_MODEL_NAME + + 如果配置了加速 LLM,并行模拟时可以让不同平台使用不同的 API 服务商,提高并发能力。 + + Args: + config: 模拟配置字典 + use_boost: 是否使用加速 LLM 配置(如果可用) + """ + # 检查是否有加速配置 + boost_api_key = os.environ.get("LLM_BOOST_API_KEY", "") + boost_base_url = os.environ.get("LLM_BOOST_BASE_URL", "") + boost_model = os.environ.get("LLM_BOOST_MODEL_NAME", "") + has_boost_config = bool(boost_api_key) + + # 根据参数和配置情况选择使用哪个 LLM + if use_boost and has_boost_config: + # 使用加速配置 + llm_api_key = boost_api_key + llm_base_url = boost_base_url + llm_model = boost_model or os.environ.get("LLM_MODEL_NAME", "") + config_label = "[加速LLM]" + else: + # 使用通用配置 + llm_api_key = os.environ.get("LLM_API_KEY", "") + llm_base_url = os.environ.get("LLM_BASE_URL", "") + llm_model = os.environ.get("LLM_MODEL_NAME", "") + config_label = "[通用LLM]" + + # 如果 .env 中没有模型名,则使用 config 作为备用 + if not llm_model: + llm_model = config.get("llm_model", "gpt-4o-mini") + + # 设置 camel-ai 所需的环境变量 + if llm_api_key: + os.environ["OPENAI_API_KEY"] = llm_api_key + + if not os.environ.get("OPENAI_API_KEY"): + raise ValueError("缺少 API Key 配置,请在项目根目录 .env 文件中设置 LLM_API_KEY") + + if llm_base_url: + os.environ["OPENAI_API_BASE_URL"] = llm_base_url + + print(f"{config_label} model={llm_model}, base_url={llm_base_url[:40] if llm_base_url else '默认'}...") + + return ModelFactory.create( + model_platform=ModelPlatformType.OPENAI, + model_type=llm_model, + ) + + +def get_active_agents_for_round( + env, + config: Dict[str, Any], + current_hour: int, + round_num: int +) -> List: + """根据时间和配置决定本轮激活哪些Agent""" + time_config = config.get("time_config", {}) + agent_configs = config.get("agent_configs", []) + + base_min = time_config.get("agents_per_hour_min", 5) + base_max = time_config.get("agents_per_hour_max", 20) + + peak_hours = time_config.get("peak_hours", [9, 10, 11, 14, 15, 20, 21, 22]) + off_peak_hours = time_config.get("off_peak_hours", [0, 1, 2, 3, 4, 5]) + + if current_hour in peak_hours: + multiplier = time_config.get("peak_activity_multiplier", 1.5) + elif current_hour in off_peak_hours: + multiplier = time_config.get("off_peak_activity_multiplier", 0.3) + else: + multiplier = 1.0 + + target_count = int(random.uniform(base_min, base_max) * multiplier) + + candidates = [] + for cfg in agent_configs: + agent_id = cfg.get("agent_id", 0) + active_hours = cfg.get("active_hours", list(range(8, 23))) + activity_level = cfg.get("activity_level", 0.5) + + if current_hour not in active_hours: + continue + + if random.random() < activity_level: + candidates.append(agent_id) + + selected_ids = random.sample( + candidates, + min(target_count, len(candidates)) + ) if candidates else [] + + active_agents = [] + for agent_id in selected_ids: + try: + agent = env.agent_graph.get_agent(agent_id) + active_agents.append((agent_id, agent)) + except Exception: + pass + + return active_agents + + +class PlatformSimulation: + """平台模拟结果容器""" + def __init__(self): + self.env = None + self.agent_graph = None + self.total_actions = 0 + + +async def run_twitter_simulation( + config: Dict[str, Any], + simulation_dir: str, + action_logger: Optional[PlatformActionLogger] = None, + main_logger: Optional[SimulationLogManager] = None, + max_rounds: Optional[int] = None +) -> PlatformSimulation: + """运行Twitter模拟 + + Args: + config: 模拟配置 + simulation_dir: 模拟目录 + action_logger: 动作日志记录器 + main_logger: 主日志管理器 + max_rounds: 最大模拟轮数(可选,用于截断过长的模拟) + + Returns: + PlatformSimulation: 包含env和agent_graph的结果对象 + """ + result = PlatformSimulation() + + def log_info(msg): + if main_logger: + main_logger.info(f"[Twitter] {msg}") + print(f"[Twitter] {msg}") + + log_info("初始化...") + + # Twitter 使用通用 LLM 配置 + model = create_model(config, use_boost=False) + + # OASIS Twitter使用CSV格式 + profile_path = os.path.join(simulation_dir, "twitter_profiles.csv") + if not os.path.exists(profile_path): + log_info(f"错误: Profile文件不存在: {profile_path}") + return result + + result.agent_graph = await generate_twitter_agent_graph( + profile_path=profile_path, + model=model, + available_actions=TWITTER_ACTIONS, + ) + + # 从配置文件获取 Agent 真实名称映射(使用 entity_name 而非默认的 Agent_X) + agent_names = get_agent_names_from_config(config) + # 如果配置中没有某个 agent,则使用 OASIS 的默认名称 + for agent_id, agent in result.agent_graph.get_agents(): + if agent_id not in agent_names: + agent_names[agent_id] = getattr(agent, 'name', f'Agent_{agent_id}') + + db_path = os.path.join(simulation_dir, "twitter_simulation.db") + if os.path.exists(db_path): + os.remove(db_path) + + result.env = oasis.make( + agent_graph=result.agent_graph, + platform=oasis.DefaultPlatformType.TWITTER, + database_path=db_path, + semaphore=30, # 限制最大并发 LLM 请求数,防止 API 过载 + ) + + await result.env.reset() + log_info("环境已启动") + + if action_logger: + action_logger.log_simulation_start(config) + + total_actions = 0 + last_rowid = 0 # 跟踪数据库中最后处理的行号(使用 rowid 避免 created_at 格式差异) + + # 执行初始事件 + event_config = config.get("event_config", {}) + initial_posts = event_config.get("initial_posts", []) + + # 记录 round 0 开始(初始事件阶段) + if action_logger: + action_logger.log_round_start(0, 0) # round 0, simulated_hour 0 + + initial_action_count = 0 + if initial_posts: + initial_actions = {} + for post in initial_posts: + agent_id = post.get("poster_agent_id", 0) + content = post.get("content", "") + try: + agent = result.env.agent_graph.get_agent(agent_id) + initial_actions[agent] = ManualAction( + action_type=ActionType.CREATE_POST, + action_args={"content": content} + ) + + if action_logger: + action_logger.log_action( + round_num=0, + agent_id=agent_id, + agent_name=agent_names.get(agent_id, f"Agent_{agent_id}"), + action_type="CREATE_POST", + action_args={"content": content} + ) + total_actions += 1 + initial_action_count += 1 + except Exception: + pass + + if initial_actions: + await result.env.step(initial_actions) + log_info(f"已发布 {len(initial_actions)} 条初始帖子") + + # 记录 round 0 结束 + if action_logger: + action_logger.log_round_end(0, initial_action_count) + + # 主模拟循环 + time_config = config.get("time_config", {}) + total_hours = time_config.get("total_simulation_hours", 72) + minutes_per_round = time_config.get("minutes_per_round", 30) + total_rounds = (total_hours * 60) // minutes_per_round + + # 如果指定了最大轮数,则截断 + if max_rounds is not None and max_rounds > 0: + original_rounds = total_rounds + total_rounds = min(total_rounds, max_rounds) + if total_rounds < original_rounds: + log_info(f"轮数已截断: {original_rounds} -> {total_rounds} (max_rounds={max_rounds})") + + start_time = datetime.now() + + for round_num in range(total_rounds): + # 检查是否收到退出信号 + if _shutdown_event and _shutdown_event.is_set(): + if main_logger: + main_logger.info(f"收到退出信号,在第 {round_num + 1} 轮停止模拟") + break + + simulated_minutes = round_num * minutes_per_round + simulated_hour = (simulated_minutes // 60) % 24 + simulated_day = simulated_minutes // (60 * 24) + 1 + + active_agents = get_active_agents_for_round( + result.env, config, simulated_hour, round_num + ) + + # 无论是否有活跃agent,都记录round开始 + if action_logger: + action_logger.log_round_start(round_num + 1, simulated_hour) + + if not active_agents: + # 没有活跃agent时也记录round结束(actions_count=0) + if action_logger: + action_logger.log_round_end(round_num + 1, 0) + continue + + actions = {agent: LLMAction() for _, agent in active_agents} + await result.env.step(actions) + + # 从数据库获取实际执行的动作并记录 + actual_actions, last_rowid = fetch_new_actions_from_db( + db_path, last_rowid, agent_names + ) + + round_action_count = 0 + for action_data in actual_actions: + if action_logger: + action_logger.log_action( + round_num=round_num + 1, + agent_id=action_data['agent_id'], + agent_name=action_data['agent_name'], + action_type=action_data['action_type'], + action_args=action_data['action_args'] + ) + total_actions += 1 + round_action_count += 1 + + if action_logger: + action_logger.log_round_end(round_num + 1, round_action_count) + + if (round_num + 1) % 20 == 0: + progress = (round_num + 1) / total_rounds * 100 + log_info(f"Day {simulated_day}, {simulated_hour:02d}:00 - Round {round_num + 1}/{total_rounds} ({progress:.1f}%)") + + # 注意:不关闭环境,保留给Interview使用 + + if action_logger: + action_logger.log_simulation_end(total_rounds, total_actions) + + result.total_actions = total_actions + elapsed = (datetime.now() - start_time).total_seconds() + log_info(f"模拟循环完成! 耗时: {elapsed:.1f}秒, 总动作: {total_actions}") + + return result + + +async def run_reddit_simulation( + config: Dict[str, Any], + simulation_dir: str, + action_logger: Optional[PlatformActionLogger] = None, + main_logger: Optional[SimulationLogManager] = None, + max_rounds: Optional[int] = None +) -> PlatformSimulation: + """运行Reddit模拟 + + Args: + config: 模拟配置 + simulation_dir: 模拟目录 + action_logger: 动作日志记录器 + main_logger: 主日志管理器 + max_rounds: 最大模拟轮数(可选,用于截断过长的模拟) + + Returns: + PlatformSimulation: 包含env和agent_graph的结果对象 + """ + result = PlatformSimulation() + + def log_info(msg): + if main_logger: + main_logger.info(f"[Reddit] {msg}") + print(f"[Reddit] {msg}") + + log_info("初始化...") + + # Reddit 使用加速 LLM 配置(如果有的话,否则回退到通用配置) + model = create_model(config, use_boost=True) + + profile_path = os.path.join(simulation_dir, "reddit_profiles.json") + if not os.path.exists(profile_path): + log_info(f"错误: Profile文件不存在: {profile_path}") + return result + + result.agent_graph = await generate_reddit_agent_graph( + profile_path=profile_path, + model=model, + available_actions=REDDIT_ACTIONS, + ) + + # 从配置文件获取 Agent 真实名称映射(使用 entity_name 而非默认的 Agent_X) + agent_names = get_agent_names_from_config(config) + # 如果配置中没有某个 agent,则使用 OASIS 的默认名称 + for agent_id, agent in result.agent_graph.get_agents(): + if agent_id not in agent_names: + agent_names[agent_id] = getattr(agent, 'name', f'Agent_{agent_id}') + + db_path = os.path.join(simulation_dir, "reddit_simulation.db") + if os.path.exists(db_path): + os.remove(db_path) + + result.env = oasis.make( + agent_graph=result.agent_graph, + platform=oasis.DefaultPlatformType.REDDIT, + database_path=db_path, + semaphore=30, # 限制最大并发 LLM 请求数,防止 API 过载 + ) + + await result.env.reset() + log_info("环境已启动") + + if action_logger: + action_logger.log_simulation_start(config) + + total_actions = 0 + last_rowid = 0 # 跟踪数据库中最后处理的行号(使用 rowid 避免 created_at 格式差异) + + # 执行初始事件 + event_config = config.get("event_config", {}) + initial_posts = event_config.get("initial_posts", []) + + # 记录 round 0 开始(初始事件阶段) + if action_logger: + action_logger.log_round_start(0, 0) # round 0, simulated_hour 0 + + initial_action_count = 0 + if initial_posts: + initial_actions = {} + for post in initial_posts: + agent_id = post.get("poster_agent_id", 0) + content = post.get("content", "") + try: + agent = result.env.agent_graph.get_agent(agent_id) + if agent in initial_actions: + if not isinstance(initial_actions[agent], list): + initial_actions[agent] = [initial_actions[agent]] + initial_actions[agent].append(ManualAction( + action_type=ActionType.CREATE_POST, + action_args={"content": content} + )) + else: + initial_actions[agent] = ManualAction( + action_type=ActionType.CREATE_POST, + action_args={"content": content} + ) + + if action_logger: + action_logger.log_action( + round_num=0, + agent_id=agent_id, + agent_name=agent_names.get(agent_id, f"Agent_{agent_id}"), + action_type="CREATE_POST", + action_args={"content": content} + ) + total_actions += 1 + initial_action_count += 1 + except Exception: + pass + + if initial_actions: + await result.env.step(initial_actions) + log_info(f"已发布 {len(initial_actions)} 条初始帖子") + + # 记录 round 0 结束 + if action_logger: + action_logger.log_round_end(0, initial_action_count) + + # 主模拟循环 + time_config = config.get("time_config", {}) + total_hours = time_config.get("total_simulation_hours", 72) + minutes_per_round = time_config.get("minutes_per_round", 30) + total_rounds = (total_hours * 60) // minutes_per_round + + # 如果指定了最大轮数,则截断 + if max_rounds is not None and max_rounds > 0: + original_rounds = total_rounds + total_rounds = min(total_rounds, max_rounds) + if total_rounds < original_rounds: + log_info(f"轮数已截断: {original_rounds} -> {total_rounds} (max_rounds={max_rounds})") + + start_time = datetime.now() + + for round_num in range(total_rounds): + # 检查是否收到退出信号 + if _shutdown_event and _shutdown_event.is_set(): + if main_logger: + main_logger.info(f"收到退出信号,在第 {round_num + 1} 轮停止模拟") + break + + simulated_minutes = round_num * minutes_per_round + simulated_hour = (simulated_minutes // 60) % 24 + simulated_day = simulated_minutes // (60 * 24) + 1 + + active_agents = get_active_agents_for_round( + result.env, config, simulated_hour, round_num + ) + + # 无论是否有活跃agent,都记录round开始 + if action_logger: + action_logger.log_round_start(round_num + 1, simulated_hour) + + if not active_agents: + # 没有活跃agent时也记录round结束(actions_count=0) + if action_logger: + action_logger.log_round_end(round_num + 1, 0) + continue + + actions = {agent: LLMAction() for _, agent in active_agents} + await result.env.step(actions) + + # 从数据库获取实际执行的动作并记录 + actual_actions, last_rowid = fetch_new_actions_from_db( + db_path, last_rowid, agent_names + ) + + round_action_count = 0 + for action_data in actual_actions: + if action_logger: + action_logger.log_action( + round_num=round_num + 1, + agent_id=action_data['agent_id'], + agent_name=action_data['agent_name'], + action_type=action_data['action_type'], + action_args=action_data['action_args'] + ) + total_actions += 1 + round_action_count += 1 + + if action_logger: + action_logger.log_round_end(round_num + 1, round_action_count) + + if (round_num + 1) % 20 == 0: + progress = (round_num + 1) / total_rounds * 100 + log_info(f"Day {simulated_day}, {simulated_hour:02d}:00 - Round {round_num + 1}/{total_rounds} ({progress:.1f}%)") + + # 注意:不关闭环境,保留给Interview使用 + + if action_logger: + action_logger.log_simulation_end(total_rounds, total_actions) + + result.total_actions = total_actions + elapsed = (datetime.now() - start_time).total_seconds() + log_info(f"模拟循环完成! 耗时: {elapsed:.1f}秒, 总动作: {total_actions}") + + return result + + +async def main(): + parser = argparse.ArgumentParser(description='OASIS双平台并行模拟') + parser.add_argument( + '--config', + type=str, + required=True, + help='配置文件路径 (simulation_config.json)' + ) + parser.add_argument( + '--twitter-only', + action='store_true', + help='只运行Twitter模拟' + ) + parser.add_argument( + '--reddit-only', + action='store_true', + help='只运行Reddit模拟' + ) + parser.add_argument( + '--max-rounds', + type=int, + default=None, + help='最大模拟轮数(可选,用于截断过长的模拟)' + ) + parser.add_argument( + '--no-wait', + action='store_true', + default=False, + help='模拟完成后立即关闭环境,不进入等待命令模式' + ) + + args = parser.parse_args() + + # 在 main 函数开始时创建 shutdown 事件,确保整个程序都能响应退出信号 + global _shutdown_event + _shutdown_event = asyncio.Event() + + if not os.path.exists(args.config): + print(f"错误: 配置文件不存在: {args.config}") + sys.exit(1) + + config = load_config(args.config) + simulation_dir = os.path.dirname(args.config) or "." + wait_for_commands = not args.no_wait + + # 初始化日志配置(禁用 OASIS 日志,清理旧文件) + init_logging_for_simulation(simulation_dir) + + # 创建日志管理器 + log_manager = SimulationLogManager(simulation_dir) + twitter_logger = log_manager.get_twitter_logger() + reddit_logger = log_manager.get_reddit_logger() + + log_manager.info("=" * 60) + log_manager.info("OASIS 双平台并行模拟") + log_manager.info(f"配置文件: {args.config}") + log_manager.info(f"模拟ID: {config.get('simulation_id', 'unknown')}") + log_manager.info(f"等待命令模式: {'启用' if wait_for_commands else '禁用'}") + log_manager.info("=" * 60) + + time_config = config.get("time_config", {}) + total_hours = time_config.get('total_simulation_hours', 72) + minutes_per_round = time_config.get('minutes_per_round', 30) + config_total_rounds = (total_hours * 60) // minutes_per_round + + log_manager.info(f"模拟参数:") + log_manager.info(f" - 总模拟时长: {total_hours}小时") + log_manager.info(f" - 每轮时间: {minutes_per_round}分钟") + log_manager.info(f" - 配置总轮数: {config_total_rounds}") + if args.max_rounds: + log_manager.info(f" - 最大轮数限制: {args.max_rounds}") + if args.max_rounds < config_total_rounds: + log_manager.info(f" - 实际执行轮数: {args.max_rounds} (已截断)") + log_manager.info(f" - Agent数量: {len(config.get('agent_configs', []))}") + + log_manager.info("日志结构:") + log_manager.info(f" - 主日志: simulation.log") + log_manager.info(f" - Twitter动作: twitter/actions.jsonl") + log_manager.info(f" - Reddit动作: reddit/actions.jsonl") + log_manager.info("=" * 60) + + start_time = datetime.now() + + # 存储两个平台的模拟结果 + twitter_result: Optional[PlatformSimulation] = None + reddit_result: Optional[PlatformSimulation] = None + + if args.twitter_only: + twitter_result = await run_twitter_simulation(config, simulation_dir, twitter_logger, log_manager, args.max_rounds) + elif args.reddit_only: + reddit_result = await run_reddit_simulation(config, simulation_dir, reddit_logger, log_manager, args.max_rounds) + else: + # 并行运行(每个平台使用独立的日志记录器) + results = await asyncio.gather( + run_twitter_simulation(config, simulation_dir, twitter_logger, log_manager, args.max_rounds), + run_reddit_simulation(config, simulation_dir, reddit_logger, log_manager, args.max_rounds), + ) + twitter_result, reddit_result = results + + total_elapsed = (datetime.now() - start_time).total_seconds() + log_manager.info("=" * 60) + log_manager.info(f"模拟循环完成! 总耗时: {total_elapsed:.1f}秒") + + # 是否进入等待命令模式 + if wait_for_commands: + log_manager.info("") + log_manager.info("=" * 60) + log_manager.info("进入等待命令模式 - 环境保持运行") + log_manager.info("支持的命令: interview, batch_interview, close_env") + log_manager.info("=" * 60) + + # 创建IPC处理器 + ipc_handler = ParallelIPCHandler( + simulation_dir=simulation_dir, + twitter_env=twitter_result.env if twitter_result else None, + twitter_agent_graph=twitter_result.agent_graph if twitter_result else None, + reddit_env=reddit_result.env if reddit_result else None, + reddit_agent_graph=reddit_result.agent_graph if reddit_result else None + ) + ipc_handler.update_status("alive") + + # 等待命令循环(使用全局 _shutdown_event) + try: + while not _shutdown_event.is_set(): + should_continue = await ipc_handler.process_commands() + if not should_continue: + break + # 使用 wait_for 替代 sleep,这样可以响应 shutdown_event + try: + await asyncio.wait_for(_shutdown_event.wait(), timeout=0.5) + break # 收到退出信号 + except asyncio.TimeoutError: + pass # 超时继续循环 + except KeyboardInterrupt: + print("\n收到中断信号") + except asyncio.CancelledError: + print("\n任务被取消") + except Exception as e: + print(f"\n命令处理出错: {e}") + + log_manager.info("\n关闭环境...") + ipc_handler.update_status("stopped") + + # 关闭环境 + if twitter_result and twitter_result.env: + await twitter_result.env.close() + log_manager.info("[Twitter] 环境已关闭") + + if reddit_result and reddit_result.env: + await reddit_result.env.close() + log_manager.info("[Reddit] 环境已关闭") + + log_manager.info("=" * 60) + log_manager.info(f"全部完成!") + log_manager.info(f"日志文件:") + log_manager.info(f" - {os.path.join(simulation_dir, 'simulation.log')}") + log_manager.info(f" - {os.path.join(simulation_dir, 'twitter', 'actions.jsonl')}") + log_manager.info(f" - {os.path.join(simulation_dir, 'reddit', 'actions.jsonl')}") + log_manager.info("=" * 60) + + +def setup_signal_handlers(loop=None): + """ + 设置信号处理器,确保收到 SIGTERM/SIGINT 时能够正确退出 + + 持久化模拟场景:模拟完成后不退出,等待 interview 命令 + 当收到终止信号时,需要: + 1. 通知 asyncio 循环退出等待 + 2. 让程序有机会正常清理资源(关闭数据库、环境等) + 3. 然后才退出 + """ + def signal_handler(signum, frame): + global _cleanup_done + sig_name = "SIGTERM" if signum == signal.SIGTERM else "SIGINT" + print(f"\n收到 {sig_name} 信号,正在退出...") + + if not _cleanup_done: + _cleanup_done = True + # 设置事件通知 asyncio 循环退出(让循环有机会清理资源) + if _shutdown_event: + _shutdown_event.set() + + # 不要直接 sys.exit(),让 asyncio 循环正常退出并清理资源 + # 如果是重复收到信号,才强制退出 + else: + print("强制退出...") + sys.exit(1) + + signal.signal(signal.SIGTERM, signal_handler) + signal.signal(signal.SIGINT, signal_handler) + + +if __name__ == "__main__": + setup_signal_handlers() + try: + asyncio.run(main()) + except KeyboardInterrupt: + print("\n程序被中断") + except SystemExit: + pass + finally: + # 清理 multiprocessing 资源跟踪器(防止退出时的警告) + try: + from multiprocessing import resource_tracker + resource_tracker._resource_tracker._stop() + except Exception: + pass + print("模拟进程已退出") diff --git a/backend/scripts/run_reddit_simulation.py b/backend/scripts/run_reddit_simulation.py new file mode 100644 index 00000000..14907cbd --- /dev/null +++ b/backend/scripts/run_reddit_simulation.py @@ -0,0 +1,769 @@ +""" +OASIS Reddit模拟预设脚本 +此脚本读取配置文件中的参数来执行模拟,实现全程自动化 + +功能特性: +- 完成模拟后不立即关闭环境,进入等待命令模式 +- 支持通过IPC接收Interview命令 +- 支持单个Agent采访和批量采访 +- 支持远程关闭环境命令 + +使用方式: + python run_reddit_simulation.py --config /path/to/simulation_config.json + python run_reddit_simulation.py --config /path/to/simulation_config.json --no-wait # 完成后立即关闭 +""" + +import argparse +import asyncio +import json +import logging +import os +import random +import signal +import sys +import sqlite3 +from datetime import datetime +from typing import Dict, Any, List, Optional + +# 全局变量:用于信号处理 +_shutdown_event = None +_cleanup_done = False + +# 添加项目路径 +_scripts_dir = os.path.dirname(os.path.abspath(__file__)) +_backend_dir = os.path.abspath(os.path.join(_scripts_dir, '..')) +_project_root = os.path.abspath(os.path.join(_backend_dir, '..')) +sys.path.insert(0, _scripts_dir) +sys.path.insert(0, _backend_dir) + +# 加载项目根目录的 .env 文件(包含 LLM_API_KEY 等配置) +from dotenv import load_dotenv +_env_file = os.path.join(_project_root, '.env') +if os.path.exists(_env_file): + load_dotenv(_env_file) +else: + _backend_env = os.path.join(_backend_dir, '.env') + if os.path.exists(_backend_env): + load_dotenv(_backend_env) + + +import re + + +class UnicodeFormatter(logging.Formatter): + """自定义格式化器,将 Unicode 转义序列转换为可读字符""" + + UNICODE_ESCAPE_PATTERN = re.compile(r'\\u([0-9a-fA-F]{4})') + + def format(self, record): + result = super().format(record) + + def replace_unicode(match): + try: + return chr(int(match.group(1), 16)) + except (ValueError, OverflowError): + return match.group(0) + + return self.UNICODE_ESCAPE_PATTERN.sub(replace_unicode, result) + + +class MaxTokensWarningFilter(logging.Filter): + """过滤掉 camel-ai 关于 max_tokens 的警告(我们故意不设置 max_tokens,让模型自行决定)""" + + def filter(self, record): + # 过滤掉包含 max_tokens 警告的日志 + if "max_tokens" in record.getMessage() and "Invalid or missing" in record.getMessage(): + return False + return True + + +# 在模块加载时立即添加过滤器,确保在 camel 代码执行前生效 +logging.getLogger().addFilter(MaxTokensWarningFilter()) + + +def setup_oasis_logging(log_dir: str): + """配置 OASIS 的日志,使用固定名称的日志文件""" + os.makedirs(log_dir, exist_ok=True) + + # 清理旧的日志文件 + for f in os.listdir(log_dir): + old_log = os.path.join(log_dir, f) + if os.path.isfile(old_log) and f.endswith('.log'): + try: + os.remove(old_log) + except OSError: + pass + + formatter = UnicodeFormatter("%(levelname)s - %(asctime)s - %(name)s - %(message)s") + + loggers_config = { + "social.agent": os.path.join(log_dir, "social.agent.log"), + "social.twitter": os.path.join(log_dir, "social.twitter.log"), + "social.rec": os.path.join(log_dir, "social.rec.log"), + "oasis.env": os.path.join(log_dir, "oasis.env.log"), + "table": os.path.join(log_dir, "table.log"), + } + + for logger_name, log_file in loggers_config.items(): + logger = logging.getLogger(logger_name) + logger.setLevel(logging.DEBUG) + logger.handlers.clear() + file_handler = logging.FileHandler(log_file, encoding='utf-8', mode='w') + file_handler.setLevel(logging.DEBUG) + file_handler.setFormatter(formatter) + logger.addHandler(file_handler) + logger.propagate = False + + +try: + from camel.models import ModelFactory + from camel.types import ModelPlatformType + import oasis + from oasis import ( + ActionType, + LLMAction, + ManualAction, + generate_reddit_agent_graph + ) +except ImportError as e: + print(f"错误: 缺少依赖 {e}") + print("请先安装: pip install oasis-ai camel-ai") + sys.exit(1) + + +# IPC相关常量 +IPC_COMMANDS_DIR = "ipc_commands" +IPC_RESPONSES_DIR = "ipc_responses" +ENV_STATUS_FILE = "env_status.json" + +class CommandType: + """命令类型常量""" + INTERVIEW = "interview" + BATCH_INTERVIEW = "batch_interview" + CLOSE_ENV = "close_env" + + +class IPCHandler: + """IPC命令处理器""" + + def __init__(self, simulation_dir: str, env, agent_graph): + self.simulation_dir = simulation_dir + self.env = env + self.agent_graph = agent_graph + self.commands_dir = os.path.join(simulation_dir, IPC_COMMANDS_DIR) + self.responses_dir = os.path.join(simulation_dir, IPC_RESPONSES_DIR) + self.status_file = os.path.join(simulation_dir, ENV_STATUS_FILE) + self._running = True + + # 确保目录存在 + os.makedirs(self.commands_dir, exist_ok=True) + os.makedirs(self.responses_dir, exist_ok=True) + + def update_status(self, status: str): + """更新环境状态""" + with open(self.status_file, 'w', encoding='utf-8') as f: + json.dump({ + "status": status, + "timestamp": datetime.now().isoformat() + }, f, ensure_ascii=False, indent=2) + + def poll_command(self) -> Optional[Dict[str, Any]]: + """轮询获取待处理命令""" + if not os.path.exists(self.commands_dir): + return None + + # 获取命令文件(按时间排序) + command_files = [] + for filename in os.listdir(self.commands_dir): + if filename.endswith('.json'): + filepath = os.path.join(self.commands_dir, filename) + command_files.append((filepath, os.path.getmtime(filepath))) + + command_files.sort(key=lambda x: x[1]) + + for filepath, _ in command_files: + try: + with open(filepath, 'r', encoding='utf-8') as f: + return json.load(f) + except (json.JSONDecodeError, OSError): + continue + + return None + + def send_response(self, command_id: str, status: str, result: Dict = None, error: str = None): + """发送响应""" + response = { + "command_id": command_id, + "status": status, + "result": result, + "error": error, + "timestamp": datetime.now().isoformat() + } + + response_file = os.path.join(self.responses_dir, f"{command_id}.json") + with open(response_file, 'w', encoding='utf-8') as f: + json.dump(response, f, ensure_ascii=False, indent=2) + + # 删除命令文件 + command_file = os.path.join(self.commands_dir, f"{command_id}.json") + try: + os.remove(command_file) + except OSError: + pass + + async def handle_interview(self, command_id: str, agent_id: int, prompt: str) -> bool: + """ + 处理单个Agent采访命令 + + Returns: + True 表示成功,False 表示失败 + """ + try: + # 获取Agent + agent = self.agent_graph.get_agent(agent_id) + + # 创建Interview动作 + interview_action = ManualAction( + action_type=ActionType.INTERVIEW, + action_args={"prompt": prompt} + ) + + # 执行Interview + actions = {agent: interview_action} + await self.env.step(actions) + + # 从数据库获取结果 + result = self._get_interview_result(agent_id) + + self.send_response(command_id, "completed", result=result) + print(f" Interview完成: agent_id={agent_id}") + return True + + except Exception as e: + error_msg = str(e) + print(f" Interview失败: agent_id={agent_id}, error={error_msg}") + self.send_response(command_id, "failed", error=error_msg) + return False + + async def handle_batch_interview(self, command_id: str, interviews: List[Dict]) -> bool: + """ + 处理批量采访命令 + + Args: + interviews: [{"agent_id": int, "prompt": str}, ...] + """ + try: + # 构建动作字典 + actions = {} + agent_prompts = {} # 记录每个agent的prompt + + for interview in interviews: + agent_id = interview.get("agent_id") + prompt = interview.get("prompt", "") + + try: + agent = self.agent_graph.get_agent(agent_id) + actions[agent] = ManualAction( + action_type=ActionType.INTERVIEW, + action_args={"prompt": prompt} + ) + agent_prompts[agent_id] = prompt + except Exception as e: + print(f" 警告: 无法获取Agent {agent_id}: {e}") + + if not actions: + self.send_response(command_id, "failed", error="没有有效的Agent") + return False + + # 执行批量Interview + await self.env.step(actions) + + # 获取所有结果 + results = {} + for agent_id in agent_prompts.keys(): + result = self._get_interview_result(agent_id) + results[agent_id] = result + + self.send_response(command_id, "completed", result={ + "interviews_count": len(results), + "results": results + }) + print(f" 批量Interview完成: {len(results)} 个Agent") + return True + + except Exception as e: + error_msg = str(e) + print(f" 批量Interview失败: {error_msg}") + self.send_response(command_id, "failed", error=error_msg) + return False + + def _get_interview_result(self, agent_id: int) -> Dict[str, Any]: + """从数据库获取最新的Interview结果""" + db_path = os.path.join(self.simulation_dir, "reddit_simulation.db") + + result = { + "agent_id": agent_id, + "response": None, + "timestamp": None + } + + if not os.path.exists(db_path): + return result + + try: + conn = sqlite3.connect(db_path) + cursor = conn.cursor() + + # 查询最新的Interview记录 + cursor.execute(""" + SELECT user_id, info, created_at + FROM trace + WHERE action = ? AND user_id = ? + ORDER BY created_at DESC + LIMIT 1 + """, (ActionType.INTERVIEW.value, agent_id)) + + row = cursor.fetchone() + if row: + user_id, info_json, created_at = row + try: + info = json.loads(info_json) if info_json else {} + result["response"] = info.get("response", info) + result["timestamp"] = created_at + except json.JSONDecodeError: + result["response"] = info_json + + conn.close() + + except Exception as e: + print(f" 读取Interview结果失败: {e}") + + return result + + async def process_commands(self) -> bool: + """ + 处理所有待处理命令 + + Returns: + True 表示继续运行,False 表示应该退出 + """ + command = self.poll_command() + if not command: + return True + + command_id = command.get("command_id") + command_type = command.get("command_type") + args = command.get("args", {}) + + print(f"\n收到IPC命令: {command_type}, id={command_id}") + + if command_type == CommandType.INTERVIEW: + await self.handle_interview( + command_id, + args.get("agent_id", 0), + args.get("prompt", "") + ) + return True + + elif command_type == CommandType.BATCH_INTERVIEW: + await self.handle_batch_interview( + command_id, + args.get("interviews", []) + ) + return True + + elif command_type == CommandType.CLOSE_ENV: + print("收到关闭环境命令") + self.send_response(command_id, "completed", result={"message": "环境即将关闭"}) + return False + + else: + self.send_response(command_id, "failed", error=f"未知命令类型: {command_type}") + return True + + +class RedditSimulationRunner: + """Reddit模拟运行器""" + + # Reddit可用动作(不包含INTERVIEW,INTERVIEW只能通过ManualAction手动触发) + AVAILABLE_ACTIONS = [ + ActionType.LIKE_POST, + ActionType.DISLIKE_POST, + ActionType.CREATE_POST, + ActionType.CREATE_COMMENT, + ActionType.LIKE_COMMENT, + ActionType.DISLIKE_COMMENT, + ActionType.SEARCH_POSTS, + ActionType.SEARCH_USER, + ActionType.TREND, + ActionType.REFRESH, + ActionType.DO_NOTHING, + ActionType.FOLLOW, + ActionType.MUTE, + ] + + def __init__(self, config_path: str, wait_for_commands: bool = True): + """ + 初始化模拟运行器 + + Args: + config_path: 配置文件路径 (simulation_config.json) + wait_for_commands: 模拟完成后是否等待命令(默认True) + """ + self.config_path = config_path + self.config = self._load_config() + self.simulation_dir = os.path.dirname(config_path) + self.wait_for_commands = wait_for_commands + self.env = None + self.agent_graph = None + self.ipc_handler = None + + def _load_config(self) -> Dict[str, Any]: + """加载配置文件""" + with open(self.config_path, 'r', encoding='utf-8') as f: + return json.load(f) + + def _get_profile_path(self) -> str: + """获取Profile文件路径""" + return os.path.join(self.simulation_dir, "reddit_profiles.json") + + def _get_db_path(self) -> str: + """获取数据库路径""" + return os.path.join(self.simulation_dir, "reddit_simulation.db") + + def _create_model(self): + """ + 创建LLM模型 + + 统一使用项目根目录 .env 文件中的配置(优先级最高): + - LLM_API_KEY: API密钥 + - LLM_BASE_URL: API基础URL + - LLM_MODEL_NAME: 模型名称 + """ + # 优先从 .env 读取配置 + llm_api_key = os.environ.get("LLM_API_KEY", "") + llm_base_url = os.environ.get("LLM_BASE_URL", "") + llm_model = os.environ.get("LLM_MODEL_NAME", "") + + # 如果 .env 中没有,则使用 config 作为备用 + if not llm_model: + llm_model = self.config.get("llm_model", "gpt-4o-mini") + + # 设置 camel-ai 所需的环境变量 + if llm_api_key: + os.environ["OPENAI_API_KEY"] = llm_api_key + + if not os.environ.get("OPENAI_API_KEY"): + raise ValueError("缺少 API Key 配置,请在项目根目录 .env 文件中设置 LLM_API_KEY") + + if llm_base_url: + os.environ["OPENAI_API_BASE_URL"] = llm_base_url + + print(f"LLM配置: model={llm_model}, base_url={llm_base_url[:40] if llm_base_url else '默认'}...") + + return ModelFactory.create( + model_platform=ModelPlatformType.OPENAI, + model_type=llm_model, + ) + + def _get_active_agents_for_round( + self, + env, + current_hour: int, + round_num: int + ) -> List: + """ + 根据时间和配置决定本轮激活哪些Agent + """ + time_config = self.config.get("time_config", {}) + agent_configs = self.config.get("agent_configs", []) + + base_min = time_config.get("agents_per_hour_min", 5) + base_max = time_config.get("agents_per_hour_max", 20) + + peak_hours = time_config.get("peak_hours", [9, 10, 11, 14, 15, 20, 21, 22]) + off_peak_hours = time_config.get("off_peak_hours", [0, 1, 2, 3, 4, 5]) + + if current_hour in peak_hours: + multiplier = time_config.get("peak_activity_multiplier", 1.5) + elif current_hour in off_peak_hours: + multiplier = time_config.get("off_peak_activity_multiplier", 0.3) + else: + multiplier = 1.0 + + target_count = int(random.uniform(base_min, base_max) * multiplier) + + candidates = [] + for cfg in agent_configs: + agent_id = cfg.get("agent_id", 0) + active_hours = cfg.get("active_hours", list(range(8, 23))) + activity_level = cfg.get("activity_level", 0.5) + + if current_hour not in active_hours: + continue + + if random.random() < activity_level: + candidates.append(agent_id) + + selected_ids = random.sample( + candidates, + min(target_count, len(candidates)) + ) if candidates else [] + + active_agents = [] + for agent_id in selected_ids: + try: + agent = env.agent_graph.get_agent(agent_id) + active_agents.append((agent_id, agent)) + except Exception: + pass + + return active_agents + + async def run(self, max_rounds: int = None): + """运行Reddit模拟 + + Args: + max_rounds: 最大模拟轮数(可选,用于截断过长的模拟) + """ + print("=" * 60) + print("OASIS Reddit模拟") + print(f"配置文件: {self.config_path}") + print(f"模拟ID: {self.config.get('simulation_id', 'unknown')}") + print(f"等待命令模式: {'启用' if self.wait_for_commands else '禁用'}") + print("=" * 60) + + time_config = self.config.get("time_config", {}) + total_hours = time_config.get("total_simulation_hours", 72) + minutes_per_round = time_config.get("minutes_per_round", 30) + total_rounds = (total_hours * 60) // minutes_per_round + + # 如果指定了最大轮数,则截断 + if max_rounds is not None and max_rounds > 0: + original_rounds = total_rounds + total_rounds = min(total_rounds, max_rounds) + if total_rounds < original_rounds: + print(f"\n轮数已截断: {original_rounds} -> {total_rounds} (max_rounds={max_rounds})") + + print(f"\n模拟参数:") + print(f" - 总模拟时长: {total_hours}小时") + print(f" - 每轮时间: {minutes_per_round}分钟") + print(f" - 总轮数: {total_rounds}") + if max_rounds: + print(f" - 最大轮数限制: {max_rounds}") + print(f" - Agent数量: {len(self.config.get('agent_configs', []))}") + + print("\n初始化LLM模型...") + model = self._create_model() + + print("加载Agent Profile...") + profile_path = self._get_profile_path() + if not os.path.exists(profile_path): + print(f"错误: Profile文件不存在: {profile_path}") + return + + self.agent_graph = await generate_reddit_agent_graph( + profile_path=profile_path, + model=model, + available_actions=self.AVAILABLE_ACTIONS, + ) + + db_path = self._get_db_path() + if os.path.exists(db_path): + os.remove(db_path) + print(f"已删除旧数据库: {db_path}") + + print("创建OASIS环境...") + self.env = oasis.make( + agent_graph=self.agent_graph, + platform=oasis.DefaultPlatformType.REDDIT, + database_path=db_path, + semaphore=30, # 限制最大并发 LLM 请求数,防止 API 过载 + ) + + await self.env.reset() + print("环境初始化完成\n") + + # 初始化IPC处理器 + self.ipc_handler = IPCHandler(self.simulation_dir, self.env, self.agent_graph) + self.ipc_handler.update_status("running") + + # 执行初始事件 + event_config = self.config.get("event_config", {}) + initial_posts = event_config.get("initial_posts", []) + + if initial_posts: + print(f"执行初始事件 ({len(initial_posts)}条初始帖子)...") + initial_actions = {} + for post in initial_posts: + agent_id = post.get("poster_agent_id", 0) + content = post.get("content", "") + try: + agent = self.env.agent_graph.get_agent(agent_id) + if agent in initial_actions: + if not isinstance(initial_actions[agent], list): + initial_actions[agent] = [initial_actions[agent]] + initial_actions[agent].append(ManualAction( + action_type=ActionType.CREATE_POST, + action_args={"content": content} + )) + else: + initial_actions[agent] = ManualAction( + action_type=ActionType.CREATE_POST, + action_args={"content": content} + ) + except Exception as e: + print(f" 警告: 无法为Agent {agent_id}创建初始帖子: {e}") + + if initial_actions: + await self.env.step(initial_actions) + print(f" 已发布 {len(initial_actions)} 条初始帖子") + + # 主模拟循环 + print("\n开始模拟循环...") + start_time = datetime.now() + + for round_num in range(total_rounds): + simulated_minutes = round_num * minutes_per_round + simulated_hour = (simulated_minutes // 60) % 24 + simulated_day = simulated_minutes // (60 * 24) + 1 + + active_agents = self._get_active_agents_for_round( + self.env, simulated_hour, round_num + ) + + if not active_agents: + continue + + actions = { + agent: LLMAction() + for _, agent in active_agents + } + + await self.env.step(actions) + + if (round_num + 1) % 10 == 0 or round_num == 0: + elapsed = (datetime.now() - start_time).total_seconds() + progress = (round_num + 1) / total_rounds * 100 + print(f" [Day {simulated_day}, {simulated_hour:02d}:00] " + f"Round {round_num + 1}/{total_rounds} ({progress:.1f}%) " + f"- {len(active_agents)} agents active " + f"- elapsed: {elapsed:.1f}s") + + total_elapsed = (datetime.now() - start_time).total_seconds() + print(f"\n模拟循环完成!") + print(f" - 总耗时: {total_elapsed:.1f}秒") + print(f" - 数据库: {db_path}") + + # 是否进入等待命令模式 + if self.wait_for_commands: + print("\n" + "=" * 60) + print("进入等待命令模式 - 环境保持运行") + print("支持的命令: interview, batch_interview, close_env") + print("=" * 60) + + self.ipc_handler.update_status("alive") + + # 等待命令循环(使用全局 _shutdown_event) + try: + while not _shutdown_event.is_set(): + should_continue = await self.ipc_handler.process_commands() + if not should_continue: + break + try: + await asyncio.wait_for(_shutdown_event.wait(), timeout=0.5) + break # 收到退出信号 + except asyncio.TimeoutError: + pass + except KeyboardInterrupt: + print("\n收到中断信号") + except asyncio.CancelledError: + print("\n任务被取消") + except Exception as e: + print(f"\n命令处理出错: {e}") + + print("\n关闭环境...") + + # 关闭环境 + self.ipc_handler.update_status("stopped") + await self.env.close() + + print("环境已关闭") + print("=" * 60) + + +async def main(): + parser = argparse.ArgumentParser(description='OASIS Reddit模拟') + parser.add_argument( + '--config', + type=str, + required=True, + help='配置文件路径 (simulation_config.json)' + ) + parser.add_argument( + '--max-rounds', + type=int, + default=None, + help='最大模拟轮数(可选,用于截断过长的模拟)' + ) + parser.add_argument( + '--no-wait', + action='store_true', + default=False, + help='模拟完成后立即关闭环境,不进入等待命令模式' + ) + + args = parser.parse_args() + + # 在 main 函数开始时创建 shutdown 事件 + global _shutdown_event + _shutdown_event = asyncio.Event() + + if not os.path.exists(args.config): + print(f"错误: 配置文件不存在: {args.config}") + sys.exit(1) + + # 初始化日志配置(使用固定文件名,清理旧日志) + simulation_dir = os.path.dirname(args.config) or "." + setup_oasis_logging(os.path.join(simulation_dir, "log")) + + runner = RedditSimulationRunner( + config_path=args.config, + wait_for_commands=not args.no_wait + ) + await runner.run(max_rounds=args.max_rounds) + + +def setup_signal_handlers(): + """ + 设置信号处理器,确保收到 SIGTERM/SIGINT 时能够正确退出 + 让程序有机会正常清理资源(关闭数据库、环境等) + """ + def signal_handler(signum, frame): + global _cleanup_done + sig_name = "SIGTERM" if signum == signal.SIGTERM else "SIGINT" + print(f"\n收到 {sig_name} 信号,正在退出...") + if not _cleanup_done: + _cleanup_done = True + if _shutdown_event: + _shutdown_event.set() + else: + # 重复收到信号才强制退出 + print("强制退出...") + sys.exit(1) + + signal.signal(signal.SIGTERM, signal_handler) + signal.signal(signal.SIGINT, signal_handler) + + +if __name__ == "__main__": + setup_signal_handlers() + try: + asyncio.run(main()) + except KeyboardInterrupt: + print("\n程序被中断") + except SystemExit: + pass + finally: + print("模拟进程已退出") + diff --git a/backend/scripts/run_twitter_simulation.py b/backend/scripts/run_twitter_simulation.py new file mode 100644 index 00000000..caab9e9d --- /dev/null +++ b/backend/scripts/run_twitter_simulation.py @@ -0,0 +1,780 @@ +""" +OASIS Twitter模拟预设脚本 +此脚本读取配置文件中的参数来执行模拟,实现全程自动化 + +功能特性: +- 完成模拟后不立即关闭环境,进入等待命令模式 +- 支持通过IPC接收Interview命令 +- 支持单个Agent采访和批量采访 +- 支持远程关闭环境命令 + +使用方式: + python run_twitter_simulation.py --config /path/to/simulation_config.json + python run_twitter_simulation.py --config /path/to/simulation_config.json --no-wait # 完成后立即关闭 +""" + +import argparse +import asyncio +import json +import logging +import os +import random +import signal +import sys +import sqlite3 +from datetime import datetime +from typing import Dict, Any, List, Optional + +# 全局变量:用于信号处理 +_shutdown_event = None +_cleanup_done = False + +# 添加项目路径 +_scripts_dir = os.path.dirname(os.path.abspath(__file__)) +_backend_dir = os.path.abspath(os.path.join(_scripts_dir, '..')) +_project_root = os.path.abspath(os.path.join(_backend_dir, '..')) +sys.path.insert(0, _scripts_dir) +sys.path.insert(0, _backend_dir) + +# 加载项目根目录的 .env 文件(包含 LLM_API_KEY 等配置) +from dotenv import load_dotenv +_env_file = os.path.join(_project_root, '.env') +if os.path.exists(_env_file): + load_dotenv(_env_file) +else: + _backend_env = os.path.join(_backend_dir, '.env') + if os.path.exists(_backend_env): + load_dotenv(_backend_env) + + +import re + + +class UnicodeFormatter(logging.Formatter): + """自定义格式化器,将 Unicode 转义序列转换为可读字符""" + + UNICODE_ESCAPE_PATTERN = re.compile(r'\\u([0-9a-fA-F]{4})') + + def format(self, record): + result = super().format(record) + + def replace_unicode(match): + try: + return chr(int(match.group(1), 16)) + except (ValueError, OverflowError): + return match.group(0) + + return self.UNICODE_ESCAPE_PATTERN.sub(replace_unicode, result) + + +class MaxTokensWarningFilter(logging.Filter): + """过滤掉 camel-ai 关于 max_tokens 的警告(我们故意不设置 max_tokens,让模型自行决定)""" + + def filter(self, record): + # 过滤掉包含 max_tokens 警告的日志 + if "max_tokens" in record.getMessage() and "Invalid or missing" in record.getMessage(): + return False + return True + + +# 在模块加载时立即添加过滤器,确保在 camel 代码执行前生效 +logging.getLogger().addFilter(MaxTokensWarningFilter()) + + +def setup_oasis_logging(log_dir: str): + """配置 OASIS 的日志,使用固定名称的日志文件""" + os.makedirs(log_dir, exist_ok=True) + + # 清理旧的日志文件 + for f in os.listdir(log_dir): + old_log = os.path.join(log_dir, f) + if os.path.isfile(old_log) and f.endswith('.log'): + try: + os.remove(old_log) + except OSError: + pass + + formatter = UnicodeFormatter("%(levelname)s - %(asctime)s - %(name)s - %(message)s") + + loggers_config = { + "social.agent": os.path.join(log_dir, "social.agent.log"), + "social.twitter": os.path.join(log_dir, "social.twitter.log"), + "social.rec": os.path.join(log_dir, "social.rec.log"), + "oasis.env": os.path.join(log_dir, "oasis.env.log"), + "table": os.path.join(log_dir, "table.log"), + } + + for logger_name, log_file in loggers_config.items(): + logger = logging.getLogger(logger_name) + logger.setLevel(logging.DEBUG) + logger.handlers.clear() + file_handler = logging.FileHandler(log_file, encoding='utf-8', mode='w') + file_handler.setLevel(logging.DEBUG) + file_handler.setFormatter(formatter) + logger.addHandler(file_handler) + logger.propagate = False + + +try: + from camel.models import ModelFactory + from camel.types import ModelPlatformType + import oasis + from oasis import ( + ActionType, + LLMAction, + ManualAction, + generate_twitter_agent_graph + ) +except ImportError as e: + print(f"错误: 缺少依赖 {e}") + print("请先安装: pip install oasis-ai camel-ai") + sys.exit(1) + + +# IPC相关常量 +IPC_COMMANDS_DIR = "ipc_commands" +IPC_RESPONSES_DIR = "ipc_responses" +ENV_STATUS_FILE = "env_status.json" + +class CommandType: + """命令类型常量""" + INTERVIEW = "interview" + BATCH_INTERVIEW = "batch_interview" + CLOSE_ENV = "close_env" + + +class IPCHandler: + """IPC命令处理器""" + + def __init__(self, simulation_dir: str, env, agent_graph): + self.simulation_dir = simulation_dir + self.env = env + self.agent_graph = agent_graph + self.commands_dir = os.path.join(simulation_dir, IPC_COMMANDS_DIR) + self.responses_dir = os.path.join(simulation_dir, IPC_RESPONSES_DIR) + self.status_file = os.path.join(simulation_dir, ENV_STATUS_FILE) + self._running = True + + # 确保目录存在 + os.makedirs(self.commands_dir, exist_ok=True) + os.makedirs(self.responses_dir, exist_ok=True) + + def update_status(self, status: str): + """更新环境状态""" + with open(self.status_file, 'w', encoding='utf-8') as f: + json.dump({ + "status": status, + "timestamp": datetime.now().isoformat() + }, f, ensure_ascii=False, indent=2) + + def poll_command(self) -> Optional[Dict[str, Any]]: + """轮询获取待处理命令""" + if not os.path.exists(self.commands_dir): + return None + + # 获取命令文件(按时间排序) + command_files = [] + for filename in os.listdir(self.commands_dir): + if filename.endswith('.json'): + filepath = os.path.join(self.commands_dir, filename) + command_files.append((filepath, os.path.getmtime(filepath))) + + command_files.sort(key=lambda x: x[1]) + + for filepath, _ in command_files: + try: + with open(filepath, 'r', encoding='utf-8') as f: + return json.load(f) + except (json.JSONDecodeError, OSError): + continue + + return None + + def send_response(self, command_id: str, status: str, result: Dict = None, error: str = None): + """发送响应""" + response = { + "command_id": command_id, + "status": status, + "result": result, + "error": error, + "timestamp": datetime.now().isoformat() + } + + response_file = os.path.join(self.responses_dir, f"{command_id}.json") + with open(response_file, 'w', encoding='utf-8') as f: + json.dump(response, f, ensure_ascii=False, indent=2) + + # 删除命令文件 + command_file = os.path.join(self.commands_dir, f"{command_id}.json") + try: + os.remove(command_file) + except OSError: + pass + + async def handle_interview(self, command_id: str, agent_id: int, prompt: str) -> bool: + """ + 处理单个Agent采访命令 + + Returns: + True 表示成功,False 表示失败 + """ + try: + # 获取Agent + agent = self.agent_graph.get_agent(agent_id) + + # 创建Interview动作 + interview_action = ManualAction( + action_type=ActionType.INTERVIEW, + action_args={"prompt": prompt} + ) + + # 执行Interview + actions = {agent: interview_action} + await self.env.step(actions) + + # 从数据库获取结果 + result = self._get_interview_result(agent_id) + + self.send_response(command_id, "completed", result=result) + print(f" Interview完成: agent_id={agent_id}") + return True + + except Exception as e: + error_msg = str(e) + print(f" Interview失败: agent_id={agent_id}, error={error_msg}") + self.send_response(command_id, "failed", error=error_msg) + return False + + async def handle_batch_interview(self, command_id: str, interviews: List[Dict]) -> bool: + """ + 处理批量采访命令 + + Args: + interviews: [{"agent_id": int, "prompt": str}, ...] + """ + try: + # 构建动作字典 + actions = {} + agent_prompts = {} # 记录每个agent的prompt + + for interview in interviews: + agent_id = interview.get("agent_id") + prompt = interview.get("prompt", "") + + try: + agent = self.agent_graph.get_agent(agent_id) + actions[agent] = ManualAction( + action_type=ActionType.INTERVIEW, + action_args={"prompt": prompt} + ) + agent_prompts[agent_id] = prompt + except Exception as e: + print(f" 警告: 无法获取Agent {agent_id}: {e}") + + if not actions: + self.send_response(command_id, "failed", error="没有有效的Agent") + return False + + # 执行批量Interview + await self.env.step(actions) + + # 获取所有结果 + results = {} + for agent_id in agent_prompts.keys(): + result = self._get_interview_result(agent_id) + results[agent_id] = result + + self.send_response(command_id, "completed", result={ + "interviews_count": len(results), + "results": results + }) + print(f" 批量Interview完成: {len(results)} 个Agent") + return True + + except Exception as e: + error_msg = str(e) + print(f" 批量Interview失败: {error_msg}") + self.send_response(command_id, "failed", error=error_msg) + return False + + def _get_interview_result(self, agent_id: int) -> Dict[str, Any]: + """从数据库获取最新的Interview结果""" + db_path = os.path.join(self.simulation_dir, "twitter_simulation.db") + + result = { + "agent_id": agent_id, + "response": None, + "timestamp": None + } + + if not os.path.exists(db_path): + return result + + try: + conn = sqlite3.connect(db_path) + cursor = conn.cursor() + + # 查询最新的Interview记录 + cursor.execute(""" + SELECT user_id, info, created_at + FROM trace + WHERE action = ? AND user_id = ? + ORDER BY created_at DESC + LIMIT 1 + """, (ActionType.INTERVIEW.value, agent_id)) + + row = cursor.fetchone() + if row: + user_id, info_json, created_at = row + try: + info = json.loads(info_json) if info_json else {} + result["response"] = info.get("response", info) + result["timestamp"] = created_at + except json.JSONDecodeError: + result["response"] = info_json + + conn.close() + + except Exception as e: + print(f" 读取Interview结果失败: {e}") + + return result + + async def process_commands(self) -> bool: + """ + 处理所有待处理命令 + + Returns: + True 表示继续运行,False 表示应该退出 + """ + command = self.poll_command() + if not command: + return True + + command_id = command.get("command_id") + command_type = command.get("command_type") + args = command.get("args", {}) + + print(f"\n收到IPC命令: {command_type}, id={command_id}") + + if command_type == CommandType.INTERVIEW: + await self.handle_interview( + command_id, + args.get("agent_id", 0), + args.get("prompt", "") + ) + return True + + elif command_type == CommandType.BATCH_INTERVIEW: + await self.handle_batch_interview( + command_id, + args.get("interviews", []) + ) + return True + + elif command_type == CommandType.CLOSE_ENV: + print("收到关闭环境命令") + self.send_response(command_id, "completed", result={"message": "环境即将关闭"}) + return False + + else: + self.send_response(command_id, "failed", error=f"未知命令类型: {command_type}") + return True + + +class TwitterSimulationRunner: + """Twitter模拟运行器""" + + # Twitter可用动作(不包含INTERVIEW,INTERVIEW只能通过ManualAction手动触发) + AVAILABLE_ACTIONS = [ + ActionType.CREATE_POST, + ActionType.LIKE_POST, + ActionType.REPOST, + ActionType.FOLLOW, + ActionType.DO_NOTHING, + ActionType.QUOTE_POST, + ] + + def __init__(self, config_path: str, wait_for_commands: bool = True): + """ + 初始化模拟运行器 + + Args: + config_path: 配置文件路径 (simulation_config.json) + wait_for_commands: 模拟完成后是否等待命令(默认True) + """ + self.config_path = config_path + self.config = self._load_config() + self.simulation_dir = os.path.dirname(config_path) + self.wait_for_commands = wait_for_commands + self.env = None + self.agent_graph = None + self.ipc_handler = None + + def _load_config(self) -> Dict[str, Any]: + """加载配置文件""" + with open(self.config_path, 'r', encoding='utf-8') as f: + return json.load(f) + + def _get_profile_path(self) -> str: + """获取Profile文件路径(OASIS Twitter使用CSV格式)""" + return os.path.join(self.simulation_dir, "twitter_profiles.csv") + + def _get_db_path(self) -> str: + """获取数据库路径""" + return os.path.join(self.simulation_dir, "twitter_simulation.db") + + def _create_model(self): + """ + 创建LLM模型 + + 统一使用项目根目录 .env 文件中的配置(优先级最高): + - LLM_API_KEY: API密钥 + - LLM_BASE_URL: API基础URL + - LLM_MODEL_NAME: 模型名称 + """ + # 优先从 .env 读取配置 + llm_api_key = os.environ.get("LLM_API_KEY", "") + llm_base_url = os.environ.get("LLM_BASE_URL", "") + llm_model = os.environ.get("LLM_MODEL_NAME", "") + + # 如果 .env 中没有,则使用 config 作为备用 + if not llm_model: + llm_model = self.config.get("llm_model", "gpt-4o-mini") + + # 设置 camel-ai 所需的环境变量 + if llm_api_key: + os.environ["OPENAI_API_KEY"] = llm_api_key + + if not os.environ.get("OPENAI_API_KEY"): + raise ValueError("缺少 API Key 配置,请在项目根目录 .env 文件中设置 LLM_API_KEY") + + if llm_base_url: + os.environ["OPENAI_API_BASE_URL"] = llm_base_url + + print(f"LLM配置: model={llm_model}, base_url={llm_base_url[:40] if llm_base_url else '默认'}...") + + return ModelFactory.create( + model_platform=ModelPlatformType.OPENAI, + model_type=llm_model, + ) + + def _get_active_agents_for_round( + self, + env, + current_hour: int, + round_num: int + ) -> List: + """ + 根据时间和配置决定本轮激活哪些Agent + + Args: + env: OASIS环境 + current_hour: 当前模拟小时(0-23) + round_num: 当前轮数 + + Returns: + 激活的Agent列表 + """ + time_config = self.config.get("time_config", {}) + agent_configs = self.config.get("agent_configs", []) + + # 基础激活数量 + base_min = time_config.get("agents_per_hour_min", 5) + base_max = time_config.get("agents_per_hour_max", 20) + + # 根据时段调整 + peak_hours = time_config.get("peak_hours", [9, 10, 11, 14, 15, 20, 21, 22]) + off_peak_hours = time_config.get("off_peak_hours", [0, 1, 2, 3, 4, 5]) + + if current_hour in peak_hours: + multiplier = time_config.get("peak_activity_multiplier", 1.5) + elif current_hour in off_peak_hours: + multiplier = time_config.get("off_peak_activity_multiplier", 0.3) + else: + multiplier = 1.0 + + target_count = int(random.uniform(base_min, base_max) * multiplier) + + # 根据每个Agent的配置计算激活概率 + candidates = [] + for cfg in agent_configs: + agent_id = cfg.get("agent_id", 0) + active_hours = cfg.get("active_hours", list(range(8, 23))) + activity_level = cfg.get("activity_level", 0.5) + + # 检查是否在活跃时间 + if current_hour not in active_hours: + continue + + # 根据活跃度计算概率 + if random.random() < activity_level: + candidates.append(agent_id) + + # 随机选择 + selected_ids = random.sample( + candidates, + min(target_count, len(candidates)) + ) if candidates else [] + + # 转换为Agent对象 + active_agents = [] + for agent_id in selected_ids: + try: + agent = env.agent_graph.get_agent(agent_id) + active_agents.append((agent_id, agent)) + except Exception: + pass + + return active_agents + + async def run(self, max_rounds: int = None): + """运行Twitter模拟 + + Args: + max_rounds: 最大模拟轮数(可选,用于截断过长的模拟) + """ + print("=" * 60) + print("OASIS Twitter模拟") + print(f"配置文件: {self.config_path}") + print(f"模拟ID: {self.config.get('simulation_id', 'unknown')}") + print(f"等待命令模式: {'启用' if self.wait_for_commands else '禁用'}") + print("=" * 60) + + # 加载时间配置 + time_config = self.config.get("time_config", {}) + total_hours = time_config.get("total_simulation_hours", 72) + minutes_per_round = time_config.get("minutes_per_round", 30) + + # 计算总轮数 + total_rounds = (total_hours * 60) // minutes_per_round + + # 如果指定了最大轮数,则截断 + if max_rounds is not None and max_rounds > 0: + original_rounds = total_rounds + total_rounds = min(total_rounds, max_rounds) + if total_rounds < original_rounds: + print(f"\n轮数已截断: {original_rounds} -> {total_rounds} (max_rounds={max_rounds})") + + print(f"\n模拟参数:") + print(f" - 总模拟时长: {total_hours}小时") + print(f" - 每轮时间: {minutes_per_round}分钟") + print(f" - 总轮数: {total_rounds}") + if max_rounds: + print(f" - 最大轮数限制: {max_rounds}") + print(f" - Agent数量: {len(self.config.get('agent_configs', []))}") + + # 创建模型 + print("\n初始化LLM模型...") + model = self._create_model() + + # 加载Agent图 + print("加载Agent Profile...") + profile_path = self._get_profile_path() + if not os.path.exists(profile_path): + print(f"错误: Profile文件不存在: {profile_path}") + return + + self.agent_graph = await generate_twitter_agent_graph( + profile_path=profile_path, + model=model, + available_actions=self.AVAILABLE_ACTIONS, + ) + + # 数据库路径 + db_path = self._get_db_path() + if os.path.exists(db_path): + os.remove(db_path) + print(f"已删除旧数据库: {db_path}") + + # 创建环境 + print("创建OASIS环境...") + self.env = oasis.make( + agent_graph=self.agent_graph, + platform=oasis.DefaultPlatformType.TWITTER, + database_path=db_path, + semaphore=30, # 限制最大并发 LLM 请求数,防止 API 过载 + ) + + await self.env.reset() + print("环境初始化完成\n") + + # 初始化IPC处理器 + self.ipc_handler = IPCHandler(self.simulation_dir, self.env, self.agent_graph) + self.ipc_handler.update_status("running") + + # 执行初始事件 + event_config = self.config.get("event_config", {}) + initial_posts = event_config.get("initial_posts", []) + + if initial_posts: + print(f"执行初始事件 ({len(initial_posts)}条初始帖子)...") + initial_actions = {} + for post in initial_posts: + agent_id = post.get("poster_agent_id", 0) + content = post.get("content", "") + try: + agent = self.env.agent_graph.get_agent(agent_id) + initial_actions[agent] = ManualAction( + action_type=ActionType.CREATE_POST, + action_args={"content": content} + ) + except Exception as e: + print(f" 警告: 无法为Agent {agent_id}创建初始帖子: {e}") + + if initial_actions: + await self.env.step(initial_actions) + print(f" 已发布 {len(initial_actions)} 条初始帖子") + + # 主模拟循环 + print("\n开始模拟循环...") + start_time = datetime.now() + + for round_num in range(total_rounds): + # 计算当前模拟时间 + simulated_minutes = round_num * minutes_per_round + simulated_hour = (simulated_minutes // 60) % 24 + simulated_day = simulated_minutes // (60 * 24) + 1 + + # 获取本轮激活的Agent + active_agents = self._get_active_agents_for_round( + self.env, simulated_hour, round_num + ) + + if not active_agents: + continue + + # 构建动作 + actions = { + agent: LLMAction() + for _, agent in active_agents + } + + # 执行动作 + await self.env.step(actions) + + # 打印进度 + if (round_num + 1) % 10 == 0 or round_num == 0: + elapsed = (datetime.now() - start_time).total_seconds() + progress = (round_num + 1) / total_rounds * 100 + print(f" [Day {simulated_day}, {simulated_hour:02d}:00] " + f"Round {round_num + 1}/{total_rounds} ({progress:.1f}%) " + f"- {len(active_agents)} agents active " + f"- elapsed: {elapsed:.1f}s") + + total_elapsed = (datetime.now() - start_time).total_seconds() + print(f"\n模拟循环完成!") + print(f" - 总耗时: {total_elapsed:.1f}秒") + print(f" - 数据库: {db_path}") + + # 是否进入等待命令模式 + if self.wait_for_commands: + print("\n" + "=" * 60) + print("进入等待命令模式 - 环境保持运行") + print("支持的命令: interview, batch_interview, close_env") + print("=" * 60) + + self.ipc_handler.update_status("alive") + + # 等待命令循环(使用全局 _shutdown_event) + try: + while not _shutdown_event.is_set(): + should_continue = await self.ipc_handler.process_commands() + if not should_continue: + break + try: + await asyncio.wait_for(_shutdown_event.wait(), timeout=0.5) + break # 收到退出信号 + except asyncio.TimeoutError: + pass + except KeyboardInterrupt: + print("\n收到中断信号") + except asyncio.CancelledError: + print("\n任务被取消") + except Exception as e: + print(f"\n命令处理出错: {e}") + + print("\n关闭环境...") + + # 关闭环境 + self.ipc_handler.update_status("stopped") + await self.env.close() + + print("环境已关闭") + print("=" * 60) + + +async def main(): + parser = argparse.ArgumentParser(description='OASIS Twitter模拟') + parser.add_argument( + '--config', + type=str, + required=True, + help='配置文件路径 (simulation_config.json)' + ) + parser.add_argument( + '--max-rounds', + type=int, + default=None, + help='最大模拟轮数(可选,用于截断过长的模拟)' + ) + parser.add_argument( + '--no-wait', + action='store_true', + default=False, + help='模拟完成后立即关闭环境,不进入等待命令模式' + ) + + args = parser.parse_args() + + # 在 main 函数开始时创建 shutdown 事件 + global _shutdown_event + _shutdown_event = asyncio.Event() + + if not os.path.exists(args.config): + print(f"错误: 配置文件不存在: {args.config}") + sys.exit(1) + + # 初始化日志配置(使用固定文件名,清理旧日志) + simulation_dir = os.path.dirname(args.config) or "." + setup_oasis_logging(os.path.join(simulation_dir, "log")) + + runner = TwitterSimulationRunner( + config_path=args.config, + wait_for_commands=not args.no_wait + ) + await runner.run(max_rounds=args.max_rounds) + + +def setup_signal_handlers(): + """ + 设置信号处理器,确保收到 SIGTERM/SIGINT 时能够正确退出 + 让程序有机会正常清理资源(关闭数据库、环境等) + """ + def signal_handler(signum, frame): + global _cleanup_done + sig_name = "SIGTERM" if signum == signal.SIGTERM else "SIGINT" + print(f"\n收到 {sig_name} 信号,正在退出...") + if not _cleanup_done: + _cleanup_done = True + if _shutdown_event: + _shutdown_event.set() + else: + # 重复收到信号才强制退出 + print("强制退出...") + sys.exit(1) + + signal.signal(signal.SIGTERM, signal_handler) + signal.signal(signal.SIGINT, signal_handler) + + +if __name__ == "__main__": + setup_signal_handlers() + try: + asyncio.run(main()) + except KeyboardInterrupt: + print("\n程序被中断") + except SystemExit: + pass + finally: + print("模拟进程已退出") diff --git a/backend/scripts/test_profile_format.py b/backend/scripts/test_profile_format.py new file mode 100644 index 00000000..354e8b5c --- /dev/null +++ b/backend/scripts/test_profile_format.py @@ -0,0 +1,166 @@ +""" +测试Profile格式生成是否符合OASIS要求 +验证: +1. Twitter Profile生成CSV格式 +2. Reddit Profile生成JSON详细格式 +""" + +import os +import sys +import json +import csv +import tempfile + +# 添加项目路径 +sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) + +from app.services.oasis_profile_generator import OasisProfileGenerator, OasisAgentProfile + + +def test_profile_formats(): + """测试Profile格式""" + print("=" * 60) + print("OASIS Profile格式测试") + print("=" * 60) + + # 创建测试Profile数据 + test_profiles = [ + OasisAgentProfile( + user_id=0, + user_name="test_user_123", + name="Test User", + bio="A test user for validation", + persona="Test User is an enthusiastic participant in social discussions.", + karma=1500, + friend_count=100, + follower_count=200, + statuses_count=500, + age=25, + gender="male", + mbti="INTJ", + country="China", + profession="Student", + interested_topics=["Technology", "Education"], + source_entity_uuid="test-uuid-123", + source_entity_type="Student", + ), + OasisAgentProfile( + user_id=1, + user_name="org_official_456", + name="Official Organization", + bio="Official account for Organization", + persona="This is an official institutional account that communicates official positions.", + karma=5000, + friend_count=50, + follower_count=10000, + statuses_count=200, + profession="Organization", + interested_topics=["Public Policy", "Announcements"], + source_entity_uuid="test-uuid-456", + source_entity_type="University", + ), + ] + + generator = OasisProfileGenerator.__new__(OasisProfileGenerator) + + # 使用临时目录 + with tempfile.TemporaryDirectory() as temp_dir: + twitter_path = os.path.join(temp_dir, "twitter_profiles.csv") + reddit_path = os.path.join(temp_dir, "reddit_profiles.json") + + # 测试Twitter CSV格式 + print("\n1. 测试Twitter Profile (CSV格式)") + print("-" * 40) + generator._save_twitter_csv(test_profiles, twitter_path) + + # 读取并验证CSV + with open(twitter_path, 'r', encoding='utf-8') as f: + reader = csv.DictReader(f) + rows = list(reader) + + print(f" 文件: {twitter_path}") + print(f" 行数: {len(rows)}") + print(f" 表头: {list(rows[0].keys())}") + print(f"\n 示例数据 (第1行):") + for key, value in rows[0].items(): + print(f" {key}: {value}") + + # 验证必需字段 + required_twitter_fields = ['user_id', 'user_name', 'name', 'bio', + 'friend_count', 'follower_count', 'statuses_count', 'created_at'] + missing = set(required_twitter_fields) - set(rows[0].keys()) + if missing: + print(f"\n [错误] 缺少字段: {missing}") + else: + print(f"\n [通过] 所有必需字段都存在") + + # 测试Reddit JSON格式 + print("\n2. 测试Reddit Profile (JSON详细格式)") + print("-" * 40) + generator._save_reddit_json(test_profiles, reddit_path) + + # 读取并验证JSON + with open(reddit_path, 'r', encoding='utf-8') as f: + reddit_data = json.load(f) + + print(f" 文件: {reddit_path}") + print(f" 条目数: {len(reddit_data)}") + print(f" 字段: {list(reddit_data[0].keys())}") + print(f"\n 示例数据 (第1条):") + print(json.dumps(reddit_data[0], ensure_ascii=False, indent=4)) + + # 验证详细格式字段 + required_reddit_fields = ['realname', 'username', 'bio', 'persona'] + optional_reddit_fields = ['age', 'gender', 'mbti', 'country', 'profession', 'interested_topics'] + + missing = set(required_reddit_fields) - set(reddit_data[0].keys()) + if missing: + print(f"\n [错误] 缺少必需字段: {missing}") + else: + print(f"\n [通过] 所有必需字段都存在") + + present_optional = set(optional_reddit_fields) & set(reddit_data[0].keys()) + print(f" [信息] 可选字段: {present_optional}") + + print("\n" + "=" * 60) + print("测试完成!") + print("=" * 60) + + +def show_expected_formats(): + """显示OASIS期望的格式""" + print("\n" + "=" * 60) + print("OASIS 期望的Profile格式参考") + print("=" * 60) + + print("\n1. Twitter Profile (CSV格式)") + print("-" * 40) + twitter_example = """user_id,user_name,name,bio,friend_count,follower_count,statuses_count,created_at +0,user0,User Zero,I am user zero with interests in technology.,100,150,500,2023-01-01 +1,user1,User One,Tech enthusiast and coffee lover.,200,250,1000,2023-01-02""" + print(twitter_example) + + print("\n2. Reddit Profile (JSON详细格式)") + print("-" * 40) + reddit_example = [ + { + "realname": "James Miller", + "username": "millerhospitality", + "bio": "Passionate about hospitality & tourism.", + "persona": "James is a seasoned professional in the Hospitality & Tourism industry...", + "age": 40, + "gender": "male", + "mbti": "ESTJ", + "country": "UK", + "profession": "Hospitality & Tourism", + "interested_topics": ["Economics", "Business"] + } + ] + print(json.dumps(reddit_example, ensure_ascii=False, indent=2)) + + +if __name__ == "__main__": + test_profile_formats() + show_expected_formats() + + diff --git a/backend/uv.lock b/backend/uv.lock new file mode 100644 index 00000000..642dd9c3 --- /dev/null +++ b/backend/uv.lock @@ -0,0 +1,2789 @@ +version = 1 +revision = 3 +requires-python = ">=3.11, <3.13" +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version < '3.12'", +] + +[[package]] +name = "aiofiles" +version = "25.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/41/c3/534eac40372d8ee36ef40df62ec129bee4fdb5ad9706e58a29be53b2c970/aiofiles-25.1.0.tar.gz", hash = "sha256:a8d728f0a29de45dc521f18f07297428d56992a742f0cd2701ba86e44d23d5b2", size = 46354, upload-time = "2025-10-09T20:51:04.358Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bc/8a/340a1555ae33d7354dbca4faa54948d76d89a27ceef032c8c3bc661d003e/aiofiles-25.1.0-py3-none-any.whl", hash = "sha256:abe311e527c862958650f9438e859c1fa7568a141b22abcd015e120e86a85695", size = 14668, upload-time = "2025-10-09T20:51:03.174Z" }, +] + +[[package]] +name = "annotated-types" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081, upload-time = "2024-05-20T21:33:25.928Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643, upload-time = "2024-05-20T21:33:24.1Z" }, +] + +[[package]] +name = "anyio" +version = "4.12.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "idna" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/16/ce/8a777047513153587e5434fd752e89334ac33e379aa3497db860eeb60377/anyio-4.12.0.tar.gz", hash = "sha256:73c693b567b0c55130c104d0b43a9baf3aa6a31fc6110116509f27bf75e21ec0", size = 228266, upload-time = "2025-11-28T23:37:38.911Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7f/9c/36c5c37947ebfb8c7f22e0eb6e4d188ee2d53aa3880f3f2744fb894f0cb1/anyio-4.12.0-py3-none-any.whl", hash = "sha256:dad2376a628f98eeca4881fc56cd06affd18f659b17a747d3ff0307ced94b1bb", size = 113362, upload-time = "2025-11-28T23:36:57.897Z" }, +] + +[[package]] +name = "appnope" +version = "0.1.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/35/5d/752690df9ef5b76e169e68d6a129fa6d08a7100ca7f754c89495db3c6019/appnope-0.1.4.tar.gz", hash = "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee", size = 4170, upload-time = "2024-02-06T09:43:11.258Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/81/29/5ecc3a15d5a33e31b26c11426c45c501e439cb865d0bff96315d86443b78/appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c", size = 4321, upload-time = "2024-02-06T09:43:09.663Z" }, +] + +[[package]] +name = "astor" +version = "0.8.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5a/21/75b771132fee241dfe601d39ade629548a9626d1d39f333fde31bc46febe/astor-0.8.1.tar.gz", hash = "sha256:6a6effda93f4e1ce9f618779b2dd1d9d84f1e32812c23a29b3fff6fd7f63fa5e", size = 35090, upload-time = "2019-12-10T01:50:35.51Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c3/88/97eef84f48fa04fbd6750e62dcceafba6c63c81b7ac1420856c8dcc0a3f9/astor-0.8.1-py2.py3-none-any.whl", hash = "sha256:070a54e890cefb5b3739d19f30f5a5ec840ffc9c50ffa7d23cc9fc1a38ebbfc5", size = 27488, upload-time = "2019-12-10T01:50:33.628Z" }, +] + +[[package]] +name = "asttokens" +version = "3.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/be/a5/8e3f9b6771b0b408517c82d97aed8f2036509bc247d46114925e32fe33f0/asttokens-3.0.1.tar.gz", hash = "sha256:71a4ee5de0bde6a31d64f6b13f2293ac190344478f081c3d1bccfcf5eacb0cb7", size = 62308, upload-time = "2025-11-15T16:43:48.578Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d2/39/e7eaf1799466a4aef85b6a4fe7bd175ad2b1c6345066aa33f1f58d4b18d0/asttokens-3.0.1-py3-none-any.whl", hash = "sha256:15a3ebc0f43c2d0a50eeafea25e19046c68398e487b9f1f5b517f7c0f40f976a", size = 27047, upload-time = "2025-11-15T16:43:16.109Z" }, +] + +[[package]] +name = "attrs" +version = "25.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6b/5c/685e6633917e101e5dcb62b9dd76946cbb57c26e133bae9e0cd36033c0a9/attrs-25.4.0.tar.gz", hash = "sha256:16d5969b87f0859ef33a48b35d55ac1be6e42ae49d5e853b597db70c35c57e11", size = 934251, upload-time = "2025-10-06T13:54:44.725Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3a/2a/7cc015f5b9f5db42b7d48157e23356022889fc354a2813c15934b7cb5c0e/attrs-25.4.0-py3-none-any.whl", hash = "sha256:adcf7e2a1fb3b36ac48d97835bb6d8ade15b8dcce26aba8bf1d14847b57a3373", size = 67615, upload-time = "2025-10-06T13:54:43.17Z" }, +] + +[[package]] +name = "backcall" +version = "0.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a2/40/764a663805d84deee23043e1426a9175567db89c8b3287b5c2ad9f71aa93/backcall-0.2.0.tar.gz", hash = "sha256:5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e", size = 18041, upload-time = "2020-06-09T15:11:32.931Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4c/1c/ff6546b6c12603d8dd1070aa3c3d273ad4c07f5771689a7b69a550e8c951/backcall-0.2.0-py2.py3-none-any.whl", hash = "sha256:fbbce6a29f263178a1f7915c1940bde0ec2b2a967566fe1c65c1dfb7422bd255", size = 11157, upload-time = "2020-06-09T15:11:30.87Z" }, +] + +[[package]] +name = "backoff" +version = "2.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/47/d7/5bbeb12c44d7c4f2fb5b56abce497eb5ed9f34d85701de869acedd602619/backoff-2.2.1.tar.gz", hash = "sha256:03f829f5bb1923180821643f8753b0502c3b682293992485b0eef2807afa5cba", size = 17001, upload-time = "2022-10-05T19:19:32.061Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/df/73/b6e24bd22e6720ca8ee9a85a0c4a2971af8497d8f3193fa05390cbd46e09/backoff-2.2.1-py3-none-any.whl", hash = "sha256:63579f9a0628e06278f7e47b7d7d5b6ce20dc65c5e96a6f3ca99a6adca0396e8", size = 15148, upload-time = "2022-10-05T19:19:30.546Z" }, +] + +[[package]] +name = "beautifulsoup4" +version = "4.14.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "soupsieve" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c3/b0/1c6a16426d389813b48d95e26898aff79abbde42ad353958ad95cc8c9b21/beautifulsoup4-4.14.3.tar.gz", hash = "sha256:6292b1c5186d356bba669ef9f7f051757099565ad9ada5dd630bd9de5fa7fb86", size = 627737, upload-time = "2025-11-30T15:08:26.084Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1a/39/47f9197bdd44df24d67ac8893641e16f386c984a0619ef2ee4c51fbbc019/beautifulsoup4-4.14.3-py3-none-any.whl", hash = "sha256:0918bfe44902e6ad8d57732ba310582e98da931428d231a5ecb9e7c703a735bb", size = 107721, upload-time = "2025-11-30T15:08:24.087Z" }, +] + +[[package]] +name = "bleach" +version = "6.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "webencodings" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/07/18/3c8523962314be6bf4c8989c79ad9531c825210dd13a8669f6b84336e8bd/bleach-6.3.0.tar.gz", hash = "sha256:6f3b91b1c0a02bb9a78b5a454c92506aa0fdf197e1d5e114d2e00c6f64306d22", size = 203533, upload-time = "2025-10-27T17:57:39.211Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cd/3a/577b549de0cc09d95f11087ee63c739bba856cd3952697eec4c4bb91350a/bleach-6.3.0-py3-none-any.whl", hash = "sha256:fe10ec77c93ddf3d13a73b035abaac7a9f5e436513864ccdad516693213c65d6", size = 164437, upload-time = "2025-10-27T17:57:37.538Z" }, +] + +[package.optional-dependencies] +css = [ + { name = "tinycss2" }, +] + +[[package]] +name = "blinker" +version = "1.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/21/28/9b3f50ce0e048515135495f198351908d99540d69bfdc8c1d15b73dc55ce/blinker-1.9.0.tar.gz", hash = "sha256:b4ce2265a7abece45e7cc896e98dbebe6cead56bcf805a3d23136d145f5445bf", size = 22460, upload-time = "2024-11-08T17:25:47.436Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/10/cb/f2ad4230dc2eb1a74edf38f1a38b9b52277f75bef262d8908e60d957e13c/blinker-1.9.0-py3-none-any.whl", hash = "sha256:ba0efaa9080b619ff2f3459d1d500c57bddea4a6b424b60a91141db6fd2f08bc", size = 8458, upload-time = "2024-11-08T17:25:46.184Z" }, +] + +[[package]] +name = "cairocffi" +version = "1.7.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/70/c5/1a4dc131459e68a173cbdab5fad6b524f53f9c1ef7861b7698e998b837cc/cairocffi-1.7.1.tar.gz", hash = "sha256:2e48ee864884ec4a3a34bfa8c9ab9999f688286eb714a15a43ec9d068c36557b", size = 88096, upload-time = "2024-06-18T10:56:06.741Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/93/d8/ba13451aa6b745c49536e87b6bf8f629b950e84bd0e8308f7dc6883b67e2/cairocffi-1.7.1-py3-none-any.whl", hash = "sha256:9803a0e11f6c962f3b0ae2ec8ba6ae45e957a146a004697a1ac1bbf16b073b3f", size = 75611, upload-time = "2024-06-18T10:55:59.489Z" }, +] + +[[package]] +name = "camel-ai" +version = "0.2.78" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "astor" }, + { name = "colorama" }, + { name = "docstring-parser" }, + { name = "httpx" }, + { name = "jsonschema" }, + { name = "mcp" }, + { name = "openai" }, + { name = "pillow" }, + { name = "psutil" }, + { name = "pydantic" }, + { name = "tiktoken" }, + { name = "websockets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3b/2b/cd5181bfd0ebcf567a088ee5c1e3768b132ba4b1489ee19d5fb0bd679586/camel_ai-0.2.78.tar.gz", hash = "sha256:24745da225da7da96dcd85f72d143c6104569c17f14280c369d7e82b86851284", size = 964632, upload-time = "2025-10-15T17:20:54.181Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/01/81/0cfb1c0d9da589665e2eb4471887967e70bba428638c37fb4f6a78baf300/camel_ai-0.2.78-py3-none-any.whl", hash = "sha256:356624da13dfe0c55ef43dc509c18ce029f67fe3997966495a4ce9be931078d5", size = 1415578, upload-time = "2025-10-15T17:20:51.727Z" }, +] + +[[package]] +name = "camel-oasis" +version = "0.2.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cairocffi" }, + { name = "camel-ai" }, + { name = "igraph" }, + { name = "neo4j" }, + { name = "openapi-spec-validator" }, + { name = "pandas" }, + { name = "pillow" }, + { name = "prance" }, + { name = "pre-commit" }, + { name = "pytest" }, + { name = "pytest-asyncio" }, + { name = "requests-oauthlib" }, + { name = "sentence-transformers" }, + { name = "slack-sdk" }, + { name = "unstructured" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d9/6f/b36240380c65397f3e18829fce8ed0a1d19893b32d3596aa0902c7b3ad81/camel_oasis-0.2.5.tar.gz", hash = "sha256:f667dec86f9f7823d50f76b07733a34afc1427b923f1a673519206bb41a57f8c", size = 56966, upload-time = "2025-12-04T11:58:19.43Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/77/d0/6d62173602433937d0228b7809e2b244e09c11cfb1be9c6754ae3b20d887/camel_oasis-0.2.5-py3-none-any.whl", hash = "sha256:9ebd6ba8e331495ee56b25cc63982188b94125dde499e5e9c00398a1d47e606d", size = 75954, upload-time = "2025-12-04T11:58:18.363Z" }, +] + +[[package]] +name = "certifi" +version = "2025.11.12" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a2/8c/58f469717fa48465e4a50c014a0400602d3c437d7c0c468e17ada824da3a/certifi-2025.11.12.tar.gz", hash = "sha256:d8ab5478f2ecd78af242878415affce761ca6bc54a22a27e026d7c25357c3316", size = 160538, upload-time = "2025-11-12T02:54:51.517Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/70/7d/9bc192684cea499815ff478dfcdc13835ddf401365057044fb721ec6bddb/certifi-2025.11.12-py3-none-any.whl", hash = "sha256:97de8790030bbd5c2d96b7ec782fc2f7820ef8dba6db909ccf95449f2d062d4b", size = 159438, upload-time = "2025-11-12T02:54:49.735Z" }, +] + +[[package]] +name = "cffi" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pycparser", marker = "implementation_name != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/eb/56/b1ba7935a17738ae8453301356628e8147c79dbb825bcbc73dc7401f9846/cffi-2.0.0.tar.gz", hash = "sha256:44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529", size = 523588, upload-time = "2025-09-08T23:24:04.541Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/12/4a/3dfd5f7850cbf0d06dc84ba9aa00db766b52ca38d8b86e3a38314d52498c/cffi-2.0.0-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:b4c854ef3adc177950a8dfc81a86f5115d2abd545751a304c5bcf2c2c7283cfe", size = 184344, upload-time = "2025-09-08T23:22:26.456Z" }, + { url = "https://files.pythonhosted.org/packages/4f/8b/f0e4c441227ba756aafbe78f117485b25bb26b1c059d01f137fa6d14896b/cffi-2.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2de9a304e27f7596cd03d16f1b7c72219bd944e99cc52b84d0145aefb07cbd3c", size = 180560, upload-time = "2025-09-08T23:22:28.197Z" }, + { url = "https://files.pythonhosted.org/packages/b1/b7/1200d354378ef52ec227395d95c2576330fd22a869f7a70e88e1447eb234/cffi-2.0.0-cp311-cp311-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:baf5215e0ab74c16e2dd324e8ec067ef59e41125d3eade2b863d294fd5035c92", size = 209613, upload-time = "2025-09-08T23:22:29.475Z" }, + { url = "https://files.pythonhosted.org/packages/b8/56/6033f5e86e8cc9bb629f0077ba71679508bdf54a9a5e112a3c0b91870332/cffi-2.0.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:730cacb21e1bdff3ce90babf007d0a0917cc3e6492f336c2f0134101e0944f93", size = 216476, upload-time = "2025-09-08T23:22:31.063Z" }, + { url = "https://files.pythonhosted.org/packages/dc/7f/55fecd70f7ece178db2f26128ec41430d8720f2d12ca97bf8f0a628207d5/cffi-2.0.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:6824f87845e3396029f3820c206e459ccc91760e8fa24422f8b0c3d1731cbec5", size = 203374, upload-time = "2025-09-08T23:22:32.507Z" }, + { url = "https://files.pythonhosted.org/packages/84/ef/a7b77c8bdc0f77adc3b46888f1ad54be8f3b7821697a7b89126e829e676a/cffi-2.0.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:9de40a7b0323d889cf8d23d1ef214f565ab154443c42737dfe52ff82cf857664", size = 202597, upload-time = "2025-09-08T23:22:34.132Z" }, + { url = "https://files.pythonhosted.org/packages/d7/91/500d892b2bf36529a75b77958edfcd5ad8e2ce4064ce2ecfeab2125d72d1/cffi-2.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8941aaadaf67246224cee8c3803777eed332a19d909b47e29c9842ef1e79ac26", size = 215574, upload-time = "2025-09-08T23:22:35.443Z" }, + { url = "https://files.pythonhosted.org/packages/44/64/58f6255b62b101093d5df22dcb752596066c7e89dd725e0afaed242a61be/cffi-2.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:a05d0c237b3349096d3981b727493e22147f934b20f6f125a3eba8f994bec4a9", size = 218971, upload-time = "2025-09-08T23:22:36.805Z" }, + { url = "https://files.pythonhosted.org/packages/ab/49/fa72cebe2fd8a55fbe14956f9970fe8eb1ac59e5df042f603ef7c8ba0adc/cffi-2.0.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:94698a9c5f91f9d138526b48fe26a199609544591f859c870d477351dc7b2414", size = 211972, upload-time = "2025-09-08T23:22:38.436Z" }, + { url = "https://files.pythonhosted.org/packages/0b/28/dd0967a76aab36731b6ebfe64dec4e981aff7e0608f60c2d46b46982607d/cffi-2.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:5fed36fccc0612a53f1d4d9a816b50a36702c28a2aa880cb8a122b3466638743", size = 217078, upload-time = "2025-09-08T23:22:39.776Z" }, + { url = "https://files.pythonhosted.org/packages/2b/c0/015b25184413d7ab0a410775fdb4a50fca20f5589b5dab1dbbfa3baad8ce/cffi-2.0.0-cp311-cp311-win32.whl", hash = "sha256:c649e3a33450ec82378822b3dad03cc228b8f5963c0c12fc3b1e0ab940f768a5", size = 172076, upload-time = "2025-09-08T23:22:40.95Z" }, + { url = "https://files.pythonhosted.org/packages/ae/8f/dc5531155e7070361eb1b7e4c1a9d896d0cb21c49f807a6c03fd63fc877e/cffi-2.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:66f011380d0e49ed280c789fbd08ff0d40968ee7b665575489afa95c98196ab5", size = 182820, upload-time = "2025-09-08T23:22:42.463Z" }, + { url = "https://files.pythonhosted.org/packages/95/5c/1b493356429f9aecfd56bc171285a4c4ac8697f76e9bbbbb105e537853a1/cffi-2.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:c6638687455baf640e37344fe26d37c404db8b80d037c3d29f58fe8d1c3b194d", size = 177635, upload-time = "2025-09-08T23:22:43.623Z" }, + { url = "https://files.pythonhosted.org/packages/ea/47/4f61023ea636104d4f16ab488e268b93008c3d0bb76893b1b31db1f96802/cffi-2.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6d02d6655b0e54f54c4ef0b94eb6be0607b70853c45ce98bd278dc7de718be5d", size = 185271, upload-time = "2025-09-08T23:22:44.795Z" }, + { url = "https://files.pythonhosted.org/packages/df/a2/781b623f57358e360d62cdd7a8c681f074a71d445418a776eef0aadb4ab4/cffi-2.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8eca2a813c1cb7ad4fb74d368c2ffbbb4789d377ee5bb8df98373c2cc0dee76c", size = 181048, upload-time = "2025-09-08T23:22:45.938Z" }, + { url = "https://files.pythonhosted.org/packages/ff/df/a4f0fbd47331ceeba3d37c2e51e9dfc9722498becbeec2bd8bc856c9538a/cffi-2.0.0-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:21d1152871b019407d8ac3985f6775c079416c282e431a4da6afe7aefd2bccbe", size = 212529, upload-time = "2025-09-08T23:22:47.349Z" }, + { url = "https://files.pythonhosted.org/packages/d5/72/12b5f8d3865bf0f87cf1404d8c374e7487dcf097a1c91c436e72e6badd83/cffi-2.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b21e08af67b8a103c71a250401c78d5e0893beff75e28c53c98f4de42f774062", size = 220097, upload-time = "2025-09-08T23:22:48.677Z" }, + { url = "https://files.pythonhosted.org/packages/c2/95/7a135d52a50dfa7c882ab0ac17e8dc11cec9d55d2c18dda414c051c5e69e/cffi-2.0.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:1e3a615586f05fc4065a8b22b8152f0c1b00cdbc60596d187c2a74f9e3036e4e", size = 207983, upload-time = "2025-09-08T23:22:50.06Z" }, + { url = "https://files.pythonhosted.org/packages/3a/c8/15cb9ada8895957ea171c62dc78ff3e99159ee7adb13c0123c001a2546c1/cffi-2.0.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:81afed14892743bbe14dacb9e36d9e0e504cd204e0b165062c488942b9718037", size = 206519, upload-time = "2025-09-08T23:22:51.364Z" }, + { url = "https://files.pythonhosted.org/packages/78/2d/7fa73dfa841b5ac06c7b8855cfc18622132e365f5b81d02230333ff26e9e/cffi-2.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3e17ed538242334bf70832644a32a7aae3d83b57567f9fd60a26257e992b79ba", size = 219572, upload-time = "2025-09-08T23:22:52.902Z" }, + { url = "https://files.pythonhosted.org/packages/07/e0/267e57e387b4ca276b90f0434ff88b2c2241ad72b16d31836adddfd6031b/cffi-2.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3925dd22fa2b7699ed2617149842d2e6adde22b262fcbfada50e3d195e4b3a94", size = 222963, upload-time = "2025-09-08T23:22:54.518Z" }, + { url = "https://files.pythonhosted.org/packages/b6/75/1f2747525e06f53efbd878f4d03bac5b859cbc11c633d0fb81432d98a795/cffi-2.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2c8f814d84194c9ea681642fd164267891702542f028a15fc97d4674b6206187", size = 221361, upload-time = "2025-09-08T23:22:55.867Z" }, + { url = "https://files.pythonhosted.org/packages/7b/2b/2b6435f76bfeb6bbf055596976da087377ede68df465419d192acf00c437/cffi-2.0.0-cp312-cp312-win32.whl", hash = "sha256:da902562c3e9c550df360bfa53c035b2f241fed6d9aef119048073680ace4a18", size = 172932, upload-time = "2025-09-08T23:22:57.188Z" }, + { url = "https://files.pythonhosted.org/packages/f8/ed/13bd4418627013bec4ed6e54283b1959cf6db888048c7cf4b4c3b5b36002/cffi-2.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:da68248800ad6320861f129cd9c1bf96ca849a2771a59e0344e88681905916f5", size = 183557, upload-time = "2025-09-08T23:22:58.351Z" }, + { url = "https://files.pythonhosted.org/packages/95/31/9f7f93ad2f8eff1dbc1c3656d7ca5bfd8fb52c9d786b4dcf19b2d02217fa/cffi-2.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:4671d9dd5ec934cb9a73e7ee9676f9362aba54f7f34910956b84d727b0d73fb6", size = 177762, upload-time = "2025-09-08T23:22:59.668Z" }, +] + +[[package]] +name = "cfgv" +version = "3.5.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/4e/b5/721b8799b04bf9afe054a3899c6cf4e880fcf8563cc71c15610242490a0c/cfgv-3.5.0.tar.gz", hash = "sha256:d5b1034354820651caa73ede66a6294d6e95c1b00acc5e9b098e917404669132", size = 7334, upload-time = "2025-11-19T20:55:51.612Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/db/3c/33bac158f8ab7f89b2e59426d5fe2e4f63f7ed25df84c036890172b412b5/cfgv-3.5.0-py2.py3-none-any.whl", hash = "sha256:a8dc6b26ad22ff227d2634a65cb388215ce6cc96bbcc5cfde7641ae87e8dacc0", size = 7445, upload-time = "2025-11-19T20:55:50.744Z" }, +] + +[[package]] +name = "chardet" +version = "5.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f3/0d/f7b6ab21ec75897ed80c17d79b15951a719226b9fababf1e40ea74d69079/chardet-5.2.0.tar.gz", hash = "sha256:1b3b6ff479a8c414bc3fa2c0852995695c4a026dcd6d0633b2dd092ca39c1cf7", size = 2069618, upload-time = "2023-08-01T19:23:02.662Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/38/6f/f5fbc992a329ee4e0f288c1fe0e2ad9485ed064cac731ed2fe47dcc38cbf/chardet-5.2.0-py3-none-any.whl", hash = "sha256:e1cf59446890a00105fe7b7912492ea04b6e6f06d4b742b2c788469e34c82970", size = 199385, upload-time = "2023-08-01T19:23:00.661Z" }, +] + +[[package]] +name = "charset-normalizer" +version = "3.4.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/13/69/33ddede1939fdd074bce5434295f38fae7136463422fe4fd3e0e89b98062/charset_normalizer-3.4.4.tar.gz", hash = "sha256:94537985111c35f28720e43603b8e7b43a6ecfb2ce1d3058bbe955b73404e21a", size = 129418, upload-time = "2025-10-14T04:42:32.879Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ed/27/c6491ff4954e58a10f69ad90aca8a1b6fe9c5d3c6f380907af3c37435b59/charset_normalizer-3.4.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6e1fcf0720908f200cd21aa4e6750a48ff6ce4afe7ff5a79a90d5ed8a08296f8", size = 206988, upload-time = "2025-10-14T04:40:33.79Z" }, + { url = "https://files.pythonhosted.org/packages/94/59/2e87300fe67ab820b5428580a53cad894272dbb97f38a7a814a2a1ac1011/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5f819d5fe9234f9f82d75bdfa9aef3a3d72c4d24a6e57aeaebba32a704553aa0", size = 147324, upload-time = "2025-10-14T04:40:34.961Z" }, + { url = "https://files.pythonhosted.org/packages/07/fb/0cf61dc84b2b088391830f6274cb57c82e4da8bbc2efeac8c025edb88772/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:a59cb51917aa591b1c4e6a43c132f0cdc3c76dbad6155df4e28ee626cc77a0a3", size = 142742, upload-time = "2025-10-14T04:40:36.105Z" }, + { url = "https://files.pythonhosted.org/packages/62/8b/171935adf2312cd745d290ed93cf16cf0dfe320863ab7cbeeae1dcd6535f/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8ef3c867360f88ac904fd3f5e1f902f13307af9052646963ee08ff4f131adafc", size = 160863, upload-time = "2025-10-14T04:40:37.188Z" }, + { url = "https://files.pythonhosted.org/packages/09/73/ad875b192bda14f2173bfc1bc9a55e009808484a4b256748d931b6948442/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d9e45d7faa48ee908174d8fe84854479ef838fc6a705c9315372eacbc2f02897", size = 157837, upload-time = "2025-10-14T04:40:38.435Z" }, + { url = "https://files.pythonhosted.org/packages/6d/fc/de9cce525b2c5b94b47c70a4b4fb19f871b24995c728e957ee68ab1671ea/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:840c25fb618a231545cbab0564a799f101b63b9901f2569faecd6b222ac72381", size = 151550, upload-time = "2025-10-14T04:40:40.053Z" }, + { url = "https://files.pythonhosted.org/packages/55/c2/43edd615fdfba8c6f2dfbd459b25a6b3b551f24ea21981e23fb768503ce1/charset_normalizer-3.4.4-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ca5862d5b3928c4940729dacc329aa9102900382fea192fc5e52eb69d6093815", size = 149162, upload-time = "2025-10-14T04:40:41.163Z" }, + { url = "https://files.pythonhosted.org/packages/03/86/bde4ad8b4d0e9429a4e82c1e8f5c659993a9a863ad62c7df05cf7b678d75/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d9c7f57c3d666a53421049053eaacdd14bbd0a528e2186fcb2e672effd053bb0", size = 150019, upload-time = "2025-10-14T04:40:42.276Z" }, + { url = "https://files.pythonhosted.org/packages/1f/86/a151eb2af293a7e7bac3a739b81072585ce36ccfb4493039f49f1d3cae8c/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:277e970e750505ed74c832b4bf75dac7476262ee2a013f5574dd49075879e161", size = 143310, upload-time = "2025-10-14T04:40:43.439Z" }, + { url = "https://files.pythonhosted.org/packages/b5/fe/43dae6144a7e07b87478fdfc4dbe9efd5defb0e7ec29f5f58a55aeef7bf7/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:31fd66405eaf47bb62e8cd575dc621c56c668f27d46a61d975a249930dd5e2a4", size = 162022, upload-time = "2025-10-14T04:40:44.547Z" }, + { url = "https://files.pythonhosted.org/packages/80/e6/7aab83774f5d2bca81f42ac58d04caf44f0cc2b65fc6db2b3b2e8a05f3b3/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:0d3d8f15c07f86e9ff82319b3d9ef6f4bf907608f53fe9d92b28ea9ae3d1fd89", size = 149383, upload-time = "2025-10-14T04:40:46.018Z" }, + { url = "https://files.pythonhosted.org/packages/4f/e8/b289173b4edae05c0dde07f69f8db476a0b511eac556dfe0d6bda3c43384/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:9f7fcd74d410a36883701fafa2482a6af2ff5ba96b9a620e9e0721e28ead5569", size = 159098, upload-time = "2025-10-14T04:40:47.081Z" }, + { url = "https://files.pythonhosted.org/packages/d8/df/fe699727754cae3f8478493c7f45f777b17c3ef0600e28abfec8619eb49c/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ebf3e58c7ec8a8bed6d66a75d7fb37b55e5015b03ceae72a8e7c74495551e224", size = 152991, upload-time = "2025-10-14T04:40:48.246Z" }, + { url = "https://files.pythonhosted.org/packages/1a/86/584869fe4ddb6ffa3bd9f491b87a01568797fb9bd8933f557dba9771beaf/charset_normalizer-3.4.4-cp311-cp311-win32.whl", hash = "sha256:eecbc200c7fd5ddb9a7f16c7decb07b566c29fa2161a16cf67b8d068bd21690a", size = 99456, upload-time = "2025-10-14T04:40:49.376Z" }, + { url = "https://files.pythonhosted.org/packages/65/f6/62fdd5feb60530f50f7e38b4f6a1d5203f4d16ff4f9f0952962c044e919a/charset_normalizer-3.4.4-cp311-cp311-win_amd64.whl", hash = "sha256:5ae497466c7901d54b639cf42d5b8c1b6a4fead55215500d2f486d34db48d016", size = 106978, upload-time = "2025-10-14T04:40:50.844Z" }, + { url = "https://files.pythonhosted.org/packages/7a/9d/0710916e6c82948b3be62d9d398cb4fcf4e97b56d6a6aeccd66c4b2f2bd5/charset_normalizer-3.4.4-cp311-cp311-win_arm64.whl", hash = "sha256:65e2befcd84bc6f37095f5961e68a6f077bf44946771354a28ad434c2cce0ae1", size = 99969, upload-time = "2025-10-14T04:40:52.272Z" }, + { url = "https://files.pythonhosted.org/packages/f3/85/1637cd4af66fa687396e757dec650f28025f2a2f5a5531a3208dc0ec43f2/charset_normalizer-3.4.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0a98e6759f854bd25a58a73fa88833fba3b7c491169f86ce1180c948ab3fd394", size = 208425, upload-time = "2025-10-14T04:40:53.353Z" }, + { url = "https://files.pythonhosted.org/packages/9d/6a/04130023fef2a0d9c62d0bae2649b69f7b7d8d24ea5536feef50551029df/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b5b290ccc2a263e8d185130284f8501e3e36c5e02750fc6b6bdeb2e9e96f1e25", size = 148162, upload-time = "2025-10-14T04:40:54.558Z" }, + { url = "https://files.pythonhosted.org/packages/78/29/62328d79aa60da22c9e0b9a66539feae06ca0f5a4171ac4f7dc285b83688/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74bb723680f9f7a6234dcf67aea57e708ec1fbdf5699fb91dfd6f511b0a320ef", size = 144558, upload-time = "2025-10-14T04:40:55.677Z" }, + { url = "https://files.pythonhosted.org/packages/86/bb/b32194a4bf15b88403537c2e120b817c61cd4ecffa9b6876e941c3ee38fe/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f1e34719c6ed0b92f418c7c780480b26b5d9c50349e9a9af7d76bf757530350d", size = 161497, upload-time = "2025-10-14T04:40:57.217Z" }, + { url = "https://files.pythonhosted.org/packages/19/89/a54c82b253d5b9b111dc74aca196ba5ccfcca8242d0fb64146d4d3183ff1/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2437418e20515acec67d86e12bf70056a33abdacb5cb1655042f6538d6b085a8", size = 159240, upload-time = "2025-10-14T04:40:58.358Z" }, + { url = "https://files.pythonhosted.org/packages/c0/10/d20b513afe03acc89ec33948320a5544d31f21b05368436d580dec4e234d/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:11d694519d7f29d6cd09f6ac70028dba10f92f6cdd059096db198c283794ac86", size = 153471, upload-time = "2025-10-14T04:40:59.468Z" }, + { url = "https://files.pythonhosted.org/packages/61/fa/fbf177b55bdd727010f9c0a3c49eefa1d10f960e5f09d1d887bf93c2e698/charset_normalizer-3.4.4-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ac1c4a689edcc530fc9d9aa11f5774b9e2f33f9a0c6a57864e90908f5208d30a", size = 150864, upload-time = "2025-10-14T04:41:00.623Z" }, + { url = "https://files.pythonhosted.org/packages/05/12/9fbc6a4d39c0198adeebbde20b619790e9236557ca59fc40e0e3cebe6f40/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:21d142cc6c0ec30d2efee5068ca36c128a30b0f2c53c1c07bd78cb6bc1d3be5f", size = 150647, upload-time = "2025-10-14T04:41:01.754Z" }, + { url = "https://files.pythonhosted.org/packages/ad/1f/6a9a593d52e3e8c5d2b167daf8c6b968808efb57ef4c210acb907c365bc4/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:5dbe56a36425d26d6cfb40ce79c314a2e4dd6211d51d6d2191c00bed34f354cc", size = 145110, upload-time = "2025-10-14T04:41:03.231Z" }, + { url = "https://files.pythonhosted.org/packages/30/42/9a52c609e72471b0fc54386dc63c3781a387bb4fe61c20231a4ebcd58bdd/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5bfbb1b9acf3334612667b61bd3002196fe2a1eb4dd74d247e0f2a4d50ec9bbf", size = 162839, upload-time = "2025-10-14T04:41:04.715Z" }, + { url = "https://files.pythonhosted.org/packages/c4/5b/c0682bbf9f11597073052628ddd38344a3d673fda35a36773f7d19344b23/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:d055ec1e26e441f6187acf818b73564e6e6282709e9bcb5b63f5b23068356a15", size = 150667, upload-time = "2025-10-14T04:41:05.827Z" }, + { url = "https://files.pythonhosted.org/packages/e4/24/a41afeab6f990cf2daf6cb8c67419b63b48cf518e4f56022230840c9bfb2/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:af2d8c67d8e573d6de5bc30cdb27e9b95e49115cd9baad5ddbd1a6207aaa82a9", size = 160535, upload-time = "2025-10-14T04:41:06.938Z" }, + { url = "https://files.pythonhosted.org/packages/2a/e5/6a4ce77ed243c4a50a1fecca6aaaab419628c818a49434be428fe24c9957/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:780236ac706e66881f3b7f2f32dfe90507a09e67d1d454c762cf642e6e1586e0", size = 154816, upload-time = "2025-10-14T04:41:08.101Z" }, + { url = "https://files.pythonhosted.org/packages/a8/ef/89297262b8092b312d29cdb2517cb1237e51db8ecef2e9af5edbe7b683b1/charset_normalizer-3.4.4-cp312-cp312-win32.whl", hash = "sha256:5833d2c39d8896e4e19b689ffc198f08ea58116bee26dea51e362ecc7cd3ed26", size = 99694, upload-time = "2025-10-14T04:41:09.23Z" }, + { url = "https://files.pythonhosted.org/packages/3d/2d/1e5ed9dd3b3803994c155cd9aacb60c82c331bad84daf75bcb9c91b3295e/charset_normalizer-3.4.4-cp312-cp312-win_amd64.whl", hash = "sha256:a79cfe37875f822425b89a82333404539ae63dbdddf97f84dcbc3d339aae9525", size = 107131, upload-time = "2025-10-14T04:41:10.467Z" }, + { url = "https://files.pythonhosted.org/packages/d0/d9/0ed4c7098a861482a7b6a95603edce4c0d9db2311af23da1fb2b75ec26fc/charset_normalizer-3.4.4-cp312-cp312-win_arm64.whl", hash = "sha256:376bec83a63b8021bb5c8ea75e21c4ccb86e7e45ca4eb81146091b56599b80c3", size = 100390, upload-time = "2025-10-14T04:41:11.915Z" }, + { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, +] + +[[package]] +name = "click" +version = "8.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3d/fa/656b739db8587d7b5dfa22e22ed02566950fbfbcdc20311993483657a5c0/click-8.3.1.tar.gz", hash = "sha256:12ff4785d337a1bb490bb7e9c2b1ee5da3112e94a8622f26a6c77f5d2fc6842a", size = 295065, upload-time = "2025-11-15T20:45:42.706Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/98/78/01c019cdb5d6498122777c1a43056ebb3ebfeef2076d9d026bfe15583b2b/click-8.3.1-py3-none-any.whl", hash = "sha256:981153a64e25f12d547d3426c367a4857371575ee7ad18df2a6183ab0545b2a6", size = 108274, upload-time = "2025-11-15T20:45:41.139Z" }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, +] + +[[package]] +name = "cryptography" +version = "46.0.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9f/33/c00162f49c0e2fe8064a62cb92b93e50c74a72bc370ab92f86112b33ff62/cryptography-46.0.3.tar.gz", hash = "sha256:a8b17438104fed022ce745b362294d9ce35b4c2e45c1d958ad4a4b019285f4a1", size = 749258, upload-time = "2025-10-15T23:18:31.74Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1d/42/9c391dd801d6cf0d561b5890549d4b27bafcc53b39c31a817e69d87c625b/cryptography-46.0.3-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:109d4ddfadf17e8e7779c39f9b18111a09efb969a301a31e987416a0191ed93a", size = 7225004, upload-time = "2025-10-15T23:16:52.239Z" }, + { url = "https://files.pythonhosted.org/packages/1c/67/38769ca6b65f07461eb200e85fc1639b438bdc667be02cf7f2cd6a64601c/cryptography-46.0.3-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:09859af8466b69bc3c27bdf4f5d84a665e0f7ab5088412e9e2ec49758eca5cbc", size = 4296667, upload-time = "2025-10-15T23:16:54.369Z" }, + { url = "https://files.pythonhosted.org/packages/5c/49/498c86566a1d80e978b42f0d702795f69887005548c041636df6ae1ca64c/cryptography-46.0.3-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:01ca9ff2885f3acc98c29f1860552e37f6d7c7d013d7334ff2a9de43a449315d", size = 4450807, upload-time = "2025-10-15T23:16:56.414Z" }, + { url = "https://files.pythonhosted.org/packages/4b/0a/863a3604112174c8624a2ac3c038662d9e59970c7f926acdcfaed8d61142/cryptography-46.0.3-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:6eae65d4c3d33da080cff9c4ab1f711b15c1d9760809dad6ea763f3812d254cb", size = 4299615, upload-time = "2025-10-15T23:16:58.442Z" }, + { url = "https://files.pythonhosted.org/packages/64/02/b73a533f6b64a69f3cd3872acb6ebc12aef924d8d103133bb3ea750dc703/cryptography-46.0.3-cp311-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e5bf0ed4490068a2e72ac03d786693adeb909981cc596425d09032d372bcc849", size = 4016800, upload-time = "2025-10-15T23:17:00.378Z" }, + { url = "https://files.pythonhosted.org/packages/25/d5/16e41afbfa450cde85a3b7ec599bebefaef16b5c6ba4ec49a3532336ed72/cryptography-46.0.3-cp311-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:5ecfccd2329e37e9b7112a888e76d9feca2347f12f37918facbb893d7bb88ee8", size = 4984707, upload-time = "2025-10-15T23:17:01.98Z" }, + { url = "https://files.pythonhosted.org/packages/c9/56/e7e69b427c3878352c2fb9b450bd0e19ed552753491d39d7d0a2f5226d41/cryptography-46.0.3-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:a2c0cd47381a3229c403062f764160d57d4d175e022c1df84e168c6251a22eec", size = 4482541, upload-time = "2025-10-15T23:17:04.078Z" }, + { url = "https://files.pythonhosted.org/packages/78/f6/50736d40d97e8483172f1bb6e698895b92a223dba513b0ca6f06b2365339/cryptography-46.0.3-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:549e234ff32571b1f4076ac269fcce7a808d3bf98b76c8dd560e42dbc66d7d91", size = 4299464, upload-time = "2025-10-15T23:17:05.483Z" }, + { url = "https://files.pythonhosted.org/packages/00/de/d8e26b1a855f19d9994a19c702fa2e93b0456beccbcfe437eda00e0701f2/cryptography-46.0.3-cp311-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:c0a7bb1a68a5d3471880e264621346c48665b3bf1c3759d682fc0864c540bd9e", size = 4950838, upload-time = "2025-10-15T23:17:07.425Z" }, + { url = "https://files.pythonhosted.org/packages/8f/29/798fc4ec461a1c9e9f735f2fc58741b0daae30688f41b2497dcbc9ed1355/cryptography-46.0.3-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:10b01676fc208c3e6feeb25a8b83d81767e8059e1fe86e1dc62d10a3018fa926", size = 4481596, upload-time = "2025-10-15T23:17:09.343Z" }, + { url = "https://files.pythonhosted.org/packages/15/8d/03cd48b20a573adfff7652b76271078e3045b9f49387920e7f1f631d125e/cryptography-46.0.3-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:0abf1ffd6e57c67e92af68330d05760b7b7efb243aab8377e583284dbab72c71", size = 4426782, upload-time = "2025-10-15T23:17:11.22Z" }, + { url = "https://files.pythonhosted.org/packages/fa/b1/ebacbfe53317d55cf33165bda24c86523497a6881f339f9aae5c2e13e57b/cryptography-46.0.3-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a04bee9ab6a4da801eb9b51f1b708a1b5b5c9eb48c03f74198464c66f0d344ac", size = 4698381, upload-time = "2025-10-15T23:17:12.829Z" }, + { url = "https://files.pythonhosted.org/packages/96/92/8a6a9525893325fc057a01f654d7efc2c64b9de90413adcf605a85744ff4/cryptography-46.0.3-cp311-abi3-win32.whl", hash = "sha256:f260d0d41e9b4da1ed1e0f1ce571f97fe370b152ab18778e9e8f67d6af432018", size = 3055988, upload-time = "2025-10-15T23:17:14.65Z" }, + { url = "https://files.pythonhosted.org/packages/7e/bf/80fbf45253ea585a1e492a6a17efcb93467701fa79e71550a430c5e60df0/cryptography-46.0.3-cp311-abi3-win_amd64.whl", hash = "sha256:a9a3008438615669153eb86b26b61e09993921ebdd75385ddd748702c5adfddb", size = 3514451, upload-time = "2025-10-15T23:17:16.142Z" }, + { url = "https://files.pythonhosted.org/packages/2e/af/9b302da4c87b0beb9db4e756386a7c6c5b8003cd0e742277888d352ae91d/cryptography-46.0.3-cp311-abi3-win_arm64.whl", hash = "sha256:5d7f93296ee28f68447397bf5198428c9aeeab45705a55d53a6343455dcb2c3c", size = 2928007, upload-time = "2025-10-15T23:17:18.04Z" }, + { url = "https://files.pythonhosted.org/packages/fd/23/45fe7f376a7df8daf6da3556603b36f53475a99ce4faacb6ba2cf3d82021/cryptography-46.0.3-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:cb3d760a6117f621261d662bccc8ef5bc32ca673e037c83fbe565324f5c46936", size = 7218248, upload-time = "2025-10-15T23:17:46.294Z" }, + { url = "https://files.pythonhosted.org/packages/27/32/b68d27471372737054cbd34c84981f9edbc24fe67ca225d389799614e27f/cryptography-46.0.3-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:4b7387121ac7d15e550f5cb4a43aef2559ed759c35df7336c402bb8275ac9683", size = 4294089, upload-time = "2025-10-15T23:17:48.269Z" }, + { url = "https://files.pythonhosted.org/packages/26/42/fa8389d4478368743e24e61eea78846a0006caffaf72ea24a15159215a14/cryptography-46.0.3-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:15ab9b093e8f09daab0f2159bb7e47532596075139dd74365da52ecc9cb46c5d", size = 4440029, upload-time = "2025-10-15T23:17:49.837Z" }, + { url = "https://files.pythonhosted.org/packages/5f/eb/f483db0ec5ac040824f269e93dd2bd8a21ecd1027e77ad7bdf6914f2fd80/cryptography-46.0.3-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:46acf53b40ea38f9c6c229599a4a13f0d46a6c3fa9ef19fc1a124d62e338dfa0", size = 4297222, upload-time = "2025-10-15T23:17:51.357Z" }, + { url = "https://files.pythonhosted.org/packages/fd/cf/da9502c4e1912cb1da3807ea3618a6829bee8207456fbbeebc361ec38ba3/cryptography-46.0.3-cp38-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:10ca84c4668d066a9878890047f03546f3ae0a6b8b39b697457b7757aaf18dbc", size = 4012280, upload-time = "2025-10-15T23:17:52.964Z" }, + { url = "https://files.pythonhosted.org/packages/6b/8f/9adb86b93330e0df8b3dcf03eae67c33ba89958fc2e03862ef1ac2b42465/cryptography-46.0.3-cp38-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:36e627112085bb3b81b19fed209c05ce2a52ee8b15d161b7c643a7d5a88491f3", size = 4978958, upload-time = "2025-10-15T23:17:54.965Z" }, + { url = "https://files.pythonhosted.org/packages/d1/a0/5fa77988289c34bdb9f913f5606ecc9ada1adb5ae870bd0d1054a7021cc4/cryptography-46.0.3-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:1000713389b75c449a6e979ffc7dcc8ac90b437048766cef052d4d30b8220971", size = 4473714, upload-time = "2025-10-15T23:17:56.754Z" }, + { url = "https://files.pythonhosted.org/packages/14/e5/fc82d72a58d41c393697aa18c9abe5ae1214ff6f2a5c18ac470f92777895/cryptography-46.0.3-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:b02cf04496f6576afffef5ddd04a0cb7d49cf6be16a9059d793a30b035f6b6ac", size = 4296970, upload-time = "2025-10-15T23:17:58.588Z" }, + { url = "https://files.pythonhosted.org/packages/78/06/5663ed35438d0b09056973994f1aec467492b33bd31da36e468b01ec1097/cryptography-46.0.3-cp38-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:71e842ec9bc7abf543b47cf86b9a743baa95f4677d22baa4c7d5c69e49e9bc04", size = 4940236, upload-time = "2025-10-15T23:18:00.897Z" }, + { url = "https://files.pythonhosted.org/packages/fc/59/873633f3f2dcd8a053b8dd1d38f783043b5fce589c0f6988bf55ef57e43e/cryptography-46.0.3-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:402b58fc32614f00980b66d6e56a5b4118e6cb362ae8f3fda141ba4689bd4506", size = 4472642, upload-time = "2025-10-15T23:18:02.749Z" }, + { url = "https://files.pythonhosted.org/packages/3d/39/8e71f3930e40f6877737d6f69248cf74d4e34b886a3967d32f919cc50d3b/cryptography-46.0.3-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:ef639cb3372f69ec44915fafcd6698b6cc78fbe0c2ea41be867f6ed612811963", size = 4423126, upload-time = "2025-10-15T23:18:04.85Z" }, + { url = "https://files.pythonhosted.org/packages/cd/c7/f65027c2810e14c3e7268353b1681932b87e5a48e65505d8cc17c99e36ae/cryptography-46.0.3-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:3b51b8ca4f1c6453d8829e1eb7299499ca7f313900dd4d89a24b8b87c0a780d4", size = 4686573, upload-time = "2025-10-15T23:18:06.908Z" }, + { url = "https://files.pythonhosted.org/packages/0a/6e/1c8331ddf91ca4730ab3086a0f1be19c65510a33b5a441cb334e7a2d2560/cryptography-46.0.3-cp38-abi3-win32.whl", hash = "sha256:6276eb85ef938dc035d59b87c8a7dc559a232f954962520137529d77b18ff1df", size = 3036695, upload-time = "2025-10-15T23:18:08.672Z" }, + { url = "https://files.pythonhosted.org/packages/90/45/b0d691df20633eff80955a0fc7695ff9051ffce8b69741444bd9ed7bd0db/cryptography-46.0.3-cp38-abi3-win_amd64.whl", hash = "sha256:416260257577718c05135c55958b674000baef9a1c7d9e8f306ec60d71db850f", size = 3501720, upload-time = "2025-10-15T23:18:10.632Z" }, + { url = "https://files.pythonhosted.org/packages/e8/cb/2da4cc83f5edb9c3257d09e1e7ab7b23f049c7962cae8d842bbef0a9cec9/cryptography-46.0.3-cp38-abi3-win_arm64.whl", hash = "sha256:d89c3468de4cdc4f08a57e214384d0471911a3830fcdaf7a8cc587e42a866372", size = 2918740, upload-time = "2025-10-15T23:18:12.277Z" }, + { url = "https://files.pythonhosted.org/packages/06/8a/e60e46adab4362a682cf142c7dcb5bf79b782ab2199b0dcb81f55970807f/cryptography-46.0.3-pp311-pypy311_pp73-macosx_10_9_x86_64.whl", hash = "sha256:7ce938a99998ed3c8aa7e7272dca1a610401ede816d36d0693907d863b10d9ea", size = 3698132, upload-time = "2025-10-15T23:18:17.056Z" }, + { url = "https://files.pythonhosted.org/packages/da/38/f59940ec4ee91e93d3311f7532671a5cef5570eb04a144bf203b58552d11/cryptography-46.0.3-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:191bb60a7be5e6f54e30ba16fdfae78ad3a342a0599eb4193ba88e3f3d6e185b", size = 4243992, upload-time = "2025-10-15T23:18:18.695Z" }, + { url = "https://files.pythonhosted.org/packages/b0/0c/35b3d92ddebfdfda76bb485738306545817253d0a3ded0bfe80ef8e67aa5/cryptography-46.0.3-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:c70cc23f12726be8f8bc72e41d5065d77e4515efae3690326764ea1b07845cfb", size = 4409944, upload-time = "2025-10-15T23:18:20.597Z" }, + { url = "https://files.pythonhosted.org/packages/99/55/181022996c4063fc0e7666a47049a1ca705abb9c8a13830f074edb347495/cryptography-46.0.3-pp311-pypy311_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:9394673a9f4de09e28b5356e7fff97d778f8abad85c9d5ac4a4b7e25a0de7717", size = 4242957, upload-time = "2025-10-15T23:18:22.18Z" }, + { url = "https://files.pythonhosted.org/packages/ba/af/72cd6ef29f9c5f731251acadaeb821559fe25f10852f44a63374c9ca08c1/cryptography-46.0.3-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:94cd0549accc38d1494e1f8de71eca837d0509d0d44bf11d158524b0e12cebf9", size = 4409447, upload-time = "2025-10-15T23:18:24.209Z" }, + { url = "https://files.pythonhosted.org/packages/0d/c3/e90f4a4feae6410f914f8ebac129b9ae7a8c92eb60a638012dde42030a9d/cryptography-46.0.3-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:6b5063083824e5509fdba180721d55909ffacccc8adbec85268b48439423d78c", size = 3438528, upload-time = "2025-10-15T23:18:26.227Z" }, +] + +[[package]] +name = "dataclasses-json" +version = "0.6.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "marshmallow" }, + { name = "typing-inspect" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/64/a4/f71d9cf3a5ac257c993b5ca3f93df5f7fb395c725e7f1e6479d2514173c3/dataclasses_json-0.6.7.tar.gz", hash = "sha256:b6b3e528266ea45b9535223bc53ca645f5208833c29229e847b3f26a1cc55fc0", size = 32227, upload-time = "2024-06-09T16:20:19.103Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c3/be/d0d44e092656fe7a06b55e6103cbce807cdbdee17884a5367c68c9860853/dataclasses_json-0.6.7-py3-none-any.whl", hash = "sha256:0dbf33f26c8d5305befd61b39d2b3414e8a407bedc2834dea9b8d642666fb40a", size = 28686, upload-time = "2024-06-09T16:20:16.715Z" }, +] + +[[package]] +name = "decorator" +version = "5.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/43/fa/6d96a0978d19e17b68d634497769987b16c8f4cd0a7a05048bec693caa6b/decorator-5.2.1.tar.gz", hash = "sha256:65f266143752f734b0a7cc83c46f4618af75b8c5911b00ccb61d0ac9b6da0360", size = 56711, upload-time = "2025-02-24T04:41:34.073Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4e/8c/f3147f5c4b73e7550fe5f9352eaa956ae838d5c51eb58e7a25b9f3e2643b/decorator-5.2.1-py3-none-any.whl", hash = "sha256:d316bb415a2d9e2d2b3abcc4084c6502fc09240e292cd76a76afc106a1c8e04a", size = 9190, upload-time = "2025-02-24T04:41:32.565Z" }, +] + +[[package]] +name = "defusedxml" +version = "0.7.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0f/d5/c66da9b79e5bdb124974bfe172b4daf3c984ebd9c2a06e2b8a4dc7331c72/defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69", size = 75520, upload-time = "2021-03-08T10:59:26.269Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61", size = 25604, upload-time = "2021-03-08T10:59:24.45Z" }, +] + +[[package]] +name = "distlib" +version = "0.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/96/8e/709914eb2b5749865801041647dc7f4e6d00b549cfe88b65ca192995f07c/distlib-0.4.0.tar.gz", hash = "sha256:feec40075be03a04501a973d81f633735b4b69f98b05450592310c0f401a4e0d", size = 614605, upload-time = "2025-07-17T16:52:00.465Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/33/6b/e0547afaf41bf2c42e52430072fa5658766e3d65bd4b03a563d1b6336f57/distlib-0.4.0-py2.py3-none-any.whl", hash = "sha256:9659f7d87e46584a30b5780e43ac7a2143098441670ff0a49d5f9034c54a6c16", size = 469047, upload-time = "2025-07-17T16:51:58.613Z" }, +] + +[[package]] +name = "distro" +version = "1.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fc/f8/98eea607f65de6527f8a2e8885fc8015d3e6f5775df186e443e0964a11c3/distro-1.9.0.tar.gz", hash = "sha256:2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed", size = 60722, upload-time = "2023-12-24T09:54:32.31Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/12/b3/231ffd4ab1fc9d679809f356cebee130ac7daa00d6d6f3206dd4fd137e9e/distro-1.9.0-py3-none-any.whl", hash = "sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2", size = 20277, upload-time = "2023-12-24T09:54:30.421Z" }, +] + +[[package]] +name = "docopt" +version = "0.6.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a2/55/8f8cab2afd404cf578136ef2cc5dfb50baa1761b68c9da1fb1e4eed343c9/docopt-0.6.2.tar.gz", hash = "sha256:49b3a825280bd66b3aa83585ef59c4a8c82f2c8a522dbe754a8bc8d08c85c491", size = 25901, upload-time = "2014-06-16T11:18:57.406Z" } + +[[package]] +name = "docstring-parser" +version = "0.17.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b2/9d/c3b43da9515bd270df0f80548d9944e389870713cc1fe2b8fb35fe2bcefd/docstring_parser-0.17.0.tar.gz", hash = "sha256:583de4a309722b3315439bb31d64ba3eebada841f2e2cee23b99df001434c912", size = 27442, upload-time = "2025-07-21T07:35:01.868Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/55/e2/2537ebcff11c1ee1ff17d8d0b6f4db75873e3b0fb32c2d4a2ee31ecb310a/docstring_parser-0.17.0-py3-none-any.whl", hash = "sha256:cf2569abd23dce8099b300f9b4fa8191e9582dda731fd533daf54c4551658708", size = 36896, upload-time = "2025-07-21T07:35:00.684Z" }, +] + +[[package]] +name = "emoji" +version = "2.15.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a2/78/0d2db9382c92a163d7095fc08efff7800880f830a152cfced40161e7638d/emoji-2.15.0.tar.gz", hash = "sha256:eae4ab7d86456a70a00a985125a03263a5eac54cd55e51d7e184b1ed3b6757e4", size = 615483, upload-time = "2025-09-21T12:13:02.755Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e1/5e/4b5aaaabddfacfe36ba7768817bd1f71a7a810a43705e531f3ae4c690767/emoji-2.15.0-py3-none-any.whl", hash = "sha256:205296793d66a89d88af4688fa57fd6496732eb48917a87175a023c8138995eb", size = 608433, upload-time = "2025-09-21T12:13:01.197Z" }, +] + +[[package]] +name = "executing" +version = "2.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cc/28/c14e053b6762b1044f34a13aab6859bbf40456d37d23aa286ac24cfd9a5d/executing-2.2.1.tar.gz", hash = "sha256:3632cc370565f6648cc328b32435bd120a1e4ebb20c77e3fdde9a13cd1e533c4", size = 1129488, upload-time = "2025-09-01T09:48:10.866Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c1/ea/53f2148663b321f21b5a606bd5f191517cf40b7072c0497d3c92c4a13b1e/executing-2.2.1-py2.py3-none-any.whl", hash = "sha256:760643d3452b4d777d295bb167ccc74c64a81df23fb5e08eff250c425a4b2017", size = 28317, upload-time = "2025-09-01T09:48:08.5Z" }, +] + +[[package]] +name = "fastjsonschema" +version = "2.21.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/20/b5/23b216d9d985a956623b6bd12d4086b60f0059b27799f23016af04a74ea1/fastjsonschema-2.21.2.tar.gz", hash = "sha256:b1eb43748041c880796cd077f1a07c3d94e93ae84bba5ed36800a33554ae05de", size = 374130, upload-time = "2025-08-14T18:49:36.666Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/a8/20d0723294217e47de6d9e2e40fd4a9d2f7c4b6ef974babd482a59743694/fastjsonschema-2.21.2-py3-none-any.whl", hash = "sha256:1c797122d0a86c5cace2e54bf4e819c36223b552017172f32c5c024a6b77e463", size = 24024, upload-time = "2025-08-14T18:49:34.776Z" }, +] + +[[package]] +name = "filelock" +version = "3.20.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a7/23/ce7a1126827cedeb958fc043d61745754464eb56c5937c35bbf2b8e26f34/filelock-3.20.1.tar.gz", hash = "sha256:b8360948b351b80f420878d8516519a2204b07aefcdcfd24912a5d33127f188c", size = 19476, upload-time = "2025-12-15T23:54:28.027Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e3/7f/a1a97644e39e7316d850784c642093c99df1290a460df4ede27659056834/filelock-3.20.1-py3-none-any.whl", hash = "sha256:15d9e9a67306188a44baa72f569d2bfd803076269365fdea0934385da4dc361a", size = 16666, upload-time = "2025-12-15T23:54:26.874Z" }, +] + +[[package]] +name = "filetype" +version = "1.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bb/29/745f7d30d47fe0f251d3ad3dc2978a23141917661998763bebb6da007eb1/filetype-1.2.0.tar.gz", hash = "sha256:66b56cd6474bf41d8c54660347d37afcc3f7d1970648de365c102ef77548aadb", size = 998020, upload-time = "2022-11-02T17:34:04.141Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/79/1b8fa1bb3568781e84c9200f951c735f3f157429f44be0495da55894d620/filetype-1.2.0-py2.py3-none-any.whl", hash = "sha256:7ce71b6880181241cf7ac8697a2f1eb6a8bd9b429f7ad6d27b8db9ba5f1c2d25", size = 19970, upload-time = "2022-11-02T17:34:01.425Z" }, +] + +[[package]] +name = "flask" +version = "3.1.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "blinker" }, + { name = "click" }, + { name = "itsdangerous" }, + { name = "jinja2" }, + { name = "markupsafe" }, + { name = "werkzeug" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/dc/6d/cfe3c0fcc5e477df242b98bfe186a4c34357b4847e87ecaef04507332dab/flask-3.1.2.tar.gz", hash = "sha256:bf656c15c80190ed628ad08cdfd3aaa35beb087855e2f494910aa3774cc4fd87", size = 720160, upload-time = "2025-08-19T21:03:21.205Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/f9/7f9263c5695f4bd0023734af91bedb2ff8209e8de6ead162f35d8dc762fd/flask-3.1.2-py3-none-any.whl", hash = "sha256:ca1d8112ec8a6158cc29ea4858963350011b5c846a414cdb7a954aa9e967d03c", size = 103308, upload-time = "2025-08-19T21:03:19.499Z" }, +] + +[[package]] +name = "flask-cors" +version = "6.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "flask" }, + { name = "werkzeug" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/70/74/0fc0fa68d62f21daef41017dafab19ef4b36551521260987eb3a5394c7ba/flask_cors-6.0.2.tar.gz", hash = "sha256:6e118f3698249ae33e429760db98ce032a8bf9913638d085ca0f4c5534ad2423", size = 13472, upload-time = "2025-12-12T20:31:42.861Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4f/af/72ad54402e599152de6d067324c46fe6a4f531c7c65baf7e96c63db55eaf/flask_cors-6.0.2-py3-none-any.whl", hash = "sha256:e57544d415dfd7da89a9564e1e3a9e515042df76e12130641ca6f3f2f03b699a", size = 13257, upload-time = "2025-12-12T20:31:41.3Z" }, +] + +[[package]] +name = "fsspec" +version = "2025.12.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b6/27/954057b0d1f53f086f681755207dda6de6c660ce133c829158e8e8fe7895/fsspec-2025.12.0.tar.gz", hash = "sha256:c505de011584597b1060ff778bb664c1bc022e87921b0e4f10cc9c44f9635973", size = 309748, upload-time = "2025-12-03T15:23:42.687Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/51/c7/b64cae5dba3a1b138d7123ec36bb5ccd39d39939f18454407e5468f4763f/fsspec-2025.12.0-py3-none-any.whl", hash = "sha256:8bf1fe301b7d8acfa6e8571e3b1c3d158f909666642431cc78a1b7b4dbc5ec5b", size = 201422, upload-time = "2025-12-03T15:23:41.434Z" }, +] + +[[package]] +name = "h11" +version = "0.16.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1", size = 101250, upload-time = "2025-04-24T03:35:25.427Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515, upload-time = "2025-04-24T03:35:24.344Z" }, +] + +[[package]] +name = "hf-xet" +version = "1.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5e/6e/0f11bacf08a67f7fb5ee09740f2ca54163863b07b70d579356e9222ce5d8/hf_xet-1.2.0.tar.gz", hash = "sha256:a8c27070ca547293b6890c4bf389f713f80e8c478631432962bb7f4bc0bd7d7f", size = 506020, upload-time = "2025-10-24T19:04:32.129Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/96/2d/22338486473df5923a9ab7107d375dbef9173c338ebef5098ef593d2b560/hf_xet-1.2.0-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:46740d4ac024a7ca9b22bebf77460ff43332868b661186a8e46c227fdae01848", size = 2866099, upload-time = "2025-10-24T19:04:15.366Z" }, + { url = "https://files.pythonhosted.org/packages/7f/8c/c5becfa53234299bc2210ba314eaaae36c2875e0045809b82e40a9544f0c/hf_xet-1.2.0-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:27df617a076420d8845bea087f59303da8be17ed7ec0cd7ee3b9b9f579dff0e4", size = 2722178, upload-time = "2025-10-24T19:04:13.695Z" }, + { url = "https://files.pythonhosted.org/packages/9a/92/cf3ab0b652b082e66876d08da57fcc6fa2f0e6c70dfbbafbd470bb73eb47/hf_xet-1.2.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3651fd5bfe0281951b988c0facbe726aa5e347b103a675f49a3fa8144c7968fd", size = 3320214, upload-time = "2025-10-24T19:04:03.596Z" }, + { url = "https://files.pythonhosted.org/packages/46/92/3f7ec4a1b6a65bf45b059b6d4a5d38988f63e193056de2f420137e3c3244/hf_xet-1.2.0-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:d06fa97c8562fb3ee7a378dd9b51e343bc5bc8190254202c9771029152f5e08c", size = 3229054, upload-time = "2025-10-24T19:04:01.949Z" }, + { url = "https://files.pythonhosted.org/packages/0b/dd/7ac658d54b9fb7999a0ccb07ad863b413cbaf5cf172f48ebcd9497ec7263/hf_xet-1.2.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:4c1428c9ae73ec0939410ec73023c4f842927f39db09b063b9482dac5a3bb737", size = 3413812, upload-time = "2025-10-24T19:04:24.585Z" }, + { url = "https://files.pythonhosted.org/packages/92/68/89ac4e5b12a9ff6286a12174c8538a5930e2ed662091dd2572bbe0a18c8a/hf_xet-1.2.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a55558084c16b09b5ed32ab9ed38421e2d87cf3f1f89815764d1177081b99865", size = 3508920, upload-time = "2025-10-24T19:04:26.927Z" }, + { url = "https://files.pythonhosted.org/packages/cb/44/870d44b30e1dcfb6a65932e3e1506c103a8a5aea9103c337e7a53180322c/hf_xet-1.2.0-cp37-abi3-win_amd64.whl", hash = "sha256:e6584a52253f72c9f52f9e549d5895ca7a471608495c4ecaa6cc73dba2b24d69", size = 2905735, upload-time = "2025-10-24T19:04:35.928Z" }, +] + +[[package]] +name = "httpcore" +version = "1.0.9" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "h11" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/06/94/82699a10bca87a5556c9c59b5963f2d039dbd239f25bc2a63907a05a14cb/httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8", size = 85484, upload-time = "2025-04-24T22:06:22.219Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55", size = 78784, upload-time = "2025-04-24T22:06:20.566Z" }, +] + +[[package]] +name = "httpx" +version = "0.28.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "certifi" }, + { name = "httpcore" }, + { name = "idna" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc", size = 141406, upload-time = "2024-12-06T15:37:23.222Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517, upload-time = "2024-12-06T15:37:21.509Z" }, +] + +[[package]] +name = "httpx-sse" +version = "0.4.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0f/4c/751061ffa58615a32c31b2d82e8482be8dd4a89154f003147acee90f2be9/httpx_sse-0.4.3.tar.gz", hash = "sha256:9b1ed0127459a66014aec3c56bebd93da3c1bc8bb6618c8082039a44889a755d", size = 15943, upload-time = "2025-10-10T21:48:22.271Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d2/fd/6668e5aec43ab844de6fc74927e155a3b37bf40d7c3790e49fc0406b6578/httpx_sse-0.4.3-py3-none-any.whl", hash = "sha256:0ac1c9fe3c0afad2e0ebb25a934a59f4c7823b60792691f779fad2c5568830fc", size = 8960, upload-time = "2025-10-10T21:48:21.158Z" }, +] + +[[package]] +name = "huggingface-hub" +version = "0.36.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "filelock" }, + { name = "fsspec" }, + { name = "hf-xet", marker = "platform_machine == 'aarch64' or platform_machine == 'amd64' or platform_machine == 'arm64' or platform_machine == 'x86_64'" }, + { name = "packaging" }, + { name = "pyyaml" }, + { name = "requests" }, + { name = "tqdm" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/98/63/4910c5fa9128fdadf6a9c5ac138e8b1b6cee4ca44bf7915bbfbce4e355ee/huggingface_hub-0.36.0.tar.gz", hash = "sha256:47b3f0e2539c39bf5cde015d63b72ec49baff67b6931c3d97f3f84532e2b8d25", size = 463358, upload-time = "2025-10-23T12:12:01.413Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/bd/1a875e0d592d447cbc02805fd3fe0f497714d6a2583f59d14fa9ebad96eb/huggingface_hub-0.36.0-py3-none-any.whl", hash = "sha256:7bcc9ad17d5b3f07b57c78e79d527102d08313caa278a641993acddcb894548d", size = 566094, upload-time = "2025-10-23T12:11:59.557Z" }, +] + +[[package]] +name = "identify" +version = "2.6.15" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ff/e7/685de97986c916a6d93b3876139e00eef26ad5bbbd61925d670ae8013449/identify-2.6.15.tar.gz", hash = "sha256:e4f4864b96c6557ef2a1e1c951771838f4edc9df3a72ec7118b338801b11c7bf", size = 99311, upload-time = "2025-10-02T17:43:40.631Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0f/1c/e5fd8f973d4f375adb21565739498e2e9a1e54c858a97b9a8ccfdc81da9b/identify-2.6.15-py2.py3-none-any.whl", hash = "sha256:1181ef7608e00704db228516541eb83a88a9f94433a8c80bb9b5bd54b1d81757", size = 99183, upload-time = "2025-10-02T17:43:39.137Z" }, +] + +[[package]] +name = "idna" +version = "3.11" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/0703ccc57f3a7233505399edb88de3cbd678da106337b9fcde432b65ed60/idna-3.11.tar.gz", hash = "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902", size = 194582, upload-time = "2025-10-12T14:55:20.501Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl", hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea", size = 71008, upload-time = "2025-10-12T14:55:18.883Z" }, +] + +[[package]] +name = "igraph" +version = "0.11.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "texttable" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5f/a0/1f70c34a96dcb0acf428319e83655e92ab2955d73a33f711852a5fb79681/igraph-0.11.6.tar.gz", hash = "sha256:837f233256c3319f2a35a6a80d94eafe47b43791ef4c6f9e9871061341ac8e28", size = 4559252, upload-time = "2024-07-08T23:38:32.722Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a9/f5/2de2ff541a014c3387c0c570a91e51b80643d9a2a3e0dec8030bcec3083d/igraph-0.11.6-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:8aabef03d787b519d1075dfc0da4a1109fb113b941334883e3e7947ac30a459e", size = 1945799, upload-time = "2024-07-08T23:37:32.692Z" }, + { url = "https://files.pythonhosted.org/packages/e4/3b/5cf3b131d433dea61608ea2c27bebf74de9cc7a50ced0b26311d6288294e/igraph-0.11.6-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:1f2cc4a518d99cdf6cae514f85e93e56852bc8c325b3abb96037d1d690b5975f", size = 1751328, upload-time = "2024-07-08T23:37:34.415Z" }, + { url = "https://files.pythonhosted.org/packages/fc/71/71cd93c1b26e6051ef5dfad94333690188e663942e54bea6bbfff79d2dbe/igraph-0.11.6-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c1e859238be52ab8ccc614d18f9362942bc88ce543afc12548f81ae99b10801d", size = 2974608, upload-time = "2024-07-08T23:37:36.076Z" }, + { url = "https://files.pythonhosted.org/packages/19/ec/02e596595776367f5fd07c65a56ff1593680273f935c481975fe6a55e67f/igraph-0.11.6-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d61fbe5e85eb4ae9efe08c461f9bdeedb02a2b5739fbc223d324a71f40a28be2", size = 3054685, upload-time = "2024-07-08T23:37:38.121Z" }, + { url = "https://files.pythonhosted.org/packages/02/f2/70849b7ff0fbfd3e7c964ac737ea973d0121d30a32a18894df6d0843bd0c/igraph-0.11.6-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b6620ba39df29fd42151becf82309b54e57148233c9c3ef890eed62e25eed8a5", size = 3134936, upload-time = "2024-07-08T23:37:40.497Z" }, + { url = "https://files.pythonhosted.org/packages/ef/49/579f3a5daea1a672f05c95ead488e779f1479a8efb78715c1508f7dae58a/igraph-0.11.6-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:59666589bb3d07f310cda2c5106a8adeeb77c2ef27fecf1c6438b6091f4ca69d", size = 3887705, upload-time = "2024-07-08T23:37:42.914Z" }, + { url = "https://files.pythonhosted.org/packages/ef/d2/66203ba13f90ea77f541c0f5b5ae095a7ced0a564486f576e5adce0d0bd7/igraph-0.11.6-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:8750b6d6caebf199cf7dc41c931f58e330153779707391e30f0a29f02666fb6e", size = 4158876, upload-time = "2024-07-08T23:37:45.708Z" }, + { url = "https://files.pythonhosted.org/packages/53/e7/3fbe83625efb1dd5f387a9da9ec0ac779a2dc42e6db0ac7eb54c44943b2f/igraph-0.11.6-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:967d6f2c30fe94317da15e459374d0fb8ca3e56020412f201ecd07dd5b5352f2", size = 4050715, upload-time = "2024-07-08T23:37:48.478Z" }, + { url = "https://files.pythonhosted.org/packages/ab/91/2535aa81a1de36f5b21df129b3434a18710d31ea56efbf0ec6e1f1958fda/igraph-0.11.6-cp39-abi3-win32.whl", hash = "sha256:9744f95a67319eb6cb487ceabf30f5d7940de34bada51f0ba63adbd23e0f94ad", size = 1589990, upload-time = "2024-07-08T23:37:50.825Z" }, + { url = "https://files.pythonhosted.org/packages/08/4a/e781867fa2fb41d823a8f1978ac464aef3d78bb73c6f40589a74cc47bf42/igraph-0.11.6-cp39-abi3-win_amd64.whl", hash = "sha256:b80e69eb11faa9c57330a9ffebdde5808966efe1c1f638d4d4827ea04df7aca8", size = 1965492, upload-time = "2024-07-08T23:37:53.203Z" }, +] + +[[package]] +name = "iniconfig" +version = "2.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730", size = 20503, upload-time = "2025-10-18T21:55:43.219Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12", size = 7484, upload-time = "2025-10-18T21:55:41.639Z" }, +] + +[[package]] +name = "ipython" +version = "8.12.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "appnope", marker = "sys_platform == 'darwin'" }, + { name = "backcall" }, + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "decorator" }, + { name = "jedi" }, + { name = "matplotlib-inline" }, + { name = "pexpect", marker = "sys_platform != 'win32'" }, + { name = "pickleshare" }, + { name = "prompt-toolkit" }, + { name = "pygments" }, + { name = "stack-data" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9e/6a/44ef299b1762f5a73841e87fae8a73a8cc8aee538d6dc8c77a5afe1fd2ce/ipython-8.12.3.tar.gz", hash = "sha256:3910c4b54543c2ad73d06579aa771041b7d5707b033bd488669b4cf544e3b363", size = 5470171, upload-time = "2023-09-29T09:14:37.468Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8d/97/8fe103906cd81bc42d3b0175b5534a9f67dccae47d6451131cf8d0d70bb2/ipython-8.12.3-py3-none-any.whl", hash = "sha256:b0340d46a933d27c657b211a329d0be23793c36595acf9e6ef4164bc01a1804c", size = 798307, upload-time = "2023-09-29T09:14:34.431Z" }, +] + +[[package]] +name = "itsdangerous" +version = "2.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9c/cb/8ac0172223afbccb63986cc25049b154ecfb5e85932587206f42317be31d/itsdangerous-2.2.0.tar.gz", hash = "sha256:e0050c0b7da1eea53ffaf149c0cfbb5c6e2e2b69c4bef22c81fa6eb73e5f6173", size = 54410, upload-time = "2024-04-16T21:28:15.614Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/96/92447566d16df59b2a776c0fb82dbc4d9e07cd95062562af01e408583fc4/itsdangerous-2.2.0-py3-none-any.whl", hash = "sha256:c6242fc49e35958c8b15141343aa660db5fc54d4f13a1db01a3f5891b98700ef", size = 16234, upload-time = "2024-04-16T21:28:14.499Z" }, +] + +[[package]] +name = "jedi" +version = "0.19.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "parso" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/72/3a/79a912fbd4d8dd6fbb02bf69afd3bb72cf0c729bb3063c6f4498603db17a/jedi-0.19.2.tar.gz", hash = "sha256:4770dc3de41bde3966b02eb84fbcf557fb33cce26ad23da12c742fb50ecb11f0", size = 1231287, upload-time = "2024-11-11T01:41:42.873Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c0/5a/9cac0c82afec3d09ccd97c8b6502d48f165f9124db81b4bcb90b4af974ee/jedi-0.19.2-py2.py3-none-any.whl", hash = "sha256:a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9", size = 1572278, upload-time = "2024-11-11T01:41:40.175Z" }, +] + +[[package]] +name = "jinja2" +version = "3.1.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markupsafe" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d", size = 245115, upload-time = "2025-03-05T20:05:02.478Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899, upload-time = "2025-03-05T20:05:00.369Z" }, +] + +[[package]] +name = "jiter" +version = "0.12.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/45/9d/e0660989c1370e25848bb4c52d061c71837239738ad937e83edca174c273/jiter-0.12.0.tar.gz", hash = "sha256:64dfcd7d5c168b38d3f9f8bba7fc639edb3418abcc74f22fdbe6b8938293f30b", size = 168294, upload-time = "2025-11-09T20:49:23.302Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/32/f9/eaca4633486b527ebe7e681c431f529b63fe2709e7c5242fc0f43f77ce63/jiter-0.12.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d8f8a7e317190b2c2d60eb2e8aa835270b008139562d70fe732e1c0020ec53c9", size = 316435, upload-time = "2025-11-09T20:47:02.087Z" }, + { url = "https://files.pythonhosted.org/packages/10/c1/40c9f7c22f5e6ff715f28113ebaba27ab85f9af2660ad6e1dd6425d14c19/jiter-0.12.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2218228a077e784c6c8f1a8e5d6b8cb1dea62ce25811c356364848554b2056cd", size = 320548, upload-time = "2025-11-09T20:47:03.409Z" }, + { url = "https://files.pythonhosted.org/packages/6b/1b/efbb68fe87e7711b00d2cfd1f26bb4bfc25a10539aefeaa7727329ffb9cb/jiter-0.12.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9354ccaa2982bf2188fd5f57f79f800ef622ec67beb8329903abf6b10da7d423", size = 351915, upload-time = "2025-11-09T20:47:05.171Z" }, + { url = "https://files.pythonhosted.org/packages/15/2d/c06e659888c128ad1e838123d0638f0efad90cc30860cb5f74dd3f2fc0b3/jiter-0.12.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8f2607185ea89b4af9a604d4c7ec40e45d3ad03ee66998b031134bc510232bb7", size = 368966, upload-time = "2025-11-09T20:47:06.508Z" }, + { url = "https://files.pythonhosted.org/packages/6b/20/058db4ae5fb07cf6a4ab2e9b9294416f606d8e467fb74c2184b2a1eeacba/jiter-0.12.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3a585a5e42d25f2e71db5f10b171f5e5ea641d3aa44f7df745aa965606111cc2", size = 482047, upload-time = "2025-11-09T20:47:08.382Z" }, + { url = "https://files.pythonhosted.org/packages/49/bb/dc2b1c122275e1de2eb12905015d61e8316b2f888bdaac34221c301495d6/jiter-0.12.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bd9e21d34edff5a663c631f850edcb786719c960ce887a5661e9c828a53a95d9", size = 380835, upload-time = "2025-11-09T20:47:09.81Z" }, + { url = "https://files.pythonhosted.org/packages/23/7d/38f9cd337575349de16da575ee57ddb2d5a64d425c9367f5ef9e4612e32e/jiter-0.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a612534770470686cd5431478dc5a1b660eceb410abade6b1b74e320ca98de6", size = 364587, upload-time = "2025-11-09T20:47:11.529Z" }, + { url = "https://files.pythonhosted.org/packages/f0/a3/b13e8e61e70f0bb06085099c4e2462647f53cc2ca97614f7fedcaa2bb9f3/jiter-0.12.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3985aea37d40a908f887b34d05111e0aae822943796ebf8338877fee2ab67725", size = 390492, upload-time = "2025-11-09T20:47:12.993Z" }, + { url = "https://files.pythonhosted.org/packages/07/71/e0d11422ed027e21422f7bc1883c61deba2d9752b720538430c1deadfbca/jiter-0.12.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b1207af186495f48f72529f8d86671903c8c10127cac6381b11dddc4aaa52df6", size = 522046, upload-time = "2025-11-09T20:47:14.6Z" }, + { url = "https://files.pythonhosted.org/packages/9f/59/b968a9aa7102a8375dbbdfbd2aeebe563c7e5dddf0f47c9ef1588a97e224/jiter-0.12.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:ef2fb241de583934c9915a33120ecc06d94aa3381a134570f59eed784e87001e", size = 513392, upload-time = "2025-11-09T20:47:16.011Z" }, + { url = "https://files.pythonhosted.org/packages/ca/e4/7df62002499080dbd61b505c5cb351aa09e9959d176cac2aa8da6f93b13b/jiter-0.12.0-cp311-cp311-win32.whl", hash = "sha256:453b6035672fecce8007465896a25b28a6b59cfe8fbc974b2563a92f5a92a67c", size = 206096, upload-time = "2025-11-09T20:47:17.344Z" }, + { url = "https://files.pythonhosted.org/packages/bb/60/1032b30ae0572196b0de0e87dce3b6c26a1eff71aad5fe43dee3082d32e0/jiter-0.12.0-cp311-cp311-win_amd64.whl", hash = "sha256:ca264b9603973c2ad9435c71a8ec8b49f8f715ab5ba421c85a51cde9887e421f", size = 204899, upload-time = "2025-11-09T20:47:19.365Z" }, + { url = "https://files.pythonhosted.org/packages/49/d5/c145e526fccdb834063fb45c071df78b0cc426bbaf6de38b0781f45d956f/jiter-0.12.0-cp311-cp311-win_arm64.whl", hash = "sha256:cb00ef392e7d684f2754598c02c409f376ddcef857aae796d559e6cacc2d78a5", size = 188070, upload-time = "2025-11-09T20:47:20.75Z" }, + { url = "https://files.pythonhosted.org/packages/92/c9/5b9f7b4983f1b542c64e84165075335e8a236fa9e2ea03a0c79780062be8/jiter-0.12.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:305e061fa82f4680607a775b2e8e0bcb071cd2205ac38e6ef48c8dd5ebe1cf37", size = 314449, upload-time = "2025-11-09T20:47:22.999Z" }, + { url = "https://files.pythonhosted.org/packages/98/6e/e8efa0e78de00db0aee82c0cf9e8b3f2027efd7f8a71f859d8f4be8e98ef/jiter-0.12.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5c1860627048e302a528333c9307c818c547f214d8659b0705d2195e1a94b274", size = 319855, upload-time = "2025-11-09T20:47:24.779Z" }, + { url = "https://files.pythonhosted.org/packages/20/26/894cd88e60b5d58af53bec5c6759d1292bd0b37a8b5f60f07abf7a63ae5f/jiter-0.12.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:df37577a4f8408f7e0ec3205d2a8f87672af8f17008358063a4d6425b6081ce3", size = 350171, upload-time = "2025-11-09T20:47:26.469Z" }, + { url = "https://files.pythonhosted.org/packages/f5/27/a7b818b9979ac31b3763d25f3653ec3a954044d5e9f5d87f2f247d679fd1/jiter-0.12.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:75fdd787356c1c13a4f40b43c2156276ef7a71eb487d98472476476d803fb2cf", size = 365590, upload-time = "2025-11-09T20:47:27.918Z" }, + { url = "https://files.pythonhosted.org/packages/ba/7e/e46195801a97673a83746170b17984aa8ac4a455746354516d02ca5541b4/jiter-0.12.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1eb5db8d9c65b112aacf14fcd0faae9913d07a8afea5ed06ccdd12b724e966a1", size = 479462, upload-time = "2025-11-09T20:47:29.654Z" }, + { url = "https://files.pythonhosted.org/packages/ca/75/f833bfb009ab4bd11b1c9406d333e3b4357709ed0570bb48c7c06d78c7dd/jiter-0.12.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:73c568cc27c473f82480abc15d1301adf333a7ea4f2e813d6a2c7d8b6ba8d0df", size = 378983, upload-time = "2025-11-09T20:47:31.026Z" }, + { url = "https://files.pythonhosted.org/packages/71/b3/7a69d77943cc837d30165643db753471aff5df39692d598da880a6e51c24/jiter-0.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4321e8a3d868919bcb1abb1db550d41f2b5b326f72df29e53b2df8b006eb9403", size = 361328, upload-time = "2025-11-09T20:47:33.286Z" }, + { url = "https://files.pythonhosted.org/packages/b0/ac/a78f90caf48d65ba70d8c6efc6f23150bc39dc3389d65bbec2a95c7bc628/jiter-0.12.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0a51bad79f8cc9cac2b4b705039f814049142e0050f30d91695a2d9a6611f126", size = 386740, upload-time = "2025-11-09T20:47:34.703Z" }, + { url = "https://files.pythonhosted.org/packages/39/b6/5d31c2cc8e1b6a6bcf3c5721e4ca0a3633d1ab4754b09bc7084f6c4f5327/jiter-0.12.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:2a67b678f6a5f1dd6c36d642d7db83e456bc8b104788262aaefc11a22339f5a9", size = 520875, upload-time = "2025-11-09T20:47:36.058Z" }, + { url = "https://files.pythonhosted.org/packages/30/b5/4df540fae4e9f68c54b8dab004bd8c943a752f0b00efd6e7d64aa3850339/jiter-0.12.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efe1a211fe1fd14762adea941e3cfd6c611a136e28da6c39272dbb7a1bbe6a86", size = 511457, upload-time = "2025-11-09T20:47:37.932Z" }, + { url = "https://files.pythonhosted.org/packages/07/65/86b74010e450a1a77b2c1aabb91d4a91dd3cd5afce99f34d75fd1ac64b19/jiter-0.12.0-cp312-cp312-win32.whl", hash = "sha256:d779d97c834b4278276ec703dc3fc1735fca50af63eb7262f05bdb4e62203d44", size = 204546, upload-time = "2025-11-09T20:47:40.47Z" }, + { url = "https://files.pythonhosted.org/packages/1c/c7/6659f537f9562d963488e3e55573498a442503ced01f7e169e96a6110383/jiter-0.12.0-cp312-cp312-win_amd64.whl", hash = "sha256:e8269062060212b373316fe69236096aaf4c49022d267c6736eebd66bbbc60bb", size = 205196, upload-time = "2025-11-09T20:47:41.794Z" }, + { url = "https://files.pythonhosted.org/packages/21/f4/935304f5169edadfec7f9c01eacbce4c90bb9a82035ac1de1f3bd2d40be6/jiter-0.12.0-cp312-cp312-win_arm64.whl", hash = "sha256:06cb970936c65de926d648af0ed3d21857f026b1cf5525cb2947aa5e01e05789", size = 186100, upload-time = "2025-11-09T20:47:43.007Z" }, + { url = "https://files.pythonhosted.org/packages/fe/54/5339ef1ecaa881c6948669956567a64d2670941925f245c434f494ffb0e5/jiter-0.12.0-graalpy311-graalpy242_311_native-macosx_10_12_x86_64.whl", hash = "sha256:4739a4657179ebf08f85914ce50332495811004cc1747852e8b2041ed2aab9b8", size = 311144, upload-time = "2025-11-09T20:49:10.503Z" }, + { url = "https://files.pythonhosted.org/packages/27/74/3446c652bffbd5e81ab354e388b1b5fc1d20daac34ee0ed11ff096b1b01a/jiter-0.12.0-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:41da8def934bf7bec16cb24bd33c0ca62126d2d45d81d17b864bd5ad721393c3", size = 305877, upload-time = "2025-11-09T20:49:12.269Z" }, + { url = "https://files.pythonhosted.org/packages/a1/f4/ed76ef9043450f57aac2d4fbeb27175aa0eb9c38f833be6ef6379b3b9a86/jiter-0.12.0-graalpy311-graalpy242_311_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c44ee814f499c082e69872d426b624987dbc5943ab06e9bbaa4f81989fdb79e", size = 340419, upload-time = "2025-11-09T20:49:13.803Z" }, + { url = "https://files.pythonhosted.org/packages/21/01/857d4608f5edb0664aa791a3d45702e1a5bcfff9934da74035e7b9803846/jiter-0.12.0-graalpy311-graalpy242_311_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cd2097de91cf03eaa27b3cbdb969addf83f0179c6afc41bbc4513705e013c65d", size = 347212, upload-time = "2025-11-09T20:49:15.643Z" }, + { url = "https://files.pythonhosted.org/packages/cb/f5/12efb8ada5f5c9edc1d4555fe383c1fb2eac05ac5859258a72d61981d999/jiter-0.12.0-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:e8547883d7b96ef2e5fe22b88f8a4c8725a56e7f4abafff20fd5272d634c7ecb", size = 309974, upload-time = "2025-11-09T20:49:17.187Z" }, + { url = "https://files.pythonhosted.org/packages/85/15/d6eb3b770f6a0d332675141ab3962fd4a7c270ede3515d9f3583e1d28276/jiter-0.12.0-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:89163163c0934854a668ed783a2546a0617f71706a2551a4a0666d91ab365d6b", size = 304233, upload-time = "2025-11-09T20:49:18.734Z" }, + { url = "https://files.pythonhosted.org/packages/8c/3e/e7e06743294eea2cf02ced6aa0ff2ad237367394e37a0e2b4a1108c67a36/jiter-0.12.0-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d96b264ab7d34bbb2312dedc47ce07cd53f06835eacbc16dde3761f47c3a9e7f", size = 338537, upload-time = "2025-11-09T20:49:20.317Z" }, + { url = "https://files.pythonhosted.org/packages/2f/9c/6753e6522b8d0ef07d3a3d239426669e984fb0eba15a315cdbc1253904e4/jiter-0.12.0-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c24e864cb30ab82311c6425655b0cdab0a98c5d973b065c66a3f020740c2324c", size = 346110, upload-time = "2025-11-09T20:49:21.817Z" }, +] + +[[package]] +name = "joblib" +version = "1.5.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/41/f2/d34e8b3a08a9cc79a50b2208a93dce981fe615b64d5a4d4abee421d898df/joblib-1.5.3.tar.gz", hash = "sha256:8561a3269e6801106863fd0d6d84bb737be9e7631e33aaed3fb9ce5953688da3", size = 331603, upload-time = "2025-12-15T08:41:46.427Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7b/91/984aca2ec129e2757d1e4e3c81c3fcda9d0f85b74670a094cc443d9ee949/joblib-1.5.3-py3-none-any.whl", hash = "sha256:5fc3c5039fc5ca8c0276333a188bbd59d6b7ab37fe6632daa76bc7f9ec18e713", size = 309071, upload-time = "2025-12-15T08:41:44.973Z" }, +] + +[[package]] +name = "jsonschema" +version = "4.25.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "jsonschema-specifications" }, + { name = "referencing" }, + { name = "rpds-py" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/74/69/f7185de793a29082a9f3c7728268ffb31cb5095131a9c139a74078e27336/jsonschema-4.25.1.tar.gz", hash = "sha256:e4a9655ce0da0c0b67a085847e00a3a51449e1157f4f75e9fb5aa545e122eb85", size = 357342, upload-time = "2025-08-18T17:03:50.038Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bf/9c/8c95d856233c1f82500c2450b8c68576b4cf1c871db3afac5c34ff84e6fd/jsonschema-4.25.1-py3-none-any.whl", hash = "sha256:3fba0169e345c7175110351d456342c364814cfcf3b964ba4587f22915230a63", size = 90040, upload-time = "2025-08-18T17:03:48.373Z" }, +] + +[[package]] +name = "jsonschema-path" +version = "0.3.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pathable" }, + { name = "pyyaml" }, + { name = "referencing" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/6e/45/41ebc679c2a4fced6a722f624c18d658dee42612b83ea24c1caf7c0eb3a8/jsonschema_path-0.3.4.tar.gz", hash = "sha256:8365356039f16cc65fddffafda5f58766e34bebab7d6d105616ab52bc4297001", size = 11159, upload-time = "2025-01-24T14:33:16.547Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/58/3485da8cb93d2f393bce453adeef16896751f14ba3e2024bc21dc9597646/jsonschema_path-0.3.4-py3-none-any.whl", hash = "sha256:f502191fdc2b22050f9a81c9237be9d27145b9001c55842bece5e94e382e52f8", size = 14810, upload-time = "2025-01-24T14:33:14.652Z" }, +] + +[[package]] +name = "jsonschema-specifications" +version = "2025.9.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "referencing" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/19/74/a633ee74eb36c44aa6d1095e7cc5569bebf04342ee146178e2d36600708b/jsonschema_specifications-2025.9.1.tar.gz", hash = "sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d", size = 32855, upload-time = "2025-09-08T01:34:59.186Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl", hash = "sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe", size = 18437, upload-time = "2025-09-08T01:34:57.871Z" }, +] + +[[package]] +name = "jupyter-client" +version = "8.7.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jupyter-core" }, + { name = "python-dateutil" }, + { name = "pyzmq" }, + { name = "tornado" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a6/27/d10de45e8ad4ce872372c4a3a37b7b35b6b064f6f023a5c14ffcced4d59d/jupyter_client-8.7.0.tar.gz", hash = "sha256:3357212d9cbe01209e59190f67a3a7e1f387a4f4e88d1e0433ad84d7b262531d", size = 344691, upload-time = "2025-12-09T18:37:01.953Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bb/f5/fddaec430367be9d62a7ed125530e133bfd4a1c0350fe221149ee0f2b526/jupyter_client-8.7.0-py3-none-any.whl", hash = "sha256:3671a94fd25e62f5f2f554f5e95389c2294d89822378a5f2dd24353e1494a9e0", size = 106215, upload-time = "2025-12-09T18:37:00.024Z" }, +] + +[[package]] +name = "jupyter-core" +version = "5.9.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "platformdirs" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/02/49/9d1284d0dc65e2c757b74c6687b6d319b02f822ad039e5c512df9194d9dd/jupyter_core-5.9.1.tar.gz", hash = "sha256:4d09aaff303b9566c3ce657f580bd089ff5c91f5f89cf7d8846c3cdf465b5508", size = 89814, upload-time = "2025-10-16T19:19:18.444Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/e7/80988e32bf6f73919a113473a604f5a8f09094de312b9d52b79c2df7612b/jupyter_core-5.9.1-py3-none-any.whl", hash = "sha256:ebf87fdc6073d142e114c72c9e29a9d7ca03fad818c5d300ce2adc1fb0743407", size = 29032, upload-time = "2025-10-16T19:19:16.783Z" }, +] + +[[package]] +name = "jupyterlab-pygments" +version = "0.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/90/51/9187be60d989df97f5f0aba133fa54e7300f17616e065d1ada7d7646b6d6/jupyterlab_pygments-0.3.0.tar.gz", hash = "sha256:721aca4d9029252b11cfa9d185e5b5af4d54772bb8072f9b7036f4170054d35d", size = 512900, upload-time = "2023-11-23T09:26:37.44Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b1/dd/ead9d8ea85bf202d90cc513b533f9c363121c7792674f78e0d8a854b63b4/jupyterlab_pygments-0.3.0-py3-none-any.whl", hash = "sha256:841a89020971da1d8693f1a99997aefc5dc424bb1b251fd6322462a1b8842780", size = 15884, upload-time = "2023-11-23T09:26:34.325Z" }, +] + +[[package]] +name = "langdetect" +version = "1.0.9" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0e/72/a3add0e4eec4eb9e2569554f7c70f4a3c27712f40e3284d483e88094cc0e/langdetect-1.0.9.tar.gz", hash = "sha256:cbc1fef89f8d062739774bd51eda3da3274006b3661d199c2655f6b3f6d605a0", size = 981474, upload-time = "2021-05-07T07:54:13.562Z" } + +[[package]] +name = "lazy-object-proxy" +version = "1.12.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/08/a2/69df9c6ba6d316cfd81fe2381e464db3e6de5db45f8c43c6a23504abf8cb/lazy_object_proxy-1.12.0.tar.gz", hash = "sha256:1f5a462d92fd0cfb82f1fab28b51bfb209fabbe6aabf7f0d51472c0c124c0c61", size = 43681, upload-time = "2025-08-22T13:50:06.783Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/01/b3/4684b1e128a87821e485f5a901b179790e6b5bc02f89b7ee19c23be36ef3/lazy_object_proxy-1.12.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1cf69cd1a6c7fe2dbcc3edaa017cf010f4192e53796538cc7d5e1fedbfa4bcff", size = 26656, upload-time = "2025-08-22T13:42:30.605Z" }, + { url = "https://files.pythonhosted.org/packages/3a/03/1bdc21d9a6df9ff72d70b2ff17d8609321bea4b0d3cffd2cea92fb2ef738/lazy_object_proxy-1.12.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:efff4375a8c52f55a145dc8487a2108c2140f0bec4151ab4e1843e52eb9987ad", size = 68832, upload-time = "2025-08-22T13:42:31.675Z" }, + { url = "https://files.pythonhosted.org/packages/3d/4b/5788e5e8bd01d19af71e50077ab020bc5cce67e935066cd65e1215a09ff9/lazy_object_proxy-1.12.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1192e8c2f1031a6ff453ee40213afa01ba765b3dc861302cd91dbdb2e2660b00", size = 69148, upload-time = "2025-08-22T13:42:32.876Z" }, + { url = "https://files.pythonhosted.org/packages/79/0e/090bf070f7a0de44c61659cb7f74c2fe02309a77ca8c4b43adfe0b695f66/lazy_object_proxy-1.12.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:3605b632e82a1cbc32a1e5034278a64db555b3496e0795723ee697006b980508", size = 67800, upload-time = "2025-08-22T13:42:34.054Z" }, + { url = "https://files.pythonhosted.org/packages/cf/d2/b320325adbb2d119156f7c506a5fbfa37fcab15c26d13cf789a90a6de04e/lazy_object_proxy-1.12.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a61095f5d9d1a743e1e20ec6d6db6c2ca511961777257ebd9b288951b23b44fa", size = 68085, upload-time = "2025-08-22T13:42:35.197Z" }, + { url = "https://files.pythonhosted.org/packages/6a/48/4b718c937004bf71cd82af3713874656bcb8d0cc78600bf33bb9619adc6c/lazy_object_proxy-1.12.0-cp311-cp311-win_amd64.whl", hash = "sha256:997b1d6e10ecc6fb6fe0f2c959791ae59599f41da61d652f6c903d1ee58b7370", size = 26535, upload-time = "2025-08-22T13:42:36.521Z" }, + { url = "https://files.pythonhosted.org/packages/0d/1b/b5f5bd6bda26f1e15cd3232b223892e4498e34ec70a7f4f11c401ac969f1/lazy_object_proxy-1.12.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8ee0d6027b760a11cc18281e702c0309dd92da458a74b4c15025d7fc490deede", size = 26746, upload-time = "2025-08-22T13:42:37.572Z" }, + { url = "https://files.pythonhosted.org/packages/55/64/314889b618075c2bfc19293ffa9153ce880ac6153aacfd0a52fcabf21a66/lazy_object_proxy-1.12.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:4ab2c584e3cc8be0dfca422e05ad30a9abe3555ce63e9ab7a559f62f8dbc6ff9", size = 71457, upload-time = "2025-08-22T13:42:38.743Z" }, + { url = "https://files.pythonhosted.org/packages/11/53/857fc2827fc1e13fbdfc0ba2629a7d2579645a06192d5461809540b78913/lazy_object_proxy-1.12.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:14e348185adbd03ec17d051e169ec45686dcd840a3779c9d4c10aabe2ca6e1c0", size = 71036, upload-time = "2025-08-22T13:42:40.184Z" }, + { url = "https://files.pythonhosted.org/packages/2b/24/e581ffed864cd33c1b445b5763d617448ebb880f48675fc9de0471a95cbc/lazy_object_proxy-1.12.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c4fcbe74fb85df8ba7825fa05eddca764138da752904b378f0ae5ab33a36c308", size = 69329, upload-time = "2025-08-22T13:42:41.311Z" }, + { url = "https://files.pythonhosted.org/packages/78/be/15f8f5a0b0b2e668e756a152257d26370132c97f2f1943329b08f057eff0/lazy_object_proxy-1.12.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:563d2ec8e4d4b68ee7848c5ab4d6057a6d703cb7963b342968bb8758dda33a23", size = 70690, upload-time = "2025-08-22T13:42:42.51Z" }, + { url = "https://files.pythonhosted.org/packages/5d/aa/f02be9bbfb270e13ee608c2b28b8771f20a5f64356c6d9317b20043c6129/lazy_object_proxy-1.12.0-cp312-cp312-win_amd64.whl", hash = "sha256:53c7fd99eb156bbb82cbc5d5188891d8fdd805ba6c1e3b92b90092da2a837073", size = 26563, upload-time = "2025-08-22T13:42:43.685Z" }, + { url = "https://files.pythonhosted.org/packages/41/a0/b91504515c1f9a299fc157967ffbd2f0321bce0516a3d5b89f6f4cad0355/lazy_object_proxy-1.12.0-pp39.pp310.pp311.graalpy311-none-any.whl", hash = "sha256:c3b2e0af1f7f77c4263759c4824316ce458fabe0fceadcd24ef8ca08b2d1e402", size = 15072, upload-time = "2025-08-22T13:50:05.498Z" }, +] + +[[package]] +name = "lxml" +version = "6.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/aa/88/262177de60548e5a2bfc46ad28232c9e9cbde697bd94132aeb80364675cb/lxml-6.0.2.tar.gz", hash = "sha256:cd79f3367bd74b317dda655dc8fcfa304d9eb6e4fb06b7168c5cf27f96e0cd62", size = 4073426, upload-time = "2025-09-22T04:04:59.287Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/77/d5/becbe1e2569b474a23f0c672ead8a29ac50b2dc1d5b9de184831bda8d14c/lxml-6.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:13e35cbc684aadf05d8711a5d1b5857c92e5e580efa9a0d2be197199c8def607", size = 8634365, upload-time = "2025-09-22T04:00:45.672Z" }, + { url = "https://files.pythonhosted.org/packages/28/66/1ced58f12e804644426b85d0bb8a4478ca77bc1761455da310505f1a3526/lxml-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3b1675e096e17c6fe9c0e8c81434f5736c0739ff9ac6123c87c2d452f48fc938", size = 4650793, upload-time = "2025-09-22T04:00:47.783Z" }, + { url = "https://files.pythonhosted.org/packages/11/84/549098ffea39dfd167e3f174b4ce983d0eed61f9d8d25b7bf2a57c3247fc/lxml-6.0.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8ac6e5811ae2870953390452e3476694196f98d447573234592d30488147404d", size = 4944362, upload-time = "2025-09-22T04:00:49.845Z" }, + { url = "https://files.pythonhosted.org/packages/ac/bd/f207f16abf9749d2037453d56b643a7471d8fde855a231a12d1e095c4f01/lxml-6.0.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5aa0fc67ae19d7a64c3fe725dc9a1bb11f80e01f78289d05c6f62545affec438", size = 5083152, upload-time = "2025-09-22T04:00:51.709Z" }, + { url = "https://files.pythonhosted.org/packages/15/ae/bd813e87d8941d52ad5b65071b1affb48da01c4ed3c9c99e40abb266fbff/lxml-6.0.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:de496365750cc472b4e7902a485d3f152ecf57bd3ba03ddd5578ed8ceb4c5964", size = 5023539, upload-time = "2025-09-22T04:00:53.593Z" }, + { url = "https://files.pythonhosted.org/packages/02/cd/9bfef16bd1d874fbe0cb51afb00329540f30a3283beb9f0780adbb7eec03/lxml-6.0.2-cp311-cp311-manylinux_2_26_i686.manylinux_2_28_i686.whl", hash = "sha256:200069a593c5e40b8f6fc0d84d86d970ba43138c3e68619ffa234bc9bb806a4d", size = 5344853, upload-time = "2025-09-22T04:00:55.524Z" }, + { url = "https://files.pythonhosted.org/packages/b8/89/ea8f91594bc5dbb879734d35a6f2b0ad50605d7fb419de2b63d4211765cc/lxml-6.0.2-cp311-cp311-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7d2de809c2ee3b888b59f995625385f74629707c9355e0ff856445cdcae682b7", size = 5225133, upload-time = "2025-09-22T04:00:57.269Z" }, + { url = "https://files.pythonhosted.org/packages/b9/37/9c735274f5dbec726b2db99b98a43950395ba3d4a1043083dba2ad814170/lxml-6.0.2-cp311-cp311-manylinux_2_31_armv7l.whl", hash = "sha256:b2c3da8d93cf5db60e8858c17684c47d01fee6405e554fb55018dd85fc23b178", size = 4677944, upload-time = "2025-09-22T04:00:59.052Z" }, + { url = "https://files.pythonhosted.org/packages/20/28/7dfe1ba3475d8bfca3878365075abe002e05d40dfaaeb7ec01b4c587d533/lxml-6.0.2-cp311-cp311-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:442de7530296ef5e188373a1ea5789a46ce90c4847e597856570439621d9c553", size = 5284535, upload-time = "2025-09-22T04:01:01.335Z" }, + { url = "https://files.pythonhosted.org/packages/e7/cf/5f14bc0de763498fc29510e3532bf2b4b3a1c1d5d0dff2e900c16ba021ef/lxml-6.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2593c77efde7bfea7f6389f1ab249b15ed4aa5bc5cb5131faa3b843c429fbedb", size = 5067343, upload-time = "2025-09-22T04:01:03.13Z" }, + { url = "https://files.pythonhosted.org/packages/1c/b0/bb8275ab5472f32b28cfbbcc6db7c9d092482d3439ca279d8d6fa02f7025/lxml-6.0.2-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:3e3cb08855967a20f553ff32d147e14329b3ae70ced6edc2f282b94afbc74b2a", size = 4725419, upload-time = "2025-09-22T04:01:05.013Z" }, + { url = "https://files.pythonhosted.org/packages/25/4c/7c222753bc72edca3b99dbadba1b064209bc8ed4ad448af990e60dcce462/lxml-6.0.2-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:2ed6c667fcbb8c19c6791bbf40b7268ef8ddf5a96940ba9404b9f9a304832f6c", size = 5275008, upload-time = "2025-09-22T04:01:07.327Z" }, + { url = "https://files.pythonhosted.org/packages/6c/8c/478a0dc6b6ed661451379447cdbec77c05741a75736d97e5b2b729687828/lxml-6.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b8f18914faec94132e5b91e69d76a5c1d7b0c73e2489ea8929c4aaa10b76bbf7", size = 5248906, upload-time = "2025-09-22T04:01:09.452Z" }, + { url = "https://files.pythonhosted.org/packages/2d/d9/5be3a6ab2784cdf9accb0703b65e1b64fcdd9311c9f007630c7db0cfcce1/lxml-6.0.2-cp311-cp311-win32.whl", hash = "sha256:6605c604e6daa9e0d7f0a2137bdc47a2e93b59c60a65466353e37f8272f47c46", size = 3610357, upload-time = "2025-09-22T04:01:11.102Z" }, + { url = "https://files.pythonhosted.org/packages/e2/7d/ca6fb13349b473d5732fb0ee3eec8f6c80fc0688e76b7d79c1008481bf1f/lxml-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e5867f2651016a3afd8dd2c8238baa66f1e2802f44bc17e236f547ace6647078", size = 4036583, upload-time = "2025-09-22T04:01:12.766Z" }, + { url = "https://files.pythonhosted.org/packages/ab/a2/51363b5ecd3eab46563645f3a2c3836a2fc67d01a1b87c5017040f39f567/lxml-6.0.2-cp311-cp311-win_arm64.whl", hash = "sha256:4197fb2534ee05fd3e7afaab5d8bfd6c2e186f65ea7f9cd6a82809c887bd1285", size = 3680591, upload-time = "2025-09-22T04:01:14.874Z" }, + { url = "https://files.pythonhosted.org/packages/f3/c8/8ff2bc6b920c84355146cd1ab7d181bc543b89241cfb1ebee824a7c81457/lxml-6.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a59f5448ba2ceccd06995c95ea59a7674a10de0810f2ce90c9006f3cbc044456", size = 8661887, upload-time = "2025-09-22T04:01:17.265Z" }, + { url = "https://files.pythonhosted.org/packages/37/6f/9aae1008083bb501ef63284220ce81638332f9ccbfa53765b2b7502203cf/lxml-6.0.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:e8113639f3296706fbac34a30813929e29247718e88173ad849f57ca59754924", size = 4667818, upload-time = "2025-09-22T04:01:19.688Z" }, + { url = "https://files.pythonhosted.org/packages/f1/ca/31fb37f99f37f1536c133476674c10b577e409c0a624384147653e38baf2/lxml-6.0.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:a8bef9b9825fa8bc816a6e641bb67219489229ebc648be422af695f6e7a4fa7f", size = 4950807, upload-time = "2025-09-22T04:01:21.487Z" }, + { url = "https://files.pythonhosted.org/packages/da/87/f6cb9442e4bada8aab5ae7e1046264f62fdbeaa6e3f6211b93f4c0dd97f1/lxml-6.0.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:65ea18d710fd14e0186c2f973dc60bb52039a275f82d3c44a0e42b43440ea534", size = 5109179, upload-time = "2025-09-22T04:01:23.32Z" }, + { url = "https://files.pythonhosted.org/packages/c8/20/a7760713e65888db79bbae4f6146a6ae5c04e4a204a3c48896c408cd6ed2/lxml-6.0.2-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c371aa98126a0d4c739ca93ceffa0fd7a5d732e3ac66a46e74339acd4d334564", size = 5023044, upload-time = "2025-09-22T04:01:25.118Z" }, + { url = "https://files.pythonhosted.org/packages/a2/b0/7e64e0460fcb36471899f75831509098f3fd7cd02a3833ac517433cb4f8f/lxml-6.0.2-cp312-cp312-manylinux_2_26_i686.manylinux_2_28_i686.whl", hash = "sha256:700efd30c0fa1a3581d80a748157397559396090a51d306ea59a70020223d16f", size = 5359685, upload-time = "2025-09-22T04:01:27.398Z" }, + { url = "https://files.pythonhosted.org/packages/b9/e1/e5df362e9ca4e2f48ed6411bd4b3a0ae737cc842e96877f5bf9428055ab4/lxml-6.0.2-cp312-cp312-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c33e66d44fe60e72397b487ee92e01da0d09ba2d66df8eae42d77b6d06e5eba0", size = 5654127, upload-time = "2025-09-22T04:01:29.629Z" }, + { url = "https://files.pythonhosted.org/packages/c6/d1/232b3309a02d60f11e71857778bfcd4acbdb86c07db8260caf7d008b08f8/lxml-6.0.2-cp312-cp312-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:90a345bbeaf9d0587a3aaffb7006aa39ccb6ff0e96a57286c0cb2fd1520ea192", size = 5253958, upload-time = "2025-09-22T04:01:31.535Z" }, + { url = "https://files.pythonhosted.org/packages/35/35/d955a070994725c4f7d80583a96cab9c107c57a125b20bb5f708fe941011/lxml-6.0.2-cp312-cp312-manylinux_2_31_armv7l.whl", hash = "sha256:064fdadaf7a21af3ed1dcaa106b854077fbeada827c18f72aec9346847cd65d0", size = 4711541, upload-time = "2025-09-22T04:01:33.801Z" }, + { url = "https://files.pythonhosted.org/packages/1e/be/667d17363b38a78c4bd63cfd4b4632029fd68d2c2dc81f25ce9eb5224dd5/lxml-6.0.2-cp312-cp312-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:fbc74f42c3525ac4ffa4b89cbdd00057b6196bcefe8bce794abd42d33a018092", size = 5267426, upload-time = "2025-09-22T04:01:35.639Z" }, + { url = "https://files.pythonhosted.org/packages/ea/47/62c70aa4a1c26569bc958c9ca86af2bb4e1f614e8c04fb2989833874f7ae/lxml-6.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6ddff43f702905a4e32bc24f3f2e2edfe0f8fde3277d481bffb709a4cced7a1f", size = 5064917, upload-time = "2025-09-22T04:01:37.448Z" }, + { url = "https://files.pythonhosted.org/packages/bd/55/6ceddaca353ebd0f1908ef712c597f8570cc9c58130dbb89903198e441fd/lxml-6.0.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:6da5185951d72e6f5352166e3da7b0dc27aa70bd1090b0eb3f7f7212b53f1bb8", size = 4788795, upload-time = "2025-09-22T04:01:39.165Z" }, + { url = "https://files.pythonhosted.org/packages/cf/e8/fd63e15da5e3fd4c2146f8bbb3c14e94ab850589beab88e547b2dbce22e1/lxml-6.0.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:57a86e1ebb4020a38d295c04fc79603c7899e0df71588043eb218722dabc087f", size = 5676759, upload-time = "2025-09-22T04:01:41.506Z" }, + { url = "https://files.pythonhosted.org/packages/76/47/b3ec58dc5c374697f5ba37412cd2728f427d056315d124dd4b61da381877/lxml-6.0.2-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:2047d8234fe735ab77802ce5f2297e410ff40f5238aec569ad7c8e163d7b19a6", size = 5255666, upload-time = "2025-09-22T04:01:43.363Z" }, + { url = "https://files.pythonhosted.org/packages/19/93/03ba725df4c3d72afd9596eef4a37a837ce8e4806010569bedfcd2cb68fd/lxml-6.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6f91fd2b2ea15a6800c8e24418c0775a1694eefc011392da73bc6cef2623b322", size = 5277989, upload-time = "2025-09-22T04:01:45.215Z" }, + { url = "https://files.pythonhosted.org/packages/c6/80/c06de80bfce881d0ad738576f243911fccf992687ae09fd80b734712b39c/lxml-6.0.2-cp312-cp312-win32.whl", hash = "sha256:3ae2ce7d6fedfb3414a2b6c5e20b249c4c607f72cb8d2bb7cc9c6ec7c6f4e849", size = 3611456, upload-time = "2025-09-22T04:01:48.243Z" }, + { url = "https://files.pythonhosted.org/packages/f7/d7/0cdfb6c3e30893463fb3d1e52bc5f5f99684a03c29a0b6b605cfae879cd5/lxml-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:72c87e5ee4e58a8354fb9c7c84cbf95a1c8236c127a5d1b7683f04bed8361e1f", size = 4011793, upload-time = "2025-09-22T04:01:50.042Z" }, + { url = "https://files.pythonhosted.org/packages/ea/7b/93c73c67db235931527301ed3785f849c78991e2e34f3fd9a6663ffda4c5/lxml-6.0.2-cp312-cp312-win_arm64.whl", hash = "sha256:61cb10eeb95570153e0c0e554f58df92ecf5109f75eacad4a95baa709e26c3d6", size = 3672836, upload-time = "2025-09-22T04:01:52.145Z" }, + { url = "https://files.pythonhosted.org/packages/0b/11/29d08bc103a62c0eba8016e7ed5aeebbf1e4312e83b0b1648dd203b0e87d/lxml-6.0.2-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:1c06035eafa8404b5cf475bb37a9f6088b0aca288d4ccc9d69389750d5543700", size = 3949829, upload-time = "2025-09-22T04:04:45.608Z" }, + { url = "https://files.pythonhosted.org/packages/12/b3/52ab9a3b31e5ab8238da241baa19eec44d2ab426532441ee607165aebb52/lxml-6.0.2-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:c7d13103045de1bdd6fe5d61802565f1a3537d70cd3abf596aa0af62761921ee", size = 4226277, upload-time = "2025-09-22T04:04:47.754Z" }, + { url = "https://files.pythonhosted.org/packages/a0/33/1eaf780c1baad88224611df13b1c2a9dfa460b526cacfe769103ff50d845/lxml-6.0.2-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0a3c150a95fbe5ac91de323aa756219ef9cf7fde5a3f00e2281e30f33fa5fa4f", size = 4330433, upload-time = "2025-09-22T04:04:49.907Z" }, + { url = "https://files.pythonhosted.org/packages/7a/c1/27428a2ff348e994ab4f8777d3a0ad510b6b92d37718e5887d2da99952a2/lxml-6.0.2-pp311-pypy311_pp73-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:60fa43be34f78bebb27812ed90f1925ec99560b0fa1decdb7d12b84d857d31e9", size = 4272119, upload-time = "2025-09-22T04:04:51.801Z" }, + { url = "https://files.pythonhosted.org/packages/f0/d0/3020fa12bcec4ab62f97aab026d57c2f0cfd480a558758d9ca233bb6a79d/lxml-6.0.2-pp311-pypy311_pp73-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:21c73b476d3cfe836be731225ec3421fa2f048d84f6df6a8e70433dff1376d5a", size = 4417314, upload-time = "2025-09-22T04:04:55.024Z" }, + { url = "https://files.pythonhosted.org/packages/6c/77/d7f491cbc05303ac6801651aabeb262d43f319288c1ea96c66b1d2692ff3/lxml-6.0.2-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:27220da5be049e936c3aca06f174e8827ca6445a4353a1995584311487fc4e3e", size = 3518768, upload-time = "2025-09-22T04:04:57.097Z" }, +] + +[[package]] +name = "markupsafe" +version = "3.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7e/99/7690b6d4034fffd95959cbe0c02de8deb3098cc577c67bb6a24fe5d7caa7/markupsafe-3.0.3.tar.gz", hash = "sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698", size = 80313, upload-time = "2025-09-27T18:37:40.426Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/08/db/fefacb2136439fc8dd20e797950e749aa1f4997ed584c62cfb8ef7c2be0e/markupsafe-3.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1cc7ea17a6824959616c525620e387f6dd30fec8cb44f649e31712db02123dad", size = 11631, upload-time = "2025-09-27T18:36:18.185Z" }, + { url = "https://files.pythonhosted.org/packages/e1/2e/5898933336b61975ce9dc04decbc0a7f2fee78c30353c5efba7f2d6ff27a/markupsafe-3.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4bd4cd07944443f5a265608cc6aab442e4f74dff8088b0dfc8238647b8f6ae9a", size = 12058, upload-time = "2025-09-27T18:36:19.444Z" }, + { url = "https://files.pythonhosted.org/packages/1d/09/adf2df3699d87d1d8184038df46a9c80d78c0148492323f4693df54e17bb/markupsafe-3.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b5420a1d9450023228968e7e6a9ce57f65d148ab56d2313fcd589eee96a7a50", size = 24287, upload-time = "2025-09-27T18:36:20.768Z" }, + { url = "https://files.pythonhosted.org/packages/30/ac/0273f6fcb5f42e314c6d8cd99effae6a5354604d461b8d392b5ec9530a54/markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0bf2a864d67e76e5c9a34dc26ec616a66b9888e25e7b9460e1c76d3293bd9dbf", size = 22940, upload-time = "2025-09-27T18:36:22.249Z" }, + { url = "https://files.pythonhosted.org/packages/19/ae/31c1be199ef767124c042c6c3e904da327a2f7f0cd63a0337e1eca2967a8/markupsafe-3.0.3-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc51efed119bc9cfdf792cdeaa4d67e8f6fcccab66ed4bfdd6bde3e59bfcbb2f", size = 21887, upload-time = "2025-09-27T18:36:23.535Z" }, + { url = "https://files.pythonhosted.org/packages/b2/76/7edcab99d5349a4532a459e1fe64f0b0467a3365056ae550d3bcf3f79e1e/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:068f375c472b3e7acbe2d5318dea141359e6900156b5b2ba06a30b169086b91a", size = 23692, upload-time = "2025-09-27T18:36:24.823Z" }, + { url = "https://files.pythonhosted.org/packages/a4/28/6e74cdd26d7514849143d69f0bf2399f929c37dc2b31e6829fd2045b2765/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:7be7b61bb172e1ed687f1754f8e7484f1c8019780f6f6b0786e76bb01c2ae115", size = 21471, upload-time = "2025-09-27T18:36:25.95Z" }, + { url = "https://files.pythonhosted.org/packages/62/7e/a145f36a5c2945673e590850a6f8014318d5577ed7e5920a4b3448e0865d/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a", size = 22923, upload-time = "2025-09-27T18:36:27.109Z" }, + { url = "https://files.pythonhosted.org/packages/0f/62/d9c46a7f5c9adbeeeda52f5b8d802e1094e9717705a645efc71b0913a0a8/markupsafe-3.0.3-cp311-cp311-win32.whl", hash = "sha256:0db14f5dafddbb6d9208827849fad01f1a2609380add406671a26386cdf15a19", size = 14572, upload-time = "2025-09-27T18:36:28.045Z" }, + { url = "https://files.pythonhosted.org/packages/83/8a/4414c03d3f891739326e1783338e48fb49781cc915b2e0ee052aa490d586/markupsafe-3.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:de8a88e63464af587c950061a5e6a67d3632e36df62b986892331d4620a35c01", size = 15077, upload-time = "2025-09-27T18:36:29.025Z" }, + { url = "https://files.pythonhosted.org/packages/35/73/893072b42e6862f319b5207adc9ae06070f095b358655f077f69a35601f0/markupsafe-3.0.3-cp311-cp311-win_arm64.whl", hash = "sha256:3b562dd9e9ea93f13d53989d23a7e775fdfd1066c33494ff43f5418bc8c58a5c", size = 13876, upload-time = "2025-09-27T18:36:29.954Z" }, + { url = "https://files.pythonhosted.org/packages/5a/72/147da192e38635ada20e0a2e1a51cf8823d2119ce8883f7053879c2199b5/markupsafe-3.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d53197da72cc091b024dd97249dfc7794d6a56530370992a5e1a08983ad9230e", size = 11615, upload-time = "2025-09-27T18:36:30.854Z" }, + { url = "https://files.pythonhosted.org/packages/9a/81/7e4e08678a1f98521201c3079f77db69fb552acd56067661f8c2f534a718/markupsafe-3.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1872df69a4de6aead3491198eaf13810b565bdbeec3ae2dc8780f14458ec73ce", size = 12020, upload-time = "2025-09-27T18:36:31.971Z" }, + { url = "https://files.pythonhosted.org/packages/1e/2c/799f4742efc39633a1b54a92eec4082e4f815314869865d876824c257c1e/markupsafe-3.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3a7e8ae81ae39e62a41ec302f972ba6ae23a5c5396c8e60113e9066ef893da0d", size = 24332, upload-time = "2025-09-27T18:36:32.813Z" }, + { url = "https://files.pythonhosted.org/packages/3c/2e/8d0c2ab90a8c1d9a24f0399058ab8519a3279d1bd4289511d74e909f060e/markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d6dd0be5b5b189d31db7cda48b91d7e0a9795f31430b7f271219ab30f1d3ac9d", size = 22947, upload-time = "2025-09-27T18:36:33.86Z" }, + { url = "https://files.pythonhosted.org/packages/2c/54/887f3092a85238093a0b2154bd629c89444f395618842e8b0c41783898ea/markupsafe-3.0.3-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:94c6f0bb423f739146aec64595853541634bde58b2135f27f61c1ffd1cd4d16a", size = 21962, upload-time = "2025-09-27T18:36:35.099Z" }, + { url = "https://files.pythonhosted.org/packages/c9/2f/336b8c7b6f4a4d95e91119dc8521402461b74a485558d8f238a68312f11c/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:be8813b57049a7dc738189df53d69395eba14fb99345e0a5994914a3864c8a4b", size = 23760, upload-time = "2025-09-27T18:36:36.001Z" }, + { url = "https://files.pythonhosted.org/packages/32/43/67935f2b7e4982ffb50a4d169b724d74b62a3964bc1a9a527f5ac4f1ee2b/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:83891d0e9fb81a825d9a6d61e3f07550ca70a076484292a70fde82c4b807286f", size = 21529, upload-time = "2025-09-27T18:36:36.906Z" }, + { url = "https://files.pythonhosted.org/packages/89/e0/4486f11e51bbba8b0c041098859e869e304d1c261e59244baa3d295d47b7/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:77f0643abe7495da77fb436f50f8dab76dbc6e5fd25d39589a0f1fe6548bfa2b", size = 23015, upload-time = "2025-09-27T18:36:37.868Z" }, + { url = "https://files.pythonhosted.org/packages/2f/e1/78ee7a023dac597a5825441ebd17170785a9dab23de95d2c7508ade94e0e/markupsafe-3.0.3-cp312-cp312-win32.whl", hash = "sha256:d88b440e37a16e651bda4c7c2b930eb586fd15ca7406cb39e211fcff3bf3017d", size = 14540, upload-time = "2025-09-27T18:36:38.761Z" }, + { url = "https://files.pythonhosted.org/packages/aa/5b/bec5aa9bbbb2c946ca2733ef9c4ca91c91b6a24580193e891b5f7dbe8e1e/markupsafe-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:26a5784ded40c9e318cfc2bdb30fe164bdb8665ded9cd64d500a34fb42067b1c", size = 15105, upload-time = "2025-09-27T18:36:39.701Z" }, + { url = "https://files.pythonhosted.org/packages/e5/f1/216fc1bbfd74011693a4fd837e7026152e89c4bcf3e77b6692fba9923123/markupsafe-3.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:35add3b638a5d900e807944a078b51922212fb3dedb01633a8defc4b01a3c85f", size = 13906, upload-time = "2025-09-27T18:36:40.689Z" }, +] + +[[package]] +name = "marshmallow" +version = "3.26.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "packaging" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ab/5e/5e53d26b42ab75491cda89b871dab9e97c840bf12c63ec58a1919710cd06/marshmallow-3.26.1.tar.gz", hash = "sha256:e6d8affb6cb61d39d26402096dc0aee12d5a26d490a121f118d2e81dc0719dc6", size = 221825, upload-time = "2025-02-03T15:32:25.093Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/34/75/51952c7b2d3873b44a0028b1bd26a25078c18f92f256608e8d1dc61b39fd/marshmallow-3.26.1-py3-none-any.whl", hash = "sha256:3350409f20a70a7e4e11a27661187b77cdcaeb20abca41c1454fe33636bea09c", size = 50878, upload-time = "2025-02-03T15:32:22.295Z" }, +] + +[[package]] +name = "matplotlib-inline" +version = "0.2.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c7/74/97e72a36efd4ae2bccb3463284300f8953f199b5ffbc04cbbb0ec78f74b1/matplotlib_inline-0.2.1.tar.gz", hash = "sha256:e1ee949c340d771fc39e241ea75683deb94762c8fa5f2927ec57c83c4dffa9fe", size = 8110, upload-time = "2025-10-23T09:00:22.126Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/af/33/ee4519fa02ed11a94aef9559552f3b17bb863f2ecfe1a35dc7f548cde231/matplotlib_inline-0.2.1-py3-none-any.whl", hash = "sha256:d56ce5156ba6085e00a9d54fead6ed29a9c47e215cd1bba2e976ef39f5710a76", size = 9516, upload-time = "2025-10-23T09:00:20.675Z" }, +] + +[[package]] +name = "mcp" +version = "1.24.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "httpx" }, + { name = "httpx-sse" }, + { name = "jsonschema" }, + { name = "pydantic" }, + { name = "pydantic-settings" }, + { name = "pyjwt", extra = ["crypto"] }, + { name = "python-multipart" }, + { name = "pywin32", marker = "sys_platform == 'win32'" }, + { name = "sse-starlette" }, + { name = "starlette" }, + { name = "typing-extensions" }, + { name = "typing-inspection" }, + { name = "uvicorn", marker = "sys_platform != 'emscripten'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d6/2c/db9ae5ab1fcdd9cd2bcc7ca3b7361b712e30590b64d5151a31563af8f82d/mcp-1.24.0.tar.gz", hash = "sha256:aeaad134664ce56f2721d1abf300666a1e8348563f4d3baff361c3b652448efc", size = 604375, upload-time = "2025-12-12T14:19:38.205Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/61/0d/5cf14e177c8ae655a2fd9324a6ef657ca4cafd3fc2201c87716055e29641/mcp-1.24.0-py3-none-any.whl", hash = "sha256:db130e103cc50ddc3dffc928382f33ba3eaef0b711f7a87c05e7ded65b1ca062", size = 232896, upload-time = "2025-12-12T14:19:36.14Z" }, +] + +[[package]] +name = "mirofish-backend" +version = "0.1.0" +source = { editable = "." } +dependencies = [ + { name = "camel-ai" }, + { name = "camel-oasis" }, + { name = "chardet" }, + { name = "charset-normalizer" }, + { name = "flask" }, + { name = "flask-cors" }, + { name = "openai" }, + { name = "pydantic" }, + { name = "pymupdf" }, + { name = "python-dotenv" }, + { name = "zep-cloud" }, +] + +[package.optional-dependencies] +dev = [ + { name = "pipreqs" }, + { name = "pytest" }, + { name = "pytest-asyncio" }, +] + +[package.dev-dependencies] +dev = [ + { name = "pytest" }, + { name = "pytest-asyncio" }, +] + +[package.metadata] +requires-dist = [ + { name = "camel-ai", specifier = "==0.2.78" }, + { name = "camel-oasis", specifier = "==0.2.5" }, + { name = "chardet", specifier = ">=5.0.0" }, + { name = "charset-normalizer", specifier = ">=3.0.0" }, + { name = "flask", specifier = ">=3.0.0" }, + { name = "flask-cors", specifier = ">=6.0.0" }, + { name = "openai", specifier = ">=1.0.0" }, + { name = "pipreqs", marker = "extra == 'dev'", specifier = ">=0.5.0" }, + { name = "pydantic", specifier = ">=2.0.0" }, + { name = "pymupdf", specifier = ">=1.24.0" }, + { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.0.0" }, + { name = "pytest-asyncio", marker = "extra == 'dev'", specifier = ">=0.23.0" }, + { name = "python-dotenv", specifier = ">=1.0.0" }, + { name = "zep-cloud", specifier = "==3.13.0" }, +] +provides-extras = ["dev"] + +[package.metadata.requires-dev] +dev = [ + { name = "pytest", specifier = ">=8.0.0" }, + { name = "pytest-asyncio", specifier = ">=0.23.0" }, +] + +[[package]] +name = "mistune" +version = "3.1.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d7/02/a7fb8b21d4d55ac93cdcde9d3638da5dd0ebdd3a4fed76c7725e10b81cbe/mistune-3.1.4.tar.gz", hash = "sha256:b5a7f801d389f724ec702840c11d8fc48f2b33519102fc7ee739e8177b672164", size = 94588, upload-time = "2025-08-29T07:20:43.594Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/f0/8282d9641415e9e33df173516226b404d367a0fc55e1a60424a152913abc/mistune-3.1.4-py3-none-any.whl", hash = "sha256:93691da911e5d9d2e23bc54472892aff676df27a75274962ff9edc210364266d", size = 53481, upload-time = "2025-08-29T07:20:42.218Z" }, +] + +[[package]] +name = "mpmath" +version = "1.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e0/47/dd32fa426cc72114383ac549964eecb20ecfd886d1e5ccf5340b55b02f57/mpmath-1.3.0.tar.gz", hash = "sha256:7a28eb2a9774d00c7bc92411c19a89209d5da7c4c9a9e227be8330a23a25b91f", size = 508106, upload-time = "2023-03-07T16:47:11.061Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/43/e3/7d92a15f894aa0c9c4b49b8ee9ac9850d6e63b03c9c32c0367a13ae62209/mpmath-1.3.0-py3-none-any.whl", hash = "sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c", size = 536198, upload-time = "2023-03-07T16:47:09.197Z" }, +] + +[[package]] +name = "mypy-extensions" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a2/6e/371856a3fb9d31ca8dac321cda606860fa4548858c0cc45d9d1d4ca2628b/mypy_extensions-1.1.0.tar.gz", hash = "sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558", size = 6343, upload-time = "2025-04-22T14:54:24.164Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl", hash = "sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505", size = 4963, upload-time = "2025-04-22T14:54:22.983Z" }, +] + +[[package]] +name = "nbclient" +version = "0.10.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jupyter-client" }, + { name = "jupyter-core" }, + { name = "nbformat" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/87/66/7ffd18d58eae90d5721f9f39212327695b749e23ad44b3881744eaf4d9e8/nbclient-0.10.2.tar.gz", hash = "sha256:90b7fc6b810630db87a6d0c2250b1f0ab4cf4d3c27a299b0cde78a4ed3fd9193", size = 62424, upload-time = "2024-12-19T10:32:27.164Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/34/6d/e7fa07f03a4a7b221d94b4d586edb754a9b0dc3c9e2c93353e9fa4e0d117/nbclient-0.10.2-py3-none-any.whl", hash = "sha256:4ffee11e788b4a27fabeb7955547e4318a5298f34342a4bfd01f2e1faaeadc3d", size = 25434, upload-time = "2024-12-19T10:32:24.139Z" }, +] + +[[package]] +name = "nbconvert" +version = "7.16.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "beautifulsoup4" }, + { name = "bleach", extra = ["css"] }, + { name = "defusedxml" }, + { name = "jinja2" }, + { name = "jupyter-core" }, + { name = "jupyterlab-pygments" }, + { name = "markupsafe" }, + { name = "mistune" }, + { name = "nbclient" }, + { name = "nbformat" }, + { name = "packaging" }, + { name = "pandocfilters" }, + { name = "pygments" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a3/59/f28e15fc47ffb73af68a8d9b47367a8630d76e97ae85ad18271b9db96fdf/nbconvert-7.16.6.tar.gz", hash = "sha256:576a7e37c6480da7b8465eefa66c17844243816ce1ccc372633c6b71c3c0f582", size = 857715, upload-time = "2025-01-28T09:29:14.724Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cc/9a/cd673b2f773a12c992f41309ef81b99da1690426bd2f96957a7ade0d3ed7/nbconvert-7.16.6-py3-none-any.whl", hash = "sha256:1375a7b67e0c2883678c48e506dc320febb57685e5ee67faa51b18a90f3a712b", size = 258525, upload-time = "2025-01-28T09:29:12.551Z" }, +] + +[[package]] +name = "nbformat" +version = "5.10.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "fastjsonschema" }, + { name = "jsonschema" }, + { name = "jupyter-core" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/6d/fd/91545e604bc3dad7dca9ed03284086039b294c6b3d75c0d2fa45f9e9caf3/nbformat-5.10.4.tar.gz", hash = "sha256:322168b14f937a5d11362988ecac2a4952d3d8e3a2cbeb2319584631226d5b3a", size = 142749, upload-time = "2024-04-04T11:20:37.371Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a9/82/0340caa499416c78e5d8f5f05947ae4bc3cba53c9f038ab6e9ed964e22f1/nbformat-5.10.4-py3-none-any.whl", hash = "sha256:3b48d6c8fbca4b299bf3982ea7db1af21580e4fec269ad087b9e81588891200b", size = 78454, upload-time = "2024-04-04T11:20:34.895Z" }, +] + +[[package]] +name = "neo4j" +version = "5.23.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pytz" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e1/14/86f149430f2e6ffe63f5726951720b7cf4136ee1676eb077c4ade94959df/neo4j-5.23.0.tar.gz", hash = "sha256:26b06dac3a4b93d882a61714c5ca8d06fe68f697cbdfe113ab840d651a2d46a2", size = 215255, upload-time = "2024-07-29T10:22:29.973Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6f/10/0feaa10a342f5c06ffc5bfe3e5e52a9950094186889208251de39092237b/neo4j-5.23.0-py3-none-any.whl", hash = "sha256:5d8d2f45227c12d6ba564720cbc3e2f57aac472e4fa14fe69270e4f952791020", size = 293671, upload-time = "2024-07-29T10:22:24.874Z" }, +] + +[[package]] +name = "networkx" +version = "3.6.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6a/51/63fe664f3908c97be9d2e4f1158eb633317598cfa6e1fc14af5383f17512/networkx-3.6.1.tar.gz", hash = "sha256:26b7c357accc0c8cde558ad486283728b65b6a95d85ee1cd66bafab4c8168509", size = 2517025, upload-time = "2025-12-08T17:02:39.908Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9e/c9/b2622292ea83fbb4ec318f5b9ab867d0a28ab43c5717bb85b0a5f6b3b0a4/networkx-3.6.1-py3-none-any.whl", hash = "sha256:d47fbf302e7d9cbbb9e2555a0d267983d2aa476bac30e90dfbe5669bd57f3762", size = 2068504, upload-time = "2025-12-08T17:02:38.159Z" }, +] + +[[package]] +name = "nltk" +version = "3.9.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "joblib" }, + { name = "regex" }, + { name = "tqdm" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f9/76/3a5e4312c19a028770f86fd7c058cf9f4ec4321c6cf7526bab998a5b683c/nltk-3.9.2.tar.gz", hash = "sha256:0f409e9b069ca4177c1903c3e843eef90c7e92992fa4931ae607da6de49e1419", size = 2887629, upload-time = "2025-10-01T07:19:23.764Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/60/90/81ac364ef94209c100e12579629dc92bf7a709a84af32f8c551b02c07e94/nltk-3.9.2-py3-none-any.whl", hash = "sha256:1e209d2b3009110635ed9709a67a1a3e33a10f799490fa71cf4bec218c11c88a", size = 1513404, upload-time = "2025-10-01T07:19:21.648Z" }, +] + +[[package]] +name = "nodeenv" +version = "1.9.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/43/16/fc88b08840de0e0a72a2f9d8c6bae36be573e475a6326ae854bcc549fc45/nodeenv-1.9.1.tar.gz", hash = "sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f", size = 47437, upload-time = "2024-06-04T18:44:11.171Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d2/1d/1b658dbd2b9fa9c4c9f32accbfc0205d532c8c6194dc0f2a4c0428e7128a/nodeenv-1.9.1-py2.py3-none-any.whl", hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9", size = 22314, upload-time = "2024-06-04T18:44:08.352Z" }, +] + +[[package]] +name = "numpy" +version = "2.3.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/76/65/21b3bc86aac7b8f2862db1e808f1ea22b028e30a225a34a5ede9bf8678f2/numpy-2.3.5.tar.gz", hash = "sha256:784db1dcdab56bf0517743e746dfb0f885fc68d948aba86eeec2cba234bdf1c0", size = 20584950, upload-time = "2025-11-16T22:52:42.067Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/43/77/84dd1d2e34d7e2792a236ba180b5e8fcc1e3e414e761ce0253f63d7f572e/numpy-2.3.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:de5672f4a7b200c15a4127042170a694d4df43c992948f5e1af57f0174beed10", size = 17034641, upload-time = "2025-11-16T22:49:19.336Z" }, + { url = "https://files.pythonhosted.org/packages/2a/ea/25e26fa5837106cde46ae7d0b667e20f69cbbc0efd64cba8221411ab26ae/numpy-2.3.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:acfd89508504a19ed06ef963ad544ec6664518c863436306153e13e94605c218", size = 12528324, upload-time = "2025-11-16T22:49:22.582Z" }, + { url = "https://files.pythonhosted.org/packages/4d/1a/e85f0eea4cf03d6a0228f5c0256b53f2df4bc794706e7df019fc622e47f1/numpy-2.3.5-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:ffe22d2b05504f786c867c8395de703937f934272eb67586817b46188b4ded6d", size = 5356872, upload-time = "2025-11-16T22:49:25.408Z" }, + { url = "https://files.pythonhosted.org/packages/5c/bb/35ef04afd567f4c989c2060cde39211e4ac5357155c1833bcd1166055c61/numpy-2.3.5-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:872a5cf366aec6bb1147336480fef14c9164b154aeb6542327de4970282cd2f5", size = 6893148, upload-time = "2025-11-16T22:49:27.549Z" }, + { url = "https://files.pythonhosted.org/packages/f2/2b/05bbeb06e2dff5eab512dfc678b1cc5ee94d8ac5956a0885c64b6b26252b/numpy-2.3.5-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3095bdb8dd297e5920b010e96134ed91d852d81d490e787beca7e35ae1d89cf7", size = 14557282, upload-time = "2025-11-16T22:49:30.964Z" }, + { url = "https://files.pythonhosted.org/packages/65/fb/2b23769462b34398d9326081fad5655198fcf18966fcb1f1e49db44fbf31/numpy-2.3.5-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8cba086a43d54ca804ce711b2a940b16e452807acebe7852ff327f1ecd49b0d4", size = 16897903, upload-time = "2025-11-16T22:49:34.191Z" }, + { url = "https://files.pythonhosted.org/packages/ac/14/085f4cf05fc3f1e8aa95e85404e984ffca9b2275a5dc2b1aae18a67538b8/numpy-2.3.5-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6cf9b429b21df6b99f4dee7a1218b8b7ffbbe7df8764dc0bd60ce8a0708fed1e", size = 16341672, upload-time = "2025-11-16T22:49:37.2Z" }, + { url = "https://files.pythonhosted.org/packages/6f/3b/1f73994904142b2aa290449b3bb99772477b5fd94d787093e4f24f5af763/numpy-2.3.5-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:396084a36abdb603546b119d96528c2f6263921c50df3c8fd7cb28873a237748", size = 18838896, upload-time = "2025-11-16T22:49:39.727Z" }, + { url = "https://files.pythonhosted.org/packages/cd/b9/cf6649b2124f288309ffc353070792caf42ad69047dcc60da85ee85fea58/numpy-2.3.5-cp311-cp311-win32.whl", hash = "sha256:b0c7088a73aef3d687c4deef8452a3ac7c1be4e29ed8bf3b366c8111128ac60c", size = 6563608, upload-time = "2025-11-16T22:49:42.079Z" }, + { url = "https://files.pythonhosted.org/packages/aa/44/9fe81ae1dcc29c531843852e2874080dc441338574ccc4306b39e2ff6e59/numpy-2.3.5-cp311-cp311-win_amd64.whl", hash = "sha256:a414504bef8945eae5f2d7cb7be2d4af77c5d1cb5e20b296c2c25b61dff2900c", size = 13078442, upload-time = "2025-11-16T22:49:43.99Z" }, + { url = "https://files.pythonhosted.org/packages/6d/a7/f99a41553d2da82a20a2f22e93c94f928e4490bb447c9ff3c4ff230581d3/numpy-2.3.5-cp311-cp311-win_arm64.whl", hash = "sha256:0cd00b7b36e35398fa2d16af7b907b65304ef8bb4817a550e06e5012929830fa", size = 10458555, upload-time = "2025-11-16T22:49:47.092Z" }, + { url = "https://files.pythonhosted.org/packages/44/37/e669fe6cbb2b96c62f6bbedc6a81c0f3b7362f6a59230b23caa673a85721/numpy-2.3.5-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:74ae7b798248fe62021dbf3c914245ad45d1a6b0cb4a29ecb4b31d0bfbc4cc3e", size = 16733873, upload-time = "2025-11-16T22:49:49.84Z" }, + { url = "https://files.pythonhosted.org/packages/c5/65/df0db6c097892c9380851ab9e44b52d4f7ba576b833996e0080181c0c439/numpy-2.3.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ee3888d9ff7c14604052b2ca5535a30216aa0a58e948cdd3eeb8d3415f638769", size = 12259838, upload-time = "2025-11-16T22:49:52.863Z" }, + { url = "https://files.pythonhosted.org/packages/5b/e1/1ee06e70eb2136797abe847d386e7c0e830b67ad1d43f364dd04fa50d338/numpy-2.3.5-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:612a95a17655e213502f60cfb9bf9408efdc9eb1d5f50535cc6eb365d11b42b5", size = 5088378, upload-time = "2025-11-16T22:49:55.055Z" }, + { url = "https://files.pythonhosted.org/packages/6d/9c/1ca85fb86708724275103b81ec4cf1ac1d08f465368acfc8da7ab545bdae/numpy-2.3.5-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:3101e5177d114a593d79dd79658650fe28b5a0d8abeb8ce6f437c0e6df5be1a4", size = 6628559, upload-time = "2025-11-16T22:49:57.371Z" }, + { url = "https://files.pythonhosted.org/packages/74/78/fcd41e5a0ce4f3f7b003da85825acddae6d7ecb60cf25194741b036ca7d6/numpy-2.3.5-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8b973c57ff8e184109db042c842423ff4f60446239bd585a5131cc47f06f789d", size = 14250702, upload-time = "2025-11-16T22:49:59.632Z" }, + { url = "https://files.pythonhosted.org/packages/b6/23/2a1b231b8ff672b4c450dac27164a8b2ca7d9b7144f9c02d2396518352eb/numpy-2.3.5-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0d8163f43acde9a73c2a33605353a4f1bc4798745a8b1d73183b28e5b435ae28", size = 16606086, upload-time = "2025-11-16T22:50:02.127Z" }, + { url = "https://files.pythonhosted.org/packages/a0/c5/5ad26fbfbe2012e190cc7d5003e4d874b88bb18861d0829edc140a713021/numpy-2.3.5-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:51c1e14eb1e154ebd80e860722f9e6ed6ec89714ad2db2d3aa33c31d7c12179b", size = 16025985, upload-time = "2025-11-16T22:50:04.536Z" }, + { url = "https://files.pythonhosted.org/packages/d2/fa/dd48e225c46c819288148d9d060b047fd2a6fb1eb37eae25112ee4cb4453/numpy-2.3.5-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b46b4ec24f7293f23adcd2d146960559aaf8020213de8ad1909dba6c013bf89c", size = 18542976, upload-time = "2025-11-16T22:50:07.557Z" }, + { url = "https://files.pythonhosted.org/packages/05/79/ccbd23a75862d95af03d28b5c6901a1b7da4803181513d52f3b86ed9446e/numpy-2.3.5-cp312-cp312-win32.whl", hash = "sha256:3997b5b3c9a771e157f9aae01dd579ee35ad7109be18db0e85dbdbe1de06e952", size = 6285274, upload-time = "2025-11-16T22:50:10.746Z" }, + { url = "https://files.pythonhosted.org/packages/2d/57/8aeaf160312f7f489dea47ab61e430b5cb051f59a98ae68b7133ce8fa06a/numpy-2.3.5-cp312-cp312-win_amd64.whl", hash = "sha256:86945f2ee6d10cdfd67bcb4069c1662dd711f7e2a4343db5cecec06b87cf31aa", size = 12782922, upload-time = "2025-11-16T22:50:12.811Z" }, + { url = "https://files.pythonhosted.org/packages/78/a6/aae5cc2ca78c45e64b9ef22f089141d661516856cf7c8a54ba434576900d/numpy-2.3.5-cp312-cp312-win_arm64.whl", hash = "sha256:f28620fe26bee16243be2b7b874da327312240a7cdc38b769a697578d2100013", size = 10194667, upload-time = "2025-11-16T22:50:16.16Z" }, + { url = "https://files.pythonhosted.org/packages/c6/65/f9dea8e109371ade9c782b4e4756a82edf9d3366bca495d84d79859a0b79/numpy-2.3.5-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:f0963b55cdd70fad460fa4c1341f12f976bb26cb66021a5580329bd498988310", size = 16910689, upload-time = "2025-11-16T22:52:23.247Z" }, + { url = "https://files.pythonhosted.org/packages/00/4f/edb00032a8fb92ec0a679d3830368355da91a69cab6f3e9c21b64d0bb986/numpy-2.3.5-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:f4255143f5160d0de972d28c8f9665d882b5f61309d8362fdd3e103cf7bf010c", size = 12457053, upload-time = "2025-11-16T22:52:26.367Z" }, + { url = "https://files.pythonhosted.org/packages/16/a4/e8a53b5abd500a63836a29ebe145fc1ab1f2eefe1cfe59276020373ae0aa/numpy-2.3.5-pp311-pypy311_pp73-macosx_14_0_arm64.whl", hash = "sha256:a4b9159734b326535f4dd01d947f919c6eefd2d9827466a696c44ced82dfbc18", size = 5285635, upload-time = "2025-11-16T22:52:29.266Z" }, + { url = "https://files.pythonhosted.org/packages/a3/2f/37eeb9014d9c8b3e9c55bc599c68263ca44fdbc12a93e45a21d1d56df737/numpy-2.3.5-pp311-pypy311_pp73-macosx_14_0_x86_64.whl", hash = "sha256:2feae0d2c91d46e59fcd62784a3a83b3fb677fead592ce51b5a6fbb4f95965ff", size = 6801770, upload-time = "2025-11-16T22:52:31.421Z" }, + { url = "https://files.pythonhosted.org/packages/7d/e4/68d2f474df2cb671b2b6c2986a02e520671295647dad82484cde80ca427b/numpy-2.3.5-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ffac52f28a7849ad7576293c0cb7b9f08304e8f7d738a8cb8a90ec4c55a998eb", size = 14391768, upload-time = "2025-11-16T22:52:33.593Z" }, + { url = "https://files.pythonhosted.org/packages/b8/50/94ccd8a2b141cb50651fddd4f6a48874acb3c91c8f0842b08a6afc4b0b21/numpy-2.3.5-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:63c0e9e7eea69588479ebf4a8a270d5ac22763cc5854e9a7eae952a3908103f7", size = 16729263, upload-time = "2025-11-16T22:52:36.369Z" }, + { url = "https://files.pythonhosted.org/packages/2d/ee/346fa473e666fe14c52fcdd19ec2424157290a032d4c41f98127bfb31ac7/numpy-2.3.5-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:f16417ec91f12f814b10bafe79ef77e70113a2f5f7018640e7425ff979253425", size = 12967213, upload-time = "2025-11-16T22:52:39.38Z" }, +] + +[[package]] +name = "nvidia-cublas-cu12" +version = "12.8.4.1" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/dc/61/e24b560ab2e2eaeb3c839129175fb330dfcfc29e5203196e5541a4c44682/nvidia_cublas_cu12-12.8.4.1-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:8ac4e771d5a348c551b2a426eda6193c19aa630236b418086020df5ba9667142", size = 594346921, upload-time = "2025-03-07T01:44:31.254Z" }, +] + +[[package]] +name = "nvidia-cuda-cupti-cu12" +version = "12.8.90" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f8/02/2adcaa145158bf1a8295d83591d22e4103dbfd821bcaf6f3f53151ca4ffa/nvidia_cuda_cupti_cu12-12.8.90-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ea0cb07ebda26bb9b29ba82cda34849e73c166c18162d3913575b0c9db9a6182", size = 10248621, upload-time = "2025-03-07T01:40:21.213Z" }, +] + +[[package]] +name = "nvidia-cuda-nvrtc-cu12" +version = "12.8.93" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/05/6b/32f747947df2da6994e999492ab306a903659555dddc0fbdeb9d71f75e52/nvidia_cuda_nvrtc_cu12-12.8.93-py3-none-manylinux2010_x86_64.manylinux_2_12_x86_64.whl", hash = "sha256:a7756528852ef889772a84c6cd89d41dfa74667e24cca16bb31f8f061e3e9994", size = 88040029, upload-time = "2025-03-07T01:42:13.562Z" }, +] + +[[package]] +name = "nvidia-cuda-runtime-cu12" +version = "12.8.90" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0d/9b/a997b638fcd068ad6e4d53b8551a7d30fe8b404d6f1804abf1df69838932/nvidia_cuda_runtime_cu12-12.8.90-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:adade8dcbd0edf427b7204d480d6066d33902cab2a4707dcfc48a2d0fd44ab90", size = 954765, upload-time = "2025-03-07T01:40:01.615Z" }, +] + +[[package]] +name = "nvidia-cudnn-cu12" +version = "9.10.2.21" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "nvidia-cublas-cu12" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/ba/51/e123d997aa098c61d029f76663dedbfb9bc8dcf8c60cbd6adbe42f76d049/nvidia_cudnn_cu12-9.10.2.21-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:949452be657fa16687d0930933f032835951ef0892b37d2d53824d1a84dc97a8", size = 706758467, upload-time = "2025-06-06T21:54:08.597Z" }, +] + +[[package]] +name = "nvidia-cufft-cu12" +version = "11.3.3.83" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "nvidia-nvjitlink-cu12" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/1f/13/ee4e00f30e676b66ae65b4f08cb5bcbb8392c03f54f2d5413ea99a5d1c80/nvidia_cufft_cu12-11.3.3.83-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4d2dd21ec0b88cf61b62e6b43564355e5222e4a3fb394cac0db101f2dd0d4f74", size = 193118695, upload-time = "2025-03-07T01:45:27.821Z" }, +] + +[[package]] +name = "nvidia-cufile-cu12" +version = "1.13.1.3" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bb/fe/1bcba1dfbfb8d01be8d93f07bfc502c93fa23afa6fd5ab3fc7c1df71038a/nvidia_cufile_cu12-1.13.1.3-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1d069003be650e131b21c932ec3d8969c1715379251f8d23a1860554b1cb24fc", size = 1197834, upload-time = "2025-03-07T01:45:50.723Z" }, +] + +[[package]] +name = "nvidia-curand-cu12" +version = "10.3.9.90" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/aa/6584b56dc84ebe9cf93226a5cde4d99080c8e90ab40f0c27bda7a0f29aa1/nvidia_curand_cu12-10.3.9.90-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:b32331d4f4df5d6eefa0554c565b626c7216f87a06a4f56fab27c3b68a830ec9", size = 63619976, upload-time = "2025-03-07T01:46:23.323Z" }, +] + +[[package]] +name = "nvidia-cusolver-cu12" +version = "11.7.3.90" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "nvidia-cublas-cu12" }, + { name = "nvidia-cusparse-cu12" }, + { name = "nvidia-nvjitlink-cu12" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/85/48/9a13d2975803e8cf2777d5ed57b87a0b6ca2cc795f9a4f59796a910bfb80/nvidia_cusolver_cu12-11.7.3.90-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:4376c11ad263152bd50ea295c05370360776f8c3427b30991df774f9fb26c450", size = 267506905, upload-time = "2025-03-07T01:47:16.273Z" }, +] + +[[package]] +name = "nvidia-cusparse-cu12" +version = "12.5.8.93" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "nvidia-nvjitlink-cu12" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/c2/f5/e1854cb2f2bcd4280c44736c93550cc300ff4b8c95ebe370d0aa7d2b473d/nvidia_cusparse_cu12-12.5.8.93-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1ec05d76bbbd8b61b06a80e1eaf8cf4959c3d4ce8e711b65ebd0443bb0ebb13b", size = 288216466, upload-time = "2025-03-07T01:48:13.779Z" }, +] + +[[package]] +name = "nvidia-cusparselt-cu12" +version = "0.7.1" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/56/79/12978b96bd44274fe38b5dde5cfb660b1d114f70a65ef962bcbbed99b549/nvidia_cusparselt_cu12-0.7.1-py3-none-manylinux2014_x86_64.whl", hash = "sha256:f1bb701d6b930d5a7cea44c19ceb973311500847f81b634d802b7b539dc55623", size = 287193691, upload-time = "2025-02-26T00:15:44.104Z" }, +] + +[[package]] +name = "nvidia-nccl-cu12" +version = "2.27.5" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6e/89/f7a07dc961b60645dbbf42e80f2bc85ade7feb9a491b11a1e973aa00071f/nvidia_nccl_cu12-2.27.5-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ad730cf15cb5d25fe849c6e6ca9eb5b76db16a80f13f425ac68d8e2e55624457", size = 322348229, upload-time = "2025-06-26T04:11:28.385Z" }, +] + +[[package]] +name = "nvidia-nvjitlink-cu12" +version = "12.8.93" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f6/74/86a07f1d0f42998ca31312f998bd3b9a7eff7f52378f4f270c8679c77fb9/nvidia_nvjitlink_cu12-12.8.93-py3-none-manylinux2010_x86_64.manylinux_2_12_x86_64.whl", hash = "sha256:81ff63371a7ebd6e6451970684f916be2eab07321b73c9d244dc2b4da7f73b88", size = 39254836, upload-time = "2025-03-07T01:49:55.661Z" }, +] + +[[package]] +name = "nvidia-nvshmem-cu12" +version = "3.3.20" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3b/6c/99acb2f9eb85c29fc6f3a7ac4dccfd992e22666dd08a642b303311326a97/nvidia_nvshmem_cu12-3.3.20-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d00f26d3f9b2e3c3065be895e3059d6479ea5c638a3f38c9fec49b1b9dd7c1e5", size = 124657145, upload-time = "2025-08-04T20:25:19.995Z" }, +] + +[[package]] +name = "nvidia-nvtx-cu12" +version = "12.8.90" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a2/eb/86626c1bbc2edb86323022371c39aa48df6fd8b0a1647bc274577f72e90b/nvidia_nvtx_cu12-12.8.90-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5b17e2001cc0d751a5bc2c6ec6d26ad95913324a4adb86788c944f8ce9ba441f", size = 89954, upload-time = "2025-03-07T01:42:44.131Z" }, +] + +[[package]] +name = "oauthlib" +version = "3.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0b/5f/19930f824ffeb0ad4372da4812c50edbd1434f678c90c2733e1188edfc63/oauthlib-3.3.1.tar.gz", hash = "sha256:0f0f8aa759826a193cf66c12ea1af1637f87b9b4622d46e866952bb022e538c9", size = 185918, upload-time = "2025-06-19T22:48:08.269Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/be/9c/92789c596b8df838baa98fa71844d84283302f7604ed565dafe5a6b5041a/oauthlib-3.3.1-py3-none-any.whl", hash = "sha256:88119c938d2b8fb88561af5f6ee0eec8cc8d552b7bb1f712743136eb7523b7a1", size = 160065, upload-time = "2025-06-19T22:48:06.508Z" }, +] + +[[package]] +name = "openai" +version = "1.109.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "distro" }, + { name = "httpx" }, + { name = "jiter" }, + { name = "pydantic" }, + { name = "sniffio" }, + { name = "tqdm" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c6/a1/a303104dc55fc546a3f6914c842d3da471c64eec92043aef8f652eb6c524/openai-1.109.1.tar.gz", hash = "sha256:d173ed8dbca665892a6db099b4a2dfac624f94d20a93f46eb0b56aae940ed869", size = 564133, upload-time = "2025-09-24T13:00:53.075Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1d/2a/7dd3d207ec669cacc1f186fd856a0f61dbc255d24f6fdc1a6715d6051b0f/openai-1.109.1-py3-none-any.whl", hash = "sha256:6bcaf57086cf59159b8e27447e4e7dd019db5d29a438072fbd49c290c7e65315", size = 948627, upload-time = "2025-09-24T13:00:50.754Z" }, +] + +[[package]] +name = "openapi-schema-validator" +version = "0.6.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jsonschema" }, + { name = "jsonschema-specifications" }, + { name = "rfc3339-validator" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8b/f3/5507ad3325169347cd8ced61c232ff3df70e2b250c49f0fe140edb4973c6/openapi_schema_validator-0.6.3.tar.gz", hash = "sha256:f37bace4fc2a5d96692f4f8b31dc0f8d7400fd04f3a937798eaf880d425de6ee", size = 11550, upload-time = "2025-01-10T18:08:22.268Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/21/c6/ad0fba32775ae749016829dace42ed80f4407b171da41313d1a3a5f102e4/openapi_schema_validator-0.6.3-py3-none-any.whl", hash = "sha256:f3b9870f4e556b5a62a1c39da72a6b4b16f3ad9c73dc80084b1b11e74ba148a3", size = 8755, upload-time = "2025-01-10T18:08:19.758Z" }, +] + +[[package]] +name = "openapi-spec-validator" +version = "0.7.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jsonschema" }, + { name = "jsonschema-path" }, + { name = "lazy-object-proxy" }, + { name = "openapi-schema-validator" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/67/fe/21954ff978239dc29ebb313f5c87eeb4ec929b694b9667323086730998e2/openapi_spec_validator-0.7.1.tar.gz", hash = "sha256:8577b85a8268685da6f8aa30990b83b7960d4d1117e901d451b5d572605e5ec7", size = 37985, upload-time = "2023-10-13T11:43:40.53Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2b/4d/e744fff95aaf3aeafc968d5ba7297c8cda0d1ecb8e3acd21b25adae4d835/openapi_spec_validator-0.7.1-py3-none-any.whl", hash = "sha256:3c81825043f24ccbcd2f4b149b11e8231abce5ba84f37065e14ec947d8f4e959", size = 38998, upload-time = "2023-10-13T11:43:38.371Z" }, +] + +[[package]] +name = "packaging" +version = "25.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f", size = 165727, upload-time = "2025-04-19T11:48:59.673Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469, upload-time = "2025-04-19T11:48:57.875Z" }, +] + +[[package]] +name = "pandas" +version = "2.2.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "tzdata" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/88/d9/ecf715f34c73ccb1d8ceb82fc01cd1028a65a5f6dbc57bfa6ea155119058/pandas-2.2.2.tar.gz", hash = "sha256:9e79019aba43cb4fda9e4d983f8e88ca0373adbb697ae9c6c43093218de28b54", size = 4398391, upload-time = "2024-04-10T19:45:48.342Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1b/70/61704497903d43043e288017cb2b82155c0d41e15f5c17807920877b45c2/pandas-2.2.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:696039430f7a562b74fa45f540aca068ea85fa34c244d0deee539cb6d70aa288", size = 12574808, upload-time = "2024-04-10T19:44:35.516Z" }, + { url = "https://files.pythonhosted.org/packages/16/c6/75231fd47afd6b3f89011e7077f1a3958441264aca7ae9ff596e3276a5d0/pandas-2.2.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8e90497254aacacbc4ea6ae5e7a8cd75629d6ad2b30025a4a8b09aa4faf55151", size = 11304876, upload-time = "2024-04-10T19:44:39.37Z" }, + { url = "https://files.pythonhosted.org/packages/97/2d/7b54f80b93379ff94afb3bd9b0cd1d17b48183a0d6f98045bc01ce1e06a7/pandas-2.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:58b84b91b0b9f4bafac2a0ac55002280c094dfc6402402332c0913a59654ab2b", size = 15602548, upload-time = "2024-04-10T19:44:42.902Z" }, + { url = "https://files.pythonhosted.org/packages/fc/a5/4d82be566f069d7a9a702dcdf6f9106df0e0b042e738043c0cc7ddd7e3f6/pandas-2.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d2123dc9ad6a814bcdea0f099885276b31b24f7edf40f6cdbc0912672e22eee", size = 13031332, upload-time = "2024-04-10T19:44:46.98Z" }, + { url = "https://files.pythonhosted.org/packages/92/a2/b79c48f530673567805e607712b29814b47dcaf0d167e87145eb4b0118c6/pandas-2.2.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:2925720037f06e89af896c70bca73459d7e6a4be96f9de79e2d440bd499fe0db", size = 16286054, upload-time = "2024-04-10T19:44:50.51Z" }, + { url = "https://files.pythonhosted.org/packages/40/c7/47e94907f1d8fdb4868d61bd6c93d57b3784a964d52691b77ebfdb062842/pandas-2.2.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0cace394b6ea70c01ca1595f839cf193df35d1575986e484ad35c4aeae7266c1", size = 13879507, upload-time = "2024-04-10T19:44:54.412Z" }, + { url = "https://files.pythonhosted.org/packages/ab/63/966db1321a0ad55df1d1fe51505d2cdae191b84c907974873817b0a6e849/pandas-2.2.2-cp311-cp311-win_amd64.whl", hash = "sha256:873d13d177501a28b2756375d59816c365e42ed8417b41665f346289adc68d24", size = 11634249, upload-time = "2024-04-10T19:44:58.183Z" }, + { url = "https://files.pythonhosted.org/packages/dd/49/de869130028fb8d90e25da3b7d8fb13e40f5afa4c4af1781583eb1ff3839/pandas-2.2.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:9dfde2a0ddef507a631dc9dc4af6a9489d5e2e740e226ad426a05cabfbd7c8ef", size = 12500886, upload-time = "2024-04-10T19:45:01.808Z" }, + { url = "https://files.pythonhosted.org/packages/db/7c/9a60add21b96140e22465d9adf09832feade45235cd22f4cb1668a25e443/pandas-2.2.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e9b79011ff7a0f4b1d6da6a61aa1aa604fb312d6647de5bad20013682d1429ce", size = 11340320, upload-time = "2024-04-11T18:36:14.398Z" }, + { url = "https://files.pythonhosted.org/packages/b0/85/f95b5f322e1ae13b7ed7e97bd999160fa003424711ab4dc8344b8772c270/pandas-2.2.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1cb51fe389360f3b5a4d57dbd2848a5f033350336ca3b340d1c53a1fad33bcad", size = 15204346, upload-time = "2024-04-10T19:45:05.903Z" }, + { url = "https://files.pythonhosted.org/packages/40/10/79e52ef01dfeb1c1ca47a109a01a248754ebe990e159a844ece12914de83/pandas-2.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eee3a87076c0756de40b05c5e9a6069c035ba43e8dd71c379e68cab2c20f16ad", size = 12733396, upload-time = "2024-04-10T19:45:09.282Z" }, + { url = "https://files.pythonhosted.org/packages/35/9d/208febf8c4eb5c1d9ea3314d52d8bd415fd0ef0dd66bb24cc5bdbc8fa71a/pandas-2.2.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:3e374f59e440d4ab45ca2fffde54b81ac3834cf5ae2cdfa69c90bc03bde04d76", size = 15858913, upload-time = "2024-04-10T19:45:12.514Z" }, + { url = "https://files.pythonhosted.org/packages/99/d1/2d9bd05def7a9e08a92ec929b5a4c8d5556ec76fae22b0fa486cbf33ea63/pandas-2.2.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:43498c0bdb43d55cb162cdc8c06fac328ccb5d2eabe3cadeb3529ae6f0517c32", size = 13417786, upload-time = "2024-04-10T19:45:16.275Z" }, + { url = "https://files.pythonhosted.org/packages/22/a5/a0b255295406ed54269814bc93723cfd1a0da63fb9aaf99e1364f07923e5/pandas-2.2.2-cp312-cp312-win_amd64.whl", hash = "sha256:d187d355ecec3629624fccb01d104da7d7f391db0311145817525281e2804d23", size = 11498828, upload-time = "2024-04-10T19:45:19.85Z" }, +] + +[[package]] +name = "pandocfilters" +version = "1.5.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/70/6f/3dd4940bbe001c06a65f88e36bad298bc7a0de5036115639926b0c5c0458/pandocfilters-1.5.1.tar.gz", hash = "sha256:002b4a555ee4ebc03f8b66307e287fa492e4a77b4ea14d3f934328297bb4939e", size = 8454, upload-time = "2024-01-18T20:08:13.726Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ef/af/4fbc8cab944db5d21b7e2a5b8e9211a03a79852b1157e2c102fcc61ac440/pandocfilters-1.5.1-py2.py3-none-any.whl", hash = "sha256:93be382804a9cdb0a7267585f157e5d1731bbe5545a85b268d6f5fe6232de2bc", size = 8663, upload-time = "2024-01-18T20:08:11.28Z" }, +] + +[[package]] +name = "parso" +version = "0.8.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d4/de/53e0bcf53d13e005bd8c92e7855142494f41171b34c2536b86187474184d/parso-0.8.5.tar.gz", hash = "sha256:034d7354a9a018bdce352f48b2a8a450f05e9d6ee85db84764e9b6bd96dafe5a", size = 401205, upload-time = "2025-08-23T15:15:28.028Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/16/32/f8e3c85d1d5250232a5d3477a2a28cc291968ff175caeadaf3cc19ce0e4a/parso-0.8.5-py2.py3-none-any.whl", hash = "sha256:646204b5ee239c396d040b90f9e272e9a8017c630092bf59980beb62fd033887", size = 106668, upload-time = "2025-08-23T15:15:25.663Z" }, +] + +[[package]] +name = "pathable" +version = "0.4.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/67/93/8f2c2075b180c12c1e9f6a09d1a985bc2036906b13dff1d8917e395f2048/pathable-0.4.4.tar.gz", hash = "sha256:6905a3cd17804edfac7875b5f6c9142a218c7caef78693c2dbbbfbac186d88b2", size = 8124, upload-time = "2025-01-10T18:43:13.247Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7d/eb/b6260b31b1a96386c0a880edebe26f89669098acea8e0318bff6adb378fd/pathable-0.4.4-py3-none-any.whl", hash = "sha256:5ae9e94793b6ef5a4cbe0a7ce9dbbefc1eec38df253763fd0aeeacf2762dbbc2", size = 9592, upload-time = "2025-01-10T18:43:11.88Z" }, +] + +[[package]] +name = "pexpect" +version = "4.9.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "ptyprocess" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/42/92/cc564bf6381ff43ce1f4d06852fc19a2f11d180f23dc32d9588bee2f149d/pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f", size = 166450, upload-time = "2023-11-25T09:07:26.339Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523", size = 63772, upload-time = "2023-11-25T06:56:14.81Z" }, +] + +[[package]] +name = "pickleshare" +version = "0.7.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/b6/df3c1c9b616e9c0edbc4fbab6ddd09df9535849c64ba51fcb6531c32d4d8/pickleshare-0.7.5.tar.gz", hash = "sha256:87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca", size = 6161, upload-time = "2018-09-25T19:17:37.249Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9a/41/220f49aaea88bc6fa6cba8d05ecf24676326156c23b991e80b3f2fc24c77/pickleshare-0.7.5-py2.py3-none-any.whl", hash = "sha256:9649af414d74d4df115d5d718f82acb59c9d418196b7b4290ed47a12ce62df56", size = 6877, upload-time = "2018-09-25T19:17:35.817Z" }, +] + +[[package]] +name = "pillow" +version = "10.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ef/43/c50c17c5f7d438e836c169e343695534c38c77f60e7c90389bd77981bc21/pillow-10.3.0.tar.gz", hash = "sha256:9d2455fbf44c914840c793e89aa82d0e1763a14253a000743719ae5946814b2d", size = 46572854, upload-time = "2024-04-01T12:19:40.048Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e5/51/e4b35e394b4e5ca24983e50361a1db3d7da05b1758074f9c4f5b4be4b22a/pillow-10.3.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:5f77cf66e96ae734717d341c145c5949c63180842a545c47a0ce7ae52ca83795", size = 3528936, upload-time = "2024-04-01T12:17:29.322Z" }, + { url = "https://files.pythonhosted.org/packages/00/5c/7633f291def20082bad31b844fe5ed07742aae8504e4cfe2f331ee727178/pillow-10.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e4b878386c4bf293578b48fc570b84ecfe477d3b77ba39a6e87150af77f40c57", size = 3352899, upload-time = "2024-04-01T12:17:31.843Z" }, + { url = "https://files.pythonhosted.org/packages/1d/29/abda81a079cccd1840b0b7b13ad67ffac87cc66395ae20973027280e9f9f/pillow-10.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fdcbb4068117dfd9ce0138d068ac512843c52295ed996ae6dd1faf537b6dbc27", size = 4317733, upload-time = "2024-04-01T12:17:34.494Z" }, + { url = "https://files.pythonhosted.org/packages/77/cd/5205fb43a6000d424291b0525b8201004700d9a34e034517ac4dfdc6eed5/pillow-10.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9797a6c8fe16f25749b371c02e2ade0efb51155e767a971c61734b1bf6293994", size = 4429430, upload-time = "2024-04-01T12:17:37.112Z" }, + { url = "https://files.pythonhosted.org/packages/8c/bb/9e8d2b1b54235bd44139ee387beeb65ad9d8d755b5c01f817070c6dabea7/pillow-10.3.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:9e91179a242bbc99be65e139e30690e081fe6cb91a8e77faf4c409653de39451", size = 4341711, upload-time = "2024-04-01T12:17:39.151Z" }, + { url = "https://files.pythonhosted.org/packages/81/ff/ad3c942d865f9e45ce84eeb31795e6d4d94e1f1eea51026d5154028510d7/pillow-10.3.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:1b87bd9d81d179bd8ab871603bd80d8645729939f90b71e62914e816a76fc6bd", size = 4507469, upload-time = "2024-04-01T12:17:41.159Z" }, + { url = "https://files.pythonhosted.org/packages/ab/ab/30cd50a12d9afa2c412efcb8b37dd3f5f1da4bc77b984ddfbc776d96cf5b/pillow-10.3.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:81d09caa7b27ef4e61cb7d8fbf1714f5aec1c6b6c5270ee53504981e6e9121ad", size = 4533491, upload-time = "2024-04-01T12:17:43.813Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f0/07419615ffa852cded35dfa3337bf70788f232a3dfe622b97d5eb0c32674/pillow-10.3.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:048ad577748b9fa4a99a0548c64f2cb8d672d5bf2e643a739ac8faff1164238c", size = 4598334, upload-time = "2024-04-01T12:17:46.271Z" }, + { url = "https://files.pythonhosted.org/packages/9c/f3/6e923786f2b2d167d16783fc079c003aadbcedc4995f54e8429d91aabfc4/pillow-10.3.0-cp311-cp311-win32.whl", hash = "sha256:7161ec49ef0800947dc5570f86568a7bb36fa97dd09e9827dc02b718c5643f09", size = 2217293, upload-time = "2024-04-01T12:17:48.292Z" }, + { url = "https://files.pythonhosted.org/packages/0a/16/c83877524c47976f16703d2e05c363244bc1e60ab439e078b3cd046d07db/pillow-10.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:8eb0908e954d093b02a543dc963984d6e99ad2b5e36503d8a0aaf040505f747d", size = 2531332, upload-time = "2024-04-01T12:17:50.844Z" }, + { url = "https://files.pythonhosted.org/packages/a8/3b/f64454549af90818774c3210b48987c3aeca5285787dbd69869d9a05b58f/pillow-10.3.0-cp311-cp311-win_arm64.whl", hash = "sha256:4e6f7d1c414191c1199f8996d3f2282b9ebea0945693fb67392c75a3a320941f", size = 2229546, upload-time = "2024-04-01T12:17:53.237Z" }, + { url = "https://files.pythonhosted.org/packages/cc/5d/b7fcd38cba0f7706f64c1674fc9f018e4c64f791770598c44affadea7c2f/pillow-10.3.0-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:e46f38133e5a060d46bd630faa4d9fa0202377495df1f068a8299fd78c84de84", size = 3528535, upload-time = "2024-04-01T12:17:55.891Z" }, + { url = "https://files.pythonhosted.org/packages/5e/77/4cf407e7b033b4d8e5fcaac295b6e159cf1c70fa105d769f01ea2e1e5eca/pillow-10.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:50b8eae8f7334ec826d6eeffaeeb00e36b5e24aa0b9df322c247539714c6df19", size = 3352281, upload-time = "2024-04-01T12:17:58.527Z" }, + { url = "https://files.pythonhosted.org/packages/53/7b/4f7b153a776725a87797d744ea1c73b83ac0b723f5e379297605dee118eb/pillow-10.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9d3bea1c75f8c53ee4d505c3e67d8c158ad4df0d83170605b50b64025917f338", size = 4321427, upload-time = "2024-04-01T12:18:00.809Z" }, + { url = "https://files.pythonhosted.org/packages/45/08/d2cc751b790e77464f8648aa707e2327d6da5d95cf236a532e99c2e7a499/pillow-10.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:19aeb96d43902f0a783946a0a87dbdad5c84c936025b8419da0a0cd7724356b1", size = 4435915, upload-time = "2024-04-01T12:18:03.084Z" }, + { url = "https://files.pythonhosted.org/packages/ef/97/f69d1932cf45bf5bd9fa1e2ae57bdf716524faa4fa9fb7dc62cdb1a19113/pillow-10.3.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:74d28c17412d9caa1066f7a31df8403ec23d5268ba46cd0ad2c50fb82ae40462", size = 4347392, upload-time = "2024-04-01T12:18:05.319Z" }, + { url = "https://files.pythonhosted.org/packages/c6/c1/3521ddb9c1f3ac106af3e4512a98c785b6ed8a39e0f778480b8a4d340165/pillow-10.3.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:ff61bfd9253c3915e6d41c651d5f962da23eda633cf02262990094a18a55371a", size = 4514536, upload-time = "2024-04-01T12:18:08.039Z" }, + { url = "https://files.pythonhosted.org/packages/c0/6f/347c241904a6514e59515284b01ba6f61765269a0d1a19fd2e6cbe331c8a/pillow-10.3.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d886f5d353333b4771d21267c7ecc75b710f1a73d72d03ca06df49b09015a9ef", size = 4555987, upload-time = "2024-04-01T12:18:10.106Z" }, + { url = "https://files.pythonhosted.org/packages/c3/e2/3cc490c6b2e262713da82ce849c34bd8e6c31242afb53be8595d820b9877/pillow-10.3.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4b5ec25d8b17217d635f8935dbc1b9aa5907962fae29dff220f2659487891cd3", size = 4623526, upload-time = "2024-04-01T12:18:12.172Z" }, + { url = "https://files.pythonhosted.org/packages/c1/b3/0209f70fa29b383e7618e47db95712a45788dea03bb960601753262a2883/pillow-10.3.0-cp312-cp312-win32.whl", hash = "sha256:51243f1ed5161b9945011a7360e997729776f6e5d7005ba0c6879267d4c5139d", size = 2217547, upload-time = "2024-04-01T12:18:14.188Z" }, + { url = "https://files.pythonhosted.org/packages/d3/23/3927d888481ff7c44fdbca3bc2a2e97588c933db46723bf115201377c436/pillow-10.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:412444afb8c4c7a6cc11a47dade32982439925537e483be7c0ae0cf96c4f6a0b", size = 2531641, upload-time = "2024-04-01T12:18:16.081Z" }, + { url = "https://files.pythonhosted.org/packages/db/36/1ecaa0541d3a1b1362f937d386eeb1875847bfa06d5225f1b0e1588d1007/pillow-10.3.0-cp312-cp312-win_arm64.whl", hash = "sha256:798232c92e7665fe82ac085f9d8e8ca98826f8e27859d9a96b41d519ecd2e49a", size = 2229746, upload-time = "2024-04-01T12:18:18.174Z" }, +] + +[[package]] +name = "pipreqs" +version = "0.5.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "docopt" }, + { name = "ipython" }, + { name = "nbconvert" }, + { name = "yarg" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/12/4c/0a335b1b70c7e1821140ac6f884b51d47f049bcb600fa19bb374922f73aa/pipreqs-0.5.0.tar.gz", hash = "sha256:f33298d235ff76def369cb9a3594d084d9badc70cebba1e8cb271fcd4fdc0183", size = 35240, upload-time = "2024-02-18T17:49:36.607Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/36/38/cc1343c3a63655e18328e51e00c6e6851be648f1b8babffc5131f1b9f226/pipreqs-0.5.0-py3-none-any.whl", hash = "sha256:0809f6217028e35785f80e90217e18043e58c99ba28175e28320f9074dd03874", size = 33496, upload-time = "2024-02-18T17:49:34.148Z" }, +] + +[[package]] +name = "platformdirs" +version = "4.5.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cf/86/0248f086a84f01b37aaec0fa567b397df1a119f73c16f6c7a9aac73ea309/platformdirs-4.5.1.tar.gz", hash = "sha256:61d5cdcc6065745cdd94f0f878977f8de9437be93de97c1c12f853c9c0cdcbda", size = 21715, upload-time = "2025-12-05T13:52:58.638Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/28/3bfe2fa5a7b9c46fe7e13c97bda14c895fb10fa2ebf1d0abb90e0cea7ee1/platformdirs-4.5.1-py3-none-any.whl", hash = "sha256:d03afa3963c806a9bed9d5125c8f4cb2fdaf74a55ab60e5d59b3fde758104d31", size = 18731, upload-time = "2025-12-05T13:52:56.823Z" }, +] + +[[package]] +name = "pluggy" +version = "1.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412, upload-time = "2025-05-15T12:30:07.975Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" }, +] + +[[package]] +name = "prance" +version = "23.6.21.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "chardet" }, + { name = "packaging" }, + { name = "requests" }, + { name = "ruamel-yaml" }, + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/73/f0/bcb5ffc8b7ab8e3d02dbef3bd945cf8fd6e12c146774f900659406b9fce1/prance-23.6.21.0.tar.gz", hash = "sha256:d8c15f8ac34019751cc4945f866d8d964d7888016d10de3592e339567177cabe", size = 2798776, upload-time = "2023-06-21T20:01:57.142Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c9/db/4fb4901ee61274d0ab97746461fc5f2637e5d73aa73f34ee28e941a699a1/prance-23.6.21.0-py3-none-any.whl", hash = "sha256:6a4276fa07ed9f22feda4331097d7503c4adc3097e46ffae97425f2c1026bd9f", size = 36279, upload-time = "2023-06-21T20:01:54.936Z" }, +] + +[[package]] +name = "pre-commit" +version = "3.7.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cfgv" }, + { name = "identify" }, + { name = "nodeenv" }, + { name = "pyyaml" }, + { name = "virtualenv" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/aa/46/cc214ef6514270328910083d0119d0a80a6d2c4ec8c6608c0219db0b74cf/pre_commit-3.7.1.tar.gz", hash = "sha256:8ca3ad567bc78a4972a3f1a477e94a79d4597e8140a6e0b651c5e33899c3654a", size = 177317, upload-time = "2024-05-11T01:25:19.473Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b9/0f/d6d0b4e2f5b2933a557087fc0560371aa545a18232d4d3427eb3bb3af12e/pre_commit-3.7.1-py2.py3-none-any.whl", hash = "sha256:fae36fd1d7ad7d6a5a1c0b0d5adb2ed1a3bda5a21bf6c3e5372073d7a11cd4c5", size = 204268, upload-time = "2024-05-11T01:25:16.845Z" }, +] + +[[package]] +name = "prompt-toolkit" +version = "3.0.52" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "wcwidth" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a1/96/06e01a7b38dce6fe1db213e061a4602dd6032a8a97ef6c1a862537732421/prompt_toolkit-3.0.52.tar.gz", hash = "sha256:28cde192929c8e7321de85de1ddbe736f1375148b02f2e17edd840042b1be855", size = 434198, upload-time = "2025-08-27T15:24:02.057Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/84/03/0d3ce49e2505ae70cf43bc5bb3033955d2fc9f932163e84dc0779cc47f48/prompt_toolkit-3.0.52-py3-none-any.whl", hash = "sha256:9aac639a3bbd33284347de5ad8d68ecc044b91a762dc39b7c21095fcd6a19955", size = 391431, upload-time = "2025-08-27T15:23:59.498Z" }, +] + +[[package]] +name = "psutil" +version = "5.9.8" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/90/c7/6dc0a455d111f68ee43f27793971cf03fe29b6ef972042549db29eec39a2/psutil-5.9.8.tar.gz", hash = "sha256:6be126e3225486dff286a8fb9a06246a5253f4c7c53b475ea5f5ac934e64194c", size = 503247, upload-time = "2024-01-19T20:47:09.517Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/e3/07ae864a636d70a8a6f58da27cb1179192f1140d5d1da10886ade9405797/psutil-5.9.8-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:aee678c8720623dc456fa20659af736241f575d79429a0e5e9cf88ae0605cc81", size = 248702, upload-time = "2024-01-19T20:47:36.303Z" }, + { url = "https://files.pythonhosted.org/packages/b3/bd/28c5f553667116b2598b9cc55908ec435cb7f77a34f2bff3e3ca765b0f78/psutil-5.9.8-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8cb6403ce6d8e047495a701dc7c5bd788add903f8986d523e3e20b98b733e421", size = 285242, upload-time = "2024-01-19T20:47:39.65Z" }, + { url = "https://files.pythonhosted.org/packages/c5/4f/0e22aaa246f96d6ac87fe5ebb9c5a693fbe8877f537a1022527c47ca43c5/psutil-5.9.8-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d06016f7f8625a1825ba3732081d77c94589dca78b7a3fc072194851e88461a4", size = 288191, upload-time = "2024-01-19T20:47:43.078Z" }, + { url = "https://files.pythonhosted.org/packages/6e/f5/2aa3a4acdc1e5940b59d421742356f133185667dd190b166dbcfcf5d7b43/psutil-5.9.8-cp37-abi3-win32.whl", hash = "sha256:bc56c2a1b0d15aa3eaa5a60c9f3f8e3e565303b465dbf57a1b730e7a2b9844e0", size = 251252, upload-time = "2024-01-19T20:47:52.88Z" }, + { url = "https://files.pythonhosted.org/packages/93/52/3e39d26feae7df0aa0fd510b14012c3678b36ed068f7d78b8d8784d61f0e/psutil-5.9.8-cp37-abi3-win_amd64.whl", hash = "sha256:8db4c1b57507eef143a15a6884ca10f7c73876cdf5d51e713151c1236a0e68cf", size = 255090, upload-time = "2024-01-19T20:47:56.019Z" }, + { url = "https://files.pythonhosted.org/packages/05/33/2d74d588408caedd065c2497bdb5ef83ce6082db01289a1e1147f6639802/psutil-5.9.8-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:d16bbddf0693323b8c6123dd804100241da461e41d6e332fb0ba6058f630f8c8", size = 249898, upload-time = "2024-01-19T20:47:59.238Z" }, +] + +[[package]] +name = "ptyprocess" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/20/e5/16ff212c1e452235a90aeb09066144d0c5a6a8c0834397e03f5224495c4e/ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220", size = 70762, upload-time = "2020-12-28T15:15:30.155Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35", size = 13993, upload-time = "2020-12-28T15:15:28.35Z" }, +] + +[[package]] +name = "pure-eval" +version = "0.2.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cd/05/0a34433a064256a578f1783a10da6df098ceaa4a57bbeaa96a6c0352786b/pure_eval-0.2.3.tar.gz", hash = "sha256:5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42", size = 19752, upload-time = "2024-07-21T12:58:21.801Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8e/37/efad0257dc6e593a18957422533ff0f87ede7c9c6ea010a2177d738fb82f/pure_eval-0.2.3-py3-none-any.whl", hash = "sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0", size = 11842, upload-time = "2024-07-21T12:58:20.04Z" }, +] + +[[package]] +name = "pycparser" +version = "2.23" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fe/cf/d2d3b9f5699fb1e4615c8e32ff220203e43b248e1dfcc6736ad9057731ca/pycparser-2.23.tar.gz", hash = "sha256:78816d4f24add8f10a06d6f05b4d424ad9e96cfebf68a4ddc99c65c0720d00c2", size = 173734, upload-time = "2025-09-09T13:23:47.91Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/e3/59cd50310fc9b59512193629e1984c1f95e5c8ae6e5d8c69532ccc65a7fe/pycparser-2.23-py3-none-any.whl", hash = "sha256:e5c6e8d3fbad53479cab09ac03729e0a9faf2bee3db8208a550daf5af81a5934", size = 118140, upload-time = "2025-09-09T13:23:46.651Z" }, +] + +[[package]] +name = "pydantic" +version = "2.12.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "annotated-types" }, + { name = "pydantic-core" }, + { name = "typing-extensions" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/69/44/36f1a6e523abc58ae5f928898e4aca2e0ea509b5aa6f6f392a5d882be928/pydantic-2.12.5.tar.gz", hash = "sha256:4d351024c75c0f085a9febbb665ce8c0c6ec5d30e903bdb6394b7ede26aebb49", size = 821591, upload-time = "2025-11-26T15:11:46.471Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5a/87/b70ad306ebb6f9b585f114d0ac2137d792b48be34d732d60e597c2f8465a/pydantic-2.12.5-py3-none-any.whl", hash = "sha256:e561593fccf61e8a20fc46dfc2dfe075b8be7d0188df33f221ad1f0139180f9d", size = 463580, upload-time = "2025-11-26T15:11:44.605Z" }, +] + +[[package]] +name = "pydantic-core" +version = "2.41.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/71/70/23b021c950c2addd24ec408e9ab05d59b035b39d97cdc1130e1bce647bb6/pydantic_core-2.41.5.tar.gz", hash = "sha256:08daa51ea16ad373ffd5e7606252cc32f07bc72b28284b6bc9c6df804816476e", size = 460952, upload-time = "2025-11-04T13:43:49.098Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e8/72/74a989dd9f2084b3d9530b0915fdda64ac48831c30dbf7c72a41a5232db8/pydantic_core-2.41.5-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:a3a52f6156e73e7ccb0f8cced536adccb7042be67cb45f9562e12b319c119da6", size = 2105873, upload-time = "2025-11-04T13:39:31.373Z" }, + { url = "https://files.pythonhosted.org/packages/12/44/37e403fd9455708b3b942949e1d7febc02167662bf1a7da5b78ee1ea2842/pydantic_core-2.41.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7f3bf998340c6d4b0c9a2f02d6a400e51f123b59565d74dc60d252ce888c260b", size = 1899826, upload-time = "2025-11-04T13:39:32.897Z" }, + { url = "https://files.pythonhosted.org/packages/33/7f/1d5cab3ccf44c1935a359d51a8a2a9e1a654b744b5e7f80d41b88d501eec/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:378bec5c66998815d224c9ca994f1e14c0c21cb95d2f52b6021cc0b2a58f2a5a", size = 1917869, upload-time = "2025-11-04T13:39:34.469Z" }, + { url = "https://files.pythonhosted.org/packages/6e/6a/30d94a9674a7fe4f4744052ed6c5e083424510be1e93da5bc47569d11810/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e7b576130c69225432866fe2f4a469a85a54ade141d96fd396dffcf607b558f8", size = 2063890, upload-time = "2025-11-04T13:39:36.053Z" }, + { url = "https://files.pythonhosted.org/packages/50/be/76e5d46203fcb2750e542f32e6c371ffa9b8ad17364cf94bb0818dbfb50c/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6cb58b9c66f7e4179a2d5e0f849c48eff5c1fca560994d6eb6543abf955a149e", size = 2229740, upload-time = "2025-11-04T13:39:37.753Z" }, + { url = "https://files.pythonhosted.org/packages/d3/ee/fed784df0144793489f87db310a6bbf8118d7b630ed07aa180d6067e653a/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:88942d3a3dff3afc8288c21e565e476fc278902ae4d6d134f1eeda118cc830b1", size = 2350021, upload-time = "2025-11-04T13:39:40.94Z" }, + { url = "https://files.pythonhosted.org/packages/c8/be/8fed28dd0a180dca19e72c233cbf58efa36df055e5b9d90d64fd1740b828/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f31d95a179f8d64d90f6831d71fa93290893a33148d890ba15de25642c5d075b", size = 2066378, upload-time = "2025-11-04T13:39:42.523Z" }, + { url = "https://files.pythonhosted.org/packages/b0/3b/698cf8ae1d536a010e05121b4958b1257f0b5522085e335360e53a6b1c8b/pydantic_core-2.41.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c1df3d34aced70add6f867a8cf413e299177e0c22660cc767218373d0779487b", size = 2175761, upload-time = "2025-11-04T13:39:44.553Z" }, + { url = "https://files.pythonhosted.org/packages/b8/ba/15d537423939553116dea94ce02f9c31be0fa9d0b806d427e0308ec17145/pydantic_core-2.41.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:4009935984bd36bd2c774e13f9a09563ce8de4abaa7226f5108262fa3e637284", size = 2146303, upload-time = "2025-11-04T13:39:46.238Z" }, + { url = "https://files.pythonhosted.org/packages/58/7f/0de669bf37d206723795f9c90c82966726a2ab06c336deba4735b55af431/pydantic_core-2.41.5-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:34a64bc3441dc1213096a20fe27e8e128bd3ff89921706e83c0b1ac971276594", size = 2340355, upload-time = "2025-11-04T13:39:48.002Z" }, + { url = "https://files.pythonhosted.org/packages/e5/de/e7482c435b83d7e3c3ee5ee4451f6e8973cff0eb6007d2872ce6383f6398/pydantic_core-2.41.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c9e19dd6e28fdcaa5a1de679aec4141f691023916427ef9bae8584f9c2fb3b0e", size = 2319875, upload-time = "2025-11-04T13:39:49.705Z" }, + { url = "https://files.pythonhosted.org/packages/fe/e6/8c9e81bb6dd7560e33b9053351c29f30c8194b72f2d6932888581f503482/pydantic_core-2.41.5-cp311-cp311-win32.whl", hash = "sha256:2c010c6ded393148374c0f6f0bf89d206bf3217f201faa0635dcd56bd1520f6b", size = 1987549, upload-time = "2025-11-04T13:39:51.842Z" }, + { url = "https://files.pythonhosted.org/packages/11/66/f14d1d978ea94d1bc21fc98fcf570f9542fe55bfcc40269d4e1a21c19bf7/pydantic_core-2.41.5-cp311-cp311-win_amd64.whl", hash = "sha256:76ee27c6e9c7f16f47db7a94157112a2f3a00e958bc626e2f4ee8bec5c328fbe", size = 2011305, upload-time = "2025-11-04T13:39:53.485Z" }, + { url = "https://files.pythonhosted.org/packages/56/d8/0e271434e8efd03186c5386671328154ee349ff0354d83c74f5caaf096ed/pydantic_core-2.41.5-cp311-cp311-win_arm64.whl", hash = "sha256:4bc36bbc0b7584de96561184ad7f012478987882ebf9f9c389b23f432ea3d90f", size = 1972902, upload-time = "2025-11-04T13:39:56.488Z" }, + { url = "https://files.pythonhosted.org/packages/5f/5d/5f6c63eebb5afee93bcaae4ce9a898f3373ca23df3ccaef086d0233a35a7/pydantic_core-2.41.5-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:f41a7489d32336dbf2199c8c0a215390a751c5b014c2c1c5366e817202e9cdf7", size = 2110990, upload-time = "2025-11-04T13:39:58.079Z" }, + { url = "https://files.pythonhosted.org/packages/aa/32/9c2e8ccb57c01111e0fd091f236c7b371c1bccea0fa85247ac55b1e2b6b6/pydantic_core-2.41.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:070259a8818988b9a84a449a2a7337c7f430a22acc0859c6b110aa7212a6d9c0", size = 1896003, upload-time = "2025-11-04T13:39:59.956Z" }, + { url = "https://files.pythonhosted.org/packages/68/b8/a01b53cb0e59139fbc9e4fda3e9724ede8de279097179be4ff31f1abb65a/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e96cea19e34778f8d59fe40775a7a574d95816eb150850a85a7a4c8f4b94ac69", size = 1919200, upload-time = "2025-11-04T13:40:02.241Z" }, + { url = "https://files.pythonhosted.org/packages/38/de/8c36b5198a29bdaade07b5985e80a233a5ac27137846f3bc2d3b40a47360/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ed2e99c456e3fadd05c991f8f437ef902e00eedf34320ba2b0842bd1c3ca3a75", size = 2052578, upload-time = "2025-11-04T13:40:04.401Z" }, + { url = "https://files.pythonhosted.org/packages/00/b5/0e8e4b5b081eac6cb3dbb7e60a65907549a1ce035a724368c330112adfdd/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:65840751b72fbfd82c3c640cff9284545342a4f1eb1586ad0636955b261b0b05", size = 2208504, upload-time = "2025-11-04T13:40:06.072Z" }, + { url = "https://files.pythonhosted.org/packages/77/56/87a61aad59c7c5b9dc8caad5a41a5545cba3810c3e828708b3d7404f6cef/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e536c98a7626a98feb2d3eaf75944ef6f3dbee447e1f841eae16f2f0a72d8ddc", size = 2335816, upload-time = "2025-11-04T13:40:07.835Z" }, + { url = "https://files.pythonhosted.org/packages/0d/76/941cc9f73529988688a665a5c0ecff1112b3d95ab48f81db5f7606f522d3/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eceb81a8d74f9267ef4081e246ffd6d129da5d87e37a77c9bde550cb04870c1c", size = 2075366, upload-time = "2025-11-04T13:40:09.804Z" }, + { url = "https://files.pythonhosted.org/packages/d3/43/ebef01f69baa07a482844faaa0a591bad1ef129253ffd0cdaa9d8a7f72d3/pydantic_core-2.41.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d38548150c39b74aeeb0ce8ee1d8e82696f4a4e16ddc6de7b1d8823f7de4b9b5", size = 2171698, upload-time = "2025-11-04T13:40:12.004Z" }, + { url = "https://files.pythonhosted.org/packages/b1/87/41f3202e4193e3bacfc2c065fab7706ebe81af46a83d3e27605029c1f5a6/pydantic_core-2.41.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:c23e27686783f60290e36827f9c626e63154b82b116d7fe9adba1fda36da706c", size = 2132603, upload-time = "2025-11-04T13:40:13.868Z" }, + { url = "https://files.pythonhosted.org/packages/49/7d/4c00df99cb12070b6bccdef4a195255e6020a550d572768d92cc54dba91a/pydantic_core-2.41.5-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:482c982f814460eabe1d3bb0adfdc583387bd4691ef00b90575ca0d2b6fe2294", size = 2329591, upload-time = "2025-11-04T13:40:15.672Z" }, + { url = "https://files.pythonhosted.org/packages/cc/6a/ebf4b1d65d458f3cda6a7335d141305dfa19bdc61140a884d165a8a1bbc7/pydantic_core-2.41.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:bfea2a5f0b4d8d43adf9d7b8bf019fb46fdd10a2e5cde477fbcb9d1fa08c68e1", size = 2319068, upload-time = "2025-11-04T13:40:17.532Z" }, + { url = "https://files.pythonhosted.org/packages/49/3b/774f2b5cd4192d5ab75870ce4381fd89cf218af999515baf07e7206753f0/pydantic_core-2.41.5-cp312-cp312-win32.whl", hash = "sha256:b74557b16e390ec12dca509bce9264c3bbd128f8a2c376eaa68003d7f327276d", size = 1985908, upload-time = "2025-11-04T13:40:19.309Z" }, + { url = "https://files.pythonhosted.org/packages/86/45/00173a033c801cacf67c190fef088789394feaf88a98a7035b0e40d53dc9/pydantic_core-2.41.5-cp312-cp312-win_amd64.whl", hash = "sha256:1962293292865bca8e54702b08a4f26da73adc83dd1fcf26fbc875b35d81c815", size = 2020145, upload-time = "2025-11-04T13:40:21.548Z" }, + { url = "https://files.pythonhosted.org/packages/f9/22/91fbc821fa6d261b376a3f73809f907cec5ca6025642c463d3488aad22fb/pydantic_core-2.41.5-cp312-cp312-win_arm64.whl", hash = "sha256:1746d4a3d9a794cacae06a5eaaccb4b8643a131d45fbc9af23e353dc0a5ba5c3", size = 1976179, upload-time = "2025-11-04T13:40:23.393Z" }, + { url = "https://files.pythonhosted.org/packages/11/72/90fda5ee3b97e51c494938a4a44c3a35a9c96c19bba12372fb9c634d6f57/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-macosx_10_12_x86_64.whl", hash = "sha256:b96d5f26b05d03cc60f11a7761a5ded1741da411e7fe0909e27a5e6a0cb7b034", size = 2115441, upload-time = "2025-11-04T13:42:39.557Z" }, + { url = "https://files.pythonhosted.org/packages/1f/53/8942f884fa33f50794f119012dc6a1a02ac43a56407adaac20463df8e98f/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:634e8609e89ceecea15e2d61bc9ac3718caaaa71963717bf3c8f38bfde64242c", size = 1930291, upload-time = "2025-11-04T13:42:42.169Z" }, + { url = "https://files.pythonhosted.org/packages/79/c8/ecb9ed9cd942bce09fc888ee960b52654fbdbede4ba6c2d6e0d3b1d8b49c/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:93e8740d7503eb008aa2df04d3b9735f845d43ae845e6dcd2be0b55a2da43cd2", size = 1948632, upload-time = "2025-11-04T13:42:44.564Z" }, + { url = "https://files.pythonhosted.org/packages/2e/1b/687711069de7efa6af934e74f601e2a4307365e8fdc404703afc453eab26/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f15489ba13d61f670dcc96772e733aad1a6f9c429cc27574c6cdaed82d0146ad", size = 2138905, upload-time = "2025-11-04T13:42:47.156Z" }, + { url = "https://files.pythonhosted.org/packages/09/32/59b0c7e63e277fa7911c2fc70ccfb45ce4b98991e7ef37110663437005af/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:7da7087d756b19037bc2c06edc6c170eeef3c3bafcb8f532ff17d64dc427adfd", size = 2110495, upload-time = "2025-11-04T13:42:49.689Z" }, + { url = "https://files.pythonhosted.org/packages/aa/81/05e400037eaf55ad400bcd318c05bb345b57e708887f07ddb2d20e3f0e98/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:aabf5777b5c8ca26f7824cb4a120a740c9588ed58df9b2d196ce92fba42ff8dc", size = 1915388, upload-time = "2025-11-04T13:42:52.215Z" }, + { url = "https://files.pythonhosted.org/packages/6e/0d/e3549b2399f71d56476b77dbf3cf8937cec5cd70536bdc0e374a421d0599/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c007fe8a43d43b3969e8469004e9845944f1a80e6acd47c150856bb87f230c56", size = 1942879, upload-time = "2025-11-04T13:42:56.483Z" }, + { url = "https://files.pythonhosted.org/packages/f7/07/34573da085946b6a313d7c42f82f16e8920bfd730665de2d11c0c37a74b5/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:76d0819de158cd855d1cbb8fcafdf6f5cf1eb8e470abe056d5d161106e38062b", size = 2139017, upload-time = "2025-11-04T13:42:59.471Z" }, + { url = "https://files.pythonhosted.org/packages/5f/9b/1b3f0e9f9305839d7e84912f9e8bfbd191ed1b1ef48083609f0dabde978c/pydantic_core-2.41.5-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:b2379fa7ed44ddecb5bfe4e48577d752db9fc10be00a6b7446e9663ba143de26", size = 2101980, upload-time = "2025-11-04T13:43:25.97Z" }, + { url = "https://files.pythonhosted.org/packages/a4/ed/d71fefcb4263df0da6a85b5d8a7508360f2f2e9b3bf5814be9c8bccdccc1/pydantic_core-2.41.5-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:266fb4cbf5e3cbd0b53669a6d1b039c45e3ce651fd5442eff4d07c2cc8d66808", size = 1923865, upload-time = "2025-11-04T13:43:28.763Z" }, + { url = "https://files.pythonhosted.org/packages/ce/3a/626b38db460d675f873e4444b4bb030453bbe7b4ba55df821d026a0493c4/pydantic_core-2.41.5-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58133647260ea01e4d0500089a8c4f07bd7aa6ce109682b1426394988d8aaacc", size = 2134256, upload-time = "2025-11-04T13:43:31.71Z" }, + { url = "https://files.pythonhosted.org/packages/83/d9/8412d7f06f616bbc053d30cb4e5f76786af3221462ad5eee1f202021eb4e/pydantic_core-2.41.5-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:287dad91cfb551c363dc62899a80e9e14da1f0e2b6ebde82c806612ca2a13ef1", size = 2174762, upload-time = "2025-11-04T13:43:34.744Z" }, + { url = "https://files.pythonhosted.org/packages/55/4c/162d906b8e3ba3a99354e20faa1b49a85206c47de97a639510a0e673f5da/pydantic_core-2.41.5-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:03b77d184b9eb40240ae9fd676ca364ce1085f203e1b1256f8ab9984dca80a84", size = 2143141, upload-time = "2025-11-04T13:43:37.701Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f2/f11dd73284122713f5f89fc940f370d035fa8e1e078d446b3313955157fe/pydantic_core-2.41.5-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:a668ce24de96165bb239160b3d854943128f4334822900534f2fe947930e5770", size = 2330317, upload-time = "2025-11-04T13:43:40.406Z" }, + { url = "https://files.pythonhosted.org/packages/88/9d/b06ca6acfe4abb296110fb1273a4d848a0bfb2ff65f3ee92127b3244e16b/pydantic_core-2.41.5-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f14f8f046c14563f8eb3f45f499cc658ab8d10072961e07225e507adb700e93f", size = 2316992, upload-time = "2025-11-04T13:43:43.602Z" }, + { url = "https://files.pythonhosted.org/packages/36/c7/cfc8e811f061c841d7990b0201912c3556bfeb99cdcb7ed24adc8d6f8704/pydantic_core-2.41.5-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:56121965f7a4dc965bff783d70b907ddf3d57f6eba29b6d2e5dabfaf07799c51", size = 2145302, upload-time = "2025-11-04T13:43:46.64Z" }, +] + +[[package]] +name = "pydantic-settings" +version = "2.12.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pydantic" }, + { name = "python-dotenv" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/43/4b/ac7e0aae12027748076d72a8764ff1c9d82ca75a7a52622e67ed3f765c54/pydantic_settings-2.12.0.tar.gz", hash = "sha256:005538ef951e3c2a68e1c08b292b5f2e71490def8589d4221b95dab00dafcfd0", size = 194184, upload-time = "2025-11-10T14:25:47.013Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c1/60/5d4751ba3f4a40a6891f24eec885f51afd78d208498268c734e256fb13c4/pydantic_settings-2.12.0-py3-none-any.whl", hash = "sha256:fddb9fd99a5b18da837b29710391e945b1e30c135477f484084ee513adb93809", size = 51880, upload-time = "2025-11-10T14:25:45.546Z" }, +] + +[[package]] +name = "pygments" +version = "2.19.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887", size = 4968631, upload-time = "2025-06-21T13:39:12.283Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b", size = 1225217, upload-time = "2025-06-21T13:39:07.939Z" }, +] + +[[package]] +name = "pyjwt" +version = "2.10.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e7/46/bd74733ff231675599650d3e47f361794b22ef3e3770998dda30d3b63726/pyjwt-2.10.1.tar.gz", hash = "sha256:3cc5772eb20009233caf06e9d8a0577824723b44e6648ee0a2aedb6cf9381953", size = 87785, upload-time = "2024-11-28T03:43:29.933Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/61/ad/689f02752eeec26aed679477e80e632ef1b682313be70793d798c1d5fc8f/PyJWT-2.10.1-py3-none-any.whl", hash = "sha256:dcdd193e30abefd5debf142f9adfcdd2b58004e644f25406ffaebd50bd98dacb", size = 22997, upload-time = "2024-11-28T03:43:27.893Z" }, +] + +[package.optional-dependencies] +crypto = [ + { name = "cryptography" }, +] + +[[package]] +name = "pymupdf" +version = "1.26.7" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/48/d6/09b28f027b510838559f7748807192149c419b30cb90e6d5f0cf916dc9dc/pymupdf-1.26.7.tar.gz", hash = "sha256:71add8bdc8eb1aaa207c69a13400693f06ad9b927bea976f5d5ab9df0bb489c3", size = 84327033, upload-time = "2025-12-11T21:48:50.694Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/94/35/cd74cea1787b2247702ef8522186bdef32e9cb30a099e6bb864627ef6045/pymupdf-1.26.7-cp310-abi3-macosx_10_9_x86_64.whl", hash = "sha256:07085718dfdae5ab83b05eb5eb397f863bcc538fe05135318a01ea353e7a1353", size = 23179369, upload-time = "2025-12-11T21:47:21.587Z" }, + { url = "https://files.pythonhosted.org/packages/72/74/448b6172927c829c6a3fba80078d7b0a016ebbe2c9ee528821f5ea21677a/pymupdf-1.26.7-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:31aa9c8377ea1eea02934b92f4dcf79fb2abba0bf41f8a46d64c3e31546a3c02", size = 22470101, upload-time = "2025-12-11T21:47:37.105Z" }, + { url = "https://files.pythonhosted.org/packages/65/e7/47af26f3ac76be7ac3dd4d6cc7ee105948a8355d774e5ca39857bf91c11c/pymupdf-1.26.7-cp310-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:e419b609996434a14a80fa060adec72c434a1cca6a511ec54db9841bc5d51b3c", size = 23502486, upload-time = "2025-12-12T09:51:25.824Z" }, + { url = "https://files.pythonhosted.org/packages/2a/6b/3de1714d734ff949be1e90a22375d0598d3540b22ae73eb85c2d7d1f36a9/pymupdf-1.26.7-cp310-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:69dfc78f206a96e5b3ac22741263ebab945fdf51f0dbe7c5757c3511b23d9d72", size = 24115727, upload-time = "2025-12-11T21:47:51.274Z" }, + { url = "https://files.pythonhosted.org/packages/62/9b/f86224847949577a523be2207315ae0fd3155b5d909cd66c274d095349a3/pymupdf-1.26.7-cp310-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:1d5106f46e1ca0d64d46bd51892372a4f82076bdc14a9678d33d630702abca36", size = 24324386, upload-time = "2025-12-12T14:58:45.483Z" }, + { url = "https://files.pythonhosted.org/packages/85/8e/a117d39092ca645fde8b903f4a941d9aa75b370a67b4f1f435f56393dc5a/pymupdf-1.26.7-cp310-abi3-win32.whl", hash = "sha256:7c9645b6f5452629c747690190350213d3e5bbdb6b2eca227d82702b327f6eee", size = 17203888, upload-time = "2025-12-12T13:59:57.613Z" }, + { url = "https://files.pythonhosted.org/packages/dd/c3/d0047678146c294469c33bae167c8ace337deafb736b0bf97b9bc481aa65/pymupdf-1.26.7-cp310-abi3-win_amd64.whl", hash = "sha256:425b1befe40d41b72eb0fe211711c7ae334db5eb60307e9dd09066ed060cceba", size = 18405952, upload-time = "2025-12-11T21:48:02.947Z" }, +] + +[[package]] +name = "pypdf" +version = "6.4.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bd/c2/b59b02ff7f2dc006799d2c5dc3a8877686890abdd915176ef799070edf17/pypdf-6.4.2.tar.gz", hash = "sha256:c466ff1272ffb4712c2348d2bbc3019bc93f1c62ccfaf50808e3b9f13c3dc527", size = 5275502, upload-time = "2025-12-14T14:30:58.58Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/38/99/3147435e15ccd97c0451efc3d13495dc22602e9887f81e64f1b135bae821/pypdf-6.4.2-py3-none-any.whl", hash = "sha256:014dcff867fd99fc0b6fc90ed1f7e1347ef2317ae038a489c2caa64106d268f4", size = 328212, upload-time = "2025-12-14T14:30:56.701Z" }, +] + +[[package]] +name = "pytest" +version = "8.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "iniconfig" }, + { name = "packaging" }, + { name = "pluggy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/09/9d/78b3785134306efe9329f40815af45b9215068d6ae4747ec0bc91ff1f4aa/pytest-8.2.0.tar.gz", hash = "sha256:d507d4482197eac0ba2bae2e9babf0672eb333017bcedaa5fb1a3d42c1174b3f", size = 1422883, upload-time = "2024-04-27T23:34:55.027Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c4/43/6b1debd95ecdf001bc46789a933f658da3f9738c65f32db3f4e8f2a4ca97/pytest-8.2.0-py3-none-any.whl", hash = "sha256:1733f0620f6cda4095bbf0d9ff8022486e91892245bb9e7d5542c018f612f233", size = 339229, upload-time = "2024-04-27T23:34:52.413Z" }, +] + +[[package]] +name = "pytest-asyncio" +version = "0.23.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pytest" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/cd/ef/80107b9e939875ad613c705d99d91e4510dcf5fed29613ac9aecbcba0a8d/pytest-asyncio-0.23.6.tar.gz", hash = "sha256:ffe523a89c1c222598c76856e76852b787504ddb72dd5d9b6617ffa8aa2cde5f", size = 46203, upload-time = "2024-03-19T07:17:34.888Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e0/c9/de22c040d4c821c6c797ca1d720f1f4b2f4293d5757e811c62ae544496c4/pytest_asyncio-0.23.6-py3-none-any.whl", hash = "sha256:68516fdd1018ac57b846c9846b954f0393b26f094764a28c955eabb0536a4e8a", size = 17552, upload-time = "2024-03-19T07:17:32.951Z" }, +] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432, upload-time = "2024-03-01T18:36:20.211Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload-time = "2024-03-01T18:36:18.57Z" }, +] + +[[package]] +name = "python-dotenv" +version = "1.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f0/26/19cadc79a718c5edbec86fd4919a6b6d3f681039a2f6d66d14be94e75fb9/python_dotenv-1.2.1.tar.gz", hash = "sha256:42667e897e16ab0d66954af0e60a9caa94f0fd4ecf3aaf6d2d260eec1aa36ad6", size = 44221, upload-time = "2025-10-26T15:12:10.434Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/14/1b/a298b06749107c305e1fe0f814c6c74aea7b2f1e10989cb30f544a1b3253/python_dotenv-1.2.1-py3-none-any.whl", hash = "sha256:b81ee9561e9ca4004139c6cbba3a238c32b03e4894671e181b671e8cb8425d61", size = 21230, upload-time = "2025-10-26T15:12:09.109Z" }, +] + +[[package]] +name = "python-iso639" +version = "2025.11.16" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a1/3b/3e07aadeeb7bbb2574d6aa6ccacbc58b17bd2b1fb6c7196bf96ab0e45129/python_iso639-2025.11.16.tar.gz", hash = "sha256:aabe941267898384415a509f5236d7cfc191198c84c5c6f73dac73d9783f5169", size = 174186, upload-time = "2025-11-16T21:53:37.031Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b5/2d/563849c31e58eb2e273fa0c391a7d9987db32f4d9152fe6ecdac0a8ffe93/python_iso639-2025.11.16-py3-none-any.whl", hash = "sha256:65f6ac6c6d8e8207f6175f8bf7fff7db486c6dc5c1d8866c2b77d2a923370896", size = 167818, upload-time = "2025-11-16T21:53:35.36Z" }, +] + +[[package]] +name = "python-magic" +version = "0.4.27" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/da/db/0b3e28ac047452d079d375ec6798bf76a036a08182dbb39ed38116a49130/python-magic-0.4.27.tar.gz", hash = "sha256:c1ba14b08e4a5f5c31a302b7721239695b2f0f058d125bd5ce1ee36b9d9d3c3b", size = 14677, upload-time = "2022-06-07T20:16:59.508Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6c/73/9f872cb81fc5c3bb48f7227872c28975f998f3e7c2b1c16e95e6432bbb90/python_magic-0.4.27-py2.py3-none-any.whl", hash = "sha256:c212960ad306f700aa0d01e5d7a325d20548ff97eb9920dcd29513174f0294d3", size = 13840, upload-time = "2022-06-07T20:16:57.763Z" }, +] + +[[package]] +name = "python-multipart" +version = "0.0.21" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/78/96/804520d0850c7db98e5ccb70282e29208723f0964e88ffd9d0da2f52ea09/python_multipart-0.0.21.tar.gz", hash = "sha256:7137ebd4d3bbf70ea1622998f902b97a29434a9e8dc40eb203bbcf7c2a2cba92", size = 37196, upload-time = "2025-12-17T09:24:22.446Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/aa/76/03af049af4dcee5d27442f71b6924f01f3efb5d2bd34f23fcd563f2cc5f5/python_multipart-0.0.21-py3-none-any.whl", hash = "sha256:cf7a6713e01c87aa35387f4774e812c4361150938d20d232800f75ffcf266090", size = 24541, upload-time = "2025-12-17T09:24:21.153Z" }, +] + +[[package]] +name = "pytz" +version = "2025.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f8/bf/abbd3cdfb8fbc7fb3d4d38d320f2441b1e7cbe29be4f23797b4a2b5d8aac/pytz-2025.2.tar.gz", hash = "sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3", size = 320884, upload-time = "2025-03-25T02:25:00.538Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/81/c4/34e93fe5f5429d7570ec1fa436f1986fb1f00c3e0f43a589fe2bbcd22c3f/pytz-2025.2-py2.py3-none-any.whl", hash = "sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00", size = 509225, upload-time = "2025-03-25T02:24:58.468Z" }, +] + +[[package]] +name = "pywin32" +version = "311" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7c/af/449a6a91e5d6db51420875c54f6aff7c97a86a3b13a0b4f1a5c13b988de3/pywin32-311-cp311-cp311-win32.whl", hash = "sha256:184eb5e436dea364dcd3d2316d577d625c0351bf237c4e9a5fabbcfa5a58b151", size = 8697031, upload-time = "2025-07-14T20:13:13.266Z" }, + { url = "https://files.pythonhosted.org/packages/51/8f/9bb81dd5bb77d22243d33c8397f09377056d5c687aa6d4042bea7fbf8364/pywin32-311-cp311-cp311-win_amd64.whl", hash = "sha256:3ce80b34b22b17ccbd937a6e78e7225d80c52f5ab9940fe0506a1a16f3dab503", size = 9508308, upload-time = "2025-07-14T20:13:15.147Z" }, + { url = "https://files.pythonhosted.org/packages/44/7b/9c2ab54f74a138c491aba1b1cd0795ba61f144c711daea84a88b63dc0f6c/pywin32-311-cp311-cp311-win_arm64.whl", hash = "sha256:a733f1388e1a842abb67ffa8e7aad0e70ac519e09b0f6a784e65a136ec7cefd2", size = 8703930, upload-time = "2025-07-14T20:13:16.945Z" }, + { url = "https://files.pythonhosted.org/packages/e7/ab/01ea1943d4eba0f850c3c61e78e8dd59757ff815ff3ccd0a84de5f541f42/pywin32-311-cp312-cp312-win32.whl", hash = "sha256:750ec6e621af2b948540032557b10a2d43b0cee2ae9758c54154d711cc852d31", size = 8706543, upload-time = "2025-07-14T20:13:20.765Z" }, + { url = "https://files.pythonhosted.org/packages/d1/a8/a0e8d07d4d051ec7502cd58b291ec98dcc0c3fff027caad0470b72cfcc2f/pywin32-311-cp312-cp312-win_amd64.whl", hash = "sha256:b8c095edad5c211ff31c05223658e71bf7116daa0ecf3ad85f3201ea3190d067", size = 9495040, upload-time = "2025-07-14T20:13:22.543Z" }, + { url = "https://files.pythonhosted.org/packages/ba/3a/2ae996277b4b50f17d61f0603efd8253cb2d79cc7ae159468007b586396d/pywin32-311-cp312-cp312-win_arm64.whl", hash = "sha256:e286f46a9a39c4a18b319c28f59b61de793654af2f395c102b4f819e584b5852", size = 8710102, upload-time = "2025-07-14T20:13:24.682Z" }, +] + +[[package]] +name = "pyyaml" +version = "6.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6d/16/a95b6757765b7b031c9374925bb718d55e0a9ba8a1b6a12d25962ea44347/pyyaml-6.0.3-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:44edc647873928551a01e7a563d7452ccdebee747728c1080d881d68af7b997e", size = 185826, upload-time = "2025-09-25T21:31:58.655Z" }, + { url = "https://files.pythonhosted.org/packages/16/19/13de8e4377ed53079ee996e1ab0a9c33ec2faf808a4647b7b4c0d46dd239/pyyaml-6.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:652cb6edd41e718550aad172851962662ff2681490a8a711af6a4d288dd96824", size = 175577, upload-time = "2025-09-25T21:32:00.088Z" }, + { url = "https://files.pythonhosted.org/packages/0c/62/d2eb46264d4b157dae1275b573017abec435397aa59cbcdab6fc978a8af4/pyyaml-6.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:10892704fc220243f5305762e276552a0395f7beb4dbf9b14ec8fd43b57f126c", size = 775556, upload-time = "2025-09-25T21:32:01.31Z" }, + { url = "https://files.pythonhosted.org/packages/10/cb/16c3f2cf3266edd25aaa00d6c4350381c8b012ed6f5276675b9eba8d9ff4/pyyaml-6.0.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:850774a7879607d3a6f50d36d04f00ee69e7fc816450e5f7e58d7f17f1ae5c00", size = 882114, upload-time = "2025-09-25T21:32:03.376Z" }, + { url = "https://files.pythonhosted.org/packages/71/60/917329f640924b18ff085ab889a11c763e0b573da888e8404ff486657602/pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b8bb0864c5a28024fac8a632c443c87c5aa6f215c0b126c449ae1a150412f31d", size = 806638, upload-time = "2025-09-25T21:32:04.553Z" }, + { url = "https://files.pythonhosted.org/packages/dd/6f/529b0f316a9fd167281a6c3826b5583e6192dba792dd55e3203d3f8e655a/pyyaml-6.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1d37d57ad971609cf3c53ba6a7e365e40660e3be0e5175fa9f2365a379d6095a", size = 767463, upload-time = "2025-09-25T21:32:06.152Z" }, + { url = "https://files.pythonhosted.org/packages/f2/6a/b627b4e0c1dd03718543519ffb2f1deea4a1e6d42fbab8021936a4d22589/pyyaml-6.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:37503bfbfc9d2c40b344d06b2199cf0e96e97957ab1c1b546fd4f87e53e5d3e4", size = 794986, upload-time = "2025-09-25T21:32:07.367Z" }, + { url = "https://files.pythonhosted.org/packages/45/91/47a6e1c42d9ee337c4839208f30d9f09caa9f720ec7582917b264defc875/pyyaml-6.0.3-cp311-cp311-win32.whl", hash = "sha256:8098f252adfa6c80ab48096053f512f2321f0b998f98150cea9bd23d83e1467b", size = 142543, upload-time = "2025-09-25T21:32:08.95Z" }, + { url = "https://files.pythonhosted.org/packages/da/e3/ea007450a105ae919a72393cb06f122f288ef60bba2dc64b26e2646fa315/pyyaml-6.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:9f3bfb4965eb874431221a3ff3fdcddc7e74e3b07799e0e84ca4a0f867d449bf", size = 158763, upload-time = "2025-09-25T21:32:09.96Z" }, + { url = "https://files.pythonhosted.org/packages/d1/33/422b98d2195232ca1826284a76852ad5a86fe23e31b009c9886b2d0fb8b2/pyyaml-6.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7f047e29dcae44602496db43be01ad42fc6f1cc0d8cd6c83d342306c32270196", size = 182063, upload-time = "2025-09-25T21:32:11.445Z" }, + { url = "https://files.pythonhosted.org/packages/89/a0/6cf41a19a1f2f3feab0e9c0b74134aa2ce6849093d5517a0c550fe37a648/pyyaml-6.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fc09d0aa354569bc501d4e787133afc08552722d3ab34836a80547331bb5d4a0", size = 173973, upload-time = "2025-09-25T21:32:12.492Z" }, + { url = "https://files.pythonhosted.org/packages/ed/23/7a778b6bd0b9a8039df8b1b1d80e2e2ad78aa04171592c8a5c43a56a6af4/pyyaml-6.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9149cad251584d5fb4981be1ecde53a1ca46c891a79788c0df828d2f166bda28", size = 775116, upload-time = "2025-09-25T21:32:13.652Z" }, + { url = "https://files.pythonhosted.org/packages/65/30/d7353c338e12baef4ecc1b09e877c1970bd3382789c159b4f89d6a70dc09/pyyaml-6.0.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5fdec68f91a0c6739b380c83b951e2c72ac0197ace422360e6d5a959d8d97b2c", size = 844011, upload-time = "2025-09-25T21:32:15.21Z" }, + { url = "https://files.pythonhosted.org/packages/8b/9d/b3589d3877982d4f2329302ef98a8026e7f4443c765c46cfecc8858c6b4b/pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ba1cc08a7ccde2d2ec775841541641e4548226580ab850948cbfda66a1befcdc", size = 807870, upload-time = "2025-09-25T21:32:16.431Z" }, + { url = "https://files.pythonhosted.org/packages/05/c0/b3be26a015601b822b97d9149ff8cb5ead58c66f981e04fedf4e762f4bd4/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8dc52c23056b9ddd46818a57b78404882310fb473d63f17b07d5c40421e47f8e", size = 761089, upload-time = "2025-09-25T21:32:17.56Z" }, + { url = "https://files.pythonhosted.org/packages/be/8e/98435a21d1d4b46590d5459a22d88128103f8da4c2d4cb8f14f2a96504e1/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:41715c910c881bc081f1e8872880d3c650acf13dfa8214bad49ed4cede7c34ea", size = 790181, upload-time = "2025-09-25T21:32:18.834Z" }, + { url = "https://files.pythonhosted.org/packages/74/93/7baea19427dcfbe1e5a372d81473250b379f04b1bd3c4c5ff825e2327202/pyyaml-6.0.3-cp312-cp312-win32.whl", hash = "sha256:96b533f0e99f6579b3d4d4995707cf36df9100d67e0c8303a0c55b27b5f99bc5", size = 137658, upload-time = "2025-09-25T21:32:20.209Z" }, + { url = "https://files.pythonhosted.org/packages/86/bf/899e81e4cce32febab4fb42bb97dcdf66bc135272882d1987881a4b519e9/pyyaml-6.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:5fcd34e47f6e0b794d17de1b4ff496c00986e1c83f7ab2fb8fcfe9616ff7477b", size = 154003, upload-time = "2025-09-25T21:32:21.167Z" }, + { url = "https://files.pythonhosted.org/packages/1a/08/67bd04656199bbb51dbed1439b7f27601dfb576fb864099c7ef0c3e55531/pyyaml-6.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:64386e5e707d03a7e172c0701abfb7e10f0fb753ee1d773128192742712a98fd", size = 140344, upload-time = "2025-09-25T21:32:22.617Z" }, +] + +[[package]] +name = "pyzmq" +version = "27.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi", marker = "implementation_name == 'pypy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/04/0b/3c9baedbdf613ecaa7aa07027780b8867f57b6293b6ee50de316c9f3222b/pyzmq-27.1.0.tar.gz", hash = "sha256:ac0765e3d44455adb6ddbf4417dcce460fc40a05978c08efdf2948072f6db540", size = 281750, upload-time = "2025-09-08T23:10:18.157Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/06/5d/305323ba86b284e6fcb0d842d6adaa2999035f70f8c38a9b6d21ad28c3d4/pyzmq-27.1.0-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:226b091818d461a3bef763805e75685e478ac17e9008f49fce2d3e52b3d58b86", size = 1333328, upload-time = "2025-09-08T23:07:45.946Z" }, + { url = "https://files.pythonhosted.org/packages/bd/a0/fc7e78a23748ad5443ac3275943457e8452da67fda347e05260261108cbc/pyzmq-27.1.0-cp311-cp311-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:0790a0161c281ca9723f804871b4027f2e8b5a528d357c8952d08cd1a9c15581", size = 908803, upload-time = "2025-09-08T23:07:47.551Z" }, + { url = "https://files.pythonhosted.org/packages/7e/22/37d15eb05f3bdfa4abea6f6d96eb3bb58585fbd3e4e0ded4e743bc650c97/pyzmq-27.1.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c895a6f35476b0c3a54e3eb6ccf41bf3018de937016e6e18748317f25d4e925f", size = 668836, upload-time = "2025-09-08T23:07:49.436Z" }, + { url = "https://files.pythonhosted.org/packages/b1/c4/2a6fe5111a01005fc7af3878259ce17684fabb8852815eda6225620f3c59/pyzmq-27.1.0-cp311-cp311-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5bbf8d3630bf96550b3be8e1fc0fea5cbdc8d5466c1192887bd94869da17a63e", size = 857038, upload-time = "2025-09-08T23:07:51.234Z" }, + { url = "https://files.pythonhosted.org/packages/cb/eb/bfdcb41d0db9cd233d6fb22dc131583774135505ada800ebf14dfb0a7c40/pyzmq-27.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:15c8bd0fe0dabf808e2d7a681398c4e5ded70a551ab47482067a572c054c8e2e", size = 1657531, upload-time = "2025-09-08T23:07:52.795Z" }, + { url = "https://files.pythonhosted.org/packages/ab/21/e3180ca269ed4a0de5c34417dfe71a8ae80421198be83ee619a8a485b0c7/pyzmq-27.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:bafcb3dd171b4ae9f19ee6380dfc71ce0390fefaf26b504c0e5f628d7c8c54f2", size = 2034786, upload-time = "2025-09-08T23:07:55.047Z" }, + { url = "https://files.pythonhosted.org/packages/3b/b1/5e21d0b517434b7f33588ff76c177c5a167858cc38ef740608898cd329f2/pyzmq-27.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e829529fcaa09937189178115c49c504e69289abd39967cd8a4c215761373394", size = 1894220, upload-time = "2025-09-08T23:07:57.172Z" }, + { url = "https://files.pythonhosted.org/packages/03/f2/44913a6ff6941905efc24a1acf3d3cb6146b636c546c7406c38c49c403d4/pyzmq-27.1.0-cp311-cp311-win32.whl", hash = "sha256:6df079c47d5902af6db298ec92151db82ecb557af663098b92f2508c398bb54f", size = 567155, upload-time = "2025-09-08T23:07:59.05Z" }, + { url = "https://files.pythonhosted.org/packages/23/6d/d8d92a0eb270a925c9b4dd039c0b4dc10abc2fcbc48331788824ef113935/pyzmq-27.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:190cbf120fbc0fc4957b56866830def56628934a9d112aec0e2507aa6a032b97", size = 633428, upload-time = "2025-09-08T23:08:00.663Z" }, + { url = "https://files.pythonhosted.org/packages/ae/14/01afebc96c5abbbd713ecfc7469cfb1bc801c819a74ed5c9fad9a48801cb/pyzmq-27.1.0-cp311-cp311-win_arm64.whl", hash = "sha256:eca6b47df11a132d1745eb3b5b5e557a7dae2c303277aa0e69c6ba91b8736e07", size = 559497, upload-time = "2025-09-08T23:08:02.15Z" }, + { url = "https://files.pythonhosted.org/packages/92/e7/038aab64a946d535901103da16b953c8c9cc9c961dadcbf3609ed6428d23/pyzmq-27.1.0-cp312-abi3-macosx_10_15_universal2.whl", hash = "sha256:452631b640340c928fa343801b0d07eb0c3789a5ffa843f6e1a9cee0ba4eb4fc", size = 1306279, upload-time = "2025-09-08T23:08:03.807Z" }, + { url = "https://files.pythonhosted.org/packages/e8/5e/c3c49fdd0f535ef45eefcc16934648e9e59dace4a37ee88fc53f6cd8e641/pyzmq-27.1.0-cp312-abi3-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:1c179799b118e554b66da67d88ed66cd37a169f1f23b5d9f0a231b4e8d44a113", size = 895645, upload-time = "2025-09-08T23:08:05.301Z" }, + { url = "https://files.pythonhosted.org/packages/f8/e5/b0b2504cb4e903a74dcf1ebae157f9e20ebb6ea76095f6cfffea28c42ecd/pyzmq-27.1.0-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3837439b7f99e60312f0c926a6ad437b067356dc2bc2ec96eb395fd0fe804233", size = 652574, upload-time = "2025-09-08T23:08:06.828Z" }, + { url = "https://files.pythonhosted.org/packages/f8/9b/c108cdb55560eaf253f0cbdb61b29971e9fb34d9c3499b0e96e4e60ed8a5/pyzmq-27.1.0-cp312-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:43ad9a73e3da1fab5b0e7e13402f0b2fb934ae1c876c51d0afff0e7c052eca31", size = 840995, upload-time = "2025-09-08T23:08:08.396Z" }, + { url = "https://files.pythonhosted.org/packages/c2/bb/b79798ca177b9eb0825b4c9998c6af8cd2a7f15a6a1a4272c1d1a21d382f/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:0de3028d69d4cdc475bfe47a6128eb38d8bc0e8f4d69646adfbcd840facbac28", size = 1642070, upload-time = "2025-09-08T23:08:09.989Z" }, + { url = "https://files.pythonhosted.org/packages/9c/80/2df2e7977c4ede24c79ae39dcef3899bfc5f34d1ca7a5b24f182c9b7a9ca/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_i686.whl", hash = "sha256:cf44a7763aea9298c0aa7dbf859f87ed7012de8bda0f3977b6fb1d96745df856", size = 2021121, upload-time = "2025-09-08T23:08:11.907Z" }, + { url = "https://files.pythonhosted.org/packages/46/bd/2d45ad24f5f5ae7e8d01525eb76786fa7557136555cac7d929880519e33a/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:f30f395a9e6fbca195400ce833c731e7b64c3919aa481af4d88c3759e0cb7496", size = 1878550, upload-time = "2025-09-08T23:08:13.513Z" }, + { url = "https://files.pythonhosted.org/packages/e6/2f/104c0a3c778d7c2ab8190e9db4f62f0b6957b53c9d87db77c284b69f33ea/pyzmq-27.1.0-cp312-abi3-win32.whl", hash = "sha256:250e5436a4ba13885494412b3da5d518cd0d3a278a1ae640e113c073a5f88edd", size = 559184, upload-time = "2025-09-08T23:08:15.163Z" }, + { url = "https://files.pythonhosted.org/packages/fc/7f/a21b20d577e4100c6a41795842028235998a643b1ad406a6d4163ea8f53e/pyzmq-27.1.0-cp312-abi3-win_amd64.whl", hash = "sha256:9ce490cf1d2ca2ad84733aa1d69ce6855372cb5ce9223802450c9b2a7cba0ccf", size = 619480, upload-time = "2025-09-08T23:08:17.192Z" }, + { url = "https://files.pythonhosted.org/packages/78/c2/c012beae5f76b72f007a9e91ee9401cb88c51d0f83c6257a03e785c81cc2/pyzmq-27.1.0-cp312-abi3-win_arm64.whl", hash = "sha256:75a2f36223f0d535a0c919e23615fc85a1e23b71f40c7eb43d7b1dedb4d8f15f", size = 552993, upload-time = "2025-09-08T23:08:18.926Z" }, + { url = "https://files.pythonhosted.org/packages/4c/c6/c4dcdecdbaa70969ee1fdced6d7b8f60cfabe64d25361f27ac4665a70620/pyzmq-27.1.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:18770c8d3563715387139060d37859c02ce40718d1faf299abddcdcc6a649066", size = 836265, upload-time = "2025-09-08T23:09:49.376Z" }, + { url = "https://files.pythonhosted.org/packages/3e/79/f38c92eeaeb03a2ccc2ba9866f0439593bb08c5e3b714ac1d553e5c96e25/pyzmq-27.1.0-pp311-pypy311_pp73-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:ac25465d42f92e990f8d8b0546b01c391ad431c3bf447683fdc40565941d0604", size = 800208, upload-time = "2025-09-08T23:09:51.073Z" }, + { url = "https://files.pythonhosted.org/packages/49/0e/3f0d0d335c6b3abb9b7b723776d0b21fa7f3a6c819a0db6097059aada160/pyzmq-27.1.0-pp311-pypy311_pp73-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:53b40f8ae006f2734ee7608d59ed661419f087521edbfc2149c3932e9c14808c", size = 567747, upload-time = "2025-09-08T23:09:52.698Z" }, + { url = "https://files.pythonhosted.org/packages/a1/cf/f2b3784d536250ffd4be70e049f3b60981235d70c6e8ce7e3ef21e1adb25/pyzmq-27.1.0-pp311-pypy311_pp73-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f605d884e7c8be8fe1aa94e0a783bf3f591b84c24e4bc4f3e7564c82ac25e271", size = 747371, upload-time = "2025-09-08T23:09:54.563Z" }, + { url = "https://files.pythonhosted.org/packages/01/1b/5dbe84eefc86f48473947e2f41711aded97eecef1231f4558f1f02713c12/pyzmq-27.1.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:c9f7f6e13dff2e44a6afeaf2cf54cee5929ad64afaf4d40b50f93c58fc687355", size = 544862, upload-time = "2025-09-08T23:09:56.509Z" }, +] + +[[package]] +name = "rapidfuzz" +version = "3.14.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d3/28/9d808fe62375b9aab5ba92fa9b29371297b067c2790b2d7cda648b1e2f8d/rapidfuzz-3.14.3.tar.gz", hash = "sha256:2491937177868bc4b1e469087601d53f925e8d270ccc21e07404b4b5814b7b5f", size = 57863900, upload-time = "2025-11-01T11:54:52.321Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/76/25/5b0a33ad3332ee1213068c66f7c14e9e221be90bab434f0cb4defa9d6660/rapidfuzz-3.14.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:dea2d113e260a5da0c4003e0a5e9fdf24a9dc2bb9eaa43abd030a1e46ce7837d", size = 1953885, upload-time = "2025-11-01T11:52:47.75Z" }, + { url = "https://files.pythonhosted.org/packages/2d/ab/f1181f500c32c8fcf7c966f5920c7e56b9b1d03193386d19c956505c312d/rapidfuzz-3.14.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e6c31a4aa68cfa75d7eede8b0ed24b9e458447db604c2db53f358be9843d81d3", size = 1390200, upload-time = "2025-11-01T11:52:49.491Z" }, + { url = "https://files.pythonhosted.org/packages/14/2a/0f2de974ececad873865c6bb3ea3ad07c976ac293d5025b2d73325aac1d4/rapidfuzz-3.14.3-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:02821366d928e68ddcb567fed8723dad7ea3a979fada6283e6914d5858674850", size = 1389319, upload-time = "2025-11-01T11:52:51.224Z" }, + { url = "https://files.pythonhosted.org/packages/ed/69/309d8f3a0bb3031fd9b667174cc4af56000645298af7c2931be5c3d14bb4/rapidfuzz-3.14.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cfe8df315ab4e6db4e1be72c5170f8e66021acde22cd2f9d04d2058a9fd8162e", size = 3178495, upload-time = "2025-11-01T11:52:53.005Z" }, + { url = "https://files.pythonhosted.org/packages/10/b7/f9c44a99269ea5bf6fd6a40b84e858414b6e241288b9f2b74af470d222b1/rapidfuzz-3.14.3-cp311-cp311-manylinux_2_31_armv7l.whl", hash = "sha256:769f31c60cd79420188fcdb3c823227fc4a6deb35cafec9d14045c7f6743acae", size = 1228443, upload-time = "2025-11-01T11:52:54.991Z" }, + { url = "https://files.pythonhosted.org/packages/f2/0a/3b3137abac7f19c9220e14cd7ce993e35071a7655e7ef697785a3edfea1a/rapidfuzz-3.14.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:54fa03062124e73086dae66a3451c553c1e20a39c077fd704dc7154092c34c63", size = 2411998, upload-time = "2025-11-01T11:52:56.629Z" }, + { url = "https://files.pythonhosted.org/packages/f3/b6/983805a844d44670eaae63831024cdc97ada4e9c62abc6b20703e81e7f9b/rapidfuzz-3.14.3-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:834d1e818005ed0d4ae38f6b87b86fad9b0a74085467ece0727d20e15077c094", size = 2530120, upload-time = "2025-11-01T11:52:58.298Z" }, + { url = "https://files.pythonhosted.org/packages/b4/cc/2c97beb2b1be2d7595d805682472f1b1b844111027d5ad89b65e16bdbaaa/rapidfuzz-3.14.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:948b00e8476a91f510dd1ec07272efc7d78c275d83b630455559671d4e33b678", size = 4283129, upload-time = "2025-11-01T11:53:00.188Z" }, + { url = "https://files.pythonhosted.org/packages/4d/03/2f0e5e94941045aefe7eafab72320e61285c07b752df9884ce88d6b8b835/rapidfuzz-3.14.3-cp311-cp311-win32.whl", hash = "sha256:43d0305c36f504232f18ea04e55f2059bb89f169d3119c4ea96a0e15b59e2a91", size = 1724224, upload-time = "2025-11-01T11:53:02.149Z" }, + { url = "https://files.pythonhosted.org/packages/cf/99/5fa23e204435803875daefda73fd61baeabc3c36b8fc0e34c1705aab8c7b/rapidfuzz-3.14.3-cp311-cp311-win_amd64.whl", hash = "sha256:ef6bf930b947bd0735c550683939a032090f1d688dfd8861d6b45307b96fd5c5", size = 1544259, upload-time = "2025-11-01T11:53:03.66Z" }, + { url = "https://files.pythonhosted.org/packages/48/35/d657b85fcc615a42661b98ac90ce8e95bd32af474603a105643963749886/rapidfuzz-3.14.3-cp311-cp311-win_arm64.whl", hash = "sha256:f3eb0ff3b75d6fdccd40b55e7414bb859a1cda77c52762c9c82b85569f5088e7", size = 814734, upload-time = "2025-11-01T11:53:05.008Z" }, + { url = "https://files.pythonhosted.org/packages/fa/8e/3c215e860b458cfbedb3ed73bc72e98eb7e0ed72f6b48099604a7a3260c2/rapidfuzz-3.14.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:685c93ea961d135893b5984a5a9851637d23767feabe414ec974f43babbd8226", size = 1945306, upload-time = "2025-11-01T11:53:06.452Z" }, + { url = "https://files.pythonhosted.org/packages/36/d9/31b33512015c899f4a6e6af64df8dfe8acddf4c8b40a4b3e0e6e1bcd00e5/rapidfuzz-3.14.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fa7c8f26f009f8c673fbfb443792f0cf8cf50c4e18121ff1e285b5e08a94fbdb", size = 1390788, upload-time = "2025-11-01T11:53:08.721Z" }, + { url = "https://files.pythonhosted.org/packages/a9/67/2ee6f8de6e2081ccd560a571d9c9063184fe467f484a17fa90311a7f4a2e/rapidfuzz-3.14.3-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:57f878330c8d361b2ce76cebb8e3e1dc827293b6abf404e67d53260d27b5d941", size = 1374580, upload-time = "2025-11-01T11:53:10.164Z" }, + { url = "https://files.pythonhosted.org/packages/30/83/80d22997acd928eda7deadc19ccd15883904622396d6571e935993e0453a/rapidfuzz-3.14.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6c5f545f454871e6af05753a0172849c82feaf0f521c5ca62ba09e1b382d6382", size = 3154947, upload-time = "2025-11-01T11:53:12.093Z" }, + { url = "https://files.pythonhosted.org/packages/5b/cf/9f49831085a16384695f9fb096b99662f589e30b89b4a589a1ebc1a19d34/rapidfuzz-3.14.3-cp312-cp312-manylinux_2_31_armv7l.whl", hash = "sha256:07aa0b5d8863e3151e05026a28e0d924accf0a7a3b605da978f0359bb804df43", size = 1223872, upload-time = "2025-11-01T11:53:13.664Z" }, + { url = "https://files.pythonhosted.org/packages/c8/0f/41ee8034e744b871c2e071ef0d360686f5ccfe5659f4fd96c3ec406b3c8b/rapidfuzz-3.14.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:73b07566bc7e010e7b5bd490fb04bb312e820970180df6b5655e9e6224c137db", size = 2392512, upload-time = "2025-11-01T11:53:15.109Z" }, + { url = "https://files.pythonhosted.org/packages/da/86/280038b6b0c2ccec54fb957c732ad6b41cc1fd03b288d76545b9cf98343f/rapidfuzz-3.14.3-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:6de00eb84c71476af7d3110cf25d8fe7c792d7f5fa86764ef0b4ca97e78ca3ed", size = 2521398, upload-time = "2025-11-01T11:53:17.146Z" }, + { url = "https://files.pythonhosted.org/packages/fa/7b/05c26f939607dca0006505e3216248ae2de631e39ef94dd63dbbf0860021/rapidfuzz-3.14.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:d7843a1abf0091773a530636fdd2a49a41bcae22f9910b86b4f903e76ddc82dc", size = 4259416, upload-time = "2025-11-01T11:53:19.34Z" }, + { url = "https://files.pythonhosted.org/packages/40/eb/9e3af4103d91788f81111af1b54a28de347cdbed8eaa6c91d5e98a889aab/rapidfuzz-3.14.3-cp312-cp312-win32.whl", hash = "sha256:dea97ac3ca18cd3ba8f3d04b5c1fe4aa60e58e8d9b7793d3bd595fdb04128d7a", size = 1709527, upload-time = "2025-11-01T11:53:20.949Z" }, + { url = "https://files.pythonhosted.org/packages/b8/63/d06ecce90e2cf1747e29aeab9f823d21e5877a4c51b79720b2d3be7848f8/rapidfuzz-3.14.3-cp312-cp312-win_amd64.whl", hash = "sha256:b5100fd6bcee4d27f28f4e0a1c6b5127bc8ba7c2a9959cad9eab0bf4a7ab3329", size = 1538989, upload-time = "2025-11-01T11:53:22.428Z" }, + { url = "https://files.pythonhosted.org/packages/fc/6d/beee32dcda64af8128aab3ace2ccb33d797ed58c434c6419eea015fec779/rapidfuzz-3.14.3-cp312-cp312-win_arm64.whl", hash = "sha256:4e49c9e992bc5fc873bd0fff7ef16a4405130ec42f2ce3d2b735ba5d3d4eb70f", size = 811161, upload-time = "2025-11-01T11:53:23.811Z" }, + { url = "https://files.pythonhosted.org/packages/c9/33/b5bd6475c7c27164b5becc9b0e3eb978f1e3640fea590dd3dced6006ee83/rapidfuzz-3.14.3-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:7cf174b52cb3ef5d49e45d0a1133b7e7d0ecf770ed01f97ae9962c5c91d97d23", size = 1888499, upload-time = "2025-11-01T11:54:42.094Z" }, + { url = "https://files.pythonhosted.org/packages/30/d2/89d65d4db4bb931beade9121bc71ad916b5fa9396e807d11b33731494e8e/rapidfuzz-3.14.3-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:442cba39957a008dfc5bdef21a9c3f4379e30ffb4e41b8555dbaf4887eca9300", size = 1336747, upload-time = "2025-11-01T11:54:43.957Z" }, + { url = "https://files.pythonhosted.org/packages/85/33/cd87d92b23f0b06e8914a61cea6850c6d495ca027f669fab7a379041827a/rapidfuzz-3.14.3-pp311-pypy311_pp73-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1faa0f8f76ba75fd7b142c984947c280ef6558b5067af2ae9b8729b0a0f99ede", size = 1352187, upload-time = "2025-11-01T11:54:45.518Z" }, + { url = "https://files.pythonhosted.org/packages/22/20/9d30b4a1ab26aac22fff17d21dec7e9089ccddfe25151d0a8bb57001dc3d/rapidfuzz-3.14.3-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1e6eefec45625c634926a9fd46c9e4f31118ac8f3156fff9494422cee45207e6", size = 3101472, upload-time = "2025-11-01T11:54:47.255Z" }, + { url = "https://files.pythonhosted.org/packages/b1/ad/fa2d3e5c29a04ead7eaa731c7cd1f30f9ec3c77b3a578fdf90280797cbcb/rapidfuzz-3.14.3-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:56fefb4382bb12250f164250240b9dd7772e41c5c8ae976fd598a32292449cc5", size = 1511361, upload-time = "2025-11-01T11:54:49.057Z" }, +] + +[[package]] +name = "referencing" +version = "0.36.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "rpds-py" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2f/db/98b5c277be99dd18bfd91dd04e1b759cad18d1a338188c936e92f921c7e2/referencing-0.36.2.tar.gz", hash = "sha256:df2e89862cd09deabbdba16944cc3f10feb6b3e6f18e902f7cc25609a34775aa", size = 74744, upload-time = "2025-01-25T08:48:16.138Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c1/b1/3baf80dc6d2b7bc27a95a67752d0208e410351e3feb4eb78de5f77454d8d/referencing-0.36.2-py3-none-any.whl", hash = "sha256:e8699adbbf8b5c7de96d8ffa0eb5c158b3beafce084968e2ea8bb08c6794dcd0", size = 26775, upload-time = "2025-01-25T08:48:14.241Z" }, +] + +[[package]] +name = "regex" +version = "2025.11.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cc/a9/546676f25e573a4cf00fe8e119b78a37b6a8fe2dc95cda877b30889c9c45/regex-2025.11.3.tar.gz", hash = "sha256:1fedc720f9bb2494ce31a58a1631f9c82df6a09b49c19517ea5cc280b4541e01", size = 414669, upload-time = "2025-11-03T21:34:22.089Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f7/90/4fb5056e5f03a7048abd2b11f598d464f0c167de4f2a51aa868c376b8c70/regex-2025.11.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:eadade04221641516fa25139273505a1c19f9bf97589a05bc4cfcd8b4a618031", size = 488081, upload-time = "2025-11-03T21:31:11.946Z" }, + { url = "https://files.pythonhosted.org/packages/85/23/63e481293fac8b069d84fba0299b6666df720d875110efd0338406b5d360/regex-2025.11.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:feff9e54ec0dd3833d659257f5c3f5322a12eee58ffa360984b716f8b92983f4", size = 290554, upload-time = "2025-11-03T21:31:13.387Z" }, + { url = "https://files.pythonhosted.org/packages/2b/9d/b101d0262ea293a0066b4522dfb722eb6a8785a8c3e084396a5f2c431a46/regex-2025.11.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3b30bc921d50365775c09a7ed446359e5c0179e9e2512beec4a60cbcef6ddd50", size = 288407, upload-time = "2025-11-03T21:31:14.809Z" }, + { url = "https://files.pythonhosted.org/packages/0c/64/79241c8209d5b7e00577ec9dca35cd493cc6be35b7d147eda367d6179f6d/regex-2025.11.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f99be08cfead2020c7ca6e396c13543baea32343b7a9a5780c462e323bd8872f", size = 793418, upload-time = "2025-11-03T21:31:16.556Z" }, + { url = "https://files.pythonhosted.org/packages/3d/e2/23cd5d3573901ce8f9757c92ca4db4d09600b865919b6d3e7f69f03b1afd/regex-2025.11.3-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6dd329a1b61c0ee95ba95385fb0c07ea0d3fe1a21e1349fa2bec272636217118", size = 860448, upload-time = "2025-11-03T21:31:18.12Z" }, + { url = "https://files.pythonhosted.org/packages/2a/4c/aecf31beeaa416d0ae4ecb852148d38db35391aac19c687b5d56aedf3a8b/regex-2025.11.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:4c5238d32f3c5269d9e87be0cf096437b7622b6920f5eac4fd202468aaeb34d2", size = 907139, upload-time = "2025-11-03T21:31:20.753Z" }, + { url = "https://files.pythonhosted.org/packages/61/22/b8cb00df7d2b5e0875f60628594d44dba283e951b1ae17c12f99e332cc0a/regex-2025.11.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:10483eefbfb0adb18ee9474498c9a32fcf4e594fbca0543bb94c48bac6183e2e", size = 800439, upload-time = "2025-11-03T21:31:22.069Z" }, + { url = "https://files.pythonhosted.org/packages/02/a8/c4b20330a5cdc7a8eb265f9ce593f389a6a88a0c5f280cf4d978f33966bc/regex-2025.11.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:78c2d02bb6e1da0720eedc0bad578049cad3f71050ef8cd065ecc87691bed2b0", size = 782965, upload-time = "2025-11-03T21:31:23.598Z" }, + { url = "https://files.pythonhosted.org/packages/b4/4c/ae3e52988ae74af4b04d2af32fee4e8077f26e51b62ec2d12d246876bea2/regex-2025.11.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:e6b49cd2aad93a1790ce9cffb18964f6d3a4b0b3dbdbd5de094b65296fce6e58", size = 854398, upload-time = "2025-11-03T21:31:25.008Z" }, + { url = "https://files.pythonhosted.org/packages/06/d1/a8b9cf45874eda14b2e275157ce3b304c87e10fb38d9fc26a6e14eb18227/regex-2025.11.3-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:885b26aa3ee56433b630502dc3d36ba78d186a00cc535d3806e6bfd9ed3c70ab", size = 845897, upload-time = "2025-11-03T21:31:26.427Z" }, + { url = "https://files.pythonhosted.org/packages/ea/fe/1830eb0236be93d9b145e0bd8ab499f31602fe0999b1f19e99955aa8fe20/regex-2025.11.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ddd76a9f58e6a00f8772e72cff8ebcff78e022be95edf018766707c730593e1e", size = 788906, upload-time = "2025-11-03T21:31:28.078Z" }, + { url = "https://files.pythonhosted.org/packages/66/47/dc2577c1f95f188c1e13e2e69d8825a5ac582ac709942f8a03af42ed6e93/regex-2025.11.3-cp311-cp311-win32.whl", hash = "sha256:3e816cc9aac1cd3cc9a4ec4d860f06d40f994b5c7b4d03b93345f44e08cc68bf", size = 265812, upload-time = "2025-11-03T21:31:29.72Z" }, + { url = "https://files.pythonhosted.org/packages/50/1e/15f08b2f82a9bbb510621ec9042547b54d11e83cb620643ebb54e4eb7d71/regex-2025.11.3-cp311-cp311-win_amd64.whl", hash = "sha256:087511f5c8b7dfbe3a03f5d5ad0c2a33861b1fc387f21f6f60825a44865a385a", size = 277737, upload-time = "2025-11-03T21:31:31.422Z" }, + { url = "https://files.pythonhosted.org/packages/f4/fc/6500eb39f5f76c5e47a398df82e6b535a5e345f839581012a418b16f9cc3/regex-2025.11.3-cp311-cp311-win_arm64.whl", hash = "sha256:1ff0d190c7f68ae7769cd0313fe45820ba07ffebfddfaa89cc1eb70827ba0ddc", size = 270290, upload-time = "2025-11-03T21:31:33.041Z" }, + { url = "https://files.pythonhosted.org/packages/e8/74/18f04cb53e58e3fb107439699bd8375cf5a835eec81084e0bddbd122e4c2/regex-2025.11.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:bc8ab71e2e31b16e40868a40a69007bc305e1109bd4658eb6cad007e0bf67c41", size = 489312, upload-time = "2025-11-03T21:31:34.343Z" }, + { url = "https://files.pythonhosted.org/packages/78/3f/37fcdd0d2b1e78909108a876580485ea37c91e1acf66d3bb8e736348f441/regex-2025.11.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:22b29dda7e1f7062a52359fca6e58e548e28c6686f205e780b02ad8ef710de36", size = 291256, upload-time = "2025-11-03T21:31:35.675Z" }, + { url = "https://files.pythonhosted.org/packages/bf/26/0a575f58eb23b7ebd67a45fccbc02ac030b737b896b7e7a909ffe43ffd6a/regex-2025.11.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3a91e4a29938bc1a082cc28fdea44be420bf2bebe2665343029723892eb073e1", size = 288921, upload-time = "2025-11-03T21:31:37.07Z" }, + { url = "https://files.pythonhosted.org/packages/ea/98/6a8dff667d1af907150432cf5abc05a17ccd32c72a3615410d5365ac167a/regex-2025.11.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:08b884f4226602ad40c5d55f52bf91a9df30f513864e0054bad40c0e9cf1afb7", size = 798568, upload-time = "2025-11-03T21:31:38.784Z" }, + { url = "https://files.pythonhosted.org/packages/64/15/92c1db4fa4e12733dd5a526c2dd2b6edcbfe13257e135fc0f6c57f34c173/regex-2025.11.3-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:3e0b11b2b2433d1c39c7c7a30e3f3d0aeeea44c2a8d0bae28f6b95f639927a69", size = 864165, upload-time = "2025-11-03T21:31:40.559Z" }, + { url = "https://files.pythonhosted.org/packages/f9/e7/3ad7da8cdee1ce66c7cd37ab5ab05c463a86ffeb52b1a25fe7bd9293b36c/regex-2025.11.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:87eb52a81ef58c7ba4d45c3ca74e12aa4b4e77816f72ca25258a85b3ea96cb48", size = 912182, upload-time = "2025-11-03T21:31:42.002Z" }, + { url = "https://files.pythonhosted.org/packages/84/bd/9ce9f629fcb714ffc2c3faf62b6766ecb7a585e1e885eb699bcf130a5209/regex-2025.11.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a12ab1f5c29b4e93db518f5e3872116b7e9b1646c9f9f426f777b50d44a09e8c", size = 803501, upload-time = "2025-11-03T21:31:43.815Z" }, + { url = "https://files.pythonhosted.org/packages/7c/0f/8dc2e4349d8e877283e6edd6c12bdcebc20f03744e86f197ab6e4492bf08/regex-2025.11.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7521684c8c7c4f6e88e35ec89680ee1aa8358d3f09d27dfbdf62c446f5d4c695", size = 787842, upload-time = "2025-11-03T21:31:45.353Z" }, + { url = "https://files.pythonhosted.org/packages/f9/73/cff02702960bc185164d5619c0c62a2f598a6abff6695d391b096237d4ab/regex-2025.11.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:7fe6e5440584e94cc4b3f5f4d98a25e29ca12dccf8873679a635638349831b98", size = 858519, upload-time = "2025-11-03T21:31:46.814Z" }, + { url = "https://files.pythonhosted.org/packages/61/83/0e8d1ae71e15bc1dc36231c90b46ee35f9d52fab2e226b0e039e7ea9c10a/regex-2025.11.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:8e026094aa12b43f4fd74576714e987803a315c76edb6b098b9809db5de58f74", size = 850611, upload-time = "2025-11-03T21:31:48.289Z" }, + { url = "https://files.pythonhosted.org/packages/c8/f5/70a5cdd781dcfaa12556f2955bf170cd603cb1c96a1827479f8faea2df97/regex-2025.11.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:435bbad13e57eb5606a68443af62bed3556de2f46deb9f7d4237bc2f1c9fb3a0", size = 789759, upload-time = "2025-11-03T21:31:49.759Z" }, + { url = "https://files.pythonhosted.org/packages/59/9b/7c29be7903c318488983e7d97abcf8ebd3830e4c956c4c540005fcfb0462/regex-2025.11.3-cp312-cp312-win32.whl", hash = "sha256:3839967cf4dc4b985e1570fd8d91078f0c519f30491c60f9ac42a8db039be204", size = 266194, upload-time = "2025-11-03T21:31:51.53Z" }, + { url = "https://files.pythonhosted.org/packages/1a/67/3b92df89f179d7c367be654ab5626ae311cb28f7d5c237b6bb976cd5fbbb/regex-2025.11.3-cp312-cp312-win_amd64.whl", hash = "sha256:e721d1b46e25c481dc5ded6f4b3f66c897c58d2e8cfdf77bbced84339108b0b9", size = 277069, upload-time = "2025-11-03T21:31:53.151Z" }, + { url = "https://files.pythonhosted.org/packages/d7/55/85ba4c066fe5094d35b249c3ce8df0ba623cfd35afb22d6764f23a52a1c5/regex-2025.11.3-cp312-cp312-win_arm64.whl", hash = "sha256:64350685ff08b1d3a6fff33f45a9ca183dc1d58bbfe4981604e70ec9801bbc26", size = 270330, upload-time = "2025-11-03T21:31:54.514Z" }, +] + +[[package]] +name = "requests" +version = "2.32.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "charset-normalizer" }, + { name = "idna" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c9/74/b3ff8e6c8446842c3f5c837e9c3dfcfe2018ea6ecef224c710c85ef728f4/requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf", size = 134517, upload-time = "2025-08-18T20:46:02.573Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6", size = 64738, upload-time = "2025-08-18T20:46:00.542Z" }, +] + +[[package]] +name = "requests-oauthlib" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "oauthlib" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/42/f2/05f29bc3913aea15eb670be136045bf5c5bbf4b99ecb839da9b422bb2c85/requests-oauthlib-2.0.0.tar.gz", hash = "sha256:b3dffaebd884d8cd778494369603a9e7b58d29111bf6b41bdc2dcd87203af4e9", size = 55650, upload-time = "2024-03-22T20:32:29.939Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3b/5d/63d4ae3b9daea098d5d6f5da83984853c1bbacd5dc826764b249fe119d24/requests_oauthlib-2.0.0-py2.py3-none-any.whl", hash = "sha256:7dd8a5c40426b779b0868c404bdef9768deccf22749cde15852df527e6269b36", size = 24179, upload-time = "2024-03-22T20:32:28.055Z" }, +] + +[[package]] +name = "requests-toolbelt" +version = "1.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f3/61/d7545dafb7ac2230c70d38d31cbfe4cc64f7144dc41f6e4e4b78ecd9f5bb/requests-toolbelt-1.0.0.tar.gz", hash = "sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6", size = 206888, upload-time = "2023-05-01T04:11:33.229Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl", hash = "sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06", size = 54481, upload-time = "2023-05-01T04:11:28.427Z" }, +] + +[[package]] +name = "rfc3339-validator" +version = "0.1.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/28/ea/a9387748e2d111c3c2b275ba970b735e04e15cdb1eb30693b6b5708c4dbd/rfc3339_validator-0.1.4.tar.gz", hash = "sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b", size = 5513, upload-time = "2021-05-12T16:37:54.178Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7b/44/4e421b96b67b2daff264473f7465db72fbdf36a07e05494f50300cc7b0c6/rfc3339_validator-0.1.4-py2.py3-none-any.whl", hash = "sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa", size = 3490, upload-time = "2021-05-12T16:37:52.536Z" }, +] + +[[package]] +name = "rpds-py" +version = "0.30.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/20/af/3f2f423103f1113b36230496629986e0ef7e199d2aa8392452b484b38ced/rpds_py-0.30.0.tar.gz", hash = "sha256:dd8ff7cf90014af0c0f787eea34794ebf6415242ee1d6fa91eaba725cc441e84", size = 69469, upload-time = "2025-11-30T20:24:38.837Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4d/6e/f964e88b3d2abee2a82c1ac8366da848fce1c6d834dc2132c3fda3970290/rpds_py-0.30.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:a2bffea6a4ca9f01b3f8e548302470306689684e61602aa3d141e34da06cf425", size = 370157, upload-time = "2025-11-30T20:21:53.789Z" }, + { url = "https://files.pythonhosted.org/packages/94/ba/24e5ebb7c1c82e74c4e4f33b2112a5573ddc703915b13a073737b59b86e0/rpds_py-0.30.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dc4f992dfe1e2bc3ebc7444f6c7051b4bc13cd8e33e43511e8ffd13bf407010d", size = 359676, upload-time = "2025-11-30T20:21:55.475Z" }, + { url = "https://files.pythonhosted.org/packages/84/86/04dbba1b087227747d64d80c3b74df946b986c57af0a9f0c98726d4d7a3b/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:422c3cb9856d80b09d30d2eb255d0754b23e090034e1deb4083f8004bd0761e4", size = 389938, upload-time = "2025-11-30T20:21:57.079Z" }, + { url = "https://files.pythonhosted.org/packages/42/bb/1463f0b1722b7f45431bdd468301991d1328b16cffe0b1c2918eba2c4eee/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:07ae8a593e1c3c6b82ca3292efbe73c30b61332fd612e05abee07c79359f292f", size = 402932, upload-time = "2025-11-30T20:21:58.47Z" }, + { url = "https://files.pythonhosted.org/packages/99/ee/2520700a5c1f2d76631f948b0736cdf9b0acb25abd0ca8e889b5c62ac2e3/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:12f90dd7557b6bd57f40abe7747e81e0c0b119bef015ea7726e69fe550e394a4", size = 525830, upload-time = "2025-11-30T20:21:59.699Z" }, + { url = "https://files.pythonhosted.org/packages/e0/ad/bd0331f740f5705cc555a5e17fdf334671262160270962e69a2bdef3bf76/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:99b47d6ad9a6da00bec6aabe5a6279ecd3c06a329d4aa4771034a21e335c3a97", size = 412033, upload-time = "2025-11-30T20:22:00.991Z" }, + { url = "https://files.pythonhosted.org/packages/f8/1e/372195d326549bb51f0ba0f2ecb9874579906b97e08880e7a65c3bef1a99/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:33f559f3104504506a44bb666b93a33f5d33133765b0c216a5bf2f1e1503af89", size = 390828, upload-time = "2025-11-30T20:22:02.723Z" }, + { url = "https://files.pythonhosted.org/packages/ab/2b/d88bb33294e3e0c76bc8f351a3721212713629ffca1700fa94979cb3eae8/rpds_py-0.30.0-cp311-cp311-manylinux_2_31_riscv64.whl", hash = "sha256:946fe926af6e44f3697abbc305ea168c2c31d3e3ef1058cf68f379bf0335a78d", size = 404683, upload-time = "2025-11-30T20:22:04.367Z" }, + { url = "https://files.pythonhosted.org/packages/50/32/c759a8d42bcb5289c1fac697cd92f6fe01a018dd937e62ae77e0e7f15702/rpds_py-0.30.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:495aeca4b93d465efde585977365187149e75383ad2684f81519f504f5c13038", size = 421583, upload-time = "2025-11-30T20:22:05.814Z" }, + { url = "https://files.pythonhosted.org/packages/2b/81/e729761dbd55ddf5d84ec4ff1f47857f4374b0f19bdabfcf929164da3e24/rpds_py-0.30.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d9a0ca5da0386dee0655b4ccdf46119df60e0f10da268d04fe7cc87886872ba7", size = 572496, upload-time = "2025-11-30T20:22:07.713Z" }, + { url = "https://files.pythonhosted.org/packages/14/f6/69066a924c3557c9c30baa6ec3a0aa07526305684c6f86c696b08860726c/rpds_py-0.30.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8d6d1cc13664ec13c1b84241204ff3b12f9bb82464b8ad6e7a5d3486975c2eed", size = 598669, upload-time = "2025-11-30T20:22:09.312Z" }, + { url = "https://files.pythonhosted.org/packages/5f/48/905896b1eb8a05630d20333d1d8ffd162394127b74ce0b0784ae04498d32/rpds_py-0.30.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3896fa1be39912cf0757753826bc8bdc8ca331a28a7c4ae46b7a21280b06bb85", size = 561011, upload-time = "2025-11-30T20:22:11.309Z" }, + { url = "https://files.pythonhosted.org/packages/22/16/cd3027c7e279d22e5eb431dd3c0fbc677bed58797fe7581e148f3f68818b/rpds_py-0.30.0-cp311-cp311-win32.whl", hash = "sha256:55f66022632205940f1827effeff17c4fa7ae1953d2b74a8581baaefb7d16f8c", size = 221406, upload-time = "2025-11-30T20:22:13.101Z" }, + { url = "https://files.pythonhosted.org/packages/fa/5b/e7b7aa136f28462b344e652ee010d4de26ee9fd16f1bfd5811f5153ccf89/rpds_py-0.30.0-cp311-cp311-win_amd64.whl", hash = "sha256:a51033ff701fca756439d641c0ad09a41d9242fa69121c7d8769604a0a629825", size = 236024, upload-time = "2025-11-30T20:22:14.853Z" }, + { url = "https://files.pythonhosted.org/packages/14/a6/364bba985e4c13658edb156640608f2c9e1d3ea3c81b27aa9d889fff0e31/rpds_py-0.30.0-cp311-cp311-win_arm64.whl", hash = "sha256:47b0ef6231c58f506ef0b74d44e330405caa8428e770fec25329ed2cb971a229", size = 229069, upload-time = "2025-11-30T20:22:16.577Z" }, + { url = "https://files.pythonhosted.org/packages/03/e7/98a2f4ac921d82f33e03f3835f5bf3a4a40aa1bfdc57975e74a97b2b4bdd/rpds_py-0.30.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:a161f20d9a43006833cd7068375a94d035714d73a172b681d8881820600abfad", size = 375086, upload-time = "2025-11-30T20:22:17.93Z" }, + { url = "https://files.pythonhosted.org/packages/4d/a1/bca7fd3d452b272e13335db8d6b0b3ecde0f90ad6f16f3328c6fb150c889/rpds_py-0.30.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6abc8880d9d036ecaafe709079969f56e876fcf107f7a8e9920ba6d5a3878d05", size = 359053, upload-time = "2025-11-30T20:22:19.297Z" }, + { url = "https://files.pythonhosted.org/packages/65/1c/ae157e83a6357eceff62ba7e52113e3ec4834a84cfe07fa4b0757a7d105f/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca28829ae5f5d569bb62a79512c842a03a12576375d5ece7d2cadf8abe96ec28", size = 390763, upload-time = "2025-11-30T20:22:21.661Z" }, + { url = "https://files.pythonhosted.org/packages/d4/36/eb2eb8515e2ad24c0bd43c3ee9cd74c33f7ca6430755ccdb240fd3144c44/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a1010ed9524c73b94d15919ca4d41d8780980e1765babf85f9a2f90d247153dd", size = 408951, upload-time = "2025-11-30T20:22:23.408Z" }, + { url = "https://files.pythonhosted.org/packages/d6/65/ad8dc1784a331fabbd740ef6f71ce2198c7ed0890dab595adb9ea2d775a1/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f8d1736cfb49381ba528cd5baa46f82fdc65c06e843dab24dd70b63d09121b3f", size = 514622, upload-time = "2025-11-30T20:22:25.16Z" }, + { url = "https://files.pythonhosted.org/packages/63/8e/0cfa7ae158e15e143fe03993b5bcd743a59f541f5952e1546b1ac1b5fd45/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d948b135c4693daff7bc2dcfc4ec57237a29bd37e60c2fabf5aff2bbacf3e2f1", size = 414492, upload-time = "2025-11-30T20:22:26.505Z" }, + { url = "https://files.pythonhosted.org/packages/60/1b/6f8f29f3f995c7ffdde46a626ddccd7c63aefc0efae881dc13b6e5d5bb16/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47f236970bccb2233267d89173d3ad2703cd36a0e2a6e92d0560d333871a3d23", size = 394080, upload-time = "2025-11-30T20:22:27.934Z" }, + { url = "https://files.pythonhosted.org/packages/6d/d5/a266341051a7a3ca2f4b750a3aa4abc986378431fc2da508c5034d081b70/rpds_py-0.30.0-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:2e6ecb5a5bcacf59c3f912155044479af1d0b6681280048b338b28e364aca1f6", size = 408680, upload-time = "2025-11-30T20:22:29.341Z" }, + { url = "https://files.pythonhosted.org/packages/10/3b/71b725851df9ab7a7a4e33cf36d241933da66040d195a84781f49c50490c/rpds_py-0.30.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a8fa71a2e078c527c3e9dc9fc5a98c9db40bcc8a92b4e8858e36d329f8684b51", size = 423589, upload-time = "2025-11-30T20:22:31.469Z" }, + { url = "https://files.pythonhosted.org/packages/00/2b/e59e58c544dc9bd8bd8384ecdb8ea91f6727f0e37a7131baeff8d6f51661/rpds_py-0.30.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:73c67f2db7bc334e518d097c6d1e6fed021bbc9b7d678d6cc433478365d1d5f5", size = 573289, upload-time = "2025-11-30T20:22:32.997Z" }, + { url = "https://files.pythonhosted.org/packages/da/3e/a18e6f5b460893172a7d6a680e86d3b6bc87a54c1f0b03446a3c8c7b588f/rpds_py-0.30.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:5ba103fb455be00f3b1c2076c9d4264bfcb037c976167a6047ed82f23153f02e", size = 599737, upload-time = "2025-11-30T20:22:34.419Z" }, + { url = "https://files.pythonhosted.org/packages/5c/e2/714694e4b87b85a18e2c243614974413c60aa107fd815b8cbc42b873d1d7/rpds_py-0.30.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7cee9c752c0364588353e627da8a7e808a66873672bcb5f52890c33fd965b394", size = 563120, upload-time = "2025-11-30T20:22:35.903Z" }, + { url = "https://files.pythonhosted.org/packages/6f/ab/d5d5e3bcedb0a77f4f613706b750e50a5a3ba1c15ccd3665ecc636c968fd/rpds_py-0.30.0-cp312-cp312-win32.whl", hash = "sha256:1ab5b83dbcf55acc8b08fc62b796ef672c457b17dbd7820a11d6c52c06839bdf", size = 223782, upload-time = "2025-11-30T20:22:37.271Z" }, + { url = "https://files.pythonhosted.org/packages/39/3b/f786af9957306fdc38a74cef405b7b93180f481fb48453a114bb6465744a/rpds_py-0.30.0-cp312-cp312-win_amd64.whl", hash = "sha256:a090322ca841abd453d43456ac34db46e8b05fd9b3b4ac0c78bcde8b089f959b", size = 240463, upload-time = "2025-11-30T20:22:39.021Z" }, + { url = "https://files.pythonhosted.org/packages/f3/d2/b91dc748126c1559042cfe41990deb92c4ee3e2b415f6b5234969ffaf0cc/rpds_py-0.30.0-cp312-cp312-win_arm64.whl", hash = "sha256:669b1805bd639dd2989b281be2cfd951c6121b65e729d9b843e9639ef1fd555e", size = 230868, upload-time = "2025-11-30T20:22:40.493Z" }, + { url = "https://files.pythonhosted.org/packages/69/71/3f34339ee70521864411f8b6992e7ab13ac30d8e4e3309e07c7361767d91/rpds_py-0.30.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c2262bdba0ad4fc6fb5545660673925c2d2a5d9e2e0fb603aad545427be0fc58", size = 372292, upload-time = "2025-11-30T20:24:16.537Z" }, + { url = "https://files.pythonhosted.org/packages/57/09/f183df9b8f2d66720d2ef71075c59f7e1b336bec7ee4c48f0a2b06857653/rpds_py-0.30.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:ee6af14263f25eedc3bb918a3c04245106a42dfd4f5c2285ea6f997b1fc3f89a", size = 362128, upload-time = "2025-11-30T20:24:18.086Z" }, + { url = "https://files.pythonhosted.org/packages/7a/68/5c2594e937253457342e078f0cc1ded3dd7b2ad59afdbf2d354869110a02/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3adbb8179ce342d235c31ab8ec511e66c73faa27a47e076ccc92421add53e2bb", size = 391542, upload-time = "2025-11-30T20:24:20.092Z" }, + { url = "https://files.pythonhosted.org/packages/49/5c/31ef1afd70b4b4fbdb2800249f34c57c64beb687495b10aec0365f53dfc4/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:250fa00e9543ac9b97ac258bd37367ff5256666122c2d0f2bc97577c60a1818c", size = 404004, upload-time = "2025-11-30T20:24:22.231Z" }, + { url = "https://files.pythonhosted.org/packages/e3/63/0cfbea38d05756f3440ce6534d51a491d26176ac045e2707adc99bb6e60a/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9854cf4f488b3d57b9aaeb105f06d78e5529d3145b1e4a41750167e8c213c6d3", size = 527063, upload-time = "2025-11-30T20:24:24.302Z" }, + { url = "https://files.pythonhosted.org/packages/42/e6/01e1f72a2456678b0f618fc9a1a13f882061690893c192fcad9f2926553a/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:993914b8e560023bc0a8bf742c5f303551992dcb85e247b1e5c7f4a7d145bda5", size = 413099, upload-time = "2025-11-30T20:24:25.916Z" }, + { url = "https://files.pythonhosted.org/packages/b8/25/8df56677f209003dcbb180765520c544525e3ef21ea72279c98b9aa7c7fb/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58edca431fb9b29950807e301826586e5bbf24163677732429770a697ffe6738", size = 392177, upload-time = "2025-11-30T20:24:27.834Z" }, + { url = "https://files.pythonhosted.org/packages/4a/b4/0a771378c5f16f8115f796d1f437950158679bcd2a7c68cf251cfb00ed5b/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_31_riscv64.whl", hash = "sha256:dea5b552272a944763b34394d04577cf0f9bd013207bc32323b5a89a53cf9c2f", size = 406015, upload-time = "2025-11-30T20:24:29.457Z" }, + { url = "https://files.pythonhosted.org/packages/36/d8/456dbba0af75049dc6f63ff295a2f92766b9d521fa00de67a2bd6427d57a/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ba3af48635eb83d03f6c9735dfb21785303e73d22ad03d489e88adae6eab8877", size = 423736, upload-time = "2025-11-30T20:24:31.22Z" }, + { url = "https://files.pythonhosted.org/packages/13/64/b4d76f227d5c45a7e0b796c674fd81b0a6c4fbd48dc29271857d8219571c/rpds_py-0.30.0-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:dff13836529b921e22f15cb099751209a60009731a68519630a24d61f0b1b30a", size = 573981, upload-time = "2025-11-30T20:24:32.934Z" }, + { url = "https://files.pythonhosted.org/packages/20/91/092bacadeda3edf92bf743cc96a7be133e13a39cdbfd7b5082e7ab638406/rpds_py-0.30.0-pp311-pypy311_pp73-musllinux_1_2_i686.whl", hash = "sha256:1b151685b23929ab7beec71080a8889d4d6d9fa9a983d213f07121205d48e2c4", size = 599782, upload-time = "2025-11-30T20:24:35.169Z" }, + { url = "https://files.pythonhosted.org/packages/d1/b7/b95708304cd49b7b6f82fdd039f1748b66ec2b21d6a45180910802f1abf1/rpds_py-0.30.0-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:ac37f9f516c51e5753f27dfdef11a88330f04de2d564be3991384b2f3535d02e", size = 562191, upload-time = "2025-11-30T20:24:36.853Z" }, +] + +[[package]] +name = "ruamel-yaml" +version = "0.18.17" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "ruamel-yaml-clib", marker = "platform_python_implementation == 'CPython'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3a/2b/7a1f1ebcd6b3f14febdc003e658778d81e76b40df2267904ee6b13f0c5c6/ruamel_yaml-0.18.17.tar.gz", hash = "sha256:9091cd6e2d93a3a4b157ddb8fabf348c3de7f1fb1381346d985b6b247dcd8d3c", size = 149602, upload-time = "2025-12-17T20:02:55.757Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/af/fe/b6045c782f1fd1ae317d2a6ca1884857ce5c20f59befe6ab25a8603c43a7/ruamel_yaml-0.18.17-py3-none-any.whl", hash = "sha256:9c8ba9eb3e793efdf924b60d521820869d5bf0cb9c6f1b82d82de8295e290b9d", size = 121594, upload-time = "2025-12-17T20:02:07.657Z" }, +] + +[[package]] +name = "ruamel-yaml-clib" +version = "0.2.15" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ea/97/60fda20e2fb54b83a61ae14648b0817c8f5d84a3821e40bfbdae1437026a/ruamel_yaml_clib-0.2.15.tar.gz", hash = "sha256:46e4cc8c43ef6a94885f72512094e482114a8a706d3c555a34ed4b0d20200600", size = 225794, upload-time = "2025-11-16T16:12:59.761Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2c/80/8ce7b9af532aa94dd83360f01ce4716264db73de6bc8efd22c32341f6658/ruamel_yaml_clib-0.2.15-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c583229f336682b7212a43d2fa32c30e643d3076178fb9f7a6a14dde85a2d8bd", size = 147998, upload-time = "2025-11-16T16:13:13.241Z" }, + { url = "https://files.pythonhosted.org/packages/53/09/de9d3f6b6701ced5f276d082ad0f980edf08ca67114523d1b9264cd5e2e0/ruamel_yaml_clib-0.2.15-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:56ea19c157ed8c74b6be51b5fa1c3aff6e289a041575f0556f66e5fb848bb137", size = 132743, upload-time = "2025-11-16T16:13:14.265Z" }, + { url = "https://files.pythonhosted.org/packages/0e/f7/73a9b517571e214fe5c246698ff3ed232f1ef863c8ae1667486625ec688a/ruamel_yaml_clib-0.2.15-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:5fea0932358e18293407feb921d4f4457db837b67ec1837f87074667449f9401", size = 731459, upload-time = "2025-11-16T20:22:44.338Z" }, + { url = "https://files.pythonhosted.org/packages/9b/a2/0dc0013169800f1c331a6f55b1282c1f4492a6d32660a0cf7b89e6684919/ruamel_yaml_clib-0.2.15-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ef71831bd61fbdb7aa0399d5c4da06bea37107ab5c79ff884cc07f2450910262", size = 749289, upload-time = "2025-11-16T16:13:15.633Z" }, + { url = "https://files.pythonhosted.org/packages/aa/ed/3fb20a1a96b8dc645d88c4072df481fe06e0289e4d528ebbdcc044ebc8b3/ruamel_yaml_clib-0.2.15-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:617d35dc765715fa86f8c3ccdae1e4229055832c452d4ec20856136acc75053f", size = 777630, upload-time = "2025-11-16T16:13:16.898Z" }, + { url = "https://files.pythonhosted.org/packages/60/50/6842f4628bc98b7aa4733ab2378346e1441e150935ad3b9f3c3c429d9408/ruamel_yaml_clib-0.2.15-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1b45498cc81a4724a2d42273d6cfc243c0547ad7c6b87b4f774cb7bcc131c98d", size = 744368, upload-time = "2025-11-16T16:13:18.117Z" }, + { url = "https://files.pythonhosted.org/packages/d3/b0/128ae8e19a7d794c2e36130a72b3bb650ce1dd13fb7def6cf10656437dcf/ruamel_yaml_clib-0.2.15-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:def5663361f6771b18646620fca12968aae730132e104688766cf8a3b1d65922", size = 745233, upload-time = "2025-11-16T20:22:45.833Z" }, + { url = "https://files.pythonhosted.org/packages/75/05/91130633602d6ba7ce3e07f8fc865b40d2a09efd4751c740df89eed5caf9/ruamel_yaml_clib-0.2.15-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:014181cdec565c8745b7cbc4de3bf2cc8ced05183d986e6d1200168e5bb59490", size = 770963, upload-time = "2025-11-16T16:13:19.344Z" }, + { url = "https://files.pythonhosted.org/packages/fd/4b/fd4542e7f33d7d1bc64cc9ac9ba574ce8cf145569d21f5f20133336cdc8c/ruamel_yaml_clib-0.2.15-cp311-cp311-win32.whl", hash = "sha256:d290eda8f6ada19e1771b54e5706b8f9807e6bb08e873900d5ba114ced13e02c", size = 102640, upload-time = "2025-11-16T16:13:20.498Z" }, + { url = "https://files.pythonhosted.org/packages/bb/eb/00ff6032c19c7537371e3119287999570867a0eafb0154fccc80e74bf57a/ruamel_yaml_clib-0.2.15-cp311-cp311-win_amd64.whl", hash = "sha256:bdc06ad71173b915167702f55d0f3f027fc61abd975bd308a0968c02db4a4c3e", size = 121996, upload-time = "2025-11-16T16:13:21.855Z" }, + { url = "https://files.pythonhosted.org/packages/72/4b/5fde11a0722d676e469d3d6f78c6a17591b9c7e0072ca359801c4bd17eee/ruamel_yaml_clib-0.2.15-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:cb15a2e2a90c8475df45c0949793af1ff413acfb0a716b8b94e488ea95ce7cff", size = 149088, upload-time = "2025-11-16T16:13:22.836Z" }, + { url = "https://files.pythonhosted.org/packages/85/82/4d08ac65ecf0ef3b046421985e66301a242804eb9a62c93ca3437dc94ee0/ruamel_yaml_clib-0.2.15-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:64da03cbe93c1e91af133f5bec37fd24d0d4ba2418eaf970d7166b0a26a148a2", size = 134553, upload-time = "2025-11-16T16:13:24.151Z" }, + { url = "https://files.pythonhosted.org/packages/b9/cb/22366d68b280e281a932403b76da7a988108287adff2bfa5ce881200107a/ruamel_yaml_clib-0.2.15-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:f6d3655e95a80325b84c4e14c080b2470fe4f33b6846f288379ce36154993fb1", size = 737468, upload-time = "2025-11-16T20:22:47.335Z" }, + { url = "https://files.pythonhosted.org/packages/71/73/81230babf8c9e33770d43ed9056f603f6f5f9665aea4177a2c30ae48e3f3/ruamel_yaml_clib-0.2.15-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:71845d377c7a47afc6592aacfea738cc8a7e876d586dfba814501d8c53c1ba60", size = 753349, upload-time = "2025-11-16T16:13:26.269Z" }, + { url = "https://files.pythonhosted.org/packages/61/62/150c841f24cda9e30f588ef396ed83f64cfdc13b92d2f925bb96df337ba9/ruamel_yaml_clib-0.2.15-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:11e5499db1ccbc7f4b41f0565e4f799d863ea720e01d3e99fa0b7b5fcd7802c9", size = 788211, upload-time = "2025-11-16T16:13:27.441Z" }, + { url = "https://files.pythonhosted.org/packages/30/93/e79bd9cbecc3267499d9ead919bd61f7ddf55d793fb5ef2b1d7d92444f35/ruamel_yaml_clib-0.2.15-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4b293a37dc97e2b1e8a1aec62792d1e52027087c8eea4fc7b5abd2bdafdd6642", size = 743203, upload-time = "2025-11-16T16:13:28.671Z" }, + { url = "https://files.pythonhosted.org/packages/8d/06/1eb640065c3a27ce92d76157f8efddb184bd484ed2639b712396a20d6dce/ruamel_yaml_clib-0.2.15-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:512571ad41bba04eac7268fe33f7f4742210ca26a81fe0c75357fa682636c690", size = 747292, upload-time = "2025-11-16T20:22:48.584Z" }, + { url = "https://files.pythonhosted.org/packages/a5/21/ee353e882350beab65fcc47a91b6bdc512cace4358ee327af2962892ff16/ruamel_yaml_clib-0.2.15-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e5e9f630c73a490b758bf14d859a39f375e6999aea5ddd2e2e9da89b9953486a", size = 771624, upload-time = "2025-11-16T16:13:29.853Z" }, + { url = "https://files.pythonhosted.org/packages/57/34/cc1b94057aa867c963ecf9ea92ac59198ec2ee3a8d22a126af0b4d4be712/ruamel_yaml_clib-0.2.15-cp312-cp312-win32.whl", hash = "sha256:f4421ab780c37210a07d138e56dd4b51f8642187cdfb433eb687fe8c11de0144", size = 100342, upload-time = "2025-11-16T16:13:31.067Z" }, + { url = "https://files.pythonhosted.org/packages/b3/e5/8925a4208f131b218f9a7e459c0d6fcac8324ae35da269cb437894576366/ruamel_yaml_clib-0.2.15-cp312-cp312-win_amd64.whl", hash = "sha256:2b216904750889133d9222b7b873c199d48ecbb12912aca78970f84a5aa1a4bc", size = 119013, upload-time = "2025-11-16T16:13:32.164Z" }, +] + +[[package]] +name = "safetensors" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/29/9c/6e74567782559a63bd040a236edca26fd71bc7ba88de2ef35d75df3bca5e/safetensors-0.7.0.tar.gz", hash = "sha256:07663963b67e8bd9f0b8ad15bb9163606cd27cc5a1b96235a50d8369803b96b0", size = 200878, upload-time = "2025-11-19T15:18:43.199Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fa/47/aef6c06649039accf914afef490268e1067ed82be62bcfa5b7e886ad15e8/safetensors-0.7.0-cp38-abi3-macosx_10_12_x86_64.whl", hash = "sha256:c82f4d474cf725255d9e6acf17252991c3c8aac038d6ef363a4bf8be2f6db517", size = 467781, upload-time = "2025-11-19T15:18:35.84Z" }, + { url = "https://files.pythonhosted.org/packages/e8/00/374c0c068e30cd31f1e1b46b4b5738168ec79e7689ca82ee93ddfea05109/safetensors-0.7.0-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:94fd4858284736bb67a897a41608b5b0c2496c9bdb3bf2af1fa3409127f20d57", size = 447058, upload-time = "2025-11-19T15:18:34.416Z" }, + { url = "https://files.pythonhosted.org/packages/f1/06/578ffed52c2296f93d7fd2d844cabfa92be51a587c38c8afbb8ae449ca89/safetensors-0.7.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e07d91d0c92a31200f25351f4acb2bc6aff7f48094e13ebb1d0fb995b54b6542", size = 491748, upload-time = "2025-11-19T15:18:09.79Z" }, + { url = "https://files.pythonhosted.org/packages/ae/33/1debbbb70e4791dde185edb9413d1fe01619255abb64b300157d7f15dddd/safetensors-0.7.0-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8469155f4cb518bafb4acf4865e8bb9d6804110d2d9bdcaa78564b9fd841e104", size = 503881, upload-time = "2025-11-19T15:18:16.145Z" }, + { url = "https://files.pythonhosted.org/packages/8e/1c/40c2ca924d60792c3be509833df711b553c60effbd91da6f5284a83f7122/safetensors-0.7.0-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:54bef08bf00a2bff599982f6b08e8770e09cc012d7bba00783fc7ea38f1fb37d", size = 623463, upload-time = "2025-11-19T15:18:21.11Z" }, + { url = "https://files.pythonhosted.org/packages/9b/3a/13784a9364bd43b0d61eef4bea2845039bc2030458b16594a1bd787ae26e/safetensors-0.7.0-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:42cb091236206bb2016d245c377ed383aa7f78691748f3bb6ee1bfa51ae2ce6a", size = 532855, upload-time = "2025-11-19T15:18:25.719Z" }, + { url = "https://files.pythonhosted.org/packages/a0/60/429e9b1cb3fc651937727befe258ea24122d9663e4d5709a48c9cbfceecb/safetensors-0.7.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dac7252938f0696ddea46f5e855dd3138444e82236e3be475f54929f0c510d48", size = 507152, upload-time = "2025-11-19T15:18:33.023Z" }, + { url = "https://files.pythonhosted.org/packages/3c/a8/4b45e4e059270d17af60359713ffd83f97900d45a6afa73aaa0d737d48b6/safetensors-0.7.0-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1d060c70284127fa805085d8f10fbd0962792aed71879d00864acda69dbab981", size = 541856, upload-time = "2025-11-19T15:18:31.075Z" }, + { url = "https://files.pythonhosted.org/packages/06/87/d26d8407c44175d8ae164a95b5a62707fcc445f3c0c56108e37d98070a3d/safetensors-0.7.0-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:cdab83a366799fa730f90a4ebb563e494f28e9e92c4819e556152ad55e43591b", size = 674060, upload-time = "2025-11-19T15:18:37.211Z" }, + { url = "https://files.pythonhosted.org/packages/11/f5/57644a2ff08dc6325816ba7217e5095f17269dada2554b658442c66aed51/safetensors-0.7.0-cp38-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:672132907fcad9f2aedcb705b2d7b3b93354a2aec1b2f706c4db852abe338f85", size = 771715, upload-time = "2025-11-19T15:18:38.689Z" }, + { url = "https://files.pythonhosted.org/packages/86/31/17883e13a814bd278ae6e266b13282a01049b0c81341da7fd0e3e71a80a3/safetensors-0.7.0-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:5d72abdb8a4d56d4020713724ba81dac065fedb7f3667151c4a637f1d3fb26c0", size = 714377, upload-time = "2025-11-19T15:18:40.162Z" }, + { url = "https://files.pythonhosted.org/packages/4a/d8/0c8a7dc9b41dcac53c4cbf9df2b9c83e0e0097203de8b37a712b345c0be5/safetensors-0.7.0-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:b0f6d66c1c538d5a94a73aa9ddca8ccc4227e6c9ff555322ea40bdd142391dd4", size = 677368, upload-time = "2025-11-19T15:18:41.627Z" }, + { url = "https://files.pythonhosted.org/packages/05/e5/cb4b713c8a93469e3c5be7c3f8d77d307e65fe89673e731f5c2bfd0a9237/safetensors-0.7.0-cp38-abi3-win32.whl", hash = "sha256:c74af94bf3ac15ac4d0f2a7c7b4663a15f8c2ab15ed0fc7531ca61d0835eccba", size = 326423, upload-time = "2025-11-19T15:18:45.74Z" }, + { url = "https://files.pythonhosted.org/packages/5d/e6/ec8471c8072382cb91233ba7267fd931219753bb43814cbc71757bfd4dab/safetensors-0.7.0-cp38-abi3-win_amd64.whl", hash = "sha256:d1239932053f56f3456f32eb9625590cc7582e905021f94636202a864d470755", size = 341380, upload-time = "2025-11-19T15:18:44.427Z" }, +] + +[[package]] +name = "scikit-learn" +version = "1.8.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "joblib" }, + { name = "numpy" }, + { name = "scipy" }, + { name = "threadpoolctl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0e/d4/40988bf3b8e34feec1d0e6a051446b1f66225f8529b9309becaeef62b6c4/scikit_learn-1.8.0.tar.gz", hash = "sha256:9bccbb3b40e3de10351f8f5068e105d0f4083b1a65fa07b6634fbc401a6287fd", size = 7335585, upload-time = "2025-12-10T07:08:53.618Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c9/92/53ea2181da8ac6bf27170191028aee7251f8f841f8d3edbfdcaf2008fde9/scikit_learn-1.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:146b4d36f800c013d267b29168813f7a03a43ecd2895d04861f1240b564421da", size = 8595835, upload-time = "2025-12-10T07:07:39.385Z" }, + { url = "https://files.pythonhosted.org/packages/01/18/d154dc1638803adf987910cdd07097d9c526663a55666a97c124d09fb96a/scikit_learn-1.8.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:f984ca4b14914e6b4094c5d52a32ea16b49832c03bd17a110f004db3c223e8e1", size = 8080381, upload-time = "2025-12-10T07:07:41.93Z" }, + { url = "https://files.pythonhosted.org/packages/8a/44/226142fcb7b7101e64fdee5f49dbe6288d4c7af8abf593237b70fca080a4/scikit_learn-1.8.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5e30adb87f0cc81c7690a84f7932dd66be5bac57cfe16b91cb9151683a4a2d3b", size = 8799632, upload-time = "2025-12-10T07:07:43.899Z" }, + { url = "https://files.pythonhosted.org/packages/36/4d/4a67f30778a45d542bbea5db2dbfa1e9e100bf9ba64aefe34215ba9f11f6/scikit_learn-1.8.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ada8121bcb4dac28d930febc791a69f7cb1673c8495e5eee274190b73a4559c1", size = 9103788, upload-time = "2025-12-10T07:07:45.982Z" }, + { url = "https://files.pythonhosted.org/packages/89/3c/45c352094cfa60050bcbb967b1faf246b22e93cb459f2f907b600f2ceda5/scikit_learn-1.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:c57b1b610bd1f40ba43970e11ce62821c2e6569e4d74023db19c6b26f246cb3b", size = 8081706, upload-time = "2025-12-10T07:07:48.111Z" }, + { url = "https://files.pythonhosted.org/packages/3d/46/5416595bb395757f754feb20c3d776553a386b661658fb21b7c814e89efe/scikit_learn-1.8.0-cp311-cp311-win_arm64.whl", hash = "sha256:2838551e011a64e3053ad7618dda9310175f7515f1742fa2d756f7c874c05961", size = 7688451, upload-time = "2025-12-10T07:07:49.873Z" }, + { url = "https://files.pythonhosted.org/packages/90/74/e6a7cc4b820e95cc38cf36cd74d5aa2b42e8ffc2d21fe5a9a9c45c1c7630/scikit_learn-1.8.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:5fb63362b5a7ddab88e52b6dbb47dac3fd7dafeee740dc6c8d8a446ddedade8e", size = 8548242, upload-time = "2025-12-10T07:07:51.568Z" }, + { url = "https://files.pythonhosted.org/packages/49/d8/9be608c6024d021041c7f0b3928d4749a706f4e2c3832bbede4fb4f58c95/scikit_learn-1.8.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:5025ce924beccb28298246e589c691fe1b8c1c96507e6d27d12c5fadd85bfd76", size = 8079075, upload-time = "2025-12-10T07:07:53.697Z" }, + { url = "https://files.pythonhosted.org/packages/dd/47/f187b4636ff80cc63f21cd40b7b2d177134acaa10f6bb73746130ee8c2e5/scikit_learn-1.8.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4496bb2cf7a43ce1a2d7524a79e40bc5da45cf598dbf9545b7e8316ccba47bb4", size = 8660492, upload-time = "2025-12-10T07:07:55.574Z" }, + { url = "https://files.pythonhosted.org/packages/97/74/b7a304feb2b49df9fafa9382d4d09061a96ee9a9449a7cbea7988dda0828/scikit_learn-1.8.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a0bcfe4d0d14aec44921545fd2af2338c7471de9cb701f1da4c9d85906ab847a", size = 8931904, upload-time = "2025-12-10T07:07:57.666Z" }, + { url = "https://files.pythonhosted.org/packages/9f/c4/0ab22726a04ede56f689476b760f98f8f46607caecff993017ac1b64aa5d/scikit_learn-1.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:35c007dedb2ffe38fe3ee7d201ebac4a2deccd2408e8621d53067733e3c74809", size = 8019359, upload-time = "2025-12-10T07:07:59.838Z" }, + { url = "https://files.pythonhosted.org/packages/24/90/344a67811cfd561d7335c1b96ca21455e7e472d281c3c279c4d3f2300236/scikit_learn-1.8.0-cp312-cp312-win_arm64.whl", hash = "sha256:8c497fff237d7b4e07e9ef1a640887fa4fb765647f86fbe00f969ff6280ce2bb", size = 7641898, upload-time = "2025-12-10T07:08:01.36Z" }, +] + +[[package]] +name = "scipy" +version = "1.16.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0a/ca/d8ace4f98322d01abcd52d381134344bf7b431eba7ed8b42bdea5a3c2ac9/scipy-1.16.3.tar.gz", hash = "sha256:01e87659402762f43bd2fee13370553a17ada367d42e7487800bf2916535aecb", size = 30597883, upload-time = "2025-10-28T17:38:54.068Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9b/5f/6f37d7439de1455ce9c5a556b8d1db0979f03a796c030bafdf08d35b7bf9/scipy-1.16.3-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:40be6cf99e68b6c4321e9f8782e7d5ff8265af28ef2cd56e9c9b2638fa08ad97", size = 36630881, upload-time = "2025-10-28T17:31:47.104Z" }, + { url = "https://files.pythonhosted.org/packages/7c/89/d70e9f628749b7e4db2aa4cd89735502ff3f08f7b9b27d2e799485987cd9/scipy-1.16.3-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:8be1ca9170fcb6223cc7c27f4305d680ded114a1567c0bd2bfcbf947d1b17511", size = 28941012, upload-time = "2025-10-28T17:31:53.411Z" }, + { url = "https://files.pythonhosted.org/packages/a8/a8/0e7a9a6872a923505dbdf6bb93451edcac120363131c19013044a1e7cb0c/scipy-1.16.3-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:bea0a62734d20d67608660f69dcda23e7f90fb4ca20974ab80b6ed40df87a005", size = 20931935, upload-time = "2025-10-28T17:31:57.361Z" }, + { url = "https://files.pythonhosted.org/packages/bd/c7/020fb72bd79ad798e4dbe53938543ecb96b3a9ac3fe274b7189e23e27353/scipy-1.16.3-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:2a207a6ce9c24f1951241f4693ede2d393f59c07abc159b2cb2be980820e01fb", size = 23534466, upload-time = "2025-10-28T17:32:01.875Z" }, + { url = "https://files.pythonhosted.org/packages/be/a0/668c4609ce6dbf2f948e167836ccaf897f95fb63fa231c87da7558a374cd/scipy-1.16.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:532fb5ad6a87e9e9cd9c959b106b73145a03f04c7d57ea3e6f6bb60b86ab0876", size = 33593618, upload-time = "2025-10-28T17:32:06.902Z" }, + { url = "https://files.pythonhosted.org/packages/ca/6e/8942461cf2636cdae083e3eb72622a7fbbfa5cf559c7d13ab250a5dbdc01/scipy-1.16.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0151a0749efeaaab78711c78422d413c583b8cdd2011a3c1d6c794938ee9fdb2", size = 35899798, upload-time = "2025-10-28T17:32:12.665Z" }, + { url = "https://files.pythonhosted.org/packages/79/e8/d0f33590364cdbd67f28ce79368b373889faa4ee959588beddf6daef9abe/scipy-1.16.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:b7180967113560cca57418a7bc719e30366b47959dd845a93206fbed693c867e", size = 36226154, upload-time = "2025-10-28T17:32:17.961Z" }, + { url = "https://files.pythonhosted.org/packages/39/c1/1903de608c0c924a1749c590064e65810f8046e437aba6be365abc4f7557/scipy-1.16.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:deb3841c925eeddb6afc1e4e4a45e418d19ec7b87c5df177695224078e8ec733", size = 38878540, upload-time = "2025-10-28T17:32:23.907Z" }, + { url = "https://files.pythonhosted.org/packages/f1/d0/22ec7036ba0b0a35bccb7f25ab407382ed34af0b111475eb301c16f8a2e5/scipy-1.16.3-cp311-cp311-win_amd64.whl", hash = "sha256:53c3844d527213631e886621df5695d35e4f6a75f620dca412bcd292f6b87d78", size = 38722107, upload-time = "2025-10-28T17:32:29.921Z" }, + { url = "https://files.pythonhosted.org/packages/7b/60/8a00e5a524bb3bf8898db1650d350f50e6cffb9d7a491c561dc9826c7515/scipy-1.16.3-cp311-cp311-win_arm64.whl", hash = "sha256:9452781bd879b14b6f055b26643703551320aa8d79ae064a71df55c00286a184", size = 25506272, upload-time = "2025-10-28T17:32:34.577Z" }, + { url = "https://files.pythonhosted.org/packages/40/41/5bf55c3f386b1643812f3a5674edf74b26184378ef0f3e7c7a09a7e2ca7f/scipy-1.16.3-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:81fc5827606858cf71446a5e98715ba0e11f0dbc83d71c7409d05486592a45d6", size = 36659043, upload-time = "2025-10-28T17:32:40.285Z" }, + { url = "https://files.pythonhosted.org/packages/1e/0f/65582071948cfc45d43e9870bf7ca5f0e0684e165d7c9ef4e50d783073eb/scipy-1.16.3-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:c97176013d404c7346bf57874eaac5187d969293bf40497140b0a2b2b7482e07", size = 28898986, upload-time = "2025-10-28T17:32:45.325Z" }, + { url = "https://files.pythonhosted.org/packages/96/5e/36bf3f0ac298187d1ceadde9051177d6a4fe4d507e8f59067dc9dd39e650/scipy-1.16.3-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:2b71d93c8a9936046866acebc915e2af2e292b883ed6e2cbe5c34beb094b82d9", size = 20889814, upload-time = "2025-10-28T17:32:49.277Z" }, + { url = "https://files.pythonhosted.org/packages/80/35/178d9d0c35394d5d5211bbff7ac4f2986c5488b59506fef9e1de13ea28d3/scipy-1.16.3-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:3d4a07a8e785d80289dfe66b7c27d8634a773020742ec7187b85ccc4b0e7b686", size = 23565795, upload-time = "2025-10-28T17:32:53.337Z" }, + { url = "https://files.pythonhosted.org/packages/fa/46/d1146ff536d034d02f83c8afc3c4bab2eddb634624d6529a8512f3afc9da/scipy-1.16.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0553371015692a898e1aa858fed67a3576c34edefa6b7ebdb4e9dde49ce5c203", size = 33349476, upload-time = "2025-10-28T17:32:58.353Z" }, + { url = "https://files.pythonhosted.org/packages/79/2e/415119c9ab3e62249e18c2b082c07aff907a273741b3f8160414b0e9193c/scipy-1.16.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:72d1717fd3b5e6ec747327ce9bda32d5463f472c9dce9f54499e81fbd50245a1", size = 35676692, upload-time = "2025-10-28T17:33:03.88Z" }, + { url = "https://files.pythonhosted.org/packages/27/82/df26e44da78bf8d2aeaf7566082260cfa15955a5a6e96e6a29935b64132f/scipy-1.16.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1fb2472e72e24d1530debe6ae078db70fb1605350c88a3d14bc401d6306dbffe", size = 36019345, upload-time = "2025-10-28T17:33:09.773Z" }, + { url = "https://files.pythonhosted.org/packages/82/31/006cbb4b648ba379a95c87262c2855cd0d09453e500937f78b30f02fa1cd/scipy-1.16.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c5192722cffe15f9329a3948c4b1db789fbb1f05c97899187dcf009b283aea70", size = 38678975, upload-time = "2025-10-28T17:33:15.809Z" }, + { url = "https://files.pythonhosted.org/packages/c2/7f/acbd28c97e990b421af7d6d6cd416358c9c293fc958b8529e0bd5d2a2a19/scipy-1.16.3-cp312-cp312-win_amd64.whl", hash = "sha256:56edc65510d1331dae01ef9b658d428e33ed48b4f77b1d51caf479a0253f96dc", size = 38555926, upload-time = "2025-10-28T17:33:21.388Z" }, + { url = "https://files.pythonhosted.org/packages/ce/69/c5c7807fd007dad4f48e0a5f2153038dc96e8725d3345b9ee31b2b7bed46/scipy-1.16.3-cp312-cp312-win_arm64.whl", hash = "sha256:a8a26c78ef223d3e30920ef759e25625a0ecdd0d60e5a8818b7513c3e5384cf2", size = 25463014, upload-time = "2025-10-28T17:33:25.975Z" }, +] + +[[package]] +name = "sentence-transformers" +version = "3.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "huggingface-hub" }, + { name = "numpy" }, + { name = "pillow" }, + { name = "scikit-learn" }, + { name = "scipy" }, + { name = "torch" }, + { name = "tqdm" }, + { name = "transformers" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/19/c0/7051c672a48fe561decf7208cc18bbbdd4efa3323873aa1c86a3fb77fd97/sentence_transformers-3.0.0.tar.gz", hash = "sha256:52d4101654ed107a28e9fa5110fce399084b55e7838fd8256471353ddc299033", size = 174658, upload-time = "2024-05-28T11:53:39.129Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f8/c4/99a9386808025d5a546576243bfd3b1eb669f978b8a0e05a1253eaf89bf0/sentence_transformers-3.0.0-py3-none-any.whl", hash = "sha256:9bf851b688b796e5fb06c920921efd5e5e05ee616e85cb3026fbdfe4dcf15bf3", size = 224681, upload-time = "2024-05-28T11:53:37.037Z" }, +] + +[[package]] +name = "setuptools" +version = "80.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/18/5d/3bf57dcd21979b887f014ea83c24ae194cfcd12b9e0fda66b957c69d1fca/setuptools-80.9.0.tar.gz", hash = "sha256:f36b47402ecde768dbfafc46e8e4207b4360c654f1f3bb84475f0a28628fb19c", size = 1319958, upload-time = "2025-05-27T00:56:51.443Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a3/dc/17031897dae0efacfea57dfd3a82fdd2a2aeb58e0ff71b77b87e44edc772/setuptools-80.9.0-py3-none-any.whl", hash = "sha256:062d34222ad13e0cc312a4c02d73f059e86a4acbfbdea8f8f76b28c99f306922", size = 1201486, upload-time = "2025-05-27T00:56:49.664Z" }, +] + +[[package]] +name = "six" +version = "1.17.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031, upload-time = "2024-12-04T17:35:28.174Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, +] + +[[package]] +name = "slack-sdk" +version = "3.31.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a5/e3/4a2491cbf793bb8da8a51120207df8c097faeda42bf720f7acf7c40e4ca8/slack_sdk-3.31.0.tar.gz", hash = "sha256:740d2f9c49cbfcbd46fca56b4be9d527934c225312aac18fd2c0fca0ef6bc935", size = 230928, upload-time = "2024-07-04T16:40:39.019Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/57/04/f4517d8403c49910f45ad91205de352f2eccf12ae28865a27da7d7d05bf6/slack_sdk-3.31.0-py2.py3-none-any.whl", hash = "sha256:a120cc461e8ebb7d9175f171dbe0ded37a6878d9f7b96b28e4bad1227399047b", size = 289845, upload-time = "2024-07-04T16:40:36.34Z" }, +] + +[[package]] +name = "sniffio" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a2/87/a6771e1546d97e7e041b6ae58d80074f81b7d5121207425c964ddf5cfdbd/sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc", size = 20372, upload-time = "2024-02-25T23:20:04.057Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235, upload-time = "2024-02-25T23:20:01.196Z" }, +] + +[[package]] +name = "soupsieve" +version = "2.8" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6d/e6/21ccce3262dd4889aa3332e5a119a3491a95e8f60939870a3a035aabac0d/soupsieve-2.8.tar.gz", hash = "sha256:e2dd4a40a628cb5f28f6d4b0db8800b8f581b65bb380b97de22ba5ca8d72572f", size = 103472, upload-time = "2025-08-27T15:39:51.78Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/14/a0/bb38d3b76b8cae341dad93a2dd83ab7462e6dbcdd84d43f54ee60a8dc167/soupsieve-2.8-py3-none-any.whl", hash = "sha256:0cc76456a30e20f5d7f2e14a98a4ae2ee4e5abdc7c5ea0aafe795f344bc7984c", size = 36679, upload-time = "2025-08-27T15:39:50.179Z" }, +] + +[[package]] +name = "sse-starlette" +version = "3.0.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "starlette" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/17/8b/54651ad49bce99a50fd61a7f19c2b6a79fbb072e693101fbb1194c362054/sse_starlette-3.0.4.tar.gz", hash = "sha256:5e34286862e96ead0eb70f5ddd0bd21ab1f6473a8f44419dd267f431611383dd", size = 22576, upload-time = "2025-12-14T16:22:52.493Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/71/22/8ab1066358601163e1ac732837adba3672f703818f693e179b24e0d3b65c/sse_starlette-3.0.4-py3-none-any.whl", hash = "sha256:32c80ef0d04506ced4b0b6ab8fe300925edc37d26f666afb1874c754895f5dc3", size = 11764, upload-time = "2025-12-14T16:22:51.453Z" }, +] + +[[package]] +name = "stack-data" +version = "0.6.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "asttokens" }, + { name = "executing" }, + { name = "pure-eval" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/28/e3/55dcc2cfbc3ca9c29519eb6884dd1415ecb53b0e934862d3559ddcb7e20b/stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9", size = 44707, upload-time = "2023-09-30T13:58:05.479Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695", size = 24521, upload-time = "2023-09-30T13:58:03.53Z" }, +] + +[[package]] +name = "starlette" +version = "0.50.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ba/b8/73a0e6a6e079a9d9cfa64113d771e421640b6f679a52eeb9b32f72d871a1/starlette-0.50.0.tar.gz", hash = "sha256:a2a17b22203254bcbc2e1f926d2d55f3f9497f769416b3190768befe598fa3ca", size = 2646985, upload-time = "2025-11-01T15:25:27.516Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d9/52/1064f510b141bd54025f9b55105e26d1fa970b9be67ad766380a3c9b74b0/starlette-0.50.0-py3-none-any.whl", hash = "sha256:9e5391843ec9b6e472eed1365a78c8098cfceb7a74bfd4d6b1c0c0095efb3bca", size = 74033, upload-time = "2025-11-01T15:25:25.461Z" }, +] + +[[package]] +name = "sympy" +version = "1.14.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mpmath" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/83/d3/803453b36afefb7c2bb238361cd4ae6125a569b4db67cd9e79846ba2d68c/sympy-1.14.0.tar.gz", hash = "sha256:d3d3fe8df1e5a0b42f0e7bdf50541697dbe7d23746e894990c030e2b05e72517", size = 7793921, upload-time = "2025-04-27T18:05:01.611Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a2/09/77d55d46fd61b4a135c444fc97158ef34a095e5681d0a6c10b75bf356191/sympy-1.14.0-py3-none-any.whl", hash = "sha256:e091cc3e99d2141a0ba2847328f5479b05d94a6635cb96148ccb3f34671bd8f5", size = 6299353, upload-time = "2025-04-27T18:04:59.103Z" }, +] + +[[package]] +name = "tabulate" +version = "0.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ec/fe/802052aecb21e3797b8f7902564ab6ea0d60ff8ca23952079064155d1ae1/tabulate-0.9.0.tar.gz", hash = "sha256:0095b12bf5966de529c0feb1fa08671671b3368eec77d7ef7ab114be2c068b3c", size = 81090, upload-time = "2022-10-06T17:21:48.54Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/40/44/4a5f08c96eb108af5cb50b41f76142f0afa346dfa99d5296fe7202a11854/tabulate-0.9.0-py3-none-any.whl", hash = "sha256:024ca478df22e9340661486f85298cff5f6dcdba14f3813e8830015b9ed1948f", size = 35252, upload-time = "2022-10-06T17:21:44.262Z" }, +] + +[[package]] +name = "texttable" +version = "1.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1c/dc/0aff23d6036a4d3bf4f1d8c8204c5c79c4437e25e0ae94ffe4bbb55ee3c2/texttable-1.7.0.tar.gz", hash = "sha256:2d2068fb55115807d3ac77a4ca68fa48803e84ebb0ee2340f858107a36522638", size = 12831, upload-time = "2023-10-03T09:48:12.272Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/24/99/4772b8e00a136f3e01236de33b0efda31ee7077203ba5967fcc76da94d65/texttable-1.7.0-py2.py3-none-any.whl", hash = "sha256:72227d592c82b3d7f672731ae73e4d1f88cd8e2ef5b075a7a7f01a23a3743917", size = 10768, upload-time = "2023-10-03T09:48:10.434Z" }, +] + +[[package]] +name = "threadpoolctl" +version = "3.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b7/4d/08c89e34946fce2aec4fbb45c9016efd5f4d7f24af8e5d93296e935631d8/threadpoolctl-3.6.0.tar.gz", hash = "sha256:8ab8b4aa3491d812b623328249fab5302a68d2d71745c8a4c719a2fcaba9f44e", size = 21274, upload-time = "2025-03-13T13:49:23.031Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/32/d5/f9a850d79b0851d1d4ef6456097579a9005b31fea68726a4ae5f2d82ddd9/threadpoolctl-3.6.0-py3-none-any.whl", hash = "sha256:43a0b8fd5a2928500110039e43a5eed8480b918967083ea48dc3ab9f13c4a7fb", size = 18638, upload-time = "2025-03-13T13:49:21.846Z" }, +] + +[[package]] +name = "tiktoken" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "regex" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c4/4a/abaec53e93e3ef37224a4dd9e2fc6bb871e7a538c2b6b9d2a6397271daf4/tiktoken-0.7.0.tar.gz", hash = "sha256:1077266e949c24e0291f6c350433c6f0971365ece2b173a23bc3b9f9defef6b6", size = 33437, upload-time = "2024-05-13T18:03:28.793Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/22/eb/57492b2568eea1d546da5cc1ae7559d924275280db80ba07e6f9b89a914b/tiktoken-0.7.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:10c7674f81e6e350fcbed7c09a65bca9356eaab27fb2dac65a1e440f2bcfe30f", size = 961468, upload-time = "2024-05-13T18:02:43.788Z" }, + { url = "https://files.pythonhosted.org/packages/30/ef/e07dbfcb2f85c84abaa1b035a9279575a8da0236305491dc22ae099327f7/tiktoken-0.7.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:084cec29713bc9d4189a937f8a35dbdfa785bd1235a34c1124fe2323821ee93f", size = 907005, upload-time = "2024-05-13T18:02:45.327Z" }, + { url = "https://files.pythonhosted.org/packages/ea/9b/f36db825b1e9904c3a2646439cb9923fc1e09208e2e071c6d9dd64ead131/tiktoken-0.7.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:811229fde1652fedcca7c6dfe76724d0908775b353556d8a71ed74d866f73f7b", size = 1049183, upload-time = "2024-05-13T18:02:46.574Z" }, + { url = "https://files.pythonhosted.org/packages/61/b4/b80d1fe33015e782074e96bbbf4108ccd283b8deea86fb43c15d18b7c351/tiktoken-0.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86b6e7dc2e7ad1b3757e8a24597415bafcfb454cebf9a33a01f2e6ba2e663992", size = 1080830, upload-time = "2024-05-13T18:02:48.444Z" }, + { url = "https://files.pythonhosted.org/packages/2a/40/c66ff3a21af6d62a7e0ff428d12002c4e0389f776d3ff96dcaa0bb354eee/tiktoken-0.7.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1063c5748be36344c7e18c7913c53e2cca116764c2080177e57d62c7ad4576d1", size = 1092967, upload-time = "2024-05-13T18:02:50.006Z" }, + { url = "https://files.pythonhosted.org/packages/2e/80/f4c9e255ff236e6a69ce44b927629cefc1b63d3a00e2d1c9ed540c9492d2/tiktoken-0.7.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:20295d21419bfcca092644f7e2f2138ff947a6eb8cfc732c09cc7d76988d4a89", size = 1142682, upload-time = "2024-05-13T18:02:51.814Z" }, + { url = "https://files.pythonhosted.org/packages/b1/10/c04b4ff592a5f46b28ebf4c2353f735c02ae7f0ce1b165d00748ced6467e/tiktoken-0.7.0-cp311-cp311-win_amd64.whl", hash = "sha256:959d993749b083acc57a317cbc643fb85c014d055b2119b739487288f4e5d1cb", size = 799009, upload-time = "2024-05-13T18:02:53.057Z" }, + { url = "https://files.pythonhosted.org/packages/1d/46/4cdda4186ce900608f522da34acf442363346688c71b938a90a52d7b84cc/tiktoken-0.7.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:71c55d066388c55a9c00f61d2c456a6086673ab7dec22dd739c23f77195b1908", size = 960446, upload-time = "2024-05-13T18:02:54.409Z" }, + { url = "https://files.pythonhosted.org/packages/b6/30/09ced367d280072d7a3e21f34263dfbbf6378661e7a0f6414e7c18971083/tiktoken-0.7.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:09ed925bccaa8043e34c519fbb2f99110bd07c6fd67714793c21ac298e449410", size = 906652, upload-time = "2024-05-13T18:02:56.25Z" }, + { url = "https://files.pythonhosted.org/packages/e6/7b/c949e4954441a879a67626963dff69096e3c774758b9f2bb0853f7b4e1e7/tiktoken-0.7.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:03c6c40ff1db0f48a7b4d2dafeae73a5607aacb472fa11f125e7baf9dce73704", size = 1047904, upload-time = "2024-05-13T18:02:57.707Z" }, + { url = "https://files.pythonhosted.org/packages/50/81/1842a22f15586072280364c2ab1e40835adaf64e42fe80e52aff921ee021/tiktoken-0.7.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d20b5c6af30e621b4aca094ee61777a44118f52d886dbe4f02b70dfe05c15350", size = 1079836, upload-time = "2024-05-13T18:02:59.009Z" }, + { url = "https://files.pythonhosted.org/packages/6d/87/51a133a3d5307cf7ae3754249b0faaa91d3414b85c3d36f80b54d6817aa6/tiktoken-0.7.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d427614c3e074004efa2f2411e16c826f9df427d3c70a54725cae860f09e4bf4", size = 1092472, upload-time = "2024-05-13T18:03:00.597Z" }, + { url = "https://files.pythonhosted.org/packages/a5/1f/c93517dc6d3b2c9e988b8e24f87a8b2d4a4ab28920a3a3f3ea338397ae0c/tiktoken-0.7.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8c46d7af7b8c6987fac9b9f61041b452afe92eb087d29c9ce54951280f899a97", size = 1141881, upload-time = "2024-05-13T18:03:02.743Z" }, + { url = "https://files.pythonhosted.org/packages/bf/4b/48ca098cb580c099b5058bf62c4cb5e90ca6130fa43ef4df27088536245b/tiktoken-0.7.0-cp312-cp312-win_amd64.whl", hash = "sha256:0bc603c30b9e371e7c4c7935aba02af5994a909fc3c0fe66e7004070858d3f8f", size = 799281, upload-time = "2024-05-13T18:03:04.036Z" }, +] + +[[package]] +name = "tinycss2" +version = "1.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "webencodings" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7a/fd/7a5ee21fd08ff70d3d33a5781c255cbe779659bd03278feb98b19ee550f4/tinycss2-1.4.0.tar.gz", hash = "sha256:10c0972f6fc0fbee87c3edb76549357415e94548c1ae10ebccdea16fb404a9b7", size = 87085, upload-time = "2024-10-24T14:58:29.895Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e6/34/ebdc18bae6aa14fbee1a08b63c015c72b64868ff7dae68808ab500c492e2/tinycss2-1.4.0-py3-none-any.whl", hash = "sha256:3a49cf47b7675da0b15d0c6e1df8df4ebd96e9394bb905a5775adb0d884c5289", size = 26610, upload-time = "2024-10-24T14:58:28.029Z" }, +] + +[[package]] +name = "tokenizers" +version = "0.22.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "huggingface-hub" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1c/46/fb6854cec3278fbfa4a75b50232c77622bc517ac886156e6afbfa4d8fc6e/tokenizers-0.22.1.tar.gz", hash = "sha256:61de6522785310a309b3407bac22d99c4db5dba349935e99e4d15ea2226af2d9", size = 363123, upload-time = "2025-09-19T09:49:23.424Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bf/33/f4b2d94ada7ab297328fc671fed209368ddb82f965ec2224eb1892674c3a/tokenizers-0.22.1-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:59fdb013df17455e5f950b4b834a7b3ee2e0271e6378ccb33aa74d178b513c73", size = 3069318, upload-time = "2025-09-19T09:49:11.848Z" }, + { url = "https://files.pythonhosted.org/packages/1c/58/2aa8c874d02b974990e89ff95826a4852a8b2a273c7d1b4411cdd45a4565/tokenizers-0.22.1-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:8d4e484f7b0827021ac5f9f71d4794aaef62b979ab7608593da22b1d2e3c4edc", size = 2926478, upload-time = "2025-09-19T09:49:09.759Z" }, + { url = "https://files.pythonhosted.org/packages/1e/3b/55e64befa1e7bfea963cf4b787b2cea1011362c4193f5477047532ce127e/tokenizers-0.22.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:19d2962dd28bc67c1f205ab180578a78eef89ac60ca7ef7cbe9635a46a56422a", size = 3256994, upload-time = "2025-09-19T09:48:56.701Z" }, + { url = "https://files.pythonhosted.org/packages/71/0b/fbfecf42f67d9b7b80fde4aabb2b3110a97fac6585c9470b5bff103a80cb/tokenizers-0.22.1-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:38201f15cdb1f8a6843e6563e6e79f4abd053394992b9bbdf5213ea3469b4ae7", size = 3153141, upload-time = "2025-09-19T09:48:59.749Z" }, + { url = "https://files.pythonhosted.org/packages/17/a9/b38f4e74e0817af8f8ef925507c63c6ae8171e3c4cb2d5d4624bf58fca69/tokenizers-0.22.1-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d1cbe5454c9a15df1b3443c726063d930c16f047a3cc724b9e6e1a91140e5a21", size = 3508049, upload-time = "2025-09-19T09:49:05.868Z" }, + { url = "https://files.pythonhosted.org/packages/d2/48/dd2b3dac46bb9134a88e35d72e1aa4869579eacc1a27238f1577270773ff/tokenizers-0.22.1-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e7d094ae6312d69cc2a872b54b91b309f4f6fbce871ef28eb27b52a98e4d0214", size = 3710730, upload-time = "2025-09-19T09:49:01.832Z" }, + { url = "https://files.pythonhosted.org/packages/93/0e/ccabc8d16ae4ba84a55d41345207c1e2ea88784651a5a487547d80851398/tokenizers-0.22.1-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:afd7594a56656ace95cdd6df4cca2e4059d294c5cfb1679c57824b605556cb2f", size = 3412560, upload-time = "2025-09-19T09:49:03.867Z" }, + { url = "https://files.pythonhosted.org/packages/d0/c6/dc3a0db5a6766416c32c034286d7c2d406da1f498e4de04ab1b8959edd00/tokenizers-0.22.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e2ef6063d7a84994129732b47e7915e8710f27f99f3a3260b8a38fc7ccd083f4", size = 3250221, upload-time = "2025-09-19T09:49:07.664Z" }, + { url = "https://files.pythonhosted.org/packages/d7/a6/2c8486eef79671601ff57b093889a345dd3d576713ef047776015dc66de7/tokenizers-0.22.1-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:ba0a64f450b9ef412c98f6bcd2a50c6df6e2443b560024a09fa6a03189726879", size = 9345569, upload-time = "2025-09-19T09:49:14.214Z" }, + { url = "https://files.pythonhosted.org/packages/6b/16/32ce667f14c35537f5f605fe9bea3e415ea1b0a646389d2295ec348d5657/tokenizers-0.22.1-cp39-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:331d6d149fa9c7d632cde4490fb8bbb12337fa3a0232e77892be656464f4b446", size = 9271599, upload-time = "2025-09-19T09:49:16.639Z" }, + { url = "https://files.pythonhosted.org/packages/51/7c/a5f7898a3f6baa3fc2685c705e04c98c1094c523051c805cdd9306b8f87e/tokenizers-0.22.1-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:607989f2ea68a46cb1dfbaf3e3aabdf3f21d8748312dbeb6263d1b3b66c5010a", size = 9533862, upload-time = "2025-09-19T09:49:19.146Z" }, + { url = "https://files.pythonhosted.org/packages/36/65/7e75caea90bc73c1dd8d40438adf1a7bc26af3b8d0a6705ea190462506e1/tokenizers-0.22.1-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a0f307d490295717726598ef6fa4f24af9d484809223bbc253b201c740a06390", size = 9681250, upload-time = "2025-09-19T09:49:21.501Z" }, + { url = "https://files.pythonhosted.org/packages/30/2c/959dddef581b46e6209da82df3b78471e96260e2bc463f89d23b1bf0e52a/tokenizers-0.22.1-cp39-abi3-win32.whl", hash = "sha256:b5120eed1442765cd90b903bb6cfef781fd8fe64e34ccaecbae4c619b7b12a82", size = 2472003, upload-time = "2025-09-19T09:49:27.089Z" }, + { url = "https://files.pythonhosted.org/packages/b3/46/e33a8c93907b631a99377ef4c5f817ab453d0b34f93529421f42ff559671/tokenizers-0.22.1-cp39-abi3-win_amd64.whl", hash = "sha256:65fd6e3fb11ca1e78a6a93602490f134d1fdeb13bcef99389d5102ea318ed138", size = 2674684, upload-time = "2025-09-19T09:49:24.953Z" }, +] + +[[package]] +name = "torch" +version = "2.9.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "filelock" }, + { name = "fsspec" }, + { name = "jinja2" }, + { name = "networkx" }, + { name = "nvidia-cublas-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-cuda-cupti-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-cuda-nvrtc-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-cuda-runtime-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-cudnn-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-cufft-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-cufile-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-curand-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-cusolver-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-cusparse-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-cusparselt-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-nccl-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-nvjitlink-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-nvshmem-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-nvtx-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "setuptools", marker = "python_full_version >= '3.12'" }, + { name = "sympy" }, + { name = "triton", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "typing-extensions" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/15/db/c064112ac0089af3d2f7a2b5bfbabf4aa407a78b74f87889e524b91c5402/torch-2.9.1-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:62b3fd888277946918cba4478cf849303da5359f0fb4e3bfb86b0533ba2eaf8d", size = 104220430, upload-time = "2025-11-12T15:20:31.705Z" }, + { url = "https://files.pythonhosted.org/packages/56/be/76eaa36c9cd032d3b01b001e2c5a05943df75f26211f68fae79e62f87734/torch-2.9.1-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:d033ff0ac3f5400df862a51bdde9bad83561f3739ea0046e68f5401ebfa67c1b", size = 899821446, upload-time = "2025-11-12T15:20:15.544Z" }, + { url = "https://files.pythonhosted.org/packages/47/cc/7a2949e38dfe3244c4df21f0e1c27bce8aedd6c604a587dd44fc21017cb4/torch-2.9.1-cp311-cp311-win_amd64.whl", hash = "sha256:0d06b30a9207b7c3516a9e0102114024755a07045f0c1d2f2a56b1819ac06bcb", size = 110973074, upload-time = "2025-11-12T15:21:39.958Z" }, + { url = "https://files.pythonhosted.org/packages/1e/ce/7d251155a783fb2c1bb6837b2b7023c622a2070a0a72726ca1df47e7ea34/torch-2.9.1-cp311-none-macosx_11_0_arm64.whl", hash = "sha256:52347912d868653e1528b47cafaf79b285b98be3f4f35d5955389b1b95224475", size = 74463887, upload-time = "2025-11-12T15:20:36.611Z" }, + { url = "https://files.pythonhosted.org/packages/0f/27/07c645c7673e73e53ded71705045d6cb5bae94c4b021b03aa8d03eee90ab/torch-2.9.1-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:da5f6f4d7f4940a173e5572791af238cb0b9e21b1aab592bd8b26da4c99f1cd6", size = 104126592, upload-time = "2025-11-12T15:20:41.62Z" }, + { url = "https://files.pythonhosted.org/packages/19/17/e377a460603132b00760511299fceba4102bd95db1a0ee788da21298ccff/torch-2.9.1-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:27331cd902fb4322252657f3902adf1c4f6acad9dcad81d8df3ae14c7c4f07c4", size = 899742281, upload-time = "2025-11-12T15:22:17.602Z" }, + { url = "https://files.pythonhosted.org/packages/b1/1a/64f5769025db846a82567fa5b7d21dba4558a7234ee631712ee4771c436c/torch-2.9.1-cp312-cp312-win_amd64.whl", hash = "sha256:81a285002d7b8cfd3fdf1b98aa8df138d41f1a8334fd9ea37511517cedf43083", size = 110940568, upload-time = "2025-11-12T15:21:18.689Z" }, + { url = "https://files.pythonhosted.org/packages/6e/ab/07739fd776618e5882661d04c43f5b5586323e2f6a2d7d84aac20d8f20bd/torch-2.9.1-cp312-none-macosx_11_0_arm64.whl", hash = "sha256:c0d25d1d8e531b8343bea0ed811d5d528958f1dcbd37e7245bc686273177ad7e", size = 74479191, upload-time = "2025-11-12T15:21:25.816Z" }, +] + +[[package]] +name = "tornado" +version = "6.5.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/37/1d/0a336abf618272d53f62ebe274f712e213f5a03c0b2339575430b8362ef2/tornado-6.5.4.tar.gz", hash = "sha256:a22fa9047405d03260b483980635f0b041989d8bcc9a313f8fe18b411d84b1d7", size = 513632, upload-time = "2025-12-15T19:21:03.836Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ab/a9/e94a9d5224107d7ce3cc1fab8d5dc97f5ea351ccc6322ee4fb661da94e35/tornado-6.5.4-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:d6241c1a16b1c9e4cc28148b1cda97dd1c6cb4fb7068ac1bedc610768dff0ba9", size = 443909, upload-time = "2025-12-15T19:20:48.382Z" }, + { url = "https://files.pythonhosted.org/packages/db/7e/f7b8d8c4453f305a51f80dbb49014257bb7d28ccb4bbb8dd328ea995ecad/tornado-6.5.4-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:2d50f63dda1d2cac3ae1fa23d254e16b5e38153758470e9956cbc3d813d40843", size = 442163, upload-time = "2025-12-15T19:20:49.791Z" }, + { url = "https://files.pythonhosted.org/packages/ba/b5/206f82d51e1bfa940ba366a8d2f83904b15942c45a78dd978b599870ab44/tornado-6.5.4-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1cf66105dc6acb5af613c054955b8137e34a03698aa53272dbda4afe252be17", size = 445746, upload-time = "2025-12-15T19:20:51.491Z" }, + { url = "https://files.pythonhosted.org/packages/8e/9d/1a3338e0bd30ada6ad4356c13a0a6c35fbc859063fa7eddb309183364ac1/tornado-6.5.4-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:50ff0a58b0dc97939d29da29cd624da010e7f804746621c78d14b80238669335", size = 445083, upload-time = "2025-12-15T19:20:52.778Z" }, + { url = "https://files.pythonhosted.org/packages/50/d4/e51d52047e7eb9a582da59f32125d17c0482d065afd5d3bc435ff2120dc5/tornado-6.5.4-cp39-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e5fb5e04efa54cf0baabdd10061eb4148e0be137166146fff835745f59ab9f7f", size = 445315, upload-time = "2025-12-15T19:20:53.996Z" }, + { url = "https://files.pythonhosted.org/packages/27/07/2273972f69ca63dbc139694a3fc4684edec3ea3f9efabf77ed32483b875c/tornado-6.5.4-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9c86b1643b33a4cd415f8d0fe53045f913bf07b4a3ef646b735a6a86047dda84", size = 446003, upload-time = "2025-12-15T19:20:56.101Z" }, + { url = "https://files.pythonhosted.org/packages/d1/83/41c52e47502bf7260044413b6770d1a48dda2f0246f95ee1384a3cd9c44a/tornado-6.5.4-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:6eb82872335a53dd063a4f10917b3efd28270b56a33db69009606a0312660a6f", size = 445412, upload-time = "2025-12-15T19:20:57.398Z" }, + { url = "https://files.pythonhosted.org/packages/10/c7/bc96917f06cbee182d44735d4ecde9c432e25b84f4c2086143013e7b9e52/tornado-6.5.4-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:6076d5dda368c9328ff41ab5d9dd3608e695e8225d1cd0fd1e006f05da3635a8", size = 445392, upload-time = "2025-12-15T19:20:58.692Z" }, + { url = "https://files.pythonhosted.org/packages/0c/1a/d7592328d037d36f2d2462f4bc1fbb383eec9278bc786c1b111cbbd44cfa/tornado-6.5.4-cp39-abi3-win32.whl", hash = "sha256:1768110f2411d5cd281bac0a090f707223ce77fd110424361092859e089b38d1", size = 446481, upload-time = "2025-12-15T19:21:00.008Z" }, + { url = "https://files.pythonhosted.org/packages/d6/6d/c69be695a0a64fd37a97db12355a035a6d90f79067a3cf936ec2b1dc38cd/tornado-6.5.4-cp39-abi3-win_amd64.whl", hash = "sha256:fa07d31e0cd85c60713f2b995da613588aa03e1303d75705dca6af8babc18ddc", size = 446886, upload-time = "2025-12-15T19:21:01.287Z" }, + { url = "https://files.pythonhosted.org/packages/50/49/8dc3fd90902f70084bd2cd059d576ddb4f8bb44c2c7c0e33a11422acb17e/tornado-6.5.4-cp39-abi3-win_arm64.whl", hash = "sha256:053e6e16701eb6cbe641f308f4c1a9541f91b6261991160391bfc342e8a551a1", size = 445910, upload-time = "2025-12-15T19:21:02.571Z" }, +] + +[[package]] +name = "tqdm" +version = "4.67.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a8/4b/29b4ef32e036bb34e4ab51796dd745cdba7ed47ad142a9f4a1eb8e0c744d/tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2", size = 169737, upload-time = "2024-11-24T20:12:22.481Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2", size = 78540, upload-time = "2024-11-24T20:12:19.698Z" }, +] + +[[package]] +name = "traitlets" +version = "5.14.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/eb/79/72064e6a701c2183016abbbfedaba506d81e30e232a68c9f0d6f6fcd1574/traitlets-5.14.3.tar.gz", hash = "sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7", size = 161621, upload-time = "2024-04-19T11:11:49.746Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/00/c0/8f5d070730d7836adc9c9b6408dec68c6ced86b304a9b26a14df072a6e8c/traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f", size = 85359, upload-time = "2024-04-19T11:11:46.763Z" }, +] + +[[package]] +name = "transformers" +version = "4.57.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "filelock" }, + { name = "huggingface-hub" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "pyyaml" }, + { name = "regex" }, + { name = "requests" }, + { name = "safetensors" }, + { name = "tokenizers" }, + { name = "tqdm" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/dd/70/d42a739e8dfde3d92bb2fff5819cbf331fe9657323221e79415cd5eb65ee/transformers-4.57.3.tar.gz", hash = "sha256:df4945029aaddd7c09eec5cad851f30662f8bd1746721b34cc031d70c65afebc", size = 10139680, upload-time = "2025-11-25T15:51:30.139Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6a/6b/2f416568b3c4c91c96e5a365d164f8a4a4a88030aa8ab4644181fdadce97/transformers-4.57.3-py3-none-any.whl", hash = "sha256:c77d353a4851b1880191603d36acb313411d3577f6e2897814f333841f7003f4", size = 11993463, upload-time = "2025-11-25T15:51:26.493Z" }, +] + +[[package]] +name = "triton" +version = "3.5.1" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b0/72/ec90c3519eaf168f22cb1757ad412f3a2add4782ad3a92861c9ad135d886/triton-3.5.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:61413522a48add32302353fdbaaf92daaaab06f6b5e3229940d21b5207f47579", size = 170425802, upload-time = "2025-11-11T17:40:53.209Z" }, + { url = "https://files.pythonhosted.org/packages/f2/50/9a8358d3ef58162c0a415d173cfb45b67de60176e1024f71fbc4d24c0b6d/triton-3.5.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d2c6b915a03888ab931a9fd3e55ba36785e1fe70cbea0b40c6ef93b20fc85232", size = 170470207, upload-time = "2025-11-11T17:41:00.253Z" }, +] + +[[package]] +name = "typing-extensions" +version = "4.15.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload-time = "2025-08-25T13:49:26.313Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" }, +] + +[[package]] +name = "typing-inspect" +version = "0.9.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mypy-extensions" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/dc/74/1789779d91f1961fa9438e9a8710cdae6bd138c80d7303996933d117264a/typing_inspect-0.9.0.tar.gz", hash = "sha256:b23fc42ff6f6ef6954e4852c1fb512cdd18dbea03134f91f856a95ccc9461f78", size = 13825, upload-time = "2023-05-24T20:25:47.612Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/65/f3/107a22063bf27bdccf2024833d3445f4eea42b2e598abfbd46f6a63b6cb0/typing_inspect-0.9.0-py3-none-any.whl", hash = "sha256:9ee6fc59062311ef8547596ab6b955e1b8aa46242d854bfc78f4f6b0eff35f9f", size = 8827, upload-time = "2023-05-24T20:25:45.287Z" }, +] + +[[package]] +name = "typing-inspection" +version = "0.4.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/55/e3/70399cb7dd41c10ac53367ae42139cf4b1ca5f36bb3dc6c9d33acdb43655/typing_inspection-0.4.2.tar.gz", hash = "sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464", size = 75949, upload-time = "2025-10-01T02:14:41.687Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl", hash = "sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7", size = 14611, upload-time = "2025-10-01T02:14:40.154Z" }, +] + +[[package]] +name = "tzdata" +version = "2025.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5e/a7/c202b344c5ca7daf398f3b8a477eeb205cf3b6f32e7ec3a6bac0629ca975/tzdata-2025.3.tar.gz", hash = "sha256:de39c2ca5dc7b0344f2eba86f49d614019d29f060fc4ebc8a417896a620b56a7", size = 196772, upload-time = "2025-12-13T17:45:35.667Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c7/b0/003792df09decd6849a5e39c28b513c06e84436a54440380862b5aeff25d/tzdata-2025.3-py2.py3-none-any.whl", hash = "sha256:06a47e5700f3081aab02b2e513160914ff0694bce9947d6b76ebd6bf57cfc5d1", size = 348521, upload-time = "2025-12-13T17:45:33.889Z" }, +] + +[[package]] +name = "unstructured" +version = "0.13.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "backoff" }, + { name = "beautifulsoup4" }, + { name = "chardet" }, + { name = "dataclasses-json" }, + { name = "emoji" }, + { name = "filetype" }, + { name = "langdetect" }, + { name = "lxml" }, + { name = "nltk" }, + { name = "numpy" }, + { name = "python-iso639" }, + { name = "python-magic" }, + { name = "rapidfuzz" }, + { name = "requests" }, + { name = "tabulate" }, + { name = "typing-extensions" }, + { name = "unstructured-client" }, + { name = "wrapt" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a1/e7/f3ff63814226e349a434dec7ede51f0e5af14eed325b3fd1c48be6fb8ff1/unstructured-0.13.7.tar.gz", hash = "sha256:5d59161d353b7006d8c6ee6f1a39154a5a11a5aaa258aac3fe90a8d44016aa6c", size = 1714285, upload-time = "2024-05-08T18:36:49.562Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f5/48/9bdd8aff34c507750a347545bcf26c025b1335c021ac0b9af5a542a8acd5/unstructured-0.13.7-py3-none-any.whl", hash = "sha256:a3d8f3037cb3063661531c6ecc04aca6df93c293ba06e36d67ffc70857a6f208", size = 1915733, upload-time = "2024-05-08T18:36:45.4Z" }, +] + +[[package]] +name = "unstructured-client" +version = "0.42.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiofiles" }, + { name = "cryptography" }, + { name = "httpcore" }, + { name = "httpx" }, + { name = "pydantic" }, + { name = "pypdf" }, + { name = "requests-toolbelt" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ff/fe/c6d334d4fb9a4a006125a1a8a3918be643c268290707d48e9cd060b71f7f/unstructured_client-0.42.6.tar.gz", hash = "sha256:ea54f2c4ca3e7a1330f9e77cbc96f88f829518beeec5e1b797b5352f4d76a73a", size = 94179, upload-time = "2025-12-17T03:49:58.38Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5e/12/5aa5d051b32d0c09077a8e83920e794b9bf2315739add4ab821e71fbca58/unstructured_client-0.42.6-py3-none-any.whl", hash = "sha256:c93b1d9d1b9f63a8e961729d00224b3659ef9ef3e14996ea4e53ddc95df671a9", size = 219563, upload-time = "2025-12-17T03:49:56.993Z" }, +] + +[[package]] +name = "urllib3" +version = "2.6.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1e/24/a2a2ed9addd907787d7aa0355ba36a6cadf1768b934c652ea78acbd59dcd/urllib3-2.6.2.tar.gz", hash = "sha256:016f9c98bb7e98085cb2b4b17b87d2c702975664e4f060c6532e64d1c1a5e797", size = 432930, upload-time = "2025-12-11T15:56:40.252Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6d/b9/4095b668ea3678bf6a0af005527f39de12fb026516fb3df17495a733b7f8/urllib3-2.6.2-py3-none-any.whl", hash = "sha256:ec21cddfe7724fc7cb4ba4bea7aa8e2ef36f607a4bab81aa6ce42a13dc3f03dd", size = 131182, upload-time = "2025-12-11T15:56:38.584Z" }, +] + +[[package]] +name = "uvicorn" +version = "0.38.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "h11" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/cb/ce/f06b84e2697fef4688ca63bdb2fdf113ca0a3be33f94488f2cadb690b0cf/uvicorn-0.38.0.tar.gz", hash = "sha256:fd97093bdd120a2609fc0d3afe931d4d4ad688b6e75f0f929fde1bc36fe0e91d", size = 80605, upload-time = "2025-10-18T13:46:44.63Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ee/d9/d88e73ca598f4f6ff671fb5fde8a32925c2e08a637303a1d12883c7305fa/uvicorn-0.38.0-py3-none-any.whl", hash = "sha256:48c0afd214ceb59340075b4a052ea1ee91c16fbc2a9b1469cca0e54566977b02", size = 68109, upload-time = "2025-10-18T13:46:42.958Z" }, +] + +[[package]] +name = "virtualenv" +version = "20.35.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "distlib" }, + { name = "filelock" }, + { name = "platformdirs" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/20/28/e6f1a6f655d620846bd9df527390ecc26b3805a0c5989048c210e22c5ca9/virtualenv-20.35.4.tar.gz", hash = "sha256:643d3914d73d3eeb0c552cbb12d7e82adf0e504dbf86a3182f8771a153a1971c", size = 6028799, upload-time = "2025-10-29T06:57:40.511Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/79/0c/c05523fa3181fdf0c9c52a6ba91a23fbf3246cc095f26f6516f9c60e6771/virtualenv-20.35.4-py3-none-any.whl", hash = "sha256:c21c9cede36c9753eeade68ba7d523529f228a403463376cf821eaae2b650f1b", size = 6005095, upload-time = "2025-10-29T06:57:37.598Z" }, +] + +[[package]] +name = "wcwidth" +version = "0.2.14" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/24/30/6b0809f4510673dc723187aeaf24c7f5459922d01e2f794277a3dfb90345/wcwidth-0.2.14.tar.gz", hash = "sha256:4d478375d31bc5395a3c55c40ccdf3354688364cd61c4f6adacaa9215d0b3605", size = 102293, upload-time = "2025-09-22T16:29:53.023Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/af/b5/123f13c975e9f27ab9c0770f514345bd406d0e8d3b7a0723af9d43f710af/wcwidth-0.2.14-py2.py3-none-any.whl", hash = "sha256:a7bb560c8aee30f9957e5f9895805edd20602f2d7f720186dfd906e82b4982e1", size = 37286, upload-time = "2025-09-22T16:29:51.641Z" }, +] + +[[package]] +name = "webencodings" +version = "0.5.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0b/02/ae6ceac1baeda530866a85075641cec12989bd8d31af6d5ab4a3e8c92f47/webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923", size = 9721, upload-time = "2017-04-05T20:21:34.189Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/24/2a3e3df732393fed8b3ebf2ec078f05546de641fe1b667ee316ec1dcf3b7/webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78", size = 11774, upload-time = "2017-04-05T20:21:32.581Z" }, +] + +[[package]] +name = "websockets" +version = "15.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/21/e6/26d09fab466b7ca9c7737474c52be4f76a40301b08362eb2dbc19dcc16c1/websockets-15.0.1.tar.gz", hash = "sha256:82544de02076bafba038ce055ee6412d68da13ab47f0c60cab827346de828dee", size = 177016, upload-time = "2025-03-05T20:03:41.606Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9f/32/18fcd5919c293a398db67443acd33fde142f283853076049824fc58e6f75/websockets-15.0.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:823c248b690b2fd9303ba00c4f66cd5e2d8c3ba4aa968b2779be9532a4dad431", size = 175423, upload-time = "2025-03-05T20:01:56.276Z" }, + { url = "https://files.pythonhosted.org/packages/76/70/ba1ad96b07869275ef42e2ce21f07a5b0148936688c2baf7e4a1f60d5058/websockets-15.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678999709e68425ae2593acf2e3ebcbcf2e69885a5ee78f9eb80e6e371f1bf57", size = 173082, upload-time = "2025-03-05T20:01:57.563Z" }, + { url = "https://files.pythonhosted.org/packages/86/f2/10b55821dd40eb696ce4704a87d57774696f9451108cff0d2824c97e0f97/websockets-15.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d50fd1ee42388dcfb2b3676132c78116490976f1300da28eb629272d5d93e905", size = 173330, upload-time = "2025-03-05T20:01:59.063Z" }, + { url = "https://files.pythonhosted.org/packages/a5/90/1c37ae8b8a113d3daf1065222b6af61cc44102da95388ac0018fcb7d93d9/websockets-15.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d99e5546bf73dbad5bf3547174cd6cb8ba7273062a23808ffea025ecb1cf8562", size = 182878, upload-time = "2025-03-05T20:02:00.305Z" }, + { url = "https://files.pythonhosted.org/packages/8e/8d/96e8e288b2a41dffafb78e8904ea7367ee4f891dafc2ab8d87e2124cb3d3/websockets-15.0.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:66dd88c918e3287efc22409d426c8f729688d89a0c587c88971a0faa2c2f3792", size = 181883, upload-time = "2025-03-05T20:02:03.148Z" }, + { url = "https://files.pythonhosted.org/packages/93/1f/5d6dbf551766308f6f50f8baf8e9860be6182911e8106da7a7f73785f4c4/websockets-15.0.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8dd8327c795b3e3f219760fa603dcae1dcc148172290a8ab15158cf85a953413", size = 182252, upload-time = "2025-03-05T20:02:05.29Z" }, + { url = "https://files.pythonhosted.org/packages/d4/78/2d4fed9123e6620cbf1706c0de8a1632e1a28e7774d94346d7de1bba2ca3/websockets-15.0.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8fdc51055e6ff4adeb88d58a11042ec9a5eae317a0a53d12c062c8a8865909e8", size = 182521, upload-time = "2025-03-05T20:02:07.458Z" }, + { url = "https://files.pythonhosted.org/packages/e7/3b/66d4c1b444dd1a9823c4a81f50231b921bab54eee2f69e70319b4e21f1ca/websockets-15.0.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:693f0192126df6c2327cce3baa7c06f2a117575e32ab2308f7f8216c29d9e2e3", size = 181958, upload-time = "2025-03-05T20:02:09.842Z" }, + { url = "https://files.pythonhosted.org/packages/08/ff/e9eed2ee5fed6f76fdd6032ca5cd38c57ca9661430bb3d5fb2872dc8703c/websockets-15.0.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:54479983bd5fb469c38f2f5c7e3a24f9a4e70594cd68cd1fa6b9340dadaff7cf", size = 181918, upload-time = "2025-03-05T20:02:11.968Z" }, + { url = "https://files.pythonhosted.org/packages/d8/75/994634a49b7e12532be6a42103597b71098fd25900f7437d6055ed39930a/websockets-15.0.1-cp311-cp311-win32.whl", hash = "sha256:16b6c1b3e57799b9d38427dda63edcbe4926352c47cf88588c0be4ace18dac85", size = 176388, upload-time = "2025-03-05T20:02:13.32Z" }, + { url = "https://files.pythonhosted.org/packages/98/93/e36c73f78400a65f5e236cd376713c34182e6663f6889cd45a4a04d8f203/websockets-15.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:27ccee0071a0e75d22cb35849b1db43f2ecd3e161041ac1ee9d2352ddf72f065", size = 176828, upload-time = "2025-03-05T20:02:14.585Z" }, + { url = "https://files.pythonhosted.org/packages/51/6b/4545a0d843594f5d0771e86463606a3988b5a09ca5123136f8a76580dd63/websockets-15.0.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:3e90baa811a5d73f3ca0bcbf32064d663ed81318ab225ee4f427ad4e26e5aff3", size = 175437, upload-time = "2025-03-05T20:02:16.706Z" }, + { url = "https://files.pythonhosted.org/packages/f4/71/809a0f5f6a06522af902e0f2ea2757f71ead94610010cf570ab5c98e99ed/websockets-15.0.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:592f1a9fe869c778694f0aa806ba0374e97648ab57936f092fd9d87f8bc03665", size = 173096, upload-time = "2025-03-05T20:02:18.832Z" }, + { url = "https://files.pythonhosted.org/packages/3d/69/1a681dd6f02180916f116894181eab8b2e25b31e484c5d0eae637ec01f7c/websockets-15.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0701bc3cfcb9164d04a14b149fd74be7347a530ad3bbf15ab2c678a2cd3dd9a2", size = 173332, upload-time = "2025-03-05T20:02:20.187Z" }, + { url = "https://files.pythonhosted.org/packages/a6/02/0073b3952f5bce97eafbb35757f8d0d54812b6174ed8dd952aa08429bcc3/websockets-15.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8b56bdcdb4505c8078cb6c7157d9811a85790f2f2b3632c7d1462ab5783d215", size = 183152, upload-time = "2025-03-05T20:02:22.286Z" }, + { url = "https://files.pythonhosted.org/packages/74/45/c205c8480eafd114b428284840da0b1be9ffd0e4f87338dc95dc6ff961a1/websockets-15.0.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0af68c55afbd5f07986df82831c7bff04846928ea8d1fd7f30052638788bc9b5", size = 182096, upload-time = "2025-03-05T20:02:24.368Z" }, + { url = "https://files.pythonhosted.org/packages/14/8f/aa61f528fba38578ec553c145857a181384c72b98156f858ca5c8e82d9d3/websockets-15.0.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64dee438fed052b52e4f98f76c5790513235efaa1ef7f3f2192c392cd7c91b65", size = 182523, upload-time = "2025-03-05T20:02:25.669Z" }, + { url = "https://files.pythonhosted.org/packages/ec/6d/0267396610add5bc0d0d3e77f546d4cd287200804fe02323797de77dbce9/websockets-15.0.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d5f6b181bb38171a8ad1d6aa58a67a6aa9d4b38d0f8c5f496b9e42561dfc62fe", size = 182790, upload-time = "2025-03-05T20:02:26.99Z" }, + { url = "https://files.pythonhosted.org/packages/02/05/c68c5adbf679cf610ae2f74a9b871ae84564462955d991178f95a1ddb7dd/websockets-15.0.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:5d54b09eba2bada6011aea5375542a157637b91029687eb4fdb2dab11059c1b4", size = 182165, upload-time = "2025-03-05T20:02:30.291Z" }, + { url = "https://files.pythonhosted.org/packages/29/93/bb672df7b2f5faac89761cb5fa34f5cec45a4026c383a4b5761c6cea5c16/websockets-15.0.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3be571a8b5afed347da347bfcf27ba12b069d9d7f42cb8c7028b5e98bbb12597", size = 182160, upload-time = "2025-03-05T20:02:31.634Z" }, + { url = "https://files.pythonhosted.org/packages/ff/83/de1f7709376dc3ca9b7eeb4b9a07b4526b14876b6d372a4dc62312bebee0/websockets-15.0.1-cp312-cp312-win32.whl", hash = "sha256:c338ffa0520bdb12fbc527265235639fb76e7bc7faafbb93f6ba80d9c06578a9", size = 176395, upload-time = "2025-03-05T20:02:33.017Z" }, + { url = "https://files.pythonhosted.org/packages/7d/71/abf2ebc3bbfa40f391ce1428c7168fb20582d0ff57019b69ea20fa698043/websockets-15.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:fcd5cf9e305d7b8338754470cf69cf81f420459dbae8a3b40cee57417f4614a7", size = 176841, upload-time = "2025-03-05T20:02:34.498Z" }, + { url = "https://files.pythonhosted.org/packages/fa/a8/5b41e0da817d64113292ab1f8247140aac61cbf6cfd085d6a0fa77f4984f/websockets-15.0.1-py3-none-any.whl", hash = "sha256:f7a866fbc1e97b5c617ee4116daaa09b722101d4a3c170c787450ba409f9736f", size = 169743, upload-time = "2025-03-05T20:03:39.41Z" }, +] + +[[package]] +name = "werkzeug" +version = "3.1.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markupsafe" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/45/ea/b0f8eeb287f8df9066e56e831c7824ac6bab645dd6c7a8f4b2d767944f9b/werkzeug-3.1.4.tar.gz", hash = "sha256:cd3cd98b1b92dc3b7b3995038826c68097dcb16f9baa63abe35f20eafeb9fe5e", size = 864687, upload-time = "2025-11-29T02:15:22.841Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2f/f9/9e082990c2585c744734f85bec79b5dae5df9c974ffee58fe421652c8e91/werkzeug-3.1.4-py3-none-any.whl", hash = "sha256:2ad50fb9ed09cc3af22c54698351027ace879a0b60a3b5edf5730b2f7d876905", size = 224960, upload-time = "2025-11-29T02:15:21.13Z" }, +] + +[[package]] +name = "wrapt" +version = "2.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/49/2a/6de8a50cb435b7f42c46126cf1a54b2aab81784e74c8595c8e025e8f36d3/wrapt-2.0.1.tar.gz", hash = "sha256:9c9c635e78497cacb81e84f8b11b23e0aacac7a136e73b8e5b2109a1d9fc468f", size = 82040, upload-time = "2025-11-07T00:45:33.312Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/98/60/553997acf3939079dab022e37b67b1904b5b0cc235503226898ba573b10c/wrapt-2.0.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0e17283f533a0d24d6e5429a7d11f250a58d28b4ae5186f8f47853e3e70d2590", size = 77480, upload-time = "2025-11-07T00:43:30.573Z" }, + { url = "https://files.pythonhosted.org/packages/2d/50/e5b3d30895d77c52105c6d5cbf94d5b38e2a3dd4a53d22d246670da98f7c/wrapt-2.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:85df8d92158cb8f3965aecc27cf821461bb5f40b450b03facc5d9f0d4d6ddec6", size = 60690, upload-time = "2025-11-07T00:43:31.594Z" }, + { url = "https://files.pythonhosted.org/packages/f0/40/660b2898703e5cbbb43db10cdefcc294274458c3ca4c68637c2b99371507/wrapt-2.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c1be685ac7700c966b8610ccc63c3187a72e33cab53526a27b2a285a662cd4f7", size = 61578, upload-time = "2025-11-07T00:43:32.918Z" }, + { url = "https://files.pythonhosted.org/packages/5b/36/825b44c8a10556957bc0c1d84c7b29a40e05fcf1873b6c40aa9dbe0bd972/wrapt-2.0.1-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:df0b6d3b95932809c5b3fecc18fda0f1e07452d05e2662a0b35548985f256e28", size = 114115, upload-time = "2025-11-07T00:43:35.605Z" }, + { url = "https://files.pythonhosted.org/packages/83/73/0a5d14bb1599677304d3c613a55457d34c344e9b60eda8a737c2ead7619e/wrapt-2.0.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4da7384b0e5d4cae05c97cd6f94faaf78cc8b0f791fc63af43436d98c4ab37bb", size = 116157, upload-time = "2025-11-07T00:43:37.058Z" }, + { url = "https://files.pythonhosted.org/packages/01/22/1c158fe763dbf0a119f985d945711d288994fe5514c0646ebe0eb18b016d/wrapt-2.0.1-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ec65a78fbd9d6f083a15d7613b2800d5663dbb6bb96003899c834beaa68b242c", size = 112535, upload-time = "2025-11-07T00:43:34.138Z" }, + { url = "https://files.pythonhosted.org/packages/5c/28/4f16861af67d6de4eae9927799b559c20ebdd4fe432e89ea7fe6fcd9d709/wrapt-2.0.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:7de3cc939be0e1174969f943f3b44e0d79b6f9a82198133a5b7fc6cc92882f16", size = 115404, upload-time = "2025-11-07T00:43:39.214Z" }, + { url = "https://files.pythonhosted.org/packages/a0/8b/7960122e625fad908f189b59c4aae2d50916eb4098b0fb2819c5a177414f/wrapt-2.0.1-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:fb1a5b72cbd751813adc02ef01ada0b0d05d3dcbc32976ce189a1279d80ad4a2", size = 111802, upload-time = "2025-11-07T00:43:40.476Z" }, + { url = "https://files.pythonhosted.org/packages/3e/73/7881eee5ac31132a713ab19a22c9e5f1f7365c8b1df50abba5d45b781312/wrapt-2.0.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3fa272ca34332581e00bf7773e993d4f632594eb2d1b0b162a9038df0fd971dd", size = 113837, upload-time = "2025-11-07T00:43:42.921Z" }, + { url = "https://files.pythonhosted.org/packages/45/00/9499a3d14e636d1f7089339f96c4409bbc7544d0889f12264efa25502ae8/wrapt-2.0.1-cp311-cp311-win32.whl", hash = "sha256:fc007fdf480c77301ab1afdbb6ab22a5deee8885f3b1ed7afcb7e5e84a0e27be", size = 58028, upload-time = "2025-11-07T00:43:47.369Z" }, + { url = "https://files.pythonhosted.org/packages/70/5d/8f3d7eea52f22638748f74b102e38fdf88cb57d08ddeb7827c476a20b01b/wrapt-2.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:47434236c396d04875180171ee1f3815ca1eada05e24a1ee99546320d54d1d1b", size = 60385, upload-time = "2025-11-07T00:43:44.34Z" }, + { url = "https://files.pythonhosted.org/packages/14/e2/32195e57a8209003587bbbad44d5922f13e0ced2a493bb46ca882c5b123d/wrapt-2.0.1-cp311-cp311-win_arm64.whl", hash = "sha256:837e31620e06b16030b1d126ed78e9383815cbac914693f54926d816d35d8edf", size = 58893, upload-time = "2025-11-07T00:43:46.161Z" }, + { url = "https://files.pythonhosted.org/packages/cb/73/8cb252858dc8254baa0ce58ce382858e3a1cf616acebc497cb13374c95c6/wrapt-2.0.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1fdbb34da15450f2b1d735a0e969c24bdb8d8924892380126e2a293d9902078c", size = 78129, upload-time = "2025-11-07T00:43:48.852Z" }, + { url = "https://files.pythonhosted.org/packages/19/42/44a0db2108526ee6e17a5ab72478061158f34b08b793df251d9fbb9a7eb4/wrapt-2.0.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3d32794fe940b7000f0519904e247f902f0149edbe6316c710a8562fb6738841", size = 61205, upload-time = "2025-11-07T00:43:50.402Z" }, + { url = "https://files.pythonhosted.org/packages/4d/8a/5b4b1e44b791c22046e90d9b175f9a7581a8cc7a0debbb930f81e6ae8e25/wrapt-2.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:386fb54d9cd903ee0012c09291336469eb7b244f7183d40dc3e86a16a4bace62", size = 61692, upload-time = "2025-11-07T00:43:51.678Z" }, + { url = "https://files.pythonhosted.org/packages/11/53/3e794346c39f462bcf1f58ac0487ff9bdad02f9b6d5ee2dc84c72e0243b2/wrapt-2.0.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:7b219cb2182f230676308cdcacd428fa837987b89e4b7c5c9025088b8a6c9faf", size = 121492, upload-time = "2025-11-07T00:43:55.017Z" }, + { url = "https://files.pythonhosted.org/packages/c6/7e/10b7b0e8841e684c8ca76b462a9091c45d62e8f2de9c4b1390b690eadf16/wrapt-2.0.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:641e94e789b5f6b4822bb8d8ebbdfc10f4e4eae7756d648b717d980f657a9eb9", size = 123064, upload-time = "2025-11-07T00:43:56.323Z" }, + { url = "https://files.pythonhosted.org/packages/0e/d1/3c1e4321fc2f5ee7fd866b2d822aa89b84495f28676fd976c47327c5b6aa/wrapt-2.0.1-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:fe21b118b9f58859b5ebaa4b130dee18669df4bd111daad082b7beb8799ad16b", size = 117403, upload-time = "2025-11-07T00:43:53.258Z" }, + { url = "https://files.pythonhosted.org/packages/a4/b0/d2f0a413cf201c8c2466de08414a15420a25aa83f53e647b7255cc2fab5d/wrapt-2.0.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:17fb85fa4abc26a5184d93b3efd2dcc14deb4b09edcdb3535a536ad34f0b4dba", size = 121500, upload-time = "2025-11-07T00:43:57.468Z" }, + { url = "https://files.pythonhosted.org/packages/bd/45/bddb11d28ca39970a41ed48a26d210505120f925918592283369219f83cc/wrapt-2.0.1-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:b89ef9223d665ab255ae42cc282d27d69704d94be0deffc8b9d919179a609684", size = 116299, upload-time = "2025-11-07T00:43:58.877Z" }, + { url = "https://files.pythonhosted.org/packages/81/af/34ba6dd570ef7a534e7eec0c25e2615c355602c52aba59413411c025a0cb/wrapt-2.0.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a453257f19c31b31ba593c30d997d6e5be39e3b5ad9148c2af5a7314061c63eb", size = 120622, upload-time = "2025-11-07T00:43:59.962Z" }, + { url = "https://files.pythonhosted.org/packages/e2/3e/693a13b4146646fb03254636f8bafd20c621955d27d65b15de07ab886187/wrapt-2.0.1-cp312-cp312-win32.whl", hash = "sha256:3e271346f01e9c8b1130a6a3b0e11908049fe5be2d365a5f402778049147e7e9", size = 58246, upload-time = "2025-11-07T00:44:03.169Z" }, + { url = "https://files.pythonhosted.org/packages/a7/36/715ec5076f925a6be95f37917b66ebbeaa1372d1862c2ccd7a751574b068/wrapt-2.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:2da620b31a90cdefa9cd0c2b661882329e2e19d1d7b9b920189956b76c564d75", size = 60492, upload-time = "2025-11-07T00:44:01.027Z" }, + { url = "https://files.pythonhosted.org/packages/ef/3e/62451cd7d80f65cc125f2b426b25fbb6c514bf6f7011a0c3904fc8c8df90/wrapt-2.0.1-cp312-cp312-win_arm64.whl", hash = "sha256:aea9c7224c302bc8bfc892b908537f56c430802560e827b75ecbde81b604598b", size = 58987, upload-time = "2025-11-07T00:44:02.095Z" }, + { url = "https://files.pythonhosted.org/packages/15/d1/b51471c11592ff9c012bd3e2f7334a6ff2f42a7aed2caffcf0bdddc9cb89/wrapt-2.0.1-py3-none-any.whl", hash = "sha256:4d2ce1bf1a48c5277d7969259232b57645aae5686dba1eaeade39442277afbca", size = 44046, upload-time = "2025-11-07T00:45:32.116Z" }, +] + +[[package]] +name = "yarg" +version = "0.1.9" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d4/c8/cc640404a0981e6c14e2044fc64e43b4c1ddf69e7dddc8f2a02638ba5ae8/yarg-0.1.9.tar.gz", hash = "sha256:55695bf4d1e3e7f756496c36a69ba32c40d18f821e38f61d028f6049e5e15911", size = 11988, upload-time = "2014-08-11T22:01:37.243Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8b/90/89a2ff242ccab6a24fbab18dbbabc67c51a6f0ed01f9a0f41689dc177419/yarg-0.1.9-py2.py3-none-any.whl", hash = "sha256:4f9cebdc00fac946c9bf2783d634e538a71c7d280a4d806d45fd4dc0ef441492", size = 19162, upload-time = "2014-08-11T22:01:41.104Z" }, +] + +[[package]] +name = "zep-cloud" +version = "3.13.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "pydantic" }, + { name = "pydantic-core" }, + { name = "python-dateutil" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/32/c7/c835debf13302f8aaf8d0561ac6ff5a9bc15cc140cd692a1330fb1900c55/zep_cloud-3.13.0.tar.gz", hash = "sha256:c55d9c511773bb2177ae8e08546141404f87d2099affafabd7ec4b4505763e48", size = 63116, upload-time = "2025-11-20T15:25:40.745Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f7/e1/bbf03c6c8007c0cb238780e7fc6d8e1a52633893933a41aa09678618985a/zep_cloud-3.13.0-py3-none-any.whl", hash = "sha256:b2fbdeef73e262194c8f67b58f76471de6ee87e1a629541a09d8f7bbf475f12b", size = 110601, upload-time = "2025-11-20T15:25:38.484Z" }, +] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 00000000..637f1dfa --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,14 @@ +services: + mirofish: + image: ghcr.io/666ghj/mirofish:latest + # 加速镜像(如拉取缓慢可替换上方地址) + # image: ghcr.nju.edu.cn/666ghj/mirofish:latest + container_name: mirofish + env_file: + - .env + ports: + - "3000:3000" + - "5001:5001" + restart: unless-stopped + volumes: + - ./backend/uploads:/app/backend/uploads \ No newline at end of file diff --git a/frontend/.gitignore b/frontend/.gitignore new file mode 100644 index 00000000..a547bf36 --- /dev/null +++ b/frontend/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/frontend/index.html b/frontend/index.html new file mode 100644 index 00000000..0b80095c --- /dev/null +++ b/frontend/index.html @@ -0,0 +1,18 @@ + + + + + + + + + + + + MiroFish - 预测万物 + + +
+ + + diff --git a/frontend/package-lock.json b/frontend/package-lock.json new file mode 100644 index 00000000..3e56d752 --- /dev/null +++ b/frontend/package-lock.json @@ -0,0 +1,2185 @@ +{ + "name": "frontend", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "frontend", + "version": "0.1.0", + "dependencies": { + "axios": "^1.14.0", + "d3": "^7.9.0", + "vue": "^3.5.24", + "vue-i18n": "^11.3.0", + "vue-router": "^4.6.3" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^6.0.1", + "vite": "^7.2.4" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", + "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.5" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", + "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", + "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", + "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", + "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", + "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", + "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", + "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", + "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", + "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", + "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", + "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", + "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", + "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", + "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", + "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", + "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", + "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", + "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", + "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", + "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", + "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", + "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", + "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", + "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", + "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", + "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", + "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@intlify/core-base": { + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-11.3.0.tgz", + "integrity": "sha512-NNX5jIwF4TJBe7RtSKDMOA6JD9mp2mRcBHAwt2X+Q8PvnZub0yj5YYXlFu2AcESdgQpEv/5Yx2uOCV/yh7YkZg==", + "license": "MIT", + "dependencies": { + "@intlify/devtools-types": "11.3.0", + "@intlify/message-compiler": "11.3.0", + "@intlify/shared": "11.3.0" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/@intlify/devtools-types": { + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/@intlify/devtools-types/-/devtools-types-11.3.0.tgz", + "integrity": "sha512-G9CNL4WpANWVdUjubOIIS7/D2j/0j+1KJmhBJxHilWNKr9mmt3IjFV3Hq4JoBP23uOoC5ynxz/FHZ42M+YxfGw==", + "license": "MIT", + "dependencies": { + "@intlify/core-base": "11.3.0", + "@intlify/shared": "11.3.0" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/@intlify/message-compiler": { + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-11.3.0.tgz", + "integrity": "sha512-RAJp3TMsqohg/Wa7bVF3cChRhecSYBLrTCQSj7j0UtWVFLP+6iEJoE2zb7GU5fp+fmG5kCbUdzhmlAUCWXiUJw==", + "license": "MIT", + "dependencies": { + "@intlify/shared": "11.3.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/@intlify/shared": { + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-11.3.0.tgz", + "integrity": "sha512-LC6P/uay7rXL5zZ5+5iRJfLs/iUN8apu9tm8YqQVmW3Uq3X4A0dOFUIDuAmB7gAC29wTHOS3EiN/IosNSz0eNQ==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.50", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.50.tgz", + "integrity": "sha512-5e76wQiQVeL1ICOZVUg4LSOVYg9jyhGCin+icYozhsUzM+fHE7kddi1bdiE0jwVqTfkjba3jUFbEkoC9WkdvyA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.1.tgz", + "integrity": "sha512-d6FinEBLdIiK+1uACUttJKfgZREXrF0Qc2SmLII7W2AD8FfiZ9Wjd+rD/iRuf5s5dWrr1GgwXCvPqOuDquOowA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.1.tgz", + "integrity": "sha512-YjG/EwIDvvYI1YvYbHvDz/BYHtkY4ygUIXHnTdLhG+hKIQFBiosfWiACWortsKPKU/+dUwQQCKQM3qrDe8c9BA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.1.tgz", + "integrity": "sha512-mjCpF7GmkRtSJwon+Rq1N8+pI+8l7w5g9Z3vWj4T7abguC4Czwi3Yu/pFaLvA3TTeMVjnu3ctigusqWUfjZzvw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.1.tgz", + "integrity": "sha512-haZ7hJ1JT4e9hqkoT9R/19XW2QKqjfJVv+i5AGg57S+nLk9lQnJ1F/eZloRO3o9Scy9CM3wQ9l+dkXtcBgN5Ew==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.1.tgz", + "integrity": "sha512-czw90wpQq3ZsAVBlinZjAYTKduOjTywlG7fEeWKUA7oCmpA8xdTkxZZlwNJKWqILlq0wehoZcJYfBvOyhPTQ6w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.1.tgz", + "integrity": "sha512-KVB2rqsxTHuBtfOeySEyzEOB7ltlB/ux38iu2rBQzkjbwRVlkhAGIEDiiYnO2kFOkJp+Z7pUXKyrRRFuFUKt+g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.1.tgz", + "integrity": "sha512-L+34Qqil+v5uC0zEubW7uByo78WOCIrBvci69E7sFASRl0X7b/MB6Cqd1lky/CtcSVTydWa2WZwFuWexjS5o6g==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.1.tgz", + "integrity": "sha512-n83O8rt4v34hgFzlkb1ycniJh7IR5RCIqt6mz1VRJD6pmhRi0CXdmfnLu9dIUS6buzh60IvACM842Ffb3xd6Gg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.1.tgz", + "integrity": "sha512-Nql7sTeAzhTAja3QXeAI48+/+GjBJ+QmAH13snn0AJSNL50JsDqotyudHyMbO2RbJkskbMbFJfIJKWA6R1LCJQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.1.tgz", + "integrity": "sha512-+pUymDhd0ys9GcKZPPWlFiZ67sTWV5UU6zOJat02M1+PiuSGDziyRuI/pPue3hoUwm2uGfxdL+trT6Z9rxnlMA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.1.tgz", + "integrity": "sha512-VSvgvQeIcsEvY4bKDHEDWcpW4Yw7BtlKG1GUT4FzBUlEKQK0rWHYBqQt6Fm2taXS+1bXvJT6kICu5ZwqKCnvlQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.1.tgz", + "integrity": "sha512-4LqhUomJqwe641gsPp6xLfhqWMbQV04KtPp7/dIp0nzPxAkNY1AbwL5W0MQpcalLYk07vaW9Kp1PBhdpZYYcEw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.1.tgz", + "integrity": "sha512-tLQQ9aPvkBxOc/EUT6j3pyeMD6Hb8QF2BTBnCQWP/uu1lhc9AIrIjKnLYMEroIz/JvtGYgI9dF3AxHZNaEH0rw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.1.tgz", + "integrity": "sha512-RMxFhJwc9fSXP6PqmAz4cbv3kAyvD1etJFjTx4ONqFP9DkTkXsAMU4v3Vyc5BgzC+anz7nS/9tp4obsKfqkDHg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.1.tgz", + "integrity": "sha512-QKgFl+Yc1eEk6MmOBfRHYF6lTxiiiV3/z/BRrbSiW2I7AFTXoBFvdMEyglohPj//2mZS4hDOqeB0H1ACh3sBbg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.1.tgz", + "integrity": "sha512-RAjXjP/8c6ZtzatZcA1RaQr6O1TRhzC+adn8YZDnChliZHviqIjmvFwHcxi4JKPSDAt6Uhf/7vqcBzQJy0PDJg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.1.tgz", + "integrity": "sha512-wcuocpaOlaL1COBYiA89O6yfjlp3RwKDeTIA0hM7OpmhR1Bjo9j31G1uQVpDlTvwxGn2nQs65fBFL5UFd76FcQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.1.tgz", + "integrity": "sha512-77PpsFQUCOiZR9+LQEFg9GClyfkNXj1MP6wRnzYs0EeWbPcHs02AXu4xuUbM1zhwn3wqaizle3AEYg5aeoohhg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.1.tgz", + "integrity": "sha512-5cIATbk5vynAjqqmyBjlciMJl1+R/CwX9oLk/EyiFXDWd95KpHdrOJT//rnUl4cUcskrd0jCCw3wpZnhIHdD9w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.1.tgz", + "integrity": "sha512-cl0w09WsCi17mcmWqqglez9Gk8isgeWvoUZ3WiJFYSR3zjBQc2J5/ihSjpl+VLjPqjQ/1hJRcqBfLjssREQILw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.1.tgz", + "integrity": "sha512-4Cv23ZrONRbNtbZa37mLSueXUCtN7MXccChtKpUnQNgF010rjrjfHx3QxkS2PI7LqGT5xXyYs1a7LbzAwT0iCA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.1.tgz", + "integrity": "sha512-i1okWYkA4FJICtr7KpYzFpRTHgy5jdDbZiWfvny21iIKky5YExiDXP+zbXzm3dUcFpkEeYNHgQ5fuG236JPq0g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.1.tgz", + "integrity": "sha512-u09m3CuwLzShA0EYKMNiFgcjjzwqtUMLmuCJLeZWjjOYA3IT2Di09KaxGBTP9xVztWyIWjVdsB2E9goMjZvTQg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.1.tgz", + "integrity": "sha512-k+600V9Zl1CM7eZxJgMyTUzmrmhB/0XZnF4pRypKAlAgxmedUA+1v9R+XOFv56W4SlHEzfeMtzujLJD22Uz5zg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.1.tgz", + "integrity": "sha512-lWMnixq/QzxyhTV6NjQJ4SFo1J6PvOX8vUx5Wb4bBPsEb+8xZ89Bz6kOXpfXj9ak9AHTQVQzlgzBEc1SyM27xQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vitejs/plugin-vue": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-6.0.2.tgz", + "integrity": "sha512-iHmwV3QcVGGvSC1BG5bZ4z6iwa1SOpAPWmnjOErd4Ske+lZua5K9TtAVdx0gMBClJ28DViCbSmZitjWZsWO3LA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rolldown/pluginutils": "1.0.0-beta.50" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.25", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.25.tgz", + "integrity": "sha512-vay5/oQJdsNHmliWoZfHPoVZZRmnSWhug0BYT34njkYTPqClh3DNWLkZNJBVSjsNMrg0CCrBfoKkjZQPM/QVUw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.5", + "@vue/shared": "3.5.25", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.25", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.25.tgz", + "integrity": "sha512-4We0OAcMZsKgYoGlMjzYvaoErltdFI2/25wqanuTu+S4gismOTRTBPi4IASOjxWdzIwrYSjnqONfKvuqkXzE2Q==", + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.25", + "@vue/shared": "3.5.25" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.25", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.25.tgz", + "integrity": "sha512-PUgKp2rn8fFsI++lF2sO7gwO2d9Yj57Utr5yEsDf3GNaQcowCLKL7sf+LvVFvtJDXUp/03+dC6f2+LCv5aK1ag==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.5", + "@vue/compiler-core": "3.5.25", + "@vue/compiler-dom": "3.5.25", + "@vue/compiler-ssr": "3.5.25", + "@vue/shared": "3.5.25", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.21", + "postcss": "^8.5.6", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.25", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.25.tgz", + "integrity": "sha512-ritPSKLBcParnsKYi+GNtbdbrIE1mtuFEJ4U1sWeuOMlIziK5GtOL85t5RhsNy4uWIXPgk+OUdpnXiTdzn8o3A==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.25", + "@vue/shared": "3.5.25" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.6.4", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz", + "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==", + "license": "MIT" + }, + "node_modules/@vue/reactivity": { + "version": "3.5.25", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.25.tgz", + "integrity": "sha512-5xfAypCQepv4Jog1U4zn8cZIcbKKFka3AgWHEFQeK65OW+Ys4XybP6z2kKgws4YB43KGpqp5D/K3go2UPPunLA==", + "license": "MIT", + "dependencies": { + "@vue/shared": "3.5.25" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.5.25", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.25.tgz", + "integrity": "sha512-Z751v203YWwYzy460bzsYQISDfPjHTl+6Zzwo/a3CsAf+0ccEjQ8c+0CdX1WsumRTHeywvyUFtW6KvNukT/smA==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.25", + "@vue/shared": "3.5.25" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.5.25", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.25.tgz", + "integrity": "sha512-a4WrkYFbb19i9pjkz38zJBg8wa/rboNERq3+hRRb0dHiJh13c+6kAbgqCPfMaJ2gg4weWD3APZswASOfmKwamA==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.25", + "@vue/runtime-core": "3.5.25", + "@vue/shared": "3.5.25", + "csstype": "^3.1.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.5.25", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.25.tgz", + "integrity": "sha512-UJaXR54vMG61i8XNIzTSf2Q7MOqZHpp8+x3XLGtE3+fL+nQd+k7O5+X3D/uWrnQXOdMw5VPih+Uremcw+u1woQ==", + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.5.25", + "@vue/shared": "3.5.25" + }, + "peerDependencies": { + "vue": "3.5.25" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.25", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.25.tgz", + "integrity": "sha512-AbOPdQQnAnzs58H2FrrDxYj/TJfmeS2jdfEEhgiKINy+bnOANmVizIEgq1r+C5zsbs6l1CCQxtcj71rwNQ4jWg==", + "license": "MIT" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/axios": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.14.0.tgz", + "integrity": "sha512-3Y8yrqLSwjuzpXuZ0oIYZ/XGgLwUIBU3uLvbcpb0pidD9ctpShJd43KSlEEkVQg6DS0G9NKyzOvBfUtDKEyHvQ==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.11", + "form-data": "^4.0.5", + "proxy-from-env": "^2.1.0" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT" + }, + "node_modules/d3": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz", + "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==", + "license": "ISC", + "dependencies": { + "d3-array": "3", + "d3-axis": "3", + "d3-brush": "3", + "d3-chord": "3", + "d3-color": "3", + "d3-contour": "4", + "d3-delaunay": "6", + "d3-dispatch": "3", + "d3-drag": "3", + "d3-dsv": "3", + "d3-ease": "3", + "d3-fetch": "3", + "d3-force": "3", + "d3-format": "3", + "d3-geo": "3", + "d3-hierarchy": "3", + "d3-interpolate": "3", + "d3-path": "3", + "d3-polygon": "3", + "d3-quadtree": "3", + "d3-random": "3", + "d3-scale": "4", + "d3-scale-chromatic": "3", + "d3-selection": "3", + "d3-shape": "3", + "d3-time": "3", + "d3-time-format": "4", + "d3-timer": "3", + "d3-transition": "3", + "d3-zoom": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "license": "ISC", + "dependencies": { + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-axis": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz", + "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-brush": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz", + "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==", + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "3", + "d3-transition": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-chord": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz", + "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==", + "license": "ISC", + "dependencies": { + "d3-path": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-contour": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz", + "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==", + "license": "ISC", + "dependencies": { + "d3-array": "^3.2.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-delaunay": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz", + "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==", + "license": "ISC", + "dependencies": { + "delaunator": "5" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dispatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-drag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", + "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-selection": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dsv": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", + "license": "ISC", + "dependencies": { + "commander": "7", + "iconv-lite": "0.6", + "rw": "1" + }, + "bin": { + "csv2json": "bin/dsv2json.js", + "csv2tsv": "bin/dsv2dsv.js", + "dsv2dsv": "bin/dsv2dsv.js", + "dsv2json": "bin/dsv2json.js", + "json2csv": "bin/json2dsv.js", + "json2dsv": "bin/json2dsv.js", + "json2tsv": "bin/json2dsv.js", + "tsv2csv": "bin/dsv2dsv.js", + "tsv2json": "bin/dsv2json.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-fetch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz", + "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==", + "license": "ISC", + "dependencies": { + "d3-dsv": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-force": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-format": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-geo": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz", + "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==", + "license": "ISC", + "dependencies": { + "d3-array": "2.5.0 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-hierarchy": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-polygon": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz", + "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-quadtree": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-random": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz", + "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "license": "ISC", + "dependencies": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale-chromatic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3", + "d3-interpolate": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-selection": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", + "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", + "license": "ISC", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "license": "ISC", + "dependencies": { + "d3-path": "^3.1.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "license": "ISC", + "dependencies": { + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "license": "ISC", + "dependencies": { + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-transition": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", + "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3", + "d3-dispatch": "1 - 3", + "d3-ease": "1 - 3", + "d3-interpolate": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "d3-selection": "2 - 3" + } + }, + "node_modules/d3-zoom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", + "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "2 - 3", + "d3-transition": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/delaunator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz", + "integrity": "sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==", + "license": "ISC", + "dependencies": { + "robust-predicates": "^3.0.2" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", + "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.12", + "@esbuild/android-arm": "0.25.12", + "@esbuild/android-arm64": "0.25.12", + "@esbuild/android-x64": "0.25.12", + "@esbuild/darwin-arm64": "0.25.12", + "@esbuild/darwin-x64": "0.25.12", + "@esbuild/freebsd-arm64": "0.25.12", + "@esbuild/freebsd-x64": "0.25.12", + "@esbuild/linux-arm": "0.25.12", + "@esbuild/linux-arm64": "0.25.12", + "@esbuild/linux-ia32": "0.25.12", + "@esbuild/linux-loong64": "0.25.12", + "@esbuild/linux-mips64el": "0.25.12", + "@esbuild/linux-ppc64": "0.25.12", + "@esbuild/linux-riscv64": "0.25.12", + "@esbuild/linux-s390x": "0.25.12", + "@esbuild/linux-x64": "0.25.12", + "@esbuild/netbsd-arm64": "0.25.12", + "@esbuild/netbsd-x64": "0.25.12", + "@esbuild/openbsd-arm64": "0.25.12", + "@esbuild/openbsd-x64": "0.25.12", + "@esbuild/openharmony-arm64": "0.25.12", + "@esbuild/sunos-x64": "0.25.12", + "@esbuild/win32-arm64": "0.25.12", + "@esbuild/win32-ia32": "0.25.12", + "@esbuild/win32-x64": "0.25.12" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/follow-redirects": { + "version": "1.15.11", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", + "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", + "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/proxy-from-env": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz", + "integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/robust-predicates": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", + "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==", + "license": "Unlicense" + }, + "node_modules/rollup": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.1.tgz", + "integrity": "sha512-VmtB2rFU/GroZ4oL8+ZqXgSA38O6GR8KSIvWmEFv63pQ0G6KaBH9s07PO8XTXP4vI+3UJUEypOfjkGfmSBBR0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.60.1", + "@rollup/rollup-android-arm64": "4.60.1", + "@rollup/rollup-darwin-arm64": "4.60.1", + "@rollup/rollup-darwin-x64": "4.60.1", + "@rollup/rollup-freebsd-arm64": "4.60.1", + "@rollup/rollup-freebsd-x64": "4.60.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.60.1", + "@rollup/rollup-linux-arm-musleabihf": "4.60.1", + "@rollup/rollup-linux-arm64-gnu": "4.60.1", + "@rollup/rollup-linux-arm64-musl": "4.60.1", + "@rollup/rollup-linux-loong64-gnu": "4.60.1", + "@rollup/rollup-linux-loong64-musl": "4.60.1", + "@rollup/rollup-linux-ppc64-gnu": "4.60.1", + "@rollup/rollup-linux-ppc64-musl": "4.60.1", + "@rollup/rollup-linux-riscv64-gnu": "4.60.1", + "@rollup/rollup-linux-riscv64-musl": "4.60.1", + "@rollup/rollup-linux-s390x-gnu": "4.60.1", + "@rollup/rollup-linux-x64-gnu": "4.60.1", + "@rollup/rollup-linux-x64-musl": "4.60.1", + "@rollup/rollup-openbsd-x64": "4.60.1", + "@rollup/rollup-openharmony-arm64": "4.60.1", + "@rollup/rollup-win32-arm64-msvc": "4.60.1", + "@rollup/rollup-win32-ia32-msvc": "4.60.1", + "@rollup/rollup-win32-x64-gnu": "4.60.1", + "@rollup/rollup-win32-x64-msvc": "4.60.1", + "fsevents": "~2.3.2" + } + }, + "node_modules/rw": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==", + "license": "BSD-3-Clause" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/vite": { + "version": "7.2.7", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.2.7.tgz", + "integrity": "sha512-ITcnkFeR3+fI8P1wMgItjGrR10170d8auB4EpMLPqmx6uxElH3a/hHGQabSHKdqd4FXWO1nFIp9rRn7JQ34ACQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vue": { + "version": "3.5.25", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.25.tgz", + "integrity": "sha512-YLVdgv2K13WJ6n+kD5owehKtEXwdwXuj2TTyJMsO7pSeKw2bfRNZGjhB7YzrpbMYj5b5QsUebHpOqR3R3ziy/g==", + "license": "MIT", + "peer": true, + "dependencies": { + "@vue/compiler-dom": "3.5.25", + "@vue/compiler-sfc": "3.5.25", + "@vue/runtime-dom": "3.5.25", + "@vue/server-renderer": "3.5.25", + "@vue/shared": "3.5.25" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-i18n": { + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-11.3.0.tgz", + "integrity": "sha512-1J+xDfDJTLhDxElkd3+XUhT7FYSZd2b8pa7IRKGxhWH/8yt6PTvi3xmWhGwhYT5EaXdatui11pF2R6tL73/zPA==", + "license": "MIT", + "dependencies": { + "@intlify/core-base": "11.3.0", + "@intlify/devtools-types": "11.3.0", + "@intlify/shared": "11.3.0", + "@vue/devtools-api": "^6.5.0" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/vue-router": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.6.3.tgz", + "integrity": "sha512-ARBedLm9YlbvQomnmq91Os7ck6efydTSpRP3nuOKCvgJOHNrhRoJDSKtee8kcL1Vf7nz6U+PMBL+hTvR3bTVQg==", + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^6.6.4" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + } + } +} diff --git a/frontend/package.json b/frontend/package.json new file mode 100644 index 00000000..1501b628 --- /dev/null +++ b/frontend/package.json @@ -0,0 +1,22 @@ +{ + "name": "frontend", + "private": true, + "version": "0.1.0", + "type": "module", + "scripts": { + "dev": "vite --host", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "axios": "^1.14.0", + "d3": "^7.9.0", + "vue": "^3.5.24", + "vue-i18n": "^11.3.0", + "vue-router": "^4.6.3" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^6.0.1", + "vite": "^7.2.4" + } +} diff --git a/frontend/public/icon.png b/frontend/public/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..20da2f06432e54d80c5ee5a7ba840d496f17e504 GIT binary patch literal 30341 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 JG7Cn`{{dMGO;i8? literal 0 HcmV?d00001 diff --git a/frontend/src/App.vue b/frontend/src/App.vue new file mode 100644 index 00000000..b7cd71ca --- /dev/null +++ b/frontend/src/App.vue @@ -0,0 +1,47 @@ + + + + + diff --git a/frontend/src/api/graph.js b/frontend/src/api/graph.js new file mode 100644 index 00000000..ef90a2b6 --- /dev/null +++ b/frontend/src/api/graph.js @@ -0,0 +1,70 @@ +import service, { requestWithRetry } from './index' + +/** + * 生成本体(上传文档和模拟需求) + * @param {Object} data - 包含files, simulation_requirement, project_name等 + * @returns {Promise} + */ +export function generateOntology(formData) { + return requestWithRetry(() => + service({ + url: '/api/graph/ontology/generate', + method: 'post', + data: formData, + headers: { + 'Content-Type': 'multipart/form-data' + } + }) + ) +} + +/** + * 构建图谱 + * @param {Object} data - 包含project_id, graph_name等 + * @returns {Promise} + */ +export function buildGraph(data) { + return requestWithRetry(() => + service({ + url: '/api/graph/build', + method: 'post', + data + }) + ) +} + +/** + * 查询任务状态 + * @param {String} taskId - 任务ID + * @returns {Promise} + */ +export function getTaskStatus(taskId) { + return service({ + url: `/api/graph/task/${taskId}`, + method: 'get' + }) +} + +/** + * 获取图谱数据 + * @param {String} graphId - 图谱ID + * @returns {Promise} + */ +export function getGraphData(graphId) { + return service({ + url: `/api/graph/data/${graphId}`, + method: 'get' + }) +} + +/** + * 获取项目信息 + * @param {String} projectId - 项目ID + * @returns {Promise} + */ +export function getProject(projectId) { + return service({ + url: `/api/graph/project/${projectId}`, + method: 'get' + }) +} diff --git a/frontend/src/api/index.js b/frontend/src/api/index.js new file mode 100644 index 00000000..e840e116 --- /dev/null +++ b/frontend/src/api/index.js @@ -0,0 +1,69 @@ +import axios from 'axios' +import i18n from '../i18n' + +// 创建axios实例 +const service = axios.create({ + baseURL: import.meta.env.VITE_API_BASE_URL || 'http://localhost:5001', + timeout: 300000, // 5分钟超时(本体生成可能需要较长时间) + headers: { + 'Content-Type': 'application/json' + } +}) + +// 请求拦截器 +service.interceptors.request.use( + config => { + config.headers['Accept-Language'] = i18n.global.locale.value + return config + }, + error => { + console.error('Request error:', error) + return Promise.reject(error) + } +) + +// 响应拦截器(容错重试机制) +service.interceptors.response.use( + response => { + const res = response.data + + // 如果返回的状态码不是success,则抛出错误 + if (!res.success && res.success !== undefined) { + console.error('API Error:', res.error || res.message || 'Unknown error') + return Promise.reject(new Error(res.error || res.message || 'Error')) + } + + return res + }, + error => { + console.error('Response error:', error) + + // 处理超时 + if (error.code === 'ECONNABORTED' && error.message.includes('timeout')) { + console.error('Request timeout') + } + + // 处理网络错误 + if (error.message === 'Network Error') { + console.error('Network error - please check your connection') + } + + return Promise.reject(error) + } +) + +// 带重试的请求函数 +export const requestWithRetry = async (requestFn, maxRetries = 3, delay = 1000) => { + for (let i = 0; i < maxRetries; i++) { + try { + return await requestFn() + } catch (error) { + if (i === maxRetries - 1) throw error + + console.warn(`Request failed, retrying (${i + 1}/${maxRetries})...`) + await new Promise(resolve => setTimeout(resolve, delay * Math.pow(2, i))) + } + } +} + +export default service diff --git a/frontend/src/api/report.js b/frontend/src/api/report.js new file mode 100644 index 00000000..c89a67d8 --- /dev/null +++ b/frontend/src/api/report.js @@ -0,0 +1,51 @@ +import service, { requestWithRetry } from './index' + +/** + * 开始报告生成 + * @param {Object} data - { simulation_id, force_regenerate? } + */ +export const generateReport = (data) => { + return requestWithRetry(() => service.post('/api/report/generate', data), 3, 1000) +} + +/** + * 获取报告生成状态 + * @param {string} reportId + */ +export const getReportStatus = (reportId) => { + return service.get(`/api/report/generate/status`, { params: { report_id: reportId } }) +} + +/** + * 获取 Agent 日志(增量) + * @param {string} reportId + * @param {number} fromLine - 从第几行开始获取 + */ +export const getAgentLog = (reportId, fromLine = 0) => { + return service.get(`/api/report/${reportId}/agent-log`, { params: { from_line: fromLine } }) +} + +/** + * 获取控制台日志(增量) + * @param {string} reportId + * @param {number} fromLine - 从第几行开始获取 + */ +export const getConsoleLog = (reportId, fromLine = 0) => { + return service.get(`/api/report/${reportId}/console-log`, { params: { from_line: fromLine } }) +} + +/** + * 获取报告详情 + * @param {string} reportId + */ +export const getReport = (reportId) => { + return service.get(`/api/report/${reportId}`) +} + +/** + * 与 Report Agent 对话 + * @param {Object} data - { simulation_id, message, chat_history? } + */ +export const chatWithReport = (data) => { + return requestWithRetry(() => service.post('/api/report/chat', data), 3, 1000) +} diff --git a/frontend/src/api/simulation.js b/frontend/src/api/simulation.js new file mode 100644 index 00000000..f878586f --- /dev/null +++ b/frontend/src/api/simulation.js @@ -0,0 +1,187 @@ +import service, { requestWithRetry } from './index' + +/** + * 创建模拟 + * @param {Object} data - { project_id, graph_id?, enable_twitter?, enable_reddit? } + */ +export const createSimulation = (data) => { + return requestWithRetry(() => service.post('/api/simulation/create', data), 3, 1000) +} + +/** + * 准备模拟环境(异步任务) + * @param {Object} data - { simulation_id, entity_types?, use_llm_for_profiles?, parallel_profile_count?, force_regenerate? } + */ +export const prepareSimulation = (data) => { + return requestWithRetry(() => service.post('/api/simulation/prepare', data), 3, 1000) +} + +/** + * 查询准备任务进度 + * @param {Object} data - { task_id?, simulation_id? } + */ +export const getPrepareStatus = (data) => { + return service.post('/api/simulation/prepare/status', data) +} + +/** + * 获取模拟状态 + * @param {string} simulationId + */ +export const getSimulation = (simulationId) => { + return service.get(`/api/simulation/${simulationId}`) +} + +/** + * 获取模拟的 Agent Profiles + * @param {string} simulationId + * @param {string} platform - 'reddit' | 'twitter' + */ +export const getSimulationProfiles = (simulationId, platform = 'reddit') => { + return service.get(`/api/simulation/${simulationId}/profiles`, { params: { platform } }) +} + +/** + * 实时获取生成中的 Agent Profiles + * @param {string} simulationId + * @param {string} platform - 'reddit' | 'twitter' + */ +export const getSimulationProfilesRealtime = (simulationId, platform = 'reddit') => { + return service.get(`/api/simulation/${simulationId}/profiles/realtime`, { params: { platform } }) +} + +/** + * 获取模拟配置 + * @param {string} simulationId + */ +export const getSimulationConfig = (simulationId) => { + return service.get(`/api/simulation/${simulationId}/config`) +} + +/** + * 实时获取生成中的模拟配置 + * @param {string} simulationId + * @returns {Promise} 返回配置信息,包含元数据和配置内容 + */ +export const getSimulationConfigRealtime = (simulationId) => { + return service.get(`/api/simulation/${simulationId}/config/realtime`) +} + +/** + * 列出所有模拟 + * @param {string} projectId - 可选,按项目ID过滤 + */ +export const listSimulations = (projectId) => { + const params = projectId ? { project_id: projectId } : {} + return service.get('/api/simulation/list', { params }) +} + +/** + * 启动模拟 + * @param {Object} data - { simulation_id, platform?, max_rounds?, enable_graph_memory_update? } + */ +export const startSimulation = (data) => { + return requestWithRetry(() => service.post('/api/simulation/start', data), 3, 1000) +} + +/** + * 停止模拟 + * @param {Object} data - { simulation_id } + */ +export const stopSimulation = (data) => { + return service.post('/api/simulation/stop', data) +} + +/** + * 获取模拟运行实时状态 + * @param {string} simulationId + */ +export const getRunStatus = (simulationId) => { + return service.get(`/api/simulation/${simulationId}/run-status`) +} + +/** + * 获取模拟运行详细状态(包含最近动作) + * @param {string} simulationId + */ +export const getRunStatusDetail = (simulationId) => { + return service.get(`/api/simulation/${simulationId}/run-status/detail`) +} + +/** + * 获取模拟中的帖子 + * @param {string} simulationId + * @param {string} platform - 'reddit' | 'twitter' + * @param {number} limit - 返回数量 + * @param {number} offset - 偏移量 + */ +export const getSimulationPosts = (simulationId, platform = 'reddit', limit = 50, offset = 0) => { + return service.get(`/api/simulation/${simulationId}/posts`, { + params: { platform, limit, offset } + }) +} + +/** + * 获取模拟时间线(按轮次汇总) + * @param {string} simulationId + * @param {number} startRound - 起始轮次 + * @param {number} endRound - 结束轮次 + */ +export const getSimulationTimeline = (simulationId, startRound = 0, endRound = null) => { + const params = { start_round: startRound } + if (endRound !== null) { + params.end_round = endRound + } + return service.get(`/api/simulation/${simulationId}/timeline`, { params }) +} + +/** + * 获取Agent统计信息 + * @param {string} simulationId + */ +export const getAgentStats = (simulationId) => { + return service.get(`/api/simulation/${simulationId}/agent-stats`) +} + +/** + * 获取模拟动作历史 + * @param {string} simulationId + * @param {Object} params - { limit, offset, platform, agent_id, round_num } + */ +export const getSimulationActions = (simulationId, params = {}) => { + return service.get(`/api/simulation/${simulationId}/actions`, { params }) +} + +/** + * 关闭模拟环境(优雅退出) + * @param {Object} data - { simulation_id, timeout? } + */ +export const closeSimulationEnv = (data) => { + return service.post('/api/simulation/close-env', data) +} + +/** + * 获取模拟环境状态 + * @param {Object} data - { simulation_id } + */ +export const getEnvStatus = (data) => { + return service.post('/api/simulation/env-status', data) +} + +/** + * 批量采访 Agent + * @param {Object} data - { simulation_id, interviews: [{ agent_id, prompt }] } + */ +export const interviewAgents = (data) => { + return requestWithRetry(() => service.post('/api/simulation/interview/batch', data), 3, 1000) +} + +/** + * 获取历史模拟列表(带项目详情) + * 用于首页历史项目展示 + * @param {number} limit - 返回数量限制 + */ +export const getSimulationHistory = (limit = 20) => { + return service.get('/api/simulation/history', { params: { limit } }) +} + diff --git a/frontend/src/assets/logo/MiroFish_logo_compressed.jpeg b/frontend/src/assets/logo/MiroFish_logo_compressed.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..eb7bd5af66e9966ac7f96d11ec4402b579bf4b82 GIT binary patch literal 180620 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 literal 0 HcmV?d00001 diff --git a/frontend/src/assets/logo/MiroFish_logo_left.jpeg b/frontend/src/assets/logo/MiroFish_logo_left.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..a5459350d35fef74d7ec3da226c9bd0979a24c59 GIT binary patch literal 600901 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

v%WZS8Q<)BOZ=WBke~BKw!|1C)j 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¨G)vpWv}J6?{!cyoj&9@daG5}m(D?#klfXzp2<)f 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
b|ssips8{D2gMqM=FFPQ}^TAkz@OgdD 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 literal 0 HcmV?d00001 diff --git a/frontend/src/components/GraphPanel.vue b/frontend/src/components/GraphPanel.vue new file mode 100644 index 00000000..db188298 --- /dev/null +++ b/frontend/src/components/GraphPanel.vue @@ -0,0 +1,1423 @@ + + + + + diff --git a/frontend/src/components/HistoryDatabase.vue b/frontend/src/components/HistoryDatabase.vue new file mode 100644 index 00000000..d6c6e9a5 --- /dev/null +++ b/frontend/src/components/HistoryDatabase.vue @@ -0,0 +1,1342 @@ + + + + + diff --git a/frontend/src/components/LanguageSwitcher.vue b/frontend/src/components/LanguageSwitcher.vue new file mode 100644 index 00000000..723d64b7 --- /dev/null +++ b/frontend/src/components/LanguageSwitcher.vue @@ -0,0 +1,124 @@ + + + + + diff --git a/frontend/src/components/Step1GraphBuild.vue b/frontend/src/components/Step1GraphBuild.vue new file mode 100644 index 00000000..687d1c7b --- /dev/null +++ b/frontend/src/components/Step1GraphBuild.vue @@ -0,0 +1,700 @@ + + + + + diff --git a/frontend/src/components/Step2EnvSetup.vue b/frontend/src/components/Step2EnvSetup.vue new file mode 100644 index 00000000..a27ba347 --- /dev/null +++ b/frontend/src/components/Step2EnvSetup.vue @@ -0,0 +1,2605 @@ + + + + + diff --git a/frontend/src/components/Step3Simulation.vue b/frontend/src/components/Step3Simulation.vue new file mode 100644 index 00000000..5b0f968c --- /dev/null +++ b/frontend/src/components/Step3Simulation.vue @@ -0,0 +1,1267 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/components/Step4Report.vue b/frontend/src/components/Step4Report.vue new file mode 100644 index 00000000..8e53ceb5 --- /dev/null +++ b/frontend/src/components/Step4Report.vue @@ -0,0 +1,5162 @@ + + + + + + + diff --git a/frontend/src/components/Step5Interaction.vue b/frontend/src/components/Step5Interaction.vue new file mode 100644 index 00000000..9eb791a1 --- /dev/null +++ b/frontend/src/components/Step5Interaction.vue @@ -0,0 +1,2584 @@ + + + + + + + diff --git a/frontend/src/i18n/index.js b/frontend/src/i18n/index.js new file mode 100644 index 00000000..aa265535 --- /dev/null +++ b/frontend/src/i18n/index.js @@ -0,0 +1,27 @@ +import { createI18n } from 'vue-i18n' +import languages from '../../../locales/languages.json' + +const localeFiles = import.meta.glob('../../../locales/!(languages).json', { eager: true }) + +const messages = {} +const availableLocales = [] + +for (const path in localeFiles) { + const key = path.match(/\/([^/]+)\.json$/)[1] + if (languages[key]) { + messages[key] = localeFiles[path].default + availableLocales.push({ key, label: languages[key].label }) + } +} + +const savedLocale = localStorage.getItem('locale') || 'zh' + +const i18n = createI18n({ + legacy: false, + locale: savedLocale, + fallbackLocale: 'zh', + messages +}) + +export { availableLocales } +export default i18n diff --git a/frontend/src/main.js b/frontend/src/main.js new file mode 100644 index 00000000..cc3d101e --- /dev/null +++ b/frontend/src/main.js @@ -0,0 +1,11 @@ +import { createApp } from 'vue' +import App from './App.vue' +import router from './router' +import i18n from './i18n' + +const app = createApp(App) + +app.use(router) +app.use(i18n) + +app.mount('#app') diff --git a/frontend/src/router/index.js b/frontend/src/router/index.js new file mode 100644 index 00000000..62d23201 --- /dev/null +++ b/frontend/src/router/index.js @@ -0,0 +1,52 @@ +import { createRouter, createWebHistory } from 'vue-router' +import Home from '../views/Home.vue' +import Process from '../views/MainView.vue' +import SimulationView from '../views/SimulationView.vue' +import SimulationRunView from '../views/SimulationRunView.vue' +import ReportView from '../views/ReportView.vue' +import InteractionView from '../views/InteractionView.vue' + +const routes = [ + { + path: '/', + name: 'Home', + component: Home + }, + { + path: '/process/:projectId', + name: 'Process', + component: Process, + props: true + }, + { + path: '/simulation/:simulationId', + name: 'Simulation', + component: SimulationView, + props: true + }, + { + path: '/simulation/:simulationId/start', + name: 'SimulationRun', + component: SimulationRunView, + props: true + }, + { + path: '/report/:reportId', + name: 'Report', + component: ReportView, + props: true + }, + { + path: '/interaction/:reportId', + name: 'Interaction', + component: InteractionView, + props: true + } +] + +const router = createRouter({ + history: createWebHistory(), + routes +}) + +export default router diff --git a/frontend/src/store/pendingUpload.js b/frontend/src/store/pendingUpload.js new file mode 100644 index 00000000..958c3d0a --- /dev/null +++ b/frontend/src/store/pendingUpload.js @@ -0,0 +1,33 @@ +/** + * 临时存储待上传的文件和需求 + * 用于首页点击启动引擎后立即跳转,在Process页面再进行API调用 + */ +import { reactive } from 'vue' + +const state = reactive({ + files: [], + simulationRequirement: '', + isPending: false +}) + +export function setPendingUpload(files, requirement) { + state.files = files + state.simulationRequirement = requirement + state.isPending = true +} + +export function getPendingUpload() { + return { + files: state.files, + simulationRequirement: state.simulationRequirement, + isPending: state.isPending + } +} + +export function clearPendingUpload() { + state.files = [] + state.simulationRequirement = '' + state.isPending = false +} + +export default state diff --git a/frontend/src/views/Home.vue b/frontend/src/views/Home.vue new file mode 100644 index 00000000..ca7ef6ff --- /dev/null +++ b/frontend/src/views/Home.vue @@ -0,0 +1,953 @@ + + + + + + + diff --git a/frontend/src/views/InteractionView.vue b/frontend/src/views/InteractionView.vue new file mode 100644 index 00000000..7e555b26 --- /dev/null +++ b/frontend/src/views/InteractionView.vue @@ -0,0 +1,355 @@ + + + + + diff --git a/frontend/src/views/MainView.vue b/frontend/src/views/MainView.vue new file mode 100644 index 00000000..513c70d8 --- /dev/null +++ b/frontend/src/views/MainView.vue @@ -0,0 +1,545 @@ + + + + + diff --git a/frontend/src/views/Process.vue b/frontend/src/views/Process.vue new file mode 100644 index 00000000..2d2d3cc1 --- /dev/null +++ b/frontend/src/views/Process.vue @@ -0,0 +1,2068 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/views/ReportView.vue b/frontend/src/views/ReportView.vue new file mode 100644 index 00000000..ac054e47 --- /dev/null +++ b/frontend/src/views/ReportView.vue @@ -0,0 +1,353 @@ + + + + + diff --git a/frontend/src/views/SimulationRunView.vue b/frontend/src/views/SimulationRunView.vue new file mode 100644 index 00000000..c675d877 --- /dev/null +++ b/frontend/src/views/SimulationRunView.vue @@ -0,0 +1,452 @@ + + + + + + diff --git a/frontend/src/views/SimulationView.vue b/frontend/src/views/SimulationView.vue new file mode 100644 index 00000000..f3e1c18e --- /dev/null +++ b/frontend/src/views/SimulationView.vue @@ -0,0 +1,439 @@ + + + + + + diff --git a/frontend/vite.config.js b/frontend/vite.config.js new file mode 100644 index 00000000..8f1e4c11 --- /dev/null +++ b/frontend/vite.config.js @@ -0,0 +1,25 @@ +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' +import path from 'path' + +// https://vite.dev/config/ +export default defineConfig({ + plugins: [vue()], + resolve: { + alias: { + '@': path.resolve(__dirname, 'src'), + '@locales': path.resolve(__dirname, '../locales') + } + }, + server: { + port: 3000, + open: true, + proxy: { + '/api': { + target: 'http://localhost:5001', + changeOrigin: true, + secure: false + } + } + } +}) diff --git a/locales/en.json b/locales/en.json new file mode 100644 index 00000000..544c68b1 --- /dev/null +++ b/locales/en.json @@ -0,0 +1,665 @@ +{ + "common": { + "confirm": "Confirm", + "cancel": "Cancel", + "loading": "Loading...", + "error": "Error", + "success": "Success", + "completed": "Completed", + "processing": "Generating", + "pending": "Pending", + "ready": "Ready", + "running": "Running", + "failed": "Failed", + "unknown": "Unknown", + "unknownError": "Unknown error", + "none": "None", + "close": "Close", + "back": "Back", + "next": "Next", + "retry": "Retry", + "noData": "No data available", + "hours": "hours", + "minutes": "minutes", + "rounds": "rounds", + "items": "items", + "files": "files" + }, + "meta": { + "title": "MiroFish - Predict Everything", + "description": "MiroFish - Social Media Opinion Simulation System" + }, + "nav": { + "visitGithub": "Visit our Github page" + }, + "home": { + "tagline": "Concise & Universal Swarm Intelligence Engine", + "version": "/ v0.1-Preview", + "heroTitle1": "Upload Reports,", + "heroTitle2": "Predict the Future", + "heroDesc": "From a single document, {brand} extracts reality seeds to auto-generate a parallel world with up to {agentScale}. Inject variables from a god's-eye view to find the {optimalSolution} in complex group dynamics.", + "heroDescBrand": "MiroFish", + "heroDescAgentScale": "million-scale Agents", + "heroDescOptimalSolution": "\"local optimum\"", + "slogan": "Let Agents rehearse the future, let decisions prevail", + "systemStatus": "System Status", + "systemReady": "Ready", + "systemReadyDesc": "Prediction engine on standby. Upload unstructured data to initialize a simulation sequence.", + "metricLowCost": "Low Cost", + "metricLowCostDesc": "Avg. $5/sim", + "metricHighAvail": "Scalable", + "metricHighAvailDesc": "Millions of Agents", + "workflowSequence": "Workflow", + "step01Title": "Graph Build", + "step01Desc": "Seed extraction & memory injection & GraphRAG construction", + "step02Title": "Env Setup", + "step02Desc": "Entity extraction & persona generation & Agent config injection", + "step03Title": "Simulation", + "step03Desc": "Dual-platform parallel sim & auto-parse requirements & temporal memory", + "step04Title": "Report", + "step04Desc": "ReportAgent interacts with the post-simulation environment via rich tools", + "step05Title": "Interaction", + "step05Desc": "Chat with any simulated individual & converse with ReportAgent", + "realitySeed": "01 / Reality Seed", + "supportedFormats": "Formats: PDF, MD, TXT", + "dragToUpload": "Drag files to upload", + "orBrowse": "or click to browse files", + "inputParams": "Input Parameters", + "simulationPrompt": ">_ 02 / Simulation Prompt", + "promptPlaceholder": "// Describe your simulation or prediction requirement in natural language", + "engineBadge": "Engine: MiroFish-V1.0", + "startEngine": "Start Engine", + "initializing": "Initializing..." + }, + "main": { + "layoutGraph": "Graph", + "layoutSplit": "Split", + "layoutWorkbench": "Workbench", + "stepNames": ["Graph Build", "Env Setup", "Run Simulation", "Report Generation", "Deep Interaction"] + }, + "step1": { + "ontologyGeneration": "Ontology Generation", + "ontologyCompleted": "Completed", + "ontologyGenerating": "Generating", + "ontologyPending": "Pending", + "ontologyDesc": "LLM analyzes document content and simulation requirements, extracts reality seeds, and auto-generates a suitable ontology structure", + "analyzingDocs": "Analyzing documents...", + "graphRagBuild": "GraphRAG Build", + "graphRagDesc": "Based on the generated ontology, documents are auto-chunked and sent to Zep to build a knowledge graph, extracting entities and relations, forming temporal memory and community summaries", + "entityNodes": "Entity Nodes", + "relationEdges": "Relation Edges", + "schemaTypes": "Schema Types", + "buildComplete": "Build Complete", + "buildCompleteDesc": "Graph build is complete. Proceed to the next step for simulation environment setup.", + "inProgress": "In Progress", + "creating": "Creating...", + "enterEnvSetup": "Enter Environment Setup", + "createSimulationFailed": "Failed to create simulation: {error}", + "createSimulationException": "Simulation creation error: {error}" + }, + "step2": { + "simInstanceInit": "Simulation Instance Initialization", + "simInstanceDesc": "Create a new simulation instance and pull world parameter templates", + "asyncTaskDone": "Async task completed", + "generateAgentPersona": "Generate Agent Personas", + "generateAgentPersonaDesc": "Combine context to auto-extract entities and relations from the knowledge graph, initialize simulated individuals, and assign unique behaviors and memories based on reality seeds", + "currentAgentCount": "Current Agents", + "expectedAgentTotal": "Expected Total Agents", + "relatedTopicsCount": "Reality Seed Related Topics", + "generatedAgentPersonas": "Generated Agent Personas", + "unknownProfession": "Unknown profession", + "noBio": "No bio available", + "dualPlatformConfig": "Generate Dual-Platform Config", + "dualPlatformConfigDesc": "LLM intelligently sets world time flow, recommendation algorithms, each individual's active hours, posting frequency, event triggers, and more based on requirements and reality seeds", + "simulationDuration": "Simulation Duration", + "roundDuration": "Round Duration", + "totalRounds": "Total Rounds", + "activePerHour": "Active Per Hour", + "peakHours": "Peak Hours", + "workHours": "Work Hours", + "morningHours": "Morning Hours", + "offPeakHours": "Off-Peak Hours", + "agentConfig": "Agent Config", + "activeTimePeriod": "Active Hours", + "postsPerHour": "Posts/hr", + "commentsPerHour": "Comments/hr", + "responseDelay": "Response Delay", + "activityLevel": "Activity Level", + "sentimentBias": "Sentiment Bias", + "influenceWeight": "Influence", + "recommendAlgoConfig": "Recommendation Algorithm Config", + "platform1Name": "Platform 1: Plaza / Feed", + "platform2Name": "Platform 2: Topic / Community", + "recencyWeight": "Recency Weight", + "popularityWeight": "Popularity Weight", + "relevanceWeight": "Relevance Weight", + "viralThreshold": "Viral Threshold", + "echoChamberStrength": "Echo Chamber Strength", + "llmConfigReasoning": "LLM Config Reasoning", + "initialActivation": "Initial Activation Orchestration", + "initialActivationDesc": "Auto-generate initial activation events and hot topics based on narrative direction to guide the simulation world's initial state", + "orchestrating": "Orchestrating", + "narrativeDirection": "Narrative Direction", + "initialHotTopics": "Initial Hot Topics", + "initialActivationSeq": "Initial Activation Sequence ({count})", + "setupComplete": "Setup Complete", + "setupCompleteDesc": "Simulation environment is ready. You can now start the simulation.", + "roundsConfig": "Simulation Rounds Configuration", + "roundsConfigDesc": "MiroFish auto-plans to simulate {hours} real-world hours, each round representing {minutesPerRound} minutes of elapsed time", + "customToggle": "Custom", + "roundsUnit": "rounds", + "estimatedDuration": "For 100 Agents: est. ~{minutes} minutes", + "estimatedDurationFull": "For 100 Agents: est. {minutes} minutes", + "recommendedRounds": "{rounds} (recommended)", + "customTip": "For first-time runs, we strongly recommend switching to 'Custom Mode' to reduce rounds for a quick preview and lower error risk", + "backToGraphBuild": "Back to Graph Build", + "startDualWorldSim": "Start Dual-World Parallel Simulation", + "profileModalAge": "Apparent Age", + "profileModalGender": "Apparent Gender", + "profileModalCountry": "Country/Region", + "profileModalMbti": "Apparent MBTI", + "profileModalBio": "Persona Bio", + "profileModalTopics": "Reality Seed Related Topics", + "profileModalPersona": "Detailed Persona Background", + "personaDimExperience": "Full Event Experience", + "personaDimExperienceDesc": "Complete behavioral trajectory in this event", + "personaDimBehavior": "Behavioral Profile", + "personaDimBehaviorDesc": "Experience summary and behavioral preferences", + "personaDimMemory": "Unique Memory Imprint", + "personaDimMemoryDesc": "Memories formed from reality seeds", + "personaDimSocial": "Social Network", + "personaDimSocialDesc": "Individual connections and interaction graph", + "genderMale": "Male", + "genderFemale": "Female", + "genderOther": "Other", + "yearsOld": "years old", + "initializing": "Initializing", + "generating": "Generating" + }, + "step3": { + "startGenerateReport": "Generate Report", + "generatingReport": "Starting...", + "waitingForActions": "Waiting for agent actions...", + "errorMissingSimId": "Error: missing simulationId", + "startingDualSim": "Starting dual-platform parallel simulation...", + "graphMemoryUpdateEnabled": "Dynamic graph memory update enabled", + "setMaxRounds": "Max simulation rounds set to: {rounds}", + "oldSimCleared": "Old simulation logs cleared, restarting simulation", + "engineStarted": "Simulation engine started successfully", + "startFailed": "Start failed: {error}", + "startException": "Start error: {error}", + "stoppingSim": "Stopping simulation...", + "simStopped": "Simulation stopped", + "stopFailed": "Stop failed: {error}", + "stopException": "Stop error: {error}", + "allPlatformsCompleted": "All platform simulations have ended", + "simCompleted": "Simulation completed", + "graphRealtimeRefresh": "Graph real-time refresh enabled (30s)", + "graphRefreshStopped": "Graph real-time refresh stopped", + "preparingGoBack": "Preparing to return to Step 2, closing simulation...", + "closingSimEnv": "Closing simulation environment...", + "simEnvClosed": "Simulation environment closed", + "closeFailed": "Failed to close simulation environment, attempting force stop...", + "stoppingProcess": "Stopping simulation process...", + "checkStatusFailed": "Failed to check simulation status: {error}", + "forceStopSuccess": "Simulation force stopped", + "forceStopFailed": "Force stop failed: {error}", + "startGenerateReportBtn": "Generate Report", + "generatingReportBtn": "Starting..." + }, + "step4": { + "generatingSection": "Generating {title}...", + "goToInteraction": "Enter Deep Interaction", + "waitingForReportAgent": "Waiting for Report Agent...", + "collapse": "Collapse ▲", + "expandAll": "Show all {count} ▼", + "expandAllEntities": "Show all {count} ▼", + "scenarioLabel": "Scenario: ", + "tabKeyFacts": "Key Facts ({count})", + "tabCoreEntities": "Core Entities ({count})", + "tabRelationChains": "Relation Chains ({count})", + "tabSubQueries": "Sub-queries ({count})", + "panelKeyFacts": "Latest key facts from temporal memory", + "totalCount": "{count} total", + "totalEntityCount": "{count} total", + "panelCoreEntities": "Core Entities", + "factCount": "{count} facts", + "panelRelationChains": "Relation Chains", + "panelSubQueries": "Drift query analysis sub-questions", + "emptyKeyFacts": "No key facts available", + "emptyCoreEntities": "No core entities available", + "emptyRelationChains": "No relation chains available", + "tabActiveFacts": "Active Facts ({count})", + "tabHistoricalFacts": "Historical Facts ({count})", + "tabEntities": "Entities ({count})", + "panelActiveFacts": "Active Facts", + "emptyActiveFacts": "No active facts available", + "panelHistoricalFacts": "Historical Facts", + "emptyHistoricalFacts": "No historical facts available", + "panelEntities": "Entities", + "emptyEntities": "No entities available", + "searchLabel": "Search: ", + "tabFacts": "Facts ({count})", + "tabEdges": "Edges ({count})", + "tabNodes": "Nodes ({count})", + "panelSearchResults": "Search Results", + "emptySearchResults": "No results found", + "panelRelatedEdges": "Related Edges", + "panelRelatedNodes": "Related Nodes", + "world1": "World 1", + "world2": "World 2" + }, + "step5": { + "interactiveTools": "Interactive Tools", + "agentsAvailable": "{count} agents available", + "chatWithReportAgent": "Chat with Report Agent", + "chatWithAgent": "Chat with any individual in the world", + "selectChatTarget": "Select chat target", + "sendSurvey": "Send survey to the world", + "reportAgentChat": "Report Agent - Chat", + "reportAgentDesc": "A conversational version of the report generation agent with access to 4 professional tools and MiroFish's complete memory", + "toolInsightForge": "InsightForge Deep Attribution", + "toolInsightForgeDesc": "Aligns real-world seed data with simulation state, combining Global/Local Memory for cross-temporal deep attribution analysis", + "toolPanoramaSearch": "PanoramaSearch Full Tracking", + "toolPanoramaSearchDesc": "Graph-based BFS algorithm that reconstructs event propagation paths, capturing the full topology of information flow", + "toolQuickSearch": "QuickSearch Fast Retrieval", + "toolQuickSearchDesc": "GraphRAG-based instant query interface with optimized indexing for fast extraction of node attributes and discrete facts", + "toolInterviewSubAgent": "InterviewSubAgent Virtual Interview", + "toolInterviewSubAgentDesc": "Autonomous interviews that conduct parallel multi-round dialogues with simulated individuals, collecting unstructured opinion data and psychological states", + "profileBio": "Bio", + "chatEmptyReportAgent": "Chat with Report Agent to explore report content in depth", + "chatEmptyAgent": "Chat with simulated individuals to understand their perspectives", + "chatInputPlaceholder": "Type your question...", + "selectSurveyTarget": "Select survey targets", + "selectedCount": "Selected {selected} / {total}", + "surveyQuestions": "Survey Questions", + "surveyInputPlaceholder": "Enter the question you want to ask all selected targets...", + "submitSurvey": "Send Survey", + "surveyResults": "Survey Results", + "surveyResultsCount": "{count} responses", + "selectAll": "Select All", + "clearSelection": "Clear", + "errorOccurred": "Sorry, an error occurred: {error}", + "noResponse": "No response", + "requestFailed": "Request failed", + "selectAgentFirst": "Please select a simulated individual first" + }, + "graph": { + "panelTitle": "Graph Relationship Visualization", + "refreshGraph": "Refresh Graph", + "graphMemoryRealtime": "GraphRAG short/long-term memory updating in real-time", + "realtimeUpdating": "Updating in real-time...", + "pendingContentHint": "Some content is still processing. Consider refreshing the graph manually later.", + "nodeDetails": "Node Details", + "relationship": "Relationship", + "graphDataLoading": "Loading graph data...", + "waitingOntology": "Waiting for ontology generation...", + "toggleMaximize": "Maximize/Restore", + "closeHint": "Close hint" + }, + "history": { + "title": "Simulation History", + "graphBuild": "Graph Build", + "envSetup": "Env Setup", + "analysisReport": "Analysis Report", + "moreFiles": "+{count} files", + "noFiles": "No files", + "loadingText": "Loading...", + "simRequirement": "Simulation Requirement", + "relatedFiles": "Related Files", + "noRelatedFiles": "No related files", + "replayTitle": "Simulation Replay", + "step1Button": "Graph Build", + "step2Button": "Env Setup", + "step4Button": "Analysis Report", + "replayHint": "Step 3 'Run Simulation' and Step 5 'Deep Interaction' must be started during runtime and do not support history replay", + "notStarted": "Not started", + "roundsProgress": "{current}/{total} rounds", + "untitledSimulation": "Untitled simulation", + "unknownFile": "Unknown file" + }, + "api": { + "projectNotFound": "Project not found: {id}", + "projectDeleteFailed": "Project not found or deletion failed: {id}", + "projectDeleted": "Project deleted: {id}", + "projectReset": "Project reset: {id}", + "requireSimulationRequirement": "Please provide a simulation requirement (simulation_requirement)", + "requireFileUpload": "Please upload at least one document file", + "noDocProcessed": "No documents were processed successfully. Please check file formats.", + "requireProjectId": "Please provide project_id", + "configError": "Configuration error: {details}", + "zepApiKeyMissing": "ZEP_API_KEY not configured", + "ontologyNotGenerated": "Ontology not yet generated. Please call /ontology/generate first.", + "graphBuilding": "Graph build in progress. Do not resubmit. To force rebuild, add force: true.", + "textNotFound": "Extracted text content not found", + "ontologyNotFound": "Ontology definition not found", + "graphBuildStarted": "Graph build task started. Query progress via /task/{taskId}.", + "graphBuildComplete": "Graph build complete", + "buildFailed": "Build failed: {error}", + "taskNotFound": "Task not found: {id}", + "graphDeleted": "Graph deleted: {id}", + "entityNotFound": "Entity not found: {id}", + "graphNotBuilt": "Graph not yet built. Please call /api/graph/build first.", + "requireSimulationId": "Please provide simulation_id", + "simulationNotFound": "Simulation not found: {id}", + "projectMissingRequirement": "Project missing simulation requirement (simulation_requirement)", + "prepareStarted": "Preparation task started. Query progress via /api/simulation/prepare/status.", + "alreadyPrepared": "Preparation already complete. No need to regenerate.", + "notStartedPrepare": "Preparation not started. Please call /api/simulation/prepare.", + "taskCompletedPrepared": "Task completed (preparation already exists)", + "requireTaskOrSimId": "Please provide task_id or simulation_id", + "configNotFound": "Simulation config not found. Please call /prepare first.", + "configFileNotFound": "Config file not found. Please call /prepare first.", + "unknownScript": "Unknown script: {name}. Available: {allowed}", + "scriptFileNotFound": "Script file not found: {name}", + "requireGraphId": "Please provide graph_id", + "noMatchingEntities": "No matching entities found", + "maxRoundsPositive": "max_rounds must be a positive integer", + "maxRoundsInvalid": "max_rounds must be a valid integer", + "invalidPlatform": "Invalid platform type: {platform}. Options: twitter/reddit/parallel", + "simRunningForceHint": "Simulation is running. Stop it first via /stop, or use force=true to restart.", + "simNotReady": "Simulation not ready. Current status: {status}. Please call /prepare first.", + "graphIdRequiredForMemory": "Graph memory update requires a valid graph_id. Ensure the graph is built.", + "dbNotExist": "Database does not exist. The simulation may not have run yet.", + "requireMessage": "Please provide a message", + "missingGraphId": "Missing graph ID", + "missingGraphIdEnsure": "Missing graph ID. Please ensure the graph has been built.", + "missingSimRequirement": "Missing simulation requirement description", + "reportAlreadyExists": "Report already exists", + "reportGenerateStarted": "Report generation task started. Query progress via /api/report/generate/status.", + "reportGenerated": "Report generated", + "reportNotFound": "Report not found: {id}", + "noReportForSim": "No report found for this simulation: {id}", + "reportDeleted": "Report deleted: {id}", + "reportGenerateFailed": "Report generation failed", + "sectionNotFound": "Section not found: section_{index}.md", + "reportProgressNotAvail": "Report not found or progress unavailable: {id}", + "requireAgentId": "Please provide agent_id", + "requirePrompt": "Please provide a prompt (interview question)", + "invalidInterviewPlatform": "Platform must be either 'twitter' or 'reddit'", + "envNotRunning": "Simulation environment not running or closed. Ensure simulation is complete and in command-wait mode.", + "interviewTimeout": "Interview response timed out: {error}", + "requireInterviews": "Please provide interviews (interview list)", + "interviewListMissingAgentId": "Interview list item {index} missing agent_id", + "interviewListMissingPrompt": "Interview list item {index} missing prompt", + "interviewListInvalidPlatform": "Interview list item {index} platform must be 'twitter' or 'reddit'", + "batchInterviewTimeout": "Batch interview response timed out: {error}", + "globalInterviewTimeout": "Global interview response timed out: {error}", + "envRunning": "Environment is running and ready for Interview commands", + "envNotRunningShort": "Environment not running or closed", + "requireGraphIdAndQuery": "Please provide graph_id and query", + "initReportAgent": "Initializing Report Agent..." + }, + "progress": { + "initGraphService": "Initializing graph build service...", + "textChunking": "Chunking text...", + "creatingZepGraph": "Creating Zep graph...", + "settingOntology": "Setting ontology definition...", + "addingChunks": "Adding {count} text chunks...", + "waitingZepProcess": "Waiting for Zep to process data...", + "fetchingGraphData": "Fetching graph data...", + "graphBuildComplete": "Graph build complete", + "buildFailed": "Build failed: {error}", + "startBuildingGraph": "Starting graph build...", + "graphCreated": "Graph created: {graphId}", + "ontologySet": "Ontology set", + "textSplit": "Text split into {count} chunks", + "fetchingGraphInfo": "Fetching graph info...", + "sendingBatch": "Sending batch {current}/{total} ({chunks} chunks)...", + "batchFailed": "Batch {batch} failed: {error}", + "noEpisodesWait": "No episodes to wait for", + "waitingEpisodes": "Waiting for {count} text chunks to process...", + "episodesTimeout": "Some chunks timed out, {completed}/{total} completed", + "zepProcessing": "Zep processing... {completed}/{total} done, {pending} pending ({elapsed}s)", + "processingComplete": "Processing complete: {completed}/{total}", + "taskComplete": "Task complete", + "taskFailed": "Task failed", + "startPreparingEnv": "Preparing simulation environment...", + "connectingZepGraph": "Connecting to Zep graph...", + "readingNodeData": "Reading node data...", + "readingComplete": "Done, {count} entities found", + "startGenerating": "Starting generation...", + "analyzingRequirements": "Analyzing simulation requirements...", + "generatingOutline": "Generating report outline...", + "parsingOutline": "Parsing outline structure...", + "outlinePlanComplete": "Outline planning complete", + "deepSearchAndWrite": "Deep search & writing ({current}/{max})", + "initReport": "Initializing report...", + "startPlanningOutline": "Planning report outline...", + "outlineDone": "Outline complete, {count} sections", + "generatingSection": "Generating section: {title} ({current}/{total})", + "sectionDone": "Section {title} complete", + "assemblingReport": "Assembling full report...", + "reportComplete": "Report generation complete", + "reportFailed": "Report generation failed: {error}", + "savingProfiles": "Saving profile files...", + "profilesComplete": "Done, {count} profiles generated", + "callingLLMConfig": "Calling LLM to generate config...", + "savingConfigFiles": "Saving config files...", + "configComplete": "Config generation complete", + "generatingTimeConfig": "Generating time config...", + "generatingEventConfig": "Generating event config and hot topics...", + "generatingAgentConfig": "Generating agent config ({start}-{end}/{total})...", + "generatingPlatformConfig": "Generating platform config...", + "zepSearchQuery": "All information, activities, events, relationships and background about {name}", + "timeConfigLabel": "Time Config", + "eventConfigLabel": "Event Config", + "agentConfigResult": "Agent Config: {count} generated", + "postAssignResult": "Post Assignment: {count} posts assigned", + "profileGenerated": "[Generated] {name} ({type})", + "readingGraphEntities": "Reading Graph Entities", + "generatingProfiles": "Generating Agent Profiles", + "generatingSimConfig": "Generating Simulation Config", + "preparingScripts": "Preparing Scripts" + }, + "log": { + "preparingGoBack": "Preparing to return to Step 2, closing simulation...", + "closingSimEnv": "Closing simulation environment...", + "simEnvClosed": "✓ Simulation environment closed", + "closeSimEnvFailed": "Failed to close simulation environment, attempting force stop...", + "simForceStopSuccess": "✓ Simulation force stopped", + "forceStopFailed": "Force stop failed: {error}", + "stoppingSimProcess": "Stopping simulation process...", + "simStopped": "✓ Simulation stopped", + "stopSimFailed": "Failed to stop simulation: {error}", + "checkStatusFailed": "Failed to check simulation status: {error}", + "enterStep4": "Entering Step 4: Report Generation", + "loadingSimData": "Loading simulation data: {id}", + "timeConfig": "Time config: {minutes} minutes per round", + "timeConfigFetchFailed": "Failed to fetch time config, using default: {minutes} min/round", + "projectLoadSuccess": "Project loaded: {id}", + "loadSimDataFailed": "Failed to load simulation data: {error}", + "loadException": "Load error: {error}", + "graphDataLoadSuccess": "Graph data loaded successfully", + "graphLoadFailed": "Graph load failed: {error}", + "graphRealtimeRefreshStart": "Graph real-time refresh enabled (30s)", + "graphRealtimeRefreshStop": "Graph real-time refresh stopped", + "simRunViewInit": "SimulationRunView initialized", + "customRounds": "Custom simulation rounds: {rounds}", + "enterStep3": "Entering Step 3: Run Simulation", + "customRoundsConfig": "Custom simulation rounds: {rounds} rounds", + "useAutoRounds": "Using auto-configured simulation rounds", + "detectedSimEnvRunning": "Detected running simulation environment, closing...", + "closeSimEnvFailedWithError": "Failed to close simulation environment: {error}", + "closeSimEnvException": "Simulation environment close error: {error}", + "detectedSimRunning": "Detected simulation is running, stopping...", + "forceStopSimFailed": "Force stop simulation failed: {error}", + "forceStopSimException": "Force stop simulation error: {error}", + "simViewInit": "SimulationView initialized", + "errorMissingSimId": "Error: missing simulationId", + "simInstanceCreated": "Simulation instance created: {id}", + "preparingSimEnv": "Preparing simulation environment...", + "detectedExistingPrep": "Detected existing preparation, using it directly", + "prepareTaskStarted": "Preparation task started", + "prepareTaskId": " └─ Task ID: {taskId}", + "zepEntitiesFound": "Found {count} entities from Zep graph", + "entityTypes": " └─ Entity types: {types}", + "startPollingProgress": "Polling preparation progress...", + "prepareFailed": "Preparation failed: {error}", + "prepareException": "Preparation error: {error}", + "prepareComplete": "✓ Preparation complete", + "prepareFailedWithError": "✗ Preparation failed: {error}", + "startGeneratingConfig": "Generating dual-platform simulation config...", + "generatingAgentProfileConfig": "Generating agent persona config...", + "generatingLLMConfig": "Calling LLM to generate simulation config parameters...", + "configComplete": "✓ Simulation config generated", + "configSummaryAgents": " ├─ Agents: {count}", + "configSummaryHours": " ├─ Duration: {hours} hours", + "configSummaryPosts": " ├─ Initial posts: {count}", + "configSummaryTopics": " ├─ Hot topics: {count}", + "configSummaryPlatforms": " └─ Platforms: Twitter {twitter}, Reddit {reddit}", + "timeConfigDetail": "Time config: {minutes} min/round, {rounds} rounds total", + "narrativeDirection": "Narrative direction: {direction}", + "envSetupComplete": "✓ Environment setup complete, ready to simulate", + "startSimCustomRounds": "Starting simulation, custom rounds: {rounds}", + "startSimAutoRounds": "Starting simulation, auto-configured rounds: {rounds}", + "startGeneratingAgentProfiles": "Generating agent personas...", + "agentProfile": "→ Agent persona {current}/{total}: {name} ({profession})", + "allProfilesComplete": "✓ All {count} agent personas generated", + "loadingExistingConfig": "Loading existing config data...", + "loadedAgentProfiles": "Loaded {count} agent personas", + "configLoadSuccess": "✓ Simulation config loaded", + "configSummaryPostsAlt": " └─ Initial posts: {count}", + "configGenerating": "Config generating, polling...", + "loadConfigFailed": "Failed to load config: {error}", + "step2Init": "Step 2 environment setup initialized", + "step3Init": "Step 3 simulation run initialized", + "startingDualSim": "Starting dual-platform parallel simulation...", + "setMaxRounds": "Max simulation rounds set to: {rounds}", + "graphMemoryUpdateEnabled": "Dynamic graph memory update enabled", + "oldSimCleared": "✓ Old simulation logs cleared, restarting simulation", + "engineStarted": "✓ Simulation engine started successfully", + "startFailed": "✗ Start failed: {error}", + "startException": "✗ Start error: {error}", + "stoppingSim": "Stopping simulation...", + "simStoppedSuccess": "✓ Simulation stopped", + "stopFailed": "Stop failed: {error}", + "stopException": "Stop error: {error}", + "allPlatformsCompleted": "✓ All platform simulations have ended", + "simCompleted": "✓ Simulation completed", + "reportRequestSent": "Report generation request sent, please wait...", + "startingReportGen": "Starting report generation...", + "reportGenTaskStarted": "✓ Report generation task started: {reportId}", + "reportGenFailed": "✗ Failed to start report generation: {error}", + "reportGenException": "✗ Report generation error: {error}", + "step5Init": "Step 5 deep interaction initialized", + "selectChatTarget": "Selected chat target: {name}", + "sendFailed": "Send failed: {error}", + "sendToReportAgent": "Sent to Report Agent: {message}...", + "reportAgentReplied": "Report Agent replied", + "sendToAgent": "Sent to {name}: {message}...", + "agentReplied": "{name} replied", + "sendSurvey": "Sending survey to {count} targets...", + "receivedReplies": "Received {count} replies", + "surveySendFailed": "Survey send failed: {error}", + "loadReportData": "Loading report data: {id}", + "loadReportFailed": "Failed to load report: {error}", + "reportDataLoaded": "Report data loaded", + "loadReportLogFailed": "Failed to load report logs: {error}", + "loadedProfiles": "Loaded {count} simulated individuals", + "loadProfilesFailed": "Failed to load simulated individuals: {error}", + "interactionViewInit": "InteractionView initialized", + "reportViewInit": "ReportView initialized", + "getReportInfoFailed": "Failed to get report info: {error}", + "enterStep": "Entering Step {step}: {name}", + "returnToStep": "Returning to Step {step}: {name}", + "customSimRounds": "Custom simulation rounds: {rounds} rounds" + }, + "report": { + "taskStarted": "Report generation task started", + "planningStart": "Starting report outline planning", + "fetchSimContext": "Fetching simulation context", + "planningComplete": "Outline planning complete", + "sectionStart": "Starting section generation: {title}", + "reactThought": "ReACT round {iteration} thinking", + "toolCall": "Calling tool: {toolName}", + "toolResult": "Tool {toolName} returned result", + "llmResponse": "LLM response (tool calls: {hasToolCalls}, final answer: {hasFinalAnswer})", + "sectionContentDone": "Section {title} content generation complete", + "sectionComplete": "Section {title} generation complete", + "reportComplete": "Report generation complete", + "errorOccurred": "Error occurred: {error}", + "agentInitDone": "ReportAgent initialized: graph_id={graphId}, simulation_id={simulationId}", + "executingTool": "Executing tool: {toolName}, params: {params}", + "toolExecFailed": "Tool execution failed: {toolName}, error: {error}", + "startPlanningOutline": "Starting report outline planning...", + "outlinePlanDone": "Outline planning complete: {count} sections", + "outlinePlanFailed": "Outline planning failed: {error}", + "reactGenerateSection": "ReACT generating section: {title}", + "sectionIterNone": "Section {title} iteration {iteration}: LLM returned None", + "sectionConflict": "Section {title} round {iteration}: LLM output both tool call and Final Answer (conflict #{conflictCount})", + "sectionConflictDowngrade": "Section {title}: {conflictCount} consecutive conflicts, downgrading to truncate and execute first tool call", + "sectionGenDone": "Section {title} generation complete (tool calls: {count})", + "multiToolOnlyFirst": "LLM attempted {total} tool calls, executing only the first: {toolName}", + "sectionNoPrefix": "Section {title} missing 'Final Answer:' prefix, adopting LLM output as final content (tool calls: {count})", + "sectionMaxIter": "Section {title} reached max iterations, forcing generation", + "sectionForceFailed": "Section {title} force-finish LLM returned None, using default error message", + "sectionGenFailedContent": "(This section failed to generate: LLM returned empty response, please retry later)", + "outlineSavedToFile": "Outline saved to file: {reportId}/outline.json", + "sectionSaved": "Section saved: {reportId}/section_{sectionNum}.md", + "reportGenDone": "Report generation complete: {reportId}", + "reportGenFailed": "Report generation failed: {error}", + "agentChat": "Report Agent chat: {message}...", + "fetchReportFailed": "Failed to fetch report content: {error}", + "outlineSaved": "Outline saved: {reportId}", + "sectionFileSaved": "Section saved: {reportId}/{fileSuffix}", + "fullReportAssembled": "Full report assembled: {reportId}", + "reportSaved": "Report saved: {reportId}", + "reportFolderDeleted": "Report folder deleted: {reportId}", + "redirectToQuickSearch": "search_graph redirected to quick_search", + "redirectToInsightForge": "get_simulation_context redirected to insight_forge" + }, + "console": { + "zepToolsInitialized": "ZepToolsService initialized", + "zepRetryAttempt": "Zep {operation} attempt {attempt} failed: {error}, retrying in {delay}s...", + "zepAllRetriesFailed": "Zep {operation} failed after {retries} attempts: {error}", + "graphSearch": "Graph search: graph_id={graphId}, query={query}...", + "graphSearchOp": "Graph search (graph={graphId})", + "searchComplete": "Search complete: found {count} relevant facts", + "zepSearchApiFallback": "Zep Search API failed, falling back to local search: {error}", + "usingLocalSearch": "Using local search: query={query}...", + "localSearchComplete": "Local search complete: found {count} relevant facts", + "localSearchFailed": "Local search failed: {error}", + "fetchingAllNodes": "Fetching all nodes for graph {graphId}...", + "fetchedNodes": "Fetched {count} nodes", + "fetchingAllEdges": "Fetching all edges for graph {graphId}...", + "fetchedEdges": "Fetched {count} edges", + "fetchingNodeDetail": "Fetching node detail: {uuid}...", + "fetchNodeDetailOp": "Fetch node detail (uuid={uuid}...)", + "fetchNodeDetailFailed": "Failed to fetch node detail: {error}", + "fetchingNodeEdges": "Fetching edges for node {uuid}...", + "foundNodeEdges": "Found {count} edges related to node", + "fetchNodeEdgesFailed": "Failed to fetch node edges: {error}", + "fetchingEntitiesByType": "Fetching entities of type {type}...", + "foundEntitiesByType": "Found {count} entities of type {type}", + "fetchingEntitySummary": "Fetching relationship summary for entity {name}...", + "fetchingGraphStats": "Fetching statistics for graph {graphId}...", + "fetchingSimContext": "Fetching simulation context: {requirement}...", + "insightForgeStart": "InsightForge deep insight retrieval: {query}...", + "generatedSubQueries": "Generated {count} sub-queries", + "insightForgeComplete": "InsightForge complete: {facts} facts, {entities} entities, {relationships} relationships", + "generateSubQueriesFailed": "Failed to generate sub-queries: {error}, using defaults", + "panoramaSearchStart": "PanoramaSearch broad search: {query}...", + "panoramaSearchComplete": "PanoramaSearch complete: {active} active, {historical} historical", + "quickSearchStart": "QuickSearch simple search: {query}...", + "quickSearchComplete": "QuickSearch complete: {count} results", + "interviewAgentsStart": "InterviewAgents deep interview (real API): {requirement}...", + "profilesNotFound": "Profiles not found for simulation {simId}", + "loadedProfiles": "Loaded {count} agent profiles", + "selectedAgentsForInterview": "Selected {count} agents for interview: {indices}", + "generatedInterviewQuestions": "Generated {count} interview questions", + "callingBatchInterviewApi": "Calling batch interview API (dual platform): {count} agents", + "interviewApiReturned": "Interview API returned: {count} results, success={success}", + "interviewApiReturnedFailure": "Interview API returned failure: {error}", + "interviewApiCallFailed": "Interview API call failed (env not running?): {error}", + "interviewApiCallException": "Interview API call exception: {error}", + "interviewAgentsComplete": "InterviewAgents complete: interviewed {count} agents (dual platform)", + "loadedRedditProfiles": "Loaded {count} profiles from reddit_profiles.json", + "readRedditProfilesFailed": "Failed to read reddit_profiles.json: {error}", + "loadedTwitterProfiles": "Loaded {count} profiles from twitter_profiles.csv", + "readTwitterProfilesFailed": "Failed to read twitter_profiles.csv: {error}", + "llmSelectAgentFailed": "LLM agent selection failed, using default selection: {error}", + "generateInterviewQuestionsFailed": "Failed to generate interview questions: {error}", + "generateInterviewSummaryFailed": "Failed to generate interview summary: {error}" + } +} diff --git a/locales/languages.json b/locales/languages.json new file mode 100644 index 00000000..81732cec --- /dev/null +++ b/locales/languages.json @@ -0,0 +1,30 @@ +{ + "zh": { + "label": "中文", + "llmInstruction": "请使用中文回答。" + }, + "en": { + "label": "English", + "llmInstruction": "Please respond in English." + }, + "es": { + "label": "Español", + "llmInstruction": "Por favor, responde en español." + }, + "fr": { + "label": "Français", + "llmInstruction": "Veuillez répondre en français." + }, + "pt": { + "label": "Português", + "llmInstruction": "Por favor, responda em português." + }, + "ru": { + "label": "Русский", + "llmInstruction": "Пожалуйста, отвечайте на русском языке." + }, + "de": { + "label": "Deutsch", + "llmInstruction": "Bitte antworten Sie auf Deutsch." + } +} diff --git a/locales/zh.json b/locales/zh.json new file mode 100644 index 00000000..cd747e2f --- /dev/null +++ b/locales/zh.json @@ -0,0 +1,665 @@ +{ + "common": { + "confirm": "确认", + "cancel": "取消", + "loading": "加载中...", + "error": "错误", + "success": "成功", + "completed": "已完成", + "processing": "生成中", + "pending": "等待", + "ready": "就绪", + "running": "运行中", + "failed": "失败", + "unknown": "未知", + "unknownError": "未知错误", + "none": "无", + "close": "关闭", + "back": "返回", + "next": "下一步", + "retry": "重试", + "noData": "暂无数据", + "hours": "小时", + "minutes": "分钟", + "rounds": "轮", + "items": "个", + "files": "个文件" + }, + "meta": { + "title": "MiroFish - 预测万物", + "description": "MiroFish - 社交媒体舆论模拟系统" + }, + "nav": { + "visitGithub": "访问我们的Github主页" + }, + "home": { + "tagline": "简洁通用的群体智能引擎", + "version": "/ v0.1-预览版", + "heroTitle1": "上传任意报告", + "heroTitle2": "即刻推演未来", + "heroDesc": "即使只有一段文字,{brand} 也能基于其中的现实种子,全自动生成与之对应的至多{agentScale}构成的平行世界。通过上帝视角注入变量,在复杂的群体交互中寻找动态环境下的{optimalSolution}", + "heroDescBrand": "MiroFish", + "heroDescAgentScale": "百万级Agent", + "heroDescOptimalSolution": "\"局部最优解\"", + "slogan": "让未来在 Agent 群中预演,让决策在百战后胜出", + "systemStatus": "系统状态", + "systemReady": "准备就绪", + "systemReadyDesc": "预测引擎待命中,可上传多份非结构化数据以初始化模拟序列", + "metricLowCost": "低成本", + "metricLowCostDesc": "常规模拟平均5$/次", + "metricHighAvail": "高可用", + "metricHighAvailDesc": "最多百万级Agent模拟", + "workflowSequence": "工作流序列", + "step01Title": "图谱构建", + "step01Desc": "现实种子提取 & 个体与群体记忆注入 & GraphRAG构建", + "step02Title": "环境搭建", + "step02Desc": "实体关系抽取 & 人设生成 & 环境配置Agent注入仿真参数", + "step03Title": "开始模拟", + "step03Desc": "双平台并行模拟 & 自动解析预测需求 & 动态更新时序记忆", + "step04Title": "报告生成", + "step04Desc": "ReportAgent拥有丰富的工具集与模拟后环境进行深度交互", + "step05Title": "深度互动", + "step05Desc": "与模拟世界中的任意一位进行对话 & 与ReportAgent进行对话", + "realitySeed": "01 / 现实种子", + "supportedFormats": "支持格式: PDF, MD, TXT", + "dragToUpload": "拖拽文件上传", + "orBrowse": "或点击浏览文件系统", + "inputParams": "输入参数", + "simulationPrompt": ">_ 02 / 模拟提示词", + "promptPlaceholder": "// 用自然语言输入模拟或预测需求(例.武大若发布撤销肖某处分的公告,会引发什么舆情走向)", + "engineBadge": "引擎: MiroFish-V1.0", + "startEngine": "启动引擎", + "initializing": "初始化中..." + }, + "main": { + "layoutGraph": "图谱", + "layoutSplit": "双栏", + "layoutWorkbench": "工作台", + "stepNames": ["图谱构建", "环境搭建", "开始模拟", "报告生成", "深度互动"] + }, + "step1": { + "ontologyGeneration": "本体生成", + "ontologyCompleted": "已完成", + "ontologyGenerating": "生成中", + "ontologyPending": "等待", + "ontologyDesc": "LLM分析文档内容与模拟需求,提取出现实种子,自动生成合适的本体结构", + "analyzingDocs": "正在分析文档...", + "graphRagBuild": "GraphRAG构建", + "graphRagDesc": "基于生成的本体,将文档自动分块后调用 Zep 构建知识图谱,提取实体和关系,并形成时序记忆与社区摘要", + "entityNodes": "实体节点", + "relationEdges": "关系边", + "schemaTypes": "SCHEMA类型", + "buildComplete": "构建完成", + "buildCompleteDesc": "图谱构建已完成,请进入下一步进行模拟环境搭建", + "inProgress": "进行中", + "creating": "创建中...", + "enterEnvSetup": "进入环境搭建", + "createSimulationFailed": "创建模拟失败: {error}", + "createSimulationException": "创建模拟异常: {error}" + }, + "step2": { + "simInstanceInit": "模拟实例初始化", + "simInstanceDesc": "新建simulation实例,拉取模拟世界参数模版", + "asyncTaskDone": "异步任务已完成", + "generateAgentPersona": "生成 Agent 人设", + "generateAgentPersonaDesc": "结合上下文,自动调用工具从知识图谱梳理实体与关系,初始化模拟个体,并基于现实种子赋予他们独特的行为与记忆", + "currentAgentCount": "当前Agent数", + "expectedAgentTotal": "预期Agent总数", + "relatedTopicsCount": "现实种子当前关联话题数", + "generatedAgentPersonas": "已生成的 Agent 人设", + "unknownProfession": "未知职业", + "noBio": "暂无简介", + "dualPlatformConfig": "生成双平台模拟配置", + "dualPlatformConfigDesc": "LLM 根据模拟需求与现实种子,智能设置世界时间流速、推荐算法、每个个体的活跃时间段、发言频率、事件触发等参数", + "simulationDuration": "模拟时长", + "roundDuration": "每轮时长", + "totalRounds": "总轮次", + "activePerHour": "每小时活跃", + "peakHours": "高峰时段", + "workHours": "工作时段", + "morningHours": "早间时段", + "offPeakHours": "低谷时段", + "agentConfig": "Agent 配置", + "activeTimePeriod": "活跃时段", + "postsPerHour": "发帖/时", + "commentsPerHour": "评论/时", + "responseDelay": "响应延迟", + "activityLevel": "活跃度", + "sentimentBias": "情感倾向", + "influenceWeight": "影响力", + "recommendAlgoConfig": "推荐算法配置", + "platform1Name": "平台 1:广场 / 信息流", + "platform2Name": "平台 2:话题 / 社区", + "recencyWeight": "时效权重", + "popularityWeight": "热度权重", + "relevanceWeight": "相关性权重", + "viralThreshold": "病毒阈值", + "echoChamberStrength": "回音室强度", + "llmConfigReasoning": "LLM 配置推理", + "initialActivation": "初始激活编排", + "initialActivationDesc": "基于叙事方向,自动生成初始激活事件与热点话题,引导模拟世界的初始状态", + "orchestrating": "编排中", + "narrativeDirection": "叙事引导方向", + "initialHotTopics": "初始热点话题", + "initialActivationSeq": "初始激活序列 ({count})", + "setupComplete": "准备完成", + "setupCompleteDesc": "模拟环境已准备完成,可以开始运行模拟", + "roundsConfig": "模拟轮数设定", + "roundsConfigDesc": "MiroFish 自动规划推演现实 {hours} 小时,每轮代表现实 {minutesPerRound} 分钟时间流逝", + "customToggle": "自定义", + "roundsUnit": "轮", + "estimatedDuration": "若Agent规模为100:预计耗时约 {minutes} 分钟", + "estimatedDurationFull": "若Agent规模为100:预计耗时 {minutes} 分钟", + "recommendedRounds": "{rounds} (推荐)", + "customTip": "若首次运行,强烈建议切换至'自定义模式'减少模拟轮数,以便快速预览效果并降低报错风险", + "backToGraphBuild": "返回图谱构建", + "startDualWorldSim": "开始双世界并行模拟", + "profileModalAge": "事件外显年龄", + "profileModalGender": "事件外显性别", + "profileModalCountry": "国家/地区", + "profileModalMbti": "事件外显MBTI", + "profileModalBio": "人设简介", + "profileModalTopics": "现实种子关联话题", + "profileModalPersona": "详细人设背景", + "personaDimExperience": "事件全景经历", + "personaDimExperienceDesc": "在此事件中的完整行为轨迹", + "personaDimBehavior": "行为模式侧写", + "personaDimBehaviorDesc": "经验总结与行事风格偏好", + "personaDimMemory": "独特记忆印记", + "personaDimMemoryDesc": "基于现实种子形成的记忆", + "personaDimSocial": "社会关系网络", + "personaDimSocialDesc": "个体链接与交互图谱", + "genderMale": "男", + "genderFemale": "女", + "genderOther": "其他", + "yearsOld": "岁", + "initializing": "初始化", + "generating": "生成中" + }, + "step3": { + "startGenerateReport": "开始生成结果报告", + "generatingReport": "启动中...", + "waitingForActions": "Waiting for agent actions...", + "errorMissingSimId": "错误:缺少 simulationId", + "startingDualSim": "正在启动双平台并行模拟...", + "graphMemoryUpdateEnabled": "已开启动态图谱更新模式", + "setMaxRounds": "设置最大模拟轮数: {rounds}", + "oldSimCleared": "已清理旧的模拟日志,重新开始模拟", + "engineStarted": "模拟引擎启动成功", + "startFailed": "启动失败: {error}", + "startException": "启动异常: {error}", + "stoppingSim": "正在停止模拟...", + "simStopped": "模拟已停止", + "stopFailed": "停止失败: {error}", + "stopException": "停止异常: {error}", + "allPlatformsCompleted": "检测到所有平台模拟已结束", + "simCompleted": "模拟已完成", + "graphRealtimeRefresh": "开启图谱实时刷新 (30s)", + "graphRefreshStopped": "停止图谱实时刷新", + "preparingGoBack": "准备返回 Step 2,正在关闭模拟...", + "closingSimEnv": "正在关闭模拟环境...", + "simEnvClosed": "模拟环境已关闭", + "closeFailed": "关闭模拟环境失败,尝试强制停止...", + "stoppingProcess": "正在停止模拟进程...", + "checkStatusFailed": "检查模拟状态失败: {error}", + "forceStopSuccess": "模拟已强制停止", + "forceStopFailed": "强制停止失败: {error}", + "startGenerateReportBtn": "开始生成结果报告", + "generatingReportBtn": "启动中..." + }, + "step4": { + "generatingSection": "正在生成{title}...", + "goToInteraction": "进入深度互动", + "waitingForReportAgent": "Waiting for Report Agent...", + "collapse": "收起 ▲", + "expandAll": "展开全部 {count} 条 ▼", + "expandAllEntities": "展开全部 {count} 个 ▼", + "scenarioLabel": "预测场景: ", + "tabKeyFacts": "当前关键记忆 ({count})", + "tabCoreEntities": "核心实体 ({count})", + "tabRelationChains": "关系链 ({count})", + "tabSubQueries": "子问题 ({count})", + "panelKeyFacts": "时序记忆中所关联的最新关键事实", + "totalCount": "共 {count} 条", + "totalEntityCount": "共 {count} 个", + "panelCoreEntities": "核心实体", + "factCount": "{count}条", + "panelRelationChains": "关系链", + "panelSubQueries": "漂移查询生成分析子问题", + "emptyKeyFacts": "暂无当前关键记忆", + "emptyCoreEntities": "暂无核心实体", + "emptyRelationChains": "暂无关系链", + "tabActiveFacts": "当前有效记忆 ({count})", + "tabHistoricalFacts": "历史记忆 ({count})", + "tabEntities": "涉及实体 ({count})", + "panelActiveFacts": "当前有效记忆", + "emptyActiveFacts": "暂无当前有效记忆", + "panelHistoricalFacts": "历史记忆", + "emptyHistoricalFacts": "暂无历史记忆", + "panelEntities": "涉及实体", + "emptyEntities": "暂无涉及实体", + "searchLabel": "搜索: ", + "tabFacts": "事实 ({count})", + "tabEdges": "关系 ({count})", + "tabNodes": "节点 ({count})", + "panelSearchResults": "搜索结果", + "emptySearchResults": "未找到相关结果", + "panelRelatedEdges": "相关关系", + "panelRelatedNodes": "相关节点", + "world1": "世界1", + "world2": "世界2" + }, + "step5": { + "interactiveTools": "Interactive Tools", + "agentsAvailable": "{count} agents available", + "chatWithReportAgent": "与Report Agent对话", + "chatWithAgent": "与世界中任意个体对话", + "selectChatTarget": "选择对话对象", + "sendSurvey": "发送问卷调查到世界中", + "reportAgentChat": "Report Agent - Chat", + "reportAgentDesc": "报告生成智能体的快速对话版本,可调用 4 种专业工具,拥有MiroFish的完整记忆", + "toolInsightForge": "InsightForge 深度归因", + "toolInsightForgeDesc": "对齐现实世界种子数据与模拟环境状态,结合Global/Local Memory机制,提供跨时空的深度归因分析", + "toolPanoramaSearch": "PanoramaSearch 全景追踪", + "toolPanoramaSearchDesc": "基于图结构的广度遍历算法,重构事件传播路径,捕获全量信息流动的拓扑结构", + "toolQuickSearch": "QuickSearch 快速检索", + "toolQuickSearchDesc": "基于 GraphRAG 的即时查询接口,优化索引效率,用于快速提取具体的节点属性与离散事实", + "toolInterviewSubAgent": "InterviewSubAgent 虚拟访谈", + "toolInterviewSubAgentDesc": "自主式访谈,能够并行与模拟世界中个体进行多轮对话,采集非结构化的观点数据与心理状态", + "profileBio": "简介", + "chatEmptyReportAgent": "与 Report Agent 对话,深入了解报告内容", + "chatEmptyAgent": "与模拟个体对话,了解他们的观点", + "chatInputPlaceholder": "输入您的问题...", + "selectSurveyTarget": "选择调查对象", + "selectedCount": "已选 {selected} / {total}", + "surveyQuestions": "问卷问题", + "surveyInputPlaceholder": "输入您想问所有被选中对象的问题...", + "submitSurvey": "发送问卷", + "surveyResults": "调查结果", + "surveyResultsCount": "{count} 条回复", + "selectAll": "全选", + "clearSelection": "清空", + "errorOccurred": "抱歉,发生了错误: {error}", + "noResponse": "无响应", + "requestFailed": "请求失败", + "selectAgentFirst": "请先选择一个模拟个体" + }, + "graph": { + "panelTitle": "Graph Relationship Visualization", + "refreshGraph": "刷新图谱", + "graphMemoryRealtime": "GraphRAG长短期记忆实时更新中", + "realtimeUpdating": "实时更新中...", + "pendingContentHint": "还有少量内容处理中,建议稍后手动刷新图谱", + "nodeDetails": "Node Details", + "relationship": "Relationship", + "graphDataLoading": "图谱数据加载中...", + "waitingOntology": "等待本体生成...", + "toggleMaximize": "最大化/还原", + "closeHint": "关闭提示" + }, + "history": { + "title": "推演记录", + "graphBuild": "图谱构建", + "envSetup": "环境搭建", + "analysisReport": "分析报告", + "moreFiles": "+{count} 个文件", + "noFiles": "暂无文件", + "loadingText": "加载中...", + "simRequirement": "模拟需求", + "relatedFiles": "关联文件", + "noRelatedFiles": "暂无关联文件", + "replayTitle": "推演回放", + "step1Button": "图谱构建", + "step2Button": "环境搭建", + "step4Button": "分析报告", + "replayHint": "Step3「开始模拟」与 Step5「深度互动」需在运行中启动,不支持历史回放", + "notStarted": "未开始", + "roundsProgress": "{current}/{total} 轮", + "untitledSimulation": "未命名模拟", + "unknownFile": "未知文件" + }, + "api": { + "projectNotFound": "项目不存在: {id}", + "projectDeleteFailed": "项目不存在或删除失败: {id}", + "projectDeleted": "项目已删除: {id}", + "projectReset": "项目已重置: {id}", + "requireSimulationRequirement": "请提供模拟需求描述 (simulation_requirement)", + "requireFileUpload": "请至少上传一个文档文件", + "noDocProcessed": "没有成功处理任何文档,请检查文件格式", + "requireProjectId": "请提供 project_id", + "configError": "配置错误: {details}", + "zepApiKeyMissing": "ZEP_API_KEY未配置", + "ontologyNotGenerated": "项目尚未生成本体,请先调用 /ontology/generate", + "graphBuilding": "图谱正在构建中,请勿重复提交。如需强制重建,请添加 force: true", + "textNotFound": "未找到提取的文本内容", + "ontologyNotFound": "未找到本体定义", + "graphBuildStarted": "图谱构建任务已启动,请通过 /task/{taskId} 查询进度", + "graphBuildComplete": "图谱构建完成", + "buildFailed": "构建失败: {error}", + "taskNotFound": "任务不存在: {id}", + "graphDeleted": "图谱已删除: {id}", + "entityNotFound": "实体不存在: {id}", + "graphNotBuilt": "项目尚未构建图谱,请先调用 /api/graph/build", + "requireSimulationId": "请提供 simulation_id", + "simulationNotFound": "模拟不存在: {id}", + "projectMissingRequirement": "项目缺少模拟需求描述 (simulation_requirement)", + "prepareStarted": "准备任务已启动,请通过 /api/simulation/prepare/status 查询进度", + "alreadyPrepared": "已有完成的准备工作,无需重复生成", + "notStartedPrepare": "尚未开始准备,请调用 /api/simulation/prepare 开始", + "taskCompletedPrepared": "任务已完成(准备工作已存在)", + "requireTaskOrSimId": "请提供 task_id 或 simulation_id", + "configNotFound": "模拟配置不存在,请先调用 /prepare 接口", + "configFileNotFound": "配置文件不存在,请先调用 /prepare 接口", + "unknownScript": "未知脚本: {name},可选: {allowed}", + "scriptFileNotFound": "脚本文件不存在: {name}", + "requireGraphId": "请提供 graph_id", + "noMatchingEntities": "没有找到符合条件的实体", + "maxRoundsPositive": "max_rounds 必须是正整数", + "maxRoundsInvalid": "max_rounds 必须是有效的整数", + "invalidPlatform": "无效的平台类型: {platform},可选: twitter/reddit/parallel", + "simRunningForceHint": "模拟正在运行中,请先调用 /stop 接口停止,或使用 force=true 强制重新开始", + "simNotReady": "模拟未准备好,当前状态: {status},请先调用 /prepare 接口", + "graphIdRequiredForMemory": "启用图谱记忆更新需要有效的 graph_id,请确保项目已构建图谱", + "dbNotExist": "数据库不存在,模拟可能尚未运行", + "requireMessage": "请提供 message", + "missingGraphId": "缺少图谱ID", + "missingGraphIdEnsure": "缺少图谱ID,请确保已构建图谱", + "missingSimRequirement": "缺少模拟需求描述", + "reportAlreadyExists": "报告已存在", + "reportGenerateStarted": "报告生成任务已启动,请通过 /api/report/generate/status 查询进度", + "reportGenerated": "报告已生成", + "reportNotFound": "报告不存在: {id}", + "noReportForSim": "该模拟暂无报告: {id}", + "reportDeleted": "报告已删除: {id}", + "reportGenerateFailed": "报告生成失败", + "sectionNotFound": "章节不存在: section_{index}.md", + "reportProgressNotAvail": "报告不存在或进度信息不可用: {id}", + "requireAgentId": "请提供 agent_id", + "requirePrompt": "请提供 prompt(采访问题)", + "invalidInterviewPlatform": "platform 参数只能是 'twitter' 或 'reddit'", + "envNotRunning": "模拟环境未运行或已关闭。请确保模拟已完成并进入等待命令模式。", + "interviewTimeout": "等待Interview响应超时: {error}", + "requireInterviews": "请提供 interviews(采访列表)", + "interviewListMissingAgentId": "采访列表第{index}项缺少 agent_id", + "interviewListMissingPrompt": "采访列表第{index}项缺少 prompt", + "interviewListInvalidPlatform": "采访列表第{index}项的platform只能是 'twitter' 或 'reddit'", + "batchInterviewTimeout": "等待批量Interview响应超时: {error}", + "globalInterviewTimeout": "等待全局Interview响应超时: {error}", + "envRunning": "环境正在运行,可以接收Interview命令", + "envNotRunningShort": "环境未运行或已关闭", + "requireGraphIdAndQuery": "请提供 graph_id 和 query", + "initReportAgent": "初始化Report Agent..." + }, + "progress": { + "initGraphService": "初始化图谱构建服务...", + "textChunking": "文本分块中...", + "creatingZepGraph": "创建Zep图谱...", + "settingOntology": "设置本体定义...", + "addingChunks": "开始添加 {count} 个文本块...", + "waitingZepProcess": "等待Zep处理数据...", + "fetchingGraphData": "获取图谱数据...", + "graphBuildComplete": "图谱构建完成", + "buildFailed": "构建失败: {error}", + "startBuildingGraph": "开始构建图谱...", + "graphCreated": "图谱已创建: {graphId}", + "ontologySet": "本体已设置", + "textSplit": "文本已分割为 {count} 个块", + "fetchingGraphInfo": "获取图谱信息...", + "sendingBatch": "发送第 {current}/{total} 批数据 ({chunks} 块)...", + "batchFailed": "批次 {batch} 发送失败: {error}", + "noEpisodesWait": "无需等待(没有 episode)", + "waitingEpisodes": "开始等待 {count} 个文本块处理...", + "episodesTimeout": "部分文本块超时,已完成 {completed}/{total}", + "zepProcessing": "Zep处理中... {completed}/{total} 完成, {pending} 待处理 ({elapsed}秒)", + "processingComplete": "处理完成: {completed}/{total}", + "taskComplete": "任务完成", + "taskFailed": "任务失败", + "startPreparingEnv": "开始准备模拟环境...", + "connectingZepGraph": "正在连接Zep图谱...", + "readingNodeData": "正在读取节点数据...", + "readingComplete": "完成,共 {count} 个实体", + "startGenerating": "开始生成...", + "analyzingRequirements": "正在分析模拟需求...", + "generatingOutline": "正在生成报告大纲...", + "parsingOutline": "正在解析大纲结构...", + "outlinePlanComplete": "大纲规划完成", + "deepSearchAndWrite": "深度检索与撰写中 ({current}/{max})", + "initReport": "初始化报告...", + "startPlanningOutline": "开始规划报告大纲...", + "outlineDone": "大纲规划完成,共{count}个章节", + "generatingSection": "正在生成章节: {title} ({current}/{total})", + "sectionDone": "章节 {title} 已完成", + "assemblingReport": "正在组装完整报告...", + "reportComplete": "报告生成完成", + "reportFailed": "报告生成失败: {error}", + "savingProfiles": "保存Profile文件...", + "profilesComplete": "完成,共 {count} 个Profile", + "callingLLMConfig": "正在调用LLM生成配置...", + "savingConfigFiles": "正在保存配置文件...", + "configComplete": "配置生成完成", + "generatingTimeConfig": "生成时间配置...", + "generatingEventConfig": "生成事件配置和热点话题...", + "generatingAgentConfig": "生成Agent配置 ({start}-{end}/{total})...", + "generatingPlatformConfig": "生成平台配置...", + "zepSearchQuery": "关于{name}的所有信息、活动、事件、关系和背景", + "timeConfigLabel": "时间配置", + "eventConfigLabel": "事件配置", + "agentConfigResult": "Agent配置: 成功生成 {count} 个", + "postAssignResult": "初始帖子分配: {count} 个帖子已分配发布者", + "profileGenerated": "[已生成] {name} ({type})", + "readingGraphEntities": "读取图谱实体", + "generatingProfiles": "生成Agent人设", + "generatingSimConfig": "生成模拟配置", + "preparingScripts": "准备模拟脚本" + }, + "log": { + "preparingGoBack": "准备返回 Step 2,正在关闭模拟...", + "closingSimEnv": "正在关闭模拟环境...", + "simEnvClosed": "✓ 模拟环境已关闭", + "closeSimEnvFailed": "关闭模拟环境失败,尝试强制停止...", + "simForceStopSuccess": "✓ 模拟已强制停止", + "forceStopFailed": "强制停止失败: {error}", + "stoppingSimProcess": "正在停止模拟进程...", + "simStopped": "✓ 模拟已停止", + "stopSimFailed": "停止模拟失败: {error}", + "checkStatusFailed": "检查模拟状态失败: {error}", + "enterStep4": "进入 Step 4: 报告生成", + "loadingSimData": "加载模拟数据: {id}", + "timeConfig": "时间配置: 每轮 {minutes} 分钟", + "timeConfigFetchFailed": "获取时间配置失败,使用默认值: {minutes}分钟/轮", + "projectLoadSuccess": "项目加载成功: {id}", + "loadSimDataFailed": "加载模拟数据失败: {error}", + "loadException": "加载异常: {error}", + "graphDataLoadSuccess": "图谱数据加载成功", + "graphLoadFailed": "图谱加载失败: {error}", + "graphRealtimeRefreshStart": "开启图谱实时刷新 (30s)", + "graphRealtimeRefreshStop": "停止图谱实时刷新", + "simRunViewInit": "SimulationRunView 初始化", + "customRounds": "自定义模拟轮数: {rounds}", + "enterStep3": "进入 Step 3: 开始模拟", + "customRoundsConfig": "自定义模拟轮数: {rounds} 轮", + "useAutoRounds": "使用自动配置的模拟轮数", + "detectedSimEnvRunning": "检测到模拟环境正在运行,正在关闭...", + "closeSimEnvFailedWithError": "关闭模拟环境失败: {error}", + "closeSimEnvException": "关闭模拟环境异常: {error}", + "detectedSimRunning": "检测到模拟状态为运行中,正在停止...", + "forceStopSimFailed": "强制停止模拟失败: {error}", + "forceStopSimException": "强制停止模拟异常: {error}", + "simViewInit": "SimulationView 初始化", + "errorMissingSimId": "错误:缺少 simulationId", + "simInstanceCreated": "模拟实例已创建: {id}", + "preparingSimEnv": "正在准备模拟环境...", + "detectedExistingPrep": "检测到已有完成的准备工作,直接使用", + "prepareTaskStarted": "准备任务已启动", + "prepareTaskId": " └─ Task ID: {taskId}", + "zepEntitiesFound": "从Zep图谱读取到 {count} 个实体", + "entityTypes": " └─ 实体类型: {types}", + "startPollingProgress": "开始轮询准备进度...", + "prepareFailed": "准备失败: {error}", + "prepareException": "准备异常: {error}", + "prepareComplete": "✓ 准备工作已完成", + "prepareFailedWithError": "✗ 准备失败: {error}", + "startGeneratingConfig": "开始生成双平台模拟配置...", + "generatingAgentProfileConfig": "正在生成Agent人设配置...", + "generatingLLMConfig": "正在调用LLM生成模拟配置参数...", + "configComplete": "✓ 模拟配置生成完成", + "configSummaryAgents": " ├─ Agent数量: {count}个", + "configSummaryHours": " ├─ 模拟时长: {hours}小时", + "configSummaryPosts": " ├─ 初始帖子: {count}条", + "configSummaryTopics": " ├─ 热点话题: {count}个", + "configSummaryPlatforms": " └─ 平台配置: Twitter {twitter}, Reddit {reddit}", + "timeConfigDetail": "时间配置: 每轮{minutes}分钟, 共{rounds}轮", + "narrativeDirection": "叙事方向: {direction}", + "envSetupComplete": "✓ 环境搭建完成,可以开始模拟", + "startSimCustomRounds": "开始模拟,自定义轮数: {rounds} 轮", + "startSimAutoRounds": "开始模拟,使用自动配置轮数: {rounds} 轮", + "startGeneratingAgentProfiles": "开始生成Agent人设...", + "agentProfile": "→ Agent人设 {current}/{total}: {name} ({profession})", + "allProfilesComplete": "✓ 全部 {count} 个Agent人设生成完成", + "loadingExistingConfig": "正在加载已有配置数据...", + "loadedAgentProfiles": "已加载 {count} 个Agent人设", + "configLoadSuccess": "✓ 模拟配置加载成功", + "configSummaryPostsAlt": " └─ 初始帖子: {count}条", + "configGenerating": "配置生成中,开始轮询等待...", + "loadConfigFailed": "加载配置失败: {error}", + "step2Init": "Step2 环境搭建初始化", + "step3Init": "Step3 模拟运行初始化", + "startingDualSim": "正在启动双平台并行模拟...", + "setMaxRounds": "设置最大模拟轮数: {rounds}", + "graphMemoryUpdateEnabled": "已开启动态图谱更新模式", + "oldSimCleared": "✓ 已清理旧的模拟日志,重新开始模拟", + "engineStarted": "✓ 模拟引擎启动成功", + "startFailed": "✗ 启动失败: {error}", + "startException": "✗ 启动异常: {error}", + "stoppingSim": "正在停止模拟...", + "simStoppedSuccess": "✓ 模拟已停止", + "stopFailed": "停止失败: {error}", + "stopException": "停止异常: {error}", + "allPlatformsCompleted": "✓ 检测到所有平台模拟已结束", + "simCompleted": "✓ 模拟已完成", + "reportRequestSent": "报告生成请求已发送,请稍候...", + "startingReportGen": "正在启动报告生成...", + "reportGenTaskStarted": "✓ 报告生成任务已启动: {reportId}", + "reportGenFailed": "✗ 启动报告生成失败: {error}", + "reportGenException": "✗ 启动报告生成异常: {error}", + "step5Init": "Step5 深度互动初始化", + "selectChatTarget": "选择对话对象: {name}", + "sendFailed": "发送失败: {error}", + "sendToReportAgent": "向 Report Agent 发送: {message}...", + "reportAgentReplied": "Report Agent 已回复", + "sendToAgent": "向 {name} 发送: {message}...", + "agentReplied": "{name} 已回复", + "sendSurvey": "发送问卷给 {count} 个对象...", + "receivedReplies": "收到 {count} 条回复", + "surveySendFailed": "问卷发送失败: {error}", + "loadReportData": "加载报告数据: {id}", + "loadReportFailed": "加载报告失败: {error}", + "reportDataLoaded": "报告数据加载完成", + "loadReportLogFailed": "加载报告日志失败: {error}", + "loadedProfiles": "加载了 {count} 个模拟个体", + "loadProfilesFailed": "加载模拟个体失败: {error}", + "interactionViewInit": "InteractionView 初始化", + "reportViewInit": "ReportView 初始化", + "getReportInfoFailed": "获取报告信息失败: {error}", + "enterStep": "进入 Step {step}: {name}", + "returnToStep": "返回 Step {step}: {name}", + "customSimRounds": "自定义模拟轮数: {rounds} 轮" + }, + "report": { + "taskStarted": "报告生成任务开始", + "planningStart": "开始规划报告大纲", + "fetchSimContext": "获取模拟上下文信息", + "planningComplete": "大纲规划完成", + "sectionStart": "开始生成章节: {title}", + "reactThought": "ReACT 第{iteration}轮思考", + "toolCall": "调用工具: {toolName}", + "toolResult": "工具 {toolName} 返回结果", + "llmResponse": "LLM 响应 (工具调用: {hasToolCalls}, 最终答案: {hasFinalAnswer})", + "sectionContentDone": "章节 {title} 内容生成完成", + "sectionComplete": "章节 {title} 生成完成", + "reportComplete": "报告生成完成", + "errorOccurred": "发生错误: {error}", + "agentInitDone": "ReportAgent 初始化完成: graph_id={graphId}, simulation_id={simulationId}", + "executingTool": "执行工具: {toolName}, 参数: {params}", + "toolExecFailed": "工具执行失败: {toolName}, 错误: {error}", + "startPlanningOutline": "开始规划报告大纲...", + "outlinePlanDone": "大纲规划完成: {count} 个章节", + "outlinePlanFailed": "大纲规划失败: {error}", + "reactGenerateSection": "ReACT生成章节: {title}", + "sectionIterNone": "章节 {title} 第 {iteration} 次迭代: LLM 返回 None", + "sectionConflict": "章节 {title} 第 {iteration} 轮: LLM 同时输出工具调用和 Final Answer(第 {conflictCount} 次冲突)", + "sectionConflictDowngrade": "章节 {title}: 连续 {conflictCount} 次冲突,降级为截断执行第一个工具调用", + "sectionGenDone": "章节 {title} 生成完成(工具调用: {count}次)", + "multiToolOnlyFirst": "LLM 尝试调用 {total} 个工具,只执行第一个: {toolName}", + "sectionNoPrefix": "章节 {title} 未检测到 'Final Answer:' 前缀,直接采纳LLM输出作为最终内容(工具调用: {count}次)", + "sectionMaxIter": "章节 {title} 达到最大迭代次数,强制生成", + "sectionForceFailed": "章节 {title} 强制收尾时 LLM 返回 None,使用默认错误提示", + "sectionGenFailedContent": "(本章节生成失败:LLM 返回空响应,请稍后重试)", + "outlineSavedToFile": "大纲已保存到文件: {reportId}/outline.json", + "sectionSaved": "章节已保存: {reportId}/section_{sectionNum}.md", + "reportGenDone": "报告生成完成: {reportId}", + "reportGenFailed": "报告生成失败: {error}", + "agentChat": "Report Agent对话: {message}...", + "fetchReportFailed": "获取报告内容失败: {error}", + "outlineSaved": "大纲已保存: {reportId}", + "sectionFileSaved": "章节已保存: {reportId}/{fileSuffix}", + "fullReportAssembled": "完整报告已组装: {reportId}", + "reportSaved": "报告已保存: {reportId}", + "reportFolderDeleted": "报告文件夹已删除: {reportId}", + "redirectToQuickSearch": "search_graph 已重定向到 quick_search", + "redirectToInsightForge": "get_simulation_context 已重定向到 insight_forge" + }, + "console": { + "zepToolsInitialized": "ZepToolsService 初始化完成", + "zepRetryAttempt": "Zep {operation} 第 {attempt} 次尝试失败: {error}, {delay}秒后重试...", + "zepAllRetriesFailed": "Zep {operation} 在 {retries} 次尝试后仍失败: {error}", + "graphSearch": "图谱搜索: graph_id={graphId}, query={query}...", + "graphSearchOp": "图谱搜索(graph={graphId})", + "searchComplete": "搜索完成: 找到 {count} 条相关事实", + "zepSearchApiFallback": "Zep Search API失败,降级为本地搜索: {error}", + "usingLocalSearch": "使用本地搜索: query={query}...", + "localSearchComplete": "本地搜索完成: 找到 {count} 条相关事实", + "localSearchFailed": "本地搜索失败: {error}", + "fetchingAllNodes": "获取图谱 {graphId} 的所有节点...", + "fetchedNodes": "获取到 {count} 个节点", + "fetchingAllEdges": "获取图谱 {graphId} 的所有边...", + "fetchedEdges": "获取到 {count} 条边", + "fetchingNodeDetail": "获取节点详情: {uuid}...", + "fetchNodeDetailOp": "获取节点详情(uuid={uuid}...)", + "fetchNodeDetailFailed": "获取节点详情失败: {error}", + "fetchingNodeEdges": "获取节点 {uuid}... 的相关边", + "foundNodeEdges": "找到 {count} 条与节点相关的边", + "fetchNodeEdgesFailed": "获取节点边失败: {error}", + "fetchingEntitiesByType": "获取类型为 {type} 的实体...", + "foundEntitiesByType": "找到 {count} 个 {type} 类型的实体", + "fetchingEntitySummary": "获取实体 {name} 的关系摘要...", + "fetchingGraphStats": "获取图谱 {graphId} 的统计信息...", + "fetchingSimContext": "获取模拟上下文: {requirement}...", + "insightForgeStart": "InsightForge 深度洞察检索: {query}...", + "generatedSubQueries": "生成 {count} 个子问题", + "insightForgeComplete": "InsightForge完成: {facts}条事实, {entities}个实体, {relationships}条关系", + "generateSubQueriesFailed": "生成子问题失败: {error},使用默认子问题", + "panoramaSearchStart": "PanoramaSearch 广度搜索: {query}...", + "panoramaSearchComplete": "PanoramaSearch完成: {active}条有效, {historical}条历史", + "quickSearchStart": "QuickSearch 简单搜索: {query}...", + "quickSearchComplete": "QuickSearch完成: {count}条结果", + "interviewAgentsStart": "InterviewAgents 深度采访(真实API): {requirement}...", + "profilesNotFound": "未找到模拟 {simId} 的人设文件", + "loadedProfiles": "加载到 {count} 个Agent人设", + "selectedAgentsForInterview": "选择了 {count} 个Agent进行采访: {indices}", + "generatedInterviewQuestions": "生成了 {count} 个采访问题", + "callingBatchInterviewApi": "调用批量采访API(双平台): {count} 个Agent", + "interviewApiReturned": "采访API返回: {count} 个结果, success={success}", + "interviewApiReturnedFailure": "采访API返回失败: {error}", + "interviewApiCallFailed": "采访API调用失败(环境未运行?): {error}", + "interviewApiCallException": "采访API调用异常: {error}", + "interviewAgentsComplete": "InterviewAgents完成: 采访了 {count} 个Agent(双平台)", + "loadedRedditProfiles": "从 reddit_profiles.json 加载了 {count} 个人设", + "readRedditProfilesFailed": "读取 reddit_profiles.json 失败: {error}", + "loadedTwitterProfiles": "从 twitter_profiles.csv 加载了 {count} 个人设", + "readTwitterProfilesFailed": "读取 twitter_profiles.csv 失败: {error}", + "llmSelectAgentFailed": "LLM选择Agent失败,使用默认选择: {error}", + "generateInterviewQuestionsFailed": "生成采访问题失败: {error}", + "generateInterviewSummaryFailed": "生成采访摘要失败: {error}" + } +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..64b5f2fb --- /dev/null +++ b/package-lock.json @@ -0,0 +1,333 @@ +{ + "name": "mirofish", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "mirofish", + "version": "0.1.0", + "license": "AGPL-3.0", + "devDependencies": { + "concurrently": "^9.1.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/concurrently": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-9.2.1.tgz", + "integrity": "sha512-fsfrO0MxV64Znoy8/l1vVIjjHa29SZyyqPgQBwhiDcaW8wJc2W3XWVOGx4M3oJBnv/zdUZIIp1gDeS98GzP8Ng==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "4.1.2", + "rxjs": "7.8.2", + "shell-quote": "1.8.3", + "supports-color": "8.1.1", + "tree-kill": "1.2.2", + "yargs": "17.7.2" + }, + "bin": { + "conc": "dist/bin/concurrently.js", + "concurrently": "dist/bin/concurrently.js" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rxjs": { + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/shell-quote": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", + "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "license": "MIT", + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 00000000..63ace21a --- /dev/null +++ b/package.json @@ -0,0 +1,21 @@ +{ + "name": "mirofish", + "version": "0.1.0", + "description": "MiroFish - 简洁通用的群体智能引擎,预测万物", + "scripts": { + "setup": "npm install && cd frontend && npm install", + "setup:backend": "cd backend && uv sync", + "setup:all": "npm run setup && npm run setup:backend", + "dev": "concurrently --kill-others -n \"backend,frontend\" -c \"green,cyan\" \"npm run backend\" \"npm run frontend\"", + "backend": "cd backend && uv run python run.py", + "frontend": "cd frontend && npm run dev", + "build": "cd frontend && npm run build" + }, + "devDependencies": { + "concurrently": "^9.1.2" + }, + "engines": { + "node": ">=18.0.0" + }, + "license": "AGPL-3.0" +} diff --git a/static/image/MiroFish_logo.jpeg b/static/image/MiroFish_logo.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..edf1e2cbd7654f1bb2945c85268f036738c18c8d GIT binary patch literal 3695828 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%0DZNJ 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ʨ+uT(gcdfp%I8H4!~ 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

OnDl<1uTL10R=we&$zM9)ZN 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
(>CaXI0QjN5fKwZsN)=^UGg;(S-hKHQ6n zu;Q$b{xR>e?DC=7V^~-FLc4=>1iQ;m>6Y@btFtcHDcm${XRYegzsRg`_qiHcy`vXNA=!xJlkvb_r)My9vMDx>_TVH=_zaeS}hTd^)8&X^@K~oul17Z|1^;;|W8UEh-zI zxvH?aKEONUT9Q;gP4NL|W*&{yJ|dvScVnhRu~FLN`ff$RXJA@^3JW@#Ghu)+sFoEi z9V1;i3$th?Bs*^Uo4Ui0C8D5K>lijZGYeQ5kID2tRS~8KYbyB+adP77gii=KBEqbU zz#So{Fjq>EC#kuXf)L=-G1kdvCo5BIwPR*y=TQFN$67;0a3=TkP3IYcJ^a5`SKM?= zJ!RjDhd>yoL<~6Q^XV5Z(@06?asGVxoh|lab6H_5G^Ruh+?Og?V5lu>tq=)GH787M zm!|v1qbkw2LpmYaqI6q9e(mnkznT+BsA0AWICjmbd97FpQiQmOh_UKs1M?>%X(Go* zo&`{jaA@4OaZh}Q2QD+CoWa9M_rmxuBknr;Fg1}R#rMgAFi^zXZ11cBKjPNHpGX9`*_mg+U zSHVKdwq$fm=G%AKCv6JG&Y~Z;41fC#|L@!({dtfpZ2H71$=W=`pn?x!&em!K8Sr z_jNF`#(j@As95rUK70Tb+|3y`SNH9y2~D@Ru4%{z3+Vgt3+xcpT($mu+I@FtP)0^V zt8#Tr=VVp1C}$K?xN6Y4tGx_dPpG~17i%`WuaX1Jb|j~kFO`SQH;k3c%0RRkwq=5< z6J$3EVoB{oFT|5s^W(|BFIV;^d{J*@B)Y(FL(`N>>0wDOL?L)Bx?N3(K94wO3oB~R)D23rV{?(Lfae*b1HR| zA&FvMt>^I@u_tSI$;=3=I8h?QI2U;ea+9qsST7qTOQ~0GQb}Tf-Iaa=ox?rIThJ({ z8&p~ELHXNNJ4*&B@IXvypmad6wzraxX-ah=h&R&R5cq?#$1(hw(iLh}R|o2dPENnl zd!~E{d4qRu@}P{R$?BRIuS2LhDj)GsfjAff&?Yl$tzYztQiQx| zZn4F3towa#D2n-(8E3meE6_b8RsObL2GqjR{13niNK6q+M?8GH8D`g$^hsp-AHeZ1 z!%})gD9>+=4`)b_v-DokJSmeEo+Bi9(fH@b)a4nWL%j^Ty($5avQM-a*j4GJ%E2%w zdKvg>d_IP;mkga6GkieqlQ4+tGQ9zhNL?>iBr(koBIa*jqrs7AIjRHx`o-|1b7U*G z;O4Um(`ER%kQMm>E<}mQ%6s`8=OSVV-0M=l@@Q13_LfFL15pHIoJT1!Go(OV2QlcJ z;Iy6XVPGU12Ug(}{PL@7wVeIcS=B^VQ7S5jxbmEzvzkbxq;~bMuuK6XBxchiKrhRf zU<yzW&ugcZ%0?gTh4{)zHU%;3>zbpKBlfMO?tp#K$8w`{M?3iY&)%_dvYTecy1 zAC6kye)M&Kg*gQWiFU7EAK86Di!C*3{{KBLali8K+bkkV9Jo-vjNeEqa9QJ6M{nxd zOL(FExY;FY+Tp6Uc0S4#wtB*4iWCClCut8Lz5AR<6=l;A{-#zv#d7p{k^766e@DTIY04K|$Q6N0rOO{Oz{R=N`~9LnEoC z+lV%A4z{KIa2ajH)3#E-BhTbB?SM_X8q9@X)RT_eqR>#Cq;(2W=A91Pq9t5)UWIiV zT=LmcEzUX!W-HVxYa**jH+(!A%*tU?-K)BL=?5Dpe;j`0dmb=@`9hgy1mDDaply?z zai(>MkeC9x4mmvK-e=4RdiMN1C>a#nWu3HnN|+G78IfG;{hf)s!Obp_cedt;k_@Fk zF|8r<`iiR)Tqv}8>+2^aDyzs5HS-rm8pD?vzbHCUat!E9y>#WoPYEigO?H=0(L!7! zlKFvVf(5xg!%G=)be3p%m}A&yha6ulfwqfQ?`X()Khp>a6SCCJu97+%hQQ2Bjki|5 zbznaBL*dT%wz~-PMYOErbruvJ4MtQr^x+c1vm>vV$NZOaM*Gj7Pm|ddy|DHs15hDR zBC)@@b>>u!L`1IL46mY`MXc>?n#=}fBU2PSi<&T}$NF9#+tmS?J`~oGS5@zMs|#D5 zWp=6D6JB~8Ah+Ru2_VkW$W`h3*s+%f)B5i?XVbDqYggv}Z9Vv?pZbb1SvK19m2{h% zC;2KnFM#%O13Xy&RaajXKDP27z`tb4CP#>T2I17C6M;>%ao*OFd-ckh+QJ*P(U7r8 zvy?s*7BS2*c3t~@MyXj2Jt!)p@V!~)gLC_c;B1}1ii9Ic0mw>I@_V3EoL&%y= zYxs!#*n`A5?wh#8Pa?s;DFAy*&HM2JNgoQhfir{o(THY%q zvr)9d9)yT{l2)1-8A1L2;o;Z1Tqm_izwsZFSmRsb7fU>4?IJYfpH$SfWqCOykw|3A z%Ppv$LOvuJ&ImFhjcR^Lbkej_Ffv-7cFm zZU|R{$LTn&%1w!L)Z)(0)#E^MI4ON_HybpImT#vi?&er!(OJBjakbuLLh!ZrRgmeG z>%+M*e`w6_9%!{8ffg|Hp~e%Cf~Wq z8B*Z0pK@Z-qBxK)Jh#UBXD1*RsmD&8ty%V;CZXlGVei%J1^yG7=1;e7HCTSv6Epf`Szbe@-3CT3c;m-d5ipy4ack|7`EPk4QJggD!H|j>i6|}- zO%4ieZdvDeoPtSAp?`xT0F8d)=8bf(Vyu`)$Qk5#W`{T-kem;Png+iF(15yL3irC; z!k5x~d*ZZZWE%R85x~WBR(hvaQ}1fX>7CX(_7?ZHTQo15t!AG513<3X2vzLXik;r4 z(IZ~o@r<{MsP!^0HwZohm8}=vVh9ZkSU({O2UuUNwd!WD{yk*1=nQ-&xVu}v3VLSu zx7uE79k@NeF|kY(x}|N$c)CSR!#tv11H5pnIagbbEAmY%z@~3}^w>Ol0VDUF2KlSm zv6Y6!O8gBn22}>{R%_P7X9Rr+;A@)XC&)Rw@IF?xuQ`V@%I=4MdI&1JHG-hrPb=;8MAm)+m+r%?Zf!+GZ5Hv2nQsG4W&RO63DoO_x24?}u1xxIUAym1btnZ4RdOGLa%^|!iW zU$jooI&Zq-T98E{V^dDgWvvTBJ!osbQ!pgIUa0HWuxk{vk}70uCB|)rediO1!fLF6 z6Q^J7T)3}QZAoo!GAU{uZoJsaU6gcWFVC`(cX`1Izn3wlrY7~9aJG56g_=j_(Xh&( ziFvLRP!U^Etp%w`T25UvMG}hhElrjRu-AvWcxbOOK50L<>E<9DO=o8PB#779eJzX5 z+RSAMkme)C5VI<*xH}I?W2F4^cF1KLchyF$QvNl@rymwOc6;Y|KUxHz_sT{W5hkdL z{-~FfL$@jMQpUj}U*ccL7Cn8wke6DToB8OEaAbhCYG^Ju$6KO!sbR8-K1J?wB8W!AYmNQjH^L;NXzAw4r%C-f^M#%p0NXAMe zM?>p`kIJ+{MU5OZFVkUY zOBDS*T380UtMl{&#YiHf)`jyMS91?!FVJ59rV{kDv1$k+fMEc;X z*E;iPM&%9_4{y8eRkjNH{FPpPac$ymK@XGs_j=V72Kk;fg}?0~Da)GGv^9=i%%mPJ2{N|QhNIyOa*N-6&VW_y+kHf3|YHC(UpoFWE5!Jf%hZzz@DxF0i* zQ`KU{ngjnzyT4;kdwt8din zz!WRT+cOmF)V1}NeuXcpRq>xC+sxRAey^ZjT(gIS)Mux8Q`XgTg`+L^zKD`frTkiakTL@r!rYm|L{1j+K4 zC0Q$Z+oL8>Rn4l@&npLRqF3&{(GTXUCskD$bE>7j4nXGA;GEDz5h{in!48`clJ1>y z`v=CSuA~Fk_Fo>>SYVZrbs3zvnwH7z&cT; zl%3eH^LO``o_r|7#gdtm<*O17wZbJPySbC~fK_i!KZ#-b)(Y~US_AtS1YoOC>krPC zg&V5%Q+p#bOzibUBZPY-NpGZXw!v_gsqYF#`T<9bENw<;mXMi2Me1RD0=|qU(C=r3yPuBP=lg6@D&=NT+6o)z`Dn=|ksV)o?TQjM7if=kGHQYrb z)Q_!7%@0f~8KyC=CWAA>{NIS{vuIm_zLAX4-f!{7O)Ml$ID|@_t$A&7iv3=zJ2lcdF|6F2!KSJ7d3eOm*)!Z8hcUjnnvuUD3DKVg6Y)o z_ybzZ&3j$rrLAI*yNtUO?1kPT>e@uJlSx!4h1t}9fJH4sw@U$Fi>jc9J1O!~D1Yv$ zd@ImJfo{awgUz*HWyY^fIlX|FTIbMBvy z%ZmuUkCXJ5uJ=0>xBGqH89|cN8U~Gfr88wMGhB`G`SL?PuX9UXR;sX``Z|q*tR>tO z1<*X{Orcj2KJa>Qy?6V!Sx=Rr-b<_nKwtvg#Z*!Oa^-1%E?IC8d$$OASGABpmc!az zVi4kSSKCXsX$%y;ko{W6aN^WAh)Kq`Nas=)1c3>UJ0RP~3cHImqTqzP)V3k<^R_~G z0D`B8C0p{`EaV@gKc zqVX6d^h)rttvIdZHx`@1k98_q8|-WonG(4#7!hT=b#UApFG0lZh1PT=I(~RipYxs% z)xE7K21zxiC$FAR8v5dxZTqh!Nmn}5{)T~#?9qzx z`oJx{eXZ*E!%!X3V#0$_-;1;seSpABH^RoJwwXczDG!qr(n3~jy@$slZ{DHOmi>y;_`Ch zM1{n;_~s4jX(lj9uw1bZ4P5` z`~dGc`jl(B@$SCThwSFrS=)dytsH*9AaHNa)m-eTZ?vRHlnUjnTnP_=lS=#mU@#lz zTLWfh$tB06CninD*iZ%urbmDtLjn9V*Ovg$wt#Q@zaGDSGQ03e`WytNZ) zM%&03WIs8ilK-6s&?1||XPG!^gR6@{ye|=Dxd6Z0gwmCwITg36)+l+RyW|bz^JmA) zulB-5_gOxEItd%x8%tw<@aZJaQs$t(zT`RN#UbFvFNQ_n-M7PdaVTxBTG>UxKY)R4 z{^vb`tai2IuAWafpKw`TuUAyPC0bzkR5v2nem@rnn1o1{rJQx*3(KVkemj2rEl|Di zK`FFoDZd( zGMs*WdNa$>GnIOU$E%5(Qmm?pfaLWV9`9rSKaCbF>TN+lp>M(qpYV8#aF17sk-$9^ zMD4S*UOI-5?9&v(IO!z>W07XGB&uXkI{76|8n4&8l!duEf8)E2M^)?}Jo@5tLVy43 zqeA!nKx@IFhLv%3F)_)XD{+ye#Qlj5#>%@!u zh;zw8y*4aTf4ZD)w3ew)5?-y`Y23d&<*@89=+ZaP53{6cNSDhgb4ss}Fy^~M({b~n zO6JM6^ZNmBBNC)%n^F|HrWaBT8XU(orTM2mbGl*3sZqj>;R62vCi$gH=f!T{#vi`C z|KSNc(^y2(>lL2TzJ-ZVF`%2CkdbH(vi_?7yBIwR%b_gS(=BlzXjAUab&;y?6tRM` zv@Ms~)tKMw@srrWe{{X~5JHPA&%LsS@-I>N*pMs&Ni2cQ%leS|c z)66bD=>!B-SJVSH2LUn*MvgAkwrtxRpSg)X^yXFECwMt1E^5F9API$xbk5c91`Y!3 z+aMU2u0M1Y67M0PYa*I1t@!D-oJ?8fn;K(2@hS;EA0$fv3kIk5)Zx`!-k(w+Ko-sH z?PaZAF&4bL2+J|gNp|A8#@*VuyJ;yj*my(b!>W`jzvY)Ah(vU)@Ir2$TtX66Y61!Z zSVkidjo(8S*$f(Ge&IU&&tITcj8f+Ic_7^d(a&@`BHXcpjZ zwaGOQ^&4lEpSPcGKtd0QfapP2WTL8oO90Fv6=$Nek&>Yc;>l>HGXxcsB@_g4LPY?z z=qY&RZ2Kud`ZM$wf^2vv@Z1`sv5^2dmOn@1_WC{bCWfvxzX*Eo6Hf_5&3vgDn|eXJB9H70O6;6z9n|H&)EIX z>^-k<$HbgTKGQB9C+uNLSkL>1!8YLWB86a!9%=rc{{TVV=kLGzKJxrUn-j3R0%@hj z!`KX)xcg2V-Y_PXZxn=ri2nfGiMjyx^V}bXearY`*;rkT-5$o-b_^UTM3Ze_wISNE z3IJyP;V$#kxHWf=DdK+;U|?@x?8o(S1B1K&0B)9o^?!BScGkPcr10;Dv37w@E(Ae(a%Nw2G=mXp3AcA`y~R595G1(YRrKJ z$s95+CO}&m#Gyh09FmLv)CCAGUsp(xI6pFI5mD3?vGS%wt^#GHSMzjrQR@tT@dfE$E(!pA@Zi zW*WZ`mr{{ZDOEH~wO=@r;5o^Q3mE5l1*C}zK^0`i21E@0jC5SEMMu5cfu{kj3+Z1kE`=H~6THK9h~se@k$da(R6q}x0S0*xFWV+v&pUO> z&jNr+8gcwpi=A0u(=SNMd5CHZ($D3`MyQDu0nRMhWqgLLSUJ&Bmob)xA`cx0pH;6} zLm73)m$X2chVvgfR*emPY1a=Z$Sm#LebzulgD~`FZ|8>vnFDy)4Jw&}wM@c@&;Z00 zWE>l;^R#Cu7AueecVD2S-*Q|HoXjVH-j zMRTg@M2m6~>PZPxrlZvqL@~BUBlOEOZ!9&zC9XjB5AAQds%sH6$cTg(&Lr~5ATv%-bby?fh-$~_yF0SKX#Vaw-XsGo zgi!i;NT_g7FfSavgR=0pQTvC*IYlN_5}Jahsl`{*t98~_&+8g^`$7GbKmy?1`{65M ziW#2n?JbjVbIK5)WCH*afr4=ciUToQt$A{%Uzlw4r(GUSkTNP;)vun9^%{9Te8($Y z`2PSaECR;lhcP?}&BWLe0VO5tE3`GxQ98E_xd;=>F!cULUvVpRtPB|Ftx;-o=xx?{ zB@$+oREE8WwHG@h!o;3jISlxRbO5tw=k>Nx`Hj1@{{VS#um^xvU`5l7L(sm788Gnb z#2^k&kOnjM8sxExw_xxfXKoLd24Se4e%;#mcq@m8;+kL*V8PH(4|7y=Nc_C`vt!LP z_>)aAD3cdTumw>W3#%)DVt#3gl_iZPAak%r(4}D&Kv9CKFwt3E%|fZMj)oQ$IA$b} z0Vd$4dDPg z+rvK8l=u-XPRjxCV^k{4@L^-2^ny4aiTRXl4^^@#9aY;3buB3 za+GKZo>xx_AhX$MmNiZ7cVifX49}b~<$Glg`YhYKmLkz;%cf!@J}C)vYMQE$w*LSY z^rZpLX-G4w_((iAh_-2L_(qAmK$w*;lCb{(!qyA|p)3r~;X*iycvXsKv|AZUQK8Jyklo=p;n)K0Ap%9LUC^*qV)hK9N8 z!D#w70j->k4emfWFw>mz8Y%C;%0^HeA|J(xEYIp7MGKO8{vam4-)xfI2q{9TLl7N+ z%xBorEym%IC|o*q>gPMdg_U~b4+i>0(NFJUXQdOByscvCi6#{7k=Wk!OdMOrg#8fpJztP7w;HU#L9|$A>RWfHx(c6Wj z;iEfrAFR$s!h|xEOy1O~M6zc34hWe^LgmreEk7!x*g=B#k6z$2-zh*^-TVF0-6Ba1 zl}cx(WQXO#EeZxg;Wf*dYa(c|68N5zRYR5`(uz3nK@?MU705t;+*@AL@Nx_!#4BL2uqhgR74GEOUAS|zFAu; zMTKR<+f2FH?USnRc6c*sp92V4cbGCd*xa#l5C#Zx&aZKiC4ED+DA6=3flW%O=vJx3 z2yW$8jI>5?t9_#;^(F=5Bf@Mv&Y@FuwU}gF5Ox0P&iSX;+p9pne((ccy8DQo;QBvY zlgvb`Q%swSeZzf?vQ%_D3SIMU8krbClyLVPIr^*sgGg)m`awx&aPmNS{I$600gx1` zpsHP~qSHmv2WFbh~iTO#ZnkHZo?A&3k5TW&_+N<@7lO!ERa%@C>ex zkjo=-3VL8*8KTZnv}F6N{ZQqwNMAqYf%bSK(*zY zQK^(!L10=TyqeRErW}_jj?~Vh+O`W zZOWKs#q_w~%je|HFd&Iua)7Hd76FunxiqX$oe-cjJGB`gvL;p4!SXlbFX^AZ9|^X- zqaXbyKWq1VV$b_Keg+wyX>g@dH|3NRNq0-|4#USS*-0n^01h0@Fe>uQ2x8AEESV^e zakK3^KGla#CJrF3nw$3AJ3-LgPJ-566KL77_FB#sJ{?$fQy(xbm5W%LEk-Gr1Pe2% z{?{y?C8w8^Z7$I`0FMc=1Tq97jw{PZ<8JP}qP9wYK)rH%*HI2!>+v2ff!;*|zaFgBHwZ2s|vB89|pN8PYnOs3hM9 z{{Rg&Tc-=U0*Xdj=nbq$*ud=CugcuZIy5?zQ;N&-{F)K*MpjoC5>7Vq3T z=wNL^DXH4q)5FV5th%w6`;?^3mqk_7!?+x}^W_(Xxs5LTlLAvFt!b8)qfuUj-&9$px-be# z7EqGc<;b8U+4T~Ya6?T(6@sQ#rRepGl0vAUuIO2i^I5)HT8{LJ@9vU5T3#8R-3~w& zapcOw3F>zZ1Oh-J1C|UuOXlg}NHT?fdwxtgM$xiQG_rp7AeASZ49q}stQ|=z9LK4h@F|*R&q~=rB!@`q z9hus_q1hW|2WfU**Nd_3yFBvECMFE?N_V7v$S*uXi)3 zUqf<6Bj3s?if~Dcw^_Wfq&eB^h88MKPBKhk|{SC3%fuXOeib`Cn?V3LDQ_B3yHPtyDw<$*xM%C zfhIoBk0jW5xLA_QG_y-MB4FX`a^EYYdi(h2`hD8_6KLAI&D|UswvNrjIGFoh!-gLK z5)8&!0|`K&2nK*Gdkq_>cotLw$Op<%Yy+xNmK=Sf3kw=dObl5i#=^yucM}eIR!QYR zCI&;jn@!0=A~D#LSz2z)Y25J=VY<&Ky1aAtWM}j*>9zM;DiL>n(SeO|5J|xm&;Nr?e z@=qZ`2q`it(UUm(7Q?q-ZPW^|&&n|qzz{)A(w{IkHWn=N5Ng6AY4?+wYf@^6;-03&)0PQSr9T<9 zN|@gk(%{<8EfIgR(%u9a(Vpe)5ui8HT2GWer%%+Ud439Z=FhV2J5E1n_fKiYmQAx` z#F}hDvtiFLmTXKQOw!A`6ojC15Cr$Z+z*Id+xUstJ12NMx!M>zUdgp!$vpC5OeVzH zrUbn$hGouv>93VvWP{jcuK|VqJ0R2MupWv5xFfn#rrx$AO z=GBdcJ43VaCz@(zM8hZj+$uNX{6OvA%MjK z;?Ynh{6IpMs{u> z2>s z0_f$dOd?$*~`Q#1q;k6^i@{&>Md#gC`)KA|<3%E;`E;nZ+0cjN1O4pxGR;pO>F&=*Pr z%7aZ|_>~lsO1IJ_e%AE$XkZgaDW1pW4oW(fKcBZi0%c%9U{Hp=X#z5^3Z9;RyrGF! zfxYxaZk~`tyhl3&;%8R4KV0GXsO;=jy2>R7l|J77MQ!Ac;iOmA-HE^7o_w%xF)a=dUPGA$7B9Z*HpuRCk3*^Ms_4odhIL z=dQWI1XP7l%4BFX$-jtT8s&AML(fo*Vn{_$?2k?yyo59@Wu@{*bV^$&DExPR_@?(J zijV70Pcc|Zb3ef2$*Wf|A4*f1vn3CvP_$2{UrquFQ}I+Nvo8Tv;q_I9?q9>7SufHO z6+@GI1p6Ch2iEK6sHN#>Cw=$P1#VGk$=dd{Z)Iw8(y3~IezjJ5BqENy?6j|=LBX6< zy_UdVSF^7yG)jBq+9}dHHkY4eOs?ujK%!w^eqDM4_kMyt)u@A6{q8nLMET zQ(7mJ`auwv%A$vdUhM|HRQAq`d%a-KPGis4q=r3>Uew{{Js^oan}McRpw%*J!yz^M z`d`t}Af;(!;GjA!tCooeKhAaKtqBaoKnBG;*yMUmVVQF@%<)Fa_|=O-B&L+|1Mvgr zMMLhMVDN$_gd>zs_cI+28lE4h8dKg;Djha^m_4$Q|iN)T{n${c>+dA3^{_Syh?C@2%f6Go?Th=F4EmunPggc?&$(rlr z5jxV4Zk)5rh0z+HOAx+Y_jH7_5FDa^k)~O_Vt;D(u9OagB&g%UoD{!1+$UV%5|QQ_ zk8HEE=~yK9?{9D6_^7s8_4bB{T)J4jGbxuz2}%o5EXK66TAET16C>+ElT*m*b%LJ% z0157r#Foz^^$zc6gp(-pbLsW=F)DAuj5t^{4}V=p;h=~bQ1V-yA-HvAx8b~xlR_Yc zC)_W*QW0cLMQOncD^Nj1>O8+F@f+%ZrGCv`0*eT#Q0NdB&^dJ(>Bh zu0S`XonWN^%m@a zpk`L}^sg3gVL{IS0Am@2PYW}JN?mgG91JnyBoo2B(=4?Xv=mHzzdbWliJi%G0jQZT z<)DAW~?(Q)~i@@fH>blmXMK8 zh*MhCxij5SAc+$&W(6vR?dPL;LwtZav0WOUi^Bl|B512_gj5kq3OHT^$ujlU8qm0U zHS^LVbf|K<mU(VH)tZDO_Y)qY%4_cv9?hBOj+tIG9&qb0*(UPK;pbLh8ab5 z&#G1kmxxjS0E<$nbl_t%G1bZhD1}^l@=X#oLaR+P*N@vMQ%k&ZYW0`a2(u<&hbk88 z=Csk!@iuIVb!UF6koQq#OFHDgU>xNJ=wgd(kiiuAoE)7Ju-?Q02eh(&HD7D6hGucjyLp3 z77~hwM?Mh4@b#qbXdb~pdyuBW3DZqF=lpR; zh_$K;*FtmjKFKD`@;{y(2%_?VcDG6C$`F#CsLA)s%UB>TE<0@xe)8Y~rTS8xdZG&G zPG$c9F`$<*?@vFZEz`!JJs0he2?Z{6^aF*TujNCzQ%bFymRvmHq`+Ja4tx(y2!bjR ze7JuwA)-_6-suGssPg=#7tv~*&S?7a5T4&QdAA=$bx1l+hfM%)ui?k>q!goc9+|-} zW=E~k1ZBUlW0wo%$%1t1g8Ej76oe5$^3#B@r4i98a}Y%d<(hKWriPw@Uial-p3psX z98meDYpT?N0vv;CJwo)&1b+UBrI}o5#5WbVYEliwr9FLzS;AEps^-=mU5JLHp#jdQ z6g!O?xidjQY30t((&=vdFG*jZP7sqy)2_V|FHIGy2{gDB`r0P1&9$w$a=I8Om*5X? zBcyr3Bf6Ec)N)!=$iNteLs9p?HL!|C1spb&CeK!<4B-Gu`_T{4>vF{)l4HMGTa~0l zAuV8!N+~I7DFoBj8fpgejPts^Z+|FGM<;$Y$!-XBbU=VnR$SKC)iPCEGZgg8(@uOp z2v6-91RV4h&rU#m&0W#CrPO+70u)@0+sqcaa6t*(YB*}z@NBe#o*$nyAwpHf!}QL? zwP4-PC8*`6spQbZaYJEX-uAEx#b90`3%8-o+4HSnqI>T&Zl@}(C^WjK@{m_4+<=^3ugbR$o%+ZCcqT(g`H?gj_b> z(MCl*WH_Au^1XHZ!P7U}pVkP59d*({3e-N|Z^Rn#`*bOIBCPe``8OP`NPTiur{|kK zYt<@bi_3>xKa&&3r~A?pp+aS%ZfymL8UD-X0RoAC|^ zA|R(%;qR;^13xaQrl|}~?wRzzhgc$Dkxscn-XH==3Kq6PSI9uW!+jvPUeH9=XGJHc zT$$5I1k)B$p^7gMH7U>9C4xE(v>v@@3z$c(bxe?CS=%BiS(c^VtEZi^1C$}Yi@bGo z$WvWKkTb$%t*C+Z_f)Gx3Dv3i^nxMKI)bR>52>PMMx-=tDWxe3MfPRsVCzq;5mxDD ztu^b?1TKG<>HLVSOZA^0Yh+a52;9{MVXsq!BKwz*Fcrzy?FeKVNu% zhObZVnm~spqqp(wutdzLpN~iDD?qxHw*vig1PxjeZ%-uk zMp$CQ%gfD(vJ0>R68SRZi=ybYcp`hHtz&H&a~&ci>C!z#_ zi`}T#O#Yc1;wMh@zP%Yc?ws*cP$vrN=9S@L#v1eWyQo&F8o-urCA^jD z2>V2%r{ZU}d`@{@5e3QWpL#cxG#(u3_9_r(djXs`veM|kh59P85+oE1l>n#@b@D!8 zA)x}LXkW-`%SClf5nAX%XezYlsMH9Xdn+MF@@w+R-+qca`*rU{N^?GFF6>CEXz0)t zvgrCPo6FX)xM+EsCVFYY3n*W7OHd**R**~ZW9Js^aT=nhiD6=#e%Z7LDyVfeQ0CX= zXS)7+^oFYX=2rA{Xd`;^?}s4@kpBRYN-Mt(ZOLe1B+Fk~5;!;IAt@QtJF0P|zL3># zTYWPC=DJWpJMXa6PDX7+oqO%H43_Bwr_Up@f)`64rA1V`u7`G%z{ zZ1jJy8MQ2t?AIq z)WHyi7wyZ>_^beZeFDSfUw7+tFnv%tQ`s)sGg;@y2ih<#J8N}QmHK@aavzYw5^-Z`H>x=1&s%<*64 zt)B=M6Lr>5jXUfQBu{w%0K3og`1ON$=6M*D^KjW!E`!?10$bNy^-P>lS%|6x{#&o$ zLQi^T)a!w)I3i>rBPe5dsxCk;RMSgDz`b?VI6)Pu1r*eEe{Zw|PHH`bO4mJo>*WRd zAID1&!%q7H$ReblUq8%3kkl9CojyxPhJfVH@4yM{ zl>+%d0W==N@eBp?`#08&t%1A4r{kL52;WfwA8)Y*E@5^+!-%|=m^eIO##&n31%UnC9|1W=>Q-}2XhryRQ-W7Sf*=fvUiAr=NChC>JiwyRS*?&78$dw^?ZcOskVpoH zirTE~{^^p$J-D=I-`mKNQlCWpB4?Bc8UEb8ogVPREea^ewb}2Z2w)<6DCBB0=I>}f zm*c-?L?Klgn_0Lc^;kSi!;)`Ggu#~zgIjKpKYht*)pia-s!}- zR-^t%nUZUITIpI3sD!l1HB7+)Y?mQGv;d0~;up)yOK^!$*WT_387xZw3}$GBYjJA^go(zDY*X$&kvV60m zlw)o{TBeataEGhj3R4pt&zb!Caz={|;cOSlYDuYFnTy71-D46Fa`K z08J}O6~R+fHP0j*D@f5*s8M>c`q~KU0GWNtr_i6M_GFNy1!~K~k5r1Pt7nlJjE9n5 z7U+AL_4#9@5h1>+f$YiY^!0?ZijempTZX47p(#>xaDIv9<-|h))QVp{Q`!mB@TDd- zlmq@vYA;N_bb(732y#A6f3*xS0HBFPp*jVi&s1-#K@%kh4SoKsctRkm?^crXd;OD& zLm-f!XHQ5JXUi*OwfsRxKArc-X9Y&+>fDwnOGOq%T5_P{ zpCbhCyCws(A}}necHz?mq=J=jjbfM4G`-;f6s?rkBAjWj0S4-a1PbIu!hlmhW)MWc zDpb8fWv*$WBA|o`C`If-Gr9#q#n^Cw38*|ETl4m&jIK~bsY3Vi`cep*7v|Rbo|2Hf zK$c#Af3Sj3jdB<9${7V&lgRPm^@5Ji=`F)|{hj=^2$C?ufs1 zw-c-sph{U=Drfoira+g1>h4_eLCfgSkgAqJm($9bnxrrNz;facCYQE#DAP?p9N5mC z5xPRr1+1xRrcR4X#O|5_<at?MKm>~g=ts-Dm?DOo}!!(go1+b*7tsmYd=>D zNoYKqMu~CqfRzvCfN>fQa1e@Bja$jWHk@;c1y@UD_tBuHd3Sr;gwH2SG@FXJ9>|pU zgp(pKtvR4&87PKqSAd`<%ju__J0iUlXV*dr-dFT>4H+oZ zWLGcb9*jgJCspT`K`fSAwMjbn>C5V#?9@}{e3lK<#VGvC7Jqcs08MR@hBReX4Ws1= zPqi$j)+)z_kV0F(PqIc-qw?udt>n;%BHeXpr6`Q~XvLK%wn}8v^y`Ear4*DNj4R7Z zc~&KFm(mz1r(Rn9RtTQ$8oYJV-Dp4gQEqM5pC~tvqBC>rl0aswRUgZaS?dH+fQ*u! z*3zh@6{;O?pGca}!oRnY-85FDCF|PVJP<`f zz00-Dz%EH#Yb;ztGr`OH}sp<61`Y=S-+wu4I zg#w|}WIFPJeN=njl^}_boWj7T%Z0K&$r5H7)9Tp_p|4$iV2ED2>(K&AeVdL$u24Y) zNxwXU@bdPAqyg(*40z{VA>;+uh`(7BtRN2n?Zq-?x3%Djg>+Ubi)I=M*zpvK0Mshn zf<1B<>EsO4%j=~n16Pz2zWe;OI;S6}Tp@MWRMsC}T_J_h>*@D`C%kh$u!O^->ej7o z2h;IKY^W=#gQmM^8;EEk7P@upo^UT+apw>r-i7kzJrP1k6szYA7(%D&I`2^`do&?eW1u55AdqEPf)p~wQ2Udqs!lmyCFZStl zf*~KSu2`^3K?tws->2aT*_Vf-avF*Scp|0t;5_#FjC$FIeI5JbS@68`qk@VX<`PMIO%Iim&S3`3T;Utd&PLkwNNg&%s`G=eH~n90k# z+0##IBsF%vo_tqW3b&K7HleOYwxEEolUP$GcDJ2`5lgK~)32qTABwJ=e?P!@0Q37% z?P?YXOBkTzBrZ82WL}k3V2OBvM^sSjPvGbEfTAp2=S!N@oKuR~749wsE30Kmk0n=E=iUi9{$a=$1ka@?LaH6i@Ix z&)0_(lT>tU*$)Hs6^a0hwcN4v=c85=^YWquRnvju!6eA+wihYuO2Hq#{d7-t>NQ_G zBBE()P(wmi>G!Hvo^*+JOa4LQ(rVU@h$`h(7Qe!XbW3;G;VtA7-I;(i)ZMb_(y)+< z656Fu(_c%ZHKV5jmKqmMRt~USElu*e@FRc@z(h8Hd4C!YB>Trso_^`>dpDO<%N%Qgt+w!M$W(8}Pr#?u~Zn|2J^i;dI zk|KdkID)8&T>iDqV0NkV{{SV?Y!n`Jf~f~lCr8b*$Qulv`J{tf{T1vLvrSl+y1F6( z^vMm#*HnOSbWyk{qNrwoXGJ$$s;`+GUdRbKkujk;4J~-{FrMyHAN*OBaq7O7fep#3 z0Oeh2R;YDG2^06Csx37qG+O5kZc|X*IU?55A%=s$;463A1i(C)g2CHQD`^Jl&Dw*0~G%YLM&9b>@WR2962QFbkAK zrjPbkes>h+Xf9Z?uC;9oDn#2)vfG|tl&9O$opXXK0K3+xbi2A`&Xs6Zv_VtJDV-PH zBR%Zb`1@M7NNRe2cp|4BBTUIq0V3K~1?Lp2ZWx%krs6X9@WJa{7+9Q2liADmnFIs`^7-x_iM&r72rx zbLy55IH^5pUI)qHD7`r^CiH=Cb^Pl6W~4%tsq3TF1s!Fn5&8+IcMlP zq!9$KDs`Z5E<)9{Se~+gt-9f_m(&poKIbmIE|4#f&8zjKBw)sfIZ;sa78*h2rwpy9 z0z*+qtFLakK(LyeTM}JG;SSd2wu7M({PG?diG$^71Gtunh`1<7u2V6BnTEP(HKLshqx%45Y@s}Mqk;NRa zjDbk^;ylwta|Ku_QFP*chpkZ{h)x;>D5xl0dpjveL=c>L`z`Ip9h6u<3X@e;I#F&Q zXYvY2rIh5%+K3{ak5Bk4mVr90mZ74pRk~_c+3Ckc5Thwp&yir7e+CGW>U#WX?FB=c zW`2&IdO3xjmA4|0WR>+f%NpxB0jBF6X~XJ zbSmFef+5zYkyXtDHIlh1K#KX^l2$TcniB(R~)x&dOqqMUs_9_v2651aSP$s2`}UJqRn)hfQMNKgeR zC={lQa;t{3(0c_<+7;nMRM7@&2aD4~O!yxq(IB1o55ujIx$d8z!)XTYw5=P+pHv#w z5|k|7o{0K#N+1*_S_RiGVhXc&%G#b5VC*&YPj+OhB|5O-ST|-AQAPy)8`hPC;g>w! zM-I3^wy@J9k~3Mann6p&t$zHE5Mk5Y)w9#xa<)bf+r8}Gj+~)_b2M6UVo}?GF5(3> za;_5AqB*NrUW63C4&$bxG*i1&4|1VA&PnFH(pUIuuQ5(hMMpFgVxDc~pkg5o4rqM( zRzei15J&R&jT`gjAeG9aRnU3Y6|)o!6F(xbvZt*Kl47^UW@$4;t62Ph-`Yz{@g zpR#+6_8oOZaAJtQS})yl^@qG^RjcL)3T4U#;`zFJTTGKUAem<2_qPw>AYDas;uGG7 z&JHc>YjVu8idif*)27cPXVMB#$*x|0cJ_z%%S#`wgxSS^QOA>4J0vaQ6yH9F4g=7N zx!o7dMrBsq;c(N}QWf+~0xC$G@aTi` zni8E?n!SeFgY(x0f+oAU)P1;Kw-kmZBZrn< zKa?h_dV04mnhw0W=^%=fAGZX0hfg%t1)9slLDDoYPPz{RTdMsah$Mn)w|G$7th&?A z2J5b^1VWt8oEyh8=L#D2?3p|f4m9STkUf5{_l4-M$L|8BeJ4TQ2!IGwT+5qrF!zpU z&IKF>UR*whSAYU&I;Rh;5j87+ss~Q50Nx>8IK=$t*dyi!z$OVgTZ)!|<+vEZJTf+UwseG~Eb zM242-m)QNF%H_FO4@<)#5PGBa!(5<=C6^)B;dEFNC-v%vo}u9Cnxph`hT&IFWJVyT z;E@DFgaJbPveRF(LT;6{>+K9?laX-pC zGs6O`$>q(wmx_@BaayKHPH&-X(MA3Pc{sRT3O3a25Q(lE_)M z`cvMk0^6^k$gQgkpF+>AlH3x3+6a&a)v^`-8#BS^!1AC(86RqD5Y)u7qaKdDGvk@{ z>xVSX4 zsVNV4h1bjJjX^_ z-m0rgbApAlJzFL~5ww9y)|#~#zuLJNr1YTG95AaD%pfSn2&6I$)8FaIQ=C%;awvE< zS3#p7aRF6Y*oN0MtpW_&HDu0MiO!`&hSzfZ`UQtSYSDF4GijfUS)`cnM?QqaOXHu#FcW20p zXG0R`e7fQ3jML+u1jW(!=cRO*luGARt7 z!#}e6BHT6}-Ex5yKt}cUJpm-2Q?7B5D=wkZhHzQFQQwiV;ai3n+uvm4bBAt_UxYnAO*M$R)QF1YggX$+{Z z^8G(Hf=^@es4Jq8aIWj;*C2wtb0Ocac$YM^Xi-0x!!a@}27f!sX zqyQ63ucQ5-LhVQ=ee_7F3SH1CZ8PN8OS@9UlVGgrr7v+_0t6%$VOm6}9Gjk5EEs8P za7Al6g$QkRMRV)GWfTDbwOKy3x1ZNH7NUMMiW|;+(aouRs33^lpI`i3vxbvO_8PCJ zT%u(J(71lO$Wcr=iBu(02$&Ov0n*?PU3BsYkcRnjtyZ}rHLJjBLwFFQLz|)%`+6XU ze+X1!{{Vk~cq5sPR?ELZH*8qNcPYv-&ZC=%;* z^C}rXg@PtG!mt-ha^vZwE$Ng512EYs)7P9W)Tmn}J!xux5nxIXq8~Gt*T}&V@ht!Y z$cB`)w+@^3dhv^R{wK&GV7 zo2Ai)v=q`bQtZ}x<>wg(n<7b0HKO#8Q1^HrM(^`=bOaLI)GGj0@~kug5{QA9gRL?g zmBbQ|O3_&Al-*%V{S{%5w6laNtye?JgZ`K)S(PHPjnngaFaa)t-ia0vN`_W7TNM>5 zrEltx1qBkWbjYh$C#PliTd@R3>>edh{Wn8~dB1gQ?Z2z|-jn6i}!pP10Po z2(WF`mx!S%&&pJ(0r(?%jF?ib2m(X@0Ez)*&V>mH<>W_;hKXh`1YS6sLPk<%zu*9+ zsp({inaN~AeGql;7rL_~#1v~Hp+4yBsF4N9;;CmwqAiUA!B{&7x=GhG=~5C@y{^Og zie4Nol?ykbIS#lhn2$CPVbD`tqoFe5F0xKHUfONtgkg+NPbSOU% zSelw?<)@qxNE^=Jl?`UU^O9)gH3R_HKq$XE9w7a?8G%z$R+QBaR@ERiMf;_~@aMv? zL;zHk1!?vgE#K9eW~zNSWIgW)jnqmE@1T0!hn*s-GG90%MI{Bfb(LTMAVN@j^nVa2 zn0hrrqk6uOC;$pA1^6}Ki3TMqY_1O_{4jGAH6WWZ9eNNjZ8`BjQwd!W^C6P|0LKM_ z1QHQa#JHko0HG=g&cjAlfXo#TrOlnXEuzBRZ5Eayt~Ecz5m9z-1bJ#B6i`DT=@(q6 zct)x>ksm!1J4RC?wGD!xK{lyeg&M(1FYRpF{2E81l-^YEmpKF~plY8_L-`f#jN6rc|-8Iqp8Em}H#SA+DBls`$v1zx?Nh)$E!)ah7gjl!ol+#7l z`tTQlZP(uZq6m~Q6;uje@#w8Z3Xr<%CW9*K{H!_K=>$rauMo)UY;~<6>CfrcoGnw8 z?{zlM(f~EGYpe10895ar&wZF@`lI7 zKo}!0AH&wDA)qFt5$&G}znl?C2!xJLZf8sKiAO~oRkMrUm6b>e=lS;@P^LvgqLlW~ z1jO5qRPYbzw+oXcsl=^p{#oW=i3wE;Ui1Sz zm(`a=%dWXaD1CYTtLUtk6fG0WA#s(69J3;YJQJH})#>Q~_v?=*i%@Ny{l3nX06Gd)1TER5m_B2%-R{;BjRgdquFdN4`tJLssaD6bumv^5Q|Ue@a0V35Z5d zC((H#v(g2bJpQRi>ePx*$~xqUa350)ZqZh}7s*S}S0sWcDuDVc+b^zF0td)?t!$cC zR7H(cEk7!2O$X6gQp&d$$a5ZFR)U8;jw3hc-Sbn`IrI053aF@$!-!{h)53x7e=>xkw#~^0NW&P6-+UG!LUH*H+HxTtZoNE_q~(Svi(; z2nrvMr@vXt(5L}&6ss$B(TZ|`P-ZNHu7fgVs6s}lTi%-J9vLEqi42T^2n(tUA|Z5w zP4A_m-p%&1$tHWEtva>1(il>t3OE{nkGSEiQUbD%n}Yg+z0 zZiAjoEf%t&)z8pz($(WT>7X{E9X-(14scPYNo>B!0b8RtzmWFiyn?n~-)=C(!hl>V zdwLf7xl8%zuhI%ozfEn|m68VOEIEF7!e6JOdO-w7uU&niqh{8(Kxm2~LnUmM2;E)? zf*5t>pOZ8VU*vLgl{i*{(K)X%YgsadSR!Io%O^ihy&*T|zJ=h1$d?z)Ypp3>P)_+r zetIT>)2h2G00-g{GN|CM3I)(P^5K*bBmwgB{BWj>B7mcSjc;$_kvva@*Pjt%Yvza{ zu4v5F;#ht_bb=o9&(pG~N;I)+5`j|ZIwR=_fG!H;Rkd!igaw~JJ^+vxKQs#v=B;sh z5NV?U&Iq(*tM&Z(jEpAC8#m>$HS&maoxdo+@HDLi0Z7Q!f~Y#9a&j#b$+YG4T0(EQ z)2$&TGNxaIx7M)JFTb1V|5V(-E_6pCZcQkuBE_DOGNo6M(iY$39uw3Z+SP{9mI;7&r@E&~H=1tC*>RBFp^wRwy6h z*{dZuQXmgbn}$PJXq-5$dipdGUTr~eT~FGEq&y}JLFa8lRk(SiEf$`ft6d+IF>KUO z1#5M2La;=Ayz_VEW~0KdlJ)KQqq;Zc?~vkGn+g|1r<(@nlJYP`J$2;-P)=`>8+jkS zE;D;_VvZD}>*oYh3H8g;?VrqN6HwD`xs6 zQ{`vj%OUgwO#lPmr8Z^(SQMl%LT0G6%P)2FK*U*zrcbXb18zuQQ}cb@azBxy#)>_h zh6zu0^Ry+GO%kca7}xOxP>Kmk7tdRN5S^(0Y@t4ywo!Y_Vd{ZEe^L$Xuy{fcC<|rB zT7b3kf+<3p<@Emmt4xz5g`Fs^sxLQwaiYorCjPYg9*aU7x(igTYP3(Va*X6Yh^12^ zhunP=lm)Uiqoo3$L6lP^9-6u?l;jmF2L@VuJCeHUsaSMHnvjjEvNzfinj;MJ;TtTu zK1q9`1L+UKR)(1#lkVA_7D{#cdT1|h1qGQFwnF;R@Xetv z{y3srlxR%8eP;R^3sKsQGCT#@DUt;Y8l+gMq8I6C$J<&$S+eOk4wmt{%hR8)54fZ7 zlxr%W>iH$$ofZ$4qb^K1UY=kR6#)ehnt39sMx=yH!ZAU_v?A`xl8Hm)ng zp6et$6rc>F)1v|q9T=i|i&DUjF{+DRh>iu1t&uMcls2{&Z#sFw7D!3dq8n0&%giNS zABY0kWy|qlp^I5_4xE1sk7Ec-9c~|86VX-(le4OnWM4mDR9KP-DOC2a)+iZrAt|5^ zy)7?rOc4n3)AFb(qCpY>&3`_++>piEhk*C;=Zk6(uX3q6kEx;8)%&eMi$UR07S@fPw&2uIMAvE?oZrf+=!qqMC8J z8C9aUb(hWt-D<1w`%|1RW>o66ue204k*r_2^FaV)S1tfPR2**tDa`9$V?jUXry z7lC8KmFc2+XZ&X9uuO+8Ue@TVk!Me?mivZ=0*(rvjpPZ_IF09WgLMU!i2$<-t=ZZE z>a0Ht`AyYWDOI`>qkw))IS<4M)#$6j%ltyG5kz%&QaL9u1>pi!-H{44!+=1uC!2y$ zKZC4YP?S`iTE0k&nz|DCG$CK*$mf^VB#?!T1yBK*7hf!tLIi~<3g+k=N4`~9DOI{a z1g8$I3ozXgMPFM&nq>u7d1+>F0zO6RrilRJYh+NSwFvoztF#j?Da|S%tx%HoR8PWL z0foCl)c`G=emv5R2$E0}n9ic=T?I~psR{M2sxk{hs8%k; zE!)DX&??B zQiVW5tQUaE#~Z_xpt8`Z@^7~|UKD3vFf_99Z4khLNJ4-xH7)Oa@(@TcL4@a8>7U#0H-(9)5^Y ztSv)iW(=-*A_0|F$h8zz4w>;}tRMx@Is;W|*^i zFJHtw%jAU{s@9PcOqQ)E`6KZ~L97(}d3VY_`Ok=fQNo}H&WcSf9xi^Q{{T|`(f9$~ zJ*%{POKHQ}JHd~Gi6>@uRFlea@iEMYaG5uW5=uzlC_q(V8-AsKQk~KG1KmBdv^z&_ z!N%_n(SeCCWp-S+l1-03(Yw1O(_xZG63;L{DDcrpkD6bK-xfR9@sGWGZ+ko2w_|NH zGOTDxg(D6MzN8)}$$C-aDiM1MdYO zDO#Zfpd`1-)iL{S;rAoA{v!8-Wb7XAY?#>in6rs?jiOvKaJF16;3t}SguAUPxhx7F zm_rv9oIE`7#vY#HX1Z((7XhlLylZPrC@vG8Nyr+0o5b`}l>&4Gus_VzXuv+ez(JfeJ0+?a1o zEQEqUascM79q*J%o7I^~16K+WlI1f7wD4Xp<5g{yoE#dBI3TfS`Q@^(x3OO9!h9nO zW&;}>3h|lPvr}RiJ^sud<|UqT6x69I0^cD^r37mxDc)1OSr9q_x`Rp!(wV{mWm%Im zx-zLRFaW8i2B5SI)=IDcZ8u6fkdy$ zf$}+P770y1w#6Mq7=MVOGelv|^2&gRS%qj#DUv#hxvhTam?8(MsN&g&y|W@J#MK}% zw1yYV$Ql0tkci1i4r(kMQuR4#aMlAVOX%&$-V7U8A5!R_%o9$MiJYDZcJV1wz#P>e znt1{s1ggpcDXgJ)N)iY~;B6hI_@nW6yI&0ZCl_n&Eu#w)wC2Oa{{Ts_OFXk;&xyKs zL6%iVLWE?Fv6l-9tXjo1;gV}PNiOViE|{ABp?-Y<$fb~ep} zkF;zZ+rq_~U7uvb#F|5mEVCe=5XfaHStTIKgp>k59q}9Dhj~6FcCIgJcFxy{{)pnu z{*Pc2CKetV&AJSu!e#)1LX*6+H3w}!a0Ch}030X+H@ewl*Z6maQL_qb#iUn^TK1=a z$@qws=XTE$s}!1OdNA4Ya||BvbT_*?o#{lPS!F>jK>^87T?&9%ZU9<=3`~j)pwtow z2Su}0h+*?FN4y5@2q7FwNh3B?bb69anaeOolqwf=D3(x#0u_4!XzaHya(IB`9x=;@ zFx62G&lh->_YtR>KukjrQP3&>0I8YYnT8aA36%go8=;zli_8TU@~<3}SoEIK?TmiX#+c$6rI5^$NLElBkf2cks-T&I znBg2iEQkYtim+uU$`i~g2*@z$%mRHMlyJJ##K(V@fEp#m`0yv2LtHLUoXWET^&+JV z#61h=QUNPsZ_hQ=2?&F9f8G{Wk7~SDQ$j8F6vv z!@|LmY;B_#5KD!DgCWG95@Ns!B?O-nI7MJ-9>IT3U!orL{71yt`^Dev3~s>gu$vDa zO`957u(qADK`@vJcYrB4{?v3dSkl{e?Vn=9HRDz(X#+CHEqZ1pZR~p{HrI$SuxK?C zQ2DZ^UCvtN?pKRn3VsXs^Wyhx?A?*wPRYkRH1mlzp3}s^o?VjyQ8c1raSW&oqj*(_ zON94r@DKEP+%JQ>F3sAVud`tHi@m#&Pm8qeQjAP3mlTOgVJd=UAqB@=otv|Ed<-dNpJ@&Vq+F^W|~>7`fFmZ_XN_3 zK>evC0!%zSIYhEaC;%j~us{F^D2M|jRK{J>l8T1~PPeZUdX-4XuJBn%mR6X*_fb`U zx|A+eLP0$Hr*c$8QJE~N8B^6zHF#g9LkQPf`|Ib|xCjsf4IoDXBwXCFyjc@XARD9R zLy`iFqmLxJMpFd?d&~JxzA5-}1^V?GaS&V9wQffmck$4S?k(9JS6|w6teFJ zZ@yh=5_f<_E`g9!S8KNjq%w`^DN6)IPASNRVufO*^S9t>!M`f5=jChr0TySy#zm4c z?#vfL)I}N$xro<%1OTX@O7rp!p`=WsdB}7FL(DoL_TpaXHbTqzD2IlnP@+JLa^i^;7}-;s@0-96d5Dc=WkKM5bkaiPs3AM(JR6yNay^laB)ulS&1>#L7|g<}70? zfCG^F>g-E3;Bjv?BT0}L7#DHU_MbIDX?*B-SZPSmfY&?EM>Uy!@04T-LQ{C$msjLm$()#R525iiRka3o-JqLL9Oa zRsi|vQo~0ydYVTiW&s*nAQ@0(y0Jux3k>4=@lc>3R$Vn`E7H;#CTaqnf|dN!NYMkM zs}io4CtUMoIRM*CuF4uvFQ*13Dh*6X9(kCCfZmUGR^2cdktN1|Vt&!CJJX`5Nr4iC zS5%?#C{;XxQd>f*7#bN#&ECOX0RR-^4ErFLlVo@}=JC~b4$q%x#1rC4G`K+A6TA+L z^=6vPuX9+YkZNGkV>WHktLC#|(n+Lw+8wfKAZwcAY+EKS*Ni1HnQ+yn3KRpHClp0} z;1Lh(woQ)p*h(PEPl1y%xnZiZrO}d;7t%?I9bDQcRJf0&Dn5>}#oBh9JP8cb%mDzADJi@M z3WjR%Si@}F@U~!ORm5Zxp+(TuC_%p{{H8Y1jkV5Z#49K$mIWD8GO4U(qYHkZONv1T z%uS#c)9IqeRaOJ{KCh&>Z6DUfZ?yJ~Hr8j6<&wZPScP>63Y>^aM@anyN3;{^x&NO4dX_U&sYLN1J zPeBo!pQ6HV0+5@;u~0;!+8+vlj`c#Yr6eG;wK9DOsHj>pMw6!SB4aQl*4-`AAuisZ z%uOU~H8bUV4@mPFD!a*oS~@B-6EcZOK+`1^&3NHAqV`7o(#s%O=C16n4MGG`8kJizkI{B_X9-gq9#xzb zLZ~?ANi}mvVHoSKngi9C^YiEHqM8Azh|FjK6DI9)?fG0Sle4GB65?Zx$u0?VE24tV z%K5#c^q5k9+_K9oyNCcvSpt+Mi*u@~#=~}G2!YTML6CAO@_@{M7_I4PLFhd*djvtG zXyam>M$kKQ%RKJ+t&jkaEHpE0^yLN_W=z=%^0s{QvcbH4$0P6erK3i*+JK^-Xo}+N zk|N)cP)f5nL;{X#nOJ&8DoG7?zec`YGFe4X=cF0vV?U-!H>Ns07phl^@rnJ<5+W2; zM4HWQbve2lCkzm^3ss>76_YL%hc@Yz45Cs)5{L;>9?F+N6fa^OrWKW%~Si2E_RHkJ}J3+07s;jUERPCi^^0NTHF}SrM|yjzP6+> zd7EdZVii=GrlJykGIPqDp()8hrkZe7vQZ3OT>U+vs08kepOPB=e$gz=6DL6=aPr_0 zM)bv4roNW`1Gt7;E+NO$r-~@0J%TO#it)ICLaU%e1sw(d0D}@TATVn_t@-;YB%9>w zAD3Nnp|gggE}N=pk`32hp1DtX_Z{S+Pe?hxm$OF5WdRXLb29;_@e&3_{4JaR0PLau zu}bdc6%b4T^?HOn%ET8WO|sVB-C7lcu*?GFaF1_S;8RkIUJ2wWNMPulXV=-wEl3H$ zL#ilY;!1&JHjHtxCBp`3=iHW6Qe2XbHC5q2>ed35Vjn^-?kyaPSZR_l54>0a2{vbD ze>J4j2_-X3LJQ1M2BZ!tADit?*4<1knsp^saA*=>5i7b=N&|S|_J?WWW0~-9i4sW4 z4(U0S8dR&gqloCz2~`Pto#&~g7?MktRwYC2VBi8?puwCAjIWlltKDI*7j@~Ps5dSj zD}Nl>kaw{FnqspMRFb7hQ1><_r_u%zgx&~&1%|uAnxHI;6b|wb5LhyR?KMVp$%!ux zoiCDoBWrR4XvZN0K#!-N_h8=~UJbcG{H*5P0JD&nDUvbrRB!f}$xOd0iULhvbt(%` z38*ac5X31NMRkFP!LAr7^6{{RtNg{3mfH3^#X&;d)=&Va=J z+`!l6N2IwGxgb(3YH;Pj8XTR;;px^;Zij5GnUDp9hwkYx02@&<%+QTdiof}qRk3`mJ)zgLXs zMCRS0E;I|G6hMK85d_vs8x}^&!!+}xM8(Om;%GPzK38y(KnC7?`WB0T&E)pe>=g+t z22;q-s@Z@AscJq$tmt5yb=gxiLuQ+ffwf4=QYK|$sxr7DxqaOr3P1&3j=?J0+lM%n z4XigDxD5I$AwWgR>WY#2{NmRJWNHs>Pmr-yZSVb%> z{7y)0fe92*sGR+@^_yEeBMWN)i`ZUx>jl<=WkobqvfMwX_KGUJFhO*AnAVSUdV4LS z5U$?O?bcA?(01LnQlt_Z0|UV6-=2}i?LN%x{@B>@`#-g|JT1Fm$C7+JTpWBUF(opP zB`9YK8kDIY+)R4s`1ATG!rGPCPQR7mzpH;7{? zv#aTvk^EX1-j~HD@}nCdtwCgEkn=|IYMHJr!pyX`-GgS^@XZ+b zVxr6|U@8(i-1+4T=AX8^54HQZ+8EuH+r6K(c5i5G)0t<&+A!wBQz@7kq}~WYWX~|G z9X45vs++`2TmbKx3=;KL423=Ud}94QcPHZi0A}M2yJErY?%WbhHqF|5J{+=Qe&r?o z(r$T*V?leI9g=AR1_3{5uX{L+b?0uw-l z8K@7v@V^|v+rY!Bp@oh=bp*j+KWRT-Yy9iQdFEqWDz+2|xyvSp2b=kjLe3J1T_pY@$vq$_%O|2o{FCeAJCJp~Hx{XX9&F zpI=3>gS6L$Pyx(D%Vk*P31lcmG%BG7zX5O%7W~e| z+G<7~)J24|7DUZ%eSHV$H^7t`CKF1;5KsZGT8n#Y)k$^&2NoR-q@E@sA$IU_sKlk| zB3d(Z1;+@Vs@(!0M<(D_%7TuJ)S!$^$UvwUT?iCbvKq2v5yjjN=C{j@J!3!I2303? z&@D9U(juB_axx4{o&b^#M6azG>Ngvv%O{lCFIM4S$K=lbQ089wDKo0O^9v>$<+fK=a zwc(sROfYf7EPyQ+9Z<` z4;v0?XOzn{poMa!Y6965BytAo5Vr~vCjP1;_9JzD$}{Xq7gaW8dqOHQ3dok=z-R#crc7D&=-H){3?b`;^hb+?1hdifn%^)IK zq?F7-mC;T>hmRGu_-;1IPzMZEL&hUXVgLqR?>xCLNwMwtdsQ$6IDj>D7ISAby}@YC z%d8P8Qa`qXHPMR7hN=@J5cg%x&Dn@f9z>?0qBrGGLLnX!a%5VIB@_fSSZgcF2q>$- z0_Dzp6Cg};O(0HB1-W?uL2^gD^fz9e*PwF~m9#nCn2^btWvQYvIVn?4JPSk_K?Hb@7e9RieEQc-qpC($8;Ela8w4D>~9Q7fuIz%0<-R)&V=$Y`Vyx+yZm zNfsOl%I?EF*BpWcH@ATsqz%(7!{s2gCdtYmqbud6zWu1l>8Rc@5NXs_KhID;P{f(x8<=ZxT@osL2X4 zTBS^EYvKtTnWD-Gc{f!mkS!nkwG0q`g!eje`I_>(L(D zgSPA&RyN1B;7_ydco>t(kAsORkb@yYfT97Et|$ns+)e3;l$_fn2<62a#LJsUvmcK? z0Co=e?3+({JF|f%&)fSvxVX6cJ`9QesLGR)0}bMcvb@BQQ9(YoHrAb)DhsAKe>5AhrgzX|DY)Tj5*ZVqiSATOKvkB8%U zem3P`nkxO6jRY`<$bo$Mg~b?zf)PO_)dCQu0~A@VKvo*uv(y?CSE{(MLfR_~qGdpv z-!@W(PZCsE2C9^`(4FQ002#^^$@2iMs6}bMK;11)as(0s0jX=*XuVX=wZsM-FYg6; z1MnN;?|J?ScaLVz{SLpNr{(xbd;aNs)dgg z@h8JLUL%KA(X&%d9@j-A!vTsZ%Ag)#fPC#9!{M)qaXd2?ou6qnVr-SvDVHY-%toUo z&_(CzU?zrfg5l(t~^dq(Z01Cb;cWdImc6KiDcYABX$Nl^)Gqvo)5>tz^ z<8BS?IphS)45Ye%5NfBntSISCGzbtdN}$S-@*GSoOdLwEu_!cGK_aS1VhgXc;NxLq z;n9nORW;$_0BAIqa6r<;Sd5b*Wl#fASD#d(RKY6L-;kwKUY5^#nb8$I#YH}u7Dxk(2t+|uT+s&*)QsbAEkIvPy{*xqdIvn ztP_`Z`hN*{g3L%LI!Yum36_X-Yx?tvRg{9LN;L&MhcQIFUhtVlTs5U~KS(LlKEdyg zB{T}EL%N{1pBOhqNn+?t`n_5LP$>(-oWN!CrIH&}RZoN(Z~?xh13@weRXeiP!k%8D zmi)s@5M7#qi1u}KCd8yPwS!vdiVzQXG%*Csrj0-dLT&R=20%T`5nkv8MU)VD2dClT zkP0FoFPB5wA?`u+a>%6eO6oi@B#=nVC?k&`6smJf;EQ9T1*yL%nkB)iI9r~r!5~*5 zlp-)sE#)XI67^JsLLUnh49JS8mZ3r!H4sm(z1b6iQ}O^*Q|z5{1u7M?6+$&u=j9L; z)@E@;042tMRW1U4hr?<$rbCpqc#l+2>WnVNZI^$E;G%n=nRbYb@B!Dl2lg~s&NFVYe+ ztk}Aot}?Ein^Yw#w-Vv?&nT2kn4(jm_@n?T1tg0apju{(!PVKKRhHK!G9-kenw3k| z#8+ZfnT?94lc>+xxEfsN$AuY}Sd~CgnaLS>XZ6q^xwVIv*50sD_Zf2S^5~gTx1yZ6 zi}Qgd(GgoJB`kP-A<)pH6gdOsbo8`ROI2e)6ZrevQl9(o*-9|<0@i%AfzrOB%>Mv> z4-5b*!%hw5W;OC*5~zI?QR{WdvJg<(fxNm98@5tTL2&Gp8}ppoIcP*gvW>7IC}lz zsYL5PwIYyafCfCyyvD0$h7*}JK~flmdvVPv1W@^Ub!Y)L960HHImIZ|%fGT!(G^;h zhP*jwj@c$bsMR8cIUo+yA8wNHj`m)8`Da)4jTT&o*XzTEVIU|_=X|SB_tTlN7D|5~ zW63511&ywnZ!4zu=`oBrSH1LyaB5@hy$dyCF1s4P@>t0r)SfQgs@a4z9$}H6D(f%*( z0R;sPmqp6V>*+xns2rP>xUmHSogi6io|H>zma!ao>`FrKk>>J${@i1EnuUTPaRY!Y_JUkLS#ORIEMePHXE> z-2U`}KYe@TvjsV7m2RkE2h)pd*YO&$wJqgqA-B-N1quLpk;Qpf3f2kR#!Vjlr68a< zMIIe81KfJO63zpHU62#SMObFbm_T*nnf__(2oSgYW}i|ZrDi5G5J+nPfXv#P3uRVf z_mB9o1hBXlvTMVYl&M4xKDPX>u)zkMe?ENRk>7kh7C@EpCVR0CIwtpv_(d5AT)v?6>};z>a@S{tV&ESqPi62e^|9pQLA5d`#=aI zKpkmMrQnMZyig&y(T&JauaYci;R-Twe|zHvfHT^GakNfHz@Sr9@M4 znc;L9aj`+jz%*^AUFjQypoq%HRvGSBo7h`yCXHqRhQi$ih19HD_TEk+w zf`LWRTRNI+86g6IlH>(X3tXQzQYr#Kw5rrlr~8Nrs=uAcv?YaCG$;wxD1`$w00M|l zgr0Uhmn}pf71KWn2&bAQ1ErxV6n8!mOH+VDF;}VsKt(|mgso1w1JQ@NH9>1<5khlK z1Qk+M)~=)`nW#kJ6iOn3QPWxn zy$P_@Ac>|#xh!eRE+gv>U}j*+eDoS;_=z((EJrn#!G>g^vS~&pQcC!Lw<-@@w1Os8 z7*UOf5Wbo~PVI@NXRqQVP&q1u0B#)#K*rYP2|ig$(NiPDiZKB_kqDgSf>83yuUMVw zYzlOQYr(C+0#ph~vRzfW`orBC`DgvV^>mO#0uhOpfmh4;9GPMiihV`;)09<_7!oN? zviu@iaLm^+&HjwAMCDKw7SmFdB^yk69UMF?Or2= z{MjIh5`mKI_8R#q9#G@^T)8Ox-ifF7mIVx1-3S@&z!!3#TGk1hr*$9#96z9IsYkR% zo#($ zHQo*P4A*-OmIW3RDNL(QIaUa=Qe784JgLjt0&^4;rbx`5&l)VG8gv(pS%yssWp7)1 z1klsk2(yHzEk26;6*XwlWp=H;zrhKUEE~fjiYiv_-41X?0L&S{(ueJTydq{46+8z( zeKB{?54V3zXp=KfScR4lbOI-kg3V@5?y4vK+* z%peJ&fkV-&aF$OrV0b|mVCll#!t2Y@87I%C^5WHt23JbgC4Ri_Ruaq8>t;YpA1VkU zf?ZKxPg+Fp5J25d1S+SWw+Pu~e_)*d04Ia7Au_nigC}5=HQ+^{iy}y1g)b>k+`eIw z`2>o70N#V`oL_|s^Rc-VxyWBgODZAFP@0v=+5Z5Sf+<4uL9KH}dwGar)N;-kjN8fL zmQg>uj8*`DTlKo*;d*%MC(0u*OU=5T=C_~9!?)xaS6l9Az{H45Gbue`WG5i ztL7muTqz5#y3ze?E&6K|jgklOY*8+8^_!2+|0eH5=^>DNQ}98%~;E+s`yZ z?nFMi>x2;>SY3Y}+QFw?7xIK^I^=DAXxfno;G=75P+2p#03rPgb=F4lA0)3Khs-u;_27t z>qsI!oceFCEn=Bep&eT{Ut-WjAX3W6t{&-1vRl!C!I6(t^z#tP z1h^|kO+S*LT9AMQRSMpoy;xYm6#$@wc2B&cW-@0OQ3}*MVOaV;u@6x z83a;^f~62Y8hcpcS;T? zmyqZ|K3E@K^461noIRghO8khs6YnvK-sY7saPpe zRC9Jdy?H`fvZvU816b2|YohbZko;9FxdH2MDxbiDDN=gt@kXRAq=4 zmy(;_;8xMo`0l|LWSxHca&M#{O$b8Yo)^AKjT-|lfLT9*4Q1&@nrBhY(I~j=k-FL|qE~}viIRdKpuSygsQN!_pb|8vT?iEQ z>DLT|XrTjNm^Gzb!M!gohPi0R%%`V)w_#?bk!eAvz5dBVc#perd!DTpvSs-4UNzwq zpjD~J@f-l3ve7iD*GfaH;D*v}&^bTi-&JUJnVf12D;%wqHsb5oD(z zS5+XdqVrs#Da$?TP~^fcpksbWvbDsOM%Ah+|v9W%9K{66jP!` zM6Wl3DRFvJpZLMNNAd0EJuMA#n##4E?gpPP2k3{QATC!3(as z2PA?jLDl?$`*Bzsu3R~C)*6zjam$=YZ zhC%GmJ6k>}<@aHc1Xe&A_0v~`4X;1HvtG#&_G4p{>de&2snHxMdxsjMX=BO=tpN#R z#eSau09a%t!QfUP9LZ|3eJw*yP&h{c0U>!M7$LP7RtT(w4xBH{aD)i!EqWhm06wps zS3)cg9RPriLcBSz6P2k1R@r&|Y4ojH1Z8dt{z=e?GPl01&_=4QRc@L%=W2_68zWdE zvH^Q>eCdBENS^EY;M^J#YI3)o9>UatIdHkv>13{{1Xb5o`$GxP_vpmGR{YtQlEMm( zu6m-UL2m?BgCNi5l-2#=M7@tsrH)+2Vi1>q;?GL6q!CgCPP)3P^Qf2Q!>_tR`Xl~z zM~Bx{>&gg^$6ZnjbiP&e^@0Tabx4Y6mgh(! zd~TY3Xo!n`1ww^xeR)^Qs>2!FA@cIeTIfhOg@dO)K3p8$2!N%%-5cr$rJ&uThh{&= zTw#JUeN~f%N-(FLMU*vbz!T->63CAPNU9?gEuW>0xmh4m)hOxp>A4tWkMW~WD=m_U zrk+sha&1mT1V+D-qA?iz6kT*&~HysGNUrjj1iZc6#cS_eMS|B7@Qk`&BpbGwl$m%!dvbo{( zTMwpCZ%o8Dy%eooa!C)b)bw8aH@J$f~q7RzWeoJ$P$@oHR<3|)%;lb zCqg#xp`}f1Zkgw-3NjgVHB;|+BFlJ_O4gR6b*xDxn4UU)BW0H$nv~(HaS1{gK(f$} zL2T38N>D)-DnO(E00Z-Lh5juK{raw53P!3lMnUgIu|&CCqEs7DGU-nxdeZF#Q2ly+ zQ%E}Ui(Iu8Drg#jdZRK3M1@~2pV&R_Nz;Ow_16zbBGe{#N>-s&Pp(8#1qyt^`RIq1 zfhtI%0&M&r=}6JCMB$c1swKVQct@s2?l`gbtw^&|{PezySbcTZq*GC7wYMczz~_534Xrb@G7sCOe~&IL|AFp3tiJO0*mq;5Rkg-tl%Ydp!|=_ z5jN_d$mYJ{195w&4!vO_F;-jX%gsHgq9_FlxrSo36=Hsr$_SDHtMYZ^o>0uPn;>LW zP8n({I6`pSs%u3lb_k$aydYVK0c0uxLiQ>WnyJ;u3`ImtE=m#fqt(;y=m~Q-aD9Hl z_gH|8MCFms%7D~yTh^?RVf;!8DMY5Ch-*-^SR`fa+!ag{#1J3@g>=^@i7Lu{Xb89h z{<%U@M~Szrqy%I+)m)*afmgdL_^LE0bVNDv@`8UnxOc{Eq{^GF9En4+y9;LDXau~t zoVC13K(6Y*y5=P1}_ zBbiT8>f5()r7L*_RGX0KsEbha(5sTfPjvz{kv)Zv(L<#T+5`h9rS77xhPu?w+jWQn1WylXA=Q0Ju+nVEXVBdi|kM0|m*s4{H~IloUE9VuPJBf{y;Z=$JKP+E<6ulps_sHT(NN7J*sR z5`gGa(!S91_44~cN-I<>KRl?AgD4IMnA29LmQVzk1Z3$wkCQ<~DN=zw{`o-=P^dIz zTd(k(PH?liYN~n2qIg=0HIH>4nF8%6aB!O0g)v?w~JM3kzflr zJUT%^lqCs99ML#w`owR;~)&fAO;n3ue zMJISs*p>d&94JeAreX=0g(33iT2oYZMU4c);W$w1)4FF3L8FYuMLOhif-L1TSSS_N znFY-_I$e51qz%!V5LALlF3$8Y{6g^v$1zXN6RXqOVH??U&uUY%DFQA zGyAj(4-Cpvq+MX5Jo@mCA9l?rt5fAaeC?DAkTfL`2M#$5p^}zf5Gd=etpzJO%!Y~i zp>-Cbs-r~_z)^BtMJ~tj2ZXHD%&uGw^s7Lik*e6Z2bC(|r;?N~(0O;6>Y#~~6(kn$ zu|{#H3X-rIprbkba?#vb!Z}RLi~HLN9rKS+TBqQeY7Hf$6Yq6&#!dPuQ*Oi4oSwJn?Sk+4xg4< zK@}x^HP9aK8K+8g)*%*ycsg=UQCqhb>vJB`+CW&oeh%&k;Y8z?+ zVBxepp)nL1H!q_)rwBY%bY&JS+$^tE7Ib9+9Oa~?vr_bO08mKRr)x(z4Ag)>~FDf|)fXWD{Xj0yF_IO`Tt;!dZQIJ_^Xu02nK31lK zg3)Q^1Vwl^6@YQ}>8+$9#^J_&I;M$MNDf)pHHxjPW`1x*NEvzPoV=lgzoL6}=wc9> zq4XT2%8SN>y$1Z$G1u#Lhg!;omTx2(K+z?K@#aY9>eesx>MJj zQg!H+^=s9k@*ZPEJ$Y3~rW(Q5T~(e9IPvP;7$Ow?76a9w@^4%5TQ|}MWo>?_mi0{F zi9&pnuAA002FRo-5SgMfV94A z^++O)T6%kd?Dv5zooeVfvjvS=igD7PU;=TZ3N&wOGI2|xY@mxbT4%!U4KqH_E2vjR zT-VqnR_v&<*WFp%SIpf^1WJW{2<8CD9&kkkRT0*W#p%@`CSm=z(NuBZE;vP~D&;JS zH6z(+$Or+JhN=E61JMI#nh;=%HJX7gR513fhIU94(#F2|ePdOWzDm}0_2KIcLKeG< z--dly6bpTIi>y?eFc)OC9`!oKK4Q7wJ`Q4*RHYbj<4|h=Ae#U<1sukFD^_xqDpyfq zQ=qdyoK&K!^i6AY^{Un3ssVRoN*xnLDR5z^BP(la2m9q%D4frud%tbP@+7L301{r| z0RrB3st9DvSaJn8&IUr-@2314MhMai0Jnqo?uZ#^097W>yEIuQg-MVX04Ek0{hl zDr7D=`~9+DP2tPfYAl6^7J{4PvQx_bv;(Kiz^1>;Q~7Ur&`dH!r5PyXh3G@xls!pq zl@LJ|Dn|_}ew|tcom?{Ud)MsV`z*Z@25K8UJ>XeO{g*0qJfMpen&E{t;mXI+T7V>) z0GIO1*EqfDS5rkwqnb9pba)n0cnauUZd7M-a(E(#8f(^n#5c(qwX)scO)V6%@Ugau zz}G-1CU`f((Gj@hIC<#=P)QuQ6elyW*k)-2&n+#YT)|$@NA$)vs>-!5agV^o78jDA|V}VWUmsSWy-b$5om$c zITR!eo5~l`5(Fx$RE^q7GO;`sl%yhxLf6!=FPA4dhk`1HReC*7r2!|;h2o~by9Te( zZbv8p0*3Ao6f__ugL)_sMMT`d-o9U7#7Z3f9*=g?fKm&-muEFjBRWa(XXX%TZ9x=*Yt2)xa4G9g<}?Io zFJoumMrVQ>re*;{uuB}W`&1Mng{AWTGgue$zSd3_H;AKY_GaneZbIOCdgqlUF+j^g{9nxF&GdpS%*C#Xe*^5?;i)d1 z4qAOjOQGErAA1fx6%cqug_8Pu1S!r4p-VP`y(wQ<7Hw(v{CZj`M@krvGNsn4>2L|9 z$=gaNpii(c>>|vWl8h(?2Wy zBdW!b}`QFx<|N3tBCix5u)_R^l3>L7D(FE3W-8!WyAJPbv5WV{7Eg(&LuAgLNf-3gwhgm?MehJml zXciY;b;1ZDd!XGLf;&@{6*xeH@yFJgD`g4}y6Z?HI{qL}NRm^mfvv5gWth1-pD!SK z^dha$pH95p_%eVFy3>t>AO%pIv$a<`QE5v>xmb*x>UdERQDBQk>#yP)KceOJ$-Ltw zGy%)14o6GpqY(`qeHBpOb?j=Q%@Y|S(L?b7YR{tiyf#ZJEo_vfdRWOOXI)72<}=7T z!xj&l*0($=65=5hH&yGQcxcPkoNaHsN8nve4sZOGsE4MxeTb@XvQ`MFB6`}F=Xc9k z5CzKKo=L$A#(9N3C;{9On$bcmHyjV4(45+}dQu3j0BspLeK^__NXgqjy6N|Ihspgo z@v!v>7>I7VZnA?&NPN>a`?1oCST}js)iui`Y9+{>I_sP`Mq53Zt)U4=rIr$Pqg&}l zS|}t{4JhH)MB|dgKSA%xjgy{cni3AQHAf3iYC#k0ue>q{M;ee-JoB}65Dtb=+oC+u z)NoJI2#~N;6JCQmqN7X4SY@(2IsxIJp^G`8Wa{2akaF*c1T?y>sTnrWpCr?n3qtw5`=Q=gd}!G%(t_{d-|WD`&%e$ zE=kB{4-Zy#$_i2{6q^QRT?IYZ^Du#;`d8Pio+!)>7NKdGp)c$QI7{ciSTL~kS_gtD zTi2GJUz)(Dtw&UEXtf+)M5TqaEI{TVGI8`Dn~D~s5li&lG&MZ*iV3GG-EHR7ONat_ z0PMCzT^Um&q!CJ#>i+v1$P+N(3pF+__#zVS)m2BOz4=nsP=EMVg$v zvadJOB!myws{JgjeN0{&XIHsHnlh`Qq7t`sh76#T$fvq#uzwAiyZBzojo`h)R}lx5leZ8 zDB9%*hbJ~>BFX6C3Mm66>hg&@$Pm(sLQs@~;d&=v`M)LHh+>DwCvtK@)GRnM?1uBVUuP;w0;9~qXQ|Px( zKp0n&iWxm~$(atc&Iq$osGjYc`PeRS!uc|zb@o`%Ww$j9*G_s;*AzW3pXnH{lbg2sU>9vY8C_(cx1rOJhB0Nf{g0xg( zR-P7GXhOLWxZiq`R8_v=046)cASxbJyCc;@ z=#^C75JVxa^@;-ATV6Cw;R#fsN-NPAz{X>6SWyuioSkSZ!YJ;vs7fw=r&`w|q!e&( zvRk3iG$2)|u8HSDEey!@eN->s*VY<fz|;Ugj?3TAUf z8L33qM}u_e7dj0;6@~~;_fv_nx{xo)f7SPrNDhdX&yNLQKS4H`7vb zxM89t31vZRe=yA*66;Q@lo0_65Ude2w_j+PXhK)l_=KoPLJhS?@Td0a#)wP+$^lJC zU!@CfII0z^f z8u@+tsO3u<`YkV)lrRYniiDuh>OwCV8={?XOtp$sL=K1FpAd8^>8vK6DuXJy3 zW|=D^iewhria{)>M~J-^^+9I0vPBOSKwECBR1{JXs5GWR3sKoh17v1L9&Q8_Q=_{$ zwvFw_ostUR{{SPZ#IP}5>For@jK~}dWkKXsct9CtA%OG#c(hE$R^3r&(uUP_=F3vJlWRcH zpz?9}4#?hFmR%FeL(a8{B}(x7b@YKyhtXyBwqJM*z?DSPu9EOpN)mPV&!G+;>TvpH z(_UJ_i4@Fa>WG%>XgER9g0dNkz z{{R}T1qyhyU#_+Gh7rK$&LkxPbOXxz{j`LnR!7q-sw#711uBH8LTkw~hBfF~B%&$g zLen*5&fx{%27*v(=iN?sZ8;G%lsY2u%|iy^%`Xx_Vgj0mMRiivYpU7el^GCe>7(^% zm6(Z0p{YT{WR0dq2$))$AUUVG=~@~BhshhRge5>pD^e3H4PCgjNR>AbXT0lVc1|?s z1XM!G>~zi3Jm4yU2Q6x1Olj0ShdF*7m742p(zs0GI1+UzDD+V5K0IDpyy$l z`Q-#m%z~6f3q{uOjV~!2>%;7$Aqa;E7b_)BnewJlq!e+>(9!(poapa5fAp`(n3x?XWN%Iie9?q3#9r%6rvKB1B)=} zAPvCNPFz-jFG^c=)xNZa1WVqEoqFCCd3kbPVM1_7Y0uN7wztVIURBFX{m6i*0U95q zR4w3{emYmlXd;0ofRGtJfoVj`&Ip0kmrYorRrx?YI#<;-EYK;a7ddXP6>p*{(gpW4 z<>{0WF1n{$LhFYHF-k1*Txd)OF??{*wqFSJOwvNJ#5)INoK;cs4u4?|EK@)V*eNqqS(O{y`+dgB; zu)6i()^>s?PO>^E9M{?#U5}MfKY#;7!PnR6(!mpE>!i2R!t>+lOrb#pO<67Y_7K|T zSOCXf3Yyr#a-jxV{XWW&#HWRppUNH-1QmiLKOIQgXwj4e8#PQ3J@q*~zx0ymKb z#z<)p?bYCbxCI?>>#YbtKhoJ)FE2>0n%C2%f+Yk|O07@Y{P^*#PQ7*Q&Ip@j*Q_u? zfN9g!wMOOyL^^f$`WPZ>&h)ri@^fFT2JD?YJfE81G3=+BBNx{?I_rB|%s~=Tx{kk? zOP?;Sz(q3;$W3Wg0Neq}5@sw9S@n`Z5?k84)r#n#BGSraj(G*P56a43o@q+VRd8s8`)R$CoKYpVKitT~V{9Ccxqg2@Pp zi39);n$V*FH5`xqDGFkx2usYa$jUq`OxmzSy7NxH@IXdjgHbc6uU?!VHZ@%zUo?JD zMLBinZn6--C0nl`kkio|Ix`HBlSV@TumS!0Z>$jlqR$MFj`I`4%a)nK0Z9u@8MVvK z0aLp|7`Z9}Q5kLxbg>nHp~3(dlBvf(ZblTU;ZTbp%AVec(1Ds}GOrd&kxi zg)Tx0B}1^OG)N*-DY#vUW;ByN|Bj!4)Zt6Y6UZX1cnW9NOGwo!p~Y1>6(FchNj>E z3c9;3)w83uV2W(vjTCwDr}t5LK@>@tu(Q;IaN#<5ggG3T9D%4(ZS`0pq-E7P*RRA! zHYwzKZ^SZ5O%MdH61D2|S-NWJkYZBaO{pS%4h%G*HhM!HAL1uAH>a{@e}WbtTr~26 zC(z*w^VWTEhYQo8uhUK>LoU5_&sY_@9!sr{2ZX7meAN*X%@I_T$rDE5#km0bjamq) zQ-_s&zWi1apGvZS7PE3NlwUpxrfl_10xC7GoqfYDiv&;ePOA#JWPRw3=5pacs{p2e z{{W8deJJ5WLSHA(?1-O=K@;$@K623$RKK=x5OPcL4xab?!e4auKHl7+`aKO3Qls!4 zZ3Igv{znA+H8MKk?gJtSZ0z^QQ_r4|Aw!csR%Z(Qa)O(G33b<0tQ_>`0ZB*GP2MmIKQq;=Ez08Z8H0JcdxfW#{Ey2QCmqkUQ|#?F^_O z=o5xrRvMI6)i3`5QfB=Y2lld}o&l-v&ekH7L?(rJwYmC2in(FKFJaPztWRBZAc^Id z@&#kuESi5&{C-r(Sbwx`?=(~K@(n@nNqsm;u%$Om46RzRD`{CtP8DMlR*(r zZo0}8JGV&LF-wp$h3y1HFm*(s=smeKDnSHQpFbu_pDV3kw=Afr%}exQWI5C~LxaUN z9j!&Gy{cDFI3k~```fNU1?#S>oHVUy=ECF}{o(Gdn2rdU^Ji9GL{bYH^`9skudO&V zJ<(j1_|uONEX2T^3yLSbxug*-EGy^1UAep*ysS8BpPIA{mFT|tb(9C}y;D?VacCkk zPcB34$C-eW$IB>twEh%(d7Fq6O+J^Sinz-tB0!2S{X-$uAOs2JYiB!sG2`pD?8M4eDIj|=Gw!rV}iR(t5r^@o*? zX?9BG%sdEH8CUWJSt-R(JP{?%-5*4?5(WHm`|%%0dH8g@7QT+kevqyB`ZphFBBpO& z;k^%(BMDGhy8bB+2$$ooxxlK~bN(U1{w>#3SR!NuWK6P4BOV$gB=vh`{@1&UGFlJ& ztl`z#+38vy1QP*eucs$VxHc6+M8LavMbXhm)W0euA=1>*`DzvoM+f^`(R`p$*GX=K z5ik!){Ap+tttj__Mp<8nB))L>i14TI!r4%Z4gv_0AP$9@EtLSz+Oz;A0jpYaubOnLnSI9Y4Gd(jVt{?yR_p!5ffQyJmDK@o ztNp-o=24y@YPD4R9V(S&3j{(iKjIXSj_WA3ZeKK7vDYuYR)9=`q%|`f@&)RIxex+F z=xh&1K)G=uGvktd*ypZrJ#?qPNx(q8b=R0so?h8MUV$KqDPSzQ2U@bCD9({Dl{5Oi z?i``z4OW7Pd9!&Jv%CtNOE@7NE}#Z+U!fB~QFAI3l(0(GS-1#g85Vb>` zKTM0XD<~_aJeI#j@*!_-6Wy%t#WI$DNeNmf^6zRdBX;wFb>!Y-k{q)|SR$w!m%rK$ zvg@G@I`!+;2$x-bp(&^2KUq>7GD`x5lo67ma%%nHidA}Eo9$?8*Iil!Cv?pE(P#}E za2%*1qEhH6I3`@OIT$0yA3!soxca0Wh4f!R!_p~yL{~sEMGIuMY0d%(v&&P#!&6bJ zkcw0lQ+0H!APMBar_i9ekv`5?x$=Kx5(s~ruDq5xX#-0%Y)>p>rjr!1wZjqg@h$TswBKDe+hh|oP?#G_>h_+ZMtWp;`9VDqKX>RG)#YtYw-Kw z-*|o`cZ*~0{{VOPOk7{x#gbjGYL;1!7SDu86U{avw8*7cf@lmeG3cU$iCtT?51OJ_ zFoO`scK(?vQHT1KQ$+yPQ7kDJIY_rzVio*4_;uU=022Gbvi1*PY?zbFi;XOsR@Nma z4+990F&2Ax2s@@=ND~DC$GPu=-v;}+@SCvkwjR&G!^iD;@Z>vxX&DFZ&xk-INjfMN za*~z#l_PJ29|(KD@Rz&WKW27z&xJQ@VqxK)(d`i=rxtu!hl){%)9%Vx2}&D^2=564 zQs_>85J^KR-2gdKSg|5J4~qE3du>%=VV&FxPa}v!2|8Ja@V(E4_)QxvBO4S7vCC8- zH82MEYqe>k@#K>2JrU34@AbAn$AGxKmc1U1m55@8*oejg203!=)irLJ82HTM%8-1 z1b|9r&4~c!4M9Xizn1JU`^ZS$K{5*H6_jP+ROW3-;bYKpv)fG6050+*@D3TcpKu2# zEQYS0W$2v>M9(=YWdO}dLS0nkgqO`+ghVFs4+&F16-#C60ap+6M~%N5zB_hT!=BH@ z?C#9Q!rObvv`ID=78H|-hRP-f#88td1e6n0%KOi~wX@*YwPFlBDtD?UMgo%44g~1X zPZBU=V^M}TjZ6Uj&Os~D(6VAdptY%X*pwy@! z(?+2BlAt^zC|4>`K3&#(Dw@}eEjIBg62-|+aOy^x(l-(?-gR35QPP2t{PJk&Zy)h+ zP2bLMXv=mvEh=aRNG8p|#}Zf&T*#Y3;tV-ANg-SOzEhF{>Q(fi1VxEtLb8oinTvi` zM#?wc3OLN64N*{9g1{|9(A_o+;1y=%0ns_-64bi~8P)R=BnG$8UhQQCgwoUdouQbp zYFV<#7V5G|X5C_$0!aWlO;);;qe7L*L=wp=%`rp;6;u*|9$}%OA#|Q;aMo$alL!SS zX^f}>lIh`~X1P+)+g|Z^tO=&sJ2>uzGS7)9X}5p{kf>pWNCeBu+tLRW1t(x)vgY%N?@E+VQrm zS+ViwGvX4Y1_(^4RV}@tKP#H>r^H$Jj`Z`+R$^UBaTg#WIv{8_h?-f5B)Sx88C2O3 zvTWmKoF)?$Ly>l23Uiv`M0hOqMs848jTX z`lzI2(kC_+HikT#H(QWU5Jbg6GlOMy4z(M@lNXQLcO$ud=Jjt=*W_Gg+=EXQ3p7?t%THV9C>uzS%Zi zpJSu+@MsjX15h8kCwR&utErNCmQXIL10kSY3mTyoFy@q!N*&;@f3@AHO`&T}v?5ditOo8%pA)@`33Ek6J(!86us>CJw%h$qC3f>nM(mZVVi zWHe94V~bSAY7EmAuuPHE>&;&46MC-zT5f*|ilBrDH0!LZq&SpB5JDvfUQk5($}$JW zynVX*!ZQ<~${eXMTAKJ?ja=DvWV}|Q0OstiNP33}RuBLMIdp;g5v+jLgEqP+ouBO) zfWl&GQK)UAI=+}A)Lo#&POzZL6-z4Wg(|&yG%016HJNTt8-^8K z0-#+NF?QFkvH&z+AgI-|bdhkyn7A-sCSXV|X3gc2sO!_0e!3?MuAl1&pLBNAw+d>| zDlG*V=jtew=MY)=1_X@w_sv3Zz%x^!z}F?#Dq;WtA{I)N`ny!6RDgn{00S^^j0NcW z5|j)I)r>>?4LE7XuByz`yGcJO&BM~@`8kRx z2nk&RaP;=%0sGOdso`F%+Wke2hy~^fsEm}oZp1)PsH!52jYr;`tqcT22p^Tx z&aV<`NC2QEELMW~WOGG^@0l&0f8%Z3InJfdlf$`~UAv$5x0VwKlM7NhL!hqzA24ii1Srk@}$|vPvb80W7FMOr-%E zfg_A0AWJBy1(^WI0?+iymo8KR7}RM`mn+9V6B4XKNg;u-(i<$Yh;x$82IDrKa{XuV z2n3Wnywn>uv?!Xz1Iw-)KQI7_oOIKG<-|h(E4NnWL#FA9|R z>7$``muh~%{hSGbonB#0;x36rrfTS>I9;LIrx;Bp&Pb7gAfYILqFL2RD?o^2p!lX0 znZn9T5}^&~$$9`TySQ61Gf@OV&n^$;lsMs!60tPWUsHcxxA)7Cam@40J}kt}NwOw^ zsiaNBz=Znds+0s;*+z1y08q7F+)h?essS1RH$gLI#E;~HRj3g-ZVWI7PF#e~+eNG@ zB%kLnAIj2svm#;zLamWYu%gzKHBBN@<|b8?DMI_+mqi@1i(@Mih;?5}nnru4cK-k{ z39p`sPGSOpUUhF#^w3`FUcimrdgw>5(6gz6CS-3Bl^OW6plCp$8dJ|KmcL5Hkjpg< zfHa~DX1p2@0*H9faK9#X6o@!_F&ux7vW@WUcw{$Cp7{g7kEE*oy}4zhLO|)~!`9Ti zRMNTya)BKBCzWi~i4qBml=V|uPzAAF1W?nubMyz+vV_ism9$vnHLLMu2O54m6W zMd0D$W8$1VF}zq50RZ5I1B86ov|i1zV(n9Z$_7~%#WA{9HB^+okPvgY_Nl%vO z1$|Ln@6^Dc1FnC3uBxJdsZW*78Q#B0=hanJ)a1D*r%e{%q*5STsgL0sqjZ~u04D{@ z+l#^^lBTDwvv-OpM8p#2)k*+e7~~JqB59C?a6thA6L4sy^Qy5Z&C>0joyDdJR4iaI z;hiy)4>q{!hZ=R(qeBu+WCdnaRNYF|S*|qm&egpIu083kRZy6fs*4sC;Z6}@LFasi zMl$Hx>Q!Vgn1Jqm?ySrO_l*@3q3;xVR1Xym1xpogM1Y}%_gE_c5=tK}gIpx+zkK!BB01caF?R>@JbYO|YL;#~Ebn>Df zv=RlVq0JPPOFmYm;@m2LhU|C~WCKRZ1l{tyb+(PeqL4IahL-Gu{1{7kZh#Ji5L;LC z3G_$|s7LoNFI{4Tf~rvH2?}Yt3pGcbU?t^B1wv>8&{4t~(5SRGNOCL=a^#11%t#$M zqf2uhUGvjLn3TA<0kd4lWaR-HtyQ7_03JnEUy@oZj}mU@O05*=0BUBek<$A^v@o_z zG9{W>v8Dwj1rVAxOVEj<<{(^=0_;yrr_9(`cW4h$85W7){{UYnT&<^S!@$Cu6B2nq zlzgfICxc#`6IlFa*|%fulcdv4xT+)*5E8Pgr893R<6~oDK9n}@o6wuaCwP96tYF~wd66I==oRl-zT-jp{TmuU` zG~d~>eHH0HE155uJR8;sF`kNLkQCs$g$PjDGDAS8IspkAr4`Dna8)*ISSpwV$bf+_ z{oriBeEnjK$y(Pslxjb=v03A%fE&YHEY z?e7@@-iG?==YMTf5Lk(44$K+@oQb?>+>?f-RbMjx@jM6Gp4=g?=hIewEl`nUV8pP1 z8Q`_fw}2!#vLO&n3UXL*FVuM$DkqiKl2<-ndC~Y^&|mC6oSqFuZ%T9eLkdbI&^><+=pEzqMVhAdw%cJiux>x(D;)y`G{_WISYSBqExC4S90@BIuMDh7*!40YFq!#L2d4~a%59cG&TTB(iNgH-S)?Pi`lLgq{*B=}xbn4RNd2n#69 z?99eGj?1^tf_G+_aOPwSLeE)<$-!K&(FFPO1K-(KIMP|=QGGhdonq#IV6cG4Hp;;6 z=BE!DygIk3sNLG*mwZHJ`#E-rais?gs0tF`n;}x%=qezbA_4yZbY)6WX;0=qDYNZ3 zm=lSF;REidLn%yy6y%DlL;5@orweG7Q-(mD9z`3<0v;d%=!hOMRYvHWeIcCj(>^ZC zw}H0NiU6wdybEQRCe54qW_2YRWCiXKlJA%q>1bwUAwR@i1w1MT2n(Az;MpDuGS;sr z!^7oY&O-d6t7z0LGs@QD`Ubex93)YlRZ%#G`D@1aRE*}Dgp#2g+1QHFjTMHGNJ(u% zt5B1#3m$0@Stu5&Q(wqUIKXpma;2X>rL05s%VG0pjdl&{0 z2Fw>kI&e{`jOHW|L0#ZU0F-+=T@)_|SZcT4WF<$INS5UZKny?xXHjeP`NdhB=lemp zYYV$@8a0ZONa0J4j(0(hmd(uRnedb03Azzg$ulTFHuScX6sGR#Jb0b)>);;8-#v?H z?)-(uQ3$=%EhJ)69HER*A6Vc|+78)UM(iA12zU4oLN6&uEH zS{r7=w)Sq>w03uB?DOoqZp%E_Som17O(ej|W|gHNC}CF@CO(Vd-Y0?L7(%KD7@z@F z5a5mwWXLeSb+`C-(c$=}iiY+PFNcY0O(cdDWcK3^Xi`Ze%Ao@ifFKBRW)JUpYJ|%) ztOyFMRca}ADypv;N>We>QWZc6MX^#j-tQD=LRHlR00p$pOgMJu%P43UdKJ4s0z}H@y2U)q%C+Z9UlAG3A%EyEbe|jvTT~Qfyfy zRPa31Kow4YGvaTCu>3;`t+QpLb84cJT95$50id)RoB3YT;jf7+@a#%a!NsE+4vbtnsj7@XDyFJs=^`XUr;$H05XQdTbmIbm0=AqXZt7~I zNBc3(@lL#{ogYN!UPh}bkU?o^RH)AW>k>`8MoqAt1Y3%-Z&ZH)SlLYBDH`oCkH|*>T8mKT zn9)UDXx#(m2^E4M0D(>0QJ^$kdBPx)K|9C|hml0m#XRDrM=A)j(pOQz9Vz7m&J-fp z-I)3>1~5dBAUuXaT$-kYT^*njlCF-00~BGEpaxXkAr15?T*Gvb=0Pa}=sdq4OF`Rf+$_q1q)gH z+*Q1tP>>U*?5EY~LP#!|G+7McQN?;bWoTklyr@6vqE!evC@WtmB9d2lSe&hD=$2y% zD5j{bMj2|kMQ-ls2u4)ma%!ps7N``J0L$TEtUwhtxZpitibw?=YfQpDzvz?x?$2yETddZMQz1X-gcsSHeogNu55CqRf`6;c5pmo(^R z-+D5U%BMBI(LL3OqoV^@WV)RC(gYwQfTZ&!POFwyiUfde3BG>tM4i2EN>a#E?*a_^_oJsKFb+0Vsv?K} z3N#TmXQl23*FY!~LNgN7K#hJv-lF+HiS-u<{@z!Bs%4g7Wx%>;Xd+*Wzu2W14<&&^ zeL(2?LqTy@1US$q9%}+vwyK_-DNjfuS#Z^b8ogQ@Hypx#3AK?SB717NASyEHA*U7K z`g$&DyI3MYy!t@hQ6T;oT<@)FD2$Yspc*$8>dQzsQ4d;!N>aI&NFquH8YcoS+>_3N z1$TP&P#=#6NH>0-ypunovZm{-p3p=VrcQ_J?`5VzltGf@+zE#4;sGTTlF#at8D@tOWQ*5pn4qr%ORZT9w*6s6Y*V{JF#uswEaeat^3!dLk$iP;QVnYeY0_^Y*zA z03kp^wXa-15XR`DJN1_iI>Ias0J3>1A>~%Ch)Uq1o0V&#a1=@oL=iA$C4fK`Su`GQ z4u%PYrEHZTXYT<7j|oKe{Cnss!BSZhuAcBkGZ5h%Qzsoa4pI{iMD)vR0yJqwL&IHM3rT$3ubBWM^;Fd3z&WtRxDM+`NC5?*^iktWMKY9 z7Udi@2uF#Mh-fsiD9*;B2$`BvLZK_5QTMeJJHf4wTzcaY0W4gCWyva(3|@wnvPFdi zQ9#R+i)nMM$f%Z-D;0aFbWhKuO3D@ZXOQLSq2Y>5H(ucjt6J7YBs$R|M8KJhpsEme zb3s}fdfI{ro0WH5y6>ex&2PnwpCJdPa{?}b>UL8dMLgdU9 z5lQmSil_s@5||+<;CgZPp?@d?iHQYjl++#`+-L;(Wgwwf&z*Ve7F35xT@uZ!I^-w} z5kNyym#5HD5~)Bkqw>#MQWB!76!qb#4wtJ40)!wUuqkD-jD;JBtPx)DnqLwP*P8N> zD&*gvx=@%EHV7A0dVtg%vq;PW_wf)lr8B7MOlTP>!P7>f03`@su8>6UK-4w6uqr8) zZxsA}I_pys3UG5*uLN>#i9}_Io5Tj_6I?CPl|WBxID#rrDk>DU0neS8T%-r)l?n%7 zkH<`*0#Siv1kA`;m5Bk}6Vyb4SpbzmB>c&%p>n_~AMMTvv_~g2#Fh#eFrwXvV!8UmK)?-1KKZSg zvw+M3x5`<=@ZhwzP(>w)N+8Q5_FZ90GMNfwt&*qOOJ5(~WCMBY3k4 za|vY8*@Rh{DmYTqfk7L^K&L<`w@m~}RozMuQGR5jKS=P=!AEoqrm9J|(wak}0u?Wy zza0mhOvI7$m-$F`ELN!91Xv;zKJ3;d6Y5}5C>pX*Ei0uptUz{J1{vpTdeQ%oa`u9E_Jj>7 z)#6wKylUueT4(rMz)4w@C}i?`WXQsUL8Rmro6C0)Ad zItCf5g{LvX%aRTd5cUsDnyB92NGVg-P1ENMN1}f|p>(7hw#<;7XR2^VfDXTfv#LQ8 z1Yhf~G&j9-VMQo2MdSubF8P~5yOq(31D1MILkoB5LV^gN zT>k)%SVX}D5gmIZO8Na27WDMEv^UG|^`kGF(f|ovABrbDxFJ%IL@2ZH={gYCuDTGH z!W5jcnx1KAP^2U`C_lS1G4xgg>V+VRiIji4&Qzl5N6n%auDVLVj7ky$KC47v-_0R? z?Z@3+8!9XjHKDei`~$DF3aSGUr(U0N3BoT08PbeA*|lfZpLil_FVjH1ed27_q8gz5 zaQ1*QH;~Gzw8_iC6)5M|(IAAATp#B_qYZrETlLK}y{kwfI?Jw}5>XjFmY#zAkpwj! z{dxLuiTj{bMgWD%mgAHWP+Y!=%ky@lu^FqXb#@*^*D*m18(&)KXDOAOkpx;Iar))$ z3KsFObm35WX_6usTkT~v&X23m0MJC;+lNc`f&Ty>#+rG;-sfIGdV1&<1^zua)suxF zrHz?4Z>JE|^``*Pb=O|05++?KUq4~_NNUSYepaFM zuU=na3+|lq8P>`n0zfDgLQt@NV(1gh1%fL;ida}OoY3jPEeHZ_^v(Ex5URjgI#&8= z4qySN)P(1LY+4AHU34LjUXzq1PHU?G`Ek%KOTtyL8n>Tb&_zfO9J#V*^nd}TY@U2{ zsnQT8h`K!#<@wetFTMQ2K@gr?pRB^AX%qa?DSsLLfJ~e--T>$+SNdhaZ{-A1P*AS4 zie2Nn3Ik*u)0$gEb`+DETTYSAmWn`2%I6}0>%}div=L0Ye8F-ppPpIXkejdLrq(D* z0-z|Unj@8|TDs5(p}dBGvISHc@eoBj)-E!)rLRMhGQwk+xJ<*MC6>HQGAh)n4-v?m z*jY}HfW7L8S|+D1D2xdNO@b8Aj$MB$VOZLYLtn~X0w~rAR5aC`lW$m_mI$e=Jl~Ro zo{EmC6W3l{Bs4h}>x?eFzVJjt=cl*gtpMuX3w@RhMH`7@cyzyAF48 z2bfUI3sXwIUa->U{)MY*6IA5_aY1^~g8-hc1%ZMoqEO|*{r>9ysm?;P$ySCBm^g2WZ8oRN2Mrw=aGYw_1Dul z8?L>4vxns0Rj?L5MUI3*@+0Vh_#*MNPQ7u8Pjc5iIC>svSc*5Uh=_6=j1fZH(}IA0 znbMGNc~v+otvM9*NTL(?er$?Tnnd;X@`5Hh>x2*`8-zXG4t;3cAc|M67UK@@uiLY6HVHN20Op)2yAXR#;z~X$h%$h)>%DQ!;!4jvXFJDtk=%m4^r>)!uAthEO2DJ5@XwSH zJ~f43t+e<4VJKtQ8zxInHGoVy`dct5MuH*NPqN!q%(sx7T9oBWE8A898JJwv-oJjH z1=ELCOa0migvz<{_4Zg5GV07MS_U~7fG6!M^GArjWtP{dI8!N*pSpBQM*a z+(Zf2$xZ{hgnIYUmCpK9>5KV<{Y_<||>b*EZGf&J=#JO5p`T4`$N-4=M5&h9=3ywm|MxoBWP(&vWKVwVki3i)SXexh! z*HnQ%+~|rryb&IrzlwE`qpSOQhY)~9r(JP}yI((R`f@}92$&&5Ck(#7&WHo&z*!Tf zdaWUK`0Lr=vfKE#I3j*jM0Qj3ep#vmAxqSuxCm(N>kF+%x7*ejr3!){DgnobmEefc zk3LnPZ^+3jb(antZz}+OFXo?y$-RO?;_X10@a2|ylXwdrsB{H>mVzO4%`9ov95XKMzkINzF>U`;&e!Yb{^m7m#gcJx>S@QKyI0VL3W+_o@?A*&_@I>65e7dKkSVW?3 zs_|!M>nKNfpezmkha{qL$`qv)mC~p_pr}(ogPIXc-X(fa5t$ZWrIZ+Q%A<6J8Rg`a zD0Ou#3_avyC_)v1tw=hHA!0z`Ak8y|36dsb>E={H74D7Ex)?Gz(OufY`NS-{z<`Cx zQmRoAU7T_>RS{CDth8`TIikDq3J@{0Gcp1ZY@n)=Jl>0%2qKZ00STKfKq79sX3T71 zlPe&6)rTUWh&5)+UqdLUA!2(u1>mzTUE)a$QEw-sb? z2@hIo-qwlUS-w(P!iP4<`4q4ff+^`6?aRsU2p5$-(;^YjD~#;OV*dcSfd~;u1nZCp zEIlSjfOuS)T>uuV3ZZjEVvt0}XvLK9WI5!9ib++9Rko}d3kI*2ZUvIr5CK5;6|(ti zGCe8FPg`)T5f7K~%gc_C)G|NN+uuOnovLZpcU8!%k^7dDPDKjAo2pg{I zfh)r{q2M8sLmCA@NM>a&uca9vOQ%ow^@i_4h%BIF4!jO|Ar!8Lsrmf=A;5{~nQ;kj zvYWfkYl6S!$PGP>wxdi4cRrPz7J)<$uCLCBYO&Ek#S* zA6AM`0SJI1J?flWTExso?GaG6Ys1e-C_ho|rcenTd3wbwH354nQ8*(a*t(dRRfr#I zXRdyhizv)d=o+I$*0zF|^!zDetR2aAMS4-n4>JuVC_zJ_h5Xgah1L@2Y7nK!7F4pL za}aK-ugoo-J@n4dMPMN%R@4E$y=e&(L7zH)c@~5yLhwi8i^yqRVYneEZCtLo@fNy* zB4Nl}^x9^4LX}4FV2G7LUru+10Z_l%z$YfUYGEO1Kv9>gn;smNkVP&?DO5QsYG~hh zM4>blY`%$6m14*uAJA=6V-Hzmb{B+qyVVhZ?9VA01gqVrzYf?K^20M zEg1X5N-LU%r|wTeVZ>oNGz>zitJE&r<&RaMKY9J zm!w`969hmc9$e~#@Sz?spaKm8f8$BML`=Yc|h4# zy24F8dR_!+M1d)j>Cyx31XRQEWBL5pLGIcoS;8XUZ!R4yB;)7r_$6-yRI9B$8>`eT zCF`!O2Aylwpc0}xFViftKm{O(SRh36POS_b7T5IX!4Th<`hB6?3L;zRlqBEkkv`B@ zll?xhMNFQHR4b*BFSX&YvISz4B9vl^Z$U~#r%ly-o-2iJh>3fTL}65NM2$`B?)55k z8R=Pz{4lnmH3>mb_b7!dsZM<8=8Cm~DTn3EbLpsZfff2&>ql5)BIA?jtgpqxK@pt+ zOQKcMxmx-p1wMg%maI6gR%bJ*p$v1;EPSn$B|jN)X(Ag5e7pCQc<2t2FSU2=wj)wwX^ag{4bWL%*HDe`jK@c~s5 z2&HM$-tPwrb!x*B)VdB&^wz`H5)b3c&55hfK@y4}1}LB^cTNs{~R? zs6|Ch5kjxHzXpjVXi4E?e^_pmKuZh$Th$T-AyLuFLD* zX;=cK7f(w)c~scKM6&R32h*Z6f+|d%l+iVRx6%+w5`%}QO%jWp61*wbn1Bl}GX8DX zu@!aC&)3oqZn$T7Q21q_>8uO-K@z83QVM-q@Yk*sg#=5c<*4@Jg02WU`g=hTx2pAc zAX;5*pOeB{eHVvcW+I~s66N@(AbA)>hV(Y47$Rso(G%&%SV;8e^cMs8fKrL0nrEFW zb`aEmBg>Xw%n<-5^1l43^n-^~kT|3;8&`GlP1_gDWk?Rg*X(PxtzL^oIV= z*9bR)mPc`sa5|;5gsJv_vG%grh@23*%9%EOBo(n@iaOv3;BqiTY0`DgHGp+x>)r)J zTc&8#xYr^TphXM{8nqWSrlVMY9r>bMN0yE*`HY-i2kAX&r>mA$e~y%S7+gBfDiW#X zp%o!Qaxa_H^X6|0(wrO1hYX-wXtn9Ry_1^CE~(;CLM_CzCE$qFl@R6pSB{YUt?ZwH z!&Xb_>z$K@7eNdV_tZX&l|F2RgcS5{{{RUhXK$jiqSZ<(v<@GF@VWQXE2`e|1^G5y z3-AzcX+jrA#yR2b<6V!I@IUT zycy}zb(9f4y8Ob1mg}oPjnlooAc*VPzWH%zIy9pC+b9$9ty4U|Fd}_2;pF2)&Ipgi z6HEK*gyjOiUrK!}RpFq|H$Gh&x}rQJOupWg;X=l+M8Tsyo6B8S(6l3-XRS!q1T;t~ zr&>_^P{9#vYti-}fGt3!m&s}TaY!_DZnRvq4+}1?V2Q1LzaGK?=--je7dB`g?E(?j zW9TU%GmFh!m%;tk0Ewpou}(T?lBj_oHy@SQE^8f}MX5MB9>Z zd+A~3!y%LT_ff#0`a=3>-CC8sARN)DL#G_QvLbEuxAHh4)S?&|WNCEe>Fml_0-nD8 zAmFefR;)!muhpQ4(JISy^)yN{Enu&b-4mPI%=H&Z>0X=4ur)bxaGf_3NGR{V{UJW9 zR}XtwXjBEFC(q!gi>uC%YvF22x1>sTUCMGNFTa;-hwfue7@ zO+3Ent5XC^F1jn#AX{_l+_H*B2cVvso8LH?B5Rxa4^J))k`1nzr?B!rbpqN5nrM3Z zdDF>tUb^7|z_3Io&~@v^&^K9itN{J`FxO7H^5XDBpo4qYI@*`wa;iYL^;@sMRe~a& zb;1&-(_W7l6n(kt=>Yt3yJ_tNNSbT!#Xj8W0XTNj*vxAM6C@f=gF>=$!gRse=tP-;Xl9P z-uZcp=hO7iw}&JiwEV#k`kVe42Pbmu@Bn_ntzy>GmT(DyKJ?eqQKSkyjrje;7f2$g zP1c`i7q7NyOzE1!%k#i8R+ZJDiKnj(bj7)K2 ziBjy0f{9+aKc{Xa$h`=nO!P0y~J}% zE=YmB7L>S#JghPt3lgVaBNCwWDjlz&R?*mshKwxQRgRQ4W(6VIzJsRY#K0FKN-7}& zt)~l(A)=ajE<>!mpow+Wyr3Tc0AC}*7=j3ntI&s)hc+XwN?;0GUR0^l8X5u(XlYNx z5h`hrF3NPL9x$PjED-`V+b)b5H@o`#K@x@6UQ~w%U3#ZVL_yaWdVeF^tf03J8YdgK z<_Luu@LSv4Pbg6Mbzd$J=&6z_(@d@QFhwy-MxuT_{{S!t(uqUo?roqzAWPEu)UxvE zl8{6mDnLZN)M`B8Gyeb_h_@~piU2w~dK*xcL{{~Lnx~d&(kRvlrXN+~X4C7VKt7I* zpRxt70wFNqc^mzGpomYxw>SP)kP*^)h5T}`Swe6+eN;sOs6vGd$eMjVjKovq^d6P^ z6US38DsuFx@6W!GJ01XQ(a zlU`iYPvJMWU2CK+y`X|32x(1y`JnfMkxKoEg8Y-rR=(Y5F9uU1R*Q$EJ zziv=OwTA3`xqe_*{yyJIyaf3*lkfF{B@M4?b<;uD8#i85g#<(p9+D2Vf+glSr%g(5 zFm=@|ojC<)X#U<|Amh*1+K@yVCW+Tinixr?9qzWu=e{J!r}yx@qZL(0%W z=UzQ^NE4HA>qsIO(v89Fw&Q1nr13(2%6^L8u=KddSNL>B&Wj7A>pv@IV2O^p{$PZT zT7cN+q83L?_(gA;Bcg-~fPdYh^YcJNo3CHT(g9HDZK<&9$`27Fn+KpqP`09*6h#z- ziUCUvP>U5B+g%`ukXDpJMnn68I3mKe(O?;!8_N1Q_JL6i8Hl;&Z{*PPU^(k#FKq1u zN!hykTQ+#VJiH6=AtG z3q)UT6=i2JCDc_iQaW6&&_ws0!W1Ce{_rIePjs^&0Bd)k{6Yi(3Oba?x*scKYXm_Q zK!Jv1?@b~)=@K+qvJS4)%ZIW$G$N_Ny0`Jh2%!dDe;;T%<41}r$3LeChVurWbw;AdxZ=U%$80fQluGSaV(p)=*A~m9Xos6p1HAbSYpji`SG9HA$X`qwJa2riKCnhPSWcp79E#5Q@#2(@$=fiwFAf{$%q)?vK)X`3m@)9CD*00VT_vi1DE0$tBIhjwty4E!aRUDNw z49ZX_HcbWGByrSp>#yP*lNFc9{g;m_(O{}XmLzMYUrgL^H*MPNh)7if=%UWPZ75vI zflIiVQ5}>HTCTFhmg18XIWi)yL{_$m7h-CJD;6!rggCmq6bk{!$PJee3!c4Gn34!6 zNGrrOUuc9 zkENjXvodv;4NNrap{yNng0fwEdii=oUcDjl3D#LAkaD2(R=+I-5psxWdD#75(=>um z%auilsU3b|6@xwWVf=9A6)09z_DqrrGLX;gU^vT?sXzyckwgO_t;{ns?u7pUaWo6l zShb=7@qh{iEtdsEq6Gw(L<*1QD0vxdr`w2YEEJ|0DxWN<%yXtflt!!ole~dH+~QKc zs?N-+xuOseD%{OA0A5vOVc{CVEdo-4%2MCrQBNG;h%%B8D6lGsGAavzPyt)eMNvWy z6h?Pu6lx1X*ZWeR+z4BmCze9w3e=cX8Y|HS?xyNcK@+Gup)E>{6YEE$3cv+W+7x4{ zO29xq5>bOF(z)8n=Mn-+N~^o?5AjM-60e*QS^`AFRqLx-AeBGd#D-@70OgvYgronuklPubbqgO9*w&Pd|qR@rP{Cxc&pgVhdW%pxtY_mcTxfvRP!6`+m5>)^&)rta- z$mT0b*7Rty6_5TV(Rf6X3kFY0IrA%f!Agr#?>FAMK(s&_UKVpp$k;-=8g_PYHl*P?m0a1JT0m(=irB&Nu``F%NM23=O1GSAi;52sd! z)I|c8Ygw-ZQ2E<0c3w2F4-feK=j#+$(~^VipLlYrvP=_)lJruU5lkI@V$e#8gqkZS z+rGg;gn4MN#Gp~U&)2HK6cslLLT;SZn~RThff0ZX0I@@shos7m z=`>SDRu@y%ga81j=Od?8f++z6#MCpmYbREK37CSQ^yBO6NYLcZMWM_Q!>rTzMFJ92 zL~RG9uLMz0b61wkGQF+$Gh;?Hy0fSA8X!YrrP*_`D_bF=zySG}u>_-^&%6;rs+2CD z^yU0(0W7Sm&-nZz0SyeONM$U!_54Es30(o2=&a2J13rI1krXxnFXG-!2p}NZ!leDs z-K}`K0lHe}>^_jyLG)bF+s#iEVFfEWs&zsRiPw}0nR;dR&ivwviGu$Ci)Fp(T6t0= zjnWBns+oN>_E&-@y~@`KuN?fH;8jNTPjhiyMzJMsP_>7n6y!t!$Voz?P$v{*;I&91 zZXGM=UXFP>9HDP&avol{%Q$9IY=eq{$!`ehAs z_2tdD!~?>|@8n%wbBYbs^UGc^ML>aWM71u@>1ZoZg5GY5N7l?yU?_t-pg~T(vVef~ z2#62n>i+;pB4st_p z+3Q0AE0w6jue4b3gagEQ1nEBL!U>mjE0z1f6x1q}Cw16$?+-$u*oC#V8C*goS9-vp z8Hjt+P|Cn7``lyzV_cw!mGa@AC#8=;%*9cNAdZ=S(2vSUD(-Npf)&#WywnpKSqS`QmAwcP#$emm&==V_Zq5kCx1rY^M`@jAr zCi8iY?8!o|!}9E$s{~UsFe=JTiQ>-HU3gLepD|HYW#B_Nv0=n3JD@0YGd^bI9tZ`B zMN7JpmQ2?F0GBUFBEuwF(6U$APmr*8nXS)~fvEbGOtvXf^)jDSYg5*c1av?VOI_{i zD+E}re7@8tg&neol|A(j*D6JBAOx@;h?b`-X%BHh48_F=)RBI)f+-TLs93#fLZZJK zuP6vo04!Ee7^mW#2;E5330(gGaAIuUK{RHGK_a80a?Xf}NC7}Xe6`_pq!DIFRrykC%E}eL z?;0N@co8PeX}bRaz)cDgY*sWs?c<=brhk?(Ab^HrT4;pn#AuL31tkGPP+FaFZEq6!d3X%wi2ZU(DwT2wA?(!ZuaSz}8_Vbd3IWh3+6b^@`H5mTO7Kuwfw>3@wPCt| zNdXXMIGd6bo`Gc~z71{3j?x01=gHToYDea#|)%`q`f^<{&w0sG|TbG!4e?>MY3r0 z7ly#zp%$9%`nGyNh01bYP*t;{`XEsT@O-P}kVKKq03&pBh2mhtBbs%TSSn6IwO_PJ zm>GaWT8aiY^9}BhL`)G4PHoo?0A(5G#;Qa5pQ-*$>9g~)Xc!Vh8(qSd0b-N|2}SdB zqp=DuAc|S+J$~QEogyJ9`TbG<0GEmPT7NB~0TvXMp#IQZY(Y~00BS4|LUR1{@X+N# zhWt9^6*3aR>dp#R%Y)>kLJui7-X@%=a#zXVo&Asiy{nnGy_n^qUTa@G`3Rm}b=6Z( z?I=nGborOsVQ;>b`n4p)2s~ zAa`^hh+@Qr&yS0=zow>6sR6LW9Xs4Ok~$ zu$YAifz1U1S(7bRk)jH2idh%e-WK3ve>)<*Yf|R+LM&HN{{VTHnQD*<>MIlo0g4nV zwq^jMHhE+cEP!PLdiBnf%JmTUM(M~Kur#8FEZm0;2$$tnR(J6@9$`YY zsRY0P=R~MW{m+yUWllD;ih`we965!Nuq9P9wL>yELJ~C+$`mtbJuiDB=MtE5lS1g3 zWagFu9mQ(|Q@o)yVnPKB9Pr|d8B9^#1yag|YUg@l89u8-iaVrHW&Y*KD1qwi3Kt6! zOrjw0uqYZGFXpPZcw+kn3PX3tNgxW zf;b{VX=ORSrCiYFrAj?C1Y&bMEB7G_X-16@2LMd3l2|rD?AMA(Ld*g)5zJDJKq#%2e?oky4bu4(m8wuttD_Y_?G}_-ha|3tj7RqZYAP--Y=8x{f+1LgDH#*w z2_z~E$V)py-Ls_%D&CnJ@XFSFR4O?pL|nT!-I4-^mP!JMfvg#6ODqvVm1aP+yAebI z9^}|msJbI`?x4^Fe1HvHv(Sj#25|TMrB#dPltM4e)k4QMTK(x*BFwUDkz2TMiVGT5 z5qDuR6d)!@FM1FvoNrA8rlkzP=!Y=(@@1hA(2zkOA{F8;x79x+SnmG-ilyGRdeAMJ z%V0{y5l||NEkaNhah9tZnQ~7E3qefLn~Jtj<@rJde<5G3V4qH2y@iyGFa?DRifRzC zRk-9^M-w7s2P0OX6*pQ^VH7+ds6Y_{@~UFa{6ZNjGxgS2faS6d4%#TQHd}t#BF^L|s=VBSz&EsDtHYH$@a3R*eL6VQbE#$hGyp ziSbN`;+mYA`dkW=IBQJar>|HK_?ytu^vj>3#JwtnT|~FDoV2nCD2}6pn6`3sGxSZe z4r*z{QF$ZikWG+uMHi@d(@hg3q;FnesI<=}NlW_}W{MhQRyG2f52#2e7m5D>$_`y! z+FHSd;ABD#i&XMt0J3>!4fmCT*wvER+(HDO5&(;)ZF`DT8i5fhC0y>c3zf^&5~Gro zfZ?6>Eqt%54PCO+Rsl=8i}`&ZQ84Lx;S(`ZSpaS;P$-Hok|t3l(o}T}D=1=wjwF|* z9tua8i%VONQ7}Dh%`F*K2Bj?DjNmjT=T`{qQiiC|ihxlG1P}`#S}7^RD>4|3;*3-y zlne5@aG@vBAeoCZd;b6(vS$!EG#3^L?nN?K?B~WWj2+kbL){M1?_YT~%nS@YlLHog zk7b(@S#frpX=O7@B$5*>#F@e*reV9{u@U+&h`$hfzwqO`9i!f!@ol&}Cui&%J}xo+ z*@VBlG=T2OAefEim;e)nRz7BbRG+C%@P42><+kJh0I9{<`=hX9&x6@rpDrZB3l|Pa zi2d256A4J11(sq;ZwT-FKj2vYFSJtNjgpFi#l>a~A1JEMZEidlp7H+x8^Z9c15G4V zwBir;=n_S~YMRY0o3i}R>KEhx0D68tch7C@{@L1br0iS`qY_@o?7=j{0|x?GjG|*8 zJEZP_T-=A6QoV%U1O&Ty6P0tK5C0n1j~UJ*SoHv+%DsG_rzZDY<=AB_RWoti;syUxcKr& zOqduu<9=f`0o_ueY$!x~tN1zacd$MZcXwy({ex!0#O;i1DJSh7&>$RaOiASvO(2;! zfO9ASs0aaP=|2QM3wAHU4({M!VPN5H9ly2VNjGS1`?CJvo_S?6ONTR%B|?N0Z|)!w z-w`W=y^CPV$qS;abIaB`Ngw@eEiJ(VP5LmcKgD@+(Fa;)3mkL=z)FiB^ zSey8_@!#Xd$J~vFY3vTb$CGLA4$~ykOmOB|HbwcSoQa8Ly&p208#V=7PAxQHQfjD> z3|JB`4I299v0~$4;fkxQo!bClyc$OCuf_9WW535=k9!Yrwk&?d>>OMzv%FhQ6!>Jx zJhMx(3Bi=jIR%JvZ!(|}>ld~APqce)Z`ylPwKkddy|-z^ntV)LVrN4!QzWvL2`Z2` zQ9(pBH`;xpw)Vc;kJ=rhkBPPI+g!&N7aI~|Io~CBW!@@)l#~tM4(cGM1cD|nk|MS1 z)=};D9fpmHfGM0p9=h6I%nm?KSzURZr)jGmr>o_rpW8^8C7#abis4NmI!tCHC#as(GSObtz*0WY7lbV#W}1;F~cYL_HuB-UPt> zXKr?!mY^Bu1oLe=IpaDmFYSwfP=ji@rCA6sTcbrvi!el1N;25*P><~jEu?Bl0qAH^ zSA#^&Fi?{Epfy^QWC#!k9x4c$U5Iv`B6Q+e!3DJnNXQm1o<neE>2Z5^$QfSfIu5+%b2<`hyF{iLsu-76XJ@QqLl0j_1NG|ab_i$fn6Q4R?q zw`>98WZSn~?(uh<6SU@=X4yBS*`-j(cf`47;DE?LRw4fY8#<9?l~Z_q42M0d(UX8aHU90cd!VdGm&WrI~XpuBz%J=HE^M z@?-Z{34%1ocov}&pTc>yqRhn1D=uQoRQd%$nnnKHr9uJ?+vXO}{6nWY$5ZTn#_c}d z?LC{ZyB}l5?LO1nv1Gu&*>-tm#F))7mPt&)Ronoh=8To5CO#e=HCI(bbV($@VNCS% zvQb5K)F}gcs*dd-2X`TWX92vQ(}y6MV=f$+XBQV1eas9jFis{U=3^|f%Pguzh--!M z5}wDuO8)?%uHX2TiLm#>;!XxXVs}>xd^~-hvvDxy!rC_MFht>Gm`V(jhE$eRKjI8| zBl=AJ2JAi7lVSLS@n2`d+k0klg|%!QiHj_=VQhpX*k=|=#L~=U2%ySKBIoTZ2Lorp zz{1(KY%DwtmjYRE@OFF&Wy8V4l3xgxOfk9wODIY(Azfp^c*n$bR%_Yz6K|HRP!A$0 z$;PF!Y?rq1kB2~{Z5wb7^qO#+_S*dzeb?u^sof6lcOS8KPQmW4W$fLR+1n-*xKc@h zg(R4mqFH5>oI@<2nThcfA!b!pGX9El^0n1MIaNWC(B`NL2-F#71d0@2QOOgB5fmjw z;e6b)xOxiaraW0S)loH*R`XO%M|hLZKWOvzAW?<|Gyo|8QYjW-1ax@2jw^<@D=IpY zq~v%Ej=IKxo(H7p7}jY*0t1TC5s?PyV1wU;fE~c%-k$Y<2Kh+N-!C0=<l5eY?`h|`HLU|h1-Mr)9o0|G_x=?KaWhJ7;ipjDaogXoKzA> z92^fwS;R~Z?I~2t?MS$l23ef|4Rvd&QA>o2c2q2s=6vHx2`Z$TRdtCn)BcrVmG$(b zCLbwHUo5g-a7DC4<*Zcw=%2(fI5lc#_WbD?&Osp^J>ZICOfnu)>=#O>nv=qjGJt9b z2DI}-orl>YSp>46C^bbWpoYD?;+U2nnEH3kT96)N%3CMvlBs6RNM;~a(2Huv?Hca_ z0S{*O^!ALsaBGoT#`-V9mtS8!=zaM?a#?Cv{dWswV#p%D#LZkY#$4~CHx7JqDyAdlS2WOy9!frx zFx53g3w276lp{q`0NrwqDsT7B!4!n7Ss@9^gD|Y5yJl?`6u&KhA5T`5ZP5=U+`Xlq z&7zPd0AE*kA&PR+;x7jW7igSe;Y-Ggu5l!ikts5{VXe_>EW)&p z*=&0b4#$Qhk>?@jOQI+~YzSdYv14P5CIO9HBS9is*3;JXVZ7RsM29dvGV-$GY(1HW zvq~n!AGwM^svXm2u~f}3^G8;aT1~p&;-OK&rszc%D2!GZ0A#;cP8X%PL$U!(nFl2M zE>(_gRhr2pxqgkKWFxY+909vXVBJq2zEi~nIUuPSmZI=es<^yROp60AhTmV8)0_qrM_Y@(DR{Hz$^|w6XLZCNQ$yBLS;E0r=cZLh;?v!N_3OCwk zAQCF9&uV(SbltbKWZ3}$C&hFDN&-R@0bPTzAT8qb)4V{N47FjH$*%mA5-FOC4#&FX z?HgVm%PiC4AON(Wxf!Be**FJC{GQ#~7@JJSSqe&ND4Nu87gs334~m>Ut7*mBr{A2Q zbdY?gH&7*rAgYzfp=?knnH&^Lmax^rBDs1;Lk9p-LxADBJiMIG2I#R@Ui36PUnVok z;0V7YAOI4whot~FIuy2wKryp!paX#nHB8Hj1gn^U94JMkg$)IY?t0DV;=V4Vk^Uw`99?q zS=27+K`NzgifS2_rizGwQ>pBIoj%csF>yxj5OgI82+JuMDEhQ=b}r2Maq)=L4Fy>O zRMLd%l}@?{L_mRrpeVI0e~x-M_{{Xtk+=daX1kt^n%Kj^-eXZCF!|VkOok#4n;B7s zg(e(>4+sfmmA8OGQi@gEK#d%Q^ZFu2V39MhN&{xF>1jb4s00w<%BZG)YoBdWio7!WKq?#s!T z3!&Ets~DSl<=>Jp(0O;DM7|=Qh751yhT@ft1cNhQEelsTfpjRxJ~rW`SRf%KB}XOH z`l~4u4>J)^JGv97F;n%@!`CczQqQJdosI!fS(H%=8?JV2xtNmTrP*Z_w9Mrzyb98y zERX>qEzh2mx|&1@nP#DD9?v1q|8!K9GU=$kPP+B2_io=+Fh?K+xtGwQcsp_ zK=Ps{=w(E>W%G@SMOBsn=u3OPT6XoWu}95S{{XZA&VBOF(QVott0oAa4*-7VEjOKw z-HjgLAQcVyiKm|s&54M2i7Fu^);O<ZYG5&V5yR+5 zp;I7e`Ec$BTQOR16lUE-4C|hGhX*vZZ&0WeQA>?{j+(|Z5CWwGQF6?YucJc_io6B%m# zSIZ_Xq)Dn6Fd4LS(UE9N9X`KB`o?okf3;pxoE6BZYAkBi1wll%dDarIgn(`ht!m`U z=wlJA3rX}=90Uns&gaS8_hk}~1ilr_mOsVDoRQ3GYDI^YNxq*i7<;Y|f<)gog2-Hs zIqMQ-0L(!`$`i|iqZ?TwH^~4?!wbmW9&!Aj=f^TGFU~JIKt|1uWnEY&IRH(%pW9L>4-2YPJJq7e3LdNj1eoM%4Hc?ZF{yhOo1Z`ga{9G` ziHS1GKof5w+zVVLlwyR@VwkUlrBxMKR;yhCKB%VN`II8$7-+*Utpqt0f{BnH9n1d! ziSc=mjayl->5(!&2ir9uumD8MJQj(7TR$+!99&u1lJuymqHz%>LoofB-Io@SKK}7O;ujE&z~PW3R1~dLg4*n^+BdWsmLdsXL$`b-yuYMz0t~ zNdT24x}j!Dw;z^~$TS(1<(HoWXvSbvy0Vd$VQ!3w-%AQeFnPeXa(l9ecHZJXT+9wx z_4nftg%agF;4+~?g)XBdT!%t8CQ^z6CU269n$wM=5*U?jMT>LGUnR5H$DDgjz12X` z#}>@CocNa2K}D_YQfxh53v$2L>jNs>=);3IS;LB&vTWO}h!)oHuedLkLpxr^{H%H; zpgAeWuA7w!K|*X|%qeY2v7jC?!A1)cHci+=qs>G9#2J-N}k_`e>sl>!pLEu(!t><8Sy%O3shPz3E@69iD8 z2i7LE!f-Vs5|S1FK1ACMpCwfjPD5>uXdOGsU&{4+C*AJ6q0VwwAo=3sQZFce(f#4Y z_&v9i@cI0clS5DXU;Ssl@9Mq9{^C!!s;{PKJU+}ImMWgs83;rY?_RjDpWCgMfcSE; zPxkfGPu*{xUwGDYK{Nl%hN%$HxOnDtW6J5H;4-9EJY`!W5k7)0lrB$4auLmeR(8H} z%oDJ;4eu_Vd2e$1ocYx^;m>+sem(T{V}Jk4z<%xr-;)8yT5ON^;^no0)M{;<3;pwN z*DSx^iL?d31JgaJ71c(2es>H#y0HA(KpR5R=)MVztPy9j!~A>bV&%KH!RPjsHu;|U?_u?!VwG{Hw&aB)#GL_UuIdm{Y zVG@Ts zdnrN=0T68-J^hEh^<6iPnBU(M40L0k0l?)H1G&cB=dR|aZ9lr>{+;=1cqX>I#QDA% z%gR-H?#vHKYNz$;k^M6_;F-GA8!7Tv!XD>eqYZ|si=FbdSY3R#Vr;R~@NDcZB-v;# z3O;i-<;TEQhJJI&fYI){B%Ad^BKlSG_RDNkz=;hbGt~njue;QFA8)uj{|*`ov*n1;8W)tFpTJ}r0(kaetmN-5 z*497L0fE~>onBO^1XlX>iC1^iM0uWE!)gw{I^^YI@*@3KY5Q&2ZjGN``Y*re+0Y+) z`silBTlsVMVFjbf87YC{e*S2<7(#+zyI*tTQOg(iJdgIt1;wol&M5I~Dc3oKPJ_3L zmn#NkhV9k$JWTQ}3SlQfM-$_=oKn4FW0{@%Z`fvDru661{{U`xz6>3TID}Js8leqP&_IAsA+Ei9^Tt}|;Q3+j=KZh#13c`y_w~oU zBbVnsohyZ&w#zcu>AIefsheP|)-y_{;ZC1pN#=p0jcLp25yM zYvja5Dfo4GAKh6S$uZOSJAQ&4>*cW@eX0OAljOuaZ>w$*7d@C?`}ObLEFMH>z7py+ zd|X0zX=85mqAZ12rWaE9hZ|~W?58|q>p2rJ7N;9KBX`H2u{c+;z6$%pj;_pAOUc-4 zHDKPhx!=pMb0vKI!xH)nx*t~2^3-S<=uT_@51@aURljdA-AAUUSxhBp%yl!ppjyMi z=X}}Ou7fyyLRO6Zs*laxD+lACo-1#P)m|5+skA<`{%4R6&IlHa)0GUYc4S3BvDM#x zy;B@~doJU^gT&V_o(#X)muLI!Lc~`F_gv19q%L~@k(+%qd&_poCDS()=_-Z8mu<=S zj%4BIBQg7W$Ye5nzZNLu)3@7!LNMR)_(M%n&?k3%&w-8|I7Hoz-H0_leTFKd zL3Ge^@-?Vhk!mD*1P-?S44-QaI~G1>F?#pY)L8QMtLfT#r;S)Z9Kt@?&BAwQ|A~}U z!ZH_tErn>Y4*3p#s@#(QdLZ!2e}mWGJX;T&4Ex*BY+wr$C@eN?Gv zORIRNF`33fO02kcm~VbM`S;f)-!BJzH`+bCd+)tl_#oL-nHQC8^!>|T(|dMM8UUx; zH}O6F_@j{24FHgJLnB;no)!JiFbfxV2%$|^hy%Hs_QS(j z=|OU;trFOBW*_8)p1Ect%QQmV4=hH%- z>!|I2;ryvB`=o+@N1sOK+n@QXd9^D(aXp%?cBxUDLjJ-_e|=c=_*25C{jWbg`~K7A z>8pLYZKu!Ol%2ntd_5`a>XF_1?ak?oV|CbM%Jt8+F_}yE%Z8>2CUww&9*+9rj5A$9 z6)Rp;t&3;A|F*hOv(u&EoQ`W?Vk>xH6drW!YWQyj!DPC1HMuw~DVuQ;k~Ai0QXf5I z=oElaLx z{d_%Lvrpb2(MwW^DxvITzX0lZCurXOKEvT*8xKUCP3oh6FRRDLu z+KAGdp5FL|X3ldG^HhM&sD0O=fU*!#yMg7-yuf7|8@dRK z+u|^_=fyS_tLeUqGb+y?VJK4&y}CR|)|eKoVg)p++#eA_HjZ2;SoOQ-aHT*J099UZeCQ%XV53F*NDlckd*sU? z`$QsGNe)NTZ> zw?AYYqE1Lgwpj0 z+et;V43`>n*}HWIt3LfJ`Z)8BEesaj#o&IepRx({Uz{a^VT4PMom|-Fp$;c~BFsi3 za0v7Iv27*>Stt}pwuq-UI*@*#{iaii++p0xJ^WBfL}neo=jVs0Cmk=r0L-_;0>C|uJE&yvpYZ*a>s2D$017dBq zK*asBxsx_dZT!GPg-LKWI!ok^SY(A~RKzJFKR^L;ZF}+83Q3MH|A?gW;Q5jIb-A+| zPMI)}nyG4y|7v-)rL?wKvuW+kMn%cNX)3^93|RT9FzKIDUW_q);pW7eB+O1JezuId zIeLp9*H$M#3UPmG#W(=f)RW3yFg+x3Gr%!`iHQ(m+}k{z68PEiz{7%0r&QOJK+%h_ z$e*=4hj+?A+PSv+e9qw?Q`l)d{PPRb+Q2VWOCg*Ih<1l_(fwDN5$?JO-^vwZqw|lz zy3oozhb`}1R?DiCx zWlIV%krS-wFi;0GJ`E>ot4GIB5OjUbxYYCP$-ePIJuQ zq@ED>az}hFk9)VN9BF&_AO=2HZ_uaA1zf~!r}F@D&x89oDrlsvV*v4c#GYc9u{%rY z&H7s|D&!?lw{S5xG=h~=$Q`NZ>m?Z0pQSIW;J6>iTDdkA&J?fXGb;}u(K(tX zqL0b$Pp)yPbGYT_3J&7_Gm>y=om=N*eZg22iP@JzIKWo~3PUhBQy$&{%uPz0=jAN{ zaIHr1+l!n@H&04a`+XD+Ret(wU~XQy@_f5@+bAy$C*@;whBS4su*Jv_^a!Illu20)NSMRnFV$0> zvh_>q^IM%ka49>=Hh_&$L1Y{%IE?OQUXmJvY=fh6cm4p21oH7s3&FnxF6B$Z+g! zUz*9y?G}Q=#Lf0GWJRerl*q`V(kBPcMw*(QCN{|h%EM{xuArN>9IUP?Hwz&28!vm1 zq|J<5Pp-u}T}{u)@`rSwj!MR&l70Yi?^GC6I_cCa6Icu`fCyn`;Kc2Z@^leJY5QO& zZ6h&sxvW0W>ENpURk=+Q@>bd)d&=Eag06N%3gT;C>pM((i@#OoT4q2jjJzJ`t0_=r>1+<@wd<|tEjHL4`(rN`Wt znp;tz$6h(yfutx3-UBv`ai}*eWCQhQI1r%D-4~gGo77n(5 z1x@=$ zTGbrf%io=R@jC9$$7f=IbgzE@t3C!cB2t}Vz^&N`k_Nos7If!8B8oUj53B7@;Ve^6 zT6&qk$NfpZKeb{CMvX%Qr~b?HRw+BVeqXLCQxk?{TKcGD)p4jG+mJqRe$a$`39m5K=c#UDN!(L*$QK@P8+ahQ zMb;E3RakR(7+c|!7Q*IjH`q4P%3xwEkc?9i$dv!2xbmhH%mMq~uWU&8OK~yVY=iXJTU&@#MEYM}4{I?;+HG>m?N6pnDJ`{`N-5_wo_OD)-U?PD-{*6(A8*IK(&>eQ(VVvWoSn)Rf-9PGCA{L( zwO8QDFm|p%HPrS)^ac%FOhVHZifP&%Ad3;zW5E1bW*cyIu^^2nP zGv(VFgCP$dd@qt?laG!6Gb@8LW7YH;~yccA}(=Zzt7-nY`3^$Q98V5LIcUt?1SHV7uV zt0Cd?x`Qho`m15{!gF*gB<<)DizIu|2fcV{=)KnFzL^=h;U|k&rqFqW48Z{Z~A$$kB@hr z4V|vS*4!1)Sl*@x7FsL;2WgU*C0^$Wmvxkh#VVkRJ|tLpnI^;{Gd@)f6<$|AX*Q`9 z8+Z%7)As0GhkBcrRJrzr^ZqPgtrSL=MQO9Vu~Dt)%15f~mBr6fOR^mf0V#P{!B4DW zp;ulufzn1Z=(1-+kb+ZX?g0D8DdnNg{U=!u_k5(e3EIJuEm;3&(Z;Vv|6n2U*Z1r`RloSVFiU*XDPiJz`MJO{>AcNQH=OgXi!f$A!4)TjyrAZh zbpbMF|ICvy)^4SqK{8XwlCqbae*a>tM*MONxr=AKbKt|LYVj43w$WU8P?jC1u=iL1 z)?$eSy%`fRJ{{D!(iQhW+-Zrp6EIXwMa+Y=UNvI0_3{({3Rc`rPQJN5A$hGl!@GJ? zux)wzhIaGyJ`=7C&oWm`aT@>WFq4IVeCW#{)&_XQ^;~rACq`VITmrJ<_xq}ih^iR| zzUf|2E}Ea`SAB1R1Zv-c`6k~#F!moctIO}b5N3U2z-v`}6=B9FXSSd1Ssq88UQ}e1 z+_c#X)a@3$7NSp4%CTN8RTcr)RdJHOw4l%49oI-W$skQDtn^%iP3d^RW#s56mmx|) z$sT`~&Z#zpmcV`!owg|Hpq{4c1BXG_eDwC3%*LCT#Z^>Y+ z8@#@&>bljgGLbrc=lhi*9bMCh1BPwv*^bB`EL#jOYfl4nURkU8w3q14wf!SvJmjZ} z-lF`aGsOrBwwT3t9aY<~HXydPMm~7z(*q?*E6}+|u7p?JiA)u+5|!4sKfr-V7tJ)b zqnGYM?7e|kl{4NDE&H}H#~~=PO3T%6Zh{x=HC7XNc^O7;`tK&X*6Yf_c@CwtXgJdN zJ(tOydpU1V!eLi*`dFWm#PojgS2FPy`Q9oLQnP=s#|2zgV|E`3NeUcGev@~apuJkl zi%~xs!fuN!x)f7v^&LvA?P{EmDffaYa!8((s|`W=nQBGUBxo62@lNw9hZtQ!$?TCH z0QXc_J614`pWK`k!|9wJq30Xuz?@lC?}A+khM^PdBJ)2;BJvEsYb(AIe{RG@-aRe% zX8P*#8%=t%NyqvjkZou5VD<1}qD|;-aP+%pk?l}uPz_F?Zu}yyjEvfG>b*a8V~K;R z(8_h=>_1MotyB(Knl8?N9^xhG8u;Uc zPmrd{+B*NOS&RB`nhv93;8m1Xr{UBx_``FJ(%oz+F^}w#yRO45v{ZC`{)W<_-2H-n zqeb($M-1IEke2hN%BF9+fmh5B3^hle4V_A{Q+m+YsUm-}o=b^Ohmww60d6dR)RV|m8VdQim}UKp{IOjU7P|CUw=e2(p=el z{=Tt{-rP(==RN&m{RhfrV)lHQYbvM8b9$q@>k1hV?Fo@ARx=~L_8a}jjz3Bijtku5 z%UCb`sa?QCsLMaNJC}O%Se@Q`%>n_0lN2fbAd=o1jG3onEB?K?94eVkP)1%9qk-b% zJ&vM=_)aywqGt1$CJWm|wL@0rN3BxcQ^XDo1a*h2cq^{uDCh&)QZ;;`>H<8RWot7! z%f`+)9yxh3$#O0>IB?Z`J*E$iEZQYCz|FmaexOq|O&l#jZbNjLq|M5v3!5pP<#;Ms zcsU*F8En&p4#xRAkq^sydm`Kd-rqitjf-UJhLY24Zz~L#G+5gg>EUz?b;~|yu3P#4 zR8=M>SJm6m=Y#uKLGR0temB5OPl^0+6t6@8gzd{V*YXv|z;dbDMn zkZ0>?gI7i@=3d+!eqL@k=S=#=^D+zyQo*LV3XQfupltkF@ph5xGwGXib9L{>wLw$2 zG2q++y`z+5%wG){Ve`PN$vx%OC)+9gxWstJtMuO&jeLu7S+udpwe{<(bOAS~Yf_Svn?0zTWkW*F7xt_m@ z#gAY%>Z|1F2XdU>TbuX)hAQZYJ^cCRS)8a(OnRl4hY&v^BZ1TUdi8V9+O3!v7x;HN z7;b*KH`q%OAF(?Mzeb0j*+OyuP!LQ0A4*#fLdSVk`**8~jHn0wo^;f!8AK^zkX0hi zPyR*?fm?(Jnords@o|K8yJ(B-JNXDGiyR_@HAfL@lQDP-rtX(_NV4$7h@%$vSTY*G zqc>K+a6{6RBXMGv2h43)Nw&z6{{is7-fy8sRlWu3Gdg0vJDxD3?e{cM^`p@x8#j6+sT zjiA_TVq%Jmm%aGjOFq}X{bEyW0oo+0lckye-K1MJ%0QhSN{}O(5AW*ISsFhDXJ1kL zhw3e>!&iHL|Irl;CCC{H%ST_=$Bs(irmk^Ymbh{w0jv3q$*3qvSud6Di|*a9SInm(2uO zO_txlKFTQvmkQC9pm|?5HzMAt{cM506A#^g=YmJuxyK6I{UR9l;k&mvd*dDnI{d3g z=Bpm({9B}UU4gQzDfvIvD@6%FRQT&e*Zgiy8nv?TFx`9aW#PuOvb7|Q&7xedw9+#M z2Vpv7i>q00U*p9R4TpAl?8M!Fg*D&n)cRN+jn&i3Kuer;vb;O%UT6FyfRZ4nqeTCU zStO<-RYqkq&EcU$mO@%YJq9Q2A2kZ`Pjs%<;-be zmFEHD=fstR>Wm?JGqJ(NhL33>ixh*A$PEP6UfqVIxq)^g67@zSWs%HE3@gl2+zj!uF;k~%* z<*L5iBLjw_s_7Ba2-$KDwKg{hwuZSLt>B&;0B*z!D&l$-Pma9%oUM(cupXj#QZ>iT zUvT38>N!!S>q~9%0*ipj)PFy=35P`wa_x;ri#vY7$N9{Xw_^_%)E<3wu_<(58!q+SJYg7S zFLOV~OtscLM738k17zH4Jns5M(i2?+rLsFAXcsUaTkf%>o2=jv6?6JCL+$fQ0}LXe zvn*iMdK=lgx_^^$I4>${h-yiw9%BfV&deOHT)uc^R*gdBvnD;aTT_3ce<>a!q&d
K+jXiCIAXjmgd}(h{i7zAn7P+vQ9=rND2E@!Z)2l}s(oQ4WK= z5Pe+_jMt8`L9shQUelmEgAz*{dtyHIiiAuYwkBvV|D024R6PBANJElf|7qy8((ms~ z^xra1v_tC$BJKF3Rrc!zsY*vH+7XDWX`+j*wYW-i? z=p?jMgpU7*+q!}wBs#Z#@#tS#FFdJG3BkSzq(J=9*EHKEN?4(iVc+rK2Nqicg;KGFwet1ujNncx`_G4V`aM z0xlSY?JIz{PaUt8UH9J_8`>ta^gNO+GA?Yk;J?@8xuX?do1Ps=*RvJVCAIAhalEM< zIrrz`7ph!(Lx7Q3XaPB<3{mA|sq@wyR3pC%A`S(XpU539W1wt8*%z9jv8ewR z20Q1xP^7-b-}OH})EP=HZZ)KDF|x5BeafZAhvtYhx_HvSg1_01A+6|n2>EJ$zIaL% zZY1Av@Vil9P)-?7pcnE{b765%Ok(4+dJR5cEU6NHKVtG5u~y7_uZM2wL18cRM7(lG z1wuslUAKZiJiLDTt)^`hNYSeLj?N4VxKf{MS&?wcqKzd9>MUZ$I_*uat#Jxd!R)Or zR7^9x=P*)!>csEsxt?Zf&L%7yzX6Px%dpirv5IFcYpH(~8R>TVP-5`JrWb?#)@qjAv{Kee*Tx38Y3`48$;?FNh;<<^Mb%~>4wg*_FJ?rt1CTVJ)n z$JUnH5=!Rj@7RjTulIPnR(Pr^7oKMIekc}eD5Tjfi@cnEoqvh*4->iS*ZL`EZ@Doqrnes>ZnW~jUsaSRk7fBF*p7|pLf>Q_ba84@r+ zF4Zrw{(N;Hgya3tomsQ}vc#X#`ab>3C%v#@gu~_$g(>|Ifi`d}ym_%6Jam-WmnXGp z7b%?2xLCOB{N>A?ki4+soPpl3vbCJ{&~YC}RGLR^A${5Iv+bfur*E>=_4u0%51piH zU$>X4GJAYjJN`Yn9c~^c+P=tnXgC!%A5&);<6>y3%iNR25!xYEEW0xiPwU>!KT_+S zL#UmQG2DxS1xo&#S)2{<70(RMY?{bDl|=5WwniB&Nj?xc(jBv9-^>^SI)qIYmAB7? ze6^YS?N)WfU;PEaC(jD&M(=}bWY@>u(e*eLtUI7DQ}DT_QSpOx__$$SJW4U4AC1T` z1SYGB>(|t@`B2_sSa{#%UgwJ!(d3NRki)V>ftTbMZZx;O?`vr;+&D775ypl2q6uug z68FWaDI_UeL@a#7=+1lrtNEt0=jVxPu^yd^ii0sB^i{c>A)IDOE9UsE$nR#_2o|1F zewgomSnd>E8(d|@14Efs#g{C0bcRSYs-6ziP|`w zQ5UVf0*7n?s=3yu9c=DHMJ6TRe*5pIZH5-i z(b4==u!4JhT*SFxDHLuXriG|d9IVW&9%-l^~ZX%iBUl-z^dj$A9pD| z;({#av)?a%>`8m~_p;_g-`*u-ir$M&H@sYUK4QyYAJxY0o1q9W-h z6L;2`Ok~*5Rk{9ce{;nn?p4glWkdxGXc^dOMSjq??Uib{@ne$>+MeSTxBfpO+niB{ zPeAg(=D37v{qc-TiSO9Sd1=9)f?i|YTrx!>@aON@>jK{%ytn`9#@g|PhFdZ2`=U_Y zG;}Rxw(EqrR;B7&eV{(eBr7?GTbDGRC_5 zfoa|UZ$y{uJAvV~fC70By_8XL8M7``3Z$xp;eEnWtYr?A-_U*gk%k~A57~p5IKX6A z-k^$TbO?fc99`>RT3|SAS-cYYtGRt^5vo~__l{S^J;^+$pYY=M_F@`I>~O$2qqB<$ z_6)(F1q*xbUw8G39Js@PbKcIgX}q3vp%Y^`F}+oGh!7|uNm=_>B`ElF1@Hudq8LY% zZWXLo;snHAAq!Fvf-7jI+_w6-88j}CE5?^oTCQ7y?exiDF^k-bW2A$moLqqDr=p#B z7cpNiS?-75VH=8$3sYsFj;%25UEiq2^Hb&`478vw92;eM4 zI}M3+qQ!aqHYtgp)Z&ErImLllIhr%vK#Y+nV*Qt3>Wl}@@TKind%QF^G~2+?8SUaDtnGGPx3T+Ov@tL>ds#J``5 z%c~{9yne`@+_b>e2Sp%BLmsO9w*JjG;5!)Ln*854neZL`zym3*Uz-55iKy}e))`zN zZ7Rn4-ADRKq^jzW$bW=Frb152&u3r1yioLYU3Py>hZP4cDM%>llWIO3^1MMJ=VyQb zba6ZUdAf~18K+HU4tR_huKF`E)ebK^OS{|beu#NZ48M4lY(94*qzBOVB;@7Qe1v#J zj!S-ggTBnG!B|Z^xWXUjq*o5R@o70p0B81w(ZprH@;GHQ!AnOtEa0cFfu@2@q$=RwG;uspZJ==nR>PZ6{#zKxG$p&+CfU z(Ze;pB5%O9dIPgwr!YJv+ypL%nhY%kk*JOZk_AQ?avf4G8i#zLZO`}E;8d!d#*X(h zJFklE`vsndLw+C&XC}&h@}0(*^XivwNj-=A9LmeD9~aTc9QYHk$R3AdFf!J;V+-;a zRAG4@b;Kbz%kQ(o2sW2)ekV3DwNsK6=fRgM@`vr`CTAIP`sruaU%dh6n5Wi6XALfVMMg#x z%d0=h0OxpSY1i~4J@N!;4oZkb! ze#BheZgb_havs>$G5kszs^LLO_Zz~5EhS{}p>ahL!*c=!FvU=n8oC6x7~jc(l|E!V zEH|<5pjh^`+@L`2CAet=p(d&LE6Wc3J&+s_)_69M#(2+Gt_Gc*WPb$NwuU9+C8uN$ z&d6^AyMtD!EQGWowt9--d*{ed^CWAJK8gJEz<7eKt?UiMQI4^-t76@p(oEid(DAd zh7qwOmvlz^rtQ(jDNqphT`(~PUEdLHOl8tXT+P;xZ$|$ED2~KjQlgb3({cW7vD4^! zJjg9qe>vU9zTa!%!k@pP{Mm2OCbo$ps+T=5K?))W#^<29f4*!xlpZi}?L^XIHa0R| zIKo>@SJ0_RHe>;k0#^23yAvSfT^}r#=Y!k=HrJZcr-oLy*tVBL>OY$+jf(Q?jJQ0> z$iULc{D5~H5~!gobe5BW;%pJX3Jo~EgR_&W?n7+(UdUqGhj3dkfPeu{!##g*E`ux4 z$d?`8=GML%cm=&iazri;j5`en{5fX<#sj5Acq(12o0$oyZS^ek_#r1&*joAEw( z4l(cNPU1|C*uF%I4oe^yL0hHs8&li6{`N zrS1=ei@qp1V9L?MV^V&9P~t#^E&M9eE%k->o3CiOg$Jv{Q%tV^&c%W5rlq729h_Zk_sUwgp8FUZW4afM!16bCOlU zO43&yP(m5Nh+EPb_hb9PPQ8&Vx6gv}$kPWS6dtw-UGHcc!h4y%Maa{5q8=X(p)JWfOzyF%rxroRxrSRW;bFcSX!9LI#OeoihUvqr%*)F#t z#TM`4ONO0xT^{<^)FUP%Lw%(0IdM51Qrk)6l zDnmgly)Kb>D1XTSi?%Xx8b5yMczy*_n@9-1H&t)^pWSkshx(s>)%qK#b92fv?rGS{QX5uNgn2V9W3 zK`cE&*gUS^E$?+ytNjnLx`0!&5qME()&-+@wm7_SV@bFcLIKJNuYLM1m@Q? z)zCR)#M6-TY~#pH`|l8$4-Lyk#Ee2&{7T_shYq&Dk*`*7QKlb%0Vs>f44dsKgV`c5 z{xvgkJNuMw&Lf|fTkp}F+D_4oD1-H-Za-8dXg}CeK&9oXCr6JM!9d~{XqdFzaFy>L zRJtTeY;UPzB)wVM_!7@s8|41^JU^Ggu57XkBM_SJWy81jiul2B@N)ax{uZ~b90V++ zAMk95I{rLZvSs0Cr9}i$G(4m*V9T*rX?6E&P5dds=EwNIGhO_)jMo>470lfn4(V9` zE5YcOXE0;^m&H$Nxc$1!OywAM)IzC_wsx{0q zRYhru2ceP;+Xs7*YzE8UVFUa-5S&##AXcBj*&PjypmDFr-DjiX=FJNv-IFbGxGIFP zGDAfXVhsCr?bFvX(N3EIlq#e?^H9ZAiVmr4W0^m z9bEBJmEhA?>p!yI3j^jSzc0`OGNDMb{AvLrDz+I-)K$3g ztUoRN7(WSdGZpW1@AU(iZh8~eMeq#crgmL48iT-ys3g~Nj0(ey+0}YgM~ubn;9`G) zt!n(qC0Oh+Z%TdTQPe2#e}I{P#*rd?9HuOSkRpP`W@G$p{~#!BDqQJrJQXQUMUDPp z8OIS@k-hZ{q&I73;90K8DU^tjVUu{hodTwuMw2oe6>sHY0Nbqk35>hGlcQYA!E=|d z|4O&D)mO>7HIS&6qXDyNQ+~s!G&#~GVAb*Rcot_#@7`MWpMJ0+pA+A<;nnjM3Gd15DI>8Mshc`~1!<_1N~Gs}{EG2_Za{>RkK z@^aP{xnYdZA7@5YJU1p1+!IWuvlYYmsnX$}H~E z;do2&G`l+hE#t+fbS6?0pqhAelQTLM+p=Byy^K&is1P|!+?g7ss&ej*363s-2*JaX zNiX#&iVw7DSIGAd#y>i0G@W8rNyrwc4`UlTL;eRC%a%8(_K1&EdGvXN0RqzmZKB{q@@`Iow`1OSSJxT3_O18L`%Jh) z4p{s)iIP;ns2TqWK522`uqx;h8fKlnti~h(d6goisEnlHwVVKB#aST^F2x4%Yem=i zo_-|nK#i7B;}7sb`x|4atzgR}!P%bw0Zc)$A||zyx3oUkhR^@maU;unI3-eR>wMGf zyfAEu7YUqDwYxv7SLbM%n#e#8rJY3GZ(spE=2$GW9oIXn)w8vkmpoe((Laoa1j@=HAWv znd+GEn?-AE)si;=Ny|^}n&N*SZ~rm8A%;P-4`M3~e9d1%kt%)550k9~!6NVO9zQ(y zeLVbg)5ioJ?^V?=sT;nXtbsc_+mXp3N3PiOTmaLMk6Y(kX}p{lJ_bG*L~F`|>eC5) zq$}YbZmf?zf;%-WN6V82=;}9o>EBQhz;OpSll8lGp1fp`uD~C{URkJW`@zih=S7!x z$2i^t7m{d)TwPAWCG50Ql1@48O%W;b;hkPYGHkI`QnCl^dFe1}@FnMb=`JdOoz-cn zK%)KV`kbF~;?YC3`4+n+xydz!0OZu6IkiLbhJvyNd<1(pR(yq513)my^&ydxJ#9&K z#>OHI`Z0<-w=ucc$!`AN=K*CffTT-R5Z0mkhzso_7;1Tt0!Eq?AXI4P%Qz@EV;%vJ zFWOP>M_LNDyE7c$g9Tonqg}ox`I%eh>N?4(IINXR?#1jr_=^Dn^mf+-UFvnV1n42Y zQlg=?VptNC*#8h%^n6oJOxgicsES?vh2q@9xfr3NeCmJS0(l@Lhc!2cgt?gAo*>*g zv!6jhd(xCT$fZ<`vb*$W<)+m14Mm$#xXa7nUp88o(-HeG%~+d7{V+-*WcL?qV)!TX zRsIK<%1$=wQL%9_`}q-M!vdMnf(y(%TC=qrSD!YrdFw^bv0prZyq7c(_u)&>Tp z?QIc&nxxC8-B;3FZ*Ud~?q|NIkSk}eu1h^43z9;qS4;a~3bf{9sRMc{p=GB|7(@O0 zHs4$UkmP>TfUh#Qruqj>+;66g){P|ku3@fPgNweQ@!N(*X|Ggyb zultlEl$%IU8p}K0p4#UmNBi-;(rj%7GZEcTOmQu7QvXADvr(VBbTS-~=9@y1I_l~^ zRdX;&24^XpP??1lk!{Jf*)tXoyzHf)!BreAN-Iwi***JdArack-!zzodI`^$W^|hLiJ9Mn4LNP zt}lE48CS*#PPdG1uI8~6iO>Ln9AKw$sR;{A zeZ9!lrR=*k>EMY22xU6dRI9&VSWMt@fNi6DypB7NF1i6sfawIw7m<^yS??Wi6w?zX zNo)+^%Z1C@i>v?;0Ym78UiII5g%b%poJZZ~Fug=bdhDG0QumnWo+7TJ(hJ;Pd^#W% zgWIOP_?xgosER~+y_0mI$*qkwP6v(ua(PTKhp#2co@CL(C23+qRU1VJnnh+GtjIqS z;4-p!-J`Kx zA{$vsbldFy7p-?Q3bf$RQ@H?jC%d?k@YM^_a-u~^Bv){wPaEX{Wsx9S++)z@%nX)Y zRJ*3_KG8fAP0$_95G-GFIvOVyNES#xz4XUP#3ic0sx;a4cnmfZo;3pyB+4I4x`n_| zlVv6fU&Rz`uM6*{ov5tKLAjutyjpPmF=n7L>9-DKRbrd9qBHp&sDFDP_6 zAPH(mDr98j(8O?+#s?_{a#@RJ+-3#O(7Vx7yM0<1q&zA6hJ6C6;U1&odpXjYEq02tslnO zh(x-G!QW!lz8xe1eKzzJS6;p~aPfPxUJqeX=;Re=GtK`p>^f_cLt5w-*B`~Sap$Qk znG#dkaG52figHDOK|l-%2P2x!h?X*zR`|+$o7Ia_TF3-Vq2bO_N&GXs9oK1fS?{Zt z{GZycpPfcTxq>2R1 zGLR$ohb2K&w5*F?(DeBYV^uHx3AM5gaeATC>z11{zzJ@Vm9V%Hgwd&#?s_j$P=%qE zu|D`OS}WL~QX?c?qg`l(q^OaJ0uu7{m2b$5&|H@rN6U->44OJng#@7QVihxxu^Ed& zofwzO2QVBb4%S(7HM?pe7CMeB?A6d33Pd^(Yq%MO#GSt<2b&}Fmnx?T-D6c%#k}+nlZ;* z!{!#roh#8n$uUCYnmaXPnz?c%XA$Krw+JD(6x~Ywe)|*l-Q)Xte7^7Z>-BtwBFsJI ziOhIjl=}TNAtwrr&qH&xYT!$=I?exLfyktitjP8IA_EiOZHP#)9Ped0_qQ{UG-(w) z#J+W6_LjF*Usl{*QIhK^dff#enku&l=3@Ei{X;6W*Xf|vV=>RJqdXVYrBV?~L<1^7 zyxu99bJQGP@mx-#LjO6(XRb*CVkI~Z1mYxn2>u7ah`bx=5y@Nn=035?mb!2a=9|U^ zrL$86{5P?JdvD&Q5_%B7WjH2%9*~`}fcs0k5!Vl+ad>+}*363INR28%!RCB57&lZQ zlzqOvS$SHvTB@CJ`Mck7mwOj@UBfD~5{k3r=v-?N39>m%zWbf5e z@!I$;rFl&|2Mmv$>uj}KVd@F#cF4-@MiO02Q4K&}@H;Dc7MXg?&u>j!sVh90_i^MG z`hzBO6Y0y>bobBNqwlAw@`uU^D$RMN0HpeQrWQ8vB_H>PgiK`1#{P!v-j|QC@VV?1 za)A?KXMBGc_RZ#$Qewg>AK`p0+#U7T`xyau(!S3^V)~MnKrLR9XD)}=@C?Zi1yjdj z=#1Jyu#ih3;7fLRsC9&!%lv^NroD`}_j`8%fqmx7ydZU%5{&A zO}VmXq~{H7{@qVFSdVZYsj0O4E*;F9IbLuKHNRI2`jgBa<9oT#X*Ud zn&b4B`Rop`>bki+Aj$4w@iAQG>JSK))dL*@Sc0MPx(%2^N#n!BMLbi5IFr;&FGS%k zc5W4=+20+su?{*#mW5K}+%Tu|j0W%^DI=^HgL`x>E*xVIVZ6!^V#zzw znH@PoisdIiU3FESAB`o9dz19kYcs3;`^ouWZ#337oGVSK$}|BT>rQeB%#C(DmU8az z7-#3!QojsNN`;C}5d&Yl9DbuYXUDOR*QYFhQ&ylgf!)3-o#>Y6PjYm1>|47qF9-%{YjoBZoTpWp7m4vSp|TlJf37tYGs z*o@4}x8x18YUAP3;%JT9K20C*>l@09k1at)qJrIJJyDKcQW(9%c|kEv=^);(aD$SP zmlPBT5y5<8Vnb-d!s+=`R&iSgsurYp8HUedvxL_Wxth59&DCNY^gJwi?(XHX-!F4H zF??m!QQKQU42@KhR+$caaKi;JMx3ep^UWdbO}?jRW2(ut{XK}iroqg#83o8j$FK5e z8n5`Aw|M<>oyuc@@_`K9OT{;7x0=L5Bwwa&m2suNGP-_B`aR1nSC0*nX9Qfq{g|aF zPgwA-gcXvNFd?5pBw#5?mZgN>8$)AB06K9@IzqtO6f{Q6TH^0)Lzp!2u;TxUmx=pT zOrp^}3S>t!)3P)841%br{Szb7SH5uwR3^1ig{uwzJwYZikB_s_w4s%bv#5i!fR3xK z{qtMqa#|&7#Ekx`*J7qo0}n|*0#MIcI%Z3!**qQ_|Is8E19mOGyadF6g?CNaeXxip zkBd8zY^@#41A_Av+zYOB#8>;QsZ$A)^pg^<$ zup61IKg`#VCViTMz3+*dm(wb7YJ>*ba$IBiWLgeQ*Hx}1na%f#YUmpL^Ol-i27Oz$ z`eYM4`3w)XN*+OQjuI9-3*?g>u`s6lfcN(07w2vq$aan+ZhYBZZpB9YeQpL_0^ zra+p5p@$}<8JpMmeb{~<>_m&zyD}rVSyv3T!%|vL7bldS;NpTX9fw2fyhed4_WMNjc3(bx{qsQm@ z9fbk`m(+X*HQxUK)*eC^t3uvg9i00kKlvoY`HR=b4i)&XcQyuV1l9fhp5ogGVHcy? z#%FK-1MCiezteJLycg26@-Y0#k=2R4tD&;L&Q`SszpZr9ULaocdm%!=7UL*F8#1-a z|3orBNP0*bLiFPj@22L#JHIctomXCcYIv;4DZ|4yB~XS}@J}_19aUV_6Y#2=iEa81 z;8PWOfVJLhPLnp z0ABB~(jVfb?ZRKkT)FBZu$Dw9&;2T*h9mt-tBgWvQj=IH9e!nOIaS&M-Iq;17s+OZ z@b~O5=4TZ6SJuPJ9{?_wk~qLv;Uz>T z^BUvdn51hE1lNVkU}PadcAY~wtGFrlt!|{OfWuBg zPJ5EtC;w%^=l5RyGJC5dX==zNI=6JI1M2c)v|5DETKkRWM3|H=PZ_l}sRwlH;@5MP z@8ixs+<(@f8gu1|_RX`^T^@`?c|+N^jj4~`t`|Y_J=SG}B)q{iX%g*AjTOnt={mO@ z9PLnr8i+!#8VIKUYIwz}E%C4Z8*jH%bG{J*GR4j176^tdFA1v#iv2N`axF|#2|#F^ zH%>nG_-^$9%%XU(s3@rIjIe?u%mB$EDpfwZgAy!NfLLL@r(aKuOUk#rfMk33M>~8z z5h+vS0B(v zPsdm=^TSbDy@$8nCA`SEYjd3K512}?%}dlB?cU8enEVj?YN0mqSc5)qK<>%bA4T#x z7n4*={-PI=qbrwHT{Xs-C{Nc?Mr%k{ZR^D!nSmiN|B8%f_)j9($zWc zX3cM(NS(dQAGg#ey;J*0r4QnF{#wBNxhdiGs_TNe{Cpao9*!F3K>&Yv5b6-^N(|uP zd~SE!aoCb-`2q(~xn3UrBdmhBgzo<~ob2)nC($=I^0?{l>u8Tl5=Ku?S@o%{#KsTW z`?{j9p@vIKgQ>b)-uGLF?g2|yP7&jcYJ&u#LuZ3Ci%`xt9 za{Xy25WW8}QRk>m^GoRzRLSOSYo);G$mzl>H%79=d)J&CzfC`Q9Fb`hg4BhAD+uwFem~&YCTVo* z&1Hnrr1;3AKOSQ-3OqX*;lfjbd(br~X9KDnW$jYlagMv2@7kLWVK;sl?)`M|dfC_e zP{Ja{toc7c@MsgetpHsI{Vz4g6huSefkd@Bsk25?=_7>^B}2T<*wT%1l{Yor`H&6d0b@cWAyka??QkwE+BAp_^*) zWre=}Vi%jWG7Ami3_qdIAHKEx*8SAlBQP|l|6)nGz<;m%Z-}$l^{2mny^UBMoSXC} z@Vv;ff=K34(GY50iQ1y=ZLi`eX_zgzR+zGti6IX|_x&HS^*nF|eM zXaMBd7OOl`CTgroL_~8^frPyjYj(-IG;zK=s_7gSDG-|fhG^Y`O!RBT z@B*220S=&MXAzIp7Q@O7xV`&%*!2}C$Ez40Z*WRlD8_jqZwphG3s0=r>~EPYOZG)t zalloWab<%RmL3PzT+tI7a`ks#|EZ(^>deQgqv{HGvfu^VBCdm?t5?bf?e;F+ zl6=jX7bcCZ;Ex#Uss81h2~C#e+qs?=RfE3aSpUuXqU3)75W@aJpw%q&{vInb`xP?5 z>GRI}TNjF`iGI3|2iuwz1|y`#&S+Q1Oq$nu?Hktqa9m7qeV;g?yXj+sJh4_xym#!& zkP^t3lXnh!=*wGIGvo9v4-(k_)|jPnxX=REVksm zPkSenqtyLkD%>9Cje>M{Cy+1&HF<&B?X{zCE|Vzc@%QrI>8JEw={Nm3cPyk&1m@eD z-!vxCsu~h)uY0R>F4z0hY6vRO2W*wv?&ky*PZ@VT=ah(i!Hyn%EW-k%QE8EcTM}9g zSL3m$gzx5$r*6Es^xcKot7UE70p{-T-&`VGy;Z{N_d@J?L>%Xsg5CoTvaJgC=(gTz zYY=PJrg^9G+Ll3&a=fIJW(}7_w(zO&gVmzqHaqj$#x5s4=Ln+FVg>Sk4M8-=1zD_1a zk-ax&40|DeJO`8kSiTyX2+Ku)b? z@zjP{+wup?Q3^w3cQV5lG?X!$t!n33rRP*%LntHRobMhSKUYI^7|mAf^HJ~ej`xD9iYCk~7mo`2~Z*gW5?;7crCOAsY;90w(OQ#aD@PRvRCh zRRCh+-<IuU2lI#zb#dXJUQoge0KT;$1}_%dm|3<4 z19BR|PCct(RWs@FA-_Fxn<}1zZsZ3plmYJ%$csG^!VPu94J*MDrDHrA{M#vfZoNvN z1k0rA_AivREPz81|4bOR=R;{mGucja66yYqrsurt+mw``aL6i7j|;N}1#ij1%ar=D z1zM{Qvf>MF1oVG*JN?!^tFo%Q%h$YcwgPK#_TAq1&RW*Rl8*f0!FJEm@3L}aXWsfv zS)WwuF=$e=r|BBX%_)irTwtI@(p_P_(;j%7^6^kRQ4M>IqML_N9h(J+0O^ljfPML* zW&tMN5EzMh@Jj2d!zPDaZvm70%%Z2fQ4J9zC4Qwk;3bb`8uVC9Ihnu^7ixFL{j@LE{&WTBIlL4a5s2 z@iG%*y6!kXamhrlpk6rXJ~3)keksVwRcQuXc#5Pgs+8djM6Q!2|J6e;uRiN@sDcDK zF7kO47AIZ4C~QQw1QOlD6y6log;%|`rmcPIJq)Udn|<(6#h`Hj1s+>_QL~%|@~S|= zulm$$blk=^7@h9#ekn0=lR=h6DnPirervqFtlDaQR{~yE<<;t0p$-64!NJ)sQ6SpW zTNb9S2V9km1P>9V{%MkdPX)IGSNGMdFK2lpprgZWuer;bQY|CDireL+8u!0J^Ariw z&iqKbp{&zu91-u1W+kLV{TquP2w3Fo{T@tjd1*}xZWB7$|0UaWzw4yZ#?eQw=qpii z(3+Y-&(k*1rebdkuM2-(wSFoGJ*MyYalyGp^88$U!;s(onvt9Z=Mw_izxJAf`rrAv zY*>I~9wa_Ss{GO&)&!g&dR{yHUw&%c&{$dgzQjW+WN}yoI(QJvxxg<1$krRqfNR zC@06Y=48DYp@0|GaP&ZuWXp}Nw0U(yG-7mp*Q@xuOPfrXEe5`bfIr!VTi4c`IZ_zjPz z+ICuJlzk{lN;n4nbZOS&C0O%AWpbAjO6DS(JsGj#u@=f`wi@bbH&;s0QFm$oM!9zU zw@lN^3}8{yhQZfyA33E8Rsl8@Ykgd7izR~{xs+Y^;K56=-GWuvSCjK?uJ^s!Yvn6j z;D^t6lJFQ}^n-#^!Br3zeQ7o_6jYA0dD4FQ85f@ZZGW}S#@899zS}F_v4)@V4SF&~ zJYl3BVOi3jnFrBYY6&X;f^WGqu{nFd76UKbJ_~Pj1l~V)ko#wQ)STIA=(0W7u{v7O z(eKeOWq%Z$c0Z8MQVlPAN|Ok$7NHu+EhL2()qj;pjeoS?>_*N)I7^s6{oJ%u_S(f~ zrs+3R7zRN|zXi*BK+f_e0kg7z%8|j%(qnKVnh+u4qAGu_H9Gi4ZK79zv9NX5Zgfl^ zTK3`cx#AHtK<(697e$gQaKrpd92QP1l*UvjNLfPZoEb1q$1}9DklTtch05fVw%zlR zT$1=B5}F3SUlm@NYd6oLvUm&7SjZ?{HC$`?$Fkkc?grrziNxMb_xo2q1Ob%IS?ATyusc<%*W`>yR zH~Y=KkSm7uT>Yk9Q9nc64cl8EWVH`IjrDvl&Q;XiaEyELd=4gqvl8DJW;ZB*OK*3; zH~|7$<9nEzthTc#4;PB*{S{xJISv^zumxI?9_^B91(l*AJLW^IsBe($>Tp(&kh zV*o6OoDbY9u~*lL&}?P**AV7jg2vCce+}9#J`K!OO-bRM9GG;jG~p@VzC@eE%gg<| zOCj9q(;n{ZT^)C#G7Sw(;{`bua$(VMIvado*foz3JLIfN?m}bqbBDzTr}3 z!pPG0S+vV`eyZJ~%lmr`m*OJg`Lb%a227Ld2mO`QF#90P6F+%+(^i^|_R6=dVb|U zK!%e>U#Ft~fs%-+9IE)$$9^w!B~Fb(lcMf;oifokDz_Eyb(^}kq&%Y#8Y z=%KPz5B~|Mq1;(l&*2!tuY-g z!0(3neeKfBfR}UHiw{No-l?jcdNHr<9>`aiV=Iju)@tr@ zdf~}FM{I%*OzG7b-Okf&W0ZL2%G*bR5_c-`I_YPEr1;z4kI8kfEDgvZ@AU4XR~9XofE7Bcp7KYv$l0l3 zU%%ms$U@KRk4rPWDqQ0$Vc@m2@rB%;G{4MzjgX}`w|HQgpw2J zFtd5RP5&RQdqv?_bF9+N$g_8@j(Pb@smbk{-lz8>bVPR!c*~nYGCE9U2S9bI5cU0! zYg^BV@*EqAG@y!egA}LZh}V1j9_wK4LZVJYl61~Z-D_v$`L+LYl`zFrkKL@a zID0h`)AQK^8Rn1{f&}QnS@O5n;>I2wz=DA*|CBGNjPG*bm5*-tzFu%bxs250#M@z; zFdpiseJ0M`SUB+?;K%21{Vb>zfoboGYKPYX zTJ0Tar!e+3b{eCOz#7vbI3xWWlG{}e0(Gv_$aouw^e5jEXCOuK!siK7IdB4opDCN` zzxl$=>}lp5PoX~|t7p8IuRikoV6I)|llwQczZ?9^nF-!-v7i=_a?Nn!^3-eKA{T-J zN1B`Ujg)WO`+uG-Htc_Wvaj#f*l?Na^{E$<=ZE|(Ejm@rqYUg2fPj-Fm%VE>OB zN8soBNbRt9@Aerw9kDMG(Hv5i?5Ry(&K)fg4J>R<$Wl~}azBI4`0*hIFFPtqmYkTp+u%K!ksRz&zHxHZeaoxa9&ew-c3H_amwM`HwsjUtAmKS>R&iFZWrOW2ujVNg?Gv9ZJ z9HAvDJOb_&9&|td4rpO_U^mG-M2?MRzr2 z=?VIrqraby9bX8Ynu|Sg?OkZevB%m+7U41am*&-YB&EJucc7Pwy}|jW!o_lb-v_&$ zXV0!w1m+qp4mJmO*hm$=l{A%F4Lp?--Z&yp{q&Hp-!jYkO!->C8_nF6)eF|zCsg3Q zH`IJjMO&<)0{!xRWTl}1^vIhNOV5n|15}^;&f)XR^ZjV2WwW_l&&TuQ^J=~a1OxTu zHwHs~=mg8SG$E1AlcGmj7Pp1ohQIyy@ur@U$Q1|3kJZClA}h8j{F2?rpR5WQU5LNy zX8agVu8g}szx%HJmtFN!jaWdLU!@U`QNY9wg|yxy)c6=jd?hIedvp2|p`$5Yvx!5Y zK-d9|9Kt1(K@(iNk=e~nIWT=B8{Ku1{^ zJL*$mvUSru$pUCH?=mD;YA5cLn(`k&*j(2xO{5&kS7jn%#(7H!4f^^gSHCZxGbxeC zRb`c=o*--BsoGs%aN;TMfTcx}VT_H{p1V_k73{3Ce6JdEHOQzv9YZQF+YHXWTMW&% zpjPLJJ_RSs5?PLZQhaI(Pnsh_+*{mK@fl}0W)oVMm6;f6G}IUc%8a^D_dOt$C4?oq zuMZ|X4o}z-LlTUkWeV6Rmh@Lob|i*>U|j6IbU7ehNE}IpJ>j&w88`7H%B@GZh~H8a zor}81*Gw8H%vE~T$B~dTT1cP9C9x_kEUlMaGJ<2Lx~=(-6f9}tVBgBXp)ve}t>R?r zNO+Y3X%MPleulUn9$M1}xD8BjGcy5#wD%Nj)z6w}mT3VMZoVKl4nZ39dn^oLQZiMO zaG|GY zrnm-4&Z1P7eS3t1P@oV~!$-TLMGs{8=eiQ6gEsQLtpN~WrKCarD;~-h*7*UBey*3K5Kjj39=pS`jg6!ixi0YKB;w1$7qZOhA|+!lz;d^Y1A$D&uB+Q_g%AoM+Mm0#=+B4n zkO0KD)h}!U(RyZW6OhVBsIyJS15DH{?Tg z`{q{=<+h*W96F6me2(eOZs|0{<%bIXGAs8bCCIaAYE13c17UeN;If&fL#SswT;Ku( z7_s&+z*_Y`z%j>qq55Lc1Pl)v@UZf+GMqM8Jws%&exn{wR8YUJ2*-5}Y49c5+-N*B zLNw50)hP_~5QF+7lasLGK13A_G^53Dy0O0B7LKd6kbfS|OXv|s5&eQtdXCSoJ0OV< zV6Y79Z!Mn~XUgIps_S>*emluaA*-pfvi<0Ug&X#eIA7rdbWy%2jVLt%;7?V%@*7&2IUV$fzHxCMjTvq}OTa z)*~hJLb}9M8y0aNc@0bNDH|n`v{5yn`)#Q38k@3I7Tx`KImU0_#9Bd-Y;xKMj~$Mj zX{N|2t%={rQ5tX<8p3Hl7XS=e7Q>vc@V0NYrXA?ocU#>tHQR=#@{T~@ODYzig|SBM z@59)N5rF#`b)5VKR#+*@YidiGNPpMS+R3e7&{@dAm{`wWFBt`TORxAC|OGu6~^hTCejK_Q* zE3T5712oPWWj)$oE5lvLy;_aQEbzQiWN?AO|D2{wOf3cj-#aCsEjs1nIPvZNH$UN! ze*CAP>EvK?c1s=UI-Q}e-E^j1rnLqW?><1|6tf!9u#U2q1-~wUhE;F$sWt@yTuY`; z6Nh?=B;%8lrjC(SsCY}is!QjS5Lmw5=ktBFy^3;!?{6^ipj3wen(r5xB@ve8h#-_I z|3u-u5i1JkI$+Zsl;nic?dyum`@WjIe%;prY>y`uO9P2pTNLzV-vV<7p4?t^pouq- zW}>T}0d{NWtpWgD(+A58a1-)g1Ywu#vGcDhs@wF41&?kDi4b0Idl0hm_=q2bUsfEl zDqG)G;+~$~C^E)XF5dxk2d`^1mgHTX7`IM(pHUnyZW;(CcwupmVqP2>KETIEo*}?Q ziKk7RT${)W{i{nm6pHJeC_iG4@<`ETwQ8D%{17Frwlq$}XuYiEdrKJ^^n%P#dIebyF>Hw>uJ}NfqGV7F{J+ADB zFfID+yKJVP925&^e>TV4PC~gR4-mf#EI^(;2?M*x0YK}(t0Xjn%DB@hU{7AuY#=l6 zNkyU!J}^lwBflp7Sg=-Gn^!!Zy5H6;2YmH;f$|3PNpFc-5z26 z7PE%XApR4xKH9K!iRS5XJ=-pkuLt=HdcW0#bP;^;bB|WDZ0q-{V40t^HVZI^n#!v* zYCG4z3z@LTm_w0|ZLRZY01Sz#cQt|+C4|0nP4GDJjLfW29WdgY%(mf-j9h^OeQ^(B z7j!m(mdO*Z>SJnz%&S234Q6EfhBsFvlRKl}yvw}O2!G1J`?~P^1d3x~;xp0^B-I03 z#ran_W0+tJK>!R*&TrGpY>4i{sqLBHwv~CW3#aElHXu9gT&JM06oa#|ZQDL^MNT$1 z5cNgfL?$isY5dvokWDZy$uP0>^P3sCO4A)MNo8x{@ z*V9Yx@=C!3ss{lKcg`XqB;g8Q|FAH%At;fk?ao#E65wK|0l0Pcx)Cfdl3 zHymAdz5q>tCalsZYg}cLItq$t0y_L}M1u4%#gEsa?2+`QNPEiXTimnCWQ}BbPLhH) z^Fo+3tb5S@jq#5mNRFUPk6H1d-D`6_c@o1`0D&6>)vpSFiDaL}VUB~}9<3<%OVQ~V=xQ$7qmpkR*k1$%v;1s?r?&W$IFOieIZslCj$45fg7p zv_2d2{YXJ6S15dkTJ^g5#D+L@WuyvwUy75g&3hR{L}=9-%T~;dzxtK-mVO3Du&?vL zO-C7$%6qt#IzEILZWF2;RGr}lyX-b;Ja*&|Z2K3Ulpy>cz?Y4&)TsMfXa1qrG6ra$9aBNE=Rs!o4rvg{uLF?k zzY;?klG?@(OBPYH+WHmchg|q791ahX6+zM>P$PXO=XAa!M-%FLS zN{Q1!JY5ahC`XPZ<0zc6TJS55I5DZ^(w`F7az=)H1sHZoV^gJ~EZyf;Tk#2~tyw18 z`r74QEv!5$Zpf@i3)B8PH!mqXl?Z{T9DQSeMY?%WqC_4{`TzsbZ#Qt#`COKzdmcpheC^c{3DbJ0rv%T}u)YJc@7VLLl7{c)SO&EkPjwuK|5tKi~eNB@FB+M2g za2r$3V=RE3ALbj?SK(y;iDa1Rfig*b`YxE!%lX8_?!y_c4|2nrPpm;!bvx_!pL8-E zEg_AtVi95iQ2hFz=Que|w8|Ct`3K>6h}*rkst>Pn3jp@e{V$iMtzCc8y5(H5U;3XT z6k`jdQxvk-C;h!;uTw3x?39omSBsoj~pu+tUhwZ%QOd*wl@){(?;}J$7 z*x*6fIQ*DW#mVximNt6@h(-K~Ykp~f&|Q0eqTAPR39TJs1}_xWWVg+Nifw zN&#b2C5Y@J`-w$UmqY#<`nI>K8 zMqt}@J_pmET8z4JLY(i;Cn3<~Z?BOsKMV}XTEAVke1U%h{o))gRx1G20!Ch7c@q3-2xn}_qM<+~CN^`R{Z3i2d-OT~Oci%VK%Z&kdzGmL2TwEz%AK;F#f zhY*H8e?Xycosd98CScG+*OrcdH*47T2E=r3b;tPn1#@7f*sJWbIA}naOc* zmm#`63sD>@E~g$Mw##5DyGG%f1p4kJY=5@MdgI2c*;yT5X9{?eG;qr+4eN_g_8whl z#_~;xMCBy6Db&}m3Y}a{sWbc!5Riueg@S+KwqGXd86k)O^O+riC!)?3yo17nd%~Cs zib)Vu6Ut2LPvS?^akBX^IVhR6!4Chj%eUAmQ{y=9kv93v(K*mJ8;|9PnAH$=$;xsE#ijQ)sta8; z3s(Xb*OF>$Mvwf#mXXk8>E0aO*(`~aB8DTFX*y=#T6ryC>~@f7OnqJP4LRZ2b#QaF z2XJFc*)KsUu8<@MMdf3L>~NDCljs{~0}w)0qguKzX?B+|GJg&K5#>mnXVviAjR|O8 z90Z9$QTXY#T97Fd4+}j2Z)IE8s|_)z$N9WVsDoqNGXV3#M0*%CzwM$2nmpA2r{SO- zBP<@cPkRGWG2UD_{DiO8M4jYmGlM`Nk-{L03)oCd<5 z0v8r2L`5PaAYF$UKb+IiJPkNdKPGqDTKZ^YNJC{eJj32Pn3pMF@)k+dbjWvUp*6@*8=L_*n#`VahImjFumuAn5P99-Olj zxWdp~fBO0Nv3BwvtFSdlgMc7!rk>u%s`e3;^Q@}gjJ*66qq8;wRlkW)+^{p>RL2VY$O z*`fDyWx0+f_i_*Wt)Mw}i|QfdyWsdV10)1ZROjWKuEJu97f}nt&zJHCf^@}D1}cQL zLc5@Gs5iUn##v-UbW2j|iS5qDqyX&Ukp*w=pa0qNHkWqfn1xq?f^k&) z;u21tGLtj~duP(6`gsJGgO%Nl-)GLD&zxr{aX*{QtP=6AqW>*me~b

JECCsbi&S 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π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

O_;Uq`*r~)JzkNi# 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%0A+bjc75zyK=b11^Nlicvoo|&J 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

#O2-=+ELeap%U{dk+Kt(Dp>T^GGlx{mrCF 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

2EGJCY1?7LH_`xT7;UQZQ8H|FkH&3 z71R=eex8vzIch6};FlwV4MZ}Q>9cMWiPM$4(O4MFfst&yt=yyvFezkHlKVpi9WO=o zY?L~vxP-xp<}IN>`_yca)Iu_qpfZ!2h30EtN<~Q)aW3$9L+aXa(TVzVX}1tuSzqoP zz5QMu`2dmvP}zBwjAo!#IWelCZeF}0;%@G-a+g&^M{7MBiD%0I4onXTeoVx0o0R!O z03GzmMBjjz`|10R11PicO#)j`jw0nb)C4-cS1nV?V~PM1c!1V`QLSoDL zHtNl5IEKC5vWR{;hRY{H#kC+1K;^@sM~DyU>z(0RHb>bmbJUzI_=wdSDlEfC~uCfa#F6V*Ya0wCRp%y40y?9C0u0E&Yw zhZ-uL0R^C9z8xF~OrlOD5OEZ+q1FEY5XK~>L1V>o{8Ax_B<`3u2EaF@JpNEp#@bpf zrL@ye{E|5d11hjoRv`#3{Arw05AhA4`*oZ$M4&1FXxCp}P?lHw*3?DH(E#u=VDyf5 zn>PjxA>_1hCQCQc@vjuX03t#=r3DazEUA`bhqPv9E{Dr2R{8so0xjaIrinqH2(|B& zjEViZbN9(!e#*%KQ534Bt;(;Sk>kJWH{$M}VKNKY@L_@mIOKCwY6Zg+AHZo!7#|nr_aQc+Zc6C?KF73pp38%`R4Cc%tP05@no0S0X{g5NBwj!q3gh_hKH0PQUe}AT z&}-T#!+HfHdZA|^Y5{OK1}oCv#czzg`1rxw+fQuwtF^YAO`j7MdG=1tmlqIhyDWsP zlFKIc>qyk9>Lax05@1BK&AJ1C7?Cafvk|`Evuzt5)sL}l`#vtmw(QuGVPovL@|-+L zXONLF63hXeCIl8p;F*oW8j3Jfpc-?J(Azc+4$p&!M$bkb9uTAoX`l_(VA{U|Zc6;y zwBzILIJM$!IF;9pQ6{s9Uajp2F%M$Pd2wcxgqWi_DOpg`l&e+PN1k7y57Xy&emeKR zw6^~EO^J)x9fC}=?09v@#0q?1hm@I+v0yf#!xIkqqBjG)Z#kO25 zW8$^qgI!eqo*phH{Zxhk)NeHsW2_impNsat1=_LjKj|2FZ$$_7Yr~^*nu7*>i)35R zE?m2Vcn_4(6%A2M_fDwPgrPM804sR3weq^KY6Wkedn24ducDGnVJ zTq~usyujE%$~(q*T{b%8Z%31o>K@VbP3ti;9qp z<04+HwL~H4f(9fRl%Zjz%^kBv4z!5fBxV>H7t7obSPeSk14i+ zy7QtWB?_F=r{uATn1TU6F=nkO)T*O$tW7ZpP?Rac=sD0dM8P7c2P>G<+w7!ecHM5Q zJdTeVYI!@>2a?1YmD5)WNBgoUI!NOTS0IHz>yk0jo?2CmP*sz9>Z!`hM##{R%W78KP3TFqZs3F%w%sr`=qE0j9=2I6the&r~;Iz zRDB+VfKQZ5lOhg>q&FOoVqDAz1bKZgcHp@?-V_Cp?`Ex0kL9^DD!T_c35d{^w-wA7whD`NasD^CVNGFvOVdTY@LVPZXtP{{U@% z%tp0fz-UasEYof!cZC97k+_8{B4+V@VWaD33QaXca~U2Wv7TD4NW?0|KvGjTMP_!o zW?&Ocin9Hf$+f(GAoi4 z3z+j4;Ronj<1fW5U6*U^9g1%2_8utx$+o?+S>z`PR3xMcrI^YK5CA6k=k0zeu+bZ1Y*GH2QgOCy5KO~+3Bhw1$u8~z00vr2&VU}`C zPaQ(?zock2Q&_5!3o!%`bK`L@*FngfZv!lZ(%*qyIFJotT)+IaX|2Wa7MCK7EJlF2qC;Xpfps8EbtQ2Bp~ z{498l%uKcS9k!NmsKwUETz9n!_- z+QRyJWMElE)F<16hfBl~P@xTDMWeskI31bVyBBQse#6@xpN%fjuy&r!g|%Q}$W%`* zB(ls%m?%I=2|${G9NEaCsbbXr2%rg`k?>8@Dm2sxs*=Psf(sYFtVbCACx?kmcy!lE z29g685(o@>i3yT{K})Q+DD-_j9u%j-Mr8SrIxzt+<)1qz;u8_N%$`Dx#w^SkoX5;^ z0CzsF88@ZaNU%Jc+n&0hwp^9HGp~X+RMiJ!~9gl!`MlIX3&dvL`pzd^01red?2 zBI*Oi1p@-NCg}bp6-H{KC13(nJHD*0yb*bMLI8e0k?6(2;i*+5ND-U9fI#Tk>jiDT zLT?5oRo}}xoYv59xeS~f9QX>*l5(~rAgU&coG5tvMTWBF$Lr5GfB>C&e67*jjA>;A zn9fFqKpJXYnX_8&7asw^+7T@qcws8BsE-dq5&n_m{hqKEu zpZ28-GVZ+6qaX(VN{h_nTwQPG{6!`wOi4)-tfeL%Die|t;vATk-oAHK64s?G zt(1FC{Z0Oaw!A&3v^($cqC<;^ig7lbx3Hyor6p#V;fX?Dct`>noL)Uz_P=I!pI~jc z{h!-A4$;}WZUpmT;$ZDEO@-o?Vh9FtF7Q#O);{^+UM;bBrq50$&5cg*qzbT&Lw<^( z!555(1_z(!uNd$@5b#~1tSzeqid>vLUcw|0&{gBNewv9`QT z&;n15IVcspJIYxBB{!VM=Www^sAeS0P%OmEKm?E_nr-BCLTKnvAk<^bq?2#}L;wb| zG0Eme4;r2U@aD_l7+BbQJ|-?LShZ4dE3W03S^!`q@Zz?UV47igl4I&dl6 zqKq+TA>@MOwatKF%bhV3Dg+2hrl2)53mj801%LOO^6<^ZXU%zHL*_XjM0v?tmC7eeZS@%^+y0JtBddoVy-j-&RsVaw2P(=|!C|v6ne6ohQ z838|r;;6=xtu0HE^ZRA;j#ds%e3C+d^s45=%`zhVYEv-1c?_HA+zxneASFwD$2K60 zoqXctGJ%jlRnGEJGHYCBY9=!U+9yj-xala)Dgnf_0VXZwlRzIXW0YqA2}+PXSSzTq z?>hOtfC*}p4AUWICq+W2stq5G45o#X>8a|%(Pf@cgaSweIL?BrME?MCJW=O5Pa7Lw zM``yqQa^J$9Lcd@8QIK%EyE~WfQ*umj$A1WN|nt47db+h=!oo15Al+XBaQovvl`oV zUn*OVnWcW^NSTg6S&z17CA3?3@GK>P9CHVVX!A=+@(u%N>~E%0Oomz_3L-k$TpA{# z-jI><4VtRw>0d;Q=9vgX!^kS|y_LhpNTYCzXY zK~RU1H+TSY0it8A-$q?r89=?)u4!*JjR6IBO*H`dT=0&SgNu)}P5XN`4nEa9#RQu^ z6xg#ZfZSAC2=4y?a=r!pS?}g179U{uTW%Owgn!Q3Fz3OPOEP$ta1>oM5vh;1?3*nn zynJdf#lVJXz-xKk>E`76V?LD7n+rMvqU4~#Ln9aJPKvK02?Oz%@`S54r zFT*XX6KC%?VC|A%Nih;_m>5`?*i*;>@slVbPy-cC6kRQw$9ywutl@0?UJZDo`$b?& z!#EG9VbOH9zlZ!|V#ED?r(oJJu<8%LRR*9OkC?C~lFSW>X zACc~Vd%Hiro!IPt^Y&&exVtxLY`8en2?!!wQzWKoNCbdP%G6xNKTruZ1QN(k)9|tI zd`vp9tFI2acWR=eMM0WrhF_&{acRfHqZbJ8(TPnpQ6aZ#5A}T2;vWeqyn=v(m8hot z6flln!P(f`eBhZ(m?7pa8mV%cx_^*Kqm|j+nKsoo?&9xBgbMD=%7I3N@Mo>#^>WHE zgt%B>NhlQnP)q&50Z>2&j~aNm?DWxgyTIksNz+xkgR}2VVT2Gh&HLt-2G51E$T09F z0RRdZ%xDQUPC=t>%1!;~s%bGL3D7cFHl`wJ(R?Z&Mxknku{`e+y(u0QvyzKfAkgU9 z#*>yNUZeZ7j6FvQufm-dGg_(6-H4kvkBz{u?wP~puJL&k-?X9dW2lLE}<1H z?Ll;^-ceN)*0c%=!zzT8C>#>D^!yfc7jiQp&QCUgGWSM%w!QlH;bbsmDsE*JzChNc z+Tm;w{>hZ4_N+=iifgOAsTvc!2np_-kMhj|lHvK+^Jk0i8@U#6b$~fHN4|->PM!8U zbyDxj8xl!?e;Af*zsORnR&l2vA7$CLt>Lt6doDPc2JHJj5hW6-Dy3Br<#2X#z&S+b z4r0~d`a^Jp1TvtR+@@63hdLxFuDVCdQKv>byROlZxVRi4P~hQL`>^P%futQWE)0!6 ztDxieGrAjDU8}pDlZ`aWr0m#kG$K%iGgq~vrqA%p;qD~MKXf}DW~kY)#eeP*kfm~{ z{fWdSH(Q#o0zxV{xv4~SC!0H6DyVIr1Z>*$?HgDijiVSgLl&Ukt$g%#hOLKVsJ&Y* z0X%T1_TBdCzZ)mRKZn>v%_npF7&%FQ(#k7v&V(+c%xYtwgWSI8>|_4`Gk0^caAsB# zY}i2!iAgI=!sma|Zd}Dw8N{Bhw<#%u{qMd_c zpuIaT06L5+K7)sFxR^T@$FryUeUE0r6x@?%!rcwJ$sl45iLJROc@aVc-AQDWDL|<# zqjcG`CWZ&sNZrr@_sm8ri85*?WyvPvJhb&IJvdl&w(S&BKw#9;1;?k-3@rCa zDpaKbE9+661yx;O7--btq9{fo5_UjM(y7ICltLMHm7%X#I3wK00LgN_m>vdtICVjtescr^lGUH5xp}sm<06#9AAJj`*YzQ2eaAQ*?qT7V3(M)!)K5MJj<$H1qX^ zC6pjFE96t(K2f83dga6EtW;YrmRF`j=2*yVpR=sWmSLL)woo7_Qi_>z^sZEm1{ouJ zbhXl)=$!MaMi{$B!GH&Z?WZO1g(Altdy^9|UYuRz-GvQ-k%`Pmn%25cKQe_viy3#LR7B(0a zRfSy?R0*c4sNDs_T+$ERGi2KI z-&>b}2UnseFpW|5Jm5-$mH7rfy4Emn5XU0iqtLs?Ky?c#cqB zxz8enGml-L)Z5|k@1MXi+gMmXyR`RbX~f%SodBF+$tVCW>ZgSilne+6SJ<4wP*9gN z)LM(hImc>#Irmo&zP|{2``yW~hAuAK*t=Kk%0QU!3@PSWK$Xvhht0&Q@AzKR{*%Nu zJ)r!XnD}InXLOors1c(QSX(#GpW>T0`mYb#@G7J|cs1_py-gsF4IX+*_~OHvaO5W7 zE|WU1-s`M#u;i9x1b`O9=1)dM6hGUPa{F(yX6$av;VNDizaBRFDG-gJvoKun^IIT*~+nq*6$zGZR6X`D$Yv zA2j*FS@ROZNsmnzxu&{E1%R=&#A%(|wz>B~@k|Ls0EK4IX;Z)?aSYPSGZjHH z5pa!gDWz7Tg!74rGtA_13F*S>L~*8?S5n&Yv-toG3I64<6=uxOu0u!{<*nS(%^$7{u9YxHMEM8EH*d z&Rv#$hZdSPibaJ%ix)89eMr*Q3&>SaN~$mgYPCU~LHdM=P<%Vg5hgBB>h-v6^N1ig zT2Vt9R-Vo8mw>5K4A~-+%saSWCNbsBCLen~96E8i;dbwX8Qxx^(ge8^(lje|OpfR> z=~pPX)ji=UC+1LEr*`THxVDLCkXkyEM{}2y_H^KqJvf=BYrX zW}ak>zwx!&{46@8>6W>~etKrPGM(H>2`sLt!4kCqUH*ycll5WPKk!e9AM2!)%P(tS z&5TG4Ou)G)56XUHdXz-=p(=#T7A<5NB2iL-On58$)9fKXX7)FD@Z{c`0~TBfjHARQ znG^ytnoz|@g!AqEKZ*KYAw?$Gw4633EF#&EbZf6a@eUvAczsn;5BqiRfOs>U#<`E8 z_3=E#jR;nvs&Ecy&M#=fY(xZ19I|9`HVSHs?GrgTg>wL)s8>J&A11hH$e<3=vnB1Q zbZ;}~sfZ*5o4oSS9|_F>ngSyb~%K_A^PKvI=1*xirb zp5f1opXo6%Hu*5j;XowI;g)0~{{Y&Ek7)ErNGEv!u|Un61S2+71gTi|C;c*e=6kdH zf|IiGF=oTU?*`2-%PhOeB*cZGAQuHgh19HhuZuP@wfGju6ubLiPBN9UK|ZrO5Qe*|TeDpj%P){!70vnvDSj=*JfY@*_7s8ZYt@(Hwa*;k z07F|nYHgo4RmqIq3KTUT%Qd|sM(EGPruNG(bF2|k)IBTq>d=8Vx-hkC)6fQk<_-u$ zKwY&7UuaA%R9A2~Rh91H@**Y*fDj*_7^|+7`k!IaBmP0i2$bTbKY}xaDtD1>p!Cm< zutaYx%*Y*S$S5nBpw{Tj0h!CCxB!K-xddWkCMP=F#geQj8cheD2i+lXXQ-z#LXnG10CCOSLWkaG!Rap z2Rgla%9#qm6C@Nzmms`|2;(xS2RI2-uw@3SRPv%XB?$~mC}M|JTK#^UAV5`F^AAuF zIn)|m7>lL$!T$i%X51aNY(i)N0!gW;^QQ>#uM~l`Z3f@HJ;9{Y4Swij%}&?@{u|m3 zpZS{;{{TcR8pwfoWgZpc%P;z!s%c3evU)jglpsk7-lmBsN! z-oxVl!M$~4*r7n7)`vH-&>4zRgF}>rXY=3!FO~SIT zmCFIqF6E02FQi6KJUFg62H=ZCHkuwEi#K&X6QBJ};+rSBefd8>B-GNO$pH?bicr>r zFfZd*!h`<+sk~6cnQYRc20)0wpbFKtq6Z;W1&F({y{S-hF-a=}lGp1_sPOkkD-XVLrni)F0Gp5* z-s4nrks3A#3MbVCnUT*o1tI385gaI7sl+O1=>iFZhE_&o2(A^g@`5Q708j=YOwGv} zgxr*5M~0HBB}iJbQzGr1a)zHX{MIy7LY!3_$znnx5}^Rzq0>t$iY1UC69h8++n}Ht zs}3hS8Y04DkU!$Z2tk=#hUk7!!Y2fws0tRkxT^7nlKjOAP>hWN-mG&g1W^7UNV4w| zkCilF%Sx%B0+OoKmdS9gty9Rn2X#m&RTO2C=zSMhp(q5RBGD*LTvYkN6aoMsqETx~ zDxFbS6QnV^rIFQ7<Arh2w19?FaW)vVEPQ%+OB10@yPyWka zrGmD1hh`ZN6+HSY4b(GS!4_nu@U1ys03DF1bsySj54wAZMaeZ!s|^{riYz%;(xTQG z`f=w45XaZc?5%+e??!EUtsyuz3Wx=fR^Lk28k7?ORPwRY^AWsC1l`^!p-<7gfLqoI zRSyU%s!QF@U&Udqf-k0{KTmi{C?081mj3{3?2sTK2z!<F8Ql7ZVxI)qvk0j_{@IVe%0tWRBjKJeek8>@ZbiGp2;R@3WC z45Gnh4P;yCuN^EOHy_A9%xNi6K%$>h&-pI|P3*7!R!$c%C{h}p_DkB3It34K3UmA| z;3NY_M)mZ6y`YIL0wNxZEq>z40L9VCJgl0!7v%5&yQOj`HDa0#J>ih4qPA<-@dQ%J zMFF9+TO`vh5)oS;RT>R>fV#kUKv`^kcpe`5!e2cZ3$}GXP6Zc!1bqr(va1UsB7@TF zqzk%)kwQO|Vgr2wyh`<#U0MZE!Fj)?a7`oe3!wL&WB&kWdv`P0J791ABZ$@>L+c*_ zU#Ox-$8U-uYu>KYr~d#PVg%r0@6){B`>%H6C;p~N-$mJS^#wDs{q(7aWFvcx{Tn8r zpoCt92(LWZ`r!)XI3?FS`PF>mv`b~(pFDSxfKze$V!39bX009(A1=w`f zSAfi=)j_R*vial!z~3&E(f|-4E3Zo!i6;L5W`D=sL0}D{&w10M(;&YYMHDLpLTWDj z4LL*<5~y@$r#%VqLhS47tCB5VP)jzzd;+QgPr6uTV= ztl;`3S32^%%zwtm#3nBEsun}S^lJcK8&Tiis<0CcsMEb4 zs!GljDh)tV2~zzOjLA}b{BVTK_3N8O=>T6ZCm?b2F%OW8l+w+u{hwVVkFt_V zS#l~_Y8ut#ZXvlvFI_TrpQ;%P#JK}|r`xRg^~9av;IA&!BWxse2Akx=uTNQ{FP52;_# z->`dQv-^Ls`#ZL~GZsy!VC_wl2W#1}ux1mx})Jzp+l*|RUXqJwzH7@sZR+U5? z8J&^6IsX7iU)8P$#;=3;Uk&?vZI}Mm_ZJFHlMYO5Kz5C*V!{Y9K$>mh5ddPpDzOpn zJ#L-?9Ze8{tEVRC9$Oai1w7?SBHR~sAxbQ_P~L2?!e_-#*B})xlpq5D zlnbITdr%%VfNp%M4t83l_~xOh1XDDj7E^II5JEh|Fc`9DNV0$^rkYln`3qP;B}PD$ zMQ|K_#$Yv)1_3JkDV>SqQk-ClP=XMsa*U|tDI$S|fK0=p32?jC6eSVCc2vkC6pP)J zQi|vZMs6v?(ikC25xag#?bEpyVp6V%WwAt|-b6m6g@#2JBqaQ<{vlIlA<1Nm@U7ef zdI~~GQ*_<0XSEZJb%H4HsPRmw#1(6kpi26?&{YPZJm$LT#49Ob0G3M1QPEr!{{RrE zM@YyanPpXQgEnRzE78Ki5Xu#UwWQA|aqdm5|oWZzYNu4!xf| zy~w2I6$`a@wX#_245~8|~w ztrWUMiI}n_Mpaf%Ec7ZMh<8BLArR_`kf+uHUgow16rV0^mb4O(K_F4s)S~^q$b{DL zV72R(kVPA)t@9T(;J0F~>8n93uBp0F!=`Nhh!MjVi@K744qST55HDf?bFV@Ol*;QU zYAO&xBz>8_kicqchTT`~0dyS5zKO=^!C@u9LKr%zZa!LYf+{Z5HMb7E;z%e#HDRI+ zQSM1=X$%zv(yzk#^3XyD!luu1y0@}7Ap}$v0@nR-_0kczC;=S${6V}tt#!+nu4xj* z#HzPElD2=9uF9}P5oEtP4?Axxwt-*+XjMf(cH?*t@NXYJ3cK@bBv z(GZpXN_6nhB|P|FSO`#*SV4jujQ-0mG*JZ&7hf4i3B*{p={|!cqMgPK4CH$a!8J@Qlm1Io)pMz`1s7+H}}#Y2t+TxQIT5(#5bF9zzGLA*-pbF;Us5i}u! zl?v4Ap%36Sp$M+S>}Y-LDZMM5K98Rk$_?$;E9a=w+6bQ-xkjdXx(m@XfD)>O0AQ@4 z9TwED%V6R&nGyLSEk|4-s(@^YxcKSdf^h9 zv0UD_WTkAQm2TT1bpriV25Oj(uYI4gi;m;(?0F;$l$4SPauBiv%R+qZ3S+vY+4KbP zR8OR6C2tU-p1igDbk5b=c5ckrcD=uB#g`9e*mitfuW6oQC6-(q8Gmwr6wIg)8JS9> z5d|7~X?C6s!|uIy{{T|2)ZWeddiV?5=VaR@!tXbFHcg|mJ1=LG6L%l>_N+Ourp1;} zM8k7=RWwY#C-%*|Ywc~nZtZT-#hYo{`%h}d+cunO<}=SeCN?D4h-WJ?P2@s-W7!Y& zJN->1Btf~tXd z5NXM%t{OYr4iLh@-ym<-V!^=D!z}ZMTJ_Z=hykgj33Cp5anV3hQ{@Yq1uTOjZ3mQ4 zK+?3e1O-D*b>mtzQI$x#Q;uP>>d@P+2d~1%LWZP0zE=PTwan(h^coQd6@UWW_3t~G z6fIi+02XI@EiD>KSg28wRQ~{o7c99VL^JBe`beO6P>XU%nw*n&c$dnWnwv}L&~8vm zf?6`w#;gwq{3<43epfD{vr zOD7SKXrKk@`A11LWp^Mma02Y4Ff!a8eW1hj86ZsHfD}0U@zx&of8Ae1_UV#a(W&XB zJnsW$Iw+lc#h7SG0C75jq>#~?ur!_=?~#||l%7eiqUtaB%9Mn;K?Gx{x#{b!nQ?|w zQ4^7fi^0n_ZVhBWJi5_fBvhU))%vsy5NGI}GB#vIRwWaBndMre7UxSUvd0!-Pz8{2 zAcic}F3L5IOyp1mL!|`*C!AzJqH(!Exh0hr`oUzi4XKYw^jukia+)y|4p!iXuLL5w zM>BL-hROJv(4ax>d`z;5i6Bsg2Q+65$4a}%oo$rp-STEw{P;I9-1|D?gd`#?vmB@a zmm(2t*_yw-FX&Go9~ry+N`wBB1QJTP4@`;$$qdyA=+I$GXHXGWd0lRxl`K-|%EmqF z{{TXXB_A0(_^8_)m#2l)6$p}|3jr|;7`Ctu1#D0423wo}%+};$>ply+2WJK5Ge4e} zhWfgb<_e^56jTnhIc3H<3aconGmbW?vePE0-4cx>I_$dWdiz$^?Kmup#A*gzIKq|seZ^Yh=*~17$10sUS zMd*y}4F!Oy)GgbWC@EP@x*E#XnZ9DJOM`Aohz=D1ugavGXO{{BMQUkfC_zk^X64zH zxnu~lC_>avK#R*Jq!Ui#u;0Rk8=%>g20X@7mw$Kl_W)cQK6d@=O6KjQ3wrEH&=R^e;Hd-M-EK~%$ zB4p0%%mNuvx#TJ6eIcFDp}`?rR!);dSSv5U{7=CFtFEss6VR`5_2a>p=ei(I2;VKlQzd+gl+U((Qef zw`}{ntvBxM*pd*ArTMIU2L7tMt2c8$QC}0gzdVNoVD|Rgk1V7iBO7R*bwZhfYV0cA zKMkw>%IV30^#b0_A!5X6H!vm}jkxg5b{J1&@lg-ULZsa?M}yPp^yEIVAd=t%Vi5|r zpF%E?+BGmVw1yd8lO)eU99FT&Xz=5$vU@*06RT6D>+K2}GW%1{t7gTPE539L@yqGz ztxZEX(S$R3+#mprOQjP;XwXfbWy*48`~>pJdgEV6BHPr}1^)m&>aIYjHcMp+P$_Fx z!Sv;rgl0k+c{*v+`4f`$Xci}MX6Knz+^31=e!*PR5}*dwrum>E;vyXaCP&lr0=+nM z&pfq?R=@x{k1O}e6@V0kpn?dZsjLVRW0!rDetw^5q(RgDEz?B6r>+S`vlMd#6}e*q z8&`3ir;u6zh^4(e#}y5jyb6+q0IHHfp_vk{6jrK$GQ@&gPhmmlb4Jn$P^CuoLH^_y z<8Y1~=3$3S#5X@o)!a0g8?X)7xM5}i%j>GW^(kPG%Ku!&14;)VrFN;qKet~7f{k?P}A(2|5dM-#Z%Q4aiC(W;;*07yI zChtuQmMG*~uWH9VT}j?xFcLN+EE}Giqp>!79HN8ZuPX4f#ucRVaxCdGfyMqYKjEa4-`d$c`4j$?(ICE}5!_~At zeR;$MAQF>lmac2+?qb+!)z97tf)%ZObo;^~YeoEZtW-&2JeNH)=Wb>Qn{lzHtW3=4 zyl6RV)==gqf~K0Bw9RycK%oWhw|j89al8>%CLK2c=SxHq1(jT`jLcngwx-d5|eVtQDFH3nPq4q3J(?1fx%$jRM0FNzy=mz!}$9j3Q1XI2xVi4ED7+Kvq(4z&*l^!PohbjTBc{qTHR!~83inRmXtE5+jKtM~3(U+2~ zGJ+{Cd^OL=jx?o68AT{YUR4WzxWVDmK-beH^@%7!31tAI0QEo$zXbWcbv|%J#K8jI z;C1#=f*$iN8C|^UkutZ0kXf#&ndN>OMH($>%?&zxK@wX%1FJg(KUDTeNagBFzsic6 z)J+DJNTx(6ZO)eDGXfGy1yfe#$AuaQpaCdz;dKPEKlY*Wb3Z$C01J9Q`JWhMoA^8m3f8(&+0!YJo~I(gJt z2&95g1{5n)&^f3TUvmz?&`VZ8$wlIUn5b$Ct(wJt&k#@?nTsT;R%(pkiK2{!T(~)n zFJgE@AZQlGi^JN;&;iKs=b!es#HWy9_55D7(?xl03LBFDhK`KvV}rAW>kS! zd&A+eXHH`LA*QyahqHA?f+2w!ke*KuifPvfiE77ss>qA!_4SGuxCM&(a{Cw}b`Fb7 z^XPJj24ys&y%SEjyix+?#YUZL2%@c4R82Fl+lxUH4^uAzcE14yHJ8lu)98={2El@l zO7hFeVUyPgA{l99TP9F(WF+!;)2lQp(Slb@hQ83j>omL(0D}4b8YKuM(T=ZNx}_2t zOH9=~tk5GRScSXk`GO?0Wulyy?Ng@_6soEC&fP3QSy51rl<<2cX@59t;VCLq^g(Ws zQV4@%;#%l9ztcEC1342ByafxFWeZUB^<;)6 z{{XxJG(f&iX?q6Hkop`M_0{3mAg9Zgt>pv}NkjyK?1q)M z)pE1}f)Kwe{{V~Ukstv@*3^S^n*!my&+%wf`(^mc?F2*;mjnwQz1Jjxz4_(WE10Q3 zP(OrBk_c>C`6LZR5~R?HsMa|Uyd4FN=RPE$6LRq}rFG!&gc%YA{LV`hH(0tW5^t-mvem=GNnNUdjVL%M;K(fx z!!AHDPBdSq@Ptygwa}>MfmVg;D+|NoE~*t+fn+S1>Qq$45DAsgR3-8n3N;J_12U=* zmT*0~;{;MBl&M50flW1!yZo=g86FAVei)D4FmCY5~zah=M3wglRxjz%dG?1y9SF@&<3L5h6ktMgWjhB2*&> zN@$BnR3xK499eFzs=B4)LAuO226JWCsz8E+nI?>s=6UG^P|oIMxk3lyD~l?{1_+9c zsv|el(W>GYPE&tcNR5(R{$xYHyjMd3!gK`InVdA0d8wl!pX zIlv%sq0qmm3g~KbAPOZ!e2qqn=0yr9up~)~A@LPPW~pL;>H>!mUSCz8K}A2NYf`Q#!`1Q{+({5FuvD6lVAy z&r$fkBK;yojznDVO0Y_j>=FeG1{+-9~XO<@N>ESso!4wcE-usJ(1a4 zHYPd!{8=#P+GfL)%`OfAoe7$BlmyHHl-$3H{{R$wrSOlry|dqr`F57g*`15n+a5O4 zi8eki9vt}il1OHg3lH}SO+3>9C_;W_Br5!2{=C0k9r68Hcjs={yE|^$`zztEWNkRx zKV^1a7A)9!du*6f%^=3cl39S9OdJ|+nk_bVeV(j(pfwbMebnw>XzhL4_+_!}INLrJ4$F%^4mWCG%Q2E!v5b=i zmT5p`D6~?M>gG^FiA2YElQh$v>8B);redX5vuYX8Z6+L`31yW4L;*S1H&QRkH4Bs|aM1De#~Sw4uw>?+~g$1%&Ehx;G!qrb@S$tqq$i zGeSbyR8cymctB<(smU^KU1tK))@>l66#f-IIyV>-@P)NrL39<+UO%1;nL%C)$S+=z zAdzGn&l$nYfW!92O`k@(eiSYALYz{fmGX3S>#mltpo5)Hny3w#Ht)M9)9UY%z^A8S z^a;Wx^6U8Z(kW@ALb7X}LUC?Y8vY3PJTGNq`+oyp~Uhq;bIgh7*WG`J> zpGXwHm#U|uK&BGGP9TuSAQ~VH=bJv7r_0WRigL?@P@L~6H80kl(F^625L9bw19#i5 zLX9)!_JT5z1kM-xcq#l58#4vXayePP%*s%uM8t{(C&+P(iBd_e;>^H+g$u1vSb9EM zMEH3(74r5}PDG=p+fMi?f*4M?9vTDg1Ps2$p6jO}1(TFVlyA zb#fYlb$?jWFhSG5D|yD@!t}jx%BclJK@Y7Vb=N`&h#{cOMxSKMC>O#|xUpUaQLh#} zDny`$QNZyqBvUtJXGF3WN}>ksEWunGDWU}9sum(45&%;WW+qn+x{6D#b?56A1f&9T z8rzNY*3d)}${c#>`N{yO^@?QI)2^)xuD^&PAc1=8p#vooiZJ%2{gMugEz;%KhtvGJ zq-J#;AHQ01NCXhh2&QT)RQ1S4W>i;DA5`@Y?7T&zH5F@rESP%tD<~qM#O63eH=oy% z#Q=SD5Ny48uNGOFX<<@%eXo-;}bWChIs{HbrhBeWB?@Epju@kRXwM#M02Hk^rV0wVC*~H= z&=sIa@R#~~B;Tb^hDB-En;2rK1{|z~zPi#p+W>B*M8yfn^^r|dJf_kA0DBYv042FZ zQBNW3Z=g$bOjN4zVu4vVijT%nfy^a=R-tYzyj)S*1ws&}YA%famaQN*(uSAFsWzpP zgke)rEO~Kwj?eO_A_V}-&sRsG%_s-fByJrOlBHShEu2#&3(=@tB2Xf$>TLszgtxvy z5DVy)@*`x=Vl~S+ZWES}Gn^`_h4jk3a*v!3>!0zvA7||T>iiq*&9iXhV#~L7mKGfT zEKDiCvl3Zm3hqHbffFyI+2@xIMVNpklM@nRXp+k`I$dw_JL>A9?V4zozNj9aAe}V{D>MS+hhkTu*Oyb;E zuJI|AFqldJ015#pD3wR7YXmS9fQsRGb>$t`2CkuoSq_%bVWfP-y}nT+mwNPCOQS5x z&1>oSr3Jtl01!kH<<&vnsoOEq$%>C&7xY!gENUi1LAngcEnC{LkU7&ONM>SlUPH?t+L71 znY1;{(Q-p#7WU0G5ew1$!4l+8PbQCLoLF)m%SEdV7eo$Kxwd-di=```t$n`8KsQY?y_d;#HKnpq6EIQ?uUajIC{=<{O*qn;o>unP&p6I=Ql(1| zOO~a^?TLjlMDou;IKJUKAv`>Nli?;SmEvIsGEV!6>xboqUKq0qgQb{IKE8^WBf1SbaCe7ad=J#*B zdnPov*j=yL8wS_=k|73sU7k!ymD$Mz5z2x;oRs*p?D&{lP9KJCn;!=rM5^Ip3_wOt zEkY#%N8HEs(fEZw#4pm9aJxev7x#9(k7bu)#wK$)Oer^I-YQV|Xi~{QBa`BIK+{Gj z1|E~e+Msf^vu3zf!Z!^L(3W;|AzeL8Bsl{*Xk9N+0}}ot0P7 z;ViCh2JuQ3@i%Q%xxZM5go%g3tA5qB%%Gn353= zRX^SBS_PslFen3rTOdzgUuavh)G{&EGlC?1L=a_Qub10eRUli-D@&u0{{SdXJZvG6 zytxtcX^|eiBqb6eJ&|aX;LT;NV2RY!qY#=|tj;qCkc`i|0dnNf6ZdoNQ4Ki}rUDL^0;xgaD8FKq{1lNu~$psV6|&uRtt}O2&&SZvxWs_B8Z` zyFyADH=u5-Xd;kjCWy#H)B`rDE(#DD=?qRmLV!xU!~%f=^4BUCNNOkoAwg0rdTNey zXsy{*QN=Xj(^MfQ2(tuAsu1}mL=<)9kqV*(3MP~+rH!bH#WPFuXsy+uW9gvh!6ELV zWEm9!F6W)IH$ena090oxj7VI-2RSp-Le} zx^TXY$_S-EQ)M6^qB$pp#+fVxs3=0CBdn^|6{V1^L|23bUvfu`$5K3y~s zM(_kMR#Yx76)L%1mXHbDf{9`nEWpf*+tDvC-Rt)pm=MIaJ^gOhNDh~Vg;<`9@=CIplg z8l=h!jus73XrchAF3ZKOPApP{0Md6-aA*Uq5C^9qngZ}dka7h{{{SM?H3N$hpfVVs zcY=T`VD?^UbR{)ob;3-EVU|j|u;CO3Bs2+XD|8YFq)G#zS|f1)fn02pQq4-L>%fzQi1WIM8R7V5ztq1GJvpD zUENrJ7GcUK=0*PRl^r^7{{R+{ML-HG)reHJs9_KZ-X0_+Mt?^B-*rePu&F>Dis$%1 z6xS*hx`5`^>-Z2wAh@ellC%lz{;3bd4r@iXSIwRoP$nVC&6~*3dBlPxy+Wn@+O}UX z@I=Zhk_uYG!4gwIsdHg>>ikGR z8`zRECnB!Pl2eoSNnV=Q5d7~zxJy`z$SFio#Ui5Lo{{YdWF3#VrhW6eM$yU1=$+G_djPvRF z_{iB`XTbje;!;un0JT^T;71@hb_$hX*>kO~EO^^7Kk2YX{{RZZ{{Yc{G00P1wfx7T z76)Gbt4^kjhU-btw{P_->fE?o(NvUgsaT#W=Y<=CTPK94%hIXt*>Hvr)vP@DP`04B zDvllY;yR?A1?%aoFxup!&6n~~1>jan{{RCoxuTE^CFprUWTeQ~Su8Z+&nHyWrL*$@ z@TK(&2}lSRtvuB5q)PS4J--kyRZSly>7cTzQ|I;eRA0m->(A{1_3HxpePF3m0Khi! zxAC2jhKcFcZY}L{s0x7sgH~@=qtMkBA-a6{bMv%mF6sbSmq*<>0Lab-Ddt#v{#k~0 zZYY{yf}t!xp~!^_WGb2S#tqoC-6gLXmW$P6*!2m+kQ$>D!{H+!Q^kCq# zFg#l`u8P1C>^}=P`u#n`d3X8`Z`EhQnuP7VBE|l3<}*m~7QK4eb>#8o&*(@00D7z8 zSN{N}uz&P%!WFTn5dQ$evjbW~Tn;Ta51~PL4gnqTa=!33PyJ-sfB4r2{{TgnIa4m~ zWVy*1Q>@H!c2E6d*?;)g2mb&?mN{e%)SyGE8uP!Dd1G_Tt>Jm*-3ESkyR4M8R1Yl_ zalK;7cmw@Vi+!>PU<3e2djbMIP>)rJFs6l~6!zYz8`V`p72O9$jPxlK zNkTwHJF<|AR99rFO(_PkaQ>r@AWyr z4T`Ezmm|>+-ldEwYP1PtqSMqpYsLtX2xY07;b`4{1O-`26>tj>ZuTC085;#4opX92 z>26XeFs%+r%jz`J2&4l_A=+~hWwQ#J zbe9|)!4d>0RZ_?vQI`b)o%zE{1sTi{&Rk2KJfW6S0-v{9L?8-6mU~qnJ5wsb5R#IC zR*Xu7aC1_XbIg$obSNq~$^vMrq^VjxETqyM)VmN?rmJJ6yrF@b3NtXOE~vUzutbVd z<)11VSwIf8;;DC0r~-g4E;2uWbPS-(h=>)nK|qOjE+LsjvbU{Kx^Ve(#DbQf;Kq$|V2WzCNdcuu4paCcb%YK; zjuZf9LvrN}0cBDuC`S+gcUqb#qzNi=r7rxv-+?FNqZ%70 za?On{q{KJb!J+fx$~6a6eb6)( z)7ym>22zc>LfW~~mbVpxBoHVz%rnqFWzk0{lPZ;YfTtI`sI@%ergD_&mz_NFilbx$ z`TqbgMJQ$Wy1hQ4o78M1@k}!%2P@}SiRQgls(Uhp@UF&xytU^(Z zz?llc6@+PsdIM5IE9QmSfi`dgo<(Xmo!MC^wnt(LG(g1{&r+d~59W}FM+{H1UV#sq z)WH%v!ANx>6;{l_l&u*bAq_|%<^V)xUq;hV%K;!6Wpz;KsKf=!&^$9SK}97Q4>857 zMdt)ejR^+BimQ>()gVL_rOJLR%$JEJ5X?<~wt%h6deIBTvg$n+2$e%|(CA&m*}b4g zcj5=zj|hDDY1Y1xJHQ1jinXr~y(t7#sZ;{rUW7;^BpQVLK37O}LO^HX>+1ZWBTNa` zFb7|VA^`c3RFYP~Y(BMqND@cdu8pdFo~&4fVL}_E^%}(j%2Vm<1X5L4sRD`6RSGHP zMJXw2qt{rZ0ShfY*~EYpg8m|OT)7TK;E9K+3O~l&GErY8Xlhsxx{5aw<@kjtLC=8y z02FG|Cu&)lf~BrZ2tfm3*H?=irNU3hy_m< ze{C{rLLL#JH>e5k@5T+;Xc&ZhzPiCM-VL4aP>uF9qQMhUkO1C`^eX(G8qk2oy?f;l zNCbkU5V^Y0CklB*Islc{;eyaEMZXik?#~>baleq=^AHhMd2VZ*dd|0jVopI^@dH5|!Rp2;kj5&`0mlKvxI? zOhrKEb#%9+Fhdkw(~w-kh2>5AF^s%`R0Jwy;f2 zKe!vx{dz!ztfpxW$!D~?Tnf34MVt+L{HvDbthdeD9OafKuwx6r5KSfK<=B|U4zRB)sX*YoA>Vo^Vy zlhKe+2&_4GNEQk-y_qXAb01GaKN~2MRLW`d$CtYK`EyWU_@-7JgQ~6O&X`>*JXt`uRC>-!;6U3}pl^C=6 zJ7#l$9SAd3g7gIs@dQjA?L!dMEZut%16Hcsew`#bAP6YhB?Kf0LLlk=FO(5U-Kb(4 z!)0e5TIB#JKnHoKlo_swiCr>x1O_aAhx3#hvVr!xSw4d;Ac$FQG8KQT7UxSv`b12d ztGcwc2h-Sagi2Xu0f2qw{{ZDv`6NLVA~K@WMs&Sj(^!>V;FJkuLbsp;D%XrqS`_7M zlka4NpeoUKK(m^jv?^eT1Cj@-Up_^KYO2h%(w-pmr>qY^0$RMi8`mXZAoPMDkwbeP zlgPqTk_&L*or$B(9zq=uX!J(C8BqFBpoj}n5Soq+pX2K&Di&h&A;>hy zd4vJpDYYS~XGTw@g=qjAtCe_X1Wa&8nNI%j7O1c@brQr%2}VC zOKLQ%Bv*G8(&E9@t#L>~c~KvlUd7^&F-m|Dkv|;>BAUzLOo2YX)TLxo!i* z#X%O$iEOD9gL?E&_TIX}bTw-41qFD00O15el@jw#%-( zpok&VF}o_I2k{IgQU3rgJmLh)G|C8clpnR0-0cmG5D@-LU#>@zku-X054|Z;Il9E| zr2?U?N)%tW3tlL#lSNfuPn;eAAG>a*J zmSn7_blsfTxTJMCw|8F2lC`+KGs*!l$(aIEQ(Dx09tx)nRhC)^w8xiNW%-@Ev36a* z3T!>UV%a-K2!ak4*|Xte$Uz_<4k$SWxRzCq7k()IihoWY7qGFV@4v$y!`iWN<(^ZG zvuwBpzrDb0KNxm z+ddz5zSrE1u7BK{0|x_od@(sY(u$TI6*8LB!tv_g;;-~4{YdvZZL@0ld)pf~dp0Z` z`LN~Mab?5Ao=HkdH&S9e0>YtEU{w93Pk|)FEUZBm2)nKjGSFeSIxTC#a3cIb^XBbQ;#Ki3U z31;yw@diml_`k(1O8eb|`qhs}rk%gT#cbQv;MKZFW%dgd-ty;%7Za2WXaJvd$(2%1v4% zqM85}iFo^t_?7(_e@ET@IM|yfc4qFbE;jMr?2IWS7<0_(4)9<|DNBSg;BUkq{GJZs zMr!p8xK-K@FbL15ejh4R%b($r{50?76TQKe}@f;A+dQJ4w_ zm8MJ**N=Gp_5Oh$sP4i2+)nEE!?1f-W|Mr$CM3puX{7^r34)@K!2nlk2=P0;{{Yg1 z^_$$|kN*IweBHZ;gE0nf&DrP0Q!2OuS&(>D0Nw?Vl`-lzUyc45+c!oRi)^%-nT91| zlI5TZnU5U;^BY&ee-LcIiu^Ynzu*l(T1cj;4FVn)uFy*;Dy~!kTUXDHit4O@QtRr< z7s*o5-@ftwls{8F(VrGh-1t4-oFCdVOEmug=yAv!r^PhDVH6UgS)aunob7(>cfY&y zO)qZuQ?|P*c|KvZY&%FY?xdxB6$}BR-5* zIU^Tl#-N*irWHU78??rMb<%gKx)9L)6Uxm?!M;K$2K@5N%v)ICj?=*3{kgEQu%{#s z`ItD85CKOfS$9co;&XDUify4o9p%d>UPF$cv~L0{nnI8xa(c#&r z&H&AiUUZ~yDHXb3I%!xpg3bNF>X-T=M+RBcf~2TK3YFC9lwSD_DGN7*jXs8yb);B3 zh&%+dL5ZGOdr;DJGpFLqlo*5ol}h~^Jr*um(1mwglB|4*;balh=bVB=x>JbFj)3cw zZH0+3QcTNaP{X9E9&u;Z#0zR=y4bf1EJRg5XUub9HqcphIWeXvD72>w^7FiMWS-Ln z%gt@lWqz53iSoGsQpj7KIM`Y_(#{CoHmX#;t;W?$LY_xFn%3yudaBiiTH{WRHIK69 zNi@W;KmrYEPdamsZW&eHUE~AF#;TT}R=AD^9P~m1Om$Rc1+;dik-U@D2vt==+;pH& zZqzAfjScKedw0QNs+MvaixF$XJjdbJQ3QOp*6wd)&isUO1k#CjN~V?+15Mj70ZeqM zah(lrr`bz#2QwV35s8nBE)LIyK0YMGZpnu!CFltN%kwF%H<9Zl%rlcM-vbJp`>tvr z0LSKl?c^dKIO)%niA<(qfJ?jysZA4}@Lds%b)LuUowv6!<-*x8rk4cF1p7gjVJxzQ zQ@l}9rNs!VAJ%to;nvr;Zf%{gX28Le%QUzMM8qv72X#UJ0Hs!m9q8D*GiBH?f70xD zGGO6IC6t*!6HGxBK%|qB)Y(&G3ubcl0t2={o}=DMkc0UnPv+GRj8lql=2IC=ej3 zM<~lQyTVi3qhXHuUi&ZM8iI9O*4Or!<~)Hx63 z9l?kaq|_pFQdtmgfDoZkE<`FL?;w#3z>7E$`(ox9<%O6_sz!QxM+Kv+15=E)nN#dC?;<$CrXMST!NYs@ zO4kb(U=X3Q)k7v=FwK&Y$(C_e37JKx&)b+v@g*2$R+)$=con@=&?P~k;9`X1QedlG5hwEqAU=8S5D0>l<2vfLz)Yz>th(URU8C04Q1cFx=E{g6y& z+9aNE6ZYgGK?H{a#niNflL zi7+ETz^!{nw)Wp?ZBvtrw9P1(w4!!mXyDN4!*m7cc(~INhH2(fCM3>Q?&5AY86y*n z;t=crBdwX3&F4-Fqk-XO1|i)J?MMy*;za28Et>9z)!$u{4Q1J|jxj&pS9Cfrg|$Uu z92EjTDYo~=wKj>ja7e)pSb#vuih_j#x!z?|kIG`=$~U)4a|#uGPz5)3Mve#WgDI9^ zO9VeP6snt(m*O#1h)uX^I*S`0Ifz{xFAv%1E+`cj7x{@Lq>E+;7j0Kk+Pg=zcBzN% z?O26TM5+}?1d>PvXtfmHj+Z!^ZQ^E{a;&9FYD$&6T`dZHRw&FsQlxphs-7p$DY0l4 z;bytFhM*MWEf}7of8x>U!)xwJ+w|%B&Y%CK$zq_PNd4E6;)QL z6Cnr-N~vX`(vQZZ4d}qn;+&$K&Orhrxk~2ONUz)*r32sah=RvFg1m1SZ8d<+n|XU? zvx+GI04d6sU;$tTMa%1<@=8LvD=-p-U^6LR8a&M^p*j)?P^EzalmTdjzPXyCGlHt2 zP*5C`CG>q`I+9TH_tL#kL_M$M+I|OBb`-D_hcg-Tm>`QlYl|x-i3LjT0ZM_H$k1d7 zyiCN(3In`%T~$d&9zZo|P_X4R4u#!n6!?6Cx3m*61qzW%0`|yNG8AYrY@xV4wDypV zR1CppyMo?hhKr3jJF`u2L1gB^sB(lifS3TJ(qLVlibSNS;c=fY_Q68PP?{|b8~F4r zVakZNE-j_~vWmHbV^L$SL+`?KD%K&|a%Zyu0AuB8&2c~{#9S>~!U7Z_Zit-h3|yhq zq@)mRPy}?gV~Q4wGKWy8=zx<)Wzwm~!byMtAS}dy6E>j$GUz=@#4*T-XJ9h|L}$@K z-i82JYTR^&8AqzQr>^P{!-{>gsxhQyNm>-KyNYG+7T|x15a1fGx^YfU<(MA~z@jwA z!!~(6!vH}cs7*+y7#U53KL>tYEUCCmk{~~~{{UhQys}VMVaW~D5vTas7e%C6ZvYX~ zbc6_ik3vGdy=#6_5Xo002R9*2010relq);(N{7Tq3W!32fthbqBIy%w25+nBW{+VW zKrtLr=qI@!> z6rwl_nlA)ODMpC>`6U8iNF+E~qB;P-Qg|4r>Inc6#5pA7#OwTm1&YQn>fYYu_89@s zj(TLd`|^Y(kOU@#mLl$)4y#qZhcT!Q{JOMo4m_j@ijlk()H{$9)e6&r4%H%j;!(*@ z_=!=?*H*BM2EF3%U^F*p{nO>azy)R9F68DOt39GWmjQFk(iAj9!$f+GN1LHX5hfC$ zL;b-B7p3xJs*7>9S$3_z7+`E0CeycL&PMJY1{NgFN=hXX$U?4asago{&vHLZUmN@X z05%l8lia@1*|vOC5^Z}{&xF}}TmTWnSN=PL>Qi)nkK(WHwzAEsonZU*UYJq0MbN>MD>wbDI+&>80 zD^TS@poJF z`SFv!6XD_ZKXLnBQH+3MZCf5b9Dq!Rc$u((dk}9QNxjwmKl~c*bhtyXyNlS^7?>hm z+ySIth#vm3=&m0WThwYini!T5fXf8WH2iU4@x(jQ3?o3EcP>Hh#t-;aIa{i*v` zXW08EXPnArnB#8ZODRHzQ*>H5R4X1-_c!`b_G;l`_rt!p(##Oz?D$g4G_xe3L3dO^ z{l4+-!~JG8@n>D<19nj5!yyIHDv0r@+7zzz^C0Wym@-UPxVx4+Ze-GWeKPRzPoE)`yKo zky7m{R7@R|%%@OyPOJdn@lmt0e5CJF!q26$9(>dtqF|P_;h1aXY?tWf$B>W;1XKi; z<^ro*<$cnR5jHWJhyn!_Pz!v)QP_aW9Sn3o^(d)0n2=SaF0UwcWGHwca)8>VB^!0Y zUDOKU{3~WbHGn1`qb<8oAUQVam38f#`}7Pke}{{V4AR4UnkA@7p` z_7VHSVggF8k1Ac%l*;3SZjPP%vY-G0i~aW~Gc987suV>2@f(B`LS2Yb=niQpn!`)P z?(VY+nC59R>|k;RTs5q$OPRP0ab}zU05PO4qBe}aXA-I1Ln&6UqN-{Yj1yvlr+ei@ zVD2gcB^b&OxF|z(zup9?mv~T@3Q+iU&`>E_MN5w`5}9QiuR?~YOL5AL6HXDRI042+ zmT?n!H*Zj@`jmnmdh#sXb7wZyb%}Aj3a;T00mD0s z_4V@Ny12z85JELZ@jS(nj-s@SmT9GsB1}|(;HhUu1$;!=Lp*e0v=RkKHzb41<{N;x zvzHvr;iRAux~hdjRTQceG~}iFEW}aK#5iZZniVu{6b>cxay5sTY~!ly6V4n5oUhEJ zJ<2X@3KTiUL{0*_+%*W{>aAl#9Y6g-DBijT-f#R@$vH-{?TDa|44^nZq^P1%Nx8B} z!XR_ultjfYA{hN+^{6CoZjE7!32i4O&Pj@p#Gsm)Es$?16v>(rP6HKMJE{PTjq@84 zmo7MmYTh#$OZZ44Vx<(Wcc?r{Q$O`{8C*7{6aYcFXDYU_Sf=GdrrmuYWZsQw8okzC z`VB8m^MKw(wV2R+&|fvo+?>wFUlDpr6a5-3$8ri@TnkU}w13bNIA zeG71aV--Rb2mpc|1F7>NQA#FJZP4MteAqqTA|=n1SSx<5BGaqGF%M&xY`V0&O!B4W zDuK6VRt_GjN|SU7UtjfG#%<%e-Vi|wpeZDSUm{%sM@W}xDo_P9BfbqL&AUNB;m(cbzN<45;anEkLmmLljOId5sjI0q8Y!OxeJS z(@7SMImT}Bewi|{#3W5o1j zsd7T9g27Ty6jenpL?|OZ7SXg}8ci7ZxO4rL)DB#1U&=sLs+=n6G}niRQ^(CkCGQ7| z{Twd}JJ0<+{{T(BhnYVV#R;B=`ioa__!C^LQ3$AW2g=`qb>)9}a{{V-|Ur-=EQNXW2{pbFc{{R4oqx8B-2QOX<1E`7sLr!a*rK*(fT|6L-#adowvFe`*sczlQzMJ zHquZ6P;RI!2|x`M0xW$)%1pAT#F|w=pv(wXPCV$9JS#czo5J;H; zkSQCqPI2}L+a1X6UwEXO54St3*>qo-M*je(zV^#M z?{_<4?Ce}sCmUqh#D+pjiKR&c%2Aj5QPpF&vwu*qYHD_!j=F61VblwN&RXLz(drwY zkMM>t{{XSHQ&EGvSlx)sX3?GDe7!7_A(DAawjc*a0qlm4twcZCJIE*<0x?FJS1k%7 zqsP5I`hQC=hkdL2_`TKdFKBjlJjQ9T@Nobba?S}7f)rI3bwZ;Bj}-gk{V_fPE{st^xBvix1(yH@Qq?IQ}dX2qn@oKNl7=(yPa z0peRYB<%a(Kh1|$^jN_p%jg-Gt$DY#LAupcG+gC%MbU3F5CCFyS)3v}v-&HgJLTUG z(|^X^0~TG@loPyV0q9%F8@+?I?6}|@9itBrRc*?_yAFI_47%o5gO7(+?j{~484kv( zH(Z7-kO9PT%Q2Y-Vovf(5eN9tS=-ETc)jt5Dq+l&-k1VS)546T+V*D7MK39qU_zbd zP9%p=q!25@Dp5F9lmKWz$f|L+h+Rk#vn7EW!jK7&MnuHw{{Tm26dK#+asXiGCm-4d z@v)N(@pY-5ecj;3fC8?r3uL24FB{2>K_F$~n&rxWY7geo#uA|26DT3~iC~PTzIUu> z6~X`!7*u8&rPAKfLP5PGF<<~|@{TOpWa;{Ze8$hkfOw_jY(Rf|21)lr6DTKu@T%ki6HuUOhhOYY@pk8THjF*5 zyS=^Iy_2j)<3vi<2xT_d{pdN z`?Xo}09x^a9l83`u5`3FKLb zc1emMV#Qg^sZ$;w#y_Xt1LA_JtJx^P#;C?7&Oc0oMc6?Az1i}xUem$;KJotm2sBYf z+g?5uH8H}+-mEl3nX?B3Ft&^C*Wu5{uZ15KHY^RZxt;UuUef;nQ6#2alx>&;Ym|@) zkl>tERVZZ&Ng zPzjK&H}_o~vPSv6qoQ67VHb#CXkSX zQsg{*!)@^0yTh?6!`k+2ZJw%25nTs#kVb69;fOz4WK2X+c%j!Ko(DbnALCGmpd-@2}Tj*v!RTYkp+Z~PBUAwYk_IGS{ zZpYf29xStA;%xhF1|B?yNyhB{99d=nOcleU29B^tm!6HMS8S#M1*nNeLPk}%T9Ig) zYBZ5mB!VOmSc8!TR;oo{(@+&sVA4P!gLen7*so3>s;}v-@HgUa*|zqFbar`rk=|@! zJ~77FrA!QbdBK=}$|Oi7GfF4`mcrxFAIARx(6`4AgE;#}J~v@w_lvMF=A7Vd{hNh8 z)rxRsGbSc1xN;LOgg7XGkY!;XT)q0nkoL|#^<@HCS@X3EI5ZDeJ-piHz}m2JwoS8V zz}t3AX$~GH20k2^vdxD$JHaOfB_RVTY@_KO2k{SyY#2B~tXj5=J<;-F6HyioK`dQ? zg8_xI`JasZKd^0h_|;QIJ3c6?pew@pX(UI@OE);4HeWqo(x15ayI;mG^LEE*Y&hFK zFJ<;&5=*pUPbBy_!f8QKI&RDpbX^sSH_(LGM|ydS{^Z-m4-mys3TC=iKMUP|hkeBE zM{0JDYj;b#dk#&g@t@qZ>z+% zv$dLPpjAyY?h@_0PX`lMlZzE^3fM=7Y`>st6@13BX^A#5XO1@#kJ}rnW!C;l+_1DpLUYSZ zqlUmqFa!o58vbB1N`Qu|1zii%qe#RODBL4azLw^z76q(HXaTY$TzW^C3eUTl)6_m% z9I}OS+ju!V6kT$lgCNM@| zJpA(mB69WXM2k|z4)FPgj#zz%_bfm>Km|OikSVSD$)Z|qAxN{11GeRBI@p(#A3ZmfD}52v?Wp#tO<_D^oKg)GX?YUy0~{bG7`zX0w*J<5=HhqD)E zjOO}SbylR^kOa^$Rp-UBgb3cEAE%Wwu{o85P_o}XsqT?M333R`XtX|B2W_ZKD z1Igo=X&E_!HDUlUZFqqR%0Zf0LZfYKqJ%FQ_s3Y+3O!W}g!hVrM6MRhfCI zqG}C7FcFzWD={+{n3oEwP}S|luNDa1UEpY_T|~U72Od$kg+}0E)V13^8M@rAb|xnI zcYp&w%clbe*PEyy)D#6T*B%97(zbi4uvxvmQr0*GsP_l}O3~~V(R-vy2oB`0s}aYl zXQi~4)Q;afUN}$@1l@!X*ALCFn+CgrvPYQQF!Hw?k)rb899-~5Mv5}5zzxs{018_D z0Pv96oilUk(18*LcDxIIbps`OYi6iJwc+QZxfcFbgn&4O04kMS{R!8EM7zaZ5gmGA z(1426qCUQKWYU=^M~MJs9J!qOq)~z3+5y9;i#3qc{9Usq!=E3s1)>rW2r3E(VA^Pa zRHQK^;3VHGko6^iXT8OiAOlGzEKn(`P>(x^V|b#LbP50^1M6)N#olF)@vq}H5;Ky40{ zLkt4TWxaaoA{J>-6dHkJr_(U8qScCr2RxCNOyXZQj&}vJY424Pfmv-Dkkpni?9TvA zfsJ8EDk$n~hUF}phhPSTASjtprVbAtHl+&-LivtBI-qn#T7&k5ICX9pyZ&M~fGzlJ z{eJ{&jN!0$1PNv#!DHojv4T~)hi~z7Mpvhk=bTKt!0$0+N-%Zur`*K32&~Mcc?~kQ zW(7BQR|D|JDrE>U7kK0{bAGXTRhzMEKTBKFL;*2Ha;Rn==(NlEgk>O+^CiW{3R6^} zik4(0MRMeFqVT7aPyh>6Ga+@gxZbN1Ale`X_u$Q8plEre?DkkHBQivdeB@n4hx=Qp~FrI%5!g*xGkjpfa$uO2|IpiS>vr9LI zU_nGm5+hS`f|ttlevXle@Rdbo9(NvE7YH6CHl#F$y~mbi)hm$1I5{)MeqiSiybJwG zeu+Do@plVr?+0}7u)Dk7@g^oO{Fyf}w%kvc3B;pvUGfm7>MFZOqtA(-3H$xkbUAA~` z<_6SG)v^M>R9?I=;>PUO3_|cf5quZ1_@4gLvTp3#RnFjSJV!6{QZqI+4E1onQE>5h z!J1iw!HR=ha(=3unK2~=49GkyE`C?P3Y*8aKaF40UUP}H_TR#8*Ao2r{{Zm4twf{& zykx?ZOcyCpLNN^fv%Bx`lj48FUAGry?@x8RQ)iP3d8He4yFC8@v573C%4Y^qFfzCH z)mR#zr|dp8;l3q6t7qCM7=#1*b<`=W7=|))u^gJ;CGigd@m~w5ji+X;&Q zW&}a$?fDX9nWQ_epn!^*%dHe3AR5Eol~GXZ>&x*S7GBVh&AY$5IQgZTS)?+ORS22) zfglUp+U;I9I96iD0l+L(6SU0JY=S$4n9&c z1`7<|G6-uC3Wi`7*FH+dD3F&H@aC!F1fn+@Bxo_@3{LE(tcpogKut1I^d;sv?qTkN zSmaT&%HCHIM+Q(t$`pTXM;|0ii}AkoC;aJVIdcMBUN~CHtyDvMLump1fE@N1;EMy9 zE4r>~9NokjsG*9?hz*cXQo$4>6^<;}VN`f*i%E+k3Zdpul9YrZVKG;jxp64~ z20==Aovwy4)w)Jt5lz}H5FOk};;jrxC755Axm!;-RRP&cqLE-|yj~$gAlG$SQmVt1 zsTs^s5LfBdZ4hT6)kdMu9v4WXvlwzXwpY#Ak1i?(rGX)Z{$7tZ^m8o@2Wx-4g{n$T9nq=pe|;XcG3*ya~|yoDXOfui-uxJd(4}__62eT;D2cVQ+TuHi1{H>LWsF1-Xfp^ zia=p{X~Baub9*na`*XK3h6iJIKHb__)6FQC4`{T_UG z@7(wUX70Y#*!w;{>SOkf1oB~tWSN+X56BpEvo?6cH($18$b)+=G8uq6KgQ;0Bj zX)!jeb1)L%;7K&|nUw(D0aT!8R2GkJ-wyu(rOqO3`(MOf^a);B@pf*{Ac7d~7b}rN zUD9tJb$mblAp8pWeJ&K+H+FVj+1oJF{{S`ZxKhuFy&wmB#VNg*TsV&QcZ`=X5cll_P!ncKk;3tQToD-l88U<5x&Kxmrl`Yq1_MnoXW_v3{qV>1weVZvP7V?5KJ09JUuofP z@9q0u9JupOJfVMaF(sK5Nni?+bB`f#&K?wl3kMGiXTg;v7+4YvEHD6-gpv)^S~?#f zAOS$#YHY)Ysz9qs`RC-`wT~l@wCx*JX1${u6B@IfbsD-cG3E4L+hy2xO^%9a*>-Fk zDk%&FGzv|?%ZIxgt%mH$ETUhT2uEt3G(2u7T-Z|0hc+H29v(gvz{@rcEVANZ%`C+d zX$p!IM52%-tZ~Ui60s#yJl91|glaKNr3p;v;L#43`-F@PTo730GaQ+m!22zuP$HpN z3_t`HVhAlCGvs6v21GjXSK~M6-{B|591W*w#_XIP!tVwwvzdEKW5fNhF(y*8ONIoc zN*lX^s~(}gGJb$QF8nve+cy61?6dcyyZ9z)@bPwWJ|@@uU`;z=NDS>DssX@}A4MZ* zkx;UP2QDG(im7{|QQAq8Y&nFOvP?H7!_Kg3z0BHhmn`Zw`=wvZ1x_} ziL!RjW^LV-kB2dqY%RBE#K9+Z7j(}os1%B>QPV`Yhj;ezd`c(7o>StMX;8~DiI{>a zP^DSp>dU|X00KS{d`ZH_lf0eK?CG|wX(k`*u(o_DF@c#z`bjK~6`2o|cs1X@>4)4N z*P9n=?ss^0?#{=Y%`}@nHte_(KZI4KlsAM21gHu}zSzDz*fHtd+i>f^sKrsgM1b-M zV0eig7tXfd>DP#CD(#Grb-_y6_h9`f!gNyM00JpZWi`#wJ z8=DvIVjtYZ*rcEXc+5)`v&XT(z;pF?SC3fVrf<;CeSQP{P5%J4Sl#Tv+B+Oz91LBL z26DL4m))Eal?9Q>CWM&wbvfRc%_0>lHB|}|H>U)&eD}wy*s(lI8y{e0v}fp~<&fxW}|@1pMkB14iQ_hz(bVnGd(MN@*kJt>&gofZTP z$kYVe(}5>Qa~}ynQAkv4T_{z(U?@N+$zbPBmX;zYT!6u?EIRr0aRFwe)WA{zBsr*n zZl;`E`*`g zEo8~kxhV+FW?Ost@q|*#PhU%QXtf|(Bws-sGjWze>V}{O=>4(I)VR1{Kyw#}$O39{ z1SGUjSoDOhVjqYQqy|l8W+1B^&mf^ygP1D56R51VZ3hH)2?ZFcA|q$U`uQYFOn`X| zz#1|p>`IW5jx0jdkGCcn7sx8rJWZ`) zNxLI^jK7Xh0f2oEGu%s4E<>wXJBpLn8Ff-6v{>0b>V zl}Zu)wzLRnzhAePxQhWvZ#i<_e%Wy;y`1kq?%poUBZ}k+Dw7ku45nF; z45b%%JhKbGpi+E&___LE_+RmhX2w0Q*!w=g+cV+JFuPl2!vB@KNpABXVO}wt=){NL2M$xk3Q;V}=*M*1(V?kqmSD$sdQT7= zp+bs$){mmP>iSHmxdo%oX$Ui5cYv$pI^K`{RSQ8oq` z#PI?aS*4H`-Uyi&a%0>0f5$ss4I+)Z2xEvJt53^W5FCpb_c=28*NOiCPBuND*NNfy z=Vz*~{VLz|-al?&S|>(lUoIGO3BfYrN}z)?l_&taF-2x{4x@QQ^8hAQrQC1`h;GEx z6?pfn-!JL;@Q=KBn7dD6?ORV`V`3SmlLrQ0`BD-Im%mL&zgJ5yBtE?Y{wd z=FDm|;M0#t{k36K<(NnWTP9w&2uFzucq|A)t}Wv}7fhoZ37C#kP0-U4v-?&-!&S z5u?Uz%qK|g3QTHq7Rs%yqJo74s4q)`5gcSZoQUe(qus9ac2x6@(d-V>*+itue{*NV zvgIID=jyT0&Nz~7+(~h8=J5kACJgcbS9JW+%4&$@WQzOrV&PWD4;G4t{751|(B~fR z>zQ87k4Nvr#G$gNRN~JSUUjrioRKjV1yx9FwdkOH>wOCDlwhyyiGBuzh{R7RX-@FD z0EJL8LLWAZDNW{3GSNl+g_P-bm#8?aM~RMQjKH08#3`yATn?_$9_@Rp22#qDOCnM8 z;PzBVxlj;l0$g(;D49^B=Nxn40FzbpwKb>!rv-*FWd$WvE`=JpwobJ3iFuIx<2F4E z$0cSqf0X(N5L)*ikhw$&kxK?ed9rp+KBDSkCSVW_B^(h%r=qlVp6_>0y?yJ&n+LmH zfwy+d(o8>ceUl8&B$E<_OtO>+t6Y&|ygifpSoq)Db77o5>+O3M9v}owv|$+#5xfh8 zP&HDliyD~QcFD6J{v&C_!XiyIRyVR@&gH~f4x;;eKZkAGT|n&HE8mD4DHzRYS;5X>Bn;@~<8w0Q&FkLkhPjhxAe-hT0Ic=O6f?qT5-keZO?QIUgX zVanP*De!HckN#$yN`_ctc;#aZT)*+bv*g1YvWz{S44u*b;uT-~n1GIv=XSr3c6wZFdo^_!8`y+XOMnG|b2E{W&hzTF zKk1g$UhP|M*G&Qr<`8`eVn+a3iVUad7ZX!QGvgY})Ws{{S`ZGRukklOXYK zPNQ{29BEQKfY|mOlVHQc!0i2lW7x3e8>9U;&xeL(M-uO0iD(#<^A2(inbfj!byYsb zi5p9bLKT^7UqYFs9?Ej^+eX#3ZB=h$(+&VxUp8?ASO! zLt)|4BZ+4|{y}ogred>CKKo0&W*|8r5?Kb80JQ{ke%S8cVt0>Z#n?M{vo=oA*|B7s z4-#B#JUPlt6Lwk5syyqGtaTHLCIx@FK?=`SdmEH$G+5ddD!~Al=IvAl%=J*BHR-Do ziiK2FRW(x81}sA~g9LiUOc`z0Mjj<5j9LaI1OP=q8e2CN29IA=;D5y*(0_6}&T;!k zxj6H8d$eX4vyGBcP7W?1S%_5(SQNOrAobz#5A?_JTj9nwFZ%An$L&3WNsi{zuwl)# z6CgvsKIEr$QDy}K3mEzU7{Ha@B8UMD29Asp?L>^R{{Ukj3T>Zg!ou2cW(Ha0#>19* zNSTk$CIOHgauMo$JL2yY*o8D=RsN?4e{LaqmI8Nm%nfPa~b)G%n`%#%uF z4kl0!_@+sFE9MPT=s&*y0H-g79s8FUZQb74wjHY$Qcl^i;Y%(i^y*cm0FqGsN-TJl z-jC_ivUY|pB;CvJ6!OoBG5wq^p(U16yn<3UkV+L)voa)mU6bQ~3&o^=sovS@jqUH6 zmn<&a2Q~BEv-)}B`#vE%H|gzIV4dCCw`zuBL6>Va_$C^NvgYc8LHh%f{ zkG5vo`*UUk4-X4xCTtTZEi~xW03mY1WK}-FCkrt$%0!`p*#HOFibu?TCfl|xr^K=G zJU*wxu4<@78{hGNGaQ%Leh~2Q5ZJsc2M5I{Y+MjU0GDh(>=kkb2ep<(6T>P>7)rr_ zM&qdCRf;nxQcFm`vpS$9hVZ-VntdWjmQo8Ecr&*btu%?4G{m@H2(WYnWueJ!6trMiSechk zF~RkS4jNtIx(``y42hD5c*+#!LpsoeQVUT^?ux5aKEC{7X>(>74D3Wp+n1k|?L2s3T6sM!o&~F7(;V6kz6?!@1 zDjG7I=VvO^2t{0|*MJJ5G&QK*2uQl7KqSkW-BJLT1`CG`c8kMI46SgAjKWoL)facR zl=U$8gHzZu6`F%0>c>dM7kG!DB>c{7Za$1bq$+?EAP5nhs?Z)KEY7AZC66ccJu-e5 zvMtF38ghLH*m^8KKR#M!`tT8mkT6mx67wJOmqJXbkYsiCgdt(PRG*nzo_qqlG7zTp)^%6&^r|scPLDjU>EDao<`G9AGaO+Ln2qCB1gNHot7eym2z4^qQe(?rsPSRXC$)iV z66Q6{+mwL$fy|`zwH!EON(xoejlipZ0qdzmHuJi`44`jJQ5WVRR8gJU#(*|Wrf^g` zBZ~)PcgZvnV^cXYE(j1}o)_}Fg3h5NDUsz>KSgdT9p9j_Ib15KK;Y84BeQ{)jJ8g> zKxLS!1=K1vLXgf|P6$JF;xgq-UpMDB0xcjuUY30FyX)n2yx&mTll5%`9lHc4YNgSHawsTv>n-6CP6CQjV2|}#cn3!^IqJmOl5dbI= zPZ*I!M7=bciD?8?qh|bVW@4jynr5OYr&2%yM!fuz3O-_~P6a{$gCPD$3^O{+0CHEE zMFXtkwLS3o)9}-|csTgov)*lo_wYd<>2UF+IMYoil$m7$W4$$-T7p->e~I6(ZQ-ZB%SOrw{2jJ(%?^oK(0+d6d@$`b`JsZPZF$thRKL1slVK;ZcqlUL3q0d7bF$K z@h^&e7s7DrJ4V@uRaD5s!Xms%j93G}QpK!wUdTIZyxrgK-UcSu+nukl_GS(cGfytl zv|(XlZps|XEYr&|M+q*0lmp^N#6Q;$!@ldBeUrOV&)fZ>gE5c+ET;x+NkJYQKv0En zT|)Ub>b_gzzts)15Z8y{dp$T5 z5_=?}zJ);-`3L#FMclldyJa#_XdBCh*eaKIv2nl|ri>g6*G- z-xPbnF+Hc=?Y|IA^9(#ghN56e0Sv4Z6;*5BwPJ84UlLUf??v-q-Wnt`jtu}VYh)_7|+g94BM8^;ckdGD8L^j|;QJ|gj*wyKWN;u}Rmph=`wX{1=T z?IpffW&w3=tF^mdYZ!-W?T*vOArfi!%wl(m{@)eKd05A~579Sh_m6M*TQt49kByIm zvg3(6Hf^BIH2(mygTucvt){=L`cl}i@wVNkWZ3Xz25qlu!NHIN^BLy=sNPN%S1BJt zKLWeC{{Ut_7WZSb=fRT;XrE-m#>U;0N>*tlLWBIO9H2E|4~_nyVqk3E8-ao_=%*7K z8|5^LL8h7q&1P*4gs*k|E~9DM{AX#}YR1GkSQ|P0N@}XAsj9lj-3Q7T11Qeljbr2@M=>k!rqIJd1ORek zGKhz@ij*d4Ne%%S?&)P-42g3PaHQHK$Jy}$$+Ya)_!CG}?{DFmK=CsuxEE%Py6f=K z4ZR`Ca2&f3sFqPci4jpROJyS?4R6G%)CE9-A9=oj`gYE~ML$;^$Hwjl>I=VJi8cws z!rHq-Y3(c-NMbgOX{QJg2s_K7s;dtjB@>b*4uunS5!|<`L#yR}yV?AfhSY>5hlgGEB1Evb=EG#bih z!o#ta_ccqvbrL`UuC}?zEao2Y<*RZ*CxB!qq zrnd*?;X9}MS>(BL=H>mA_XD-R;{DC+eXvX?pY~;t_=_1OGO23-PzwZ5NRQVUrzmPO z3SlNQg4CSBr_T}dZ0gN8&e+(hJ)cNGppTG{FW zMI}j@lo3(``-+ca3wfo?uB;hT$b{Ee#sLMv1PGo~oVAJ5SqmwgyB6}|>X(Vk&?gE6 z;qM=~_w%nYI4_qwOt= zX^}_mZ4%HTg`ojZOz)`U6~&}tVAVh$zJePoLwe=GWWlV_i$y>;%}j7{tM?XOa!-h= zKm|_ps#yvl2j9bzE5>ILRUHZ+mWP7?$X?3Sjt0lH{{F+VV~-#1U|~+B)R{-hN15|1 z@u8U)GAJ*lLs5zf=N>XaAmvkD_J3V|!Fo4&8R?t-^jw*7CMrVitpXtnY7&}@9OFqz z63hY(;%VU~zPALR{?tOFf^kSnr3#x2ogLQy07ou0)R%4=(fvIZGv#q_Bmp9VS_s)mY50PzGqXH)6{OsYzOi2wp@6skER ziVUVCnD2k-ue{UuJL9Lr?%NoL3l9snuq4Kxc*+d3P9*@4LwJpMtC$Jd0E2lERd-1x z!!?^L76gQjXJ>YXCuVl9WcHR3GU9Aqqq1U&%78a<1fW9Jo@M*g3q#JRfDu(V+c4{lvM7;=^@%O4$S#7`*-X;x=zyUp3LnDQfYSGhi2L( zm=bq}E)-PM^*9Hzym!2z6Dl3lK7ieVr&W*4J5CqqZ8-QuF~h~Kf-U=MB75S$No<&u<80U% zw3ir|SarSs0CfY}-4i5exhfq$jQrufiZ)-zlt>`D8X}$4I#){|fXslK4l1gLkmq-d zD`68U1vE;(qF_PA&8=Af}XHM6-GdR6sOYARY7s= zh{hQ$LSIe`!|4NAAJp`#1V||c%3Clp=jJ^F={+JtlV(H3OOIHf6J1SsQlD5N3ZpUW zPoy}F=T%`u{^t668ki;}6a@(Rrk!$vDkuZ+>nK4|iiI*9bs00{At>FW3lx49U#g8^ znUDl^rd;XOV2OWoIjMaLamtsjZ687$Yu5;nue_j&A2P{Nr?fpmyNs6PG2*{SB5tch zWJPOJTMI)(00tSYJl3!hfo%Z_#t4!#GB`T$L>^6)0g7COCo@l^It~KorihlNWzesx zXu`JP1Xf%T*IiZ;gl9%*6acPxIXpifNK%AkMYZ_VtH+!XH*X52pg#(A2HC|9e63bxYRpiMG1p3)}^n{YIN-GKl`ngVU6gC0SlYSZK zx3Y*LN(!NRXRR;xidQ1yAO|-{Ih(vHufEa1( z3Tah$l%k^mAI($Ap3xzY5J{*q(2gR=!`iS#PMM%^gMkfBD8W-GnMBG-72>Qle+euZ z)j%;wZoq)2o!JyG7CcCdqUVUdPfE7)u5d*6Y6Y6qP;?rMsBIBC%IK;lLZxNQSw)Ac z#g!nSKuz*LKv$FIp$r*))i2?h10iyO0vbUQlqd|TRHA{vscKQfIfOTr3Nd3(uyjn3 z14BZgNwXCwLb?X~qS2vPsAjXMKpvSCb~(_9-6|DOIBV9m4zyLM4-!W5c$7DX&>FL& z4`_R&mop;Jo&^H=0g}<;l8Go{d5|e>Q1W2}P?HVfN;@FVlnZJUO&~Ir1!#&6URjW% zF{DvdAyiHC1^Gz;0nAZ}{_Q|Fl+{@#nRuZ3^9o>{_ur!qjPf@Kw z50WRBAYfD|!ApzoyXLeHsX)<2RS3T?D_*}%0znjR63!(AAttmybW*vf7idHjX1W$; zQkmuM&tMc%{uj5BqyGRiVp6{$U~8_Z?t(lh$0zspoQ^&z z*XFHO(be$p+lkD57aPS#&4p_c+QWJ0=*Upd0=gws(V6OghB67L6l;^0kl{!N6H3t; zNF21};yP=Q?euSVUDo(azwzvD01LKcAifOly&=(#zQo|%K>=IS-L-k$8X%F)Ezzwb_w=?l^96SGsyk3c>2_dpX0ha{j3 z=BUN2PdhW+WYxu7dRcP~R)(_Va{L{1qYi``Ki}vWn!2jSlHE{L{{XcOb2k9l z*CUdkfC+&Oc;rBj~FEv(G zp(Hz89X!V<*b32DnpG}6YpAJ3Dk>_9g)MKEfrzLVv=K(&3|K1EqK|z8KoNG(t|P}-HZ1WjN77Z*TX zja?dr?A8$GqIifd)eCDjl^Vk?+qJ0{WeTV?uaprWDg}=vKqm7W zs1O7q4dk{;+}woZ&RPXCaH?I9r4Wr1m}Meiz#^HevYe2r@;Rg%s>W0fgc~p(nW9h( zs1S`yaPnUzfk99>HG!s@rcVS+00IXVr7~z8+LX6mL+cU(D0)`QMm8bg+O@c3`%}*- zB8je5+r!q5(K6I%SCD_iQ6qS&S+0qcATF*3^HYI>jeE=2u&;Ouvdx?EP9l&!gUwP4 z04V8j)T|=tf3;tYA4+8bP@n`Q03v{Ck*~ZIp%{Rn3aP(eXs6vbKlG=knrjlI5G%&) z+7iZ#YrHWsvLw#NolvG!SRzKUky(a}f$L)0j&K3trTjwdOJ>y{m|*V^#guS2Uty}j zoWWcMI#8v*3j|1_wKrday72S*G*A)K)6H8k_DGc#LhQMN{{XXa{wh@;^w^fK=Ra5? zlHe2mN)n)7*E{loLXFYZpO(@QAppw1RQvrP5`+gSl|6p-ZV*H$$<*&(?a3mRQ~V(b zYlH1rgHm%Q6cJjWM0Xl6)wL~m*2RznMQr-d=@|e`8H(_{Yb^rt91;kfO&n11tVsaW z(<^4r(?xToxaahQ1qe}92K;^epokyzq68VHNy`5KcnJZhNUS{LIn#9!*&d0^S*uPEx4)K@OU}UuM_HbzK9z zzx%It@BaXzcF+DpiKjrMdC{89e^?W?qZ`8@hxmZCoVd&)=sp6$dm?7gfJ zLOxVtAr%d}=M+hx-FF&hyhsU?Da|ns*((rq*C^`MQ^2sd z(~t5M3>l1}xB-@@xlj~*!I&#BUlM2g--ZwX*R5!VHRS65U!uXJT7E1$G55|^N` z;g=|aU7!w1rp7MWwu8NF+UGfXI#=n|w7f=>+n>@StoU&0vyMSq5BC1o;?JL7ZnjDU z_4-57p0;m2BN?Y!1RlQs0CL{=3XKFb29i8JWvD&GVP%*HwimmgSpNX& zMfiJ-@Mpc9qb%Lx?v5OTvp;(qdlMI6!%1+kq~0ffX=Mr!AOg!AzY@SEk&R0=F;rYb z7#cK?`jwK3gS40Vghi=`yg|qd1`xgNN>)$_BX=@YiU3drv)5OIcf3UnHFAkgLr7b- zK#b)I1{5`LXby-X(ovbvsuEI~k1@tLis=C{MGlUM{{VRq422q#WHINeo2vF;y^a@;nlnkWnx_xTq zyafrQY>pi&)CVS2YPPg71puQjh{}lGNS9q|8VXdcUF%&yQ2xx&$WZD?UKy^T24NZWu&*?!5JdpaiMm2Eu^|;1fzXVC)ggdp0G|n^GF2yu zamp!bgc>J2(>o+B<|`}Hh)TVco(QCaNl5`}0Iw3tSSm0}C@d1-9pvjGxzv+Dh2R7l z00CmGZj3#Y7(&H{>0nC*{{S!jm1=TmB2xzj^AZ;)K{6o>PMn6aw#CtO1^+PvZ)G`3Yl0nnL@Axs2(d_DNBY_ z7K#J`RnJA>8$f-80EA{z!4jM;tssd4CgUj-O8v9aE+7d(X?|rY$d}+Kb!d5`k{8`R z+#rc2^Mngq(S}_ZU<&6^ZzxizJGoc!^<3KVNbCG@;{-_u0(tcBVoTNl3cIBb8n<5X z$pHp*gjEvfD)Rf}?F3TbW?y)(@oy_u9JE7qa~ss7h%=tocG z1XQ6)vQz8F=+RLn8J8kM4l77g7YIC7$q(_Tlo3`?I?=QGBqaaIWv!lRG~F5sXU_0Afb1sXZ) z`H3DM_Zghsv>h)tqyd0M6%D0xN1;HxHLN}roMo4aq05wXlwR3@J28WRQ!X?8c z5b4r2YA&!vBq~fCUsSlVCy;k|k`W%D@dqS+8f6-V4>1QKiTp1ZlyVr&b)Xtw^F|Ow zC<-GIi}&i;BqEPE+C{B7~#01q9dTo}3~;*Z2jP-;Z*L{{V1A5|mHlk@8~j{{Y>ig>3J}xk6$xw+kh- zXh0AECorJ3uGDv6GNd29Mv?X$@+ZWw)2ZF}#|2k#{0b4jHcm zc8#-X+cu4>ZrbOY8*JP0@pjFt7JcclCdb-lGtNmN{6=G%qNytxvJW&hT-9vBJnpDe zkycbH0{o#;z%sf$;50u{f;|ixsixG10QqvV)FxuW2i+-+fGhkvbM}ObQR1~I63UmP z7ovm7(Kw=Ma%_;u$%UxQ98&7N7|%;mDGbj}@j1WCW}C1yuy=2%Q5vBlScZ^)Z9+}io$f`6FZ+MDBO=)_ z20Xs7<3>px)dfjc{tu(t6$pIYD2-0DjT`}b@!}PHucSnhvjU2;%|a1fLuNHx$cT8} zmSWRO7H~^cAhd>q5Ws|Cd0+#>U(7cW&(;_Of~Kj`HJU9Gtl$+Y2h|?GjbP>1StMYp zvR@&f$^|~bw38C5h#{V{2;F&@U3JikzYi$0sP2e#q0>blY-m>PFWj8)+uXI8kF?seIqgn(ZQ%?E&_zl`+QmF ztRyV-_4WJt#20e+S#J}~eWwTXBfGLC*?8b#JZPZ*kjv0woL z(^V+NlIqd#NBR}ZG`|@8`sDur<~$(9UTI1qFsgeh$D>JFU>kQUmOWKjsQ&bSpGs%c}admQ%bF z{HHb6$LPsG(W8)qH34a>Re?ctMp&s>fC4PjUYWH}kla-mLo*_jL|_yJ`^%BGQRcyc z)3@*4Y}-rs-g>OSKoyjdx48?ILZ=a&BA^xg0*%3H;59-BYDo@$XH+e1IIwL=hHv6F z3I0{%(BlN3uRl)MB`_pP2ZWVyYSu!b>p+0eL){-6MqkO~B=f*q^pV_#UIG@?*RMEaEF zlcUr@y}Br%Nw?5<-fCs}La|z8%1a#2qEaL>p+Tn~CbA6FMf}E5@~T*G zEx}-v*MPLsFnqkdRwREN`soU%$Tjq{cXzgBFYO?qEtYjgdVq;VyjJp!(#pWq04flv zDg))tqOcYou}R_Pp;g5OuSbYr+%M&?zhzH(@X$_u+af$7L*fMP%nQndme!?8A}X|e zW&Z$I{{V&9y~6!cZT;q#W}5?G?}Vox3T@5YIn1CHl%gBZprhOD-x68`XYnWm6c)W$ z0huxAr~2M}2FLHG!T!hir`bCp$L$X1Z4%*Qj2u1eQ-O+RGfgp-(oilpYK}~7?3M0g zQ>9-oC(oyryeeMI{B5I$a?S&Be6D^|C7R&+{Wa>5q^0Rq^UXpHQ%+IDz{C^b;mjAs zDohc?@}QUOO0ef&7So6H+2a4JVkW#3I zgi>Co_3YZQc3)PO^sS%*)$RX}%g zLrn39%GYZE+!mj@06^7JcqwEmGD4y0Vp-N;$S!xSxJnR6ET>%RBaTQ=Xrmw!=t7F+ zp^YWp#WLYxN@vB#o=glW0P)RhL@E`vGNbl*pu=_`}Hba5io$Hof(Z@64?oT$)k1V*jWR%{a zP*e}6w4ebJq7X04d*3!l^Lt%lylR@%{IuIB%JCf5%>#4+sB_G7zKCm*PTTZPDdQ!SvjNphl0-USEhL9Htn6AE5KZs?4 zL1NJ%hU0r(#njbmgEGw@bq#d0YZX^WeQQ$vC&$f zYOtnSkh3cU2nO)Wg-AKs>`mceRsw~8-9$cFSz=JB-U`JuLtN}W%;ZT5%VHS)8A2Uw z5H**HkfnnYRMlIR>IjBqQlOO;7nz2N#^%jMiwqSgITE~5&MT9_JMX`ulqpJ=6c|B#1aERZux_;we-n&_sfwRWs=seDf$F5jhVn5oiJh zrwo#nQx*f0LR_kZRaCIoFyMm%7G@=x3aQ7M zEY$@RpcQ{N-bc{V5CuR*1I#XTL(qaKUF1@w7Q)$dm!X08fI_dtBm4Tr0zq-Xs>Km+ zMrxrzfIpRn=(*lyE)!REbk#%=X0sI=rRr)k3Mz*`Xt#7x$I)5U+s$4nNUb=cUDd#1 znp%j87V#kq#WH6p^tebOPndSAFd+h5DPii6c1Ew%nA2_BXy7k^+3!L!I6kqq63POY@u_YBZ>t;4c|@B#AKX8 zCk%}tR1wo9D#ZscI3mhnFr$*&suVS|8doNGa!O32tK8_6bYxi3H$VuWaP~ih^MOkm z01*)A_Fy?b07#>7+_0rWG9v^)rs$PuMnXyu*Kq2b!Wx(0j&xT!02Eyv@(Bju5wpS8B^_eCL&N=0?A5i z$!f@#f+-{A6hu4J41QaATPRaXiUUhA-YRI}P+hF~WR_5}t;gh{={d}yh?uBtS;8>W zLZ~2!-I!3R8Jp88rO1C+kOaAQhAF8^gt|3iw^bAb z3(KF9(DGO!Xr!&fXvlfMjE>EcieIC^!$xN!i}-|j17ogKr%41xQlf;dnhF9)^3tD9 z4+y9M$pX2bF1($+lE|vO`u0d7c6-(l77PH%d1dv16)43@XVF*E8#;4J{{S#VkN|*c zl)C%8GMBUYM1?Y;P;-h5#mZNwf+#zs$RI6g#Zc3aq)?OqiCXIkLYk(u;5E!7Qqhl< zIKdIhuDXwE2ujSx*IhdNK&2EZTN_)a*Eo`@!~{ZyoOK$pvq2S=MRA}CeIX6zej_g~ zxWEY@8hxO#J}0%sm_ZTYD$he(^=>fQo|-~54O9f0fOG1wD3-;5wXFnBXDKXMx|JWLaZ9J3qU;V9T-)31j?a#pj3h?B|$Q|rw(0uM3BTfkO?N7{hp;& z5tXuA4@E^%LpXMJFcnEulvgdhu2IFQz$(ELRhPtq%AtA{Ra9PU!&O2VLfELjN{WFB zP#B;=9v~e;qc*3?@DcK5kk2*@HMOe*S&2zjHba#W1<}_d3v~jP7X&aCRid3O=X=j) zC56zR{Rp8A!W@LKDhOPivI5TB5oihDe}$fclrPc#L?opzsx2>=w*XK*tBNx{AEo7_ zA_L~UlS}ll@4o(srq4#RCP=+7ctz2*M%2Hm0ZX)1vSHGFIY6EgU8*?!N0H$U`6r@D zb5H;mZ!6NAA&uqEtX|D+7uQHDrw+JfLiC3!s7mG4KAuJjTPS$)XMW{Wpnx?djBfX$ zznxwmiilN;>H=`1yU|sQ5|Wo0T8gN|K99m3Q3(tRBfGdfh3i!-1sTX{w?qFhvBF4(LGCGPtY~ znbgW@kxC`#X<_$9lm*s}Magnsxo`9BB5ynL3IZ}sz72$T=ayB zRa`Z4%O*i(_MjA$2}LHgU3en%1cMY8bx5idA2$|lbf7eXEYA8>vPRugmykeVm9527adx456nZ{tgrX@Cx=}K3tAfXfI;n-a zOuMKQAqk=<8YWZ&N+m~ypMr!{qN*h!OsD|fIhk_NE<@KSB9tm+Dsn2ClmP-9{T87G z7V@cDF|MUVt3l0T)MVCIRjOSJp7m{{Zc;76_{h z%2H~CR5d8*My{4JfPtZ_6(NH7OQvpqRDf?8LyhW;i2G-i9f=~H(=Y(c;DTtZNDF48 zF)CcunMjzDd?YDq5aj5<4RT=?9l~+Vy$3r(Aw%;^<~TtX8>$LD(2#*b2j@mS73+6- z7N7btThQ5-_i&a<50zcUk48d6XQP+-W$u|Apo=Zt*^cbjqR>?d2tu2e0cylt z!9gSuohg!xubK`(MM-F(?OF~9)w{G(m0%F?^J^!XBS94IP)%h*s=C-SWPyf?QD!@? z3Ir-BickuBB1Oy|r43zzdOSJ=1rzy01X=Eq}qbpSkhon@q z0^un6j#)r}lU+rRUt&=>=-kyZe>RCfEWG{VyfZQ(TQx2Y zO$5)O`hHXKZlu=CH*P0MJ_ga77!y_=16%{_pmM zvsXG^5H&nN09>Q}v|OTyp+IF64MgcJ!ZV|x2BU_V{a}bCOV=#E-*`*YXV*;!U3K(< z1vIsqmh_|%3-6wGJbtmEAQG!&A6k9yVq-Fs0HTN&+uPDAW8x|*mwE!!e?+cOMPz{Y zEHu+X2d%3gobBG;?9RdL&AYWbQ)_(_9OhDYW^~;MfKZu9jMz9w7P@H}ko=2xs95T(58YtU1<4_Xe);uYvwx}Y>&Lb~ zP=65nOX06`J69iN_-oybs}p6%{{TyjWy9@Vrvh!s%=2NCpAYu|KupS65Qz0CCzJ_f zkR+ji(;)6>r0){Sl{{=gJkw2yi8;i_#hz?jd`adrPm7B?&phOkvn<4+H8i-XWFUpE zPElncNwrAcN*ta&4jvsiICSBGBIe|tBzg0?*2KheNB2o>KjXuQ%aZB>VPK1s@I8Mw zFNmPMHU2$qkm1NCn93*%QIOe1)~<{K);ZX6q74}E^HSxqF)ArL&>R39k*qk3^x!dJKf=;L>L1DUu7Zn{GD%rjfNb=B8eYLE4p0P>ZxRzkC_e!%dth`4)Mdb|))(U6<9&X2;M;HKSm(n5j= zC`3NG>nKn`6Xn-gK!cKgDVjPjvOj;_dp2q37MsZ##{SbNiEoH=H>dYG7PcHlbv=XfGeK@ag(f+YkHL1(8Fk^@rE z;k~^890DMNue?0ZS>K0C5<7q6PV!lSCCdxP-T6a7wSrd8A6zp$bUuk}pd|$tNM0l>y1dafJNdr_`EAEo{20_J?+l8V@GO0AMHmKfG74ora z#%k-T(YLik;moGqUfo~pHX#W7ciT?nS+@dL>9tT0MIsCA60u;J# zfS@W}#$%VOz%ElSl&a>`ZuWdb>-Jad;0#Iz7m9}F7P2|Fywn*sN0YM+nuk{(*c-`auKzvs1 zOj+i|n-{%(sU))!3d(kjM52}e0aRZVz&L_n$h|}VH$GttGyWjkAiZ7_D3W(`=X(FnlPeKXvmMXOYQxaIVP0rj{H zsDps5EyLLB8)1)@ZP9bav{a)xKFyFa-ho?FnkiaS$ksW4h6`$jmcXXB8W`-b16OCz zS_BiD*kyI5Y9KVT+o<8!%v~Zp+~nFynsdynE!t`dH#g7UOGP$xTHG^aDL@wY1|n}| z%9$pVZZSnPNdyb|2$3p!=tH-+w_eaM7q8Q$FvqGci0e%_X=N>iFhf3rq)?+ingr-| z{6S-^OUZlsd!`=4K}}Fz$;m8d=9IAsyeo>9Q{f7#n ztY!u2xEy}^6ZH!{CBvTi=&;8NhlnY^hC-VZK}{XQvl#l|{)gS*#qA%{=WBLGE-{>T zUfC$akk7riCz@^K3a-jPAf;^|Blv{PEYjsEBmV#i``(;m>R;W|)fKN45Q+FQ7X3h)@`c5S9DC+6~b# zBpV=B-Tpc^ff7;}7b1$N$*RB=D63T{Q2@KI6!wl1&Z>y0%InL|^6+l~d!TEuOJD5} zM4%D|@)~6Mdlx(&38&rRqorNFy`YMfLJ*3;A4Aqq0001r)y+aD1?7}UNkgpk)V(zh z4H#7*-ch;%3{{YUMFUpha^S%gB9#**siTbb{uu=MT$xJI19GJ(wQHjU0D(=0XVDvj zLREL(78K+HsPeT6K@epCs6lgH1BW0DQjC?aIY-NOp5fYh^#UJ@kJZnzd^ zMn__fa+ZurK@}i(R4f$KyB=IB0L=nHATkBrWfx4TN>HWX0p>;*M-MBKn&gzFp^!q5 z1zuXAuu)E4@KdF=zotNUHcC)ShM1`)g)AvzN-rKF6+qWTdysv`h>ZvZp-tLVR46_~ za&u*h24oWu0#ueMO+)zsLWra>r>9BGHS)eROo1SwE7jaKo;V*=^m4MIO=m)-Q;L9$$QlPfEXabua#ECQ z*UX9{T3U~DLJLp|uC;*503aYFF(?X^SMaNW$Sy(%kauMA42n%CIkt!aDJU2qSwgXX zY@7`V0pLo6WdJLc70QTR&jpLS0ve@|az*DtIH49vGmr984T0jc3J?U~8W;p36bkMN zvaW<7DVWTpGGP2>QcdRzh#0sjCjyrE19C`y8?D2~KlnN^nXMJUKXOqea` z6QvqJfTN)VC7oC+vZ1r_P#HoY3a${etS(h3to)2QK58IJy>5)-P|ukVME7P;RfGQk zbCe>1NKIbN0e1*dD%!1@$wt)0BZ8@>sN{Yc7U*FrC@QQ-uizvR1b|!SX;5irWI40k z!aKlFu0mxr%@-{JTOc%uRC8uc1L;Qfihp0XlQ$QFEVo%Vmvu_eI9>?Ot*fA4H_T8L zlvJWJB9b#U%+@Mu03~w7BWb(^uVf1rL$Yrat%if3zEDMplq%#9vCVkjDjeo#DIpXG z{@|9Nac`9@dB&-m)GmpBi_#>@zzIQr?y?(S)|FLqDVBt)fCvDltoKA*!`>_e1cs?M zbM*=5&LUY-ZQx~6t9srjqOS%@K@_6MH;|fv#+*tM#^M42MIfidhNxk|-?^$1$ z_V51cr87h@A zHP;QF{{UI=fB2l1(0+WW8+5B{^~n{Z(XC8C3uwTPR^pl~qxq@KI^QHm(gVQq01iy| z{G<(~{*_HQI`fz+rdz6hVL=2IN-j@*!Xc=*@t7#QnHrZx9g-6e^IQg2%ffH_R}M{o}S|ubDn*+@L2vqza!-x}+$ONRi92 z-=dA-mW{-~;&io}nj_1v(2T-g)nCGrY5xEl!Poo6Su39dSMe0LU3H{+XZjbI%lfJK zQb+#)R`5Y5ghB(7&XyePLWuIl z=b7(CxlHpPiEd1Id8ttQqQy~B08|`GI+d_=gjvFYV4n6n%2|r2Mk>P4w}*DAlY&C0 z9thzoWR_G?7J$`=DjCXsof08RNKDL<%m6}Ylr2goigW@E*@*d->VPT(Z0(sAXkp23 zpGp9nEXL{pIYLlUsq*kkg2v$KU>yjj#DFSH5k*yz5}G%xB!83_LR41l@0z_G#99Cq z&=RC2!WGN_j)IxP-8S7W7c}}PMq%otP*z%e(-5Ih=p6D(WQh#RG{MjouORkR3XYa? z)`)kI*>nTYBNo?^IkEzT6(DLw2}+#FOyG(WHbQU-(^T5%mT8ZYgC4-kf@+(baja$ZQ=o`uvbS1 zCk#BJVgeKjqQOyJX|J<10TCG$TJNBDVnR9!!4^&wle!CLri!_zqrwYWWhBz5RTWXf zWQn3yHQfl7VvTZdlej`gW+>DE0%$1y&+7zSaOzENYOH`UK<&H-8;Bn>TId2h3S63I zp(AO43dhN`ct8RWAS3?(MY5hFS^)&<-=2TM%u6zmq%Ct|${LHB1Taf0pG74*j@(pelG0nKf;CZ@%Hx_+;t8L9^XR8^f~v@bWo3Nj2*{^V6bJqm0A%RIYURx+ zB89>oNk`{=vWQXPm9;`T4??@hGcZLvq>@^QmrCyhu`U2qwNeBnKeu&I39CdYP|I3^ zNilN)QBc7yY#QT(dBr#xmNw7Nrbr@*fdOSf=YA*DJJJCpuIe`w$T|Yp#%iD4;5mLbYgY5frAN zAcrs$Dzy?|o5=bz(yNd#MJQ^h;$n6F(f6_?p%8b5OiCp}s-iHWJMnuevkMOj!DTmYt^2oXG9fLO5dCjOA_HOHRYa>OgUw$<<1Z?u<}~*8bc&x zZP4r12$G;Ih={Z!ivIu_(gINOQZ&tU%J4e`QFZJ2^@s`_KlXrCLxx1Ku!1Wp$>g5q z&;@lWIC-=+HL_4ue-MqnZd|MR)(C(lMhvUY8y!*$qBVK1TEy>+jcU*91WicZGf*YH zlD#mbFobAFqJ6T7s8nG~=(7zDMv-tu22g4dGAy4@Pq2z8yi#@DJp=JVkn(8GvYGJi4ilCiX_>&@XT@#zZ6K&uCqOL({ z=j9NE2@DpT{Jg%8VOpr`Md@^-5RndLvIEcUcqqFyzmKD+S46dbkt}AI5n=2b*!gm$ zbVJ6`H=mVhNGViiq6ah-R1d>HXiL0khJ|uB=wB!RHwu)QJv2Vz8)=oizYs*&RHZ#~ zO6rPXOi`5#)O|k8*}(N>3Wp)|YNr^I3aXFxkAJE1T0vIz9xf&=yOpOt8H7w2phsHQ zU!pZ5Fcwfn6*<=~Pwh=atmLT$K{Q9EZTHd)pixM((1ay;3hJE7Kw;(V2hl_}$p@d> zzjVqEr(77ob+27K6r--2u5bgoK?oAr-1^%l3?fKSMs3n-0H+4>Z>Lm(E=w6@JXgpU zrIRb9RJAOtM@C0ma-=0F1*$2~=MK2Ts$~`*! zX#xc;&+V6_AejI`EvZ}U5c|l#D!o)4G%7i8f+__V@}q$MjQ;>*0V0GFNK^q&n-5-4 zB^3CqQ5QD%@`W;j3Z=7Uuj0P2M8OjTl#qoPkpNL9A02R1VIeAh7P!fi1DU&{W=aaz{x-nz@%%IWSE?JIH_ks+p z2&v-LHzD8yc4nazCi)J86<{F)yg}Weu1Nh_#o&sRa7zCGFao+}2zzqNIA}R#*Cx^u zlm$48^7r(DBoqQpYVOr%DW*|YTO}K>q$!F5Qk`|ti184#0$K~A-|1>96(m;DmnbX% zZB;7`LTH|m1!hDkDSCTxt0QrTy(yP_FG9ybuLvSHnNo(IK}SfdQ$*um&zrO$Nn$kz zM*HUgtj@IMR)Q?|Ub8qX&G@xw%BY$ELl;UOSu!6)ya0I8`g{e6IF zB65R#$pb=59v*QiyoFM&pVTlyk)%OIswF_Z`1x~!Ap?@7LzAVNgM$~%>#w!Hj!==5 zE4nHw`E_a}EYi9>$iWa*RHJdrSAs1H+OaBC0A1UkZYMft4R~sc_T&Zgv?08%R1OcX zEBZkbs)88%WO_n8p^UOdxZ?0LXK0f}AyL5xGp1SSxuF!0cbL%&mo{Tf9BD|T0Z3G< z5zp0VZC6NcnX_uuzYjB{W=zPeT}YVxzwODm5(AK_1XLwcy=sdk0X$2pG51ahGh|Rz zGeo6Ox>6L=GlGV|To-XNg{#`x!NrspD_{yb(KWjo7qSs-#Ro91LFRH%6pTRO!}Az# zOE31R7bO9%d<}lFQp}bI%A6BB(16+%Tx3LEMtx(pRHj)%^HTaHuN0=}iDgytX5xII zC`2;@s)0m)U0xT3$TGVx)e5toS`~tqr=_xP8T&hC0&FTmmvF6Z6)*1tC?MC1{{R=Z za4Y=GMq!VqRfY_pB8Kavq!c*Rb0mET`ykTcSW%6Vq4|hF%yLCS-+Ow%45I38bNX@+ zx1<*cLXy0_@`9Hdk1&BKQox2n#WEK_8--G_Nq?jBy|Ut_GZV@R0*O+qWDCy2F%05L z3Rjv_MOxJdoDs&MX=F}WwYv0)C`u)~wG~BGu2+o4BK)p6grKPvC08mwOwNHsg=z&H z)TtqTsQEZ|_8n80wElbYPIRITLU6i9Tausc3R1(DUU81mwe0&o9N3#y(SfsJ%JX7l zV#$Xn2&Abf5~8kF@!Kx*d~Ntk-3%ODe)4=l?yqLafh^PFNsrqb6tj)mjnj&y08~Ks z2>EdEG4Y5PSU8x3*il7QfA%1(IGDH;0C6!W!U5dXT@>*S2^S5?cRFktAHo8$AO%b4 zRMvs7986pZ=4n8m!dQt(c|wMimMp+|)7H1ekLua_HuzI6(JyFxK)~&duL4=jxE+_d zwaYx?c_rS%oTw!O5P?`4`jzI#F2i}_&Ss4|@O?*in zyMIyt02#lhm%{GP+y4OcsBGU2cFxkl!o*F31GDxGuWQD{mS2)d@UZ6bOj*c2ESf$@ zJ~)3>AJzW=$2qpWpS1h;wD)_lHm}?Rv->i9O`3c>DT;0kY$?GLiDunJP(n3hz#iD` z{@d>s)rq!ui?@4Mw|1OtNvFi0w6^SRt!A0Z3`wRzoxMzbXTU$CekF!*@w`{XYuUhK z`a2dSd)a)a5yc^_SQl%u`LB(CQuZ3fcwQUfv|_W;F?PH>HWraU2FF^idJk$ptdG^7 z=|kcq{h`=j0)7i@-GhsZi#(t4`8He(JS<58DLx3?21O`93%e>Sl^(EU#FzyM;v}%l zk|h;Ov%GXXDa4?OB-|3RN}wi*^cq!Dog~u)B=~7H9-%YU?O6M7g?MJq;TttOF3(mr zB{cr(_KZ`FiCJcIRZ;_K9&6-2Be(4yC689ojxebunw%UeaPYu06wtyXJmk8r`5^!q z5G=ozjU^^pl~UC_a!>6%qks&+)B|&rxuQ%L)ZBv`Z%o2tLzPvS4?kb}x_}F`*nyL1 z`Pews-!;yvn-(_KKeV4~0Bx%-X(~x5R5BtCN&FXcP-1SP6(LCqhynzo^a~LjIp;gO zpr{4K3Mt4TMNj@zG$|&OE3Wl?DA^)kI>dn?-Yh28dpDD0aO~o(5@9Ug%Fy;nt z+ryS=@n<7;Nd(hORSF45(XCaF+ILgocX~Uxs8`w#%{x z6^u+kBAN&@mhpj2?XAk}2X=lM_UCTRhl{jf&9Q7mf@Z`7O+C~KmU=RgE6S1I?!xXr zVt0E6L9^hDeWXgWW8zD^hysvF%}@>{O2_YvvPcY)N-*UNC6-i{QJ@TnJ!2VwQj(z| zHKJIM`g@YQv|-ajJeQXlX4++{@;hgXZF^quHGZBRRMJ>O5J}E0>bgAgfi&CSC{rpT z%0nP>Dy0wtS(-A$NlJ$(h-z;zKvZUe?~y#&v2p8yu5mRCTEDor)KpRAtriq_)%4G_nKnX<^ZPWmu(OC#cn_bD}9PfS{AW25_ zaxYHS|laX&hWY zo6^h<=>E_FHDn_t%z*082q3tUDtBik!5gMW3jiami8IXG$+(#63UcEhGK5LMm`tPD zMM*A71I{P+&xt?)vlK+5QPDG1C?k(B{{RreLa0?sOdZI{(!dgtfbfvcfVm|JxM1iM z9(qLxhXJBwk_Vr946;(qZ!VeT7vl|O&lu)n0?;5@(#CJ$;?6S}RMaXI-X@LA+HCWV zn>2=GKjlkgK{p_px2b)BmQ)oIfP{j`#=kPz3E*OPGZ}$-VgU1zo=w3`LV_WI`j9>6 zpSLnnQOE%1M95C)Vr(@)a?S4-aWFn0N+AZS!t^&rp^hBWC|N;yhXU0s5DU;988O7# z@bDDRiU%o8T}E`W(kr@jKT8Y2%(huMyJ8fQSO+A?&o3;x#n)Ar6w5G_8B3u+T|>>T zbSL~nHnZ(`cqnl(B$7c_3KXdXAw1DdMp5|Pr?%&&&nPAQMVTmAIQLKlbX;wx7ia?$ z7HOt+M?k6vnjr;NXW>#BE@C5ulK?lKgEh5>u~%6e#83?COEJ<5H>V~0ji7)mf@ z{n>(z=0y$u*?hd7KQ*@ZgS57@yEZ57$fzWcZtnj8a6%6RQ&{N6Y&lsF)o6>SA`b(^ z<%zl%b?26VmII3pbOwf?RKT^e>>GMkHV*2h*>4Gsqb52zNq zE*31rFsA7Yft3Mzx|2#PUyPtQL8BEGS5l6Gfkv^uB=RQV@gX9h3Knr&8qrIW7!xT; z0b-_7K;#q?nP9ibn59&aBp34*o*+rodMwyS<`H(jjvg9vX<%h!W~c~FxmzIhpr8h^ z6U;YW!BkKsXKAlz*siG=yf|@hD+LspmvOp$SFEMsrNcpav$i(4f^Q;iDPnzVclF z3=Z!%;gur1_*;kC_u$-KHSJ^qCi9z~64ne0T6MQKdU8 zEXb0TPY^DG;#11OT}epNOhAQF-`lO31HD$xXmY{WNEhS7JMz>j<{Xw2EOTNrVC|!E zy5z7VJN%#$%vnh^u1>%RU@MS>nxlbaqm2C{DRDtnm?DoBLZlV}(QlSfW?~p10e~Di zJJZo#1ha;)Zzktw%zagAs<0$5f#@Hb-HXkoT*6SZ0d-F$2Z>r0TUenk8I*(wQ*;~6 z%_(GX07A_Mb}LE~k+X5&w?qmBWTgRYmsC_hZxu2wY+#TXh-duzD#?nt4)4b_v zDWJH_g1{#8EMa547CgbqUGD*a{x44Jh|ep-aDkR{o@InULWHzPzgz} z-OCeFHLRAG;JiYj9 z`V9ER-*bVr_P)FYr$S@J0;QdFxtmayIZ4`FvpyEZCJy1%it_rGby?>^gx zCEt=_B*PQRhj(<#x=Y;!_e~?s&gy(U?hkWzTrHEkUDxcbj}Ht1EYob5Gh%@(yTAG3 zEfCkj12lPUv*PWRnyMQv8OApi7N(qloX;>gE$TK3>TlHfa%XpuVKZx+JK1_6_<8yU z_~+kga51|}v(I+6EK@AszqEk6lOa*!7IFe5SLKg7z8(JnOpfCAPwZ`7{O!z6*~gSh zXTsR0+?0}}%I2Hfz#v{~W7(JQ<8I3&z8MrsB$LA^058gqX7Hm{ky6YQC^Hnf7g8J# z?P*^kh^9Qo)A1jO<2V?j2oq{qngEhs8z3c_ZPBq{&;w9wBm9d84W|*D^Ifd&H|f*h zpKvg6aC-~6y_vLPVTnN6HvN|i9~c=*gTFMYr*>B=RaH#H9{g-y>AOD+Y~7u*?As0u zfC(_Rd>lMEWfTHYEP{a#gw)g|bUA0-Ab=K908~&BS0x;7#yJBTWd&4#YJP7qNB;nE zvWt2Ad~AGj_?VUA6P;BP&6f8I~EGByg45=EQ zqDhz1Oyo7oMYM5XISv4MCm}uhGW`eclm=fn?8$}aTXXR&C2%Sm=~Ph*&xRmRiv4S$%hV{7wJyX zhT&X3jjJf&>0Q{!?a4x_fdyGhDReib6eNCnZK`D znK{JKvybs}=L|K@AMpy+Z6+87xns&QBFpsu0P6Rg%!egoTBo+@N`VM%ASn|Z>PaM^ zW>v9XMFf6Z{aFE2fT-!qE_HQ<{NkOFlr&A|-q1OSt?wFJ;PXF#O6WJ{`#%uBVIw?woE0o?!~ zt;eyw5**uB>ThC6D3+#TB?VHcRAPy{%_7HVsIY3D8HRBkX7OMi6xEGQEKNW>%Vm~K zXZU6MpY?)57I|xvrRsR!OGdbRa6;rOfK|x}<^g8~1!*6J#O;pH!dbC)?UN2rr0?U% zo)QqvyhYQ(o^im(?|*i7c~=*;_E|^>K*f-t3}pmN#YqHi*kqBAY*?g56-2Q9!)i zNDMR!*_>aB9n0BCGxn&NK|8XUO1;PgG^)Z?egt%>zBqR$0(F-g5_y1NC1Tbk9IYMA zsxME5?KM&e*{eDY!Zg=jkgNXySlFp^R@H>jt2cV<#X4$VFwB!CDYDXAGyIa>x)94v3tCd5e_KV})3 z0GeV#)KyksSpb zp&L#l-Wg^Rf~zoE+#t_FMT^DDi9YnC5<)6~P!g!BgiNGl6w*9W{{YhawHCqbsU!tZ zZxRByKmZ^G;HN_oH^)xdndI28<)Q{4dZVkmUA!>=0HSST*loy*AH49AWGbJC{5%?W zv5i^4AT&SFUSopt;LkA=6D;8qbQ{pvhd_nD@Vq%U&@{mixFdjbSwUJg(Hq2(@w>cJ zgS&-<5Q;gWR3CF^G+3YGH+p6=%OuhTbu#Xz^%A^EM1Kx(U-}l-cShh31e&7pXb{&u zau@#q?UTcIVALJHU^5M1+5Jt~d3JwtRRAam^024;;z$bKKh12-X2f! zhrL7}{Lv(WP*n!;H1L!lC(Tz66EDTS_RNHBBg9QYgEFu#;81v;o6?A|@Exto?mQAV zxmzc;ye$}q#M=gcs88-6D7Klk?W5?t#vi!sOsdAhiNod=a#7er-rZ1)Pyh&4Q$_@$ zvMH@2!*Bg6eeals+a&^GM(QX_511z~=;b3!KZ;%I-YK>M0dx(L9pY4?I?xJ)0-y8^ zrOeRTNsg??pW#UOpJI*LF%6uSj$j*VU|D&TF$|(%Dcwtj$Pz-bD{utZ2$PJVd|Z@* zfk-9lGqr(_5I^*&ccNr6?PJ1{m6Z6(%`pDqxB~|yFe0WXd{FOE2mXA3o#LoJ{m_b` z1u6xHz;WJcpfKwrjOXQ*)^qVz#=r_I(ZB#$FlT*q1Pd=M&M*6B8>kU?K~iW(nH$Pl zk&(yUBn|06U{uXSWJMPYD`bxpB>17;U{Y*pW&s>1C23y<@e4&70t|Doz9x5uRhntA z=SvV5nE6?W4x@|E_&zWKmIT92a5`Et`eQ#5Y?U=s)m=NHKma?i&A}RvBD|xM9%58Z zNFb_-f^Q=DSW=f|fNe9M??Na+9wnn^Vn9?1ToE2KN%2#*<(fl@hb+zznUDn;skNw4 zsU2Sf;-6?KIGZe!0d6l{;mjKFM5p~HX#_PeS)?3>Wse3A&99n|AK0q@0Mx0$u>_H+ zi26eqUPB$KX^g2j22t{YL3`oWO8OHDK>|{*J zhj~IeYBgOg9ZwJ9X2FTO``a;*GTtNw0;44tORKgjyfRfE1X5d30y&L;)JVVu1WUT>^x96=9)pfyHEE9J}Qd604VX*wr=}m>J{g*GZ7(w(>-X~Q0RR&<5U{ONhD5AwE;5QU2KFi)iAImf zVRpx7;>*2-wcwOb@06*rGOp@wmKJF0ID1@^N|NJYlUA7mEzgC(tt)bos&;yTnkoda zu`QdD)@IL!i*Aj#4xk#UYJluR7#wfQ%2!^OX!(Ix3Qz^%P*|2MT;0QyX_zX4g@U>V zWD^ARL&y$~E+uBIR7ye27akS`bE-o9;~`Ztg1faTc3R$R=IVnV=(LyV8fbYoT-H&v zQvrh*XE%G_r%|A8yfJ_xWF*yUir^JW1Yb)=!)qZ+F>)A#PYN8ZpC#x6X?a3|8A$*U zn^Pt{3SUvQyrESB0x4#r`7VO*(#?*uPVs2Tqc$1&tJ8}2e^N3$eKO5;&-FTj3c6Dy zdoVfV5vXkZd!nt1f{&!ywn)K+^LpSU01@lBAmR66vz5| zv(JNDfap2G%}yw(gdQP=fJ7cItLr^(U7~P2B=aFxR0k^oOpItTOvq+pi@UvSso^QE zWKudf#hi`fF&m}G^GcOcW9sBmj4Y8EL~A%pkj%V)l71*arZz;h*S#AYl@4YD%CaU^3NbrC_F$C2_)#7_%T^1VN}yi7bm4J3Kw>#A)# zKF8WJO@rDS4#~G*%_tLL?N~T?f@dw_l!Bw2pp<1!(s#S`?eJH>I2gDcv)q2h!oO>N;&W4cn}(or(L>X4v4=%H8wtf5UKL5NR;ku#wR0SI*n z8%9QCOJQwWP7Ol5ENo0VoEM_Hgs>WpQo;_3_26J)P}sN>R!p^Y(m;U(n`PDEdeZod z{V%>4cZ2u#p5*qfKVfZHf_bEq9}t`=W-35HLJ3p`-SF67!B2>P(|6;KbH95ZyZ->S z-o1|tc*`!zC6^G$6w6eYomCa1=zMRIJSqMl6I#@-(=;~bVPfKex@RC22ugx1CY0%G z|j&=qMf3V{kZgsqCdKs5uEFhT&#bG{5NU&ze21Uva1H5DR_UB>7;5M ze1!L>;fKUdl zKlk`!>km@-!knxH-X{<iRn5cB=6OvCECAGnhtA1M5zqEwVR zD6~Nn3Ov;WP-sSc>1U2sHXPeNEYfWlIGZj!vn1GCM3Z662rVg=XWo<(D9Wg+na?Sl z%6Cd=M(Ng}wF3F9cd4qKz-c?q9^&x?0{6%~J;N?lTgKG1+3ghHcxybI4OSvybN>KH zl{L6z%SEZK;}FW5#Z`%WWW}G-kfp(xgECFLjHqi?1g$_o!03?9&4@rVP!XzC*y!*i zX9qZeZm=@e%4spBxMfe*&E7w|X(xXX08C{e{9Pz^QIvAz#NRAc7#2DeS8`Dm?5`Xj z+MJ*%Doi(%`-H8$D&TqZOD6 zfNSW%fUvoHaP#V$H1q7(@@+dVE+)yfVWGp?Hfg5A#gcjngwo9^1bo6^prHgxC0O$3 z;J530^#|}jYuTslUifX@vDtW2NO3zmwRW6cs|?`DFb57vaVMHtd@2BQVi>1~AGkOc zx`0(xgY#Z7LlF;vkbqvOI=3h@gr?2Ys@Xx--VeCJOn;iYm?R-Hd7B6W} z{{XCbxU(d?+oD-Sl5Z22_ag@O(cJHdeai3u0A}p{t=%s1c4uvDdrX3SDfT_94tdgV z^1|Nz$x3G`WKuo`zjj%sS)>5U^2`s4Q&Zy(2r3bPVi-Srz7+nWelL6(?Ma7s<19&r=|pAzTxw6Y zW9RSm_5EZvU7+kef$^`g#>t9K9t{1zfxkEIQdzNQ!j?{{Z9X!yk(M zjfdLZ%I{xgc9fX-LlRw^{bmT-!I%PNJ3jXK`H{k^f>?p^{{R*EXU04i6yfc=9wju= zTlHzA)rC-SBDQIK_^+{ePsM%><5*PJv2A#DRzsW`>ZY7ZNe;%6MDo-~Uz6{?Ih(h3 zpb!a22;7hc9u%V@P=!B;nN^8IKvV#=Tm6rubw2TJlVf()*@-^z26YPR6HBnyJWOCovQQIrI5F~^G9g~45b+?f*)^K-aNk@egND{VE-4e|bCO{>XfDK8W!|Co66a>iXps7%S z?m1}W#+_AFh)n80`wdq19vw7*z;860+c6w|gHf}OCqPG=o=I*otg`|F6)E)2IJ@K- zw{Amel3yj#G^lBlfClA}M-|Z`q&B@nEYJ(U)y{DeJt8uNxtIqg>COdkGo(a>ivIv{ z22jAeQdGUbPp+DZTAtpwP7ru$&()w`Im<;-W}Eb5E+Q`9ZCxK<<2ZP>d6U?Zr;h7L<6WJ`tV_)0=0#$e; zt8&cxBxDUb;gxGm8X$vJUB@92e(8|nB55YY=0p1ZBavAfgKH4u*sx*dxm)t*?-agW zb@+}x^nt+eluCul)F65XjRex@<&A*1A??6MKn-8CKPmR+p}@Fd&_sD>JXyiV?Kc zG)_uj3$(F*GQ?!%p3R&U8^N!9q3+S29ahJ58Hg<xfw)wJPk*lRf(<)o72=6Gla5g(1m+Of8rLpCWpwiyNh3T0b)CTcLhP|JY> zN7bh=_tQ0wylQB))Xv4C-bdOvuA#JcrYEjR;0K2No z>X!^$B4v2v11Tt~xe5ZAnq3`%8O6$Fl~QXXgi-)xEypXANZY3fVTS;Y49}C80Qs#i z)vFZm9pcV1Z$}4MHh}r=CI(h~%cxtupH>txq_Y4RBcd%4m4Y%{Dpg!Z8+&!^=rZC! ze|iH!7A6w_YE?8_vxGv`s07w5hDdke&{&p%0lgO@S;vJB%w|Oj28C_~6~DHjv=fr9 zRn&CeRA-EE$d|$adt8y`x*DM@QY;xl62z#dK33N{MDpv>U#HRGTABkmAW0(m$z~nr z3V~JWe~Nu!OhxXce6q3SNO_PSq=2~h8RYHl5hBog^hXxX`ov}4jR{IreWLe@@fl>x zr{)j}!YlwnDom^8Z+(2ArGW#ZnPHnaKBDmn%ZN9v zdRb8!JrJPvb50GqV^$Ons}NNJ1@f2D+9e?gP_L$6e4?g@mu++Rm0^fLVl+P~-L_U{ zjDS2--vJP&M|V8hm8ob9z#tYGf~05y@(n?A0?G-^!DB;SsSs3^4i%Q7iI>|!5xK{o z)w!y;Y2JQ>0UtrbAz?Nq1g1!XChFzZh=Ga1A_lq@&c2UWj|${etGJnMW_LmhRvzfD z%E(hrK7}*R4!{GDhZ;))_J5_+?l_A^bF15{8RoSUDlHKit8{Lt77;ZT1p(^BI$V09 zZfrQ3Y4nBH*RLp$b%>Gmv-@tij1=ZhHn)qcL&7)*+3@0M^M^Xt4EBYkBfGSo2sv$m)Bau z07Fa=PL1e$(KHwLj_0=2l&Xzc`rtH&s%Wu*%r_8tTz&GX5ptgpIkQwh(yGEW(8vLQhfD zbj#_)GOLJu!}}~I!xdV#Ok1lF!ZVuzZOL`}WG|@^%tqC&&QmX9eF`L2<@CQEH%PE2 zB0__^SASnmWz%NBAj>dNg-J)K00wZSZ9$xVd$+r-*d629=h^$g*gcus7+8aF$+m3x zIOGC+Tf5RZm>YmeN(lXlloZHOyptlKh&j|mnFo_olKR&u%|<>Z4MMsrG}H_lO;nuj zK@8b64AvZ63_My$#HO4;f3~0wgFC}#!Hh2k`~Lv?68IC}vyZf4_B{QEwqlv4O@K?Y z;R(ww78>th;B6$#NM8(uPN-LOl0o@FAS3&n z#M#8i4FL*{NCYsdW>H1zBQNxz6#&ah6U4vUA#)wgm*Q^~*@zVFb(&-4#6PGqd(3Xz z>b&;X@Rx&ahN`hPEIMj8IABqb4mV5c82M}S&D;L~)5qh-V;SbyrNQldISJkUuiFZr z+b-%Ax`Ks_cB8bvNdEw+PRA2|{{V6J%yA)@Z(yleR6PwZJmgB&({tcJRJF@hmpprw0%K1OrRu94cX;;Jo%f z^yk8H5BpW^IBzjifuljpek4E2uV{P{_{G^xw)YRUB-~O{2Nrrv0&a;&B}}M-YO(PJ z{D#xrUifS?88+_hcE-+SDKR@1IYJ(yMW;PYN7kMvW^6cuV~yGS20I1)&65UpR4p{B zuGD*YW2R&GGrC(?KkECl*m$)0whf&T9XusJ%ZYUny@&lo#Qy-**ytdZdTW=5iO9O= zVt-92wier6EKFBGuP|7%K+`96@=K3_v|!AC)a=_{%7F>mc5F-_wJ2u+2qbXOlN@6_ zlLnqy(LgGpb08WteM@({^xN=TzPmOy&)Z$h*kt|LOoJ0+!o%6-kw?$r0%Z!?vyIsG z+wq(FX5r0+wf4Wlp4Y_R{{WeZh1j^n0G=cQa!uJz@)1bycz?$}8MTo{JvD5#5vtm!POeHD2F}F;IcsN;tRy$ZW zoH@k8Oi)av!vYJZhOAk|LCIs;VB=wJ6jO|C&52eX zJ{5RX(|T(gq)#CHy4iPk;O}rS{wjC>0I|D~iQ3p5i#KcI3>h}ea*{0H+U%y4x--YT zABO(`(~IFBbtKvLj`ibXcZYA6c5^(F?`-&<5O=o;LbEzFq!+7v_Vzb;dq=z7ui5>* z*;v?{FKPBx(}lHc*tkYvHufCiV<02McZ94~>zR+IPtq^y3$p$_d@=03wBt!Hc{>+o z!q~fGXZ^`c>w$(P{nIHs$9%rKxkrQe;}ga+W{5e8q3gW06idBocQxy>h8C~ABEk_!NbDt{{VA)8xDLa zWtLoHv0(o9hGiSro0CikJ|!RANh2=iVPpQpqYna1J)ZAe0b@01D}H5CDuL z0W_o%Dr$`SqNC)s1=K)yXrKTPC%ZlA_K%R_W8-ZV?_%O&*Hb?AbyZf6co_>f0}b}P z91WiU0fU8wgaL86he!e0hOFLq7h4=*G2Je!$5ThO%fb@`Kn2_lNjg-A9#@C}0NOoP z7(A<`IPkKlp$a1j6o{F%iSliJj9J@bc$u^o-DrJhl;r~Uz4MU0zdm`kq60BGW}L@d zHHn4SSsp*a*QM<@vj+1FeyXold&BR~qyGRTtKT^fTKUnr!!w!>2(najZ)nUT{{R3Z zc{RV3JkJLWem}!RK9ukpTnT+x=WeB0$%07W#$Y|X+lsCFK0tY>rnf&xHWHk(ua_Y#cGsvzFmD_B(7vylzV!>04?srNz1DvpU!@LJ^Eb6YLG#t zRB;&-Owl%d@J~4vtna+pS>FlnAmd6f70x`M3~t7(lM57 zIZ2os78I(Y_$%LU>VMq6%%2-)?tgc&J7;vvB*(@RVF{3ty;?OwgmsRl$>4q|;uEuM zc(qeMJ8sfk4C)lP$@8+~?Y|IsPlq@9t+NiAhxQ7$>&Q|CG@PmrltZv}?MY@W`%@IE zN=P(%5&^6IBDZJ%0N_QYMBOBzp#o4%D$UA04ffadKKPxr;!b-byZbi5DVXl5P$eu5 z=_pFo0Stn%+s&`~j(mLDF$~ySP6h;}#GkaN#1U51kfYW+cwYhd?jl4(uBWguAG=8g5lO>}JddvuE) zlYR()QeOFO9q#O|!uXf5VC{XG+M7-e%P!j>GR=cNEaFK?MFbNt2vVpP-s*NuuLEw_ zwocI5j`q*DZ1`JN&PlA8(h0z$Ci9fPia5R};M;G5;!%gS(kb5$MRb>@y8;Gex0fg# z-wE;G4)MGy@wO_76g4%9hV4|60R^lyF){-@a+aQ+_fNC{uU>1dh=sjDRlnEH(9{AH zrTR9GTaP)?&EF;0A%jJn{M4NCYa2tC6O=VN@#@z6K)rCJO1K)DIuIAzg+xA#2EJC! zjE)_BRa5JPAVRV0u95}SNp{H6!_Jz-k`+|}4n}!W)?rvY$6W8^-dbpi_k;fcwy4_m z$|bKWmbR5*Qjx3@(MOB)fF-=~wR-;@-W zcge%JMot`Pkma6l2_Y2@=(bcxPjz;PSKhrB(=5FFp%R*sf1KCrltu0lz#!+YlH(`+3%& z37RRaL+=gYds-(+T^DWcS8;nwyP4R>Br))!riMFcHeilt*f)J z<|0nh*|6rs!o-k&aoh)V8A5>0s-@%U5KN&ZuqP+ER>&Dcr}(ik#oP8BgSIwl_Duvq!(5iC>~$gnj=2{{T_7c6P`A0B5^XA9{cF8$RfkOkzPN_T@@% zIsgDdYGcA~_Xwtepen51FM10<&HMKvn)Pj#_;Vc}a%fyFMNu z22#7jZXLL8lO&>V6e= zCwP0k+#c`tKYB60f3|iFj|T&2#4{=hFu;7n5GK)9p!m;>D%f%HsM|Izs*FnUeq3BC zYu>PWY5~a0vu}U!E+2^OxH!8Hh-_yM3k9me#IFx@zGHc%vMF8WZR5VkALgke z=G|JYfEh&o+_I#orkoYij-w^1LCBZ}28N%{r!lCE$dnKT6~m=mts}*Ae3*1+>1GVs z0hiGuAOyyua%)3+wrLH}2uD?9P7Cy+!cVt6xastPmqqkgO_fS0(R1s~Vr^}7h+tW* z*N-%C+1TI8BbgtGX-~N8^3b|S1olrdb^ic&OO+(fK2mLLlOe|}`NWsDPx75~_Kzl2 ze{biuRQ-E>`bkpg$f!*khN73!@tK$uuu>UHB4wx}L01kE4OLm{wxa~M@L)j!oX&S^ zHgTCgOcWZko+Y2pN4~9-trk^cr4TXp<@rdB^1(SF2Tl#sq(<;`N_uJRzgQN)fKFj^ zu+GQI2Y|`kz4?eRa?%yst4aw0Kql%<$C_&y zuINL^=gP?3lPK#wnb}yobi!f?!QN76p|iKHlvt|}QBL(tH2d|)eo~5S#H?-t=FKn& zzLzOODRN{1T1QaOZm2m9L#J{h)YEm0p_E{{M)HD;gj6V~CWYPVI7c6SlskZb z+T0y2W12;Rz^$uD)-<%UIkUsTv6r_#D?6V0eTR}$0%iumQ$m#TG<4Fj1^hq)wKq(t zssSi0Y6*BwvZTZUs1b!rB37?UJHj(2=n8>Up$=UUY&0lMNedDKbR$@DUnreAC_+?* zlrj@`U@En6i10ZZ)ZMLImKu%GKuy81jOHNBQ^X3WaF$|)_-8&+mIP(sK22yOH&O$uU;R^y*ki92zxj-4g_; zN;Pf9>N)$yfeAAW-O%MFDt%sr1T1VpjIs$sQO}L)tET$} z0F2ANR&Xri&9Y=r1g-$3WuXT|Dx1!s>huvx6Xgt3L6WUgi@Sw; zD2Fa5p1iq4fDk!4qE%X-o2}yX)C`yo@v8>5V=UZ(EXbIfHm{Nob)Z;lZeEKBjMItX zS0|d)7SWD2HV(^$`}&wTE^SD1ON`pU z$N)12bUU<->WHSBl1Ks>!Xg@C9HN! zzaOZ7g+0Q*iui8vUex2Ml7Bw zaQ56)-v*N6q{THVh=Ci!9i4~a?-ua^Px^h65K>vItZq>ZcY&)WlL5=H68sMl_?y8z zHk1CNZNW8%Kc|IO{ba_H47UImvz%Ns3o(}k9GpThz(RnNG6oGY(}0i9c9(j4t=LkW zUe@jY&DlhvV1M&g48;N}31?cO>p-#S`@LVQAB>&on-W}J-Sh)CDlbNO`7G^U|iQ_XAsV8|tSOr29kzCH!B?Y7u`9Na89J!!W)nn4^-vM}5 z2&7{iZK9yg2>?Sk?O@V%_6y1FpVaRe#T5;lVC?kXkwp%24^be;9d$SJ{{X!oudj%G zqb&G+-`F;8&cP)mn;Q;NP=Ex)*nm(DL^Js9-fz@T#g6pPi~j%+??%)6$UsG%mG9`5J8~{ zP=y?v>I0o#`VG=|NfrtKt$5OoJT4;pqaf#uMfBy9%)&S!jI&<+9fN^p3|-7wxu3dS zR4Nc1iYACu6y`~!KirkKLa+wGZs&_xDvrDnFtJ2R+MuARS~HZZzJSV;3n)anTWgRe z>;OX#lyUqwTTA2|>gXT_z32N_F(HJ2%^EaRyVdX`u)9CK9}~N|+1;(S;A|TX4%LOU z&ySBZvf+uaXA_AG(-0-zV1=0hTKx+4UMFXri(|p;&9h|Mwpi47Sx{!~9q9w$bC*xLDXbT{wTChG?S#x_(npB);$^ zjbEN$MEEP>{fptOJbWFaVy_f!7^152u<8P;Xr+J~ng=8~9A$kT06;z&l39LI2y#mN z#VV{hYX*Pum{533r9mjc2vl2xU?bC)a{mCR2Y)*o_VByW*;qZZgD93IH%2-JH`Y*2df5%@A_@3=Jdu2O4WP!P~57RP#$-phlf)|;gQdBEbytGOJ z3!A7`rJ`{N5`bKs(z%Lo0kT-=eS_YP?RTF7O{1`TceD2SXOwQsg|y+%izt{%K>e{X zE12ChkJ3%E%^;Ka71X@Dq|sPWRcL5zspm0hs|=cPXsU{V19qxSBt z1(Xtf(^Idmu>EbJ(RimIe7`f~<;eww_%px(c_;dK?T_^Ry|;E@oB_2F z0UpB6A|aTr^seV;!1&4(}T8<2osCLW9$KTao^9Ye5J>e*g~J45i7Z2iv7+BQw% ze`N1U2?v@Q4DD7A9oYb#(>I9Sl9>uPu+}`5)rIUCa^XRmt) z4x$_767yyt@arDhnUsJ@Hx5$$Wd`-Lx8X)vdqy)kKKHr}2>Nq{EYwWc3$Co?!c-q! zdTFr$0iQecEpMq=O;%ttFE)(tpaF{H35X$c@goa>6OFA(MxYFQJZvI77}z+ta|B)O z=?ItdH%nxZ#|Ba|B^e#H0>YZ2UNpm)%0nQUWGX>4L_tuDUyWYiwo>`9azDF^U!tL? z5OpsXyF1!@b?H~)$7P10sjLIY!ouRa2ODYuHpAgNw1f>mEikGPT46}{dR_X=8 zM@o69qdcmfOn$9<1a@Dtp zYFW6OOxxHvlJ9tc-w3NN=}|}Cva(eI0UAsyLEb{_SkRO!=czTOL~jX!{@_Mc2vVpz zc-@N=YHbFR$DJox3x$@iD)1YV3Wd69Q=_D>Rrv zC6$#xU_iZ$dm;pYwkFlo5ZqL%TG8ll`a5^cX7A5)G4Z@O226dQ3Sz*jlm!u%f~Zu2 z6W=J5?xN7BHB`@@Z=#6&HuM0C+iRY0BQ4S62CzFDYbv9@I8vMT;bvV zi8ucMw;lA!2316B`>!*+!;8a3QDSXo*H^j~1`?$hn#zi%l^iQiSbNArs5Z+jPu8*L zm!nEjwa_ZilHO6bKoy#X`V5$Q2xKXgi!ZOr%=5${4AOciDPKQPak})Va8VvmTYZEn;5h-E; zXVdT(iH!+B!E}IyBS-dR*P0{|M(JU^(xC$64E>e@%E^(dij-cmG>Ru6thqN61;cam zWWPqxMIIsup$Mtw5rC~lz`Y`f5}`z(AXCeN*-^MjnaD(1mLxE>8NxrjDT>Mfa?Zi7 zNGfSiQk4)zpj)8_+5F+2e6)Tqq(r8&g*&JXoeA@xxJRLe38^X#895YQIwpn)sF8cO zoIwm~8i`g0tVx! zFGNvlRK$Q*x}qusK;iR3zuRjOQlg+d8B1zGa(LOH5)dmD2$tp=iA=*n-UpB`VyRE< zYSjjog)*o>tD5lBHVz2A$g~DqHl#6SCCi%uC^oI@09Xk}3Es*nO|-gj7=JgD}& zp({WYgZdDR5Dx0mCQ3D{oYpjVq!AnTMgz~zz%<0>!4Sd?m|~u22wNf)YsFOVkV}h% zYqBQ>T5%LE=oAQOmI1F$KtU2S5?K)+Kxk3JUY?L|fhZ|(#0LxR3>DwrifsO-$c}gUp&()q9Y2!Bvl1?CZMyN@<5R&B@T}BQHxmQlmg7? zi~v~6dgKi&bvbI85r?N|`+Ssj7kK+`sRi$Wv> z-T_HOP{~KJvRyKGB1UYb3Q2M-j812*Kqf>$rPgESH8%m;r$&_B3Q_V)x-zO}$5;>} zO6J9q*G$LqAf1GUAter3A3A25)r3(h5{Q9M)jvF%4+u7&AZmdJ<(>!Oe{%HZdk z<-#2ibZ*<5{{T^&cn${7h}QWmHFBQL2Zgw=jkKT({-Y9ztu|?A*U%3%dvOP5ZSxdQ z^w^~3@)NDOfD1f$UpjvN(v<%IQHp%#Up`3j)$s4zUXLW|)c54!dJjoEEt=Q%KOrN|I9~6ms+o;`M@HfK@?iI+|TTK;$`4hTS#DUC{VMhqrcx zAKJO44;t#U20WW2Qc&uOfSXXM7xWcK@uT4!pZc7~CRAYFMLfa&Bgw7Ytv56U6Epm} znBncm{o}!U9}hqLJtIPG(e0zZB`Qp=#;fxj!CZk*wk=0ACYEK8Srsxsa{5053`#hw zhDM?&%Ic>$H*N!l94P)zqf|zk-%~PxfSEu*q3h|8zs*5NWSK=p3zXCaQ^QtBa)Kp9 zaZPkf1YovElPa1G;1mXCP1aGxRY7Dy1VB)xrA6$h%2{}ksdPnC<&>iT0NzJs0UZ@N z9H`0<&2y;r_RSO`vm$FZmYsQyBvUGqwUmW&5lxUQQsu#+t%c!A5Q%GYvf7ZqXY$Bp z28hO{2&JY_%YLuMqeW^(O18fFz@^kD2l_;)3#J9AWArK>t^%& zLw{sHf2s%1Bv6z!psD8FQ-l#r!i3b!nsncYumGbaI5)a|8W02kD^>b`6!(UR2%vkf zKB>Y8mC+Ct=R$ere2}SvPy&zOSIh;mdiHIF{6c&e+Rp=HfFwcv^-tjCA9)yKHFkQ^aQ-oBbLUzAZK8JW&j z8T0pmAtOQR2=wZ!1Wg2?=xQ}=xOy`bi<*Yo_2mc^;uwZw`M0b}Zl9HP8srqGL4`;a z8x$I-R2NTJObU~1t;l-a*g?8Ed6)D-nG5L*6)2xA{k;DGJP491s6c8%8N8f(yBKU; zNClINb^O3Wy1sb~lZJV&kt#FYqawJ=E|ftL{vgy*>f*`y&KmBjf`pUj2>~=#3RN|y zSx^WNfJJKBbzz(lLKbCTrDD(ai!f20Ie$4sB|&XfNPQEB`*}h`$xs~IFEvI@RS2n^ zAt+mg9X&pfy8cydt8rL`(e05bZ$Bl_w8(I+P-_I+q=i01 zJNYoHae^o$8CdwUN`TBL2pO={JVU5V`Jm&*&rM@ND(@tP^C?yHjQ(E)wZ?$VAODRSc@^;+}2`>E%Oo2~bkbp@`s8l@;DOlt>mp2f6^_RRA7> zEJAcXpLX?K54?Z-ulDMYlXh0rgfUOr#6<@>0h0!gfbZ0aUyolDz;FFpyGUhRd_YJK zm)#@p$Go9?z1w6T{&j6nPyK_5<#L>3;4}3e{{S97Djd7n+JJM~F+V&sw^PF#e-iek zx$k%Q%LR3q1|7s1$+C+8LCCV~xT$q4qm_l05KtHrR^?LOLZ+q=2scPu%xPB#UN9!} zss`Qqo@STyj<0+;>BEky91{_1A1^&~N$mxZn2XKedCq!pdT#^7el_!s>&pp+VPP(H-{P=&lP=95(0x zw2;HvHIdONrrmxtj90F`;mlnXPzxuD=jqBOCIz&fvPXP*Dq+&pyB9Oe3t9)hhay8( zPQRE?L@OR3<#<118JomGL^Yb$l_(pk($5M6pi7M|J-W&*P4W&iZjABW(12;FfhCMw zyy?}o;#p`)tii$=eyhXE5|jiG07PoC|Q%GF)>x*n80NPCAkuK4OEe zMWRsv(U>A=m*TJQdMg0420X- Z4c9K<#02Gu}=u6n;%aW80D5ag9BVWmHTX38G; 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�WfT~wIU#=+-RbHl} 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%0AhWs*-6 z(@aVLC6!gy_kh!09IeF~U4xP=_kiu2dk!(uJH^|*mEEq$?LOS?owEmE?9R;D@iwiq zYQ~;iJUKA1r87>mOr9^o0!T6P3;j&LUEQnthwsMQ@awrfp^visI_~z-i?ZX-v*OJr zA8PFwGtVU0lWveElXwYGDy~8N!v3w_uj4k+wEmy|7Iw)3P3#`_cAmkE$f-5}#KI%{ zK@<3pW*vTYMmmEroX) zvUnf4vmw4v{@mO_P%way34ACC00bMFgL8PPFvvcW1p>r@okgJi(p3V0H=f496Cs%N zfKDi&n*ux_p;|78qF}}2t5JgY$V5QRhr4rSgn-Y%qIYZ?DLT%hRQCePM8#D_n@ZGr zIJ)OC0JtqjRq}2pD_S)rNhFI(7%;uXRf&ES8O=Hwszkv^M6IYUDP#;|A1~wY&N(WU z%6aSQ%S*DzkV=4>LV^e*jJWIF;@Jt!5J3bMY8-}UXwO0UJdp%Gy81x6b??(X3dcb? zxc+$QcuEK$f?vNxK?D#+F$aPmf(Rfj!}$E8ln~VQM$#8a_JV0Aur0(&$y zK|AlBU6gg#C?JY_i)n8zsRb??z~5dC+-VA6hJ_Ux6ciJ|n@qTH%>FDv1Q1PU@`zwB z@{pi{rGK>a_XvmAUzkvMzWjPx{osI>q=6ta7mI1eVA;zeE=rnkx#3QHq9Uar5WRKP zpg#O^^!i;%b4zF3dN}*7NCg(e5yVDw1U|m}y5kqV6ofi)S|UHBW>l3oDc9kBV5vYi z%a0t#qFj3DS_&N-PvblDh9wC6a&8IiwG3d*Y&Gh>wY(Mc>D+%kGes=?cy;A?U3Kde zi%m)`6Y+P2yIk_}&yDhCp*h3$U5i*jc=um_v^DGb>4Y1+8F?covv7$=T@%${r3w@h z)KJgKD@QJ%IHWRDNkMQ2k|=%@dRiu`u7zCy8gja=c|%5;ZPip}Qs^1LrB;K2zl?`` z%7`6_K9W-`*Cm>$p%=|FB*Y@37FU#?m1~_S$cf=l@l%SL1YOb)3b;{H!jGg%5CqbT zu&UWYGq_4NkR4m=E#8(`cSTZvxVQf8FC87mWiS<}iZk6IRf-Y|=8)wgS)~eq0=7a* ziU%G@!$?VGDxjHwssd3(JUOSF3MF6y{{XoWG%8E-A$Y+J-&}+P5NvXR!<_PDP2dZ# z@oxYDE4mONyDL)ita1SZco2bx^%Tn2*6%gJf>LwWQC;NKwSE8dJgZoB(99f95b2FnZP9%~~hcGgOAp%)~BJU!G3g`{0 zN`+JG=lXDdy1T>rUhn?F-0t)3*!yS0F7oZTJ2usWv}58NKFh_&#Fr2Eq!W@Pl24cb zfEBQBSW;qy3i8-cDusK!#j4RWPlqrvVoY~Q@XP{DB zi7q6Q;bTZ90L>{QdR0lKG(dq2b?^XU0+q?%rjMA9=^gt0#P08C?7ydNxx#ly$L!^Xj$Tudxk1|}XPhk8lmm;)@* znh`J{%3VZx+-xeaYcvtWaT?`+tgQ5qZ9Lii6Couof$S-iBtQ^ul2f2bzqC#^TMzKO+o}Jx8N)3^n|4tI4V}&g4tRaT@FXfrpgK> ztlqu-Qv??rIuQgS36z0CuVy;x-)2LGV&#=4&Yr%;8jwI_G|rt`kW#ZHf&>na=M&dm za*8yUp9VdDHCj_%xp0CHzq(K-P1oKjs3}^qrzI>!D14PDSFgvk5h!i+uhalJyezu& z>i$%ON=+z|oi!>#(&YlWu@eSXMjN^wys2b_K51!E-}h#Gyu6YGBmxQw5JEUsC*@4XQO5G)g*@7KO)f(Rg?5J3lBej)&GPCFO# z^4YM~)ZwxjZweOOA2wh*Cj=>RO$e%4LNy9*Zs7L0OqzK}#93S|sJs+#a~V8h760bQI0n=~3D zucK)UlyX1-<&zt~8Z;n?zyM#;?9Js$K@^d?8(SbJfm-GRuZoc545);vkdMlmXmbR@ z1rPuUceT+Dm!vi*RE5=n2k?Rjs0C0({U{2LtLKyqO>`sFY7<0#L_$muR4rA&=cm{b zsAXmZiC7Dlre`5$przo6%0Xg?6pd2kW(}5{3^6rLtw8o3!DtB%P#_NQ0%GQtEX=hE z)K?jTEPQ

P1>eC-Vi4c`sQzh8?%6@8fX%Zx%0Kn%t6;yjZlNUCtpT~pM;Nx#X> zy3-*9LVyxt=vL;eZ`TNuF+c-^3e^-frnMrKhNw)TODQ+yQq5ylc&0XEEp#>o5)2$U7!&HSNC0t9L*DPBDwcnSvrOu;lcFImA8QjG56h}8VSD!C!g&}$M( zC-$e7qg85gXbCh0R*XGzNFu302n_`eW!0@%Kv4pzQdK=ZmWcx*3O#AU#cpUdSZp75 z<;lLHf&8?BI<+59FSI5u5k>jX^{9zdB`RHJB{c$<`o#c}pst^kw+JFm2`S4xVX#r6 z&DYwVP=G^LzaEp?up^QJ9IeeSeR#McNC76&r?1)?0xVTZZE@TUn6wg+Mz2cia=)IJ#`gHl@i#B~UE3ktf&Q}*>sal|fkw=Mmoe9n?mx#L z{%s!air8(dGzc3t%WJbdLbPrjQ@{X??(DBW1%yRbSe{dMK(h^CCR@L%S$+ z7H#ft!4zdjk2i|{0IOJL`M$(^n>nRRchQ*XT6YSb)TbHrDzK z!Bqv-V&*?8A|#@yjX)EcHB?0uqg#ko;@l?p&6Q7|e?StxI1L}t4yK@^ft zgrUj(Jv|5k7AOFRb&>av%u|i3g-DzK8*AG(j7g-HTr3*iZAMU z`n}tKQlA>TN3c61ZN(kK?q1W6uDw`Tqc` z=jyzC6Zkie@c#h2yL`A^@$a?{Cc;X02*Jf;n}8WX{{U&1m>{nP^)!o@WnU4X zEZHDK>#dQ-?K?QMMOxj=fK4$#=0I(qIs(V2M6w+LJS-bS)h@=!BKoJ`>f3p~v zrbpzYuMQe9)gZCg`;U1J@>x#hGOwbokTD07)JkU54vK*(m0zAuQ%Ffrq-$Dbl5sT7 zCv>BN6EJ+KT{85|NemlL=iOwah7G6l?vp3Ay0Y@jkT0>&xu~S1a-5_~V)h0RXrjU46t-kPE!UweRYy zhG(bQHtR3Hr7Z_tb-+OhJv#bC5X8rord7=@_OWZ~`uUb~(UZ*OU(Mhhbx1c(NT1KM z{!$O+`tr@78ed4~lBOBUgZq6O(Nc!JNo&0VfM1qXA`>_@eq5hYQGlc_y2==#%!C{- zore?+5T_BL-uY<{^!^+rms}57L*Z{xpOK;#RfdYC>JYE+`BN&i8=#}|Zk+M0>jjFS z12u`A8MrmwqzMO_mQOst2j9{%o?=Q^B7Hoc&Ni4JBnnwWkWqMEnTBZN&6(!mG)&Tm zgk+#+(0AR{@Y+sP$0O1pC??)V%>GNnf=w^OBrN(hls!{W6>|^wrL`OdL|Bn@QR)Jk z(<-;5SYlEQxC4;l%x#k>CCR%O%F(QU1!6ak0O*T+l&YvrLL@<+VpN4yqb(Hzge($~ z%9=tqM-?QE;EIehC4aSsNV!cRlqi(qOrT334?ZDjC6p3epG@LuF66Lq!K}jLJCFy&; zw`TtU#G`pjeGds};q6*74FJi#e!hGgJqfbJl-)`#2Dy3pafdMoLZ)XXzFI6n2#J!E_s{4fo#!L$I)5uSe`Pl# z{G~>J6-rs13KPf(CRR}IaqVol^NZbO0@S}6`hAiTG9Xe|u3df=B2&Llzdx}r%9+fZ z6+OQcghuIpR#FrBsyG&Mo=xXS zS|cWCnvWyR5(t^K7=_gbFy|!R(G+^I{;!jf`ath)zqUPW{Dx;lUuk4rDn?9G=67l} z0kvb*fAxL@evo_E1&$LIee&95j*Qh@xIg!3&VGuO+oz+9@?RKRA^!l(xH{p;nt>>? z1VRp64P$uY?4W<9zzD+%MCB+k$d5p26-(*$p7e#QP=G@g073o{1Q6A!*I!7QOO8?K zsFV;bI_vQQ#cHMMeSZ)5gV9{jbIrXkE>UpI8p|L62)8vP zWXC>%>FkgrXYKX+!ZQmDz_+rSf;7FMudnCZNW}jDG0born&VdFvA@i77J+#UaC2#7 z;DipBPbh0a>DG7hjFgugb6F{=#L2O>ytrQ3GE+*TluEZO`m|@dLR^(@y}byHR`hNi z9Q|NevV%yfdxP(n(PD+0=BKwy#x>dYjiY1582c_hCe4p1JGi(c$%!ho$vmh*EUw~^ zj`A`9jvJkmE+i~t5I{T+1Iy0K8Tn#;p295!q5Pdx=4s}e7I}>Ln3EatCzzS1o@t(G zrzgZoFEZRNQ7KI+1v=}df&-Puk?*8&KxUVkLAL{T?&=Jrm0w7>AYQ#&@e;4QL6G20 z`8e)xpmh57>-c28ut5b{$Z$06y%7`&D9nSeATDp^69-%^1x2R$Rsg$Mzdrt&MhM~2 z$1PgOpGf2Yz;%_D!FqCs9p}UN{3Qf7{&-bJwDo~9JbKB2%nKBPl%R*w3g#>5a?Rjx zZ1nW4Iax|UV)}V#ls>E0P=7QWv_sHn7p_Uyq9j2M8<)DUq!|UruP-dZE!U@1<^LODr(J05q5Q%Vq=J-} z?S245Hc#Tcc?&}JgRZ*zM194&c6ch+`%h1Bj$M8sj=hukgrCos;u;jEP59CChGIBJ z7H1tBxWo$`ZKgudI!hLPQXm?I*Iv53PUGZBD9!%>N_r+yNl=@^SLD?dH7JdEl0^WO zDs*&1K&@{g;w4Q*%jGYY@T!(Rv}f{46dFqwxuKv1DmP*GCJL-%F8 zOwyVvvhYrNbMu0LSc9PpSx#SS`)Iu4$Rrt1E?n11Trhn!j4Y(^s*P@nG|DvvpNKp& z42q@y0JSW_BXzCKvzBdG9&r9v#0U3720o)G4S0ScRv6e);)8{V!ge7j@{q=;Rp!+y zvGg(h6+c)Q-Iv=NZ|TpzeWFguv=g*qSIZ?bS zD|UJVlIG|GgCDH;ZSe=TeieK~?x)0lz{kbF?GEmCw#l{=hdGn?FyzLPTuE^d?@uJM zsX_o_8v8~U>tGs16HJZhm}ZB_PXhOa6&hK|Bwt339#9+={TN2+$eC0(0Ia2!l}1Qv zpEGbOytHM@gn0e>V))J3KOMdd_c!7PW$ie7PA6%0UdxBt21&%*L1H^)y8gCReKLTM0;lsfMKv9bJFN3;qEMp_{^ z>nMakA;PLxoA9Is#aNFmbLA7^mR;2x8s*t_hNXdZEM=hn9>xfOglGUszMyopfCME_ zgHlmBj=f+|T>k)RAPmpnC~~R}b**5DT8StHM_dmTTSDF_=!Hii{nZ@BLu(f5R)&Oo zeYwDay0S8T6F4GD5o|QAz4}NH{{Y?>`V{C_iZam(A!6JO2lGY{yh!Ru$RH#I97ATR z&_zt3mMk;PyzdASs77YA44D&`ydx^##2%v50A*_!K466u7FHsb;mIJ0?f_IVTKXsC zszXoJ8LRZ@(h2yt=hx9>Ubb#8)pdv> zfD|r6dHe9RS*cq7e(UC9N)HkcjA*?mvw5r(3l2lsA_Ec^bq|-TRuBZZ3%xL|Rv;xp zFleGzThzLG9S0~BBGD`MJuDQd0R+ev+;ll574u6%#J4}BDP~0|#GASms6NcgRuMBg z8C}qkRn#IQP&f|F1kL&Sx7h%yvY^cfZ&qZ9Ub^yVv*A!?E+~K@H(hf4LP>_{AR%xn z&7f5u%dtQp{T?3Heri(St^f-`^uBx-*0mI1ZwE79!VN#2Vbqifpr8ru>1#r#SL@0O zP&&^`e+C>S;NC-z@ei-&2)P7>Vd0xT}>53^AN?FxrOmiP0$yj1b_R%ssJep$SCfE&Sn&S<&~xPqj;w;i zbk*tg0TKkGeNwIW<-j&19Ek~K9GH$=&_NPa2j*h5aJh9zY)-qcnjH1(C<#OWDz21- z7$|a43L#4^{Q0C2G#SyV&736)ScOMM(7}))7cBD0s%i_vDx=$#lD_<)i4uZhibK6K z36+N&;Hxqx61lyHHO>mv2x1d4#?>7BpNXh575WP&<_MxTALr*noQG^jt*3|p-kQI7q^;k|+76qETRnvzB z)+S#OR;SRWPXtvkZDvK)ku2QamxdMhfCyA25L1Vs^@allaxd3cfGem8ZAP#}vP4c4 z7E4!^02GEY=wy&9fR$fJM}a(-EckR_h)}2$*wH`lYMI*5^rf=VL`VP=C~d1_Q?&e2R!4y}3z z;g{MFm=Z^pqpwIJ4KCRiZn?rF5DUA8{^3Px{h(z)Zd4Gwa?3cUS_J8OZg51Em94$? z7kfa`r3OG;y0*3A<`DpbDdK%k=Z7eu0AXuo*YN~XcTEYXNA%)yh(Wv(WkhL_*6uTX z4YSY&7DO4deUm6b6tfGjB;lnrcp^o2g-B9SsCoRk4AE%}APR#bLA8+jS=Wp(K_x0H zmYl+Jfr=Giy>fyj#FDH)qpd1U~ChPnz)>!bFvih^kS)$c}1T zGz|oH;m*s8we5Ht9tJkmwPWGnY}+;z`1ttPlL;{J@UX$2b3DZW0#Ko5L{v3ji$Cjg z{Y-Y>i#_Y@57Sq|PTHDI=5`LzKF{8+((L`9f!cdU79p1xW}6odecVZ8oXKD7P(TTQphS`lg*qFHcPCV0MV^1{G8K$3lV=?i6 zbJ(xmf2AJ+@8VPO7m46CG@t$h4zOmg{^~)yPUy}p3**1kKZ?aP*WlX@C{c{{ZFWWUd^Ni9wcCWmEn}hH0uy#mvTGLN5WBZzXqFWK){0mxC=R?t{7~VnI(6 zvJVh+4)U!)2zOT*q(wEGQmh3~T}o)Tzv&76|ECqk#oZ__uz>3hN2!@fPSv!`cvaX;wg zo>RMti7(1f%2i8(9T3nzja|v^uHWB2@pgYtzp-~)u)903whS?ag|Y1TV;X5dm-lf*piMcVl4>0)V|Qf1IF)bI;+h%H5XN7l z!P8aaJ}&W*ujn3764D5|xp3g3y2y*NaXSN5=NO^%&|n)y~01fBYZZ^W1+xzz9(Fhs=y(qq6> z5)`p|x)niMV=@6UIgm=VLcU>~)EX*?(rW}#O3-=~YA~`bq8}sW&+{3>=a=K`eb(R% zM<1aFCoFO#2$cas)Pzt9sx3unc5WfXEXJT5pCoHt;+#F2!L92F1i+DHAh~o0<=`90 zB1D(VJFGXXdET$FXN z&{ddZ#xkCHi3fon?R5$$!O*x2g61#Hg%bzwPDVks<(@d)3h`I>EeWMOZCd8i~i94 zU5`KSV~}K7hcO_@Z1fK zkTAp6(^+leNbS6=7dly$1;9lI=2fx+E)wI;7&Ie@j5pR$Pt1sdQam;KBj+{teTNpRW1OweW}IxW%P+r^0AjJ9nV;f97@y>jl~#cTXfNKpA@S=X_C7N1w0Vv zc$P|_`Cejy$fjffTSd+^63r-53X2pesdv)hlvIZA1KF|a8_!jYOaq%;+Sl~SY!nvG zm0AG3YNC)6GdXR4nsru7*S3E7XAkkFgR4Y8e^0TWWL%kMno%hrp$VAcGedn!#={T; zVolPCL#1COAe65dOj1^$1S(t>3Xg2^mVy|VmGGrFrgT@)C|ZgR_8xq>cc4>HZczoF zEV-Q*QIwSMk?SCnyOnqerElJ;PWcMZkUgmQ4?pAgD7 zW)gy`0A1GkY{s7`P>1`MBLlmT7bXT;a6LlRH350e-}eWG3e*yj7DZ>bPc7h@wzf z?vSrDkV48BQqF={gHWUvo-MAB(A;(4wW_W7Wod@CLO2dmjhkh{!IVsVb0d-$A^-_e z4y=@T>XJ;r3T}ouhd}uds6inWgmA*B63U9~8Hy%_5%Wr+GV*YyLJ6n{1g_`_0Tf!H zj!YJ{HgjWkHVyKNHw&$L$uL}#W9vLKx8taZiveot5tJ&krb70OBqRnYk|SoMse6w+ zqYz33L84^2KdfsbcvD?dCSlHl);kT*Iquw+H^?{sMXbzt^5DR5%G6%-z~1lNvn zimUm11zNN|rK~}3rw*&CZ-4+5bVR0^eZ3T#Ai7lwDMTy@LarDv9!zZo=d1pim2g&WC8n)S(FH|h-#p@*8EOgQaXIIZmU<` zEMlvCve*L5sL5mPSdz#4MyJc_FR0)hLl-x{sBJiwxgN`?3Brj=Dxm=0%&Li6C!}pI zB%?3;q!;tdYiQ{*;{`y-_T*`kRKfd;GFaD*DNoC}rZY()jhJN712-I_(ZY)kWxcp^ z8nWxSdq^u_3ONsT%DE>v)?K2cB7^RLAeoIWJ<>WHxcj1Dt}U8zO+tl@4mt3mwUHjn zX^V;w3M5p}!O3C$ykYeA=<=0QX8`eF+=af&u1kwBWt(=Qy3*`ew}=9CApRNNIP0P@^Sk8ijQ>nm7XzQ@VvMD06m2 zP=G1{#57o%T2C-2i}HzpTK@oPdu9OyGbv)^xdT85c<37ZGGwZe0t~xabY`7$T|@mw z=pagg9T94%pxT2fvj}rymQCehU$J^r^SX5KWdIpXSd7O6y=&!2Qtbj+h%-uoK{-=S z0Tps^U}RXCIcpzT;R>RfL4Y3m^<7i_LIBQbQ>9H1*wZM|OkpkRyT!?C0lb&Bh*bd( zOE|#*d59_rIWXX=DDS`v7_y0s!cs|9mbp2xKE7l{4DQD#8D{xdK*;(_0(5H!95fuG zO&qSL`?*Z0;aw{0{wxp^V?;2eiMuQ&P z+5)Y*zy+-m$j+}FBli(RrDaD}B9;vM$1y;>mhq&x zq*W`QI)ZMT5WIA=ifg>3K2T;=M5sjys&uhK2L9?PER3dBYWPj6v!d!?Dl?Zjoy)^Hb9{q<61N-<+$nIFi7{-B2O0cBNjnyEfnoa3j}`u z{-0i+dgSXUpaGOH4n?dlorY`z<{V^D4Qx;%HbC&I0K`N6^D+UOGLLo(RH(a%>85gK z3o@%x=xLjbz$&d3z6Hx!$I%CrNT74Q^z3pvN^S|`9@dX}>bj@zOo+R?tdwE&gmDbc zsi^W*=w}@)VoasV3Vlh5%8`=>6r@`(L0sr1v9W42N$mwgKMe9A^MVoX3J z+<75Thyrr_z!NUk0DA$$U->N5QUD&U1-j(itt`0Pb|Dy-}nhqr%zKsPp_y(ty2sIKx;FpkrQfwXvvPlYi;XG3-*F-2#OaQ&a!SRJ9VY`vj_G_!2` zUeAY(A(hAc$wE=?qk#-*=%8Xu6L))hQ@teMnM|_+3I!;>8k%{>vv1Q!#Btt^=*!rf zZZJKk*!~G+n55@tlnDcp=nxu)DC-o&qk4xI3450!5nL5WnmlOgFfVvk{Rm~jH=yIWsP98GVL#0(lNR`xi1&SOg$lbcL`i*l| z6%s(@76FJ5#$GN6r0^m7_{1I>tw?1=9#v39a{mAxRG7p&vdV=hLLFaHEP*5Q;}nE4 zuIT%UFC|B<3yxH~MACo*>s2nC6GW+~XraRZI~<7e5N`zaQ@jcN%>u>4{{RMF1ZEdq z!p50E`BC?h)LgGiF$G>Zf4l^{#&-dLp{rPhf9>ZVpTou^g(R={DbFqq_>M>KgD&do zfdN%ubOF+ml;?zlcF1Jb9r~4;lMVXczr3}3~uRMsg~Aipj*APj^3Gm-&W1ysR^ z9!10paT+klF1!2S%Q7O03JX=6RM$5@cmfo$qq?^CiEmS39U@Fww?b5!XY@q&28$Fi zrUY*RsA4I>ePW-cb)6@_MU-Ol^pU9bpCG#QnCO>k9SRJ<=fx-vgBcL-6*U3Qxgu#$ zZtKxy#iA1WsJk5N$$YmM!eZqwx-+mQqcRaf6r^LT26v{-epi8Z%j~Qx2J+DC(i$`K z^j%{QXp|@;bSjTcXe?{SvB(&b8WJ>AqsqMg%;a=&G=u`FnYL^#suOJlawWxKC?QF( z6r!*5{{YIjU=S>0n|0@F-DLen0(2qzU9#aE*IAPgkn<(QE(#m1O{rIn#xQ9?Q$|Fn zO1&#yH4)L|oB*4|8>$?*vxnD%MaTlH8HK$&K- zVU#%J&C!olmle>FFhkY9$psM5$0A9HDKdjC$*qc;`7Csq3a9y3gZVJ}y<>TC3X)0! zfok4QKv3yoBOd9tan{eno|$T*oL3?w-JVMfpN@?j7g!jxZq>m74<_<0!$_~)nF17c zCSW+C6*b8mJaoBnCQu$(P&>Fv-00R61)`*##HNekl+dk?zV7i&&PUtAri>6Rc@)enY)bccuObhe6C9lG11FDlkCf@3{)aj1!+q0 zQB1ws7{riDvrR0aCRwK4ahlBF1U0)QI2J~@*OOJR}(p;1hr0#vt=Ap#AGHd^avYIB@}0RsI7Y_S}Acdfi^7{u{C8{Nw8 ze`xogv->~8B>w=vimAIS(#(_~cuGq_G7!LlGBSP_wEM}o_Jq?&aZUybw6YKkzycA} ziiee`5hL>RVoIc`P(sZy69rrE0^x$GL|W55qie$1u;<3co=iL(HJ*H2NrbXVEVVA8 zY}i(TKwXM(XrY*I9I8AlK#awE}rQ@={6aFoCf4CbCET)R_fppm-769j)3ux3*(;mul@;yH?eUi8RK1 zLS~jhGM@k>pfd4LQqjGIg;ii0o{3rK@}>TgaFi#q*1|LK@_7mD@M!!)&YQHly|S1^pp?N0-9)~Fv^i; z0Jj3yM8g+#Rn=ImspcFP3}}o>#v*)D9%3B{6J3;*3LSN6nvu(vX;5zj-BhhEsh(?l zGEC-B6gb!Y!P2z{gM(rsrh%!;?WdB-O-1Azy`Q-B)o{in@`Ev$x}&K?ASozZ5CVle zqz6coJ|y^(VPVUOi;Ige!`bj4qh;ke(#sE8EUo+Y8Uvgvql zg>4=!k4_c^4MUCk*tHhSXuuAVw*H=fpvkuEZHMD8#tzS)4+9M0?LFP>O|K02$njxg z;$hDz1Q3TXs3-vU*@1OYF37y?Mg&psv(q>H!DEklAzm}vqq?a zh3V4UKSMz8Q>dl*~2T06G zFnS?QS+^xYYBW^FVgfi;H1TS$$S_oa4j8}iojHfNh*lA*ppg09bI<7k3zDt!$-L7h zF+08z4NIPpD9`f-DDdQIQlL@6QEzO5X+cv!JUj2K>hsgKAJ0`tZ}uH(`bA5LyEUcB zTY1POsyzo3hy=EyBVVUa4YGXNookZ_slxk1E3`dB@k4oj+liC0A{d4IB?=UVQ(2`Qz_y|wpPli>l7FuT)zRv9QEbI zl_H`p#@s_Ur{FH1-p=fIf4=>LxA$kgU7NG^uVQwN4kiXZ&9vdmiZ^GHX$?$4XP5)%Kyzm~^2_G8 z*XPIo0MRGGPmkLs(Tmz0g|l`Kc`+r#{hrnA{3$kH`SU236KFEXxQQ`R2)$g9=)>d3 z^wRj-@S|wkcK+*Zr@r0W!2QfYv}}TJ-NL|>%`gKFS$C$G09Js3FNs<{zu_Ml_-BZU zD8;Y+HqgLTPAMC^%p#i2!^Fz@e~J7j;#&^=cyxZg5YCX~2MqMNBP(ajuUVhBIDZjx zi*3+JMMhxAgTn6y=?Q8mP{!R=Gmq1D*LVAKyZcTi#oPUj+MScNU`}MkmuuMZu%#1A zF_ieHlmsYpAX9iugQ1ZoChA!6RhUJo)qWPm{aOU1oqGmiOh?HujnWI4_AO(oBuy7C-*4}YDqU4f8Fl~6u zf+V*v%n;q%mmvZClW@Xf9T|cEGHQ8&ViFixszMCv^lBDh$Ri}g0L!}UP`5F977bu% zu|!P8GIaqxZhcgkvjHZ=MxxxWo=_yZJn0~2TTUxUWl*3Bf=`8lfYkKW=wNUO1OzM* z>c*5L9K*6yMLMterl-;c<$6QH9}uI?)ePjciN)iq8Xf9gox57CPl2I8aifvVhZyY ze3d{Ep82B+gH-p=l_C_7NaDN!dm;)FLfbgPd}#vjPb`QHW&u(BAwanMI>eUV8_XV? z+mpLltOJM0I&`r2?0POyoBhFBoXY}qb3*LVfyFWkFrwL+473v(rl^I1vf=GpZY;Q4 z2F12^jx6VQ4o#D1#KtodKtF9tn^2Kmyc&?P^9ir_mLE!QIerMs*;kRu_hid#GGMa;o{@sO)wJ4gNHUO#DoA3 z+ukmr2ZpL6-1ow7==0x>+8Z|C@iV-*J&&``xi&XuNH?(zswSTgdQfFEODbv!R4l&F zeiZ)zPe0Sw!puAjY#!}N+x@At%ZIzAU?O2#&WumO>3|c>EyiMda!ufpe*TFB0J@UXi zPj-8O+q-_wBs2c(nJz*M;Qr7^PYEc+a_F{m{{r>>a*8imYcEZo;$Y4{5koCm<#ck$^DyHzApRDRH9 zrNEW(#&Ha-ysEAy1e6zLPy%LC!+6$QY0V3of>EknxQ!^y9&Y}o{{TT>7Qat@p|tJT zJ)N|7o4KbG5`CYwdp`zzX|OOvvg!j6lwHt;R0K~%qq_o`N0Yy#FNxTn3O+t}C%i`#VC*|rX>8jc zXkrqQjh_;EB|F5FMVO3$WJvLHNx&hBvY?~4CQb_+j68fvCzBTg5aHusVo8gIh$cfM z*mDWNl&||JZ1~$YBW`11)rLVC)k}Rr4A3{TjC(dcTQ<>wv`|{C97<~q zak^i=5WeoaKeYC4*w{NewzfIM`yXrUI2(4)Jfut}!^V=b5~Ut53EbM+Ood}jDDvG-@Rw%KOyPjfJEwoH5+Nx{aOV!@JJJSm7Lc&xI@RV?nu z*xa+sfGQvrKnK_d@{i44C9z_7cHOjWn1G6~Yp4x3N9?FQ-kG(nlKmIqn{FS7Y+F9l zgj`}_(oLea0;*1N#d0^Esz$c=PbP*ZFXE_REvUGu^JGZJc_vWV=16j0g!0fU1-z6p zsQ?xzGb{z1{{V0(=&PfIXSV1`Ud zMADX{s=B2dj|_HSzuy3U68uQO$HMPVb2}?&$Hxi&zYAuQiQ%X=UAzXM$lpy%1>1LsKU5p*08)mASurX`Hs26%`G@gGeJb`z2 zwbrga$$_+CnlbRG#H6q^*GR2~cLnD1^A=_5H{w_HuLS~x`XZ^&IpgJHZ z?H@^^Tq8sQ2rNMX61wQs0HIjqNr^P0a$G`+P)vx33X$UG2lkd`k4>_CXX5)S3bDUl zkioHOB-}>!y%~(U^BZ5mo)fhaXv6&)i;?{8;Xs_>%Vb zar()OQXc3)^qG^l^oY?xS!a3(VfSch5%G24#Z_zUn~ywXiCYWEkh zWu9>`nr)wCz{4b!{^@0xg0#dck-V|r!2Y3UwQO7u>73){Y?#jp2Zx>7Kc|I{`dzRZ zauw4oGI8Y@Mvd}ME*z);D4^C;DHgu%0@s?&6lIhW48Z9u)v}x92u2|*^L;RPlk^Ar za_>x8P4U9xevggFX^XEX1AD zJfKWY=|kcwN=nh`_8%4S?+~ONlW3z6?gc>9EqY+x$2Yt$Ik$LD-{JLcZF?>*6aXq< zX^iP0HOzx|yaoB99SwiUker60XabREQpANr1t-mv1ZCCqXHKX#d1c++p+L$~$9A58 zu_%QEYbMVrBf^ssnW6$bN>*e>Kovu7*LaagybO;=1AvpK7G%nRHqb5Dxs+0V`*iTftM7hX=IXVx24Ppd7uK$3WW3f^hxkL;U~uq@OGzR zck^n*leKnPclHgETuX2cRFpFXG42<;zoGvC)6aK=qE742wPN6;rfsB* zQ85ao2)O}@twKC`9~St_V(_ebwp>gcTCr&kcWL=c%uSu7JOI5{gnS*gc%B72Miwp= zIArHhBoUJh32 zcanJrWA`Vu_QQxovZl+36?0rM^E$XhJY(uRvOWlWCF}`hle0UG*pi7Ca%^3PXP*&| zg-OGi3Qq#u5>*m+GU!fn5z3ZA!-tO)Pm{Mx~F$~q&DphPnI3Z{*`^XkNX(?_wQEAg@jUkTn&zKE+Cd*H{}F?K>(fI(8wN8 z3VW&>PSAWZ&SjJU6T&4&vIOC&8VmuM%;seaQbv~jtlVdELI__ZzwxICve_?zd$2M3^!O7XxL&mVLlk5=WS@3Y9r5 zb%00&fRef;)rq4hL0WN!q!tBe!N_LJCo0F9+I&aEHoBi_+Oe@gHs7g%Ei4#$ymAZD zY`z=e+Yke0*)Xu#nC{Z!Pn({+xGt$S)4q46mFULXvRbG{>jfPalht6051Iz)#{vpr6>Yr~ft42hHwWtvhE6WW#az7z3xiTGKg4ywP@Y~Y8k{0{k6PC zMXd|R_{YLt8{%TDN+=sP&_UhA!UJ@l`BBGPuZ^9c&$G`y7Cs&(&x?mKmlF#bNwBAu za8Q6J+(l>6RhB#N`d;{3!pHrck8InpHV)BAw`7-R#hyuLCHFuJS5gVF zk9(gPze67fek={6Yr*WiKJIqrD4fZ)Y*Gvy58Rkci-#ghFeHMAUiObyKNEkZZ^lmR zZ8)1xadylu@@%+R;}>Q9slRU*1WAb`()f{C2I&sIBtWtBZJ*-52JwB97iQWj8#Q>i zbz#*`D**Ki(^hPA)2saFAK`Br@QtqvXxZ?N(MA?67?f9q`=E=9ix_4CECTu$*gIoo z?S9YLJ6mJKmVKACHcTC_25AhYNueu<12ZP-DKp)I87K zbANCYAsFXf50*-5(O~+{ix-&sqZNe=NFT<`}7V^wWxgI16k1GUYkY{X+26rN)5c(b@Dj`%$yl_q-noyQr zMAn(9dS?%2z}oiQL4&g4l0pfK_)wQ60M!iEZR<=isE`1;B}MAp0qS;V{5L)hSFc~! z-^Tv-{5kAC%I>#yv9UH8`^ASmyGLl@lO*!tqD?Lw;Dh1>)Tz41r7?|(wCz}%X4#F2 zwe6ck#}^kL9%-kZdFDIBtmKm_k}6A~D<4Wfs*lqa&GFCSwl2l6Zpq&M$iSN)voYs$ zi@2oVf)M!V1MUkF5swxKH)pFtvah>C;`Sm!0pwR7X-ti*d ze267;JXw)JRYwShujS^*Du?Dyp}|HMs@zsF6A>=y1(@(EMY6RQPxv)@PV%TYN2$RTPTV5L>KaYnEaw6jd1&o^aGPfbwKUb%0#&!JoYy$co*JofDjIP6<&+YY zl#mdM7MKUGFUGtvIZ~jrf~cS)fEkoElStHJlGPWWb`FRp2tV9}Rnifd5(AvP^_cgC zN8sahyJ^X~xE$9gd)N(9fs)iE=#|o0h(gOnN{p=QngLrFx2rYX@Zy?_}v=K`dEe!dP`ABw>?s~3JnMn?Xxs04LjWi4+k%citT#%}8 z3|j4UVV?sGm8O2+FOeKL#`2RXaax4XvM1TJF;W@8kq|?%Hp_r+C(1x-i!(#P25#O! zwpIWxRI`#mB(;LA=E#bm;3*uLCkXq;EzwYf0hN$GV6(?h1hPxT85E~Fzm}1-hP%b3 zwoHipEuG62=n`U=4N1tu@(^#)l-P`^Fa*1qnDu|pQ^TA}MN(pD0!q%R%1|Qc5hIAN=GI`c8!6V z4b04-)G=JCt38Zhs|uR8g+L$eVjMKY!H-+IwK$c~UYe?=st7+JVlxe%rLQnzeDL@o z`r!DJ@VgUb?Ec-_u{+D%(fe{@NwrRKwwx>}2I>8xNlDO<9$|4dUgG`{{-nMa{ABF? zpA)eAXJy!XTNX(UH)U;D*m7h3?&t+KijNThBG#l5N6bW%%or2?*F;Jul1EnTj@<2T z!P_vl{>1Gqv$FQwDTXAN+a^5tGa03Ey}2-;{{SBnDJ3Ju_}9T6AL3%HOaL}rpw9gi zfk_|(^HL7CBg*UBco)Z>BjH022NtTfy_6Q*tdm_1-?Wz{g@JjDqw98j8OG_|6M|4p zEW&AK699r)fgsSP=`IN&Rye~05RzsFNq%kfIFtZC$xr~L)fkL}DqPD{o3ugBgcwi>C}hx$AcT9ZuT8h`T0%#aLlw|P73`iS_w z@dFzcZrkr>-GQ@W%w{_t$&HC744~3kW#1?f0R<3HIWu;8dFRK(J4V-yjkL~6&54VP zJj9umNm+`z+-gx1X?A&35>05#hj=6Sl)jl%4*vjtpFRe5zs9co_J3pS*cg)bCdss6 zZ5^?;Zp<)b*`=F!%4YzDD1<5ipy}zctJpjvWyHq)EIpqG3YThWrke;BckAxFb`?G+ z;~Q=k&T%nzoNQX#=BU&hko7S?C>JrVtI4m>ufQq$+uQQ|Nbe5CHXmYkMB;wU7`R|d zv|`9rWl;VgDdHxK1bd~G1hRkYhCv_+EV9|9Koi+x^WD6fn z_HNJY+zBv1!j@S^E+mqHJ|xHx@64(K(Zk2-P8v82#G{M#M9C3j;XXCvHF&<=iL??% z7^`y%fjhJUL$;(zYr6dr@aKZzcqfNo?7@y9YO$(e^Wu=lpd_|{a!G6GdS>J0NID~y zw6Xd@x|CED>+^n4%6nIlkCLjXt z0ZNj}hasW`UNW1{Ex1%E68M-g2m^g!m$MYLtwcF`R3u9R;iDn#tZ;`=OBoh0aBEkJU<_QPyO=vCEi`P18vxLowK_* z`$jG=W_F$i1o)U(cr#Bn?3ji@yDsdg4ATsf@$|2Nw!M!CZ5uWrrw?hwu9~T;rUt4A z3<2SCA^lg$f2kWD+l+QiriyE;W5S?{#URu$>Mirs03yvM*3o$Q*SeQ0L2~v%T!b~< zP!gVp+A^0KTtKoWqEbp!p{fv11t*MBrDY@i#FD;DJ^3VkJHFX`j5l9=o;&ng$Uz$N zUK;h3YG&R-IVVU)k;jx32<4Bl{G*uI4aqmBB3WgrBqA+9dPNyV~YdWYv` zTZvUDS@HoYG7VKGk@^1D?-ZLF;B2!DOnuS}zyc-XWE26D$VW!)uJISyHWI;Q#Ki>Bo#MI?@8DnST$KQDlI{ zfFXgCeoPsNo4>Y#XDUh;2T}YKzcU)kIsX80vJjjI=td%{sB$17y=in%=;EmwZ#bgJ zpc0Kt{Er8;6b%CrCi|wq{{T5jy3|jh*haATKU{yllCW%vcf*pgSIeoR-n7xP@v| zkc8wy<}F@Xw+=%vnMwIVs7EdIbO;JnO2;P-X{IHRriSe07l7kuJ2jd(dSuV^;-pbg zH13<)0JS1O;6ZmSl$FU7m9PCk9~CoQ)x#3cB*2?Hi<-XLc@K zv=07I^#IH+h@O9Pmf(o-O;uz{vMO-B(NW{Oea-kC@k76J$~zOgTWHzlANlq^6!;@` zN=!uH2QyYxQz;d%R_~YTU$8x{UfyCeyseP;6Lr?{z0H{+8!0R95aqKY-5HmR^@CPM-mx`|^cw1j+#V#$HWn$v$HBze@nzl<;N!?}@g*kPvu^l9%U(B)Ml`f2 zL!z_WjVMLK3+)_1P;kUVhB_PBtp0YDfML`KroWb`hP5H2jI`%%SA0KB{kyXFW8(h+ zc6&>2+?QsXXc#7G$laD~LV;BRsTED+0R_H*_S*HI0n~#SiyRsQ2`KR3h*@`^nkI%j`*fB8<7TrZ8j5505(q&-DY+D6Aykw`20gV;k0i!mB_R}KuTs^hsuZFmdYk^Mc&qUDxtNqA zwDA`*va(srmEc*U%X~Lk{{XG*oNFM1CPZ-5hsdvI@eb+my`%>HmVCE?wTX@ny%8H^kLD{g>`dxl;IBg!)U!Mh=vz^DF;V3kKN&0r3h=1&7Ye+Yf_X=Fp z?w~*lD-aFH1iX666BL{NlaO#0r~p(YYpTbx-_exw9_IG4{{Wbv3RJy4f(9)dzZs z{yHvND$Edqi!C))&+bJGN&rt0yQ;fYK%puLjQ8fUfIKNyTPn8%O4STwhcwQGGi4bH z)BsA5-&XBSED2yQ!GX}k-Rz5#F$Bm@&AljFulDMNPyq8l48LnszwB_7;YdLQnL&L@ zJ^s1gKN3j?4!}$cXskNs#7FC}PyDj(MB1Us(Hldp8Bi z67CR4V!=pINEJjybR43L(uHygSbIHfm#L0E@d3fEZ^rh!IZH+F5-60!zB)LBYZ zf)w+?U^D7s{sPn`)~#M@GJ8F01zaae&qL* zF#iD5X3*|e{#n%txw49Y$I<4}Kl5*BN~lKFih*1I06d>H$$jJAAActUxqajkjpXdj zpa!VjE{N4DYAOehN4shN0L}YwL`|Iz}os*gEX%#@c=)m zg3Ld2K1>ErX!|k&p#X-jpOU3CTZqsS0t|`Ei|=ya{CLvMG^m$i-hLhlPj`(!a3jp< zlrE(WvaOndW6?>l@?LFzr@50%JL%mLC_8Im^!F5!}i{{Ut? zF?XsLXTxD(=H5~8kKGJYFMPYCPyYZ`_9XuR@AzE!DWf$b?%Uw`C*gN+i7z*G`!K1` z{WcwZo<2+cQT@Ib&lCRuunX$n(?HdDpBivyf!zRfmE2LhcR~;|I{Ih;u5ifkfE^0A z1LeVT&J?wk3BQF{mme3E(#UPjVpdJ@&)y;r)-p^b4}Lr3<1N-8;mDkPvIk}7bTuC3 zU40*hP{mO!=Q}?ha78MLN)mw(s0p8=-#BeDZwC%C_2KCPfh%9-6yi<&8JZHAY_t<0 zP6)=?7UG5oo2V#4vN9&Rzp^}0LLEn?@6I8Dl1}mS6+jb>a;9;kftm7Ngb_-GPwu)c zJ=FtW&H|+qbfOmrg0__VJT+w@4H1dp-p~w_bfp&AvwdKTHS-SCy?L60k{sznf|9U7 z{nh8AB86B2Z!;P-(QBtQYQbs;pt#5-22==7pssMi zV6-fTuBqtNhKGyZ!y(p9kra@`%24S-Nv-t>a?B!aEuHL0$(2GoX{>0?btU@YY?cHE zA{dOrSFfTHB*DT}DifFcfb{Z$i!+tU{)6nnAsIj$qUMK{0g0Rm*+02W5%6OA$#sS_j+sH;IXd#r;#4y(ux zC_x#h3OLS&AC7NTM^OP zQkO(~Q5Qks2GT$CPSoG~9~E5x0FiWJ?lO4ud$s=n_1U+v{{Yr(UrBOS)r5FQi~j(v zTV$;G_^c61&Tq|_fucuK!;kNN$II*seU}@>2o>R4K@2Ttk6!J@L2;(Fc1~VG#DE&> zk>^G7)t0cWKu25-nKqDkt}e-NOL^FHNbRr|47iyCA^BKtj*?k-Z{YX-zwwkOfZI>H zaCVOawh_fozx!JGcJ;-!e>Rmk%cVNM4)6 zKlxfu{E1;V6r8yX+pC~0>XZ~8UVmW?K(_!PDay4+O1Cd9ArA;9w0!c7CDK)XNVn_o zkpwBQWeE3Nm+x!EBOxkC<;ZzNi9!-dDS9~T?F3YWP~@vX22}jPbFEY}219-_t5R26uc|j0`-HNBv$^@g8M?&0r!zGHfzb)4|nJG##-23T%4Fpu7wO>d|6s1#^ zi`5}Ij|u>{8FA{(4^S0Re*ChlK@{&Y3iHo93k7;nBF=2rHqX)%WE`Ulg>Fb)hX`d^ z8$PE{i1vDW!WtS&t zB8in|Vg0qJ;q3&7yh3x!t`T46fvM$Qxx|3uL_V}F_M)mR6mz$?WmD0EcvDMxWk{|* za3EDjiI|EI#B|+i&{Bc}0Ek$kDt)toz+}-$qBm3)5SWDwRWi1e9cvC{2vsb8=>0Si z1b_;P)x5r$axDqGBDVy(X_>zpX=8_~(Y>NKNB|7n`C9NrJLHo^3WCT9@dKiI+7XzK zneDwTcnOd>Wesv8K`f$eQ|tG&tq98~1xf`~C+YUDq!DI}sw~T^py1;nNM2TTN;;AQ zCZ5!3m%f7SryW)u5m6O+E_LE4p`eKn#%*8OY(>7}@QG$`sJgHW=n+m)s)QoTOC^Fb z4y?%rZO`ma2H{8|fleW=yVVCw>Gh2z`9UaALcJXU(=63BDFc)Rv{1D^YxPL42$Tmz z6ABUeM9U<2Cw^SMzR3bjRp=0Ips=Y^{#F@M11K_uP=qe^NM94Zj%`K;D9k~i+!f$M zdh$q8p(bNM&Q-oK#9_q^{+?&UJz$XeQky37f(n zL>b(lqM&7cnS3<+0fK$FZ;6mMNA3=R##hUYm@rI695X5T={j* z846`UhQ!-K9qG>P2e$`q%Yo#mGRdBE94F2JXU@qcW>U3M`og59sAedPyimYckutxg+ zTZ}@%QF^15{*A+lcgadBJ+*BwWoEvRlai;exP!zjeXct4(hcLEU3(0K7FIi~F2Sxp zC?pEknNqaZ+Lx$X%z}?Zw^ZU`8I+Z#U?@<)Y5e67CLspup!6iA3vdjUi4?eYdFV$! zb&j3uhsZQ;kiyzCGz8`-L!cx%@*y28hU#P6*YsMO{{V8YY;pept~6|vAAJyCIQ0o6 zt2kK%&tsWZLq^kxtb2g|ir^pBj?rK{322OG!x?8!`dTn;KlW=7;1X#ua0Ku-*8CPr zk^caY6UB~JV$G+U-8e*akOzyP1KD+P#%N9v=2KB$!hE<|K+G zGZ{u0pe(gXPVdEr)39xQowjYAo3`N3fwuN`(~q%jSaZrjmm6oC$v7aP1Q|+#uW0^| zJ6_AP?b|NZvF$i=;_TaA1}4pqhcE_QOe|>*9wdYiLQN#eLNf&;;~)B^{+IDS0epMy z4&LmIhI}69ciwsXL$l5tySO-b__&kLil_{uc&XhpcxjsR{68CY@M@3?(=x@}G;+R+ zEp)No^Wpr%^1e&ef9=nFvgK;=RZB$f&8p<~rOs;alywQWWnuGF8i09)1m3C>Si*U? zLvcA3QVRzDO(UyImk=r$bopd;dkZXYc#va>ZUKXXq%7r@WGVn$>%nN{5C&DEyCX1E zSTPO~!r}Bv(kFj;R^KtEzmzILfRbyKe+%~WQxaX}p@eXb;4C$7IdI4L?=3i?9p-g6 zw-otu8KzLt2}CM`Jg(fCy^*&QZfZlmt`xj zkey#aevIAOTsuaAvIq9D{{R>n5Cx8DAp?$JA_^)m0dl$sk`slw=E~y9WJ3WbQFG?s zPb~xvbN*EN{dExvDt86P&BEkTC#$e%wAn=Dm++`A10m<=ql3mqS(yTIU%>Z6%xWc= zIbv!V=!lwG-Ev435LB|GH3`a##I~`JRMB?h_+}H(jS`xLh<0n7%t8ME9L3;+46q=w ziWbRb$$&mr);yK{C4719uhXx_{^@u3vi7V@9fWq4&9e5+46{ux7B0(;jVzdx;spTi zVUj|!HNtq}ToxWdm(*H?Y>Qk?dWU@{)?Xtd;8eG68n?g?)r8H*N3)tcW!om&$Y>mg*3CuF>x@2 z_|mZ;Zq7(d#Ur>9&0CdLN-(-d&VTe){ai`f{g1Z%0q=)tf9glGNA7oQZCJ@P+bo|p z9J}UYHPTQ4APD*@7=gs3Gm%Hurt0Coksy+271peb#aY>+jle~!bL*NL!B4flv(Nbw zSqWrNMQ_jPmQd(Er|Sr^n&>>e-~_1zP%#F)tZDo~N;i>+trIRe!g5LpY@n*qm*~fW z#aY>(NRWjWd5H95?5WSDt z;EGK^0YAo^_2QmIVo)F?C<=(QP^$VeYOJxLDRktq0fQ9^KAwp1e?V@RbnnJ*~@GH6qBY4;i zOBV`EPozKLRoF2Q7&ys*zkHWwzfoTqI}_k%!k+hhK<$024`v;c*;{1W2kznte|v3{ z0&m*F0ZE!^rXU0+qCO0MG5k^OpNzi}``Pguw=wZC@%wkRHoR?{4;Fc*{f(AvN&f(E z3PCr^F7D$v0I({N?u+`;{;Tmj$KE}I;16{>N`Lr&Wy~?V#r~TZ?j5c`NW+`<=5{B3 zQc_|iR0J=eoFhqO22m*8`A~2S0Rb6HlW=@p&kw=4Z6G)NFcFFGsH9*FVoyct?TI%H3@1WkPeq7PUgiV^{rY=cFHzFa3&1b`6)Ab!*- zm3ZryGGc&~RLif-RFJ?2EuYi96*t_&0hr{+@I7)!p&(HlKg!i^Ug*JnwtqoC)tocXX7w8A{;jn(3{s4DpyZ->`Ft&c* z?VXEf?LOVb+!A8VwPNARKJ4>u?=YAIQ)5+)J-Zk5@ONn~RevbI%JWx2X6Ev;QXGfo zdDuYG+6$Lof&QpC7+4>puKsNJ7()vK17MQ}3l2b-a$(84B(eaMW*JaBd`IE778wkZ zzC}pVm%SRsKHop8I8V{{#7Z5_j1W=YVabX*R+W#4JQ2NvB7bo9B-yWQ+A#QWAEi(Q z+NR`Z=*d``m}Ecu7yw`S=(LeYCtg$y7X5j1iIspJopFZ!Hv%vr>mj+)Y$+p36{N^t9!2(98OsZ*{;JsI6-5(+>ioPGEXkol54)T=DON~Eb% zP#Hje1z4geQjzbI`VbHOyT1|&sQ&;(gZ}`cG3H$5z(=9kW+Gu@VM0Mebw@X-TQqy( z{)9yT0O?xzk8k|NfGa_`k*&4=0P^^arlTwVJhD{}ze#3#hMWno<)cn(>b;a#=9yD9 z=$nhfG&T+r%|sdHW=6JS!&U-mm6@qT<9BIEJG&WYtv*0ds7T z!qYD_Mm1dkdZU|Ek{c&26De@FZ##P1Sfa|yDiv!Qg3R7fMBJL92O()@uhmy57dil@ zEEu6+6)#h%u*wCpaiRbnkv#p{2%N=<04U4~RlVMoFqe2EEzX)R-rU5i zl%lg;&}O#NlS`jUb(nRk`4L>89xj?{b?T`WHK+-p)O6I0!X4!)x}1$Iz;fhb?=48N zy8EJAC?xZ>^tbVJG5-M7SF{|f{{YFvZYIBo_#TlzcOJj`*N%t(0J}_~7L|{_57!z0 z0Nh&mx|II_vi+ma{zT|TfqdiOd=L59>nTt5IO?I-_a;jJ0BJ=!2BdZTF4(6@^b20Q z(sC5Y)HX|#WL}vmbZr6!XiL{#P@s;A#YIA&m%hH4A_yTBLY1@?>V4APjQti<5NJO+ z2$+2@U26y1uSg{yv~~9>K@YCJ!Ba>&>8*dH5}@Ohr35zC2I-Ou3Q>&et~hYF-ZyWz z4w5o1=74CL+#34m=JZ^h2Y$-*T%8Ag%Q!-(mkwT0Wh~ihEY-<5E@lZpN&0^gYR+26 zSSr=n49SlAgdD^|x{B82!Mkxl2%v^#mf-;Upe=d|uM5CsT@s(| zMMP$@)tbUM%Q_mQP2$zc@ewO$zcnuAJ`# zOr7rtP6q94{iy>=G9`r-T{xG`GDv1nQK>>1As}-z0vr=fRtTjSGLRH18ZQQ5fHKw* zGy^M!e32^oC`M?bF7XW2R$U6$@d5!i3X`o6XaaeX?*vj@JgX}&JcgjXu2Qixc(+Wf z$g~_Qdb+U;V$p~tvm*6ts%xMSZm9uxlE{bw_0-k~mf$J8Y|nAT0&Ed&Or**bBB3fl zt-bA#0V^7k0UQb?mn&xqV1`t=_C)(Z6o3es5E6HaB?5R)@kG$a;JzsT0P{KT!ACvW z?PnTnc(v50*GT>G-W%By?{1Qwe}VX+FaFz({cGKh)+XQk<%_`3bkQ_^`d|F1Z!sQe zaKv9F{P;Wc2mQV8xKbCr9kEQm)?z+dHo3>;*67lUhfwR0Z&>|5ew)9&_%1h3w{{Z7puv)DZ4NgtK^2+Wmu8CHLWr~@?dDktsJOOL-#877`yglEer(rJoHL)L+)6)X|PieB-WpT4T}{3TV1iFj^5 zZ?NY)7EC*JJ^p=}0$Q~$s1F8)W#swmY{dhkr34Nh>J1XS2N6}!JPKSRpKc40^Jlbo z-+pT8KeJJ3*Ruvm)qd)lD_1CLTyo7W)k=D3u$28N)tS}^ho_Qsv~3s^q;h56aAmuy z?vSJk6|I*j;;G=BeR>hBxRWVTrICl(vnQMu8nE*dFdDPG{@yJh|8-dR*T&*Hfh*OT|n_J=5Z5M^&IivHt+kQZpnnqqPAityC;X6EI#f zfnszzr;-*BVA+ZLxfad+C1e!1dB}p#49pvsDH8InWwi=aDOG+XqVP*rs!A2fokEkK z3{VGFI%50C98iB~m3V{)GkCQl<|v5sZ;t|9YKQf~Vfk9Sll_G>i z*?@yAb+c-~bIaPqkiZCV3tRz{!w;u5X8WKbsZDQMopXqo7Ih-7?{mtl=3#FOKJ%)h z1X~1T%D01j9|%>|*8WJvQ0U?;9?Z>Q%m?QFzN(>t1_!7RA@e-BmB+;SW}0sof|N;k zRn7TVd49Nmq2|Mff%G0&02yk7>txaZH>wH>I~`KKZxHGggNCv)9bH4I zNPrt&s_zj8E^XOVCf+R9Ez6E}1_yrk_xJ;4{h;8jFoO7UvWY1xBep`mj-; zVDT!lL5tbiEv9$!M}^TD^B2FrlC%z?M*tI5y=g=Bi6&W4DPd7tlD}q5;%A)`<(6ka zN}!=8+G(s6S^2mS%)sf%qk!Ux=LiVmg6Ef6RU_6P^)CHnc5msM;TLFjXJT#GQ+z@1 zPS1(3c3#hihz`@S$&H6Jrygk~n|w+H%uxXz5+lzaioX(jz3`{G9pLZJc=o(4o3ncZ zv-XXyZ{3_qF=xWVn2ae@jp>OL1z(DMF8;3n08!n$`kDC4-cI}Wp4W|w*w`C((X#h{ zWHZe+4i?3Qi8Q!V%OdUqWdp zXSRD+y#2M>UE=NCw-;^ge%IQuw#~a~$DHC%HZDBod8Jv2DJi0qRTN0+g49&E(?m{^ zBuo_9UXEGG&YW2cYbXFbq=12PsttVG-@Z3m-z_6{klde3IP}eH880zn#G9FYNqsc9 zl0*)PN66GYdU&+7s#H|a0J%DarLNH>6a`6lLES|Nw-C_Z!Uk7VN-Ztz2Xnxjw-r0pZ&7FYAUE&EU^$q0~5EUeXg+f%At`?&yLDA{IfZX=i4qLjj?>9PUF9K?D{`T9;?P4KmY)oKXZF zb=T4eDRCvPNUE)I8*KPEn@JLEyDrzYDtLB%o@{xyf}k6Kg(QSRw(zULBAmouhIxC4)s>sR zSL?&rE;x4|lbo{cA0@L_Tou30?HFI=35>wgg|hl6ZeDHf%g5+!{*l~% z*7z^+cd(4ZwEi9Uk7p9^Z%r>|ZId7u8@OO9vZ3H(@Vi%KcDBGwouSyBudo>kPyVlA z+AvUuKl$Xc-%y$aF=2~`SN9Jv*3pMXnU-RW<@|lbWVitpNdSQ8Xl#XBcwaF}MF6sc zoxb@ds1uw?o;aiOMWz}sDxF|U4Ary^1rWEg0}rE?-n0n_C=G^RtJhe zWtam{h*-N(HHbKqIDR=(%?;azar=|!P9JS4?MRRxFgc!G{{RX;azAY^lermOG)1NT zR-h46bW*x8qrapI;9Q{<<@k){n|K*Y?xyiCW-`@(^ctNKEx`agBBg@?#SLmwAzI#p z@_3thDs!(%l5ojHA_+t!A@L=^w+5lh%0k@%oUF(lxE~5p;h^X5y+rNt1!CI zOA@n@C?RFu1!!He^2l*;JnTJ{bX`-{(J~x)^jMmp2y^ZpnuO%h24s+4%E1Ct{vp{^ zDM?o%%A5!^jOO`@*t-jW+8d8+!wLX0s8d2}o5SyV6L_TFrTtTb*o4(#lj{AmbNn)r z2rlDO4IpQhxwK@(KobisYeqmzHjA4>bN6ch0JRgf?LlCQGC(QdQ+I^L@ zVC|a*(}9UL9yT5>4BNm7rJ7lSkN^sY#2i=bfBIVfxON}Zf5QEXxqax{@c#hxqIW}O z!q~RFEL>FDHv9}JKW`5bStcOPlFPhEN~$rBjOm>}%Ep5V z5gCTbDfvr{;$R&zmVkP7w0}ZP@PcQRNd-+U$?nd_nHk)q}NceYM&9KGBXO#Fle`w0_)&7Y=bLS!UlQRUOc)cZNxnq{K3yX9k|0 zjd=6MBRwr6C9p0|MY@LXRLLPPR}QA7SO!3uQY>*oi~=_=Y=c2DL`Jh(od97hzye=e zrl;GWN&vj)sk1}zWYNKAOI&lwO)UlbRIi8B9TI^cnq~=7{E>RJNC_yIWB}6K@*hwj ztfp_2R{EiApIBbd%Ah%_XU-?jk5A}=2%5tlb*o!UvW03uzmC0mK@&z!YkaaH>ywK` z6X6Y(N*=kUL=aUh@ha9ur`M|M6>ZQS<(yN<#u)EvcFF>pn?b~ zVr1vTmP3Ta#&<*zLDyY*K?`NZ_Z%9--!wrDwYTT4Pgq1`Qn@`7KQCw~cy9aeMV!R0 zl8{=xd0G)tNebZ*hfKv-`Vp*Jj}RzIWS*~VqEW&upoCT=<)Ac5QASWzbI`EkmU(BU zLQp_JDKH5!2gy>Kx5n)geCK-$aU26L1^Pbb%e~)D<_dr6!LS;F!y65~Py%bGia(&o!7wHGNATuaCv^KH zB|rDu2?tAYAJ4nFG85m9)1Oq4+QA?5bsWfth)))auw5QCYuMS>G z6h#u$$bDbwXp#YQ$PFwF>(=XX)@bj_6im}mmyoZkAx3kPTFeOmErHKcS=E!m1KA?D z1|DRGzrJe=#6eb~C*feCbIG5${Ai?to3hYAvyh9)2% z3Z-*uu5C|9YDxKMSLUJVV5R3S+bsPP)SyNBgG`1+S;ZkE?*-n~i0N5MaY$eg98{?b z*SS~-4#Z*ZC z7i@*unEUG&T*g}R%gFGIgv3(pn(3@kkmkAP{??}*F9apBCz4VqLqv58a#B?DCky)~~$9T5T5n3r|UtRB!uh7GMevps7Hg}!3n?G!96ZEkH4W;uBl7HV~o9Tra%E{RD`Rr%;`-Hp)Lk<*(K%8walq?pa-n3kV#e}|DhA8xPB2Jz&peB;%eYhmGE$7p z0B!|S&f*%SQEry%%Ufj?~!1qO$TEi0WO zWlZWEBs2)4m($lgo(PW$krrO!bGAYa6pEnFoI zT(0+mCgSZ>RH@GVPMjiJgEQ)id08oxB|TTqp#uFqAc?KL(x{hYT0J#{671hIs4q6O`i$--8f-A8%RYa-;^P($PIQ;i|N_T6#ODYfeCu#3YP$&Lm#6hYq zb)}!%dQhx>A*=TsT2S^F}Oum7DlY<@rTGLC=FS{UXZ|8`TkzZ=?NITZ99mB0BwI zBa_!JF0zaWat3FB^0u_36jewJ-S_mem>_N(ujvh+KTebI1QigcGv@-5is=I;zmB|` zs|pB+IYaBNj|e*ZbReWj15yW?P(wwhU0*1fiULKTuUE@R8kagk&T#9W(lEyW;DMet z0Q1GePsDFEK%!sEt#piWfAf*1J_eur8x6X%#p$FOIUZ2J^zWjO+qpjR@7;aS{{T%T z{{YiX_4!}J0BZ}=8wM?WK#Rm268j7IF6$G*oT&}dQA1HO} zu8ceHxkQq+zpu6Oeo;&UT$=E(@_Ga8*?3yFrw9Q8%5|rgUveO3iUy6)hJy8&>qGuI zC9ePlCPLJuRl4H&!yq>CqB3OQ3tP~^58Khc+%#F03aknXGNKE)D8&fikNlUSc%V`*do?^N>j`)LHS z?(s+WitDbuA}!xPcb!q=cAV~WtL!)@%kc^hy6f!&)f=6BpV2B{q7F_$%%`6DTR9hHT`YKjAdY7OChbUQHA2os@kV%MwXj^rRPycyD>ztg;KR8!09tK$(bOa(kvOvUm)Wr9CI2g zL(v^{GlbluGci1>wbM-qLY`5_#Ktm*C_)v;Dw{1cL~S6g0BAhF3z(pLb*gIuj;{T4 zj+%CiPw+ss-eG)^eNk%3f!hI?VaR60#38Woym*FZ0B(etRH0=RD?=@;W!q2XLyCiP zI>bB=E*F*7cclqVd5Vu)3hBwcM`X?L16E1{ssH zcCXqdWZg;S!!ppZP#Ch;$^Pm808h`=$9$xd8?!zdZM#0tiiBcqLVP)Zmi1iS3$xV9vSLhx0*srgKx$AqtNzCi`YwK}@i%6h8)J}} zRSJ~;(tcTP-XflhPxV_k5Bj^g7myjh9K&R-O)TXvu~qn10S7QYEQLMP6SEwxo!Wv~2Y^``gaMax!iq_!|KN6%7Rb;$Qn@ zaAC}67xF#^Z_1TsekYQsDU}*4cqLpa@v1cn3Y79l?x%czP5%HNyM$+xyUB5G=d{R*)zi}CsAh9{T0uvuE5YULYNL6xEUR z;{%E+RUJN!2}y>hRJKg|0-l1=3ma9ThzExh%iqM_^jn0kbZ$QLzlMl$`?G@*blA1 zW}?IZSP+O4kxx5ORoaosl3P_BDMQY@Ud1A$OAZsjw~~s37_qPur(r2&-h7nJGBc#B zOr6+EV4z2^-|5l%LhVo055`{2#oKl)Q`{cuZFoC>Z0(cb%yxaF6KBMi5MWI)8?%1k zkr9K!0Ku;B_eWsaFh_Vc&5LH+JIA-nC>YrLW+oJ~oH^zoOn+$3 zMBtJ)tPvwmZQ6zv0}hgR>I^IzlFaPR`F&Yspb}abF*z{}lVrjg`bZv8cW=9$mEAtU z?5^$h9?ONXc2{F;SQ`e#vtddkl1v;7IdJ7!Wx13odYYScwgKCPt4_HENVtOXqEO_B z1xQ@OH5Dx!BgdYrV&6}&Ky*-0=U@BU<(DV}0@UIr@c3vklt^khmp#S~OvuVC6$^RqLU6jI2jj8=+Hm9mRQN(4q6B z2`)s3T6uBI18QCxJq^)VDVI93%{{UBTCjB9IxdNa0WH|%EY?V?| zJGw?p2mM+({W#l*^;D{SkG(76>t_IL*dm|u2L9WBL?KJNq_b<6Jr zMI=jE{()meN`S*7s$_c8MW_%e#8z3o^A@tbRTm+xZF(Lk>n^xK4H~KM*H(l_)6wna zpR`W%2V*zOq2xe+!nvt~v7VVjj)DCOk`y9mm$#*^@X-SY_sR2sGexAKith!XXGB8d zhFlsjjGg)i@0!O=JI|oJfqs6gFe(waqR=x74ARu2ODE#-W?j^E+b2;DR$O=q?D)^6`D z^vGbbIW;l4WB&lspME`3>#uuf22OpsSI>z&MJ4lYI&0Q&oqh9OmI_$te32F>nEFN_G-7Y<}U*INL#$G&tPGjmV6s1Q;KX+fG6p3gp zz)vf3>CsXe=g&tf*#*`WxqVUvKYe=B=pf#EYQyZy1z}6bC4;zTB!c4S>LdeX(QT4e zlm|uBya*{)2O*!e{NXC7x7#Js_kmAcd1ToLmLntNvQtPB?;HTIbDo;Yq!mzTgI#Ho z4DS>4wMV0L@IT}6!kIJ=lX+0^=%C>UOcplcA+>Ynj+~ncF27qviu(&_HAEJ%E8!8F zgg|sit?yLyE%xQcAQD~~k8<4o5|T)rRT?4EinuN^Cp+gI2&tkcxpm1Q2hC`A|6o!r-Cgm9Oy%d=aR?1 zO(aw#>1>Z4BL3>xyqeq`-iV6uk2bbh(E=bUgD6UVj^osNK&R`&+eC|XzuPZ#V{6EO z!t8Sz2Z@btj$nXd_4_CwfTZc0B^1zEy=e(^s$QBl?>%{#&>sjWRTDKpwWe&f-bhAObO;!uDPDOp1EB$gn0%Wol&}ObF%QG#d9}|YoWlAy{)XSE z{AoY!C%|sr+m=n5akck%3mX^3JlKI}mO(tvx&j~yl{x(^if>FnwAp3DEcm&PfFIH) z#l5HCkLoAk?|v{gj7^_q{{V|@yB6LgoXQR!(~T|x-W$LfU0px}gnjS#U$*v6@%MYN zyLV#6mm6m7Zp_&B*)e69O(~mb!IKhXvdc8ZNY9*bcKjdH#Wf3JO`-D*ZF#cKg;8zR znt571r^$YaKtbp%K7d4oB#;9V2OIlwV+rL5D&P|5AVZoDvP5VC8j?-aDN{l~qkp;D zG`+j;rx?tr%1JC2@0Zpo2qD>2sduvwIU%B}m_Yznn5!j9FbiuAkWoH%rETlUj1f$z z2?=sk)o8rOPLV-StGgO|dvO$o3i7WTjz%PqWpxU?So%Q|P^2m%6OiMQ--nw}siO7O zAxfLHWX`tH^FFYsRD>I;RlnI0J?cah@p30GIIT`TMP4 z$e<+LWuA2VK@&jK$@0i~2BwiJs-eR*d0w7=kxs2k_18K=PDJq3XO>qvG!aPxgej@r z0kZ3xG*w+lOK{A7X#gOh1&xxw#*i>5j&jR0Z>$j_1yvj#x+n)2OHz{>Hg=;6J7nmo zRRut)OYl5k1Td~gG+)ksutgw*0l^!r8e*A@vwCF!1yxnZ%>g!gri}dPfS{Wx^8R_O zGz-0_N6HALNBcpz1XXT*II4pTl%BcW>B7x zQQvv`D43~KjL8L<*o)ij>&%2Pp{e3yBvJ|qO6XMn0>J?W-N5=XU;x0r?}U`rjP-s{ z2|*jBOYbd?LY+4l33f$bT@xWgT{ysqR1g5Du((0|C!`dr05}NMS}C(wGNqvzM7yXJ zH=2)IjwRBSCICdvkIT=>ujYanX}H-g0%Ylytprj)pkk`(>v6-)T81c~4dP@#gs5wK z5EE5lKe&n(DUkj_6y{)61u7JC7J{J;C4mM()(z#jPJv3HNk9heqV;|elw9ag8HA?f z3T3a8-XH=ub)sIET<`qBO*-o*jq^EZGD3x?E|LWud%@RQz$H~FlH8oUtEU(%E>7{? zmpYM=WUf}TA=SzOP@LA8deCX*B}kOg>B-krEuecwl2Fkeyf35_QWyiDKFDGxj+vlD zt97CVDbg@V*P*0mDc&wD!5DSbL{bMK3Xr!A`1N=xOq8~RU$;0xmF}lS>+uYxY0V)D zTad0t?_MxPB2Wk`ngp)5wnz;`RZ&>f1;3pt67{SKR)G~Aj;P+3NMR{d>*?tPK_S+O zUrdwhq$xnCp#a;jq%ub;Y0ec#hSs+~q!BIbgXMi&*2UZc3;{rxR<6#WY1h0o3aI(! z$>~S}iv&O74NdrcV2Bp84-Zbz`KoaBYjTJI()Tw5AbJ5!Vz)-4u76!1iK-&qxxf%} zDxGvs7)F<;+y4MU$^sOJL#0z)IakUEiGrglS-R;j3>NyLEF~zaKA%r|w7`od~0Ts!jNZ?rEJ6mnHhV83*v5l{dqA76j8B@762&zD@_`GK)s z1QA8|;CaIbjWTcNMS>yJWq1_;sTVi$0DA;T%#*xAmawgX1a~ z%(p*2HW1w?_Uo=N5U7?Q`9dtpid4EDUfys-rS_;#b8~2|E}3*WeIY62 ziltlV&;q2T0BniV+v#`$BT8~Y%k<|07O-kBm76FcN~6PDh6FahUrRStrI6I6^h;;V zLtqWPAp)o6IuboN(Ek7n1WjC_rJz!je3$D2RDkdjf%rCheISVhKtVv1^Qyn`3R1Pd z$_o^U5`ix1R5Sv$Q|kJ0iXZ~6ZY~2Nsi*Q_iGx;4=ylSLB4(Ph@I&QTpeon%vc8SW zCIP>NX=?gf2$&#+4hZW{zX(8*N`wQ|&Y3-6BmfJ6kZn+oucSJQk3&czk~~6WU<#f# zNTRky*YOg7AOT#JYctY|m#hn-00?$_YMQ9yMIs$Zw(Ai80D^0HXEkIsLH1ymM!AGM zC6Noc(%Ny==?xaPCYfu@dO;Aa;eLf^hwbGiVlDu4LF9AIpC*8rLAXRzX?ff04rxJ9 zLa$bI2gyoS2#FQcBA!&JIa`*oBrN1FNzjVMl7Eq_aT#gT#SU5~R)omm zRDy`8PqJ1Xfs@MP(=HH1ai`hUsjZ<(3Y>{i&#tWA_R5FPt!g4lZwlCirxWCPK@|X9 z)EWe)og@K}5~Q!*7xy+ua^N-3?yw?(Rw}eL_Bmw)OzHe<3Sx*A94SUYQP0v6g-~9E z6G4(##&hCJC|QvKZCd$@pvmauMDvMAB^Z<$n_X6(p$vM${-yr_)EBvbqK||DrqloueknjynUf4m^_Wouju+As7P-1kJy?F*kSoEH#hkdHT2gRs2HzUi@3_--;dl z?H#IpmuTAY$9KCDd}-#{yEkC{*^Ugjcykdbn8=n7!ak$@IQS1A;%&B_yKBR$j|kZ- z2D+*Z{-+X>;|hmo5%UoIm(Tt-__q(iHfpv#ma$ieW6;BNkM=02O;zbpwIJ!mcE{qM z#eVqwXz%|3czz{!_q6f*Q@kDH+xCsG5`C){X~xSYJoC>k4iNsqEVBS5V3P1L+uz@o zNkBP}q!K1PC0eaYnkZ2m9pkzb5(BM3PBdyQhGhm*PN6PnwhW{wCQyN|k`R&l(`MPQ zc5Eyx3>-Re@bGCAQAI2$q*4G30Jv*7*2UN7Y;1f?d|L4_YO1=iDmB$rMainEa{JC_ zjA&O?lNwR-(UxLX#R40R za^*>ou^Wm8N>xp00*-3IM#vA7m&`r%83>OntS?Jaz_}UbA@6x?vdM3}8k}3i=a49h zz%pn>mUP=E5lihI)$*AeLemmS3iChhO%4u`xT<+M7JT@jla+du9E}LgC=dC?zOC zAcQEXOGlEurP^P!hGdYgG~p{jMR3baScFJ>yEkQQSX(9z9JqKpCLEX;IC7u~h6I3s z3xWc$p#Xq}KQWEJiHS7xo#}~G&?+EC(ZD(9+`z!1iUk7D=UWHh9ETDs;rtpGARe;0rF_lIj$l7!#Kp9O!F05saoV!7LM6OkujK|09<6Ou0QWs4JjP0 z!zdO<2m6AcK{5o$8kYu=)lprAXW#Ft3pm519 z=>ZnkKJ2$I;i|F*hFs{y$l(23kgy8$QsA&4YkH|LANGchB-?eQt|=R&lB!)YOA5(tz96;Z7ipf2ErF~`J~NoF!i91x*Tm@hy=mkU%@wIe`j zs{a7G8Xd#89ZlOc1kymHIRISfO);pOS^$=H!<%qSWkONFUzKdAXuNnlepkFb=gQJdg$AWSmnVtL z>A-2#^JVO?aHztjnsC6Pnnp}1dO#oB?tMa|x&ZLH3ygwke>G8*D6qOrLVMis)7DU$(l7d;1E$qisfzfOxsw}i*(Ud58~gL zmy6w`8^c`jzIu$v?gLZ9+R-@~Yvt_kpp=jb(KkYT!BU}IP>Vcn;bm1q6eCr^S|w@+ zyl~~2zz1|7PyilbL#*+xKByYZ0mLVU)o3*6@D5+G@qlbqvaWYh{?m#OVsvkOQv6u!zNwBC(@V7X- z77c2$2a9HV@>sW;l4Q5LQYF|s`a0%KF!@Ii^yNX8wS-7Bc$H59!ufsOAB`mEcp-EC zC&F5^O+6z1xW@Fas`_Crl@u1@x#;bV|H(6^{MM4?+cWByK zH_$jC(G)5Pug(62 zW3Hgx=FRWtb*>iAD{so-)KD$W1<}zBjbo`{?trqeRNV*|3yNmX#3+sy8ASxD1$xVp zWT5j^jzqH|V#nC|7YkrZ4I<2cx{`Q;BnFSJt5v(oWrruTE_{;8R2AJQL!l@T%m)Ee zp-znQ?v(wM+h{L(qW=9Sef72CedT}zJYV)#2+ax zq0vKEr}M8UOb&#wy?-{{63A#Kz=lm-aH@OgN10s;pfYzv0s;4{RYvB9rr z*O9Wt99v&57M>2`%a#f~Q!K)Cjm9?HQz6-H0$jVyGYgswq`!ZD|1o0!&^2*pIqDMxn~;LvZE)rp*kcj`Ha&n(xQQo zXUQ(;5|@rBoTilvduP|2F^GXkR3PrywnXvNu!=Yj^3Amu@6k6dCVcYsxEF>H z1b63>#z6&{##f%j+eOY8vj+f$_cbA^zra!=#w5%^Vx^EAvd-Z1Na2iWW^L3AIkSulQb<|d4y@&gO0I{I} zGJvRx;n6p2s&J@5(4#vl`PMiex+WPAj=^hGDaN$3!xPOxI84b}BzkCBKWmW(tNUk$o5Cjn*xe+0}-#O#0+a-U~ zBk3&XnZK=wT})#TP&jowvIt127R{=LDSLv24A~o%U=JPUj-UIWl|*c-twY>UvK28q z^N>)bh$+d_DvMoW)Svj@Hf9FdK#g^}kJCJ3@cD#CR9dci8#}l zZbou}GS-Cs2JNGV`;;wK6%<4&^hz*o05{En7N}l!4B0bMClJqp(<5FqN2r(4FJTRIXf_8=y;Vofa`xf24~52FWmr2MDM{K!6ERH16ws^iU{u;FX>jt-c!_5Z zqrf8|MqN|)Q+85atm|b$85l|dq(R0mRZXR0gej}7P1?c9j-C68 z6=m@1@Ts$QD)<(#!(^ZZ`7a zqYewION$@}c!09zwF_2G9+ZYLLrq>ts@Bw_vd2ppp#hp=1AP*Vtd?uk7IB(!DGY>O z?2h>^Knl=s;mh!QzUZBJ9uXE+VAf%kt{azj3!nRv2PrP{p){@X&(&2^DY4L2QiXxi zgo{$aR)(pwI#7So1#8Fc3}gFqOsb9+ zrj{#LP(=dPof8XdGR|dELx(R)s8p?x5mQkaD7P=KwXN4Rn{#@fAn&Mlvy&MD3hUju zvtV|oWbKrxOHAbjW6O?Y`3H5BVgdGy+dX;Nxh}URG}BE`Gj!fmWkyE|++0T@Oj)I@!EP!Y zbSlWI7f9%sQ>vd3`c{FpRCE_e<;jVdCS-0lUT;;-Drji7gXv~BY_(ZMbHKC-n*-#! z%($g02|!Up3XI1D3el*w}IvjyJaZ4H8B zIA!#KsnBs~A_?H6RxESO=?!oRk{IH035ADQ%jDXn@cb!!!niC-NP~WM~;;y zE*Jo)6-6OS(4uveT$@G|s!k+;SZ@Vd5{vCiQL1PlI2;cX7W(~_#wEaMiwU>9-;`N( zfrvmxLQ+JXAo07Y+BPOWd%z7xjHCt40Ii@zdf0P47fk@<^aF;uM{AwgJ*M59f6y)F)=1H zV&ly@Dh$(2F(>f!bZQ`rmu{27 zHng)HeDqz^+k4^K8%Z+YAK1es$N^A{*pQ$xN*c6&dlzcO+BfIM#-9+OBgNrVB$Nm; z%QdS0Ja(BS48uBrRf@4T$!l2Hc8C)hO#7j{O1V;1;614sMh!GLrj~mE(f|_o$@&oT z6bk8onxfmqo@~)$1aJ?)uhZ|yBtR}EB>|m{_eu~I%3pe*kpBRC4oQtbE&|m!k^x}C z)^BwvDH0!@$|_q%%*6i7=K_0FzQPsyLzmk>fYSU(|lV*+(0*JG3R+ zcI28_wvjU7NJyA(OE~bPgiFMPq)5W9wyEsS!S30XBk8K!*|2dogSmr-OoxU5FdsBD z7Gu4nz+Ovtui^)HyP>gS?Y*6oLam4(Cx*-yKOarZHl9#*s&&(W>Tb=iObW;zFc{{Rc98PFdR zno$@K5i$v)QKE$AR8j`;9M3SpXti#AFk(y#nu-kh-8yKYie?KW(SNO{flDTJ4JhG82vZ|MGw2!23(NFa3?$^ORlVI=P#LNw!ydC}8FtD-kc0HpG zTuqy@ry^OvmPv%dTueEt63;^(bI1N7*t{D6{-t8QqM(0EXQrTQsNRxA>7-`kRo(D^ zhxVTq#iw?IMgxufT8GNQeqN9m^K82(`V0P?_+61NW_()s+1c{rZS(%#+t^*(+9YkA zNW{X##*$!yXOd}z!2zO^Fq_@J9?64+gNK2$VBuh3Y|=}Gfq{eu9v%i1lI}?)m~teN zfh#1Az$j?cOoCZt63H$clFKF(fJ=uYiY1a+B?3?-0)PQatS$2LuMiUSUO|WDei`Dv zFSdBT(N;Foh;uk}Qd){Ba78rF7IyYuWANV$*?cc&rvqoh0tWR_y-{G~>!Urmm4U;^ z&>cGHvIx0lNoq>5p}7pnq2N*0DrXc@3f{e0{g4Egr_;-;4C9(Npl=gs%5rDqi@fa%r0Owlfu8Q?$6cJL+2JoRYqcVlp zfh%Y!@2SzW)7r~Yu51+6$Wr=zql&ax3}18}4w00TRaB&^0Sch1@m2`_QLr+Le~A}I zL-$gN6g7ZI)9o2tsOQ|p>Y2I?nE}$EBlV^ zGN30w595+VsUo}_2Nx8g>-LY-1Bu~jp8kPL#kldczY5UGf7%27Mr)!zWW$%nN#5}0 z0#WP$XF)^f2!O?Rgs4>2>3RY~O;0p8r6yF!*0UC<2&kk58B~aoSgC-y2c?{4nP|}H zt1czDYazw1&z4Ntn^8o3$+n(e`a!)af+Ys36;~<(-Bu(CYcT|`xAwCPihyr;K{uMf z6dx%Dtf9t!N(0^2cFRgC+0L~K1h(-+0F*jV zsMUp^lmLS$-UD!}W(5eyg&q;=(LnERqX*GlQOj%TQx5qmk)w!rHYBugyd7bz@i9

jgab^A7A`gWOvv^Be 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¾tbXiyg3xS)1TSegK*nT5DQ3Y(m`0@B!&a)^S+ z%o#|T*rIYod!wds_X6nT>1Dl1Z5v3EL(Y6A2)7GB7gSa^L7ys*M_JExVf+o zG8*4C3KgrWkRsc87#zy1B+`+(Wtb2`T3|wer~pwO5dNe;LSF}e zP`eJ(wBmM7$=$B?%`Ed^cDHBX%d<<1j6q4U&KQu*;!;G+yTr1uo0Golw+2@WPDtnm ztmea(a0()+PHHFy=wMl?Slrom{i|Wcrx#_$uL`hlNp2zXHe%z_7QQ~mfwjJPKBWIofpXm$KUDm@z>yf*|u$44`O5YySo@uVofJ%c5H_ecK~>SpAJQsktmj3 z(JH&KL*SO*fwlI2H2Xhj?0aUxkA=M~*jrZ3i-KgF)F0fCA`k{wa`E?vwCs3WRt(!d z+q2+pn>66dKF_sb%d}w;G4V=eoFS?@s?;oa#ql5XZ~A%or9Lh{dAo_RVQrY((@l@C z;Nfh?c$t=Tl35kzS3fcj2#=w7Z}kTjifF^}91~dp1B-+uxYA=OZhZVdhbvnKF_;2W)Pt6sMa`HJsJe-Pr(bRtMU17vlv?Ez zFDA}40#Qomn0s|hOXi)aJ|Xb0jw-mI!ZsGuP}fqeYz_qi$W$O~GlJ)kq9d*~z2qHa=y&Bzh z8Ms6PqNkVVp=5`>aqaiNu5fVc_;>UWph+B^toe&iLVSWI50W0b$s&L!=nc)!^THPC zBY1ypML8NVOwpl_4~Adu1WW$VT=9D-aFLFpOOa@UH)hH*e6HE3aXGVk_j_@I$d^>~ z0mqu_oF%oWIoIvN83>K#*Y=9jCK! zJu)RRh(P0>sM>O^Aqj}1eR?kwuiN>~(AvZA{GTdPEEoa}vM)ND9#*_*?eH&N+VscGu6?kDe$;by99+@9VaY$faiP3=q7=ba_ z3^@T(%57SGsibZSAST|-gmL^3RK&|J>JS|WA$OTkmg&x5QpPOHF6dyj0Zgr-wUJXJ zaTQ~wQ2-bR?7(*6>;VCw_9vasJyQ%s$T*RFh*k|z_=G}&DJUiAgoRH^qB53+F$h8N zETq-5l?W6w1OOAkq72e2e{u@ct7HN4L}8GIZa|(L{gs?`&%ZUW-3e02byo#SU5&z4 zCF#5Kp1!0*pu{wYKmg?gEUnSedqfTYGuZz;a5|WI{437*V`4>BiP+ zhabY^5?D|MI-PRWc*OPP9BIGo% z=D~6_3Kvv_KUWRyx0#y;_LOjx6Pbs+Azi{j3FbR;UJR#2h?B{f95@CL#=da%NHbluyr0 zaRsgP_Te1h71opjWk*L!)FrCH1W8Zrm=(IyBPxnohL#b--^D7Jb4^7kyQxxN%)1F zfHy~nB%uTx$#cBP9iZEPQr`i4Hf_zT;tylXFeDL&wqVa7Px0I(X<0Xee9av@3-wR> zc*evMOYsA1K7aWEyrn{sJVWhZo+35a=|s3SK@QSh4xZj?e$rb=&S z^~)&3M3OBIcuk)oK-WCkWg*#*T!{8Q)5UO1q_8Y&ym&2>*&KrbWKacY7*e%YPIR=?)?9pC zG62MKssIQ<3<#mA4$nax4$?{@AS*j=~SJ(b$BP7-hRdnOhsDiOD(Bob7G^Zx)Y zNmM62(OzobZW^UD36Qo=WLv)$5qfH>f(}K&D->c={^bI&3o)je zfoV5!nGu+iX6zq(KS{pHe8N z3OiD4Y)X^MW3QLkK-h)yGWqN1t2lTY> zUd(YO?*9OMwmqUx?8BHW(@G}rs*)^(xDMcwotf>w>Cf@kvnH7ASa@BfC^H#G8J1n) zE{cLuq*N)Wl|+334WeL)G{M;j1XAOZ=^B5o+9gS4#l!&7CnHr>56a^;>|p$D2&EJJhiO!&^AgJy!>4_zU6vqG`j$!ZO>nKrf#2jH8D|^Htg(qJPvkXHPJnxqD7H zlo7oll?e;}B@}?GbMl}jKQoQ`Quyt%%`nC84`>rE@_{Dvsy67HF7mw<#-C49ZTQE- zG~4V6-U4Ejxbar|*Q7+dLd-pXv{a2&)4Itzw}rJh<|e z&&2+lcvVwQJ~b^4)DR`|FViSyUoRi}Z9f|&Bp%>)k=<4BO+^C1hZ0Fb=pR`>Oy3(P zK`(GSMr#iY!h~iJIZf7Ds}mnkf4_tO0MdIBwKi!iMH>7(j34S`2%9d*5{a|nfY~N) z4r7Uo-~KT?K!g7P!r=(kuc1CeT;cGK>92;kZLb-k;+ZXXYiZA#`Iy;1NxvU9%s?={ zAMMgBf>9o|L#ri07LMZfFX&I>_iC9&FL!6`;7p{=iex*WfxNUpD{yL|LVXf{t(sNc zmkL!?-NTk%CYP?Ru)o)B1Q2m20%FNA32F+UrS8Ts;{O0pd{&@E7#K7YuJu8*63?I1 zO4!2woOnenYsSaK10lOkk03t|L(kGzcYmgj#7(wrIs0$CI~Qk2Wd?Z+vW?XwObpVy za3CR?ZF}|Iuj!xMy@qKqJI&r4UeQUVIGB4pRN*%5ZiZ872Tz<&m^1#^O5YoXSpfHPET@UbsEwFXi}e%yDsiLv7ki?HgV` zAvYD`S98=3LA=@5e*?ny4Uhq|Y7{{_n47spVVA&oEWYY1qtUA^!kzWSB9ia0-JN zyg$XZ-wDSU`!+3fm-*>;rxBUOLR@K^jNM}K9|PDtTW70h+OQ}u`zsWRYN5#yQ#-@6 z2OSs6S9p7=+kMjQU8}J>$=SO{W_Fgvi#`@E2GN9N-kM3PEW`!z1qcchVxl@J+04X$ zX?9Sa7N$U7%%R96KjyJ5I;5_Fs9W!aUt2yLDVh-$;4tbL4=xr<07(k|7rffgh& z8ZO4*O+Ll6?3;EHiS|9G2NqI;cy7-rP(y|Rz{-N3O^G$FQ=2Bc~CI&?lf;T472g(frR0y>QOBnY@{W-oQOWQrq z?QY=h*z2}-T=Q)>63%=_2}qV%0hj~|JS-KwC;{jEd9l~EcxE2cO)hq7-0-5N23*;% zY?!W>^z&?^WbtfGn!2|}*N3eCA7l?7fms(*;*mf9Af~M4UjTR8WW!k*ZpQ zMB=fe(r*d{d1eJn!5s*uiIWJ#%9cwbqVc1b$ru$e@vt+0K0IxC5zjUELK{Op>6fI1 z8^F_+R9>k_0+&u6no!@;(4AQ})uaF3hq#J^X;mInF9<3DwjWcIxaNgG8(N_-(S2E-!t17E%ZH?f4T3NF`8-(G_W{ zl}Io?Fnl!HX5GW@w_=i?-M3&!8B~EZ!fF*DI1=w0B`0$AF}uNx*Ke(vUjVoG52LB zc23a1EYwM^vjOt&bB=}D{rJO4uzNOaJWx!)?J^aS5X<145+=D5O31-cV;R|YfJHT7 z)lR$Ak*2Me0qHp^+je?EBNB?P!kUFq48Rk^fo6cePuqRHvvypwZp|((&_hTc#AQbh zbPHhj1on$=+cu8T$D12z#F}Z0qcakLl)Cn3wEPrbV8 zixOBIr1`l204uY{7gP+vQh9|kE9vaEiZky5CK67G^T-J#3zXIJvWSoYO?6bJUyns6 ziHZYBL2Xf+CN(#SrlCztDgc%(Y?ucVscY$As?^l~04x6hYZl>RTxDk`E&~a+O@k2c zV{981DuTP)JcO$7N_kjE81^?{%t@cIdop7&fBegaRWne)+)9mp4 z7Rj>V8CqT386^n6+5kyFDgv@P298Xa*s@B~i9iKfQh}I(DO#dYDOkwL#C*y(i3J@4 zQq;)+5j(|B=x_lff3&$u8fWN{jPDck0(EkDG&vD2H2}k_jnQgAv5INn23|lszzia$ z$HbU#8I6GDMjqfQin)SfP?=}mO3Hv1tx3%C1?r#x0Vq4C!!xR|RimT*m7_YDzqB%| z9IJ14(cp?{meW$tkPrlb#9NfCf}+slFkzc4ivr9T=XX{LeA6JaDMA*ZN-JMTLTVv! z%B5zPAgGmV`^1t+m5>$*?t-j9uA!O}(~58k3Zp+9?C}mBK<5C{KrFv%wF1IGVn8~z znADeRlV%otm@@|hQ9h)~bqXC(JXR}{@O;cvz7|Kh_FHgAvLnO~rj7aaybelq3aJk3 zYG#U3F7pKP&=$#``N>9P7-HVueHOCGDsN3UD_KG%vXzBikp@#*keLLsx;9kjbx;Zt zcb7*10-3vhA*qy*3WN#)EmKt`(RoCup8M^xS0uAc=55;$zbh{aBZHo?Km#g}pfj?N zfpZ(haw0P`1ebIw7R!RTAgZc+yEBrDD}_WntU7HVqypC$;O&-!hiKx?g<1i9{M9Xyawu*x0#K;8Lb`nRU z`2+9fCxWvnluSuds;4`lPy9NXppR2O)n^`TKIC^F2ow``jO79-S$CKML+=v)B145} z_P%jJl=xH9@~a@N11)kf>HGSzZF9@r?&9DB;r{?#Jjmvf4b%Y*{3^C^vEBG?l6+@k z4Famql|D__TtA4aqf&d+7#sgO-ZC)K_3k*QUNHBRjG)Sjl!eCOIO4b zEgxFd3TP$;*1qbV<}i}voqOu7yDa4T4D**fKE*Hyl}2DKNxe_sfTVRQ^S}UWeOAoV$GI`m*O?C%WlsAGnNkX!<>y&)EHy~%Vr_6h~?^y z(BVRop#mJpRevfJFv=kS?(T%}p+FEYrb8@#fY(>q27I`-X# zVW|O#;T9R>SRRUrqD-SzRa+EqAnoLM6}LU&S0<-r#qXkN&6Q<`@24!oFVFN2NK>{M=%oEJ?(aO9jl^ z>E{?wkfQ2%ih)(2Bz_LdPMWdlLowfo9K(FW2`DL5ttc=E_3v zcJ9IeDC>`gQ40Bcy8Yh#D-y}@+qm+JcW1K%sLGo*5CxEBrNv|6FX5&i?tDe=HWlXW z{e_vw@8O<26NG);{4^V%54)Kt3Z2~S*?1<)h62=4{K>3*XZoN<_l6Ar0Np;6k5ay; z{WglcPk_M>8vOxlImv$HOaLE-Q^WAqiJX)^6mk8)(0K;-hbj%zVZ6BkujUlTd`d__ z#0Ib9qVe)o^=~`*{t^WZYAWG5XTwK;f*AQPNy-2gnFE)_rtuVV(r=_)9GSLQ^kIJs=W=3Q(Wz%oRL=PcZ~k45$bUZ^o;d z)eoaWB{xlrtxA+fP{3C<0Vx!BXhJ0gs;iZ`JT)OGj0nh|w^|V@p+Nd6|j=a}MB48&R^MruiK@_(UaBF+;hn2csA9z5EIHJC+Rr%5Kf+s=4 zJEp&X%pi)@HvT^REdr%zY4%Q4){xsTNFqw%n5y!(8y*N?C&=II$lf zr&L}(&_t$S!iiH(znE2&Oq!)N>z&#exg@4S)XD7jWS-j9>8vK<i*xxuqpvWMmq5G{$Q#=E#zBRXMP@5 zmR%dRm;M#ElArp|iE4ODKjMXwJR-#a?VC`d?HHuGADo^;fwCrEZuZHP_Fmtn&x#q8 z?v(Oc3rB<)igvxKz~f_Ff0+RRMEO$ns)y=$bNuhe{{X#jMac0%IDB0DeN-St3j7NT zie>7RFm9l~y>j7~&;^F_yT4SR&WK^Rr&M1oyrZ-UISy~i(fEt501f6@x@`$v?dA{8Jl6_7drIC)2lzX)5r69GdakeQAr=$vE9Fawk~t@(Z`bLc|(ffRIyL>)G9pt?yV)@}>w z(S&6MP5#1>S@eyhDL_Qx2-o<6B;ln2S#{~_${IY@1s!tsheQr)`fJy`NO0vvjR;Pw z=LAd@RRFp*Jz%WVvyv@jJXNA)m@eq!ml6knw;cs^`@$p;R)LM3xceBHs15OxQmRprQl;YJga$BAG!D-~<4m&DTx` z>>vS3(NLw@mZe}axk80kI`M08%s@dyTOcaPc<1&F1XMFer&>g)`ATXLy+tzj&8S5I zb-G-=X%A2zR{B8}WW3C@{tfJMy1^lH!0FdkfdJnCW%sGcevn8H(0%wfGTaEv{8;*P zYkdN8?x9mqq$;P}g>o*MLkJj^1YVv;^T{9p1SY13h`KYJnDS&db0yyTMpW+CiL)zl!*~@bS>|`#}_(oMbbm zO+~$w)#R!lT?S0!LZl^}!=Wq~wvUxdbd3oKLT*ucr&=@-333!Us``o-UT}#FQNg9S zCm*SXlBgijfojl{`qHUra{vI8x;>r$00Y_VQ68S0*Fx_wKlXpN-KOlFvq$}j(>JT4 zW@GvOexfD+0Ne5LTpEAc{?h*d@QhW@Bdx$eAJ7lHuh<>9fm5=!%75_;K`x7(nm?ca z0O~1!^t}95zy7V=rfT2%(Ts0p^NyE=hsDI307%KhapBL^V8%Z+0oaoF$;U1)^<9|~ zhf4(^vi=pG=H*LN~$OTDhoEIf{U*nc{rnV1yyOFg680s<4GO)L`vgND}WKIN6=LUUPa;vPb1FD zesmc|^UAx&K{l6K7F@wC7}y0~VA!@pA(&Oj7DOfZ6~25MCaq}_>%5tu7GhR$LbgIv zCWkRBg%GNRJVKgg%@g8UpcE8V<;ioh!9gq^zhm}HA_=TX03+2AiWN#;$nfSU$d{$E z(DG&e>p%r&mQ%c}o3uOBeqPSNt;vW|JV4bzKs4f3i|rE7{r7(&v2WBy^_Yk-4K*`$ zgDltGbwucO=nlN2BPwwEc{dJp5lJybSEGlexw`Kh>ahf-Ynq~p2IY8wbnm}@O7ztB zHUi^O5+KMfX$_+^o2_>U$jYg$sxF8KRiP*W4Fy#k7vdd}l_?TbiqRQWbP0BQGKE-R zzp^5FA5~zigor6{-?|;$$No(EHecek7;>bcLM;_kEV_bC6CeWV?eqF8;mQ91r(?FN z5PQBt+k1LeK~Tz9!&OR0r@!1g+tQX-m^G*sfJ@`o}hIMzQ=$HNU0~$k6%bPM?h+Q%JLB^R&hij z>IZ}$T|AbqYHrjJ@2zv^K+PU)Y?_8*Id`W*yfyuEex3U>^&9XPyb-8nO2?HId~q`T8hPVqHf1E=BG`?VY@hyt(L`Ivfo z@sD+myT=Efe?iwfuSfteD3nG20K{qn0i`%RBHXg2ayC$hk#&k$W|RPNZ0HCM1I}MMHhx zUS8ZFE1Dwz0J(zy044xRjX@f>(1L^-4W&_QLV_K3(GII)>`JRzZ$n}T3+ zzUcY5E=I^rmEsJ$supBK0kl50d#Rr>W$YWJ`~j**`vPVnxBwjvTnR zNK$uhF6?c=oah?NCnZQgln^x|AQOoyKFN5S!hkKx@lb%|ip(@o6nBs{!V$!}X{|h< zBuap}38D}^)xBaPukrcxSU~Dt-9(vdIMT(Q`EdR^5hxW>$;K{Wy34%P=Dl%=g3C>( zBX^9gF#iC3NHET!LGchkAQ$^04>1yPP?FMsKm}{9M;m!X%oo}9PhcaBJ|6HOsZ<7` zvigDPVI#{!r+s;8XUw-o@|GNO`-dD75u75F1sE}BBE`_XQ}rFg_<`GB4Lj-G-u(6s z(~YxspLaV?X4`P4z?x|eAi>6#X{AxROr}XnsQG4@kqmx9Y!{V^N`w|rLhh&m1gmL{ zLfsAYj z-TF2CMRqspE8u^0yYt!mRvs?jHphXncD4@qII?Z{I8sZEJiw4pk@HM|gHWJHme_ct zu_Xa*?NHe9E>v6q!{h7vIsU6LJ`;Rdo8bQdd3!|RcVoUdvf=h@*!ZSRpJUqQKz9t& zZb)%HS}e#wSC6mFoXI{O7CsgvxR`jd%ZY`E+q2=$36RUW#2IE%0u&2P*z>zq2k2uO zKs%(Gfo5@c8n$!SO^QzSEt@gt8fv?X-5g2c|({06c3wD1ZnOX(X6e?2QDLrLD8)g2{PoAMlGo#t(O#u-X>r1Ml&H~ zWC`Y|lH{xyDvSbZg_v9}@UdWz3w#2B$I8I?Ncsh2)G$aX9sM-v(VbX1o$d&U?tG!H zlRM|+>O6&XWQpQJN+NT~n=L35x&eX>*Cd53tJNC88VXb1EX>Yw>!%Qnhs<}EmQU7j z6HJtZbv!i8C#@2NHZ)4DhJgqOQMf@93A|U9MO5&mxSj}^Xc_rYJyX||E#m4pOP+x! znL;4AbQWe>IOD`87$_r;w@)bgriz7&rE9^NM?W~DTg!QoF2L*MZ6Zp56e&3%;1H+G zNvT#xEfzwM6%C3%s}fM!ieRNlnP!v@z`peN zuODo}!R@`bVA^&Lz`-+0C&$|Hu#AInF7nI105l-ARz4Yf%ieC%@0WP{bG_ZQwBqf3 zr`!FbwRVO+CN%R;JiqF3XT%bjry&HJ=_o9T@__!-KdYbWpA+L>#$Wv>UEl2)@q44( zOl({Xd^{XOHU=kX;TfgH-V*OiIax^wQf2@UraeO(R6#7QDxeuCDZn!uQ64+H76<8J zexYGic6Ns#jQDxzR<QR4-i>CZjBOK9XCO9#wEKQE!K2>XJMI&h(9~T;P54rk z467NGw_S2M!zYUI`UD!TYYW%SwCQP(iSNGiS*QVpO*8gF`}NZOAwxyW+bsC>&?5b~ z{WUOGN&*Q=qPj7&s`&&iIKxi9y*`m36EG{fsG5a5IeIuKSP6QG%9|4-_~pl%w6c~6 zLMyYVqSXjuDPukm5EVAwUm^ll-YR*5VnAU@hVY|NLWRt*Y^w;BNyBI^stT^46RMK2 zJ^S~6HCkz6Vcr4a&ee0&a3$SjkKv_d=Da{*e2gRMZbzfeFTxEyQpr{VQVpTKKy+#jf*qZvOyw zdzpzYFK7P#7@KF>Hj(|ZtfoUSm@I%wpt>NBPd(Z0k8F3>yxoP|{=?bvHlEb)2WjlP z77iX9vrRf;Vu?zLK_MiVl+cPt-QVbo^!3?)r*DAW&F+rPvPps3n@?wK`*&<&93d_= z+g3gdv*O|69oc5^OjpJ8cxpgRKM=+kSUZ6H)rQapY2f+xV`@Ibj&3RXOW`U&#cs%qj(!#nZx}dj5rX?>(@{9PYe1!_=8v3 zrT+lYz#J{YJ|nhyf8^oNv*sL{eoEM(So?AQsq-i3`{Dqq?4a@!0=}Fh;x}hI*ceJ{ zEkEf7_VOW(BeUU+xn8@|Y57Eb`E^lQYJ+ABe`x)#=kRaMawL=?IbA9dQ%&lP0p27< z4bfx>2sQrzYk^KwGhU@(fQE=w*;FziuOh`VjSRAd-f&4EQO!e;N}?^f2q*~<&4+$5GEgRnAlZC%ZrkmfGSQYAp@qzwTrs_^q@%6U-C zSMfn_pku-=vdl9E%Bh-twKj~DlIE>dsVJ%Hs>*873ix!Fa{Hm3$QIo?SX^68K{r2& zW{&-EgLhW;rB<4TDdhn^Y#EC1YN<|{@P*V?BC5uvFaS%W1Ppg--Zk((9)+8ZP8>*~@_0YGR`6-{obuDE5% zkDA2RS1RNw(RdVpFc_>o;835ZRaP}(V4dHHCDP zpEsCc{H0ocSwNKuN(cV{q-3_?=Nc8=JRC90OtSt;e7`?WG>{e*&ddQyenlwIiCTe{ zt-yOFUeJ};IrsiERN(<6DRo`d`Ud_qf+lhf%3L;qhyh;b$VA)ebg1PPiU}gc3h~P- zL@ipta76n-6O<|u#AH(6#zkVuE-*}@$a6lAgYxBBFN($~e{0p1p7z zM4|T?#?gTy!8xoJD%cQ19v-t9zMN8r3J5Du7;~Qfobp5vK?P+K5(09jjz^&S#!*w1 zJR8@pnjn-4ik9oIrceN;Y(t(FZ*2?uC>DKK`G6L?03Y#Q$tZ{ZDY9|@0MBIf_Eu#v z{Q`eTr~d$P$Kf%c9n|dgt?;G$tGfvPe;Wt>y?Z6U`RTE@{{VE7KcGM941@Y|_)uy8 z0IIKNkN*H;BCnKkyhsh)IAbs6PZO6Yg?ude4v-`2ypngOhP{4aD$(f6_ojSdmITvY zfzK#IBl9N@URKLUw_dvuUdl zLJ|lk#p;@#bp8NIpa=>NJhc95Va(E@@p7*d{4bm^2sI>EpYhW{5G7`OJS%T#YL%lRUrr|0v=IaX%6{~7`ACr0Ag$HF(COp`hALt}Py+pj zT)7AwWy9=s;dmk$Y0bC+o}8jeC`Kgy8qJ~nRK~`K^Uo?qWNxA&T7fdlg4;+Wet2_D z6G1`_ZF8f7jii1D;)8rS@5psM+3jU;fPbRIaK0XVsw4M=)l!I9P;!sJ{7@wPIPb}% zzxHdjm=rUA<~(0D44jL=2P`upAWMno>8gQX{)_qY_vT;yUiL2paL}ss8}C zNB$%K0I?i9(_L~L5pSWrp$ICYh_T=fiU`+;X;wwZ+v#>e=#T(HJw4EtaH^w?(Gm_+ z$PEHIxMN;uh9`*c=&MC0kurXocOK~7$#d6@Mqv3WBh0{nf~o}zggl8<&_xnLTDnx% zHs|b4Sc_IfKUocJ$6UKOU+#brxT3QTX}=Te+aFoGWXNVhXmoQ4tb? z^kJfr2O_VkX2>jQtyT*j1N`6ne!oDC(7{9G{ZhPEh+gkIb@%3lVpO_*c&$0D&lq5m zg1nUz%Svf=1hb=bi=q#IAoTKsboIek8FUX=QA_q61YY1|s7_U0(!`nBDQ%lLVn)mowXu~AEL4+{ZKS#;4 zVJdfSXlMe21Et<9Ekblk_ZS|t0=WRloGwi_+9W{;$Oy&-`Tsl@Z-9@rQ5q^Jn~64HU`a! z{+kDWbTgcDFYWHgRLpmgGEpAO{{Tea(%a$}>N{!Jd*Sf|18eSo!@-M%j1JL*J{Hs3 zSW-*miTaO}Z0$d}D{cNg+z{sZ-x!C@QW(I_aHF ze2%c)Py`(R0F0P@)02sdiHcsjiI)Q*)7ODnK!Cx9oMDT3nI!Sk0kg`I%7RfX1fT&e zXaHf5RuMx34O9SDr3VsLppunS*;ym}B(xDG(*SY=~;r`LjmARj1R z3D>4{g}UOIa5;K;#)w^M>P?d*U^7To0Z|z!tSGQhXrx$6br#}HpRQz(r}o7PEtpd; zww%&TlHO9F)}n|NTA$2Nm?%<8w5LCBGjcOntdWxUL+`v$=+|gDQvw(R^cJ}unQ38} zkPYPof&=nw`n&>0V1UqOywGr=v|6b`DypX{7FR)~ks(YFsR=B(8zV9V%i0QN^Ep8o zF=!sI0Z>4TS`%TC&}0Q&5&%@NAOlrnRc=0r`AFSMBd%fE&M3JQvqb_3_o(^=URU7- zVWAwe>&^cF7E>`HLOLpo3##x%9*7_e15%QL0JPy)jp5|X zp)|`!F6JZxe~_qZ01#=8JujukZf&aCfGG-1=-CENH(g>Um?6wiqbDQl=@`w7R3qvN zeqGdyW`;QP;uk~n75@Oyf+buk6GlcMVPiOy$Q%I;HXh9Ok42W%jU=)e$s2$frkJ0W zNnUx4fRXsXWo>&eXJMJ;mV8a49|~+aP8@|)iLwd^DB?a3 zyVu@6)9=rEyMMl2uaAke?cLz*U9WAQ8x)!GKW`TrX|SXwbv_wN0vVlxM^nRaMO7SH zm{Uv+Zw1&hGq5JeY861vUZHA7(=H&{eo|Z_lAu5WBD)|&Bm$%;M%Fiz3U%=CQWP;z z^?EhXkwF~kFhG=3lMPpiseWQN{kcJvgRv#lc{1dnIJ|Y9er90ZY$fh~%Na6k36|25 z0|$J@lgQhRha!M;wI-KW1yNe)f;rNBqdT}uDQnlvSrT_;bgd1R!OaNLv8rF6I&y9e z5J@e;C}%K0jP>p#-O#^iYIAkr_=N;Q%h3b^iUCfOue3zY5IRhZD1x0^NVrB)Q~jhC zp)Sin6&?z;2Lv_S$@u6NBqJk=zXa*x#M3Gi%&~1wq$i+gW?57cDx;m8QF6L)N+6V5 z)Kzlx%Hj&NhA!;z-83LiM-$9S0(Yz_s$9hcF4oViYB_?^s9EAMO zM_FV7=lf-rqzP48Jk|Xs{)s*>eyh8GXTk38Wo=!N-0U2DKlqn@S8pCeekpVBlk694v0wlMZn{?&c(* z?qUWB;Q)$~M1603H27uQzl7b_?B3`18?m-N!|Z;|+3>I=!`ZMf@Ub!f0B%t)?qf|X zqG{%s)RmW-$1`f%D53E1%hWDKsUidMWArW*(@ixHb71D;TZXpH-I;i;`d9q{d=dRJ z_CCiqW%dTa+r90V0}Somz1mwo7S)R;)&Sp|Wt$d4aOGKfRLY=D9(GC*B?tgXM6!gG z3IGKFlp-Jk)J3p|UR<~wlv$xDT#?s;UhGqxa;m7-)l^B&NwYptrv-6MG}v{_^C=Kn z4*`EV@yr2wgn&u~H!DsbP!b*2b?)@Da^VT3ED$0#b{aPhFji1OyJb&ZYE;3x7@phr%tQ3*`|rOESO;X{!G`gh-&MJxy_O6i`h0s_Gl`ZA}bLL-E< zG7ze2nVY>@v~3}+Lg|yy21o((P$;BQh%TnpWo(j<>>=)vm#g}YRC}_Mc|4ndrJCZN zbqQ_uL}y{iXpD$j4=<;m4im{c%e;~@rw);Qt!-iMB710yPqi$tJ(rc;RcTP=z(H7U z0+T>UaEP21!2Lm3m0982PrD4EIZy@72Qfq*tV_jYl)nxM_UA}|5ZzTzt@)FvMiF$N zee~!A!3RjOm9=}YV34c)i+uOSX zzx~+k?Xw?g!JiKYwq)5bW$i7Rd88s)u>sMd`tZ@c9z}V zZt3h>S9?AhW8z|C;O(0x9QgSCnSt}1J)&78IFlS8Sy2@nynUMhnb=n^Xz2aF-R{Qk zM`Z22h1>m|vUaCr_J$57&$R4YUJRJnIGA{n%`E;I!2)2cLxhajIQW<*DkhRO;_UlQ9QYef%{n;C3?-1l%X1~np~ zP%o8>*|<5i!|^eI0u7nikO<5PY|LZ;>Q^3MC>J#+(urg!OEf?PsuD%q1vw5PfDoKj z9K@Fdmo#Um5S%$dD!YT^?0r*C3QTN2%3-aZgaa8K_^T^2q~9@mUX>uQH5^H0gn?MP zP_@e?6}ZC$scw0Y?^<28LPQ`pNi9>ATiKH0lm;lE$=%G3WH#-%$ZaADTc0)5yM<9@ zU;qk=5f-Wm1f|#+kS!dGD{-!ANOJ-}ek{(+;gJP67-XFF(R1lCNGU=kK5M3E6gBk8 zvQ*xjM^r|wVJg7{R6O)#)7L94p^m-Cf2&bSF_iS{p$)?#b>_wY01!lgD#1Xq)zL}b z433JZP^u(M#G#s0Ku|FNP!_JFAfvOxS(aB|0+tF@fzbk&6v`%P(EzJkQsc}~n5+~M z!PZ=VpR`E;w_P+*P*o7sy-RR-P)8l|e`S=wAwb|Io`|CL_l_*`6RHb<)XbYF%Eb`Y zIm*W{DO##~YZEl0VUhN5QF3cUgABp0W9-`MrTw3#yqlvgle$FDDlr6|(k50;fApeM zq^-|@+qP_ZCfuG+*u|20g36AP&=oGE zu!>`0ezp}`RG}8uyu9Mq_GF{VjM>lW?nE4gyoj)#He9m??5q8OkLpEWv@gG*HF} z=E0Jvo}oa?BJo#KtVgaw$J>RL#gU8iUI-yX{@`g#ZmX^Me>Tnq3zr-4&xZ&pRu3V4 zeJbST=AmEd0 zxm_}R{FFs+hGq`ATb^q~f*_*&p_mpd#22o$-3VifcelJRSLIXz?4p^Jc;t8p0%J`X zl&#XY&g&CNz^GEKQM)k(&8(Cf36lUdjv4Fes&c zR1}X^-?T{vsiUSr^CT2eb)E6jYC692=n7}$NJ`0S!i;o^ zhbOm}4LKhsRiF_T9B%AA5eyW!uUZ~ecu?+#ueVKT$gH08CqQI9bN7j3P_X{>UO9Wi z1J{QH^#bhVQ3$a+!&eVgO)ag~@a7~C0S|9Q>(<(k9YVhI3xqX6L{V6T8^Ed?04tJZ z?vxo6avEOEz<&uA2uhSwZcXXLHKJD2P$Gb!ohY8#Wf!_if@_s7ioA}1ae)aZdW3|0 zm)_$`RtcmVSh@4NG)a8Ylw6k}%#xZVtx^NFdBufm6#%Le#1ZuJbc7D_m++J{t1r6J z?^T9Vud*~0OM(Dte6GhU^AVR7V4EE4nv||@a`j;qyhqdzF{og^jSvP!hdSg32jHPv z3f0G&UaLc5td)RMmuFT46g-lQ7#P=nZ#7k;Fha{fw!U$UmCO!O z)Ks6j4ms;~RH`Kwp+kmt;DunTg=5d?I0lA~hbFkfTurQAnmhKAgC8%h6h!R@>J;OXWm*tYb8@0)}NG`^1D4J}Q8Z=88(v zPEc^S0 z^+)nxRGUJ7z0*E^AFK|_!ksA@=*^@Q{*5C#zxuy!=Tyr70Fm=785bn`G*~W#B9=v5 z>F)XzjQN32!e5}T01AkO76#;L@HCxmj6xIX2C9j5OKo}MGsux=73g#pU zyB8yNmVMTWawA;Ei}vNpLJg3XO;^b^Z}J1UXw20L>K})Y2uJ(VJVT{gKyQW*RH@gVNt`U#SlQmZ{Hgnm8zU&IzMNVB&EDF?Wnf-Vqs8*-b zEAa9qD;Ws+L6;wh;K{m80gUAB90kNvA8As6XcCBq)zuSCV?F7Q`$dX|Z3rasrIIwn zB!HD&GB@W-Cm7?(M)A?A2P!!F65s<9LlH7`Gt_zo7Px-PSmgF~vtOClE%n}L}0*IQW!lyzr$1{JYoFb+! z2_dQb*l$@vsR(GPQc%M)kj2Z6ZY}3CqE&~xBC1KNjjcSh?61530O{O^^r!IE0RZ++ z2S523OZmKcy<#f$XEo_t+B_frorQl&pAAM`k+XUJ%!K}J&123MIun+jfj#LSV;uhg zy@=tC@sHv;dS?)0&^B2KVkRW5 zQBZJ11zaLp(TQ4g%zZiW(%n(J$UB_*fzO&{4|I+}Tcx&MO$aGqIuCY#D_zay1=JxY zfcs=Q2q{$Lf+!^lw@lvY=}^j*6@#)^CY0+al~mD>O`sfrTEIy~ucaV~trC{^`uQ`u zsv{=%i_ZEjQiCB#OXYnl=W2Z*>)WS(P(?-fpTA#gkv&o9AFfDZcZWQgb42$%m@ErS zmzPGKNoXRZV{oajrySL^j)C4#z1{B+{{ZqQX>)WqL?uW-&NB)-IiUa=u&d%7g{{ZV=BhupW+UWGSafe6#6#E5%;j}*Ns1+eaP#SPH zqB2@H>#n?`5h+ko>uA<4sYqvSbZCOjl53}5%k=VScte5oyr*Da!qYFhLDI zp37(}QUC*p4wPk%Kjg8lHU_`@7EZmAHcdHkdJQy4!)gBj&L#f<3*_Fr^A(@I4BCHDX-6SCnDtmg*>73z`a^r&#ZO1!|xib0+q zg{_NF-VKw^Ov6yu<(^@6WqDTQD0^Pj%Q~9|LXNFQ=k(NLhft)j-F6~oxaya2p(Q@q zW`2%`g?dCWWrCo`b_6`Q94-FlbR|b*+u@AiYiLv;Ak3* zRb4biv?Mm;RjLpagk3_tV!b==61S+3H(<0yzyJ{U48RMufC=uR?x+MN>W@-~j+7a~ z+*+~r6yRHg4uQZNkSDlHyR;=j#j8-`in*yv8bqvF-#ExeK7qdvTf8gNaMfK&P$3y| z;)L?ftH3KPJ><58>uk92wc!&)T~H$&xda?Eg2{whxgWSUnH}pRRJUuIE7|kmR!B(a zPc!M(aMeej6Tm6W3%EB(I4uGvKg*!ciEPvyF&a4Jd()yfbOo{pB7l&OV^+!q%rSBF zR20Zm3owQOtJ3LF$2`pgaIy+DQ}M2TX$7fVRZtQiS8G434vbcN%Albl$eXJ`K5En# z$w^4#&p47(H0~t~0+vvSQCxV12|#Gkzsn$$6k<16k{2>cdL44>J=5$d`_bO+>-S>} zZ%x~swXp0vvVuwd+*~#oDrMf2eN%0QOXyP?H<>d#$qVxB_W#v2f1xyH*^yzvL5kak}7)jD0U*;R!%V zKmbZ40R*Bzi6{X800aR5MvlV%nZ6(PXTwi|9}hdN+1oUmIN3YBuwrd8%OH^A?LW0A z?qW;;3Q3}csg=l%{%-;RnbxdPNnpXt5Q2%5$DGE*IJMPLE*$Q|Fk5ue18b0m$*l1C zjV2X|K&9_}K9D7Rfn`RiPJ`AIw*~V0`KY;urBN@SrNAyz%gIh9cOI>;edbc#EQRj0 zHRsCpFm8np#0nIna`c9*sY*L!-^T`cc?7Df(}&`aPRw+(O|O?Ek=G!cb%-FT67k76 zemGDyKI(#rc00+(IzR~{LQ2`REzStQPv=jdZB&DGQc)Y>w0uT`ufjOwxK$Hzj!8`WhmRg_$vu3n3prw;6@^n&~fK75tvZ90xOdy~* zDOFWYSqkaO0uceE$`3jhcV(}X5b8AZ;oh!*0D5U~8R~A{d?67jK~*WLK75!8zC;R& zh^!47=iCd^gbGEwamn zkBfvsrlJ7;+>)wALPg}9?mFA9OmqHt9sBrc-;ag;xwQ9hzx~+l9`1Ig&51S~@@>05 zB$zXqCL?-WS*4c@f@LYYH~63Kf5-m7-3DFLFZRtWz=F31RbxY0ZY*Q(YvbqXL*UQq zC$M&|$?yLFb$dS_YQ@3ClV#*#ri=`u{E39HJB^DX+s{*-?d zz5`FUceCN99?{=k zSW5!N-3(kqtW{y>NHM!>uwkFJdBZPJf9d5VfYhs7`)*SuO>Hw_07uGyxk?`iAN2(! zpaJp*TAo(XhmW&kV(fcn&yBI|+dT7NhX-iG#FlN@gxFI7Ffx;Im`4C{CY;IQ z0%_--VTXl=0-5KSq_}d1B$CJil4xV0zAN2!jK}!d^UL^kk8spv2Y4bOr>*YdFJ=2L zhd&K_#qnRh{onX~-Cc_xZ0&CF?fX8-{{Wfr=EOTL4n8chO^-R1M6$^#D|AIbK|gYT zqhHfEcYjPj2K&9-zRTFQc{_6#V%fH?@om!K$T9Yg(4PuJizM^P7j{{!XClIp>jU~c z{)#2;Z+9m6{{Y|q$|JlTzlSgVn%TC@04LdYIl!Cuh8*&fDGCUj1v3&D1RnhYjwbK+ zWJXYK1>=jiZ6B+NxlB<+2G8-qXQF~WV{+F52c7ba@?_9hFry6}Z^uYTWmEwT0;8Ww z{vj0~DwMKQg6Bk5eniBFu}8F_9oep_!l5)3+rMiyp&uw2k`{^#)zZux_FznvSJrU~>mAE(kyo>f`#lul||$d;m|E407Id<`vCGLI1O znYdXB5?Isf40<|$``Ui1RKcWV)Qeq;)(Ckq>nKr5@6af(_jxj^ja%xf*{#!%XeB{Aqgcygjs+9tr08+XQXh}-Pouk7>B**Q5`?xb9ITtsydvF zxe76;Mna^gC$qLr(e19$!0dj;*fy@!?Om#QFt&Y%W5J&v6Bic}aV{K(a2?QQC}to_ zsyu%G0O2pf4*vXc@1JM)8{yw$?Om_hn|{%QgO87cgFYtDu*r!ql;Y#!2~4tyK~yA# zx+;BZ{)PVlrT+lKZ_}4$c6WOF@v!XO>iCn7g@?557~6Ip9yZU}__Inp63IB-CP|4x z91>VOYV8|E7$L7wu(@XkHg8KaDpN=w*#7`C>6o4j;K{w$sZY`W0Q7kHjqzXp8{Z#| zXCJy<*T(&=s}Hee2M=x9uqK*P5ePEx%0o^5NXTR8+u(=j)8H?_e#_YQ4(E3pvL^t^ zKsLYH_G~;c{{R)+wk#ZNzHCVVS;jQ-8N$rr>O%yND6lZF@MV_IhlL=M z21#WJEV4^3?6QssK=kHew(6rZQ6DnMIO>lad`xUiNhYC877jG`WtB#%%sc6ucd7nNvYQu)=}$Z}dCMYJ-m%crqm zmsL-4t1Am-udQ-|xDRqKlrwUefvBDc-31U9<&s>6YkE>YY!cPd+3;O-&NN(=Yg*}T zIkY^L(6CzN{G~lfxE{x!L44)7c{0r4%2A~R*#Z=2Oqex?6ASi2(Gd!O9^c~RD7Bni z=(&e#dC@cBRzPCHkkekMo}Q~%C=`eNvKm7}8**kdEyZ@*zkdq5f$=Z1Hjc{gw{^QC zxAtwT3Va#P-LYWf;z}nQrfDae4W>zn-l#6>BhaVoGx{@jX4iw-o%;PeVjYic!;=?m z$L_?$f98pjY)P>8SsGae>dFAN>SR8Qh*Hj=zN0LZ@_q(0Awd$9p5dR0)?DQ_r9h0B zc(|BV15HE-aPU}y1AVdx&TXdxEqe)tvA(X^&$&mV8UtuN3=!!Ol$b$0wrPR!Xm z6TjOo1~mPX+q)hP9t`-qM(H?mV;Lm}6MA6gcS5C92>9su>F_7N{{W|s{{VKUa6A3k zJ5IxovF$k0c7JH%;ZG(9Xl(LNFu}!>7HI|?(@Zy2CO1gz?E6(1!K(RcW4t)z+PJ@O zjMBu^z!#VqfWgK29vU+2(Fvf{4@_*Zxp3>JjzqGopc<#!&Ax6S0R`mC#g@zoYJUpt z8$zILd;VjZ0`11j9vyw5MUht=*!xrL0I-ONARODP4sD)7e#;Gixb*f2hP-+ma)FUn z=yW#og&3*0;XYmFs6(c@blrUf3(^j{(iAr9ufAHwVXuAp9F3MtIzV&NmA&C8d^)$O zv@k%ot68XTmVDs*o(Nir^bKg0l}yDn0;N$YYrAqi(O56KD8W`m^q5X#VlR*}GzVKFG!K86`7qc#=pM z%mE;jki9@Q5#XU&Wf}^A^`P@Vi2X-!yMG_L-w?Zv-W&``u;=W~@pf+0Jj#MxJT0RS zdSfs^0U4+u-mzRtDXxmBt2$UdPGGa=^(>;3y2JqP3Du+C5Po4@U~SOV%r*Ow5m)}tpS0S@-MmEm{`SxRA+#F9hx z<@bOU0eI*Wj4L^yQ8g>4ro3R3iU7jr>7S%ZCdyijsQK7ZiF#=bVOK)@srL;?Pee^@ znel2eP%@E`^j=$Hh++LX<7Kamtw^wI@Uyl5?B%KUTT0hALdp=K{n5gvE9luqfGzsd;-$pL;~@i0YmQi}ak z$`Mdi6c0?#)9|nfM4%%T*U1#vu;$hXB&Z}IPDr$)s(Bkh69C^e11J)x5T3gFfRLOA zcUB03&2;n#VebYZ#$(a7f+48NJt?P`E-)1|2u02P+v}1-N`X^T*OH9$i-LYT@2Z7z zhl;98_gf-Cyh@;5Y42Z13EgWs*7dq-mb?m4+*r}M53quV_UY*k@$94^69gfOsatw! z8L2BNC=PEL{ z1O_yh!e+Xaty|^MFJcTEp+U~H$ubq^Kp={DSAld6`L0=oCQ4hFeQdQ@C{a8h zBU+X&!IJ#eDP=_}K}CBT=6EMKC^A0%{{Sm8OsET&UvW@}$}?JDufj&h<_?}-Z$YV~ zW`&$PSA`4GjFd~cMJ&SHIm@&T{bhN;sSk}hYt z5ofwosiAU+4G0N!q|_DyD!`#ST~_VI^(Y)e0Raf0QBeA6{6W0ph-iMCYwu$OQUO&w z51`!^-PIM2Uph=9zf9|m}C=!FS5cj3S9eUbb=>NX2aLYu(IAo>Wj((g*^zhIQiQ#2!xdrc)Oya z`t$qCzK%2H!ICT>5}g1X;jvNY z*IGdo0%(L}3wr59dNmdq6BHnZLYCL@PrYiErT)-5Yv`~*|&+lla zV(c_WZXQ}e6v`G-rHwk{Z@e-t5k*CpG|w;M9!eIprD~mC8D+CMr{{zbNC*D_6?8Z9 zbk&SgDATXyIl^f}DO-mxctI2dm}H?5E9ZRRiGwlHrq>i3&!F zfAG<=(g>(J6hfYzBuk5eax3WJ`Du7$mO%R3%jrwRJ%aAo`mYxu7TLiSgOLTVUV3td zt_NLZ5VYM#K|-Q|@`@_0y7|<>5JHCtwM4e1ArVPK5d5AJdwRl@0vrXQK}@O~`xOuXrBoSg z1B>;N=VB!)A`mD`vw~}ux6UbOLm!bWI`*^-#fel<2NbzW@pfc~mDNV^36Re%>n=*r zMPS^W2(pXimrVjYAOO=d^hID9_&|Vy02Mms2_TB`SBaZ>&81ZWuU#ooLuX<{6jcD5 zgIE6m6QXD8jKtZHG(6uC==hTLRCTB&V$u0i?Q~73) z!V8Cbuoq4rcz_57k5w5jokAkR2{1w&IN_&B1WxFA7NB-DT=akhQblrA>g}#j!2~D- z<*uWY8^E%jUrx9|5xNjmqNBU&&{nDt-7S2*uV`walTXYUHy#)3($GaERZEPAr`-K) z=vIKSF7s7ARFT=jm?I+u1Sjv9^tu9&9;=7B9*DJ7Bw4piBn$B;Z#%zH3LmsPU#1BfJ9PrB#w4(oqS#K zt_Or+*RkwX(~GxO2+MZ_5eA|Q8it*8U%CBYezCqRezQI%_Md;-B4h9W0(M1$e&;wXOCi~gvaJ~Vy zZCKlGHYPsNiB))&)x2u0%}#l}jj|aFEjP^51@MZVHDFj9GSiGBF_5IRBF&`x$x;HMltc_X@~OG1M#!c`&jX_do5pXbWvk3M)0MoI#&T@n1S>?y z=4jzTd1)B#?uAtfR>kX>pt6E8APCSP3ZF4t%l`n0H~IlZ5q%j*wSqqK|{Ehb4xN!FaRJq)XETeVreH5 zx@e>ynEwE7LwE<_nCW<0+h#pGF3XFwRTSaUOy)o&3AD87Vi|eS@DI6i_cysaE+#e! z9iiH?$+Y6kLErtnP$m*gKv0B$2mvfr2LNv2U}53m zVM!}WB$Nq2-3ow9?J8W2{{V7XmSRc-y$Li8o`qOZ5?Iu4RW5U1KS+CLtzADgXhC@hXil z{{U@KR%OK!%19{1K}RSQxpfVyD^enCP>KhMON`Vh(MJU#Nm5D3!0`aZ*@>s~%YwuE zM;{j z7F5c$71cp4@9PjL0=EMu$Ov)t=MMo|qD>?IOlMI*X})k9nO0_*Nlpj>7foubmP%GQ zn3EMObsqP>Nby*kLIRgNpa5^?UZEW<+tJ6H8ekOxB%sj&MIP=Nh>?_L;k5MAs->aa z5oWmzUO7wu019$KAbQn;vML<1JY%)p`tPKjm4!cN>==g=ZN&y$Nu`+o0LukI25E9| z?PDERzJ2Y%>}{HDn`gurn|?H=Pz1ouhN^U;rRhLvQ1KMcKo@K)ATL)8k@d z<6_M;__(u8H29MjGn;Q00aS!x;wXqCA}V)95CG^eQJ)y3-EfE!WFsUbSIM4~5gWj{ z27z~aBKKMq4;Wp@Yh^$9!E@*MUdEbf05b+)18(QTJclh*DiCs}Xc4HtY@LneZAsw& z098?>J>Y36YY@c+j)|afO(In$DhdSvAabPuv7oxtD4?Ajw~%wo>1ALo!Oxt3JXCL# zAj+o8LW-Hwnd|L(tf4_`q;aRhQxKBIebsFdS5%dM05aX{KG8TnihC@+C(~Xj8+csIQLDn9mkVjnjM-(UV#TlaVb(jOrGI+`!%H?SnF~1&VgMWg zj}2z+uH2lR{?gh~z)pNLdMKhY1V#V^L$v!?AN_dkP8AL#^Pwn={%I8d0A4@BrprAv zfiMHK_N1@=c~Z9; zR<=qahTiA?-9TO6IC#s1YM}f*T#weJ$R^x_#b5F;^X9zQ!rJin2;PyE1hdLP3C4h+ zLzpROef#fD8GXBaf4#@6Av)5s(mIYG#P0N9 zCiM7Nk|3+8s6HZ~xvr(X~;|WC3zrNCZqk zR21vD9~nMbcAn3jO7Ct23Qd?T6de!;A}>zYv(L@}(x!*beL&Y&SkHrPv;qFs_!jwr zFQAJ_@(jF&INPOWAezdAY62No%&RFGgmFO*h^`X8t~jH|W%hrIorR760H0vvVVQ&P zOash-5=eI%AXFLtlVkXW-L0WN^K_Ubph<{lshWy78W(T{>BqsUcjzJkAhnyHGv%7p zuVC8gKQ_-;Ij}Vhq_%n=D=y)0s{&M3QY;ztN0#(JT!3N=D&)W>uF9EZADO}LFJbK@ z93IfXDih`ba!H8_!zV|ib$mUqWyL$#SokvomL$F<&FDy$%E?%?7Tq+EM@n8K2hQXU zt!;X+u_*o2)lV=%_WW^ONMeUl^98LAUc4F7HT}?Ae5hpw0ZX7Lr#zVJ)1?xUNjW$m z%8HcGpyR?4kbwve1&eNgh1Jzi6ZNpCHt7&pSoCgUGJJcFkuomVfZTHWuBK<86Ansm zrRv&R=KRZ2Otn*aL3DhyuI{nZ_lRYc0;%_yU4Yj5#=p2m?nthHka%%L-ark|L4zA- z)$jSTGY08q)1#;UxcdzlX$JhyF*W|s zkILV`VH{81VgPVd)Xa%nGb)%4FfxRt$t_n|fmIeIq8O0@{h_;#Y^QWEabX~53z_@2 zQp}Cyi|-UMzulv`^uCtK5;y}Aj27ywa`7UQX8}UiE@{PV3ZeyU*+q2-<2c7qI#T{x zHkbB*l+wZp1E6k&{{W2{k33?TLmmZet_fdGF{k>GPHY8bdaF= zEnt*JF-TNtQ~Q7_N_d7r6(|{+v}qxjLuv^RXU4SOrD^6f$psQC_hwv(L13k>53&{{D@RTk z@~6$b0w6X4+j+n6iAG^4=Gs6i!GKbzasXJ}ghuJ?h=BfGm4X<5|yElzzt`#hRErhW#-&4 z!};|+zze9Ip-`3~5GYOs?MBYEg+4sSU_`(Q5J|AfYn$t&bS!?^?A@4u&)YDiE~zxC zp$ceLfgY8Q&h4H0?2Va58UFxLFaRWzAPV7*x={eCL~l|*x}GvPUHrW)v(dBTViCEA zS!0ka#e^E8>^U<1{qmvYgR=XSdn;e59!@L~Wsn4rLMO*wNeIm|;Y{{U?t5PLTZ{{T4?;$ljv z{nR4qM6;xHoKJ}Or0(Es>Lx%XM=DSwXEo7QKO5Mc&+VSqGEFYeHp{clM)o!!GJ*+G zhGZb_rPLbA&E9^)?k8k+RJeG!_M9GR8Q;k(+sRT%o#vBGB zANyQ$Sn+VS4VX1w?^TsM&OwMLpB$P>>Ai`ycb~TA-G z>?4DVh-HyLS)QaRHUX7}T2vTy>PVV?eY36)(piiYmrj z$h)_&YhAQC^jO6pbJX+5acDPPzwb8IW!mtt{{X~zfS{r{05jG26i>|I<8Mw9yT?@E zHOj5xpoiPrZ|-)MI+mBh2vh+{;I>qzL*Ae+#40%D`4hjG( zR2C|2#py`ua%}*hmCf9omG_p%l12Fkv}KnN(LB`-72`1;k!a5?X3MPYGGXo8HZIAI z1k&OH15+Y0AR@j-gaOzd+w8n<$lEb?dF3KPOxSah5QPX8Spz6v@s9aRv<=iH#qP$8 zZA5A`bbj%6UKefbGfTNB+Hiq5Gn7&#MGWg0H=fp!WA#Q9K z=V!!XPwCb`Kk+~0Ip?65U5Zg=%zeDtzOan!B~pYGHtS9iTSm``vSUw!jUkg04DOjr z5>$dw$+H3dz&pk&1!}abk>}{g&p3~3_RGUP&&qv&oryLQ%z}QBPL7O#i^!T zxAMgBKmF(><%*g5^9=t0F11=8E=#NIyGB08wBYTV9xg7;v~1G}PZJzRV{_~YJw3tAz<$G9xw2 zaSYgVc!bL>LBpGVR6-a^pwUC3DkBI(_K8(+p%8*8k337Dbs#a}`gk4lsV~qx+?$s2!A&snCv%`{;zu z%8sU#E*^+7M?&zX#+Fc<+r%Ma!C6s2WuY3P#D1ByX`g&0O!6+%k^DmI2N;GV8A_AE zy?OYHGDjM1poK&M=|SNEyi)nHI!8@AP%Hv9O6qzS)-pRta7u#c4p-GIfuJa;zM|Z1 z-`Z5~R1E7QtH*P$y-e*S6eO@K;SN=G;J2hBv=E#EgaoT_1BVFdU+QIb_B`&_&M}{A z3sMyTMSWPS`FX{K94E|lgK+mAN<~0H8C-ODG2B31YJH(Zv_RzL?5FOQNK<2qmq5cp z3YyeWNKqXG?Lp=!btKe!G9`<7FZFQ9h<~E+!*|t10iM8Y5?D%N-n3Lg& zWeVeUMAHT~CDD`t+1~X0cl*d%)NFY4W30)C_5`nEvTR!> z$4>4B7!2Pt2Rgk#bme$R;;{gcQiQOfbObm$0M-vfA9ZDybe7&<3z8O&2v869l8TbF zF(wc%Lsbf%t`8j;A&8ht`;y9k+yjmsC>3-}f2U$vLzZZbHEDZ7+p43xrted_2zCR7 zy;i4amX7rVqmVapF0VugSgK$8)aSaT8SEV{wy4P?f@J^+fIHbGcr9F`nma~Bw8Z!& zx`Gh9l_<(d`c@%`{ldeQzQd7xp}-yKx1h_T@O}%dOSQ^WC|%VGXd1wma8>*-p`*3S zhBv3h5{d^Pm7oajDY~jWk5%qJaQo}=Beu4F!0sn^J4?JBp|s**;NgvvXU4?Bmw1VH zrp1<7q}>H3CwNUTl}G!%=zfzwq-5W@*}e7sK5pdq(eB6l(?AKi27sw zEPjAK5`LXKGh*BJzRuaZ)!%W4hl#Xyzi42|jy7GOOD_1p6U*`msk-O@Yx#TJp5ymV z;oo9xz25FuVQd|P*;_1w4op3dXT!pq5J@N-*po{rB$47JO=bsA+sib*5T!zze~|%x zs7TRf5%Mn__^)m8E$l2Bs=(PrsGyNuU=RIDgxXjT*2#S%!M+~ZJUmm0i9p521^4Qj zL$M~2c=rw+Y`z(MB1vVGOC}tfvSG zya+`nC9-j&F+>40haouy^yGkfFEJi9%gg%b!t5T<#E(70L(A!SzvmH`%zqvo;(C<7hTRW<=uq#)4&Dv@eN=y(9M zb8F<_DwZ_HP&zkRhV8Lgkt!x20!gv2;W97~Y(;DU`Mm{fXaiC-{lLp0X8}_?c&qbT zs>={2CSZs{Q~Zz=QT^Oz88R5lkmY?*?-7|THjM#bVj^syih_rDTZ*zKR%C!oLRW#M zE7zOGgvw<@y-MUmcu6cM07fpIW9a(F4qim8h74uQ`BK$!~p+^aEeB}hQ_)e2d4DwX3) zuy99~L}k%PFL3hK19jQrFFwgC%!y(FZ1u1sUSvaW>&RY~z8pnVHBm_)6ZTA-JjgW=%hUJ^-p zJekgb`E#YQngMqt8RP^Ox$5uio0QCO00Jt8jJUJEMWncl2vj84CE9}}Q$`ny-axA` zN?5uRMaZkI&_^6kC>x+1(r7>=J03QC$wCq@4-<3}LYi)=C=^&zCo+&iEMxsMf9>dW z=sNi*s*_ErYY^AC;8^;^-D;)urz%;YEXk3jk(=1uDl9MD48T>Ks!&yRqIpEijfO~; zV?$AKs0!TG=@s3m8(E9=1~tF7ss-Q?IW|oinP|+h3}I*{m@xJYLH8_I>ItTN$O^s@ z$yE?pYjIIRd@?F6acWf;m{(09iNF-4tOpwT+(Zhp7l^ai68W6C33r1ct1#jQM^nxY zk>s*7OhOQdRRT5j*UH4g zxqZxyKqrY|qgq>|9!rb+b1-VTRSoPGiJ_y51k-gG43QZXx(J2iQ9Pxc8^y%s<$Tap zQJi?UXoA1adK`n8w)o@ta6YlfsU^93U9{^71NGu^;dV5KqQ6##w3!efG-b(8+ks_- zU6!Jk>o)qsd`ujh>N$>n=rI5WH4g4ev+$03GCJ$4M43UTS0;n;>*o)3QOg|ApJS&5 z6ov?J3*1#HPp(SVO9CCZIP|u;>181AS@Q4Of{n>+!!8`NiV}blxvk%>NGS}_h*b!* z%!Eawa=ao)LR!dx^Y%XVfwy2>T>T;VtG4Sy>%!5W

@#yHhJ7ec^#b{!k)x=GKFL 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

sKlJ>AaM<#kkE_{#@-g--G6kA>b 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