Spaces:
Running
Running
update
Browse files
config.py
CHANGED
@@ -1,331 +1,11 @@
|
|
1 |
-
"""
|
2 |
-
以下所有配置也都支持利用环境变量覆写,环境变量配置格式见docker-compose.yml。
|
3 |
-
读取优先级:环境变量 > config_private.py > config.py
|
4 |
-
--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
|
5 |
-
All the following configurations also support using environment variables to override,
|
6 |
-
and the environment variable configuration format can be seen in docker-compose.yml.
|
7 |
-
Configuration reading priority: environment variable > config_private.py > config.py
|
8 |
"""
|
9 |
|
10 |
# [step 1]>> API_KEY = "sk-123456789xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx123456789"。极少数情况下,还需要填写组织(格式如org-123456789abcdefghijklmno的),请向下翻,找 API_ORG 设置项
|
11 |
-
API_KEY = "
|
12 |
|
13 |
|
14 |
# [step 1]>> API_KEY = "sk-123456789xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx123456789"。极少数情况下,还需要填写组织(格式如org-123456789abcdefghijklmno的),请向下翻,找 API_ORG 设置项
|
15 |
-
API_KEY = "
|
16 |
-
|
17 |
-
|
18 |
-
# [step 2]>> 改为True应用代理,如果直接在海外服务器部署,此处不修改;如果使用本地或无地域限制的大模型时,此处也不需要修改
|
19 |
-
USE_PROXY = False
|
20 |
-
if USE_PROXY:
|
21 |
-
"""
|
22 |
-
填写格式是 [协议]:// [地址] :[端口],填写之前不要忘记把USE_PROXY改成True,如果直接在海外服务器部署,此处不修改
|
23 |
-
<配置教程&视频教程> https://github.com/binary-husky/gpt_academic/issues/1>
|
24 |
-
[协议] 常见协议无非socks5h/http; 例如 v2**y 和 ss* 的默认本地协议是socks5h; 而cl**h 的默认本地协议是http
|
25 |
-
[地址] 懂的都懂,不懂就填localhost或者127.0.0.1肯定错不了(localhost意思是代理软件安装在本机上)
|
26 |
-
[端口] 在代理软件的设置里找。虽然不同的代理软件界面不一样,但端口号都应该在最显眼的位置上
|
27 |
-
"""
|
28 |
-
# 代理网络的地址,打开你的*学*网软件查看代理的协议(socks5h / http)、地址(localhost)和端口(11284)
|
29 |
-
proxies = {
|
30 |
-
# [协议]:// [地址] :[端口]
|
31 |
-
"http": "socks5h://localhost:11284", # 再例如 "http": "http://127.0.0.1:7890",
|
32 |
-
"https": "socks5h://localhost:11284", # 再例如 "https": "http://127.0.0.1:7890",
|
33 |
-
}
|
34 |
-
else:
|
35 |
-
proxies = None
|
36 |
-
|
37 |
-
# ------------------------------------ 以下配置可以优化体验, 但大部分场合下并不需要修改 ------------------------------------
|
38 |
-
|
39 |
-
# 重新URL重新定向,实现更换API_URL的作用(高危设置! 常规情况下不要修改! 通过修改此设置,您将把您的API-KEY和对话隐私完全暴露给您设定的中间人!)
|
40 |
-
# 格式: API_URL_REDIRECT = {"https://api.openai.com/v1/chat/completions": "在这里填写重定向的api.openai.com的URL"}
|
41 |
-
# 举例: API_URL_REDIRECT = {"https://api.openai.com/v1/chat/completions": "https://reverse-proxy-url/v1/chat/completions"}
|
42 |
-
API_URL_REDIRECT = {}
|
43 |
-
|
44 |
-
|
45 |
-
# 多线程函数插件中,默认允许多少路线程同时访问OpenAI。Free trial users的限制是每分钟3次,Pay-as-you-go users的限制是每分钟3500次
|
46 |
-
# 一言以蔽之:免费(5刀)用户填3,OpenAI绑了信用卡的用户可以填 16 或者更高。提高限制请查询:https://platform.openai.com/docs/guides/rate-limits/overview
|
47 |
-
DEFAULT_WORKER_NUM = 3
|
48 |
-
|
49 |
-
|
50 |
-
# 色彩主题, 可选 ["Default", "Chuanhu-Small-and-Beautiful", "High-Contrast"]
|
51 |
-
# 更多主题, 请查阅Gradio主题商店: https://huggingface.co/spaces/gradio/theme-gallery 可选 ["Gstaff/Xkcd", "NoCrypt/Miku", ...]
|
52 |
-
THEME = "Chuanhu-Small-and-Beautiful"
|
53 |
-
AVAIL_THEMES = ["Default", "Chuanhu-Small-and-Beautiful", "High-Contrast", "Gstaff/Xkcd", "NoCrypt/Miku"]
|
54 |
-
|
55 |
-
|
56 |
-
# 默认的系统提示词(system prompt)
|
57 |
-
INIT_SYS_PROMPT = "Serve me as a writing and programming assistant."
|
58 |
-
|
59 |
-
|
60 |
-
# 对话窗的高度 (仅在LAYOUT="TOP-DOWN"时生效)
|
61 |
-
CHATBOT_HEIGHT = 1115
|
62 |
-
|
63 |
-
|
64 |
-
# 代码高亮
|
65 |
-
CODE_HIGHLIGHT = True
|
66 |
-
|
67 |
-
|
68 |
-
# 窗口布局
|
69 |
-
LAYOUT = "LEFT-RIGHT" # "LEFT-RIGHT"(左右布局) # "TOP-DOWN"(上下布局)
|
70 |
-
|
71 |
-
|
72 |
-
# 暗色模式 / 亮色模式
|
73 |
-
DARK_MODE = True
|
74 |
-
|
75 |
-
|
76 |
-
# 发送请求到OpenAI后,等待多久判定为超时
|
77 |
-
TIMEOUT_SECONDS = 30
|
78 |
-
|
79 |
-
|
80 |
-
# 网页的端口, -1代表随机端口
|
81 |
-
WEB_PORT = -1
|
82 |
-
|
83 |
-
|
84 |
-
# 如果OpenAI不响应(网络卡顿、代理失败、KEY失效),重试的次数限制
|
85 |
-
MAX_RETRY = 2
|
86 |
-
|
87 |
-
# OpenAI模型选择是(gpt4现在只对申请成功的人开放)
|
88 |
-
LLM_MODEL = "gpt-3.5-turbo" # 可选 "chatglm"
|
89 |
-
AVAIL_LLM_MODELS = ["gpt-3.5-turbo", "gpt-4", "api2d-gpt-4", "api2d-gpt-3.5-turbo", "spark", "azure-gpt-3.5"]
|
90 |
-
|
91 |
-
# 插件分类默认选项
|
92 |
-
DEFAULT_FN_GROUPS = ['对话', '编程', '学术', '智能体']
|
93 |
-
|
94 |
-
|
95 |
-
# 模型选择是 (注意: LLM_MODEL是默认选中的模型, 它*必须*被包含在AVAIL_LLM_MODELS列表中 )
|
96 |
-
LLM_MODEL = "gpt-3.5-turbo" # 可选 ↓↓↓
|
97 |
-
AVAIL_LLM_MODELS = ["gpt-3.5-turbo-1106","gpt-4-1106-preview","gpt-4-vision-preview",
|
98 |
-
"gpt-3.5-turbo-16k", "gpt-3.5-turbo", "azure-gpt-3.5",
|
99 |
-
"api2d-gpt-3.5-turbo", 'api2d-gpt-3.5-turbo-16k',
|
100 |
-
"gpt-4", "gpt-4-32k", "azure-gpt-4", "api2d-gpt-4",
|
101 |
-
"chatglm3", "moss", "claude-2"]
|
102 |
-
# P.S. 其他可用的模型还包括 ["zhipuai", "qianfan", "deepseekcoder", "llama2", "qwen", "gpt-3.5-turbo-0613", "gpt-3.5-turbo-16k-0613", "gpt-3.5-random"
|
103 |
-
# "spark", "sparkv2", "sparkv3", "chatglm_onnx", "claude-1-100k", "claude-2", "internlm", "jittorllms_pangualpha", "jittorllms_llama"]
|
104 |
-
|
105 |
-
|
106 |
-
# 定义界面上“询问多个GPT模型”插件应该使用哪些模型,请从AVAIL_LLM_MODELS中选择,并在不同模型之间用`&`间隔,例如"gpt-3.5-turbo&chatglm3&azure-gpt-4"
|
107 |
-
MULTI_QUERY_LLM_MODELS = "gpt-3.5-turbo&chatglm3"
|
108 |
-
|
109 |
-
|
110 |
-
# 百度千帆(LLM_MODEL="qianfan")
|
111 |
-
BAIDU_CLOUD_API_KEY = ''
|
112 |
-
BAIDU_CLOUD_SECRET_KEY = ''
|
113 |
-
BAIDU_CLOUD_QIANFAN_MODEL = 'ERNIE-Bot' # 可选 "ERNIE-Bot-4"(文心大模型4.0), "ERNIE-Bot"(文心一言), "ERNIE-Bot-turbo", "BLOOMZ-7B", "Llama-2-70B-Chat", "Llama-2-13B-Chat", "Llama-2-7B-Chat"
|
114 |
-
|
115 |
-
|
116 |
-
# 如果使用ChatGLM2微调模型,请把 LLM_MODEL="chatglmft",并在此处指定模型路径
|
117 |
-
CHATGLM_PTUNING_CHECKPOINT = "" # 例如"/home/hmp/ChatGLM2-6B/ptuning/output/6b-pt-128-1e-2/checkpoint-100"
|
118 |
-
|
119 |
-
|
120 |
-
# 本地LLM模型如ChatGLM的执行方式 CPU/GPU
|
121 |
-
LOCAL_MODEL_DEVICE = "cpu" # 可选 "cuda"
|
122 |
-
LOCAL_MODEL_QUANT = "FP16" # 默认 "FP16" "INT4" 启用量化INT4版本 "INT8" 启用量化INT8版本
|
123 |
-
|
124 |
-
|
125 |
-
# 设置gradio的并行线程数(不需要修改)
|
126 |
-
CONCURRENT_COUNT = 100
|
127 |
-
|
128 |
-
|
129 |
-
# 是否在提交时自动清空输入框
|
130 |
-
AUTO_CLEAR_TXT = False
|
131 |
-
|
132 |
-
|
133 |
-
# 加一个live2d装饰
|
134 |
-
ADD_WAIFU = False
|
135 |
-
|
136 |
-
|
137 |
-
# 设置用户名和密码(不需要修改)(相关功能不稳定,与gradio版本和网络都相关,如果本地使用不建议加这个)
|
138 |
-
# [("username", "password"), ("username2", "password2"), ...]
|
139 |
-
AUTHENTICATION = []
|
140 |
-
|
141 |
-
|
142 |
-
# 如果需要在二级路径下运行(常规情况下,不要修改!!)(需要配合修改main.py才能生效!)
|
143 |
-
CUSTOM_PATH = "/"
|
144 |
-
|
145 |
|
146 |
-
# HTTPS 秘钥和证书(不需要修改)
|
147 |
-
SSL_KEYFILE = ""
|
148 |
-
SSL_CERTFILE = ""
|
149 |
|
150 |
-
|
151 |
-
# 极少数情况下,openai的官方KEY需要伴随组织编码(格式如org-xxxxxxxxxxxxxxxxxxxxxxxx)使用
|
152 |
-
API_ORG = ""
|
153 |
-
|
154 |
-
|
155 |
-
# 如果需要使用Slack Claude,使用教程详情见 request_llms/README.md
|
156 |
-
SLACK_CLAUDE_BOT_ID = ''
|
157 |
-
SLACK_CLAUDE_USER_TOKEN = ''
|
158 |
-
|
159 |
-
|
160 |
-
# 如果需要使用AZURE(方法一:单个azure模型部署)详情请见额外文档 docs\use_azure.md
|
161 |
-
AZURE_ENDPOINT = "https://你亲手写的api名称.openai.azure.com/"
|
162 |
-
AZURE_API_KEY = "填入azure openai api的密钥" # 建议直接在API_KEY处填写,该选项即将被弃用
|
163 |
-
AZURE_ENGINE = "填入你亲手写的部署名" # 读 docs\use_azure.md
|
164 |
-
|
165 |
-
|
166 |
-
# 如果需要使用AZURE(方法二:多个azure模型部署+动态切换)详情请见额外文档 docs\use_azure.md
|
167 |
-
AZURE_CFG_ARRAY = {}
|
168 |
-
|
169 |
-
|
170 |
-
# 使用Newbing (不推荐使用,未来将删除)
|
171 |
-
NEWBING_STYLE = "creative" # ["creative", "balanced", "precise"]
|
172 |
-
NEWBING_COOKIES = """
|
173 |
-
put your new bing cookies here
|
174 |
-
"""
|
175 |
-
|
176 |
-
|
177 |
-
# 阿里云实时语音识别 配置难度较高 仅建议高手用户使用 参考 https://github.com/binary-husky/gpt_academic/blob/master/docs/use_audio.md
|
178 |
-
ENABLE_AUDIO = False
|
179 |
-
ALIYUN_TOKEN="" # 例如 f37f30e0f9934c34a992f6f64f7eba4f
|
180 |
-
ALIYUN_APPKEY="" # 例如 RoPlZrM88DnAFkZK
|
181 |
-
ALIYUN_ACCESSKEY="" # (无需填写)
|
182 |
-
ALIYUN_SECRET="" # (无需填写)
|
183 |
-
|
184 |
-
|
185 |
-
# 接入讯飞星火大模型 https://console.xfyun.cn/services/iat
|
186 |
-
XFYUN_APPID = "00000000"
|
187 |
-
XFYUN_API_SECRET = "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
|
188 |
-
XFYUN_API_KEY = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
189 |
-
|
190 |
-
|
191 |
-
# 接入智谱大模型
|
192 |
-
ZHIPUAI_API_KEY = ""
|
193 |
-
ZHIPUAI_MODEL = "chatglm_turbo"
|
194 |
-
|
195 |
-
|
196 |
-
# Claude API KEY
|
197 |
-
ANTHROPIC_API_KEY = ""
|
198 |
-
|
199 |
-
|
200 |
-
# 自定义API KEY格式
|
201 |
-
CUSTOM_API_KEY_PATTERN = ""
|
202 |
-
|
203 |
-
|
204 |
-
# HUGGINGFACE的TOKEN,下载LLAMA时起作用 https://huggingface.co/docs/hub/security-tokens
|
205 |
-
HUGGINGFACE_ACCESS_TOKEN = "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"
|
206 |
-
|
207 |
-
|
208 |
-
# GROBID服务器地址(填写多个可以均衡负载),用于高质量地读取PDF文档
|
209 |
-
# 获取方法:复制以下空间https://huggingface.co/spaces/qingxu98/grobid,设为public,然后GROBID_URL = "https://(你的hf用户名如qingxu98)-(你的填写的空间名如grobid).hf.space"
|
210 |
-
GROBID_URLS = [
|
211 |
-
"https://qingxu98-grobid.hf.space","https://qingxu98-grobid2.hf.space","https://qingxu98-grobid3.hf.space",
|
212 |
-
"https://qingxu98-grobid4.hf.space","https://qingxu98-grobid5.hf.space", "https://qingxu98-grobid6.hf.space",
|
213 |
-
"https://qingxu98-grobid7.hf.space", "https://qingxu98-grobid8.hf.space",
|
214 |
-
]
|
215 |
-
|
216 |
-
|
217 |
-
# 是否允许通过自然语言描述修改本页的配置,该功能具有一定的危险性,默认关闭
|
218 |
-
ALLOW_RESET_CONFIG = False
|
219 |
-
|
220 |
-
|
221 |
-
# 在使用AutoGen插件时,是否使用Docker容器运行代码
|
222 |
-
AUTOGEN_USE_DOCKER = False
|
223 |
-
|
224 |
-
|
225 |
-
# 临时的上传文件夹位置,请勿修改
|
226 |
-
PATH_PRIVATE_UPLOAD = "private_upload"
|
227 |
-
|
228 |
-
|
229 |
-
# 日志文件夹的位置,请勿修改
|
230 |
-
PATH_LOGGING = "gpt_log"
|
231 |
-
|
232 |
-
|
233 |
-
# 除了连接OpenAI之外,还有哪些场合允许使用代理,请勿修改
|
234 |
-
WHEN_TO_USE_PROXY = ["Download_LLM", "Download_Gradio_Theme", "Connect_Grobid",
|
235 |
-
"Warmup_Modules", "Nougat_Download", "AutoGen"]
|
236 |
-
|
237 |
-
|
238 |
-
# *实验性功能*: 自动检测并屏蔽失效的KEY,请勿使用
|
239 |
-
BLOCK_INVALID_APIKEY = False
|
240 |
-
|
241 |
-
|
242 |
-
# 自定义按钮的最大数量限制
|
243 |
-
NUM_CUSTOM_BASIC_BTN = 4
|
244 |
-
|
245 |
-
"""
|
246 |
-
在线大模型配置关联关系示意图
|
247 |
-
│
|
248 |
-
├── "gpt-3.5-turbo" 等openai模型
|
249 |
-
│ ├── API_KEY
|
250 |
-
│ ├── CUSTOM_API_KEY_PATTERN(不常用)
|
251 |
-
│ ├── API_ORG(不常用)
|
252 |
-
│ └── API_URL_REDIRECT(不常用)
|
253 |
-
│
|
254 |
-
├── "azure-gpt-3.5" 等azure模型(单个azure模型,不需要动态切换)
|
255 |
-
│ ├── API_KEY
|
256 |
-
│ ├── AZURE_ENDPOINT
|
257 |
-
│ ├── AZURE_API_KEY
|
258 |
-
│ ├── AZURE_ENGINE
|
259 |
-
│ └── API_URL_REDIRECT
|
260 |
-
│
|
261 |
-
├── "azure-gpt-3.5" 等azure模型(多个azure模型,需要动态切换,高优先级)
|
262 |
-
│ └── AZURE_CFG_ARRAY
|
263 |
-
│
|
264 |
-
├── "spark" 星火认知大模型 spark & sparkv2
|
265 |
-
│ ├── XFYUN_APPID
|
266 |
-
│ ├── XFYUN_API_SECRET
|
267 |
-
│ └── XFYUN_API_KEY
|
268 |
-
│
|
269 |
-
├── "claude-1-100k" 等claude模型
|
270 |
-
│ └── ANTHROPIC_API_KEY
|
271 |
-
│
|
272 |
-
├── "stack-claude"
|
273 |
-
│ ├── SLACK_CLAUDE_BOT_ID
|
274 |
-
│ └── SLACK_CLAUDE_USER_TOKEN
|
275 |
-
│
|
276 |
-
├── "qianfan" 百度千帆大模型库
|
277 |
-
│ ├── BAIDU_CLOUD_QIANFAN_MODEL
|
278 |
-
│ ├── BAIDU_CLOUD_API_KEY
|
279 |
-
│ └── BAIDU_CLOUD_SECRET_KEY
|
280 |
-
│
|
281 |
-
├── "zhipuai" 智谱AI大模型chatglm_turbo
|
282 |
-
│ ├── ZHIPUAI_API_KEY
|
283 |
-
│ └── ZHIPUAI_MODEL
|
284 |
-
│
|
285 |
-
└── "newbing" Newbing接口不再稳定,不推荐使用
|
286 |
-
├── NEWBING_STYLE
|
287 |
-
└── NEWBING_COOKIES
|
288 |
-
|
289 |
-
|
290 |
-
本地大模型示意图
|
291 |
-
│
|
292 |
-
├── "chatglm3"
|
293 |
-
├── "chatglm"
|
294 |
-
├── "chatglm_onnx"
|
295 |
-
├── "chatglmft"
|
296 |
-
├── "internlm"
|
297 |
-
├── "moss"
|
298 |
-
├── "jittorllms_pangualpha"
|
299 |
-
├── "jittorllms_llama"
|
300 |
-
├── "deepseekcoder"
|
301 |
-
├── "qwen"
|
302 |
-
├── RWKV的支持见Wiki
|
303 |
-
└── "llama2"
|
304 |
-
|
305 |
-
|
306 |
-
用户图形界面布局依赖关系示意图
|
307 |
-
│
|
308 |
-
├── CHATBOT_HEIGHT 对话窗的高度
|
309 |
-
├── CODE_HIGHLIGHT 代码高亮
|
310 |
-
├── LAYOUT 窗口布局
|
311 |
-
├── DARK_MODE 暗色模式 / 亮色模式
|
312 |
-
├── DEFAULT_FN_GROUPS 插件分类默认选项
|
313 |
-
├── THEME 色彩主题
|
314 |
-
├── AUTO_CLEAR_TXT 是否在提交时自动清空输入框
|
315 |
-
├── ADD_WAIFU 加一个live2d装饰
|
316 |
-
└── ALLOW_RESET_CONFIG 是否允许通过自然语言描述修改本页的配置,该功能具有一定的危险性
|
317 |
-
|
318 |
-
|
319 |
-
插件在线服务配置依赖关系示意图
|
320 |
-
│
|
321 |
-
├── 语音功能
|
322 |
-
│ ├── ENABLE_AUDIO
|
323 |
-
│ ├── ALIYUN_TOKEN
|
324 |
-
│ ├── ALIYUN_APPKEY
|
325 |
-
│ ├── ALIYUN_ACCESSKEY
|
326 |
-
│ └── ALIYUN_SECRET
|
327 |
-
│
|
328 |
-
└── PDF文档精准解析
|
329 |
-
└── GROBID_URLS
|
330 |
-
|
331 |
-
"""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
"""
|
2 |
|
3 |
# [step 1]>> API_KEY = "sk-123456789xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx123456789"。极少数情况下,还需要填写组织(格式如org-123456789abcdefghijklmno的),请向下翻,找 API_ORG 设置项
|
4 |
+
API_KEY = "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" # 可同时填写多个API-KEY,用英文逗号分割,例如API_KEY = "sk-openaikey1,sk-openaikey2,fkxxxx-api2dkey3,azure-apikey4"
|
5 |
|
6 |
|
7 |
# [step 1]>> API_KEY = "sk-123456789xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx123456789"。极少数情况下,还需要填写组织(格式如org-123456789abcdefghijklmno的),请向下翻,找 API_ORG 设置项
|
8 |
+
API_KEY = "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" # 可同时填写多个API-KEY,用英文逗号分割,例如API_KEY = "sk-openaikey1,sk-openaikey2,fkxxxx-api2dkey3,azure-apikey4"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
|
|
|
|
|
|
|
10 |
|
11 |
+
# [step 2]>> 改为True应用代理,如果直接在海外服务器部署,此处不修改;如果使用本地或无地域限制的大模型时,此处也不需要修改
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|