Giter VIP home page Giter VIP logo

xalpha's Introduction

xalpha

version doc codecov license

基金投资的全流程管理

场外基金的信息与净值获取,精确到分的投资账户记录整合分析与丰富可视化,简单的策略回测以及根据预设策略的定时投资提醒。尤其适合资金反复进出的定投型和网格型投资的概览与管理分析。

🎉 0.3 版本起支持通用日线和实时数据获取器,统一接口一行可以获得几乎任何市场上存在产品的价格数据,进行分析。

🍭 0.9 版本起支持持仓基金组合的底层持仓配置和股票细节透视,掌握底层持仓和跟踪机构股票池与买卖特点,从未如此简单。

一行拿到基金信息:

nfyy = xa.fundinfo("501018")

一行根据账单进行基金组合全模拟,和实盘完全相符:

jiaoyidan = xa.record(path) # 额外一行先读入 path 处的 csv 账单
shipan = xa.mul(status=jiaoyidan) # Let's rock
shipan.summary() # 看所有基金总结效果
shipan.get_stock_holdings() # 查看底层等效股票持仓

一行获取各种金融产品的历史日线数据或实时数据

xa.get_daily("SH518880") # 沪深市场历史数据
xa.get_daily("USD/CNY") # 人民币中间价历史数据
xa.get_rt("commodities/crude-oil") # 原油期货实时数据
xa.get_rt("HK00700", double_check=True) # 双重验证高稳定性支持的实时数据

一行拿到指数,行业,基金和个股的历史估值和即时估值分析(指数部分需要聚宽数据,本地试用申请或直接在聚宽云平台运行)

xa.PEBHistory("SH000990").summary()
xa.PEBHistory("F100032").v()

一行定价可转债

xa.CBCalculator("SH113577").analyse()

一行估算基金净值 (QDII 基金需自己提供持仓字典)

xa.QDIIPredict("SH501018", positions=True).get_t0_rate()

xalpha 不止如此,更多特性,欢迎探索。不只是数据,更是工具!

文档

在线文档地址: https://xalpha.readthedocs.io/

或者通过以下命令,在本地doc/build/html内阅读文档。

$ cd doc
$ make html

安装

pip install xalpha

目前仅支持 python 3 。

若想要尝试最新版,

$ git clone https://github.com/refraction-ray/xalpha.git
$ cd xalpha && pip3 install .

用法

本地使用

由于丰富的可视化支持,建议配合 Jupyter Notebook 使用。可以参照这里给出的示例连接,快速掌握大部分功能。

部分效果如下:

在量化平台使用

这里以聚宽为例,打开聚宽研究环境的 jupyter notebook,运行以下命令:

>>> !pip3 install xalpha --user
>>> import sys
>>> sys.path.insert(0, "/home/jquser/.local/lib/python3.6/site-packages")
>>> import xalpha as xa

即可在量化云平台正常使用 xalpha,并和云平台提供数据无缝结合。

如果想在云平台研究环境尝试最新开发版 xalpha,所需配置如下。

>>> !git clone https://github.com/refraction-ray/xalpha.git
>>> !cd xalpha && python3 setup.py develop --user
>>> import sys
>>> sys.path.insert(0, "/home/jquser/.local/lib/python3.6/site-packages")
>>> import xalpha as xa

由于 xalpha 整合了部分聚宽数据源的 API,在云端直接 xa.provider.set_jq_data(debug=True) 即可激活聚宽数据源。

致谢

感谢集思录对本项目的支持和赞助,可以在这里查看基于 xalpha 引擎构建的 QDII 基金净值预测。

博客

xalpha's People

Contributors

astraeux avatar cqzhao avatar fireflytang avatar fxyzbtc avatar kuangtu avatar newrey avatar qwerty258 avatar redreamality avatar refraction-ray avatar rico358097990 avatar wxw-matt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

xalpha's Issues

兼容性支持pyecharts 1.0.0

pyecharts在1.0.0版本,修改了API接口。导致现在的依赖无法满足。

目前发现的典型改动为

from pyecharts import Line

改为

from pyecharts.char import Line

请考虑是限制支持到老版本的pyecharts(早于1.0.0), 或者跟进到新的版本?

关于pyecharts的具体改动,参见:pyecharts/pyecharts#892

一个数据常数的意思

在algorithm_volatility函数的代码里,有乘上一个常数15.8144,看不懂这个数指的是什么意思,起什么作用。是不是可以考虑定义一个常量,然后赋以这个值

def volatility(price, date=yesterdayobj()):
df = pd.DataFrame(data={"rate": indicator.ratedaily(price, date)})
return df.std().rate * 15.8144

如何知道代码前缀和名称约定规则

我理解数据源很多,没有找到关于前缀和格式的说明,比如下面这个写法,

c = xa.Compare(("commodities/crude-oil", "USD"), "F501018", "F160216", start="20150101")

还有比如英伟数据、指数、黄金石油等商品。

pip 安装出错

ERROR: Command errored out with exit status 1: 'd:\program files (x86)\python 3.7\python.exe' 'd:\program files (x86)\python 3.7\lib\site-packages\pip' install --ignore-installed --no-user --prefix 'C:\Users\Public\Documents\Wondershare\CreatorTemp\pip-build-env-ee5muar3\overlay' --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple -- 'setuptools>=40.8.0' wheel Check the logs for full command output.

关于具体示例-基本用法-基金和指数信息的获取与分析中的指数代码

首先感谢作者提供如此优秀的工具!
zzhli = xa.indexinfo('1399922') ,指数代码"1399922",这条指数之前中证指数通过深交所渠道转发,代码是399922,2019年1月底不在通过深交所转发,公告:http://www.csindex.com.cn/zh-CN/indices/notices-and-announcements-detail/874
通过示例看到行情最新到2019年1月25日。可以替换为000922。

对于指数方面,通过0、1区分沪深交易所,对于中证指数、标普指数后续是否有区分?
比如:中证创新药产业指数-931152,通过xa.indexinfo方法获取不到。可能是行情源的问题?
谢谢!

设置set_backend为sql时,basicinfo抛异常

info.py, L334

        if (xu.ioconf["backend"] in ["csv", "sql"]) and (not path):
            fetch = True
            save = True
            form = xu.ioconf["backend"]
            path = xu.ioconf["path"]
            path = os.path.join(path, xu.ioconf["prefix"] + "INFO-")  # <----这里的path可能是Engine,TypeError: expected str, bytes or os.PathLike object, not Engine

以008969为例,trade函数执行会一直卡死

示例代码: for i in range(len(new_founds)): #我想从基金池挑选一个收益率高的
try:
found = new_founds[i]['code']
jshs = xa.fundinfo(found)
bah = xa.policy.buyandhold(jshs, start='2019-01-01', totmoney=100000)
# 简单的一次性买入类,从 start 日买入后就一直持有,始终选择分红再投入
bah.sellout('2020-05-12') # 选定日期全部卖出
print(bah.status)
jshstrade = xa.trade(jshs, bah.status) # 尝试交易一下 008969基金(封闭期)卡死
xxrate = str(jshstrade.xirrrate())

            spamwriter.writerow({found, xxrate})
            print(found + "成功" ,end="   ")
        except Exception as e:
            print(e)

定期支付型基金的交易处理

定期支付基金本身还有不同的逻辑,有些只有无手续费强制卖出,有些有每月折算附带卖出,可能还有些走分红等。前两种估计 xalpha 没办法妥善处理。原因包括1. 每月卖出份数等数据不在分红折算信息中,难以系统化收集。2. 即使手动记录卖出日期和份额数,还涉及赎回费的误算,因为该部分实际上不收赎回费。整体感觉上,很难简单的完美处理。不过值得一提的是,即使赎回费误算,影响的也仅仅是非常少量的赎回现金数和收益率,对于持仓部分的准确性没有影响。

所以暂时的 workaround 就是每月卖出部分手动记录账单,忍受赎回费误算的部分,有更好的处理建议,欢迎讨论

当mysql设置lower_case_table_names=1时,xa.get_daily抛异常

mysql5.7,centos,lower_case_table_names=1
py代码在win10上跑。
有人说to_sql的时候,要把表名改成小写key.lower(),不知道有没更好的解决方案。

df=xa.get_daily("LK", prev=5)
Traceback (most recent call last):
File "", line 1, in
File "D:\develop\anaconda3\lib\site-packages\xalpha\universal.py", line 1863, in wrapper
df0.to_sql(key, con=path, if_exists="replace", index=False)
File "D:\develop\anaconda3\lib\site-packages\pandas\core\generic.py", line 2663, in to_sql
method=method,
File "D:\develop\anaconda3\lib\site-packages\pandas\io\sql.py", line 521, in to_sql
method=method,
File "D:\develop\anaconda3\lib\site-packages\pandas\io\sql.py", line 1316, in to_sql
table.create()
File "D:\develop\anaconda3\lib\site-packages\pandas\io\sql.py", line 648, in create
self.pd_sql.drop_table(self.name, self.schema)
File "D:\develop\anaconda3\lib\site-packages\pandas\io\sql.py", line 1363, in drop_table
self.meta.reflect(only=[table_name], schema=schema)
File "D:\develop\anaconda3\lib\site-packages\sqlalchemy\sql\schema.py", line 4261, in reflect
"in %r%s: (%s)" % (bind.engine, s, ", ".join(missing))
sqlalchemy.exc.InvalidRequestError: Could not reflect: requested table(s) not available in Engine(mysql://xa:***@10.10.10.56/xa?charset=utf8): (LK)

关于以回测一系列主动基虚拟交易为例的beta alpha sharpe max_drawdown函数

1.以下是示例代码,其中beta alpha sharpe max_drawdown函数在上面的例子中,直接用sys对象调用的话,均会报错,为什么呢?
sysfix.beta(), sysfix.alpha(), sysfix.sharpe()
(0.508105417009912, 0.040867579213678853, 0.279802542882795)
sysfix.total_annualized_returns(), sysfix.algorithm_volatility()
(0.0684, 0.11160584774628288)
sysfix.max_drawdown()

最大回撤8%发生在今年,竟然不是18年,是不是说明马后炮组合的优势再减弱?

(Timestamp('2020-02-25 00:00:00'),
Timestamp('2020-03-23 00:00:00'),
-0.08257630349535526)

xa.policy.buyandhold加入end日期参数在v_totvalue时没起作用

import pandas as pd

fgth = xa.fundinfo('161005')

# 截取三个时间段的数据
st1 = xa.policy.buyandhold(fgth, start='2005-01-01', end='2006-08-01').status
st2 = xa.policy.buyandhold(fgth, start='2009-03-01', end='2014-08-01').status
st3 = xa.policy.buyandhold(fgth, start='2016-03').status

st = pd.concat([st1, st2, st3])
fgth_t = xa.trade(fgth, st)
fgth_t.v_totvalue()

图示中仍然保留着跳过的时间段数据
image

单独取一个st作图,也是类似现象。

info.py 存在信息抽取问题

测试代码如下

import xalpha as xa
import requests

funds = []
black_code = []
codes = ['000001', '000002', '000003', '000004', '000005', '000006', '000008', '000009', '000010', '000011', '000012', '000013', '000014', '000015', '000016', '000017', '000020', '000021', '000024', '000025', '000028', '000029', '000030', '000031', '000032', '000033', '000037', '000038', '000039', '000041', '000042', '000043', '000044', '000045', '000046', '000047', '000048', '000049', '000051', '000053', '000054', '000055', '000056', '000057', '000058', '000059', '000061', '000063', '000064', '000065', '000066', '000067', '000068', '000069', '000070', '000071', '000072', '000073', '000074', '000075', '000076', '000077', '000078', '000079', '000080', '000081', '000082', '000083', '000084', '000085', '000086', '000087', '000088', '000089', '000090', '000091', '000092', '000093', '000103', '000104', '000105', '000106', '000107', '000108', '000109', '000110', '000111', '000112', '000113', '000114', '000115', '000116', '000117', '000118', '000119', '000120', '000121', '000122', '000123', '000124', '000126', '000127', '000128', '000129', '000130', '000131', '000134', '000135', '000136', '000137', '000138', '000139', '000140', '000141', '000142', '000143', '000147', '000148', '000149', '000150', '000152', '000153', '000154', '000155', '000157', '000158', '000159', '000160', '000161', '000162', '000164', '000165', '000166', '000167', '000171', '000172', '000173', '000174', '000175', '000176', '000179', '000180', '000181', '000182', '000183', '000184', '000185', '000186', '000187', '000188', '000189', '000190', '000191', '000192', '000194', '000195', '000196', '000197', '000198', '000199', '000200', '000201', '000203', '000204', '000205', '000206', '000207', '000208', '000209', '000210', '000211', '000212', '000213', '000214', '000215', '000216', '000217', '000218', '000219', '000220', '000221', '000222', '000225', '000226', '000227', '000235', '000236', '000239', '000240', '000241', '000242', '000244', '000245', '000246', '000248', '000251', '000252', '000253', '000254', '000255', '000256', '000259', '000263', '000264', '000265', '000266', '000267', '000268', '000270', '000271', '000272', '000273', '000274', '000275', '000277', '000279', '000286', '000289', '000290', '000294', '000295', '000296', '000297', '000298', '000299', '000300', '000301', '000305', '000306', '000307', '000308', '000309', '000310', '000311', '000312', '000313', '000314', '000316', '000319', '000320', '000322', '000323', '000324', '000325', '000326', '000327', '000328', '000329', '000330', '000331', '000332', '000333', '000334', '000335', '000336', '000338', '000339', '000341', '000342', '000343', '000345', '000346', '000347', '000351', '000352', '000354', '000355', '000356', '000359', '000360', '000361', '000362', '000363', '000366', '000367', '000368', '000369', '000370', '000371', '000372', '000373', '000376', '000377', '000378', '000379', '000380', '000381', '000385', '000386', '000389', '000390', '000394', '000395', '000396', '000397', '000398', '000400', '000401', '000402', '000403', '000404', '000406', '000407', '000408', '000409', '000410', '000411', '000414', '000415', '000416', '000417', '000418', '000419', '000420', '000421', '000422', '000423', '000424', '000425', '000431', '000432', '000433', '000434', '000435', '000436', '000437', '000438', '000439', '000452', '000457', '000458', '000459', '000462', '000463', '000464', '000465', '000466', '000469', '000470', '000471', '000472', '000475', '000476', '000477', '000478', '000480', '000481', '000483', '000484', '000485', '000486', '000487', '000488', '000489', '000490', '000493', '000494', '000495', '000496', '000497', '000501', '000502', '000503', '000504', '000505', '000506', '000507', '000508', '000509', '000511', '000512', '000513', '000514', '000516', '000517', '000520', '000521', '000522', '000523', '000524', '000526', '000527', '000528', '000529', '000530', '000531', '000532', '000533', '000534', '000535', '000536', '000538', '000539', '000540', '000541', '000542', '000543', '000545', '000546', '000547', '000548', '000549', '000550', '000551', '000552', '000553', '000554', '000556', '000557', '000559', '000560', '000561', '000562', '000563', '000564', '000566', '000567', '000569', '000572', '000573', '000574', '000575', '000576', '000577', '000578', '000579', '000580', '000581', '000583', '000584', '000585', '000586', '000587', '000588', '000589', '000590', '000591', '000592', '000593', '000594', '000595', '000596', '000597', '000598', '000599', '000600', '000601', '000602', '000603', '000604', '000605', '000606', '000607', '000609', '000612', '000613', '000614', '000615', '000616', '000617', '000618', '000619', '000620', '000621', '000625', '000626', '000627', '000628', '000632', '000634', '000635', '000638', '000639', '000640', '000641', '000642', '000644', '000645', '000646', '000647', '000648', '000649', '000650', '000651', '000652', '000654', '000655', '000656', '000657', '000658', '000659', '000660', '000661', '000662', '000663', '000664', '000665', '000667', '000668', '000669', '000672', '000674', '000675', '000676', '000677', '000678', '000679', '000681', '000682', '000683', '000684', '000686', '000687', '000688', '000689', '000690', '000692', '000693', '000694', '000695', '000696', '000697', '000698', '000699', '000700', '000701', '000704', '000705', '000706', '000707', '000708', '000709', '000710', '000711', '000712', '000713', '000714', '000715', '000716', '000717', '000718', '000719', '000720', '000721', '000722', '000723', '000724', '000725', '000726', '000727', '000728', '000729', '000730', '000731', '000734', '000735', '000736', '000737', '000738', '000739', '000740', '000741', '000742', '000743', '000744', '000745', '000746', '000747', '000748', '000750', '000751', '000753', '000754', '000755', '000756', '000757', '000758', '000759', '000760', '000761', '000762', '000763', '000764', '000767', '000771', '000772', '000773', '000778', '000779', '000780', '000783', '000784', '000785', '000786', '000787', '000788', '000789', '000790', '000791', '000792', '000793', '000794', '000795', '000796', '000797', '000798', '000799', '000800', '000801', '000802', '000803', '000804', '000805', '000808', '000809', '000810', '000812', '000814', '000815', '000816', '000817', '000818', '000822', '000823', '000824', '000825', '000826', '000827', '000828', '000829', '000830', '000831', '000832', '000833', '000834', '000835', '000836', '000837', '000839', '000840', '000841', '000842', '000843', '000844', '000845', '000846', '000847', '000848', '000849', '000850', '000854', '000855', '000856', '000857', '000858', '000859', '000860', '000861', '000862', '000863', '000866', '000867', '000868', '000869', '000870', '000871', '000872', '000873', '000874', '000875', '000876', '000877', '000878', '000879', '000880', '000882', '000883', '000884', '000887', '000889', '000890', '000891', '000892', '000893', '000894', '000895', '000896', '000897', '000898', '000899', '000901', '000902', '000903', '000904', '000905', '000906', '000907', '000908', '000910', '000911', '000912', '000913', '000914', '000916', '000917', '000920', '000921', '000922', '000923', '000924', '000925', '000926', '000927', '000928', '000929', '000930', '000931', '000932', '000933', '000934', '000935', '000936', '000937', '000938', '000939', '000940', '000942', '000943', '000944', '000945', '000946', '000948', '000950', '000951', '000952', '000953', '000954', '000955', '000958', '000959', '000960', '000961', '000962', '000963', '000965', '000966', '000967', '000968', '000969', '000970', '000971', '000972', '000973', '000974', '000975', '000976', '000977', '000978', '000979', '000980', '000981', '000982', '000985', '000986', '000988', '000989', '000990', '000991', '000992', '000993', '000994', '000995', '000996', '000997', '000998', '001000', '001001', '001002', '001003', '001004', '001006', '001007', '001008', '001009', '001010', '001011', '001013', '001014', '001015', '001016', '001017', '001018', '001019', '001021', '001023', '001026', '001027', '001028', '001030', '001031', '001033', '001035', '001036', '001037', '001039', '001040', '001041', '001042', '001043', '001044', '001045', '001046', '001047', '001048', '001050', '001051', '001052', '001053', '001054', '001056', '001057', '001058', '001059', '001060', '001061', '001063', '001064', '001065', '001066', '001067', '001068', '001069', '001070', '001071', '001072', '001073', '001074', '001075', '001076', '001077', '001078', '001086', '001087', '001088', '001092', '001093', '001094', '001095', '001096', '001097', '001101', '001102', '001103', '001104', '001105', '001106', '001110', '001111', '001112', '001113', '001115', '001116', '001117', '001118', '001120', '001121', '001122', '001123', '001124', '001125', '001126', '001127', '001128', '001133', '001134', '001135', '001136', '001139', '001140', '001141', '001142', '001143', '001144', '001146', '001147', '001148', '001149', '001150', '001151', '001152', '001153', '001154', '001156', '001157', '001158', '001162', '001163', '001164', '001165', '001166', '001167', '001170', '001171', '001172', '001173', '001174', '001175', '001176', '001177', '001178', '001179', '001180', '001181', '001182', '001183', '001184', '001185', '001186', '001188', '001189', '001190', '001191', '001192', '001193', '001194', '001195', '001196', '001197', '001198', '001199', '001200', '001201', '001202', '001203', '001204', '001205', '001208', '001209', '001210', '001211', '001212', '001213', '001214', '001215', '001216', '001217', '001218', '001219', '001220', '001222', '001223', '001224', '001225', '001226', '001227', '001228', '001229', '001230', '001231', '001232', '001233', '001234', '001235', '001236', '001237', '001239', '001240', '001241', '001242', '001243', '001244', '001245', '001246', '001247', '001249', '001250', '001251', '001252', '001254', '001255', '001256', '001257', '001258', '001261', '001264', '001265', '001266', '001267', '001268', '001270', '001271', '001272', '001273', '001274', '001275', '001276', '001277', '001278', '001279', '001280', '001281', '001282', '001283', '001284', '001285', '001286', '001287', '001289', '001291', '001294', '001296', '001297', '001298', '001299', '001300', '001301', '001302', '001303', '001304', '001305', '001306', '001307', '001308', '001309', '001311', '001312', '001313', '001314', '001315', '001316', '001318', '001319', '001320', '001322', '001323', '001324', '001325', '001326', '001327', '001328', '001329', '001330', '001331', '001332', '001334', '001335', '001336', '001337', '001338', '001339', '001342', '001343', '001344', '001345', '001347', '001348', '001349', '001351', '001352', '001355', '001356', '001357', '001358', '001359', '001361', '001362', '001363', '001364', '001365', '001366', '001367', '001368', '001369', '001370', '001371', '001373', '001374', '001375', '001376', '001379', '001380', '001381', '001382', '001384', '001385', '001386', '001387', '001388', '001391', '001392', '001393', '001396', '001397', '001398', '001399', '001400', '001401', '001402', '001403', '001404', '001405', '001406', '001407', '001408', '001409', '001410', '001411', '001412', '001413', '001414', '001415', '001416', '001417', '001418', '001419', '001420', '001421', '001422', '001423', '001424', '001425', '001426', '001427', '001428', '001430', '001433', '001437', '001438', '001441', '001442', '001443', '001444', '001445', '001446', '001447', '001448', '001449', '001453', '001454', '001455', '001457', '001463', '001464', '001466', '001467', '001468', '001469', '001470', '001471', '001472', '001473', '001474', '001475', '001476', '001477', '001478', '001479', '001480', '001481', '001482', '001484', '001485', '001487', '001488', '001489', '001490', '001495', '001496', '001497', '001498', '001499', '001500', '001503', '001504', '001505', '001506', '001507', '001508', '001510', '001511', '001512', '001513', '001515', '001516', '001518', '001520', '001521', '001522', '001523', '001524', '001526', '001527', '001528', '001529', '001530', '001531', '001532', '001534', '001535', '001536', '001537', '001538', '001539', '001540', '001541', '001542', '001543', '001545', '001546', '001547', '001548', '001549', '001550', '001551', '001552', '001553', '001556', '001557', '001558', '001559', '001562', '001563', '001564', '001566', '001567', '001569', '001570', '001571', '001572', '001573', '001574', '001575', '001576', '001577', '001578', '001579', '001580', '001581', '001583', '001584', '001585', '001588', '001589', '001592', '001593', '001594', '001595', '001596', '001601', '001602', '001603', '001604', '001605', '001606', '001607', '001608', '001609', '001610', '001613', '001614', '001615', '001616', '001617', '001618', '001619', '001620', '001621', '001623', '001624', '001625', '001626', '001628', '001629', '001630', '001631', '001632', '001633', '001634', '001635', '001636', '001637', '001638', '001641', '001643', '001644', '001645', '001648', '001650', '001651', '001654', '001656', '001657', '001659', '001660', '001661', '001662', '001663', '001664', '001665', '001666', '001667', '001668', '001669', '001672', '001675', '001676', '001677', '001678', '001679', '001681', '001682', '001683', '001685', '001686', '001687', '001688', '001691', '001692', '001693', '001694', '001695', '001696', '001697', '001698', '001699', '001701', '001702', '001703', '001704', '001705', '001706', '001707', '001708', '001709', '001710', '001711', '001712', '001714', '001715', '001716', '001717', '001718', '001719', '001720', '001721', '001722', '001723', '001724', '001725', '001726', '001727', '001728', '001730', '001731', '001732', '001733', '001734', '001735', '001736', '001738', '001739', '001740', '001741', '001742', '001743', '001744', '001745', '001746', '001747', '001748', '001749', '001750', '001751', '001752', '001753', '001755', '001756', '001758', '001759', '001760', '001761', '001762', '001763', '001764', '001765', '001766', '001769', '001770', '001771', '001772', '001773', '001774', '001775', '001776', '001779', '001780', '001781', '001782', '001783', '001784', '001785', '001789', '001790', '001791', '001792', '001794', '001795', '001796', '001797', '001798', '001799', '001800', '001801', '001802', '001803', '001806', '001807', '001808', '001809', '001810', '001811', '001812', '001815', '001816', '001817', '001818', '001819', '001820', '001821', '001822', '001823', '001824', '001825', '001826', '001827', '001829', '001830', '001831', '001832', '001834', '001835', '001836', '001837', '001838', '001839', '001842', '001843', '001844', '001849', '001850', '001852', '001853', '001856', '001857', '001858', '001859', '001860', '001861', '001862', '001863', '001864', '001865', '001866', '001867', '001868', '001869', '001870', '001871', '001874', '001875', '001876', '001877', '001878', '001879', '001880', '001881', '001882', '001883', '001884', '001885', '001886', '001887', '001888', '001889', '001890', '001891', '001892', '001893', '001894', '001895', '001897', '001898', '001899', '001900', '001901', '001902', '001903', '001904', '001905', '001906', '001907', '001908', '001909', '001910', '001911', '001914', '001915', '001916', '001917', '001918', '001919', '001920', '001921', '001922', '001924', '001925', '001926', '001927', '001928', '001929', '001930', '001931', '001932', '001933', '001934', '001935', '001936', '001937', '001938', '001939', '001940', '001941', '001942', '001943', '001945', '001946', '001947', '001948', '001949', '001950', '001951', '001955', '001956', '001957', '001958', '001959', '001960', '001961', '001963', '001964', '001965', '001966', '001967', '001968', '001969', '001970', '001972', '001973', '001974', '001975', '001976', '001978', '001979', '001980', '001981', '001982', '001983', '001984', '001985', '001986', '001987', '001988', '001989', '001990', '001991', '001992', '001993', '001994', '001997', '001998', '002000', '002001', '002002', '002003', '002004', '002005', '002006', '002009', '002010', '002011', '002012', '002015', '002016', '002017', '002018', '002019', '002020', '002021', '002023', '002024', '002025', '002026', '002027', '002028', '002029', '002030', '002031', '002035', '002036', '002043', '002046', '002048', '002049', '002050', '002051', '002052', '002053', '002054', '002055', '002056', '002057', '002058', '002059', '002060', '002061', '002062', '002063', '002064', '002065', '002066', '002067', '002068', '002071', '002072', '002073', '002074', '002075', '002076', '002077', '002078', '002079', '002080', '002082', '002083', '002084', '002085', '002086', '002087', '002088', '002091', '002095', '002096', '002101', '002102', '002103', '002106', '002109', '002111', '002112', '002116', '002117', '002118', '002119', '002120', '002121', '002123', '002124', '002125', '002128', '002132', '002133', '002134', '002135', '002136', '002137', '002138', '002139', '002140', '002141', '002142', '002143', '002144', '002145', '002146', '002147', '002148', '002149', '002152', '002155', '002156', '002157', '002158', '002159', '002160', '002161', '002162', '002163', '002164', '002165', '002166', '002167', '002168', '002169', '002170', '002172', '002174', '002175', '002177', '002178', '002179', '002180', '002181', '002182', '002183', '002184', '002185', '002186', '002188', '002189', '002190', '002191', '002192', '002194', '002195', '002196', '002197', '002198', '002199', '002200', '002201', '002202', '002206', '002207', '002210', '002211', '002212', '002213', '002214', '002216', '002217', '002218', '002219', '002220', '002222', '002224', '002227', '002228', '002229', '002230', '002231', '002232', '002233', '002234', '002235', '002236', '002243', '002244', '002245', '002246', '002247', '002248', '002249', '002251', '002252', '002253', '002254', '002255', '002256', '002258', '002259', '002260', '002261', '002262', '002263', '002264', '002265', '002268', '002269', '002270', '002271', '002272', '002273', '002274', '002275', '002276', '002277', '002278', '002279', '002280', '002281', '002282', '002286', '002287', '002288', '002289', '002291', '002292', '002293', '002295', '002296', '002298', '002299', '002300', '002301', '002302', '002303', '002304', '002305', '002307', '002310', '002311', '002313', '002314', '002315', '002316', '002317', '002318', '002319', '002322', '002323', '002324', '002325', '002326', '002327', '002328', '002330', '002331', '002332', '002333', '002334', '002335', '002336', '002337', '002338', '002339', '002340', '002341', '002342', '002343', '002344', '002345', '002350', '002351', '002354', '002355', '002356', '002357', '002358', '002360', '002361', '002362', '002363', '002364', '002365', '002366', '002367', '002376', '002377', '002378', '002379', '002380', '002381', '002382', '002383', '002384', '002385', '002387', '002388', '002389', '002390', '002391', '002392', '002393', '002395', '002396', '002397', '002398', '002399', '002400', '002401', '002402', '002403', '002404', '002405', '002406', '002407', '002408', '002409', '002410', '002411', '002412', '002413', '002414', '002415', '002416', '002417', '002418', '002419', '002420', '002421', '002422', '002423', '002424', '002425', '002426', '002427', '002429', '002430', '002431', '002434', '002435', '002436', '002438', '002440', '002441', '002442', '002443', '002445', '002446', '002447', '002448', '002449', '002450', '002451', '002452', '002453', '002454', '002455', '002456', '002457', '002458', '002459', '002460', '002461', '002462', '002463', '002465', '002466', '002469', '002472', '002474', '002475', '002476', '002477', '002482', '002483', '002485', '002486', '002487', '002488', '002489', '002490', '002491', '002492', '002494', '002495', '002496', '002497', '002498', '002501', '002502', '002503', '002504', '002505', '002507', '002510', '002512', '002513', '002514', '002515', '002518', '002519', '002520', '002521', '002522', '002523', '002524', '002527', '002528', '002529', '002533', '002534', '002535', '002536', '002537', '002542', '002543', '002544', '002545', '002546', '002547', '002548', '002549', '002550', '002552', '002553', '002555', '002556', '002558', '002559', '002560', '002561', '002562', '002563', '002564', '002567', '002568', '002569', '002573', '002574', '002577', '002578', '002580', '002581', '002582', '002583', '002584', '002585', '002586', '002587', '002588', '002591', '002592', '002593', '002594', '002595', '002596', '002597', '002598', '002599', '002600', '002601', '002602', '002603', '002604', '002605', '002606', '002607', '002610', '002611', '002612', '002613', '002614', '002615', '002616', '002617', '002618', '002619', '002620', '002621', '002622', '002624', '002625', '002628', '002629', '002630', '002631', '002632', '002633', '002634', '002635', '002636', '002637', '002638', '002639', '002640', '002643', '002644', '002645', '002646', '002647', '002649', '002650', '002651', '002652', '002653', '002654', '002655', '002656', '002657', '002658', '002659', '002660', '002661', '002662', '002663', '002664', '002665', '002666', '002667', '002668', '002669', '002670', '002671', '002672', '002673', '002679', '002680', '002681', '002682', '002683', '002684', '002685', '002686', '002688', '002689', '002690', '002691', '002692', '002694', '002697', '002698', '002701', '002702', '002703', '002704', '002705', '002707', '002708', '002709', '002710', '002711', '002712', '002713', '002714', '002716', '002717', '002718', '002719', '002720', '002721', '002722', '002723', '002724', '002725', '002728', '002729', '002730', '002731', '002732', '002733', '002734', '002735', '002736', '002737', '002738', '002739', '002740', '002741', '002742', '002743', '002745', '002746', '002747', '002748', '002749', '002750', '002753', '002754', '002755', '002756', '002757', '002758', '002759', '002760', '002765', '002766', '002767', '002768', '002769', '002770', '002771', '002772', '002773', '002774', '002775', '002776', '002777', '002778', '002779', '002780', '002781', '002782', '002783', '002784', '002785', '002786', '002788', '002789', '002790', '002792', '002793', '002794', '002795', '002796', '002797', '002801', '002802', '002803', '002804', '002805', '002806', '002807', '002808', '002810', '002811', '002812', '002813', '002814', '002817', '002818', '002819', '002820', '002823', '002824', '002825', '002826', '002828', '002829', '002830', '002832', '002833', '002834', '002837', '002838', '002839', '002844', '002845', '002846', '002847', '002849', '002850', '002851', '002852', '002855', '002858', '002859', '002860', '002861', '002862', '002863', '002864', '002865', '002866', '002868', '002869', '002870', '002871', '002872', '002877', '002878', '002879', '002880', '002881', '002882', '002883', '002884', '002885', '002889', '002890', '002891', '002892', '002893', '002894', '002895', '002898', '002899', '002900', '002901', '002902', '002903', '002904', '002905', '002906', '002907', '002908', '002909', '002910', '002912', '002915', '002917', '002918', '002919', '002920', '002923', '002924', '002925', '002926', '002927', '002928', '002929', '002930', '002932', '002933', '002934', '002935', '002936', '002937', '002938', '002939', '002943', '002945', '002946', '002947', '002948', '002949', '002952', '002953', '002954', '002955', '002956', '002957', '002958', '002959', '002960', '002961', '002962', '002963', '002964', '002965', '002966', '002967', '002968', '002969', '002970', '002971', '002972', '002974', '002977', '002978', '002979', '002980', '002982', '002983', '002984', '002985', '002986', '002987', '002988', '002989', '002991', '002994', '002995', '002996', '002997', '003000', '003001', '003002', '003003', '003004', '003009', '003010', '003013', '003014', '003015', '003016', '003017', '003022', '003023', '003024', '003025', '003026', '003027', '003028', '003029', '003030', '003031', '003032', '003033', '003034', '003037', '003038', '003039', '003040', '003041', '003042', '003043', '003044', '003045', '003050', '003051', '003053', '003054', '003056', '003059', '003062', '003063', '003064', '003065', '003066', '003069', '003070', '003071', '003072', '003073', '003074', '003075', '003078', '003081', '003082', '003083', '003084', '003092', '003093', '003095', '003096', '003099', '003100', '003102', '003103', '003104', '003105', '003106', '003107', '003108', '003109', '003110', '003115', '003116', '003117', '003118', '003119', '003120', '003121', '003123', '003124', '003125', '003126', '003127', '003130', '003131', '003132', '003133', '003134', '003135', '003142', '003143', '003144', '003145', '003146', '003147', '003150', '003151', '003152', '003153', '003154', '003155', '003156', '003157', '003159', '003160', '003161', '003162', '003163', '003164', '003165', '003166', '003167', '003168', '003169', '003170', '003171', '003173', '003174', '003175', '003176', '003177', '003179', '003180', '003181', '003182', '003183', '003184', '003185', '003186', '003187', '003188', '003189', '003190', '003191', '003192', '003193', '003194', '003195', '003196', '003197', '003198', '003199', '003200', '003204', '003205', '003206', '003207', '003208', '003209', '003210', '003213', '003214', '003218', '003219', '003220', '003221', '003222', '003223', '003224', '003225', '003226', '003227', '003228', '003229', '003230', '003231', '003232', '003233', '003234', '003235', '003236', '003237', '003238', '003239', '003240', '003241', '003242', '003243', '003244', '003245', '003246', '003252', '003253', '003254', '003255', '003258', '003259', '003260', '003264', '003265', '003266', '003267', '003268', '003269', '003270', '003273', '003274', '003275', '003276', '003277', '003278', '003279', '003280', '003281', '003282', '003283', '003284', '003285', '003286', '003287', '003288', '003289', '003290', '003291', '003292', '003293', '003295', '003297', '003298', '003299', '003300', '003301', '003302', '003304', '003305', '003308', '003309', '003310', '003312', '003313', '003314', '003315', '003316', '003317', '003318', '003319', '003320', '003321', '003322', '003323', '003324', '003325', '003327', '003328', '003329', '003330', '003331', '003332', '003333', '003334', '003335', '003336', '003337', '003338', '003341', '003342', '003343', '003344', '003345', '003346', '003349', '003351', '003352', '003357', '003358', '003359', '003360', '003361', '003362', '003363', '003364', '003365', '003366', '003367', '003368', '003371', '003372', '003373', '003374', '003376', '003377', '003378', '003379', '003380', '003382', '003383', '003384', '003385', '003386', '003387', '003388', '003389', '003390', '003391', '003392', '003393', '003394', '003395', '003396', '003397', '003398', '003399', '003400', '003401', '003402', '003403', '003406', '003407', '003408', '003411', '003412', '003413', '003414', '003415', '003416', '003417', '003418', '003419', '003422', '003423', '003424', '003425', '003426', '003427', '003428', '003429', '003430', '003431', '003432', '003433', '003434', '003435', '003438', '003439', '003440', '003441', '003442', '003443', '003445', '003446', '003447', '003448', '003449', '003450', '003451', '003452', '003453', '003454', '003455', '003456', '003457', '003458', '003459', '003460', '003461', '003463', '003464', '003465', '003467', '003468', '003471', '003472', '003473', '003474', '003475', '003476', '003478', '003479', '003480', '003481', '003482', '003483', '003484', '003485', '003486', '003487', '003492', '003493', '003494', '003495', '003496', '003497', '003498', '003499', '003500', '003501', '003502', '003503', '003504', '003505', '003508', '003509', '003510', '003511', '003512', '003513', '003514', '003515', '003516', '003517', '003518', '003519', '003520', '003521', '003525', '003526', '003527', '003528', '003529', '003530', '003531', '003532', '003533', '003534', '003535', '003536', '003537', '003538', '003539', '003542', '003545', '003546', '003547', '003548', '003549', '003550', '003554', '003561', '003562', '003564', '003565', '003566', '003567', '003568', '003569', '003570', '003571', '003572', '003573', '003574', '003575', '003578', '003579', '003580', '003581', '003582', '003583', '003584', '003585', '003586', '003587', '003588', '003589', '003590', '003591', '003592', '003593', '003594', '003595', '003598', '003601', '003602', '003603', '003604', '003605', '003606', '003607', '003610', '003611', '003612', '003613', '003614', '003615', '003618', '003619', '003624', '003625', '003626', '003628', '003629', '003630', '003631', '003634', '003637', '003638', '003640', '003641', '003642', '003643', '003646', '003647', '003648', '003650', '003651', '003655', '003656', '003657', '003658', '003659', '003660', '003661', '003662', '003663', '003664', '003665', '003668', '003669', '003670', '003671', '003672', '003673', '003674', '003678', '003679', '003680', '003681', '003682', '003683', '003684', '003685', '003691', '003692', '003693', '003696', '003697', '003702', '003703', '003704', '003708', '003709', '003711', '003712', '003713', '003714', '003715', '003717', '003718', '003719', '003720', '003721', '003722', '003723', '003728', '003730', '003731', '003732', '003733', '003734', '003735', '003739', '003741', '003742', '003743', '003744', '003745', '003746', '003747', '003748', '003749', '003750', '003751', '003752', '003753', '003754', '003755', '003760', '003761', '003762', '003763', '003765', '003766', '003767', '003768', '003769', '003770', '003776', '003777', '003780', '003787', '003788', '003792', '003793', '003794', '003795', '003796', '003797', '003798', '003799', '003800', '003803', '003804', '003805', '003806', '003809', '003810', '003811', '003812', '003813', '003814', '003815', '003816', '003817', '003818', '003819', '003822', '003823', '003824', '003825', '003826', '003827', '003828', '003831', '003832', '003834', '003835', '003837', '003838', '003839', '003840', '003841', '003842', '003843', '003845', '003846', '003847', '003848', '003849', '003850', '003851', '003852', '003853', '003854', '003855', '003857', '003858', '003859', '003860', '003861', '003862', '003863', '003864', '003865', '003866', '003867', '003868', '003869', '003871', '003874', '003875', '003876', '003877', '003878', '003879', '003880', '003881', '003882', '003883', '003884', '003885', '003886', '003887', '003888', '003889', '003890', '003891', '003898', '003900', '003912', '003913', '003922', '003923', '003926', '003927', '003928', '003929', '003930', '003931', '003938', '003939', '003940', '003949', '003950', '003951', '003952', '003953', '003955', '003956', '003957', '003958', '003961', '003962', '003963', '003966', '003967', '003968', '003969', '003972', '003973', '003978', '003979', '003980', '003981', '003983', '003984', '003985', '003986', '003987', '003988', '003989', '003990', '003993', '003994', '003995', '003996', '003997', '003998', '003999', '004000', '004001', '004002', '004005', '004006', '004008', '004009', '004010', '004011', '004020', '004021', '004022', '004024', '004025', '004026', '004027', '004028', '004030', '004031', '004032', '004033', '004038', '004039', '004040', '004041', '004042', '004043', '004044', '004045', '004046', '004047', '004048', '004049', '004050', '004051', '004052', '004053', '004056', '004059', '004060', '004061', '004062', '004063', '004066', '004069', '004070', '004072', '004073', '004075', '004076', '004077', '004078', '004079', '004080', '004081', '004082', '004083', '004084', '004085', '004086', '004087', '004089', '004090', '004091', '004092', '004093', '004097', '004098', '004099', '004100', '004101', '004102', '004103', '004104', '004105', '004106', '004107', '004108', '004109', '004112', '004117', '004118', '004119', '004120', '004121', '004122', '004123', '004124', '004126', '004127', '004128', '004129', '004130', '004131', '004132', '004133', '004134', '004135', '004136', '004137', '004138', '004139', '004140', '004141', '004142', '004143', '004144', '004145', '004148', '004149', '004150', '004151', '004152', '004153', '004154', '004155', '004156', '004157', '004158', '004161', '004162', '004163', '004164', '004166', '004167', '004168', '004169', '004170', '004171', '004172', '004173', '004175', '004176', '004178', '004179', '004180', '004181', '004182', '004183', '004185', '004186', '004189', '004190', '004191', '004192', '004193', '004194', '004195', '004196', '004197', '004198', '004199', '004200', '004201', '004202', '004205', '004206', '004209', '004210', '004211', '004212', '004216', '004217', '004218', '004219', '004220', '004221', '004222', '004223', '004224', '004225', '004226', '004227', '004228', '004230', '004231', '004232', '004233', '004234', '004235', '004236', '004237', '004238', '004241', '004242', '004243', '004244', '004246', '004247', '004249', '004250', '004251', '004252', '004253', '004254', '004255', '004256', '004258', '004259', '004260', '004261', '004262', '004263', '004264', '004265', '004266', '004267', '004270', '004271', '004272', '004273', '004274', '004275', '004276', '004277', '004278', '004279', '004280', '004282', '004283', '004284', '004285', '004286', '004290', '004291', '004292', '004301', '004302', '004307', '004314', '004315', '004316', '004317', '004318', '004319', '004320', '004321', '004322', '004330', '004331', '004332', '004333', '004334', '004335', '004340', '004341', '004342', '004343', '004344', '004345', '004346', '004347', '004348', '004350', '004351', '004352', '004353', '004354', '004355', '004356', '004357', '004359', '004360', '004361', '004362', '004366', '004367', '004368', '004369', '004372', '004373', '004374', '004375', '004386', '004387', '004388', '004389', '004390', '004391', '004393', '004394', '004397', '004398', '004399', '004400', '004401', '004402', '004403', '004404', '004405', '004406', '004407', '004408', '004409', '004410', '004413', '004416', '004417', '004419', '004420', '004421', '004422', '004423', '004424', '004427', '004428', '004432', '004433', '004434', '004435', '004436', '004437', '004438', '004441', '004442', '004446', '004447', '004448', '004449', '004450', '004451', '004452', '004453', '004454', '004455', '004456', '004457', '004458', '004459', '004460', '004463', '004464', '004465', '004466', '004468', '004469', '004470', '004475', '004476', '004477', '004479', '004480', '004481', '004484', '004485', '004486', '004488', '004493', '004494', '004495', '004496', '004497', '004498', '004499', '004501', '004502', '004503', '004504', '004505', '004510', '004512', '004513', '004517', '004521', '004522', '004532', '004533', '004534', '004535', '004536', '004544', '004545', '004546', '004547', '004548', '004549', '004550', '004553', '004554', '004555', '004556', '004557', '004558', '004559', '004560', '004561', '004564', '004567', '004568', '004569', '004570', '004571', '004572', '004573', '004576', '004577', '004578', '004585', '004586', '004589', '004593', '004596', '004597', '004598', '004601', '004602', '004603', '004604', '004605', '004606', '004607', '004608', '004609', '004612', '004613', '004614', '004615', '004616', '004617', '004618', '004625', '004626', '004627', '004628', '004629', '004630', '004632', '004634', '004635', '004636', '004637', '004638', '004640', '004641', '004642', '004643', '004647', '004648', '004649', '004651', '004652', '004653', '004655', '004656', '004661', '004663', '004664', '004666', '004667', '004668', '004669', '004671', '004672', '004673', '004674', '004675', '004676', '004677', '004680', '004681', '004682', '004683', '004684', '004685', '004686', '004687', '004688', '004689', '004693', '004694', '004695', '004696', '004698', '004699', '004700', '004701', '004702', '004703', '004705', '004706', '004707', '004708', '004709', '004710', '004716', '004717', '004718', '004719', '004720', '004721', '004722', '004723', '004724', '004725', '004726', '004727', '004728', '004729', '004730', '004731', '004732', '004734', '004735', '004736', '004737', '004738', '004739', '004740', '004741', '004742', '004743', '004744', '004745', '004746', '004747', '004748', '004749', '004750', '004751', '004752', '004753', '004756', '004757', '004760', '004761', '004763', '004764', '004767', '004769', '004770', '004771', '004772', '004773', '004774', '004775', '004776', '004777', '004780', '004783', '004784', '004786', '004787', '004788', '004789', '004790', '004791', '004792', '004793', '004794', '004795', '004796', '004797', '004798', '004800', '004801', '004802', '004803', '004804', '004805', '004806', '004807', '004808', '004809', '004811', '004812', '004813', '004814', '004815', '004818', '004819', '004821', '004823', '004824', '004825', '004826', '004827', '004828', '004829', '004831', '004832', '004833', '004834', '004836', '004837', '004838', '004839', '004840', '004841', '004844', '004845', '004846', '004848', '004849', '004850', '004851', '004852', '004853', '004854', '004855', '004856', '004857', '004858', '004859', '004860', '004861', '004862', '004863', '004864', '004865', '004866', '004868', '004869', '004870', '004871', '004874', '004875', '004876', '004877', '004878', '004879', '004881', '004882', '004885', '004887', '004888', '004889', '004890', '004891', '004892', '004893', '004894', '004895', '004896', '004897', '004898', '004899', '004900', '004901', '004902', '004903', '004904', '004905', '004907', '004908', '004910', '004911', '004912', '004913', '004914', '004916', '004917', '004918', '004919', '004920', '004921', '004922', '004923', '004924', '004925', '004926', '004927', '004932', '004933', '004934', '004935', '004936', '004937', '004938', '004939', '004940', '004941', '004942', '004943', '004944', '004945', '004946', '004947', '004948', '004951', '004952', '004953', '004954', '004955', '004956', '004957', '004958', '004959', '004960', '004965', '004966', '004967', '004968', '004970', '004971', '004972', '004973', '004975', '004976', '004977', '004978', '004979', '004980', '004981', '004982', '004983', '004984', '004985', '004986', '004987', '004988', '004989', '004993', '004994', '004995', '004996', '004997', '004998', '004999', '005000', '005001', '005004', '005005', '005006', '005007', '005008', '005009', '005010', '005011', '005014', '005015', '005016', '005017', '005018', '005019', '005020', '005021', '005024', '005025', '005027', '005028', '005029', '005033', '005034', '005035', '005036', '005037', '005038', '005039', '005040', '005041', '005042', '005043', '005044', '005047', '005048', '005049', '005050', '005051', '005052', '005053', '005054', '005055', '005056', '005057', '005058', '005059', '005061', '005062', '005063', '005064', '005065', '005067', '005068', '005069', '005070', '005072', '005073', '005074', '005075', '005076', '005077', '005078', '005079', '005080', '005081', '005082', '005083', '005084', '005085', '005086', '005087', '005088', '005089', '005090', '005091', '005092', '005093', '005094', '005095', '005096', '005097', '005098', '005099', '005100', '005101', '005102', '005103', '005104', '005105', '005106', '005107', '005108', '005109', '005110', '005111', '005112', '005113', '005114', '005117', '005118', '005119', '005120', '005121', '005122', '005123', '005124', '005125', '005126', '005127', '005128', '005131', '005132', '005133', '005134', '005135', '005136', '005137', '005138', '005139', '005140', '005141', '005142', '005143', '005144', '005145', '005146', '005148', '005150', '005151', '005152', '005153', '005156', '005157', '005158', '005159', '005160', '005161', '005162', '005164', '005165', '005166', '005167', '005168', '005169', '005170', '005171', '005172', '005173', '005174', '005175', '005176', '005177', '005178', '005179', '005185', '005186', '005187', '005188', '005189', '005190', '005193', '005194', '005195', '005196', '005197', '005198', '005199', '005200', '005201', '005202', '005206', '005207', '005208', '005209', '005210', '005211', '005212', '005213', '005214', '005215', '005216', '005217', '005218', '005219', '005220', '005221', '005222', '005223', '005224', '005225', '005226', '005228', '005229', '005230', '005231', '005232', '005233', '005234', '005235', '005236', '005237', '005238', '005239', '005240', '005241', '005242', '005243', '005244', '005245', '005246', '005247', '005248', '005250', '005251', '005252', '005255', '005258', '005259', '005260', '005261', '005262', '005263', '005264', '005265', '005266', '005267', '005268', '005269', '005270', '005271', '005272', '005273', '005274', '005275', '005276', '005277', '005279', '005280', '005281', '005284', '005285', '005286', '005287', '005288', '005289', '005290', '005291', '005292', '005293', '005294', '005295', '005296', '005297', '005298', '005299', '005300', '005301', '005302', '005303', '005304', '005305', '005306', '005307', '005308', '005309', '005310', '005311', '005312', '005313', '005314', '005315', '005316', '005317', '005318', '005321', '005322', '005323', '005324', '005325', '005326', '005327', '005328', '005329', '005330', '005331', '005335', '005336', '005337', '005338', '005339', '005340', '005341', '005342', '005343', '005344', '005345', '005346', '005350', '005351', '005352', '005353', '005354', '005357', '005358', '005359', '005360', '005361', '005362', '005363', '005364', '005365', '005366', '005367', '005368', '005369', '005371', '005372', '005373', '005374', '005375', '005376', '005377', '005378', '005379', '005381', '005382', '005383', '005384', '005386', '005387', '005388', '005390', '005391', '005392', '005393', '005394', '005395', '005396', '005397', '005398', '005399', '005400', '005401', '005402', '005403', '005404', '005405', '005406', '005407', '005408', '005409', '005410', '005411', '005414', '005415', '005416', '005417', '005418', '005419', '005420', '005421', '005423', '005424', '005425', '005426', '005427', '005428', '005429', '005430', '005431', '005432', '005434', '005435', '005436', '005437', '005438', '005439', '005440', '005441', '005442', '005443', '005444', '005445', '005446', '005447', '005448', '005449', '005450', '005451', '005452', '005453', '005454', '005455', '005457', '005459', '005460', '005461', '005462', '005463', '005464', '005465', '005466', '005467', '005468', '005469', '005470', '005471', '005472', '005473', '005474', '005475', '005476', '005477', '005478', '005479', '005480', '005481', '005482', '005483', '005485', '005486', '005487', '005488', '005489', '005490', '005491', '005492', '005493', '005494', '005495', '005496', '005497', '005498', '005500', '005501', '005502', '005503', '005504', '005505', '005506', '005507', '005508', '005513', '005514', '005515', '005516', '005517', '005518', '005519', '005520', '005521', '005522', '005523', '005524', '005525', '005526', '005527', '005528', '005529', '005530', '005531', '005532', '005533', '005534', '005535', '005537', '005538', '005541', '005542', '005543', '005544', '005545', '005547', '005548', '005549', '005550', '005551', '005552', '005553', '005554', '005555', '005556', '005557', '005558', '005559', '005560', '005561', '005562', '005563', '005564', '005565', '005566', '005567', '005568', '005569', '005570', '005571', '005572', '005573', '005574', '005575', '005576', '005577', '005578', '005579', '005580', '005581', '005582', '005583', '005585', '005587', '005588', '005589', '005590', '005591', '005592', '005593', '005594', '005595', '005596', '005597', '005598', '005599', '005600', '005601', '005602', '005603', '005604', '005606', '005607', '005608', '005609', '005610', '005611', '005612', '005613', '005614', '005615', '005616', '005617', '005618', '005619', '005620', '005621', '005622', '005623', '005624', '005625', '005628', '005629', '005630', '005631', '005632', '005633', '005634', '005635', '005636', '005637', '005638', '005639', '005640', '005641', '005642', '005643', '005644', '005645', '005646', '005647', '005648', '005649', '005650', '005651', '005652', '005653', '005654', '005655', '005656', '005657', '005658', '005659', '005660', '005661', '005662', '005663', '005664', '005665', '005666', '005667', '005668', '005669', '005670', '005671', '005672', '005674', '005675', '005676', '005677', '005678', '005679', '005680', '005682', '005683', '005684', '005685', '005686', '005689', '005690', '005691', '005692', '005693', '005694', '005695', '005696', '005698', '005699', '005700', '005701', '005702', '005703', '005704', '005705', '005706', '005707', '005708', '005709', '005710', '005711', '005712', '005713', '005714', '005715', '005716', '005717', '005718', '005719', '005720', '005721', '005722', '005723', '005724', '005725', '005726', '005727', '005728', '005729', '005730', '005731', '005732', '005733', '005734', '005735', '005736', '005737', '005738', '005739', '005740', '005741', '005742', '005743', '005744', '005745', '005746', '005747', '005748', '005749', '005750', '005751', '005752', '005753', '005754', '005755', '005756', '005757', '005758', '005759', '005760', '005761', '005762', '005763', '005764', '005765', '005766', '005769', '005770', '005771', '005772', '005774', '005775', '005776', '005777', '005778', '005779', '005780', '005781', '005782', '005783', '005784', '005785', '005786', '005787', '005788', '005789', '005790', '005791', '005792', '005793', '005794', '005795', '005796', '005797', '005799', '005800', '005801', '005802', '005803', '005804', '005805', '005806', '005809', '005810', '005811', '005812', '005813', '005814', '005815', '005816', '005817', '005818', '005819', '005820', '005821', '005822', '005823', '005824', '005825', '005826', '005827', '005828', '005829', '005830', '005831', '005832', '005833', '005834', '005835', '005836', '005837', '005840', '005841', '005842', '005843', '005844', '005845', '005846', '005847', '005848', '005849', '005850', '005851', '005852', '005853', '005854', '005855', '005856', '005857', '005858', '005859', '005862', '005863', '005864', '005865', '005866', '005867', '005868', '005869', '005870', '005871', '005872', '005873', '005874', '005875', '005876', '005877', '005878', '005879', '005880', '005881', '005882', '005883', '005884', '005885', '005886', '005887', '005888', '005889', '005890', '005891', '005892', '005893', '005894', '005895', '005896', '005897', '005898', '005899', '005901', '005902', '005903', '005904', '005905', '005906', '005907', '005908', '005909', '005910', '005911', '005912', '005913', '005914', '005917', '005918', '005919', '005920', '005921', '005922', '005925', '005926', '005927', '005928', '005931', '005932', '005933', '005934', '005935', '005936', '005937', '005938', '005939', '005940', '005943', '005944', '005945', '005946', '005947', '005948', '005949', '005950', '005951', '005952', '005953', '005954', '005955', '005956', '005957', '005958', '005959', '005960', '005961', '005962', '005963', '005964', '005965', '005966', '005967', '005968', '005969', '005970', '005971', '005972', '005973', '005974', '005975', '005976', '005977', '005978', '005979', '005980', '005983', '005984', '005985', '005988', '005989', '005990', '005991', '005992', '005993', '005994', '005995', '005996', '005997', '005998', '005999', '006002', '006003', '006004', '006005', '006006', '006007', '006008', '006009', '006010', '006011', '006012', '006013', '006014', '006015', '006016', '006019', '006020', '006021', '006022', '006023', '006024', '006025', '006026', '006027', '006029', '006030', '006031', '006032', '006034', '006035', '006036', '006037', '006038', '006039', '006040', '006042', '006043', '006044', '006045', '006047', '006048', '006049', '006050', '006051', '006052', '006053', '006054', '006055', '006057', '006058', '006059', '006060', '006061', '006063', '006064', '006065', '006066', '006067', '006068', '006069', '006070', '006071', '006072', '006073', '006074', '006075', '006076', '006077', '006080', '006081', '006082', '006083', '006084', '006085', '006086', '006087', '006088', '006089', '006090', '006091', '006092', '006093', '006094', '006095', '006096', '006097', '006098', '006099', '006100', '006101', '006102', '006103', '006104', '006105', '006106', '006107', '006108', '006109', '006110', '006111', '006112', '006113', '006114', '006115', '006116', '006119', '006120', '006121', '006122', '006123', '006124', '006127', '006128', '006129', '006130', '006131', '006132', '006133', '006134', '006135', '006136', '006137', '006138', '006139', '006140', '006141', '006142', '006143', '006144', '006145', '006146', '006147', '006148', '006149', '006150', '006151', '006152', '006153', '006154', '006157', '006158', '006159', '006160', '006161', '006162', '006163', '006164', '006165', '006166', '006167', '006168', '006169', '006170', '006171', '006172', '006173', '006174', '006175', '006176', '006177', '006178', '006179', '006180', '006181', '006182', '006183', '006184', '006185', '006186', '006187', '006188', '006189', '006190', '006191', '006192', '006193', '006194', '006195', '006196', '006197', '006198', '006199', '006201', '006202', '006203', '006204', '006205', '006206', '006207', '006208', '006209', '006210', '006211', '006212', '006213', '006214', '006215', '006216', '006217', '006218', '006219', '006220', '006221', '006222', '006223', '006224', '006225', '006226', '006227', '006228', '006229', '006230', '006231', '006232', '006233', '006234', '006235', '006236', '006237', '006240', '006241', '006242', '006243', '006245', '006246', '006247', '006248', '006249', '006250', '006251', '006252', '006253', '006254', '006255', '006256', '006257', '006258', '006259', '006260', '006263', '006264', '006265', '006266', '006267', '006268', '006269', '006270', '006271', '006274', '006275', '006276', '006277', '006278', '006279', '006280', '006281', '006282', '006283', '006284', '006285', '006286', '006287', '006288', '006289', '006290', '006291', '006292', '006293', '006294', '006295', '006296', '006297', '006298', '006299', '006300', '006301', '006302', '006303', '006304', '006305', '006306', '006307', '006308', '006309', '006310', '006313', '006314', '006315', '006316', '006319', '006320', '006321', '006322', '006323', '006324', '006325', '006326', '006327', '006328', '006329', '006330', '006331', '006332', '006333', '006336', '006337', '006338', '006339', '006340', '006341', '006342', '006343', '006344', '006345', '006346', '006347', '006348', '006349', '006350', '006351', '006352', '006353', '006355', '006356', '006357', '006358', '006359', '006360', '006361', '006362', '006363', '006364', '006365', '006366', '006367', '006368', '006369', '006370', '006371', '006372', '006373', '006374', '006377', '006378', '006381', '006382', '006383', '006384', '006385', '006386', '006387', '006388', '006389', '006390', '006392', '006393', '006394', '006395', '006396', '006397', '006398', '006399', '006400', '006401', '006402', '006403', '006404', '006405', '006406', '006407', '006408', '006409', '006410', '006411', '006412', '006415', '006416', '006417', '006419', '006420', '006421', '006422', '006423', '006424', '006425', '006427', '006428', '006429', '006430', '006431', '006432', '006433', '006434', '006435', '006436', '006437', '006438', '006439', '006440', '006441', '006442', '006443', '006444', '006445', '006446', '006447', '006448', '006449', '006450', '006451', '006452', '006453', '006454', '006455', '006456', '006457', '006458', '006459', '006460', '006461', '006462', '006463', '006464', '006465', '006466', '006467', '006468', '006470', '006471', '006472', '006473', '006474', '006475', '006476', '006477', '006478', '006479', '006480', '006481', '006482', '006483', '006484', '006485', '006486', '006487', '006488', '006489', '006490', '006491', '006492', '006493', '006494', '006495', '006496', '006497', '006498', '006499', '006500', '006501', '006502', '006503', '006504', '006505', '006506', '006507', '006508', '006509', '006510', '006511', '006512', '006513', '006514', '006515', '006516', '006517', '006518', '006519', '006520', '006521', '006522', '006523', '006524', '006525', '006526', '006527', '006528', '006529', '006530', '006531', '006532', '006533', '006534', '006535', '006536', '006537', '006538', '006539', '006540', '006541', '006542', '006543', '006544', '006545', '006546', '006547', '006548', '006549', '006550', '006551', '006552', '006553', '006554', '006555', '006556', '006557', '006558', '006559', '006560', '006561', '006562', '006563', '006564', '006565', '006567', '006568', '006569', '006570', '006571', '006572', '006573', '006574', '006575', '006576', '006577', '006578', '006579', '006580', '006581', '006582', '006583', '006584', '006585', '006586', '006587', '006588', '006589', '006590', '006591', '006592', '006593', '006594', '006595', '006596', '006597', '006598', '006599', '006600', '006601', '006602', '006603', '006604', '006605', '006606', '006607', '006608', '006609', '006610', '006611', '006612', '006613', '006614', '006615', '006616', '006617', '006618', '006619', '006620', '006621', '006622', '006623', '006624', '006625', '006626', '006627', '006628', '006629', '006630', '006631', '006632', '006633', '006634', '006635', '006636', '006637', '006638', '006639', '006640', '006641', '006642', '006643', '006644', '006645', '006646', '006647', '006648', '006649', '006650', '006652', '006653', '006654', '006655', '006656', '006657', '006658', '006659', '006660', '006661', '006662', '006663', '006664', '006665', '006666', '006667', '006668', '006669', '006670', '006671', '006672', '006673', '006674', '006675', '006676', '006677', '006678', '006679', '006680', '006681', '006682', '006683', '006684', '006685', '006686', '006687', '006688', '006689', '006690', '006691', '006692', '006693', '006695', '006696', '006697', '006698', '006699', '006700', '006701', '006702', '006703', '006704', '006705', '006706', '006707', '006708', '006712', '006713', '006714', '006715', '006716', '006717', '006718', '006719', '006720', '006721', '006722', '006723', '006724', '006725', '006726', '006727', '006728', '006729', '006730', '006731', '006732', '006733', '006734', '006735', '006736', '006737', '006738', '006739', '006740', '006741', '006742', '006743', '006744', '006745', '006746', '006747', '006748', '006749', '006750', '006751', '006752', '006753', '006754', '006755', '006756', '006757', '006758', '006759', '006760', '006761', '006762', '006763', '006764', '006765', '006766', '006767', '006768', '006769', '006770', '006771', '006772', '006773', '006774', '006775', '006776', '006777', '006778', '006779', '006780', '006781', '006782', '006783', '006784', '006785', '006786', '006787', '006788', '006789', '006790', '006791', '006792', '006793', '006794', '006795', '006796', '006797', '006798', '006799', '006800', '006801', '006802', '006803', '006804', '006805', '006806', '006807', '006808', '006809', '006810', '006811', '006812', '006813', '006814', '006815', '006816', '006817', '006818', '006819', '006820', '006821', '006822', '006823', '006824', '006825', '006826', '006827', '006828', '006829', '006830', '006831', '006832', '006833', '006834', '006835', '006836', '006837', '006838', '006839', '006840', '006841', '006842', '006843', '006844', '006845', '006846', '006847', '006848', '006849', '006850', '006851', '006852', '006853', '006854', '006855', '006856', '006857', '006858', '006859', '006860', '006861', '006862', '006863', '006865', '006867', '006868', '006869', '006870', '006871', '006872', '006873', '006874', '006875', '006876', '006877', '006878', '006879', '006880', '006881', '006882', '006883', '006884', '006885', '006886', '006887', '006888', '006889', '006890', '006891', '006892', '006893', '006894', '006895', '006896', '006897', '006898', '006899', '006901', '006902', '006903', '006904', '006905', '006906', '006907', '006908', '006909', '006910', '006911', '006912', '006913', '006914', '006915', '006916', '006917', '006918', '006919', '006921', '006922', '006923', '006924', '006925', '006926', '006927', '006928', '006929', '006930', '006931', '006932', '006933', '006934', '006935', '006936', '006937', '006938', '006939', '006941', '006942', '006943', '006944', '006945', '006946', '006947', '006948', '006949', '006950', '006951', '006952', '006953', '006954', '006955', '006956', '006957', '006958', '006961', '006962', '006963', '006964', '006965', '006966', '006967', '006968', '006969', '006970', '006972', '006973', '006974', '006975', '006976', '006977', '006978', '006979', '006980', '006981', '006982', '006983', '006984', '006985', '006986', '006987', '006988', '006989', '006990', '006991', '006992', '006993', '006994', '006995', '006996', '006997', '006998', '006999', '007000', '007001', '007003', '007004', '007005', '007006', '007007', '007008', '007009', '007010', '007011', '007012', '007013', '007014', '007015', '007016', '007017', '007018', '007019', '007020', '007021', '007022', '007023', '007024', '007025', '007026', '007027', '007028', '007029', '007030', '007031', '007032', '007033', '007034', '007035', '007036', '007037', '007038', '007039', '007040', '007041', '007042', '007043', '007044', '007045', '007046', '007047', '007048', '007049', '007050', '007051', '007052', '007053', '007054', '007055', '007056', '007057', '007058', '007059', '007060', '007061', '007062', '007063', '007064', '007065', '007066', '007067', '007068', '007069', '007070', '007071', '007072', '007073', '007074', '007075', '007076', '007077', '007078', '007079', '007080', '007081', '007082', '007083', '007084', '007085', '007086', '007087', '007088', '007089', '007090', '007091', '007092', '007093', '007094', '007095', '007096', '007097', '007098', '007099', '007100', '007101', '007102', '007103', '007104', '007105', '007106', '007107', '007108', '007110', '007111', '007113', '007114', '007115', '007116', '007117', '007118', '007119', '007120', '007121', '007122', '007123', '007124', '007125', '007126', '007127', '007128', '007129', '007130', '007132', '007133', '007134', '007135', '007136', '007137', '007138', '007139', '007140', '007143', '007144', '007145', '007146', '007147', '007148', '007149', '007150', '007151', '007152', '007153', '007154', '007155', '007158', '007159', '007160', '007161', '007162', '007163', '007164', '007165', '007166', '007167', '007168', '007169', '007170', '007171', '007172', '007173', '007174', '007175', '007176', '007177', '007178', '007179', '007180', '007181', '007184', '007185', '007186', '007187', '007188', '007189', '007190', '007191', '007192', '007193', '007194', '007195', '007196', '007197', '007198', '007199', '007200', '007201', '007202', '007203', '007204', '007205', '007206', '007207', '007208', '007209', '007210', '007211', '007212', '007213', '007214', '007215', '007216', '007217', '007218', '007219', '007220', '007221', '007223', '007224', '007225', '007226', '007227', '007228', '007229', '007230', '007231', '007232', '007233', '007234', '007235', '007238', '007239', '007240', '007241', '007242', '007243', '007244', '007245', '007246', '007247', '007248', '007249', '007250', '007251', '007252', '007253', '007254', '007255', '007256', '007257', '007258', '007259', '007260', '007261', '007262', '007263', '007264', '007265', '007266', '007267', '007268', '007269', '007271', '007272', '007273', '007274', '007275', '007276', '007277', '007278', '007279', '007280', '007281', '007282', '007283', '007284', '007285', '007286', '007287', '007288', '007289', '007290', '007291', '007292', '007293', '007294', '007295', '007296', '007297', '007298', '007300', '007301', '007302', '007305', '007306', '007307', '007308', '007309', '007310', '007311', '007312', '007316', '007317', '007318', '007319', '007320', '007321', '007323', '007324', '007325', '007326', '007327', '007328', '007329', '007330', '007331', '007332', '007333', '007334', '007335', '007336', '007337', '007338', '007339', '007340', '007341', '007342', '007343', '007345', '007346', '007347', '007348', '007349', '007350', '007351', '007352', '007353', '007355', '007356', '007358', '007359', '007360', '007361', '007362', '007363', '007364', '007365', '007366', '007367', '007368', '007369', '007370', '007371', '007372', '007373', '007374', '007375', '007376', '007377', '007378', '007379', '007380', '007381', '007382', '007385', '007386', '007387', '007390', '007391', '007392', '007393', '007394', '007395', '007396', '007397', '007398', '007399', '007400', '007401', '007402', '007403', '007404', '007405', '007406', '007407', '007408', '007409', '007410', '007411', '007412', '007413', '007414', '007415', '007416', '007417', '007418', '007419', '007420', '007421', '007422', '007425', '007426', '007427', '007428', '007429', '007430', '007431', '007433', '007435', '007436', '007437', '007438', '007439', '007440', '007441', '007442', '007443', '007445', '007446', '007447', '007448', '007449', '007450', '007451', '007452', '007453', '007454', '007455', '007456', '007457', '007458', '007459', '007460', '007461', '007462', '007463', '007464', '007465', '007466', '007467', '007468', '007469', '007470', '007471', '007472', '007473', '007474', '007475', '007476', '007477', '007478', '007480', '007481', '007482', '007484', '007485', '007486', '007488', '007489', '007490', '007491', '007492', '007493', '007494', '007495', '007496', '007497', '007498', '007499', '007500', '007501', '007502', '007503', '007504', '007505', '007506', '007507', '007508', '007509', '007510', '007511', '007512', '007513', '007514', '007515', '007516', '007517', '007518', '007519', '007520', '007521', '007522', '007523', '007524', '007525', '007526', '007527', '007528', '007529', '007530', '007531', '007532', '007533', '007534', '007535', '007536', '007537', '007538', '007539', '007540', '007541', '007542', '007543', '007544', '007545', '007546', '007548', '007549', '007550', '007551', '007552', '007553', '007554', '007555', '007556', '007557', '007558', '007559', '007560', '007561', '007562', '007563', '007564', '007565', '007566', '007567', '007568', '007569', '007570', '007571', '007572', '007573', '007574', '007575', '007576', '007577', '007578', '007579', '007580', '007581', '007582', '007583', '007584', '007585', '007586', '007587', '007588', '007589', '007590', '007591', '007592', '007593', '007594', '007595', '007596', '007598', '007601', '007602', '007603', '007604', '007605', '007606', '007607', '007608', '007609', '007610', '007611', '007612', '007613', '007614', '007615', '007616', '007617', '007618', '007622', '007623', '007624', '007625', '007626', '007627', '007628', '007629', '007630', '007631', '007632', '007633', '007634', '007635', '007636', '007637', '007638', '007639', '007640', '007641', '007642', '007643', '007644', '007645', '007646', '007647', '007649', '007650', '007651', '007652', '007653', '007654', '007655', '007656', '007657', '007658', '007659', '007660', '007661', '007662', '007663', '007664', '007665', '007666', '007667', '007669', '007670', '007671', '007672', '007673', '007674', '007675', '007676', '007677', '007678', '007679', '007680', '007681', '007682', '007685', '007686', '007687', '007688', '007689', '007690', '007694', '007695', '007696', '007697', '007698', '007699', '007701', '007702', '007703', '007704', '007706', '007707', '007708', '007709', '007710', '007711', '007712', '007713', '007714', '007715', '007716', '007717', '007718', '007719', '007720', '007721', '007722', '007725', '007726', '007727', '007728', '007729', '007730', '007731', '007732', '007733', '007734', '007735', '007736', '007737', '007738', '007739', '007740', '007741', '007744', '007745', '007746', '007747', '007748', '007749', '007750', '007751', '007752', '007753', '007754', '007755', '007756', '007757', '007758', '007759', '007760', '007761', '007762', '007763', '007764', '007765', '007766', '007767', '007768', '007769', '007770', '007771', '007772', '007775', '007776', '007777', '007778', '007779', '007780', '007781', '007782', '007783', '007784', '007785', '007786', '007787', '007788', '007789', '007790', '007791', '007792', '007793', '007794', '007795', '007796', '007797', '007798', '007799', '007800', '007801', '007802', '007803', '007804', '007805', '007806', '007807', '007808', '007809', '007810', '007811', '007812', '007813', '007814', '007815', '007816', '007817', '007818', '007819', '007820', '007821', '007822', '007823', '007824', '007825', '007826', '007827', '007828', '007829', '007830', '007831', '007832', '007833', '007834', '007835', '007836', '007837', '007838', '007839', '007840', '007842', '007843', '007844', '007845', '007846', '007847', '007848', '007850', '007851', '007852', '007853', '007854', '007855', '007856', '007857', '007858', '007859', '007860', '007863', '007864', '007866', '007867', '007868', '007869', '007870', '007871', '007872', '007873', '007874', '007875', '007876', '007877', '007878', '007879', '007880', '007881', '007882', '007883', '007884', '007885', '007886', '007887', '007888', '007889', '007890', '007893', '007894', '007895', '007896', '007897', '007898', '007899', '007900', '007901', '007902', '007903', '007904', '007907', '007908', '007909', '007910', '007911', '007912', '007913', '007914', '007915', '007916', '007920', '007923', '007924', '007925', '007926', '007927', '007928', '007929', '007932', '007933', '007934', '007935', '007936', '007937', '007938', '007939', '007941', '007942', '007943', '007944', '007945', '007946', '007947', '007948', '007949', '007950', '007951', '007952', '007953', '007954', '007955', '007956', '007957', '007958', '007959', '007960', '007962', '007963', '007964', '007965', '007966', '007967', '007968', '007969', '007970', '007975', '007976', '007977', '007978', '007979', '007981', '007982', '007983', '007984', '007985', '007986', '007987', '007990', '007991', '007992', '007993', '007994', '007995', '007996', '007997', '007998', '007999', '008000', '008001', '008002', '008003', '008004', '008007', '008008', '008009', '008010', '008011', '008014', '008015', '008016', '008017', '008018', '008019', '008020', '008021', '008022', '008025', '008026', '008030', '008031', '008032', '008033', '008034', '008037', '008038', '008039', '008040', '008041', '008042', '008043', '008044', '008045', '008046', '008047', '008048', '008049', '008050', '008051', '008052', '008053', '008054', '008055', '008056', '008057', '008058', '008059', '008061', '008062', '008063', '008064', '008065', '008066', '008067', '008068', '008069', '008070', '008071', '008072', '008073', '008074', '008075', '008076', '008077', '008078', '008079', '008080', '008081', '008082', '008083', '008084', '008085', '008086', '008087', '008088', '008089', '008091', '008092', '008093', '008094', '008095', '008096', '008097', '008098', '008099', '008100', '008101', '008104', '008105', '008106', '008107', '008108', '008109', '008110', '008111', '008112', '008113', '008114', '008115', '008116', '008117', '008118', '008119', '008120', '008121', '008122', '008123', '008124', '008125', '008126', '008127', '008128', '008129', '008130', '008132', '008133', '008134', '008135', '008136', '008137', '008138', '008139', '008140', '008141', '008142', '008143', '008144', '008145', '008146', '008147', '008149', '008156', '008157', '008158', '008159', '008160', '008161', '008162', '008163', '008164', '008165', '008166', '008167', '008168', '008169', '008170', '008171', '008172', '008173', '008174', '008175', '008176', '008177', '008178', '008179', '008180', '008181', '008182', '008183', '008184', '008185', '008186', '008187', '008188', '008189', '008190', '008191', '008192', '008193', '008199', '008200', '008201', '008202', '008203', '008204', '008205', '008207', '008208', '008209', '008210', '008211', '008212', '008213', '008214', '008215', '008216', '008217', '008218', '008219', '008220', '008221', '008222', '008223', '008226', '008227', '008228', '008230', '008231', '008232', '008233', '008234', '008236', '008237', '008238', '008239', '008240', '008241', '008242', '008243', '008244', '008245', '008246', '008251', '008252', '008253', '008254', '008255', '008256', '008257', '008258', '008259', '008260', '008261', '008262', '008263', '008264', '008265', '008268', '008269', '008270', '008271', '008272', '008273', '008274', '008275', '008276', '008277', '008278', '008279', '008280', '008281', '008282', '008283', '008284', '008285', '008286', '008287', '008288', '008290', '008291', '008292', '008293', '008296', '008297', '008298', '008299', '008302', '008303', '008304', '008305', '008306', '008307', '008308', '008313', '008314', '008315', '008318', '008319', '008320', '008321', '008322', '008323', '008324', '008325', '008326', '008327', '008328', '008331', '008332', '008333', '008338', '008339', '008344', '008345', '008346', '008347', '008348', '008349', '008350', '008351', '008352', '008353', '008354', '008355', '008357', '008358', '008359', '008362', '008367', '008368', '008369', '008370', '008371', '008372', '008373', '008374', '008375', '008376', '008378', '008381', '008383', '008387', '008390', '008391', '008392', '008393', '008396', '008397', '008398', '008399', '008400', '008402', '008403', '008404', '008405', '008406', '008407', '008408', '008410', '008411', '008416', '008417', '008418', '008419', '008420', '008421', '008424', '008425', '008428', '008429', '008433', '008434', '008435', '008436', '008448', '008449', '008452', '008453', '008456', '008457', '008460', '008461', '008462', '008467', '008468', '008469', '008470', '008471', '008472', '008475', '008476', '008477', '008479', '008480', '008481', '008484', '008485', '008486', '008487', '008488', '008493', '008497', '008498', '008499', '008500', '008501', '008502', '008503', '008504', '008507', '008508', '008509', '008510', '008511', '008512', '008513', '008514', '008515', '008516', '008518', '008521', '008523', '008524', '008525', '008526', '008527', '008528', '008529', '008530', '008531', '008532', '008535', '008536', '008539', '008540', '008541', '008542', '008545', '008547', '008548', '008549', '008550', '008551', '008552', '008554', '008556', '008557', '008558', '008559', '008562', '008566', '008567', '008568', '008571', '008572', '008574', '008575', '008578', '008579', '008582', '008587', '008588', '008590', '008591', '008592', '008593', '008594', '008595', '008596', '008597', '008604', '008605', '008606', '008607', '008610', '008611', '008618', '008619', '008620', '008621', '008622', '008623', '008625', '008626', '008627', '008629', '008630', '008632', '008633', '008634', '008635', '008638', '008639', '008640', '008641', '008642', '008643', '008644', '008645', '008646', '008647', '008649', '008650', '008651', '008654', '008655', '008656', '008657', '008661', '008662', '008663', '008664', '008665', '008666', '008667', '008668', '008671', '008672', '008673', '008674', '008675', '008676', '008677', '008678', '008681', '008682', '008688', '008689', '008690', '008691', '008692', '008693', '008694', '008695', '008696', '008697', '008704', '008705', '008706', '008707', '008708', '008710', '008711', '008712', '008713', '008714', '008716', '008717', '008718', '008728', '008729', '008730', '008733', '008734', '008739', '008740', '008741', '008742', '008743', '008744', '008745', '008747', '008748', '008749', '008750', '008751', '008752', '008754', '008755', '008759', '008760', '008761', '008762', '008763', '008764', '008765', '008768', '008769', '008770', '008778', '008779', '008780', '008783', '008784', '008789', '008790', '008791', '008792', '008793', '008794', '008795', '008796', '008797', '008798', '008799', '008800', '008801', '008802', '008806', '008807', '008808', '008809', '008810', '008811', '008815', '008816', '008817', '008819', '008829', '008830', '008831', '008833', '008834', '008835', '008836', '008837', '008838', '008839', '008846', '008847', '008848', '008851', '008854', '008855', '008860', '008864', '008865', '008866', '008867', '008869', '008870', '008873', '008874', '008886', '008891', '008892', '008893', '008894', '008895', '008896', '008897', '008898', '008899', '008901', '008902', '008903', '008904', '008905', '008906', '008907', '008908', '008909', '008910', '008911', '008912', '008913', '008918', '008919', '008920', '008928', '008929', '008936', '008941', '008942', '008946', '008947', '008948', '008949', '008950', '008951', '008954', '008955', '008956', '008957', '008958', '008959', '008960', '008961', '008962', '008963', '008966', '008967', '008968', '008969', '008970', '008972', '008973', '008974', '008975', '008976', '008978', '008979', '008980', '008981', '008982', '008985', '008988', '008989', '008990', '008991', '008992', '008993', '008994', '008997', '008998', '009001', '009002', '009003', '009004', '009005', '009006', '009007', '009008', '009009', '009010', '009011', '009012', '009013', '009014', '009017', '009018', '009019', '009020', '009021', '009022', '009023', '009024', '009025', '009026', '009031', '009032', '009039', '009040', '009045', '009046', '009047', '009048', '009049', '009050', '009054', '009055', '009056', '009057', '009058', '009059', '009060', '009062', '009063', '009064', '009065', '009067', '009068', '009071', '009072', '009076', '009077', '009078', '009079', '009080', '009081', '009084', '009085', '009086', '009089', '009091', '009096', '009097', '009098', '009099', '009100', '009101', '009104', '009106', '009107', '009108', '009111', '009112', '009116', '009117', '009118', '009121', '009122', '009123', '009124', '009125', '009126', '009127', '009128', '009129', '009130', '009131', '009132', '009133', '009134', '009135', '009136', '009137', '009140', '009143', '009144', '009145', '009146', '009148', '009149', '009152', '009153', '009154', '009155', '009161', '009162', '009163', '009167', '009168', '009169', '009170', '009171', '009172', '009173', '009177', '009178', '009179', '009180', '009188', '009189', '009190', '009193', '009196', '009197', '009198', '009207', '009215', '009216', '009217', '009218', '009227', '009228', '009229', '009239', '009241', '009256', '009257', '009258', '009262', '009265', '009271', '009272', '009276', '009284', '009292', '009293', '009295', '009296', '009297', '020001', '020002', '020003', '020005', '020007', '020009', '020010', '020011', '020012', '020015', '020018', '020019', '020020', '020021', '020022', '020023', '020026', '020031', '020032', '020033', '020034', '040001', '040002', '040003', '040004', '040005', '040007', '040008', '040009', '040010', '040011', '040012', '040013', '040015', '040016', '040018', '040019', '040020', '040021', '040022', '040023', '040025', '040026', '040030', '040031', '040035', '040036', '040037', '040038', '040039', '040040', '040041', '040045', '040046', '040047', '040048', '040180', '040190', '041001', '041002', '041003', '041004', '041005', '041007', '041008', '041009', '041011', '050001', '050002', '050003', '050004', '050006', '050007', '050008', '050009', '050010', '050011', '050012', '050013', '050014', '050015', '050016', '050018', '050019', '050020', '050021', '050022', '050023', '050024', '050025', '050026', '050027', '050028', '050030', '050106', '050111', '050116', '050119', '050123', '050128', '050201', '050202', '050203', '051001', '051010', '051011', '051014', '051016', '051106', '051201', '070001', '070002', '070003', '070005', '070006', '070008', '070009', '070010', '070011', '070012', '070013', '070015', '070016', '070017', '070018', '070019', '070020', '070021', '070022', '070023', '070025', '070026', '070027', '070028', '070029', '070030', '070031', '070032', '070035', '070036', '070037', '070038', '070039', '070088', '070099', '080001', '080002', '080003', '080005', '080006', '080007', '080008', '080011', '080012', '080015', '090001', '090002', '090003', '090004', '090005', '090006', '090007', '090009', '090010', '090011', '090012', '090013', '090015', '090016', '090017', '090018', '090019', '090020', '090021', '090022', '090023', '091001', '091002', '091003', '091005', '091006', '091021', '091022', '091023', '092002', '096001', '100016', '100017', '100018', '100019', '100020', '100021', '100022', '100023', '100025', '100026', '100027', '100028', '100029', '100030', '100032', '100033', '100035', '100036', '100037', '100038', '100039', '100050', '100051', '100052', '100053', '100055', '100056', '100058', '100059', '100060', '100061', '100066', '100067', '100068', '100072', '100073', '110001', '110002', '110003', '110005', '110006', '110007', '110008', '110009', '110010', '110011', '110012', '110013', '110015', '110016', '110017', '110018', '110019', '110020', '110021', '110022', '110023', '110025', '110026', '110027', '110028', '110029', '110030', '110031', '110032', '110033', '110035', '110036', '110037', '110038', '110050', '110051', '110052', '110053', '112002', '118001', '118002', '121001', '121002', '121003', '121005', '121006', '121008', '121009', '121010', '121011', '121012', '128001', '128002', '128005', '128006', '128008', '128011', '128012', '128112', '150005', '150008', '150009', '150012', '150013', '150015', '150016', '150017', '150018', '150019', '150022', '150023', '150028', '150029', '150030', '150031', '150032', '150033', '150036', '150037', '150049', '150050', '150051', '150052', '150055', '150056', '150059', '150060', '150064', '150065', '150066', '150067', '150083', '150084', '150092', '150093', '150094', '150095', '150100', '150101', '150103', '150104', '150105', '150117', '150118', '150123', '150124', '150130', '150131', '150135', '150136', '150143', '150144', '150145', '150146', '150148', '150149', '150150', '150151', '150152', '150153', '150157', '150158', '150164', '150165', '150167', '150168', '150169', '150170', '150171', '150172', '150173', '150174', '150175', '150176', '150177', '150178', '150179', '150180', '150181', '150182', '150184', '150185', '150186', '150187', '150188', '150189', '150190', '150191', '150192', '150193', '150194', '150195', '150196', '150197', '150198', '150199', '150200', '150201', '150203', '150204', '150205', '150206', '150207', '150208', '150209', '150210', '150211', '150212', '150213', '150214', '150215', '150216', '150217', '150218', '150219', '150220', '150221', '150222', '150223', '150224', '150225', '150226', '150227', '150228', '150229', '150230', '150231', '150232', '150235', '150236', '150237', '150238', '150243', '150244', '150245', '150246', '150247', '150248', '150249', '150250', '150251', '150252', '150255', '150256', '150257', '150258', '150259', '150260', '150261', '150262', '150263', '150264', '150265', '150266', '150267', '150268', '150269', '150270', '150271', '150272', '150273', '150274', '150275', '150276', '150277', '150278', '150279', '150280', '150281', '150282', '150283', '150284', '150287', '150288', '150289', '150290', '150291', '150292', '150293', '150294', '150295', '150296', '150297', '150298', '150299', '150300', '150301', '150302', '150303', '150304', '150307', '150308', '150309', '150310', '150311', '150312', '150315', '150316', '150317', '150318', '150321', '150322', '150323', '150324', '150325', '150326', '150327', '150328', '150329', '150330', '150335', '150336', '150343', '150344', '150968', '150988', '150998', '151001', '151002', '159001', '159002', '159003', '159004', '159005', '159006', '159801', '159802', '159803', '159804', '159805', '159806', '159807', '159809', '159810', '159811', '159812', '159813', '159901', '159902', '159903', '159905', '159906', '159907', '159908', '159909', '159910', '159911', '159912', '159913', '159915', '159916', '159918', '159919', '159920', '159922', '159923', '159925', '159926', '159928', '159929', '159930', '159931', '159932', '159933', '159934', '159935', '159936', '159937', '159938', '159939', '159940', '159941', '159943', '159944', '159945', '159948', '159949', '159951', '159952', '159953', '159954', '159955', '159956', '159957', '159958', '159959', '159960', '159961', '159962', '159963', '159964', '159965', '159966', '159967', '159968', '159969', '159970', '159971', '159972', '159973', '159974', '159975', '159976', '159977', '159978', '159979', '159980', '159981', '159982', '159983', '159984', '159985', '159986', '159987', '159988', '159990', '159991', '159992', '159993', '159994', '159995', '159996', '159997', '159998', '160105', '160106', '160107', '160119', '160120', '160121', '160122', '160123', '160124', '160125', '160127', '160128', '160129', '160130', '160131', '160132', '160133', '160134', '160135', '160136', '160137', '160140', '160141', '160142', '160211', '160212', '160213', '160215', '160216', '160217', '160218', '160219', '160220', '160221', '160222', '160223', '160224', '160225', '160226', '160311', '160314', '160322', '160323', '160324', '160415', '160416', '160417', '160418', '160419', '160420', '160421', '160422', '160424', '160505', '160512', '160513', '160514', '160515', '160516', '160517', '160518', '160519', '160520', '160521', '160522', '160523', '160524', '160526', '160527', '160528', '160602', '160603', '160605', '160606', '160607', '160608', '160609', '160610', '160611', '160612', '160613', '160615', '160616', '160617', '160618', '160620', '160621', '160622', '160624', '160625', '160626', '160627', '160628', '160629', '160630', '160631', '160632', '160633', '160634', '160635', '160636', '160637', '160638', '160639', '160640', '160642', '160643', '160644', '160645', '160706', '160716', '160717', '160718', '160719', '160720', '160721', '160722', '160723', '160724', '160725', '160726', '160805', '160806', '160807', '160808', '160812', '160813', '160814', '160910', '160915', '160916', '160918', '160919', '160921', '160922', '160923', '160924', '160925', '161005', '161006', '161010', '161014', '161015', '161017', '161018', '161019', '161020', '161021', '161022', '161024', '161025', '161026', '161027', '161028', '161029', '161030', '161031', '161032', '161033', '161035', '161036', '161037', '161038', '161039', '161115', '161116', '161117', '161118', '161119', '161120', '161121', '161122', '161123', '161124', '161125', '161126', '161127', '161128', '161129', '161130', '161131', '161132', '161207', '161211', '161213', '161215', '161216', '161217', '161218', '161219', '161220', '161221', '161222', '161223', '161224', '161225', '161226', '161227', '161228', '161229', '161232', '161233', '161505', '161506', '161601', '161602', '161603', '161604', '161605', '161606', '161607', '161608', '161609', '161610', '161611', '161612', '161613', '161614', '161615', '161616', '161617', '161618', '161619', '161620', '161622', '161623', '161624', '161625', '161626', '161627', '161628', '161629', '161631', '161653', '161654', '161655', '161656', '161657', '161659', '161660', '161661', '161662', '161663', '161693', '161706', '161707', '161713', '161714', '161715', '161716', '161718', '161719', '161720', '161721', '161722', '161723', '161724', '161725', '161726', '161727', '161728', '161729', '161810', '161811', '161812', '161815', '161816', '161818', '161819', '161820', '161823', '161824', '161825', '161826', '161831', '161834', '161837', '161902', '161903', '161907', '161908', '161910', '161911', '161912', '161913', '162006', '162102', '162105', '162107', '162108', '162201', '162202', '162203', '162204', '162205', '162206', '162207', '162208', '162209', '162210', '162211', '162212', '162213', '162214', '162215', '162216', '162299', '162307', '162411', '162412', '162413', '162414', '162415', '162416', '162509', '162510', '162511', '162605', '162606', '162607', '162703', '162711', '162712', '162713', '162714', '162715', '162716', '162717', '162718', '162719', '162907', '163001', '163003', '163005', '163007', '163008', '163109', '163110', '163111', '163113', '163114', '163115', '163116', '163118', '163119', '163208', '163209', '163210', '163211', '163302', '163402', '163403', '163406', '163407', '163408', '163409', '163410', '163411', '163412', '163413', '163415', '163416', '163417', '163503', '163801', '163802', '163803', '163804', '163805', '163806', '163807', '163808', '163809', '163810', '163811', '163812', '163813', '163816', '163817', '163818', '163819', '163820', '163821', '163822', '163823', '163824', '163825', '163827', '163907', '164105', '164205', '164206', '164208', '164210', '164304', '164401', '164402', '164403', '164508', '164509', '164510', '164606', '164701', '164702', '164703', '164705', '164808', '164809', '164810', '164811', '164814', '164818', '164819', '164820', '164821', '164824', '164825', '164902', '164903', '164905', '164906', '164907', '164908', '165309', '165310', '165311', '165312', '165313', '165314', '165317', '165508', '165509', '165510', '165511', '165512', '165513', '165515', '165516', '165517', '165519', '165520', '165521', '165522', '165523', '165524', '165525', '165526', '165527', '165528', '165530', '165531', '165707', '165806', '165807', '165809', '165810', '166001', '166002', '166005', '166006', '166007', '166008', '166009', '166010', '166011', '166012', '166014', '166015', '166016', '166019', '166020', '166023', '166024', '166025', '166105', '166107', '166108', '166109', '166110', '166301', '166401', '166402', '166801', '166802', '166803', '166902', '166903', '166904', '166905', '167001', '167002', '167003', '167301', '167302', '167501', '167503', '167504', '167505', '167506', '167507', '167508', '167601', '167702', '167703', '167705', '167706', '168001', '168002', '168101', '168102', '168103', '168104', '168105', '168106', '168107', '168108', '168111', '168201', '168203', '168204', '168205', '168301', '168401', '168501', '168601', '168701', '168702', '169101', '169102', '169103', '169104', '169105', '169106', '169107', '169108', '169201', '169301', '169302', '180001', '180002', '180003', '180008', '180009', '180010', '180011', '180012', '180013', '180015', '180018', '180020', '180025', '180026', '180028', '180031', '180033', '180052', '183001', '184801', '200001', '200002', '200003', '200006', '200007', '200008', '200009', '200010', '200011', '200012', '200013', '200015', '200016', '200103', '200113', '201001', '201002', '202001', '202002', '202003', '202004', '202005', '202006', '202007', '202008', '202009', '202010', '202011', '202012', '202015', '202016', '202017', '202018', '202019', '202020', '202021', '202022', '202023', '202024', '202025', '202026', '202027', '202028', '202101', '202102', '202103', '202105', '202106', '202107', '202108', '202109', '202110', '202211', '202212', '202213', '202301', '202302', '202303', '202304', '202305', '202306', '202307', '202308', '202801', '206001', '206002', '206003', '206004', '206005', '206006', '206007', '206008', '206009', '206010', '206011', '206012', '206013', '206015', '206018', '210001', '210002', '210003', '210004', '210005', '210006', '210007', '210008', '210009', '210010', '210011', '210012', '210013', '210014', '213001', '213002', '213003', '213006', '213007', '213008', '213009', '213010', '213907', '213908', '213909', '213917', '217001', '217002', '217003', '217004', '217005', '217008', '217009', '217010', '217011', '217012', '217013', '217014', '217016', '217017', '217018', '217019', '217020', '217021', '217022', '217023', '217024', '217025', '217026', '217027', '217203', '229002', '233001', '233005', '233006', '233007', '233008', '233009', '233010', '233011', '233012', '233013', '233015', '240001', '240002', '240003', '240004', '240005', '240006', '240007', '240008', '240009', '240010', '240011', '240012', '240013', '240014', '240015', '240016', '240017', '240018', '240019', '240020', '240022', '241001', '253010', '253020', '253021', '253030', '253050', '253051', '253060', '253061', '255010', '257010', '257020', '257021', '257030', '257031', '257040', '257041', '257050', '257060', '257070', '260101', '260102', '260103', '260104', '260108', '260109', '260110', '260111', '260112', '260115', '260116', '260117', '260202', '261001', '261002', '261101', '261102', '262001', '270001', '270002', '270004', '270005', '270006', '270007', '270008', '270009', '270010', '270011', '270012', '270014', '270015', '270016', '270017', '270020', '270021', '270022', '270023', '270025', '270026', '270028', '270029', '270030', '270036', '270041', '270042', '270043', '270044', '270045', '270046', '270047', '270048', '270049', '270050', '288001', '288002', '288101', '288102', '288201', '290001', '290002', '290003', '290004', '290005', '290006', '290007', '290008', '290009', '290010', '290011', '290012', '290014', '291007', '310308', '310318', '310328', '310338', '310339', '310358', '310368', '310388', '310398', '310508', '310518', '320001', '320002', '320003', '320004', '320005', '320006', '320007', '320008', '320009', '320010', '320011', '320012', '320013', '320014', '320015', '320016', '320017', '320018', '320019', '320020', '320021', '320022', '340001', '340005', '340006', '340007', '340008', '340009', '350001', '350002', '350004', '350005', '350006', '350007', '350008', '350009', '360001', '360003', '360005', '360006', '360007', '360008', '360009', '360010', '360011', '360012', '360013', '360014', '360016', '360019', '360020', '370010', '370011', '370021', '370022', '370023', '370024', '370027', '371020', '371120', '372010', '372110', '373010', '373020', '375010', '376510', '377010', '377016', '377020', '377150', '377240', '377530', '378006', '378010', '378546', '379010', '380005', '380006', '380007', '380008', '380009', '380010', '380011', '392001', '392002', '393001', '395001', '395011', '395012', '398001', '398002', '398011', '398012', '398021', '398031', '398041', '398051', '398061', '399001', '399011', '400001', '400003', '400004', '400005', '400006', '400007', '400008', '400009', '400011', '400012', '400013', '400015', '400016', '400020', '400023', '400025', '400027', '400029', '400030', '400032', '410001', '410002', '410003', '410004', '410005', '410006', '410007', '410008', '410009', '410010', '420001', '420002', '420003', '420005', '420006', '420008', '420009', '420102', '420106', '420108', '450001', '450002', '450003', '450004', '450005', '450006', '450007', '450008', '450009', '450010', '450011', '450018', '450019', '457001', '460001', '460002', '460003', '460005', '460006', '460007', '460008', '460009', '460010', '460106', '460108', '460220', '460300', '470006', '470007', '470008', '470009', '470010', '470011', '470014', '470018', '470021', '470028', '470030', '470058', '470059', '470060', '470068', '470078', '470088', '470089', '470098', '470888', '471007', '471014', '471030', '471060', '472007', '481001', '481004', '481006', '481008', '481009', '481010', '481012', '481013', '481015', '481017', '482002', '483003', '485005', '485007', '485011', '485014', '485018', '485019', '485020', '485022', '485105', '485107', '485111', '485114', '485118', '485119', '485120', '485122', '485205', '486001', '486002', '487016', '487021', '501000', '501001', '501002', '501005', '501006', '501007', '501008', '501009', '501010', '501011', '501012', '501015', '501016', '501017', '501018', '501019', '501021', '501022', '501023', '501025', '501026', '501027', '501028', '501029', '501030', '501031', '501032', '501036', '501037', '501038', '501039', '501040', '501041', '501042', '501043', '501045', '501046', '501047', '501048', '501049', '501050', '501051', '501053', '501054', '501055', '501057', '501058', '501059', '501060', '501061', '501062', '501063', '501064', '501065', '501066', '501067', '501068', '501069', '501070', '501071', '501072', '501073', '501075', '501076', '501077', '501078', '501079', '501080', '501081', '501082', '501083', '501085', '501086', '501087', '501088', '501089', '501090', '501091', '501092', '501093', '501095', '501096', '501097', '501098', '501099', '501100', '501101', '501105', '501106', '501186', '501188', '501189', '501200', '501300', '501301', '501302', '501303', '501305', '501306', '501307', '501308', '501309', '501310', '501311', '502000', '502003', '502004', '502005', '502006', '502007', '502008', '502010', '502011', '502012', '502013', '502014', '502015', '502020', '502023', '502024', '502025', '502036', '502037', '502038', '502040', '502041', '502042', '502048', '502049', '502050', '502053', '502054', '502055', '502056', '502057', '502058', '510010', '510020', '510030', '510050', '510060', '510070', '510080', '510081', '510090', '510100', '510110', '510120', '510130', '510150', '510160', '510170', '510180', '510190', '510200', '510210', '510220', '510230', '510270', '510290', '510300', '510310', '510330', '510350', '510360', '510380', '510390', '510410', '510430', '510440', '510500', '510510', '510530', '510550', '510560', '510580', '510590', '510600', '510630', '510650', '510660', '510680', '510690', '510710', '510800', '510810', '510850', '510880', '510890', '510900', '511010', '511020', '511030', '511050', '511060', '511080', '511081', '511220', '511260', '511270', '511280', '511290', '511310', '511380', '511600', '511620', '511650', '511660', '511670', '511690', '511700', '511770', '511800', '511810', '511820', '511830', '511850', '511860', '511880', '511900', '511910', '511920', '511930', '511950', '511960', '511970', '511980', '511990', '512000', '512010', '512040', '512070', '512090', '512100', '512120', '512150', '512160', '512170', '512180', '512190', '512200', '512220', '512260', '512270', '512280', '512290', '512300', '512310', '512330', '512340', '512360', '512380', '512390', '512400', '512480', '512500', '512510', '512520', '512530', '512550', '512560', '512570', '512580', '512590', '512600', '512610', '512640', '512650', '512660', '512670', '512680', '512690', '512700', '512710', '512720', '512730', '512750', '512760', '512770', '512780', '512790', '512800', '512810', '512820', '512850', '512860', '512870', '512880', '512890', '512900', '512910', '512920', '512930', '512950', '512960', '512970', '512980', '512990', '513000', '513030', '513050', '513080', '513090', '513100', '513500', '513520', '513600', '513660', '513680', '513800', '513880', '513900', '515000', '515010', '515020', '515030', '515050', '515060', '515070', '515080', '515090', '515110', '515130', '515150', '515160', '515180', '515190', '515200', '515210', '515220', '515280', '515300', '515310', '515330', '515350', '515360', '515380', '515390', '515450', '515510', '515520', '515550', '515570', '515580', '515590', '515600', '515620', '515630', '515650', '515660', '515670', '515680', '515690', '515700', '515750', '515780', '515800', '515810', '515820', '515830', '515850', '515860', '515870', '515880', '515890', '515900', '515930', '515950', '515960', '515980', '515990', '518660', '518800', '518850', '518880', '519001', '519002', '519003', '519005', '519007', '519008', '519009', '519010', '519011', '519013', '519015', '519017', '519018', '519019', '519020', '519021', '519022', '519023', '519024', '519025', '519026', '519027', '519029', '519030', '519032', '519033', '519034', '519035', '519036', '519039', '519050', '519051', '519056', '519059', '519060', '519061', '519062', '519066', '519067', '519068', '519069', '519070', '519071', '519078', '519087', '519088', '519089', '519091', '519093', '519095', '519097', '519099', '519100', '519110', '519111', '519112', '519113', '519115', '519116', '519117', '519118', '519119', '519120', '519121', '519122', '519123', '519124', '519125', '519126', '519127', '519128', '519129', '519130', '519131', '519133', '519134', '519136', '519137', '519138', '519139', '519150', '519152', '519153', '519156', '519157', '519158', '519160', '519161', '519162', '519163', '519165', '519170', '519171', '519172', '519173', '519175', '519176', '519177', '519180', '519181', '519182', '519183', '519185', '519186', '519187', '519188', '519189', '519190', '519191', '519193', '519195', '519196', '519197', '519198', '519199', '519206', '519207', '519208', '519209', '519212', '519220', '519221', '519222', '519223', '519224', '519225', '519226', '519228', '519229', '519300', '519301', '519320', '519321', '519322', '519323', '519324', '519325', '519326', '519327', '519328', '519329', '519330', '519331', '519332', '519333', '519334', '519335', '519501', '519505', '519506', '519507', '519508', '519509', '519510', '519511', '519512', '519513', '519516', '519517', '519518', '519519', '519566', '519567', '519568', '519588', '519589', '519601', '519602', '519606', '519610', '519611', '519612', '519613', '519614', '519615', '519616', '519617', '519618', '519619', '519620', '519621', '519622', '519623', '519624', '519625', '519626', '519627', '519628', '519629', '519630', '519631', '519632', '519640', '519641', '519642', '519644', '519646', '519647', '519648', '519651', '519652', '519653', '519654', '519655', '519656', '519657', '519660', '519661', '519662', '519663', '519664', '519665', '519666', '519667', '519668', '519669', '519670', '519671', '519672', '519673', '519674', '519675', '519676', '519677', '519678', '519679', '519680', '519681', '519682', '519683', '519684', '519685', '519686', '519687', '519688', '519689', '519690', '519691', '519692', '519693', '519694', '519695', '519696', '519697', '519698', '519699', '519700', '519701', '519702', '519703', '519704', '519705', '519706', '519707', '519710', '519712', '519713', '519714', '519716', '519717', '519718', '519719', '519720', '519721', '519722', '519723', '519724', '519725', '519726', '519727', '519728', '519729', '519730', '519731', '519732', '519733', '519734', '519735', '519736', '519737', '519738', '519739', '519740', '519743', '519745', '519746', '519748', '519752', '519753', '519755', '519756', '519759', '519760', '519761', '519762', '519763', '519766', '519767', '519768', '519769', '519770', '519771', '519772', '519773', '519776', '519777', '519778', '519779', '519782', '519783', '519784', '519785', '519786', '519787', '519800', '519801', '519808', '519809', '519858', '519859', '519878', '519879', '519888', '519889', '519898', '519899', '519908', '519909', '519915', '519918', '519929', '519933', '519935', '519937', '519940', '519941', '519942', '519943', '519944', '519945', '519947', '519949', '519951', '519953', '519955', '519956', '519957', '519959', '519960', '519961', '519962', '519963', '519965', '519967', '519969', '519971', '519972', '519973', '519975', '519976', '519977', '519979', '519981', '519983', '519985', '519986', '519987', '519989', '519990', '519991', '519992', '519993', '519994', '519995', '519996', '519997', '519998', '519999', '530001', '530002', '530003', '530005', '530006', '530008', '530009', '530010', '530011', '530012', '530014', '530015', '530016', '530017', '530018', '530019', '530020', '530021', '530028', '530029', '530030', '531008', '531009', '531014', '531017', '531020', '531021', '531028', '531029', '531030', '539001', '539002', '539003', '540001', '540002', '540003', '540004', '540005', '540006', '540007', '540008', '540009', '540010', '540011', '540012', '541001', '541004', '541005', '541011', '550001', '550002', '550003', '550004', '550005', '550008', '550009', '550010', '550011', '550012', '550013', '550015', '550016', '550018', '550019', '551001', '560001', '560002', '560003', '560006', '570001', '570005', '570006', '570007', '570008', '571002', '573003', '580001', '580002', '580003', '580005', '580006', '580007', '580008', '580009', '581002', '582001', '582002', '582003', '582201', '582202', '583001', '583101', '585001', '590001', '590002', '590003', '590005', '590006', '590007', '590008', '590009', '590010', '610001', '610002', '610003', '610004', '610005', '610006', '610007', '610008', '610103', '610108', '620001', '620002', '620003', '620004', '620006', '620007', '620009', '620010', '620011', '630001', '630002', '630003', '630005', '630006', '630007', '630008', '630009', '630010', '630011', '630012', '630015', '630016', '630103', '630107', '630109', '630112', '650001', '650002', '660001', '660002', '660003', '660004', '660005', '660006', '660007', '660008', '660009', '660010', '660011', '660012', '660013', '660015', '660016', '660102', '660107', '660109', '660116', '671010', '671030', '673010', '673020', '673030', '673040', '673043', '673050', '673060', '673071', '673073', '673081', '673083', '673090', '673100', '673101', '673110', '673120', '673141', '673143', '675011', '675013', '675031', '675032', '675041', '675043', '675051', '675053', '675061', '675062', '675071', '675072', '675081', '675083', '675091', '675093', '675100', '675111', '675113', '675121', '675123', '675161', '675163', '686868', '686869', '688888', '690001', '690002', '690003', '690004', '690005', '690006', '690007', '690008', '690009', '690010', '690011', '690012', '690202', '690206', '690210', '690212', '700001', '700002', '700003', '700004', '700005', '700006', '710001', '710002', '710301', '710302', '710501', '710502', '720001', '720002', '720003', '730001', '730002', '730003', '730103', '740001', '740101', '740601', '740602', '750001', '750002', '750003', '750005', '750006', '750007', '762001', '770001', '850005', '850588', '850599', '860005', '860010', '860011', '860028', '860029', '870008', '870017', '872003', '872014', '900003', '900011', '900019', '900039', '900079', '900089', '900099', '910007', '920003', '952004', '952009', '952024', '952035', '952099']

for code in codes:
    try:
        page = requests.get('http://fund.eastmoney.com/pingzhongdata/%s.js' % code)
        if page:
            if page.text[:800].find("Data_millionCopiesIncome") >= 0:
                fund = xa.mfundinfo(code)
            else:
                fund = xa.fundinfo(code)
            funds.append(fund)
        else:
            black_code.append(code)
    except Exception as E:
        print(code, E)
        black_code.append(code)
print(black_code)

参考多基金虚拟交易回测希望分红再投入问题

您好,我希望做一个多基金组合的回测,也是参考给的例子再做,但是希望可以是默认分红再投入,可是一直没有弄成功,想请教一下,万分感谢!

image

如上图,正常来说,我以为有一行property,都为2,就应该是默认分红再投入了,可惜out出来的还是现金分红,折腾了几天还是没搞明白怎么做。。。

image

账户基金代码6位补全

由于习惯在excel里编辑账户,保存后代码开头的0数字都会消失。

试着在read.status得到df后通过添加一行read.status.columns=[['date'] + [x.zfill(6) for x in df.columns[1:]]]有效。

于是又想一劳永逸,试着把这行代码加入您的record源文件中,运行遇到Pandas warning: column creation via attribute name,显示在df.data=[这一行,于是试着把df.date 修改成df['date'],结果更多报错,目前没找到原因。

def __init__(self, path="input.csv", format="matrix", **readkwds):
    df = pd.read_csv(path, **readkwds)
    df.columns=[['date'] + [x.zfill(6) for x in df.columns[1:]]]
    if format == "matrix":
        df.date = [
            # pd.Timestamp.strptime(str(int(df.iloc[i].date)), "%Y%m%d")
            # higher version of pandas timestamp doesn't support strptime anymore? why? what is the gain here?
            pd.to_datetime(str(int(df.iloc[i].date)), format="%Y%m%d")
            for i in range(len(df))
        ]
        df.fillna(0, inplace=True)
        self.status = df

本次报错 以前没事:sysfix.summary(myenddate) 方法执行后报错 (初始金额写>0即可 不知道为啥)

virtualtrade.py 开始时间:20200707(或者7月后任意一天) 结束时间:20200710 执行后报错除数等于0 ;如果把开始时间调成6月或者更早,就没事; 我试了一些基金代码和金额,好像与他们无关。

代码片段如下:
ZeroDivisionError Traceback (most recent call last)
in
----> 1 sysfix.summary(myenddate)
2 # 我们看到此时出现了货币基金选项,这是因为默认现金分红会智能处理帮你买入货币基金

c:\users\asus\appdata\local\programs\python\python38\lib\site-packages\xalpha\multiple.py in combsummary(self, date)
169 for fund in self.fundtradeobj:
170 summarydf = summarydf.append(
--> 171 fund.dailyreport(date), ignore_index=True, sort=True
172 )
173 tname = "总计"

c:\users\asus\appdata\local\programs\python\python38\lib\site-packages\xalpha\trade.py in dailyreport(self, date)
547 currentcash = myround(currentshare * value)
548 btnk = bottleneck(partcftb)
--> 549 turnover = turnoverrate(partcftb, date)
550 ereturn = myround(currentcash + totoutput - totinput)
551 if currentshare == 0:

c:\users\asus\appdata\local\programs\python\python38\lib\site-packages\xalpha\trade.py in turnoverrate(cftable, end)
93 start = cftable.iloc[0].date
94 tradeamount = sum(abs(cftable.loc[:, "cash"]))
---> 95 turnover = tradeamount / bottleneck(cftable) / 2.0
96 if (end - start).days <= 0:
97 return 0

ZeroDivisionError: float division by zero

场外基金实时情况能获取吗?

我用了一下 xa.get_rt() 函数,这函数不能得到场外基金的实时情况。
发生了一下错误:

-> 1166 n = r["data"]["quote"]["name"]
1167 q = r["data"]["quote"]["current"]

TypeError: 'NoneType' object is not subscriptable

During handling of the above exception, another exception occurred:

IndexError Traceback (most recent call last)
in
1 # xa.get_t0("005224")
2 # xa.get_daily("005224")
----> 3 xa.get_rt("005224")

~/anaconda3/envs/py3.6/lib/python3.6/site-packages/xalpha-0.10.0-py3.6.egg/xalpha/universal.py in get_rt(code, _from, double_check, double_check_threhold, handler)
1589 "Fails due to %s, now trying backup data source from sina" % e.args[0]
1590 )
-> 1591 return get_rt_from_sina(code)
1592 elif _from in ["sina", "sn", "xinlang"]:
1593 try:

~/anaconda3/envs/py3.6/lib/python3.6/site-packages/xalpha-0.10.0-py3.6.egg/xalpha/universal.py in get_rt_from_sina(code)
1332 else:
1333 d["currency"] = "USD"
-> 1334 d["current"] = float(l[1])
1335 d["percent"] = float(l[2])
1336 d["current_ext"] = _float(l[21]) if _float(l[21]) > 0 else None

IndexError: list index out of range

关于某类基金信息的获取

目前看到的示例主要基于代码进行数据获取和分析。是否有某类查询接口或者后续准备开发:
比如:主题类基金:医药、基建等。输入关键字,得到某类的基金,然后分析其中的收益等。
便于直观了解现在某类基金有哪些ETF、指数基金等。

一些小建议

设计接口中用到的 symbol , 尽量贴近 bloomberg 或者 WIND , 这样使用者会方便一些

有些数据的爬取,可以考虑依赖于 akshare 这类开源项目,在这类基础上封装缓存。

关于国证指数行情源

看了一下universal.py中,应该只是深圳指数,399为主。
国证指数http://www.cnindex.com.cn/index.html 可以认为是深交所旗下的指数机构,也有部分代码为非399开头的,比如:980028(龙头家电)等。
这个源也可以一起讨论一下。

pip install 时报错找不到 beatifulsoup4 4.9.0

Collecting beautifulsoup4>=4.9.0 (from xalpha)
Could not find a version that satisfies the requirement beautifulsoup4>=4.9.0 (from xalpha) (from versions: )
No matching distribution found for beautifulsoup4>=4.9.0 (from xalpha)

error in tests

SyntaxError: Unexpected token (LT, '<') at 1:0 between None and LexToken(ID,'html',1,1)
Seems to be originated from js parser in fundinfo

No essential error is observed in daily use though...

调用xirrrate的时候出现RuntimeError: Failed to converge after 50 iterations问题

使用的csv如下:

date,163406
20200305,4071
import xalpha as xa

fund = xa.fundinfo('163406')
rec = xa.record('status.csv')
tra = xa.trade(fund, rec.status)

print(tra.xirrrate('2020/4/2'))

抛出了RuntimeError: Failed to converge after 50 iterations, value is (-1.2962216991414534e+86+1.3656316902725554e+85j).异常,请问是什么原因引起的?应该如何解决?

关于最新版本的安装和测试

我clone 代码之后,universal.py增加了一个源。
(1)通过python setup.py install测试最新版本使报错,
image
感觉是编码的问题。我的是windows环境+python3.7
(2)通过cd tests/ && pytest 也报错。
image
我的pytest版本是5.1.3是不是版本的问题?
谢谢!

关于标普官网数据源

目前代码pytest执行报错:ValueError: Must explicitly set engine if not passing in buffer or path for io.

#464行
    r = rget(
        url,
        headers={
            "sec-fetch-dest": "document",
            "sec-fetch-mode": "navigate",
            "sec-fetch-site": "none",
            "sec-fetch-user": "?1",
        },
    )
    df = pd.read_excel(r.content)

最后一行改成 df = pd.read_excel(url) 可以通过测试,但这样就没法传递header了

基金持仓资产比例

了解到get_fund_holdings()可以得到一只基金的stock, bond持仓列表(头部?),对于大致的资产组合分析很有用。我的问题是,能否得到一只基金的stock, bond, money, others的持仓比例?不知是不是我没找到用法,请指教,谢谢。

关于volatility算法

    def volatility(price, date=yesterdayobj()):
        df = pd.DataFrame(data={"rate": indicator.ratedaily(price, date)})
        return df.std().rate * 15.8144
    def ratedaily(price, date=yesterdayobj()):
        partp = price[price["date"] <= date]
        return [
            (partp.iloc[i + 1].netvalue - partp.iloc[i].netvalue)
            / partp.iloc[i].netvalue
            for i in range(len(partp) - 1)
        ]

ratedaily用了过去所有天数的采样,而volatility用了15.8144(252交易日方差)参数,是不是不太合适?

ratedaily这里的计算只用采样252个即可?

重复执行get_daily 出错,另外df格式使engine对表的大小写敏感

获取基金数据

xa.get_daily("f501018", prev=5)

KeyError Traceback (most recent call last)
f:\python3.8\lib\site-packages\xalpha\universal.py in wrapper(*args, **kws)
1834 if has_weekday(nextday_str, kws["end"]): # 新更新的日期里有工作日
-> 1835 df2 = f(*args, **kws)
1836 if df2 is not None and len(df2) > 0:

f:\python3.8\lib\site-packages\xalpha\universal.py in get_daily(code, start, end, prev, from, wrapper, handler, **kws)
1039
-> 1040 df = get_historical_fromxq(code, count, type
=type
)
1041 df = prettify(df)

f:\python3.8\lib\site-packages\xalpha\universal.py in get_historical_fromxq(code, count, type_, full)
167 )
--> 168 df = pd.DataFrame(data=r["data"]["item"], columns=r["data"]["column"])
169 df["date"] = (df["timestamp"]).apply(ts2pdts) # reset hours to zero

KeyError: 'item'

During handling of the above exception, another exception occurred:

KeyError Traceback (most recent call last)
in
1 # 获取基金数据
----> 2 xa.get_daily("f501018", prev=5)

f:\python3.8\lib\site-packages\xalpha\universal.py in wrapper(*args, **kws)
1861 ).strftime("%Y%m%d")
1862 is_changed = True
-> 1863 df0 = f(*args, **kws)
1864
1865 if df0 is not None and len(df0) > 0 and is_changed:

f:\python3.8\lib\site-packages\xalpha\universal.py in get_daily(code, start, end, prev, from, wrapper, handler, **kws)
1038 code, type
= decouple_code(code)
1039
-> 1040 df = get_historical_fromxq(code, count, type
=type_)
1041 df = prettify(df)
1042 elif _from in ["zhongjianjia", "zjj", "chinamoney", "ZJJ"]:

f:\python3.8\lib\site-packages\xalpha\universal.py in get_historical_fromxq(code, count, type_, full)
166 headers={"user-agent": "Mozilla/5.0"},
167 )
--> 168 df = pd.DataFrame(data=r["data"]["item"], columns=r["data"]["column"])
169 df["date"] = (df["timestamp"]).apply(ts2pdts) # reset hours to zero
170 return df

KeyError: 'item'

申购费问题

您好,谢谢强大的分享!
请问在单只基金交易的分析,或多只基金投资组合的管理分析中,申购费如何考虑的?我的疑虑是,比如1.5%申购费的基金,在很多销售平台1折销售,即实盘中0.15%,这个如果没有考虑,对收益率的影响还是蛮大的。谢谢。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.