From 315fa624708e5b0635021280a6255fb9c3af19f4 Mon Sep 17 00:00:00 2001 From: z30057876 Date: Tue, 1 Jul 2025 10:45:56 +0800 Subject: [PATCH 1/8] =?UTF-8?q?=E4=BD=BF=E7=94=A8=E6=96=B0=E7=89=88Config?= =?UTF-8?q?=20&=20=E4=BD=BF=E7=94=A8=E5=90=8C=E5=8C=85=E7=9B=B8=E5=AF=B9?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=20#1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/common/config.py | 19 ++++++++++--------- apps/common/cryptohub.py | 2 +- apps/common/lance.py | 9 +++++---- apps/common/minio.py | 10 +++++----- apps/common/mongo.py | 8 ++++---- apps/common/oidc.py | 15 ++++++++------- apps/common/oidc_provider/authhub.py | 7 ++++--- apps/common/oidc_provider/openeuler.py | 7 ++++--- apps/common/security.py | 8 ++++---- apps/common/wordscheck.py | 10 +++++----- apps/constants.py | 4 ++-- apps/routers/knowledge.py | 2 +- apps/scripts/delete_user.py | 6 +++--- apps/services/appcenter.py | 5 +++-- apps/services/conversation.py | 11 ++++++----- apps/services/document.py | 5 +++-- apps/services/flow.py | 3 ++- apps/services/flow_validate.py | 21 ++++++++++++--------- apps/services/knowledge.py | 7 ++++--- apps/services/knowledge_base.py | 4 ++-- apps/services/llm.py | 14 +++++++------- apps/services/rag.py | 4 ++-- apps/services/service.py | 6 +++--- apps/services/session.py | 9 +++++---- apps/services/task.py | 3 ++- apps/services/token.py | 7 ++++--- apps/services/user.py | 3 ++- 27 files changed, 113 insertions(+), 96 deletions(-) diff --git a/apps/common/config.py b/apps/common/config.py index 1ba28c599..2cf0ecf2e 100644 --- a/apps/common/config.py +++ b/apps/common/config.py @@ -2,30 +2,31 @@ """配置文件处理模块""" import os -from copy import deepcopy from pathlib import Path +from typing import Self import toml +from pydantic import ConfigDict -from apps.common.singleton import SingletonMeta from apps.schemas.config import ConfigModel -class Config(metaclass=SingletonMeta): +class Config(ConfigModel): """配置文件读取和使用Class""" - _config: ConfigModel + model_config = ConfigDict(frozen=True) - def __init__(self) -> None: + @classmethod + def init_config(cls) -> Self: """读取配置文件;当PROD环境变量设置时,配置文件将在读取后删除""" config_file = os.getenv("CONFIG") if config_file is None: config_file = Path(__file__).parents[2] / "config" / "config.toml" - self._config = ConfigModel.model_validate(toml.load(config_file)) + config = cls.model_validate(toml.load(config_file)) if os.getenv("PROD"): Path(config_file).unlink() - def get_config(self) -> ConfigModel: - """获取配置文件内容""" - return deepcopy(self._config) + return config + +config = Config.init_config() diff --git a/apps/common/cryptohub.py b/apps/common/cryptohub.py index e98ea2b81..ce81a4e83 100644 --- a/apps/common/cryptohub.py +++ b/apps/common/cryptohub.py @@ -3,7 +3,7 @@ import hashlib -from apps.common.security import Security +from .security import Security class CryptoHub: diff --git a/apps/common/lance.py b/apps/common/lance.py index 2ead17625..e54871fd5 100644 --- a/apps/common/lance.py +++ b/apps/common/lance.py @@ -4,8 +4,6 @@ import lancedb from lancedb.index import HnswSq -from apps.common.config import Config -from apps.common.singleton import SingletonMeta from apps.models.vector import ( CallPoolVector, FlowPoolVector, @@ -14,6 +12,9 @@ from apps.models.vector import ( ) from apps.schemas.mcp import MCPToolVector, MCPVector +from .config import config +from .singleton import SingletonMeta + class LanceDB(metaclass=SingletonMeta): """LanceDB向量化存储""" @@ -27,7 +28,7 @@ class LanceDB(metaclass=SingletonMeta): :return: 无 """ self._engine = await lancedb.connect_async( - Config().get_config().deploy.data_dir.rstrip("/") + "/vectors", + config.deploy.data_dir.rstrip("/") + "/vectors", ) # 创建表 @@ -72,7 +73,7 @@ class LanceDB(metaclass=SingletonMeta): :rtype: lancedb.AsyncTable """ self._engine = await lancedb.connect_async( - Config().get_config().deploy.data_dir.rstrip("/") + "/vectors", + config.deploy.data_dir.rstrip("/") + "/vectors", ) return await self._engine.open_table(table_name) diff --git a/apps/common/minio.py b/apps/common/minio.py index b5187dbb5..48c6f50c4 100644 --- a/apps/common/minio.py +++ b/apps/common/minio.py @@ -5,17 +5,17 @@ from typing import Any import minio -from apps.common.config import Config +from .config import config class MinioClient: """MinIO客户端""" client = minio.Minio( - endpoint=Config().get_config().minio.endpoint, - access_key=Config().get_config().minio.access_key, - secret_key=Config().get_config().minio.secret_key, - secure=Config().get_config().minio.secure, + endpoint=config.minio.endpoint, + access_key=config.minio.access_key, + secret_key=config.minio.secret_key, + secure=config.minio.secure, ) @classmethod diff --git a/apps/common/mongo.py b/apps/common/mongo.py index 2f05d4e76..96c2a3faf 100644 --- a/apps/common/mongo.py +++ b/apps/common/mongo.py @@ -9,7 +9,7 @@ if TYPE_CHECKING: from pymongo.asynchronous.client_session import AsyncClientSession from pymongo.asynchronous.collection import AsyncCollection -from apps.common.config import Config +from .config import config logger = logging.getLogger(__name__) @@ -22,7 +22,7 @@ class MongoDB: from pymongo import AsyncMongoClient self._client = AsyncMongoClient( - f"mongodb://{urllib.parse.quote_plus(Config().get_config().mongodb.user)}:{urllib.parse.quote_plus(Config().get_config().mongodb.password)}@{Config().get_config().mongodb.host}:{Config().get_config().mongodb.port}/?directConnection=true&replicaSet=rs0", + f"mongodb://{urllib.parse.quote_plus(config.mongodb.user)}:{urllib.parse.quote_plus(config.mongodb.password)}@{config.mongodb.host}:{config.mongodb.port}/?directConnection=true&replicaSet=rs0", ) @@ -34,7 +34,7 @@ class MongoDB: :return: 集合对象 :rtype: AsyncCollection """ - return self._client[Config().get_config().mongodb.database][collection_name] + return self._client[config.mongodb.database][collection_name] async def clear_collection(self, collection_name: str) -> None: @@ -44,7 +44,7 @@ class MongoDB: :param str collection_name: 集合名称 :return: 无 """ - await self._client[Config().get_config().mongodb.database][collection_name].delete_many({}) + await self._client[config.mongodb.database][collection_name].delete_many({}) def get_session(self) -> "AsyncClientSession": diff --git a/apps/common/oidc.py b/apps/common/oidc.py index f1d01e8ff..7fbd3c54a 100644 --- a/apps/common/oidc.py +++ b/apps/common/oidc.py @@ -5,12 +5,13 @@ import logging from datetime import UTC, datetime, timedelta from typing import Any -from apps.common.config import Config -from apps.common.mongo import MongoDB -from apps.common.oidc_provider.authhub import AuthhubOIDCProvider -from apps.common.oidc_provider.openeuler import OpenEulerOIDCProvider from apps.constants import OIDC_ACCESS_TOKEN_EXPIRE_TIME, OIDC_REFRESH_TOKEN_EXPIRE_TIME +from .config import config +from .mongo import MongoDB +from .oidc_provider.authhub import AuthhubOIDCProvider +from .oidc_provider.openeuler import OpenEulerOIDCProvider + logger = logging.getLogger(__name__) @@ -19,12 +20,12 @@ class OIDCProvider: def __init__(self) -> None: """初始化OIDC Provider""" - if Config().get_config().login.provider == "openeuler": + if config.login.provider == "openeuler": self.provider = OpenEulerOIDCProvider() - elif Config().get_config().login.provider == "authhub": + elif config.login.provider == "authhub": self.provider = AuthhubOIDCProvider() else: - err = f"[OIDC] 未知OIDC提供商: {Config().get_config().login.provider}" + err = f"[OIDC] 未知OIDC提供商: {config.login.provider}" logger.error(err) raise NotImplementedError(err) diff --git a/apps/common/oidc_provider/authhub.py b/apps/common/oidc_provider/authhub.py index f0f462ecb..43f75530c 100644 --- a/apps/common/oidc_provider/authhub.py +++ b/apps/common/oidc_provider/authhub.py @@ -7,10 +7,11 @@ from typing import Any import httpx from fastapi import status -from apps.common.config import Config -from apps.common.oidc_provider.base import OIDCProviderBase +from apps.common.config import config from apps.schemas.config import OIDCConfig +from .base import OIDCProviderBase + logger = logging.getLogger(__name__) @@ -20,7 +21,7 @@ class AuthhubOIDCProvider(OIDCProviderBase): @classmethod def _get_login_config(cls) -> OIDCConfig: """获取并验证登录配置""" - login_config = Config().get_config().login.settings + login_config = config.login.settings if not isinstance(login_config, OIDCConfig): err = "Authhub OIDC配置错误" raise TypeError(err) diff --git a/apps/common/oidc_provider/openeuler.py b/apps/common/oidc_provider/openeuler.py index 5fec2f51a..e86a6ad3d 100644 --- a/apps/common/oidc_provider/openeuler.py +++ b/apps/common/oidc_provider/openeuler.py @@ -7,10 +7,11 @@ from typing import Any import httpx from fastapi import status -from apps.common.config import Config -from apps.common.oidc_provider.base import OIDCProviderBase +from apps.common.config import config from apps.schemas.config import OIDCConfig +from .base import OIDCProviderBase + logger = logging.getLogger(__name__) @@ -20,7 +21,7 @@ class OpenEulerOIDCProvider(OIDCProviderBase): @classmethod def _get_login_config(cls) -> OIDCConfig: """获取并验证登录配置""" - login_config = Config().get_config().login.settings + login_config = config.login.settings if not isinstance(login_config, OIDCConfig): err = "OpenEuler OIDC配置错误" raise TypeError(err) diff --git a/apps/common/security.py b/apps/common/security.py index 7bae582e6..fe3dd379b 100644 --- a/apps/common/security.py +++ b/apps/common/security.py @@ -9,7 +9,7 @@ import secrets from cryptography.hazmat.backends import default_backend from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes -from apps.common.config import Config +from .config import config class Security: @@ -23,7 +23,7 @@ class Security: :param plaintext: 待加密的字符串 :return: 加密后的字符串和存放工作密钥的dict """ - half_key1 = Config().get_config().security.half_key1 + half_key1 = config.security.half_key1 if half_key1 is None: err = "配置文件中未设置HALF_KEY1" raise ValueError(err) @@ -66,13 +66,13 @@ class Security: @staticmethod def _get_root_key(half_key1: str) -> bytes: - half_key2 = Config().get_config().security.half_key2 + half_key2 = config.security.half_key2 if half_key2 is None: err = "配置文件中未设置HALF_KEY2" raise ValueError(err) key = (half_key1 + half_key2).encode("utf-8") - half_key3 = Config().get_config().security.half_key3.encode("utf-8") + half_key3 = config.security.half_key3.encode("utf-8") hash_key = hashlib.pbkdf2_hmac("sha256", key, half_key3, 10000) return binascii.hexlify(hash_key)[13:45] diff --git a/apps/common/wordscheck.py b/apps/common/wordscheck.py index efc31190a..795166494 100644 --- a/apps/common/wordscheck.py +++ b/apps/common/wordscheck.py @@ -4,8 +4,8 @@ import logging from pathlib import Path -from apps.common.config import Config -from apps.common.singleton import SingletonMeta +from .config import config +from .singleton import SingletonMeta logger = logging.getLogger(__name__) @@ -20,8 +20,8 @@ class WordsCheck(metaclass=SingletonMeta): def _init_words_list(self) -> None: """同步初始化敏感词列表""" - if not self._initialized and Config().get_config().check.enable: - with Path(Config().get_config().check.words_list).open(encoding="utf-8") as f: + if not self._initialized and config.check.enable: + with Path(config.check.words_list).open(encoding="utf-8") as f: self._words_list = f.read().splitlines() self._initialized = True @@ -40,7 +40,7 @@ class WordsCheck(metaclass=SingletonMeta): 异常-1,拦截0,正常1 """ - if Config().get_config().check.enable: + if config.check.enable: return await self._check_wordlist(message) # 不设置检查类型,默认不拦截 return 1 diff --git a/apps/constants.py b/apps/constants.py index 58158b33c..60d9f20f5 100644 --- a/apps/constants.py +++ b/apps/constants.py @@ -6,7 +6,7 @@ Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved. from anyio import Path -from apps.common.config import Config +from .common.config import config # 新对话默认标题 NEW_CHAT = "新对话" @@ -48,7 +48,7 @@ ALLOWED_ICON_MIME_TYPES = [ "image/tiff", ] # MCP路径 -MCP_PATH = Path(Config().get_config().deploy.data_dir) / "semantics" / "mcp" +MCP_PATH = Path(config.deploy.data_dir) / "semantics" / "mcp" # 项目路径 PROJ_PATH = Path(__file__).parent.parent # 图标存储 diff --git a/apps/routers/knowledge.py b/apps/routers/knowledge.py index ef85efc4d..c157994b4 100644 --- a/apps/routers/knowledge.py +++ b/apps/routers/knowledge.py @@ -33,7 +33,7 @@ router = APIRouter( async def list_kb( user_sub: Annotated[str, Depends(get_user)], conversation_id: Annotated[str, Query(alias="conversationId")], - kb_id: Annotated[str, Query(alias="kbId")] = None, + kb_id: Annotated[str, Query(alias="kbId")] = "", kb_name: Annotated[str, Query(alias="kbName")] = "", ) -> JSONResponse: """获取当前用户的知识库ID""" diff --git a/apps/scripts/delete_user.py b/apps/scripts/delete_user.py index c3594a808..7cc85a540 100644 --- a/apps/scripts/delete_user.py +++ b/apps/scripts/delete_user.py @@ -6,12 +6,12 @@ from datetime import UTC, datetime, timedelta import asyncer +from apps.common.mongo import MongoDB from apps.schemas.collection import Audit from apps.services.audit_log import AuditLogManager -from apps.services.user import UserManager -from apps.services.session import SessionManager -from apps.common.mongo import MongoDB from apps.services.knowledge_base import KnowledgeBaseService +from apps.services.session import SessionManager +from apps.services.user import UserManager logger = logging.getLogger(__name__) diff --git a/apps/services/appcenter.py b/apps/services/appcenter.py index e256ab55a..85a5505ff 100644 --- a/apps/services/appcenter.py +++ b/apps/services/appcenter.py @@ -17,8 +17,9 @@ from apps.schemas.enum_var import AppFilterType, AppType, PermissionType from apps.schemas.flow import AppMetadata, MetadataType, Permission from apps.schemas.pool import AppPool from apps.schemas.response_data import RecentAppList, RecentAppListItem -from apps.services.flow import FlowManager -from apps.services.mcp_service import MCPServiceManager + +from .flow import FlowManager +from .mcp_service import MCPServiceManager logger = logging.getLogger(__name__) diff --git a/apps/services/conversation.py b/apps/services/conversation.py index 4bcade45c..9e4f97454 100644 --- a/apps/services/conversation.py +++ b/apps/services/conversation.py @@ -6,14 +6,15 @@ import uuid from datetime import UTC, datetime from typing import Any -from apps.common.config import Config +from apps.common.config import config from apps.common.mongo import MongoDB from apps.schemas.collection import Conversation, KnowledgeBaseItem, LLMItem -from apps.services.knowledge import KnowledgeBaseManager -from apps.services.llm import LLMManager -from apps.services.task import TaskManager from apps.templates.generate_llm_operator_config import llm_provider_dict +from .knowledge import KnowledgeBaseManager +from .llm import LLMManager +from .task import TaskManager + logger = logging.getLogger(__name__) @@ -46,7 +47,7 @@ class ConversationManager: if llm_id == "empty": llm_item = LLMItem( llm_id="empty", - model_name=Config().get_config().llm.model, + model_name=config.llm.model, icon=llm_provider_dict["ollama"]["icon"], ) else: diff --git a/apps/services/document.py b/apps/services/document.py index be5393603..f4b4733c7 100644 --- a/apps/services/document.py +++ b/apps/services/document.py @@ -15,8 +15,9 @@ from apps.schemas.collection import ( Document, ) from apps.schemas.record import RecordDocument, RecordGroup, RecordGroupDocument -from apps.services.knowledge_base import KnowledgeBaseService -from apps.services.session import SessionManager + +from .knowledge_base import KnowledgeBaseService +from .session import SessionManager logger = logging.getLogger(__name__) diff --git a/apps/services/flow.py b/apps/services/flow.py index 9275fc60c..e9e9415e4 100644 --- a/apps/services/flow.py +++ b/apps/services/flow.py @@ -19,7 +19,8 @@ from apps.schemas.flow_topology import ( NodeServiceItem, PositionItem, ) -from apps.services.node import NodeManager + +from .node import NodeManager logger = logging.getLogger(__name__) diff --git a/apps/services/flow_validate.py b/apps/services/flow_validate.py index 78e8d340e..a4185c829 100644 --- a/apps/services/flow_validate.py +++ b/apps/services/flow_validate.py @@ -3,11 +3,16 @@ import collections import logging +from typing import TYPE_CHECKING from apps.exceptions import FlowBranchValidationError, FlowEdgeValidationError, FlowNodeValidationError +from apps.scheduler.pool.pool import Pool from apps.schemas.enum_var import NodeType from apps.schemas.flow_topology import EdgeItem, FlowItem, NodeItem +if TYPE_CHECKING: + from pydantic import BaseModel + logger = logging.getLogger(__name__) @@ -36,18 +41,16 @@ class FlowService: node_branch_map = {} branch_illegal_chars = "." for node in flow_item.nodes: - from apps.scheduler.pool.pool import Pool - from pydantic import BaseModel - if node.node_id != 'start' and node.node_id != 'end' and node.node_id != 'Empty': + if node.node_id not in {"start", "end", "Empty"}: try: call_class: type[BaseModel] = await Pool().get_call(node.call_id) if not call_class: - node.node_id = 'Empty' - node.description = '【对应的api工具被删除!节点不可用!请联系相关人员!】\n\n'+node.description - except Exception as e: - node.node_id = 'Empty' - node.description = '【对应的api工具被删除!节点不可用!请联系相关人员!】\n\n'+node.description - logger.error(f"[FlowService] 获取步骤的call_id失败{node.call_id}由于:{e}") + node.node_id = "Empty" + node.description = "【对应的api工具被删除!节点不可用!请联系相关人员!】\n\n"+node.description + except Exception: + node.node_id = "Empty" + node.description = "【对应的api工具被删除!节点不可用!请联系相关人员!】\n\n"+node.description + logger.exception("[FlowService] 获取步骤的call_id失败%s", node.call_id) node_branch_map[node.step_id] = set() if node.call_id == NodeType.CHOICE.value: node.parameters = node.parameters["input_parameters"] diff --git a/apps/services/knowledge.py b/apps/services/knowledge.py index 377d65f07..876321dc7 100644 --- a/apps/services/knowledge.py +++ b/apps/services/knowledge.py @@ -7,12 +7,13 @@ from typing import Any import httpx from fastapi import status -from apps.common.config import Config +from apps.common.config import config from apps.common.mongo import MongoDB from apps.schemas.collection import KnowledgeBaseItem from apps.schemas.response_data import KnowledgeBaseItem as KnowledgeBaseItemResponse from apps.schemas.response_data import TeamKnowledgeBaseItem -from apps.services.session import SessionManager + +from .session import SessionManager logger = logging.getLogger(__name__) @@ -55,7 +56,7 @@ class KnowledgeBaseManager: :return: 知识库列表 """ session_id = await SessionManager.get_session_by_user_sub(user_sub) - url = Config().get_config().rag.rag_service.rstrip("/")+"/kb" + url = config.rag.rag_service.rstrip("/")+"/kb" headers = { "Authorization": f"Bearer {session_id}", "Content-Type": "application/json", diff --git a/apps/services/knowledge_base.py b/apps/services/knowledge_base.py index 819798676..bd99c67fe 100644 --- a/apps/services/knowledge_base.py +++ b/apps/services/knowledge_base.py @@ -6,7 +6,7 @@ import logging import httpx from fastapi import status -from apps.common.config import Config +from apps.common.config import config from apps.schemas.collection import Document from apps.schemas.rag_data import ( RAGFileParseReq, @@ -15,7 +15,7 @@ from apps.schemas.rag_data import ( ) logger = logging.getLogger(__name__) -rag_host = Config().get_config().rag.rag_service +rag_host = config.rag.rag_service _RAG_DOC_PARSE_URI = rag_host.rstrip("/") + "/doc/temporary/parser" _RAG_DOC_STATUS_URI = rag_host.rstrip("/") + "/doc/temporary/status" _RAG_DOC_DELETE_URI = rag_host.rstrip("/") + "/doc/temporary/delete" diff --git a/apps/services/llm.py b/apps/services/llm.py index 1ce87bdfa..d28e601b8 100644 --- a/apps/services/llm.py +++ b/apps/services/llm.py @@ -3,7 +3,7 @@ import logging -from apps.common.config import Config +from apps.common.config import config from apps.common.mongo import MongoDB from apps.schemas.collection import LLM, LLMItem from apps.schemas.request_data import ( @@ -89,10 +89,10 @@ class LLMManager: llm_item = LLMProviderInfo( llmId="empty", icon=llm_provider_dict["ollama"]["icon"], - openaiBaseUrl=Config().get_config().llm.endpoint, - openaiApiKey=Config().get_config().llm.key, - modelName=Config().get_config().llm.model, - maxTokens=Config().get_config().llm.max_tokens, + openaiBaseUrl=config.llm.endpoint, + openaiApiKey=config.llm.key, + modelName=config.llm.model, + maxTokens=config.llm.max_tokens, isEditable=False, ) llm_list = [llm_item] @@ -173,7 +173,7 @@ class LLMManager: {"$set": {"llm": { "llm_id": "empty", "icon": llm_provider_dict["ollama"]["icon"], - "model_name": Config().get_config().llm.model, + "model_name": config.llm.model, }}}, ) @@ -210,7 +210,7 @@ class LLMManager: else: llm_dict = { "llm_id": "empty", - "model_name": Config().get_config().llm.model, + "model_name": config.llm.model, "icon": llm_provider_dict["ollama"]["icon"], } conv_dict = await conv_collection.find_one({"_id": conversation_id, "user_sub": user_sub}) diff --git a/apps/services/rag.py b/apps/services/rag.py index a0bded22f..875ce42d3 100644 --- a/apps/services/rag.py +++ b/apps/services/rag.py @@ -8,7 +8,7 @@ from collections.abc import AsyncGenerator import httpx from fastapi import status -from apps.common.config import Config +from apps.common.config import config from apps.llm.patterns.rewrite import QuestionRewrite from apps.llm.reasoning import ReasoningLLM from apps.llm.token import TokenCalculator @@ -75,7 +75,7 @@ class RAG: ) -> AsyncGenerator[str, None]: """获取RAG服务的结果""" session_id = await SessionManager.get_session_by_user_sub(user_sub) - url = Config().get_config().rag.rag_service.rstrip("/") + "/chunk/search" + url = config.rag.rag_service.rstrip("/") + "/chunk/search" headers = { "Content-Type": "application/json", "Authorization": f"Bearer {session_id}", diff --git a/apps/services/service.py b/apps/services/service.py index 487cd1e40..deea90f0f 100644 --- a/apps/services/service.py +++ b/apps/services/service.py @@ -8,7 +8,7 @@ from typing import Any import yaml from anyio import Path -from apps.common.config import Config +from apps.common.config import config from apps.common.mongo import MongoDB from apps.exceptions import InstancePermissionError, ServiceIDError from apps.scheduler.openapi import ReducedOpenAPISpec @@ -237,7 +237,7 @@ class ServiceCenterManager: msg = "Permission denied" raise InstancePermissionError(msg) service_path = ( - Path(Config().get_config().deploy.data_dir) / "semantics" / "service" / service_id / "openapi" / "api.yaml" + Path(config.deploy.data_dir) / "semantics" / "service" / service_id / "openapi" / "api.yaml" ) async with await service_path.open() as f: service_data = yaml.safe_load(await f.read()) @@ -267,7 +267,7 @@ class ServiceCenterManager: raise ServiceIDError(msg) metadata_path = ( - Path(Config().get_config().deploy.data_dir) / "semantics" / "service" / service_id / "metadata.yaml" + Path(config.deploy.data_dir) / "semantics" / "service" / service_id / "metadata.yaml" ) async with await metadata_path.open() as f: metadata_data = yaml.safe_load(await f.read()) diff --git a/apps/services/session.py b/apps/services/session.py index 904ba26dc..13dd425a7 100644 --- a/apps/services/session.py +++ b/apps/services/session.py @@ -5,13 +5,14 @@ import logging import secrets from datetime import UTC, datetime, timedelta -from apps.common.config import Config +from apps.common.config import config from apps.common.mongo import MongoDB from apps.constants import SESSION_TTL from apps.exceptions import LoginSettingsError from apps.schemas.config import FixedUserConfig from apps.schemas.session import Session -from apps.services.blacklist import UserBlacklistManager + +from .blacklist import UserBlacklistManager logger = logging.getLogger(__name__) @@ -32,8 +33,8 @@ class SessionManager: ip=ip, expired_at=datetime.now(UTC) + timedelta(minutes=SESSION_TTL), ) - if Config().get_config().login.provider == "disable": - login_settings = Config().get_config().login.settings + if config.login.provider == "disable": + login_settings = config.login.settings if not isinstance(login_settings, FixedUserConfig): err = "固定用户配置错误!" raise LoginSettingsError(err) diff --git a/apps/services/task.py b/apps/services/task.py index 1e672be69..98926f506 100644 --- a/apps/services/task.py +++ b/apps/services/task.py @@ -14,7 +14,8 @@ from apps.schemas.task import ( TaskRuntime, TaskTokens, ) -from apps.services.record import RecordManager + +from .record import RecordManager logger = logging.getLogger(__name__) diff --git a/apps/services/token.py b/apps/services/token.py index 8c83d3aa2..8a41c0ad4 100644 --- a/apps/services/token.py +++ b/apps/services/token.py @@ -7,12 +7,13 @@ from datetime import UTC, datetime, timedelta import httpx from fastapi import status -from apps.common.config import Config +from apps.common.config import config from apps.common.mongo import MongoDB from apps.common.oidc import oidc_provider from apps.constants import OIDC_ACCESS_TOKEN_EXPIRE_TIME from apps.schemas.config import OIDCConfig -from apps.services.session import SessionManager + +from .session import SessionManager logger = logging.getLogger(__name__) @@ -52,7 +53,7 @@ class TokenManager: @staticmethod def _get_login_config() -> OIDCConfig: """获取并验证登录配置""" - login_config = Config().get_config().login.settings + login_config = config.login.settings if not isinstance(login_config, OIDCConfig): err = "Authhub OIDC配置错误" raise TypeError(err) diff --git a/apps/services/user.py b/apps/services/user.py index 2721d3773..8a893d09a 100644 --- a/apps/services/user.py +++ b/apps/services/user.py @@ -6,7 +6,8 @@ from datetime import UTC, datetime from apps.common.mongo import MongoDB from apps.schemas.collection import User -from apps.services.conversation import ConversationManager + +from .conversation import ConversationManager logger = logging.getLogger(__name__) -- Gitee From e085ee82b73636343a1a9b94658db606ed538ac5 Mon Sep 17 00:00:00 2001 From: z30057876 Date: Tue, 1 Jul 2025 10:52:23 +0800 Subject: [PATCH 2/8] =?UTF-8?q?=E4=BD=BF=E7=94=A8=E6=96=B0=E7=89=88Config?= =?UTF-8?q?=20&=20=E4=BD=BF=E7=94=A8=E5=90=8C=E5=8C=85=E7=9B=B8=E5=AF=B9?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=20#2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/common/postgres.py | 48 +++++++++++++++++++--- apps/llm/embedding.py | 22 +++++----- apps/llm/function.py | 9 ++-- apps/llm/patterns/executor.py | 3 +- apps/llm/patterns/facts.py | 3 +- apps/llm/patterns/rewoo.py | 3 +- apps/llm/patterns/rewrite.py | 3 +- apps/llm/patterns/select.py | 3 +- apps/llm/reasoning.py | 7 ++-- apps/main.py | 16 ++++---- apps/models/__init__.py | 5 +++ apps/models/base.py | 5 +++ apps/models/vectors.py | 44 ++++++++++++++++++++ apps/scheduler/call/api/api.py | 3 +- apps/scheduler/call/choice/choice.py | 3 +- apps/scheduler/call/convert/convert.py | 6 +-- apps/scheduler/call/empty.py | 3 +- apps/scheduler/call/facts/facts.py | 13 +++--- apps/scheduler/call/graph/graph.py | 5 ++- apps/scheduler/call/llm/llm.py | 5 ++- apps/scheduler/call/mcp/mcp.py | 13 +++--- apps/scheduler/call/rag/rag.py | 7 ++-- apps/scheduler/call/search/search.py | 3 +- apps/scheduler/call/slot/slot.py | 5 ++- apps/scheduler/call/sql/sql.py | 9 ++-- apps/scheduler/call/suggest/suggest.py | 15 +++---- apps/scheduler/call/summary/summary.py | 3 +- apps/scheduler/executor/flow.py | 5 ++- apps/scheduler/executor/qa.py | 2 +- apps/scheduler/executor/step.py | 3 +- apps/scheduler/mcp/__init__.py | 6 +-- apps/scheduler/mcp/plan.py | 3 +- apps/scheduler/mcp/select.py | 5 +-- apps/scheduler/mcp_agent/agent/base.py | 4 +- apps/scheduler/mcp_agent/agent/mcp.py | 3 +- apps/scheduler/mcp_agent/agent/react.py | 5 ++- apps/scheduler/mcp_agent/agent/toolcall.py | 2 +- apps/scheduler/pool/check.py | 10 ++--- apps/scheduler/pool/loader/__init__.py | 10 ++--- apps/scheduler/pool/loader/app.py | 13 +++--- apps/scheduler/pool/loader/call.py | 12 +++--- apps/scheduler/pool/loader/flow.py | 14 +++---- apps/scheduler/pool/loader/metadata.py | 6 +-- apps/scheduler/pool/loader/service.py | 17 ++++---- apps/scheduler/pool/pool.py | 15 +++---- apps/scheduler/scheduler/message.py | 6 +-- apps/scheduler/scheduler/scheduler.py | 10 ++--- apps/scheduler/slot/parser/__init__.py | 8 ++-- apps/scheduler/slot/slot.py | 4 +- apps/schemas/agent.py | 4 +- apps/schemas/api_key.py | 2 +- apps/schemas/appcenter.py | 2 +- apps/schemas/collection.py | 12 +++--- apps/schemas/config.py | 11 +++++ apps/schemas/enum_var.py | 2 +- apps/schemas/flow.py | 6 +-- apps/schemas/flow_topology.py | 2 +- apps/schemas/message.py | 4 +- apps/schemas/node.py | 2 +- apps/schemas/pool.py | 6 +-- apps/schemas/record.py | 4 +- apps/schemas/request_data.py | 13 +++--- apps/schemas/response_data.py | 17 ++++---- apps/schemas/scheduler.py | 4 +- apps/schemas/task.py | 4 +- 65 files changed, 328 insertions(+), 194 deletions(-) create mode 100644 apps/models/base.py create mode 100644 apps/models/vectors.py diff --git a/apps/common/postgres.py b/apps/common/postgres.py index 766922069..90b1837a9 100644 --- a/apps/common/postgres.py +++ b/apps/common/postgres.py @@ -1,11 +1,49 @@ """Postgres连接器""" -from sqlalchemy import Column -from sqlalchemy.dialects.postgresql import JSONB +import logging +import urllib.parse +from collections.abc import AsyncGenerator +from contextlib import asynccontextmanager +from sqlalchemy.ext.asyncio import AsyncSession, async_sessionmaker, create_async_engine -class PGSQL: +from apps.models import ( + Base, +) + +from .config import config + +logger = logging.getLogger(__name__) + + +class Postgres: """Postgres连接器""" - def __init__(self, db_url: str): - pass + async def init(self) -> None: + """初始化Postgres连接器""" + logger.info("[Postgres] 初始化Postgres连接器") + self._engine = create_async_engine( + f"postgresql+asyncpg://{urllib.parse.quote_plus(config.postgres.user)}:" + f"{urllib.parse.quote_plus(config.postgres.password)}@{config.postgres.host}:" + f"{config.postgres.port}/{config.postgres.database}", + ) + self._session = async_sessionmaker(self._engine, expire_on_commit=False) + + logger.info("[Postgres] 创建表") + async with self._engine.begin() as conn: + await conn.run_sync(Base.metadata.create_all) + + @asynccontextmanager + async def session(self) -> AsyncGenerator[AsyncSession, None]: + """获取会话""" + async with self._session() as session: + try: + yield session + except Exception: + logger.exception("[Postgres] 会话错误") + await session.rollback() + raise + finally: + await session.close() + +postgres = Postgres() diff --git a/apps/llm/embedding.py b/apps/llm/embedding.py index 28ab86b49..89c3cf48e 100644 --- a/apps/llm/embedding.py +++ b/apps/llm/embedding.py @@ -2,7 +2,7 @@ import httpx -from apps.common.config import Config +from apps.common.config import config class Embedding: @@ -19,18 +19,18 @@ class Embedding: @classmethod async def _get_openai_embedding(cls, text: list[str]) -> list[list[float]]: """访问OpenAI兼容的Embedding API,获得向量化数据""" - api = Config().get_config().embedding.endpoint + "/embeddings" + api = config.embedding.endpoint + "/embeddings" data = { "input": text, - "model": Config().get_config().embedding.model, + "model": config.embedding.model, "encoding_format": "float", } headers = { "Content-Type": "application/json", } - if Config().get_config().embedding.api_key: - headers["Authorization"] = f"Bearer {Config().get_config().embedding.api_key}" + if config.embedding.api_key: + headers["Authorization"] = f"Bearer {config.embedding.api_key}" async with httpx.AsyncClient() as client: response = await client.post( @@ -45,12 +45,12 @@ class Embedding: @classmethod async def _get_tei_embedding(cls, text: list[str]) -> list[list[float]]: """访问TEI兼容的Embedding API,获得向量化数据""" - api = Config().get_config().embedding.endpoint + "/embed" + api = config.embedding.endpoint + "/embed" headers = { "Content-Type": "application/json", } - if Config().get_config().embedding.api_key: - headers["Authorization"] = f"Bearer {Config().get_config().embedding.api_key}" + if config.embedding.api_key: + headers["Authorization"] = f"Bearer {config.embedding.api_key}" async with httpx.AsyncClient() as client: result = [] @@ -75,10 +75,10 @@ class Embedding: :param text: 待向量化文本(多条文本组成List) :return: 文本对应的向量(顺序与text一致,也为List) """ - if Config().get_config().embedding.type == "openai": + if config.embedding.type == "openai": return await cls._get_openai_embedding(text) - if Config().get_config().embedding.type == "mindie": + if config.embedding.type == "mindie": return await cls._get_tei_embedding(text) - err = f"不支持的Embedding API类型: {Config().get_config().embedding.type}" + err = f"不支持的Embedding API类型: {config.embedding.type}" raise ValueError(err) diff --git a/apps/llm/function.py b/apps/llm/function.py index 1f995fe7b..10cd92571 100644 --- a/apps/llm/function.py +++ b/apps/llm/function.py @@ -11,9 +11,10 @@ from jinja2 import BaseLoader from jinja2.sandbox import SandboxedEnvironment from jsonschema import Draft7Validator -from apps.common.config import Config +from apps.common.config import config from apps.constants import JSON_GEN_MAX_TRIAL, REASONING_END_TOKEN -from apps.llm.prompt import JSON_GEN_BASIC + +from .prompt import JSON_GEN_BASIC logger = logging.getLogger(__name__) @@ -33,7 +34,7 @@ class FunctionLLM: - structured_output """ # 暂存config;这里可以替代为从其他位置获取 - self._config = Config().get_config().function_call + self._config = config.function_call if not self._config.model: err_msg = "[FunctionCall] 未设置FuntionCall所用模型!" logger.error(err_msg) @@ -258,7 +259,7 @@ class JsonGenerator: async def _assemble_message(self) -> str: """组装消息""" # 检查类型 - function_call = Config().get_config().function_call.backend == "function_call" + function_call = config.function_call.backend == "function_call" # 渲染模板 template = self._env.from_string(JSON_GEN_BASIC) diff --git a/apps/llm/patterns/executor.py b/apps/llm/patterns/executor.py index f872fd2ac..07ad5b2d3 100644 --- a/apps/llm/patterns/executor.py +++ b/apps/llm/patterns/executor.py @@ -3,10 +3,11 @@ from typing import TYPE_CHECKING, Any -from apps.llm.patterns.core import CorePattern from apps.llm.reasoning import ReasoningLLM from apps.llm.snippet import convert_context_to_prompt, facts_to_prompt +from .core import CorePattern + if TYPE_CHECKING: from apps.schemas.scheduler import ExecutorBackground diff --git a/apps/llm/patterns/facts.py b/apps/llm/patterns/facts.py index 0b0381ff4..d8dbc4c1e 100644 --- a/apps/llm/patterns/facts.py +++ b/apps/llm/patterns/facts.py @@ -6,10 +6,11 @@ import logging from pydantic import BaseModel, Field from apps.llm.function import JsonGenerator -from apps.llm.patterns.core import CorePattern from apps.llm.reasoning import ReasoningLLM from apps.llm.snippet import convert_context_to_prompt +from .core import CorePattern + logger = logging.getLogger(__name__) diff --git a/apps/llm/patterns/rewoo.py b/apps/llm/patterns/rewoo.py index ef78d9266..140d942a9 100644 --- a/apps/llm/patterns/rewoo.py +++ b/apps/llm/patterns/rewoo.py @@ -1,9 +1,10 @@ # Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved. """规划生成命令行""" -from apps.llm.patterns.core import CorePattern from apps.llm.reasoning import ReasoningLLM +from .core import CorePattern + class InitPlan(CorePattern): """规划生成命令行""" diff --git a/apps/llm/patterns/rewrite.py b/apps/llm/patterns/rewrite.py index d72475fa9..25773ca7b 100644 --- a/apps/llm/patterns/rewrite.py +++ b/apps/llm/patterns/rewrite.py @@ -6,9 +6,10 @@ import logging from pydantic import BaseModel, Field from apps.llm.function import JsonGenerator -from apps.llm.patterns.core import CorePattern from apps.llm.reasoning import ReasoningLLM +from .core import CorePattern + logger = logging.getLogger(__name__) diff --git a/apps/llm/patterns/select.py b/apps/llm/patterns/select.py index a6c496bdd..a0b950fc8 100644 --- a/apps/llm/patterns/select.py +++ b/apps/llm/patterns/select.py @@ -8,10 +8,11 @@ from collections import Counter from typing import Any, ClassVar from apps.llm.function import JsonGenerator -from apps.llm.patterns.core import CorePattern from apps.llm.reasoning import ReasoningLLM from apps.llm.snippet import choices_to_prompt +from .core import CorePattern + logger = logging.getLogger(__name__) diff --git a/apps/llm/reasoning.py b/apps/llm/reasoning.py index fdb36fc05..b765988c6 100644 --- a/apps/llm/reasoning.py +++ b/apps/llm/reasoning.py @@ -8,11 +8,12 @@ from dataclasses import dataclass from openai import AsyncOpenAI from openai.types.chat import ChatCompletionChunk -from apps.common.config import Config +from apps.common.config import config from apps.constants import REASONING_BEGIN_TOKEN, REASONING_END_TOKEN -from apps.llm.token import TokenCalculator from apps.schemas.config import LLMConfig +from .token import TokenCalculator + logger = logging.getLogger(__name__) @@ -96,7 +97,7 @@ class ReasoningLLM: def __init__(self, llm_config: LLMConfig | None = None) -> None: """判断配置文件里用了哪种大模型;初始化大模型客户端""" if not llm_config: - self._config: LLMConfig = Config().get_config().llm + self._config: LLMConfig = config.llm self._init_client() else: self._config: LLMConfig = llm_config diff --git a/apps/main.py b/apps/main.py index c4ca2bfb1..43be981e9 100644 --- a/apps/main.py +++ b/apps/main.py @@ -15,11 +15,12 @@ from fastapi.middleware.cors import CORSMiddleware from rich.console import Console from rich.logging import RichHandler -from apps.common.config import Config -from apps.common.lance import LanceDB -from apps.common.wordscheck import WordsCheck -from apps.llm.token import TokenCalculator -from apps.routers import ( +from .common.config import config +from .common.lance import LanceDB +from .common.postgres import postgres +from .common.wordscheck import WordsCheck +from .llm.token import TokenCalculator +from .routers import ( api_key, appcenter, auth, @@ -37,14 +38,14 @@ from apps.routers import ( service, user, ) -from apps.scheduler.pool.pool import Pool +from .scheduler.pool.pool import Pool # 定义FastAPI app app = FastAPI(redoc_url=None) # 定义FastAPI全局中间件 app.add_middleware( CORSMiddleware, - allow_origins=[Config().get_config().fastapi.domain], + allow_origins=[config.fastapi.domain], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], @@ -84,6 +85,7 @@ logging.basicConfig( async def init_resources() -> None: """初始化必要资源""" WordsCheck() + await postgres.init() await LanceDB().init() await Pool.init() TokenCalculator() diff --git a/apps/models/__init__.py b/apps/models/__init__.py index e69de29bb..9b0215ed4 100644 --- a/apps/models/__init__.py +++ b/apps/models/__init__.py @@ -0,0 +1,5 @@ +"""SQLAlchemy 数据库表结构""" + +from .base import Base + +__all__ = ["Base"] diff --git a/apps/models/base.py b/apps/models/base.py new file mode 100644 index 000000000..fd90ec0ee --- /dev/null +++ b/apps/models/base.py @@ -0,0 +1,5 @@ +"""SQLAlchemy模型基类""" + +from sqlalchemy.orm import declarative_base + +Base = declarative_base() diff --git a/apps/models/vectors.py b/apps/models/vectors.py new file mode 100644 index 000000000..6ce20f551 --- /dev/null +++ b/apps/models/vectors.py @@ -0,0 +1,44 @@ +"""向量表""" + +from pgvector.sqlalchemy import Vector +from sqlalchemy import Integer, String +from sqlalchemy.orm import Mapped, mapped_column + +from .base import Base + + +class FlowPoolVector(Base): + """Flow向量数据""" + + __tablename__ = "flow_vector" + id: Mapped[int] = mapped_column(Integer, primary_key=True) + flow_id: Mapped[str] = mapped_column(String(32), index=True, unique=True) + app_id: Mapped[str] = mapped_column(String(32)) + embedding: Mapped[Vector] = mapped_column(Vector(1024)) + + +class ServicePoolVector(Base): + """Service向量数据""" + + __tablename__ = "service_vector" + id: Mapped[int] = mapped_column(Integer, primary_key=True) + service_id: Mapped[str] = mapped_column(String(32), index=True, unique=True) + embedding: Mapped[Vector] = mapped_column(Vector(1024)) + + +class CallPoolVector(Base): + """Call向量数据""" + + __tablename__ = "call_vector" + id: Mapped[int] = mapped_column(Integer, primary_key=True) + call_id: Mapped[str] = mapped_column(String(32), index=True, unique=True) + embedding: Mapped[Vector] = mapped_column(Vector(1024)) + + +class NodePoolVector(Base): + """Node向量数据""" + + __tablename__ = "node_vector" + id: Mapped[int] = mapped_column(Integer, primary_key=True) + service_id: Mapped[str] = mapped_column(String(32)) + embedding: Mapped[Vector] = mapped_column(Vector(1024)) diff --git a/apps/scheduler/call/api/api.py b/apps/scheduler/call/api/api.py index 15420c54b..54e06cb5b 100644 --- a/apps/scheduler/call/api/api.py +++ b/apps/scheduler/call/api/api.py @@ -13,7 +13,6 @@ from pydantic import Field from pydantic.json_schema import SkipJsonSchema from apps.common.oidc import oidc_provider -from apps.scheduler.call.api.schema import APIInput, APIOutput from apps.scheduler.call.core import CoreCall from apps.schemas.enum_var import CallOutputType, ContentType, HTTPMethod from apps.schemas.scheduler import ( @@ -25,6 +24,8 @@ from apps.schemas.scheduler import ( from apps.services.service import ServiceCenterManager from apps.services.token import TokenManager +from .schema import APIInput, APIOutput + logger = logging.getLogger(__name__) SUCCESS_HTTP_CODES = [ status.HTTP_200_OK, diff --git a/apps/scheduler/call/choice/choice.py b/apps/scheduler/call/choice/choice.py index a5edf21af..574b3ceba 100644 --- a/apps/scheduler/call/choice/choice.py +++ b/apps/scheduler/call/choice/choice.py @@ -3,9 +3,10 @@ from enum import Enum -from apps.scheduler.call.choice.schema import ChoiceInput, ChoiceOutput from apps.scheduler.call.core import CoreCall +from .schema import ChoiceInput, ChoiceOutput + class Operator(str, Enum): """Choice工具支持的运算符""" diff --git a/apps/scheduler/call/convert/convert.py b/apps/scheduler/call/convert/convert.py index 27980bd8a..30392b0e5 100644 --- a/apps/scheduler/call/convert/convert.py +++ b/apps/scheduler/call/convert/convert.py @@ -3,15 +3,13 @@ from collections.abc import AsyncGenerator from datetime import datetime -from typing import Any import pytz from jinja2 import BaseLoader from jinja2.sandbox import SandboxedEnvironment from pydantic import Field -from apps.scheduler.call.convert.schema import ConvertInput, ConvertOutput -from apps.scheduler.call.core import CallOutputChunk, CoreCall +from apps.scheduler.call.core import CoreCall from apps.schemas.enum_var import CallOutputType from apps.schemas.scheduler import ( CallInfo, @@ -19,6 +17,8 @@ from apps.schemas.scheduler import ( CallVars, ) +from .schema import ConvertInput, ConvertOutput + class Convert(CoreCall, input_model=ConvertInput, output_model=ConvertOutput): """Convert 工具,用于对生成的文字信息和原始数据进行格式化""" diff --git a/apps/scheduler/call/empty.py b/apps/scheduler/call/empty.py index 5865bc7e8..3c743f3bd 100644 --- a/apps/scheduler/call/empty.py +++ b/apps/scheduler/call/empty.py @@ -4,10 +4,11 @@ from collections.abc import AsyncGenerator from typing import Any -from apps.scheduler.call.core import CoreCall, DataBase from apps.schemas.enum_var import CallOutputType from apps.schemas.scheduler import CallInfo, CallOutputChunk, CallVars +from .core import CoreCall, DataBase + class Empty(CoreCall, input_model=DataBase, output_model=DataBase): """空Call""" diff --git a/apps/scheduler/call/facts/facts.py b/apps/scheduler/call/facts/facts.py index f8aebcd74..72490cba5 100644 --- a/apps/scheduler/call/facts/facts.py +++ b/apps/scheduler/call/facts/facts.py @@ -9,17 +9,18 @@ from jinja2.sandbox import SandboxedEnvironment from pydantic import Field from apps.scheduler.call.core import CoreCall -from apps.scheduler.call.facts.prompt import DOMAIN_PROMPT, FACTS_PROMPT -from apps.scheduler.call.facts.schema import ( +from apps.schemas.enum_var import CallOutputType +from apps.schemas.pool import NodePool +from apps.schemas.scheduler import CallInfo, CallOutputChunk, CallVars +from apps.services.user_domain import UserDomainManager + +from .prompt import DOMAIN_PROMPT, FACTS_PROMPT +from .schema import ( DomainGen, FactsGen, FactsInput, FactsOutput, ) -from apps.schemas.enum_var import CallOutputType -from apps.schemas.pool import NodePool -from apps.schemas.scheduler import CallInfo, CallOutputChunk, CallVars -from apps.services.user_domain import UserDomainManager if TYPE_CHECKING: from apps.scheduler.executor.step import StepExecutor diff --git a/apps/scheduler/call/graph/graph.py b/apps/scheduler/call/graph/graph.py index c2728f179..a309b0794 100644 --- a/apps/scheduler/call/graph/graph.py +++ b/apps/scheduler/call/graph/graph.py @@ -9,8 +9,6 @@ from anyio import Path from pydantic import Field from apps.scheduler.call.core import CoreCall -from apps.scheduler.call.graph.schema import RenderFormat, RenderInput, RenderOutput -from apps.scheduler.call.graph.style import RenderStyle from apps.schemas.enum_var import CallOutputType from apps.schemas.scheduler import ( CallError, @@ -19,6 +17,9 @@ from apps.schemas.scheduler import ( CallVars, ) +from .schema import RenderFormat, RenderInput, RenderOutput +from .style import RenderStyle + class Graph(CoreCall, input_model=RenderInput, output_model=RenderOutput): """Render Call,用于将SQL Tool查询出的数据转换为图表""" diff --git a/apps/scheduler/call/llm/llm.py b/apps/scheduler/call/llm/llm.py index 6a679dce9..f16cffc6f 100644 --- a/apps/scheduler/call/llm/llm.py +++ b/apps/scheduler/call/llm/llm.py @@ -13,8 +13,6 @@ from pydantic import Field from apps.llm.reasoning import ReasoningLLM from apps.scheduler.call.core import CoreCall -from apps.scheduler.call.llm.prompt import LLM_CONTEXT_PROMPT, LLM_DEFAULT_PROMPT -from apps.scheduler.call.llm.schema import LLMInput, LLMOutput from apps.schemas.enum_var import CallOutputType from apps.schemas.scheduler import ( CallError, @@ -23,6 +21,9 @@ from apps.schemas.scheduler import ( CallVars, ) +from .prompt import LLM_CONTEXT_PROMPT, LLM_DEFAULT_PROMPT +from .schema import LLMInput, LLMOutput + logger = logging.getLogger(__name__) diff --git a/apps/scheduler/call/mcp/mcp.py b/apps/scheduler/call/mcp/mcp.py index ec25c10c7..349cef9b9 100644 --- a/apps/scheduler/call/mcp/mcp.py +++ b/apps/scheduler/call/mcp/mcp.py @@ -9,12 +9,6 @@ from typing import Any from pydantic import Field from apps.scheduler.call.core import CallError, CoreCall -from apps.scheduler.call.mcp.schema import ( - MCPInput, - MCPMessage, - MCPMessageType, - MCPOutput, -) from apps.scheduler.mcp import MCPHost, MCPPlanner, MCPSelector from apps.schemas.enum_var import CallOutputType from apps.schemas.mcp import MCPPlanItem @@ -24,6 +18,13 @@ from apps.schemas.scheduler import ( CallVars, ) +from .schema import ( + MCPInput, + MCPMessage, + MCPMessageType, + MCPOutput, +) + logger = logging.getLogger(__name__) diff --git a/apps/scheduler/call/rag/rag.py b/apps/scheduler/call/rag/rag.py index e27327d8a..01fa566d9 100644 --- a/apps/scheduler/call/rag/rag.py +++ b/apps/scheduler/call/rag/rag.py @@ -9,10 +9,9 @@ import httpx from fastapi import status from pydantic import Field -from apps.common.config import Config +from apps.common.config import config from apps.llm.patterns.rewrite import QuestionRewrite from apps.scheduler.call.core import CoreCall -from apps.scheduler.call.rag.schema import RAGInput, RAGOutput, SearchMethod from apps.schemas.enum_var import CallOutputType from apps.schemas.scheduler import ( CallError, @@ -21,6 +20,8 @@ from apps.schemas.scheduler import ( CallVars, ) +from .schema import RAGInput, RAGOutput, SearchMethod + logger = logging.getLogger(__name__) @@ -67,7 +68,7 @@ class RAG(CoreCall, input_model=RAGInput, output_model=RAGOutput): self.tokens.input_tokens += question_obj.input_tokens self.tokens.output_tokens += question_obj.output_tokens - url = Config().get_config().rag.rag_service.rstrip("/") + "/chunk/search" + url = config.rag.rag_service.rstrip("/") + "/chunk/search" headers = { "Content-Type": "application/json", "Authorization": f"Bearer {data.session_id}", diff --git a/apps/scheduler/call/search/search.py b/apps/scheduler/call/search/search.py index 73d21d7b9..31ae9d145 100644 --- a/apps/scheduler/call/search/search.py +++ b/apps/scheduler/call/search/search.py @@ -4,7 +4,6 @@ from collections.abc import AsyncGenerator from typing import Any from apps.scheduler.call.core import CoreCall -from apps.scheduler.call.search.schema import SearchInput, SearchOutput from apps.schemas.scheduler import ( CallError, CallInfo, @@ -12,6 +11,8 @@ from apps.schemas.scheduler import ( CallVars, ) +from .schema import SearchInput, SearchOutput + class Search(CoreCall, input_model=SearchInput, output_model=SearchOutput): """搜索工具""" diff --git a/apps/scheduler/call/slot/slot.py b/apps/scheduler/call/slot/slot.py index 4f8e1010c..5f13a672b 100644 --- a/apps/scheduler/call/slot/slot.py +++ b/apps/scheduler/call/slot/slot.py @@ -12,13 +12,14 @@ from pydantic import Field from apps.llm.function import FunctionLLM, JsonGenerator from apps.llm.reasoning import ReasoningLLM from apps.scheduler.call.core import CoreCall -from apps.scheduler.call.slot.prompt import SLOT_GEN_PROMPT -from apps.scheduler.call.slot.schema import SlotInput, SlotOutput from apps.scheduler.slot.slot import Slot as SlotProcessor from apps.schemas.enum_var import CallOutputType from apps.schemas.pool import NodePool from apps.schemas.scheduler import CallInfo, CallOutputChunk, CallVars +from .prompt import SLOT_GEN_PROMPT +from .schema import SlotInput, SlotOutput + if TYPE_CHECKING: from apps.scheduler.executor.step import StepExecutor diff --git a/apps/scheduler/call/sql/sql.py b/apps/scheduler/call/sql/sql.py index 3e24301de..67bccd6f7 100644 --- a/apps/scheduler/call/sql/sql.py +++ b/apps/scheduler/call/sql/sql.py @@ -9,9 +9,8 @@ import httpx from fastapi import status from pydantic import Field -from apps.common.config import Config +from apps.common.config import config from apps.scheduler.call.core import CoreCall -from apps.scheduler.call.sql.schema import SQLInput, SQLOutput from apps.schemas.enum_var import CallOutputType from apps.schemas.scheduler import ( CallError, @@ -20,6 +19,8 @@ from apps.schemas.scheduler import ( CallVars, ) +from .schema import SQLInput, SQLOutput + logger = logging.getLogger(__name__) @@ -64,7 +65,7 @@ class SQL(CoreCall, input_model=SQLInput, output_model=SQLOutput): try: async with httpx.AsyncClient() as client: response = await client.post( - Config().get_config().extra.sql_url + "/database/sql", + config.extra.sql_url + "/database/sql", headers=headers, json=post_data, timeout=60.0, @@ -94,7 +95,7 @@ class SQL(CoreCall, input_model=SQLInput, output_model=SQLOutput): try: async with httpx.AsyncClient() as client: response = await client.post( - Config().get_config().extra.sql_url + "/sql/execute", + config.extra.sql_url + "/sql/execute", headers=headers, json={ "database_id": sql_dict["database_id"], diff --git a/apps/scheduler/call/suggest/suggest.py b/apps/scheduler/call/suggest/suggest.py index 1788fa0f4..b7d981df2 100644 --- a/apps/scheduler/call/suggest/suggest.py +++ b/apps/scheduler/call/suggest/suggest.py @@ -13,13 +13,6 @@ from pydantic.json_schema import SkipJsonSchema from apps.common.security import Security from apps.llm.function import FunctionLLM from apps.scheduler.call.core import CoreCall -from apps.scheduler.call.suggest.prompt import SUGGEST_PROMPT -from apps.scheduler.call.suggest.schema import ( - SingleFlowSuggestionConfig, - SuggestGenResult, - SuggestionInput, - SuggestionOutput, -) from apps.schemas.enum_var import CallOutputType from apps.schemas.pool import NodePool from apps.schemas.record import RecordContent @@ -32,6 +25,14 @@ from apps.schemas.scheduler import ( from apps.services.record import RecordManager from apps.services.user_domain import UserDomainManager +from .prompt import SUGGEST_PROMPT +from .schema import ( + SingleFlowSuggestionConfig, + SuggestGenResult, + SuggestionInput, + SuggestionOutput, +) + if TYPE_CHECKING: from apps.scheduler.executor.step import StepExecutor diff --git a/apps/scheduler/call/summary/summary.py b/apps/scheduler/call/summary/summary.py index b605204e1..1dd99b819 100644 --- a/apps/scheduler/call/summary/summary.py +++ b/apps/scheduler/call/summary/summary.py @@ -8,7 +8,6 @@ from pydantic import Field from apps.llm.patterns.executor import ExecutorSummary from apps.scheduler.call.core import CoreCall, DataBase -from apps.scheduler.call.summary.schema import SummaryOutput from apps.schemas.enum_var import CallOutputType from apps.schemas.pool import NodePool from apps.schemas.scheduler import ( @@ -18,6 +17,8 @@ from apps.schemas.scheduler import ( ExecutorBackground, ) +from .schema import SummaryOutput + if TYPE_CHECKING: from apps.scheduler.executor.step import StepExecutor diff --git a/apps/scheduler/executor/flow.py b/apps/scheduler/executor/flow.py index a70d0d707..8a3b21d9c 100644 --- a/apps/scheduler/executor/flow.py +++ b/apps/scheduler/executor/flow.py @@ -9,14 +9,15 @@ from datetime import UTC, datetime from pydantic import Field from apps.scheduler.call.llm.prompt import LLM_ERROR_PROMPT -from apps.scheduler.executor.base import BaseExecutor -from apps.scheduler.executor.step import StepExecutor from apps.schemas.enum_var import EventType, SpecialCallType, StepStatus from apps.schemas.flow import Flow, Step from apps.schemas.request_data import RequestDataApp from apps.schemas.task import ExecutorState, StepQueueItem from apps.services.task import TaskManager +from .base import BaseExecutor +from .step import StepExecutor + logger = logging.getLogger(__name__) # 开始前的固定步骤 FIXED_STEPS_BEFORE_START = [ diff --git a/apps/scheduler/executor/qa.py b/apps/scheduler/executor/qa.py index ccbc4b0cf..e3d75e9d2 100644 --- a/apps/scheduler/executor/qa.py +++ b/apps/scheduler/executor/qa.py @@ -1,5 +1,5 @@ """用于执行智能问答的Executor""" -from apps.scheduler.executor.base import BaseExecutor +from .base import BaseExecutor class QAExecutor(BaseExecutor): diff --git a/apps/scheduler/executor/step.py b/apps/scheduler/executor/step.py index 6b3451fa9..ef05c3696 100644 --- a/apps/scheduler/executor/step.py +++ b/apps/scheduler/executor/step.py @@ -16,7 +16,6 @@ from apps.scheduler.call.facts.facts import FactsCall from apps.scheduler.call.slot.schema import SlotOutput from apps.scheduler.call.slot.slot import Slot from apps.scheduler.call.summary.summary import Summary -from apps.scheduler.executor.base import BaseExecutor from apps.scheduler.pool.pool import Pool from apps.schemas.enum_var import ( EventType, @@ -28,6 +27,8 @@ from apps.schemas.scheduler import CallError, CallOutputChunk from apps.schemas.task import FlowStepHistory, StepQueueItem from apps.services.node import NodeManager +from .base import BaseExecutor + logger = logging.getLogger(__name__) diff --git a/apps/scheduler/mcp/__init__.py b/apps/scheduler/mcp/__init__.py index 12f5cb68c..89cb4e735 100644 --- a/apps/scheduler/mcp/__init__.py +++ b/apps/scheduler/mcp/__init__.py @@ -1,8 +1,8 @@ # Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved. """Scheduler MCP 模块""" -from apps.scheduler.mcp.host import MCPHost -from apps.scheduler.mcp.plan import MCPPlanner -from apps.scheduler.mcp.select import MCPSelector +from .host import MCPHost +from .plan import MCPPlanner +from .select import MCPSelector __all__ = ["MCPHost", "MCPPlanner", "MCPSelector"] diff --git a/apps/scheduler/mcp/plan.py b/apps/scheduler/mcp/plan.py index cd4f5975e..50224567e 100644 --- a/apps/scheduler/mcp/plan.py +++ b/apps/scheduler/mcp/plan.py @@ -6,9 +6,10 @@ from jinja2.sandbox import SandboxedEnvironment from apps.llm.function import JsonGenerator from apps.llm.reasoning import ReasoningLLM -from apps.scheduler.mcp.prompt import CREATE_PLAN, FINAL_ANSWER from apps.schemas.mcp import MCPPlan, MCPTool +from .prompt import CREATE_PLAN, FINAL_ANSWER + class MCPPlanner: """MCP 用户目标拆解与规划""" diff --git a/apps/scheduler/mcp/select.py b/apps/scheduler/mcp/select.py index 2ff503447..e3b5af84e 100644 --- a/apps/scheduler/mcp/select.py +++ b/apps/scheduler/mcp/select.py @@ -11,15 +11,14 @@ from apps.common.mongo import MongoDB from apps.llm.embedding import Embedding from apps.llm.function import FunctionLLM from apps.llm.reasoning import ReasoningLLM -from apps.scheduler.mcp.prompt import ( - MCP_SELECT, -) from apps.schemas.mcp import ( MCPCollection, MCPSelectResult, MCPTool, ) +from .prompt import MCP_SELECT + logger = logging.getLogger(__name__) diff --git a/apps/scheduler/mcp_agent/agent/base.py b/apps/scheduler/mcp_agent/agent/base.py index eccb58a9c..69b06bc3a 100644 --- a/apps/scheduler/mcp_agent/agent/base.py +++ b/apps/scheduler/mcp_agent/agent/base.py @@ -6,10 +6,10 @@ from contextlib import asynccontextmanager from pydantic import BaseModel, Field, model_validator from apps.common.queue import MessageQueue -from apps.schemas.enum_var import AgentState -from apps.schemas.task import Task from apps.llm.reasoning import ReasoningLLM from apps.scheduler.mcp_agent.schema import Memory, Message, Role +from apps.schemas.enum_var import AgentState +from apps.schemas.task import Task from apps.services.activity import Activity logger = logging.getLogger(__name__) diff --git a/apps/scheduler/mcp_agent/agent/mcp.py b/apps/scheduler/mcp_agent/agent/mcp.py index 378da368a..f30922632 100644 --- a/apps/scheduler/mcp_agent/agent/mcp.py +++ b/apps/scheduler/mcp_agent/agent/mcp.py @@ -4,9 +4,10 @@ import logging from pydantic import Field from apps.scheduler.mcp.host import MCPHost -from apps.scheduler.mcp_agent.agent.toolcall import ToolCallAgent from apps.scheduler.mcp_agent.tool import Terminate, ToolCollection +from .toolcall import ToolCallAgent + logger = logging.getLogger(__name__) diff --git a/apps/scheduler/mcp_agent/agent/react.py b/apps/scheduler/mcp_agent/agent/react.py index b56efd8b1..15dcaac32 100644 --- a/apps/scheduler/mcp_agent/agent/react.py +++ b/apps/scheduler/mcp_agent/agent/react.py @@ -2,10 +2,11 @@ from abc import ABC, abstractmethod from pydantic import Field -from apps.schemas.enum_var import AgentState from apps.llm.reasoning import ReasoningLLM -from apps.scheduler.mcp_agent.agent.base import BaseAgent from apps.scheduler.mcp_agent.schema import Memory +from apps.schemas.enum_var import AgentState + +from .base import BaseAgent class ReActAgent(BaseAgent, ABC): diff --git a/apps/scheduler/mcp_agent/agent/toolcall.py b/apps/scheduler/mcp_agent/agent/toolcall.py index 1e22099ce..dc00ebef3 100644 --- a/apps/scheduler/mcp_agent/agent/toolcall.py +++ b/apps/scheduler/mcp_agent/agent/toolcall.py @@ -5,12 +5,12 @@ from typing import Any, Optional from pydantic import Field -from apps.schemas.enum_var import AgentState from apps.llm.function import JsonGenerator from apps.llm.patterns import Select from apps.scheduler.mcp_agent.agent.react import ReActAgent from apps.scheduler.mcp_agent.schema import Function, Message, ToolCall from apps.scheduler.mcp_agent.tool import Terminate, ToolCollection +from apps.schemas.enum_var import AgentState logger = logging.getLogger(__name__) diff --git a/apps/scheduler/pool/check.py b/apps/scheduler/pool/check.py index 3a76f6c65..b3cf1852b 100644 --- a/apps/scheduler/pool/check.py +++ b/apps/scheduler/pool/check.py @@ -6,7 +6,7 @@ from hashlib import sha256 from anyio import Path -from apps.common.config import Config +from apps.common.config import config from apps.common.mongo import MongoDB from apps.schemas.enum_var import MetadataType @@ -19,7 +19,7 @@ class FileChecker: def __init__(self) -> None: """初始化文件检查器""" self.hashes = {} - self._dir_path = Path(Config().get_config().deploy.data_dir) / "semantics" + self._dir_path = Path(config.deploy.data_dir) / "semantics" async def check_one(self, path: Path) -> dict[str, str]: """检查单个App/Service文件是否有变动""" @@ -44,7 +44,7 @@ class FileChecker: async def diff_one(self, path: Path, previous_hashes: dict[str, str] | None = None) -> bool: """检查文件是否发生变化""" self._resource_path = path - semantics_path = Path(Config().get_config().deploy.data_dir) / "semantics" + semantics_path = Path(config.deploy.data_dir) / "semantics" path_diff = self._resource_path.relative_to(semantics_path) self.hashes[path_diff.as_posix()] = await self.check_one(path) return self.hashes[path_diff.as_posix()] != previous_hashes @@ -54,10 +54,10 @@ class FileChecker: """生成更新列表和删除列表""" if check_type == MetadataType.APP: collection = MongoDB().get_collection("app") - self._dir_path = Path(Config().get_config().deploy.data_dir) / "semantics" / "app" + self._dir_path = Path(config.deploy.data_dir) / "semantics" / "app" elif check_type == MetadataType.SERVICE: collection = MongoDB().get_collection("service") - self._dir_path = Path(Config().get_config().deploy.data_dir) / "semantics" / "service" + self._dir_path = Path(config.deploy.data_dir) / "semantics" / "service" changed_list = [] deleted_list = [] diff --git a/apps/scheduler/pool/loader/__init__.py b/apps/scheduler/pool/loader/__init__.py index 4f229a132..c78ef6c4c 100644 --- a/apps/scheduler/pool/loader/__init__.py +++ b/apps/scheduler/pool/loader/__init__.py @@ -1,11 +1,11 @@ # Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved. """配置加载器""" -from apps.scheduler.pool.loader.app import AppLoader -from apps.scheduler.pool.loader.call import CallLoader -from apps.scheduler.pool.loader.flow import FlowLoader -from apps.scheduler.pool.loader.mcp import MCPLoader -from apps.scheduler.pool.loader.service import ServiceLoader +from .app import AppLoader +from .call import CallLoader +from .flow import FlowLoader +from .mcp import MCPLoader +from .service import ServiceLoader __all__ = [ "AppLoader", diff --git a/apps/scheduler/pool/loader/app.py b/apps/scheduler/pool/loader/app.py index a85395bfc..50d571e92 100644 --- a/apps/scheduler/pool/loader/app.py +++ b/apps/scheduler/pool/loader/app.py @@ -7,18 +7,19 @@ import shutil from anyio import Path from fastapi.encoders import jsonable_encoder -from apps.common.config import Config +from apps.common.config import config +from apps.common.mongo import MongoDB +from apps.scheduler.pool.check import FileChecker from apps.schemas.agent import AgentAppMetadata from apps.schemas.enum_var import AppType from apps.schemas.flow import AppFlow, AppMetadata, MetadataType, Permission from apps.schemas.pool import AppPool -from apps.common.mongo import MongoDB -from apps.scheduler.pool.check import FileChecker -from apps.scheduler.pool.loader.flow import FlowLoader -from apps.scheduler.pool.loader.metadata import MetadataLoader + +from .flow import FlowLoader +from .metadata import MetadataLoader logger = logging.getLogger(__name__) -BASE_PATH = Path(Config().get_config().deploy.data_dir) / "semantics" / "app" +BASE_PATH = Path(config.deploy.data_dir) / "semantics" / "app" class AppLoader: diff --git a/apps/scheduler/pool/loader/call.py b/apps/scheduler/pool/loader/call.py index 283448786..fb1b36af4 100644 --- a/apps/scheduler/pool/loader/call.py +++ b/apps/scheduler/pool/loader/call.py @@ -9,17 +9,17 @@ from hashlib import shake_128 from pathlib import Path import apps.scheduler.call as system_call -from apps.common.config import Config +from apps.common.config import config +from apps.common.lance import LanceDB +from apps.common.mongo import MongoDB from apps.common.singleton import SingletonMeta +from apps.llm.embedding import Embedding +from apps.models.vector import CallPoolVector from apps.schemas.enum_var import CallType from apps.schemas.pool import CallPool, NodePool -from apps.models.vector import CallPoolVector -from apps.llm.embedding import Embedding -from apps.common.lance import LanceDB -from apps.common.mongo import MongoDB logger = logging.getLogger(__name__) -BASE_PATH = Path(Config().get_config().deploy.data_dir) / "semantics" / "call" +BASE_PATH = Path(config.deploy.data_dir) / "semantics" / "call" class CallLoader(metaclass=SingletonMeta): diff --git a/apps/scheduler/pool/loader/flow.py b/apps/scheduler/pool/loader/flow.py index 57344d40a..1f7e13ab5 100644 --- a/apps/scheduler/pool/loader/flow.py +++ b/apps/scheduler/pool/loader/flow.py @@ -1,7 +1,6 @@ # Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved. """Flow加载器""" -import asyncio import logging from hashlib import sha256 from typing import Any @@ -10,19 +9,20 @@ import aiofiles import yaml from anyio import Path -from apps.common.config import Config +from apps.common.config import config +from apps.common.mongo import MongoDB +from apps.llm.embedding import Embedding +from apps.scheduler.util import yaml_enum_presenter, yaml_str_presenter from apps.schemas.enum_var import EdgeType from apps.schemas.flow import AppFlow, Flow from apps.schemas.pool import AppPool from apps.models.vector import FlowPoolVector -from apps.llm.embedding import Embedding from apps.services.node import NodeManager from apps.common.lance import LanceDB -from apps.common.mongo import MongoDB -from apps.scheduler.util import yaml_enum_presenter, yaml_str_presenter logger = logging.getLogger(__name__) -BASE_PATH = Path(Config().get_config().deploy.data_dir) / "semantics" / "app" +BASE_PATH = Path(config.deploy.data_dir) / "semantics" / "app" + class FlowLoader: """工作流加载器""" @@ -190,7 +190,7 @@ class FlowLoader: logger.warning("[FlowLoader] 工作流文件不存在或不是文件:%s", flow_path) return True - async def _update_db(self, app_id: str, metadata: AppFlow) -> None: # noqa: C901 + async def _update_db(self, app_id: str, metadata: AppFlow) -> None: """更新数据库""" try: app_collection = MongoDB().get_collection("app") diff --git a/apps/scheduler/pool/loader/metadata.py b/apps/scheduler/pool/loader/metadata.py index c5c38cd95..002fa45ae 100644 --- a/apps/scheduler/pool/loader/metadata.py +++ b/apps/scheduler/pool/loader/metadata.py @@ -8,17 +8,17 @@ import yaml from anyio import Path from fastapi.encoders import jsonable_encoder -from apps.common.config import Config +from apps.common.config import config +from apps.scheduler.util import yaml_str_presenter from apps.schemas.agent import AgentAppMetadata from apps.schemas.enum_var import AppType, MetadataType from apps.schemas.flow import ( AppMetadata, ServiceMetadata, ) -from apps.scheduler.util import yaml_str_presenter logger = logging.getLogger(__name__) -BASE_PATH = Path(Config().get_config().deploy.data_dir) / "semantics" +BASE_PATH = Path(config.deploy.data_dir) / "semantics" class MetadataLoader: diff --git a/apps/scheduler/pool/loader/service.py b/apps/scheduler/pool/loader/service.py index 2b9060461..2e640e50c 100644 --- a/apps/scheduler/pool/loader/service.py +++ b/apps/scheduler/pool/loader/service.py @@ -8,19 +8,20 @@ import shutil from anyio import Path from fastapi.encoders import jsonable_encoder -from apps.common.config import Config -from apps.schemas.flow import Permission, ServiceMetadata -from apps.schemas.pool import NodePool, ServicePool -from apps.models.vector import NodePoolVector, ServicePoolVector -from apps.llm.embedding import Embedding +from apps.common.config import config from apps.common.lance import LanceDB from apps.common.mongo import MongoDB +from apps.llm.embedding import Embedding +from apps.models.vector import NodePoolVector, ServicePoolVector from apps.scheduler.pool.check import FileChecker -from apps.scheduler.pool.loader.metadata import MetadataLoader, MetadataType -from apps.scheduler.pool.loader.openapi import OpenAPILoader +from apps.schemas.flow import Permission, ServiceMetadata +from apps.schemas.pool import NodePool, ServicePool + +from .metadata import MetadataLoader, MetadataType +from .openapi import OpenAPILoader logger = logging.getLogger(__name__) -BASE_PATH = Path(Config().get_config().deploy.data_dir) / "semantics" / "service" +BASE_PATH = Path(config.deploy.data_dir) / "semantics" / "service" class ServiceLoader: diff --git a/apps/scheduler/pool/pool.py b/apps/scheduler/pool/pool.py index 7710d24dc..94e6b5eb6 100644 --- a/apps/scheduler/pool/pool.py +++ b/apps/scheduler/pool/pool.py @@ -7,19 +7,20 @@ from typing import Any from anyio import Path -from apps.common.config import Config +from apps.common.config import config from apps.common.mongo import MongoDB -from apps.scheduler.pool.check import FileChecker -from apps.scheduler.pool.loader import ( +from apps.schemas.enum_var import MetadataType +from apps.schemas.flow import Flow +from apps.schemas.pool import AppFlow, CallPool + +from .check import FileChecker +from .loader import ( AppLoader, CallLoader, FlowLoader, MCPLoader, ServiceLoader, ) -from apps.schemas.enum_var import MetadataType -from apps.schemas.flow import Flow -from apps.schemas.pool import AppFlow, CallPool logger = logging.getLogger(__name__) @@ -42,7 +43,7 @@ class Pool: :return: 无 """ - root_dir = Config().get_config().deploy.data_dir.rstrip("/") + "/semantics/" + root_dir = config.deploy.data_dir.rstrip("/") + "/semantics/" if not await Path(root_dir + "app").exists() or not await Path(root_dir + "app").is_dir(): logger.warning("[Pool] App目录%s不存在,创建中", root_dir + "app") await Path(root_dir + "app").unlink(missing_ok=True) diff --git a/apps/scheduler/scheduler/message.py b/apps/scheduler/scheduler/message.py index 3012d75e1..9b4fccadf 100644 --- a/apps/scheduler/scheduler/message.py +++ b/apps/scheduler/scheduler/message.py @@ -5,7 +5,7 @@ import logging from datetime import UTC, datetime from textwrap import dedent -from apps.common.config import Config +from apps.common.config import config from apps.common.queue import MessageQueue from apps.schemas.collection import LLM, Document from apps.schemas.enum_var import EventType @@ -31,14 +31,14 @@ async def push_init_message( # 组装feature if is_flow: feature = InitContentFeature( - maxTokens=Config().get_config().llm.max_tokens or 0, + maxTokens=config.llm.max_tokens or 0, contextNum=context_num, enableFeedback=False, enableRegenerate=False, ) else: feature = InitContentFeature( - maxTokens=Config().get_config().llm.max_tokens or 0, + maxTokens=config.llm.max_tokens or 0, contextNum=context_num, enableFeedback=True, enableRegenerate=True, diff --git a/apps/scheduler/scheduler/scheduler.py b/apps/scheduler/scheduler/scheduler.py index 39244160c..82281b7f1 100644 --- a/apps/scheduler/scheduler/scheduler.py +++ b/apps/scheduler/scheduler/scheduler.py @@ -4,7 +4,7 @@ import logging from datetime import UTC, datetime -from apps.common.config import Config +from apps.common.config import config from apps.common.mongo import MongoDB from apps.common.queue import MessageQueue from apps.scheduler.executor.agent import MCPAgentExecutor @@ -60,10 +60,10 @@ class Scheduler: llm = LLM( _id="empty", user_sub=self.task.ids.user_sub, - openai_base_url=Config().get_config().llm.endpoint, - openai_api_key=Config().get_config().llm.key, - model_name=Config().get_config().llm.model, - max_tokens=Config().get_config().llm.max_tokens, + openai_base_url=config.llm.endpoint, + openai_api_key=config.llm.key, + model_name=config.llm.model, + max_tokens=config.llm.max_tokens, ) else: llm = await LLMManager.get_llm_by_id(self.task.ids.user_sub, llm_id) diff --git a/apps/scheduler/slot/parser/__init__.py b/apps/scheduler/slot/parser/__init__.py index 81ae4413f..7d4a577cf 100644 --- a/apps/scheduler/slot/parser/__init__.py +++ b/apps/scheduler/slot/parser/__init__.py @@ -1,10 +1,10 @@ # Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved. """Slot处理模块""" -from apps.scheduler.slot.parser.const import SlotConstParser -from apps.scheduler.slot.parser.date import SlotDateParser -from apps.scheduler.slot.parser.default import SlotDefaultParser -from apps.scheduler.slot.parser.timestamp import SlotTimestampParser +from .const import SlotConstParser +from .date import SlotDateParser +from .default import SlotDefaultParser +from .timestamp import SlotTimestampParser __all__ = [ "SlotConstParser", diff --git a/apps/scheduler/slot/slot.py b/apps/scheduler/slot/slot.py index 4caab4d2d..1b372e9ed 100644 --- a/apps/scheduler/slot/slot.py +++ b/apps/scheduler/slot/slot.py @@ -12,13 +12,13 @@ from jsonschema.exceptions import ValidationError from jsonschema.protocols import Validator from jsonschema.validators import extend -from apps.scheduler.slot.parser import ( +from .parser import ( SlotConstParser, SlotDateParser, SlotDefaultParser, SlotTimestampParser, ) -from apps.scheduler.slot.util import escape_path, patch_json +from .util import escape_path, patch_json logger = logging.getLogger(__name__) diff --git a/apps/schemas/agent.py b/apps/schemas/agent.py index b52f5e1c3..2c6c5f234 100644 --- a/apps/schemas/agent.py +++ b/apps/schemas/agent.py @@ -3,11 +3,11 @@ from pydantic import Field -from apps.schemas.enum_var import ( +from .enum_var import ( AppType, MetadataType, ) -from apps.schemas.flow import MetadataBase, Permission +from .flow import MetadataBase, Permission class AgentAppMetadata(MetadataBase): diff --git a/apps/schemas/api_key.py b/apps/schemas/api_key.py index f486a125c..9f0083c33 100644 --- a/apps/schemas/api_key.py +++ b/apps/schemas/api_key.py @@ -3,7 +3,7 @@ from pydantic import BaseModel -from apps.schemas.response_data import ResponseData +from .response_data import ResponseData class _GetAuthKeyMsg(BaseModel): diff --git a/apps/schemas/appcenter.py b/apps/schemas/appcenter.py index a89f39df1..42bb1d482 100644 --- a/apps/schemas/appcenter.py +++ b/apps/schemas/appcenter.py @@ -3,7 +3,7 @@ from pydantic import BaseModel, Field -from apps.schemas.enum_var import AppType, PermissionType +from .enum_var import AppType, PermissionType class AppCenterCardItem(BaseModel): diff --git a/apps/schemas/collection.py b/apps/schemas/collection.py index 1d6aa097d..ae2b452fa 100644 --- a/apps/schemas/collection.py +++ b/apps/schemas/collection.py @@ -6,7 +6,7 @@ from datetime import UTC, datetime from pydantic import BaseModel, Field -from apps.common.config import Config +from apps.common.config import config from apps.constants import NEW_CHAT from apps.templates.generate_llm_operator_config import llm_provider_dict @@ -73,10 +73,10 @@ class LLM(BaseModel): id: str = Field(default_factory=lambda: str(uuid.uuid4()), alias="_id") user_sub: str = Field(default="", description="用户ID") icon: str = Field(default=llm_provider_dict["ollama"]["icon"], description="图标") - openai_base_url: str = Field(default=Config().get_config().llm.endpoint) - openai_api_key: str = Field(default=Config().get_config().llm.key) - model_name: str = Field(default=Config().get_config().llm.model) - max_tokens: int | None = Field(default=Config().get_config().llm.max_tokens) + openai_base_url: str = Field(default=config.llm.endpoint) + openai_api_key: str = Field(default=config.llm.key) + model_name: str = Field(default=config.llm.model) + max_tokens: int | None = Field(default=config.llm.max_tokens) created_at: float = Field(default_factory=lambda: round(datetime.now(tz=UTC).timestamp(), 3)) @@ -84,7 +84,7 @@ class LLMItem(BaseModel): """大模型信息""" llm_id: str = Field(default="empty") - model_name: str = Field(default=Config().get_config().llm.model) + model_name: str = Field(default=config.llm.model) icon: str = Field(default=llm_provider_dict["ollama"]["icon"]) diff --git a/apps/schemas/config.py b/apps/schemas/config.py index b88a81f1a..eb0ad66bf 100644 --- a/apps/schemas/config.py +++ b/apps/schemas/config.py @@ -77,6 +77,16 @@ class MongoDBConfig(BaseModel): database: str = Field(description="MongoDB数据库名") +class PostgresConfig(BaseModel): + """Postgres配置""" + + host: str = Field(description="Postgres主机名") + port: int = Field(description="Postgres端口号", default=5432) + user: str = Field(description="Postgres用户名") + password: str = Field(description="Postgres密码") + database: str = Field(description="Postgres数据库名") + + class LLMConfig(BaseModel): """LLM配置""" @@ -130,6 +140,7 @@ class ConfigModel(BaseModel): fastapi: FastAPIConfig minio: MinioConfig mongodb: MongoDBConfig + postgres: PostgresConfig llm: LLMConfig function_call: FunctionCallConfig security: SecurityConfig diff --git a/apps/schemas/enum_var.py b/apps/schemas/enum_var.py index 9a20ba84d..9f171f7bc 100644 --- a/apps/schemas/enum_var.py +++ b/apps/schemas/enum_var.py @@ -34,7 +34,7 @@ class EventType(str, Enum): """事件类型""" HEARTBEAT = "heartbeat" - INIT = "init", + INIT = "init" TEXT_ADD = "text.add" GRAPH = "graph" DOCUMENT_ADD = "document.add" diff --git a/apps/schemas/flow.py b/apps/schemas/flow.py index 2646d0439..542f74074 100644 --- a/apps/schemas/flow.py +++ b/apps/schemas/flow.py @@ -5,14 +5,14 @@ from typing import Any from pydantic import BaseModel, Field -from apps.schemas.appcenter import AppLink -from apps.schemas.enum_var import ( +from .appcenter import AppLink +from .enum_var import ( AppType, EdgeType, MetadataType, PermissionType, ) -from apps.schemas.flow_topology import PositionItem +from .flow_topology import PositionItem class Edge(BaseModel): diff --git a/apps/schemas/flow_topology.py b/apps/schemas/flow_topology.py index d0ab666a9..17f4baba2 100644 --- a/apps/schemas/flow_topology.py +++ b/apps/schemas/flow_topology.py @@ -5,7 +5,7 @@ from typing import Any from pydantic import BaseModel, Field -from apps.schemas.enum_var import EdgeType +from .enum_var import EdgeType class NodeMetaDataItem(BaseModel): diff --git a/apps/schemas/message.py b/apps/schemas/message.py index 0d9ea7ce7..180a5f46d 100644 --- a/apps/schemas/message.py +++ b/apps/schemas/message.py @@ -5,8 +5,8 @@ from typing import Any from pydantic import BaseModel, Field -from apps.schemas.enum_var import EventType, StepStatus -from apps.schemas.record import RecordMetadata +from .enum_var import EventType, StepStatus +from .record import RecordMetadata class HeartbeatData(BaseModel): diff --git a/apps/schemas/node.py b/apps/schemas/node.py index 6c4823db5..2803bc909 100644 --- a/apps/schemas/node.py +++ b/apps/schemas/node.py @@ -5,7 +5,7 @@ from typing import Any from pydantic import BaseModel, Field -from apps.schemas.pool import NodePool +from .pool import NodePool class APINodeInput(BaseModel): diff --git a/apps/schemas/pool.py b/apps/schemas/pool.py index 27e16b370..0e9cef22d 100644 --- a/apps/schemas/pool.py +++ b/apps/schemas/pool.py @@ -6,9 +6,9 @@ from typing import Any from pydantic import BaseModel, Field -from apps.schemas.appcenter import AppLink -from apps.schemas.enum_var import AppType, CallType, PermissionType -from apps.schemas.flow import AppFlow, Permission +from .appcenter import AppLink +from .enum_var import AppType, CallType, PermissionType +from .flow import AppFlow, Permission class BaseData(BaseModel): diff --git a/apps/schemas/record.py b/apps/schemas/record.py index 505699c4e..d6117d8c1 100644 --- a/apps/schemas/record.py +++ b/apps/schemas/record.py @@ -7,10 +7,10 @@ from typing import Any, Literal from pydantic import BaseModel, Field -from apps.schemas.collection import ( +from .collection import ( Document, ) -from apps.schemas.enum_var import CommentType, StepStatus +from .enum_var import CommentType, StepStatus class RecordDocument(Document): diff --git a/apps/schemas/request_data.py b/apps/schemas/request_data.py index 2305dd93d..e5bd09cfe 100644 --- a/apps/schemas/request_data.py +++ b/apps/schemas/request_data.py @@ -5,11 +5,12 @@ from typing import Any from pydantic import BaseModel, Field -from apps.common.config import Config -from apps.schemas.appcenter import AppData -from apps.schemas.enum_var import CommentType -from apps.schemas.flow_topology import FlowItem -from apps.schemas.mcp import MCPType +from apps.common.config import config + +from .appcenter import AppData +from .enum_var import CommentType +from .flow_topology import FlowItem +from .mcp import MCPType class RequestDataApp(BaseModel): @@ -32,7 +33,7 @@ class MockRequestData(BaseModel): class RequestDataFeatures(BaseModel): """POST /api/chat的features字段数据""" - max_tokens: int | None = Field(default=Config().get_config().llm.max_tokens, description="最大生成token数") + max_tokens: int | None = Field(default=config.llm.max_tokens, description="最大生成token数") context_num: int = Field(default=5, description="上下文消息数量", le=10, ge=0) diff --git a/apps/schemas/response_data.py b/apps/schemas/response_data.py index b2a187291..5ee70a83d 100644 --- a/apps/schemas/response_data.py +++ b/apps/schemas/response_data.py @@ -5,19 +5,20 @@ from typing import Any from pydantic import BaseModel, Field -from apps.schemas.appcenter import AppCenterCardItem, AppData -from apps.schemas.collection import Blacklist, Document -from apps.schemas.enum_var import DocumentStatus -from apps.schemas.flow_topology import ( +from apps.templates.generate_llm_operator_config import llm_provider_dict + +from .appcenter import AppCenterCardItem, AppData +from .collection import Blacklist, Document +from .enum_var import DocumentStatus +from .flow_topology import ( FlowItem, NodeMetaDataItem, NodeServiceItem, PositionItem, ) -from apps.schemas.mcp import MCPInstallStatus, MCPTool, MCPType -from apps.schemas.record import RecordData -from apps.schemas.user import UserInfo -from apps.templates.generate_llm_operator_config import llm_provider_dict +from .mcp import MCPInstallStatus, MCPTool, MCPType +from .record import RecordData +from .user import UserInfo class ResponseData(BaseModel): diff --git a/apps/schemas/scheduler.py b/apps/schemas/scheduler.py index 38fd94ad4..2eb4cb84a 100644 --- a/apps/schemas/scheduler.py +++ b/apps/schemas/scheduler.py @@ -5,8 +5,8 @@ from typing import Any from pydantic import BaseModel, Field -from apps.schemas.enum_var import CallOutputType -from apps.schemas.task import FlowStepHistory +from .enum_var import CallOutputType +from .task import FlowStepHistory class CallInfo(BaseModel): diff --git a/apps/schemas/task.py b/apps/schemas/task.py index 9d40a5d20..2b43cd9b2 100644 --- a/apps/schemas/task.py +++ b/apps/schemas/task.py @@ -7,8 +7,8 @@ from typing import Any from pydantic import BaseModel, Field -from apps.schemas.enum_var import StepStatus -from apps.schemas.flow import Step +from .enum_var import StepStatus +from .flow import Step class FlowStepHistory(BaseModel): -- Gitee From 942bacf635e6b798b631bc05da910257baeb2707 Mon Sep 17 00:00:00 2001 From: z30057876 Date: Tue, 1 Jul 2025 11:36:37 +0800 Subject: [PATCH 3/8] =?UTF-8?q?=E4=BF=AE=E6=AD=A3key?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/scheduler/call/mcp/mcp.py | 2 +- apps/scheduler/mcp/host.py | 2 +- apps/scheduler/mcp/prompt.py | 2 +- apps/schemas/mcp.py | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/scheduler/call/mcp/mcp.py b/apps/scheduler/call/mcp/mcp.py index 349cef9b9..e84b56cb3 100644 --- a/apps/scheduler/call/mcp/mcp.py +++ b/apps/scheduler/call/mcp/mcp.py @@ -96,7 +96,7 @@ class MCP(CoreCall, input_model=MCPInput, output_model=MCPOutput): # 输出计划 plan_str = "\n\n" for plan_item in self._plan.plans: - plan_str += f"[+] {plan_item.plan}; {plan_item.tool}[{plan_item.instruction}]\n\n" + plan_str += f"[+] {plan_item.content}; {plan_item.tool}[{plan_item.instruction}]\n\n" yield self._create_output( f"[MCP] 计划生成完成:\n\n{plan_str}\n\n\n\n", diff --git a/apps/scheduler/mcp/host.py b/apps/scheduler/mcp/host.py index b1a56683a..78aa7bc3e 100644 --- a/apps/scheduler/mcp/host.py +++ b/apps/scheduler/mcp/host.py @@ -108,7 +108,7 @@ class MCPHost: step_id=tool.name, step_name=tool.name, # description是规划的实际内容 - step_description=plan_item.plan, + step_description=plan_item.content, status=StepStatus.SUCCESS, input_data=input_data, output_data=output_data, diff --git a/apps/scheduler/mcp/prompt.py b/apps/scheduler/mcp/prompt.py index d6d8243ba..b322fb088 100644 --- a/apps/scheduler/mcp/prompt.py +++ b/apps/scheduler/mcp/prompt.py @@ -197,7 +197,7 @@ EVALUATE_PLAN = dedent(r""" ```json { "evaluation": "评估结果", - "plan": [ + "plans": [ { "content": "改进后的计划内容", "tool": "工具ID", diff --git a/apps/schemas/mcp.py b/apps/schemas/mcp.py index 4d80cfc5d..44021b0ed 100644 --- a/apps/schemas/mcp.py +++ b/apps/schemas/mcp.py @@ -118,7 +118,7 @@ class MCPToolSelectResult(BaseModel): class MCPPlanItem(BaseModel): """MCP 计划""" - plan: str = Field(description="计划内容") + content: str = Field(description="计划内容") tool: str = Field(description="工具名称") instruction: str = Field(description="工具指令") -- Gitee From 411c403c3a695e45ba6d97134ddb809a6296cf5b Mon Sep 17 00:00:00 2001 From: ylzhangah <1194926515@qq.com> Date: Tue, 1 Jul 2025 16:21:38 +0800 Subject: [PATCH 4/8] =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=83=A8=E7=BD=B2?= =?UTF-8?q?=E6=8C=87=E5=8D=97=E7=9A=84faq=E5=92=8C=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E4=B8=80=E4=BA=9B=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deploy/chart/authhub/templates/NOTES.txt | 2 +- deploy/chart/databases/templates/NOTES.txt | 2 +- .../chart/euler_copilot/templates/NOTES.txt | 2 +- .../install_eulercopilot.sh | 2 +- .../scripts/9-other-script/import_images.sh | 8 +- ...5\347\275\256\344\275\215\347\275\256.png" | Bin 0 -> 436847 bytes ...50\347\275\262\346\214\207\345\215\227.md" | 100 ++++++++++------ ...50\347\275\262\346\214\207\345\215\227.md" | 113 +++++++++++------- 8 files changed, 142 insertions(+), 87 deletions(-) create mode 100644 "documents/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/\346\250\241\345\236\213\351\205\215\347\275\256\344\275\215\347\275\256.png" diff --git a/deploy/chart/authhub/templates/NOTES.txt b/deploy/chart/authhub/templates/NOTES.txt index af7fd5871..2589763fe 100644 --- a/deploy/chart/authhub/templates/NOTES.txt +++ b/deploy/chart/authhub/templates/NOTES.txt @@ -1,5 +1,5 @@ 感谢您使用openEuler Intelligence! -当前为0.9.5版本。 +当前为0.9.6版本。 当前Chart的功能为:AuthHub统一登录系统部署。 说明: diff --git a/deploy/chart/databases/templates/NOTES.txt b/deploy/chart/databases/templates/NOTES.txt index 8ea1bb0b4..c3d1f5945 100644 --- a/deploy/chart/databases/templates/NOTES.txt +++ b/deploy/chart/databases/templates/NOTES.txt @@ -1,3 +1,3 @@ 感谢您使用openEuler Intelligence! -当前为0.9.5版本。 +当前为0.9.6版本。 当前Chart的功能为:数据库部署。 diff --git a/deploy/chart/euler_copilot/templates/NOTES.txt b/deploy/chart/euler_copilot/templates/NOTES.txt index 65265e06c..ec7debb6b 100644 --- a/deploy/chart/euler_copilot/templates/NOTES.txt +++ b/deploy/chart/euler_copilot/templates/NOTES.txt @@ -1,5 +1,5 @@ 感谢您使用openEuler Intelligence! -当前为0.9.5版本。 +当前为0.9.6版本。 当前Chart的功能为:openEuler Intelligence核心组件部署。 更多项目动态和分享会议,请关注openEuler sig-intelligence:https://www.openeuler.org/en/sig/sig-detail/?name=sig-intelligence diff --git a/deploy/scripts/8-install-EulerCopilot/install_eulercopilot.sh b/deploy/scripts/8-install-EulerCopilot/install_eulercopilot.sh index 6458d7c81..1ff60f727 100755 --- a/deploy/scripts/8-install-EulerCopilot/install_eulercopilot.sh +++ b/deploy/scripts/8-install-EulerCopilot/install_eulercopilot.sh @@ -253,7 +253,7 @@ modify_yaml() { # 如果不需要保留模型配置,则添加模型相关的参数 if [[ "$preserve_models" != [Yy]* ]]; then set_args+=( - "--set" "models.answer.endpoint=http://$host:11434" + "--set" "models.answer.endpoint=http://$host:11434/v1" "--set" "models.answer.key=sk-123456" "--set" "models.answer.name=deepseek-llm-7b-chat:latest" "--set" "models.functionCall.backend=ollama" diff --git a/deploy/scripts/9-other-script/import_images.sh b/deploy/scripts/9-other-script/import_images.sh index ee801c42a..e5b97706a 100755 --- a/deploy/scripts/9-other-script/import_images.sh +++ b/deploy/scripts/9-other-script/import_images.sh @@ -84,7 +84,7 @@ detect_architecture() { delete_image() { local image=$1 echo -e "${YELLOW}正在删除镜像: $image${NC}" - if sudo ctr -n=k8s.io images rm "$image"; then + if sudo k3s ctr -n=k8s.io images rm "$image"; then echo -e "${GREEN} 删除成功${NC}" else echo -e "${RED} 删除失败${NC}" @@ -109,7 +109,7 @@ import_single_image() { exit 1 fi - if sudo ctr -n=k8s.io images import "$file"; then + if sudo k3s ctr -n=k8s.io images import "$file"; then echo -e "${GREEN} 导入成功${NC}" else echo -e "${RED} 导入失败${NC}" @@ -139,7 +139,7 @@ batch_import_images() { echo -e "\n${BLUE}正在导入 $tar_file...${NC}" - if sudo ctr -n=k8s.io images import "$tar_file"; then + if sudo k3s ctr -n=k8s.io images import "$tar_file"; then ((success_count++)) echo -e "${GREEN} 导入成功${NC}" else @@ -189,7 +189,7 @@ check_images() { echo -e "\n${MAGENTA}开始镜像完整性检查:${NC}" for image in "${expected_images[@]}"; do - if sudo ctr -n=k8s.io images ls | grep -q "$image"; then + if sudo k3s ctr -n=k8s.io images ls | grep -q "$image"; then echo -e "${GREEN}[存在] $image${NC}" else echo -e "${RED}[缺失] $image${NC}" diff --git "a/documents/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/\346\250\241\345\236\213\351\205\215\347\275\256\344\275\215\347\275\256.png" "b/documents/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/\346\250\241\345\236\213\351\205\215\347\275\256\344\275\215\347\275\256.png" new file mode 100644 index 0000000000000000000000000000000000000000..3f7f852e37c89e8ef2a5930cb7f3322267bb81fe GIT binary patch literal 436847 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�{$*Hqq20MTsk{(ye5 zq<&`_Gj_d)gPbcj;C+3BtX--{aiWoKE@%YS;x~k#*nfLU>U9G-*bm&bqyey8XMt3N zIOVp#UtV^5KS&^ulaJ#*M97uD)w|_i&HjbCos=$m+Qf}|%e!9EdsP%-e`-%yw>y9W zSg+F?zxTTwWsq+A_dZh}-T{$!8ntF$11@nhzOH zzXLo>FZ{uDz+X1t<@R6HTlD0Le^B~AX9dshQ73Yr-qG0JAp-6{ju{6lr|FP?pV0{; z-*Z9GhyJ%l?Tv{LrlrfkU_qxJn#d!ufu%YthxRoarXR>ywg-!+ZML@2i5ii zGOPIE1tb5UKA}(S*Oqr^qHnqvNBoHV^DBL3AAv2p&)DS>zWP-&`l?68^hZOFUQFY% z9~!?fn=6Fl?&t-<@%}OLxq7iZX_;<+=^x8ipiLWhSAwO?7+F!*5K*AcFWXs^Q=DUa zKV_;gXU8TMS^QRbqN%;wuZbv=%U;Zt^{0)TfODgsRXXeT3+D=nO@6S-MRq5 zgi;4-enH4nop=*WS_+!(JEhzsBI`o)9csO~ZZitb)j}f&Hh6+(@>#U34dG@5ijq;d zfog*?)r>&K&#msv1I{BP&OpJl7>FR|AC#yyWGG%SgQVvEqPD7|3Ff*3M|C_j+SxIT z(ijH|nyQajQlC*<)``U(0HJ_&HQb1Ch?DYD?Y??d|Nn{_?+~|qdg_g3{)>(tnNO{@ zWBT7a>;M0bNtD|8)(MgT)(ZN5HL>>S0f|)^wLuJ&H9L^TVj7H{uCKyBiy>CagV0;V z5fFew8Utm?e?BWQb;h{!+vdC1lv8hY3_$)5{yC=RdT$b%K2cs#%6;`-#-8Ot!u^ z@j(-Lgzc?kwT@Lj`K8;+j5S7VCOECVCMMoyorQ`bpJKI^mX(#}p>H%qi}PHc?PUBk zw^$Y@-W3r_ONKH((p{@~hCrFzfjXS)2i*AVj!?YIL7LO5wx14zIi3;GPJ+?b@v4oK zH)>gU({iKXF8McRdPtBgBPtP7%CjV=AYdCDzLA|dQ$g$qsR0oMWgfeQQG_pE7HYZA z{YlxO_d1D>9M&*lRpLWcZlGmN#5twTz#`Wd3H!9G$E5x}7&#D+n&~gt+1O2w8yIjJ z$C}p!WX8G}TkRxln@Dcs#@7c-g4Voy>p19e#-8BW?d$B24-nZ2t=Jyau6fbFJ z8#W#(@WO|x^hA163H`KxYifV9hwLS~t>9JquJR2neYM)D5*HHo)=!ei2sDT_%){1q z#T)APHOBlcE@j3~#c+eCwt{G=WUkA|4qq7B?{qknY1MxAuD;yw%VB~yBWtlLBusNE zwUaBPzTug-z#M$%3eJA)FlZ93l(Z}*J8d|y-|U1WBCPPqLc9)9G2|P&r`Iyx=Y>zB zJ+{EMV7Ielm+srorM zUH@LbN83Rm(u=f>tIJ$VFn&8@DALbItMr7CHX~*XbBBC6)Wt4+`TB2SZEO2+`Lx87 z9d(%Yc3BM8@yRQnCe@=HV2>|5XrETv{5PClNj=G2E^*c=t8e1Cl-*sgndP(97^+wz2|TF=T&->!-{pEe|y$qWPgasx_)nS2oF2+eM#yaOVDWj=(&z-; zN7o2h1<$q--@ZPPKiW?Txjm^m6-~Bhm;t_DdYLIqd16yHI$QX9|N1#}Yt!GD&}PKn zoZd3tFZ-AGxT233YHAED*-V98T%aY`D@wkYez=+2;;~B4Ej0Be^`}Z&DA^!ye8 z2u?qar|!uWQZAed{RdT^wkmI19pu3{7Gs`zN`O5Y|P5KUF;uJC$KAj zu6!Dl;@#@cjF@+Ij&c+W3d8(jq8I($qn|oHp`Ddq?0~x=hkUms#`=+!QC?qOD_J9anPn4!J(8G#md zxXCE`Ck#FRzj8oI(!mS^efDB@&1OK+Y+fDrAiGCzC#{FQW0NI#H3Z%h05D9;XulZ2 z5D=SfW$|lUUPf__6E1Qym|Qx_N@-$ zsHqzMv~SqKxXlO5+vC$4v6||Iqr3IK^Fz*$FB?mjoaa#+l|RQ<@FwTmla-`7CG;^e zz8?rpe>#z*1Ej23&52^9(&pHN@TNNRJoRfBOuyX-&B-8n)}P#eH$j@~g7XUK2SB3ZJUW5c$P;G;F$-oFE{t+^kl*T#-p!xrs0h?I1{9W-Wo!U~Pc+|r$QHTudFM{H4qFeS~{;X-*loQ3gs9xS)2r)yQhJ4Noh0uex4`Cu-a$gYtZU&V`b`5tOT^1jF zt*R#*Z^$4U&S78oh0y9y<`-MHOmenxmxdfh*BX!^xNnPlA^G5S?%7DyBA60Mb4i>< zgGz=?69#C10`h4=^n^&X9Z0ZBY}|l+jPEvJlULLty(V=!<;!fp#NC{37~al`DAV;7 zIJ~9asK)ukGtV(&MF4*MO!Bbs1%uvg?QZpWId0Hw{9=A)on}*#IR-;bodCC!GBry@ zwVJTHu~O|wN=#>wRS=+-UObZ6kVq7NR>Qa~1{l5Pcw97Y(6d=er^U!v))x~q?J7K0 z(L-_%1e{Y~m6AKO%!5JtydR#M3wfZlanNY)KK%)n3Bg@Gs zV(t+C2;;g-z3Oc>s{dqrqN03#ENhPhHSPCwQ6yeDloC%Q0coEn_s7P|aR2ERM zyY>U%d1v@J$qcHSq;a~Ov7X+o648_Aai_<(nskmuJIl&N;Rl9$;|HrU ztD%cR&c2^-YT+egI38S)`7t* zmy5R5p8bnCIl9oGub2UP0~(({#q^#P>@qSh$_vTv*qyvOiv-mq+i~&Y_c571LP(b3 z(<@x)J>RCbODX-)WM|zLX{SfrZ#<*Pj9q(khhuxu1jPMx1$e%eO(J5Vj+UUQ36IPh ztQKFL(n$?D?>%>7rYvw27N@*1Vh-J2cePN<^ETAzg(ojE0OdE%v4C(DAwY0C(%Yg#J4B$3H&toV+o-?m4ff%>9makfW1aPy@?4%8Hm5Z;HzUH5 z!lj4c6dt(blh)?BCgd}_lu7Nd;&95-OXy*O-^3h^Bg$}2NVXQ>x5>j2R%$<6~K@IRZ@?`EkrSt06&t(Xr7?q~jkLaGMA)<@ED zrBTVV_7MJk0p{i0^yk<(w9>Yajrq@k4_8vxvDv;2I|7s=f*SE~4K3{ECS%Ux9##7V z0D>-LQoPp9`I>=<0~n&?XEiSftU;d_UN<^3g)h-BpZuH7pZ-B*4f#mcdyK3-IT#(6 zEDOP{8m|02=J8XS5cTvj@{^`9T4=f02W7eStzkJVG^tNxI#S}hy2*?+#b4p0_J@RX z*!5}-xVBSEbg1$?UiW{Udj~yofU!G+T3TjwTtD@;=TibgZSQQlK=i(b^=#Ei5v?o3 znMafcF6sZE8j@15*_YD4gd8uI1jCQBNEU+=ds##47VU*3{{YV9fgZ7ynEf z{Z4_4+J{vgO|+${4_QE(Fem14h|b-8210w_yFajtt7Z(U53qvE0P(raIA@ zlx0zJ(9AY0AZ7kLMh%aJn!8GSMy)ID2Y{EPK6R&}lOe&(rwip6fH&aNcvV#du{^j$ z>(Nr1g~g>}{G#hS3kv**FT_o|>A?vF!P6vYZDM_oJ-q~+y zr|T6%5#~GJ!OSyLzoV3M622JWic;|K@tAXU-{S@r(H-R#(S9VNq{V;j4t<9>h2Bu0&=+3^@SeqC)M{>?y`N#0)<}z=#!S43ly;842Cn z=B{T1K8-4ke*L_QN$j88ELc2l@;A8wVfqx*CFfBfw>H@kz+z zNr!EN6=kd{Q)GoW6m%$zA%d5!W27lY zT`o#@kpipj882b!3T5W0)))rRVQK1FFob^% zwu@9UYm_AK{uIAp2jdKpK`d!aPT1~90Go1ARg5NC5}Q;!vzSs&1(P$@3=t<^Wu=%p zAHkUEhMeo%J#EjU*(y6F(n82=W6kB$0e*Uiw5kql6gQsfn`u1k_(A(*HtEA)gQP22 zWBlKu48>(bnx&Vk_Fo-(PMJQg1wQh{pX-BmeFOknNa(n!;sKvqz;VJTs9ZRDV)cj( z$or7Hq9-+%o~S#}L0IteA;=VcWX|3Ww*O!%4MB#o2uA~6K8NJ%2(g~!l(@F5749QO zY7a*KI;qi|D3Yvls}(0EWtzsmLKM!3s(6%~#Hh##$uMUq6o^tp!HmF%f+#Z5#z@8z zcqS#-0E|css%DAo9AM2LJPo2l|xL+ zH*z|N?c|ij&r9>j_33nyi|dPtqpL%Q3<*l7iRykCawp2T4I$!l$s-qYAWJG}LM`UJ z5^wmooZp#sWw~Rf+OCYW+*2C%s`B8bS^z`E`4qBg3Zj{t%^!9XQgw>4XfCvdu7aKI zMdPhSkhm47z7s5y7PSGRC5MW?$A0CqHElbjj56hzZ?~^ow`_>) zD^6cLa|GNeUl6bTSc{ZRZ@+OGb)=%&wirW`)0g!EAudCswlrXA$l+G|ovVrB@m&m$ z=eV1ZmgBiPawH@+a8bis{WzV;@>qgQvxp2D88`)Xbg>bU_bL?Mx|W=nVtbSEk1daa zAu-}O=^QgQ`UMPkSZ&VNzkV#A&7zP<0%Lc9DDz6QuCAP>>uWT80ZzA?yNV8nG>;}+ zgm;f;6>f7dsb5yc=5Er--2tdAERtQ;{@C?9%VvlY3$~$YV<^b_ebLq}7&1}ak8&Cf zigK`2mL4|^5GO8|P(VgRGZ5`$pM~_2A+DS`(V3aBDKAJervyl(e-eVw?}`y>LQz*d zbXp>S9K(mgM8|+3A#6I(8Rf~H1*%rmB8>A>n*X`$>RW7*i8x4`>nhC&+a69DtEA;I7GlOsLohg%xImwm<|@zPVF+olu(N+k}@!Wh{F8}gpd%g@6_b%W6FgY%gfYq za8i>cJ#5K4ac!$TXqNxuR%`6*~u7YO+P%nmM;dxrI%Y4;2*RDxhV96cCwXLUM;}KZ{a&uq*!g zo)C)eQo;du2I?MJ1Cdyd|t+xbw+z-vhNQxIySYJ5?UyKqA z!!9IQE^%NAM2oz{3b%W@)|?6Q7Gx_Iw0+(>qB3^#>Oe>^nK5gqf3y_!A;_&#M$d`@ zq~$8I*z$y{EvTm6ZlM7V$Jm5s4{0NJ5+>p}@0Aw^mUz>`vHIlt`(c2TT`hWRX9hXY zro55Lu0W-8SSs#>;jz99)G_nH4n=xC641De^hB$!(rrx22ybgiws=SyasZ6%ec`wO zyGR9Q#U@YGF@Rw`gUm9Q)7er8Bf*f;R($Gf8>=pL{M-~ANoxYfk?`$;Wlj1`g z!P!yC@M@wwDYnz1w_*){j1sFf=2avr(z}7jo0Gn=Vtvl5&)n;rfi`3@CwRCKCbNH@ zq_mRFh_sQss{HtH65_und$9e<>~yG*n0_1xo?vzu)+lc2ALkw@-M#$MpQn(qH*T^* zqIdoAWXTjFIh;B$M)PG(ux!~WCZq~lt&)Y^{f!JY^wDp%!-08atx-~Z4QbnU+Q1p+SYl~1VJd-}KApB!|} zE=c4?w$GaeCy=+8U(e0OG^SaO(f<7GbId0FdA;2wW-D9TUa8oVlqJXFE_T4bC(`ou zC{%AbBs9e>SiUX7j3RWPoFYyz44X$!92t z6{8KhZ4P{{)+v;#p8vXS0lsadk;M^YOpMP}?8QYE`9$3NOU>GZ)#v%h?=$ZpKob3#Y`@?|{ zVHu64NQo-0%qMZr(e6?I9NGS-X;R-yeUzV9Z|iU#HcIq`975Sos7lFC;+H`MXzd#x zRE3-cQHdq=E$QD8Nb~9wN73pEL%FMP-0?aw4dOU?H>63f6u40bKUtNr%rL?s=uXfQ zjcLi@(|?I1B-(m8vPK~{Baw~&rAP3N5kb%Xxo`t|z4T&8lCI zO=ED3P7T5DI#CDjI2GC9#@xc3U4b1vGYYxM)!UBNZju7+IbKVYr)cE|=V2oJD5iKO z2F_pRK14$W_$xvDA|vM~jX#*J0Kfigd&%*+<@Y;6*tLNoI!}1fuoRBD{0>!|M2TrF z(X9A_WJ#K77Y0+BEH?^|48%!kzE!2AG~IQiI;#-cFO*}8j94;L-}e&@DoCWoGGpk> zLrX9)_}$!~Ntv%njK!T0I#aCyS&c*nQ&jUt$C*8t(YrHKgJdaD;#eh_C;nlh`l#bx zfD97vk|f3zH;P4C-aeG$vPf@;84;PaWFNL%vMENF zs(;?TuX%yB!i*~-NN4)Ipq}9O(+qN(YTlzVSje}i`>E#v6ZcQy%=*o%KZS8`Ov5o_ zwD`85=tj#ws7*70%a!*~3y7YKx_hff5kanUBa{4*+s0^_VC3&F`VZibJXp@@BbX?> zjQIKKf^pXg-ugWL7%Cgj19Ym`;_TSy?626Kds$;@pFnebejGtQ)HP{uXu^eFfGCN# z(k5+bs=wr+Vlf-lWvY2;bSmFx9MQ91bJIB2u(Z(eMuhA5$5Ru)q#y;ecui+LFX|XjGoiHAbRAgH4I-OMvrbm@dKig>%BWyqY+J zp=vEUDVwG8drWvjlFSHI{ggp*zv{+hh&v)m(P7t*^gFd4SP1q*5L6l45+6OTfnd!o9w~$*X_B zB8=W!*qLOXrrRBPs1kV=Du;A}lFY~{9+VN?@w~IFhoG)VQ_E%f?Jd$UaIg#pss128 zdSF|9t)_oWZsx|_v0l4wWT`om^Ep=AXlIp*q9+;K)4DRpjj#~B*e(1Js4NsZ#uXnU z?ni`GIZ`PyWW1E#NRc+#6J!Q>K!=&>7{w#iyOnt4h1z_cqTtL<-mvi@yVVaPM$T%I z(^Z$(2;(gyCe}`&>+%y)Y}&?1i`c_7Gj*+d@v4jcKqr<)zHV{quD2M;8qsG?+#miV zmyQ#cXjHGeXy0tuJ1XR+yE*}p;WV5#?dx+it)-2xsOxGNGEyA)I>+8IJgQI=C3Vs6 z&Lqc*OvqzmReZy0D5s#m^6ccj`0-}#JMRH@j3v{b!^D)6j~h6Dp-HmM+Qe*xS7V*R z`weoZqpAnTXfBgKR0du#QAO8apRhhyiyP<7r&Y%URVWwy+{6Qqoaf?~Y@Tvt&a=5y zZIrg*0#9TX!EFlbX&M?T;n0ks%@;nbL@l4v8r?7$F=gwaVbx_2gQ32QVnHJsMKj#T zBGC|Gu&Nj9OhCwIu&48E7J zTHq$ywr?f27=Ji?lKBT!qwQ?`(J~+Kj*i${(W%JY>YoSPdO@3MJ3rAvT1}|&Dw$WL z1@{>3rUqscm=iX|fAOW_dQ^}rs#o=fQ#aqF^)dYWo0P?v^hxw$qVUSZannQYF;%0n zX|>^}l)Hd=W}8!in!|acJ2iDDSUmSP$`@eaPn0r(DGlY43OyJsu+z%7&6NRxVb=Yu z`q3;)6S@Q}#R1oE@mblr+0ljN3fbK|&P*pkQ{E01yF z&}B<>NtKT@wjcPC97!-cJFnKiw_0l|laJe{6Akq%BC?q2Q?NT!p}672N>MC&oVgYy zj^8B^Nm?0>>sjoS*{)MnoT(;{J1SN%K?YKbDP1P?wNdT!h}FjTn+8;+^K|_mA)!eU z6ELaKJJ=b$IKj>u6*$LbM!yt3BPjIM*dY>}jKg%1YT=FfbA!YAazTfe z+!`@qvPnzJl0w;9T;LM^`LarbRv)7wbgR3H8hyT)X;jI2;vG=nEXs+pSv1CsJM#HhQ*1HqL_4y-c-%(E_G#qBlvI_{o@PAKPZ)d zP~ZXqzmOXZKqD%kW4PesC7$Qa>RXRS(mH1Ee?lVI?NaqT)r%%vytlV}6-r7yJ%DE~%E)?B&b-wh* zu5I(@KXtvv6{W{zvW`MHIK;L59#d;_LnTAw*os7*FkOlWmRFW=nn2TNW+rtHU*01j zK6w4IDMNUdoBOCGG5AmX*o2Ip42gxc662YX&6eOE8n$gVDhW9nCRu)`Le|A&ybVEr za%Zw%`V_sdRmKM^W4kr@4kllI&M(7Cjuyn&e`fs|ZJ{x&SSKZ8kSsgNMt6c!EEqvG z+OG3i9hYu2C>AOS_8T_B>}PU0Q%{nZsL>%@=nLHWE<2o9PJvro$|@#vO)4~;!7Oy? z0f`7QVmFfu>2)3wEoItL%qRZopQf*z?47VxfNuo!%^*GI;2jq%EG{qtE z7}6|)q_b$;jI5ftl!}(kX-|*SXNHA9eyWXY;bEQRXP`455o$l`pN$E0*iYe-1 z`Ez+%qNLMMcuO^&XtxYQ;>1Ds1^AQVRh0h}r;4MO*9!9+mL zV4W0%Ek_K!wm?hIHkF`_Og20B-Dx$r3QyHTEvjo>-hSM$zZ*61H67blq?U9<$yJju z&1#daJ3Sb*v%HzFN&BAlBVF_l7u0c7UwIPFlJNIBz}zy>E5QpBbyL)!UY4$EsF|X| zt}0kACqHNPsT`B0I1@R$m^m0Vmnt8phKNEFldA`KULz#M({icp1=wh?AQZ@?mOW~W z7RNKF!7|^}Iv=E=Bj87zl~vV+Vxkk3MsR;mJfe*L`MA~yd)Ub>^kr1ry%z=sg>LIm z&YOX-j5ag>QYG+)4za@gv3C|4PuM8EJpfFHd1V_osGFkl43Vss3%!xH4VvmwB zBO0nxq|R;O)RCQSMEKN4`Q^lt=bTw)O}};;$VfE5!Vx|n+7X7Yk$C4_0ruCOo9A0J z-^^g@o2uwMZ@g)@=sZRP}?tp89K_ zZetrS?Y`Pc${v-C^ve}+=z2&cx#d$$#YUl%lT0Bs)^Do~D>)jIqw~TJ)zNIDcpjQ+yV-4>vQpWF738f0R$XYxo&(V8EFZpZ-Z> zJ2p=E^5-+h4sh#sG4lK^pnM50M~RO|yu!d-60%L@|;KnxY_ z^O8zA`kQl+d@0s|cIVD#9efl_>apP&5XVgvniG8}%aCmI+uJJ3w^`fx2;8S%*OS5~u#qplU$7qAn<;54s8N!m^@h7=ntI0MTt z#1{#{Fr<@1zr|*AU0`ps?H^tjd=8FNkJn^l9YFj^A{WZ zA{vc-NLsXcNHt!s8yW5*7*BheKdtHe0c@#*;JOARxwfe(v<_S`ZIUpJUkwV}d;!Cy z2|$IzX4QPhK6#9UN@5BRi4M*GYPuG#@PtMc%@2Q`pSubE?#`k!(xRH7Co` z1h+7KDr0GoO&n(HoA4U3|I&?sj^L|H@DA^E%g7()N=R=f*=1i2t{AL87U2C|2E#|A z`7H-$6i(N2a#H1lLZr5N?&Gj~a>x2GO1St4naw7gs7p(UIo781H-9(^k-Uuo-L(QM zD-|2dzC)!<_I|g9Lvk~0c`G&{IbnjQ^kovCOjC6nAwkKEgfrfCTbmYUK`BW{tZe+@ zwCzomq7s`H&PFo0GJH|L*0h+WoDERU{Gb_g=whEOGtw@4hH#PSHMVDg+~}!DQmmQN zCaQ**B%vjE`TM*SytMK>o)Qsh>5ZQ8<8ntgY8vW|iDBTGHNTRIW`A<1a z$#_-p=0$$K2$vi|J`^l8T6|Ee-HR1o6d62olxP%d`;Ey=79P)`Mp`r17jHD4$&&Qo zV#apV0=5DfwM4Z#wZa_ici}L(Bq5Xm%ZbQ+By|e$G&+4#5Ecm`PeJJsO?fnt zVP5k5iNVJ=jb)6YV>!H}&D+FmPa*yJ$(HGsF>3?e1+>027%o4puAbb=Z1$zSVAr7D znd&0+&iF?_1@O1w{6+arwV!xUcW~&c*lfQypLJXT+b?sH{xsiK1z#BR7cMr>#ZsA@u+}a!&l>Vlr@2rut zPHX%*I(8*zgLI}u;s{dsv8Dx*$}*;$&mzZzo_K_TWrt=&lcPWuN08V!rvr?AYR~<- z=jQ>Bq0CuJs95zE@P}dV+Z7!R0DGNul3rFHc-rhkQCsb>YCegWN)ZyE zy%xXVb*`A=%Yn057lSO!fh-$ zlR;}2t_1^1GzzfGOYs^_F-%3Hckx!zL4EXu=t zban-3vQBR27w1einrQjTG517U_m?`^AJ>v3{qJIh*10)X>#|In1#Vm$b_*42Tb9RF zPY0mkzMsOVE&ySHk@H4Mqm-^4nqwAaVSh3?HT*jh&m*V^Yu$5Tl6Kk922F5}_twQ- zDoP%af;-kaegV~uk^`Jt?r9ULC>5{Sl=*+yd&{OcqV``Gg1fsrgS$g;hv4pRgKLoB z?(V_eT>=Dm2rk3m&Oner&^%|JQ)mCrsXAX^zu0ePO?6Gp>guZQUfuWazApMP9qpJ% z!t{GkKvYk3f$xxFL;S@od2sN6&4I5Q$yT>$Rq}R2xgWbpcVti>yt6I~ z3PhTcn}xeGgfBbVXUK!&OZRpRdGFoodW-s3x58nY$i1`D$?-!f1KLK@w*%x%Iwar8 zU3lzuaXcw2GTMUm^H5eZ#^uIUk?(O|tD9}t{Dx$zH@~KdBLaw%F!LRq+*lv;6POn| zqyMWX+GNPf0HkSO5Lnc3_ZLqbUs%dF#9*o|cj8kIbYb-kF*7VU->6L`87XWsO0ZQa zo79C5v5f*i6o|7tNv-T~%FZ3_4OnsfF!L%Bdno_`EF6lFwtOu{T3WHFEbfiZ7Ya*& zj!qt;8dzoGLinbPQP!3JN>9^PsTatcBxZTfQ!5;jTFHqaMg zU)Mp|UDg_^!oQ-`R4XKpMkm_B|rHaz8xgQN_)1bk9cX1brGVy!AnKY%v-KnIg- zqbcw^IutlhO>+e^KV4(Gsl1g34>v?~53Ukn zE@l7rPWbGyMJDcIByh)V8v!fG0F*K~2h%US% zPK^$4LR?;eesYk((?~zx-$2%8Uhruk7L)g8&-QWe-E~oBGVMh&d!LP^K#~u0(&lwI z*6zZfGvN*9FH?cJre4KKg$(4B@3t8%>I^Z1BOtS!{paKq(I`QhN>OePuy#)f6UoFd zbNZacsgkl;s;$(h-mQTvTeInzHYFQL;Il#M;C_oMY&V zo*lK7O5Xa7yfACX+Byym7+(DAQIyZ7e7S}p9z^F}Vl zus9HevFd9%pqHumZ&7Abxy!)AwC=;6o^_cWLLbq;pw`|2N3HW44C*t?v(OW0|Jeetc%0%VWWm zvsC9W-v~owMaJeZl~ws^aQ@cc*ZkVQ>Mf_9lLOmHrESFm%F0ty>*Wd18l(K&V59#9 z^2O#cogFa{0YLnN9K<;0fJxT{-;)X1NeVZc`#HlNFWY0jj?Uvl7g}C!uBQU_+{Gg!y#>NDjpG*s zP<_a!ryKYRu2Eca$BIGnHJzH=^jXu}Ex*2jRg9Saeo;xF#M9eN2=Fdmz;A0U5OF0+ zhRjUxpL91voZn=&Vz=x_tMB?^9xa=Zirjp@rmrJ7FjSf&^244S2rz+|8@% z*J%G|Al3I4M%gakhWQOU&8|B;_^du~wl;@CHpgDt(9KhO?q`Cq9Tt<&M0l(S@jRt; z%$>X(A#Tmtf^0t<}PDm z0I|C!p4zM^6icx>VXkGgUBKl^(<=&nV%I4wzyT#UGb7EfBgGSGe$$!X8QgNSoHd$T z%vA>mExc{701MKe`m-|(kuZSBX9BeMiw(}yaV6<#*#%eAt0#vibu&Wl0VsM9gl|?Q zmZa@BOn!*R8K9xQsGZgu!^4dQROqd7Y&Ne;4`FzFFp_OnhhgldA~(*oHLdjyquouw=NF$JIZwQs$S)c?q7?wd-V})yYbK zd7#USDQYc40IDsqO@k}Sc3vUH5{HswREgEJQqIyI`lTvTjLru16f`LaQ!WBobk?7h zP8E`?D<(X!Mt!Z*akrPL;v3kbr@(X76gzK6y$%#}=qNO?KohO|*OVXSo)XK)vpg#p z?tdhdl-ZK$dAA8QHGLRpE0pETC~^sUXzT8oa|w*v%`aWwa&saP!J;O>tBfb#+^vwA z7LM6BJeQT|?*NWV9s=h&%_R<>k|qE^Y0>pp7e+|}8Hs3Z(zv^fnu)ePGyNa4;UdOO z-Ipk!$?p%{kQL%j=SV2qBr4Wd{Uju3_B+CF@$y%kAoRbXtOkCN@guc|3 z+n@6Hr>tLQk5o)<>eYL`WN5a1i?LMndd9i4wibsvWgaP6v{jEM_CuU@a(lcZ-Xf69 zk!?#2j=r&)ScZb)Cd+7l3? zA)AHi0V-gc4J*H^0Fa4^?}Of&0;M2hq|&^`ohj%x3)Lzq5C@Ey2I~9rT5S^kx3|^} z+HA4%B=M;O&ypfYxC5t)%$R9(3B`1Fs`x1{EDErk(rbiMXHBh8b~nT5l3sbSk^HdW z_16FSwZzX@mn$Y=TikR1kyq8{hrcd$-Z33?a*VNE>ZhYEV%|x{zf~9*q%SL$GNnr< zrxzGO>y$oa`%b#k&#ZlA|~NAy=~2))2qx^7?{(Cz%RwpRGj`fiLDl_FL`-w>tG^EuE9Og^Z%S zkZFQURjFCeQ}=780kE)Pv$2g10&a&;H29{>5HaLs+}|54k^=D@jMk(2A___?L=So& z)`>=0!MuJHvmQGfC)%;yOX{KnU8*$=p$YBpN0#W;ZIfP~9f6Tgu^@f>dKDpvLf68u zUet3x+03wYTKRQDS!EQeN|iJ!p;Bge{Eo*KDkcFWlpj9R4S2$zr8=R6BReGjZM6(i zv8#Y_UC@oOn0&})Z0`d3E^2>d@{NEr(Y6^c1{e^SH}?bBOB{ylvb#Z+eVN)`Zd?(E zLuX8l8ta#Vt#ECiz3^q((Wr4cyC&br!_POF`sdh663x5ZjLHbPb4?B$8f{ zDWq?d*OwsQ`OV4zBdxbU zXkyW3VVh@ubX}z;FxfIeW&J7WV|8+rbjt4TjQ$52=@v8{>3ef}X z-zCW9@|bB;(fY2E{C=-|8PTzC3k=*{cSGzuXZ565DsSC+8}{)8Sb=!j-H@ZDGDOo~ z1Z_T=A5LnW|B?#SfMzkb1EdeF6F35k{RE7A)(_gXzuKo_9Zp9yimIC#;urL)r8iOR zE#KWUSZV5}Ta;Je{|XcWQgmu_Tv>~~wJv(T6t$*5xkrCP@pNGibxC+h8gfbc?lOHi zJ?)Y}1)Rt~HS@_@^dyycayoPBKO-V;b$Im20T5CZ3^!D@*wHCv#Ej;J4}$LKCVV)n zNFtx8kLMg?GHnhGG7KUT`)O4~QYKPgi*=qMt>g-?=!S%T!~v(dh3_VEovkb~Q=6jv zz3fs+c*q`^#LqUuT&edYmLt}Ev&Qse0j@n1U}G5j#;Cv&Q6nlRiQnpAzofMgDHDh4 z#9Q_&%U$5DNxi_w#gRY`!IJIB=e7pbuS+lLb$$Mu?2T6nToi8-W& zC)j%K@qHyH4Nlj3IAv{d*%SXsPeu))Um9jLBKm#daBkYa;MbMKQ4O~i(%u`H@N$GL6r~#=egfm;Z{+G6Qyb>kq3s&|CfDaC`Jp6?eeHlZ= z5iTA!CG!0HF7&y!y82tHaDYsX!*g9J+&9Gl-vCrntj{@<%B%i>q0GnpLO97^LNV{9 zFA+IhH7~u6iy9wastUTa7FI7D1wFJW*f$z{xp=hrG_Vq<+$a%THe%=N;_LY*Wyf_h?a zPNA>?5l=jrMyQw-qANebg6;`l-N zE#-T9R;8-sq2<9;kjZK(?m+eZ07k4Qh?L#Xo)nT7x?sx2KD zKX**AKTxcWOiYFv)M;L)1Mly1e<=D-d`HN6@===B!1?@OG)Ka+#2u3wt_C08Zxv~d ze9ZsR5h@YZIJPADStdFe`Zc;(VvrVU6NJ&q`Y$6k$DET2Dz$D@Tc_!({^W^s7aC+; ztuK+*iAkpmbu0R5IR5Z^@`-&y+&`tOl&N3(8FcWcv>E4+X3kOBK?7qODd!jl`_C#L zW($?jSJ^(D?fX?RX-29S5yVVbOrrq!;R}l0uUa*^eVEshNWO)B??!HSm_I^6B@)5A zpT89N7Cd5YVd(9M#27rs%#V&yavjp>$nxRr{Sb0nX`Z54r>QDF_c^G`qNE!#PiPRj zqx|Z%QX$$2Q$x(pX>h;SHNv)qOtLq98Ze~F}=qG}!GUVoG?DsOjGvMx5ozl_{KPr8DnTFxu?zp@w9 zP#ul4B5|axIUNOQW>NxBO@h}>i9_$A;YMC<`-X_cq7KXhO%~QNB3#sWHcy~i9v6%D zZnyR*o)`$Sil?cjPxE^1tLs@V8=#-y7sKYqPiIb(j5yQEQUvGQjPbCU5c$<{J6rtZb8lc{Yjp7PmXm|DV({)Y&?Uz*XubkOfCj$$A>m z*s2`;7WDXA&xXvD9=9TB^q58Fb(VIK4daZx6ln>@P}l@Lwgm|@)jGo}cScExDS*ow z$%EZtUc|ej4Mo=E9LJU*EQ0`_xit$wCX8)&j%zTo_6xg;*LL``Vt-cm{Pu6oy=*8c zQGXru!{y(ZnD)jExI^8O<*dW1Kv7W2CsPgy(UR}3JxW`(PDr&ewsuZ$8h_Ad_;~V{ zfUk77ahvFLVYV*@hf21V(&(KQN@2Wqe7ih__jp~#7kjeKuZ?prekt43`SV9wHvN-d zGJh+0LfdMB#83VMvtV`jADGJ{3O$2#rO{L8QaD{oSQtAPmn);=s@Wcr-D$*;X8bUQ zBwbd1f63cj_Mqnd$c(HWd#6{pN`N_%xspNA((B|~_4{rkuz9IIZbx7Ku9=n`2l|R9>unWVcUy0sWNEcLR)`S~ z2x9dQf3|Bc{$qYXeuAZDR4F#?<&B-^)Y`dHmKm>1X4Vu(h_lhI+$X)7UeR%wE?5g- zp!2zr?3NJgJwc!*BcP|0Jv)7P61LZA&>tZW+3mioe!KLSNdc|@0|1d_Ma>9HPQes(i{Uio+w`(Jxm^~+PdpK_9M?tub2u+?S7KmX4kd_nej`?@#r z{da8#d5Y^~>vX%=By^Z%sk9ozK6-i_O8UH~{XY`}k?26J5Kosy?*9%mwFb@q>j13Y z#!z)PzB~SVEs&aeg6>Me|JkGeU5}9op28)8bec8F3N-R7ziWkj1AF0ty>Suh^9y?Y zMJlRCKtQd9cdN9#A1dGYxO&0A;%bo4{{sa@4Sb_5a!5L>zaq&0uSt1>3d+-N_UEL8uh$o2Rvwp;D@w z{~s8j@v3l4YzWVqOmsvu&GScyQT3dd%v}`A7PIfv)1!`~vQ{ftXMwEq9z(nC;0K)P zYpAmhlKTaydU9x^DXT1qKJ)HiEo;E%wh~M>{E{I6#bAFVH@GN$RXs?E{}0TTfck9c zf}?>aQG>78x6kdTZc%#s(!#?Lw5$}gUB<4)U%VzCIgLfO zh%v`EN51uuv3E4=YD@)Ki(2LN-;bwsb8Pyh35;hrE6a0_<~izEYqoAAq*^Q}>jCsL z>cFFvZBwv2DciA69w$dNU!jY&K7BZ@L>DosRn;@$IpC@suxjgmr!J3k&e7^(WXGZ~k9quEbtU5-`kjJDEx8*65* zG%McgxQOrsJe{_GQ|!c#O%8egYOIXPco5(@XW09)35@K|@0anz^7!lho%gVpudB7~ z_hb&D3e>767C`=ld7vb!u6*F<05^Mo6rvN{R%@r+71q1oc*O&Rqzmi>G;Vam_b3ea zzFI&|#)A6ZL63i~dhb#&e_p=?dc$5dZH1}VPFg?{r5WWe=d+x&i>OXT6^c9_?J1dtt<6TUyr#*t z-5EF684XaW%T-%*I7L!mdV#5*Uwh{U82e_Z_+|Xr=%Cw%eTORA0`{MH@16_`_?~d7 zp$1T4Q{h6cYu^*p@yF|B{l*nN&l6d7@JSir=z?T$!HS|duykm3eale!Y!Z8msxP3O zQGQ;{r9rdpNg%*q=F29wR`#FH^(xn1Xz@<0=X9l4H$90Abw9c-m&Q)Lp-xZ-G&(&s zJoYoVo-W)&8>NxzD74#0F@U#`s60dM#eg& z*pA0wusFmfG4njQ{4FmT4LBvZ6Wu`@E3md#zuMg~T`~FHW~Q~JO=0_ncpaD6-Ig@q zV|*&U7zp0{cti7C5B|FSWYP#pq-RKlJap6hbWN}m)eB1LyZWE1mXDjiXS2ZP5iUq#a!?H(3VeYr>*iJg@UWPsUkcvtLlMx0n=A(YRfp zSZGxB?)XpRcWzGP;aWzBY8als@qB@rM7|~oSsF=47Q(Sb74;P8D%Jb`>D3SMpLJ6q zQso>YdppY@f=T0xy6U%>s}tz8MN&bazJGKhF4h8<#_+^riTz zTU;_LUe(%4sWf%J@o`b@Ss;jXYv0){HN08)#28a~q1{OEXEOB^%APm6xWbrinMl0{Y6pHYeyfFZ1@F%;H(f+kLzpDh+L%3S*PE6A$$W_e-5?5 z($Z7sk>!+FczQ>Zl}Hb^(z{K95945%=h}G3qI-RhX!``t&%n>-FT9QkGYDN`#r-b+ zIvgM`RJ(@5kJaOy$8jp$c2KyTAzInF(fmYgYj`jmw{KgNH8=gLshsR$uqC$O)fCiu zlJiZku>0b8Ln#r)g31$-lj7i~vPftsvcsoOq?e?z$S`*p&viVzBNYeBwo}0`N1q~M z592jdU;HsYq}w)L z$Zb~wO@8oISLoP%;G^nbK<#Aw*DyzuzSrKclyGBy&OgPhwap9suV!;NMBlgFNw?H8 z)nt3d(FG~;?zo;4Y;zsV%|TBe3Sfb2ps(HNCNc(=ZD+jyF4tFDpl!Uo7W zb2dQ?<=KigVY8-TFgQ5ZMV(J}!QrecEidd z91Ln^x_5>(0E1D5zf`xq7vl2}&-i3V2u?2hB!gF7!R!#p46~k_hG&F#d_z$YV_TK$ zJ5>XkNH7w$9gCo;HYN8;Tb;qvfYgMs1CXZ8hAk<1jg}J)mf5aNz)UhW$OkAGqcbJ$ z`m5SBv5*;Vg+PHjT8NM3OxLqZ$sVn)di5FcUz6zMH=Kk1?CV{w%SMDk0jp7CX<4zv zsi!*3ogY>eZe7fyxFSbV`Ehx?)R}oWI=ZTrLh*_NQp?QD@VfL)G=yh;x8uTD#tf~+FYbi2 z+t~#QY|4M8Q7cmM>6cvz?>-qFJ==7{fcZVP-_NLo4O7eITfan2Hc*lADMOAG0&18#GBxt4WO$tX|~}euq3-XMfB}{8N5aV)}G)cKS zx?=aTv?VUPU)+$~C;j2(5d+19{|kJ7?|B(j2S0KVnZo-a>6_0{azBp@qDl7GINEzv z9xDB$3jary*ah+*L`yulyE7rfK_?)-%0QKD`6`lGw$jj8&8AFP*`bUDwP>AhCeONL zRl1}b`ebE;ou1ZV$Ij~N?T~3-5?DnZ;H($UMhm$E$aqhkD=VR#X?4zxBs#eY8>83B)?|dqf5xa~ zJl8Hw*NgbTShy~UiZL!ZmwkUBT~51lPm`wtFr}L&9H#Zb;CTsidAYK5+$`J_9Ls@n z-A?mVuKpJ7hCw2Xz!s=+_a%wGmgYb^P7`;CWq-BG;FuuZLq$4gCl)zYA2Kla*7LjXk^r}jnQfc9q1}?;D#VG{QyN;8_DvgNvr%PL|Jy#3t zi@Z3)#;VL7GzzSaLJ3$(2qCxyG)e&*gq@Yj^w^knouMs~Ffbx2OgnoZQM&n&?L2$2 zw&F>RFEEKGw#^0W_k=jLF<)70RMc(jZDtwmitv>qav->hB^VQm*UO4uu0DZStDpNu3X`HEQLNHDwdrv$lyP3Fq|ekmXfoKQt24E1&VE~k6|&UP<_ZX>QBGg1&6*0` z?82T?8h2t0mpE&OiTwS&q7FW!sd<3K6yrMpy=3S3x!#0Tq5LGxlfc9wlW#@5OJrnB zwp_Y3n6n15_3ZLg9icU2LwTbD2O5rLM|HN@t8e3r(u`P$96MdhyE>7Crk*PC0dg4@ zhJ8cp5QOp0q^RjN7=Nz4-p6iCfZjpdZLxonbJ7h$4j?h=%xjy`u)j!Cb1W0ipq8)f z1ak+qU{ZsVqTv7=Ahi@vaqwBv*LREM8-fe8r|Ix458>p($Gj!uoTdM7+q7ZVdtw9L zdDq-N-44Yo#K2!>$;?cX5an|=x3-}j?0zE|({3;fl%MZhRbCU5$p^bJM@dt2Rc&u^ zRaF$K@$0i7(ECE)FIaqqoS)c^nVM<$v zfMW8Lwt&gV-^ilDC$1;!mkan*Wk5qbrtU%E}@!S`=SuqvfShavQb)jb1q1kQu4Z!`1WapDWmEn7xaaz^{|d!2!gAe#PfP_%2_`QHX`DDJH8O z1s2rNP_?*%yl?{CroM*>-0Q4Uwj7S+x|E(;<0Ei^oVDw`0AHEH7d`3Hap*bN^h%19 z)I0Yy4N;Vdvo)lP)uOUpqZ)7t6;V(gMy=S>c{t`VJYR`^tYxuZzYLTlQg5egH@_2Y z-}|LeB$mvA+{MoZ11)X$M}ASpy{(jL;Na5jox51K$t!NH|D7gcxZ<~&;r?M=(4MHg zo?iU*8bK?^^kw|jbA5*tfUT)h2`lBtNB|?L4FBusynA}>9?4!;QU!`BzI(zN2i*k_ zPx^p)CiSZ^t*{QR^t~Bd1iTZwVY|9&mQD?c7S@lW;)(}VCn;Gw`e!dXyPTkx`&u&~2dTj|V?Dj?Y zu+q6UW7j{**#i$4tc}FvAiP=V)&Lyl4DW&}m{^uOj;DB0D!c0pFN(^H)w!2`R*Aws zIVh!#5O+U6RoRf=xMAy)$+9anJ~!qCW1wdVvz320%~4?6e{U;mj8#s_^|-OhLeu~1 z{{XY1wlDTxFw%eO=f1KdqfoeX(dJ$Y_=fh3DKGGZh458@4snW{A7ZLjyVj!hN#{Tz z7+0W5Dk$em`l8o0nKgkMzGH18VHLVuF7kI8A!F?cDKOz{i%FsGm_E%)aOhn_A zN7}wkInvc?7%{8hpIaR=ifb+=OrqqM#YO#(M~j-6CZm4(P&>BN#^QWNm-duD<8x1w zai85>nkBm%EAAGVt2_`iwo|NBK2qd;!oKOP7|IwHZ;j)FkASZ6JD4&p;T+IgQ155< zJEQqgjBf`?0vUw2EAKgh_RZN|&E0i8PxRJ{x4CJE;)Y zzut8a{3h*jTNQ#`UXP}E9_24GF7%E*C zF1~y%eA44Dh+{hf6ts5D?{gZUlprw-$FX2$9GrIvZ=&?(Z-MBOH#cerr|$5;%Enj zNT|*Tp@a7dfmL|i6%*2?DUEeUVYMlr4s>VYb)75pp`xMlx(<8dCEB^Yu)7`IIjgUt zcfq%{P16YgC&v#{y8@0;o9Lg^^Z@EDL!Tp_{SMD38tddeB?cmH>|Kgg**?djS^1ST zbo9kH0DMhTgLB84C)fgjXAs9ykX~V{!6LPW&eZO^x_SD$Ble0;j;n<|uUsMke)sHq zR!lHuPhDY#eAhu9uano1)M%LOLgHLvQ9UFMz8Qy^Y()m~M|boOK_4XXgUQ*&B1N*! zyWfMWcWXY0+P?%{wy8=LOOzX#|IqrH2(hMhUB_4mlM#CqhU_&MuOdTiUBOR?nKos}*3CbuKF9h19B$y3>ja&44z`q!Y2lkR*v z+iQ4s|9~q@%@w4@Q|<4X15Fhk$H);n)Z~*Cwqa$Vb9KrUa`0matFE6cS%o0uA;)u9 z4#(#tfl?Llu#MdQ3#RWgxR;UW!xd(5HYCQsw+eM-zhd-X{rT$jmL-Ra6x8(i_4P{g zaUZVVJjMKCxwp(ucX{)R#bV1J>{GaM_46vKMif+(5lR^c56mRX&Y;Q)n3uL_8}zGy zfmv@YW1&$_UZL*f3pyj+Sf_a-n*kz} z+hW&eNLITwKltPdXn6V@yYoG0+o-wJmjFMwA^uI3kTfRxI8MOH1tH1-GZ+?THs?+rm-jfnJA}J%c3Cf&!`n_7#n*bBS%O0=zeo z{PcvT8j0On(Rzx2gXICZs9Vay&k^TuB69JLfvF6K2I>rPy_kHHB>(_W`dcgH1RQ~g zn#T!|;|@H~g5iXg&(5*Rx(E_ntpoLF7dlD&(b;$?E1`FGe#-yW(L^?o7vH4|y- zV`gJBQ^=%1^YmKSLlu6CH)&DArI_anR24nGY1Ts7qD1&6MPxrsmwqrI$Dt^tXVG99 zp4};VrRQM|QutUZ8yMxG^H9BS^lo@HXb$i@D>0p)(v@$@Q-sZotdJ?Tu6Lvmj8{T& zCQxmqP1^zqE^eZ)0XttfZWaT_HF)!7jjnaVb0UW=;~g%2nhK5u2>|LXNDIwy4NXyE zOh@T!8>330Uq{Yc1N+uUhH0Nn{|r!(KwwXZjs0WOW%l1;-|R39eCX2emS#o zdcSJ_E+g0AcU5eqzt3+})_QEGuSW(F3t1%lCXM{FEw3bEOK*mspC*H4i(CG!@aa#c zDV_IEXk7N!=x%b5@WmNMFkN-cih7ew^Y@ezKRx7|+RDZYlVDzzUm;`((M-sWqbP`6 z(XlhJxHYfamGkkj9A>Y(1oeKRISyqVX6iA7cJC;xxO!|?R!(pGvpSi|^onciDuH&x zTVX(R#Fq`ju9U4lD)F%vU18jxX4oh~^z_qELY}_szLbpIOobH7gpKX&o|YjTiLY{= zT!xZWO})?8kWuT8${T$RE}|PfB~c#OWmJ9Nri{@PJVb63iXaxUs{T&phu^5JdwXR$9zd6wa4sG(DzhxiNZ+1*Hv8Z`6-h zMnM%$WBhO?!%)TNm=s-TIaTGOguv!sZLc_VnOvK&;<(F;#HFhtK}BdbuB}`B2DKbteACA2hytYhz^xObfgCPKaTz0T zfWzEGOIucY$KH188+Fgq{w9PBHG(FziJKnE=^cIglCnIqPO;4RMk|9f<{rJ)Ry9zo z!u|7=w>598unH&N6BY}pHR}luEA|*Y0gHAG4RSQsafu3W!gpaIyC$g-CofzNsv%lr zXb#&PwWj8|^f16pj7*XnkBBaT8m9PKbb3D{UlZV*?y%GH*@*2MUuCp?0RohDboABV zN*hfEH(7y%E(J|@M+4csAiGA=vho-X6ZS+7?c010Loccj{VS*N#Ly$rsglNL`|awP|2$aHC6NC)=`a_B#zHSjhy8Ock|(_YCi%fj%Tqa_CRhemrp=gfH!dV`V<}h&_cM*5Ta2B8EhnhQh9r6dxA@8Ha zhKY%eLR_70E0X&$y6h}I&7qIO$lpU0Np$DrX5ufBXXQqEU`Begz{2LlN6&IbkFRMz zu}HtGvxi?og#2ml+u5X08}a>oECk?bU$D6ItB(R^cV1C2*|k6L4Bp}0!m0GwkQ1LrNT&BSlPU#qdP zPP`tpPJrA^r$d@mo`0m-*%Yz&%NMxWIhl4&d^XP6bc7)q-|BoiyF%woCx0+1LF6Az zz%&K!jic$@gY?pe(+xn@C}+f1@p%gTk4RG7^wiY!n~!9+kvp|?jgjOk!C)o1fZ*D< z@I10U0;ZPewJyq?zg^=2f=CdraPBc0Ai1!pc<|31Y;1MA)n2RST$iiZ8#H-Kyq)@S ziUfI>$Gp5cFD2w&Q5%Wc3xlpvWHXM_ab`1yik^@RxlN%rz{rW^Gx;1!m$l)V(3KtA zMm*tLytchQLr><9BE7dudHh|d(FcQkjL%hX3th}ZsQs?T|0;P9|CbCaZb=J%vO6ZRkad5y&+y|5<1Tg}osCIOrf74&)%9Pz*l3pjz$9;NpG_D#)BY&>3V!9%!t+hU z*y;rTn{v%X^YjG1X?Jule9Xch(`ot7GtIJ@AlY0+IJiPz=VA4pbYK*tb;irMi=M+)F1{0xgbShDSVmHH~9)*9D`ZktNrOvFa~+dsEsHvC;W zJf_mJy~Pl>bG@vA4ks`AOBzlU3VK^RE1K=GqOx*&dp>^nJ=IGxl2xi5@; zEP#uD^V2_drF?TM?|95Fnf)R+UDkGCviYq7f zeD1b!bqEIUe7PYw{C7%F5!9YZIc~?^?Fnxbk;>B+Y5Fb~x^7-}sW&=aH-p_Amfs{R zeLhH8wtX;QT4hThPfIj>fCG&x$|A17@={1{AM%<8a~!&EPP<`v$aY4_wIC-Dbg%=( zs-*P+Z8FtHvXAO&KH9SKiWriyAT%iTvc(VE6{M=H9LJh^KSSzM1=cD^eCFWeHwxdO zjPjFyDBo1fUCjlg?@z52%a054X2R0nuyXk55aLUoDGjv~zWo7% zy6N;T`0|syWeb@1PBwb!lKPv1r;^WC-Mk1dT3j(I1?Z<$O#J5iQw_2}Vm_8z^yZZ` zc?|{mItxYy%^K+*l%os>0H#Zp*V9a;`5uKfJe+R+m8bu}C`$vmxCzv)E}WFf-3Y?^ z7}=7ta(PlEtRX*QFM0A-)1hXR%Jqu&7`4$;?J6_!8Z4N~j;fteyR$t5<61w%QIcG)<(veqp?H*E%)J*WLWt{w;lAhFocRtc}3hOHo9XWb$=_5?aXT&r)!De zt{7Na^070<M^M58;kqFUuHisYs^vyE=NQo0pc}pJFTs+_6#cH#X0Vs( zM(0SGyH^siGVMAyQhlo&)BG6J1dU&RaKY7oa)uSWm=Pry(c~4U;w0<(mLLEX1eavz z`C8wRV%4@}Hhxd{z(g!(5ocmk#c10OTt?-liTBG;*7|ic&-2Dj=Ch$( zvMS^KI>3s$ozm9G%ur7EJ&lY*;=qTw(9?;88fv=ql21J5`1nd5r7*@|m0r~?Y8Ml@ zOGy{GZy?VU9lIDq?16WS@?4^N{yF$kDQ?FIO>w@@K}OuZ!4{a@_8cRZX?w?8^c5Q#yG2xhcI zkPu1q-V#Cd-U*TDC5FLZL>NghB3ks`TXaT?AzIYIL>av^7`^8=$$Q>=-gEA`=iK|} z`F!sD^?1tOYp=5Hz4lt)xp^1CHMh((6}Fi>dd8CeD7z|* zZ`~>8)ZOscek0bcx2V@Q@Y$p4`McJc*IoIU4`aI;yf^P+Cfypp9y;Pv)<(g-o@NaM$jvjSnc!vYcg~S;l)f9<$o&c?ofhZq!g6Ipt=gvrslg zm;69$Vc>_E@)8MB3?6UP9g2J1LQx;;9w@7XZiQ~KsQDVY++u{5eUFTj7jlRhkzhB( z!s@D@iCbQNL#6PF#_HR4=k`!*l=Rajt>ALz*a2r%V`Aa!>RBLd{{$KSQk65$X6T`% zM7bM^_LXV(A)}3i^=od}CDGCSA74TDg%6V7BV5G8?A#i6-O4^!KN=M+yLXSN_zmw! zmfD8bT0N&=cSe)Tv~cXuvG1$C&3+GBe#fq;1D6hzYTpcxg!Vo5Hq#f(#S(9wOzh1x z*!b)w5`I;%Ow%~!P~CZ7+`;Vp%@Sxrjdtr=7}=GCH^Jxs}hE=-3*xzBP;yi#q+}LsmXC zZV`#TlzT2TXT1AL4tzIKW~%}$;+H7Galj1u;+?PjLk5DR{ARO{H~X?>g@au__k4DJwqS2v&1l`#3G z(|`tl14a4MsZd_~T7SiZF1EPZJ6yIJfFfedtrR*5iL)8I{zeJZMN?jF@9S+jDPs9k zWzH!VZy0U$piupLps8lf#J5J$$Kc6s{g}~X%$pSkYOW5xiEDky_aGIp_M~?V{iDVA z#}y`cqHL;TZoGWydo=MdPrAt9W_;Y}DF1w+?4!k&$Tf0y5S3k$P(^Syd+v>u9fqk< z&PUjSnD2^Q0&!oJ-^`Z1j8)iXdR87Zm@7O!!Y!>|!^KlqXguj;=R1GT@nS926YZEZ z8-GB(>Fh`!RqY*MV}=p!zvD#Xd&R3_yI9j5S6-p@l|idg`er*#_8jPHkr9%mfJ4RWannuI9Gow z!57(aMM!svIEK-D%~|Lkw8Z z`)DFOee5yQs~^dq86>Wt1O$#tgjETg_QgDIZB=(kI)qNMq$l&$Ze?c8KFX@&;s=fo zPjDN*i|X0xd_JL?c$1p>^22pDKAPIvbsaT(f6vC@&2{NfsqqKwHXFApu*59QFek6c zI@`Y5^2>J0m^8GtG=HT!Ke%4bwI3oD9%e#^U`p>v70b=dP zEs8i>vuIDZvGpdl@?RFz){f4{XlGcA>sF;=4441d?v9ehA~> z0(WZH&uz>pq~4Bgd3&>s=&t>=sEA+q4tHI#%ISN-o>%Br^*-O%B1*fcdbGydCZ_xI zrR7^TR%Lf)x5rgvFWcI*^+n~z65T}kRMd7)dHC+Ci$K`bvWXdI#C(W<59szeIXSNR z`=?IDiIksG43GL$Q=gdyYsxz&IKqr)qW{F>hzMyJorcWv*x#`iB3WBMsyiV}Yt1)f zvBRQU2p0pp-IPNxWdGal*wg zB_f)#qrs;#+lX|zP{zyoqub8zVj6H}XMGi1%v(zV2f@&lP=~oW_MV8C7lF-Mi_JA< z#DbjC>3Wn%183qHqpq~-*bUce9DRCaks1z-&}U}A?XW{!WWJX<>@a&H@>Apmz?vI6UofCTsU zBhqBR8RF|F#pA1TvmFtegUb_bY%rW@iJ%=cg0%B&`*jx7ue9u$*|^XElEn&hs5ZZ`T0tY zQ|c#)=<4Y@%PUzQ_*CTP*3@`5$yhw#(PTw>Zes^k2CiIj&+Y0-&4L9;>G61w;2M;) za0G-*TmT6mpPC72J3GY`(kRQ~?Ygr+A~!veN6V*x8UN zz9*ITwpYGPJr?f~38OHmtCo{mXIq#H5$6=H`S2JEw5^fH*xT`P>ASai3CvkR0*{eCM5b3SL z%B|y%_W%};!;HPfyoK_bcAE?HC3jY*M}EYBnGwCH3iC$F#kG}HZ5AOKpQ>fTTU<^( zl|vf9p(%&p6OwcYfz=c8b{2Dzgg~baEc_gRu38?Us$AlQz;cD;{q9N%R7hJ)4cxz~ee~FZ zQDERF%1^g
$E^@nq@$&^mc4I
zp}z2a0jVtpo${n$-a``X`BWib*V;G)_aja)tTE?NJ9*kC7(sE^5_nx|QCI_QmRHmX
zw8b0Xq#9GP8DR=#HE^H-yzBkVwG(+`Nhy_)V}AUNVTmd_dzxemumqSZfuvZi^iGghzI&q$~64tNDH=iBC0KF|1EcfFc?>XQaVEmfX=aqgh`a8TdNl$4c
zTzyTSL7Rs2hPX-=AtVd{8_9$i8vv-sb1uW}=_FjT2ZPPW^mnV8=keEhD7Z@XKu4&t
z0=;H-;kd&P08RrRck;59CQ3U=3?6au2zH^yUx8^u)R9mE*$of^>^h@GDNd3SF8PK1
zhHxyq7T=X*;eiy4Kn5LL#E{tl#noGb!*oq0Tdt@1J
zo><4k`ujwO>l49ztVi6h&2}Vw4KN(}sO$jEurjNYElUO`UP)d6*xBP(X@Kej3*88;
z6m$=up5bVDC*RPH{YW&($ADDPADsyaF^i`&Yr$fU?U;U2$|KhU?|!{?=J8`I_W?<#
zON-H}{k-7SFTYA+_`zT+l(Z^L!J_(QY&g6x{aYITu`%$*|8q0q
z-7MRZ9s4()={|fS_eHdTpD9TB_UDz++P7N=qr>~)apAuM<1!9nl(i-wKDqHE5sX|+
zq>tVR%rhtttpAz04E7Li1%bw)a@F&o_4g*)~*ZGXFR^lMJl
zjHxF1-&AKf#fhq#F}Go8CRxDbns<87pUi)j?UT#d>Dc!I&T+sTWN>KDSK}mU1GDI#(hrNreJ*}--TK-cF@23z)E7Dc0m>M`J3k=Cwq;7kXa!qq
z2p}=zy2AMKXSHOL2v_1`+BN8D32S`nHUp`d-hJYg%@DyBoiYeQmdjGYFq%$U~opU0iTE5+>!S?mD45
z4Oef)N_M?hI+o>$FN_j2)L0p_Hj}eEd$d>ejw_|O(Rh)o+gIo4x@Jv_Tda!aUS>J-
zE*M?``%A_Io>bhV&*QqYVuCHB%T4dY%tVQVCzj0T9iPwet+;!jg}m6A##&a@-TWzj
zd9Sm^=M*)G7h6TnbT2CxwH)=0Z(nnt~(FCp6yG;o}-SPh-n)4AiqshQxJ9`-=Lmjrgo33nGt
zd#4z1S{6An?QDcoF?P64PGp+j8(%Flh5e|SH7?Iii~zPMDl^q6GNKeCBh^otVF3#>
z?~K0f^A?g@^MBY?2#es64a0E@(6rB9;Zae1Ar*D$j)qy^?%5|+L|#VZw8{k9O-r8W
zA7{0}@(d>tAV@=uGs_+0?`z4bP?v0w9gH2_9*VN1@ibd;_nA+NVHOiNsF+Xvp
zmkasObJB6Ln(R%PYHSeGCC#2h7ZhvH=J;{YJhhuSYGZ;&K#AI7*-=SNB5EYDIR*aG
z{FU%MT8DzWFIqCiGS!#*VqdiEvW_~|Yo9ypuDb`4rsezIjC($h7GQ0kQat^_l{-=;
z&a*&K_T0He`11M)%MInjjw>Bn7iCIjayOK_qs#5f6k}p~1J<UFN75gCvl;RNp
zpHI-CZO&2L+cg}1`7~mQTaar7B3Sw2`o*Z+zsa(X1u)}PvB$A{
zjHLOZY#NF)aRPoQq5!UefdXY07pnW&tVv_OP3QjUzw~94Cmr_jM;GsPJDFU6#{*~W
zAxyt!n*Ag^^}NoHPX7R6iVttceO{vCQ9?8ZW;V14mIVro!++m?wQ{ts>I`=6XJms$
z^tm~nXFcl$_mjo{i6{UqP!VPx{}vJ(mWd;3VdDA
zXbPs@9^+f`g+NNAIt33MmY1+dMU^WTi4;eNfu?p-KZ+3@FEo^?Wc|JUnr%wnMU{<-
z+$^+8=FQ?{5f!onp6*{k{mlwOq51+Ki)yyR?D3Iaw{WaEXf>Pa6&cNG2|WUkiPAb(aPPiC1@YlOx|7e^nwNp|`Muag-
zB)D&c?{&WXf(2;2#J3>@a@a>*#%i>clJ)3_^`tO~)(?b)!;q1$%_7Mw2*Tgy5Z~E%
zJuglPtf(y>cT0ePQd<+%kDAB_uw!##sH3k91K`WO;Q_U~SHGL9%G&4zg4dqz&3I3{
zl1lm9UO!k-Zp=$Ir5~2Kb@TQd3Y)s|x;gdoOpAJ>pxEoi2!sZo;bN=D-|)f-nqxIC
z`C8n651%F*sWUWnV@USxDE_tg?u>K^mC>~&($@)uUTlsf%5({pGu}V?JDJymZt&--
z>J;XcrW$)oAr<&x$aMxy%WF+hevRL#bKvYk&Uk3-8<~L5;F5;-R~;n2cCR80hXM6J
zpcEB=OmNi`l*2_$6Ps82q^GiIv)>kL>}s@m@L}DkS#u$!PAvQ$^xC@Uaji`jB%ql)
z=ne&&%twU4TvI)W<qHc2R#f;(nP1pLGy@u~&;F8b|OqBim
zu2^rD3+)T%LW_ZRJ*;tR8d9dLO!&W=NDnn|TWhLE%sr%~kGlL-C_!`QF!nWS7S13T
zJR}4kz|PLjNk9npSyNMk?Ym+83@$5WQMgcjdJsM-DpEke
zmd^uAea>7>XkYZ~35{#rlShwEE^OQX0Ml8Q-_Q6XL4T4PlF{y|9)GXHXc-Hz?SqYR
zY$N$jN!nF|rhH2PZiXoyx_t*to|B=OQ=(T?lIh%95%+{C3yIKli@y{BO^M`CYNLG6
z;D^KTRXj=PUshshdwzj|!@}oBoU5FwjF_hcw~*Sxc=}Gbs&oYMZtfU6q54jW&8&fF
z|JlmzNpn!b*2_{Qt1E_Gjc5Kf!w?ZMd5a-|N|5_f}T
zXJ=7|`1HsL$T;AJB!B*u>@YJxgI1qGm4<}vDZt_K@)Ck8+Z5P8fj>RHnl;yr_}E3xE?>a!^eSBjt0IY``B1|wPE_h!MvAJQ+3OuuK_2k
zYwL~DV+d8fvH#~k_rL$FBroKP9#Oo?CXSt#fI83exz?C6a)m7eJI-G|+rOhnoPo1S
z0)&xWqh?@b9`g6G2_}RAMQ?d!$d&L)JOm-Rs>q*TMf;
zc@;H+nm&a=6Me20uPZFwpN=0Qgl^>6w&t78Q)^rXkWLN^XgglQxvKW{be%k?O&yCp`uhP{$-NV>FIZ3QQ?TFM0)(HsS$d`nSBMr#PkStZgov5YS>ds@)2rk
z!939SJF71vOZ$#hY@#VGK)nv8A&3Eq!-i-_P*(2YLT0TEs=AXElf|SsbIIHxFdn$-
z4L&N=EDa6qAqGt|TX6q}gj4VNuU1nH47b_E0c+WD|B*JsCr&|aB?cv{#&6ek4x_P$
z7{4V&9Qt7+QoIjGNv5yBo%cekQ+=IZiIC4CNnNj>D~E9jVArC7i@^zsyk1`*+#Dp$
z=0I1JD>;nn)yt3$Z3Y6hmgU^z=3z)P?d_cyaI-$S`7%7!NsTH{Uqy2yT$V
zkH8cQb9Hnw_ulxRoz4$__s5#GWPZ)KNyX!)V}DOuulJ0zaFIJompMnL1P7XHNEPy7
zS!UsYgl&^3WCG_++h&8wDNHbfs3&~MMPhWB-;QV@Q7Vw~wPpOE)OM
z9c$->1EQc&wK9_O(-?zb-aX~;g>6^~<`!`E>UE6B{cPQXPPd!eaASFsk=9Cz4%4i1n@trzi=@%U%rW
zT@ni9V90EpSQA6b7bt(VXJ9_A+#cMW9kCN|e<~1ot<+cl87XRuhzLq{M
z2n+LKuT5>0n_Hn@
zq`YZq`VR-!Oc)MG9FQzeXY*Sd7vB9`xqW)j_wZpqpNmq1j0orK2b+xqWj7Hw!Epsy
zUS1he9i8`@k9&G*+`GIPKmY@=1C8=-c<^fy?YFc|H9P4+@KgjD<~ao!@7d
zNzT%%_-+_k&&T`0yHxHnGfrHE#Z0ij_tVO!cuWpxaBcE>)
zRx?IpDv5)7jFn7N^(kZLLu^SWgE0)v&sep&Z`i!PI^Tm&$=vuI+}XZ{C)_u*yw)Ss
z%obH&Y4ugdW~rheoF#xJ!=*c{6Mj29GAQ7>CRKIxM-(u_wp*xj<+!X4JU6aQB4=%t7{vrKoL?S!!1J{*_5
zEXwxW`E{~8`k}5;GT3pt=Lu_L!+E3J+lX{#2PCFdmE-i9uQVek)59jwM>+Jb66m1Lg
zclq2yB9{|mAC1elQ)#W;l3Lt0k!{S)^RN0W>FJdbJ`8h7lln9(*LIPI*wz
zm2W7`fh^mZ*v(Salm&J)I*Hha~H6cLtfD76&Q=lyL+uQng-y67Y
zAeD`EsvIm{4yg})j{ZnG%b(X*z6kLwt|17XNoJ=DMiwwYog$HifZzuPKv`poY7~}P
zvsy&6Cc7>VE7|)3TBYt}eBhXx|F}%4VSMcP`IeB-YZKA&BERX+RtfU@i8Tc)@6=pYpwSfi)aQm>Jp5
z(N5e8=_~p6m6Kcb{t0mnpAxj)9E(L`-{0W#im)XqQSRkc_-M5N;8XifI+G6lo;zmk
z@AiqC+?V^}`BDwG^1AxFnTxi-uAjoP{N=l|U+;9U^E%)9{t>jys19R!t8n)kktfM>
z>wAne`VB8Vbe0~$@EC*k-c%}o^rKnO0G@p8V&FymgAr~Qlxf|ML{8-^40^hf@rGfh
z0u&bdKV@h;s$Y@^!P2J<->}KVU3ov1)KRQ3R5)j&c$42ok&1^(DH-0`7sFG#qHOFe
zn*28OzVv%r*)Y61i#z$t+seWwoOU{6g$3-IQD%;g&8#+Tf0xWp-*ru_o~r{>Q*a?6CnJOOsCarV?i(mzCt84L{V-W~02T(!WKC@=
zzD}=!>lHom)21hKYx|>M!fJUmyt%sIKDbIT4gsZBNB`GIt#EqDB6j?GU#t>oL!uxk
z6?usbq;T~RQAfSll4z0h-E-Wxo!+7c{mMpy!5uk@Csp`J6x1mtw7zf%B`YHe^0eLg
zQ|ma{gUO2Zg$EZXoYFu&7Ex!bDxf{)0h10z4xzrv34Xu0bD+1!LR{`;<10w~>x?W{
z8$vxPPd(`Z%9?N>1X{i>6n8_UZL5W@nLfvCAF&~GP{_60HiaJsU6F}MwP}a>BGpMK
z+qEH(A<*k!OdOUYeFnAF3}D?_T|byhnH_y&G`+KdgM!=gA>Z(l99+(OdkCGDt`H*>
z%&n&?CcMPi!P9@1oJ%Ennj_>5ZemlB%|vap1kR({9E1wj%-Fe#gyF~j{NgK)e&iTu
z`+3|nm!-KMlhdHtY+<`j0hTnwA7nS7L_MVXi`lYPnF7yKjftT@W5KT4QKR
z!pB+Y(FfLa4=n1{-{w9-s4HZOLTCswyq`;j|CX`?GY4Y#lV!>}D$mc0{f=Jw{XFq4
zX$`%((6*;=l3>uZHG2DD(J(%Mw^=YYyJS?u?gc`X+2v~Q6Y2HN-K(v)&Nmyw`)eds
zaP$=DUL0CeH$omc))0w8l4^34?+IuX@ZIhSLe`b6Pir}Lcs*z>@A$4iiJ}&*ildc=L#r-1s8=jWi>Cj9VC+m-8GoWdK-ImdHgGWnrdb_=WFZ>BF0Y
z{_k$H_11n_D`TEJUk5;)%FASwmI}4f9Zph0eg!OFoysgb11S1ZWnF2OA7cWHMmcEtwB2M1Fy9o&v3CVN4jYR65oAYKDFP4W$ZI}`}k2sXZo+tPX_i7$m
zZd9EIm2iljDBa$y+XZM=A01t1&0rI*xePB7US)L+@-8r`CTU+}_qHbcrY>`+OQ{LT
z!51#Vr5>ZJAs|bMq(Q%iU-Rh?Jo6@`ij>RJ58hLeSMu%(L4OE=D~evumu`cU{#K~K6kudwhZ|A&pszbBXex$^-{3+bbH-3!U$ixAPN*d%&BC^TN3xs8H3Owrq3
zNmHLeYek)w359|ZI4%)WwsDR37mp+rN9nS(fkGCcEf6wf3B!PG!vLsq
z=afMbaMklaE{WO_*DA@$P1MSHis+SM1loA+{vM*C`l?r)buQxt5+x1F(~OH`ORb&D
zf2->2#T&UwaHb{EkAfyU;dy$al$x&Fl#1a$|7swZ(uhX1^!G|b0F)-WQ&%MGNMVBq
zB_*eNV?OuuuA;_*)C(O%v?;1k7=={j)TSPLTdxYb0)ta);U0c`i*&p7O;Lh$1GIJ0
zneR&h7)hi4tF7OExhMRueqfsStt6+Ry$Z_rLwyPz*J#=?0-^N2HWT}{(c=nXkkGyS
zZ@!;Zh%%_2vrbk2+h6AY*~l=fP$3XI%YW~%aTs`JZnIGC4C$myq
zMT$kc9(ddGrkZu#fM1RS-zU{&Uj2
z3T7N`EifR_W9Uf@WesoqfGODMyqq(JP=DtJa?AFb5xV(-$9Z;WXc2N%&QGhE`|B_@
zYvce9jdcVw-Aov)y|&)vkrF)tjgaJ^({Y+F;#EGU4DGeR7qB4+tie$4{Bn9kzzE|0I&q|2mtTy%sW*wk67)q9Urn(3}=1Ck)M??
zxW08Jp`kHuzc|L2lFv!^C}U%@WY0#&z=Xf(YPjhjCWSv5S?3t=N&zVkSl)^U?F5UmksZw;;VQlg+62t`S~MrTL+DZY_4}Lok)8cH
z2E_DVv^WMW0G6)51kxpL__+&w5eEaiBgJP7kLCl;3}=k{hIJddmrJJ0zASZvKuw)I
zfD6o)V@UGYnKqcfEDK3v-2v`@CN-+@>(W2_&EN1;5`MbpLg}{a!j;YUg9MYBdR#kAg%&jVu
zB9$Jg$Xfbwm3*z24lHM}t3tJ|1F3lr7}Dx{&aUp(YN;=v8@EmTr{Bx>a+{+3uRfv}
z9#Q`yb!AE#xdsS_)nGq_8O_GInwjwXJT2~l-u*eZtF#e15iIV5Chx}VZ=-wrZFP0ohHANBIhTt(aS@LvCHuAeJpKmGY~k%l__dX0O>
zcH#r(BC(W#3`K6%o|sNEimPM#BbSn^>;fOj6C3n)%ga8O=OkDq3Th(bDI>@;VClFj
z-icm&|DjvNbs)08?OD?WxAZLCQZVV2;cJ@AW1^1Y
zb<*z)Q6B|Kdc2-4sb?fV?ozvN`ijorqiaos>s)!+v`Ksw`SfRadFBE$vufz){sUNzpL>_alqVie=P@OuN74IM96(Rg=%
zXS$B!G!`&fk)TOkrvBWYHgQulnxWt}Rixv0D7ojHj>0B3*3QR0vJB`h4RliNu{`q2#i+_O?fR!=#l@N@
zzIypGB7ph1k=ta;)A}3P>Ru^jT<_}BSOVXVkgF=)zyCh#RZ^;NhRP1*E=#jEj$<0$;nSHCa8
zR}}<6cJfE*-S7j-1F_U*?=FQ6&vFB&z<7w_1z9+6Qytq|94wtNPa7t-DegwJSz3L0
zMDEo0K6LP!<{-0zF|+i5wD*LVjpWGV0ZE6hWo}dcG{XTx)LMTZdJqIYyKxg(P98qu
z5EPwd4K%SX`1ZbXm{+`YlWMAPQ^h{KC{WHU
zR;x2bi*J7h?8viVmX7@|mY9ceC@BMnGkkJfkfzF2RH
z(RQR^l#Qln42`~3(h=v^p2i1Df@^;OG?Tak)Z~@bV{ueBEV{$3!v*OuyHGOw
z(uU3C;`nh{%7a!?VZ17=tzK+)#h7TXp9K?{!v8|6h=a(7Lv7Fd8)(2lYyZ=x5kbo(
z{(M(9nv+XKnD)_rhD-GahJkyVV@q!|NA*9aOII-zK`r3}=~G8+-orv#@5K=IJwyamHS>IT+mCne?3zeAAG|yuj8$Tscdc
zxJ&ORTOH>9{P@1h&S=WcE5p?t8#hdM8Y!)*fk$&SPs0b(H@k$(e&j5DSy7YW4hcz_
zHEb)H+a>Q`TdMWV6q+{OW^Osec*n%J_jD}JSe3m^aJHASV`ETUd7>))W%0B5P^7a3
z_UGF&zZ;qEPPayq3UZPt8>8-*q=aEScgsAH4}Pu+$_nlZNAi%Pk_Xce`HpX^zxvU#
zDlj{4Nt7R(!?waxYLc+;Y9~Itu*I8+0>|sH$mS8v0nR?RpNL@}`m=@tA=n}xFD?UX
z3*y10oGy8!--yK8)KYwF*Ip_#THZ-M4)okn%*c0_bdTJ*K~5F{U)R#pYj=kg(m@X+
z3d#Z<>(5B7Ui?Dzg->ugF#zQvER#1c7Gd7T@Fy^2v5+LC1E
z)D>;jpC{&b)A9vH6%yD`)i)>u9?V2;TSz%Z%D_$T;)0_Wol9f;)mWev+vV$y(${vu
zs`X%e;cWJ-awBWJf@6^6Hq41|##wpki?fLOGuO}bBZewmpJ-k1q3guP{yyjf{~Xc%
zt+g`%p?Y9%7yc%XQx2|-gh9Xs*T3w9lIszw2H9pW{^gthCwUUwY;!Ctdlysl1l>+&
z&2uO4ewX0{Iaz_1n7#Rf2CMWBve12_<&$V?|4*gsd-SGnSLGUE}lSYRR@BoR~NTk
zVJlS^6}GJLi}fk56^9&Ihb~D*%r<=W^GAL}E3!R;znubm;Kj6ls0(NecCJZmf9rL+
z<1FH7y{<4(J2KGnYotl}51{?}4*++}m!xoi3dXu0?U^ujg*
z*!Hp?9H1xb=qtcKKW6<0=rOjX3JW^=EcdTp$lmc%`~$eN{W@&>13W7_;kAKk&baXxF=fsraBHN|=!+(7qJqucu&Gh^MWQ63t<1c$#R_8DF
zT7O}7BZhyU9cGJb__^waMA3(<7fJBC@?~Ny!9x6)Dlb@wZ`Y;)sX8ELy0B(RHLF|C
z7vWV_bDT^UsoYACNK6oXG;<}=rW4iROd|wrO4)uX4#Exm0b*-M*g%}&RysI*VL|6Y
z2lzr#@SQLG)_%CFbRrmcQSocGO*;2y-M_u}{m&Clh>%WNvSJ!^8|v-I10)T{Wp8X2
zJ7h+RQ348#3lM>>5lB)Dz8(aSdTfX-iJwQ$pKdvF{D}Mgu{ffB$Q7X~?cm7GBiKwE
zof@fD!HT7r2(FMp{LE-zyGZ>5tQSJ%eg_x-UU}lS7W8|v)9nwiM%ZwDwdohPloyO)
zXBq9!VKuxLSpbS6_M$TK(!8LXmd-=s&*2vAESqTqLz0oj8pFabNBA~%(I`co*d0|V
zJHi}0CQ9#@zu(^eEj6v;&-Di=w<`(g){`PTnFR-l7|5N2ND^EjI^QEkjXt$_t+BuZ
zp@AdOxPM*{KGr`+3D;XMsiwyMzOS9K%aaM|y-RRlb}I)iMYgsoXU(PnEDVHLO)!U-
zu;*$UiD@QWLxAuERr?_=!Xw_%z&9?FSg0N0l7dXv>T6;pf$HOU3HF572A8i8z6d(a
zgyykt=;|@?Yr0hIOmF}7joSXqZlJ0Ey(Sa%tEO#NPB@tqytcg!LD1b%eH?g^{oe2w
z_|?hqu#lCe!;YZ&A;1*?@`l9vaUUlNp*2)q!5(3a>U!+(UbbkQE#z*73%{*gldh6@eN|abJ#g>&JalPt6d=+
zE|qp#%~p&E}~U>RJ_NJoFV`v)j7GM1Tvu-H$dJ27r#7)y|afz!c4!Z1(q5R?}rtN{bvg$&tQ
zzu?f9M;38%x|1nsfi50mC+y~w?d&Yxr#&&=FaC9e>>A)*<0f8nN44d{%X8XNo9F^E
z4LaT|4p`DRbePyVC>n~V1ZSqg{NK4fNm%zgP9B`xW|Bbxd(3};Z-0PU*e|(xndx8P
z>;(Ig={W|GS_P8opq(?Yiol>kIGTVq0??WmkS?)~RbtRajqr0z4q9+)(=mu(ci9=I
zdypXGumTQS0i+3GJNYi>Ag+IdFU$
z?SleNzzfpy@A&*!{*io|S;y>QP{$yF%PG`*p%|qklvx}Z&5ei#NQ56$peWb@0(Pd@
zjIGY(#%LTt2<7qQlwRL+CbF;nx?4Hu8Ul^f2GBo3YLlZ0DWQM+{}o(fTF)x~&T%l3
zZjD|f1PrvE%%3%4yc9S70R9KdYxoK$&`Sdt)usl(wD?6Gb{E)TWzcUYyKA^{6P$He
zNCPQipeg6+P!|nkhND7jw}Lw8UjyL(CmOb1I=Fqk9h=Ig)H)&YY<=S&G0_p!+aH56
zXUHsUqW{dFXT-gg^80@hTTy<|pBgo4JQFCVj}jqcz8#mTl!TQYKS#l_lsggr1AJAd
zI`;jyV88q168Ptd)IS4H#1U@>4(opia?Q>&hIhhuXGo?qlz1ssb+6FB8rrlkUn2b=
z-QyWtK?l8-B|j3lp%~=O${tjzPUmx%Z9C8=-;3kob!6p5#fLvYJZ!@sxbX*=^C$i_
z%h_CGwK14kxDr{I`wIVD35>%aQ-9J0Y(LO7@fP^8S-w9<}kO;JwXcQpa=jTgv%2OA5N@4(_!iLFo-;jZ>pB7X3P|
z({~%xqzywpj@b$o1?=&&C&Uhqz*3w48+&gZ6-T$V`!?>-xHiEp!GpU6CpZZfG`Kqi
zcXx;2?(P!YA!u-ScMIg!yT5bxe!qM6`OZ0G-22ZRw+D>TO*gBmx@xUjYtH#RKXEnl
z)7IirJ#PgQ`rXNPFV;``z-3GRE5=wS+h(=_km1TyI
z=JA`KV3L@7ea%DkCtUQAqXo2D@7_RTI+RyMP^Om
z`SRll4y~Wbccc#aMJZYNS)M=qh<6Dh(H~V7iXuPY%t^7eH_#PH)8`JmXiH^&x+xQj
zc`9K+X+=0!yO&$e5nmYycoS|702N4YW&TS0{cVQ!e+%IMzwuISF=|S)P`S|75uP-)
z&vPhQ>6xhl1d|I5l#pJOIX*!yGH=AO50g8Qyi$;g9Rs+~UpQuLA4BszLz?Z8p=Ifr!>_1IXrycchRE_ZEF-dH`ZYGt#wfUZ+%uBE&)(>EbEE3V-rUh2^gD9E&1Phq
zzwWOnv#^pVc#y%EXGDe0yMPSQ2Pv|MBIxo`b(BUmQHhOCB1|l$KsD_K2Lu82FL?R)
z2|$x~CQqzsh8ug~H|ckls5!=qA67b%KugL6veAcq<*wA{^iyPY!OkVV<=kATHfKn!
z&R@Z#DEO4m!oxZSEtXYqCc%QX3u4+_kpCSVvOMF>npORbQRh_ZLW;nY{+0KgwLo4-
z0lfxFGww*J1eMA;J+v@A?G!EuRZni_jidc1N9}-<^G1yeREi
zRJ7DEfIFvARf0N9E|{Tr7loDwtYx1n-Y+<}GXw)1k^fY{oG=>P`1lx{z92?0$dWPu
z5V49=dMNZsYXHYyj}K){c-;=JO6sh9i%+1C7_@cA*8!SCpI~7G-5B^+k_M<)M?A}t
zSO8z2Ka($JR_y45N&+k9iikn#B$G$Mw(>#Ty}~?mkTr$J|AgQDQ0>NMqeq{&6L;MQ
zl!tnj^@ewah=PoH?PYz>IjHr7iie-noy)Bu@ERrg@A<%m_m!H#9@&^fMOW1
z9$9E+2>cI3gz~=A72hDAbpb;uGA?zz;vud9c*Bs&Q#cHSewD5uwgm>zO}z|3Fd6&w
zP;4m!Ea27~DZp)3altDPYKmhAaF}>pcUc%IrP?)8(E-vC^20I`;Xi?~O9>M+D=glM
z7<$U^($-lFe@Q(`E?{Q?dOnjLcq$)hNoFp>J`_E
zD$V_VZ7mx7}+eC&_z%irwM)k!8fvU2Y%5IwArl|}I)
z^SrRjWx~#;-~Eaf!ZLEh{H`T==x8BZA1_WdnVd(^-cG7c8!+*MmJicRG=CG2&bMF=
zE2|ZE!J$__>$6b|S+!thn(a;3ToKOzj<-!!-%lmIPM;jMb$--yh5*1mf>r0+cz^3c
zp10Ind!K@7R~-n8X=>_UD)BQ*Tqj4DA6iHZ@$HtI0*>aju?+;{Mw8`h;5R=@n`#M^
zT?>C-U3ZDLTd-bMI*KINCh!;w&5**d;=3D{Ps_vv9~PbNDff8)Bqd*`{K*Znn3@$v
zKqlR#S$98M+|z^k1Nx2*1{O#!WycF&Ty>1~pv!#`?#;%)5?8R-AU`H@B?>*+BUnN;2}#G@Y|?^sca}22p(1XJA8)BpXO;;YOi}`jV;Z-8vlBmG~oe0
zdg!n{Q;Y8;)#CIVFnu6&`Dq)ama4aAZpUM!W{2hJW@)0XzM3ZYwcvaE8jqXPj$3-r
zT6~KN`*2G75;H`yn<603!wHANh8Ss0K-2*5#tNrYAxnn$>)x^gl9{PnC9v=*k#5>&
z{9ed&4A`KcgZHccfUI;$+a47864JdK7WWLFH#X6`Ufpv>w|3?8_-?D>KA0;BqIL6}
zHJsa}@?>!VSZTy*rIrw@W&6N56E|9}yly7c
z{5fwa@au5;Pz&6N_<=Q)*IFEp0qPAQ20_>v4%{0iOqS}OQeC!HHQ-BB`ln#l8}TxsSsZ4EZR!p@PI4t4E_i|C#iYRNbj>z@cnT~Vx+0DHx@qa1tLg
zqsctarChPOru^A$D9jzR)%@eR(Vg?
z-&Qf^-74vDP}X1nWGL<3O5-OcwQ4biijSZ4jUAu!S(_D%eA-OQ8H)A-W7}I(?XOK=cQ(;%HC0Lq6LzaOO$X6F
z09`{GCq6O2bA6jiMV^h{yhch9om%~fENA*NhmxxQPhRtc;bJidn3!D{9G43))Vi`G
zO!=Dk_?HHN4q!}-Q(Js2qrNt(Bv*l4JDqQiCP6KHOfB84_5*=$;gUbOu#RzOj4dsr
zxAd#1QE+cXm
z1aTuC_i;de-&AS}Qi!VAT9J&;%#CLwf#n7de4C&Wxe-LDo@Q11$Ux>aAmsDT{$->+
zNE!1$HTOItN9y2EV#8tr)vspHDApnmR)rJvO-e4A$F6h=>kOx8_;dBMsMY>KYABo<
z>Y0b}w`aZqrbF5^r{RZ`6&62!HZzl}WWF74;r8>ft%jd3gv_A5wX0S^kf_Fgld&~R
zZD6hUKuHk90aM>GC=h9M{W^UY5izD&Sk2PD+L2_hHB(5o*gu21Q`_uMlBklPqAsBo
zi1!G+@s&)^2FZpiJVBmfCDy#+zR-`_+D|IxJ%e;C%Nk{K0ceYFFnAC7C~44xW;-*c
z`lTzp<{Bbl7haB%S8tZiNg2Gq+GLHDN_!nL^|GZeQ=N&1db4w
zXtGi5!I6fVvWv!m4U-wae_tSM8*5oK-R!rhD3NI{pM`SL3LPup0eUf?p}A^->WfyC
z>9)gt1wbhs!*P1Qwgu{^3BjGviaV;n1?Mik2^ex}DiG;rxi=cdFu{U-srqEM8L>
zpCdo+E-y$u55|7Uw@7*U0~*QtiThnSq0;=nk~#cs8~@tcfA!45?GI?i#Jk-)o>GgV
zq5Ti&u&!%OXgIba<#GS=W4$`_?;j7nzbt|a=ylXa|4r*}`?6k{Z2o{`fnTk;(+1c0
zKcN0`pc!CYeC*!Ebr$^xWa@ntn+sI8I(dKc9QkrD?Y)(?3V5=)SS*_>Cq7Ad(@y`l
zFGfx|Wse?FiFHDcUPf^i@Cg%50C53=B@oDth$KjEfPBP&BnT^|5DEsTn-}q~2^gdY
zMl_|5RY43%K@2L)AS#GHj5nd1yd4%6BrN7L*JHKXj;kh5ok4(5SOP32^Z{@g=8Ou#
z0463FO^&ZmOc=8$ZM8xf?jHK19&9lm_Xbl&9!5z|{S6PJiMUJj*O}
zW&C=Td$yA2~9o1;*Y5WGIsfTs~XL4)x$W)FLF{coe&|n=QzeRKX
zN@yfT^6blvl@F*K2>Nj_DmyN+-^h`X1b-w=^I0Hh0n3%TVt)^fpa#K4F@StPA*p0g
zss#`il0N7VfVRm&TQmJe5jc~>$ac}_1+nM*;S}@ix#q8HON!bI&ryKf9r8|byen+q~?TL
zIzp)Su}EqklQl9MN=%6~*9Sm1fZ#WB%}Zlaloby{hm0nuSQ6w?UsL?Z$V=o4FE;p(
zej6rV*dGkY_Ou<`G+26FuDSEI3T}70OeCcppSkm1PZxVY$Zt_5f2Vr47sF9$k-@8T
zHfjemsd1{EXWp;#?axeRex7a-t8@N(kpHQON{yY4))s9AX^y@Rwt!VU6ATToG`EOs
z*DJdIc4{*9$J_?HqVHyLzKfr2xLIFWmm+4@`4bcuI>{*$ib26BLF2nc2>7a&{*K6>
z!Nge-k`vEW!Xn$qrRLnm5zqfihmDB7xrh7r^R4ZGx0#g{`OcC}?Yi@`qZU)!T&6Zz
z4d!{rd#o>=6po|o9It(bX1V!OVynsWYl7q&VSNIBG34Op*!sCMDLCzBgk`KiICBCV
z+%`;^VxuC&-iG;tIlw3p&wQVVFHJn~>OA(wwWQV;e&7+Zu%5EVFj2-ORaTz%LG3-V
z9T-;)6Lz>+QUwtNthP)cxkP8BYyavN3~?1YWDx3frcg;+LRD2cj-%OKP)RdiNEd3q
zM95hFFPou=(pdjoLmX6i=oDepF9n?bMN+Lk=>B~ipw*Frzx1@(!Qh#!_{zjsveL;F
zcC{P#(R%A>VE;55J_+waM+*;N9nVZHAtn^kJ1zj%jj-!IDumD}Vol%@jEhbW9#6)`
zWyL)3d5&F!Dq_8iCd$@zrWjb@@#BgG@UV$PjT&VM#@BQ_o-BxX)kh+;rQY|9M4JQMNTktmakMKhB$PQg~w3{BoQVQ5`KFYMjJ3_dOWA22EmN{I3hMs=7DiK@i>W
z1pzUSDEtBE;Up+`5D&{G0|5dJQO~ZJQbsu;0)0Lp1
zx?|bozfN|-9k19Ce%2!p19p>*GMu0{9D0oWJY6{;@Bj*_bp|ji61CkRhyjKCocUjB
zWFVN7?Q;eOZ$Xm;Fj%8+p^3oSz&Zgs+W*<@$8faCfdA(I;b2&zPV3gH!8w
z)9U`Il_3|2lNTjZt)D~c&9C^Elp7~BF%ir|;+5xE^k~dg_2C5c97Gyus0roJ$eV&g
zz@6L!M(0C*2@sb;rKXR7MUU+RTsU=!Qp9|mqiqytzI)tTkCL%nJsox~TJL&%=Q+Ps
zGm(OEiin|86V8U2W<~?V)9sGnJ)%gdP!+aeT*ELkLQ&{oI&&(r6wm-@$_Xnduh4&s
zs6ggB@pa=LP*oxlels3^M<|sOcKcj!Eth;xzIjQKaN$o5R3apQVa(b0%uur&2gy1d
zpeggUL|da+_~BBu?omRqgwrQ@7#h)_0`3gYVV_lzUfmzXE1(v>z*Bp7`M}l*(ezLaO=4P~+W3!K8E&Yt0ggKean(MmJ(3MBa)ktLMvZkZyjIZeiGU$0k
z1A;-saTkUrgP)NHYGDsY71xWHaFNxV@NqFkFy*nJLD|p&A9G7PE>;=U0V@Ek7kVxL
z$JrGrFDay<;8kAvEm1VlcF|}`6-NnnB>`FQTqeX9R!#}Ta@eIDasjStr)cxHlVsz6<&bs~`g
z5v;2E!W0S;hIOaLCUy$|y{8v<39&6+^@#1esy-Y$+wv4Gas$CQ=v(c44@al9og7t-
zFeDHkU`gri1Ev^n2%>U1K4V(KX>}#45GaF%m04xrv=paQ4?#!r9J450W#x3hjS%QG
zm{90b+lnPkXse%9zwn(OPb6w@EVt*79euCWiK;=CD3Q2Yi%E^v;f#uk*
zP%N293%&8!L|2Fv-aSm{KLoF!0`bNI(hq3DZfMdXR$GgER)b{BGchp5$Z-l9w2TWI
zyue_Qi1WWUBKY_aya$|Lx1d4fK(C>fsZnMVP@4N-O5l1#pRD74Z>IVZ9R3v8bphSN
zpqx1HjDdfP;=KVU@IUz@={v3HbA4@~wtjQIX)^?$37OD(#?k*A`@FkJcP3ArkUWSPGd{{|0_!{5XSL8vi{H~#cnvh1k)eLh{
zs?^7NNjU%-kz&ISkuQV?ED8P~ZdXPvBN~@aFRhG|m?KTiATtfTiV=~C%f?BBMkE7U
z!+q=Dojh`9L_&~h>3jTs)d1ug0%A07yWo<^33AC_8?5j)e^w9==EmHFy~2_e%l)_DgI57&kHnu#;
zauIqaaIUzeiLc00^-(lVD+d7;?b|;u2``q7kz_twzYB^PQO5cuDh#uqhu{KjD^XtW
zaMJIjyBKiV7uMWlOv+Ykx4A(6B#x!2&MxJKgr{?YERkDTR(c%nN+T4|@EO2ib&L)Y
zgmw3G-l$a>EL}MF;ZTbI67Ln3U=0ikH;M@*BMltvB)9u*&Xp+JIQHlJ)Pv+d807@T8#OLrfsmCG7j>!s$9viTx65m)
zu)H5yx?UK&UTicP=e9on0pWA~0Tna>%jcut>#agBfSh{d1F)1koqN&0r}ti^{sRj0
zc4mHAt+E2v$A`GTv;MmKGqmbr{M70S>-M@4#8_*EU;<+x?&0~lyG51QsyT6KN?|s*
zG!z{vV}M>2D+D~iaEAX_M_crQ+Qz$mlvwcon_s0!j2sSfdB@OC8c
zLlh02EV2I-|Cl@1Ie=L`f?Ft>p5oZ7V)WOZj8jDbG4Hm#QCFKDf}+}yzmHOfUz6RRkx_1!
zIrCv|h;m#;FgbzLa7;RC-3w06zci%RMNVCvdYI|`_BwlAdV@fW+cL&Eg2fugCn~u{
zK#OYC^p&Icu2xw_Tt)}4|EJyfHV^)<*C&$+`Br!CM}dZB{AU+8i)BrX$<@8{R-~ZD
z)5SJZ&m8;P=tO5xWzpXLx|TOz7u&i}^^fg|DSud@=nZ4jSVlU1B^lehXl7%Yd2}!+
z*81}9$CpL2U#~y=6!7f}d9Cc%$-lioD*|i_t*oZyy<&>hwy)gNiA8LU?gJ_M9#(;8
zue+Mo7yLyHWt#nisTd4v%BN&;mhHdWwAk^N76NBZ&^p8CX)>~u$+=DQx}vNvuN3k>
zk?mKyCR;tDyI?FY(vry(-=01u)XkMd>Dh7e4fBxhwp;OkPOOquXL2Tf^GmU5?&_tD
zj~5+F{XA2KDyF6?U#6@&Na2GZKeZs1YE2rJrN(olr)}i-#?u@nMa0gU#TI?%S=e_$
zz3z+nI%woVZAz>=!*A!-Yk^{nw+?&x2{70FE}e;UkK?tC&i+mB+6wrl4GzP)PD4?a
zmSsr{BQg_;;KzdO!|9hBofif78S`^72Mk2?LL72RK!
zH6d2Jrt7ycE6WuX{n5l$r|vpQWX#{#a_PBnQdGT&)8Bumwu1DT0haHlr+q0^SSY5R
zw8p!+lwitd97f)yVZ~V|Ii^EOwH^GPCAC4nEmSjdDNbcMH+&d_y>d9JqeW@n(}LO0
z!pHAxyTw9l#v4+V{M7kz3EzPf7CWqGrdyYJ8YZCqQXBQrTt_D9owV+pehugjRI_o4
z*XLGf2i>|p
zB@jni{IGNk82aUg+C29yYPEJ^VG!{vrDjfO(hw3R+>}64=7B{_tyCGtiB0WcX2_@a
zho3AtH|=EI>a)o;ckNciu)x?BiPg^)Y*)fq`(`&l7G$|z|4mSPuo;KR
zjIQ>pT%OOnj78g}#&-UzpNg>ysN$kkR65P{Uq3G?VeGB98k%#o7RAIgi*kOZV;?7l
zw^CQLVsLzyjfE9bNlSS(K5BvOSw!%g4Qm3EXJ0kEpfQz+?g$QN(Lx3Xs{mBip6DmB
zq{1u~mEYmrLH}_gV$@70Y*lv*%>!mhQ#nzyfnHOE*$U!U4H7F!XG_cp*IJ?2i1}z^
z#wI){_ihTL%Mls(O*KWpeJog7BSNc1XZ~r{k)`*FL@vdSkz(ovI6!>g~g|
zz8w^BzYfQ}yD<_ACZ92%_#hvO8~ych+LI%#T4$J)$2#r|EFw-^nd>~OTiKc0z;C5e
z*166*zn=7ROElbBSv`Mg%{=M+vN(TOBBz{@E0$11?<3sL0u`o5N=6N2`bhQ23*==g
z=z4MXx3j6vU|7Y=4ga6$AHc0v<2*LhQj_`3b^(FNDd?6vC^$l&u-<|+)8?(NV<
zOTn*xbC-7japrL1AuFx^{PqMzh>n{Agjsxu0IDlG2%=i>HmTK2m)FJd59r=sTj=-o
zWz+ASt7g~8va4-i0ftP_p?`Brzz%YZrgN`lQC`2
znFc)FL{cBQbqddhEUsm_x6b0HH*KJ)^u!ozgSAR{CRY^7UTN{O43Yn?_N>Y7+r==AG_JEmXj=aASOUhp_sOrx>@m(T4klk
zC1seu9Y1Dd$4aaPA?fCX`j0EGh>obv=W(x4mTt&Keanj=pGRTpSaa71bz`=OEYs=o
zwSkGV>kovGC)f5ipyAiLnI3ZcCbIr9Ibr+E{ADga1k@_DfcCtt}j4{F$kp
z?bUQ1-D}A{O$F_Rvs;BH&6&dUOh3sd#!(utLN6xx2fjLr?Odx>MA@zGz$)P~cZpzl
z0luZW&F9Xhkg-!;vO0~u&m8FnOJe2tJ=0l8X0qleOUz$C$%cu@;4H-jf4B3i-u$ri
zu5h}6z8W_#3RddegWepbN0UR=l=lj|w8NNM-$)YO+}z?M|AS*b=Yit-T=+@^7P~h(
zxr~G|s|Y{?ap{|70mClYu__oGSPNi+F~QJ>2^ttePs-=_(N_uPic*?Z+fX~Syoo-F
zWe@p}!XphG^fITF41bT>+}_RuP$ym-4hX;YBVvff^4|58iYExRw=L$e$>9w%Gp-sm
z{EN%s-i~1F;Z|`_J2KRuFnZ@Y*a35WNKCU>*~fmp_-cw@tgV`3ira?N{i8KPvW*6B
zHE}tw_cuwwX!TbPS>e?jVIXaWpwLN5ezKtBG9wDWBtX1QW@G$I(aBW`xc0E5AfSR|
zNX!Kd#EpQ?>#*Phf`j!RYrPA)1PY60d5*huDJXjrCBCTcrXEg~IqQ`3C*{gJ9Ykd`
zTXg9Nkme}^IRpRW>jk#fNc5jnGqSlG9i*u~*)VO2Ty0R8ECg=ot?239-9(o`XipeL
zNg3h-BsbujZmtc9(Dl-#LJBv0_i%Q@xtXKd!bfNQ
z8R1!2cTWh~OUx=ZP`ngI1Si7dYhd&30mWfE3&p+!1eWinm?x2+M6b9V_+OK|{_UDu
z!!lR8Qmj1dn_R8{g(*yB_CG|+6wqY6h(72EJTQaVHrZpo9@^)-GXPlymleHaEY%$;
zrH6|4M251NKT#o}KtrTwJi?H|%Qr%aF3N{5*c%4m{gD@AfJ?1k>nj6loHPj
zm@KQ4L5CL!5nB48!V07rmczXqHD=%TS4ps4z
zOx2N^eyRxjzZ@;LL_^M5aJbTi*RyR(mNTJAwl=ZfiAama6ey}-mFi7}Ap-SWV3!+L
z#KX#LXh7kX)x@-BryxoBGpow^)!(bMxI{_~hd~k-n|=&dQHB~DKsXd0L|xtZi%hu$
zsuXB5ZHy*Dr@oh7!-5T?$IdqNL5!AG0?_2^?Mnz@sk?)zg`Y2W7-!nNK0D0;=BU&m
zY1Y_mNDObm1q{K5j#F6a`7|FzKv0|;5MdY4-{L$BJSKN)E@%ms2ACpbq0{mPH|T#k
zJ{;l$r!#0K1S5h23X13-!Cx}+ZUCxqiKxo3K~(;A&>0T>LP7-lO}>tZ7{G4)xlq*W
z)dAr%=Yq0lZi}JK-Fd8186>lxOeIxB_})`-w6SN&_>&%6u~Nnu&KP!sKEuDr13EcW
zyzLgU+QBH6XCw1nhjfem`tgY8=J`B1ecU}$Fjy}0KA-+3e4Urb@rfu{HfQ=?fGMg2
z;$l(QR%+Zf>8bMLdEfOg+WowP^l@ro<>rZWzn};L=(ClRM;2{50Ha`I^?zKT**Wp7
zGrS+L4$tDbO%0;5$+Hh2z|{^74dVDv3ZYhkCKR6#EfwZ9un!dxMLd8f3jqUHLRc;rDagkVgm@EW<-{5sask*dBB_WN
zOO=Ke8pcBVCh~|W7pfroiuaBxLCy3Dh{;}$x@25j@2Xf{O%DHb*vl;|Z;nw{96>fq
zq;L$@4FeF;iYI82yQQiH4F6*+;-A^&zYpF2wqyU-|NGWfIiX6h1Nm>wR6qY4sF&Nn
z$ziujuJMPxP-+jJzpB25lwTzjIB3ZK*PHu4diSl?sfG!=ppR~N6)~c+^{!{Y$vCGl>
zS?mueArhF`Etfs@o+dC=t+z6xp@4BPS?bP4P=3W+UTcs7^@8Vy*CgO_~R4F01Y>dh0HkkbD|osQoI}U>UZ6S*0w0V>b~;mk8pe
zRrR69lMj2%*GxRNAT*m0g?+ugUgypqkN@bAIxle8`~@2dM!23Rwhs`6$r6g
zF2->gbrjePkHnI>-;pjQb}@e@;J!zpn`b>;v~Bqc1Ry(kf5m#ODa=>=Xn3|mII2Rw
z3;Sg~y10zk@IA`YQr38-rIE`ax0|?mDw1BQ3)wFvjqj5zQJgkyo_#8Gfh%&VkIIO)pc!r$
z*I!j!=ufmITilY#Pv|dl)2il@?;sO}DGq%w9ad+^y^VK@A7TK(xLCbji`wkdPTII6
zwdN()bn029S!&-0QrdN_3ZO*UypwhKv?zGqe0if)=6=*{rBx9*3gxzphc53rqKox)
zUcNnoxJ=}0GOS!^AWukgtUQntER?b&P9@)Dm7mz$js9ljLF!?y*J}0FglE4a)r#-|
zEtlOeqP^$C>hPy18s&$8xJGUEP}94q^d=??^Uqw-vHYpJJ-rjnw`Yl8Cx#@^elbuK
z5R8)1TT(d0L(*o9g(E*R8L-bb6w}`j%AmF`eGa3Xn<8C6M>A?Y(O8oo!VrLG&=+$W
z1xrUl3c<@}^u{0f%$=HWbeJ9~sjH2zEr$%BN8c>n`9B)5zAbn0H2lh^eQFh8bx?Aj
zN_0BB*S2B5n-IAfYp=}2gzD>5VE4hOSyg+iIFJ4y6vbH21^!42YjB*~-%M+(XYpw0
zN3Dp7rG9NeJiVoE)4Wt&MKiv%j+R&sKBKvIf4%+70v8nOZGNeBg-0R|4HG>2c1D?p
zq)^0X`j6TSisYa@MMOo#etJ1uI;b&aq<}!y`a>ic8kPiDaby}6ANahAgxbcWp2|;l
zi%g6ad5y}(-)MBqWSDSEs9guh^4lAjv_vkFs2ZvxK8?#$1tY>(Zrg%&=`8o5)zPo5
z>8pL#YE0n6hOLmS*^*GsS+3?EJVt0eaQ2?rh_RLlLhrc3n=Q4i!cP>JnBLOtW=O{7
zXw>hMjIK&+H&@OyS&!M(QwQu!=4;ek?tMsVGN{NKk(PY7>A-*Ig!0U+pI$pNJp4YP
z>C|EwuW>S&#y+Zp<}P!|UC@AThHIr!B`ieN_@Oo)uC1lQV_yEfq4li6R1^9)6_H@$P!%BP1YK%DW{`Q9Nw~c+KLs2m3cbYd;=>r&x
z2$hs$wpka|TTqnbOyl$lWR!ct!|dM;qn7h(Tfzm_2W40lP>#r9S7&aAo3P$C*e>5C
zj(^>}*DxHVq!~WtYk(W)e$z`6leK7~cN}g~<__JP`8{Bm;Fw}_^uyAU@=|N1MVgcTC>|`ownT&dR*9r78cCHw
z1$=P5Q~9BdxqSBNvHD0-pyZ-4Kb
zmWbY{jK!aaJlMBT=N+Z(_PvOK2FcDe<(dI
z2-*%dom0BpL)~)OT2uA7O2wqSLf*W|+{37_QLlP^%%$j#c?(q1j@_LRWIu?L0^V=R$a7KL$o|iq-L0j)M;zhs$iS5a2G2nSjG6kGYhBdw5W;iWXf
z0yQ4~s@StUy08?zE9gzO}c4RMQN*_N?;e^6{HQvR~JiA#pk}J+XKCa5&3!&r=
zpH<|14jNKI95BHA-U7#>M%sjeYD(Bc4P9okWnyXKLA7M^t3|K-||D@w@x@jc!sO1!4%jGn!cWW}B
zL)tf8)<7>C36!E5_iQe5rWYVNT~bSlW-#$$H$u5E(VKHEXoe*y1SXX9@o#EHQ*m9D
zsUPMMYN;v{vbuHaN{tR?V9v1
z2bZV*hz<;rj7iBEV+eUX{H=dlR<-x`@?&koDZR{DB|zl-=Tah(+Zux)S;q~&{n2a>
zbD>NoJ|q~816`2i@|#C#F#s$FY86GUqB6uK2aC;$KpSibNsF;#$kl|_YYvUiC?xH#
zBfI>l0oDw@eII`U;$&XRVtdSck-qn9lwGd2W%k&*UaVV`hnvUq9OS5W0I0$`#4H;z
zD(#`!l(>sSooOq`2ST<1v)Ih92epH_kSUB1+CtN7yPIrN+R%B7cGu~0bz|H%?73G+
z?|P&-6O~tl)=hMGdpFyovvfe-W*e+{d+R2a#l*oQrX%h&d`bCU(TZVQO!Uw&Zg@3sjXVbP6&$Z4g;c7l*o>qmvgC%fG(?
z_Rmc+i?;*vbhbXJOLXUhu)kfI*OQVg0yXu1wb>Ozkl5eHqH<%iNQVLA&iSc%sa%}v
zfV}zJ%HYq!49E2XWvpu`sN?M-0l38kY6=AWuz1!Oz7R;IN-#fb)
zH6Y!9HJj}Q5rS@BJB;nw2?j(q$KBsHs@3}V6zvJ{O>fPINdl6P=fqc~%h`|oOxhKv
z93QK`XU$yAEG%T*sL8{4`9MS_2Nw?33tLrxj0wZ^L3LGm=jn=M9|XAjWJiL6n{e-9wUM+laiPi&MZFWuWPV3R+wY%DHc11&;
zgIz|);OXG5sy9q{x@IZs#lALHw{{UjEy&ARhRf-ObTN
zaV(yO1DuaPw?Ht>yo16Jn9;p;nM{==;afi*JG|AbCHc=6Cj}Z{K-Jr&u)1V7<6@H>
z%*YTM{*!bF2~K>MkEp~Or^8Hlj`FIS5r|*&a|32P>}dT9fL}@*mpS^VnR?{`y4Z8@m4E~A{tf%CV6loO#N$+g7>qbl(TJ7UryI{F~QgqVZ)gFUr7
zm2xW;oTW11w_u?Qvyb$^bWp*Evs183QJL&cXA8phrJ>MY)!0hy7GSA+!*g4l;Y~t!rKEnmHdgii%&Hc%Zo>s(Q;kHL}kz(JL!)
zZf~z6#dD@vWuQScU=TnC<$!QtLb{>GBzCbJz7zUpd!ksMJJF@OP>Lv}3D*!h<4Y=P-E{UvahA
z23-vfwvcB`)De-EB_@-cOE{N;npVmsJ(mbU$|Wi-nkX)z(dEj9^V<6Ayx^)S*|sao
zJKjkHCTC-hEMMQAA)#NZ(^NDcZfZEp-IRi6eR@GxtDZCwSrPY#+dKG6eZJ
zB2yN&^>JMO117B$vt~8#cKgiWz@zzSOH#MlRX!W6CIJdm63ZyT&rTue(Ie-+k%1Q6
zX}v<5qw&v<^3OH{I*6;eKr8xphCmI<#2JaNJBl)4TOz7y_+nv((=@qcG-wE3fnccB
z=>_4EBN%TDl8NoiN_Pbf;=?XC!IcL)Qg1cIl9Aj1`Vp0k0!0vj2q9DPLC=N+CjPNVo-!rqAcTNd0uu_*Q3mDo
z(I=fVcD6>`?^`Y0h2N_2{_S@7zcG0HAAaQj7mWN*1tY4k-HNm3KP8Q5u|aN~x;ZBp
zVO>&HJ5TMU<0GN-a%H7-09q%vfUKB`$-f;kveF;i)ha+vfE>xF|_$oc{>&=tcpb=
zK!zPErH>vh#jA-U4l9{gY)S#m*RZY9Y+a@n<<||TBp5A)Y>*=GQ+P8ci~^=a4rb5=
z7+1
z#l*`^E3xU(MteyYZ7unH^|{MYdSmrGXYEM`Ad@{8oYfzAGE07My{eQizwuZ7LB?hg
zlamAWL(Yy2egg!EVL}i
z7%EP9IS7#Ko2gwXrki{=Q*L}-o6ztB0Ccd;*=AzVn^8ad$t-pJj!%7JeIiU!oE+Gx@Fg2Na=}nv;$s1skte1R{MfB%h}5
zleCS=-tbESS%b0ZD>rAkQK50W#D$H~X=iz9;Gb|{yrp0}u_*K*ONb=dMCjR8E+)=A
z7_9f|N#3c~(Vn``rZF!CS(g^CtRJng-qhEu@W`^1ATSUCO2sNdL|
zh$^j65O<4~pt2cIP`;x89)iexeJ&xd;RU~T_($%YoY(5+*UDDb-!Cm{MZMgQCdWN5
ziwB>+`vVI9av4^+w`VIMUg29i#0uo#dcz%H3ULhCo42_h~aJFGzTbrLot><{{i83ZR7mwqyVy&Jbkm1YM0ng
z_}~k&!<+7oH$@kn$&w11hZS0XYhEWxY^=)Z-95Csg95NB?$Xs!^FGZLyG!!!uX^Yg
zsF(7Zo_uKd10pE13pHg7ixK>3tE#}{G2%xfC!0;Z*3O&_f;nr|
zWM?=Y5P+d$+Fll<{5E<##e%}HbNL1fdh-8s+o`%opI=QTvOMk0SD6ByvKL#hr`|Jk
zT&f%wwUVZyhdN?zK+uG_L*`VA3e=_5Lc&S?$V(a+x+$~G$rLXlx1hSb(k{>>ooruw
z3T}USUn%{zFGRElA;SLXMr-ayivZ~zff3R$lCqPm604GKig&*~*q1;Z?>lta$Fbj@
z?P~kEyz>jg6ucSgV8`j8r0MjX2BS&7*mZLhON|f3>|3g7#k@yTvlIhA5pc|?lva7L
zcmmj{_h1&pv+a&R+2iUzpq;#jU4ef+m0xV8ShSr}|6T54TQeH@L~l|q5jhFbPp)jP
z!TiSqA}$G_!!a@UD3!=3Qb%&XvZ9N?;Ot`3hv{vQk!Sk^f70NcXDx;2F1@J)?Hu?(
zs)NOJDTrDGFM$ONlz*(hQrQ=M<)>yhoZ
z))T+YFZq%r*r4Rl62WM^<}_X@56?>_$+~MHYDf6eZ6mK(z7n27^DjHONJs$)FU{yB
z(b>czm}E!Pvmn6iadQ9{A}Or`vWK#yAcN$h_kJPu-75auWnA)(RE)(QnK<$RZP4zZ
z%;(|om|jTd%d@F>(X*_8_ao7g+15q0LZ{5tn>G*b)7KuA(|P$8DIR8$EY+bB`4S^t
zL>sn2G~SoVgtznA0aB8VO_^0g%v?_vL$9Y}(wZmKf*V!Ouc^!=$sI0HKG8A~8;-5Q
zH8-Fcp9H64w7HASSrnm_b9qLK-`f3*aZUGSNt<7$-`H(M%zGIL!eR68yJNID?bH4%jZoywQs`^TA5duYw$q|BFEIFM
z1e!d3JG`Ik`qzH_ZDgnvD9$?0dPsTY`uN{lm_BiIOFS#cI=n7gSMPO{LPUg?htbtb
zTM9NcZw}6Y<$D|8c-q?!r-4i;c7f)C6S$xoicEx4Z~{V;bUmV={7l<`{o?Qkg#BjV
z@NdT!)2NbC&3~(QR!ryinK*Xzv*1(T;b)V7``O01F5=lLCk>tbQEOFwRjX^g>wT5Z#i6eiZQsjVK1bAheN*{!xd*>TD$0^hEtHPO&y1lp
z&E$tykZK1HMju^lla}qBsjwr;SVE0w)tJ&g5Bp>L>Cb)wU%Ip_lRV(;&9gjjesQ8e
zzKJgI_->GNF9s02^&{+F($DloEW;W3D(oG%^BVw5I#{u0R>RUwofY{ZusN0eHbcg
z^NV+yxi9qe*~9Xsg+z~=vZkwPhw5#bGL2p`iWK(3dt!cvOSq?!%WHky12b
z6Jj_$f>3j_%qPR4DsOzinmOsxW2@bFrGw|Wp^@&KPRnx}=*s2!0j>8%6}rgzIv109
zKMh%^u6FjiP}4+eHNRC>)#)~lCFIO4NM_6UIhP}R}S(3gZuXI?!RoV-FK
zA@Z>9@U`&tT>N-$@gymxyDgM2m3sHF%x(w#s3Ek3`a|i-Dvxi|UA5h$_9!D-!s#G;
z&}TAdMGZ)w=q|o93?(`7Q3D9M
z_i#X6EL;5CjCIyk@pZX_tRT#f7T(~?xsIoxlbBM|KF)gI>rq5liqt$*cZhl*#
z4te*@DiJqIN4w)vXi9@{EAqr`_xj$_V`=5Lv+{sVHlHpOD7D*SFSGT}U_StJ7EO_@32;c%0u~zAy)Q
z9RCI&pep@P#ndX{#wXG82}1kv-F4jk>C=3u_Kz;mSS3TbtyHMOkN87W#>;P==G{=T
z8ZVyEh_D=afVK@4Z9FiPQsNf`|3epS7W|s?(6)!$2(F^w;wyeoEo@_`um%!x3Vv2*0
z8{h#nq9cQ#^oZ}eb|3}KRTZPe$|C^0y)u8zFaUJcJ@gelhQcmO7CN3Th?37*B@{;7
zHnQ(@KX4On6&+}VN^g+FN`K;mBHcdmeP2?5>e}jYA&&jyIWzY!E4c8_Ze>G9c~ctk
zAG3-7N4o7l=v?VPxvp$}ODn8(ayIsA__Tz4S`Gk7%%AcPRCqIc41c1C`0e>0j^b&^
z%Ja-7iinuI;>Nh$2MYoRpM5jtbeY?%Sn0`nzMAFg$-Ka1g#_<6VZ2PCh9=)61B*20eF|IxSz2T>hBvy1@m)@CTk3apQxe7gnEml``3%YLTDG(lLX>TO~`7XTT
zg%@&1V!Ci{`QM-*sA8*ZY-JTHX-ByO9&AZbBRmk90sSb;HM^8N3~#W)0tvSoXzS?4
zJXcM#MRtsZ_mBhMyjzgh#buFHbvz6kX6bS`O@()uE~%H1c6v@ME5ia-@XNmIR%xtU
zv9_v&s*+MXy@XiWE|>!&uD}o-jb3DPH>4vlPF3hH!ONUgR41b|j-c%VA@#TItrTOX
zyUT;rlz%RSusOw=m=#8oE|vSnQ=>@okVh&H@3*FsaHjY`?@4%x8a
z-?B%+KpA5JVPRO1u$W-v9w-kSVZUVFzevIuObf#Z!*DH$pcvLXKb;0GOokagR
zaG8}+ooA4a8>MqZqlYI*>jlsdzo`R=fAWK|68XP)z@WvY&?-s7Ah@Qt4YOJiB?f#>
zCFEnBrIgB05)I2Tyjp;mLzo>2Hr*;MIy$}pba6zA%u7}IF1f50{wYFQkWVDLv>+P0xPWi9AAe)Ys7UoDDVJ1W$;!?uL$+H^2j2idMeOF
z>TxLjp_vGkf9?kL|5sO`ar_m7jGbBs5>uY_W0xfE9Iun6rCyt66
z?8fNPxPAJA=v{Zo2*ScnxE@;~$5KOu=RSy`CQ=~Xe_|&dcFynIw~Qz9lH*jMtdU3<
zjeBzKz>rI;sV+q;9*lcLWU%~(R=Yd?iPN%?Qx9tqKNUqy@F!JY(kzukLP(Rj^Z_s(
zi7&b7r&c1#hmhG_EVM`F4{=16i1=GKNj8=*``PJ2oh*#M0TT4jri28(?X+eeFW*J{
z2F!rYHW(-Ff0YXD<)rx1)yJ;!!DV!zhObh-Fj{>3g^Ki?0vY-HkN9dz4(49StRz16
z?si{;TVHE_#H)?hGlJpZ3Te@bZCTahz-wpxvZYK>-=q)Gj3g{SNRWA>Q(fH}tIcCJ
z>uAv{$>XwNb_C%orxTr5rr9%bdT%4xB2qs)X3uoffGMX{yz*Ku>ZHe>1r3EYWKkqH
zc)Tko=z9>w5`$7mFi1y~^Ahx3gy8e%x!fO9vO-B3L+9CVCO-ag)J^|{;q*VQ6nuvS
zm|m2ONn2b{xddq~V(+U9bN4^IztuXW{r5fhUmcun{Fe{@&+`G}$i>;qga#?znJTU8
zZq-LaqwtUwihh&(``(41I?Z+V29z9{D%UA|tNMuOHtklYL|(ib>I{f0-c5p)6pvNL
zrLybgfyeR29F!3o+2J?fYHD!nDsl7)3IT7)unhWg2yw>IOFpJ*Yv44-H4?Yf*rcW5
zKkGmqT(>+VP1sW)x1hqRhOwh$gMUeWjJ{Tvr1W0MbzTo!<@J}08*;5ibWPpcVZ-xI
z)gIifM&UeFn%>1pra~(!BWl-CFKR>H^6A4%^zh0uHw-1IRHGB%vmi}lbXL~~IxBt*
zsfTh3{suI6MZMZ@q4?!yS?mVW4I=5}R+l7xN$vR!_`3TWFip|TFdKU#U!?!+1ue;c
z5S5Szfjby`|B&_ncR>#SlX=Sjg#H+DI}wEg9oqf)dK^SFYLF72fp7>2T0~}
z?Nq%$;Fc;V4CJ4%z7-a#wsJcC2cI&cb_i+sy833SX4gI#v|extK`Yx*%}-G;YOkys
zp-B@toae#PpXaAV-h0Efvs~j)i2lLHqlhV}E(@2->_728|Jg_W$le#Pwds4kvUN$i
zKfE~p`RcxOl@a&F;K}fet8X@`rsCia2K;3blXpeBA9;;*=a1?wH-G#4;qwfX
z=K=Kv%&GqyU{`yJ+AjNY%=)DKSnqpr?nNk=P|>P^A$Nj+fsFz~mj+4~{v-wT6nHR5VlLub^sQD(
ze=6r=)U_V>=;o;TK+ejZ|Oa0cK
zLA|X)H_rK~w-GPz2YlyrQF);P4fyH@FGWoSn|->=#q|2v`kMMoZ5<}r6~N22KKk>W
zFpi>-QEje|-#+JD;hsy`RGUuODy7!#5y1wv$fph5uc03x$;2@csYVd(XXiG&RcztV
z6L)5G05x|~u#_P&41O|wcS}>ExMFP;9d>&%C@^hvoW63d-*8^vM8fatVN34P-a_G)
z)t?4D>4lERbd3;CC#@CB2+1|J_DRO>V50`lq`hNsJd<F7oY{lHL
zL)(hj&q3guotVa*o_M{}m-(4Drl!^r7AY0?C)^eSH9Kb;8BW#>D|e$PzSWCI!}YjW
zE@sjLnp)%~Y6EPnESbPt`*FxI(8J}l
zD$ln5Wu}8wyUZpZrZYIx+Ka4a2A@Lk24ZhXNQ<{;5#)qp*H*lJ-ljqz4U#eMy?ws9
zO#TYzfOB=|JX!6Nb#A-jKzMgC*h+0r`181xsZtW5T~~es*Jjor|$Y+NgGu3*Npkst|
zYZ(cti=`u{W5BZS1F(=`U&odPekgtu4AGVMUu_1z>_&+M6CvwIyZ8;ty*gB5%dU
zC0!3GiU(k+n?auNQK=vtLgjqZRxVd;pwQ|Tmj3KY`y>AtF>ScRDdB77qv<({wFVrR
zecfaG&NMHI=HB#~RtkLK4`xN63rWwPj64i}^(##AnQ9|a7IKJt1m)?96CUY0;t?fw
zEs7s0w4{cH+bJ9B_*LyO#-hJuHVCn6;Fs?sZr4Vs8O8CiQ3>kn69R4DBoFA5lN*&6<1{li!&XE1zMD4X9dwM&wbz_SVo%|Uaej}u&*6J)rZlWJZP5zp
zFkEz54hn6j+8hV1{kS}Q{XGzpB_&BcQ??q|U&f}`Mkgj==`AeC#_{Oif41fg85AA(P
zq3wDCCh|@xVh1>T)hx>6sKhEGM%b&@T=9#N$g;W`)>H@c`msS)Yy8D=qitWRSry^Q
zgs5Y{vT-&G@xE+`*+L3+?z8=5b
zD7Mq9Z?k9W**E`1Y1#3xVCvuSb_&I=6B#qhjwju1dGcFhLLIhrMF+>ZqtNYj?InFyA>t=-F=3pZh
z>-z8CsGG|{wp7|$VpYU0mQobU<5
z4hG4IFZWKQ+N1wKtDyFv+o2pJVtsM)L-v>Iu*}UJ#sL+PwBFU)1Hws}z=0V}93Pkg
zdqh?2MEfn2h+x)))|fFbsZKAi-~)4$$KaT0LLoyNuTQIMZ1QJ`R(q9pPIE&S)v|NM
z8z!qHtErIlESpKwv!Lf}<}j6Z8G@|+ow%m>Y;%GW`^=78;W4W2M(RMSK8wdaT(j}S
zsEd*%9R98r*~o^K9&O+zPpdLfEqh8e+{y*;+fdC}a5XIWwoo`ft?9`7MPldmk&YzZ}Joh@sH;
zVTY>B*c96`FUus>U{-l;-}SJQ1O;ibSCMc7)y~G(+J=*JkPXMRlZ`*K7Os?3&
zt|>JviJ@y8ozI_0cz0$|AZL&$2qv)XrTdltp3s0O+NVcI&8@tL=R+sL1zurEh`J%_j%uD-!F
z55>=LZHzowhg{{%qmhb*#-4@Pv86!I3(!tyb<{>w@d%q}wa^FWBqwcLFv$kVN-7g4
zrwIq^nOM)Hz0E-*(!(+>-Rknsld%!!#DhWdT2%;H&trRU(6Xt~b!`pku=0z}2rb9HoH}Oa6jw({a>OjQ
zy5$dL@3BblpN5R|LvI+~Z)k)!9h`gjic0EOX)T&|eS)OQ@863wo9!)^TjH`%VCV^-
z?d5HZWFM~uY%g)OxP`C0T(?!9N={Dlgq%VymN9kJnj3BRBl+xn_FJT-5DB&eLZj21
z$(fN1k<@z#;DuJZkvbLjho$V2HZs(fS+~8+O1V*<^+bDDFEAs
z5g1n4`n%}7Pz@8Z7L)tFem}B-$VPgP`=TVermUG`UUPhNb>e6}$kzNmeTO_5$fXh#
z)W!nmR>YL~^LSHBM#si>t$CkcmHTd}`n)_DW15dib;(_fMYoY-Qb<{-d02y>-{kc5
zZl)BKETrDKYT+E^Q1ZSlr(b(fC3B^UICe24-4zp^)tRYM4Jy@$lO+wYi<56s>8h-+
zTVwJTqI7ENzG7bO7(~_bg8RIG8gSt!P6V;L`!XaZ&xdzwKl>isY<30{Vzc0m+#^Z_
z3Dl)-2ilD-`3!V?l#p9FBe5lI<}6b1ZsnskD6wx#HYG-l}yfjm(l&aE+1Uz+p
z2A114lGACTn`xb@Z9nn~Jd$k`=OTrhO4up08W2L3?1St&V2NUzUi0|!VlwD>>^_b#
zmtJ&Ka4qt6GU4o*j_;Q*^UKh$F=!pcbmbYbXdcl8ZwyK^t(x&!{20wSm3}QSIo_$5
zd>DG`K0p$nqiFi6Otvo58VjVhE$$*CXTH^lBCD#{j7f2xj1zaVCQO}Okr=|og+x6R
z#}(_-*2&hH5(7!+Q2eSKK*4dG-C9S5{AevHYsw@>9M1A2&y|qxoD`zjgsVHD>#J+lg-IBnVBF7fH%*#s`64Qm!+Y1HG+T2`Bk
z>i$BRY1ylV!Imft;AtTlmu@3@0*1raCgvZ%|#a0s7T?0AR2p{_T(_{F&$
z=xrUIC+pvEP-co0IO6bzMqRmT{#08x73^qTbo72v-Z~wbtyZgl!$h
zo#Vu1;CIFG`kfN2cF}F!gd^z+2{el&k9Oy!P6-3E5Aun1;_H*N5SFsiM?%9Y>`!Cb
z+$>xgj@7>bvANQ+3XGoQPWmZVBNnvc8LExE*018C1$v>vD(#>wa$#uBvX=XYFinn
z5y+~7u;Ymt9izNbssRyaE7^rDUacPuX@#;K&gg#@^86w)(bP#dV|ySU8jFApk86OP
zpA~UsOX4pn9})<}oyes-u8>z%m7+^}u|z>wm9$Km=I-e9Of}1$*zXE!kjQ+Ma#5X5
zcwl{=GUX|p>iUd5(+6hLsKBt9uD4xXgJ~~~zm=h;P)vZV#J}%bQ*HDCOf0=fO{5yN
z-C1(G3C_1Q60c$4u<%1}nIhdS5^z@1T1(jnt>ea-FTcgJP3Vm9v=!Ph5jt&EWqiqL
z$F+vBJe;{KB?HDHaEqpHJw$I@=OadR;-VzYV%?62bd``Dl8qMQsHIgzl}&M;P7b~u
z)=J`<$64iH5P$Ml_P^e(mDEb;ab<8eM^MT|vQ;z*PR;a8(T-C(_U>t-foZzr`Z2JO
z=}6rir!CH#>ujupPcjwKu_nS1sb{<27wIHv*aSh3Hq_!z)BRaByh4`}Qxuc0*`n#>
z;KhH=8tPV9AMUgB*o(0jE7N;+Sb)Ed)6~^x)hT~^7@eW3blZ9JHHffW9FIhezN6Kz
zayfWSP%ckGyy$orFOWl1TTB8MZx1P$)C_cxiFi1Ii@f7*@HyPyUfXGXXgVb*MS)TC
zhO#B9?)|BBn)DHTh#L`w8e_RdOTy1@zNGYY=dp%vtbW64Z^`Y$omjZq&eC-(*_|bT
zZTmD#ypihU^(mbfan+R`A9bW99&vthsaxm+Ht#Razm>MynFE$DrgWaSxpmb0~uve7|VN!!c?L6hS+bL@NE
z^Gq^`MduZaf#U6cP?Q?1Hz%@DB5c9I#!$wmNqKgscB<(Q)siHyj*m~PG8
zSiS4+uamIn%yjMTtr>1?-(y*Fvs918Pc+)(J=KkdQyd^JzyW6EYVd1JlI^I4(s>xZ
zj?cE$5^Pn~x9I3I&>Cr8R7K^ZCa@#v5VzXntXgPj>k$$Pc47vr^{WY($iIi>+mK1W
z8BlNFh^9gc^>Y*R{3
zy*Rzg6{KbiSwohVy1Gc@+ij{PR%A))D8hrx13}~#n4~ew2q3H!;Z9f0VrEpp{?K~V
z?xvx7`xwu`<9pywL`>LWT=RykT`=t!1_u^Hwm!SxNGzx`3Mv*pziE
zhAi7x(^V?TNlf>Oq9)umvp4Ck%|qVE^a@QaT8;(9)B}+0+)%FFxfaogj5xLuZBZ3y
zS~@lGL^+J!we{Uht~SVWaLX|jBZ$Xu&5EQ|!~KC*a@>(0j#S8E3~Lr`s(_W>@yVpC
z*15?}*kKgJzRjs19Y2XHyt~V_JJW!0qSiogH+hrKw4R&b<=4wJ}OtyA}82+qjOcISMN$;-=U+_H=D&1*&383P-pd3y~VO_Ze-+nPu
z4D}D|ZX{1}Y7dq|Nd;TnRHXA
zb@rjS;|G3CfqD-!*1L3zRg9)aA`W~`&eQhmQhjIz=72W*_N+lK&K;&;KibR6{KoWk
zvzrFsi%4ryl*@_PlJ3>5<9l{)6)|IKYWUk_m$RA!A}l3mqLniFL8c0Wfl&yC;Yk~g
zGOAE-`|3vuP23l;=BoX=^9ASreG|Pk%!}7TeLn_9o)b>OVw=)&yW_DBOm-sDmGI%H
z)
z9p?zki604bQ^gY#cR7=Ic>zTHv*0NK;!l)lyDJvaVcPO%
zXE|c7uHx?%SWK%Tm=pZ;RvbiS=r;ObvEsSDs>8fL0uYS30
zJG-|W>tvlM$QoF0h?@1}wj)?c%=Sc-HIi}4p6HZpkg24}6VEOU>2%tj>ZE=jVAy0s
zrM-n;ii+{WV)C2l(XtV}c68O1
zW`ePR(fQF7{(wAcX)u@D`viY)Q=By|5zB*?N1cuGW|g%}@YBRn==84|EPv`@*-tCY
zTOA4GW0eR_m2XIzIy_}GI<%j&Yzf&JHU%1@QzhE9uwt^4YLaOk4KBhMBd{3*C}c91
z2MEzeBY`dp%Us7?^1IO+_z9C>nK>6#vKl`+XBr9u7e5fq&l(|IU|HOeh
zWQT=yo)WfcD(FrTYEWNcW0%hBtMZC@PI?n}Y)&KT`q=xHa15KrgXiFI4HfhqHqK4=)+QSxg56m*
zC~7*y+RQSyZ4eMgIrz$6^&i?f<95YB>KkyTQ?mqeUAz(NmET#NMz?-@yqgI)bYvMt
zajld=Q(wN!$BM>EWnM@KIHX>jSg*QXyyCePqXL{z_rhkM
zSirQFsB7Hx0{fK5+hh`gNlxVFD5%^FqRz(slCc-C=ahQDnoNa&RYe=7Gk(6BxnIPq
zQkM#;qv*vAgGn1EYh1;l(?jFd;6W`WL>Xl_t~lqseH0H{3cKt
z$0v1rOeM^_fH;+!EDatpTodY+;oPpXBkdAHxt>I_G@(qBsK`w3L|G^LUC^48n?#pi
z!uz4ob}cnJf?<{drqRY=Oq1pC)8R3v@lMN2#5Ja4cR*b;|4*P63AJ@tzd$InbXQk9;pbadG%RX+L4g8>gVs-B2_
z`8&E5TP_6KPmu^p9-MQ2r5aYnsaQv1cJ$&&EKJeh^SHl>1w_mZID~XQVeRbuV<5pgIeAT2oyz%XB%K
zagDZOq{X{bhYr`2)i;GRMdfGvqdDdEym#6#zOD;9VeiG`&~r>3rNqUUtI0({&bFW^pGQKPcMs1PKdGh6}x4%#g-f-vxrih#CNf>51I2a
zn6@p&*!m3n5Et6sa{#S}_Oc1D~^LU5uqIapP0C
z+Tp(*^Jhd!6e+|1ESt$-rZ8DV>_8ZC1qwubBX*!2o?WZ~@JPnl1d
zJ&g#h%h1%YHQ@|u(^enB#rT<8ReFO-K<5N5RUs!A(Yh41A)x~f@kUQH
zVON`(yc@Qmk@(oykc})a@uh>?$pAh9**e(rHt{3cV;!od^QrB41Hi
zW|2K#eU&z>=;|WaZa15+0;HM_Mz0W|vhouKpgGfnpk$D0^ZyF+;GYFJ{BL_MIYRF@
z;Fg{8xzqRQaI|?3^)|uR`e(2W|JKVOm2Yb-^lS2pTBqU5?8kE-#hMa9!zbf2?9tzV
zDbfgmlG<{R+CubSP!<2fF{^DC)9ZPE!uo?x4DbFCI&$*!?Ah>n;l)jt{Gs56%D(b_;9u94##BY`x6}kJq6ni6!je7c$Dv91`%RPo8rwB|~j4
zlVOMqyDhB}52O;MeAoDD{PnB+8&)Y@mwE9wK0m7U>t{ja4z@lKJu@o6oG6|oaTq!M
zQ`HrJmV2dFXuL=jj5LT?;sphuIJlzpuR^w8r=BI|dK_Ph$xVlzb&l*Sx}$z5K_M)h
zAC{r;5_*Fi(i2&kGrpHGb=PB%`hfbPx+YL;r9sH#iE0Y%ef#_u5<>FBs&q%ai@X`X
zB*;b9S~~0afCFf}QBqPvJqaXvuSV}lU4*M9!85Px-Xc?$xRTN(m3foxUz~@E>_MCFn;7aB@V7S9|cduECOAB4uM2oSL59^
zTo*UACZtY2x&H-V1N%ub~I(2Gh=l
zrtT3u^00Ou5+b1R?M@quIkYsF%O~gimlXtnWTdsew*9IA`&fku1syZmwifdV?^%cv
zDey)HRU;s1iS+AH!2;mhMNyuQWj0|A5;ayAbHW?)O$hn;k$i=$by`*}KWI|6CO1Y<
z1uBgeqw_Z@(H%h;!jgxuxd{4ZS1$2eKVQfvdbMyprYy;t=nR1F3EOy
z#4o)!sXnG}ua{T<=}=zp)5wVy^*+`(@oiy;rLO6cN-?tnQ?<3{0A01#s1pcd?v&<^
z!Lx}P1;eh%58F`>&9W|K8ZBE=48fA>bxOY}PuoM@`s>jRSNZsicaijz8e3qg?J6ar
z!LKpYc?+kX^{J`fn;?xHYYyxj7B4wmNSaDvTy9p=GwfV7?;}3wTxM~_@#??lcbCqq
z@Uly)D7V(VSuEC-)m&6kU2Jr%TF*r=dEIQUgiDnXmsGM^4zfwg(|BbGH22R8!7RrG(oJ<8wv-V~`g}ewx8w4%d>&B;x8QQ_%g5q-oGQxI~
z==?7?EARwEy$u+wCXvSH=lq&QI#qjgI0UZhKi?!*!{WbQ
zSnH81_fSrvBm~Ns_E4Z>l;z7AQHWBBFqqJbu@p;#L%Ndkn*h87l*d
zW@OJs1iRY3ng=IE`njs)i6-S@gJ6QujYP;27$zn81dRl)LnD&X%_7&I
z1L4B5J6b-b^UAADuJVaUpgFDdT2Vk~`K;pl*(3O>p%>q9^YZ9|g3v)K+
zrg;aANmvYJJa!O8s37}{O0W{OGP{brXwp8r9Duxy9vq4@8(bE7V2JbFv@T1%9C2)2-Y+w?nfX_g
z9jEcp41b~wNFo0vlDwEJj
z&}hal-W1S7H6tEHp2=rW!5#%lbiw!z6ql$g3ZRb=6%PaNTdd+_n%XX8uHK%yR==Ip
zTm=;(5G1s8NL9o4>}k7-uVGC`XV=RE6%?a!Mp&kUY|0hFLBhl3$~7I@x@wEy^D5h#
zy1eGq+eHnnfaER_5KLy~k}9{%g8Z!Cs(kQl(8)i@1lv`V85$L2!_b3A)Gp{qyn?A<&1SpqPJoC7ja#g
zHmAkfvt5butyS=RVIbBDK(#7nu;V%jFr{BHH-IC;8I(Vb
z&NH+tG*mfrQ`1Y9iGt(&j)Xy?qHi8D4dMU@C}%TG2z6=&b|_^n>}HxRlLE~l)hf>vx5oo#d0RF|94F_wn0HmCE^3!R#ZNS20(GUu3&ASG+>vVNjw1@5EY`wHr
zUilnB!#HS~k)D9{H=tGhCUm{{H^3$Jh5mWD`_8Q^IZaqq_yDlv5VF10IMC_+2@>hP
zmpMwYm(cAPBL3wE^}vUTD)}*HV`}4(76^e@x&%dt&+2fC>9bWWIffJqAzK@`b#)zn
zsEt!&EQgDefO1130T$qj>?Po%K-_T}lGutZoJYf9%6K^Viou*Bqo5_5qU_b|>+nE%
zm#va*;GX3}3u%OWuRd#!YZLQgGV!g6R4fNo+bEbw$1={0ivnx;Q8L5JkcIy&bj9>s
z_*9;mbU2aizAcix+?LtGw!d?(s`E(`Jr|_5svpV17&RL4GBKpJCh48(rU2ReGBJcv
z<6re?6@Vw)p?l~LI0T}Migk=MYQPN>yNay{RCI5+roT+PK}829S~_|^`z)B#k>TDtF^
z^G*_A8le?MA{rGfmUa|4;6#ZWU`V8cKPssPzt7lF*oq^UZp5
zf3wwIl5K%1kyiT7|E0>MdjPti?fIVWj%$J*37hU7>)wa1(u{QfYE)j{DDB?x&k~#g
z%0nkCqvQOXy!BjYJ6NCy_+0vgR`rE>bHUogj;UQ%R2*e
z)F$~v-z&4yzw?Uw+NzlSs&5aXm$dEU$9wXRF&;xRoXWpo^SVgCI~Oi`&h56~UuRRk
zXdJu$x@w-1fMA~4&23$Log}r$r1=dvocL($mIKA-ymfdKUx9wX2U=aWHic|8{RRYJ
z-Nvom=6)B=CHfItU{U(>oyaGl?Qc?5SEU0s?~nPUp6X{WufAF5M7q%ao$GQ2&jnu2
zkaljv8|+_f7PjpFJWcd}_Nd_Bd-7w%viYn_>@VZut#6Y{0ysw>|ISW<=vA-hW&FN#
zOp~prmC7%hvxGi#FYwBLw*Is8pkR1G?l3bfbV~}%CTX0^#jcwwIwt)&B-=d&C6Z*G
z&i#8kz5ZtQ)xEp^WtvO>V*UNMC~r&&p*XE~&@ve~J^}M=K}N$|nOUKOm{i|few}OW
ze8Io5bN+9qs^;-8bMhDKe@x*$&_wu>HQ^S%ptyXR;`^-DCzx2|J4Vd%8zAV`e$*=J
z{Wo@&|J_{a-u`(?a{g@oUJm=UJl2bd1*_B((a}wg%m0Zhk|0ZOt_1Da);FtZDLK5s
ze5{dsqyuzS3mGxrw?7q(%N_pJL3f~U#QMm(tTEQ!!rHpMyE)A3G~>w@KEN|a*qjp2
zNXct9F)^rFYn=JT2fg2-usMl)T7)U(E1AI2n?e0Z_aQxnJKMa3=w;xxN)Wv`hZzq|
z9^vzRLN=pT%$68y&tT0Py|Dj`VsM8)LNGn@7uLGD;YqtP_7TV1>VqUH-2_(Ydd9vA^!nxYo}ocIevOeK>yi{mtcdLiS&q
z8HL}&u2>(4t3I)`|4@C}I(Dl+>gEFNcnu8P%;IjtZ5>nd|Fy{_wS#`Bf6cFPt?Rs7
z`Kx>O+<3;vD!KPAGV-*D^($)kEXe(@O{>^m%JJ?aXpfL@1L{}4#j8UF|E3F*7D$7n
z(tW3)J-SXs)E+`#8>n}FRj9w)WMQp|>jnt^2FTF=v0WhqAItF@kPq$k^uK)mXZQc-
z`&{Li@&h6bql`FR7*RkuMvzBBs2tL3Cz|pa*ogRXUEv6PY>*f{9#|0oVz2n%^6O7;
z&B-4Y2vqp8S}XaFs$vm~S5Pgc$=?8v-vAoP7UOTZ1A;Re-B)mXsD?EpNyV<}%zsIE
z{9!w&MfzsGUF~!J9kf2@h;ycKwwpmt%}+H+?pIOuYB)jor-<44fCN%Pu$*71^r74V
z9emtZl0$XSZR&;3*+_Hp2&U)3nxyK$4k}9Ym(Bf_3mNTCBK?%+c3WK0aS|0n(VsJ=
zK5mw+^o78Ej@K#k*S+Tj%Ls+dbzdbn+RZVHth_2ZyQbM
zx3o4@fV)UO!^wpSv<}pt{ta*rbzy!xO-wm=)HOpg%cI4-f!j`#dB>g}Y0-iWM>z0Z
z%B397DQzILmmNtPCRQMAtZ$Uqz({GG-=vya1X1QpeI^&xcT1n(xeH4Do6JC&_Wd_N
z9L1(Q+OGutb((#q0ic&KROD7!WX|tKJyZXL_U!#lB(?8nXzUoSPBYi$Uzad^_f2U9
zzZ}I;2AwG6m&j#)UYaV|`!_UcSgvnSc1S1`=ZX)rlp%SzeAM|b^346=0>Tz6R5x$*
z!PzK}Q7Sh4EqAUz@6cuxxuf^*G@!8RsNq@(or5!;fP!?V3pO19qQH-Lw@ZA+vvhdE
zNF0WpkZbvQGIEvhG>2c~U`$41XS`m3;=7Z@d2tWljgQh7D3p-S6XmwVI%jj4xF4GI
zr?!Zu3QOd}G`8D(aRr6wDDmO|aSsG3d62Dei}?lZ84E320vxqJpXAZ22Ff37xJpO<
zLHN+DhGm%_0RB57k}{_r*HdxT4d>jnV=Ijq;XYDW<
za&SaPp8}Pl)_dZz=^Pk
z7pKPEzX55_*j=rcFDEbcdeOayOdn($=*12`+liu0eKO~|u}%tJFxe+?7ekVoXfT^+PD+krGdsJNN|V7y>U%&
zcTIpmaJS%+;O^46yC%51yCgsYB)Prb+WYRc_SyT6ea1fbz4OL6e*pE3L3dSsHRr7Q
z&6;!m?l*_1o$o&G8~BrR*8I4?4qyFI@?EE62nPCUUO88iND@Q)*XqC*sozNS4pprG*E%husQO%YtSVxUMJoUL7h!J
znkEVNr2U3?T9EUI|FCAAEjGP@8^<^^rUf
z`wGD^+7~WRC3c+(mtN
z$XM`W`&g_?e{rW|&HU%N|9bZgWkJA`W{v&Z*mT{WkKg*wf6hKts1;Zd{sMIULd#6{dZMh&T4w)W7iqm=LKTl!yXgM_CvO7j>^IUwa>45(s)EB}3
z)fn|AgY-37K&fsm{{m*-j~fed+;Tt0b-5?4Y3h9|n%{uin@8v7!DlU>e!$iXR-9Q$
z<`>{wg-Q00Kg!R?Kd)I0SN9z268R~z`p@s&)Dg2kq&nYq)mlEgd{6T&7N%4MKUr+z
zZyIoZ!oA`KtpUsvHfZqm@Q=f7{FA=Cj{TWu(zB_@9ezKW@Fe^3
zgzyaOHkc{EFXP#O?bSz5>T6AKKuUVJ+!N*LdFQqC1rH3JPhA9j$D0oL$+B1?{^zm&
zoqSC=|53+Y{8=s3LLN(h0irVLo+<}~#J4VAI$lOmyMBCxdc&&xj-5@M!!hd}2zge1J0GJwo{0VM^m6(WXI{x%0ZLs~5Mt>py(|Z>G(-Lfp
zorv!gNBjb?a$(1R6JA{P-3ec_{&}9W_6u-BpZ^Q+q+O%>f7F5W%|E^AKQ98>y~Zy9
z;S0I%`Vk%hy&GMtn*?IJ;`a_0hra-c?8Gn^Xw`ql{;2(F5x%Ll#eXZy7ayCDhT;C(
zyNz#o_oTl7?bhDnPmwk-BTQ&N`|)>izx!QdS#=ZFSB)}ao%};f@*QJ>&DS7f79C#o
zt_ivpm>oe8dBCgFa#>{%g&?=h`*oH)2ww3^4_CmZ{_vlcz>65l>O9|
zh->GW5|-;8X>)>evO^h>3MrrRk9dt!9*RJW28|IukAxf)1-77Yxr?mAbRzaZ
z(Sj9vq)Ic)7}3$l83)N*S#a^4q96AQe{#r@hRy`L&;qn}v9>S+hw4&x^(MF!q*j@K8t-@-DKY`85_jWI**lbJAd3)9t$
z8OR1gV3g1ANtR@|l;JfA2Aj+R2f5@V5dgo_qSy$ZTFt-EfMvA_L1AhroyO^Uf%U;+4y~>M&ta#ylPX8sV@vjI~o!EYw+>EE$C*g
zA@*`-bHClK3d4FCt*shW&yB1#siVzxlug#`RE}OAsf^4dz!L8)=o3~z>3A1Vxd(H9>Lk&4?zf0~+Ysk;
zS4Gx?e8#~ZPN{8usQbRSL(X~xF{C5U@sJ}fzM=ZIEjot-R&Kj>;qa#dNX+HV{H2T=
zTSLru9pK1-boFK-o9VZ4?GNac*C($W`2$ID;VAoP242{rJ>-4&zTWQk3O=j|
z#P<6RqwM;OGpouwaS*%3qWG?#t_Wn&+TYxo4-{&Z!Qr}24
z)}St3#dm{OkTQn1C8-@&r*ih(?x6*bkc0eLDWIrGQfIv~w5$n70KO0p1!FbTEUo)T
zj6BTeO%3CLsIT(r|55mHjsh@Sc{J}pqMzdV??w*Q&V{uryazdFCa
z{Luec@w8HT9x#j4?OOKK{^pq4=Z5ubtUGo0cg+XdhOyuHC0`V=Qh9nC#8m6Gv+sX$
ze$in~XTe~~&abIaYSe&>i_Wj8qr-uw3rbFijnQ7!+M|A9*Px>)=p@HdX!#yNAmmyH
zTDnuE#XP9zEL1ABP~jw{Rgk2Bjd(@Wy2YEE%y8(kU;xWoIDtTTfD~aVmUQ%#MU
zj31d=S{ACQMdM93rtB!ZAuSnF^(u^2Veh!ikF3Z3|Oc
z+L}c>GWnxM_#1T~b}u50IVibwRLY5V!rTzE^(X9D<#Ur?wFymVXs=lEcueK;XJL*o
zDNuOkuqY`s^An`dBfJ^Y!gs@BlV~L(GN|d-E({fL9&IdR(O(NGCDg;!$6^gkX=k@#
zR(gx=wjUUl*-p`EX)irCF)XKOR70m%#z;G}8Sk}E?9QPlo8K5bN0;bUp#w`~DQ@uutZ68LquQBb7Uyk|)yuP%DUu$lG7xoG
zYzIv`$O_;Hj_Fa#Q?!*!aAneWxX_b|a>8>E#K8uq1Y(0z$D{+@*;8`aoE0EaRh7?2
zX8yU{{+$^A$H#y73iY?Hvo+Q6kz{y+WH}QE@Ul81djQ}-e<9jeaBz61rGV2S1*0S}
z^a6T(kj1+*Xg)(EOMDf)EOAgcBtp3ev?{Q3H8|7DZMz{S
z8hFP#j86GBz^y*jyDe?R9&8N(bXoYUVhO55Ufg@3u&d1;X+7jU@&wdcM1%V}M2|ph
zld&W=)RCpNM89Tu0eB9XxYrkayc!(eZo%sM)A%g5QMRS~k}L`g68La{m1kg-chah~
z0E(c}!gXt8Zg~bvRYbuy(1s`;0eA>@n+v#(+XBobxys`I*^rGzJVJ16FQ>6@?EE?S7Cm?EUJa0s^>_5
zdakzq>GPy<&O7tF2RS9r%TglR)R5yu3rQh6xraM+;#QjEg4&4qE)9RSx-3N5jZ0=%
z&kAu4-Lt3u|i{}-Th_%|m&QLXqxdTgoM2F0=G$7#RS@-1?AgoKKZ
zU3AwJKNwEm=+N73LXEF@EE_I-3=9lQXO7cO5Y$nhVc>|MKcPi~VB|>7R0$(rH*?1{H!dW#@_26(=
z(mIRZPIJh9rk(B&(Qc1ONq6N81umcXQt5cv0QfCW$xZ)ClvWF2C5mA1hG
zg(I4xq84GLVx>&g7nuk?rD442Y?6p-
z1_`Dx;ds7|07}|9IxIj1>2k*-FKF#pz}dOLyfh#wqvL|z7HWg`YO9kwus($Ld{M?@
zV4aqt7=1bQs{yvzesy|(VV^Q}n?lko2Gf4Fpdr+3e|&c|1ISFD!}f$9;d0B4t3jxo
zk?gx+41I`EwVw_hs&K$r!MUq$OMR?h#(LTzQN*{#7&DXd*;hhR
zggCza4=NZ7Ty6IyA8_>`@RaggE4S){w|XjhcZQOQ+N=>#r;vO4vNPLg4f
zQ)+-p3KphH=4vo{dW+rCDM+I?LXzrJ0za(KyFX#tSZ;?0g3dE-1$}1H;hAdT)rCuC
zuhK@l_4iH0PWAhm{lxAJAoa0`QZ$kWn^(9)=q3OvjqmnsqH64+WydTj-r36?kQJ$f
z94$(T8AwisD>idSgUDr&GtWI0u1m#(L#O8nu}&
z>Io{P5Ud87{WapV>#sqGal
zCTrKJ{d!?Dk*qb*<4%)PB-Kfl*w&jbNnxjBTxSYYn&&p&Jh(;JHA~h~m(%h0?8#e?T_4m`O
z%p2h0jp{3YfV{UjS*qw+z|fe`gEMnm0N@F}Odls!OjZgs;)84Lxng?D&1
zO~~5o_k3Nv{S1R9wjzqL)Z0v!a
z7K#uqdfoS7%#CFk@4=0USA0wEuIs%e5eq9@B!%nb{G>+-EyE@a377kkU6E
zcc#P<^W4ON0e1TBnLMi-|=U{In9
z)?|}PBm%9oA4`FTPzcwcAvf~N&N=ZZgjZ~~5m
zbPqo^&uK443PW84b_vcYn-}b@UzvF=rEFM?iq7!0b4#06{sQETil_bzmUrahZ>WYe
zIgHq65ieic*A2$M+Wok$DHDZfMEQW*VgKoKrUHsn!N;cfw>Hfe`a+V)8HTi1(^CtQ
z;8k%}IUxHwY5ovhphF8fYt*ZxTo6~q0p9x0;tQ|)m=T|L`;DVwt53pw`)u{qpY_%7
z^#q^;y^CVrQ#U0}KdqjozI#?Yo?NwU>x)YkU{F)9=Gpcv^F0wD_@vP=EYC$()2<%k
zN76SIHTIcF^;feY${P)2!(wC+n`wqVXET_v(mZDn>+ZAdBT)>It0TpERENrv3#JiP
zmnp?0jHzqw%F-3!#B!01S(a$UC~{DZCoa+_REn-CT-7m0C@bA40rz7YxT#%z?K|^o
zi^kXC65o%t+PPaor?@v3cGuws>a&EG_ETTy@a(^Lqib+tFt;^dzJuQG#)i`fgo@Zh
zf$v-FW7{+2ujLMcZ3P@la_dF2oGr2^4vyREkP<_d`PE@9A}
zS5h0b9A4>tI#gno7h*!E(T#iWwa3G`pJ};1=$MM_zjf~QeeOtJ`$eU-I;OSW|3^dB
zVi44^f%}fCo^aGqpvc`&lc-gRF{M&BH7LVwHrgDNxNB;~F8o#{0?1B2Ntg#w{@`ud
zePZkyXB9cINVu4z=(qcN_dJtpfi_y{P&Usi*PjtFN~R$#B!8*oul-0_
z1#;uIE{E5R-@%khxcg+PEtUDYl&c6QFg~WPh)Aml=C{SldN&%(j%~+JBkzmm<%Ika
z$1uI==n0L7uAV6T*(Z(}-N}ogr3>M{gR@{1@0I(Z!L*yDRm4?a$a!q+b85H=JYBZ4
z{YS5JO6P6Et~Y!BjUPl*g$d|vrl27Dpa;qQb{`pk?5UGezKW%G`VHoLNhqkBdatvP
z#>;!eSA0dFg1WC{J-%NIkTjm=c|eI+NAvgh+RA3f$#
z{p-I_PTL!|R!_C(T~rpBS{od8%;7xmq;uPB`1Uj-Fwg>vJ!>3n
zsXO5DMM+DaYU?Nx&19UmzU6GzB+`E_zT1M8R}0l{QnTc1aTJk><2m#orWafOFlou^
zPzSB8FeJBgfL*frptke(?`0~krBkmcv@wRDxBMvyj=hs#|x*1k6q
zT7j5I<>URfJ#&4MwWPK7kX7%ldj9_I&GHvoCH91ZDz;Tqy_yC;6Pp%eP_^U;f7s`{
z_r7L^EOcJYHiHCo&g6o&K0uow_6u+2M1?XRk2jy`idq#=Uk;84cy%U~7$pzIZzo2(
zQ%Mo!mnMNb#8{8D8jG?8)34V0ub$lTT}79UFNfiGN~>6gK~t{nIJ0bmu}Us1YoEhBbfPR|dQSjV$-rNn03palTvaX#C5u{2Aru(T;_OY)$_
zr4tk%+h`mGChs6|y)nk+M7;!1iLh8jHVNeDMyH3!kEUzTD6mcv+$d%FKX(N>8BiPo#wsIyBX
zSWP~BozDyivY27s_8)l$x;MY#FyGu|^_7D0BGLIM%FxyUmL-Y-ieWj^IiQz`=|sIlP8KS6J>
zBQ>mfyXb>J3U8usDsy{@&S+JdQ(Anp6Eh-)^SI$Q$?`;&V6hWMJ47*`XA6YsCQG=xSE0wq`
zY20ZnMTZ*_UZW+iTyf*DPByoscfWdAcS(-%tMrRf#n+}MZ?^}|FH5LS%D&=g3Z5`+
zT+3DlRr#
zu9P-A4N#7S2@MTWP+C5!4v`!io9CNfK%qrGMW0l#1m~0zgA&pJhzW4Jt}bj2vbu+c
zCX0c#wyS*SRaE(7wb0yrASuho($RB9thpd6Kg^ZCVPNFC(3!fc^15*w;6-=_}m$sEGbx5o_x28$OT6o1{%Y(b;
z4_kg)2k?cFq=tRhL?FQsA?E{QS(z8g*xO%&bw*3;1lM$J*SN-w7w6BC*e)I7S;iD)
z2^*4M@-{ktv!WrjTP_`GhR8{2P9~
zf6);BH*gyaKY#X!+ZOOWI}7H&qSTdEq%?5G7O&e~9Ui?|%&T6>zpY4h!kCd<^~|hR
zr$iiSQ66P7_MqgYnIJn7@zGUu@@27_^J`OGsjR?J-=9GIj0d`h*R&AcniRF?!UtOnbp=lvbg91QUy_61m`Rs525EGzxEk5$
zOCU*wAZ8Zk?mz_vB%L+F^sa5E1Z)P#SLsH(t$Y_?(Ja4&G71-<|1*9vCL|&mD>psY
z9Dte(1`J_&kR{{_oi4ZUEJi%DG)ic5zCON*AAXs~w%JysD#Xf)7=@(t?eEaq5
zvzqutE{u{Gf9b`8ilj6(lIvTthHR}F>ytyEL)~p_nzHu99K5p!5N2!JdV2g3HGQk>sKyQprcJH9#tSESc-{#n-;`*
z=D{hD7n-b9Ze4%g)>)jf^6{lKLFrR%FAB>b3F0Y;a`9$hYAx;
zSY!#~9gOz^;dkDP(}2Tx81IGdToJ3?(7&V*tS*q`8nI6FEB7|-#)_=5LqqG4bl!qI
zHjH=4gM;iWYe(`EYlRUmI*3scJMbHu_M`&kg+66SwoPlG{ZbmT<+dBB=%>j$yP~
z6g$cc%<5*oBAOG_v_?rf-91!49sWd`|DKbW!mVEY(}MXXTthH!!N}tI8bjt-J}Y;E
zgL`3a!j4mvnOa>`%1Cb?&_uX-UV{}_W(!d&$9{$;w96@hB+jXau^4hK?LJocRL&oW
z$A%{th^`7|be-5dBu|oYHtvGHY~b@~XDh?>YYZZ)mb7%CL`7q?Q(#77bg077J+4o3
zG4ZvE~Mg?RxX_Wr;i)vS*i=&ZDFbXjN7f2ve*}Lv;xG
z$HbG&MF0%QapWCITbgodmM2F6;{L$y7z+rw4YI^G`bNVWQu%k!yFzY+dGvNF}^<<|HdRnJ4cjT;XS
zFU@GDjhzlufOZ_QbYOz>>X?R)j90(sI`+@Ro{1Z1KKaz$XZ2WY;*GH7HC@>_kv!24aTQpXH^`QyP?X!o+URe(m3k
znC^%j_4TuU(rDz+AMnQJS|0VuQso}XXd+DbL>yZI+95l|$UW*vdh-QKk&cG;x>1_<
z!vJTb+03E~3yCeMl
zG>JY4bvf$^Ze_j~qewSl&@NPg&SO~Wc{Q{8o+v=tJXQwj_I63HyB9xs`7)atE{dp<
zHds2LiRK)B7&8zI3oZZ>$gcL5e|{Xi+l)-py7Csb)sU^$uDY!&iwT$G5$)Np(BsuO7mPh
z=~K{ARPUhC#1@T4lfJO2O{vEkYl539Tl3Q9vt1>e^7pDZ-iU)dR5Bq8MC)m5li!~s
ziHD}WcK&4Pi#}dQxk?;c*l@>pzWU;jSg^&oHZjGT$6Ja%*>%Gq)6_+}Pqy$2`HI+5
zM1PNB)-b;kcG=EQo>I=Y3#x?tgfvDT77#Dkar|uIdm=lkB78L@wEexJrPJ~v&KSYY
zr_pB0GS!wqoz!$sJPM^aJ0t=iKc%8(h{H?~blPOCtniJs;+MDkt4&s1K!SQjHm
zu-S5<2z@)!$SED)ULAY5o_}aa+e%Uj!P%Ov{a2lo-5>4EU1n{?R=K%rrjcH${gqLb
zDd#rknBS9DjBrzfv9jZOS=GpQ4>en)wfJf!nuZ5j
z8RH$n(cz5?ub>>CcD>=+U9`09rj|c)u?fYn+7r#Zelc-A%hy&$CB?#iyu4hg`G#1l
z(PNwT{Ck$+u=8srC7abOVr-EB8oSlS(8yTPXvBzdTKSPRvs?RMW(nEqr=ixf5%;d9
zd^5Hso1%-yl)P%Crlg|=TZew*1{#c*Mw;#N5;D)P495%0FAj!n3h{_mh)yyU33k*I
zW+x|H@{v0VtunAUglDAU#sr-0JQeCwW6K;_&pR7Wg?UIhVd8UPE$IE2|Y@diS@23YjM(}vp0Ob>|V{eS=5FDX+gtvHT2c#Lr|<{
z_q}EEJHLxXdoBd0?x1vs6jZG463`bal?Doj-X=Wg;76-nX1xQ~CGEcEEVTBb^(Wgw
zj?{y8<>_pmmTv+GD?LdHt;Sj$ghrHFlBM*|`Sc*cQBqRsr=f59tsAVA)1ytg6aeD5
zUzzX-LV-mCc@l+oI>;^j?N0P5AdH;+q`q4T;)QxpV||`SGG1W{ocpl~YtdrY%zM10
z0Mvss1$x_6D7J~eJ(TpU*=jvWq;H|wn*Uh!2Q@&%0wD5SJH>bDB%?4?^q6c*xlUV^cUPB6C|
z4-z%<>t}9C1x<13pTiODnRKO^&ClhP=+cY~qDxP->^c>h^`cvT!`(oq-6Ap`1fpnu
z`5cMrsepyVrai2_%H)@0wI-z#lszZ4GyuxA%VHv|3!O6H0BD%Xqu3PEn550LA!YMj
z^`{cqK<@$~Ccm*vb*9V9uIUH4Gj4j#iSUWmWwbf9XPLGW--9qB&#L?xEb_P5y*MTg
zW{
zUS(o&VE8|9kjt&f^C|UJo>p}C%4f_n5`Dex$D(oOOEXkV4$ZqaR7VUai7Qs$Juih1
z?0R>F!l1D%Yo
ztunN0VJ5j;`}kjiA^!!b4!=2!Dw>fGj5$3lQ3JCcX_5fkfyOAu5-VYC$E8O?$OXAq
z<%Dl1Ezq+HDbVCIM^3ci0Q&0MJaF%65S2~tG*3i%yil-dP`umUS`Ea+ZRaR@$8H#}
z%X!JUmfO&xle#B@C1N8id#W)J2_vM#B9q%53$hV;f!II50Pj#`U95?H?KB%{hCHpK
zW{CsI7gJ_O()g+g@8pFaL=b)XwQBsHb=wROUIL`j3Y%w{To#L6un_V!*7M|iusZ+}
z@UkV`PKMdV%3&;{5tNXxNx-lD>!rph5aQ$5c4Gwf%_7-rzb~Yiy~OZatHS#WEZ#VY
z&N&%G>VhjfyPVGlmL87gQLu?v92FV#09wz%`!vCw;Yx+bTu}h}S#?SY&smjQNokTk
zcZwmd*cp71K3a1UPh5P|6Ixo~0Xd&|vg$oBMKv(r?wP;3?}^wxPei&W_bUJyjwe-I
zR^xW5wwzkreuK_|0v=($6%BTV5TgJp@tfe%!1z`;TmW`r$PneOW)2Jo#XhxscTUwI
z+IX$Wilcx?(Gr|a)C`X_dEuNe{(5Jt`>c)b(R%ZX`N}$Bfg0@)l^d0O=QkXQLDpT?
zX?_VK+6rBC21Ed^0ymo_07cWrm_MF!D>DRktxlH+o}oUdO~DbnES3)3Da&
z{X{NIGN%776%5wUo7l|VZcUK~%kUy`37OH-rUUY;8%vP_@e_GA&LQRJCGAfc7f-XFAjQ+adSS`6B-KSwfV`Vs0P^K>8=>>4NaW}u!K%5lBv82Z2Wt!nYG)yicVJccH
zWt8*=hRG~O#jf7;?fF$ezqQY5nAua~^F=|OVb;nTYoWID{j14nBs(5!(_R@l?xc=Y
zyl;W}0;w}cz!_LLzZJ!$h=Q~A<8vB=N9FYe#H?|1kl`IRdS<`ZWW5)$7~`;x>%48G
z+qT2vY%^wuQfReO1MS$JFKQb5yeo{K6e!W;O3%d@@3g=FL%vAA8EW_{1Vq24s!E$o
zo(!C{h0^nsDkxxBh^?v?F}W6SfZtW|nA2x?Cft=7#5KQ`3n>Btw9?}om-G+IXmCHy
znY8id4O!A~_D`F9N$OkH(zj&Kg&%Bjlb!mkk-@F6?i?9
zK&qdRB_M#)aN<#|uhLF{oti22rNWds#%wTfJeb=OY87=t%Ld9oCH)-XLCJ7%UM|Lx
zrji5SFcws`zf>gMxp%wisI^(^n~H>H7V31@D<6<#eQGhz@_i$F6)kO6YW2K+z;e<~
zkLb2Dj?w%K^P|J4d=(Zxv$(~OQdeF2+H90mOq#{TdJfGY)P6a0FtBg=9rR_L<7(C?D8bXz2&t?@!gMQW9k`%KkmIs@t_MGoN&t!dJZ9`n!{=?h#M7L^YbMHbXF6rer
z8chTek>TWJ>G{kH3rwy`Q4?VZv8iK_zQQJYWmx85^(j{Us?sYcksXk}_F$_9ILeM{PfVPPrdvrRh_JV^a_NhJZA>BcXi#{xJJlX-5{haDnsRf$>7
zegWQ&oa4WF>F5}pH`YwG`VHM~*A{Hxk3n<647?;%54AAYE}jg?bFD4
z`~eTq^LLi)?<+;~E=f<#t%sxb4o=K;_>!=mx2xC-qWbcUS#WV&iss!|enVfo(ahje
zqgRu_7)f*|8=IFs^(Ccl&E*)sL^jO8=i5J1dS7yLH=V{Zi)!w`Y__H!>tO9{pc73V
zKx*!rYWB(MMwIbf54fYc->R+MSzL7KZZv5|PaI;^`z2oLSSuL}HL>h11<81k59TJ@
z)iKyNSVSB#8#)T*Lzk?iBi>3Y534p*SIYuhJ5jGpp6RjbK#CAK_Snt1>FQSp=~)c1
zmWPSP?JTj&dXxBYqeV%FgxM9vm+h^y)%-SE$*IK~I8#1azf4U@d2X9YWcKQAfSVZP
zII{9)rK8{g-y9TtU`trPOW~2~2Kfd-r!})vNr%d2#%VGbHDhb8aL=`5T0dQ^V68TL
zC4)ouGnf-alcn^ki(E@bMZ&sd`M6!bq&KTdYq)-nYy>1q
zM$9F=pLq%SoLnl@ZwZ1g|3de?Vf@)$;i!$T^eXr9P}Ox9wZXJ|L+8DL`zgp^<%M8DlcVi7DfNmqjQ(aiXG;tMeUhtyIxqFuZv3%~D#N}B7_B38r)t6=
zOoVU7ePRFFo%Y1$zHb>zSn*5KrAQ>IjV%(*S@5J3XWQVawd=Gh1FeDgQd9Q*Sju~g
z7b^+LpcEA3&nZYHHW%{-c`S->^YoQ7u*(~)ImPk|{>InO37PE5nh>!d!DXael}<^O
zBdg?0etF}pK}F2kReyKp`6rM6Rk)`Rt9|9ilMd1wxUHUa{9G1~&c(OKzSZ$^;c{;~
zRxT*YV>vp}`R~vZiGEJx0&u{^8|qjn>m?UGyt6J5n3QX(=j;A85Tp@`
z%kGM%Han>V)bgLVyUI
zvY-QTrS)VV1^_Jpaf6V%b6Xrq12J_DRg(=nN<%?A!u2@ll{$8kP&l}Ut_CmSv~-S|
zW!aihyIfX=?wvAoq`W$95cM(~cLKOb8LLKucMd*RZ>4Xswd+(bCSJc)%pkjGQer74
z&UZHPQv$%l5>h!i?#8d-F~}{%sDgkN1#}CS)A)=@YYf=OMR+GC4LFv=8Z6&RDp8RD
zC=YR?!;R4kz%?>|oh<|iVdu51o94#yu+;ZtVCP2#$>0@gk_;n`4k$|CQbl^(0ReEi
zo=A`~;;}u~&Tv)3PjHC`?&F@4%>W;RJu1>QgXQdDnpEG@*esj%>3QS<^-|PuU)p@l
zQlz6JQ5wK!|AjW>YXBu8*gFoiKEI8e6dL;e&3eYOX@ZF)j+H|96ChggH417z<7bup
zS1Mp|AH49X7!KU7CeyTA6LX9<`ea`|5MBtBA9;a`Gbf>J>;Z=th#g$qN!f=K$R`{g
znsdI`v4jsnn~08y6l(Q!T7$dS=^!7byUBrFvwUSCzi||8*^93!{`Onb>H~cI8O9-X
z<_7@m@A3C?Ufi9MX{wVPPoLo#-R`D`s?bN*QRjv(d@zf
z@y=hI_b;D|_4FD0nsNy%9p&(RHBSEF!8s_en_>2E%>~;n)So?FAOG56S!q0>Sj4@i
zu?cr4z3(He2oc8JZjxA6)>bJjXXJ0qrc57r@!IDl2PJ`YkMIv~?d<3V)$&E>7IkB4
z6ij}?N-XvL_}jGpG{fI#R`!>EGb64wkK#Rf=XY6uo8Tvz+HNO7y3^w>^suKawZAp>
z|Ju=C`Yp~E(R!d;SNWd_{?7{je<`Bscl$|#swA)~1#6`y(!T&>Ti8?GoC`K=Fg^6k
zeA*EG>3AzhLQ|bDbzBo2!2aO8UVI_)%?^$R^&0OrmPR-Glbz@Mq_G%Yn~?9z^4c0F
zQVM=w5m)M;+EUlsxyR(gd)RO0)!XWAidj-Er5RoptJiV%sc%>3;}+xszEt**&<*Dr
zdmj&LoNk%WRl~GteOMCX>-a_%X_=;4X9NkN2UTkLhFjp(=amRMdR(k6ipE)sM0>ta
z^5``T!`S*SuDJ%0lXm3y_}$^SLrqH?g46}Ms?>$T1F|gSYk`3_aD`66-9D!al%7l*
zq#*B*>lS~z&~HCtw+}1N%o8^NQYS*FmsDh~8vs%B6;V@2rYPkL#1Q~lJe62HwRln+
z-nb4m!}5+($OnY{I*!T}?o&|IzVPp3h!v|JilB^iru)
z?q;d%CAJ9f;SvD0jJ!B^9&50A24;D$Zv*N&gKKo78eRhA`Oz?1z$lWGB3b3|y;zE(
zXC2?a%&Jy-hvi7N_yPpyR=ugcDjAHlxm|Ch{R0K>!6>%SV(@IYD-
z^p}i>aR1DdItARb5KlfBP)ROU#Qtu=cf{{m2wr>{y1f3@s$;{3Lp?`4A|gr=J}dDm
zo|eGJb#c5~<%fUg8|;JM&GX_xaodyS8@WwA)8}k)@bI?1V!^qAgZ+Wetn$bZ_Obmv
z;X3Li(pOYbk+Y(3)%$bfu?}J>{R(zZD;NKtoy;%!3Nhf-OSMVO@_1bS+N~_h>598A
z44J3bDaX|QrY37{YKyaO+k_bHH8IXv>CY%v%f;5*}XO9sudY
z`cc__2GwuK*irc!vAA3waQ8wHKDP+SCXEvOh%#Cc>c+Iyso~6R3fW+E)1!#5U=M0H
zM@)*oQXhEg+UGS%1y;d5IB!sd_asmX{Hsz7ZR#Ai;w<%p0K|x^#djOdV|5JoA0%le
zIOyl}f--uF*gUw+v=K#nA0)|y-pNJ!JmaK%f$!TuQ&}Qu_`Y{^TCn|ihh|D0FByz6
z&F0jWE-f)z^34Td?;;kY9r
zj^Mg|;*&BX1Vi4r?p*9Al2Un7nq{80Aig*6l@nc){N$ydn9=l`J^u&h7>cIPOtLRU
zN-%3w$gPMgl_&vUE`hrSG&=!tqN1W+pWvd`|HXhxBvbUMO9Fxb{M|_ldy@R6tm;2z
zYTQuir52hmTMqp~8;+o)FvDv@eYV~4cCg=0O#Dt*Wj&CxZSEg{lyWm}iEx_78LOl8
z;-hR{nl@U5X-?aYg5ogjSG0see}pb_YWBB=XnzApf5b}JmGej`8tRe+fd}~BjZq-w
z%%6p!o6}5gSaxZDg-?tFYU#ee8GN~)ZVk70|JkkLk0*w{4N{;o+}Tx{24K!?yAexH
zMeaxJ7KL1Wc}v@kuxB!u1FsSh2cXR~V$R?%fdYY5LjJlad4hv8=d)n^_i*szZ*WlS
zv?8FI}c{?hZmZNGoqiI>g{(I!C3=#pF^fpn$sJgFj3VKMM8
z;Hb`y^76B5%;p
zs&m#s*R}iBw+beV!l(a4Wd0sr=lp&G`NyOEqpbb?2mc3`|8LjIe`Ci(lc3WCEP3~t
zPzktqnkvLW$_hYbsUdKaT`)(_iHc<<_7`{1D~kjdX6e0ar@x%pHLEM1=-}Cj$Vv003NOq3Sz;Fv8^Njd~5H~v6XgE>U%M2BIY?7lm=$$DnuOX`W@T>I$t*@Xo+f=7iQm52->^seAkkE1
zZnU5h?cF6wXQ0u_9>7px6>SB5I;x$6J-^DqH^Z4|N%}}5k%7;+Yi+l(GPaTEt!oFjFG1#7Oil^v&ef1k
zIrrIW#;9sw4#C{%b5E8Vs7tZ+5(bMA>2sTQ4r1V;QEbB?jB0tiBl@GoPED53^)j)Y
zt*{p%d$#M-S+Q8x^W>XMB9W@rH}d9a(bb#Dk-;ua!<5d_=?33<>%JK@Z_GUc&vLxZ
zg`F(PsV$W2GCIo?*BAJDu6#N6Nig7Pp2YYY?+81&s1R%29JjMmJ>B#cIi^!%tCB2o
zOd~5_C$M+qrc8AXnk!Atpj~E|(WpO9+o$1U)-okc-I32}n)?Mn6^J87R<^y)khB$u
za(yAqqmOt(Y^|Q2T
zTrOd3ghG{i1p>GX(e~0b-Cy%gtRK5uprU1Egp8O#{aZO#<`fNA+A7mAw70_qXNOcp
zl`dGAL63yzRGsTQ$%i$py0%##$$1l|bR0j%y4~o2umuMBl?jXwlTpgOJ?}wo4rT@vE|{@Ob+gF-Xs?ilyi`WjhiVQDdpTo
zu*bgFFsHZoUV%~Ay@~oi)*h;I1tjQd%<4n|yyD+Vcsv85ehaiO^xqw+ncBl`p>sUx(K&;wnPgDpLQ+7wg6>sI-OaskYfOWQ3L_A`ZX}Z9Vr#I4zgb;3PqZ
zcLcLc)sW@NA-br`tc<@yXYZ{8>>;2va@MpcBOd)=N>h0VyeZ{_`qp=UjF%IOO5WI6
z{y=G75zmoX*if_vZ>g`zga+5k$@k%~*eT=dXN2R}4$l*8N$shLP^KO(y-
zpVE|}2gfd6g*voQ0%`w-^nsfZ~o6m!#
z7&?a#!{z-U+h;^
zG}4u9hv|Rgy=$)t*q({r+h6>@%Ohrgu+ML-!+33SO26|de|?-bKQA|PA|WVfLa~q&
zxRK1vLNZguvH(#@F?$@cb~4pY#C8eN2J}jNbn$!PtkUW`y2#cQ?AoFmcxQv7HIP4K
z5<^X4BD81>ho;6?b{)&G2OUJ?aZ{6dL!3@ex2c@hISPbsmXO>6yFL4e;H
z+}lX&r=Zch=~{y38KD(3ZL9dk39`$D?5va__u*-)Wh$*4OvZ>G^Qb}q+<|FDDK#LN
za%;9SA$>s2dzV%jEj+`E2E7)h2N1??T-?~qr
z;}b@&6MUF4M+W}*kE`$yB5e$=J~lw1cUV(L_$1U+Dn=i%RA9EFA0mCzKe?f$s^6&>
zD78K@B`Vlv=vkkW4Me61(~W^%6VMtz4i%=M2&7^hu9>j7`7-rZgp@+
zC3(7k&jZB9>`dsi8ux=1&vi~K(Pt>-4{cHdr50TfX~>Q
zx`XMLthJcl)C-n}>p31nVLVHSQHiD-<$|;@5fSDko!nHbgq3;
zGd^`OJ*CUmQfZn>($B|Yhp+Q=ooCx!%n~p?dj(wvvRiXY0MG;8$ma)9sI^($#7=Mb614gBCJcPQaQeL$=Xx$F!@tYd
zV{>4QRUC?%7!ldpd4;xSRe8X51BRPbo`I_t@a=&U&3ZXse3rCg2fN1$$qbl2*}GI5
z|4N#S^R*{=Ng;Vq79u2r+T(gIB8lV&t=4u>~AycuOe%jY~=&^}9j3oJn7C@olxiB;~;$>7mYvqH%0P*jU_NfM9K
zWUfWNm{OW_y{w0Ar1Kgo%ILa7`UmarfVA;Zc9(O$@--brF;daSlM!uU2NwT5(&{+3
zm7W{r{;vB}P8pqcwgrS4C2YvXzY?>=vf*MU1MSxxT0oagda;1_Bobl?y{&v-8w^|H
z#zypQ9W!fqCJc0ypV{l17(-nLvQCX{4PqBxPv$iaih>=MowsnXXHtCuF5>1wUIw4^
zzL;SXRj%wbuMYOmtnwQi0o|rv
z9dJgjrZ29=CZdYp1n>&RyG%n6F4k(ou5vlX^dGzZX0lq9un{ie5w^2JUe0bNCNg68
zKtF#hf6kVL{qvNw$6m({Eh42=UeDzxgJ#Ijc7+vGUZ!1#dDOs^LwD}OD>D8s_H&ynkn8GJK*8Mzj<8{~0Cp||#od-B!
zo4C08T5#$~0ZlpS-#iyHYfH(JUbKsWPpf(tO~&&N9QHao_}^)!KE4~?Y%|CJo*j-T
z@5g#v)PFP3{y?I)80ECzX!mGs|d#MGhPz
zb{|ht0$S|o_Z7*%4JKGnPn+tQudIE?L~Dsp+%I1X4JJp44=#+!uE$@T
zV!eEm6;wA~7l=*G8Ig^JXsb21QHcya9I?&)M@uSNK_Q|5Ag*xlTxR3i$R0fLuPC_k
zU^~NIJqI{oWC=IU%Cl;ow??W{!fX3h-@=Cg3A&(OC%M1zoFp(*;e(viky#7I7i=Pc
zuj1O=_$r?+chS9)O08NDlVjBrFhI}e>C??_{}LSnJ=D2zuU%9>!keXr-ow@#n$tmd
zU8@chb^@MO{=uX!&@J)P`gmd{{c{>y8Q+$$0@`|nQNj1Ir_A;?d(4#M&rJl`yl+Y(
z^sA-kL)VNn-kZKDem5_ol#jWp6Xtium{u?cc$WU87$P?oI2J7;otb4c(y(+m^29
ztLV1IsS+O-F&l1+@TE&{f~TR*;MxdR7hx?yY`pjySXsBN;RffrA(Rf{$xLi+zQ>8`>(*?pcFPd=QeUckmN-*6^%vse*Pj
z6-zeWcuwK*I~8+rdlu+R9ZfjB00!g0A12Q*i_JD)Fdg;=mawb`$@G7U54|W<2+skD
z`yTGQWm>qWm7DX4?Xp#x=0Ss-o;K0=|8svzS?+_qR#ln;qfsqGc%FcQ$aQkK$=&ar
zbz@L9LnF$?uAUvPa<%2WPIRuSLGe6N$%*=gcW-Abkt}eg^WGU@8nw4bc+%9{BUqX~
z0j1(|GRh-z9xk(R`sbCaX8HcR`@El!Ef=*5BC3+h+IS6VzlRxZrjClsxo;7FOg-xG
zElT~NDC{CKdg=15#^tF<;|a_vaQHP9W?Ut+dohUKpO~7HT)e2xA#I7YqZOs_Qduh(
z5+vz0$HOtFV+K31{DZ(Q$M(YK=VH2zFApV#2Y
z?L?NWB;&}AQ+)hwg91#yJk}hEo75UrL}%FXG`w=7()^}l?pxe$z}@V!C8BTlnt2m%h&x>iOh^Juf!FH?(w}ba
zU}(pi=F&5XyGFIP?$-K3Hh35e{MKekY#BgtB;OEfbV?L@BEl;dpsAy;;@%L)fWjBb
zg|@N-V1#Bi-;>}xb+ZkbG-^9Mdm5p(QtYIZtVzU|2Ao@`?@?3qv>aI$s5{yk9jx!f
ziaq0~J5AG(i-AK~-J9_v?;X@r-8#Kt
zNIPnHgVSTup3M-)3wlChbXZ#aq>l*_1R7pR)2qbz@iy2bRO*I&=UZ_cix3e^+R&Fn
z;w8arM3fw}=Fp^KnMyRxefK8vbsWN0Oqek4u049|Sg9Uq7Q=R*TVJ_Vea4=P6cx!E
z6xvPwv&kakpmB@qyUE||Xp0_%8WU33CpXtY^3or7&~d#(nPk$+$gxcy;|gH&=!|_S
zZ-L)EGII4-g3jp<$>_yO3tf*2A`4`yQ)pegeqB_myEDh
z%S-_s=B(Zz0k^JH5<=TM23wX^i4S94L%ud^sjI@AGyg;iNW!5r;}$D0;_Q%oJ2PAK
zOaZTn5TzHAhL&e6!2P?4DivLC5LfO}8ce}=alP|u0~a=B^H3pSRW)#?nq$WItF9lL
zC!rRtOznP9%XOq_EPWW9jdC~Vq8xq0@qt^zx2!MYeLhR!#!;9OxLocNRQLTTr?sLTTCEzu>EQhSo1wFKYLnTSYnBOSY&^J~aF$>PDiV?AcJOLP|kT?K3Q&LDs>{x__MLJ1H_)mpJ
z`XtFFFGK0|-Sd?b)46k9@s;L2PAk6WKYCLC{2jDN-JRkzjmmnYx&+-|M%DCz=o>Jtn%YGB%YAS
zTy2WH#Ln>|Attt|ewOm(W*gPe?@0C#MdvQBm})wK)x=MHi&yBY1F5I^-UlwPtRA3Y
zzrLOeJoH|jxN=^P?-J!!wnj>PLZ4Ic^~zHi^K=OO>Ck)>f*gFTxk1Cdz&>a<5tvso
z-DZ2;oNL&;(vC$*a1-j{o^$eiFO7FJy=6#*uFg54IQ5TCGkO@xLVZX>?z{I^`zT}%
zgGa0->`d-lTp_%S47nTUW%XCo2@705qmtknxuHo&;}NerR4Z9LESBRpZ`IvOB7Nu`
zCc6$U)`bqRFCJ;+cmea%)dP_`zXXV3q@RGBCx|5!?cN
z;qq42?%Ph0sAn*Rn~*TM=d9nd2*olrh#~hQD@HHgw!N#ffrR5%H`9<7l@E9#v@G3R
zT9dou*07a$EsI-Ht0r7)G;7u!`v%{>p@;lx_(WIt0UEWW>!SzLYVkj0FB_K_s@>K=
z#0Qnub*t-ofKK{Nz(aro`8ra4GQ~*3Xovn;r}=#reOw5@8d`}#F^Q=qv*si+xyr^+
z+lQ|Pt{OM_9#rClzD|_D`$_;|e@CeK=?c>K{`tC3PEM=Xc$@1?MQFTb@4#bo~G9VB;z82Zqp
z6zL%?b`W=B7Beaf3pNX_p+R?X2<5S2`$P`Q+j=>I+_fcf_k90Y`-*zlB7e*=(P~e)
z*wv0H7h7-euM65ru+p!S_mtk8b+F7Gz)E7EKvdRj>(pi*|JEbzRXxn5+?kGO=GRY%
z%1a@qyDq{q46T{mTdnkQdTP=pJz3`qA~l0%);%dS!zT^(`Jb_1qM7=`_cT_>muMw5
zv-%3(}!Lc!Dew9
z(W4fb^&U@F8V?(N`qs0l#KGlmuLGonUz7n<-$75&8cA9&$&m@vnukt#Vlpaf(Rd+kmz;
zFzX0O*N4D51(Q85PO1{05jyw+R!A;wp*-R5-&IeWCj2R$aVS>Q^-x=dxX@^I{_r#`
zxUq`$sHrDQ<(Dl~2F7rc3)XoXU`uEL)xrr-TdnfV!`F$CJ$6yBTb}8`ihPdi`ITe>
zk3pO7p=hbDTJRJt)zmhwC?mAKsej%r71*L5MD$NP1XWcqXb6UV3W|Cxq}Aw)`5t4S
zuCtzBVpspn0lKsmAnmw%m~B5l2D~WQU3)%d*kvflt7yKsD=ADb%|06f+g&+1#~t!JoQ;%N-(KJ
zkmoPXz*TG~!%cx&
zc-lrxQ|8}sU5x?XqHcpqXWChN5pIQ8Gof3)Y^|A4iX%BYosAf
zP-)b6wj|v|{aTI8!SgClCqZk>YF+q8Zj!GE&k-2>Bh(NRecZTGwjQUUQ@2q?)+#MG
zSs;~LHEXf)hrgN{G`wlb)=GS#r=Wi$Nu4|W1mS4sfMwx)&?@WNM!PmT8Bgs2>-vXZ
zz>IghcedpoHG91nJOz$KqB&L>8$~?=^pW{Vn6HFB7o457sf1QlT?ots0*CRR=Fnj=
z_z72$S^$!4jA#ZSjIngVI7xcw(LKWZ<!F^tmCGfcw!PWH&s^85Mo`8E_)Ige&ZHeJ
ztk;W0lzECzYdd`;y@HR;wQ0WII&3YQs8snc7|-n%{IZfs!O6y=)2U7?om;*y<#hljxR{Gb%3(2B3}M5HppE?c@L}ZJs>bIG|lWm7r%`%RydVH)wCE7SLBA
z)tNR|BffyROx+Zai`StCqtk*00W*v?^g@RgZVC1~Q+E
z{%!aK;mMj>O|btfBEu7Ttn;*y;(XZboV4v*$Dg=L|HXZAcl3KpM1lS=!u5jLL=kPS
z@SoKC(j?YGs;2tsjXT*wjfT~zp^-iBfq6KRy-qFok?<7TGBJ;L*<2A
zkwJ_HE^&}44oOU1T$N`W+y;@*#}W0bWde;2|i#R0>GAsu;vL?
z3~~rLrZ_FCumfTem5_<69>$W=6+^aWH58ft3MLk>jRig9nv?)~tKs2AzTb9kf7i0;
zFVBB&_lzX9!#+fO?xpDY9QnDI>F3t`$yKC1nb#~m?L_wik!evK^Rc7x@NU=#Qlmgm
zCE#cE(JJ$3_U4Tag{&(VB&GW3-Es*rsu?4DkJXpgcRl_STYoENP;76?JI_f^M6DK4
zvK!Xydbi>B%8Gk8s0~&Pm?=fsAr!FSlcQ(Fy1)77cqMdI2u^MyUIE||$p}s*z?VJsm7e#*
zmRRLZo34qz4+&Plx(hMn0xK(y^}RG!3J7W%I;>H_iY``w78Yev$z*uF&J*JdTw=&l
zTTGkYvST2xMU$W<5(|{Rz`7~#{Qn@S!(h;_(I4SN
z%2cfeVH7NeRcdK9&N+#sY&0ZhjFMb>pKu=pCkaTyE&Y+#3fS27C6;kH*ze)S!N1=_
zCl_+FMDpgrx!RwL^R(D44H-YCc`rP6v72&R{elkv1(=HK%q`51R~$Tr9(5v9zWm0?
z>~#XCPP6wrb#Up8j=XUbnx`axb_vz-2yAKKN9*s5$3d1P
zA3v*oTuW;!-3WG9>mWlrQJDg)k
zTsID_qb*Y!IP8>i4myG~Zco|F`m2?5lIJ@^WROdv?A{9;DE{I;FRvw6LLA5-lGUpu1JK
zfo7lrJd2n4qWxsu*A_lJo)G(_j=oJY+7B>7EFPN){~jt%-^%dT4_x3zIq^!qn}02I
zeqEAbTrl>9%;cqM{^V{GcSs3QXWdN}q-W4jQ9R5}$Y*O0$dk(JXtNw6c}=tmPkoHn
zP7swEp#j58?(~SsYNd)Ut(QmFCOv_BCl`7Q=H-w%VDhT&2eLKb?4Qy5__0?i5d6XI
zq6oFOzm`;b_uYvF$nBuu^~{eL$c1@=jjtRyc)e=j1J=LNW0T{A1%YPxa#}v|px1&0>_hvgfkS3_ytFw}=j*a_fe3Sy%R)tZFMZze0y2P#Fw0d#uc6vr(5R#h4
z;dK(1z;?H?6o9^J3F*55K_Q1C?a9FpvL0Z1;5btCo9>6AUgtw`>5bcBv&`Z+9Qc%d
zv{Sner?(S$N54BUfc}YvL5NF^!Jo@iC$b`lY>Z`@3hDT$-A|T-&W;Xm`ex3}CYgxT@OtoKcUXQ@XSjS_x^CwafKEDn
zL}|mWm|%|AJ%+=xW$I%0_#0h?4LueSnSVFC8sxPnbhHi)=a$y8PzDdDJ485RbsdyW
zx^>3Rmoi^!j<*rYfhJL&5(_yEyaqY5<%BT}oeuXD_7mN?F)8`eKzfkrJO_>FT&{oq
zQeICm(c&9O!oVkI$E)D2_gHY%E-PRnUr1R?j!o{cz1fj~#mwb4C>eR4fpriSA8g^y
zg?PE!Kt>FMDLVx2oZ?9ZN-7up&r6NQk8XdVARTVqz=~m{mH!?;ri*s9myO<2(+EYp
z)PQwnN2|Lw0j+S|eGai4!LbyPdL&IRj@Acc{tkSRXU%`sxod3@cSWo!Z_;1+U3%U4
z-e2`HxETzhwwquAQD>7StvVrC20Jm5sCI6iC{!*fU5$=f|V}R-PzWpk~Kc$
zPqEpzEC%eThmPY)+SQ_UAy%{q(kMKuS_^nwX*E<9NdD1Kgu^u>e$duyn`sp{$AGbS
zya!2B(~k2+_klSS*;L|_WiJ_lC2eSQYGA8k+U-)L-D93mB2pSBO3mO<-f9Ux6~>%^
zirVC~$v(UTZJV{0H_c4X=Mbj133tH%t{NFMX<9=UsPHGIMPPZ|jaDTMI39$V;m+UbI0PfNB~0QqGwsLHNT9xc0Wf
z<8!Y#U+7VEX+!)m*YXWF4lg25X^vZfWm-Gkx!*yyK&DjN0@dx(ye;a8xFh0?x9N3J
zwd!V|a&X(r5W_~05JkO97hJ8*HUM5?LNhT?!tEY9=qc$+oG~kST=hU@iQ$Fua9UA6
z>u9KawY#RtEL)Ewy8>#Q;4}Fu4g=9)_XMQHjhm#W
zgS_zvVTB08rS06IrMjja9@ns^N)7i*Qh!*BGb4&RO!5ZjF092p%R_kHw*@g#%SFr}
z?G_ziD`TNM3FxiajU1gtbhoWCw`aNZK!~wUFnc`;Uv;SYqalGJk0WfNzad62&n_lL
z#)5z)F{^MWYsY3pp2E^qsbsd^tLQZJ=uYR@PudnpGw1kjX;MtPSU2==B3=mR##M#b
zG^HJo11lIFNKJi1t*54SFz$P40x2jdVI^^5(z1q;k$gr!*C>zgM44)N%?eyU`*&w8
zc)~6J{Lo)#U;f|4ca@0X^@~aw%6q6?0@h_LtW{*?r-JU&sxbPok*t~UDV&T`)e5Au
zz;zr<5Z4461OB>5oxPq`9Smdq^p3dgwa2DxTasf;aGH?h
zdxLU#G?FDCq9B&W@)_Wq-j#Ik*YCMGOMYL9d`zEBnqI=*0`iyX?hmk^>sjjZm+Qzh
z8{?U0N2;L*BL*kBou=t6E`KS!@{AR$GHtNq2=H&gj~
z=2MfpAhb2rQg7u#L5ox4{_5)v(O9p384vDJuPV4akI^&TnpKv3so;bz8S&JFxIT-F
ztX3NZuHLpK(MtS@6np7Ho@{3-9lZd3xw7bpgLEZTJRP0zbZt>6#Jv(o&GFjVsACFd
zQ1ee8$if}@(xb|n-o$oj$JPhVSn*lc!66hY+Gmv~zH18uRR$u2@!N8+U&Al%r@IG|
zi<%29SRlf?v|pt`Y0K*R$5_DAX$f?*3i%sj4j8pSHQ0NknD2MM-`sz%U6`Dc6Uklj
zzwCx2A1~Oxq|rZ?mgpmG}{iT&iSZE9+`V0RtDo
zNDNR5H?rYeeBR#^Ri<}my|N@B*I4=R7HRZ43bJ`@LmU((jCpIhs0R*jrFn2I>QVOi
zq4FZTrHnNd8Un?jWg&E8$Jj)<5geHcz6~=D{}z$(Hm_=s#Q(~f)+0={#@@TuT>_q+
z^pYa|bU#t(kRts)5dv+xm4Tz*TkIKq!IT%Q!7+K>gPJ
zzWl2SeS|6p0fQ&|4$1jhPL?IUA_ZsXPQ7My2&XS03z4*yPfH*Riu`nHR2A>a!u#3h
zOr|=X$~;ealVKBD`RBYN@@cwFq}aom4ms*5o9AMxy;BdiK58~rhz%V?;BBEW1{{Lj
zJYFwLeOxJPX=8HoRc}e$>(*j2RIg|U`{9Bja*bN4;Em
z-$tV}+RS_s0|sQeJ4|ewCB`t>d6`nS`K@=x(?jVW`YkgAkE>0-YfhEQLtoUYhe8iy
zQoA?$-5By`C6T@k!|h_Ys%%N}D24nkX_YXUZ7ZZD?mq$h5s2YRSoXvGc@s
zy3MTe(+d610?|VW9xXaL>6{;CWx419_)5s=?jl}tNu~C;Q2Po$u56Syv&6t3yilt)
zYAQ;@)b;)#
zZpgvj?O0d?c~~ZY2ITnYwn^6sUF|-vPjyX2Tk7{44NcUoiZTF&v)HnOcWwtP2Agb5
zXUauUE-Zu(k#y&d!jS!WjoP1$V4bp(EM}s*Oz4i&f5l2rnrtYNIZl06rU149U1%mm
zg)7fyz3hpmmD$}p$5{8X?0gOWKDc-MwrN;?@*aJ$IzPRt2;5%Ac5D!;hzzx$b?-4x
znox--ZP_xaI`7I0k`R-3tR?j^hOr&wk3=;=Q@~oL_DE!9GD-F}W#wrJUet+5>|boN
zk__F|M7J$l)eaYH8nxD^B!JG?S%0l)C0mi`!vgx2rkFV4yd>b;lO^>NQ(_Ibu
z(VmEJLCTH3%`8NHj%K-eCVl@nILvFrJ}j7?b6{wV&?B}9I3>$`pYLOkYFHqnN7wZ4
zjrwoqdu|GxYDcOI1<~V2WHRGAJ2efS_t-PNaZ>prj>I*djqvf0?+%+Dgo*y6@s4YC
zDT%Uc|8NKG(D!De-G2;p4c4C?{;-}sa7b}6RNZK`Dk`9h_Rlp31o*=3?bBPI$&HUW
z^kjlW!IXYDO(!Y2rajiZ7ixIi>3)T!t&8T)y6iFn0hLm%)1(Z
z&8oP2H91rh%3NUXif!-M{$-IkVX1iHx)0(qc;-51t$P*Xx1avpWNfI?Im~;W1O972
z{Iy_9iDI_rfQ^fwq_Vg=mWN2?bu+6Ukm2*Zc#J5p-};od%zDyRoYTYL{mO^+C$KIf
zBSzlL#3eS&*lLqQ^}`apJ*?(hx-`vHvQsi?M4~dVDvDJ*QOLu_D$J!Jcc-ha%J_7?
zv93{fQJ%^P$Rg$C>0N;2zq_*wLjr#5%&ol*g5W*9WtK^rZ;iGg_
zfSk=Kt!#?>`{iUjE+Y%f&ctuGAV%4#Gl;
z%%!M{#*55j0iV5W5)9S9H@&x2dg#Y
znGRN!xC#|@zKAM_(aUH$v6c_R$O2`0<`pucF4ErbWT|f#MqG2?ZWwj}T=Z3s-(PBU
z_V$fWL3woHK9h)C$vc#4-O?~l^{|oQ=1*FdU&e3|VkV6yUyugCzhoa7vx232>wo_=
zKgqiLW(I6XMtyP*tAzGV4K{|8IQ*#43Xfq|JZ)f2AMmsS7EoY#Nid-d6@#@DIcCZ2
zbCtYS<(bHG=u~B=74|))kmd=?s>GPO;8hFPSq#lG6#2TcOoy6nHv!v7{w_Y$rf=#X
zwn;@;Haqkr{$|`j4pE{!X=L`IE%;DpJdKH`CXi(S&R4BH0yd&#qw1Jtlf9t`@(Aa)
zTJ0=|scFNeL@&WrX9T-5^8p{MC0bqjIcXX;9jpG(BAe;^6fe+YVbBg+H_M!Xt$F2ibNUDOa4B=&
zN#yYIjzz=}@&za=H_n-NQJwQI$PB!6h%x7qV%x|U47F;NM7t$r^82qFp~@A*#N9he
zzHJ~;0|T2A%@y{VLdb0fKNv17Y`knwZr|UmK_2?%lw-_ZF>>f-QVs6eUv@QGeh19(
zacnnF6z2N#LS!158dIJN+{`WLg|(G!*n=P2i>7%=)*pkO{UPl7+200u7m)vl!xjHm
z;r9Riv$k1e%eJK&Q2$45QeeRGg)3Bj*Zvlu#BS~LZcSLWt-EeJp_JHc(~
z-(`$1;oBO|YvD*bc&a>1NDu?ns?`_U1xE|rqsSsXAg%;6lromf?1DS&fJ&;Xtk%C*
zVTinIe@reW^a!e}t3|ypo_%oljn##NM&#G2*RPU|HdRb?HoEL}0QN3Sb=9hqPnkTj
z{h4S610Pof7_ko)4m%^VTQJDZ8$RnLJ8Xhq0`P3*=0jtr`?Ar>57S`2AHt_K+XE~x
z-*Pjc61@>yIfLH5|MsVO0`51u_c&Z3{oEa#mBpjV;5t&izz3V@3Ouwe~m+2
zl$Wz}yaAC%ef-ZS_1_xAp*1y=l7tQ5!*d0%^0Qf0y?_*-M@Z+Cm~V_Bj1(kZpq@uo
z|AhQgVsY0#lb%Sr5fb~Yct3b`K=*5%UZKSRbU)KL#>FV~9J4!ighp~@0
zJ_H8uX2v=!e~3{3yQtG>(0-o3qa1YtM>d=NAJlW^^Ojz1Drp8%XeJW3#hpz3J1KL$&4EZ7w28^mw>~K|foX?L$cTizhOLU4SzP;ZRk<)v3{&xm
zalO@sUEt_;&Iifdo+`ZZ5?e-)h*=RGwWK#;Y4aIKdXxbqxEPKKtZ}ggCSfa$hs==Z!87|lPJYb!SVV*b5zlXGxpSo7zL)+(Wx4mP-2+|*k>%S7AXVY(
zb0Q_boehytDpF=yno~hRVe&z0IHn5szc1_m-`zkT=ZJ~q=mEDs_9fI*ctFqg^4@x{
zcW$9dXW=T>HON+ioP}#&u~urWljhb#s{^Dh<%Py
z6uR=_tw}BgZlVeWLDtq;CI7Oj_uTxw1iFyEcV6KJ(k<2Rl_1_v9GU3$HS}J82UBCF
zU+n;&K-K-cwbrJx{fdzsr!*|B`nuV3Pz0?R6+%yrOH0qt28V4oYDvZ
zgZ{EFdpiBQC1Y>OTq0ZF(YTnVC1xggk69;ylufWG1qxa&D(@BE2El_K&pcXDQc`g<
zB@wFg-?1!+I@!m9b44ByUkQ(PNvjH=IidnW31nt(U&&}Mh0nALpejaK?|nnIC#--i
z`{W-!(gLneODA_IF8b=c(>Vjjtxe;2>J>SFW1)BUfOqcE-+xRRxY_?p4^^Uk!bgV^
zz+c2{xSXUqHk(Ve+aYcp;7dHs*th_X=@*Pg80MpRdvPRfhYe(moUO2&(f+=C5(_o8
zJsUrpkAyL(k~!DW4B+#oRuB&?I{OH5G71S}NZ7k9T!sd#C!Il?@GV(i{Sfb5+_oN4fVy5+?#l;vUnj
z49X2oWz^&$FVS4p{OjoP5nI5s9v|98^}z!nC+BqoAt`D5R(LQ5u3$gj+L-hFQ{$ln
z_XL4FF(s%>G|%uiU7jc$ytriEt|&z-Koa0bfsxW@>g-?(+G*5*4#$G&BuMOPC6!4b
zwbHk)2o8VmIo8b8N~^7-Upfz1d~3a*;_m(GwI}3-ne-OUb&bnOuoqdSr`-l56E!4C_g8FE9ViQ
zVFPsiCp32{BM+NnUr);}pvU6YOz~+!qyuOhG1pLSXFg_=IL91fR2_$O0xWb(4M>{^DKzhtk@AvUB90Pg2aBhh0
zAW?fCHndI`FjOmvTrevD94oghhZxva%P;UU<
z<27o*H6$k8H4iAQ6gb{!bmnFY*vp>Vf7eR?z8&i&zld9v2_7ZpriYhi7!1R>v}+p$
zz60&IC%vb)y;MG|+yC_!RqK1YOyBe=r}GaZ8*o>YJyR-1qC{~)
zGM3Uz!j)2uCU(@hdY11K1-X%0!2Wy9uV*Xj3FQ7UFkH?Y!lQ719m1AqxpYbdOZv7-FO91e6E;)2Mc^}0_Rd0YXx-c
znuc_>5$`V>h61d~l~x?pl9_nFGii?GzeV)%d|pmT2qFDzT(F!&l6BGeyC-B5w_)4e
zKg5w(I|KqzlG(c)@hPc>d%ykW$(v?p{9uT60tP}Nb8Pi#2qEoA_KCRV-r*i;$$`6_
z+@z6blh3CBW>&-PE{~oGQH#J%1QkxEWIsg07imAMUd}hkU=54)$crqq^4XBecMYk_^^S9(mp~~7N1v$BM8!8)rBSuCNAL+@r9yz`Q`;qq$w<`QXM=y}Q$s{E#Qd
zR8=oRFXycMRQ)^uug|C3qv2mkiK|1PS|f==wIWc}$(NzbM)bNygEySml*ej@vjtjP
z>gw1miP#R1CTtz;kQC1Lk&U%VpT@Q#+C>Zv$Awphi5VP2D#IeY6YodMci(ro6%~8Y
z%$^1Bqh1VkC!uz^$<@gWSfMhA^kK(c))D3CP=dG8yQoKkq{}r!{94WaU%p=KBJO|M
zBJZR2&x(0)HILZPGdZt0Te|IJ@MhJQGv+-tnmbP%UK!&$*a`SEPJY`76HbYcL8ZKg
z7oG+A1y<0uU07CUNH>sb>IYqGi&8{SzBP4eHWxkN1mC3v#*S^bde7x&4T;2l+luN
z!ZWrm5aR_!68bl(P|g2}cmq*A3o34ubP9nRre{!ap~RO7Ik)uChN!=HV6^
zd=s-?0(qR+kVBawb_~Uk!Vz|-{9fhKs5a=-_uLln>M7cpX0d&^7Tj$_fKi)RcREiH
z5?f00jh?wGMVlw`?VSW}Sh3N2VE|ublU2a`AJ2>ST35Ktth|
zxfPz}+*T1O3jD{yHUDo+qEGiMTwFFmZThDTtz4lF+n;{FTUn_Qv^Vqll1_zWks8b>
z9?dHT3nD%VRqbqOJnPQt{(41KW}g+?&iE%RC15$U`yXn^?#WWOK{_(+_G&;(4W!xM
zqht;=VXF1@VusmfVPGLs-f^rsB>E%{OItFd*_gNfyc8AX_Z*Yf$kxTahbXoted4wM
z6Wwi+EndB6A|V%agMHJuEzJxu9OEMX>LBl!IuABC9MG|`nX0hni{Bc0%}j^<#BKF4
zuwfZB5b3%USdIfv*^c%#OAR8;(z!n6bUVrDD>78*gBtW^K9j$xtHIGUZ{-{0v)*ps
zKMX4SGChE(eqOfUc>sM8N420x&iTCC|9tb~vcuDNn%kDNf&Fk3;!_3GZ5e}Plp>G5
zR*<5!pMos{ii{7&iyUqB*`3Bvj!~5Oast;go$~Ry+%C$+lBz|&^DPcvLc@?9|S&u)p
z^xlK+tFu~a6Pb#4noK-iohp7zJds-UCJc+uj45MiJ$jAFkj&#s-gq!67|yG?05!hd
zH`D5q2niw*$F|Hm063VaK}h7qt&v64z-A1&fP(=s(IUv}pBj%eoI|I|xIN##0g5a?
zCoDHk<5wjt>pD!tE+w?I2DrH{%NM)mP>e!6AlfeV_CG>;)SSXa^Ey(^g}>Cp{eC`t
zwx-+42{Ym5P_i-Mvo+0BGmg9!y}cSf<`+(uWeuVYkckOb$=~#lmae={2scy_|ZhT=#GSBeykEONIYY+j#~xp+);XQ~`w(LJ?^ONPvJK&43h7LNf_P
z5&}pSksb&&(kv0A3xtpWQk0TFs7enYD!r;mm0m@qDJmQlIbPnEH+SyLn>Tak-tYUv
zUc1d&vwr*k=dZ@!lIlW!Y`s}5RMalY!$~Q6SII$#^Pi17hdOLqY3Dfujd905S45`K>h*T-&L`To#I4bIn?xD
ze)QU}>CgLQk{aUgWNlhiIm(C!;nneL=S6;>3zutlkx!HzbNPx>d
zWIANkiGlU990|Bi45+ByUYw>3lN+r{yd@XbC@|I5^rX5f7DuH+$2KfGdNhd=)=u`-fx0As^VJBjSWo&C%4MxXjm!c@0gGAMG&y8_~>c|uu`Mg~j>H6J~zZ5&TAm@3PkQo_QgLF_U8(65BZ;WzVdj?&X|
z(vzBLB=NKsp!Qq8?%@}{S*V-eR4+yLR4OVcz>iA9*skVjQU$%BU^r2zsTw}!J2xIt
zahlR3;TQ;ksQYL=srey6iP^Srj{M56XRiCM_iSy0@jvkt`3??!72qioqLY2}5P$)q
zIM1l!X>>Sz3Jt4+e@=V}p>ov%5LmHL&L+|`FntFkwgOdcKj8?|MYWY)#sUELL*hsr
zvc`(I5~IZvrW
z22tmB%XBWO_?eB_2j+{ZS#3`UZIg{Nh8ZmZ?Zv&-tMlpJyPVcj+(N?k1*Q`ZC7s8$
zLIO`}Ys=%ndv;ia?M3CS~0V!j(*?fn|SwByV*VjTGKjUh&DvVL$c6>Kx`9yO&ZPMRN
z{i$AVlk+R?g%`o<=7>%)FWzmxU~5Q;;J`hsq3Jv}MKIH{%M;bwZl``
zI(42Slxuy7$N@zd)p9A3S?q@d-XOQ%UjyMalHl
zm}Pr5ZI;b1=YQ<$fP#R^EO?lpbEJH{?`EL$Xc>h;G26rd%~Fu!A#nLMy9u=x+rX(1
zA+?iI+3^)BY>0jAH6JNqTm8tmtvszLi)7Wy%Pc?6czsZ(cO#pArEBU7-pUCh?k5c>)#wB<{xnRZ3^xRF}
z&$hTM!5g055LdC~_7GtSe#U}$$H&7Vnn^7jU_3#gL(z3$CfWZ9GHR|n
zOxq0^i2BrOz@OwD7|Kg`!y|
zzJ7csA~DW^{Foqjo|mnVR|)kwhfKPdssXE_Uj|2utgzN!ohT*2Fpw-d+rTS7_mH@l
z5&1akW}guBxO?hXu~^XTz92UKIa%V<*`kV5Zh1cX-s21tiDPO->?mw8OoxpSk3|ER(=}<93s*XB2=^h2NzGxg+PF~Mkped
zqek#_Lr12t#?&f7H9F>Rso+b6_i0j@czmp}+w$Fz*K>6vj?Dy6Oz3iy@;-kbPWbZz
zy3xQU^v7;ViHyeJoCoV5qxR%Isgln|TZWl4pkI-@AnWL*#53IMXbwXE5W=Vtyn?Aj
zXWq1`2|2J7K~D@(wUoj8YD^4)1>mG{8h4q!iItw5<^ECJmCxph9m=-n59vC-;}fLI
z_ZcupPSLVKTQ8H)X75>YtZ*fn!sW|9F?fCJ7W?a$e&U8YTCruN)@!#ab1Rq9%2-!_
zX+xzNSLu0EtXzdfAPXsKV4HN`nJQ0PcZen8x8ZBC9|M07zB*lzT_gtvnS&JI4!;2GQ+N&-`o~uVQWNk}Z6nayfVp
z<=a}_cea7g_&rVNG6vD09CGp#%IHZpq&P^A?y_|P@>fon+ppgKEBBdHyu-?p3&Fl=
zP~y?+q0G9ve@uMH3@PTdxv$tKLT`Vc%B#V9ZCCqB*D4%Qi8FR5Wp~z2`1i6kul1#(
zxt-fB?yK|kpTad;5zP%7p@F&^cf~@TwbUi%t5VBZMtOcl8tZQCHi`K}1b=XI>+NiQ
z_1sp?tULKWNkk{Cx?ZZk8oIta&dxN_qxyxP30}R{2$TP{{xBs!nk0@C0XOQ1=)o=X*#494%ci%3(&eXDc~t}*lCsjqss2}9$keDk7=c$Fy?yNMDE%?dON
zDl}zqZzWzZ-wCEORTR=IU7T>bP{lz2MR*Mn42fOwHoNRM^eii%V%
z32BpPPuVKX3|uPmanoVi?*{v^uMV&W2c*MBk%0HVGR+QjVz@BmZzWTtmk1QM8Y0bn
zY)Dj8ushk0-&c<>ST~&DUx9dCaz6CF^h6j2rT-c>$;k(1TGtR^5K%gd6?72CQ!_Wc45qcyz)6SQ4#CRGab}id
zr2#9>if>|w=(+g(Bnmk>HR0y7fVp>lEpfh)*WBN+J63K8y<1^ff4v9H_x}1yAP9fDzL+=Yt9$59MDQai-Th)7dzjsi}
zL_*kO0edMAjanczKPm{0BMKXTF(r}1XY_^_eEn8kffm=$1G*Fn`B`xmsAi9|ca9`sp1
z#R@oYOq04}*mcWf7nMm4IXJ&nQFA@0YPPzoV1ET&=D*?aSmbyNEF^Dt{Nkt^G^iAv2!4>arYRD?Pc
zT?Wn73?z0nVM!#QxwVn*4*mbIlx=3?;W8z8eRh?VjiJWsxPrm6MLaTqLvQKeU!Gng
zyW9TMr#1&wAH7B5y@VC~x_f#|4jn`DP9+`bJ@g*cSbWU|k*@=U0mnLr+z4H)fUOtCI0Z8#&@iwG?Ewq3$vLi)
zWy^^!+`xK%Hwg@09VpGe5?GRl8)$wH>Q=hyeG&zZJ?}KN*mGdjJn{CG2bPi;a9}mr
zA*dGzOFF#JILFy(qFG*i1g4mn}RBOtp^m4nkrF&*wy=Q(=_R>O^MBlrDHlH;$
z2|xs?6&<0h$`SNK8pqS}aL&3EJQf66FxLzXaFTH}_dmCu;rg6{MSfN{?I}F5_M~T!dz7DjQv+V^=hXW1
z7Qejn+WB!=)fr7y-plzyWmHRx|bQ>qfQA%2K)snM?35|ZFp|7gt
zJeZmJ<{&n-vC(#{Gx)(zP)0%bCOZy077~1EKvGNd*q@tsA;tHV7}Hal#osTmD}7Nv
zwYKa&=XNEYpt1`>&MMiNl9@oX$`^X*g(qJAn{-ZG2_qkWtc1YVM2!^%31)@UL|x@O
zkpjl{UmPvCmkEPg{tB&DGq
zND0NU9cEL2ZwN5(=<@tYZyX%EG&E3kUQ-dNa#S#ZWPi@G;F4uz-lG
zzM1f!te~(q%ih`=N;fun*xL4m?_e{MgeXwz?lVtoam;RC2
zj3)hA+2fHn^Vp9%3g=I>imQ&9UVan)M(Kn=XTHQ`;Z>iZ=h+VYa}9UqQk9G%+M(;O
z#}lav$@YYYO%1-o2DyHOhTulWg(?xn4Rbpf^SulDRR=+NrxiL1hJU%;kAV`bYiPwR
z5KtY3GH#-Rgb+$Pseg4;^!y4`Y63muYU@|i;wPG5s;Urgyo(9(_~Xl5#OJhP
z^w!v+)|$_>Oy}P!G3nQvrnMS(UJ=k1keUj^?X!ki4}xG4siNW$BK!&p^8f0eaVQmU
z|KM?Ool)AHxur7?FRY(^6YCeGMa|2)F73mefxCkks~40|UNLhrJCv{Yirg!3I-$U~
z?`a<+e~N<0I0nNKTxMXV7`C5~B$LUX*TG=JuG&t|1tXrveDn);%4{ue
znCVG2Hwq!h70lZPNct>uiYULj&lTO%47$I$q)?9ttjbt`HNW&biB&a0=uoA;m~KKX
z)PeAn5Q3_~ej(IahAH&}drT9hOe@`SC_8#@s
zgq|mO^BJVOo<8_|Ot9po{0}pN$1p)nCkFTI*LT=|;tKw+T6N+W{oVB9`1>OT7vj;L
z+m*MXOqi2>`2T~Y`JbO#RrXM&Nd%P@%2@8P@(}I9v5>OBcgxizxtjr(L5J0l-hZ
z?cZfgoQ?&s&8#T^RxY1EXDA@?DnFUqaB}cfSsu=sFH_(lKm;f!z@yB^K*|7g0LM5^
z_y>&LUrQi8|MRm;&!)(Nd1(z()+B<=FQc;Mv-@4hV)7|YPIr!D`h)z_n58c7HKp;1
zRauly<`FbqHAu1Hr0J83037V&qPXH{>Gx7?svK;a9A6y8vZ$3Ilu26}
z6YUh?14eu*;sYe?UecVzB=SpULtJ~}hzf>nmDtw1Nw+I%m#cZXa(dA*j{|?v1=vei8IMrG(TOS_7v8Q2u(*mX%C&tjg;b=-%LiU|
zJrPkxV_x0GuGPFq-*b6zaYVi6!aVG(Yv%w)Zm4Gc!S%@Jd-J#TKC$_%IBC_1OY|R)
zuhv{y`~&z8aV;OOtrq=oA@icTR)eZ1el0Ox;59v{#sdLBM9IM{>_}YTRzxD
ztFYdiGHMFubqxIjnE2e6`|7dO_3p;M?gnrpkv8Q6j%Qim$c)#_mrl?4AYExJJ(cC$))7Z?4du
zMgRE5RJj}a_r{?aVo|@pnZ&D>=u2b3!Jj+BIY?%jOiU5Iw6Pvv;EqX?{^
z3W#$_oNp5d4BV9zNEIrRefSF@Bge%@Ca&86wwbC@g%zja?4h5xdSw=(_NQJ7Qq$sJ
z!r^Z|H0$nrO}bdQ(M`CcD`Fmz+bmaQIK$gqw>!Td$>#EsrN|4i1}*88_LcMc<2zz`
zcS%3Wsw+kXZIrM@d
zmg|*Z5s51@A2N7vH#9Q
Z&FjYt{Q-av1aPzp*8k4KrTS;)KLDkZ=;r_c

literal 0
HcmV?d00001

diff --git "a/documents/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/\346\227\240\347\275\221\347\273\234\347\216\257\345\242\203\344\270\213\351\203\250\347\275\262\346\214\207\345\215\227.md" "b/documents/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/\346\227\240\347\275\221\347\273\234\347\216\257\345\242\203\344\270\213\351\203\250\347\275\262\346\214\207\345\215\227.md"
index ebd75b3c0..58fda3ef2 100644
--- "a/documents/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/\346\227\240\347\275\221\347\273\234\347\216\257\345\242\203\344\270\213\351\203\250\347\275\262\346\214\207\345\215\227.md"
+++ "b/documents/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/\346\227\240\347\275\221\347\273\234\347\216\257\345\242\203\344\270\213\351\203\250\347\275\262\346\214\207\345\215\227.md"
@@ -2,7 +2,7 @@
 
 **版本信息**  
 当前版本:v0.9.6  
-更新日期:2025年6月16日
+更新日期:2025年7月1日
 
 ## 产品概述
 
@@ -227,18 +227,28 @@ sudo ./deploy.sh
 **运维命令**:
 
 ```bash
-# 查看组件日志
-kubectl logs $pod_name -n euler-copilot
-
 # 查看服务状态
 kubectl get pod -n euler-copilot
 
+# 查看组件日志
+kubectl logs $pod_name -n euler-copilot
+
 # 大模型配置修改
 cd /home/euler-copilot-framework/deploy/chart/euler-copilot
 vim values.yaml
-
-# 更新服务
 helm upgrade euler-copilot -n euler-copilot .
+
+# 集群事件检查
+kubectl get events -n euler-copilot
+
+# 镜像查看
+k3s crictl images
+
+# 镜像卸载
+k3s crictl rmi $image_id
+
+# 镜像导入
+k3s ctr image import $image_tar
 ```
 
 ## 验证安装
@@ -262,12 +272,13 @@ helm upgrade euler-copilot -n euler-copilot .
 
 2. **配置资产库**
    - 点击对话
+   - 点击模型
+   ![点击模型配置配置](./pictures/模型配置位置.png)
    - 点击知识库
    ![点击资产库配置](./pictures/资产库配置位置.png)
    - 选择资产库
    ![选择资产库](./pictures/选择资产库.png)
 
-
 ---
 
 ## 附录
@@ -412,7 +423,7 @@ curl -k -X POST "http://localhost:9988/kb/get_answer" \
      -d '{"question": "您的问题", "kb_sn": "default_test", "fetch_source": true}'
 ```
 
-#### 3. 解决 `helm upgrade` 错误
+#### 3. 解决 helm upgrade 错误
 
 ```text
 Error: UPGRADE FAILED: Kubernetes cluster unreachable
@@ -470,54 +481,69 @@ curl -k -X POST http://localhost:11434/v1/embeddings \
 
 #### 8. 生成证书
 
+为了生成自签名证书,首先下载 [mkcert](https://github.com/FiloSottile/mkcert/releases)工具,然后运行以下命令:
+
 ```bash
 mkcert -install
 mkcert example.com 
+```
+
+最后,将生成的证书和私钥拷贝到 values.yaml 中, 并应用至 Kubernetes Secret.
 
-# 编辑配置文件
+```bash
 vim /home/euler-copilot-framework_openeuler/deploy/chart_ssl/traefik-secret.yaml
+```
 
-# 应用配置
+```bash
 kubectl apply -f traefik-secret.yaml
 ```
 
-#### 9. 问题排查方法
-
-1. **集群事件检查**:
+#### 9. 资源不足时,所有pod状态pending?
 
    ```bash
-   kubectl get events -n euler-copilot
+   kubectl top nodes
+   df -h  # 确保磁盘空间 >30%
    ```
 
-2. **镜像状态验证**:
+  参考该链接挂载空间较大的磁盘[How to move k3s data to another location](https://mrkandreev.name/snippets/how_to_move_k3s_data_to_another_location/)
 
-   ```bash
-   k3s crictl images
-   ```
+#### 10. 无法插网线的离线环境安装k3s后启动失败?
 
-3. **日志审查**:
+k3s无法找到route和ipv6_route,报错:"no default routes found in '/proc/net/route' or '\proc/net\ipv6_route'",无法使用k3s,可以通过创建创建虚拟网络接口配置解决
 
-   ```bash
-   kubectl logs  -n euler-copilot
-   ```
+**解决办法:**
 
-4. **资源评估**:
+```bash
+# 注意:服务器器显示时间需要和当前网络时间保持一致
+mkdir -p /etc/systemd/system/k3s.service.d/
+cat <30%
-   ```
+#### 11. x86架构且CPU型号E系列的服务器知识库文件解析至71%失败?
 
-5. **版本兼容性检查**:
+opengauss数据库的指令集加速特性默认开启,该特性约束为docker镜像的opgs的x86需要支持AVX512指令集,arm需要支持neon指令集。由于x86架构且CPU型号E系列的服务器是低功耗x86计算,仅支持AVX2指令集,不支持AVX512,导致数据插入出现报错。
 
-   ```bash
-   k3s -v  # 需 >= v1.30.2
-   ```
+**解决办法:**
+由于不加指令集性能会受限,x86环境下如果环境不支持指令集加速,使用l2距离构建索引并查询,需要单独构建rag镜像,不能确保准确率是否会下降,建议更换支持AVX512的CPU型号进行部署。
+
+```bash
+# 查看是否支持avx512:
+cat /proc/cpuinfo| grep avx512
+lscpu | grep -i avx
+```
 
-6. **配置验证**:
+#### 12. 工作流理解上下文耗费时间很久?
 
-   ```bash
-   cd euler-copilot-framework/deploy/chart/euler_copilot
-   vim values.yaml
-   helm upgrade euler-copilot -n euler-copilot.
-   ```
+大模型使用带reasoning的模型,例如deepseek-r1-distill-qwen32B
+
+**解决办法:**
+
+更换无思考过程的模型,不支持使用Deepseek R1系列和Qwen3系列
diff --git "a/documents/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/\347\275\221\347\273\234\347\216\257\345\242\203\344\270\213\351\203\250\347\275\262\346\214\207\345\215\227.md" "b/documents/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/\347\275\221\347\273\234\347\216\257\345\242\203\344\270\213\351\203\250\347\275\262\346\214\207\345\215\227.md"
index e2548da1e..98c4cb586 100644
--- "a/documents/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/\347\275\221\347\273\234\347\216\257\345\242\203\344\270\213\351\203\250\347\275\262\346\214\207\345\215\227.md"
+++ "b/documents/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/\347\275\221\347\273\234\347\216\257\345\242\203\344\270\213\351\203\250\347\275\262\346\214\207\345\215\227.md"
@@ -2,7 +2,7 @@
 
 **版本信息**  
 当前版本:v0.9.6  
-更新日期:2025年6月16日
+更新日期:2025年7月1日
 
 ## 产品概述
 
@@ -186,16 +186,28 @@ sudo ./deploy.sh
 **运维命令**:
 
 ```bash
-# 查看组件日志
-kubectl logs $pod_name$ -n euler-copilot
-
 # 查看服务状态
 kubectl get pod -n euler-copilot
 
+# 查看组件日志
+kubectl logs $pod_name -n euler-copilot
+
 # 大模型配置修改
 cd /home/euler-copilot-framework/deploy/chart/euler-copilot
 vim values.yaml
 helm upgrade euler-copilot -n euler-copilot .
+
+# 集群事件检查
+kubectl get events -n euler-copilot
+
+# 镜像查看
+k3s crictl images
+
+# 镜像卸载
+k3s crictl rmi $image_id
+
+# 镜像导入
+k3s ctr image import $image_tar
 ```
 
 ## 验证安装
@@ -219,6 +231,8 @@ helm upgrade euler-copilot -n euler-copilot .
 
 2. **配置资产库**
    - 点击对话
+   - 点击模型
+   ![点击模型配置配置](./pictures/模型配置位置.png)
    - 点击知识库
    ![点击资产库配置](./pictures/资产库配置位置.png)
    - 选择资产库
@@ -337,9 +351,9 @@ helm upgrade euler-copilot -n euler-copilot .
 
 参考:[昇腾镜像仓库](https://www.hiascend.com/developer/ascendhub) | [NPU部署案例](./NPU推理服务器部署指南.md)
 
-## FAQ
+### FAQ
 
-### 1. 解决 Hugging Face 连接错误
+#### 1. 解决 Hugging Face 连接错误
 
 ```bash
 urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 101] Network is unreachable
@@ -358,7 +372,7 @@ urllib3.exceptions.NewConnectionError: > /root/.bashrc
 source /root/.bashrc
 ```
 
-### 4. 查看 Pod 日志失败
+#### 4. 查看 Pod 日志失败
 
 **解决方案**:
 
@@ -387,7 +401,7 @@ source /root/.bashrc
 cat /etc/systemd/system/k3s.service.env  # 确认 no_proxy 包含本机 IP
 ```
 
-### 5. GPU 环境流式回复问题
+#### 5. GPU 环境流式回复问题
 
 **解决方案**:
 
@@ -396,7 +410,7 @@ pip install pydantic==1.10.13
 # 请求中将 "stream": true 改为 false
 ```
 
-### 6. sglang 模型部署
+#### 6. sglang 模型部署
 
 ```bash
 conda create --prefix=/root/py310 python==3.10.14
@@ -414,7 +428,7 @@ python -m sglang.launch_server \
     --tp 8
 ```
 
-### 7. 获取 Embedding
+#### 7. 获取 Embedding
 
 ```bash
 curl -k -X POST http://localhost:11434/v1/embeddings \
@@ -422,56 +436,71 @@ curl -k -X POST http://localhost:11434/v1/embeddings \
      -d '{"input": "The food was delicious...", "model": "bge-m3", "encoding_format": "float"}'
 ```
 
-### 8. 生成证书
+#### 8. 生成证书
+
+为了生成自签名证书,首先下载 [mkcert](https://github.com/FiloSottile/mkcert/releases)工具,然后运行以下命令:
 
 ```bash
 mkcert -install
 mkcert example.com 
+```
+
+最后,将生成的证书和私钥拷贝到 values.yaml 中, 并应用至 Kubernetes Secret.
 
-# 编辑配置文件
+```bash
 vim /home/euler-copilot-framework_openeuler/deploy/chart_ssl/traefik-secret.yaml
+```
 
-# 应用配置
+```bash
 kubectl apply -f traefik-secret.yaml
 ```
 
-### 9. 问题排查方法
-
-1. **集群事件检查**:
+#### 9. 资源不足时,所有pod状态pending?
 
    ```bash
-   kubectl get events -n euler-copilot
+   kubectl top nodes
+   df -h  # 确保磁盘空间 >30%
    ```
 
-2. **镜像状态验证**:
+  参考该链接挂载空间较大的磁盘[How to move k3s data to another location](https://mrkandreev.name/snippets/how_to_move_k3s_data_to_another_location/)
 
-   ```bash
-   k3s crictl images
-   ```
+#### 10. 无法插网线的离线环境安装k3s后启动失败?
 
-3. **日志审查**:
+k3s无法找到route和ipv6_route,报错:"no default routes found in '/proc/net/route' or '\proc/net\ipv6_route'",无法使用k3s,可以通过创建创建虚拟网络接口配置解决
 
-   ```bash
-   kubectl logs  -n euler-copilot
-   ```
+**解决办法:**
 
-4. **资源评估**:
+```bash
+# 注意:服务器器显示时间需要和当前网络时间保持一致
+mkdir -p /etc/systemd/system/k3s.service.d/
+cat <30%
-   ```
+#### 11. x86架构且CPU型号E系列的服务器知识库文件解析至71%失败?
 
-5. **版本兼容性检查**:
+opengauss数据库的指令集加速特性默认开启,该特性约束为docker镜像的opgs的x86需要支持AVX512指令集,arm需要支持neon指令集。由于x86架构且CPU型号E系列的服务器是低功耗x86计算,仅支持AVX2指令集,不支持AVX512,导致数据插入出现报错。
 
-   ```bash
-   k3s -v  # 需 >= v1.30.2
-   ```
+**解决办法:**
+由于不加指令集性能会受限,x86环境下如果环境不支持指令集加速,使用l2距离构建索引并查询,需要单独构建rag镜像,不能确保准确率是否会下降,建议更换支持AVX512的CPU型号进行部署。
 
-6. **配置验证**:
+```bash
+# 查看是否支持avx512:
+cat /proc/cpuinfo| grep avx512
+lscpu | grep -i avx
+```
 
-   ```bash
-   cd /home/euler-copilot-framework/deploy/chart/euler_copilot
-   vim values.yaml
-   helm upgrade euler-copilot -n euler-copilot .
-   ```
+#### 12. 工作流理解上下文耗费时间很久?
+
+大模型使用带reasoning的模型,例如deepseek-r1-distill-qwen32B
+
+**解决办法:**
+
+更换无思考过程的模型,不支持使用Deepseek R1系列和Qwen3系列
-- 
Gitee


From 99db7adf627605a3aaed2a19c5c74b0e959196f9 Mon Sep 17 00:00:00 2001
From: z30057876 
Date: Tue, 1 Jul 2025 19:53:48 +0800
Subject: [PATCH 5/8] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E9=83=A8=E7=BD=B2?=
 =?UTF-8?q?=E6=96=87=E4=BB=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../authhub/configs/backend/copy-config.yml   | 19 --------------
 .../backend/authhub-backend-config.yaml       | 20 ++++++++++++++-
 .../authhub/templates/web/authhub-web.yaml    | 23 ++---------------
 .../databases/templates/minio/minio.yaml      | 13 ++--------
 .../configs/framework/config.toml             |  2 +-
 .../configs/framework/copy-config.yaml        | 10 --------
 .../chart/euler_copilot/configs/rag-web/.env  |  3 ---
 .../configs/rag/copy-config.yaml              | 19 --------------
 deploy/chart/euler_copilot/configs/web/.env   |  3 ---
 .../euler_copilot/templates/cornjob.yaml      |  0
 .../templates/framework/framework-config.yaml | 11 +++++++-
 .../framework/framework-storage.yaml          |  4 +--
 .../templates/rag-web/rag-web-config.yaml     |  3 ++-
 .../templates/rag-web/rag-web.yaml            | 21 +---------------
 .../templates/rag/rag-config.yaml             | 20 ++++++++++++++-
 .../templates/web/web-config.yaml             |  3 ++-
 .../euler_copilot/templates/web/web.yaml      | 25 +++----------------
 deploy/chart/euler_copilot/values.yaml        | 12 ++-------
 18 files changed, 65 insertions(+), 146 deletions(-)
 delete mode 100644 deploy/chart/authhub/configs/backend/copy-config.yml
 delete mode 100644 deploy/chart/euler_copilot/configs/framework/copy-config.yaml
 delete mode 100644 deploy/chart/euler_copilot/configs/rag-web/.env
 delete mode 100644 deploy/chart/euler_copilot/configs/rag/copy-config.yaml
 delete mode 100644 deploy/chart/euler_copilot/configs/web/.env
 delete mode 100644 deploy/chart/euler_copilot/templates/cornjob.yaml

diff --git a/deploy/chart/authhub/configs/backend/copy-config.yml b/deploy/chart/authhub/configs/backend/copy-config.yml
deleted file mode 100644
index 25f33b9b2..000000000
--- a/deploy/chart/authhub/configs/backend/copy-config.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-copy:
-  - from: /config/aops-config.yml
-    to: /config-rw/aops-config.yml
-    mode:
-      uid: 0
-      gid: 0
-      mode: "0o650"
-    secrets:
-      - /db-secrets
-      - /authhub-secrets
-  - from: /config/conf.d/authhub.yml
-    to: /config-rw/conf.d/authhub.yml
-    mode:
-      uid: 0
-      gid: 0
-      mode: "0o650"
-    secrets:
-      - /db-secrets
-      - /authhub-secrets
diff --git a/deploy/chart/authhub/templates/backend/authhub-backend-config.yaml b/deploy/chart/authhub/templates/backend/authhub-backend-config.yaml
index 0164dcbb9..0509245f7 100644
--- a/deploy/chart/authhub/templates/backend/authhub-backend-config.yaml
+++ b/deploy/chart/authhub/templates/backend/authhub-backend-config.yaml
@@ -10,5 +10,23 @@ data:
   authhub.yml: |-
 {{ tpl (.Files.Get "configs/backend/authhub.yml") . | indent 4 }}
   copy-config.yml: |-
-{{ tpl (.Files.Get "configs/backend/copy-config.yml") . | indent 4 }}
+    copy:
+      - from: /config/aops-config.yml
+        to: /config-rw/aops-config.yml
+        mode:
+          uid: 0
+          gid: 0
+          mode: "0o650"
+        secrets:
+          - /db-secrets
+          - /authhub-secrets
+      - from: /config/conf.d/authhub.yml
+        to: /config-rw/conf.d/authhub.yml
+        mode:
+          uid: 0
+          gid: 0
+          mode: "0o650"
+        secrets:
+          - /db-secrets
+          - /authhub-secrets
 {{- end -}}
diff --git a/deploy/chart/authhub/templates/web/authhub-web.yaml b/deploy/chart/authhub/templates/web/authhub-web.yaml
index 0523b6dfc..91bec2d9b 100644
--- a/deploy/chart/authhub/templates/web/authhub-web.yaml
+++ b/deploy/chart/authhub/templates/web/authhub-web.yaml
@@ -6,32 +6,13 @@ metadata:
   name: authhub-web-service
   namespace: {{ .Release.Namespace }}
 spec:
-  type: {{ default "ClusterIP" .Values.authhub.web.service.type }}
+  type: {{ default "NodePort" .Values.authhub.web.service.type }}
   selector:
     app: authhub-web
   ports:
     - port: 8000
       targetPort: 8000
-      nodePort: {{ default nil .Values.authhub.web.service.nodePort }}
-
----
-apiVersion: networking.k8s.io/v1
-kind: Ingress
-metadata:
-  name: authhub-web-ingress
-  namespace: {{ .Release.Namespace }}
-spec:
-  rules:
-  - host: {{ default "authhub.eulercopilot.local" .Values.domain.authhub }}
-    http:
-      paths:
-      - path: {{ default "/" .Values.authhub.web.ingress.prefix }}
-        pathType: Prefix
-        backend:
-          service:
-            name: authhub-web-service
-            port:
-              number: 8000
+      nodePort: {{ default 30081 .Values.authhub.web.service.nodePort }}
 
 ---
 apiVersion: apps/v1
diff --git a/deploy/chart/databases/templates/minio/minio.yaml b/deploy/chart/databases/templates/minio/minio.yaml
index 354a0400c..185883b62 100644
--- a/deploy/chart/databases/templates/minio/minio.yaml
+++ b/deploy/chart/databases/templates/minio/minio.yaml
@@ -10,14 +10,9 @@ spec:
   selector:
     app: minio
   ports:
-    - name: minio-data
-      port: 9000
+    - port: 9000
       targetPort: 9000
       nodePort: {{ default nil .Values.databases.minio.service.dataNodePort }}
-    - name: minio-console
-      port: 9001
-      targetPort: 9001
-      nodePort: {{ default nil .Values.databases.minio.service.consoleNodePort }}
 
 ---
 apiVersion: apps/v1
@@ -48,11 +43,7 @@ spec:
             - "--console-address"
             - ":9001"
           ports:
-            - name: minio-data
-              containerPort: 9000
-              protocol: TCP
-            - name: minio-console
-              containerPort: 9001
+            - containerPort: 9000
               protocol: TCP
           livenessProbe:
             httpGet:
diff --git a/deploy/chart/euler_copilot/configs/framework/config.toml b/deploy/chart/euler_copilot/configs/framework/config.toml
index 603d7f88e..929cc6a56 100644
--- a/deploy/chart/euler_copilot/configs/framework/config.toml
+++ b/deploy/chart/euler_copilot/configs/framework/config.toml
@@ -55,7 +55,7 @@ backend = '{{ default "ollama" .Values.models.functionCall.backend }}'
 endpoint = '{{ default .Values.models.answer.endpoint .Values.models.functionCall.endpoint }}'
 model = '{{ default .Values.models.answer.name .Values.models.functionCall.name }}'
 api_key = '{{ default .Values.models.answer.key .Values.models.functionCall.key }}'
-max_tokens = '{{ default .Values.models.answer.maxTokens .Values.models.functionCall.maxTokens }}'
+max_tokens = {{ default .Values.models.answer.maxTokens .Values.models.functionCall.maxTokens }}
 temperature = {{ default 0.7 .Values.models.functionCall.temperature }}
 
 [check]
diff --git a/deploy/chart/euler_copilot/configs/framework/copy-config.yaml b/deploy/chart/euler_copilot/configs/framework/copy-config.yaml
deleted file mode 100644
index e06158dff..000000000
--- a/deploy/chart/euler_copilot/configs/framework/copy-config.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-copy:
-  - from: /config/config.toml
-    to: /config-rw/config.toml
-    mode:
-      uid: 0
-      gid: 0
-      mode: "0o650"
-    secrets:
-      - /db-secrets
-      - /system-secrets
diff --git a/deploy/chart/euler_copilot/configs/rag-web/.env b/deploy/chart/euler_copilot/configs/rag-web/.env
deleted file mode 100644
index 77fedc8dc..000000000
--- a/deploy/chart/euler_copilot/configs/rag-web/.env
+++ /dev/null
@@ -1,3 +0,0 @@
-PROD=enabled
-SERVER_NAME={{ default "witchaind.eulercopilot.local" .Values.domain.witchaind }}
-DATA_CHAIN_BACEND_URL=http://rag-service.{{ .Release.Namespace }}.svc.cluster.local:9988
diff --git a/deploy/chart/euler_copilot/configs/rag/copy-config.yaml b/deploy/chart/euler_copilot/configs/rag/copy-config.yaml
deleted file mode 100644
index 01abd3090..000000000
--- a/deploy/chart/euler_copilot/configs/rag/copy-config.yaml
+++ /dev/null
@@ -1,19 +0,0 @@
-copy:
-  - from: /config/.env
-    to: /config-rw/.env
-    mode:
-      uid: 1001
-      gid: 1001
-      mode: "0o650"
-    secrets:
-      - /db-secrets
-      - /system-secrets
-  - from: /config/.env-sql
-    to: /config-rw/.env-sql
-    mode:
-      uid: 1001
-      gid: 1001
-      mode: "0o650"
-    secrets:
-      - /db-secrets
-      - /system-secrets
diff --git a/deploy/chart/euler_copilot/configs/web/.env b/deploy/chart/euler_copilot/configs/web/.env
deleted file mode 100644
index 6a480d4a3..000000000
--- a/deploy/chart/euler_copilot/configs/web/.env
+++ /dev/null
@@ -1,3 +0,0 @@
-PROD=enabled
-SERVER_NAME={{ default "www.eulercopilot.local" .Values.domain.euler_copilot }}
-FRAMEWORK_URL=http://framework-service.{{ .Release.Namespace }}.svc.cluster.local:8002
\ No newline at end of file
diff --git a/deploy/chart/euler_copilot/templates/cornjob.yaml b/deploy/chart/euler_copilot/templates/cornjob.yaml
deleted file mode 100644
index e69de29bb..000000000
diff --git a/deploy/chart/euler_copilot/templates/framework/framework-config.yaml b/deploy/chart/euler_copilot/templates/framework/framework-config.yaml
index 7fff831b0..328803d4f 100644
--- a/deploy/chart/euler_copilot/templates/framework/framework-config.yaml
+++ b/deploy/chart/euler_copilot/templates/framework/framework-config.yaml
@@ -8,5 +8,14 @@ data:
   config.toml: |-
 {{ tpl (.Files.Get "configs/framework/config.toml") . | indent 4 }}
   copy-config.yaml: |-
-{{ tpl (.Files.Get "configs/framework/copy-config.yaml") . | indent 4 }}
+    copy:
+      - from: /config/config.toml
+        to: /config-rw/config.toml
+        mode:
+          uid: 0
+          gid: 0
+          mode: "0o650"
+        secrets:
+          - /db-secrets
+          - /system-secrets
 {{- end -}}
\ No newline at end of file
diff --git a/deploy/chart/euler_copilot/templates/framework/framework-storage.yaml b/deploy/chart/euler_copilot/templates/framework/framework-storage.yaml
index 78119e43f..b6b97ee83 100644
--- a/deploy/chart/euler_copilot/templates/framework/framework-storage.yaml
+++ b/deploy/chart/euler_copilot/templates/framework/framework-storage.yaml
@@ -8,11 +8,11 @@ metadata:
 spec:
   storageClassName: {{ default "local-path" .Values.globals.storageClass }}
   capacity:
-    storage: {{ default "5Gi" .Values.storage.frameworkSemantics.size }}
+    storage: {{ default "10Gi" .Values.storage.frameworkSemantics.size }}
   accessModes:
     - ReadWriteOnce
   hostPath:
-    path: {{ default "/home/eulercopilot/semantics" .Values.storage.frameworkSemantics.path }}
+    path: {{ default "/var/lib/eulercopilot" .Values.storage.frameworkSemantics.path }}
 
 ---
 apiVersion: v1
diff --git a/deploy/chart/euler_copilot/templates/rag-web/rag-web-config.yaml b/deploy/chart/euler_copilot/templates/rag-web/rag-web-config.yaml
index ebd01c6de..75cf60265 100644
--- a/deploy/chart/euler_copilot/templates/rag-web/rag-web-config.yaml
+++ b/deploy/chart/euler_copilot/templates/rag-web/rag-web-config.yaml
@@ -6,5 +6,6 @@ metadata:
   namespace: {{ .Release.Namespace }}
 data:
   .env: |-
-{{ tpl (.Files.Get "configs/rag-web/.env") . | indent 4 }}
+    PROD=enabled
+    DATA_CHAIN_BACEND_URL=http://rag-service.{{ .Release.Namespace }}.svc.cluster.local:9988
 {{- end -}}
diff --git a/deploy/chart/euler_copilot/templates/rag-web/rag-web.yaml b/deploy/chart/euler_copilot/templates/rag-web/rag-web.yaml
index 8b3defa84..fd9daf537 100644
--- a/deploy/chart/euler_copilot/templates/rag-web/rag-web.yaml
+++ b/deploy/chart/euler_copilot/templates/rag-web/rag-web.yaml
@@ -14,25 +14,6 @@ spec:
       targetPort: 9888
       nodePort: {{ default nil .Values.euler_copilot.rag_web.service.nodePort }}
 
----
-apiVersion: networking.k8s.io/v1
-kind: Ingress
-metadata:
-  name: rag-web-ingress
-  namespace: {{ .Release.Namespace }}
-spec:
-  rules:
-  - host: {{ default "www.eulercopilot.local" .Values.domain.euler_copilot }}
-    http:
-      paths:
-      - path: {{ default "/witchaind" .Values.euler_copilot.rag_web.ingress.prefix }}
-        pathType: Prefix
-        backend:
-          service:
-            name: rag-web-service
-            port:
-              number: 9888
-
 ---
 apiVersion: apps/v1
 kind: Deployment
@@ -77,7 +58,7 @@ spec:
               name: rag-web-config-volume
             - mountPath: /var/lib/nginx/tmp
               name: rag-web-tmp
-            - mountPath: /home/eulercopilot/.env
+            - mountPath: /opt/.env
               name: rag-web-env-volume
               subPath: .env
           resources:
diff --git a/deploy/chart/euler_copilot/templates/rag/rag-config.yaml b/deploy/chart/euler_copilot/templates/rag/rag-config.yaml
index 25bf01df1..7ffc922d1 100644
--- a/deploy/chart/euler_copilot/templates/rag/rag-config.yaml
+++ b/deploy/chart/euler_copilot/templates/rag/rag-config.yaml
@@ -10,5 +10,23 @@ data:
   .env-sql: |-
 {{ tpl (.Files.Get "configs/rag/.env-sql") . | indent 4}}
   copy-config.yaml: |-
-{{ tpl (.Files.Get "configs/rag/copy-config.yaml") . | indent 4}}
+    copy:
+      - from: /config/.env
+        to: /config-rw/.env
+        mode:
+          uid: 1001
+          gid: 1001
+          mode: "0o650"
+        secrets:
+          - /db-secrets
+          - /system-secrets
+      - from: /config/.env-sql
+        to: /config-rw/.env-sql
+        mode:
+          uid: 1001
+          gid: 1001
+          mode: "0o650"
+        secrets:
+          - /db-secrets
+          - /system-secrets
 {{- end -}}
\ No newline at end of file
diff --git a/deploy/chart/euler_copilot/templates/web/web-config.yaml b/deploy/chart/euler_copilot/templates/web/web-config.yaml
index ee47374af..1793023e1 100644
--- a/deploy/chart/euler_copilot/templates/web/web-config.yaml
+++ b/deploy/chart/euler_copilot/templates/web/web-config.yaml
@@ -6,5 +6,6 @@ metadata:
   namespace: {{ .Release.Namespace }}
 data:
   .env: |-
-{{ tpl (.Files.Get "configs/web/.env") . | indent 4 }}
+    RAG_WEB_URL=http://rag-web-service.{{ .Release.Namespace }}.svc.cluster.local:9888
+    FRAMEWORK_URL=http://framework-service.{{ .Release.Namespace }}.svc.cluster.local:8002
 {{- end -}}
\ No newline at end of file
diff --git a/deploy/chart/euler_copilot/templates/web/web.yaml b/deploy/chart/euler_copilot/templates/web/web.yaml
index adc214b3d..c20c045dd 100644
--- a/deploy/chart/euler_copilot/templates/web/web.yaml
+++ b/deploy/chart/euler_copilot/templates/web/web.yaml
@@ -6,32 +6,13 @@ metadata:
   name: web-service
   namespace: {{ .Release.Namespace }}
 spec:
-  type: {{ default "ClusterIP" .Values.euler_copilot.web.service.type }}
+  type: {{ default "NodePort" .Values.euler_copilot.web.service.type }}
   selector:
     app: web
   ports:
     - port: 8080
       targetPort: 8080
-      nodePort: {{ default nil .Values.euler_copilot.web.service.nodePort }}
-
----
-apiVersion: networking.k8s.io/v1
-kind: Ingress
-metadata:
-  name: web-ingress
-  namespace: {{ .Release.Namespace }}
-spec:
-  rules:
-  - host: {{ default "www.eulercopilot.local" .Values.domain.euler_copilot }}
-    http:
-      paths:
-      - path: {{ default "/" .Values.euler_copilot.web.ingress.prefix }}
-        pathType: Prefix
-        backend:
-          service:
-            name: web-service
-            port:
-              number: 8080
+      nodePort: {{ default 30080 .Values.euler_copilot.web.service.nodePort }}
 
 ---
 apiVersion: apps/v1
@@ -76,7 +57,7 @@ spec:
               name: web-config-volume
             - mountPath: /var/lib/nginx/tmp
               name: web-tmp
-            - mountPath: /home/eulercopilot/.env
+            - mountPath: /opt/.env
               name: web-env-volume
               subPath: .env
             - mountPath: /usr/share/nginx/html/static
diff --git a/deploy/chart/euler_copilot/values.yaml b/deploy/chart/euler_copilot/values.yaml
index dbc61a83f..edf15b99d 100644
--- a/deploy/chart/euler_copilot/values.yaml
+++ b/deploy/chart/euler_copilot/values.yaml
@@ -115,13 +115,9 @@ euler_copilot:
     # Service设置
     service:
       # Service类型,例如NodePort
-      type:
+      type: NodePort
       # 当类型为NodePort时,填写主机的端口号
-      nodePort:
-    # Ingress设置
-    ingress:
-      # URI前缀,默认为/
-      prefix:
+      nodePort: 30080
   
   rag_web:
     # [必填] 是否部署RAG Web前端用户界面
@@ -139,10 +135,6 @@ euler_copilot:
       type:
       # 当类型为NodePort时,填写主机的端口号
       nodePort:
-    # Ingress设置
-    ingress:
-      # URI前缀;默认为/
-      prefix:
 
   rag:
     # [必填] 是否部署RAG后端服务
-- 
Gitee


From 136fef1fb9417ac1ddd3c747f9cb11ab89b857b3 Mon Sep 17 00:00:00 2001
From: zengxianghuai 
Date: Fri, 4 Jul 2025 17:10:00 +0800
Subject: [PATCH 6/8] =?UTF-8?q?=E5=A2=9E=E5=8A=A0choice=E5=B7=A5=E5=85=B7?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 apps/scheduler/call/choice/choice.py          |  68 +++++++-
 .../call/choice/condition_handler.py          | 162 ++++++++++++++++++
 apps/scheduler/call/choice/schema.py          |  69 ++++++++
 apps/scheduler/executor/step.py               |   2 +
 4 files changed, 293 insertions(+), 8 deletions(-)
 create mode 100644 apps/scheduler/call/choice/condition_handler.py

diff --git a/apps/scheduler/call/choice/choice.py b/apps/scheduler/call/choice/choice.py
index 574b3ceba..3dcc2b4d5 100644
--- a/apps/scheduler/call/choice/choice.py
+++ b/apps/scheduler/call/choice/choice.py
@@ -1,20 +1,72 @@
 # Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
 """使用大模型或使用程序做出判断"""
 
-from enum import Enum
+import logging
+from collections.abc import AsyncGenerator
+from typing import Any
 
-from apps.scheduler.call.core import CoreCall
-
-from .schema import ChoiceInput, ChoiceOutput
+from pydantic import Field
 
+from apps.scheduler.call.core import CoreCall
+from apps.schemas.enum_var import CallOutputType
+from apps.schemas.scheduler import (
+    CallError,
+    CallInfo,
+    CallOutputChunk,
+    CallVars,
+)
 
-class Operator(str, Enum):
-    """Choice工具支持的运算符"""
+from .condition_handler import ConditionHandler
+from .schema import (
+    ChoiceBranch,
+    ChoiceInput,
+    ChoiceOutput,
+)
 
-    pass
+logger = logging.getLogger(__name__)
 
 
 class Choice(CoreCall, input_model=ChoiceInput, output_model=ChoiceOutput):
     """Choice工具"""
 
-    pass
+    to_user: bool = Field(default=False)
+    choices: list[ChoiceBranch] = Field(description="分支", default=[])
+
+    @classmethod
+    def info(cls) -> CallInfo:
+        """返回Call的名称和描述"""
+        return CallInfo(name="Choice", description="使用大模型或使用程序做出判断")
+
+    async def _prepare_message(self, call_vars: CallVars) -> list[dict[str, Any]]:
+        """替换choices中的系统变量"""
+        for choice in self.choices:
+            for condition in choice.conditions:
+                step_id = condition.left.get("step_id")
+                if step_id:
+                    path = step_id + "/" + condition.left.value
+                    condition.left.value = self._extract_history_variables(path, call_vars.history)
+        return self.choices
+
+    async def _init(self, call_vars: CallVars) -> ChoiceInput:
+        """初始化Choice工具"""
+        return ChoiceInput(
+            choices=await self._prepare_message(call_vars),
+        )
+
+    async def _exec(self, input_data: dict[str, Any]) -> AsyncGenerator[CallOutputChunk, None]:
+        """执行Choice工具"""
+        # 解析输入数据
+        data = ChoiceInput(**input_data)
+        ret: CallOutputChunk=CallOutputChunk(
+            type=CallOutputType.DATA,
+            content=ChoiceOutput(
+                next_step=None,
+                message=None,
+            ).model_dump(exclude_none=True, by_alias=True),
+        )
+        condition_handler = ConditionHandler()
+        try:
+            ret.content = condition_handler.handler(data.choices)
+            yield ret
+        except Exception as e:
+            raise CallError(message=f"选择工具调用失败:{e!s}", data={}) from e
diff --git a/apps/scheduler/call/choice/condition_handler.py b/apps/scheduler/call/choice/condition_handler.py
new file mode 100644
index 000000000..ca98f7465
--- /dev/null
+++ b/apps/scheduler/call/choice/condition_handler.py
@@ -0,0 +1,162 @@
+# Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
+"""处理条件分支的工具"""
+
+import logging
+
+from pydantic import BaseModel
+
+from .schema import ChoiceBranch, ChoiceOutput, Condition, Logic, Operator, Type, Value
+
+logger = logging.getLogger(__name__)
+
+
+class ConditionHandler(BaseModel):
+    """条件分支处理器"""
+
+    def handler(self, choices: list[ChoiceBranch]) -> ChoiceOutput:
+        """处理条件"""
+        default_branch = [c for c in choices if c.is_default]
+
+        for choice in choices:
+            results = []
+            if choice.is_default:
+                continue
+            for condition in choice.conditions:
+                result = self._judge_condition(condition)
+                results.append(result)
+            if choice.logic == Logic.AND:
+                final_result = all(results)
+            elif choice.logic == Logic.OR:
+                final_result = any(results)
+
+            if final_result:
+                return ChoiceOutput(
+                    next_step=choice.branch_id,
+                    message=f"选择分支:{choice.branch_id}",
+                )
+
+        # 如果没有匹配的分支,选择默认分支
+        if default_branch:
+            return ChoiceOutput(
+                next_step=default_branch[0].branch_id,
+                message=f"选择默认分支:{default_branch[0].branch_id}",
+            )
+        return None
+
+    def _judge_condition(self, condition: Condition) -> bool:
+        """
+        判断条件是否成立。
+
+        Args:
+            condition (Condition): 'left', 'operator', 'right', 'type'
+
+        Returns:
+            bool
+
+        """
+        left = condition.left
+        operator = condition.operator
+        right = condition.right
+        value_type = condition.type
+
+        result = None
+        if value_type == Type.STRING:
+            result = self._judge_string_condition(left, operator, right)
+        elif value_type == Type.INT:
+            result = self._judge_int_condition(left, operator, right)
+        elif value_type == Type.BOOL:
+            result = self._judge_bool_condition(left, operator, right)
+        else:
+            logger.error("不支持的数据类型: %s", value_type)
+            msg = f"不支持的数据类型: {value_type}"
+            raise ValueError(msg)
+        return result
+
+    def _judge_string_condition(self, left: Value, operator: Operator, right: Value) -> bool:
+        """
+        判断字符串类型的条件。
+
+        Args:
+            left (Value): 左值,包含 'value' 键。
+            operator (Operator): 操作符
+            right (Value): 右值,包含 'value' 键。
+
+        Returns:
+            bool
+
+        """
+        left_value = left.value
+        right_value = right.value
+        result = False
+        if operator == Operator.EQUAL:
+            result = left_value == right_value
+        elif operator == Operator.NEQUAL:
+            result = left_value != right_value
+        elif operator == Operator.GREAT:
+            result = len(left_value) > len(right_value)
+        elif operator == Operator.GREAT_EQUALS:
+            result = len(left_value) >= len(right_value)
+        elif operator == Operator.LESS:
+            result = len(left_value) < len(right_value)
+        elif operator == Operator.LESS_EQUALS:
+            result = len(left_value) <= len(right_value)
+        elif operator == Operator.CONTAINS:
+            result = right_value in left_value
+        elif operator == Operator.NOT_CONTAINS:
+            result = right_value not in left_value
+        return result
+
+    def _judge_int_condition(self, left: Value, operator: Operator, right: Value) -> bool:  # noqa: PLR0911
+        """
+        判断整数类型的条件。
+
+        Args:
+            left (Value): 左值,包含 'value' 键。
+            operator (Operator): 操作符
+            right (Value): 右值,包含 'value' 键。
+
+        Returns:
+            bool
+
+        """
+        left_value = left.value
+        right_value = right.value
+        if operator == Operator.EQUAL:
+            return left_value == right_value
+        if operator == Operator.NEQUAL:
+            return left_value != right_value
+        if operator == Operator.GREATER:
+            return left_value > right_value
+        if operator == Operator.GREATER_EQUALS:
+            return left_value >= right_value
+        if operator == Operator.SMALLER:
+            return left_value < right_value
+        if operator == Operator.SMALLER_EQUALS:
+            return left_value <= right_value
+        return False
+
+    def _judge_bool_condition(self, left: Value, operator: Operator, right: Value) -> bool:
+        """
+        判断布尔类型的条件。
+
+        Args:
+            left (Value): 左值,包含 'value' 键。
+            operator (Operator): 操作符
+            right (Value): 右值,包含 'value' 键。
+
+        Returns:
+            bool
+
+        """
+        left_value = left.value
+        right_value = right.value
+        if operator == Operator.EQUAL:
+            return left_value == right_value
+        if operator == Operator.NEQUAL:
+            return left_value != right_value
+        if operator == Operator.IS_EMPTY:
+            return left_value == ""
+        if operator == Operator.NOT_EMPTY:
+            return left_value != ""
+        return False
+
diff --git a/apps/scheduler/call/choice/schema.py b/apps/scheduler/call/choice/schema.py
index 60b62d09f..ed71fa8fb 100644
--- a/apps/scheduler/call/choice/schema.py
+++ b/apps/scheduler/call/choice/schema.py
@@ -1,12 +1,81 @@
 # Copyright (c) Huawei Technologies Co., Ltd. 2023-2025. All rights reserved.
 """Choice Call的输入和输出"""
 
+from enum import Enum
+
+from pydantic import BaseModel, Field
+
 from apps.scheduler.call.core import DataBase
 
 
+class Operator(str, Enum):
+    """Choice Call支持的运算符"""
+
+    EQUAL = "等于"
+    NEQUAL = "不等于"
+    GREAT = "长度大于"
+    GREAT_EQUALS = "长度大于等于"
+    LESS = "长度小于"
+    LESS_EQUALS = "长度小于等于"
+    CONTAINS = "包含"
+    NOT_CONTAINS = "不包含"
+    GREATER = "大于"
+    GREATER_EQUALS = "大于等于"
+    SMALLER = "小于"
+    SMALLER_EQUALS = "小于等于"
+    IS_EMPTY = "为空"
+    NOT_EMPTY = "不为空"
+
+
+class Logic(str, Enum):
+    """Choice 工具支持的逻辑运算符"""
+
+    AND = "且"
+    OR = "或"
+
+
+class Type(str, Enum):
+    """Choice 工具支持的类型"""
+
+    STRING = "string"
+    INT = "int"
+    BOOL = "bool"
+
+
+class Value(BaseModel):
+    """值的结构"""
+
+    step_id: str = Field(description="步骤id", default="")
+    value: str | int | bool = Field(description="值", default=None)
+
+
+class Condition(BaseModel):
+    """单个条件"""
+
+    type: Type = Field(description="值的类型", default=Type.STRING)
+    left: Value = Field(description="左值")
+    right: Value = Field(description="右值")
+    operator: Operator = Field(description="运算符")
+    id: int = Field(description="条件ID")
+
+
+class ChoiceBranch(BaseModel):
+    """子分支"""
+
+    branch_id: str = Field(description="分支ID", default="")
+    logic: Logic = Field(description="逻辑运算符", default=Logic.AND)
+    conditions: list[Condition] = Field(description="条件列表", default=[])
+    is_default: bool = Field(description="是否为默认分支", default=False)
+
+
 class ChoiceInput(DataBase):
     """Choice Call的输入"""
 
+    choices: list[ChoiceBranch] = Field(description="分支", default=[])
+
 
 class ChoiceOutput(DataBase):
     """Choice Call的输出"""
+
+    next_step: str = Field(description="下一个步骤的ID", default="")
+    message: str = Field(description="选择信息", default="")
diff --git a/apps/scheduler/executor/step.py b/apps/scheduler/executor/step.py
index ef05c3696..30c4abbb6 100644
--- a/apps/scheduler/executor/step.py
+++ b/apps/scheduler/executor/step.py
@@ -244,6 +244,8 @@ class StepExecutor(BaseExecutor):
         self.task.tokens.input_tokens += self.obj.tokens.input_tokens
         self.task.tokens.output_tokens += self.obj.tokens.output_tokens
         self.task.tokens.full_time += round(datetime.now(UTC).timestamp(), 2) - self.task.tokens.time
+        if self.step.step.type == SpecialCallType.CHOICE.value:
+            self.task.state.step_id = self.task.state.step_id + content.get("next_step", "")
 
         # 更新history
         if isinstance(content, str):
-- 
Gitee


From b77bbeeccda9c090ef14c31019cf68ab5695736b Mon Sep 17 00:00:00 2001
From: zengxianghuai 
Date: Tue, 22 Jul 2025 11:10:41 +0800
Subject: [PATCH 7/8] =?UTF-8?q?=E5=AE=8C=E5=96=84choice?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 apps/scheduler/call/choice/choice.py          | 11 ++--
 .../call/choice/condition_handler.py          | 52 ++++++++++++-------
 apps/scheduler/call/choice/schema.py          | 39 ++++++--------
 apps/scheduler/executor/flow.py               |  9 ++++
 apps/scheduler/executor/step.py               |  2 -
 5 files changed, 62 insertions(+), 51 deletions(-)

diff --git a/apps/scheduler/call/choice/choice.py b/apps/scheduler/call/choice/choice.py
index 3dcc2b4d5..1b6644c1f 100644
--- a/apps/scheduler/call/choice/choice.py
+++ b/apps/scheduler/call/choice/choice.py
@@ -41,9 +41,9 @@ class Choice(CoreCall, input_model=ChoiceInput, output_model=ChoiceOutput):
         """替换choices中的系统变量"""
         for choice in self.choices:
             for condition in choice.conditions:
-                step_id = condition.left.get("step_id")
-                if step_id:
-                    path = step_id + "/" + condition.left.value
+                step_id, _, value = condition.left.step_id.partition(".")
+                if step_id and value:
+                    path = f"{step_id}/{value}"
                     condition.left.value = self._extract_history_variables(path, call_vars.history)
         return self.choices
 
@@ -59,10 +59,7 @@ class Choice(CoreCall, input_model=ChoiceInput, output_model=ChoiceOutput):
         data = ChoiceInput(**input_data)
         ret: CallOutputChunk=CallOutputChunk(
             type=CallOutputType.DATA,
-            content=ChoiceOutput(
-                next_step=None,
-                message=None,
-            ).model_dump(exclude_none=True, by_alias=True),
+            content=None,
         )
         condition_handler = ConditionHandler()
         try:
diff --git a/apps/scheduler/call/choice/condition_handler.py b/apps/scheduler/call/choice/condition_handler.py
index ca98f7465..35ff541cf 100644
--- a/apps/scheduler/call/choice/condition_handler.py
+++ b/apps/scheduler/call/choice/condition_handler.py
@@ -17,31 +17,34 @@ class ConditionHandler(BaseModel):
         """处理条件"""
         default_branch = [c for c in choices if c.is_default]
 
-        for choice in choices:
+        for block_judgement in choices:
             results = []
-            if choice.is_default:
+            if block_judgement.is_default:
                 continue
-            for condition in choice.conditions:
+            for condition in block_judgement.conditions:
                 result = self._judge_condition(condition)
                 results.append(result)
-            if choice.logic == Logic.AND:
+            if block_judgement.logic == Logic.AND:
                 final_result = all(results)
-            elif choice.logic == Logic.OR:
+            elif block_judgement.logic == Logic.OR:
                 final_result = any(results)
 
             if final_result:
-                return ChoiceOutput(
-                    next_step=choice.branch_id,
-                    message=f"选择分支:{choice.branch_id}",
-                )
+                return {
+                    "branch_id": block_judgement.branch_id,
+                    "message": f"选择分支:{block_judgement.branch_id}",
+                }
 
         # 如果没有匹配的分支,选择默认分支
         if default_branch:
-            return ChoiceOutput(
-                next_step=default_branch[0].branch_id,
-                message=f"选择默认分支:{default_branch[0].branch_id}",
-            )
-        return None
+            return {
+                "branch_id": default_branch[0].branch_id,
+                "message": f"选择默认分支:{default_branch[0].branch_id}",
+            }
+        return {
+            "branch_id": "",
+            "message": "没有匹配的分支,且没有默认分支",
+        }
 
     def _judge_condition(self, condition: Condition) -> bool:
         """
@@ -86,6 +89,10 @@ class ConditionHandler(BaseModel):
 
         """
         left_value = left.value
+        if not isinstance(left_value, str):
+            logger.error("左值不是字符串类型: %s", left_value)
+            msg = "左值必须是字符串类型"
+            raise TypeError(msg)
         right_value = right.value
         result = False
         if operator == Operator.EQUAL:
@@ -120,18 +127,22 @@ class ConditionHandler(BaseModel):
 
         """
         left_value = left.value
+        if not isinstance(left_value, int):
+            logger.error("左值不是整数类型: %s", left_value)
+            msg = "左值必须是整数类型"
+            raise TypeError(msg)
         right_value = right.value
         if operator == Operator.EQUAL:
             return left_value == right_value
         if operator == Operator.NEQUAL:
             return left_value != right_value
-        if operator == Operator.GREATER:
+        if operator == Operator.GREAT:
             return left_value > right_value
-        if operator == Operator.GREATER_EQUALS:
+        if operator == Operator.GREAT_EQUALS:
             return left_value >= right_value
-        if operator == Operator.SMALLER:
+        if operator == Operator.LESS:
             return left_value < right_value
-        if operator == Operator.SMALLER_EQUALS:
+        if operator == Operator.LESS_EQUALS:
             return left_value <= right_value
         return False
 
@@ -149,6 +160,10 @@ class ConditionHandler(BaseModel):
 
         """
         left_value = left.value
+        if not isinstance(left_value, bool):
+            logger.error("左值不是布尔类型: %s", left_value)
+            msg = "左值必须是布尔类型"
+            raise TypeError(msg)
         right_value = right.value
         if operator == Operator.EQUAL:
             return left_value == right_value
@@ -159,4 +174,3 @@ class ConditionHandler(BaseModel):
         if operator == Operator.NOT_EMPTY:
             return left_value != ""
         return False
-
diff --git a/apps/scheduler/call/choice/schema.py b/apps/scheduler/call/choice/schema.py
index ed71fa8fb..2d1ba2b24 100644
--- a/apps/scheduler/call/choice/schema.py
+++ b/apps/scheduler/call/choice/schema.py
@@ -5,33 +5,29 @@ from enum import Enum
 
 from pydantic import BaseModel, Field
 
-from apps.scheduler.call.core import DataBase
-
 
 class Operator(str, Enum):
     """Choice Call支持的运算符"""
 
-    EQUAL = "等于"
-    NEQUAL = "不等于"
-    GREAT = "长度大于"
-    GREAT_EQUALS = "长度大于等于"
-    LESS = "长度小于"
-    LESS_EQUALS = "长度小于等于"
-    CONTAINS = "包含"
-    NOT_CONTAINS = "不包含"
-    GREATER = "大于"
-    GREATER_EQUALS = "大于等于"
-    SMALLER = "小于"
-    SMALLER_EQUALS = "小于等于"
-    IS_EMPTY = "为空"
-    NOT_EMPTY = "不为空"
+    EQUAL = "equal"
+    NEQUAL = "not_equal"
+    GREAT = "great"
+    GREAT_EQUALS = "great_equals"
+    LESS = "less"
+    LESS_EQUALS = "less_equals"
+    # string
+    CONTAINS = "contains"
+    NOT_CONTAINS = "not_contains"
+    # bool
+    IS_EMPTY = "is_empty"
+    NOT_EMPTY = "not_empty"
 
 
 class Logic(str, Enum):
     """Choice 工具支持的逻辑运算符"""
 
-    AND = "且"
-    OR = "或"
+    AND = "and"
+    OR = "or"
 
 
 class Type(str, Enum):
@@ -68,14 +64,11 @@ class ChoiceBranch(BaseModel):
     is_default: bool = Field(description="是否为默认分支", default=False)
 
 
-class ChoiceInput(DataBase):
+class ChoiceInput(BaseModel):
     """Choice Call的输入"""
 
     choices: list[ChoiceBranch] = Field(description="分支", default=[])
 
 
-class ChoiceOutput(DataBase):
+class ChoiceOutput(BaseModel):
     """Choice Call的输出"""
-
-    next_step: str = Field(description="下一个步骤的ID", default="")
-    message: str = Field(description="选择信息", default="")
diff --git a/apps/scheduler/executor/flow.py b/apps/scheduler/executor/flow.py
index 8a3b21d9c..533b759cf 100644
--- a/apps/scheduler/executor/flow.py
+++ b/apps/scheduler/executor/flow.py
@@ -118,6 +118,15 @@ class FlowExecutor(BaseExecutor):
         # 如果当前步骤为结束,则直接返回
         if self.task.state.step_id == "end" or not self.task.state.step_id: # type: ignore[arg-type]
             return []
+        if self.task.state.step_name == "Choice":
+            # 如果是choice节点,获取分支ID
+            branch_id = self.task.context[-1]["output_data"].get("branch_id", None)
+            if branch_id:
+                self.task.state.step_id = self.task.state.step_id + "." + branch_id
+                logger.info("[FlowExecutor] 分支ID:%s", branch_id)
+            else:
+                logger.warning("[FlowExecutor] 没有找到分支ID,返回空列表")
+                return []
 
         next_steps = await self._find_next_id(self.task.state.step_id) # type: ignore[arg-type]
         # 如果step没有任何出边,直接跳到end
diff --git a/apps/scheduler/executor/step.py b/apps/scheduler/executor/step.py
index 30c4abbb6..ef05c3696 100644
--- a/apps/scheduler/executor/step.py
+++ b/apps/scheduler/executor/step.py
@@ -244,8 +244,6 @@ class StepExecutor(BaseExecutor):
         self.task.tokens.input_tokens += self.obj.tokens.input_tokens
         self.task.tokens.output_tokens += self.obj.tokens.output_tokens
         self.task.tokens.full_time += round(datetime.now(UTC).timestamp(), 2) - self.task.tokens.time
-        if self.step.step.type == SpecialCallType.CHOICE.value:
-            self.task.state.step_id = self.task.state.step_id + content.get("next_step", "")
 
         # 更新history
         if isinstance(content, str):
-- 
Gitee


From 9355dca760b569d33a1883cf2073a0632c374dde Mon Sep 17 00:00:00 2001
From: zengxianghuai 
Date: Tue, 22 Jul 2025 11:10:41 +0800
Subject: [PATCH 8/8] =?UTF-8?q?=E5=AE=8C=E5=96=84choice?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 apps/scheduler/call/choice/choice.py          | 13 +++--
 .../call/choice/condition_handler.py          | 52 ++++++++++++-------
 apps/scheduler/call/choice/schema.py          | 39 ++++++--------
 apps/scheduler/executor/flow.py               |  9 ++++
 apps/scheduler/executor/step.py               |  2 -
 5 files changed, 64 insertions(+), 51 deletions(-)

diff --git a/apps/scheduler/call/choice/choice.py b/apps/scheduler/call/choice/choice.py
index 3dcc2b4d5..807c9d698 100644
--- a/apps/scheduler/call/choice/choice.py
+++ b/apps/scheduler/call/choice/choice.py
@@ -41,9 +41,11 @@ class Choice(CoreCall, input_model=ChoiceInput, output_model=ChoiceOutput):
         """替换choices中的系统变量"""
         for choice in self.choices:
             for condition in choice.conditions:
-                step_id = condition.left.get("step_id")
-                if step_id:
-                    path = step_id + "/" + condition.left.value
+                split = condition.left.step_id.split(".")
+                step_id = split[0]
+                value = "/".join(split[1:])
+                if step_id and value:
+                    path = f"{step_id}/{value}"
                     condition.left.value = self._extract_history_variables(path, call_vars.history)
         return self.choices
 
@@ -59,10 +61,7 @@ class Choice(CoreCall, input_model=ChoiceInput, output_model=ChoiceOutput):
         data = ChoiceInput(**input_data)
         ret: CallOutputChunk=CallOutputChunk(
             type=CallOutputType.DATA,
-            content=ChoiceOutput(
-                next_step=None,
-                message=None,
-            ).model_dump(exclude_none=True, by_alias=True),
+            content=None,
         )
         condition_handler = ConditionHandler()
         try:
diff --git a/apps/scheduler/call/choice/condition_handler.py b/apps/scheduler/call/choice/condition_handler.py
index ca98f7465..35ff541cf 100644
--- a/apps/scheduler/call/choice/condition_handler.py
+++ b/apps/scheduler/call/choice/condition_handler.py
@@ -17,31 +17,34 @@ class ConditionHandler(BaseModel):
         """处理条件"""
         default_branch = [c for c in choices if c.is_default]
 
-        for choice in choices:
+        for block_judgement in choices:
             results = []
-            if choice.is_default:
+            if block_judgement.is_default:
                 continue
-            for condition in choice.conditions:
+            for condition in block_judgement.conditions:
                 result = self._judge_condition(condition)
                 results.append(result)
-            if choice.logic == Logic.AND:
+            if block_judgement.logic == Logic.AND:
                 final_result = all(results)
-            elif choice.logic == Logic.OR:
+            elif block_judgement.logic == Logic.OR:
                 final_result = any(results)
 
             if final_result:
-                return ChoiceOutput(
-                    next_step=choice.branch_id,
-                    message=f"选择分支:{choice.branch_id}",
-                )
+                return {
+                    "branch_id": block_judgement.branch_id,
+                    "message": f"选择分支:{block_judgement.branch_id}",
+                }
 
         # 如果没有匹配的分支,选择默认分支
         if default_branch:
-            return ChoiceOutput(
-                next_step=default_branch[0].branch_id,
-                message=f"选择默认分支:{default_branch[0].branch_id}",
-            )
-        return None
+            return {
+                "branch_id": default_branch[0].branch_id,
+                "message": f"选择默认分支:{default_branch[0].branch_id}",
+            }
+        return {
+            "branch_id": "",
+            "message": "没有匹配的分支,且没有默认分支",
+        }
 
     def _judge_condition(self, condition: Condition) -> bool:
         """
@@ -86,6 +89,10 @@ class ConditionHandler(BaseModel):
 
         """
         left_value = left.value
+        if not isinstance(left_value, str):
+            logger.error("左值不是字符串类型: %s", left_value)
+            msg = "左值必须是字符串类型"
+            raise TypeError(msg)
         right_value = right.value
         result = False
         if operator == Operator.EQUAL:
@@ -120,18 +127,22 @@ class ConditionHandler(BaseModel):
 
         """
         left_value = left.value
+        if not isinstance(left_value, int):
+            logger.error("左值不是整数类型: %s", left_value)
+            msg = "左值必须是整数类型"
+            raise TypeError(msg)
         right_value = right.value
         if operator == Operator.EQUAL:
             return left_value == right_value
         if operator == Operator.NEQUAL:
             return left_value != right_value
-        if operator == Operator.GREATER:
+        if operator == Operator.GREAT:
             return left_value > right_value
-        if operator == Operator.GREATER_EQUALS:
+        if operator == Operator.GREAT_EQUALS:
             return left_value >= right_value
-        if operator == Operator.SMALLER:
+        if operator == Operator.LESS:
             return left_value < right_value
-        if operator == Operator.SMALLER_EQUALS:
+        if operator == Operator.LESS_EQUALS:
             return left_value <= right_value
         return False
 
@@ -149,6 +160,10 @@ class ConditionHandler(BaseModel):
 
         """
         left_value = left.value
+        if not isinstance(left_value, bool):
+            logger.error("左值不是布尔类型: %s", left_value)
+            msg = "左值必须是布尔类型"
+            raise TypeError(msg)
         right_value = right.value
         if operator == Operator.EQUAL:
             return left_value == right_value
@@ -159,4 +174,3 @@ class ConditionHandler(BaseModel):
         if operator == Operator.NOT_EMPTY:
             return left_value != ""
         return False
-
diff --git a/apps/scheduler/call/choice/schema.py b/apps/scheduler/call/choice/schema.py
index ed71fa8fb..2d1ba2b24 100644
--- a/apps/scheduler/call/choice/schema.py
+++ b/apps/scheduler/call/choice/schema.py
@@ -5,33 +5,29 @@ from enum import Enum
 
 from pydantic import BaseModel, Field
 
-from apps.scheduler.call.core import DataBase
-
 
 class Operator(str, Enum):
     """Choice Call支持的运算符"""
 
-    EQUAL = "等于"
-    NEQUAL = "不等于"
-    GREAT = "长度大于"
-    GREAT_EQUALS = "长度大于等于"
-    LESS = "长度小于"
-    LESS_EQUALS = "长度小于等于"
-    CONTAINS = "包含"
-    NOT_CONTAINS = "不包含"
-    GREATER = "大于"
-    GREATER_EQUALS = "大于等于"
-    SMALLER = "小于"
-    SMALLER_EQUALS = "小于等于"
-    IS_EMPTY = "为空"
-    NOT_EMPTY = "不为空"
+    EQUAL = "equal"
+    NEQUAL = "not_equal"
+    GREAT = "great"
+    GREAT_EQUALS = "great_equals"
+    LESS = "less"
+    LESS_EQUALS = "less_equals"
+    # string
+    CONTAINS = "contains"
+    NOT_CONTAINS = "not_contains"
+    # bool
+    IS_EMPTY = "is_empty"
+    NOT_EMPTY = "not_empty"
 
 
 class Logic(str, Enum):
     """Choice 工具支持的逻辑运算符"""
 
-    AND = "且"
-    OR = "或"
+    AND = "and"
+    OR = "or"
 
 
 class Type(str, Enum):
@@ -68,14 +64,11 @@ class ChoiceBranch(BaseModel):
     is_default: bool = Field(description="是否为默认分支", default=False)
 
 
-class ChoiceInput(DataBase):
+class ChoiceInput(BaseModel):
     """Choice Call的输入"""
 
     choices: list[ChoiceBranch] = Field(description="分支", default=[])
 
 
-class ChoiceOutput(DataBase):
+class ChoiceOutput(BaseModel):
     """Choice Call的输出"""
-
-    next_step: str = Field(description="下一个步骤的ID", default="")
-    message: str = Field(description="选择信息", default="")
diff --git a/apps/scheduler/executor/flow.py b/apps/scheduler/executor/flow.py
index 8a3b21d9c..533b759cf 100644
--- a/apps/scheduler/executor/flow.py
+++ b/apps/scheduler/executor/flow.py
@@ -118,6 +118,15 @@ class FlowExecutor(BaseExecutor):
         # 如果当前步骤为结束,则直接返回
         if self.task.state.step_id == "end" or not self.task.state.step_id: # type: ignore[arg-type]
             return []
+        if self.task.state.step_name == "Choice":
+            # 如果是choice节点,获取分支ID
+            branch_id = self.task.context[-1]["output_data"].get("branch_id", None)
+            if branch_id:
+                self.task.state.step_id = self.task.state.step_id + "." + branch_id
+                logger.info("[FlowExecutor] 分支ID:%s", branch_id)
+            else:
+                logger.warning("[FlowExecutor] 没有找到分支ID,返回空列表")
+                return []
 
         next_steps = await self._find_next_id(self.task.state.step_id) # type: ignore[arg-type]
         # 如果step没有任何出边,直接跳到end
diff --git a/apps/scheduler/executor/step.py b/apps/scheduler/executor/step.py
index 30c4abbb6..ef05c3696 100644
--- a/apps/scheduler/executor/step.py
+++ b/apps/scheduler/executor/step.py
@@ -244,8 +244,6 @@ class StepExecutor(BaseExecutor):
         self.task.tokens.input_tokens += self.obj.tokens.input_tokens
         self.task.tokens.output_tokens += self.obj.tokens.output_tokens
         self.task.tokens.full_time += round(datetime.now(UTC).timestamp(), 2) - self.task.tokens.time
-        if self.step.step.type == SpecialCallType.CHOICE.value:
-            self.task.state.step_id = self.task.state.step_id + content.get("next_step", "")
 
         # 更新history
         if isinstance(content, str):
-- 
Gitee

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