From 5c0274efce907f2eb4ebce9ef7a589e6722d619a Mon Sep 17 00:00:00 2001 From: hzg0601 Date: Tue, 15 Aug 2023 11:02:32 +0800 Subject: [PATCH 01/20] =?UTF-8?q?1.=20=E5=A2=9E=E5=8A=A0api=E7=9A=84?= =?UTF-8?q?=E4=B8=80=E9=94=AE=E5=90=AF=E5=8A=A8=E8=84=9A=E6=9C=AC;2.=20?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0webui=E7=9A=84=E4=B8=80=E9=94=AE=E5=90=AF?= =?UTF-8?q?=E5=8A=A8=E8=84=9A=E6=9C=AC;3.=20=E6=9B=B4=E6=96=B0readme;4.=20?= =?UTF-8?q?=E8=B0=83=E6=95=B4llm=5Fapi=5Flaunch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 51 +++++++++++++++++++++++++++- server/api_allinone.py | 50 +++++++++++++++++++++++++++ server/llm_api_launch.py | 12 ++++--- webui_allinone.py | 73 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 181 insertions(+), 5 deletions(-) create mode 100644 server/api_allinone.py create mode 100644 webui_allinone.py diff --git a/README.md b/README.md index 1526559..a67719a 100644 --- a/README.md +++ b/README.md @@ -257,7 +257,7 @@ $ python server/llm_api_launch.py --model-path-addresss model1@host1@port1 model $ python server/llm_api_launch.py --gpus 0,1 --num-gpus 2 --max-gpu-memory 10GiB ``` -注:以如上方式启动LLM服务会以nohup命令在后台运行 fastchat 服务,如需停止服务,可以运行如下命令: +注:以如上方式启动LLM服务会以nohup命令在后台运行 fastchat 服务,如需停止服务,可以运行如下命令,但该脚本**仅适用于linux和mac平台**: ```shell $ python server/llm_api_shutdown.py --serve all @@ -331,6 +331,55 @@ $ streamlit run webui.py --server.port 666 --- +### 6 一键启动: + +#### 6.1 api服务一键启动脚本 + +新增api一键启动脚本,可一键开启fastchat后台服务及本项目提供的langchain api服务,调用示例: + +调用默认模型: + +```shell +$ python server/api_allinone.py +``` + +加载多个非默认模型: + +```shell +$ python server/api_allinone.py --model-path-address model1@host1@port1 model2@host2@port2 +``` + +多卡启动: + +```shell +python server/api_allinone.py --model-path-address model@host@port --num-gpus 2 --gpus 0,1 --max-gpu-memory 10GiB +``` +其他参数详见各脚本及fastchat服务说明。 + +#### 6.2 webui一键启动脚本 +加载本地模型: +```shell +$ python webui_allinone.py +``` + +调用远程api服务: +```shell +$ python webui_allinone.py --use-remote-api +``` +后台运行webui服务: +```shell +$ python webui_allinone.py --nohup +``` +加载多个非默认模型: +```shell +$ python webui_allinone.py --model-path-address model1@host1@port1 model2@host2@port2 +``` +多卡启动: +``` +python webui_alline.py --model-path-address model@host@port --num-gpus 2 --gpus 0,1 --max-gpu-memory 10GiB +``` +其他参数详见各脚本及fastchat服务说明。 + ## 常见问题 参见 [常见问题](docs/FAQ.md)。 diff --git a/server/api_allinone.py b/server/api_allinone.py new file mode 100644 index 0000000..b19b6cc --- /dev/null +++ b/server/api_allinone.py @@ -0,0 +1,50 @@ +"""Usage +调用默认模型: +python server/api_allinone.py + +加载多个非默认模型: +python server/api_allinone.py --model-path-address model1@host1@port1 model2@host2@port2 + +多卡启动: +python server/api_allinone.py --model-path-address model@host@port --num-gpus 2 --gpus 0,1 --max-gpu-memory 10GiB + +""" +import sys +import os +sys.path.append(os.path.dirname(__file__)) +sys.path.append(os.path.dirname(os.path.dirname(__file__))) + +from llm_api_launch import launch_all,parser,controller_args,worker_args,server_args +from api import create_app +import uvicorn + +parser.add_argument("--api-host", type=str, default="0.0.0.0") +parser.add_argument("--api-port", type=int, default=7861) +parser.add_argument("--ssl_keyfile", type=str) +parser.add_argument("--ssl_certfile", type=str) +# 初始化消息 +args = parser.parse_args() +args_dict = vars(args) + +api_args = ["api-host","api-port","ssl_keyfile","ssl_certfile"] + +def run_api(host, port, **kwargs): + app = create_app() + if kwargs.get("ssl_keyfile") and kwargs.get("ssl_certfile"): + uvicorn.run(app, + host=host, + port=port, + ssl_keyfile=kwargs.get("ssl_keyfile"), + ssl_certfile=kwargs.get("ssl_certfile"), + ) + else: + uvicorn.run(app, host=host, port=port) + +if __name__ == "__main__": + launch_all(args=args,controller_args=controller_args,worker_args=worker_args,server_args=server_args) + run_api( + host=args.api_host, + port=args.api_port, + ssl_keyfile=args.ssl_keyfile, + ssl_certfile=args.ssl_certfile, + ) diff --git a/server/llm_api_launch.py b/server/llm_api_launch.py index c7dd977..0fdccfc 100644 --- a/server/llm_api_launch.py +++ b/server/llm_api_launch.py @@ -181,7 +181,7 @@ base_launch_sh = "nohup python3 -m fastchat.serve.{0} {1} >{2}/{3}.log 2>&1 &" # ! 1 log的文件名,必须与bash_launch_sh一致 # 2 controller, worker, openai_api_server base_check_sh = """while [ `grep -c "Uvicorn running on" {0}/{1}.log` -eq '0' ];do - sleep 1s; + sleep 5s; echo "wait {2} running" done echo '{2} running' """ @@ -211,7 +211,7 @@ def string_args(args, args_list): return args_str -def launch_worker(item): +def launch_worker(item,args=args,worker_args=worker_args): log_name = item.split("/")[-1].split("\\")[-1].replace("-", "_").replace("@", "_").replace(".", "_") # 先分割model-path-address,在传到string_args中分析参数 args.model_path, args.worker_host, args.worker_port = item.split("@") @@ -225,7 +225,11 @@ def launch_worker(item): subprocess.run(worker_check_sh, shell=True, check=True) -def launch_all(): +def launch_all(args=args, + controller_args=controller_args, + worker_args=worker_args, + server_args=server_args + ): controller_str_args = string_args(args, controller_args) controller_sh = base_launch_sh.format("controller", controller_str_args, LOG_PATH, "controller") controller_check_sh = base_check_sh.format(LOG_PATH, "controller", "controller") @@ -233,7 +237,7 @@ def launch_all(): subprocess.run(controller_check_sh, shell=True, check=True) if isinstance(args.model_path_address, str): - launch_worker(args.model_path_address) + launch_worker(args.model_path_address,args=args,worker_args=worker_args) else: for idx, item in enumerate(args.model_path_address): print(f"开始加载第{idx}个模型:{item}") diff --git a/webui_allinone.py b/webui_allinone.py new file mode 100644 index 0000000..b347387 --- /dev/null +++ b/webui_allinone.py @@ -0,0 +1,73 @@ +"""Usage +加载本地模型: +python webui_allinone.py + +调用远程api服务: +python webui_allinone.py --use-remote-api + +后台运行webui服务: +python webui_allinone.py --nohup + +加载多个非默认模型: +python webui_allinone.py --model-path-address model1@host1@port1 model2@host2@port2 + +多卡启动: +python webui_alline.py --model-path-address model@host@port --num-gpus 2 --gpus 0,1 --max-gpu-memory 10GiB + +""" +import streamlit as st +from webui_pages.utils import * +from streamlit_option_menu import option_menu +from webui_pages import * +import os +from server.llm_api_launch import string_args,launch_all,controller_args,worker_args,server_args,LOG_PATH + +from server.api_allinone import parser, api_args +import subprocess + +parser.add_argument("--use-remote-api",action="store_true") +parser.add_argument("--nohup",action="store_true") +parser.add_argument("--server.port",type=int,default=8501) +parser.add_argument("--theme.base",type=str,default='"light"') +parser.add_argument("--theme.primaryColor",type=str,default='"#165dff"') +parser.add_argument("--theme.secondaryBackgroundColor",type=str,default='"#f5f5f5"') +parser.add_argument("--theme.textColor",type=str,default='"#000000"') +web_args = ["server.port","theme.base","theme.primaryColor","theme.secondaryBackgroundColor","theme.textColor"] + +args = parser.parse_args() + +def launch_api(args=args,args_list=api_args,log_name=None): + print("launch api ...") + if not log_name: + log_name = f"{LOG_PATH}api_{args.api_host}_{args.api_port}" + print(f"logs on api are written in {log_name}") + args_str = string_args(args,args_list) + api_sh = "python server/{script} {args_str} >{log_name}.log 2>&1 &".format( + script="api.py",args_str=args_str,log_name=log_name) + subprocess.run(api_sh, shell=True, check=True) + print("launch api done!") + + +def launch_webui(args=args,args_list=web_args,log_name=None): + print("Launching webui...") + if not log_name: + log_name = f"{LOG_PATH}webui" + print(f"logs on api are written in {log_name}") + args_str = string_args(args,args_list) + if args.nohup: + webui_sh = "streamlit run webui.py {args_str} >{log_name}.log 2>&1 &".format( + args_str=args_str,log_name=log_name) + else: + webui_sh = "streamlit run webui.py {args_str}".format( + args_str=args_str) + subprocess.run(webui_sh, shell=True, check=True) + print("launch webui done!") + + +if __name__ == "__main__": + print("Starting webui_allineone.py, it would take a while, please be patient....") + if not args.use_remote_api: + launch_all(args=args,controller_args=controller_args,worker_args=worker_args,server_args=server_args) + launch_api(args=args,args_list=api_args) + launch_webui(args=args,args_list=web_args) + print("Start webui_allinone.py done!") From 7c0e9c46dbe99dab99d0cc701fbf9ec813109f58 Mon Sep 17 00:00:00 2001 From: liunux4odoo Date: Tue, 15 Aug 2023 14:24:54 +0800 Subject: [PATCH 02/20] fix api & webui: 1.add logs, 2. check json response, 3. set timeout=False in recreate_vector_stoore --- server/chat/openai_chat.py | 30 +++--- webui_pages/dialogue/dialogue.py | 7 ++ webui_pages/knowledge_base/knowledge_base.py | 2 - webui_pages/utils.py | 105 ++++++++++++++----- 4 files changed, 105 insertions(+), 39 deletions(-) diff --git a/server/chat/openai_chat.py b/server/chat/openai_chat.py index 7b69265..a7ad807 100644 --- a/server/chat/openai_chat.py +++ b/server/chat/openai_chat.py @@ -1,7 +1,7 @@ from fastapi.responses import StreamingResponse from typing import List import openai -from configs.model_config import llm_model_dict, LLM_MODEL +from configs.model_config import llm_model_dict, LLM_MODEL, logger from pydantic import BaseModel @@ -33,19 +33,23 @@ async def openai_chat(msg: OpenAiChatMsgIn): data = msg.dict() data["streaming"] = True data.pop("stream") - response = openai.ChatCompletion.create(**data) - if msg.stream: - for chunk in response.choices[0].message.content: - print(chunk) - yield chunk - else: - answer = "" - for chunk in response.choices[0].message.content: - answer += chunk - print(answer) - yield(answer) - + try: + response = openai.ChatCompletion.create(**data) + if msg.stream: + for chunk in response.choices[0].message.content: + print(chunk) + yield chunk + else: + answer = "" + for chunk in response.choices[0].message.content: + answer += chunk + print(answer) + yield(answer) + except Exception as e: + print(type(e)) + logger.error(e) + return StreamingResponse( get_response(msg), media_type='text/event-stream', diff --git a/webui_pages/dialogue/dialogue.py b/webui_pages/dialogue/dialogue.py index a39a196..89e148f 100644 --- a/webui_pages/dialogue/dialogue.py +++ b/webui_pages/dialogue/dialogue.py @@ -98,6 +98,9 @@ def dialogue_page(api: ApiRequest): text = "" r = api.chat_chat(prompt, history) for t in r: + if error_msg := check_error_msg(t): # check whether error occured + st.error(error_msg) + break text += t chat_box.update_msg(text) chat_box.update_msg(text, streaming=False) # 更新最终的字符串,去除光标 @@ -109,6 +112,8 @@ def dialogue_page(api: ApiRequest): ]) text = "" for d in api.knowledge_base_chat(prompt, selected_kb, kb_top_k, history): + if error_msg := check_error_msg(t): # check whether error occured + st.error(error_msg) text += d["answer"] chat_box.update_msg(text, 0) chat_box.update_msg("\n\n".join(d["docs"]), 1, streaming=False) @@ -120,6 +125,8 @@ def dialogue_page(api: ApiRequest): ]) text = "" for d in api.search_engine_chat(prompt, search_engine, se_top_k): + if error_msg := check_error_msg(t): # check whether error occured + st.error(error_msg) text += d["answer"] chat_box.update_msg(text, 0) chat_box.update_msg("\n\n".join(d["docs"]), 1, streaming=False) diff --git a/webui_pages/knowledge_base/knowledge_base.py b/webui_pages/knowledge_base/knowledge_base.py index f963a67..47eb24c 100644 --- a/webui_pages/knowledge_base/knowledge_base.py +++ b/webui_pages/knowledge_base/knowledge_base.py @@ -119,8 +119,6 @@ def knowledge_base_page(api: ApiRequest): elif selected_kb: kb = selected_kb["kb_name"] - - # 上传文件 # sentence_size = st.slider("文本入库分句长度限制", 1, 1000, SENTENCE_SIZE, disabled=True) files = st.file_uploader("上传知识文件", diff --git a/webui_pages/utils.py b/webui_pages/utils.py index d2772d5..c721e97 100644 --- a/webui_pages/utils.py +++ b/webui_pages/utils.py @@ -8,6 +8,7 @@ from configs.model_config import ( LLM_MODEL, VECTOR_SEARCH_TOP_K, SEARCH_ENGINE_TOP_K, + logger, ) import httpx import asyncio @@ -24,6 +25,7 @@ from configs.model_config import NLTK_DATA_PATH import nltk nltk.data.path = [NLTK_DATA_PATH] + nltk.data.path + def set_httpx_timeout(timeout=60.0): ''' 设置httpx默认timeout到60秒。 @@ -80,7 +82,8 @@ class ApiRequest: return httpx.stream("GET", url, params=params, **kwargs) else: return httpx.get(url, params=params, **kwargs) - except: + except Exception as e: + logger.error(e) retry -= 1 async def aget( @@ -100,7 +103,8 @@ class ApiRequest: return await client.stream("GET", url, params=params, **kwargs) else: return await client.get(url, params=params, **kwargs) - except: + except Exception as e: + logger.error(e) retry -= 1 def post( @@ -121,7 +125,8 @@ class ApiRequest: return httpx.stream("POST", url, data=data, json=json, **kwargs) else: return httpx.post(url, data=data, json=json, **kwargs) - except: + except Exception as e: + logger.error(e) retry -= 1 async def apost( @@ -142,7 +147,8 @@ class ApiRequest: return await client.stream("POST", url, data=data, json=json, **kwargs) else: return await client.post(url, data=data, json=json, **kwargs) - except: + except Exception as e: + logger.error(e) retry -= 1 def delete( @@ -162,7 +168,8 @@ class ApiRequest: return httpx.stream("DELETE", url, data=data, json=json, **kwargs) else: return httpx.delete(url, data=data, json=json, **kwargs) - except: + except Exception as e: + logger.error(e) retry -= 1 async def adelete( @@ -183,7 +190,8 @@ class ApiRequest: return await client.stream("DELETE", url, data=data, json=json, **kwargs) else: return await client.delete(url, data=data, json=json, **kwargs) - except: + except Exception as e: + logger.error(e) retry -= 1 def _fastapi_stream2generator(self, response: StreamingResponse, as_json: bool =False): @@ -195,11 +203,14 @@ class ApiRequest: except: loop = asyncio.new_event_loop() - for chunk in iter_over_async(response.body_iterator, loop): - if as_json and chunk: - yield json.loads(chunk) - elif chunk.strip(): - yield chunk + try: + for chunk in iter_over_async(response.body_iterator, loop): + if as_json and chunk: + yield json.loads(chunk) + elif chunk.strip(): + yield chunk + except Exception as e: + logger.error(e) def _httpx_stream2generator( self, @@ -209,12 +220,31 @@ class ApiRequest: ''' 将httpx.stream返回的GeneratorContextManager转化为普通生成器 ''' - with response as r: - for chunk in r.iter_text(None): - if as_json and chunk: - yield json.loads(chunk) - elif chunk.strip(): - yield chunk + try: + with response as r: + for chunk in r.iter_text(None): + if not chunk: # openai api server communicating error + msg = f"API通信超时,请确认已启动FastChat与API服务(详见README '5. 启动 API 服务或 Web UI')" + logger.error(msg) + yield {"code": 500, "errorMsg": msg} + break + if as_json and chunk: + yield json.loads(chunk) + elif chunk.strip(): + yield chunk + except httpx.ConnectError as e: + msg = f"无法连接API服务器,请确认已执行python server\\api.py" + logger.error(msg) + logger.error(e) + yield {"code": 500, "errorMsg": msg} + except httpx.ReadTimeout as e: + msg = f"API通信超时,请确认已启动FastChat与API服务(详见RADME '5. 启动 API 服务或 Web UI')" + logger.error(msg) + logger.error(e) + yield {"code": 500, "errorMsg": msg} + except Exception as e: + logger.error(e) + yield {"code": 500, "errorMsg": str(e)} # 对话相关操作 @@ -353,6 +383,21 @@ class ApiRequest: # 知识库相关操作 + def _check_httpx_json_response( + self, + response: httpx.Response, + errorMsg: str = f"无法连接API服务器,请确认已执行python server\\api.py", + ) -> Dict: + ''' + check whether httpx returns correct data with normal Response. + error in api with streaming support was checked in _httpx_stream2enerator + ''' + try: + return response.json() + except Exception as e: + logger.error(e) + return {"code": 500, "errorMsg": errorMsg or str(e)} + def list_knowledge_bases( self, no_remote_api: bool = None, @@ -369,7 +414,8 @@ class ApiRequest: return response.data else: response = self.get("/knowledge_base/list_knowledge_bases") - return response.json().get("data") + data = self._check_httpx_json_response(response) + return data.get("data", []) def create_knowledge_base( self, @@ -399,7 +445,7 @@ class ApiRequest: "/knowledge_base/create_knowledge_base", json=data, ) - return response.json() + return self._check_httpx_json_response(response) def delete_knowledge_base( self, @@ -421,7 +467,7 @@ class ApiRequest: "/knowledge_base/delete_knowledge_base", json=f"{knowledge_base_name}", ) - return response.json() + return self._check_httpx_json_response(response) def list_kb_docs( self, @@ -443,7 +489,8 @@ class ApiRequest: "/knowledge_base/list_docs", params={"knowledge_base_name": knowledge_base_name} ) - return response.json().get("data") + data = self._check_httpx_json_response(response) + return data.get("data", []) def upload_kb_doc( self, @@ -487,7 +534,7 @@ class ApiRequest: data={"knowledge_base_name": knowledge_base_name, "override": override}, files={"file": (filename, file)}, ) - return response.json() + return self._check_httpx_json_response(response) def delete_kb_doc( self, @@ -517,7 +564,7 @@ class ApiRequest: "/knowledge_base/delete_doc", json=data, ) - return response.json() + return self._check_httpx_json_response(response) def update_kb_doc( self, @@ -540,7 +587,7 @@ class ApiRequest: "/knowledge_base/update_doc", json={"knowledge_base_name": knowledge_base_name, "file_name": file_name}, ) - return response.json() + return self._check_httpx_json_response(response) def recreate_vector_store( self, @@ -572,10 +619,20 @@ class ApiRequest: "/knowledge_base/recreate_vector_store", json=data, stream=True, + timeout=False, ) return self._httpx_stream2generator(response, as_json=True) +def check_error_msg(data: Union[str, dict, list], key: str = "errorMsg") -> str: + ''' + return error message if error occured when requests API + ''' + if isinstance(data, dict) and key in data: + return data[key] + return "" + + if __name__ == "__main__": api = ApiRequest(no_remote_api=True) From 116302f3b56444eec1996c053dbbbcb035a8d149 Mon Sep 17 00:00:00 2001 From: hzg0601 Date: Tue, 15 Aug 2023 15:33:16 +0800 Subject: [PATCH 03/20] update readme --- README.md | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index afd6325..6cf14b0 100644 --- a/README.md +++ b/README.md @@ -213,7 +213,6 @@ embedding_model_dict = { ```shell $ python init_database.py ``` - - 如果您是第一次运行本项目,知识库尚未建立,或者配置文件中的知识库类型、嵌入模型发生变化,需要以下命令初始化或重建知识库: ```shell @@ -243,14 +242,16 @@ $ python server/llm_api.py ``` 项目支持多卡加载,需在 llm_api.py 中修改 create_model_worker_app 函数中,修改如下三个参数: + ```python gpus=None, num_gpus=1, max_gpu_memory="20GiB" ``` -其中,`gpus` 控制使用的显卡的ID,如果 "0,1"; -`num_gpus` 控制使用的卡数; +其中,`gpus` 控制使用的显卡的ID,如果 "0,1"; + +`num_gpus` 控制使用的卡数; `max_gpu_memory` 控制每个卡使用的显存容量。 @@ -342,14 +343,15 @@ $ streamlit run webui.py --server.port 666 - Web UI 对话界面: ![](img/webui_0813_0.png) - - Web UI 知识库管理页面: ![](img/webui_0813_1.png) --- -### 6 一键启动: +### 6 一键启动 + +**!!!注意,一键启动脚本仅适用于linux和mac设备!!!** #### 6.1 api服务一键启动脚本 @@ -372,30 +374,41 @@ $ python server/api_allinone.py --model-path-address model1@host1@port1 model2@h ```shell python server/api_allinone.py --model-path-address model@host@port --num-gpus 2 --gpus 0,1 --max-gpu-memory 10GiB ``` + 其他参数详见各脚本及fastchat服务说明。 #### 6.2 webui一键启动脚本 + 加载本地模型: + ```shell $ python webui_allinone.py ``` 调用远程api服务: + ```shell $ python webui_allinone.py --use-remote-api ``` + 后台运行webui服务: + ```shell $ python webui_allinone.py --nohup ``` + 加载多个非默认模型: + ```shell $ python webui_allinone.py --model-path-address model1@host1@port1 model2@host2@port2 ``` + 多卡启动: + +```shell +$ python webui_alline.py --model-path-address model@host@port --num-gpus 2 --gpus 0,1 --max-gpu-memory 10GiB ``` -python webui_alline.py --model-path-address model@host@port --num-gpus 2 --gpus 0,1 --max-gpu-memory 10GiB -``` + 其他参数详见各脚本及fastchat服务说明。 ## 常见问题 From f9d5038e598d403ca1469537b2afcf180e0dbba8 Mon Sep 17 00:00:00 2001 From: liunux4odoo Date: Wed, 16 Aug 2023 09:33:55 +0800 Subject: [PATCH 04/20] fix webui utils: remove unneeded error check --- webui_pages/utils.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/webui_pages/utils.py b/webui_pages/utils.py index c721e97..b1d5c28 100644 --- a/webui_pages/utils.py +++ b/webui_pages/utils.py @@ -223,11 +223,6 @@ class ApiRequest: try: with response as r: for chunk in r.iter_text(None): - if not chunk: # openai api server communicating error - msg = f"API通信超时,请确认已启动FastChat与API服务(详见README '5. 启动 API 服务或 Web UI')" - logger.error(msg) - yield {"code": 500, "errorMsg": msg} - break if as_json and chunk: yield json.loads(chunk) elif chunk.strip(): From 1551adb867592de3ce7183f11bbb0f45003ffabb Mon Sep 17 00:00:00 2001 From: liunux4odoo Date: Wed, 16 Aug 2023 10:04:17 +0800 Subject: [PATCH 05/20] fix webui: use kb_names as selected_kb's options to avoid index error after delete_doc --- webui_pages/knowledge_base/knowledge_base.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/webui_pages/knowledge_base/knowledge_base.py b/webui_pages/knowledge_base/knowledge_base.py index 47eb24c..f059475 100644 --- a/webui_pages/knowledge_base/knowledge_base.py +++ b/webui_pages/knowledge_base/knowledge_base.py @@ -49,21 +49,27 @@ def file_exists(kb: str, selected_rows: List) -> Tuple[str, str]: def knowledge_base_page(api: ApiRequest): try: - kb_list = get_kb_details() + kb_list = {x["kb_name"]: x for x in get_kb_details()} except Exception as e: st.error("获取知识库信息错误,请检查是否已按照 `README.md` 中 `4 知识库初始化与迁移` 步骤完成初始化或迁移,或是否为数据库连接错误。") st.stop() - kb_names = [x["kb_name"] for x in kb_list] + kb_names = list(kb_list.keys()) if "selected_kb_name" in st.session_state and st.session_state["selected_kb_name"] in kb_names: selected_kb_index = kb_names.index(st.session_state["selected_kb_name"]) else: selected_kb_index = 0 + def format_selected_kb(kb_name: str) -> str: + if kb := kb_list.get(kb_name): + return f"{kb_name} ({kb['vs_type']} @ {kb['embed_model']})" + else: + return kb_name + selected_kb = st.selectbox( "请选择或新建知识库:", - kb_list + ["新建知识库"], - format_func=lambda s: f"{s['kb_name']} ({s['vs_type']} @ {s['embed_model']})" if type(s) != str else s, + kb_names + ["新建知识库"], + format_func=format_selected_kb, index=selected_kb_index ) @@ -117,7 +123,7 @@ def knowledge_base_page(api: ApiRequest): st.experimental_rerun() elif selected_kb: - kb = selected_kb["kb_name"] + kb = selected_kb # 上传文件 # sentence_size = st.slider("文本入库分句长度限制", 1, 1000, SENTENCE_SIZE, disabled=True) From 348edb9a0d0a60d5ad2fcd1f8e0d2a78a9029389 Mon Sep 17 00:00:00 2001 From: hzg0601 Date: Wed, 16 Aug 2023 10:13:51 +0800 Subject: [PATCH 06/20] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/api_allinone.py | 4 ++++ server/llm_api_launch.py | 6 +++++- webui_allinone.py | 9 +++++++-- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/server/api_allinone.py b/server/api_allinone.py index b19b6cc..de8f716 100644 --- a/server/api_allinone.py +++ b/server/api_allinone.py @@ -41,6 +41,8 @@ def run_api(host, port, **kwargs): uvicorn.run(app, host=host, port=port) if __name__ == "__main__": + print("Luanching api_allinone,it would take a while, please be patient...") + print("正在启动api_allinone,LLM服务启动约3-10分钟,请耐心等待...") launch_all(args=args,controller_args=controller_args,worker_args=worker_args,server_args=server_args) run_api( host=args.api_host, @@ -48,3 +50,5 @@ if __name__ == "__main__": ssl_keyfile=args.ssl_keyfile, ssl_certfile=args.ssl_certfile, ) + print("Luanching api_allinone done.") + print("api_allinone启动完毕.") diff --git a/server/llm_api_launch.py b/server/llm_api_launch.py index 0fdccfc..0c92768 100644 --- a/server/llm_api_launch.py +++ b/server/llm_api_launch.py @@ -217,6 +217,7 @@ def launch_worker(item,args=args,worker_args=worker_args): args.model_path, args.worker_host, args.worker_port = item.split("@") args.worker_address = f"http://{args.worker_host}:{args.worker_port}" print("*" * 80) + print(f"worker启动视设备不同而不同,约需3-10分钟,如长时间未启动,请到{LOG_PATH}/{log_name}下查看日志") worker_str_args = string_args(args, worker_args) print(worker_str_args) worker_sh = base_launch_sh.format("model_worker", worker_str_args, LOG_PATH, f"worker_{log_name}") @@ -230,6 +231,8 @@ def launch_all(args=args, worker_args=worker_args, server_args=server_args ): + print(f"Launching llm service,logs are located in {LOG_PATH}...") + print(f"开始启动LLM服务,请到{LOG_PATH}下监控各模块日志...") controller_str_args = string_args(args, controller_args) controller_sh = base_launch_sh.format("controller", controller_str_args, LOG_PATH, "controller") controller_check_sh = base_check_sh.format(LOG_PATH, "controller", "controller") @@ -248,7 +251,8 @@ def launch_all(args=args, server_check_sh = base_check_sh.format(LOG_PATH, "openai_api_server", "openai_api_server") subprocess.run(server_sh, shell=True, check=True) subprocess.run(server_check_sh, shell=True, check=True) - + print("Launching LLM service done!") + print("LLM服务启动完毕。") if __name__ == "__main__": launch_all() diff --git a/webui_allinone.py b/webui_allinone.py index b347387..f710855 100644 --- a/webui_allinone.py +++ b/webui_allinone.py @@ -37,7 +37,8 @@ web_args = ["server.port","theme.base","theme.primaryColor","theme.secondaryBack args = parser.parse_args() def launch_api(args=args,args_list=api_args,log_name=None): - print("launch api ...") + print("Launching api ...") + print("启动API服务...") if not log_name: log_name = f"{LOG_PATH}api_{args.api_host}_{args.api_port}" print(f"logs on api are written in {log_name}") @@ -46,10 +47,11 @@ def launch_api(args=args,args_list=api_args,log_name=None): script="api.py",args_str=args_str,log_name=log_name) subprocess.run(api_sh, shell=True, check=True) print("launch api done!") - + print("启动API服务完毕.") def launch_webui(args=args,args_list=web_args,log_name=None): print("Launching webui...") + print("启动webui服务...") if not log_name: log_name = f"{LOG_PATH}webui" print(f"logs on api are written in {log_name}") @@ -62,12 +64,15 @@ def launch_webui(args=args,args_list=web_args,log_name=None): args_str=args_str) subprocess.run(webui_sh, shell=True, check=True) print("launch webui done!") + print("启动webui服务完毕.") if __name__ == "__main__": print("Starting webui_allineone.py, it would take a while, please be patient....") + print(f"开始启动webui_allinone,启动LLM服务需要约3-10分钟,请耐心等待,如长时间未启动,请到{LOG_PATH}下查看日志...") if not args.use_remote_api: launch_all(args=args,controller_args=controller_args,worker_args=worker_args,server_args=server_args) launch_api(args=args,args_list=api_args) launch_webui(args=args,args_list=web_args) print("Start webui_allinone.py done!") + print("感谢耐心等待,启动webui_allinone完毕。") \ No newline at end of file From a47240e87149434a834caac514f2831a066e91e2 Mon Sep 17 00:00:00 2001 From: liunux4odoo Date: Wed, 16 Aug 2023 10:14:47 +0800 Subject: [PATCH 07/20] fix KnowledgeFile: set text_splitter_name in database to SpacyTextSplitter if it is not set --- server/db/repository/knowledge_file_repository.py | 2 +- server/knowledge_base/utils.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/server/db/repository/knowledge_file_repository.py b/server/db/repository/knowledge_file_repository.py index f5e912f..404910f 100644 --- a/server/db/repository/knowledge_file_repository.py +++ b/server/db/repository/knowledge_file_repository.py @@ -27,7 +27,7 @@ def add_doc_to_db(session, kb_file: KnowledgeFile): file_ext=kb_file.ext, kb_name=kb_file.kb_name, document_loader_name=kb_file.document_loader_name, - text_splitter_name=kb_file.text_splitter_name, + text_splitter_name=kb_file.text_splitter_name or "SpacyTextSplitter", ) kb.file_count += 1 session.add(new_file) diff --git a/server/knowledge_base/utils.py b/server/knowledge_base/utils.py index 3e8be26..3ab6560 100644 --- a/server/knowledge_base/utils.py +++ b/server/knowledge_base/utils.py @@ -102,6 +102,7 @@ class KnowledgeFile: chunk_size=CHUNK_SIZE, chunk_overlap=OVERLAP_SIZE, ) + self.text_splitter_name = "SpacyTextSplitter" else: text_splitter_module = importlib.import_module('langchain.text_splitter') TextSplitter = getattr(text_splitter_module, self.text_splitter_name) From 8e00f8305b4eb5480b6290ec85e3f06bac51b1c9 Mon Sep 17 00:00:00 2001 From: hzg0601 Date: Wed, 16 Aug 2023 11:15:10 +0800 Subject: [PATCH 08/20] =?UTF-8?q?1.=20=E6=9B=B4=E6=96=B0allinone=E8=84=9A?= =?UTF-8?q?=E6=9C=AC=E6=8F=90=E7=A4=BA=EF=BC=8C=E5=A2=9E=E5=8A=A0=E4=B8=AD?= =?UTF-8?q?=E6=96=87=E6=8F=90=E7=A4=BA;2.=20=E6=96=B0=E5=A2=9E=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E4=B8=80=E9=94=AE=E5=81=9C=E6=AD=A2=E8=84=9A=E6=9C=AC?= =?UTF-8?q?shutdown=5Fall.sh;3.=20=E6=9B=B4=E6=96=B0readme=E8=AF=B4?= =?UTF-8?q?=E6=98=8E;3.=20=E4=BF=AE=E5=A4=8D=E5=91=BD=E4=BB=A4=E8=A1=8Cbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 8 +++++++- server/api_allinone.py | 7 ++++--- server/llm_api_launch.py | 31 ++++++++++++++++--------------- shutdown_all.sh | 1 + webui_allinone.py | 13 +++++++++---- 5 files changed, 37 insertions(+), 23 deletions(-) create mode 100644 shutdown_all.sh diff --git a/README.md b/README.md index 6cf14b0..c87b700 100644 --- a/README.md +++ b/README.md @@ -351,7 +351,7 @@ $ streamlit run webui.py --server.port 666 ### 6 一键启动 -**!!!注意,一键启动脚本仅适用于linux和mac设备!!!** +**!!!注意,一键启动脚本仅适用于linux和mac设备,且加载需要命令行指定模型,不会读取model_config.py配置!!!** #### 6.1 api服务一键启动脚本 @@ -411,6 +411,12 @@ $ python webui_alline.py --model-path-address model@host@port --num-gpus 2 --gpu 其他参数详见各脚本及fastchat服务说明。 +上述两个一键启动脚本会后台运行多个服务,如要停止所有服务,可使用shutdown_all.sh脚本: + +```shell +bash shutdown_all.sh +``` + ## 常见问题 参见 [常见问题](docs/FAQ.md)。 diff --git a/server/api_allinone.py b/server/api_allinone.py index de8f716..4379d7d 100644 --- a/server/api_allinone.py +++ b/server/api_allinone.py @@ -22,9 +22,7 @@ parser.add_argument("--api-host", type=str, default="0.0.0.0") parser.add_argument("--api-port", type=int, default=7861) parser.add_argument("--ssl_keyfile", type=str) parser.add_argument("--ssl_certfile", type=str) -# 初始化消息 -args = parser.parse_args() -args_dict = vars(args) + api_args = ["api-host","api-port","ssl_keyfile","ssl_certfile"] @@ -43,6 +41,9 @@ def run_api(host, port, **kwargs): if __name__ == "__main__": print("Luanching api_allinone,it would take a while, please be patient...") print("正在启动api_allinone,LLM服务启动约3-10分钟,请耐心等待...") + # 初始化消息 + args = parser.parse_args() + args_dict = vars(args) launch_all(args=args,controller_args=controller_args,worker_args=worker_args,server_args=server_args) run_api( host=args.api_host, diff --git a/server/llm_api_launch.py b/server/llm_api_launch.py index 0c92768..798206b 100644 --- a/server/llm_api_launch.py +++ b/server/llm_api_launch.py @@ -159,17 +159,7 @@ server_args = ["server-host", "server-port", "allow-credentials", "api-keys", "controller-address" ] -args = parser.parse_args() -# 必须要加http//:,否则InvalidSchema: No connection adapters were found -args = argparse.Namespace(**vars(args), - **{"controller-address": f"http://{args.controller_host}:{str(args.controller_port)}"}) -if args.gpus: - if len(args.gpus.split(",")) < args.num_gpus: - raise ValueError( - f"Larger --num-gpus ({args.num_gpus}) than --gpus {args.gpus}!" - ) - os.environ["CUDA_VISIBLE_DEVICES"] = args.gpus # 0,controller, model_worker, openai_api_server # 1, 命令行选项 @@ -211,13 +201,13 @@ def string_args(args, args_list): return args_str -def launch_worker(item,args=args,worker_args=worker_args): +def launch_worker(item,args,worker_args=worker_args): log_name = item.split("/")[-1].split("\\")[-1].replace("-", "_").replace("@", "_").replace(".", "_") # 先分割model-path-address,在传到string_args中分析参数 args.model_path, args.worker_host, args.worker_port = item.split("@") args.worker_address = f"http://{args.worker_host}:{args.worker_port}" print("*" * 80) - print(f"worker启动视设备不同而不同,约需3-10分钟,如长时间未启动,请到{LOG_PATH}/{log_name}下查看日志") + print(f"如长时间未启动,请到{LOG_PATH}{log_name}.log下查看日志") worker_str_args = string_args(args, worker_args) print(worker_str_args) worker_sh = base_launch_sh.format("model_worker", worker_str_args, LOG_PATH, f"worker_{log_name}") @@ -226,7 +216,7 @@ def launch_worker(item,args=args,worker_args=worker_args): subprocess.run(worker_check_sh, shell=True, check=True) -def launch_all(args=args, +def launch_all(args, controller_args=controller_args, worker_args=worker_args, server_args=server_args @@ -238,7 +228,7 @@ def launch_all(args=args, controller_check_sh = base_check_sh.format(LOG_PATH, "controller", "controller") subprocess.run(controller_sh, shell=True, check=True) subprocess.run(controller_check_sh, shell=True, check=True) - + print(f"worker启动时间视设备不同而不同,约需3-10分钟,请耐心等待...") if isinstance(args.model_path_address, str): launch_worker(args.model_path_address,args=args,worker_args=worker_args) else: @@ -255,4 +245,15 @@ def launch_all(args=args, print("LLM服务启动完毕。") if __name__ == "__main__": - launch_all() + args = parser.parse_args() + # 必须要加http//:,否则InvalidSchema: No connection adapters were found + args = argparse.Namespace(**vars(args), + **{"controller-address": f"http://{args.controller_host}:{str(args.controller_port)}"}) + + if args.gpus: + if len(args.gpus.split(",")) < args.num_gpus: + raise ValueError( + f"Larger --num-gpus ({args.num_gpus}) than --gpus {args.gpus}!" + ) + os.environ["CUDA_VISIBLE_DEVICES"] = args.gpus + launch_all(args=args) diff --git a/shutdown_all.sh b/shutdown_all.sh new file mode 100644 index 0000000..961260d --- /dev/null +++ b/shutdown_all.sh @@ -0,0 +1 @@ +ps -eo pid,user,cmd|grep -P 'server/api.py|webui.py|fastchat.serve'|grep -v grep|awk '{print $1}'|xargs kill -9 \ No newline at end of file diff --git a/webui_allinone.py b/webui_allinone.py index f710855..2992ae5 100644 --- a/webui_allinone.py +++ b/webui_allinone.py @@ -34,14 +34,14 @@ parser.add_argument("--theme.secondaryBackgroundColor",type=str,default='"#f5f5f parser.add_argument("--theme.textColor",type=str,default='"#000000"') web_args = ["server.port","theme.base","theme.primaryColor","theme.secondaryBackgroundColor","theme.textColor"] -args = parser.parse_args() -def launch_api(args=args,args_list=api_args,log_name=None): +def launch_api(args,args_list=api_args,log_name=None): print("Launching api ...") print("启动API服务...") if not log_name: log_name = f"{LOG_PATH}api_{args.api_host}_{args.api_port}" print(f"logs on api are written in {log_name}") + print(f"API日志位于{log_name}下,如启动异常请查看日志") args_str = string_args(args,args_list) api_sh = "python server/{script} {args_str} >{log_name}.log 2>&1 &".format( script="api.py",args_str=args_str,log_name=log_name) @@ -49,14 +49,16 @@ def launch_api(args=args,args_list=api_args,log_name=None): print("launch api done!") print("启动API服务完毕.") -def launch_webui(args=args,args_list=web_args,log_name=None): +def launch_webui(args,args_list=web_args,log_name=None): print("Launching webui...") print("启动webui服务...") if not log_name: log_name = f"{LOG_PATH}webui" - print(f"logs on api are written in {log_name}") + args_str = string_args(args,args_list) if args.nohup: + print(f"logs on api are written in {log_name}") + print(f"webui服务日志位于{log_name}下,如启动异常请查看日志") webui_sh = "streamlit run webui.py {args_str} >{log_name}.log 2>&1 &".format( args_str=args_str,log_name=log_name) else: @@ -70,6 +72,9 @@ def launch_webui(args=args,args_list=web_args,log_name=None): if __name__ == "__main__": print("Starting webui_allineone.py, it would take a while, please be patient....") print(f"开始启动webui_allinone,启动LLM服务需要约3-10分钟,请耐心等待,如长时间未启动,请到{LOG_PATH}下查看日志...") + args = parser.parse_args() + + print("*"*80) if not args.use_remote_api: launch_all(args=args,controller_args=controller_args,worker_args=worker_args,server_args=server_args) launch_api(args=args,args_list=api_args) From f3a1247629f79f258ba0ea9d32d94644ee00ccba Mon Sep 17 00:00:00 2001 From: hzg0601 Date: Wed, 16 Aug 2023 11:36:53 +0800 Subject: [PATCH 09/20] update readme --- README.md | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index c87b700..d8139cd 100644 --- a/README.md +++ b/README.md @@ -241,7 +241,7 @@ embedding_model_dict = { $ python server/llm_api.py ``` -项目支持多卡加载,需在 llm_api.py 中修改 create_model_worker_app 函数中,修改如下三个参数: +项目支持多卡加载,需在 llm_api.py 中修改 create_model_worker_app 函数中如下三个参数: ```python gpus=None, @@ -257,6 +257,14 @@ max_gpu_memory="20GiB" ##### 5.1.2 基于命令行脚本 llm_api_launch.py 启动 LLM 服务 +**!!!注意:** + +**1.llm_api_launch.py脚本仅适用于linux和mac设备,win平台请使用wls;** + +**2.加载非默认模型需要用命令行参数--model-path-address指定指定模型,不会读取model_config.py配置;** + +**!!!** + 在项目根目录下,执行 [server/llm_api_launch.py](server/llm_api.py) 脚本启动 **LLM 模型**服务: ```shell @@ -275,7 +283,7 @@ $ python server/llm_api_launch.py --model-path-addresss model1@host1@port1 model $ python server/llm_api_launch.py --gpus 0,1 --num-gpus 2 --max-gpu-memory 10GiB ``` -注:以如上方式启动LLM服务会以nohup命令在后台运行 fastchat 服务,如需停止服务,可以运行如下命令,但该脚本**仅适用于linux和mac平台**: +注:以如上方式启动LLM服务会以nohup命令在后台运行 fastchat 服务,如需停止服务,可以运行如下命令,但该脚本**仅适用于linux和mac平台,win平台请使用wsl**: ```shell $ python server/llm_api_shutdown.py --serve all @@ -351,7 +359,13 @@ $ streamlit run webui.py --server.port 666 ### 6 一键启动 -**!!!注意,一键启动脚本仅适用于linux和mac设备,且加载需要命令行指定模型,不会读取model_config.py配置!!!** +**!!!注意:** + +**1.一键启动脚本仅适用于linux和mac设备,win平台请使用wls;** + +**2.加载非默认模型需要用命令行参数--model-path-address指定指定模型,不会读取model_config.py配置;** + +**!!!** #### 6.1 api服务一键启动脚本 From 67b8ebef522ac9952897800dda9b4d9a3e713bc7 Mon Sep 17 00:00:00 2001 From: liunux4odoo Date: Wed, 16 Aug 2023 13:18:58 +0800 Subject: [PATCH 10/20] =?UTF-8?q?update=20api=20and=20webui:=201.=20?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0search=5Fdocs=E6=8E=A5=E5=8F=A3=EF=BC=8C?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E5=8E=9F=E5=A7=8B=E7=9F=A5=E8=AF=86=E5=BA=93?= =?UTF-8?q?=E6=A3=80=E7=B4=A2=E6=96=87=E6=A1=A3=EF=BC=8Cclose=20#1103=202.?= =?UTF-8?q?=20=E4=B8=BAFAISS=E6=A3=80=E7=B4=A2=E5=A2=9E=E5=8A=A0score=5Fth?= =?UTF-8?q?reshold=E5=8F=82=E6=95=B0=E3=80=82milvus=E5=92=8CPG=E6=9A=82?= =?UTF-8?q?=E4=B8=8D=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/api.py | 11 ++++++++- server/chat/knowledge_base_chat.py | 9 ++++--- server/knowledge_base/kb_doc_api.py | 23 ++++++++++++++++-- server/knowledge_base/kb_service/base.py | 5 ++-- .../kb_service/faiss_kb_service.py | 5 ++-- .../kb_service/milvus_kb_service.py | 3 ++- .../kb_service/pg_kb_service.py | 3 ++- server/static/favicon.png | Bin 0 -> 7299 bytes webui_pages/dialogue/dialogue.py | 8 +++--- webui_pages/utils.py | 3 +++ 10 files changed, 53 insertions(+), 17 deletions(-) create mode 100644 server/static/favicon.png diff --git a/server/api.py b/server/api.py index 458b1d7..d86fcbb 100644 --- a/server/api.py +++ b/server/api.py @@ -14,8 +14,11 @@ from server.chat import (chat, knowledge_base_chat, openai_chat, search_engine_chat) from server.knowledge_base.kb_api import list_kbs, create_kb, delete_kb from server.knowledge_base.kb_doc_api import (list_docs, upload_doc, delete_doc, - update_doc, download_doc, recreate_vector_store) + update_doc, download_doc, recreate_vector_store, + search_docs, DocumentWithScore) from server.utils import BaseResponse, ListResponse +from typing import List + nltk.data.path = [NLTK_DATA_PATH] + nltk.data.path @@ -83,6 +86,12 @@ def create_app(): summary="获取知识库内的文件列表" )(list_docs) + app.post("/knowledge_base/search_docs", + tags=["Knowledge Base Management"], + response_model=List[DocumentWithScore], + summary="搜索知识库" + )(search_docs) + app.post("/knowledge_base/upload_doc", tags=["Knowledge Base Management"], response_model=BaseResponse, diff --git a/server/chat/knowledge_base_chat.py b/server/chat/knowledge_base_chat.py index 0ecabf0..84c62f0 100644 --- a/server/chat/knowledge_base_chat.py +++ b/server/chat/knowledge_base_chat.py @@ -1,26 +1,27 @@ from fastapi import Body, Request from fastapi.responses import StreamingResponse from configs.model_config import (llm_model_dict, LLM_MODEL, PROMPT_TEMPLATE, - VECTOR_SEARCH_TOP_K) + VECTOR_SEARCH_TOP_K, SCORE_THRESHOLD) from server.chat.utils import wrap_done from server.utils import BaseResponse from langchain.chat_models import ChatOpenAI from langchain import LLMChain from langchain.callbacks import AsyncIteratorCallbackHandler -from typing import AsyncIterable +from typing import AsyncIterable, List, Optional import asyncio from langchain.prompts.chat import ChatPromptTemplate -from typing import List, Optional from server.chat.utils import History from server.knowledge_base.kb_service.base import KBService, KBServiceFactory import json import os from urllib.parse import urlencode +from server.knowledge_base.kb_doc_api import search_docs def knowledge_base_chat(query: str = Body(..., description="用户输入", examples=["你好"]), knowledge_base_name: str = Body(..., description="知识库名称", examples=["samples"]), top_k: int = Body(VECTOR_SEARCH_TOP_K, description="匹配向量数"), + score_threshold: float = Body(SCORE_THRESHOLD, description="知识库匹配相关度阈值,取值范围在0-1之间,SCORE越小,相关度越高,取到1相当于不筛选,建议设置在0.5左右", ge=0, le=1), history: List[History] = Body([], description="历史对话", examples=[[ @@ -53,7 +54,7 @@ def knowledge_base_chat(query: str = Body(..., description="用户输入", examp openai_api_base=llm_model_dict[LLM_MODEL]["api_base_url"], model_name=LLM_MODEL ) - docs = kb.search_docs(query, top_k) + docs = search_docs(query, knowledge_base_name, top_k, score_threshold) context = "\n".join([doc.page_content for doc in docs]) chat_prompt = ChatPromptTemplate.from_messages( diff --git a/server/knowledge_base/kb_doc_api.py b/server/knowledge_base/kb_doc_api.py index 3f27fb1..0bf2cb7 100644 --- a/server/knowledge_base/kb_doc_api.py +++ b/server/knowledge_base/kb_doc_api.py @@ -1,13 +1,32 @@ import os import urllib from fastapi import File, Form, Body, Query, UploadFile -from configs.model_config import DEFAULT_VS_TYPE, EMBEDDING_MODEL +from configs.model_config import (DEFAULT_VS_TYPE, EMBEDDING_MODEL, VECTOR_SEARCH_TOP_K, SCORE_THRESHOLD) from server.utils import BaseResponse, ListResponse from server.knowledge_base.utils import validate_kb_name, list_docs_from_folder, KnowledgeFile from fastapi.responses import StreamingResponse, FileResponse import json from server.knowledge_base.kb_service.base import KBServiceFactory -from typing import List +from typing import List, Dict +from langchain.docstore.document import Document + + +class DocumentWithScore(Document): + score: float = None + + +def search_docs(query: str = Body(..., description="用户输入", examples=["你好"]), + knowledge_base_name: str = Body(..., description="知识库名称", examples=["samples"]), + top_k: int = Body(VECTOR_SEARCH_TOP_K, description="匹配向量数"), + score_threshold: float = Body(SCORE_THRESHOLD, description="知识库匹配相关度阈值,取值范围在0-1之间,SCORE越小,相关度越高,取到1相当于不筛选,建议设置在0.5左右", ge=0, le=1), + ) -> List[DocumentWithScore]: + kb = KBServiceFactory.get_service_by_name(knowledge_base_name) + if kb is None: + return {"code": 404, "msg": f"未找到知识库 {knowledge_base_name}", "docs": []} + docs = kb.search_docs(query, top_k, score_threshold) + data = [DocumentWithScore(**x[0].dict(), score=x[1]) for x in docs] + + return data async def list_docs( diff --git a/server/knowledge_base/kb_service/base.py b/server/knowledge_base/kb_service/base.py index ec1c692..d506f63 100644 --- a/server/knowledge_base/kb_service/base.py +++ b/server/knowledge_base/kb_service/base.py @@ -13,7 +13,7 @@ from server.db.repository.knowledge_file_repository import ( list_docs_from_db, get_file_detail, delete_file_from_db ) -from configs.model_config import (kbs_config, VECTOR_SEARCH_TOP_K, +from configs.model_config import (kbs_config, VECTOR_SEARCH_TOP_K, SCORE_THRESHOLD, EMBEDDING_DEVICE, EMBEDDING_MODEL) from server.knowledge_base.utils import ( get_kb_path, get_doc_path, load_embeddings, KnowledgeFile, @@ -112,9 +112,10 @@ class KBService(ABC): def search_docs(self, query: str, top_k: int = VECTOR_SEARCH_TOP_K, + score_threshold: float = SCORE_THRESHOLD, ): embeddings = self._load_embeddings() - docs = self.do_search(query, top_k, embeddings) + docs = self.do_search(query, top_k, score_threshold, embeddings) return docs @abstractmethod diff --git a/server/knowledge_base/kb_service/faiss_kb_service.py b/server/knowledge_base/kb_service/faiss_kb_service.py index 0ef820a..5c8376f 100644 --- a/server/knowledge_base/kb_service/faiss_kb_service.py +++ b/server/knowledge_base/kb_service/faiss_kb_service.py @@ -81,12 +81,13 @@ class FaissKBService(KBService): def do_search(self, query: str, top_k: int, - embeddings: Embeddings, + score_threshold: float = SCORE_THRESHOLD, + embeddings: Embeddings = None, ) -> List[Document]: search_index = load_vector_store(self.kb_name, embeddings=embeddings, tick=_VECTOR_STORE_TICKS.get(self.kb_name)) - docs = search_index.similarity_search(query, k=top_k, score_threshold=SCORE_THRESHOLD) + docs = search_index.similarity_search_with_score(query, k=top_k, score_threshold=score_threshold) return docs def do_add_doc(self, diff --git a/server/knowledge_base/kb_service/milvus_kb_service.py b/server/knowledge_base/kb_service/milvus_kb_service.py index 6f1c392..f9c40c0 100644 --- a/server/knowledge_base/kb_service/milvus_kb_service.py +++ b/server/knowledge_base/kb_service/milvus_kb_service.py @@ -45,7 +45,8 @@ class MilvusKBService(KBService): def do_drop_kb(self): self.milvus.col.drop() - def do_search(self, query: str, top_k: int, embeddings: Embeddings) -> List[Document]: + def do_search(self, query: str, top_k: int, score_threshold: float, embeddings: Embeddings) -> List[Document]: + # todo: support score threshold self._load_milvus(embeddings=embeddings) return self.milvus.similarity_search(query, top_k, score_threshold=SCORE_THRESHOLD) diff --git a/server/knowledge_base/kb_service/pg_kb_service.py b/server/knowledge_base/kb_service/pg_kb_service.py index 82511bb..a3126ec 100644 --- a/server/knowledge_base/kb_service/pg_kb_service.py +++ b/server/knowledge_base/kb_service/pg_kb_service.py @@ -43,7 +43,8 @@ class PGKBService(KBService): ''')) connect.commit() - def do_search(self, query: str, top_k: int, embeddings: Embeddings) -> List[Document]: + def do_search(self, query: str, top_k: int, score_threshold: float, embeddings: Embeddings) -> List[Document]: + # todo: support score threshold self._load_pg_vector(embeddings=embeddings) return self.pg_vector.similarity_search(query, top_k) diff --git a/server/static/favicon.png b/server/static/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..5de8ee80b5f219484c90b0b4604cfd1e85b58e3d GIT binary patch literal 7299 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 Date: Wed, 16 Aug 2023 14:20:09 +0800 Subject: [PATCH 11/20] update llm_api and api server: 1. fastchat's controller/model_worker/api_server use swagger UI offline. 2. add custom title and icon. 3. remove fastapi-offline dependence --- requirements.txt | 1 - requirements_api.txt | 1 - server/api.py | 6 ++-- server/llm_api.py | 9 ++++- server/utils.py | 86 ++++++++++++++++++++++++++++++++++++++++---- webui.py | 6 +++- 6 files changed, 96 insertions(+), 13 deletions(-) diff --git a/requirements.txt b/requirements.txt index f2e1d65..6c013e5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,7 +5,6 @@ fschat==0.2.20 transformers torch~=2.0.0 fastapi~=0.99.1 -fastapi-offline nltk~=3.8.1 uvicorn~=0.23.1 starlette~=0.27.0 diff --git a/requirements_api.txt b/requirements_api.txt index f077c94..9b45aac 100644 --- a/requirements_api.txt +++ b/requirements_api.txt @@ -5,7 +5,6 @@ fschat==0.2.20 transformers torch~=2.0.0 fastapi~=0.99.1 -fastapi-offline nltk~=3.8.1 uvicorn~=0.23.1 starlette~=0.27.0 diff --git a/server/api.py b/server/api.py index d86fcbb..800680c 100644 --- a/server/api.py +++ b/server/api.py @@ -7,7 +7,6 @@ sys.path.append(os.path.dirname(os.path.dirname(__file__))) from configs.model_config import NLTK_DATA_PATH, OPEN_CROSS_DOMAIN import argparse import uvicorn -from server.utils import FastAPIOffline as FastAPI from fastapi.middleware.cors import CORSMiddleware from starlette.responses import RedirectResponse from server.chat import (chat, knowledge_base_chat, openai_chat, @@ -16,7 +15,7 @@ from server.knowledge_base.kb_api import list_kbs, create_kb, delete_kb from server.knowledge_base.kb_doc_api import (list_docs, upload_doc, delete_doc, update_doc, download_doc, recreate_vector_store, search_docs, DocumentWithScore) -from server.utils import BaseResponse, ListResponse +from server.utils import BaseResponse, ListResponse, FastAPI, MakeFastAPIOffline from typing import List @@ -28,7 +27,8 @@ async def document(): def create_app(): - app = FastAPI() + app = FastAPI(title="Langchain-Chatchat API Server") + MakeFastAPIOffline(app) # Add CORS middleware to allow all origins # 在config.py中设置OPEN_DOMAIN=True,允许跨域 # set OPEN_DOMAIN=True in config.py to allow cross-domain diff --git a/server/llm_api.py b/server/llm_api.py index 0a7d3b0..e1013ed 100644 --- a/server/llm_api.py +++ b/server/llm_api.py @@ -4,6 +4,8 @@ import os sys.path.append(os.path.dirname(os.path.dirname(__file__))) from configs.model_config import llm_model_dict, LLM_MODEL, LLM_DEVICE, LOG_PATH, logger +from server.utils import MakeFastAPIOffline + host_ip = "0.0.0.0" controller_port = 20001 @@ -30,6 +32,8 @@ def create_controller_app( controller = Controller(dispatch_method) sys.modules["fastchat.serve.controller"].controller = controller + MakeFastAPIOffline(app) + app.title = "FastChat Controller" return app @@ -55,7 +59,6 @@ def create_model_worker_app( import fastchat.constants fastchat.constants.LOGDIR = LOG_PATH from fastchat.serve.model_worker import app, GptqConfig, ModelWorker, worker_id - from fastchat.serve import model_worker import argparse parser = argparse.ArgumentParser() @@ -117,6 +120,8 @@ def create_model_worker_app( sys.modules["fastchat.serve.model_worker"].args = args sys.modules["fastchat.serve.model_worker"].gptq_config = gptq_config + MakeFastAPIOffline(app) + app.title = f"FastChat LLM Server ({LLM_MODEL})" return app @@ -141,6 +146,8 @@ def create_openai_api_app( app_settings.controller_address = controller_address app_settings.api_keys = api_keys + MakeFastAPIOffline(app) + app.title = "FastChat OpeanAI API Server" return app diff --git a/server/utils.py b/server/utils.py index e1a23d1..c0f11a5 100644 --- a/server/utils.py +++ b/server/utils.py @@ -2,14 +2,10 @@ import pydantic from pydantic import BaseModel from typing import List import torch -from fastapi_offline import FastAPIOffline -import fastapi_offline +from fastapi import FastAPI from pathlib import Path import asyncio - - -# patch fastapi_offline to use local static assests -fastapi_offline.core._STATIC_PATH = Path(__file__).parent / "static" +from typing import Any, Optional class BaseResponse(BaseModel): @@ -112,3 +108,81 @@ def iter_over_async(ait, loop): if done: break yield obj + + +def MakeFastAPIOffline( + app: FastAPI, + static_dir = Path(__file__).parent / "static", + static_url = "/static-offline-docs", + docs_url: Optional[str] = "/docs", + redoc_url: Optional[str] = "/redoc", +) -> None: + """patch the FastAPI obj that doesn't rely on CDN for the documentation page""" + from fastapi import Request + from fastapi.openapi.docs import ( + get_redoc_html, + get_swagger_ui_html, + get_swagger_ui_oauth2_redirect_html, + ) + from fastapi.staticfiles import StaticFiles + from starlette.responses import HTMLResponse + + openapi_url = app.openapi_url + swagger_ui_oauth2_redirect_url = app.swagger_ui_oauth2_redirect_url + + def remove_route(url: str) -> None: + ''' + remove original route from app + ''' + index = None + for i, r in enumerate(app.routes): + if r.path.lower() == url.lower(): + index = i + break + if isinstance(index, int): + app.routes.pop(i) + + # Set up static file mount + app.mount( + static_url, + StaticFiles(directory=Path(static_dir).as_posix()), + name="static-offline-docs", + ) + + if docs_url is not None: + remove_route(docs_url) + remove_route(swagger_ui_oauth2_redirect_url) + + # Define the doc and redoc pages, pointing at the right files + @app.get(docs_url, include_in_schema=False) + async def custom_swagger_ui_html(request: Request) -> HTMLResponse: + root = request.scope.get("root_path") + favicon = f"{root}{static_url}/favicon.png" + return get_swagger_ui_html( + openapi_url=f"{root}{openapi_url}", + title=app.title + " - Swagger UI", + oauth2_redirect_url=swagger_ui_oauth2_redirect_url, + swagger_js_url=f"{root}{static_url}/swagger-ui-bundle.js", + swagger_css_url=f"{root}{static_url}/swagger-ui.css", + swagger_favicon_url=favicon, + ) + + @app.get(swagger_ui_oauth2_redirect_url, include_in_schema=False) + async def swagger_ui_redirect() -> HTMLResponse: + return get_swagger_ui_oauth2_redirect_html() + + if redoc_url is not None: + remove_route(redoc_url) + + @app.get(redoc_url, include_in_schema=False) + async def redoc_html(request: Request) -> HTMLResponse: + root = request.scope.get("root_path") + favicon = f"{root}{static_url}/favicon.png" + + return get_redoc_html( + openapi_url=f"{root}{openapi_url}", + title=app.title + " - ReDoc", + redoc_js_url=f"{root}{static_url}/redoc.standalone.js", + with_google_fonts=False, + redoc_favicon_url=favicon, + ) diff --git a/webui.py b/webui.py index d84da42..99db3f6 100644 --- a/webui.py +++ b/webui.py @@ -13,7 +13,11 @@ import os api = ApiRequest(base_url="http://127.0.0.1:7861", no_remote_api=False) if __name__ == "__main__": - st.set_page_config("Langchain-Chatchat WebUI", initial_sidebar_state="expanded") + st.set_page_config( + "Langchain-Chatchat WebUI", + os.path.join("img", "chatchat_icon_blue_square_v2.png"), + initial_sidebar_state="expanded", + ) if not chat_box.chat_inited: st.toast( From 5f1471232d64be32a9b953a0b944b31bb2a17f9a Mon Sep 17 00:00:00 2001 From: hzg0601 Date: Wed, 16 Aug 2023 16:00:24 +0800 Subject: [PATCH 12/20] =?UTF-8?q?update=20llm=5Fapi=5Flaunch.py:=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E6=9C=AC=E5=9C=B0=E5=8A=A0=E8=BD=BD=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/llm_api_launch.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/llm_api_launch.py b/server/llm_api_launch.py index 798206b..044bab6 100644 --- a/server/llm_api_launch.py +++ b/server/llm_api_launch.py @@ -234,7 +234,7 @@ def launch_all(args, else: for idx, item in enumerate(args.model_path_address): print(f"开始加载第{idx}个模型:{item}") - launch_worker(item) + launch_worker(item,args=args,worker_args=worker_args) server_str_args = string_args(args, server_args) server_sh = base_launch_sh.format("openai_api_server", server_str_args, LOG_PATH, "openai_api_server") From 8ed1f8efca439c4895654c5fb7f4cc2d8f2cd9b2 Mon Sep 17 00:00:00 2001 From: liunux4odoo Date: Wed, 16 Aug 2023 16:15:45 +0800 Subject: [PATCH 13/20] update fastchat to 0.2.24 --- requirements.txt | 4 ++-- requirements_api.txt | 4 ++-- server/llm_api.py | 36 +++++++++++++++++++++++++----------- 3 files changed, 29 insertions(+), 15 deletions(-) diff --git a/requirements.txt b/requirements.txt index 6c013e5..646a5c7 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,8 +1,8 @@ langchain==0.0.257 openai sentence_transformers -fschat==0.2.20 -transformers +fschat==0.2.24 +transformers>=4.31.0 torch~=2.0.0 fastapi~=0.99.1 nltk~=3.8.1 diff --git a/requirements_api.txt b/requirements_api.txt index 9b45aac..1e13587 100644 --- a/requirements_api.txt +++ b/requirements_api.txt @@ -1,8 +1,8 @@ langchain==0.0.257 openai sentence_transformers -fschat==0.2.20 -transformers +fschat==0.2.24 +transformers>=4.31.0 torch~=2.0.0 fastapi~=0.99.1 nltk~=3.8.1 diff --git a/server/llm_api.py b/server/llm_api.py index e1013ed..49d8292 100644 --- a/server/llm_api.py +++ b/server/llm_api.py @@ -38,27 +38,31 @@ def create_controller_app( def create_model_worker_app( + worker_address=base_url.format(model_worker_port), + controller_address=base_url.format(controller_port), model_path=llm_model_dict[LLM_MODEL].get("local_model_path"), - model_names=[LLM_MODEL], device=LLM_DEVICE, + gpus=None, + max_gpu_memory="20GiB", load_8bit=False, + cpu_offloading=None, gptq_ckpt=None, gptq_wbits=16, gptq_groupsize=-1, - gptq_act_order=None, - gpus=None, - num_gpus=1, - max_gpu_memory="20GiB", - cpu_offloading=None, - worker_address=base_url.format(model_worker_port), - controller_address=base_url.format(controller_port), + gptq_act_order=False, + awq_ckpt=None, + awq_wbits=16, + awq_groupsize=-1, + model_names=[LLM_MODEL], + num_gpus=1, # not in fastchat + conv_template=None, limit_worker_concurrency=5, stream_interval=2, no_register=False, ): import fastchat.constants fastchat.constants.LOGDIR = LOG_PATH - from fastchat.serve.model_worker import app, GptqConfig, ModelWorker, worker_id + from fastchat.serve.model_worker import app, GptqConfig, AWQConfig, ModelWorker, worker_id import argparse parser = argparse.ArgumentParser() @@ -71,12 +75,16 @@ def create_model_worker_app( args.gptq_wbits = gptq_wbits args.gptq_groupsize = gptq_groupsize args.gptq_act_order = gptq_act_order + args.awq_ckpt = awq_ckpt + args.awq_wbits = awq_wbits + args.awq_groupsize = awq_groupsize args.gpus = gpus args.num_gpus = num_gpus args.max_gpu_memory = max_gpu_memory args.cpu_offloading = cpu_offloading args.worker_address = worker_address args.controller_address = controller_address + args.conv_template = conv_template args.limit_worker_concurrency = limit_worker_concurrency args.stream_interval = stream_interval args.no_register = no_register @@ -98,6 +106,12 @@ def create_model_worker_app( groupsize=args.gptq_groupsize, act_order=args.gptq_act_order, ) + awq_config = AWQConfig( + ckpt=args.awq_ckpt or args.model_path, + wbits=args.awq_wbits, + groupsize=args.awq_groupsize, + ) + # torch.multiprocessing.set_start_method('spawn') worker = ModelWorker( controller_addr=args.controller_address, @@ -113,7 +127,9 @@ def create_model_worker_app( load_8bit=args.load_8bit, cpu_offloading=args.cpu_offloading, gptq_config=gptq_config, + awq_config=awq_config, stream_interval=args.stream_interval, + conv_template=args.conv_template, ) sys.modules["fastchat.serve.model_worker"].worker = worker @@ -126,8 +142,6 @@ def create_model_worker_app( def create_openai_api_app( - host=host_ip, - port=openai_api_port, controller_address=base_url.format(controller_port), api_keys=[], ): From 6c00c03faa1183f6d0dba715e5a32e5b518f5a46 Mon Sep 17 00:00:00 2001 From: liunux4odoo Date: Wed, 16 Aug 2023 17:48:55 +0800 Subject: [PATCH 14/20] llm_api can be terminated by Ctrl+c. success on windows --- server/llm_api.py | 46 +++++++++++++++++++++++++++++++--------------- 1 file changed, 31 insertions(+), 15 deletions(-) diff --git a/server/llm_api.py b/server/llm_api.py index 49d8292..ab71b3d 100644 --- a/server/llm_api.py +++ b/server/llm_api.py @@ -1,4 +1,5 @@ from multiprocessing import Process, Queue +import multiprocessing as mp import sys import os @@ -12,7 +13,6 @@ controller_port = 20001 model_worker_port = 20002 openai_api_port = 8888 base_url = "http://127.0.0.1:{}" -queue = Queue() def set_httpx_timeout(timeout=60.0): @@ -64,6 +64,18 @@ def create_model_worker_app( fastchat.constants.LOGDIR = LOG_PATH from fastchat.serve.model_worker import app, GptqConfig, AWQConfig, ModelWorker, worker_id import argparse + import threading + import fastchat.serve.model_worker + + # workaround to make program exit with Ctrl+c + # it should be deleted after pr is merged by fastchat + def _new_init_heart_beat(self): + self.register_to_controller() + self.heart_beat_thread = threading.Thread( + target=fastchat.serve.model_worker.heart_beat_worker, args=(self,), daemon=True, + ) + self.heart_beat_thread.start() + ModelWorker.init_heart_beat = _new_init_heart_beat parser = argparse.ArgumentParser() args = parser.parse_args() @@ -214,6 +226,8 @@ def run_openai_api(q): if __name__ == "__main__": + mp.set_start_method("spawn") + queue = Queue() logger.info(llm_model_dict[LLM_MODEL]) model_path = llm_model_dict[LLM_MODEL]["local_model_path"] @@ -230,15 +244,14 @@ if __name__ == "__main__": ) controller_process.start() - # cuda 没办法用在fork的多进程中 - # model_worker_process = Process( - # target=run_model_worker, - # name=f"model_worker({os.getpid()})", - # args=(queue,), - # # kwargs={"load_8bit": True}, - # daemon=True, - # ) - # model_worker_process.start() + model_worker_process = Process( + target=run_model_worker, + name=f"model_worker({os.getpid()})", + args=(queue,), + # kwargs={"load_8bit": True}, + daemon=True, + ) + model_worker_process.start() openai_api_process = Process( target=run_openai_api, @@ -248,11 +261,14 @@ if __name__ == "__main__": ) openai_api_process.start() - run_model_worker(queue) - - controller_process.join() - # model_worker_process.join() - openai_api_process.join() + try: + model_worker_process.join() + controller_process.join() + openai_api_process.join() + except KeyboardInterrupt: + model_worker_process.terminate() + controller_process.terminate() + openai_api_process.terminate() # 服务启动后接口调用示例: # import openai From d7fe158d78e9fb472fd3c70e52ba2d93afc3cd93 Mon Sep 17 00:00:00 2001 From: imClumsyPanda Date: Wed, 16 Aug 2023 22:06:27 +0800 Subject: [PATCH 15/20] git update README.md --- README.md | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index d8139cd..9f3ec7a 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,7 @@ * [3. 设置配置项](README.md#3.-设置配置项) * [4. 知识库初始化与迁移](README.md#4.-知识库初始化与迁移) * [5. 启动 API 服务或 Web UI](README.md#5.-启动-API-服务或-Web-UI) + * [6. 一键启动](README.md#6.-一键启动) * [常见问题](README.md#常见问题) * [路线图](README.md#路线图) * [项目交流群](README.md#项目交流群) @@ -357,19 +358,17 @@ $ streamlit run webui.py --server.port 666 --- -### 6 一键启动 +### 6. 一键启动 -**!!!注意:** +⚠️ **注意:** -**1.一键启动脚本仅适用于linux和mac设备,win平台请使用wls;** +**1. 一键启动脚本仅适用于 Linux 和 Mac 设备, Winodws 平台请使用 WLS;** -**2.加载非默认模型需要用命令行参数--model-path-address指定指定模型,不会读取model_config.py配置;** +**2. 加载非默认模型需要用命令行参数 `--model-path-address` 指定指定模型,不会读取 `model_config.py` 配置。** -**!!!** +#### 6.1 API 服务一键启动脚本 -#### 6.1 api服务一键启动脚本 - -新增api一键启动脚本,可一键开启fastchat后台服务及本项目提供的langchain api服务,调用示例: +新增 API 一键启动脚本,可一键开启 FastChat 后台服务及本项目提供的 API 服务,调用示例: 调用默认模型: @@ -389,7 +388,7 @@ $ python server/api_allinone.py --model-path-address model1@host1@port1 model2@h python server/api_allinone.py --model-path-address model@host@port --num-gpus 2 --gpus 0,1 --max-gpu-memory 10GiB ``` -其他参数详见各脚本及fastchat服务说明。 +其他参数详见各脚本及 FastChat 服务说明。 #### 6.2 webui一键启动脚本 @@ -399,7 +398,7 @@ python server/api_allinone.py --model-path-address model@host@port --num-gpus 2 $ python webui_allinone.py ``` -调用远程api服务: +调用远程 API 服务: ```shell $ python webui_allinone.py --use-remote-api @@ -425,7 +424,7 @@ $ python webui_alline.py --model-path-address model@host@port --num-gpus 2 --gpu 其他参数详见各脚本及fastchat服务说明。 -上述两个一键启动脚本会后台运行多个服务,如要停止所有服务,可使用shutdown_all.sh脚本: +上述两个一键启动脚本会后台运行多个服务,如要停止所有服务,可使用 `shutdown_all.sh` 脚本: ```shell bash shutdown_all.sh From 1a40d464be080ff661c15c912ee2c2fcbec76847 Mon Sep 17 00:00:00 2001 From: hzg0601 Date: Wed, 16 Aug 2023 22:26:18 +0800 Subject: [PATCH 16/20] =?UTF-8?q?=E6=9B=B4=E6=96=B0model=5Fconfig.py.examp?= =?UTF-8?q?le:=20=E6=9B=B4=E6=94=B9=E6=89=80=E6=9C=89=E6=A8=A1=E5=9E=8B?= =?UTF-8?q?=E7=9A=84=E9=BB=98=E8=AE=A4=E7=AB=AF=E5=8F=A3=E4=B8=BA8888?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- configs/model_config.py.example | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/configs/model_config.py.example b/configs/model_config.py.example index 1090f85..8771cfc 100644 --- a/configs/model_config.py.example +++ b/configs/model_config.py.example @@ -46,7 +46,7 @@ llm_model_dict = { "chatglm-6b-int4": { "local_model_path": "THUDM/chatglm-6b-int4", - "api_base_url": "http://localhost:8001/v1", # "name"修改为fastchat服务中的"api_base_url" + "api_base_url": "http://localhost:8888/v1", # "name"修改为fastchat服务中的"api_base_url" "api_key": "EMPTY" }, @@ -64,7 +64,7 @@ llm_model_dict = { "vicuna-13b-hf": { "local_model_path": "", - "api_base_url": "http://localhost:8000/v1", # "name"修改为fastchat服务中的"api_base_url" + "api_base_url": "http://localhost:8888/v1", # "name"修改为fastchat服务中的"api_base_url" "api_key": "EMPTY" }, @@ -85,6 +85,7 @@ llm_model_dict = { }, } + # LLM 名称 LLM_MODEL = "chatglm2-6b" From 8e805b18dbcc0c83b9cdd6408e13e2aacc30267b Mon Sep 17 00:00:00 2001 From: imClumsyPanda Date: Wed, 16 Aug 2023 22:17:03 +0800 Subject: [PATCH 17/20] update README.md --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 9f3ec7a..5445215 100644 --- a/README.md +++ b/README.md @@ -214,6 +214,7 @@ embedding_model_dict = { ```shell $ python init_database.py ``` + - 如果您是第一次运行本项目,知识库尚未建立,或者配置文件中的知识库类型、嵌入模型发生变化,需要以下命令初始化或重建知识库: ```shell @@ -242,8 +243,7 @@ embedding_model_dict = { $ python server/llm_api.py ``` -项目支持多卡加载,需在 llm_api.py 中修改 create_model_worker_app 函数中如下三个参数: - +项目支持多卡加载,需在 llm_api.py 中修改 create_model_worker_app 函数中,修改如下三个参数: ```python gpus=None, num_gpus=1, @@ -284,7 +284,7 @@ $ python server/llm_api_launch.py --model-path-addresss model1@host1@port1 model $ python server/llm_api_launch.py --gpus 0,1 --num-gpus 2 --max-gpu-memory 10GiB ``` -注:以如上方式启动LLM服务会以nohup命令在后台运行 fastchat 服务,如需停止服务,可以运行如下命令,但该脚本**仅适用于linux和mac平台,win平台请使用wsl**: +注:以如上方式启动LLM服务会以nohup命令在后台运行 FastChat 服务,如需停止服务,可以运行如下命令: ```shell $ python server/llm_api_shutdown.py --serve all @@ -352,6 +352,7 @@ $ streamlit run webui.py --server.port 666 - Web UI 对话界面: ![](img/webui_0813_0.png) + - Web UI 知识库管理页面: ![](img/webui_0813_1.png) From 85241969482ebec4b98d7b4bc546bc19d7975f6f Mon Sep 17 00:00:00 2001 From: imClumsyPanda Date: Tue, 15 Aug 2023 12:08:43 +0800 Subject: [PATCH 18/20] Add files via upload --- img/qr_code_52.jpg | Bin 0 -> 287811 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 img/qr_code_52.jpg diff --git a/img/qr_code_52.jpg b/img/qr_code_52.jpg new file mode 100644 index 0000000000000000000000000000000000000000..18793d5601b591998bce7354802e0b9c044f89a4 GIT binary patch literal 287811 zcmd?Q2{=`6-#@y{Q!>x8O{I*PB4JaRl1xQWc7;qKAzNW7$xIYVMWHAmbH;5}sbtQ) z*;MAerEO(T=kE7=-sgGW|NESCz1O+Ub*^)r|I*s~ZmoN*eSh!!JAS_3oAH$~3wy1yD|Kp7;K~Gu! z)h=ZJN1wlbQw z{o59|hi9-mxI+c!e)lU^L%^J>g0@{)$dy0s2+$V33I+w*U}_*?ufN-cf7%!SZomDj z&q;?PpwCCpmUZ{O-~rkzpsjlGKVA3wPi_Cpp?`k&&+%vUJ3IqUIf8Fta7sf*As;9h zx&mE>EydZBV1UzF3uKam}Cumzi0gyYS4yl5+ z7PKFnT7TvlJPQu;@IU5H^R1?%F7VAl@?&B=iM5;~IQPTkEg;Ogj!k5Zg3^@pBJgse2GayUSou z@)->LiQIpOM3bxm#E+xmv~j?S*` zo_Fs*3=9qpkBojD8=svc%rAWV{$p{8wDEKE7kLZ$y$vM#Z*sur-xU2PdISJH%&e>| ztQ>#nVPX#ZL#zNRo17-Qps78_g&-k$t(%;}htr=`v~ekDI}k-KUhU@=Rn(c?P5ML9 zUlje%2)gxui=uxL^iO&iE0uUOa)A!~lLjQk08DIW4pt1jd0~!bZ4UL8G z@}or)_daF*Z|Ctum;Z0Db>X79#WBcbpZ=<~37fF}|8hDoAF^ZaHxq{J|Le)b82qo~ z?%U_r&49eilN2#&mZl4~GSLInz*y z9)(gUB8CC6u`-}rZ=yPI#N&NCI!frnGV0c9ZrdZ)&3YZ%5tn|R#+~kPe^+z(fI@@# zfY10|J>oza7b-T50dc%wKy9iQucqNKiDyv1xclMXVVLiF6c_q10}^LImvL!PinM~3 zgT5QfG72Q!$!u-Ivd?$TZP!ZA^W~{ePiac;)jw&+f%~X9|1BCl#6nlF2V-$&Kwpwb zwqRr~8VpGN2Lp;9g7KLQXj7i*2!7Eii2?OCFdz-8QU$42XCtp8;*G;d-|d|DXK{K4f<|9xFDN zN9V4_(9ezjh8?pP3}IyV#HEnNhw;x^R8G1ohBzhgy3K!X`v`l^V+>;0LN4?HGh>0iT^Jb(I84%N>8;kzxf@@>r`!1gU@Z(x#CH{`X zLDp;CnwaHA2E^VUHO+wd;lLSW&x!OoIBBcS0GC8%D>;i;pBh@jjbL;OuS`xH?|b_Y zwUWKRFk`=yk4OT?IzQhJWgtMTfKz>?q^|h=25S(5YtfBxLG&09Ywdt480j4b)KSni ztv6V0bNZ{*e9g#XvSdnUR+{{rS*q3fga`YihPn0LedOf$<#fivF;TC$oOr}Geun?T zUHy??tm&Mdfz=;46`pZmyHzM>0S~N3eMMLICBXQYnTpbpa)Q5$Rm<+h^mEu37{kKx zrjY|q1FfSOdqy9qzV?tym9eYTSAS)~v8@qau|3$v>fwy+{(%;4QO3HTtt4s08Ct*k zx+EDwnjD{;n6?#u^NEKe)pAN&%V0m-8B5t{Gx%-biYcL7glbDmZV{kbkroKP2H)ci zC1z>X4vp#dl5=b8Hg!2Z$DW>Ko4*Ie^elM)(TVKL3klY>Cx%Y_V1wWnKV*|r?>i&4 zfU9MI{KBcI9WeeS3JMKmMM_S-xp$KEJ#N#lHG5}oP|?!$+oIXE0}7(fsi${)oVSpe zJW%-(wJOV{1FhZf&eHE*=)vb>n2{+Q=ZChld0oA#o&zS~sG0%(yNZ z*i@Z0=<@X3RjrkTRdB3v{FFYkV4r=-{XLM3pH{PXg{0VfICfQx=StWfV?cXRh^{SR zraO{{&a(@Ti8Fu`b$5R;bbqmYE$4IYs5*HoecZ>{Ig9RVyztSnJv9~bY_q%8_>#H? z7O^|3AKn$U2X3>EIy8fw=^C%iAGb)=osw*|3YIUe&3iHP$=}C+hxaLkMEwFg0h8~F z3rU(l+C$$fUPX}1er?ad~y*cph)Q&Y*iq&7XiT#da>kC7oInSY2(I)dZW4=27 zd=Ip%d4wx+kLX9|TqS(M%wDStd+O#py6u!68stGgS?(DgQZd=q6!D?TV#9cVM^5EQ zVGR9v2?^En*|4f?i9=#JSOYGAQy{pxdqLX1Ip{IP`S%dqW`gtU8xK4UWZ0Skd7-6! zjrE5wjYI^^WfIq#BfQXlLpoE&=R!<({M>P9FTJm3dTdHAIXt;5FN}2L0!g8VTv<3m zmmQMBe$~>Ne8>G}o14=zOj2z*ew@sr>XrYIer~TvrU8`#a?b;H!r~ z1oRM633jwAr|g+-Tx#glo}u?wmgFi2HNI6<)ur&il0U+FEb*0Q_w{?2dNk2XtfxF# z0B9A9h*QL?gwE@?r^QDjB*Kf`d@4Tnp5J`!4LM6F+0QQwpBX6ISZMwk z-`rh9YVI!F;N^hlKJL}^L+EOUZnfi6SN;%l2P3U*PV2zH!cY7ux2n^~vC$;sdS;XO4&}OZnctDPn?t1=J1S36Ms7Q9slhiX5r;{Xu7%#xB{mC_08hdXJ!gtI+{V7F(1O^axR&;ZrG*adrdrmeTM>|UU@nLq8h@v|G3w*p?KX&qtR zCmGn6^{lBWFtQc(<9oU#r!HL%N3^va=OM(k_f0&SRZ4C_VXICJ)L1sT7PeNkU77#w ztY_b5Xm+~Nz)CnpO5xV)WK(hda`JLQQg`_z{tH{$^C(ZioriJwvY9t|R3WLux4x4L zNr7WEy~~#x2Ad8(?+gsRF=R(M?z9-2va7)3OqqUDisrcRu}7>Fulv8wJ|16KtlDnKbXR-Q8M#FtU_jMj-RSWu!U-J3gc>@k zMB+=J+Fl)X4%4$~&aMvHgSDJZ6X;HgJ<4?>1h1yDt+}pPKly8&zZ{Lfa(^*G$XVW+tkT6WNFMu~T za3A?N29i;K++N$h|Mz}J570A6=Z6!~$liV&aPkWMl zSnaN@I+WL&e!~m?JM)6B_jub@*|2UoWf&%3E0ibnT`Uqb#ab!Z+`zt}u@ zDP!6%T=aBdN@7#MZ4r+Pw+i_=6~tS?v}}FP$Fbw^ljw=9ZXD5W9oeH7*CH3;SYJOB zaRHxVPG}qd_UtPA^70d7sqoqQnfe^_jL%DxA6IK~VD04ddDH(r#$ycq*SJXq&xfe+ zQS*DrAiStNMbMyWPL0m|B63hg;^_9C6l-`)nUqa`u=az6dYJ1|XbTfjEIDc~GHQi{ z5-BGhIgjf0zP)@|wRAM3PE6=+>fV0r!h@T1=6V6lYoJ9Alhf!js}v*ilLsQ)JtuIA z?u#aP=AJ>VYynP9K9ePe<%xK+)rI3`nwo zF8h#H$$);mK@Ne~poWjGi&->FAIOSEe+vHZ_bjNU+7!UF{TGN~bQWI})fYFA`o}2f z_WieCN0C_jR zCBK0@-HL_V4AI_T9m7^x!YGHL1`h1+ijot{38g*K$uh{iCzufGr|?QJ_HGILDGyKO zR%goX(cd6uX(M{Zb>YU=w6OFZ5?2o{?;_s@Dieaabm@<0h@N}Uvtu{`+)5D$0T&-x zl>d|{-~0xqcrOE5kofxsy!goSDc{PmS8kXyKIDvOd6wqav+lErNppN!^LB-R!Lzi26V`J+~h*H5M0qc(S2Q&r>5OYeF6nlIGX zMXc_L5N$3n6~pF))@;J$$4&~N1M4U~(Z;kWf4I#Tjn5{}5S{wIHqs?JY)JA5=Jdd? zM;QJeb$zHuKIC3+uUdgA`G{{EcfOr)m&UU>9MkWaVuoUv2lZs zDxpNVsQL~=(1;Px*IZEtBn%eXw$Il$%|-)-sio6~)CK@OALNW!S>7LwO2(`C+_b4R4TNGETIVt+1;5mF-E#=p6?26vV)oQ`k zrA0-IO2NK&o(in|=BBI{an)$VzM0!imGP@ze zC+C2MI*ZV^v+#3UN_TG*>G$tc6Lf!S&)imfXBnd*|p4qkQh{8TLOICg}*d44-xJFt;&`Wwh%wov* zYH6!-QGkk$bEJRH@;cBP85CxCbt*i3;=5&f{vm?CnFR2h`e)3LdSXdu9cj^6ilm-h zeD3(M9^RTst;S4;PUQl@D^Ks;Y?b(-^7}ZDO&Z+RG9E`2zDLd`ZmnA5;UpJSbPa0d z^yZ;ul+c>BkKku3#XHtk@*M%RpIr7;{gw*P;YaH$^@KpNh(omJ5p0BVX5TOu+>W0sC=bM|OHI-V8 zt`p5&!?T(BX@`VcIwwt7VEhu7bW0k4Ss|HwYG5a^GPl{862!M)3^V=woPIat)d6(B~GLJ`eyi0;fBnktk=9vFl#+ooXzLuU9Vv2GtW)TB;)k$Whx zrpx1V`NfU8`V`x2X(8jzB-VE)v$&sQ=4_FDV3D4eMtISx4PjF6Y*7!I2kYB0x3eOA z4zn^Nw4O-jd2(XT`cW}q|AI%IU{kKOzY|yN!=~BZv96aiPaWxTcw1LAgd z9LUuat?(BE8o$?r6AjUjSvq1FxwE~ugSGj!^$o?Vw!4QiA|`PCUyde1l+IkJe1#p? zTTb6GN(xJ;#v#h;jkCKB+1JM$8>R{rzYo8ZQ8_Vb&Ve-rVX^Ozh$E4Fu>het5hEb1+DH^r{6%KM$zS(C~0FJty?V`{a3ETMH38&6#5&eaE@Kr!LAly zsBfuILrHwMbgfeq?C75d)uIM{R5~=$!(X4CINMdv>0jBV&`HquxXL*mgdx02E!Dg# z#__b3g#neCpjQ7NwgI%*2oRyM>CvL8&J?}gxnim&t!Rg2_ruqoGM^8wh@Umt;%F|w zbDi0FYUje|19ij-6jhR!6mgdnHIT>i8NK)orYni8Zsm#46_ltFx%X0Fdo2dkeo}{b z#^)}Ye15oZTXc0IrFJI!{pU|ObxlmCN3cIyjx(q00KG>zel@CMZAM1aul z)>*19i8?Z#-J$Zerdi2t=z?QlXmO)k&6l@#L{zgXd5Km8s{+WGySUm!iC6vn^j zo8Vj3e3X|w&3k%_w@WRQxh?oT)X5|pA|XQa16H#^Mw=9vhQkA?WHz)Q_&cnh#u;2H z@FPDObMa|PGIAl0Olz%K`zLZ1Bx?5CA5MitD1j!ZkE2xKMmjG6NLM+cq|ui5wQ*J> zO|kzM?&h^DvcaB$lJ;^xm?NFHv~NOiO0RoCUeNsFJ0~ge{r=0;pV(mfj#OHSRObPn zIb1SbD9&0>fakrMnnvMU>qx>UZ-=8teVDy2Rw>_$wv-;-M%$ancoA>RM#T`VXZ2!R zc(G>R?^zL3@44rX8TG1s92pT^3>3&rx3|8Z9H5-Y69NUfJv3ADg}z5v5%{>UT5X}W zVoO;$HYINpE;Z%oE2x{EzgeiP$6t8!hfzuH7rHuiFUhz>G&P1qoMk{M5nL~)ythl!;zPz{8!IzczsJ*_ ziOpvjl@*roU$J11Mo$iQ8Ka3BH?zb@FDg6>)!O70!VRx*s0{79TdYseU+gJ<6@^0b zh@)NExUpOj68oca2TLLmw>$q}x245D1Lvh@-<h{}R>>_V6U&QbqG(;f&;YDxs~j(1iKARc z9LcYcG*VSNT{EV&B&hhzVwA|GjPSB)?LdjQK2fU;s$CCmzI|gR&Y?^F2_741(Ith& z!}uClfT}mQ%VBQ2qoV5iQ zGGB&nd--{`NPzsYKLZMqjsjEl5#ej6qlVQl1KZ5Mn6p}26u6^L*!iyM^Qp5v(jRcD z@%Orf6UF&=F-hMvK~>EV?eh>_3sqtq<1w+9a1CQiEzUrukvSpZME57C>(AbVz3x#n!gvwL8X5DdysaFO@vBDqD} zf8U z1@(q0Sj)Sf@pT*@Z{-m@Y|0wcB^gtrU}gtFd{cplwrlsa+8`QVETc%2dGhkCX~D7# zJML|Bh1FTtKHVn^d1Lb#veyoER(=q8;2F`~Gp)l!f2NyR_JiCa`(<5+XReobQ_%ID z;~gIP`-iZy(lYv`F7w8+(`Of_nMQu`=xJKB=LO3fWN=q@cJiBZ%BE_XpuRJatm!*` zlX7p8l+N{2MJVQoV4qoC^TQA%v|cgIF?BR(!+|8vthxU%%gS%7c{UDjdd?rMoQEh} z#t@J3LD(&~VY=Mc2$Rtkxv8&RLBWw`1%YH_{vEU zwvqmnqgcUpAj9T^c^!HqBWl`@yaPbgU0smtJ*!sXk?ud|912zDGh5n099z@ZFSdBo zD$tjnaF9D`S=4Zf8d7ARXEjI-%b)W8IX(WW>5E$XWkGrLhprPl_4`h!EGB|zcLIc1 z8Wb;`*9u4vzKx&qsC4~j+7-FhZ5GVeEvkSmo$Chh3A1R)LgdRshSm&-%dP5_pR=+2 z@Va~2hZ?bLJJ*Q^r3$k8H|1-RS>#mv>RU{DC8HYpO}Hi!sWpIs+kwy;hM z=&>Sa5{fDxmZ0h~^6=&R>hZ1{7t1bEE~e*I?Z0$}oB!Q@!l7$*OZF1t<=;^Bop{n{ zQiKrj8sOpc#H{C`FH-!vB+Va1lC5%4#sl_O)>#`lXM`SPhxljeOGpD(%Ht88mknu= z(x6yIXr*y9cQT;aE*QqWab9_dMd-$XMfs#XyD;N-8kP4eZDm*4a187K_xv>`2Wdw&GSRcFe-GOxAd6-gs zlS9ap6K4WEyc!2rq|P1~xhFW5A#VIWKp~~_m0VhK{#_<|f&hS-HFT187;E&O`x^bK zj@+4X9by>`D#ON@5?iwO)X%w2L>heHZSm~-n6$&H{#M!dtHPe~_VORzqMX} zsZx2yW{JOL;LeV#ff0Qkf>IY+0&Ww)onIhn#Mkh&&CT$sKYyK+^wQHHcB(e>;)R^~ zDwM&|pM~Qa0m>jDiOm5}$kATDlsxuO*B>Fx8eI))pFZ`zw(Ag~H8!Pw_sv(XSM9_@ z>{fW^3v)nUxwlKgH(PG#Xs5*(JZt>ujB2?fS_1 z%!Qmidr1xaAC`J=y)I-1LN-i$0_JNNC(@#TWRuU*5<~j<{kBtRb@7HAw7TLRqt4P@ z-=3;&wyLiwsMUP$+@Sy3AbbqUd+>#0Tiqv5!dSr1<+g!&+FZ(>r6v4oqIjTexb(Ji z$vmAI_plt%ccyb5#t~1V;@voD1ymFXZAIK!KTFe~3oOS|4_{jxJ#f*dY}R|XX|s}Z z&bbdqUMJM8UH%QQ&XRT+O_FnTgzXFLOzU`TclvAZElsztGiTn7Y>95|-;e#4X!*{2 zO2X91fm2o>kq#n0{3dD_(&I?0GUmsMF55LlGSAFz8ax)Y(bj$Cc6Q16O`k!>lO&a% zKyFJ)n8?Yqcb`Ih*Jz1o{9u|Oa)ew$6zfFAqft$$(jRV8BmSX&B^tc%27Miq*eS=% zpu6GjH@aCgIXrGWU>|3L^LHGLB*bL(ZK7VNP=TpDj}gT_YGpum8g1*s*h6-22SQZ> zCA_0f4OgcK7b`Z$N^>0EDZ%B`#&kc^P}-T2VOCu{mO2wwgrWs*>}B~mO6Mkbq4AlR z>X@Acvqg!3r*9Lf zaf!xCh>H1;`co@)RZHCC3CoT>3i2ibi6OhOeaBP%HpJ+>@2}v9E_u;2WU=NR!i#eN zB)Pa+J`{DIiS9o`Vue?W0BVxdhTb9ooSGmEcM33|+B}-51}OHJNwHu+$2GiM?QuP95F0ys&Mb!0~5D zJM$)H$Xv8%fPWris?DEM4$ud3Latr^^w=lZKgf65^ZBpG^&4gWh3#u8wRcUKGH*IT ziO4G)P??C)E9bxo1^iUKX-|wgXW-c-K@xHim&grX3&44;A^_|X)+x#j<@5)e26UX? zZ)V`5D#Ht+ZpL5{OI`sKG3`kCGWqX3@}FGtKTb4b_i z!TI9G!)C=+{6SGq3HcGS2-BX-26B!)YOLoENPq8{DlX^7Vq^F^{b)VZ2w6%f{7Ci; zTE+CmQFlo{!r|j)B=z_jrll{VDB?OKI!GK)g+^gKVtvCuUy31U%pv&4 z7_hc~-$+AJodK^Ec&0HR9RB@i?j|2cBF` zfLXn(kRx3(qPZ%O!5yP|JRu|9AydL%KEFggVZCio@_=x;z*8(4aP5y}%(Na=oVdh* z1km2`Z?qc1?mRMLKqE^Ee-bI0`}qr1<{=K|Z?K6(I)VTV>kKC=}cVEV}!Q5d9raP}jPYd(dq|sdnh~ zu$#5@gq5hDPxA3oo@Sv^bE=J_vRcynDI~c)s+l+7E2$ztH^?3VaLgJ)N zn+4=NW${AgH%Q3Fe6F#%)IsM8oaM1mUi0&FU60>BtC!xTAb<9#PP3Dl)yW`vF8Ndw zDTS*l?y`0qn|vs$h!~ygiB1A5y4s>+PuTfHfXIqx^h85qXSSW&^N4ORvL|l^XmK_a zEi>dktsrXeI8{2Pbvu4YXI*qj&=tNkA=RhOb)g}3X>LG5FmxPf$ik!T=WdHi6~Ls0 zBxCQBP=$ieV%muZd0p50R*q0u-s-&?Do>D7`>AJ`1Fh15j%}*~PQ7)xP{aiy?v4g7 z5Y2)t28LQ=r8>qHeC(DapK28!xK?RVHl@|8w_T&cnvx~uXz08N5F56KU?s1&010Yy z4eet=woZ_yzIUVvAsV*yPS^XDk~K9W_g`;xvA7z2dTDhrvsbZKPx)h6+J+81UsSl{ zylwp4zhu#|xn{U9Nm2V~m&`%_JLcwYCtpf9>^CjndP&^f)io2Nlhjz`qnOn__Hc5( zLUW(uy`e2d2DBZGPDG9Ur0*z2f{0awz*ze32z%sv_*^rO>5v?*p?@`mZD78Ma`301 zMlI}f_JQ3yvGCK@S^=l_b{fz#;Wkekeqsjb*)|vYL2tPFR9t6Cd0f=)!Ro^P^{N+T zC4S+7feKcaofJa7&!-!XvG9L>-Dp0n@)pz{fI2`@D1{Gh%f<2GJW=E2tw2Q5Ix#6? zZu&Ju^%DQm@x=q60?}|{nL}u-aT1hEO{Gga<{x^RwDst47Pm_^uoVqp){g{!RUsGC z$_r@4bS?Ujq}U2&4i@+MVsWDgNw5CxKJ>^YQN^-Ml~6xay=bSnPx>mW);{H;1;sV` z$3G=c3Nwg7A=xARCq#=(#~2l`bPG`mah7JGzUeack-;MbmL zbO8u!G^oJ9aS@0LJR3JZm3_-V z02K1A-24+6(6!J3Gl=%YY}l#~Y^8~` z4qbkiXmz@w)7{w3a;LL5W@QejAuo{L!Vvwxcg!G)c|DPVp-J+D~Y`yTD8*d$9zfL{+ha9g(`#d;dQnjfxT^|eH%)LM(e_i zWryZ-=E5be4MR!~?v4uxE6!yvz&EPzkDpC4+*$Goq)IDYVc@0~NneF^($fckfsB=9w zze_Vn~8oQn@ENhVZta#aZU|F(yV`}=G<)E$3Yqv9s*LFX7QrY$3aYne( zPms5cMJ!0Y_#%)R=dMd_VL>{Ml4|3tnx75n@E)FUs1fQG$<;6zo=^LD%5%5&T~0!} z+jGo!;3TmdE=x8dY2;)g<=pWQWVK22O4hV{xV%@Sjijl}wKe6$=M@>RI84~!r;(6_ z>X$Yt8*SF3tQCe3hvTLQu@kuTfykc7rZk{{s?i-su?ag%=bEKO+S=afoxRx9Nas27 zYUT$J5v%p_JrwIKOLYaJXicT%grEAdvtxC#Ko^{tctBCk;zaHc6CIDLfmeP}&~Te0 zd=V`e!QMntyk2xON@4Lw*7oCupXd9tUq@?#l&nN0c# z?t!kh-*08%?P3;MBkX~S$*T&Z3Zcn@#OyX2s;jmZz0(-A=uTJOb!~fED$M#}&YbJ} zvd2Blia$SpZn}ML)-lsVCHE<8Jm% z^mH2U%ck@4(lTWTryB2KuxqZa(Sw!|y{_d%DBSL zZflBp5yG?pr1)Tj5G}81Z_6R%7lBu(O;YM}R!Onnc5LlKZ?7vK)49rW^|#(QDc8T} zzM@~wNeuj3)<{xaE^stm=8vqEE$1{X`nebR(3J)P0@l3l##%nRrIM9lC4N^#1k{0* z&rQ(zZjaP>M;xIX!bU2=6;}Rp)^}opHa=FgJWgCNUX(i<9dwtgM}#WjbG^GL-`8op zJ0V!@$<*TnRiXB82QOx5*URXg74ei6k)0Q418Bc9SiIXn?cc>zz^m(Xd`uBo+OsIb zMYxLITxdc^#hn_>?XRYp_i0T%uj~lFaXx=;pQM!t;nDp|J5z4&L!ME@fvo~D1JRn2 zHh!;-&z};6Sj?4-`&wPk6(s)j+3#ym;Ii-S=?fXWzT{I-wOp6Dj6_FKZyqr` zx1!XIK9&2KYb983j*gdCV9n|=t zR>_gLV71Jt^7ze{^0^$|g()LzYOj-T^PB6-#+aa%_5l~*0iY`&f(^7h5lTLNz(B8a zqCCz`@y)Y6(RzdBF2XlH(DLh4wWP_WByZdV_6{&#~4!A83=EZrS$9vmQ z)!#bFLj z$K+rWRJRvZ%$Cl1j=~Z(1mZ>%RadVY9#1+9IK-A`r);_M;*qcN`0619Y5jt zF?MtL?mLR*WTA(M;WhG8z9lbE6%9Z!fVm*9#x~VRbxG5xuujj%>!mN>9z@16pLan%qv!kiMmPzLXqZ1MnTFfW zqrHVnruwiKN&b`e59hu1NwS_y2@{Gvdg_#Yd$FB9bIUux4URQ7E+9dAhS)vbzGSJ; zTtO0P9yq!nigh+?d|_3KaCY=A5Re0WK<;!(Y%!|0Aqt%z3; z2Q{O{#=>DFR4T>MIoG!(N z_3EAmAw09L4@!IU_FcNa6u+SyIrXt3zlteC#KL4R3x&RF->b9#=-}}-dv+_}EFdSJ zlx+0Ud4h|54Q#1`X!4z*kcacNZ6iwgP;;fr26W+GqUlEImb(- zO^ETH8CKk7>|5?b87An`g26;82>5RSG^p($T^fAa!yb`-pw#}}t8?D_Zs>?@Uwi4B z?^HRYrWcueDY}x2AT{QZbUnaaKg9nvE`P|5gD42&yD7m}I)PJC!P0FgtDQ#O<-8`g z`e&KYw3G-_@O_<#qk_1r8y4_Dg7CQ88K$omTeL@tVm?&2%oy|q!{4p^SuC!OjzT@( z+KUHd4VsO-+(dtV3|LEm^&@kjHJ1Xv@2-6e%IhsBwv`gU*bsq zTgO&U$K;#Qd>u3tofpI_x6V#4jnra@q`WvWw~*poo45Tc<)am0l z%a^t3+y{YkNQ>&j)#a^N5v#}s#P5kUXb>H@Kd8IY+dlq2-Zwd`gw<)#Ed26-D^Hri zUc2=(@*e3&`0j=H(+_)#JXSX#ZTZpO!1&aLmhy5igDN<$Cthb8vNqOW$eT~~XQP!u zMP*Xfwf9QPCa4c_aX5SrhRel|tmn3mR;a$N^R`Uhuki+kyT{+~jS7om(24EW%R-eN zs(1D=OA98m4{j5Hwdw#Q9iVsS)s(M{5ev+a_oT!Q{I0t8khG3*zW4}JqpGjXNfU~f z+D|q$Rahxq@DVD!6-ns5aw;YQHz?nS zR92hF2d@BPVOh{)K?6IE`&1BT#(+2`%Xl9$I*Zvk6*Zm9iNx-jE(%DQeZpHEAG+&Q z81v;-kEC-AnH~>#qYDN1b1a<2kFIM_rNJ_@UZusu0V!dv@GhJ;I?cdqh4%V~6NZ@5 z_Huc^>A*bul_N(@vN1 zSKnpfkkcCZQX%E(NMPaDJDQ4*WEHz5uGUYYzXU^Un5Vy1*B8M=?g;!Ee0r!FGhsW+ zURBt)yJo69MTbj1OKG3HmhXOnnrv40a`7&>el&YQzDP-2!iZ#odV(VYkLtIX?W!CD z@)+#GY%>fdXBmu)yl%&1XYJ726$0lRN<9qv1?$9 z-c%T7<@$AJ1P^$u9=DOx7oA5IYh*x!{!?%TiSqU-UpD%3;CLUvG!Ihr0H&Fb5UvoB z8|_(l<~(lid;2y$-qOExcue?{PON*fsD1sNW69~%Q_DDFgyFUEu687h9N?N_XxTn( z)#T*2wD4_8109b$0-urF+tU1uX%(`Cth55I@Y1U9RDqwMa*3z`64b;)_DBkG=J;D;T>@282W&bbE=;};+I_!{(?vqziHPB{ zPpzf={T>N-DdxnJiL~qbEI=co(TL_y`2^bMKsR?D2lS@a zf&2;41qlCHAY{r~qa>5-qvSS#Ox3{ezeh+ipbB-Erf-eu{0(Gx@fXk)CjtJd+7!uv zJe^O0xtEE^Yq(elgRJg4l;9+r+5tsY6nt&F3x$}_; zY993;+Ziy^d;m^mK)W@_Up0O^vw zpAZl!dKyp|(D89I_`#=te*=Oq8mUAhMI`6ho;FmROJ5f*$>mdd994Ig;@mW(%hMy! z!K#^@<-R<2lKG?MDb~9xUsQeryB1SfHm-pvpi?el>S;BzE2*8j+fgyz3X@)Mp7K>r z(02lS_m-CWNh(ZSGo6Uej^iluyIuiQt}pUOmHnpSaQMetV(6OD)H&i-``b@(AZIA< zGnydjdhDHhRb$=NO0z5Xdam}rzN9C}6=j0*(?Gt+rWah0fS3j+7BOGTSD&c?mWnaP zc|N=yr!;3a_iM?fCoye<^$Y6(97x(D2PD?=0q6TSpS=@`$=NFquD_7_Sj3_p@BHf! z7>ErRU=R>`CBrZ?nZ-^jv_ateULo{v_@>7QE6F#FbIx(Ob{8zg0g!+@&l27u%idhX|_k?*bErx$rEq?FM(I=}F!!Jj~ zgdsm(XYY>Q9lu$=B?@Q^FxYUQwUuSE}Xi8Mtd+^Nm+sxc{tGx+06a_?R@y#v6TITGC>Ue{H5G`y-D=x!RPA z$wH6ip;ua0ukUbr>Dgtjuft>%;Ye|Y+sx4yQC|b?`ZwY6jydytcwkcYT^d|1m$b<7 zekyAvn<$*#&TKMi;(+CdNvnP`B&SGV#`QYV`NUelV%#cSyj{E_f~BB1fZ)IIn=lB} z7R-Qv<`M-PRZ=LYB2Ep`Ip}>e5;_`!*eWMMDYXMA<9z{!_q7bVzMDx_u{uncer9T& z!x`c5ML43r#!4_)a06O_2d$WTZZ41?tJ39?@}&92>+vI|I%3}jbnlG&C^V$ns$1gC zZvQqD$vl}kE%Ast0IJ~yr_X`33EIom^4k>;@&b8(VDov+_@DBK2ve<-Kmo+>pI zx)cszj#eO-KrSxkA$x3B>cN|3bik^HQmyaJ%}^DuKNijT)@<1O&4RqQZem;tJ0P4a z`()lpb1hI?Djwqdk&EjKqwlzp`JB|VD)u!pt)03v@5ag1?a^%kJC2m7FKA|C8Tuf| zlANNTBb;x!=J6uE*7XCrd!J=KOD`=e&}@0ne=C^@pBg7ZP3#40b3Cf^lJowEv!wPH zCx-XE5ahU=S9x==-=uui_-?d0FBIh!)rtZoBQ-$guF%rfTZAL@hs)HOG@kc{&0+YL zw|{+D&w=IGKCN~@cRQr7kx5Ta_uIQC3uR6Aba?<`W6@yq#pV?m8G^#?rqv!QWs|1z z8IAv@1qv5#lKSK9{h#5t;ZBe>Si}&19T52pwL+VVtu(MBvg!WPUP8IaWH$A=kE6IO&$1?+qQNGEe8;dhT42PQOJdA~{T z9$`0rVARY8Kj=J~bURUNf9Fnv;8jqAyJEaI3Y4TDPy32%cSH)h4Z>pRLRi-mgCYJ> z_P9pv!Z+c5BKcjiKV=r?O`F0mR7T@C3)3Dq{n6lLFlPqX@=j4>(SBoN#D6_hCBD>u z#J0Nq&Y1`D>=~y8bY{|9aF8P!zRt_y>75b0e&I#N}n zNDHVm5fKXr2vHH~Akw8QI!YB3P*Fk=umBNhQY17%K#bCR5)hD{fQCSl^_=Ou_x{G& z-`RVNbAIgc4F5cuwdR`TF4uiu*Tmopw;MoC)~OxW@`9;+@-9MV@6aeMa<4n%qb>C( zl*9mmBXC%W3fykTagf~yB+ju>lEC{!D7lDEZDLQUcIHF0^99}hfKr^%qx$d)t26YM z3Tib0wyIl+YCJneL^ha11T0T)cyt?GSY>3*`HbD}qdlucrXaS~>LI$j{&XLX=5jKwMFc}Oz6_VbvlBqo)%B681Z+BBFLMN<3V z)OEN&-lX!Ze_8DG$2*uRTedGBD9-0^_ZScGFcs~wNvBkJuX-L(M}OqI#Fw3VLKzWO z9{rk$f(1j`f;x0SK_4ZI@YQS6hNlsd)iK6x{kJcN0y_@;j75iHvp<~Ej{izH`k9z49@%&U;02Q52)C06@l$Lqvhizh@ z1+MkzU&9~OZ1!$yro(esa$Ek=O!v--0QuLUw*)s7YM#?o!31B0I+&r`fDQ5on@+PK z_Ff)qbwN{xzIcT>?6=kwXW1|tICTj%cPD&(#1I!%wnApM)W z8N`|Dpg+=-1U>$m}?x*L?g_RPt~CDk@7PU_!k&H&=1U$8e-{JkLA67{f^mV+q7U| z^GUfzOMAY%+e|-GAcG~3tLd71QuLy}+r{PwAq|sd>13mn?+&{KU=&6+T0T(S+ZM?; zJc)-4q6RC2R;IJif{bvyL{hlL#wlU~2)TQ=CYO6qtj359DGriiMu>Y=%}1R$wL-0B zD{}0>BK!Cf?h)&$h16Y@f3+n}*VRBBa*$^N#}q_h9W^=C%gTR>hT!pLfFKiKE_*op05#HMMU9(j(6C;CQq=myfAnD@Ae z{)KfM(F3_*p(e-DCO;J)NeUqt{w>l_EdwZe1~7Ync4ZX_2$ZxVX7@A^`IBqEg`ue( zvRecFh3!U!X68v0#ooFM=+yutVXnm5J?Tcj5je8^lP?YfZFX+$`OuVp{=C@|j9$a_ zDC7eik@%E37AGK&{Rn?=?SV8GDGZP=lEe$q_#Ri#G`DyloJazQlvndBT7Y$n_|1ANH@6q~!>-ra2{<4it!7_IazIAp)Z`8lD z9O}qVxPtmiW2h zI5$7e&jHjiwcGTmH*?oE*XA%Czs|Zb=NchekQ=}VFuPyG5Up^Ny`H@^XDkm0_5DHk zuu>a6oOKQk!r%#-6Ok}S9Q7hiov7Olh{C&zT5 zg7@{#BlK%v(Z=Yi^zDj6q!4B8vqNa{p}DzvANw5{{yrbUAQs1~qKWSE8bfz&pzG#ZJ^Gx5sSGp#F2rN9 zD5L)c+_L;{aEskvxJB#V;TFr@zi^8*(LdmSgIlHn+!FQQ!YzPp{7si8=>zgt3ksNt zo0^B9m8Bs}A1h{z3LgUT*%LV$$c*0Sryzdscp-l#{C@&e(m0EMW!BQjI`nu4j#_~J zeJG#>xeO2pR(+^BuFv- zKMPW{{5K$lI5=qW;xymh{{SP9-}P3Iv0%3ajpe`bK@iVuWi&V$wdQLne^)rlpLg@H zKKZ45rpd3@sg7A@7p>ZX)in{koO%qOeyiZ$=K8;aDj>G@P$4?lejS-pI+cZ5^pYr( zu^}$j55(E#89!sYXSYX0d!#ovIZda>nJ=>K^Zz?d`ak!#`Otaa(Y8RhU%;L!t`JNxP2#IKm)`PLZu+dSPD4_u2G#1QYS zH`<+H>%~62XZf`yYR&r3g;v&^gwf9Z7wL!QF>f${*#q(~imY%Guz@2Kh=86JK-Lmb z9Y$ioIEqPq0Qa{coEcx{$%nzk2OV-;Su^x~gC z=yfjm5HjNy{Q-#S8@a#a6B133+jR2zQI3-5Zv06Wi0urQ+VbJ!u?ndCD9sUbDc>`e>RWphOk-8wr=1k)5pS)IG z`f7E`rS{uD41waC@VB|C6TOQr+ZszUB5Ef37~-WY$`SOs0vMk)C9Z^KPcNDu`;F%R z)qt5?dqcUuZQxk#CzRI9(q72*bmr{(B4^3RIn!Im*!B+6L~h~44HdtIiw~x_qDaI- z%yK={niVC5gPR%P0N}0zDB7hk$77Ize2)>MzcQ4aQz2ZFEARJ_RE}-b&fzuG(IiGDp90el?KsrP1F0va{8DTGis0j_ZPY?nhz> z=Y$qK`+5kOdK*)i4$Q)CmG=;95Eoj6M&=@UFZZ?tx*jAv8&2Q zQl-e$E30`)YsV8Bb!b84ulEB7$qko!z29z&LU;L|z3Mv7-MBA--WdZsNUAg+7J#O7 z?%X+GfZ*b8((8MC^>CIqkZOr;51EgZG*h%V=fpt7P9ezmD5g}Ws6!;p^<~nIg-uYW zv09yuQ&K^#;?MqOef^uIc}InAr<%!Rj{*fbhaCjqs+NKc`05dD?g%9pyQxF>M! zrIz#~A-dPFu7>`1wq>Xb%knonH`knS;^FRs0`Rs;$U_@qo0|1U({l#Yu+J27+h>ht zM+UnC%U#X+x?}xJiOfi1FowoE?=WF}?3)obnP$QU7rg7k;5Y0cN>D)R!sS>)Qv!%o zc0_3`&|_HV00LW4&j8h6X+js4VGbkeO^`Vv2)E&B_+$-&MO)0b-bS_ixnGAaSL9A5 zPdU5Wb4LyG$(pBUPn;-zVtCX3JS1@+xjqY)#;5P?v_$}EVg5?ByGc!-*Xy^(zjW3@ zorWJTe}CD<^szE)`jZ0Crx2j$Y+pbSZp>ECkWjjxnedO zm_&E3C11^jo+24yz9NZtHn5q$t#6Wg=OuTaLB5zfqc=y?eHFjHHEekoS2Vq+v$gB~ z$VRw(AmU+0*JH4cSEn8z@JSHS_L8|J@#l+1WWj~^zA?G9D7hy$`nI#bXO1w!wMgQ1 zR6KCqSblf_6wV4@PW5@uRuRI6+(13iW;e+hR%Gp~8V=Su=H%@9Ozq(D&T9|EuBuGd~EZC<1Dd?+rHftQFSqm*zXN4Tij`|p|lz*l^)4)TI zKmWP>^vkaT+CL#;(2yG9gVH)@O>6=zRQay=aCE}yBhgx4B;V~Zo=+F0^qz@G1Pv|9K7UHDA#N)X{7l(19`qNCqnP6Ps^H~dZ}8>Rh;bR zExvo*Of(=|@^knk)Tq>XitQ8y>8XDk`r-sU%s&jqxirvN4*<^ZuB@7U|1cz`oZp9f zXRb#Zu@O>%b8yE^`@oz#;GJ7wsG*dKb41&X5R&+Gm;P9d|9B{wcXDpkLDm12W`UZ1 zlnBp3-x;}cyr-BILtljFuMY#L3p5YPV|>u*_ifvy*Has3`Y}?FpqF2h?Shxqb1s(YmOh7Cu4*V_$O|#P8t<7E~U(e zB}$N7yoVbDc7V6|!v==-0P1K)5-(sVN0Ge{#S4*fH$1_F6g^mH-<+|Wyj5H$o;uz0 ze)`i$nDDse?PS4gxeM%}D)0O`3nBt05HR-}@C-ljPQV!P{G>%Lrd%piB(XjGZCPfc z3G=H`BMTyrmP>GdwVQSV0w7}HBVWF~t+sTTc7%%ZR_uYOCp(&h0~2npyv0kOll@qv1jD1WkGgS6pv5PI!3){CsH*sL7#-clH1W zyLOeb0IQR$5!;bApo!|w$+wLSq0JdjnxlW;x~62FdDcHY{g^3PF10p$=v5zMMIqX{KsvEwVf^3s|?4~e@@Fc@Hclpn@auGt;}TTu$n>> zsD(K$Qw5<8X;?J;LoYeTy2aYh-}H^o)b0cS`Mi~)4;kq`+MT@tf}vymL(Lhn8oPIt zPN7F=aY!LBbyj>zU=l)TQHk3U1Z=7U;M$1D#v-)qw^vD3?IP! z(1H&pGr(As)b(xK2f=};>rS>nfkFk)cO8I%KAFB!9d$P2+E3XvVNvAGm&blfJJAy< zATMJMr6<5VG40KbGy#t;SRfLU>?&)8bW9}&DQp%;9M8!3^SP59JN2U|t|aGJyxhUl z+E+77=oXSJY-J3P0(b(eH`Jm0?erR;%ZSK{iGND@hd~v>mc=B)Bgpp_G=5w1RWMza z-p~h!4c&uM!W1q-f%>-V%ykSo@qV1z3KVcc)mo=QetpP1yJz0Q_+ng%u@$|&$6R$U z7&z26Rs{Z$t_6msD6YBv5r%*$llB%>59)ZHa=eSQHt*%uIghnlo0cYBfX>0gG?0KW z1G5qD88eF^+DNm&y>nc{#Vr&i4<8SRU@&-K>%?@TMqji~==}8=tEKZwURMX6De!ZD z1}T=fb8vV6SG~(Gq759VhoFvzgF{ef>T z?CY2BYfo=$Wv?`ca37FQR^Z&>(C-PK96L8=b>T8y?)0<1EE+ zeZKy0d^E%<1Rf0tS*cl5XW%|mD(3f(AmqHcK0r47u>VF%Ed3WL(c|AqiP@PYu?T+z zeg?N^B60^0OlVaEQ4~mp=uABq(#~4{azZM=6t%oO>4fb&{oP)$V0B&Om)}MmtX8UOSXH9 zn2cDU?CK%CBG!Lbv1X+I2HoK((jV$M`d_WGCh#7UC2Bp55$ebiH-0D7xFJ(zOYl*_AJl5{?D|u#FUVp5cu@y$1_Mj1r`Z

>mbl1nAi4>DnJ(Jc$U-@}_HpeWgL^>IA$O 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

0=x{ztCbf)}{|oUF zY@Jl*sJ9MZVq^tyXKUh3mHuPe5Y?zUE6*19rDAP>!LtEY_cfyzQ4fZ&BY`xf+=le; zk<>A)-ZsD2^TbC^)(H!!6jV^cCzosLYT^oBO`D~jiLyu4{w%qJNllJz(O!gcKnXWU zMez?jMr-x8!hBV>RAf9?B9I8z6mtotzF+O7XP8Pr4N@xz+SHct&N2WhjDA559>NAn zr3InRd9iI6EfOqZ;WY&r$6h5S%6e&B{l&X%fAl4b%0)QNyD-$nr`SP1ie{l9P-1Gz zRC;EeuE4SqElD$RR3>)q`qR8#I5ij1XWDK;^#?@|1nMWg34=>@f4g`faRz01um+x zLghy^B$C+>c*$PEUoXk6f{|@;JHl+4{ZiT!aQk*@hZ*-p>vvD^%(tngIVS}ussl9bk5g`box)9qZpB3Te>8pekaw=JcUsk9|^GqJK5@8r?TZ* zwW2eQd{^|+>%a=a1b6KJwE_DIda423%j+9B`w;&qCEVde~UTwW#xivhsy@+(% z^{aIpNcf*y_;cUCl6M(JzE?nFq%K#dq7w$G*3*u;PyhxOfkA&2mxb5HbWZyx3Nv)Z z7=s@mi|g_1l?^^D$45aYZZO+dHRT4^Nxh$8q85I3L*FT&WH#PTQxvDzQJ2>!8JE&Ms5E2crWJX8r>RxRlS!|AAFw0Hy*aZTN8ekv z_wlEhKGe_ZHxyYTwqc;+Rdk+o+X}ky+xcIQnQyW%qYul;;CDpk>hV*;E$9}v$DF?n zge#rV<&cgzgLzol{}j|iO}AZFbE=^6uQGVkfud6ZybhgAl?1Ye)_l)ZXx3igr&5a7 z9!JiZs3<8Hwx;U7UP+R!tT}34`>k?L=*qnW)m>mo*-xXSpd#Whq!iPm9|-cTZB6YqnMdW4DXVIYF(kVwI#W>%93OO94i6B;VCjP1> z5*DqZv66cBMAhdo)-p|h-d_%H4uW&X%RYYb2|HWkFZVM;^j@~cymYlf>6?>Gx$P4h z{JaWBIX<=hU=$h>`awHek<0*aix&5~%obagge%*!i!L8gbn~ys+8XrWR z`pZL9My5kgUDU4zR2Sj($z`a(Qb(E=#8-3&8KPTadoA~Nok9`^(5RPB4($?>Zqr7pxwH#$itdI#~Gt( zDQ)X-5e6~Ei?}K{q-jeDfR-0wQzDe%@gOX>b1U`*OTr;mF3$7 zmjXD@52KB_O^lfy^8$~7y^UsV`Dlm1k9nGH;nfy|b)#OZ*Li)ZVc*E8t`OD!dcKBj zHn-(I4h1LXAV?2apJ9A4lM+kvzyXwR7ikk~fh4^Q-j%OqKOoN;2YY|E2xOmJ$?Wr2 zOBJy-7c%TE0+S981NcLVSelibOSlaFUxwWRetN`W0*}|^^#u|d1-Lmm!QsRp1AgE4@uQB4G0bFjMF`sfy!;+ZdG38RM5ma}a(_>VILuf57a$+u71 z?wQNl?dqtbo@THz@y72k_>j=(YGVy_*B_URLh2w6cZCwt>$Ys)<%jh5zd+l6UE71F;5&2XIngpGO<-4@k!g3xl*Hfy z2dKI?lu(|uXXYZ3A!9XKX7K%}-s`WF-5v>1IbNM^CX9o8AsT>;ci?`A!{9qEfCxl_ zF>0VqYJ!FcBcgx$g3LpnWK*7)cYk^~lWB8kGLyd7*Y)9|bv9jLrj`aEhmH{#D8i-L zfahw_E{zz7|C(@Ep34a@Sg${8-{Y35tEgC$vGOQksLzFM=GktsEQyB+Baa{p#dOy1 z%hBV}qMLfK43^$es-Eq^ztqvD^m@t$_<3 zT~-kQ(8K`S$jeatwPygExI6k+vGIYb;6R>^|KITG>HELJtmRtBea9A_-sNCF!Gsekjzdw-95OX=1YBqaSHO!u$Cr>>DYlC zF*pUKnLx~BAN+yP@=kQkDe~dmV(+t;ow*!Ke;2iWx>-fXt4~{2>q$Nj1}KpV$%-aL zURtBM6n2pLhz2?S3wzCR!D2yM_q|j`#u|WF+JIk5O?=krPwNFl0d`GBM3X_0Z<$v} zQ}=6WiH4h=_=iS)@1jjF1|W#Tq@4v=*MCg$bDARt5-6Q-{=tc%PEGLxR+V*8*^UWu zxh_c>qCYe4>a(MOQ;FnbwV(Bx;~xp4j_oc-^mF7|k*Z9DVx*#aaQ+o!}kh;FjapuB-^R5us7|* zzWw`bEmOnaD$FO&us%ft1`$a(@u$^upmI69HM^iX_0ehyhllZ$>xERWX%Qx(Srs3p z#xh1Kzp|AzYVG_)5#c`7~%>`KWxnWEmpZerd4k_lc3i0&{nNihIcu_@E5YUU?*7Lz-R zX_A;lAH^>A}z+uZtEb^NsYu!0Ft+)X|F<34=+%2Peu!f;3Ob2$6EraH)C zL0_Wt`}`|y#r(-Xd)$ z7Z1C*1(teO5$5_czTQ{2ICgYEz~9yVmc4}c%Omod^xqSZGkOxn!cYOQR7u-Oln(T6 zVS0gJ<07s-NQXh*cffSZk;N2=&f&8$PPV%+X3qnj6E>wOo!onA=Kq7h%D`mLk>i~;^ zG1u(VbS1}1i!4ff)Vqbj$F+9EuK;-cMSs!LuZOJwpIA1G6|JJZ#X~M#T&2lO zlrB6cIsQTreEA*S$BLTjbCvmrSO%6&oYDg;uVfG;wK0-_l&OuEW(`>`4f=!TfeOBP z&%6`g{C-xBDXA=YuGTj^qnJySNZxw!SStTt#kGAhbdrxIBCZN4CC3VqwziLIOtP_C7F3+RDtk%lTQg_nfC3P?hgI%uW-jvBY#_*donRK` z=jX5dp1CvQnISN!Q6(@eoAfOs^uD?KdD&D;jPN|k714=^LrZ)I*B>mw`NVgX%@*x4 zTujg`{Cc+f%R956;>6QD@Yv<0aHGtlnY~;qr*{x@DGxyy@DoQ+T&%!bO^Q&A$wj?9 zs`wkzknKWU%#*TQ3FBxkg9R; zuR9MwO#!>oCg83~YhS^2QT%z4F_w*~12;Z5M0h61^vYiQ^odzi;o^zpe;f)fJCHPJ z0P$(ZkZx5>I;g%d;3Hi&U`Ft**GmbH1u6O~f4Y}P;0jOvb57heCp3CpCQ@9;cOc@} zxhFd!07^WueDd$F$DXZgA-+f4CW~QGMHg?z9PgaBzEvr7A72*4}~l)>d4fO-6$Vf_ET}0Ll28ko(#WQ(g768c7zU=*t3<3!E=iKrbWIK(!N#y1Hj%DkXi7C{L_R) z-K)4vC#^m0vvepWie7$+>B~wvsbvX@ssnOcswy(oHJ=+&?d_zcd%CK%nSdtpH_m^D zMin{@co3C|R+FWmj)W9Q0oqkhw`s;0a?i*d)o`R@#lo)ao)&3l=1G-Z3%*t0w%NGm z$s}_H5gv#S!~_4{T9~)iUC)@rWqtvZ3nN6;)$8PZnb8|oYOTCZ4Xl4Cqtn+7ObZDC zpNgSGl6GiE6DYFDwxsAHLDYrs#Lr~)Sc|%}fY2fbV@{`!uH8*$1ijDgX&h$m*D>*l zEDL+dC`*vl@W(%vWV|b07wq-*@$vOlss`%P0y^&#kNrJ$tPgCHQE)Z1Q-1c!Rb(;j1{SY^mooWYL<;I9v8pvX#dr%u3Ew?0^4-el?Bm*!Q&#a zLTF{=o+;3On!xW7CSvsr!+5bpb`G6`n%!TwWs+n?*X^Hf0-pn{(sjOn02x;T3ClP# zy*ST=Iy`~q@j{5y!UWdlNog9+GDi~)hQ76of37iHY;bS%;{UxXUEmUZAF}GQngm?t z#gG=RW;No^mJj6y2@|=gseDEGf-eGpXvVwFD~ypOH6L8SIjN#ulqL0RPsPM184PQP z!G*Ge)!;g?FG?0R*7Ot@?8%oHV@bl{ZezYXe%rFOp?99AeMy(R=qY@AcH@C@v z%hi;eM;M1C7zmB%UCCg}n+^4ttm7(MrEgqx#C|DCw8N{h?W$1@IGQY+ zTaRa9hu52p+hpVF$d=N|?zBW2ioeuXM@+1jWu)~3bM4tDYBsi_y@gDsoauMOAH877 z4q32tzuE8?6tu`-I-KCdWklpWm|ou<5%iE2$cjg!<-QQlV=7htVukh*o~et6JyLap zshU00x7>Br_ub_vA4d?T>cY%VCjQ9rSqM40oVI@m%v_;7kZmqEVd=L$V4UDS%)g;w)Kx2!?UuvLgP5VXE=22>WFPfXfyh6AxRwU&EE%N;evhI(A$x4% z3Q;`Y(E>h-`MKzEEAIVMBfE;`E)hXZTs+lEag^AvcDx|wz4Edd7oiF%?sUw@BYMUZjP}7oE4#JytpX-aCf14sH8W5TE_8GMV+z#%v6Hsmm zro&7RL5?22)a=jo%bBxfwBj#Z)wf0Danz4eLi^W%-~DyJ)r*HYtPVXjpwK~~*I%n+ zkl>O>98H20Lwu4~w9qPZBd@<__4bc~`qpgS5VfpR@uIRxS|K;5g=VB*Hotx`vAIe+ zn#|zkfRXHAlF&49^#ubs9i4oO2+m20wVoRUWdnJTL|#_=%?%TV))iu|Ukre~>U16PM)L_17PY!fF=|GIQi z!LVYZp27VFx#3J-POb~gP0uJ->AIjIM5m@~bw&I( z{jWa7pdPPo=1^6jw64%LWwI(B!?o`4p-?_II5f1t9yljb<-6vB=hS*-^StJ?#u)r) zkoT+JNkGf|YJ=5%*Hb0V%G@CHEGNZyu!_a^Ol`}n8RgwFu`!DkBZ&TsjsCE_v=Z8_ z*cu>WkI}Bt8))4_n>12*bOB zqzrp2&FRU_U|?dEkK1QqHvtSYA@7AM>m8V{`feNYl_lvM7QcrFB~sx3azk(m9&Dxn z+C6$>+X?9Kj^P-Z!!RJA?AO7Q&O63oqR+OK(Y<=_rMcd3zBG$;;ZAIS3h!67BbmMc zd3P=>HxC)8=CqjE8w-wUgEe#{N^d%6pIC64;O+IR89>zr%BTf%y0j!s6 z3V+}TTW{+dTzplIePQVigdOyKkMzGPbUOrG>IqmbC{?WcRh*A+re)p^G{iZp4&TdR#=$vB5J)hOEJ?@0xVGm7!PkQN8e^SNP5`$BXdYUnEL6s)%5AxL3 zw@A*Vyd}g6ewEe=``3KfBCqwQ9mx2|^xOI*( zOgMK!=Al!_g1KZn+*N1kT}N*rCJ4p?^iSmJKqJxWFwMP*^v5Cjxq-B26S|c*t-{eT zAhtZ;A~pl*IQYCtvIu%ABlA|1Ax?rWb=wN|`uKjB`J(iRpI`dX*WRa0EUAx~5nGjD z_RAsPC0rziWI6u~%h`6?E6_7fnzZxmk0t!(=SF7tx~7OBjnp$tLt>(LlP2Ht1%X(? z6+U$dPbe$Ly+x^z5)nKThy z1}`juaYTm9)qyz7fYA&P5>RrtxG9C+l^r!|Z{KnEx4AE8&wX=e^E@**70&n4AMZ9k z5~S6%iKE1!QgUGLW9`nJ=sZ~4c#C1hZ1=sQ$!ViOr9Hv3myIRQ%a?RM`*MPl(FQJ= z-(aqVWay=BM^R3U_ErqHB@tO8H?|bpT2DzYqyO9`WZsE-Wvs4aoj8!&NSMB8Fig+D z5P$oN(Ol^HdVHkJ#h7-gq@oe|TD4cf%$!$tP4%oJz0S}twfER(ljPc2i$fc`kx2oF zd<@Ak89Hx3{l~<7!wXh5kFSXSj_kF*pyAL{5?10|o8F{6tv+q)cQW2K9W1Y!4G-}0rrFg{Vcg=no*Q=MDJ zN?ptd9EOCf@3e|*@}~)LU4h<(znv?JK^ZRaXiZ!jLuF`92u|sBuAKhK;+3kZuD>?M zZvBG)A`EOml9fMbMR1~*VjlQ2F}`9%(L4@NxFz(g)DelEzA>Vy-IOtRz_?vs<8>lW z^i{iCu>C`7%C*1Twl3lGG+`Kn_Z6tVdIPIVs-_-C$wKyg3H~TKU)O`4{Ezds1(pF% ze1tXw9D2DQWh5%ET8^AIa-Dg1_8k_&0242d5`Y@XK=cn>OL( z9;{bw)mYG=`3|@3%k~M*Q%Roh4xLIm!|bNi5ue!n$dvK~@skBO9V0XuD0d08)8aa2 z1M%WKTU(jY;xBDjeBkR_qixq!qGc`=>3?ZB^cx^pI z7p6LS%YSKSin<`*k>liVN;0Sodn-Y=wN520E-qQUoSwm@ajQ$q=cRHm+~p2ccIdM2 zT@$mq_JbjhA=&Ia!-}FsFdbJJy1$&^q*+F0aOhHE=&4KHPBVCQunf-c)QeC8#fQ9uzeT!MU*uU<;k9?+3Awd4dv4D2Z9|g3 zmX7mz<~$jxZ~b_5h>!&Cw7~^n5;s6qBBn=G0CHSlZ=bdREr4E+pN~I&GE`A&?jNRc zT`hSq`}D~S9fDC|OKm6zhtptU?*b0U(*wA43a}2L&p~ZXl9QyK1Y%CB!ro2K{ths2 z%WpEqmvdk(DJRm?O-b+cm=Oc3TZSZy#l21#L82D`6Q>}c)v7rw@6a5*-M_+aF5|EH zI^cznn?m0}x~l@nGlA|*BXFXhgM7(x1j!CAhMZo|e$ghC%mU=8LT-4IYSR~5s~SFs z2^{7gdimw}nxd+Ny}iW8bUfzDZAK8BIH^VM;p!hu753k%tI1w!4qP>A=0F>Bau>Wxz`%xq*TpG^pu zT2Z%uuKdEoljU1b#kLHEPO?g1$fG;q;tX-xg~}(^T~a4WB5@kC>ix>^Epi50RTd?X z)&X2i=3=*8pABDEq+JM3W`pqfgWCC++SyaPJ^wLTrEis&`JG5T|2F%S0@+;Rv}@3b z=$p(p&l&?o3sV|D3xjjn2Y>}=diLLn7utFJ2HX=Z%Ae|zKiZoHP)co2Y37OfF1wi$ zzU$1DKP`=nFj1sr;}XFZR^I^-n-wb%HsPn;Tapz1Z855MW07o-5)dqSIkVEyzMHkm zuz`nM@bP;FOy#c|yTV0A-)W|Q`P=``FP8tt{&%AH(rCQH>9>c^$`^8Q5J!LgAIhGq z@kaeXx|b#gcHlh>ac!7@16qh}G!N=&^pF%Y>CJ)1Gt1V*?$x-Ht<4S1&8e&nVS<~X zbza9#y4|{bGH2Oc`8TWcKdyQ(^#Fn&ZUun)Nps;!R%c+^@o4_kGfRO_DHjhw!y+LhtMFQ+-i!Q0CTYNlf zak|vW${aVMF_367w=y=>eRx4G`$}=AnbTGOI^&)zPj6xEKp1x)a~C^(4i7#&&qVVe z11Iy>M{EEx$~Mx#@W+8H3?tCPUYTqi9NTZTz~)EY4(H6r1azK z4(zve&2OGt>s>yujx3rzoFhLdc6<9D>Ch6~YZ%fir4UF(Tg*$a!!#biGgYd}^@~v0 z9sNdg!`JBdbu|ZEs`H|SuL(h5`xnC7M2MLyL$ML(jUmoe0JLBU+!v0E{#~#LSWWM9 z4ND0JQV&?@Ba%t)78P?yvX*d?m1@+Asm(QEG4VyH#)(16YeTZ9Zs7KgAa zuztx`O^2CCJD}!+^ccQ1@MLM$d1pZc?;kUsC+^dTsUnU)sI@5lQ!{f}dc{*y^nR)n zHY`70^N#}~4d`qRL&~e5SW*$dzS2m<(nM5E8CSP6OKK0%$&*Xt!jr*_{FMT)pEHAc zC3-h6QeT_h_@2ppC3k)WyM%*I&C`x?Ez~D!B4QZIkn)mQt-koWqi#X{cYl>dfzEEn zfjq*Q6Y1&(wsBLUcS}x0BBp_cW(8FiJqkbMxD?v8lZa;jL6gZxJ_~ZvzLsWJ=X1tS zMaf~sG0Gy0VpS=C{EsPYIrfY0?Sw;2?0fplU#3TCWJ^!`2`|}TSj;}qmniphxC2OM z(v)94g6Di=Ao|;+zyhS8r$F?~`iCBkKFOF^d#@cQM{;{^J-s&P8EX{~9LV#E`KQcs zoLjEA(c!IUbrBC0cWm4UCgHX}RcRs~MEUL=f(y_BCnpmt+Mn=Z1fYuBqe=x;qsmvp z_F(tNHg`_hrB7YzI}tVIa;N1vtFedMO=g-g@bcgc&PTj5BtHB(tdp*tWO%@*kgYAm z3?L%I0P&YnaByz|u{=pG%6sy)XM8c5z0Hl^|2jIlt9tHbIO#cQeI{0 zMpIs`@4e#F@f(}kc~&X1FIQ1=ooUPcB_~AXE`sdEdl~LWy+5m7a0fg!mDIh}pM$m*Lqs1;Vn1Wuew>YS4YNE|L}RyKbo{MOa~rILf{hT zN#?jX(2OfY)j^sXkLwvO`fC22reEsv3ebNQ;v7_0*}*NGDZHDNZ8nuPMNxQqNbSD$ zK^Z!o@dQpnCIjL$Thx7ek%2HO05T*|?~pyBh@@suYiG~8RPV!*hN^ykFVyi5WV7`; z*Za4hNxb}YO};Lu@$MSGhND3a<(7E}Jw z)98B1*>fVq=2zv_DqV|!;N#aX$H$v{N#0@}$Gsnhbn_{S^fJajvu)C%O9l;e_~fGy zwzDZY@#Un8|(w}7Bg{E1q7@l&_6)mh`4pY1E|A*bgw}{`JWz zEBh)@p?IE_13m~g8{jFa4*}UcHU&uRF^)se$<60Ia@ARetX+X zzBx(sl_~etj!?fxhor01tq;t>tQ#`gv2`)PLJ`Z_)Syu!CfY!nEE3h?@xilR+$R71 z+VAzVW=b^!j$+>lKiqZ;k~~Gj9zA%{d|ai+<^=2`j${U+M3^R+vZjcfbCNadMa6!M zx2Qwk)&Z4;4weHKxo`FGU5d}hX$(jKWoFE4-NuJR-}47XF>$|n!*|pBV*leCjqCvz zxd}+ASI^G(Ef&n2iw|ZB`okqz;;lHXD4)Nuu;@KuH>4EN z_+>ykh3f5vAYE3SmgoQuH$Ktj$~fc9nzcP-du>eGQMdJqkB`J_S-Y)m@$*N+KJhyk z8wc)j-CcryHvC&%zXUC7L|S=Jx%Y&}$LlekwdP_!ljM`OHFtl8x&`}ZMJrNX|EXA>VDQM$ zv(N?%K%jLs(dR1tZOfTrq`_Xd!TB-GS*=m)>OW$emauctH#Y&PCy zu2|BVVDN#PCL&AutNXt`HvE~B+}a<#4*Dza>@r`dWLhdZ{@C_UCODf9(StA;+zShx z0$pMMF-`4tIwZgFqn%lDlnk`49eJlMqGrd%MLnnPShVBLrTO(_#<7rFr%Y~$>#FXT z^-@{Tv)9(+NRGWgTAl@;jRkGN-`J_vXy9?z7{_e+Q7MRo(f2Iz8iOlc8H$WBKdyf!cJ^Z+9KDWRhOb3<>j=-ZwF&;Van)qpSvno zb+f?_r?-m2a&Q5-I~>x(Ql`lsTStiVM^J$fhL|vX#G6oCn^Y(j>03Ot?rb^0ammpl z_(=eh=TthS1^JNEFFEAz9~`9T1FZh1HZ}AQ47Y(k>I4*Cj;!tsfXqB^&U@A+W0t-7 z5wkO|-Qp+BHSD8ZT|5R#tT0#@*&mT9f?8raS>Q4B!k{f)i93M*^tUzpz!qo5RE%-t|o1cbCf6 zvt#09ni@<*Qu|(-`U({emJdbLI3c@+c4CF!8Lyv%v zB9tcMY%sCeqBR2f%`t`!2uruJbsc>YCo(4j^ll6&WF1wgyt;LsNqY!O3R&H>q&lOn zf@MtgoEL8srD>5x;%LerA#JPA^m_$t2C}gcn-k+{~C3|92Zr>2vQ2XY3pu)()Khh}Z^x(I*%S#4g6g zI!)(RiYw|WyyROSW^hG<-K@tLg#kjX=?X_cT8po8S zTMd0A3zy%<>%7lBnx$Q>waLcW+%n4G_{Uq%Zp|2n*WtF7iNjO6lr)n3^TqG9M-#$Y z^?Bm;t<_Dn%}FA8XI!aH^qEISHo_*xx9-~CQJcJhlZF#lF_SRL7}=I4G|&r>YZ~a_ z1S<2SiWd)pd~#)Oe*d#pds;qez@nzAVdlX&LM}f~*eLb+1K+z^7tSFoXcD8~Fii_1 zNH+7&VMl|9qnuBF|D(z|H|s54{_dk!rudWE+NP;tDF?@zI4e67e35;9N;1~nSS-= zVc|itNoM!mtfhKPr*r$S&94A5Zh#iB(&!D~c8I8=xsuB=J2A)BA8RLQeyPosrdo`u zXiE5$DkjOK$W@zPKmLwKf?t|H`gTPrIOOn2E6M<=h$e*Zgo&fPNcgTi7^x_-ruDv) zTcbxY_cwTnD&ewt?zQvM4J+{)Q1`GmV6l^=h z7|uIHihzLJ#oxV{`eTJhzzL8Im<^z?Grn?M|k=ine1B2?}biYntO@kkp zU~dZfa;AmgS9{+=V&O~bHDI(ahURIFaJmu#%#s#PvuuZfbholBN#r=u`JPJQF zdlk>Fo6NEA;%CkMOB_2^&flcEyij1N4&0iXZ$OazLGgkZxs<_~z6g)Qa>Kp+IXn++ zT8U*63;|u;c^*^E)`IcVUs&sQ@u7i%C*GJX(j@dfjN{)S1ZC31ZjpeM;+oz}v zvLJ)+I#{cxcc2a1oP}gOmT3|SE?;I0){T{E>gM!qUE&v*u@o-kzG+b{F(sX7K6K3X z&l-r909~tZnQ%4 zl2kE!t*4hfXhSVwV4zdrp%H*0uC0QIIYv81u5n083Dqp@$G@AKxhxyiubrvKZ_Ztk zvin7%#_zm|VkBZFh9;KwKcQ~*$}^x?XWENk@sZ*kLEVs#`4m*5nd4EJvF@u)HQtVJ z91?hvl2D96y6{)t|Jaou#l)Du%0ypg->t~N`Bo6F;VEb7sc32R50L{4p8zD^rKWLs z_0mftKg%kCl(1&UyYB7EwRK4s^%d8*21ane()29|Jiu z?0K-FrB?W`~IfFu>55#hTCM)~T=yOnwfLmK37`{~|mzkiX) zmwEe69y?~>Eh7`|4vvd;7hDiSi~`3EG-IOAlO(I4(uKSa49V6JCApx{3Qcp@(f4)P zf{I@>LJHPjY7~EUbxQr1u@9i1>}p0krru8r7SX1sYtGI%GiX&W`X5s=I{$-iP{rmR zI=bs2e@sPg0SmpY#PE`FoR309H7|D#q5El^Qzc3_2OW^zG z`w|ra33b^MP_j1m*f0e^-)VOCE4A8|F@iaI?W18QX+xI{{Au;D6`aVX2=&pmt>f^+ zs7IS`j_T=_xCX3I9y12?e8JY(rPsNEZEZo*Bwc_<0$XfhB_8odE4I>1s@q~t* z#cqbTEHZ8tuQ25yt0*abBLgwfL5Ht=TEMQzpAnvM!i!l>MZ7751Sh0xb3WEa9^aIyNEUs zv&lmZ_Gf1tt4})kkLg=u2~hIW$GE{s*Rha%@>UfvxD`{Q#Hb3q@BQCBpy}6`UcD&E zIV9IK_TWMJyo25B)?JVEEK7QQ&N1(iON}jKhR2(k3{HLqBOHMf3%`VOA!z!Lhb;5N z*UO`SUEQzl3MG9qO4VU!mrAEAf)Uxm!8D67dSRq%AbnR`zxkJ#U{P_D7FJpRLt`3q zw0hX>gJXhEc*#gmZR!#EmkCjET3-Z`T;V|`^DC`B)I;c5>zQ6w1RE{Leo`SBG7VNK zAYukuF|II@(+(tGv{eR59K_)+s)v!`3q2K|Heg3;M1zKf?YwT3zYF{@Gkou!zj%vQ zqGDg$1C?mA$eseGui7dX4d9@BN(#8VY?3iuT7po;!UR5{Oj$)*`z2v&{hO6s!@ZS) zn{7o3J)2paTM|(^a-!U}f9`?*Uj@b<*>)0)O}C8|b(Flfxj;mw-+$BQKxK{L$1P4O5=Uz@TWxhRzg2X7TUcc_K*wk39b z{J`=Z6 zAq`H7>A;8$eDvN^BRI+)C@+69G3U7bTfQOb^gS!vl<&tLfz;gi1Wk&adJH{2FNE`k zfxuD%ErimW(6e4Zwutb>6t;dZgI(XPRSe%4$c(Tnd!E`$%}Pnh6@smBe06#F_IU4R zAUHr#3<6dF?u}pqoiS^q)%HCDA+k!nTLA)KYyYRDXjrY#;l+s~@@k?1WSMvN~|{egF~}45aHw!O;sazB@7S>Y^lR2+iZC3M)$+m&`kFyGYZde`@qaa02ri0 zALFMF_?#0+inj10sN47MEewl$Hmwwf6|dRaXw}t;yZyAaz4=9d#Q5lxxPVB=>H}#- zHBK~mcw`RlE_@o%1^=f)5sMJlJ4veUY6AKUdLCZ+&YlN($wh<3)5DS<(mn3!D7#nf z-!u(ijlZAinq$-lFs~mKl@Xgn{XTR7r5RE0nsWN8Y@uD0D>vfiJ5d} zZhazdPqSj%+WN7)+$impxv33uC(18nl2`mQ1GNV$F+w=v9BfjRGCqPMR^W~R>?nD` zHa^ISrL#UXJFm2Oy~$}P*T)w`ez7bX^R00{OH`&7%-E$u!J{X@%cB@GUf{2G z5TG-GFKEXHTPk)NoM;%YDVi`p4%a>%loyq*jjnw& zq-;neSh!gSRfbi_mNO-t*gkgdCBInaZwUrx9Jnht=q)IHFnU4gM|da+(>c;9Zf4Ank42e>^_0T*=0Wd2^qmrtEc}Sf+#gDN|Oj zw7=UVJoOOnkC`{S=NX8sIkaJ+@T%{|-%ta{YVx<(e$~DYQHv?Q z>Os>fF>(eVvp5U{(;t|SdKjQr2fE2gmzbgkf+#32sAb{D#CsFzz~*_hsQ zr|I&KEonxADJ|2Us(oEPw9-?OE?r(ma+d{W70GMYxT5|x+<)_q@sKFz8b^Mbc*YA> zng69k{{Mc$|NZ#?4dMbAK-uG8yA=-EM6dvP=p@)!-mrO86$|w=qd6@V?s!5unSD)^ zW2{`VrMbB(=5FJ7rHZ_zqE^q|qz6|=^{Z56rc{yXq2(laHk^=*AU*|i^MT|Tuy`?{ zS7`4suC9IvJ_yl!5a(hd%y-H)&D!W`@`Y{Litm}1c>m_x*NvyV(XYwgcZ`wP zo7xwF$lPhwr|5^WLT2co{f=DKG3Aed-fsDQb7tB(l!LdU7Qat>0(qAu-q%}5GBLX6 zQMFuXG1xRUa1Avi)`$uR5~B|pfo^0I><$+s-D!9H$Kqt2u}N13fL$B#bbI0uTYP>_K0+bx^BQ7&OgSNzT?ef^s7x2MiI_q<= zLPnrfL;EBh598Hlq7Uu<(&inPURUgUm9h!bKh)#PZP0QZi#GA4xw!3%-aKa2J&vtwV6S?yZ|Y zwQ}39o@>{d;))m$?5nnXdrbe{kARx6QY02sB8+xs#>jp&%pWukMvjGCD}cXK4^U;k zs1Gj+StZ)7g4lEb>@m{OOL5|YD_EtO&7}*a`lvo7JKCXR7uO1q5P$~_a!SW^iMW&J6J6k zxQK-ojA9Z5n3JoZGmFDqAYI~ZJ3F&(&G*jdlk5IPTLUlg)cF;GevLOkH6MEveDarr z7b-$3jPw&R6kj^Xo{Q4uLZ8wK>7s5Z&fi8m#|IW#Wd1;+J?rb__3eobKh;s0*I40z z)zCub+5VEonBzzOo+W{9s7>$$jX}x18pW|%%q37rr?u4bZ1t2YTOn?qO*6pv(Tmwz zxsSVfjudJJiUxcV<6L8;A3v1B4O%hM(|dZ1{E`&7W%kh$N`3%I4mXWbd;tGBPreve7yl6)MT}N2`T-RD?!{&bA0M^ zzMg!^#k{(x_I6jHyktwEz2L(2N0#AffKL1h*b;Fh0fVSb-ckYT*G0=mx(?%{Z;q)9 z^HGnC75xxzu7OPx*Q*BHpZc?3?i6h9`2JRv|CRlc{H}aSAf2BI{8*+#U$!C0yGyN2 z=nE}Z%U=r@y5laH@l3b-M@#E1(}c_I)w;@$D@~W2^dBg37pu^`!F@sCo(gYJi~tB` z_`1vvSezY4Ha7P>G+j7Q6y*Kiq+v}objP>?i#-1ZLsRIm#OkiM)vxQ((1yKe`G1Zt;Pa{4iSJW+ zvvB6MY2>FQin8Q~-QV&}{0Xb>k|CBpuPv6ZUhhUC;GY2|DmcJLkp!G#GQ8S3jw6Rrpm3xxR6tjffq&PY}1sV-y40rMcYDB!VAES@C2M6rmU}t`p?(xkf z$?T@~$}H%Eo?DR+SVIgpP({vCc)~_d4KONC{B5GeX6M4RmPI9Wue;t(qH%P~@_FUr z5StK1pAY0k23%7r)2Sb#ADd4%y|{6NYO4>9aS!kk&N}OZix^G~`Nto=pMUXC^GV*` z7GfM^L<8w;B+BiuAvp0rlj%Kj6%D1Vpr}L2>@~8yu$sF^Q&o`B^%mZ%_|p1{522F% zs21gOc{k&18gx5`e*6niT-PkW29xQ5#ZyY^*ITZAF=Kk~+as3uEcKcQgx&za{UA%k z^p4g{4FNwN(bB^>LoX5Cp_*|I?8Mpv2scG#Q9 zNW>V1%8#J4;VGu{9(Z-;CZ2SeY(DBY$7ltueL!)~&f=rS^-xR!8JB5sGP#n5fht5A zX(pWi#9j`nlLJI7Ot%iT)E!65h;gTA25rkKdP#(fuIe>4gx^Xyea0#MuKH`|l|V-` z;Zz3nMj)Nz68L*l`Ye(k{s=kE1MDMXD6jw0pb-Hdl^jLYcV74%GVp2Jv1)X|>O=S) zBZbc)C(Pc<$Tln8Klb+;Xp<8`V&?$l)ea}LZ!kd(DGfq)H7nHpR6?xj8`RbC1DdPH z;a+D=l(>Jf#va>h8X8NmILHkOyl)$#Q$68ulY9QU@B%0Ca3m0a<~Kl=LMCK(4nt?r zRNjU~mSjI9BaX^I`j~N0_meMT&urAoqui4^$+j{(Yb4mqE}Jv7`Q$X9Z~iuaYIJo( zOQqOlQp(!K$i?0l9x}xuT?)W zaG-wP;jQWY%j=un^fci+v$=6WFk|wV$UlbRHNv)3YthG<9z39y&sFfTDK!%1*f z|D7X{e)~Z{g~FfxSDVXYI_OWXld7j~x~1jU?w&cvj@27aG<159-_U^|f}t!(f|JV2 zihyMKdr$&FHwmC0-Xage^gP4A`dxAF`sZxZ>Z}2awp{X&m5v1N`$@K`Is~OgF~@)! z2BaR62*Oh;Kc2h{)-N_}s(EMg3&ln|t74zhJ!_s8tQe+*7Gc$IR#t)F?R>kDcF z@=SOMPu=-%TxLfNTDhEh)`p$5UoPju&P+f9qp=aN?GO_gkKa zesitJ_aMNCtU(fLPsm15ofno8p3)*8!^v+CNm}7V8_aY(m|Q#z@N1wZidHDo=VUWd zK$C-mYR==`^KjSaaMLINthMtSEMCtv z($>M;#G;HX#!s55HrEdJ_em{S)p`*3*1+B3k+D?OCEsP6YqbmszcsI^A3R+{w7}}| zRBkwVdjd(A<_w2bTSRLKokNqP7e2OX8C5{fIKkEQgIkZ9f?_kGrTw!#tzhTU{`FWO5@R4M{ilpeaAZ|X|3vjYMK`PT<7 zZK^X70DI7lUk$64BU>sDqZR9J3eTMAvt1YR3R<(iZZcZcdc|HfGjDpWW-0VkzQ`Bt zJ1oMSo#DOqHseRA+TbAniXbAqXOQ$08=M45`%*9hw3<`?pSFC8R}ua< zq)Dzs=>vUtk@3qN@8%dAk>@L?86Ha+v6$EcF$BP>nXrb2Eq?I24Bz1{$Z7mSbi>jP z+j=f<&1mZm2d?jvk+*;Gpr)b7w^Pxnr_B8>RozKaIwEDs*@uB7W2juoASLV!zAg>P zE+GX&c}eh>zX60K#(*SRRvHvz(m3Yvp?cI?yd`_TMt`q=P4w#{U8&hme=VMVV%gfK z@}ub-7in$qM<$RADAqmpp0=$;a{kgjQ9IT>*gf~gV$V%YFg+3Yhi~VfrAM9RIi8{3 zYv$~%86lmC#PT5t%R7)v@0JaC0zo3nW;eyiBp*ua6xGOBGM0C@=g7HQ*fDRo*l1{f zuTeJMU4ot0>*6()y%?%6NRct6gC&d&wFaN1L7n6{NSauTAmLxOK6NiLDV~RXhinbH zJd|f_PJC!K;L1J0*lu+*u|nv=grrjOYp`(`#9;@EEbIl)<}wT$T`ANOy1Iy93bMfl zs#(_;mq2kH&z0sL@ukj``>1p%W?$}8VouVkSL$LicVwV|800X0q=CfhW1PJq8O1Kd zbPL%XrAy3=ZiC@LXSh!48qw{Zow4_~2Bkh#Gl@ruvdK76AOjdzC6|PYDT| z0X_X9FtR=k7}e@f!@{8c4(jy0)wFK037`d-NS)uNb!=u`;pR&$cyj!FW#!S+X}gSc zwj8hke&E&LYyiLtlXw`Pwg{l3f+cEQUV3hA9P-~dRn0-W*ll7`iz&Tggc|$3K)zed zT!6hvPY-?%ynPMu^f@6J3+xUg2am?Mpb`N%<{$h~$OxO|RV?*q=g2^*Eb#D==YM$1U5w?xwAIEyzIQBnk0z&kEdA@+e=nco7>uJox0;k1<^{Rm znM{SNlzSF6p2%rQFt9m;?eY2Lvu1m2dF{b!f^y#<(36!Vl7ZLQ9dePF>)1|JDnof> zf%r{+=M|n9XaYKNY)SPMBeR>DvdRsoG7Wm7f0Y$GN|mxR$Y{^X=N`r8$uB_#5lm zefB-;4m;)7d9$b5)R?gnFRrh&wSMh+UV~slVom5rsQR>G06)$d4~UJmxoo-v7eV6j zp6Qt1FX?o9!%C^}mp*46lz#A4E%E&%5b^CaHv@dI6cnmKRxYA%)>dl-LU*pSrPWZ5 zwkI}G^8P+1aIjn<__`mwqh(+S7hie(u8}^9e!K-Nr%TduKB#H>L6K4FU%z_`guz;{ zy9L?!Xt>UN3_p{>XQH$iN@{l5+ia*QB7Ur$m3J9CyV=< z-zoPcTx{d8mU`V|6~Pe3_K%^<3Qx4sHDl=!g{38Uc^(~@BEMp#e`qxV_a)Ij{`Lj{ zV!%0wNXO>6N-PFclr+55X?N<^9M5w1-ZH7)WXSn^hPiD=!L}uD8qwhn6ygj(0sn-> zEWD?mRei3^HUWb+&1ex20B(_@1c0d-ck?KUqz!bzP+MxPnG!VQeKHtDxLd*eT%sM>&M;8V0!vp9C)6_8x7sccuhy~&(_v@nX7txU@8B~+UHAsz zfbgs?#BBL5Jr~E{oM^QzzBM_KQ9j7fRMV2x?;L~tR@F~DW6H4=9^vKLlKfW=*_i=$ zq~gC|kev`C;VH*}ZB3j!s6%3TfYS}QHmU%&^b!F?RcoaAj;o5@&BwBzo-1$^F1uKl zdO%H z<$g;8@Rt(3?)KnsC7pR}xn&#LB#OLZ5%ONIbn3=8LHJrs9a0=a48UyiQq1VnsG6M) z^lAFQJXb5J1`@Iyhu8kzQaIU@Co#U*5PinJ{*K*!ix`gyAH|wIj?Dd%!ly30paLdS82`H_~T|bH$cPH?7{R&eD z?IMVt$5n#9L7msf>ab1^jDDWHF`=0()7Hh|z`+yHJ#;zzJtwJyh(GL3W}R6?a9IWg z%#Z^}07vOzBqq~2oxkburN zP0tk4oFtlnn|mR#N}w%T5r+c!2|kqT^lx~MKi;ndnMCfZKoNpKrt$czN)~F*X@?*2fkHfm>J=`ZWZ|(Q#=4cE3_kv1i3JXdeUZY7?qq zGGmI{f37~g)%1C6%d_0ep()F1+v&dUQS}+O)u;7bygBJ62lNDvS_V%K(rvlkB2C}# zA_iZT83qeUAPry$1SQ0glf;REV99N^RRHz!VFsiEVGcY7EQ(Jr&(%kpZh!nv_qqi(AA zrfoW%g-a{6T7F)D5Es%}Z2C$Pr>Ialv zLl%a?NFAI7*%422YOA-d_?m3`y>=i`-=sNlwokZz@}i#UlAohQf#RH>h55B3Afb(| z#e?V&H$!LjCb2BS+VQw%5l!K2+JNA-Y8NPFaW#AC&TlRTy);zZgT!9T6_YWr#k z*XXq@c`H*(tgvhJn}xvFB`w?@^sR_wYla7xHcYO{7LEHCeHFgL(hJ(5U^okFS`z#b zDi&X-7+pK16913kXi(UWd3|-0lYwK#oKo!BTNiIFiJdZ7632X-2PB4YI-AxQUwn@? z%oeXY4C!wMe7edYb%OeLAN?B~rV;s6W+<5g)D5c{rW7`eXW4RSBf;afZT@xac;a@fAu zO6S62`>saYKINOj`>E`lzduD!!#bNlJoKZYL$X7zi}c+=5* z9-UcvMmlmBgqfiB$5sXe@CXun7w(J)G>={0(-^WZi5hl{m>IrYJEl-^UU`Nsqfx<= zckF?Q!f$@1;PNq#E{~K=oepOoZ)2cb&)|eF7~(xR4ipj{fx=GTBG?iHoqJhsVV5@Y( zfd2wCY(brfN;+3JUcUXCLJ_znDbBh`YPb1#euB?@g&v| z>9_;QqF-X%l5z3a69hOLXuCB_N!;2h>YChh)9@U6|9VF1&7^>gm)4|ffQ)W?AAsIW z1KpAsqA&0%liPutj)?~iB+S&CG3{-qiHdP5ChV@b094^x1M7$@zb`I6)~T(o>D|Zd z0sJ{(F)eYqIGPk#1!oKaBn*haVVv?|@*5D-6Lh>fWbo!GpQBAaEeXG7lQZ`|d?zuAxPWUJ2>mMr}S<5Ov15oEw6Zi1j>cxLz>?IRKl z4i$&{v2mW9cUAp9H;(BDL1I5#QK7t1KR;C68PA2(`ei;*QH6mv~&ZVIq0OSoxbiUpgH$>^47y996 z~4QXz%#w% zpVumXzRKS#cSI_vvo%fEFG=RQQ%u1QJU{|ern=b+YIJHg^l<<9CH< z<~Q$O5FmqZr-n(<=fJn|ameZh?3(98l3HBthP^#`teQWgpFF?cH`i{S?)lB9=2Yn> z+o`>I zBxCz3o~K+~Sc#Z*)0>G$*1df5-h-k|6zH(H1p7G(hg5s%Y`&W;RGH^DQ$d-8$M$p> z#=9N8zHjSLjN}+hXs!z|VkuR|qG1T2T3x3t2Hoy){4| zuER~nKjW7WYrxrH@}|9Rlcsl~h{h&Si0b_wy*h1a;$Zs5I-66E!K2JO;}`rnr5==S zyXdyZPMs`zvo+f&$@quM`d$(PAk#%c8ZdySL@`HVm61;Pm|gl;>-2^gf3(Q@zImqL zz>IF-Q&-*uALIIY`8OH({T6als#*tauwsvMT}F24YS~{`AjBWR_#V6tKvX)AJs_mw zW_BTV5#-IY2D=A`UQcpa&(30z!cV*!LZXw{JMLdDPd#^s`ZA^N1w1y9lg<$W76$KX z{Uf&|gj5QI*mWtx$S9HX=Bc4i?QaWr%O%nr!t3fa>N)${36p;$z(%hf%0SpGrn(mZ zaw$QbWV;_8RNe}zClNSYlDNtOk=np&n_6>gzm=hB#f%`nV<9U8%AV5O(=|REOQ=(NL2`M7$4_)OouldS%t{%Si3ZhA(l_cgbTab?+~i{#W2G zP^iyXzzFY~ejlR$*l?|WV&C?Kl!=TChAXlDB0^~8AkYWt=bPf4F zSp9S;n|z0suI0=R2nY%8A{S+A$I87{#?Ot{Qr!2m7Ip}Yy&2BC1qSspW_`0Z$-hhw382ro%H(XH;qu8)O;X5?Kx9LLHP zYX6>Xw3)8h9eQ{n`s&8#7X}_Lj{JlXb>NUX0JV8XxrW64M;D?G;cLCSm`IaRT2K8| z)BRn8KdzB0j$AZ6A9%{h-qT}I$K^$5=8dB0*@aA+jD7fGvg;M?kC;Jy`f=bMF@e2} zD5f3*pKqy`05`P@GRBC2JPwH-7~kF9zccP}PHB-P%5!V6I(J1cJ>f;fddf@lfyg== znnEO+;SRIO=dQu#Yc?WEzRZ?f<4vcJYTh{(O8zD0B({8ALIlYQP^7(a0MY9SxI-_V zJ}Rn`y)fMMhZqpUSLN^RP~duSJN@dHLe(LAU5nP*#&=VtUQVtYmZ?V*~mnRfm z)C8Li3^uNeeliPO*g(i`m0-0@I* z!b<$Ez$vB1M@MKvNNfd$XoZ^Tq_Z-D`4QOWUy3~xhwsT~HjmJ{UcByWWo>0=qhV`f zt@4@gB9^UVKI|Vuj#?Rq5KM-SV=+Z^A*q5uahL*V&B%x7WEdA5kPYm05Fw?pd*3k& zBA>@rTI-uz8&i$SZ0g@Xk2B0SFnx#%{910AaPGS?(u?s^9_MLVahuErj1lAn(62yJ z_p0~F`47PRVqeG2)$$9yR2nRv9`F$~toa{9-0#d+- zE48(KRCVP1t$mjsHAdfUU3Ce$VgUN%jVHPnQ%_UKwO}_=!iM2oEL(x4)=<0+QMAh0 z-Lt&c8;nJctC0p}jb3@C%6oJ!Z|TKJo-bZy&U}iz%S){R3Q&O}-b%*x(oYOhKryJ1 zR;m0->v9>iXHnZ&GonM9wZ&nJdzGcO?T)1~I4L{)<#xfh!Xd-6qfXN`%BWq_mB&;anM_RU!4uZ+kRb*tH$6xZ_F#YV|^qPHt z>N`&8N+zA{DeCV9HF$JwB+d+qNm$10M zg`DpA8SYKSDE?$J@T3mE`S0E;`e#2d^vQI#ux+j|CcDR^p_&gz{xKA@gNMteJO(@A z1NTe@P{Cf#SoF-^!tVpSc#{5NeFF^CTns$TCWbc$OJfy1J&X6mcy1{du~#N?2M?JY zVN3pb03H%WXNzL*y9BNIEgaXh(fwZkJ^)U-AZ+m`gyIOU4LlT3&OQVF)r@2YSyA*+ z-H+~g9y;H~&92M?voE7MnezVUKG_XT1i$oAp4cdh0q@C-zat+^CgrN$Vft_l| zSUw9sigsYf2CAa-qeQArW*{)9>j19$5JPCh124XP7?KR!?4=k`Sz5ICn*9W$ zt4eUV-YZouo(kKKlX}>&S_Y|o=SCf^3=%wHm*(N=JBKNOVHnZoIlo=ik3XDa{XPd)5ktJ}xv9|4;rp*c$2Yw}+Y;9TRmUA_pA?d=!8Q~q7eY-YwAI6g zv>BkuMI)E;Iv79XZaCppu{9tdoYxFxsYzUc~ ztH3iLOklJu0^7KV^Xd7sCdYQ{}kVpu=D5(soo-4 zh6F*Gt6-E3gwv4#+N=SD`RJ)gGX6U_y-cPhx=9efZWXb+vg+wmPY2h)ry)K_<&pF^ z^W9qR!iEgHT`tAvXWmtRKq`RLCF*}7wT4~{07-g@Izd+n)k*FZ1_d-2G@}Z~ zf}1@dI&ZC!oEM6*s8}vYzJtz1GA~=$(){o9Xl-A*=kNF?k5Mbh*1E==qPIGZX-b~# zQ+K%Tb51BissLyCDY(K(S`*v@%@g(wS%-<+qWTy1EyU*p^sj^nY09@;*>sKoklOal z&02Tkli&YWen0<>d_U?dcmO3uzG!#_oan(q<+?{_<)NIS6OF;Kh82x#?j|VKHatH_NeNa<2;x#12&hNvOj#Ah)n2 zw#7+oG7gVuAT>}W!UT~#Yu4%AMPJgpxI53AZ@GY=IZhz=gj&oB{E~n$V5p({VO)10 zRR=m7Pagd{{qh)13>Z*8i40 z9os?h5`%%MGH*zOjm~Dc1QT(i%M*9H?H9hl?=)wGc*=F^k7i8_o%1N>l(!RX!<_RKSAUwjL~w6?0YmE?1z8YVo~)GW!KQQzYbneY)uljluZ}SJFpY z4f*WYb2cHi{JOjL9NjNXW6u|QzTy~X|MujVWiF^+fwu)M>)wY**GWjC!7%P7`7N~i z$+b<6w2EcBvRzwodvU~bVt=SEby4a|L(Ro&p~c4WKP7FJdNw~_!1vdKYT~gWFnp~1 z{MnvfBq4op7dI>^@9$prYvsgCkNbvPAyZR5&}`8gVFxi$`GZg3hI&XWC(;WZfg&1U za0s$1v|7A2&qM0%nK@IT{9I{e%ULy=&Glg{+PQA;gW0(TEb@Rm$%Dze(ELZ!uz}I!3Ln?qLCR+ofG5U!~Ab5mH zZLP4OySQnndhcG%_X@?zM|<>6@^a?$Z>CpvagVv^JKxNc1K1?OYv~)J=@8g6mJ@U= zN(2BdB8bLY0M~1CStMsT&f`yrh%cLF->sut=XF}P7M>UB48iv8`_D?SuV2aI+yi;3 zS8sv!Y1F5?C(d83wFNo9^gnb!LZuI~ZHpFLbKq&_ATx@2sD1P(zKbsRxk)2#>O<18 ztp0V}NyTA!a zpjIE)g*;5pej%2Tt)Ui`_jD;@ea;gVM*FiFOc}ceE5Cb^`deB*s3&F%8QyD_Lm1#A8LBCURngT=47%sSa7vK;8ZWV zamyy=!W%hZF^|;$niPNZLHzU~F40dOO4JZE(3=I1(lRE#g&uX9wj|B3T8!5jD{P&Y zaAKY0uBe!;QPL~+u`CD_v%g=@jI8vJYR$;FV{NpbpLlAixW7?-srd8}53ilu1x4qs zozY@t(6soAM`AlrLRgIqAl>_6Ox9Z02 z++!69jo5p>4!ZG=Jg*rjq#=Gq=4#tDqW93?#iNjfNH`G~eq0D3Ut0t})5wpAT6O>+ zF-f7eq(Id=D!mTCSqpmB=ScEjnjiE|?U@|B$@hDTz%9U=$H7KFehCiyWr_vJE#3)>z!v|Q_>0`s&fzA!5loNx5b@+_T0xiy*j26t#iPSdOXh9yZmK+I25gKx zUSAh^zt8?yQO5hNxTpEwnp)WJB59V>M~>dCHtuKG>MgR&&rZ2^;;j4``Egbd+@2VGZ8mxIL5#Nj8T?1H&ciR+3`S0dz{&}u=e~f!#_l(V;p@dP( zCuuu@V-|`3eHQZpJfkDYR3SL{S}Cms<7vVZ`Up_*S#8wkssc$f>Qo9UGa9cvU$I%4 z50H^Kt2L&2nM}N<@o54n2JkC)L8VS93@l9~3PY%)%aQ_$7N5hGj(qo2^peaH(dgA1 z8LZ2{)Zclcu{!Hf?DybQO^2OJT9dzlojNv%#PVajcBX2&F#>I}VH3GRk?m!R7u`@bV1uw!L-%DqJjRTZ@(03k1c@j2`tYX9nL04GrdD-z2E=8FN} zh#0Lj>`d4gz*3E9)g`TVDlFs(cC0L4$Q>#8JicYVzH0>2=Hh9~D?IOOu;AeFNgV{q z?w|={lFBz}FyU4Ei++4KM3|>faMor+P(t@YPkZXs$^IDu-!h$z4TU zHW+N8NCXXc!RzYL-iwN-Ak8l1^yl@enVYUEgRSH>-~6D833Wyt%bt%iOUEv@gg+U= zkFHFJu)v~_m+^;gA5RSVu#oE)_BBiim^OD~aeQaiP6AbzR_t9^@hwn|ubxa)_(ZvR z?eR)%Up zz;jl?Kvw|I;tp734(KxY)B&TZ8x%OzbfT4cL6OPT`mWV9^ep&1`>va+>SWD;AE|z= za89*rh?k4OjHw0Qk09OzdU_tr{!MlPqYTtP3dW`_MSU>Y>bZasULW}-_%U-)zQmsm zAfHPp-Keg&Z%jEdS;{c!3j8Fh!3( z#+Rk`GE|;;KvS8PN}`|Cb8qsT4s9{WZ$PFO&Kjn?x^E`E;`!;C_HD52e}Q;E0_>r= zOyHN|P-EyaF?q4)3jxUri7w6yf;)3TK*yNx5Cb=tNS%w(HA@&aXl2+u;$W2^%kLzA#0>Ek{1DI;#!5jlq-7c_uAGu8<(xZ`c(O7 zp}4n!v8T2i?K?h;Jqx6slBb`X0MGp*tQ&k8c`^+AQl}#bkM@HzS*f`#Tq2z!ES-VBsJI0Q|(N2+1OP&_{#VmK0x6MHaw` z0bwkO6PZO&7}--}NdBrg+1$Opv9P<^U-nuNdcZ^=)KQFNu4~W0` z$8gp`Ff0LFpb<{IhL}OqPyC^{Y{2Riw|u;df&w}Qt~HMQrmz`(^*^!Wh)F%?jQ3g= zPvVWq`NwdX?@rl^E(WBp%DW0X)tmy`bvA4S|7#yqbK&o$v5&eg+twe-tdOp278)*R z!$x?zQ2AKfzOQ8aJkoI7spfMXxA3b9 z&&7vTU6ISWt1pxcfBs`I2Xh8sonpwV&;Ug)>_;X_RLd2f>`mu^oax+Oj_!1wGXi5V zx&1V1tdo*_pL=tU>TWe_hG)6j!!UWOE;#e`fqR6`Jww{ASil?!3cOA_7vmgwK0u@E z*;A+#I@cGUNi#i z^F0&QpihdEH={(Qkaf4p_w!6gAG>LZy1|mJ&I4w%cE*EAu%|Nr!^(*SlRO}FMe zPE#L*IxM2XaSw3C(RH4#Czn^>T}_{x%nX!QSG&`DUhWYGql}Yr&n3a)1x3KgF=hgt z|Cm;3=c)mFS*u_-F%f(=ZuewBk9ws;Vw}F*`B8oGvQO;1KP(x)vWR1f0Yn}r^^^&@ zfR>FUWWsArHZc@~4M9XqD1t-=y{q%MIZUnisDqJByn$m=7C%@2m~uC@(QsPeK~=z| zo+DHhJ0L`!NJ7QlE$1}yE7IuSmsPueveN;+NVPDtX!sL(+9?cS0tPx{UelTYK0aCjgCLi|%-62NF@@;F0Pt%_D^^4DGN>i8>3^>ZrMeD9}G9YJLC5l^%} zzUuBnc+TheYKvQcQAE>yOMSMb$Q-AC?V4DCa2$OZZ15Z$I)~_0grrtC6_Lbva$Iwb zwk*jcwvuY(@8BRlDDnct@`vg>pIK&hYPxYP#{$95%> zMEbb5gx==CZdg-gzoX?hFWyNXm>4wW8K>1m11#Qb?%t?m$?2%j{+8T42`-7 z5lN-D^*~vye9_Csg`AWZNdAM~16?K&Ak&Sl1XlPyJPOrN+<{EMzG5L63NtSlB3-dE&?{fXX`NuV$SzS4+EFKlZT} z)n{<7EW+rad zS$db({l!r`aADd0NT!Jj39o2lB9m{iyWUTw)T-+LLF@p^9Wf0S$Fu>=xAercJiY@)eL^C|QMMJU1$-NCfq&SLM@63Jr8Vw3do*Zc({Iyuy+G$?;`>yNyxh9$iI!b(es)x)L~ zo98VC4txBv;!!@eRf!DRF<==iFo)t@yajkVH&B3h;w(wtlC&CKr^q(9zTiKNBfGno zov0W+SD$smPHaFk_H=0ZrSz`=c;zNL=YMn&IAInJiJ`UzfI;{}t5Lz=0?CcFqf||2 z&Y0p6Wt#Q`S>#4YlcHmUp`?PxvbcfyDeb2jio2CZBq*;^UBKE|-k`Z0xuN*LZ|!#p zi|MWN$ByibQR$~i<99%DZ~{y%-y|B5t)NU&c85IMI>>!j)>K$2bnw5NwX_`cIhAs{ z|f2n}RDEZ@Cu6^WERZJtX!~9Ql7N377DvbZ%E}GYdxFST14NBk4AB z4DdiWAr4^s56`6aqKJAJT=9}xw+Szb4?+{tUry3RCj8&Hx6FZV1%4r~oEd&Lrj*Fz zj(@M?X1>cM|J3k?6f&v2HA6~Z;_4=}^&s_IS@|3j`|aEOVHYna7O=7a>1pDGBr()e zn&h{%_dqVv;k9a;MWh|O(ON}8YRKoTej!WvSl*~seDIdNd+efT>O0&0=C0$3mj*7$ zUa4^SZc6w+&Q@x`FvN9t!M?=|%jG&UJh z0|}iRQa1g>Qwob+=owm`_xWYg|6%LRqoMx(_;Io&l_k4SA(buJ$~H>2B>PTNS;v}$ z5t$+z3^-SpQYfe(Y zH`^;iN1f8_Vog5{Wj-EQ>r-CqHvxnrBPMi74Vpi567_zMehgzy3Et`=p4B~D4K??H ztZ2&@C4E;ylu1KJ`?IaAG*Qop#&nm8PcMb;E5xC`ITU{+ByO|R)fGC;s z(7!LkX9w<-kWI>g5I10}=tGe$RMLSQr{z~IOGtyJv*1*gs;fqfg7M>>Hx8dnp&R;# zA>`h-$b0hE0qE_n-HTq7GGmjjMA$b3(qtDidDCxXhdA+i7UxD1%nxnbIQWsu1xDYF zBf9`XjvW$#Ok*BgqMZZiwIi`-MOv61FnJ3{IbHjvqNyFBq(~}L@ITiSn1%3EQpp`= zk>T)IMAOruP$o}0m_j&tEGaeX7+dsL{FRMCh?ZZp90^8K$G>KW$j& zCa{OV37~ux%{-_?vx%9+k+1ClN{QQy!p4URHz~~@%_RV)I9uK*V^x7VGp=d?22#Q{uefW^{P3-oMGlBv9hLqc|gN(w?&A z{=t1Tea3b25$d||P&D1Z9-2Yg7q&Z@SwD7^n z8rWDDdAf{Ulv|+S;6&PDlg9(4YR{L(mVlEQ6+@3dgyw!?u#ggf09h* zqg9US;~uZVeikYO>=NJW!aPprzIFZi>raCEjiv6_;s3F~To&eA0M-gp;&ByVz*Vs3 z?_0p_1-)lDAKp0}(YSh<_b@_VxbBN?2d8&k&c+7QdB&vm<-y1Uif3wTuACSZQS4>f zp}J&2>SfoS(D8_#$191iPECJQs*fd=_?(M*CX7I|zWeba-dCEuWN!N ze-Em&GOvMY*~1{ES-OxE=&r)_qYfh__5(|qBBX!6_&{RAh`d2ZUjNYIm}z@X|6wDE z=t(rX{=XK6v#Jo7SoNu$T;gh4933yzkG&!(rKc2vY5j=?bDs_rc0rS7u zFmhl-_mX~m8DggS?#40qj@|KL*|z0-Pv7zc6(7mDN56IU6W6aenk}jexOVRf^%!s3 zeTe?j>78fDeGT}=Ny1O@BfI#R0w4Ap9w`$3z8Jq##+8@mN76?>uK~~=V2WhF9lDSL z^&9A>K1uh0v;a-m_J1q`|AG_gO7bZUwDcI0j*g}e2~O2%*7G{tN7|GA`kLXz3{Q7Y z2GbiDWgv3GLg!Xv#$(R6Kzb!VVpPc;qg5fHr5l@-c&EmZcG7y4UUhG$r*d19Y2w|( zW&YYL=v_8oG3LQx=K`Gg(vUnh4RGba8CXx?-C;$L(U7akktElcT2X@^yEa``U)y})lD>Uo zdw{^1Vp?rEt&+<&3)O&v)E)Q1Gj}HbrWiCu9-x*};&;-gx}N!dNXRYUsMG7)Md4$A zU0RMx7R^a|n5CJn`b#xhK!S(94E<&v0ik7VH!^BKyg9L5Vui%j>!Oi8|NiSn#k)C| z>a`D-_-~vjwA55lz1y!PW)m`ciTNJ4{1t#5GCm}0u=$(G*gnvTHFKow=fBxr?%jM> zcd2gV&S7D^3Es)gJmi>Yy_$PAf6cXnzbr=@SWxyU7eAI|3w8;lAgwyiu&Sn9uLzia zzA$WX=z-%hntnW;<`w;r0g(RX+{F`61x<5fwP#WGOQWkK8_nWa*hqEbzahD-i8^*I z(d#D4+-SLH{##*;b^ofn*Mh~Q3Oe+&Az-dK0PG(7;D1EqFToqpZCsjLTCOQVcoFmc zH{C-mQfO-lzg$_qxrp6kKXN`=@!g@Sz$1-jVF1lj26KA|rwf(Zc>;KQpiMhl`^y+C z$q!%;ywIsJk^)dy0H;3oHvI(SO^mjCPdT!_SKPgOL&Sk{&?ch3v!&koy8o|aSySt` zbMeYfmF3;&-xY93oxtR=kv$a6^(On%-^8T*^D#H?YA~On$k(u6H~W^}%hQkjUO{hV zu66+O!kKo-vJuHYYgy{yB)x_Cy)0SR(RI_jQ1Motb&jPvJ%S+HuJW5hp*EAARtIJ& zaA0Oa!C3_x&+==(N*sn8=7kl5BgF}Qo0S_63aIFl&C_y$dev`Ye#dT^3I7WL|(-$ce8i&NVQMYrGiIf^ui=(`@c z^`SYl$^3BK+WqCs@wiynT%2V=%`PpfRrP~Y<|rrEXV&F=ArJ+=W=LIN3M+U_K3?Z%v-}ZCjB+F{JjF4BA-1hT(ni}J0|Dh794QE?jG#RgZ@u*U%L={ z?QiWyRridwtvEmws|(WGsmw#ww1+Vx;7-`@ioMS$=#<@HvXE!cEB<;GcgXY|FS#$H zMT&2nl}pp(h8ql$1u&VMciGhHQAHEB8QJuUU`Ym+$OcPvIzKweE2+hov3V6u+)8L@YK(+Ezn|g0+bLf-1AvVG81f73YtTOEB zuXfo$Vg>`^Uq}f@7ZQg-XH5E)c)FIv=;kYWGChmRGxsHRu8jwmO>HS{?dA_E-kxI* zj*|gEmX2pb+CUl+H`DPs^y*NV47)f$2*;o^Xu3Ff1AtL3n-)U1g38ERW)r&3E0&@V z8mQ}Ly#7~GgE`^uva;i{=o*#GRz+wpJvIERb77VB{cGv{83X@|Y>y$}sJV=mc2}Af zb8?CA4_q3$N9)cNpN12r1|vfekse|GhrRKRfuFMEhLdfx<*d?#E-`@v<%@-s2k1i2 zh_Hbj5hQ+T6`c}&Npig`WbNmJqeUUN%Ut>-{)QL@`XA4ixoX7Lrpi%}XY37|0hy@? zaK#BST5!uC$Y@MV0ac24Ji&ZCa3E1`{60y0@)ys~8kb+|i$v$oIXi2;PgCs;B;@El zkBTDcT8uZa1b{+Iz34|Jz*a9xBX`9f8%ZjzQJLrN^+^y*^Yr^8lY@ zL|5U_*|3p|?q`ul77NP8LRqryVkiD))+`^Cy?YS*i)R+K+_bchg$rynyX;~bU>Sk< zZRgWxgDb}Zh286}81g7upOH@@8eJ7VR0Pn#cu@HgSI3-y)%*0q=KkRs_bYTmR|;Hv zh96KOhXcZNE(NmppP2X?3sVa**nH(71K^a5GGJ#xyT4Dvg5RFmRJ;6Zcf6~m?A?W) zny>F152jriN>xlgSB!pnHK~S`_4)A>76vf>v7qeae{MKd6#T-CLa5;7iSQIc-%U;E zV)Nz-$-^maVbR-Mz11-Mm)1YaXNqNmzga)BN<3gGhA1dValb7vO#n_!psWPMqKIK( z=-ZDLaATL@3t0LwF6KcsAod3Gim?}?BN!>nOPhHP$*Y)jjKAi1_mY3}Bqbnc1~fJo z3OE>^MMp)R?Df4Yv2+HO9S+{q4cv0WA_C3ivk!zcXRiTns^r*YFPWXfjxU$4va)QH10llj+4Va%Ydzz<+2dt6qp}4 z>&tUHcyLoo&_Xs)OQ-YNGvjkhzx6D}rHgi^o``-Iu?%lW7r zYe?d;L<|ay*%H-NA>9Pu%BO`x$EdFvZ|Pynf5zKcALLDIG9~h8R&8x<&9~PKy4OdC z&b$f8`V}1hH~bw+bB$%cn<_3AJikb~nKKt$c76~DU%2UZ6nMg}H23`6PZx)RV!vkX zu*Qx$XG2YP2eg3NOSy1_sK}+Rz{;YBpwt$8EH;iwxCvYkK$gh6T!!vEi_Goq6r=Q& zViA>J{U4-{mhn_)WJjWcJZNrNkr!mg&mPTps_=v<++qS9$XWQq_m1UH1C4c1P(k6c7r_MoSWr7Rz7EWix}~tq0Y%8MJM5@pn%$Yp7`VA zT-0AlwKct>f~&8hI}lp0Q7SUwtOL~o8meUQpAM{u0Q42KdL(1otUTnV@vOy}{-z?8A4)>IhyERlqZv6@i1d9p8 z5l^TLEJ3p0`>_(yC`L)NSJB3Ufh2X?mCYjxJ^jR}+W~vRvo>yHp<%&(L<6!SLcpk= zJ?q=@8LmIga9!psoKM%B4Eio03?TFmO||go(HEF$bmdO-Ka;UO)D7sxl)6mtKaS2w z+&GWK7F7*(YSR^Kp|yP(RrWtRt%^$Rw~IE!k2kBHL7cF-f;ach6za73B>Rag)`$g_ zj7x?s14t31{DhIQzk5Fn^e;&^j_gjlU9;`gPC5P8sb1)6fiGpg%`QrIv7&I8d_8W;1A|5AFpr}eL+ee$Dd(xR#DwU>9iuM4M{pRft( zsLf;60Yyz9VUF$t1WfWDcO-mal63nLD6W^OJx!|F4&1%0@RMrwRkrqu0FkH=>5Xu> zGU_7Q{pws?>=r9S0L81H{Z|?srx}Pr38vl#C*ua)8=57nxjpN-sW5rJ?c%#eox6u; zmI9{(14@zR4+q)RE@oU#NKXpuIivA!zV75-)^8zj5Sw+~fO&AkmS6wJ@_wLKdX96} z6_kpEqeQ><9qBAy`#Z?dSN&P*smS$M55x((XIyu$g#X^p?n|13Ez3(Vsy9 z295w|yZ`qcvzsR6PZJ@7_L^YomucAYlnQ@z&<7~KN-KR!*8)^D-j_P@+l2aJ(giTq zd+$gEzx?)zlKjh?2ffJl3A&EzdI2Zf{Umuf>w1t!oE@35c@=vD^jMu3XDarm47fPS z!MwdAfX5UDyq_*b%mDr_rKX~s_gH7iH#0^~-kU)|;=n~U39E@nlrQ&s=z64Xq#Y~s zZYCfB1~^1xrc-nfWse>8c^IH8zl>1tKq(1e7=xN=R;Vs{=25y2v{Y?LR1w&45TVYx zq<@kM>;Cz#U?J^@0xwQJ6QqZ4e=y-7D9&Mtpke2QG}*2+8k?#w-Y-bm@40h)s(l>g z`6_$|z64C8z$#T9cn-1QFpo6FYOMDy^Iib%PeF0)!E%51j5S*OvhWo;q ze2;p}&8&=(pkp;Fye9u^+->+pPtwd93u;lG%Fk z#>qq&%V7DHz_3+y2S?2hn7PkrYAUiu*6fbI6IK4HeVnHAT`d+=9{Mpj?;vSMwuU7# z)hFnYMbUwj_S_G0q|TzCW|u#VFReLvqfGXu-`6P?QfsWmnPSJI-@O%3V6@OB%iT8? zg{CyjsYmoi-U@s&VX1#DFZ%I&H7al40zwzYn1^H{Rs+uwh!}LIGyz6)-3QB%wiwyMXcJ~)jIPHRf0)uDBqP77`vLDmg>cRms8K_YSF!r-CaS} zrU#CH!CH6C!u9cCm+zQf z5@7H+;#s}4@;unUZ}r#uP!cHeT`jsqE6oyomla4blSDw~_hq!#O53GV<4U{c47FYx zcb9{GZ|epHXQo_S7XG%;_XHG^rADd}9ulnB{&MV}M(|-XTyQlHsC6T&S>_S}&uf_L zk*NNE!tv!!8~Bd(BA?LP6-zxnVTW_}Y=-$41gmSCw$qzF2zlASjB(4~G0>R^QtL7Z zA$`*Ix#>Dk84-RMvhC6iPYo)R?A-t=m8aL55n* zC;`s%u{X%0&S9d8bS*s+X=H8o`FJ1O!^+XYlc@q~4Uay>SQY694yw?FHkn6U8TFv3 z*^)r(-*4snxf*;hoo&F@1dx0Y#juJ&0X6Jrc|N|GnIw59Mfwe&{svRE6(zKOgek+8 zzoPcX-3aLO6yUKj+|Yk4L{xIS*-Eg4)28r;()?;b)b;A9qIz4^4>5slGu;XsCzBnS zlTA6cPkS9df>Y)QCcZ>kc?Z_dJm%7myU{l(LD?lxX#YRz<5I*w2W({7oU0SUEnH zjNYt#gWy3J-jR8Dj?u1bLNh>O;gHbk4*L>hVmIy6@xFCd`45kzp;wPsxH(5-{QR|v z`sYKR3?H}g6uf2wxaRUGU>xwLRzn2Z4Zx4ePbnrIZCzD4(zEgydpWRX(Y(Atr1mDB zzz#;T=@`{T=t>4G2}FKMb=Dey!B3RHV@+#2dK<00NNEvG3Ov7+DW<{ z$R?W25M0RvK;hK&#>-V_2c0S-C1V zVDtHM;C~sl(E_1;DAz>5S!^n%@Z=^&DPptHpiO zr)K9G?mq5CjDJGqM`580-$8@!_fIp0>d+kz`L%^gzYRi^=Ml+A`XAr#z2?QC?tuC> z7^wmfX%130sqxdgs0uge`$s9cU>@I?ldUKno5raf+41ZFJmy0CMEZ^Ig9TrQg>5}} zl{7(3+AnZ!ui%1t;*#|>kRUE?0MIUvbOp@_RgBpJ8FkJ-NZN`#osULzqzjA<#K3B$ zl%az1=A@cGQ4$fkH)^M?8`fiIl$h72TrpcM+21@(^gYg}1=?fRzrdD1114AFXv(T( z!j)5@%`{s_TE`>luYdoA8c4sXM|E961@!Kp+C{!4N$2EgaQab= zF+(0&Cdat1!$17q``dPD;R7xe3n6_-kO&xA{L(7(p{{u)$~^Bs7E?}e`LabD216$v zf#0l9-KblO7c+i9PyA3mFA#=yTChNxFbU%;T}x`&&ja>nZJPvNWv!IoRP?0u}Gsf?mxon!O3|;yIg}7XkwjU{!pJuMW`$ixes4Kym`!7 zqLO=RKt@_g>&*ODX3#QNIS`jFmj&KU4qL@0sP;Q?dQLYcdfoh{LNy&^d%X(U?zVy0 zv?Eb7?`4$m=Y#@Y3D=F+WkL-0ZZiiPDERVa`9{{du z4KOF*wJa}zLbt|Q`Z3pKm903k%mDr#61%LCrv0$7zm>hINxQ)^kfXY1C@_a;?r42z zkdJ>zyMF+49(Ab`gcbjrQt94QQ!5I?u%nE**}MgVtAq{^0nLmRG-MaA#>Gd$qQ|Pl$YF{KB-y z^jp03<8ju$hjO)5LosahGYyak*`y1{5fChGli2l7s^E>>d}VF>W*NaGK+Y4MZJyL4 zbo}sajTO6&czU|6wE^Fj-<5+xdaASc0ITTV5HRC06xj+xaP8i=pkQ+xBlChSEr1N} zE<9K}5qQ5^$7otv{gaIA!nsLi_*3WhoA=SW+tGs&=dJkoQeGqX=n}KQ>Tobx!cdR` ztUEZdP!6gfrbif3?Ej4BR{s3gUlE21)T_r^DC<_0WeQEK8k_Ok&x#%ve2RJqnpQ!B zoeC-Ve_zoawnPx2dQvd)D~*(g)k)L$cLYWvyyOb{F+LnAJdsLDD(n>Vaz1`T+q5U4cerh=Se=P^iObtjoAOVNsNhnH-s`aKA0 zEuY`8YN?y5QMrZ8**1%=u<^C!m6|!@Zier5{3*XL@_FPcqaNmuB}@}_zVS5e%O zYy-2^?<{zed^&1B)VICBXf8O+O#YEeHn7PGO3xr3I?|R8Om+e&P!A?KgLAjdXuFTb z?@@Cp&GFkxy7C?<;es-xpLttPlx7J+<5_C5GAV%mB;k^Idh8X_<6n>NvC`jyCQ#J! zTU0YH3H(?({;n9p5l1cz7*aYr-XN$hH?R@6eFATnERFd1A9kSD8S!xoo)e2*BPf5X z7eM*KmM6vt7-|Q!k4mvq_GvA^(d5_I0lG4_r89p8#<7F&&`4$HYDr1MPt3ut&jI*HB57c?g z_C6>AE?^;-WEH~_tS!M3&%4S?0#P^nQ*aN#GH#x1qul7=Sg$CRG-d#jTEf?b!6Pj> zw!g0p3RM2hFb7n(h5ir;M)u~S3!R7_UR6m*MO)a~Uy`gXkfAHkYQgD-F+XbW(2vPb z4}uScf4WASH2_FSbGnc`eFQW{t%0k129_9B1>-}&jz=SN9n?%h zcwk9kVuEJJIBh(#!i`xT|EkN@JJ^Q;ImP1DF#)d{D*d%&6xW`o*z|s0W9(ZM`+eITGRdVW4^@X3* zp8<6jYOd5L{WAE0e9i0lCcnid7Bq+RUIR@oV~~yr^(UiN|2SZ8xjz;MKg5&+#h*9D zCUoU*NB9F=R7Cua*p3%wEXT5LP%Jy?s+HR-4%U!S)Fi0x7Y7ClJ_cz?Q!(Hr7skv! zuq0W~)Q|%`;!$QrUB!M6B9cAZ8u;?%!xMZ@H#D{Xz8ZT+O#C7>fL(au*CUiHifj@L zo!KF6zTLO`Ob*{kI-C+zQHIR#&r^O}@pa=v$4s$*XxT-B7`G;zZ9NW z{aq53`jR`#eN@CRR>+Qbd<;4bfG%-8S^#rYx|z2Jj#mLB(T|ru(Y1gl3x7{Jnc7po zw6wV3hKNvIxE#E;@YVTh<~2%umgV_6>_U37=s!ay4+6ZlE`Yz1tzd-NUR0Cx*2F4? z#|W`1;SQr2-k_*Ahuh4#A*gqqP7yk?OYkFtnXbjpP8d7fIscK(Kspu>UVI0=@zmuR zQ1Xd71mvFEh}e|q%derjs0A(isXyrsJJwBktX{gyk&ZT|<=swCL5aWWqr0a10MO~XX>V#E@9s4Nv`NjiqpqL0K012w4v&J) zMW29js~0-CY2c~vP+jGiCN$|bEfo4q#W3>dAuHVKDpGLGdL?Yq_m1~%4Q(xVyqhm0 zd?Jt6o;);o^1esbq3EI)Y`@!>N5I%)AIIQts(_#Gksiwtz361-X$mYp`gV!mgr9hL zYlYj!UDfwf+sezx8Pd03o@RGMvy`eE>ICeQu)B0DF@kvz4%U8%3HpO>ED=yQ81G?- z9WlszU4`fC&7M+3r&!iDsitf?(5wFWyjhsP@5zia-xQ13SI1sZdEJTen(wvefOLHM2|nFcg^h3J_OFr>G^Rya!8O9|r@fiSD+jP>^E z8rjwt1K15d`Ij=De?tr}mbw;0-eB(7)wkx&tNvQ_NA7MuNgi6gr#Q)>%PEt`!tepBqlF8=;nCDI za`OOhJWh)4Ux}Q$Mt;JS?wG{5v_=uCoHeY=tB0yTudVxHwnBu`F`k~PMiTijLN-bR zP7WHQ^GmOC(FJ(AaQuxZ^v!dV?U#v|q-Q^?lxmW{o83kPzGYMmDujd_7Z{f9rwqp( zILB_qcPcNVX~@+g<-(ej`c!yl}Mdtq`?At*_mHZqA^M? z$k?%uxrX-jQw>qvN}h%Pjz=Cq1j%JzWmEJ#)Ru7|mQ|Jo6~K1zJcsV?E>@4?*e9KE z^FX_+v^bP{ePUbg@~MG`5l7ktWgm5Ug~{D}>lxCuTXpjoluKSEvgS!2fZ{A>@;ErH zZ-*Tj{fOjfFAew~F^L2YQbG;vq~Z91&rykydP^Bd(U5fd5u-iZ5U4X+km7>Chta7` zIqy%A>@q~3o{MJ#Zj6XGBL?grU42cuOCy+0-X@NRNa5I{%jE6FVYkDSG)jG%3SG}u zGshH+3ArPQBVop(w`zKH%xw32uQ>McJs91QW*ajX17noL@XreDTr-dEcmLsjSa5<@t~=76XS8qypCZC}^Wcz;Jgpmi$REV19^ zd7gTnX1-Uc^TQN&^9ueN*%m~h;~jQW8Gh1+`7uBc`n!_R8lxZW4Vv2=qAybbFZqt3 zpZ0ol6j9Q^&3*nxUsB2nF`09rvf{XD=BYFGc1HHB25kR;O^s8I(WE=!7+8IIx&Ur= zr$$#PbcJh%V4mX;WsM3%c?3#M7C#(}ez|yIxcLF;u!LXWKQ-#}{SQV*P-IrWr^cL! zJ^@YLE=BsgPk*0Qtk!sV!FlI|YtC<%OI`_fCSSL@oUObJWZC*+KuV+QAb1&zRr^Uj z5P*tB-=*yInu4xm6#;~QkxS2Q&wzKNtu%_;=SglUGufAGu_s#2B&A$F>J-4j%uBp% zeiL359R#Vp_B)0U|DJl^U#Bg6PVv~1>ws(kEI#wqh0GrYHO)OY&y#c0wj}Jy;T4D~ zm*N+B{%5n0J�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ℑV=Kq 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

-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 literal 0 HcmV?d00001 From 8e93a69e1a36cf193ec575f172be2839618456fe Mon Sep 17 00:00:00 2001 From: imClumsyPanda Date: Tue, 15 Aug 2023 12:09:13 +0800 Subject: [PATCH 19/20] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5445215..ea30980 100644 --- a/README.md +++ b/README.md @@ -473,6 +473,6 @@ bash shutdown_all.sh ## 项目交流群 -二维码 +二维码 🎉 langchain-ChatGLM 项目微信交流群,如果你也对本项目感兴趣,欢迎加入群聊参与讨论交流。 From 8085bc38c083809c88c540704060564dae1731a2 Mon Sep 17 00:00:00 2001 From: imClumsyPanda Date: Wed, 16 Aug 2023 08:30:00 +0800 Subject: [PATCH 20/20] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ea30980..e0a7354 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ 🚩 本项目未涉及微调、训练过程,但可利用微调或训练对本项目效果进行优化。 -🌐 [AutoDL 镜像](https://www.codewithgpu.com/i/imClumsyPanda/langchain-ChatGLM/langchain-ChatGLM) 中 `v5` 版本所使用代码已更新至本项目 `0.2.0` 版本。 +🌐 [AutoDL 镜像](https://www.codewithgpu.com/i/imClumsyPanda/langchain-ChatGLM/Langchain-Chatchat) 中 `v5` 版本所使用代码已更新至本项目 `0.2.0` 版本。 🐳 [Docker 镜像](registry.cn-beijing.aliyuncs.com/chatchat/chatchat:0.2.0)