xu-song commited on
Commit
751936e
1 Parent(s): 57f1fd6
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +2 -0
  2. .gitignore +16 -0
  3. README.md +4 -4
  4. app.py +155 -0
  5. images/gptNeoX20B-VS-gpt2.jpg +0 -0
  6. requirements.txt +4 -0
  7. utils/convert_sp_to_json.py +4 -0
  8. utils/digit_util.py +0 -0
  9. utils/lang_util.py +3 -0
  10. utils/oov_util.py +12 -0
  11. utils/symbol.py +34 -0
  12. utils/text_util.py +15 -0
  13. utils/vocab.jd.txt.v2 +10268 -0
  14. utils/zh_util.py +91 -0
  15. vocab/README.md +87 -0
  16. vocab/__init__.py +103 -0
  17. vocab/albert/__init__.py +6 -0
  18. vocab/alpaca_7b/README.md +0 -0
  19. vocab/baichuan_7b/Baichuan-7B/config.json +26 -0
  20. vocab/baichuan_7b/Baichuan-7B/configuration_baichuan.py +66 -0
  21. vocab/baichuan_7b/Baichuan-7B/special_tokens_map.json +23 -0
  22. vocab/baichuan_7b/Baichuan-7B/tokenization_baichuan.py +250 -0
  23. vocab/baichuan_7b/Baichuan-7B/tokenizer.model +3 -0
  24. vocab/baichuan_7b/Baichuan-7B/tokenizer_config.json +35 -0
  25. vocab/baichuan_7b/__init__.py +8 -0
  26. vocab/belle_7b_2m/README.md +3 -0
  27. vocab/belle_7b_2m/__init__.py +8 -0
  28. vocab/belle_7b_2m/belle-7b-2m/README.md +3 -0
  29. vocab/belle_7b_2m/belle-7b-2m/config.json +31 -0
  30. vocab/belle_7b_2m/belle-7b-2m/special_tokens_map.json +1 -0
  31. vocab/belle_7b_2m/belle-7b-2m/tokenizer.json +3 -0
  32. vocab/belle_7b_2m/belle-7b-2m/tokenizer_config.json +1 -0
  33. vocab/belle_llama_ext_7b/BELLE-LLaMA-EXT-7B/config.json +22 -0
  34. vocab/belle_llama_ext_7b/BELLE-LLaMA-EXT-7B/generation_config.json +7 -0
  35. vocab/belle_llama_ext_7b/BELLE-LLaMA-EXT-7B/special_tokens_map.json +5 -0
  36. vocab/belle_llama_ext_7b/BELLE-LLaMA-EXT-7B/tokenizer.model +3 -0
  37. vocab/belle_llama_ext_7b/BELLE-LLaMA-EXT-7B/tokenizer_config.json +8 -0
  38. vocab/belle_llama_ext_7b/README.md +0 -0
  39. vocab/belle_llama_ext_7b/__init__.py +12 -0
  40. vocab/bert_chinese/README.md +2 -0
  41. vocab/bert_chinese/__init__.py +11 -0
  42. vocab/bert_chinese/test.py +6 -0
  43. vocab/bert_chinese/test_zh_coding_len.py +73 -0
  44. vocab/bert_chinese/tokenizer/config.json +25 -0
  45. vocab/bert_chinese/tokenizer/tokenizer.json +0 -0
  46. vocab/bert_chinese/tokenizer/tokenizer_config.json +3 -0
  47. vocab/bert_chinese/tokenizer/vocab.txt +0 -0
  48. vocab/bert_chinese/vocab.txt +0 -0
  49. vocab/bert_clue/README.md +7 -0
  50. vocab/bert_clue/clue_vocab.py +188 -0
.gitattributes CHANGED
@@ -33,3 +33,5 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ vocab/belle_7b_2m/belle-7b-2m/tokenizer.json filter=lfs diff=lfs merge=lfs -text
37
+ vocab/bloom/tokenizer/tokenizer.json filter=lfs diff=lfs merge=lfs -text
.gitignore ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ __pycache__/
2
+ *.py[cod]
3
+ *$py.class
4
+
5
+ # C extensions
6
+ *.so
7
+
8
+ # Distribution / packaging
9
+ .Python
10
+ build/
11
+ develop-eggs/
12
+ dist/
13
+ downloads/
14
+ eggs/
15
+ .eggs/
16
+ .idea/
README.md CHANGED
@@ -1,8 +1,8 @@
1
  ---
2
- title: Tokenizer Arena
3
- emoji: 🚀
4
- colorFrom: gray
5
- colorTo: yellow
6
  sdk: gradio
7
  sdk_version: 3.41.2
8
  app_file: app.py
 
1
  ---
2
+ title: The Tokenizer Playground
3
+ emoji:
4
+ colorFrom: red
5
+ colorTo: gray
6
  sdk: gradio
7
  sdk_version: 3.41.2
8
  app_file: app.py
app.py ADDED
@@ -0,0 +1,155 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # coding=utf-8
2
+ # author: xusong
3
+ # time: 2022/8/23 16:06
4
+
5
+ """
6
+
7
+ plots
8
+
9
+ table
10
+
11
+ ## related demo
12
+ http://text-processing.com/demo/tokenize/
13
+
14
+ ## 可视化
15
+
16
+ [ The, 2, QUICK, Brown, Foxes, jumped, over, the, lazy, dog's, bone ]
17
+ """
18
+
19
+ import json
20
+ import pandas as pd
21
+ import gradio as gr
22
+
23
+ from vocab import all_tokenizers, load_tokener
24
+
25
+ # 显示空格:https://blog.csdn.net/liuxiao723846/article/details/118994673
26
+ # 隐藏legend:
27
+ css = """
28
+ .space-show {white-space: pre-wrap;}
29
+ .cell-wrap {white-space: pre-wrap;}
30
+ .category-legend {display: none !important}
31
+ """
32
+
33
+ example_text = """中文测试:华为智能音箱发布:华为Sound X。維基百科由非營利組織──維基媒體基金會負責維持
34
+ 标点测试:,。!?;
35
+ 空格测试: 2个空格 8个空格
36
+ 数字测试:(10086 + 98) = 100184"""
37
+
38
+
39
+ def tokenize(text, tokenizer_type):
40
+ print(text, tokenizer_type)
41
+ pos_tokens = []
42
+ tokenizer = load_tokener(tokenizer_type)
43
+ encoding = tokenizer.encode(text)
44
+
45
+ table = []
46
+
47
+ for idx, token_id in enumerate(encoding):
48
+ decode_text = tokenizer.decode([token_id]) # 特殊字符解码后会统一变成 �,对应 "\ufffd"
49
+ pos_tokens.extend([(decode_text, str(idx % 3))])
50
+
51
+ # token "Byte": # 这是 utf-8编码吧?
52
+ token = tokenizer.convert_ids_to_tokens([token_id])[0]
53
+ if isinstance(token, bytes):
54
+ token_str = token.decode("utf-8")
55
+ token_bytes = token
56
+ json_dumps = json.dumps(token_str)
57
+ elif isinstance(token, str):
58
+ token_str = token
59
+ token_bytes = bytes(token_str, "utf-8")
60
+ json_dumps = json.dumps(token_str)
61
+ else:
62
+ return
63
+
64
+ table.append(
65
+ {"TokenID": token_id,
66
+ "Token": token_str, # utf-8解码后的字符串,为什么有些是 <0xE7>,表示什么?比如llama
67
+ "Text": decode_text, #
68
+ # "Bytes": token_bytes, # bytes类型在gradio前端页面被解码成字符串,比如 b'\xe4\xb8\xad' 仍然显示成 "中"。因此 str(token_bytes)
69
+ "Bytes": str(token_bytes),
70
+ # "Unicode": json_dumps # unicode, 如果是ascii码,就直接显示。如果不是ascii码,就显示unicode
71
+ }
72
+ )
73
+
74
+ table_df = pd.DataFrame(table)
75
+ print(table)
76
+ print(table_df)
77
+
78
+ return pos_tokens, table_df
79
+
80
+
81
+ def test_coding():
82
+ bytes1 = b'\xe4\xb8\xad'
83
+ print(bytes1) # b'\xe4\xb8\xad'
84
+
85
+
86
+ with gr.Blocks(css=css) as demo:
87
+ gr.HTML("""<h1 align="center">Tokenizer Arena</h1>""")
88
+ # links: https://www.coderstool.com/utf8-encoding-decoding
89
+ #
90
+
91
+
92
+ user_input = gr.Textbox(
93
+ value=example_text,
94
+ lines=5
95
+ ) # placeholder="Enter sentence here..."
96
+
97
+ # submitBtn = gr.Button("生成回复", variant="primary")
98
+
99
+ # TODO: 图 表 压缩率
100
+ # llama chatglm gpt_nexo_20b baichuan baichuan_7b
101
+ with gr.Row():
102
+ with gr.Column():
103
+ tokenizer_type_1 = gr.Dropdown(
104
+ all_tokenizers, value="llama", label="tokenizer"
105
+ )
106
+ token_counter_1 = None # 计数器
107
+ output_text_1 = gr.Highlightedtext(
108
+ label="Tokenization",
109
+ show_legend=True,
110
+ elem_classes="space-show"
111
+ )
112
+
113
+ output_table_1 = gr.Dataframe(
114
+ headers=["TokenID", "Byte", "Text"],
115
+ datatype=["str", "str", "str"],
116
+ #elem_classes="space-show", # 给整个Dataframe加这个css不起作用,因此直接修改cell-wrap
117
+ )
118
+
119
+ with gr.Column():
120
+ tokenizer_type_2 = gr.Dropdown(
121
+ all_tokenizers, value="baichuan_7b", label="tokenizer"
122
+ )
123
+ token_counter_2 = None # 计数器
124
+ output_text_2 = gr.Highlightedtext(
125
+ label="Tokenization",
126
+ show_legend=True,
127
+ elem_classes="space-show"
128
+ )
129
+
130
+ output_table_2 = gr.Dataframe(
131
+ headers=["TokenID", "Token", "Text"],
132
+ datatype=["str", "str", "str"],
133
+ )
134
+
135
+ user_input.change(tokenize,
136
+ [user_input, tokenizer_type_1],
137
+ [output_text_1, output_table_1])
138
+ tokenizer_type_1.change(tokenize, [user_input, tokenizer_type_1], [output_text_1, output_table_1])
139
+
140
+ user_input.change(tokenize,
141
+ [user_input, tokenizer_type_2],
142
+ [output_text_2, output_table_2])
143
+ tokenizer_type_2.change(tokenize, [user_input, tokenizer_type_2], [output_text_2, output_table_2])
144
+
145
+ # submitBtn.click(tokenize, [user_input, tokenizer_type], outputs,
146
+ # show_progress=True)
147
+
148
+ # examples=[
149
+ # ["What a beautiful morning for a walk!"],
150
+ # ["It was the best of times, it was the worst of times."],
151
+ # ["多个空格 It ss was the best of times, it was the worst of times."],
152
+ # ]
153
+
154
+ if __name__ == "__main__":
155
+ demo.launch()
images/gptNeoX20B-VS-gpt2.jpg ADDED
requirements.txt ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ transformers>=4.21.1
2
+ sentencepiece
3
+ tiktoken
4
+ torch
utils/convert_sp_to_json.py ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+
2
+ from vocab.baichuan_7b import tokenizer
3
+
4
+ tokenizer.sp
utils/digit_util.py ADDED
File without changes
utils/lang_util.py ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ """
2
+ 日语、韩语 等
3
+ """
utils/oov_util.py ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+
3
+
4
+ import os
5
+
6
+ CURRENT_DIR = os.path.dirname(os.path.abspath(__file__))
7
+
8
+ space_tokens = ["空格 ,两个空格 ,三个空格 ,制表符\t,换行符\n"]
9
+
10
+
11
+
12
+ docs = [line.strip() for line in open(os.path.join(CURRENT_DIR, "test.txt"), "r", encoding="utf-8")]
utils/symbol.py ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ special_symbols: https://github.com/google/sentencepiece/blob/master/doc/special_symbols.md
3
+ """
4
+
5
+ import sys
6
+
7
+
8
+ # 来自 https://github.com/NVIDIA/Megatron-LM/blob/main/megatron/tokenizer/gpt2_tokenization.py#L55
9
+ # 啥意思?
10
+ def bytes_to_unicode():
11
+ """
12
+ Returns list of utf-8 byte and a corresponding list of unicode strings.
13
+ The reversible bpe codes work on unicode strings.
14
+ This means you need a large # of unicode characters in your vocab if you want to avoid UNKs.
15
+ When you're at something like a 10B token dataset you end up needing around 5K for decent coverage.
16
+ This is a signficant percentage of your normal, say, 32K bpe vocab.
17
+ To avoid that, we want lookup tables between utf-8 bytes and unicode strings.
18
+ And avoids mapping to whitespace/control characters the bpe code barfs on.
19
+ """
20
+ _chr = unichr if sys.version_info[0] == 2 else chr
21
+ bs = list(range(ord("!"), ord("~") + 1)) + list(range(ord("¡"), ord("¬") + 1)) + \
22
+ list(range(ord("®"), ord("ÿ") + 1))
23
+ cs = bs[:]
24
+ n = 0
25
+ for b in range(2**8):
26
+ if b not in bs:
27
+ bs.append(b)
28
+ cs.append(2**8 + n)
29
+ n += 1
30
+ cs = [_chr(n) for n in cs]
31
+ return dict(zip(bs, cs))
32
+
33
+ aa = bytes_to_unicode()
34
+ print(aa)
utils/text_util.py ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+
3
+
4
+ def is_chinese(uchar):
5
+ """
6
+ https://github.com/fxsjy/jieba/blob/master/jieba/__init__.py#L48
7
+ re.compile("([\u4E00-\u9FD5]+)", re.U)
8
+ """
9
+ return u'\u4e00' <= uchar <= u'\u9fa5'
10
+
11
+
12
+
13
+ def has_chinese(text):
14
+ """ contains Chinese characters """
15
+ return any(is_chinese(ch) for ch in text)
utils/vocab.jd.txt.v2 ADDED
@@ -0,0 +1,10268 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [PAD]
2
+ [unused1]
3
+ [unused2]
4
+ [unused3]
5
+ [unused4]
6
+ [unused5]
7
+ [unused6]
8
+ [unused7]
9
+ [unused8]
10
+ [unused9]
11
+ [unused10]
12
+ [unused11]
13
+ [unused12]
14
+ [unused13]
15
+ [unused14]
16
+ [unused15]
17
+ [unused16]
18
+ [unused17]
19
+ [unused18]
20
+ [unused19]
21
+ [unused20]
22
+ [unused21]
23
+ [unused22]
24
+ [unused23]
25
+ [unused24]
26
+ [unused25]
27
+ [unused26]
28
+ [unused27]
29
+ [unused28]
30
+ [unused29]
31
+ [unused30]
32
+ [unused31]
33
+ [unused32]
34
+ [unused33]
35
+ [unused34]
36
+ [unused35]
37
+ [unused36]
38
+ [unused37]
39
+ [unused38]
40
+ [unused39]
41
+ [unused40]
42
+ [unused41]
43
+ [unused42]
44
+ [unused43]
45
+ [unused44]
46
+ [unused45]
47
+ [unused46]
48
+ [unused47]
49
+ [unused48]
50
+ [unused49]
51
+ [unused50]
52
+ [unused51]
53
+ [unused52]
54
+ [unused53]
55
+ [unused54]
56
+ [unused55]
57
+ [unused56]
58
+ [unused57]
59
+ [unused58]
60
+ [unused59]
61
+ [unused60]
62
+ [unused61]
63
+ [unused62]
64
+ [unused63]
65
+ [unused64]
66
+ [unused65]
67
+ [unused66]
68
+ [unused67]
69
+ [unused68]
70
+ [unused69]
71
+ [unused70]
72
+ [unused71]
73
+ [unused72]
74
+ [unused73]
75
+ [unused74]
76
+ [unused75]
77
+ [unused76]
78
+ [unused77]
79
+ [unused78]
80
+ [unused79]
81
+ [unused80]
82
+ [unused81]
83
+ [unused82]
84
+ [unused83]
85
+ [unused84]
86
+ [unused85]
87
+ [unused86]
88
+ [unused87]
89
+ [unused88]
90
+ [unused89]
91
+ [unused90]
92
+ [unused91]
93
+ [unused92]
94
+ [unused93]
95
+ [unused94]
96
+ [unused95]
97
+ [unused96]
98
+ [unused97]
99
+ [unused98]
100
+ [unused99]
101
+ [UNK]
102
+ [CLS]
103
+ [SEP]
104
+ [MASK]
105
+ <S>
106
+ <T>
107
+ !
108
+ "
109
+
110
+
111
+
112
+
113
+
114
+
115
+
116
+ #
117
+ $
118
+ %
119
+ &
120
+ '
121
+ (
122
+ )
123
+ *
124
+ +
125
+ ,
126
+ -
127
+ .
128
+ /
129
+ 0
130
+ 1
131
+ 2
132
+ 3
133
+ 4
134
+ 5
135
+ 6
136
+ 7
137
+ 8
138
+ 9
139
+ 10
140
+ 11
141
+ 12
142
+ 13
143
+ 14
144
+ 15
145
+ 16
146
+ 17
147
+ 18
148
+ 19
149
+ 20
150
+ 21
151
+ 22
152
+ 23
153
+ 24
154
+ 25
155
+ 26
156
+ 27
157
+ 28
158
+ 29
159
+ 30
160
+ 31
161
+ 32
162
+ 33
163
+ 34
164
+ 35
165
+ 36
166
+ 37
167
+ 38
168
+ 39
169
+ 40
170
+ 41
171
+ 42
172
+ 43
173
+ 44
174
+ 45
175
+ 46
176
+ 47
177
+ 48
178
+ 49
179
+ 50
180
+ 51
181
+ 52
182
+ 53
183
+ 54
184
+ 55
185
+ 56
186
+ 57
187
+ 58
188
+ 59
189
+ 60
190
+ 61
191
+ 62
192
+ 63
193
+ 64
194
+ 65
195
+ 66
196
+ 67
197
+ 68
198
+ 69
199
+ 70
200
+ 71
201
+ 72
202
+ 73
203
+ 74
204
+ 75
205
+ 76
206
+ 77
207
+ 78
208
+ 79
209
+ 80
210
+ 81
211
+ 82
212
+ 83
213
+ 84
214
+ 85
215
+ 86
216
+ 87
217
+ 88
218
+ 89
219
+ 90
220
+ 91
221
+ 92
222
+ 93
223
+ 94
224
+ 95
225
+ 96
226
+ 97
227
+ 98
228
+ 99
229
+ 100
230
+ 120
231
+ 128
232
+ 180
233
+ 200
234
+ 256
235
+ 304
236
+ 360
237
+ 500
238
+ 512
239
+ 1000
240
+ 1080
241
+ 2000
242
+ 2014
243
+ 2015
244
+ 2016
245
+ 2017
246
+ 2018
247
+ 2019
248
+ 2020
249
+ 2021
250
+ 2022
251
+ :
252
+ ;
253
+ <
254
+ =
255
+ >
256
+ ?
257
+ @
258
+ [
259
+ \
260
+ ]
261
+ ^
262
+ _
263
+ a
264
+ b
265
+ c
266
+ d
267
+ e
268
+ f
269
+ g
270
+ h
271
+ i
272
+ j
273
+ k
274
+ l
275
+ m
276
+ n
277
+ o
278
+ p
279
+ q
280
+ r
281
+ s
282
+ t
283
+ u
284
+ v
285
+ w
286
+ x
287
+ y
288
+ z
289
+ {
290
+ |
291
+ }
292
+ ~
293
+ £
294
+ ¤
295
+ ¥
296
+ §
297
+ «
298
+ °
299
+ ±
300
+ ²
301
+ ³
302
+ µ
303
+ ·
304
+ ¹
305
+ º
306
+ »
307
+ ¼
308
+ ×
309
+ ß
310
+ æ
311
+ ÷
312
+ ø
313
+ đ
314
+ ŋ
315
+ ɔ
316
+ ə
317
+ ɡ
318
+ ʰ
319
+ ˇ
320
+ ˈ
321
+ ˊ
322
+ ˋ
323
+ ˍ
324
+ ː
325
+ ˙
326
+ ˚
327
+ ˢ
328
+ α
329
+ β
330
+ γ
331
+ δ
332
+ ε
333
+ η
334
+ θ
335
+ ι
336
+ κ
337
+ λ
338
+ μ
339
+ ν
340
+ ο
341
+ π
342
+ ρ
343
+ ς
344
+ σ
345
+ τ
346
+ υ
347
+ φ
348
+ χ
349
+ ψ
350
+ ω
351
+ а
352
+ б
353
+ в
354
+ г
355
+ д
356
+ е
357
+ ж
358
+ з
359
+ и
360
+ к
361
+ л
362
+ м
363
+ н
364
+ о
365
+ п
366
+ р
367
+ с
368
+ т
369
+ у
370
+ ф
371
+ х
372
+ ц
373
+ ч
374
+ ш
375
+ ы
376
+ ь
377
+ я
378
+ і
379
+
380
+
381
+
382
+
383
+
384
+
385
+
386
+
387
+
388
+
389
+
390
+
391
+
392
+
393
+
394
+
395
+
396
+
397
+
398
+
399
+
400
+
401
+
402
+
403
+
404
+
405
+
406
+
407
+
408
+
409
+
410
+
411
+
412
+
413
+
414
+
415
+
416
+
417
+
418
+
419
+
420
+
421
+
422
+
423
+
424
+
425
+
426
+
427
+
428
+
429
+
430
+
431
+
432
+
433
+
434
+
435
+
436
+
437
+
438
+
439
+
440
+
441
+
442
+
443
+
444
+
445
+
446
+
447
+
448
+
449
+
450
+
451
+
452
+
453
+
454
+
455
+
456
+
457
+
458
+
459
+
460
+
461
+
462
+
463
+
464
+
465
+
466
+
467
+
468
+
469
+
470
+
471
+
472
+
473
+
474
+
475
+
476
+
477
+
478
+
479
+
480
+
481
+
482
+
483
+
484
+
485
+
486
+
487
+
488
+
489
+
490
+
491
+
492
+
493
+
494
+
495
+
496
+
497
+
498
+
499
+
500
+
501
+
502
+
503
+
504
+
505
+
506
+
507
+
508
+
509
+
510
+
511
+
512
+
513
+
514
+
515
+
516
+
517
+
518
+
519
+
520
+
521
+
522
+
523
+
524
+
525
+
526
+
527
+
528
+
529
+
530
+
531
+
532
+
533
+
534
+
535
+
536
+
537
+
538
+
539
+
540
+
541
+
542
+
543
+
544
+
545
+
546
+
547
+
548
+ ⦿
549
+
550
+
551
+
552
+
553
+
554
+
555
+
556
+
557
+
558
+
559
+
560
+
561
+
562
+
563
+
564
+
565
+
566
+
567
+
568
+
569
+
570
+
571
+
572
+
573
+
574
+
575
+
576
+
577
+
578
+
579
+
580
+
581
+
582
+
583
+
584
+
585
+
586
+
587
+
588
+
589
+
590
+
591
+
592
+
593
+
594
+
595
+
596
+
597
+
598
+
599
+
600
+
601
+
602
+
603
+
604
+
605
+
606
+
607
+
608
+
609
+
610
+
611
+
612
+
613
+
614
+
615
+
616
+
617
+
618
+
619
+
620
+
621
+ 丿
622
+
623
+
624
+
625
+
626
+
627
+
628
+
629
+
630
+
631
+
632
+
633
+
634
+
635
+
636
+
637
+
638
+
639
+
640
+
641
+
642
+
643
+
644
+
645
+
646
+
647
+
648
+
649
+
650
+
651
+
652
+
653
+
654
+
655
+
656
+
657
+
658
+
659
+
660
+
661
+
662
+
663
+
664
+
665
+
666
+
667
+
668
+
669
+
670
+
671
+
672
+
673
+
674
+
675
+
676
+
677
+
678
+
679
+
680
+
681
+
682
+
683
+
684
+ 亿
685
+
686
+
687
+
688
+
689
+
690
+
691
+
692
+
693
+
694
+
695
+
696
+
697
+
698
+
699
+
700
+
701
+
702
+
703
+
704
+
705
+
706
+
707
+
708
+
709
+
710
+
711
+
712
+
713
+
714
+
715
+
716
+
717
+
718
+
719
+
720
+
721
+ 仿
722
+
723
+
724
+
725
+
726
+
727
+
728
+
729
+
730
+
731
+
732
+
733
+
734
+
735
+
736
+
737
+
738
+
739
+
740
+
741
+
742
+
743
+
744
+
745
+
746
+
747
+
748
+
749
+
750
+
751
+
752
+
753
+
754
+
755
+
756
+
757
+
758
+
759
+
760
+
761
+
762
+
763
+
764
+
765
+
766
+
767
+
768
+
769
+
770
+
771
+
772
+
773
+
774
+
775
+
776
+
777
+
778
+
779
+
780
+
781
+
782
+
783
+
784
+ 使
785
+
786
+
787
+
788
+
789
+
790
+
791
+
792
+
793
+
794
+
795
+
796
+
797
+
798
+
799
+
800
+
801
+
802
+
803
+
804
+
805
+
806
+
807
+ 便
808
+
809
+
810
+
811
+
812
+
813
+
814
+
815
+
816
+
817
+
818
+
819
+
820
+
821
+
822
+
823
+
824
+
825
+
826
+
827
+
828
+
829
+
830
+
831
+
832
+
833
+
834
+
835
+
836
+
837
+
838
+
839
+
840
+
841
+
842
+
843
+
844
+
845
+
846
+
847
+
848
+
849
+
850
+
851
+
852
+
853
+
854
+
855
+
856
+
857
+
858
+
859
+
860
+
861
+
862
+
863
+
864
+
865
+
866
+
867
+
868
+
869
+
870
+
871
+
872
+
873
+
874
+
875
+
876
+
877
+
878
+
879
+
880
+
881
+
882
+
883
+
884
+
885
+
886
+
887
+
888
+
889
+
890
+
891
+
892
+
893
+
894
+
895
+
896
+
897
+
898
+
899
+
900
+
901
+
902
+
903
+
904
+
905
+
906
+
907
+
908
+
909
+
910
+
911
+
912
+
913
+
914
+
915
+
916
+
917
+
918
+
919
+
920
+
921
+
922
+
923
+
924
+
925
+
926
+
927
+
928
+
929
+
930
+
931
+
932
+
933
+
934
+
935
+
936
+
937
+
938
+
939
+
940
+
941
+ ��
942
+
943
+
944
+
945
+
946
+
947
+
948
+
949
+
950
+
951
+
952
+
953
+
954
+
955
+
956
+
957
+
958
+
959
+
960
+
961
+
962
+
963
+
964
+
965
+
966
+
967
+
968
+
969
+
970
+
971
+
972
+
973
+
974
+
975
+
976
+
977
+
978
+
979
+
980
+
981
+
982
+
983
+
984
+
985
+
986
+
987
+
988
+
989
+
990
+
991
+
992
+
993
+
994
+
995
+
996
+
997
+
998
+
999
+
1000
+
1001
+
1002
+
1003
+
1004
+
1005
+
1006
+
1007
+
1008
+
1009
+
1010
+
1011
+
1012
+
1013
+
1014
+
1015
+
1016
+
1017
+
1018
+
1019
+
1020
+
1021
+
1022
+
1023
+
1024
+
1025
+
1026
+
1027
+
1028
+
1029
+
1030
+
1031
+
1032
+
1033
+
1034
+
1035
+
1036
+
1037
+
1038
+
1039
+
1040
+
1041
+
1042
+
1043
+
1044
+
1045
+
1046
+
1047
+
1048
+
1049
+
1050
+
1051
+
1052
+
1053
+
1054
+
1055
+
1056
+
1057
+
1058
+
1059
+
1060
+
1061
+
1062
+
1063
+
1064
+
1065
+
1066
+
1067
+
1068
+
1069
+
1070
+
1071
+
1072
+
1073
+
1074
+
1075
+
1076
+
1077
+
1078
+
1079
+
1080
+
1081
+
1082
+
1083
+
1084
+
1085
+
1086
+
1087
+
1088
+
1089
+
1090
+
1091
+
1092
+
1093
+
1094
+
1095
+
1096
+
1097
+
1098
+
1099
+
1100
+
1101
+
1102
+
1103
+
1104
+
1105
+
1106
+
1107
+
1108
+
1109
+
1110
+
1111
+
1112
+
1113
+
1114
+
1115
+
1116
+
1117
+
1118
+
1119
+
1120
+
1121
+
1122
+
1123
+
1124
+
1125
+
1126
+
1127
+
1128
+
1129
+
1130
+
1131
+
1132
+
1133
+
1134
+
1135
+
1136
+
1137
+
1138
+
1139
+
1140
+
1141
+
1142
+
1143
+
1144
+
1145
+
1146
+
1147
+
1148
+
1149
+
1150
+
1151
+
1152
+
1153
+
1154
+
1155
+
1156
+
1157
+
1158
+
1159
+
1160
+
1161
+
1162
+
1163
+
1164
+
1165
+
1166
+
1167
+
1168
+
1169
+
1170
+
1171
+
1172
+
1173
+
1174
+
1175
+
1176
+
1177
+
1178
+
1179
+
1180
+
1181
+
1182
+
1183
+
1184
+
1185
+
1186
+
1187
+
1188
+
1189
+
1190
+
1191
+
1192
+
1193
+
1194
+
1195
+
1196
+
1197
+
1198
+
1199
+
1200
+
1201
+
1202
+
1203
+
1204
+
1205
+
1206
+
1207
+
1208
+
1209
+
1210
+
1211
+
1212
+
1213
+
1214
+
1215
+
1216
+
1217
+
1218
+
1219
+
1220
+
1221
+
1222
+
1223
+
1224
+
1225
+
1226
+
1227
+
1228
+
1229
+
1230
+
1231
+
1232
+
1233
+
1234
+
1235
+
1236
+
1237
+
1238
+
1239
+
1240
+
1241
+
1242
+
1243
+
1244
+
1245
+
1246
+
1247
+
1248
+
1249
+
1250
+
1251
+
1252
+
1253
+
1254
+
1255
+
1256
+
1257
+
1258
+
1259
+
1260
+
1261
+
1262
+
1263
+
1264
+
1265
+
1266
+
1267
+
1268
+
1269
+
1270
+
1271
+
1272
+
1273
+
1274
+
1275
+
1276
+
1277
+
1278
+
1279
+
1280
+
1281
+
1282
+
1283
+
1284
+
1285
+
1286
+
1287
+
1288
+
1289
+
1290
+
1291
+
1292
+
1293
+
1294
+
1295
+
1296
+
1297
+
1298
+
1299
+
1300
+
1301
+
1302
+
1303
+
1304
+
1305
+
1306
+
1307
+
1308
+
1309
+
1310
+
1311
+
1312
+
1313
+
1314
+
1315
+
1316
+
1317
+
1318
+
1319
+
1320
+
1321
+
1322
+
1323
+
1324
+
1325
+
1326
+
1327
+
1328
+
1329
+
1330
+
1331
+
1332
+
1333
+
1334
+
1335
+
1336
+
1337
+
1338
+
1339
+
1340
+
1341
+
1342
+
1343
+
1344
+
1345
+
1346
+
1347
+
1348
+
1349
+
1350
+
1351
+
1352
+
1353
+
1354
+
1355
+
1356
+
1357
+
1358
+
1359
+
1360
+
1361
+
1362
+
1363
+
1364
+
1365
+
1366
+
1367
+
1368
+
1369
+
1370
+
1371
+
1372
+
1373
+
1374
+
1375
+
1376
+
1377
+
1378
+
1379
+
1380
+
1381
+
1382
+
1383
+
1384
+
1385
+
1386
+
1387
+
1388
+
1389
+
1390
+
1391
+
1392
+
1393
+
1394
+
1395
+
1396
+
1397
+
1398
+
1399
+
1400
+
1401
+
1402
+
1403
+
1404
+
1405
+
1406
+
1407
+
1408
+
1409
+
1410
+
1411
+
1412
+
1413
+
1414
+
1415
+
1416
+
1417
+
1418
+
1419
+
1420
+
1421
+
1422
+
1423
+
1424
+
1425
+
1426
+
1427
+
1428
+
1429
+
1430
+
1431
+
1432
+
1433
+
1434
+
1435
+
1436
+
1437
+
1438
+
1439
+
1440
+
1441
+
1442
+
1443
+
1444
+
1445
+
1446
+
1447
+
1448
+
1449
+
1450
+
1451
+
1452
+
1453
+
1454
+
1455
+
1456
+
1457
+
1458
+
1459
+
1460
+
1461
+
1462
+
1463
+
1464
+
1465
+
1466
+
1467
+
1468
+
1469
+
1470
+
1471
+
1472
+
1473
+
1474
+
1475
+
1476
+
1477
+
1478
+
1479
+
1480
+
1481
+
1482
+
1483
+
1484
+
1485
+
1486
+
1487
+
1488
+
1489
+
1490
+
1491
+
1492
+
1493
+
1494
+
1495
+
1496
+
1497
+
1498
+
1499
+
1500
+
1501
+
1502
+
1503
+
1504
+
1505
+
1506
+
1507
+
1508
+
1509
+
1510
+
1511
+
1512
+
1513
+
1514
+
1515
+
1516
+
1517
+
1518
+
1519
+
1520
+
1521
+
1522
+
1523
+
1524
+
1525
+
1526
+
1527
+
1528
+
1529
+
1530
+
1531
+
1532
+
1533
+
1534
+
1535
+
1536
+
1537
+
1538
+
1539
+
1540
+
1541
+
1542
+
1543
+
1544
+
1545
+
1546
+
1547
+
1548
+
1549
+
1550
+
1551
+
1552
+
1553
+
1554
+
1555
+
1556
+
1557
+
1558
+
1559
+
1560
+
1561
+
1562
+
1563
+
1564
+
1565
+
1566
+
1567
+
1568
+
1569
+
1570
+
1571
+
1572
+
1573
+
1574
+
1575
+
1576
+
1577
+
1578
+
1579
+
1580
+
1581
+
1582
+
1583
+
1584
+
1585
+
1586
+
1587
+
1588
+
1589
+
1590
+
1591
+
1592
+
1593
+
1594
+
1595
+
1596
+
1597
+
1598
+
1599
+
1600
+
1601
+
1602
+
1603
+
1604
+
1605
+
1606
+
1607
+
1608
+
1609
+
1610
+
1611
+
1612
+
1613
+
1614
+
1615
+
1616
+
1617
+
1618
+
1619
+
1620
+
1621
+
1622
+
1623
+
1624
+
1625
+
1626
+
1627
+
1628
+
1629
+
1630
+
1631
+
1632
+
1633
+
1634
+
1635
+
1636
+
1637
+
1638
+
1639
+
1640
+
1641
+
1642
+
1643
+
1644
+
1645
+
1646
+
1647
+
1648
+
1649
+
1650
+
1651
+
1652
+
1653
+
1654
+
1655
+
1656
+
1657
+
1658
+
1659
+
1660
+
1661
+
1662
+
1663
+
1664
+
1665
+
1666
+
1667
+
1668
+
1669
+
1670
+
1671
+
1672
+
1673
+
1674
+
1675
+
1676
+
1677
+
1678
+
1679
+
1680
+
1681
+
1682
+
1683
+
1684
+
1685
+
1686
+
1687
+
1688
+
1689
+
1690
+
1691
+
1692
+
1693
+
1694
+
1695
+
1696
+
1697
+
1698
+
1699
+
1700
+
1701
+
1702
+
1703
+
1704
+
1705
+
1706
+
1707
+
1708
+
1709
+
1710
+
1711
+
1712
+
1713
+
1714
+
1715
+
1716
+
1717
+
1718
+
1719
+
1720
+
1721
+
1722
+
1723
+
1724
+
1725
+
1726
+
1727
+
1728
+
1729
+
1730
+
1731
+
1732
+
1733
+
1734
+
1735
+
1736
+ 姿
1737
+
1738
+
1739
+
1740
+
1741
+
1742
+
1743
+
1744
+
1745
+
1746
+
1747
+
1748
+
1749
+
1750
+
1751
+
1752
+
1753
+
1754
+
1755
+
1756
+
1757
+
1758
+
1759
+
1760
+
1761
+
1762
+
1763
+
1764
+
1765
+
1766
+
1767
+
1768
+
1769
+
1770
+
1771
+
1772
+ 婿
1773
+
1774
+
1775
+
1776
+
1777
+
1778
+
1779
+
1780
+
1781
+
1782
+
1783
+
1784
+
1785
+
1786
+
1787
+
1788
+
1789
+
1790
+
1791
+
1792
+
1793
+
1794
+
1795
+
1796
+
1797
+
1798
+
1799
+
1800
+
1801
+ 嬿
1802
+
1803
+
1804
+
1805
+
1806
+
1807
+
1808
+
1809
+
1810
+
1811
+
1812
+
1813
+
1814
+
1815
+
1816
+
1817
+
1818
+
1819
+
1820
+
1821
+
1822
+
1823
+
1824
+
1825
+
1826
+
1827
+
1828
+
1829
+
1830
+
1831
+
1832
+
1833
+
1834
+
1835
+
1836
+
1837
+
1838
+
1839
+
1840
+
1841
+
1842
+
1843
+
1844
+
1845
+
1846
+
1847
+
1848
+
1849
+
1850
+
1851
+
1852
+
1853
+
1854
+
1855
+
1856
+
1857
+
1858
+
1859
+
1860
+
1861
+
1862
+
1863
+
1864
+
1865
+
1866
+
1867
+
1868
+ 宿
1869
+
1870
+
1871
+
1872
+
1873
+
1874
+
1875
+
1876
+
1877
+
1878
+
1879
+
1880
+
1881
+
1882
+
1883
+
1884
+
1885
+
1886
+
1887
+
1888
+
1889
+
1890
+
1891
+
1892
+
1893
+ 寿
1894
+
1895
+
1896
+
1897
+
1898
+
1899
+
1900
+
1901
+
1902
+
1903
+
1904
+
1905
+
1906
+
1907
+
1908
+
1909
+
1910
+
1911
+
1912
+
1913
+
1914
+
1915
+
1916
+
1917
+
1918
+
1919
+
1920
+ 尿
1921
+
1922
+
1923
+
1924
+
1925
+
1926
+
1927
+
1928
+
1929
+
1930
+
1931
+
1932
+
1933
+
1934
+
1935
+
1936
+
1937
+
1938
+
1939
+
1940
+
1941
+
1942
+
1943
+ 屿
1944
+
1945
+
1946
+
1947
+
1948
+
1949
+
1950
+
1951
+
1952
+
1953
+
1954
+
1955
+
1956
+
1957
+
1958
+
1959
+
1960
+
1961
+
1962
+
1963
+
1964
+
1965
+ ��
1966
+
1967
+
1968
+
1969
+
1970
+
1971
+
1972
+
1973
+
1974
+
1975
+
1976
+
1977
+
1978
+
1979
+
1980
+
1981
+
1982
+
1983
+
1984
+
1985
+
1986
+
1987
+
1988
+
1989
+
1990
+
1991
+
1992
+
1993
+
1994
+
1995
+
1996
+
1997
+
1998
+
1999
+
2000
+
2001
+
2002
+
2003
+
2004
+
2005
+
2006
+
2007
+
2008
+
2009
+
2010
+
2011
+
2012
+
2013
+
2014
+
2015
+
2016
+
2017
+
2018
+
2019
+
2020
+
2021
+
2022
+
2023
+
2024
+
2025
+
2026
+
2027
+ 巿
2028
+
2029
+
2030
+
2031
+
2032
+
2033
+
2034
+
2035
+
2036
+
2037
+
2038
+
2039
+
2040
+
2041
+
2042
+
2043
+
2044
+
2045
+
2046
+
2047
+
2048
+
2049
+
2050
+
2051
+
2052
+
2053
+
2054
+
2055
+
2056
+
2057
+
2058
+
2059
+
2060
+
2061
+
2062
+
2063
+
2064
+
2065
+
2066
+
2067
+
2068
+
2069
+
2070
+ 广
2071
+
2072
+
2073
+
2074
+
2075
+
2076
+
2077
+
2078
+
2079
+
2080
+
2081
+
2082
+
2083
+
2084
+
2085
+
2086
+
2087
+
2088
+
2089
+
2090
+
2091
+
2092
+
2093
+
2094
+
2095
+
2096
+
2097
+
2098
+
2099
+
2100
+
2101
+
2102
+
2103
+
2104
+
2105
+
2106
+
2107
+ 廿
2108
+
2109
+
2110
+
2111
+
2112
+
2113
+
2114
+
2115
+
2116
+
2117
+
2118
+
2119
+
2120
+
2121
+
2122
+
2123
+
2124
+
2125
+
2126
+
2127
+
2128
+
2129
+
2130
+
2131
+
2132
+
2133
+
2134
+
2135
+
2136
+
2137
+
2138
+
2139
+
2140
+
2141
+
2142
+
2143
+
2144
+
2145
+
2146
+
2147
+
2148
+
2149
+
2150
+
2151
+
2152
+
2153
+
2154
+
2155
+
2156
+
2157
+
2158
+ 彿
2159
+
2160
+
2161
+
2162
+
2163
+
2164
+
2165
+
2166
+
2167
+
2168
+
2169
+
2170
+
2171
+
2172
+
2173
+
2174
+
2175
+
2176
+
2177
+
2178
+
2179
+
2180
+
2181
+
2182
+
2183
+
2184
+
2185
+
2186
+
2187
+
2188
+
2189
+
2190
+
2191
+
2192
+
2193
+
2194
+
2195
+
2196
+
2197
+
2198
+
2199
+
2200
+
2201
+
2202
+
2203
+
2204
+
2205
+
2206
+
2207
+
2208
+
2209
+
2210
+ 忿
2211
+ 怀
2212
+
2213
+
2214
+
2215
+
2216
+
2217
+
2218
+
2219
+
2220
+
2221
+
2222
+
2223
+
2224
+
2225
+
2226
+
2227
+
2228
+
2229
+
2230
+
2231
+
2232
+
2233
+
2234
+
2235
+
2236
+
2237
+
2238
+
2239
+
2240
+
2241
+
2242
+
2243
+
2244
+
2245
+
2246
+
2247
+
2248
+
2249
+
2250
+
2251
+
2252
+
2253
+
2254
+
2255
+
2256
+
2257
+
2258
+
2259
+
2260
+
2261
+
2262
+
2263
+
2264
+
2265
+
2266
+
2267
+
2268
+
2269
+
2270
+
2271
+
2272
+
2273
+
2274
+
2275
+
2276
+
2277
+
2278
+
2279
+
2280
+
2281
+
2282
+
2283
+
2284
+
2285
+
2286
+
2287
+
2288
+
2289
+
2290
+
2291
+
2292
+
2293
+
2294
+
2295
+
2296
+
2297
+
2298
+
2299
+
2300
+
2301
+
2302
+
2303
+
2304
+
2305
+
2306
+
2307
+
2308
+
2309
+
2310
+
2311
+
2312
+
2313
+
2314
+
2315
+
2316
+
2317
+
2318
+
2319
+
2320
+
2321
+
2322
+
2323
+
2324
+
2325
+
2326
+
2327
+
2328
+
2329
+
2330
+
2331
+
2332
+
2333
+
2334
+
2335
+
2336
+
2337
+
2338
+
2339
+
2340
+
2341
+
2342
+
2343
+
2344
+
2345
+
2346
+
2347
+
2348
+
2349
+
2350
+
2351
+
2352
+
2353
+
2354
+
2355
+
2356
+
2357
+
2358
+
2359
+
2360
+
2361
+
2362
+
2363
+
2364
+
2365
+
2366
+
2367
+
2368
+
2369
+
2370
+
2371
+
2372
+
2373
+
2374
+
2375
+
2376
+
2377
+
2378
+
2379
+
2380
+
2381
+
2382
+
2383
+
2384
+
2385
+
2386
+
2387
+
2388
+
2389
+
2390
+
2391
+
2392
+
2393
+
2394
+
2395
+
2396
+
2397
+
2398
+
2399
+
2400
+
2401
+
2402
+
2403
+
2404
+
2405
+
2406
+
2407
+
2408
+
2409
+
2410
+
2411
+
2412
+
2413
+
2414
+
2415
+
2416
+
2417
+
2418
+
2419
+
2420
+
2421
+
2422
+
2423
+
2424
+
2425
+
2426
+
2427
+
2428
+
2429
+
2430
+
2431
+
2432
+
2433
+
2434
+
2435
+
2436
+
2437
+
2438
+
2439
+
2440
+
2441
+
2442
+
2443
+
2444
+
2445
+
2446
+
2447
+
2448
+
2449
+
2450
+
2451
+
2452
+
2453
+
2454
+
2455
+
2456
+
2457
+
2458
+
2459
+
2460
+
2461
+
2462
+
2463
+
2464
+
2465
+
2466
+
2467
+
2468
+
2469
+
2470
+
2471
+
2472
+
2473
+
2474
+
2475
+
2476
+
2477
+
2478
+
2479
+
2480
+
2481
+
2482
+
2483
+
2484
+
2485
+
2486
+
2487
+
2488
+
2489
+
2490
+
2491
+
2492
+
2493
+
2494
+
2495
+
2496
+
2497
+
2498
+
2499
+
2500
+
2501
+
2502
+
2503
+
2504
+
2505
+
2506
+
2507
+
2508
+
2509
+
2510
+
2511
+
2512
+
2513
+
2514
+
2515
+
2516
+
2517
+
2518
+
2519
+
2520
+
2521
+
2522
+
2523
+
2524
+
2525
+
2526
+
2527
+
2528
+
2529
+
2530
+
2531
+
2532
+
2533
+
2534
+
2535
+
2536
+
2537
+
2538
+
2539
+
2540
+
2541
+
2542
+
2543
+
2544
+
2545
+
2546
+
2547
+
2548
+
2549
+
2550
+
2551
+
2552
+
2553
+
2554
+
2555
+
2556
+
2557
+
2558
+
2559
+
2560
+
2561
+
2562
+
2563
+
2564
+
2565
+
2566
+
2567
+
2568
+
2569
+
2570
+
2571
+
2572
+
2573
+
2574
+
2575
+
2576
+
2577
+
2578
+
2579
+
2580
+
2581
+
2582
+
2583
+
2584
+
2585
+
2586
+
2587
+
2588
+
2589
+
2590
+
2591
+
2592
+
2593
+
2594
+
2595
+
2596
+
2597
+
2598
+
2599
+
2600
+
2601
+
2602
+
2603
+
2604
+
2605
+
2606
+
2607
+
2608
+
2609
+
2610
+
2611
+
2612
+
2613
+
2614
+
2615
+
2616
+
2617
+
2618
+
2619
+
2620
+
2621
+
2622
+
2623
+
2624
+
2625
+
2626
+
2627
+
2628
+
2629
+
2630
+
2631
+
2632
+
2633
+
2634
+
2635
+
2636
+
2637
+
2638
+
2639
+
2640
+
2641
+
2642
+
2643
+
2644
+
2645
+
2646
+
2647
+
2648
+
2649
+
2650
+
2651
+
2652
+
2653
+
2654
+
2655
+
2656
+
2657
+
2658
+
2659
+
2660
+
2661
+
2662
+
2663
+
2664
+
2665
+
2666
+
2667
+
2668
+
2669
+
2670
+
2671
+
2672
+
2673
+
2674
+
2675
+
2676
+
2677
+
2678
+
2679
+
2680
+
2681
+
2682
+
2683
+
2684
+
2685
+
2686
+
2687
+
2688
+
2689
+
2690
+
2691
+
2692
+
2693
+
2694
+
2695
+
2696
+
2697
+
2698
+
2699
+
2700
+
2701
+
2702
+
2703
+
2704
+
2705
+
2706
+
2707
+
2708
+
2709
+
2710
+
2711
+
2712
+
2713
+
2714
+
2715
+
2716
+
2717
+
2718
+
2719
+
2720
+
2721
+
2722
+
2723
+
2724
+
2725
+
2726
+
2727
+
2728
+
2729
+
2730
+
2731
+
2732
+
2733
+
2734
+
2735
+
2736
+
2737
+
2738
+
2739
+
2740
+
2741
+
2742
+
2743
+
2744
+
2745
+
2746
+
2747
+
2748
+
2749
+
2750
+
2751
+
2752
+
2753
+
2754
+
2755
+
2756
+
2757
+
2758
+
2759
+
2760
+
2761
+
2762
+
2763
+
2764
+
2765
+
2766
+
2767
+
2768
+
2769
+
2770
+
2771
+
2772
+
2773
+
2774
+
2775
+
2776
+
2777
+
2778
+
2779
+
2780
+
2781
+
2782
+
2783
+
2784
+
2785
+
2786
+
2787
+
2788
+
2789
+
2790
+
2791
+
2792
+
2793
+
2794
+
2795
+
2796
+
2797
+
2798
+
2799
+
2800
+
2801
+
2802
+
2803
+
2804
+
2805
+
2806
+
2807
+
2808
+
2809
+
2810
+
2811
+
2812
+
2813
+
2814
+
2815
+
2816
+
2817
+
2818
+
2819
+
2820
+
2821
+
2822
+
2823
+
2824
+
2825
+
2826
+
2827
+
2828
+
2829
+
2830
+
2831
+
2832
+
2833
+
2834
+
2835
+
2836
+
2837
+
2838
+
2839
+
2840
+
2841
+
2842
+
2843
+
2844
+
2845
+
2846
+
2847
+
2848
+
2849
+
2850
+
2851
+
2852
+
2853
+
2854
+
2855
+
2856
+
2857
+
2858
+
2859
+
2860
+
2861
+
2862
+
2863
+
2864
+
2865
+
2866
+
2867
+
2868
+
2869
+
2870
+
2871
+
2872
+
2873
+
2874
+
2875
+
2876
+
2877
+
2878
+
2879
+
2880
+
2881
+
2882
+
2883
+
2884
+
2885
+
2886
+
2887
+
2888
+
2889
+
2890
+
2891
+
2892
+
2893
+
2894
+
2895
+
2896
+
2897
+
2898
+
2899
+
2900
+
2901
+
2902
+
2903
+
2904
+
2905
+
2906
+
2907
+
2908
+
2909
+
2910
+
2911
+
2912
+
2913
+
2914
+
2915
+
2916
+
2917
+
2918
+
2919
+
2920
+
2921
+
2922
+
2923
+
2924
+
2925
+
2926
+
2927
+
2928
+
2929
+
2930
+
2931
+
2932
+
2933
+
2934
+
2935
+
2936
+
2937
+
2938
+
2939
+
2940
+
2941
+
2942
+
2943
+
2944
+
2945
+
2946
+
2947
+
2948
+
2949
+
2950
+
2951
+
2952
+
2953
+
2954
+
2955
+
2956
+
2957
+
2958
+
2959
+
2960
+
2961
+
2962
+
2963
+
2964
+
2965
+
2966
+
2967
+
2968
+
2969
+
2970
+
2971
+
2972
+
2973
+
2974
+
2975
+
2976
+
2977
+
2978
+
2979
+
2980
+
2981
+
2982
+
2983
+
2984
+
2985
+
2986
+
2987
+
2988
+
2989
+ ��
2990
+
2991
+
2992
+
2993
+
2994
+
2995
+
2996
+
2997
+
2998
+ 椿
2999
+
3000
+
3001
+
3002
+
3003
+
3004
+
3005
+
3006
+
3007
+
3008
+
3009
+
3010
+
3011
+
3012
+
3013
+
3014
+
3015
+
3016
+
3017
+
3018
+
3019
+
3020
+
3021
+
3022
+
3023
+
3024
+
3025
+
3026
+
3027
+
3028
+
3029
+
3030
+
3031
+
3032
+
3033
+
3034
+
3035
+
3036
+
3037
+
3038
+
3039
+
3040
+
3041
+
3042
+
3043
+ 槿
3044
+
3045
+
3046
+
3047
+
3048
+
3049
+
3050
+
3051
+
3052
+
3053
+
3054
+
3055
+
3056
+
3057
+
3058
+
3059
+
3060
+
3061
+
3062
+
3063
+
3064
+
3065
+
3066
+
3067
+
3068
+
3069
+
3070
+
3071
+
3072
+
3073
+
3074
+
3075
+
3076
+
3077
+
3078
+
3079
+
3080
+
3081
+
3082
+
3083
+
3084
+
3085
+
3086
+
3087
+
3088
+
3089
+
3090
+
3091
+
3092
+
3093
+
3094
+
3095
+
3096
+
3097
+
3098
+
3099
+
3100
+
3101
+
3102
+
3103
+
3104
+
3105
+
3106
+
3107
+
3108
+
3109
+
3110
+
3111
+
3112
+
3113
+
3114
+
3115
+
3116
+
3117
+ 殿
3118
+
3119
+
3120
+
3121
+
3122
+
3123
+
3124
+
3125
+
3126
+
3127
+
3128
+
3129
+
3130
+
3131
+
3132
+
3133
+
3134
+
3135
+
3136
+
3137
+
3138
+
3139
+
3140
+
3141
+
3142
+
3143
+
3144
+
3145
+
3146
+
3147
+
3148
+
3149
+
3150
+
3151
+
3152
+
3153
+
3154
+
3155
+
3156
+
3157
+
3158
+
3159
+
3160
+
3161
+
3162
+
3163
+
3164
+
3165
+
3166
+
3167
+
3168
+
3169
+
3170
+
3171
+
3172
+
3173
+
3174
+
3175
+
3176
+
3177
+
3178
+
3179
+
3180
+
3181
+
3182
+
3183
+
3184
+
3185
+
3186
+
3187
+
3188
+
3189
+
3190
+
3191
+
3192
+
3193
+
3194
+
3195
+
3196
+
3197
+
3198
+
3199
+
3200
+
3201
+
3202
+
3203
+
3204
+
3205
+
3206
+
3207
+
3208
+
3209
+
3210
+
3211
+
3212
+
3213
+
3214
+
3215
+
3216
+
3217
+
3218
+
3219
+
3220
+
3221
+ 沿
3222
+
3223
+
3224
+
3225
+
3226
+
3227
+
3228
+
3229
+
3230
+
3231
+
3232
+
3233
+
3234
+
3235
+
3236
+
3237
+
3238
+
3239
+
3240
+
3241
+
3242
+
3243
+
3244
+
3245
+
3246
+
3247
+
3248
+
3249
+
3250
+
3251
+
3252
+
3253
+
3254
+
3255
+
3256
+
3257
+
3258
+
3259
+
3260
+
3261
+
3262
+
3263
+
3264
+
3265
+
3266
+
3267
+
3268
+
3269
+
3270
+
3271
+
3272
+
3273
+
3274
+
3275
+
3276
+
3277
+
3278
+
3279
+
3280
+
3281
+
3282
+
3283
+
3284
+
3285
+
3286
+
3287
+
3288
+
3289
+
3290
+
3291
+
3292
+
3293
+
3294
+
3295
+
3296
+
3297
+
3298
+
3299
+
3300
+
3301
+
3302
+
3303
+
3304
+
3305
+
3306
+
3307
+
3308
+
3309
+
3310
+
3311
+
3312
+
3313
+
3314
+
3315
+
3316
+
3317
+
3318
+
3319
+
3320
+
3321
+
3322
+
3323
+
3324
+
3325
+
3326
+
3327
+ 涿
3328
+
3329
+
3330
+
3331
+
3332
+
3333
+
3334
+
3335
+
3336
+
3337
+
3338
+
3339
+
3340
+
3341
+
3342
+
3343
+
3344
+
3345
+
3346
+
3347
+
3348
+
3349
+
3350
+
3351
+
3352
+
3353
+
3354
+
3355
+
3356
+
3357
+
3358
+
3359
+
3360
+
3361
+
3362
+
3363
+
3364
+
3365
+
3366
+
3367
+
3368
+
3369
+
3370
+
3371
+
3372
+
3373
+
3374
+
3375
+
3376
+
3377
+
3378
+
3379
+
3380
+
3381
+
3382
+
3383
+
3384
+
3385
+
3386
+
3387
+
3388
+ 湿
3389
+
3390
+
3391
+
3392
+
3393
+
3394
+
3395
+
3396
+
3397
+
3398
+
3399
+
3400
+
3401
+
3402
+
3403
+
3404
+
3405
+
3406
+
3407
+
3408
+
3409
+
3410
+
3411
+
3412
+
3413
+
3414
+
3415
+
3416
+
3417
+
3418
+
3419
+
3420
+
3421
+
3422
+
3423
+
3424
+
3425
+
3426
+
3427
+
3428
+
3429
+
3430
+
3431
+
3432
+
3433
+
3434
+
3435
+
3436
+
3437
+
3438
+
3439
+
3440
+
3441
+
3442
+
3443
+
3444
+
3445
+
3446
+
3447
+
3448
+
3449
+
3450
+
3451
+
3452
+
3453
+
3454
+
3455
+
3456
+
3457
+
3458
+
3459
+
3460
+
3461
+
3462
+
3463
+
3464
+
3465
+
3466
+
3467
+
3468
+
3469
+
3470
+
3471
+
3472
+
3473
+
3474
+
3475
+
3476
+
3477
+
3478
+
3479
+
3480
+
3481
+
3482
+
3483
+
3484
+
3485
+
3486
+
3487
+
3488
+
3489
+
3490
+
3491
+
3492
+
3493
+
3494
+
3495
+
3496
+
3497
+
3498
+
3499
+
3500
+
3501
+
3502
+
3503
+
3504
+
3505
+
3506
+
3507
+
3508
+
3509
+
3510
+
3511
+
3512
+
3513
+
3514
+
3515
+
3516
+
3517
+
3518
+
3519
+
3520
+
3521
+
3522
+
3523
+
3524
+
3525
+
3526
+
3527
+
3528
+
3529
+
3530
+
3531
+
3532
+
3533
+
3534
+
3535
+
3536
+
3537
+
3538
+
3539
+
3540
+
3541
+
3542
+
3543
+
3544
+
3545
+
3546
+
3547
+
3548
+
3549
+
3550
+
3551
+
3552
+
3553
+
3554
+
3555
+
3556
+
3557
+
3558
+
3559
+
3560
+
3561
+
3562
+
3563
+
3564
+
3565
+
3566
+
3567
+
3568
+
3569
+
3570
+
3571
+
3572
+
3573
+
3574
+
3575
+
3576
+
3577
+
3578
+
3579
+
3580
+
3581
+
3582
+
3583
+
3584
+
3585
+
3586
+
3587
+
3588
+
3589
+
3590
+
3591
+
3592
+
3593
+
3594
+
3595
+
3596
+
3597
+
3598
+
3599
+
3600
+
3601
+
3602
+
3603
+
3604
+
3605
+
3606
+
3607
+
3608
+
3609
+
3610
+
3611
+
3612
+
3613
+
3614
+
3615
+
3616
+
3617
+
3618
+
3619
+
3620
+
3621
+
3622
+
3623
+
3624
+
3625
+
3626
+
3627
+
3628
+
3629
+
3630
+
3631
+
3632
+
3633
+
3634
+
3635
+
3636
+
3637
+
3638
+
3639
+
3640
+
3641
+
3642
+
3643
+
3644
+
3645
+
3646
+
3647
+
3648
+
3649
+
3650
+
3651
+
3652
+
3653
+
3654
+
3655
+
3656
+
3657
+
3658
+
3659
+
3660
+
3661
+
3662
+
3663
+
3664
+
3665
+
3666
+
3667
+
3668
+
3669
+
3670
+
3671
+
3672
+
3673
+
3674
+
3675
+
3676
+
3677
+
3678
+
3679
+
3680
+
3681
+
3682
+
3683
+
3684
+
3685
+
3686
+
3687
+
3688
+
3689
+
3690
+
3691
+
3692
+
3693
+
3694
+
3695
+
3696
+
3697
+
3698
+
3699
+
3700
+
3701
+
3702
+
3703
+
3704
+
3705
+
3706
+
3707
+
3708
+
3709
+
3710
+
3711
+
3712
+
3713
+
3714
+
3715
+
3716
+
3717
+
3718
+
3719
+
3720
+
3721
+
3722
+
3723
+
3724
+
3725
+
3726
+
3727
+
3728
+
3729
+
3730
+
3731
+
3732
+
3733
+
3734
+
3735
+
3736
+
3737
+
3738
+
3739
+
3740
+
3741
+
3742
+
3743
+
3744
+
3745
+
3746
+
3747
+
3748
+
3749
+
3750
+
3751
+
3752
+
3753
+
3754
+
3755
+
3756
+
3757
+
3758
+
3759
+
3760
+
3761
+
3762
+
3763
+
3764
+
3765
+
3766
+
3767
+
3768
+
3769
+
3770
+
3771
+
3772
+
3773
+
3774
+
3775
+
3776
+
3777
+
3778
+
3779
+
3780
+
3781
+
3782
+
3783
+
3784
+
3785
+
3786
+
3787
+
3788
+
3789
+
3790
+
3791
+
3792
+
3793
+
3794
+
3795
+
3796
+
3797
+
3798
+
3799
+
3800
+
3801
+
3802
+
3803
+
3804
+
3805
+
3806
+
3807
+
3808
+
3809
+
3810
+
3811
+
3812
+
3813
+
3814
+
3815
+
3816
+
3817
+
3818
+
3819
+
3820
+
3821
+
3822
+
3823
+
3824
+
3825
+
3826
+
3827
+
3828
+
3829
+
3830
+
3831
+
3832
+
3833
+
3834
+
3835
+
3836
+
3837
+
3838
+
3839
+
3840
+
3841
+
3842
+
3843
+
3844
+
3845
+
3846
+
3847
+
3848
+
3849
+
3850
+
3851
+
3852
+
3853
+
3854
+
3855
+
3856
+
3857
+
3858
+
3859
+
3860
+
3861
+
3862
+
3863
+
3864
+
3865
+
3866
+
3867
+
3868
+
3869
+
3870
+
3871
+
3872
+
3873
+
3874
+
3875
+
3876
+
3877
+
3878
+
3879
+
3880
+
3881
+
3882
+
3883
+
3884
+
3885
+
3886
+
3887
+
3888
+
3889
+
3890
+
3891
+
3892
+
3893
+
3894
+
3895
+
3896
+
3897
+
3898
+
3899
+
3900
+
3901
+
3902
+
3903
+
3904
+
3905
+
3906
+
3907
+
3908
+
3909
+
3910
+
3911
+
3912
+
3913
+
3914
+
3915
+
3916
+
3917
+
3918
+
3919
+
3920
+
3921
+
3922
+
3923
+
3924
+
3925
+
3926
+
3927
+
3928
+
3929
+
3930
+
3931
+
3932
+
3933
+
3934
+
3935
+
3936
+
3937
+
3938
+
3939
+
3940
+
3941
+
3942
+
3943
+
3944
+
3945
+
3946
+
3947
+
3948
+
3949
+
3950
+
3951
+
3952
+
3953
+
3954
+
3955
+
3956
+
3957
+
3958
+
3959
+
3960
+
3961
+
3962
+
3963
+
3964
+
3965
+
3966
+
3967
+
3968
+
3969
+
3970
+
3971
+
3972
+
3973
+
3974
+
3975
+
3976
+
3977
+
3978
+
3979
+
3980
+
3981
+
3982
+
3983
+
3984
+
3985
+
3986
+
3987
+
3988
+
3989
+
3990
+
3991
+
3992
+
3993
+
3994
+
3995
+
3996
+
3997
+
3998
+
3999
+
4000
+
4001
+
4002
+
4003
+
4004
+
4005
+
4006
+
4007
+
4008
+
4009
+
4010
+
4011
+
4012
+
4013
+ ��
4014
+
4015
+
4016
+
4017
+
4018
+
4019
+
4020
+
4021
+
4022
+
4023
+
4024
+
4025
+
4026
+
4027
+
4028
+
4029
+
4030
+
4031
+
4032
+
4033
+
4034
+
4035
+
4036
+
4037
+
4038
+
4039
+
4040
+
4041
+
4042
+
4043
+
4044
+
4045
+
4046
+
4047
+
4048
+
4049
+
4050
+
4051
+
4052
+
4053
+
4054
+
4055
+
4056
+
4057
+
4058
+
4059
+
4060
+
4061
+
4062
+
4063
+
4064
+
4065
+
4066
+
4067
+
4068
+
4069
+
4070
+
4071
+
4072
+
4073
+
4074
+
4075
+
4076
+
4077
+
4078
+
4079
+
4080
+
4081
+
4082
+
4083
+
4084
+
4085
+
4086
+
4087
+
4088
+
4089
+
4090
+
4091
+
4092
+
4093
+
4094
+
4095
+
4096
+
4097
+
4098
+
4099
+
4100
+
4101
+
4102
+
4103
+
4104
+
4105
+
4106
+
4107
+
4108
+
4109
+
4110
+
4111
+
4112
+
4113
+
4114
+
4115
+
4116
+
4117
+
4118
+
4119
+
4120
+
4121
+
4122
+
4123
+
4124
+
4125
+
4126
+
4127
+
4128
+
4129
+
4130
+
4131
+
4132
+
4133
+
4134
+
4135
+
4136
+
4137
+
4138
+
4139
+
4140
+
4141
+
4142
+
4143
+
4144
+
4145
+
4146
+
4147
+
4148
+
4149
+
4150
+
4151
+
4152
+
4153
+
4154
+
4155
+
4156
+
4157
+
4158
+
4159
+
4160
+
4161
+
4162
+
4163
+
4164
+
4165
+
4166
+
4167
+
4168
+
4169
+
4170
+
4171
+
4172
+ 稿
4173
+
4174
+
4175
+
4176
+
4177
+
4178
+
4179
+
4180
+
4181
+ 穿
4182
+
4183
+
4184
+
4185
+
4186
+
4187
+
4188
+
4189
+
4190
+
4191
+
4192
+
4193
+
4194
+
4195
+
4196
+
4197
+
4198
+
4199
+
4200
+
4201
+ 窿
4202
+
4203
+
4204
+
4205
+
4206
+
4207
+
4208
+
4209
+
4210
+
4211
+
4212
+
4213
+
4214
+
4215
+
4216
+ 竿
4217
+
4218
+
4219
+
4220
+
4221
+
4222
+
4223
+
4224
+
4225
+
4226
+
4227
+
4228
+
4229
+
4230
+
4231
+
4232
+
4233
+
4234
+
4235
+
4236
+
4237
+
4238
+
4239
+
4240
+
4241
+
4242
+
4243
+
4244
+
4245
+
4246
+
4247
+
4248
+
4249
+
4250
+
4251
+
4252
+
4253
+
4254
+
4255
+
4256
+
4257
+
4258
+
4259
+
4260
+
4261
+
4262
+
4263
+
4264
+
4265
+
4266
+
4267
+
4268
+
4269
+
4270
+
4271
+
4272
+
4273
+
4274
+
4275
+
4276
+
4277
+
4278
+
4279
+
4280
+
4281
+
4282
+
4283
+
4284
+
4285
+
4286
+
4287
+ 簿
4288
+
4289
+
4290
+
4291
+
4292
+
4293
+
4294
+
4295
+
4296
+
4297
+
4298
+
4299
+
4300
+
4301
+
4302
+
4303
+
4304
+
4305
+
4306
+
4307
+
4308
+
4309
+
4310
+
4311
+
4312
+
4313
+
4314
+
4315
+
4316
+ 粿
4317
+
4318
+
4319
+
4320
+
4321
+
4322
+
4323
+
4324
+
4325
+
4326
+
4327
+
4328
+
4329
+
4330
+
4331
+
4332
+
4333
+
4334
+
4335
+
4336
+
4337
+
4338
+
4339
+
4340
+
4341
+
4342
+
4343
+
4344
+
4345
+
4346
+
4347
+
4348
+
4349
+
4350
+
4351
+
4352
+
4353
+
4354
+
4355
+
4356
+
4357
+
4358
+
4359
+
4360
+
4361
+
4362
+
4363
+
4364
+
4365
+
4366
+
4367
+
4368
+
4369
+
4370
+
4371
+
4372
+
4373
+
4374
+
4375
+
4376
+
4377
+ 线
4378
+
4379
+
4380
+
4381
+
4382
+
4383
+
4384
+
4385
+
4386
+
4387
+
4388
+
4389
+
4390
+
4391
+
4392
+
4393
+
4394
+
4395
+
4396
+
4397
+
4398
+
4399
+
4400
+
4401
+
4402
+
4403
+
4404
+
4405
+
4406
+
4407
+
4408
+
4409
+
4410
+
4411
+
4412
+
4413
+
4414
+
4415
+
4416
+
4417
+
4418
+
4419
+
4420
+
4421
+
4422
+
4423
+
4424
+
4425
+ 绿
4426
+
4427
+
4428
+
4429
+
4430
+
4431
+
4432
+
4433
+
4434
+
4435
+
4436
+
4437
+
4438
+
4439
+
4440
+
4441
+
4442
+
4443
+
4444
+
4445
+
4446
+
4447
+
4448
+
4449
+
4450
+
4451
+
4452
+
4453
+
4454
+
4455
+
4456
+
4457
+
4458
+
4459
+
4460
+
4461
+
4462
+
4463
+
4464
+
4465
+
4466
+
4467
+
4468
+
4469
+
4470
+
4471
+
4472
+
4473
+
4474
+
4475
+
4476
+
4477
+
4478
+
4479
+
4480
+
4481
+
4482
+
4483
+
4484
+
4485
+
4486
+
4487
+
4488
+
4489
+
4490
+ 羿
4491
+
4492
+
4493
+
4494
+
4495
+
4496
+
4497
+
4498
+
4499
+
4500
+
4501
+
4502
+
4503
+
4504
+
4505
+
4506
+
4507
+
4508
+ 耀
4509
+
4510
+
4511
+
4512
+
4513
+
4514
+
4515
+
4516
+
4517
+
4518
+
4519
+
4520
+
4521
+
4522
+
4523
+
4524
+
4525
+
4526
+
4527
+
4528
+
4529
+
4530
+
4531
+
4532
+
4533
+
4534
+
4535
+
4536
+
4537
+
4538
+
4539
+
4540
+
4541
+
4542
+
4543
+
4544
+
4545
+
4546
+
4547
+
4548
+
4549
+
4550
+
4551
+
4552
+
4553
+
4554
+
4555
+
4556
+
4557
+
4558
+
4559
+
4560
+
4561
+
4562
+
4563
+
4564
+
4565
+
4566
+
4567
+
4568
+
4569
+
4570
+
4571
+
4572
+
4573
+
4574
+
4575
+
4576
+
4577
+
4578
+
4579
+
4580
+
4581
+
4582
+
4583
+
4584
+
4585
+
4586
+
4587
+
4588
+
4589
+
4590
+
4591
+
4592
+
4593
+
4594
+
4595
+
4596
+
4597
+
4598
+
4599
+
4600
+
4601
+
4602
+
4603
+
4604
+
4605
+
4606
+
4607
+
4608
+
4609
+
4610
+
4611
+
4612
+
4613
+
4614
+
4615
+
4616
+
4617
+
4618
+
4619
+
4620
+
4621
+
4622
+
4623
+
4624
+
4625
+
4626
+
4627
+
4628
+
4629
+
4630
+
4631
+
4632
+
4633
+
4634
+
4635
+
4636
+
4637
+
4638
+
4639
+
4640
+
4641
+
4642
+
4643
+
4644
+
4645
+
4646
+
4647
+
4648
+
4649
+
4650
+
4651
+
4652
+
4653
+
4654
+
4655
+
4656
+
4657
+
4658
+
4659
+
4660
+
4661
+
4662
+
4663
+
4664
+
4665
+
4666
+
4667
+
4668
+
4669
+
4670
+
4671
+
4672
+
4673
+
4674
+
4675
+
4676
+
4677
+
4678
+
4679
+
4680
+
4681
+
4682
+
4683
+
4684
+
4685
+
4686
+
4687
+
4688
+
4689
+
4690
+
4691
+
4692
+
4693
+
4694
+
4695
+
4696
+
4697
+
4698
+
4699
+
4700
+
4701
+
4702
+
4703
+
4704
+
4705
+
4706
+
4707
+
4708
+
4709
+
4710
+
4711
+
4712
+
4713
+
4714
+
4715
+
4716
+
4717
+
4718
+
4719
+
4720
+
4721
+
4722
+
4723
+
4724
+
4725
+
4726
+
4727
+
4728
+
4729
+
4730
+
4731
+
4732
+
4733
+
4734
+
4735
+
4736
+
4737
+
4738
+
4739
+
4740
+
4741
+
4742
+
4743
+
4744
+
4745
+
4746
+
4747
+
4748
+
4749
+
4750
+
4751
+
4752
+
4753
+
4754
+
4755
+
4756
+
4757
+
4758
+
4759
+
4760
+
4761
+
4762
+
4763
+
4764
+
4765
+
4766
+
4767
+
4768
+
4769
+
4770
+
4771
+
4772
+
4773
+
4774
+
4775
+
4776
+
4777
+
4778
+
4779
+
4780
+
4781
+
4782
+
4783
+
4784
+
4785
+
4786
+
4787
+
4788
+
4789
+
4790
+
4791
+
4792
+
4793
+
4794
+
4795
+
4796
+
4797
+
4798
+
4799
+
4800
+
4801
+
4802
+
4803
+
4804
+
4805
+
4806
+
4807
+
4808
+
4809
+
4810
+
4811
+
4812
+
4813
+
4814
+
4815
+
4816
+
4817
+
4818
+
4819
+
4820
+
4821
+
4822
+
4823
+
4824
+
4825
+
4826
+
4827
+
4828
+
4829
+
4830
+
4831
+
4832
+
4833
+
4834
+
4835
+
4836
+
4837
+
4838
+
4839
+
4840
+
4841
+
4842
+
4843
+
4844
+
4845
+
4846
+
4847
+
4848
+
4849
+
4850
+
4851
+
4852
+
4853
+
4854
+
4855
+
4856
+
4857
+
4858
+
4859
+
4860
+
4861
+
4862
+
4863
+
4864
+
4865
+
4866
+
4867
+
4868
+
4869
+
4870
+
4871
+
4872
+
4873
+
4874
+
4875
+
4876
+
4877
+
4878
+
4879
+
4880
+
4881
+
4882
+
4883
+
4884
+
4885
+
4886
+
4887
+
4888
+
4889
+
4890
+
4891
+
4892
+
4893
+
4894
+
4895
+
4896
+
4897
+
4898
+
4899
+
4900
+
4901
+
4902
+
4903
+
4904
+
4905
+
4906
+
4907
+
4908
+
4909
+
4910
+
4911
+
4912
+
4913
+
4914
+
4915
+
4916
+
4917
+
4918
+
4919
+
4920
+
4921
+
4922
+
4923
+
4924
+
4925
+
4926
+
4927
+
4928
+
4929
+
4930
+
4931
+
4932
+
4933
+
4934
+
4935
+
4936
+
4937
+
4938
+
4939
+
4940
+
4941
+
4942
+
4943
+
4944
+
4945
+
4946
+
4947
+
4948
+
4949
+
4950
+
4951
+
4952
+
4953
+
4954
+
4955
+
4956
+
4957
+
4958
+
4959
+
4960
+
4961
+
4962
+
4963
+
4964
+
4965
+
4966
+
4967
+
4968
+
4969
+
4970
+
4971
+
4972
+
4973
+
4974
+
4975
+
4976
+
4977
+
4978
+
4979
+
4980
+
4981
+
4982
+
4983
+
4984
+
4985
+
4986
+
4987
+
4988
+
4989
+
4990
+
4991
+
4992
+
4993
+
4994
+
4995
+
4996
+
4997
+
4998
+
4999
+
5000
+
5001
+
5002
+
5003
+
5004
+
5005
+
5006
+
5007
+
5008
+
5009
+
5010
+
5011
+
5012
+
5013
+
5014
+
5015
+
5016
+
5017
+
5018
+
5019
+
5020
+
5021
+
5022
+
5023
+
5024
+
5025
+
5026
+
5027
+
5028
+
5029
+
5030
+
5031
+
5032
+
5033
+
5034
+
5035
+
5036
+
5037
+ ��
5038
+
5039
+
5040
+
5041
+
5042
+
5043
+
5044
+
5045
+
5046
+
5047
+
5048
+
5049
+
5050
+
5051
+
5052
+
5053
+
5054
+
5055
+
5056
+
5057
+
5058
+
5059
+
5060
+
5061
+
5062
+
5063
+
5064
+
5065
+
5066
+
5067
+
5068
+
5069
+
5070
+
5071
+
5072
+
5073
+
5074
+
5075
+
5076
+
5077
+
5078
+
5079
+
5080
+
5081
+
5082
+
5083
+
5084
+
5085
+
5086
+
5087
+
5088
+
5089
+
5090
+
5091
+
5092
+
5093
+
5094
+
5095
+
5096
+
5097
+
5098
+
5099
+
5100
+
5101
+
5102
+
5103
+
5104
+
5105
+
5106
+
5107
+
5108
+
5109
+
5110
+
5111
+
5112
+
5113
+
5114
+
5115
+
5116
+
5117
+
5118
+
5119
+
5120
+
5121
+
5122
+
5123
+
5124
+
5125
+
5126
+
5127
+
5128
+
5129
+
5130
+
5131
+
5132
+
5133
+
5134
+
5135
+
5136
+
5137
+
5138
+
5139
+
5140
+
5141
+
5142
+
5143
+ 西
5144
+
5145
+
5146
+
5147
+
5148
+
5149
+
5150
+
5151
+
5152
+
5153
+
5154
+
5155
+
5156
+
5157
+
5158
+
5159
+
5160
+
5161
+
5162
+
5163
+
5164
+
5165
+
5166
+
5167
+
5168
+
5169
+
5170
+
5171
+
5172
+
5173
+
5174
+
5175
+
5176
+
5177
+
5178
+
5179
+
5180
+
5181
+
5182
+
5183
+
5184
+
5185
+
5186
+
5187
+
5188
+
5189
+
5190
+
5191
+
5192
+
5193
+
5194
+
5195
+
5196
+
5197
+
5198
+
5199
+
5200
+
5201
+
5202
+
5203
+
5204
+ 访
5205
+
5206
+
5207
+
5208
+
5209
+
5210
+
5211
+
5212
+
5213
+
5214
+
5215
+
5216
+
5217
+
5218
+
5219
+
5220
+
5221
+
5222
+
5223
+
5224
+
5225
+
5226
+
5227
+
5228
+
5229
+
5230
+
5231
+
5232
+
5233
+
5234
+
5235
+
5236
+
5237
+
5238
+
5239
+
5240
+
5241
+
5242
+
5243
+
5244
+
5245
+
5246
+
5247
+
5248
+
5249
+
5250
+
5251
+
5252
+ 诿
5253
+
5254
+
5255
+
5256
+
5257
+
5258
+
5259
+
5260
+
5261
+
5262
+
5263
+
5264
+
5265
+
5266
+
5267
+
5268
+
5269
+
5270
+
5271
+
5272
+
5273
+
5274
+
5275
+
5276
+
5277
+
5278
+
5279
+
5280
+
5281
+
5282
+
5283
+
5284
+
5285
+
5286
+
5287
+
5288
+
5289
+
5290
+
5291
+
5292
+
5293
+
5294
+
5295
+
5296
+
5297
+
5298
+
5299
+
5300
+
5301
+
5302
+
5303
+
5304
+
5305
+
5306
+
5307
+
5308
+
5309
+
5310
+
5311
+
5312
+
5313
+
5314
+
5315
+
5316
+
5317
+
5318
+
5319
+
5320
+
5321
+
5322
+
5323
+
5324
+
5325
+
5326
+
5327
+
5328
+
5329
+
5330
+
5331
+
5332
+
5333
+
5334
+
5335
+
5336
+
5337
+
5338
+
5339
+
5340
+
5341
+
5342
+
5343
+
5344
+
5345
+ 贿
5346
+
5347
+
5348
+
5349
+
5350
+
5351
+
5352
+
5353
+
5354
+
5355
+
5356
+
5357
+
5358
+
5359
+
5360
+
5361
+
5362
+
5363
+
5364
+
5365
+
5366
+
5367
+
5368
+
5369
+
5370
+
5371
+
5372
+
5373
+
5374
+
5375
+
5376
+
5377
+
5378
+
5379
+
5380
+
5381
+
5382
+
5383
+
5384
+
5385
+
5386
+
5387
+
5388
+
5389
+
5390
+
5391
+
5392
+
5393
+
5394
+
5395
+
5396
+
5397
+
5398
+
5399
+
5400
+
5401
+
5402
+
5403
+
5404
+
5405
+
5406
+
5407
+
5408
+
5409
+
5410
+
5411
+
5412
+
5413
+
5414
+
5415
+
5416
+
5417
+
5418
+
5419
+
5420
+
5421
+
5422
+
5423
+
5424
+
5425
+
5426
+
5427
+
5428
+
5429
+
5430
+
5431
+
5432
+
5433
+
5434
+
5435
+
5436
+
5437
+
5438
+
5439
+
5440
+
5441
+
5442
+
5443
+
5444
+
5445
+
5446
+
5447
+
5448
+
5449
+ 蹿
5450
+
5451
+
5452
+
5453
+
5454
+
5455
+
5456
+
5457
+
5458
+
5459
+
5460
+
5461
+
5462
+
5463
+
5464
+
5465
+
5466
+
5467
+
5468
+
5469
+
5470
+
5471
+
5472
+
5473
+
5474
+
5475
+ 轿
5476
+
5477
+
5478
+
5479
+
5480
+
5481
+
5482
+
5483
+
5484
+
5485
+
5486
+
5487
+
5488
+
5489
+
5490
+
5491
+
5492
+
5493
+
5494
+
5495
+
5496
+
5497
+
5498
+
5499
+
5500
+
5501
+
5502
+
5503
+
5504
+
5505
+
5506
+
5507
+
5508
+
5509
+
5510
+
5511
+
5512
+
5513
+
5514
+
5515
+
5516
+
5517
+
5518
+
5519
+
5520
+
5521
+
5522
+
5523
+
5524
+
5525
+
5526
+
5527
+
5528
+
5529
+
5530
+
5531
+
5532
+
5533
+
5534
+
5535
+
5536
+
5537
+
5538
+
5539
+
5540
+ 退
5541
+
5542
+
5543
+
5544
+
5545
+
5546
+
5547
+
5548
+
5549
+
5550
+
5551
+
5552
+
5553
+
5554
+
5555
+
5556
+
5557
+
5558
+
5559
+
5560
+
5561
+
5562
+
5563
+
5564
+
5565
+
5566
+
5567
+
5568
+
5569
+
5570
+
5571
+
5572
+
5573
+
5574
+
5575
+
5576
+
5577
+
5578
+
5579
+
5580
+
5581
+
5582
+
5583
+
5584
+
5585
+
5586
+
5587
+
5588
+
5589
+
5590
+
5591
+
5592
+
5593
+
5594
+
5595
+
5596
+
5597
+
5598
+
5599
+
5600
+
5601
+
5602
+
5603
+
5604
+
5605
+
5606
+
5607
+
5608
+
5609
+
5610
+
5611
+
5612
+
5613
+
5614
+
5615
+
5616
+
5617
+
5618
+
5619
+
5620
+
5621
+
5622
+
5623
+
5624
+
5625
+
5626
+
5627
+
5628
+
5629
+
5630
+
5631
+
5632
+
5633
+
5634
+
5635
+
5636
+
5637
+
5638
+
5639
+
5640
+
5641
+
5642
+
5643
+
5644
+
5645
+
5646
+
5647
+
5648
+
5649
+
5650
+
5651
+
5652
+
5653
+
5654
+
5655
+
5656
+
5657
+
5658
+
5659
+
5660
+
5661
+
5662
+
5663
+
5664
+
5665
+
5666
+
5667
+
5668
+
5669
+
5670
+
5671
+
5672
+
5673
+
5674
+
5675
+
5676
+
5677
+
5678
+
5679
+
5680
+
5681
+
5682
+
5683
+
5684
+
5685
+
5686
+
5687
+
5688
+
5689
+
5690
+
5691
+
5692
+
5693
+
5694
+
5695
+
5696
+
5697
+
5698
+
5699
+
5700
+
5701
+
5702
+
5703
+
5704
+
5705
+
5706
+
5707
+
5708
+
5709
+
5710
+
5711
+
5712
+
5713
+
5714
+
5715
+
5716
+
5717
+
5718
+
5719
+
5720
+
5721
+
5722
+
5723
+
5724
+
5725
+
5726
+
5727
+
5728
+
5729
+
5730
+
5731
+
5732
+
5733
+
5734
+
5735
+
5736
+
5737
+
5738
+
5739
+
5740
+
5741
+
5742
+
5743
+
5744
+
5745
+
5746
+
5747
+
5748
+
5749
+
5750
+
5751
+
5752
+
5753
+
5754
+
5755
+
5756
+
5757
+
5758
+
5759
+
5760
+
5761
+
5762
+
5763
+
5764
+
5765
+
5766
+
5767
+
5768
+
5769
+
5770
+
5771
+
5772
+
5773
+
5774
+
5775
+
5776
+
5777
+
5778
+
5779
+
5780
+
5781
+
5782
+
5783
+
5784
+
5785
+
5786
+
5787
+
5788
+
5789
+
5790
+
5791
+
5792
+
5793
+
5794
+
5795
+
5796
+
5797
+
5798
+
5799
+
5800
+
5801
+
5802
+
5803
+
5804
+
5805
+
5806
+
5807
+
5808
+
5809
+
5810
+
5811
+
5812
+
5813
+
5814
+
5815
+
5816
+
5817
+
5818
+
5819
+
5820
+
5821
+
5822
+
5823
+
5824
+
5825
+
5826
+
5827
+
5828
+
5829
+
5830
+
5831
+
5832
+
5833
+
5834
+
5835
+
5836
+
5837
+
5838
+
5839
+
5840
+
5841
+
5842
+
5843
+
5844
+
5845
+
5846
+
5847
+
5848
+
5849
+
5850
+
5851
+
5852
+
5853
+
5854
+
5855
+
5856
+
5857
+
5858
+
5859
+
5860
+
5861
+
5862
+
5863
+
5864
+
5865
+
5866
+
5867
+
5868
+
5869
+
5870
+
5871
+
5872
+
5873
+
5874
+
5875
+
5876
+
5877
+
5878
+
5879
+
5880
+
5881
+
5882
+
5883
+
5884
+
5885
+
5886
+
5887
+
5888
+
5889
+
5890
+
5891
+
5892
+
5893
+
5894
+
5895
+
5896
+
5897
+
5898
+
5899
+
5900
+
5901
+
5902
+
5903
+
5904
+
5905
+
5906
+
5907
+
5908
+
5909
+
5910
+
5911
+
5912
+
5913
+
5914
+
5915
+
5916
+
5917
+
5918
+
5919
+
5920
+
5921
+
5922
+
5923
+
5924
+
5925
+
5926
+
5927
+
5928
+
5929
+
5930
+
5931
+
5932
+
5933
+
5934
+
5935
+
5936
+
5937
+
5938
+
5939
+
5940
+
5941
+
5942
+
5943
+
5944
+
5945
+
5946
+
5947
+
5948
+
5949
+
5950
+
5951
+
5952
+
5953
+
5954
+
5955
+
5956
+
5957
+
5958
+
5959
+
5960
+
5961
+
5962
+
5963
+
5964
+
5965
+
5966
+
5967
+
5968
+
5969
+
5970
+
5971
+
5972
+
5973
+
5974
+
5975
+
5976
+
5977
+
5978
+
5979
+
5980
+
5981
+
5982
+
5983
+
5984
+
5985
+
5986
+
5987
+
5988
+
5989
+
5990
+
5991
+
5992
+
5993
+
5994
+
5995
+
5996
+
5997
+
5998
+
5999
+
6000
+
6001
+
6002
+
6003
+
6004
+
6005
+
6006
+
6007
+
6008
+
6009
+
6010
+
6011
+
6012
+
6013
+
6014
+
6015
+
6016
+
6017
+
6018
+
6019
+
6020
+
6021
+
6022
+
6023
+
6024
+
6025
+
6026
+
6027
+
6028
+
6029
+
6030
+
6031
+
6032
+
6033
+
6034
+
6035
+
6036
+
6037
+
6038
+
6039
+
6040
+
6041
+
6042
+
6043
+
6044
+
6045
+
6046
+
6047
+
6048
+
6049
+
6050
+
6051
+
6052
+
6053
+
6054
+
6055
+
6056
+
6057
+
6058
+
6059
+
6060
+
6061
+ ��
6062
+
6063
+
6064
+
6065
+ 饿
6066
+
6067
+
6068
+
6069
+
6070
+
6071
+
6072
+
6073
+
6074
+
6075
+
6076
+
6077
+
6078
+
6079
+
6080
+
6081
+
6082
+
6083
+
6084
+
6085
+
6086
+
6087
+
6088
+
6089
+
6090
+
6091
+
6092
+
6093
+
6094
+
6095
+
6096
+
6097
+
6098
+
6099
+
6100
+
6101
+
6102
+
6103
+ 驿
6104
+
6105
+
6106
+
6107
+
6108
+
6109
+
6110
+
6111
+
6112
+
6113
+
6114
+
6115
+
6116
+
6117
+
6118
+
6119
+
6120
+
6121
+
6122
+
6123
+
6124
+
6125
+
6126
+
6127
+
6128
+
6129
+
6130
+
6131
+
6132
+
6133
+
6134
+
6135
+
6136
+
6137
+
6138
+
6139
+
6140
+
6141
+
6142
+
6143
+
6144
+
6145
+
6146
+
6147
+
6148
+
6149
+
6150
+
6151
+
6152
+
6153
+
6154
+
6155
+
6156
+
6157
+ 鱿
6158
+
6159
+
6160
+
6161
+
6162
+
6163
+
6164
+
6165
+
6166
+
6167
+
6168
+
6169
+
6170
+
6171
+
6172
+
6173
+
6174
+
6175
+
6176
+
6177
+
6178
+
6179
+
6180
+
6181
+
6182
+
6183
+
6184
+
6185
+
6186
+
6187
+
6188
+
6189
+
6190
+
6191
+
6192
+
6193
+
6194
+
6195
+
6196
+
6197
+
6198
+
6199
+
6200
+ 鸿
6201
+
6202
+
6203
+
6204
+
6205
+
6206
+
6207
+
6208
+
6209
+
6210
+
6211
+
6212
+
6213
+
6214
+
6215
+
6216
+
6217
+
6218
+
6219
+
6220
+
6221
+
6222
+ 鹿
6223
+
6224
+
6225
+
6226
+
6227
+
6228
+
6229
+
6230
+
6231
+
6232
+
6233
+
6234
+
6235
+
6236
+
6237
+
6238
+
6239
+
6240
+
6241
+
6242
+
6243
+
6244
+
6245
+
6246
+
6247
+
6248
+
6249
+
6250
+
6251
+
6252
+
6253
+
6254
+
6255
+
6256
+
6257
+
6258
+
6259
+
6260
+ 齿
6261
+
6262
+
6263
+
6264
+
6265
+
6266
+
6267
+
6268
+
6269
+
6270
+
6271
+
6272
+
6273
+
6274
+
6275
+
6276
+
6277
+
6278
+
6279
+
6280
+
6281
+
6282
+
6283
+
6284
+
6285
+
6286
+
6287
+
6288
+
6289
+
6290
+
6291
+
6292
+
6293
+
6294
+
6295
+
6296
+
6297
+
6298
+
6299
+
6300
+
6301
+
6302
+
6303
+
6304
+
6305
+
6306
+
6307
+
6308
+
6309
+
6310
+
6311
+
6312
+
6313
+
6314
+
6315
+
6316
+
6317
+
6318
+
6319
+
6320
+
6321
+
6322
+
6323
+
6324
+
6325
+
6326
+
6327
+
6328
+
6329
+
6330
+
6331
+
6332
+
6333
+
6334
+
6335
+
6336
+
6337
+
6338
+
6339
+
6340
+
6341
+
6342
+
6343
+
6344
+
6345
+
6346
+
6347
+
6348
+
6349
+
6350
+
6351
+
6352
+ ︿
6353
+
6354
+
6355
+
6356
+
6357
+
6358
+
6359
+
6360
+
6361
+
6362
+
6363
+
6364
+
6365
+
6366
+
6367
+
6368
+
6369
+
6370
+
6371
+
6372
+
6373
+
6374
+
6375
+
6376
+
6377
+
6378
+
6379
+
6380
+
6381
+
6382
+
6383
+
6384
+
6385
+
6386
+
6387
+
6388
+
6389
+
6390
+ ...
6391
+ yam
6392
+ lofter
6393
+ ##s
6394
+ by
6395
+ ##0
6396
+ com
6397
+ ##a
6398
+ ##2
6399
+ ##1
6400
+ ##3
6401
+ ##e
6402
+ ##8
6403
+ ##5
6404
+ ##6
6405
+ ##4
6406
+ ##9
6407
+ ##7
6408
+ ##t
6409
+ ##o
6410
+ ##d
6411
+ ##i
6412
+ ##n
6413
+ app
6414
+ www
6415
+ the
6416
+ ##m
6417
+ ##c
6418
+ ##l
6419
+ ##y
6420
+ ##r
6421
+ ##g
6422
+ http
6423
+ qq
6424
+ ##p
6425
+ ##f
6426
+ google
6427
+ pixnet
6428
+ cookies
6429
+ tripadvisor
6430
+ ##er
6431
+ ##k
6432
+ ##h
6433
+ facebook
6434
+ ##b
6435
+ of
6436
+ ##x
6437
+ ##u
6438
+ iphone
6439
+ ip
6440
+ in
6441
+ ##w
6442
+ ##ing
6443
+ ctrip
6444
+ ##on
6445
+ ##v
6446
+ to
6447
+ id
6448
+ it
6449
+ windows
6450
+ llc
6451
+ top
6452
+ led
6453
+ at
6454
+ ##an
6455
+ ##z
6456
+ android
6457
+ and
6458
+ vr
6459
+ blogthis
6460
+ twitter
6461
+ ##le
6462
+ ok
6463
+ cn
6464
+ no
6465
+ ios
6466
+ ##in
6467
+ ##mm
6468
+ on
6469
+ te
6470
+ ig
6471
+ lv
6472
+ ##ng
6473
+ ##us
6474
+ pc
6475
+ ──
6476
+ ##te
6477
+ ##ed
6478
+ html
6479
+ ncc
6480
+ wifi
6481
+ email
6482
+ blog
6483
+ is
6484
+ mail
6485
+ online
6486
+ ##al
6487
+ dvd
6488
+ ##ic
6489
+ studio
6490
+ ##℃
6491
+ ##ia
6492
+ line
6493
+ vip
6494
+ ##q
6495
+ ##ce
6496
+ ##en
6497
+ for
6498
+ ##is
6499
+ ##ra
6500
+ ##es
6501
+ ##j
6502
+ usb
6503
+ net
6504
+ cp
6505
+ asia
6506
+ ##cm
6507
+ diy
6508
+ new
6509
+ ta
6510
+ language
6511
+ vs
6512
+ apple
6513
+ tw
6514
+ web
6515
+ ##ne
6516
+ ipad
6517
+ you
6518
+ ##re
6519
+ ##tion
6520
+ ps
6521
+ de
6522
+ bt
6523
+ pony
6524
+ atm
6525
+ ##ch
6526
+ ceo
6527
+ ##or
6528
+ go
6529
+ ##na
6530
+ av
6531
+ pro
6532
+ cafe
6533
+ pinterest
6534
+ pixstyleme3c
6535
+ ##ta
6536
+ more
6537
+ said
6538
+ mp3
6539
+ ##ll
6540
+ nba
6541
+ jun
6542
+ tv
6543
+ pm
6544
+ nbsp
6545
+ ##ie
6546
+ linux
6547
+ ##ma
6548
+ cd
6549
+ hd
6550
+ ##ion
6551
+ am
6552
+ ##th
6553
+ ##st
6554
+ ##se
6555
+ ##et
6556
+ gdp
6557
+ my
6558
+ abc
6559
+ flash
6560
+ one
6561
+ ##ck
6562
+ gps
6563
+ ##ly
6564
+ web885
6565
+ ##ge
6566
+ xd
6567
+ boss
6568
+ isbn
6569
+ org
6570
+ ##ry
6571
+ me
6572
+ love
6573
+ ##ter
6574
+ ##ar
6575
+ ##la
6576
+ hotel
6577
+ pk
6578
+ ie
6579
+ ##os
6580
+ ##el
6581
+ seo
6582
+ cpu
6583
+ ##ml
6584
+ p2p
6585
+ may
6586
+ sun
6587
+ tue
6588
+ internet
6589
+ cc
6590
+ posted
6591
+ youtube
6592
+ ##at
6593
+ ##man
6594
+ ii
6595
+ abs
6596
+ nt
6597
+ pdf
6598
+ yahoo
6599
+ ago
6600
+ ##it
6601
+ news
6602
+ mac
6603
+ ##me
6604
+ java
6605
+ spa
6606
+ ##de
6607
+ ##nt
6608
+ hk
6609
+ all
6610
+ plus
6611
+ la
6612
+ ##mb
6613
+ ##ve
6614
+ west
6615
+ ##da
6616
+ air
6617
+ ##ps
6618
+ ##to
6619
+ logo
6620
+ htc
6621
+ php
6622
+ https
6623
+ fi
6624
+ momo
6625
+ ##son
6626
+ sat
6627
+ ##ke
6628
+ ebd
6629
+ suv
6630
+ wi
6631
+ day
6632
+ apk
6633
+ ##um
6634
+ mv
6635
+ galaxy
6636
+ wiki
6637
+ or
6638
+ brake
6639
+ this
6640
+ mon
6641
+ po
6642
+ javascript
6643
+ life
6644
+ home
6645
+ june
6646
+ ##ss
6647
+ system
6648
+ pp
6649
+ world
6650
+ fb
6651
+ br
6652
+ ##as
6653
+ ic
6654
+ ai
6655
+ leonardo
6656
+ safari
6657
+ live
6658
+ free
6659
+ xx
6660
+ wed
6661
+ win7
6662
+ kiehl
6663
+ ##co
6664
+ lg
6665
+ o2o
6666
+ ##go
6667
+ us
6668
+ mm
6669
+ vfm
6670
+ kanye
6671
+ ##id
6672
+ jr
6673
+ ##ey
6674
+ rss
6675
+ ##sa
6676
+ ##ro
6677
+ ##am
6678
+ ##no
6679
+ thu
6680
+ fri
6681
+ ##sh
6682
+ ##ki
6683
+ comments
6684
+ name
6685
+ ##pe
6686
+ ##ine
6687
+ max
6688
+ uber
6689
+ ##mi
6690
+ ##ton
6691
+ wordpress
6692
+ office
6693
+ ##ment
6694
+ bd
6695
+ win10
6696
+ ##ld
6697
+ ##li
6698
+ gmail
6699
+ bb
6700
+ dior
6701
+ ##rs
6702
+ ##ri
6703
+ ##rd
6704
+ up
6705
+ cad
6706
+ dr
6707
+ read
6708
+ ##io
6709
+ url
6710
+ pvc
6711
+ paypal
6712
+ show
6713
+ policy
6714
+ ##ty
6715
+ with
6716
+ txt
6717
+ ##ba
6718
+ dna
6719
+ from
6720
+ post
6721
+ mini
6722
+ ar
6723
+ taiwan
6724
+ john
6725
+ ##ga
6726
+ privacy
6727
+ agoda
6728
+ ##ny
6729
+ word
6730
+ ##by
6731
+ ##ur
6732
+ ##hz
6733
+ ##ang
6734
+ cookie
6735
+ netscape
6736
+ ##ka
6737
+ ##~
6738
+ ##ad
6739
+ house
6740
+ share
6741
+ note
6742
+ ibm
6743
+ code
6744
+ hello
6745
+ nike
6746
+ sim
6747
+ survey
6748
+ wikia
6749
+ cbc
6750
+ ##tor
6751
+ ##kg
6752
+ ##rt
6753
+ campaign
6754
+ store
6755
+ os
6756
+ ##ct
6757
+ ##ts
6758
+ ##°
6759
+ api
6760
+ ##ns
6761
+ excel
6762
+ ##ao
6763
+ ##nd
6764
+ university
6765
+ ##ya
6766
+ ##il
6767
+ pierre
6768
+ ipo
6769
+ hotels
6770
+ ##ian
6771
+ years
6772
+ ##ers
6773
+ high
6774
+ ##day
6775
+ time
6776
+ ##ay
6777
+ bug
6778
+ ##line
6779
+ ##be
6780
+ xp
6781
+ talk2yam
6782
+ yamservice
6783
+ coco
6784
+ ##dy
6785
+ sony
6786
+ ##ies
6787
+ microsoft
6788
+ david
6789
+ people
6790
+ ##ha
6791
+ instagram
6792
+ intel
6793
+ ##ot
6794
+ iso
6795
+ ##va
6796
+ ##mo
6797
+ ##land
6798
+ xxx
6799
+ man
6800
+ co
6801
+ ltxsw
6802
+ ##ation
6803
+ baby
6804
+ ##pa
6805
+ ##ol
6806
+ tag
6807
+ ##ue
6808
+ msn
6809
+ oppo
6810
+ ##ca
6811
+ control
6812
+ ##om
6813
+ st
6814
+ chrome
6815
+ ##ure
6816
+ be
6817
+ lol
6818
+ ##bo
6819
+ lady
6820
+ ##way
6821
+ ##ko
6822
+ ##do
6823
+ ##un
6824
+ corporation
6825
+ ##ni
6826
+ herme
6827
+ ##up
6828
+ ui
6829
+ ##ds
6830
+ ppt
6831
+ admin
6832
+ three
6833
+ bbc
6834
+ re
6835
+ ca
6836
+ hp
6837
+ ##ee
6838
+ tpp
6839
+ ##ive
6840
+ root
6841
+ ##cc
6842
+ ##ble
6843
+ ##ity
6844
+ adobe
6845
+ park
6846
+ et
6847
+ oled
6848
+ city
6849
+ ##ex
6850
+ ##ler
6851
+ ##ap
6852
+ china
6853
+ ##book
6854
+ view
6855
+ ##ice
6856
+ global
6857
+ ##km
6858
+ your
6859
+ hong
6860
+ ##mg
6861
+ out
6862
+ ##ms
6863
+ ng
6864
+ ebay
6865
+ menu
6866
+ ubuntu
6867
+ ##cy
6868
+ rom
6869
+ ##view
6870
+ open
6871
+ ktv
6872
+ do
6873
+ server
6874
+ ##lo
6875
+ if
6876
+ english
6877
+ ##oo
6878
+ step1
6879
+ kong
6880
+ club
6881
+ july
6882
+ inc
6883
+ mr
6884
+ hi
6885
+ ##net
6886
+ touch
6887
+ ##ls
6888
+ ##ii
6889
+ michael
6890
+ lcd
6891
+ phone
6892
+ james
6893
+ step2
6894
+ ios9
6895
+ ##box
6896
+ dc
6897
+ ##ley
6898
+ samsung
6899
+ pokemon
6900
+ css
6901
+ ##ent
6902
+ ##les
6903
+ s8
6904
+ atom
6905
+ play
6906
+ bmw
6907
+ ##said
6908
+ sa
6909
+ etf
6910
+ ctrl
6911
+ adidas
6912
+ amazon
6913
+ ##ber
6914
+ ##ner
6915
+ visa
6916
+ ##der
6917
+ connectivity
6918
+ ##hi
6919
+ firefox
6920
+ hr
6921
+ so
6922
+ style
6923
+ mark
6924
+ pop
6925
+ ol
6926
+ skip
6927
+ as
6928
+ ##ir
6929
+ mba
6930
+ ##ai
6931
+ le
6932
+ ##ver
6933
+ cafe2017
6934
+ lte
6935
+ super
6936
+ ##ron
6937
+ amd
6938
+ like
6939
+ are
6940
+ ##ster
6941
+ we
6942
+ ##sk
6943
+ paul
6944
+ data
6945
+ international
6946
+ ##ft
6947
+ longchamp
6948
+ ssd
6949
+ good
6950
+ ##ti
6951
+ reply
6952
+ ##my
6953
+ apr
6954
+ star
6955
+ ##ker
6956
+ source
6957
+ js
6958
+ get
6959
+ force
6960
+ photo
6961
+ ##one
6962
+ ##ow
6963
+ link
6964
+ bbs
6965
+ goods
6966
+ ##lin
6967
+ python
6968
+ ##ip
6969
+ game
6970
+ ##ics
6971
+ blue
6972
+ page
6973
+ itunes
6974
+ gt
6975
+ gif
6976
+ ##ff
6977
+ group
6978
+ about
6979
+ bar
6980
+ ganji
6981
+ ##nce
6982
+ music
6983
+ lee
6984
+ not
6985
+ ##per
6986
+ an
6987
+ faq
6988
+ comment
6989
+ days
6990
+ ##ock
6991
+ ##bs
6992
+ v1
6993
+ player
6994
+ xbox
6995
+ sql
6996
+ fm
6997
+ f1
6998
+ ##ah
6999
+ ##lv
7000
+ ##mp
7001
+ melody
7002
+ xml
7003
+ market
7004
+ ##au
7005
+ what
7006
+ gl
7007
+ ##age
7008
+ tips
7009
+ book
7010
+ ##ting
7011
+ mysql
7012
+ can
7013
+ ##ung
7014
+ wonderland
7015
+ watch
7016
+ ##ction
7017
+ mar
7018
+ mobile
7019
+ article
7020
+ ##db
7021
+ part
7022
+ party
7023
+ ##ore
7024
+ ##op
7025
+ dj
7026
+ main
7027
+ ##ong
7028
+ art
7029
+ ad
7030
+ pm2
7031
+ japan
7032
+ ts
7033
+ ##ica
7034
+ der
7035
+ sm
7036
+ ##wa
7037
+ ct
7038
+ homemesh
7039
+ search
7040
+ ##tv
7041
+ ##di
7042
+ macbook
7043
+ service
7044
+ type
7045
+ ##ier
7046
+ ##si
7047
+ ##ok
7048
+ best
7049
+ goris
7050
+ lock
7051
+ cf
7052
+ big
7053
+ ##ut
7054
+ ftp
7055
+ carol
7056
+ ##vi
7057
+ happy
7058
+ sd
7059
+ ##ac
7060
+ anti
7061
+ pe
7062
+ cnn
7063
+ iii
7064
+ esp
7065
+ jan
7066
+ tags
7067
+ august
7068
+ vol
7069
+ ##fs
7070
+ ##sion
7071
+ design
7072
+ ac
7073
+ press
7074
+ jordan
7075
+ ppp
7076
+ that
7077
+ key
7078
+ check
7079
+ ##tt
7080
+ ##㎡
7081
+ ##lt
7082
+ power
7083
+ ##bc
7084
+ vivi
7085
+ he
7086
+ jpg
7087
+ ##rry
7088
+ nb
7089
+ ##ted
7090
+ ##rn
7091
+ usd
7092
+ ##t00
7093
+ master
7094
+ model
7095
+ al
7096
+ ram
7097
+ goo
7098
+ ##ui
7099
+ red
7100
+ ##ary
7101
+ rpg
7102
+ item
7103
+ ##pm
7104
+ ##za
7105
+ project
7106
+ hot
7107
+ td
7108
+ blogabstract
7109
+ ##ger
7110
+ gr2
7111
+ black
7112
+ electronic
7113
+ nfc
7114
+ year
7115
+ asus
7116
+ html5
7117
+ cindy
7118
+ ##hd
7119
+ m3
7120
+ esc
7121
+ ##od
7122
+ booking
7123
+ fed
7124
+ tvb
7125
+ ##ina
7126
+ mit
7127
+ chan
7128
+ distribution
7129
+ next
7130
+ peter
7131
+ bios
7132
+ steam
7133
+ cm
7134
+ pk10
7135
+ ##ix
7136
+ dec
7137
+ nasa
7138
+ ##ana
7139
+ icecat
7140
+ b1
7141
+ will
7142
+ li
7143
+ se
7144
+ ##ji
7145
+ ##ard
7146
+ oct
7147
+ ##ain
7148
+ jp
7149
+ ##ze
7150
+ ##bi
7151
+ cio
7152
+ smart
7153
+ h5
7154
+ ##port
7155
+ curve
7156
+ vpn
7157
+ ##nm
7158
+ ##dia
7159
+ utc
7160
+ rmvb
7161
+ chanel
7162
+ a4
7163
+ miss
7164
+ ##and
7165
+ ##im
7166
+ media
7167
+ who
7168
+ she
7169
+ girl
7170
+ vera
7171
+ class
7172
+ vivo
7173
+ king
7174
+ ##ei
7175
+ national
7176
+ ab
7177
+ ipod
7178
+ ap
7179
+ ms
7180
+ mp4
7181
+ msci
7182
+ ##po
7183
+ mg
7184
+ index
7185
+ ##bit
7186
+ ##out
7187
+ ##zz
7188
+ apec
7189
+ photoshop
7190
+ opec
7191
+ ##tes
7192
+ ##ast
7193
+ ○○
7194
+ ##ling
7195
+ ##ory
7196
+ ##ical
7197
+ kitty
7198
+ content
7199
+ step3
7200
+ ##cn
7201
+ win8
7202
+ vc
7203
+ iphone7
7204
+ robert
7205
+ tcl
7206
+ beauty
7207
+ en
7208
+ dollars
7209
+ ##ys
7210
+ ##oc
7211
+ step
7212
+ pay
7213
+ yy
7214
+ a1
7215
+ ##lly
7216
+ ##ks
7217
+ download
7218
+ sep
7219
+ exe
7220
+ ph
7221
+ school
7222
+ gb
7223
+ center
7224
+ pr
7225
+ street
7226
+ ##board
7227
+ uv
7228
+ ##lan
7229
+ winrar
7230
+ ##que
7231
+ ##ua
7232
+ ##com
7233
+ gpu
7234
+ ettoday
7235
+ fu
7236
+ tom
7237
+ ##ren
7238
+ ##via
7239
+ b2b
7240
+ ##tch
7241
+ rose
7242
+ arm
7243
+ mb
7244
+ ##ial
7245
+ ##nn
7246
+ nvidia
7247
+ step4
7248
+ mvp
7249
+ york
7250
+ how
7251
+ cpi
7252
+ gov
7253
+ kg
7254
+ joe
7255
+ ##xx
7256
+ mandy
7257
+ pa
7258
+ ##ser
7259
+ copyright
7260
+ fashion
7261
+ don
7262
+ ecu
7263
+ ##ist
7264
+ ##art
7265
+ erp
7266
+ wap
7267
+ have
7268
+ ##lm
7269
+ talk
7270
+ ##ek
7271
+ ##ning
7272
+ ##if
7273
+ ch
7274
+ ##ite
7275
+ video
7276
+ cs
7277
+ san
7278
+ iot
7279
+ look
7280
+ ##ku
7281
+ october
7282
+ ##ux
7283
+ trump
7284
+ ##hs
7285
+ ##ide
7286
+ box
7287
+ first
7288
+ ##ins
7289
+ april
7290
+ ##ight
7291
+ angel
7292
+ protected
7293
+ aa
7294
+ x1
7295
+ m2
7296
+ ##fe
7297
+ ##×
7298
+ ##ho
7299
+ size
7300
+ min
7301
+ ofo
7302
+ fun
7303
+ gomaji
7304
+ ex
7305
+ hdmi
7306
+ food
7307
+ dns
7308
+ march
7309
+ chris
7310
+ kevin
7311
+ ##lla
7312
+ ##pp
7313
+ ##ec
7314
+ ag
7315
+ ems
7316
+ ##rm
7317
+ ##ham
7318
+ off
7319
+ asp
7320
+ team
7321
+ fandom
7322
+ ed
7323
+ ##ell
7324
+ info
7325
+ sina
7326
+ ##able
7327
+ ##ctor
7328
+ dll
7329
+ rights
7330
+ ltd
7331
+ idc
7332
+ jul
7333
+ ma
7334
+ surface
7335
+ mall
7336
+ eps
7337
+ green
7338
+ map
7339
+ space
7340
+ donald
7341
+ v2
7342
+ sodu
7343
+ ##light
7344
+ reserved
7345
+ htm
7346
+ ##han
7347
+ mod
7348
+ ##ise
7349
+ ##tions
7350
+ ti
7351
+ ##shi
7352
+ doc
7353
+ icp
7354
+ wang
7355
+ ##ram
7356
+ shopping
7357
+ aug
7358
+ ##pi
7359
+ ##well
7360
+ now
7361
+ wam
7362
+ b2
7363
+ ##hu
7364
+ ##gb
7365
+ f2
7366
+ mix
7367
+ ##ef
7368
+ ##uan
7369
+ bwl
7370
+ ##plus
7371
+ ##res
7372
+ core
7373
+ ##ess
7374
+ tea
7375
+ hktvmall
7376
+ nhk
7377
+ ##ate
7378
+ list
7379
+ ##ese
7380
+ feb
7381
+ inn
7382
+ nov
7383
+ daniel
7384
+ ##ci
7385
+ pass
7386
+ ##bet
7387
+ ##nk
7388
+ coffee
7389
+ ssl
7390
+ airbnb
7391
+ ##ute
7392
+ fbi
7393
+ woshipm
7394
+ skype
7395
+ ea
7396
+ cg
7397
+ sp
7398
+ ##fc
7399
+ ##www
7400
+ yes
7401
+ edge
7402
+ alt
7403
+ fpga
7404
+ ##ght
7405
+ ##gs
7406
+ iso9001
7407
+ ##ile
7408
+ ##wood
7409
+ ##uo
7410
+ image
7411
+ lin
7412
+ icon
7413
+ american
7414
+ ##em
7415
+ set
7416
+ says
7417
+ ##king
7418
+ ##tive
7419
+ blogger
7420
+ ##ox
7421
+ ##zy
7422
+ ##red
7423
+ ##ium
7424
+ ##lf
7425
+ nokia
7426
+ claire
7427
+ ##ding
7428
+ november
7429
+ lohas
7430
+ ##tic
7431
+ ##cs
7432
+ ##che
7433
+ ##ire
7434
+ ##gy
7435
+ ##ult
7436
+ db
7437
+ january
7438
+ win
7439
+ road
7440
+ ptt
7441
+ ##fa
7442
+ ##mer
7443
+ anna
7444
+ pchome
7445
+ udn
7446
+ ef
7447
+ ##time
7448
+ ##tte
7449
+ g20
7450
+ white
7451
+ garden
7452
+ eleven
7453
+ di
7454
+ chen
7455
+ young
7456
+ cosplay
7457
+ bat
7458
+ ##tra
7459
+ kindle
7460
+ npc
7461
+ steve
7462
+ etc
7463
+ ##ern
7464
+ call
7465
+ xperia
7466
+ ces
7467
+ travel
7468
+ sk
7469
+ s7
7470
+ ##ous
7471
+ ##int
7472
+ edu
7473
+ file
7474
+ cho
7475
+ qr
7476
+ ##car
7477
+ ##our
7478
+ ##ant
7479
+ eric
7480
+ rends
7481
+ ##jo
7482
+ mastercard
7483
+ kb
7484
+ ##min
7485
+ ##ino
7486
+ vista
7487
+ ##ris
7488
+ ##ud
7489
+ jack
7490
+ ##set
7491
+ pos
7492
+ ##her
7493
+ ##ou
7494
+ taipei
7495
+ beta
7496
+ ##fi
7497
+ express
7498
+ body
7499
+ ##ill
7500
+ aphojoy
7501
+ user
7502
+ december
7503
+ meiki
7504
+ ##ick
7505
+ tweet
7506
+ richard
7507
+ ##av
7508
+ iphone6
7509
+ ##dd
7510
+ views
7511
+ ##mark
7512
+ pd
7513
+ times
7514
+ level
7515
+ ##ash
7516
+ point
7517
+ ##ome
7518
+ koreanmall
7519
+ ##ak
7520
+ george
7521
+ q2
7522
+ wma
7523
+ tcp
7524
+ full
7525
+ mlb
7526
+ ##lle
7527
+ ##watch
7528
+ tm
7529
+ run
7530
+ smith
7531
+ business
7532
+ ##und
7533
+ color
7534
+ ##tal
7535
+ ##less
7536
+ moon
7537
+ ##rl
7538
+ update
7539
+ pcb
7540
+ shop
7541
+ little
7542
+ end
7543
+ ##mhz
7544
+ van
7545
+ dsp
7546
+ easy
7547
+ ##house
7548
+ ##key
7549
+ history
7550
+ oh
7551
+ ##hy
7552
+ ##web
7553
+ oem
7554
+ let
7555
+ was
7556
+ ##gg
7557
+ review
7558
+ ##wan
7559
+ ##°c
7560
+ uc
7561
+ title
7562
+ ##val
7563
+ united
7564
+ ##ons
7565
+ doi
7566
+ trivago
7567
+ overdope
7568
+ sbs
7569
+ ##ance
7570
+ grand
7571
+ special
7572
+ imf
7573
+ wx17house
7574
+ ##so
7575
+ audi
7576
+ ##he
7577
+ london
7578
+ william
7579
+ ##rp
7580
+ ##ake
7581
+ science
7582
+ beach
7583
+ cfa
7584
+ amp
7585
+ ps4
7586
+ ##link
7587
+ ##hp
7588
+ crm
7589
+ ferragamo
7590
+ bell
7591
+ make
7592
+ ##eng
7593
+ under
7594
+ zh
7595
+ photos
7596
+ ##style
7597
+ via
7598
+ da
7599
+ ##gi
7600
+ company
7601
+ i7
7602
+ ##ray
7603
+ thomas
7604
+ ufo
7605
+ i5
7606
+ ##max
7607
+ plc
7608
+ ben
7609
+ back
7610
+ research
7611
+ mike
7612
+ ##pc
7613
+ september
7614
+ ##ace
7615
+ vps
7616
+ february
7617
+ pantos
7618
+ wp
7619
+ lisa
7620
+ jquery
7621
+ night
7622
+ long
7623
+ offer
7624
+ ##berg
7625
+ ##news
7626
+ ray
7627
+ fks
7628
+ wto
7629
+ over
7630
+ ##all
7631
+ ##rus
7632
+ ##works
7633
+ blogtitle
7634
+ loftpermalink
7635
+ martin
7636
+ test
7637
+ ling
7638
+ km
7639
+ fda
7640
+ v3
7641
+ ##ja
7642
+ outlet
7643
+ family
7644
+ ##ea
7645
+ ##top
7646
+ story
7647
+ ##ness
7648
+ salvatore
7649
+ ##lu
7650
+ swift
7651
+ room
7652
+ oracle
7653
+ ##ul
7654
+ sam
7655
+ b2c
7656
+ week
7657
+ pi
7658
+ rock
7659
+ ##ean
7660
+ ##gle
7661
+ cctv
7662
+ after
7663
+ chinese
7664
+ ##back
7665
+ powered
7666
+ x2
7667
+ ##tan
7668
+ ##nes
7669
+ canon
7670
+ only
7671
+ ##zi
7672
+ ##las
7673
+ say
7674
+ ##oe
7675
+ ##sd
7676
+ ##bot
7677
+ ##world
7678
+ ##zo
7679
+ sky
7680
+ made
7681
+ top100
7682
+ just
7683
+ pmi
7684
+ gap
7685
+ ##vr
7686
+ les
7687
+ ball
7688
+ vogue
7689
+ vi
7690
+ ing
7691
+ ofweek
7692
+ cos
7693
+ ##list
7694
+ ##ort
7695
+ ##lon
7696
+ last
7697
+ ##tc
7698
+ ##of
7699
+ ##bus
7700
+ ##gen
7701
+ real
7702
+ eva
7703
+ a3
7704
+ nas
7705
+ ##lie
7706
+ ##ria
7707
+ ##coin
7708
+ ##bt
7709
+ his
7710
+ cat
7711
+ nata
7712
+ vive
7713
+ health
7714
+ drive
7715
+ sir
7716
+ du
7717
+ cup
7718
+ ##ook
7719
+ ##sy
7720
+ alex
7721
+ msg
7722
+ tour
7723
+ ##word
7724
+ ebooks
7725
+ r8
7726
+ block
7727
+ nice
7728
+ pvp
7729
+ months
7730
+ rewards
7731
+ ##ther
7732
+ ##xi
7733
+ ##sc
7734
+ micro
7735
+ gg
7736
+ blogfp
7737
+ op
7738
+ daily
7739
+ m1
7740
+ true
7741
+ ##bb
7742
+ ml
7743
+ ##tar
7744
+ ##ky
7745
+ anthony
7746
+ ##yo
7747
+ state
7748
+ ##ara
7749
+ ##aa
7750
+ ##rc
7751
+ ##tz
7752
+ ##ston
7753
+ gear
7754
+ ##eo
7755
+ ##ade
7756
+ ge
7757
+ see
7758
+ ##win
7759
+ ##ura
7760
+ ss
7761
+ heart
7762
+ ##den
7763
+ ##ita
7764
+ down
7765
+ ##sm
7766
+ el
7767
+ png
7768
+ rakuten
7769
+ whatsapp
7770
+ bay
7771
+ dream
7772
+ add
7773
+ ##use
7774
+ pad
7775
+ gucci
7776
+ mpv
7777
+ ##ode
7778
+ ##fo
7779
+ island
7780
+ jason
7781
+ chicago
7782
+ ##hone
7783
+ io
7784
+ sogo
7785
+ be2
7786
+ ##ology
7787
+ cloud
7788
+ vcd
7789
+ ##con
7790
+ ##ford
7791
+ ##joy
7792
+ ##kb
7793
+ ##rade
7794
+ but
7795
+ ##ach
7796
+ docker
7797
+ ##ful
7798
+ rfid
7799
+ ul
7800
+ ##ase
7801
+ hit
7802
+ ford
7803
+ ##star
7804
+ a2
7805
+ sdk
7806
+ reading
7807
+ edited
7808
+ ##are
7809
+ cmos
7810
+ ##mc
7811
+ siri
7812
+ light
7813
+ ##ella
7814
+ bloomberg
7815
+ ##read
7816
+ pizza
7817
+ ##ison
7818
+ jimmy
7819
+ ##vm
7820
+ college
7821
+ node
7822
+ journal
7823
+ ba
7824
+ ##play
7825
+ ##cer
7826
+ magic
7827
+ ##yu
7828
+ jump
7829
+ tt
7830
+ ##ings
7831
+ asr
7832
+ ##lia
7833
+ step5
7834
+ network
7835
+ ##cd
7836
+ mc
7837
+ pixstyleme
7838
+ money
7839
+ bl
7840
+ act
7841
+ ##tus
7842
+ tokyo
7843
+ ##rial
7844
+ ##life
7845
+ emba
7846
+ ##ae
7847
+ saas
7848
+ tcs
7849
+ ##rk
7850
+ ##wang
7851
+ summer
7852
+ ##sp
7853
+ ko
7854
+ ##ving
7855
+ premium
7856
+ netflix
7857
+ uk
7858
+ mt
7859
+ ##lton
7860
+ right
7861
+ frank
7862
+ two
7863
+ ##ple
7864
+ ##cal
7865
+ ##sen
7866
+ ##ville
7867
+ hold
7868
+ nexus
7869
+ dd
7870
+ ##ius
7871
+ ##mah
7872
+ tila
7873
+ zero
7874
+ ce
7875
+ ##tin
7876
+ resort
7877
+ ##ws
7878
+ charles
7879
+ old
7880
+ p10
7881
+ report
7882
+ ##ru
7883
+ bus
7884
+ vans
7885
+ lt
7886
+ ##est
7887
+ pv
7888
+ links
7889
+ rebecca
7890
+ ##dm
7891
+ azure
7892
+ limited
7893
+ bit
7894
+ ##mon
7895
+ moto
7896
+ ##eam
7897
+ var
7898
+ eos
7899
+ blogspot
7900
+ e3
7901
+ dos
7902
+ dm
7903
+ fc
7904
+ ##ments
7905
+ ##ik
7906
+ ##kw
7907
+ boy
7908
+ ##bin
7909
+ ##ata
7910
+ er
7911
+ ##vin
7912
+ ##tu
7913
+ ##ula
7914
+ station
7915
+ ##ature
7916
+ files
7917
+ zara
7918
+ hdr
7919
+ top10
7920
+ nature
7921
+ magazine
7922
+ s6
7923
+ marriott
7924
+ avira
7925
+ case
7926
+ tab
7927
+ ##ran
7928
+ tony
7929
+ ##home
7930
+ oculus
7931
+ im
7932
+ ##ral
7933
+ jean
7934
+ saint
7935
+ cry
7936
+ rosie
7937
+ ##force
7938
+ ##ini
7939
+ ice
7940
+ ##bert
7941
+ ##nder
7942
+ ##mber
7943
+ pet
7944
+ plurk
7945
+ ##sis
7946
+ ##ence
7947
+ tim
7948
+ ##nc
7949
+ ##name
7950
+ log
7951
+ ips
7952
+ great
7953
+ ikea
7954
+ malaysia
7955
+ unix
7956
+ ##ncy
7957
+ ##nie
7958
+ akb48
7959
+ ##ye
7960
+ ##oid
7961
+ ##chi
7962
+ oa
7963
+ xuehai
7964
+ ##orm
7965
+ ##rf
7966
+ ##ware
7967
+ ho
7968
+ ##pro
7969
+ text
7970
+ ##era
7971
+ bob
7972
+ ##ub
7973
+ scp
7974
+ avi
7975
+ ##zen
7976
+ mi
7977
+ wu
7978
+ museum
7979
+ qvod
7980
+ apache
7981
+ lake
7982
+ jcb
7983
+ ni
7984
+ ##hr
7985
+ hill
7986
+ ne
7987
+ weibo
7988
+ ruby
7989
+ ##row
7990
+ iv
7991
+ ##ish
7992
+ github
7993
+ mate
7994
+ ##lot
7995
+ ##ane
7996
+ andrew
7997
+ ##tina
7998
+ t1
7999
+ rf
8000
+ ed2k
8001
+ ##vel
8002
+ way
8003
+ final
8004
+ ns
8005
+ sweet
8006
+ bytes
8007
+ ##ene
8008
+ ##cker
8009
+ ##px
8010
+ topapp
8011
+ helpapp
8012
+ rs
8013
+ low
8014
+ g4g
8015
+ care
8016
+ ldquo
8017
+ ##fork
8018
+ leave
8019
+ rm
8020
+ edition
8021
+ ##gan
8022
+ ##zon
8023
+ ##qq
8024
+ ##google
8025
+ ##ism
8026
+ gold
8027
+ explorer
8028
+ ##zer
8029
+ toyota
8030
+ category
8031
+ select
8032
+ visual
8033
+ ##labels
8034
+ restaurant
8035
+ ##md
8036
+ posts
8037
+ s1
8038
+ ##ico
8039
+ angelababy
8040
+ sports
8041
+ s3
8042
+ mbc
8043
+ shell
8044
+ x86
8045
+ candy
8046
+ ##new
8047
+ kbs
8048
+ face
8049
+ xl
8050
+ ##here
8051
+ swissinfo
8052
+ v8
8053
+ dram
8054
+ ##ual
8055
+ ##vice
8056
+ ##wer
8057
+ sport
8058
+ q1
8059
+ ios10
8060
+ public
8061
+ int
8062
+ card
8063
+ ep
8064
+ au
8065
+ rt
8066
+ bill
8067
+ ##mll
8068
+ kim
8069
+ wan
8070
+ ##uk
8071
+ x3
8072
+ scott
8073
+ ##ming
8074
+ e5
8075
+ h7n9
8076
+ worldcat
8077
+ brown
8078
+ ##vo
8079
+ ##led
8080
+ ##ax
8081
+ ##ert
8082
+ paris
8083
+ polo
8084
+ ##lr
8085
+ capital
8086
+ ##hing
8087
+ bank
8088
+ cv
8089
+ ##chat
8090
+ adc
8091
+ ##ule
8092
+ digital
8093
+ hotmail
8094
+ ##pad
8095
+ bbq
8096
+ quot
8097
+ ##ring
8098
+ before
8099
+ wali
8100
+ mcu
8101
+ costco
8102
+ north
8103
+ switch
8104
+ ##city
8105
+ philips
8106
+ ##mann
8107
+ management
8108
+ panasonic
8109
+ ##cl
8110
+ ##vd
8111
+ ##ping
8112
+ ##rge
8113
+ alice
8114
+ ##lk
8115
+ css3
8116
+ ##ney
8117
+ vision
8118
+ alpha
8119
+ ##ular
8120
+ ##tter
8121
+ lz
8122
+ mode
8123
+ gre
8124
+ pci
8125
+ ##tm
8126
+ ##yan
8127
+ ##let
8128
+ work
8129
+ war
8130
+ coach
8131
+ ah
8132
+ mary
8133
+ huang
8134
+ ##pt
8135
+ a8
8136
+ pt
8137
+ follow
8138
+ ##berry
8139
+ ##ew
8140
+ a5
8141
+ ghost
8142
+ ##wn
8143
+ ##og
8144
+ south
8145
+ ##code
8146
+ girls
8147
+ ##rid
8148
+ action
8149
+ villa
8150
+ git
8151
+ r11
8152
+ table
8153
+ games
8154
+ ##cket
8155
+ error
8156
+ ##anonymoussaid
8157
+ ##ag
8158
+ here
8159
+ ##ame
8160
+ ##gc
8161
+ qa
8162
+ ##lis
8163
+ gmp
8164
+ ##gin
8165
+ vmalife
8166
+ ##cher
8167
+ yu
8168
+ wedding
8169
+ ##tis
8170
+ demo
8171
+ dragon
8172
+ soho
8173
+ social
8174
+ bye
8175
+ ##rant
8176
+ river
8177
+ orz
8178
+ acer
8179
+ ##ats
8180
+ del
8181
+ ##ven
8182
+ ups
8183
+ value
8184
+ macd
8185
+ yougou
8186
+ ##dn
8187
+ ##ano
8188
+ ll
8189
+ ##urt
8190
+ ##rent
8191
+ continue
8192
+ script
8193
+ ##wen
8194
+ ##ect
8195
+ paper
8196
+ shift
8197
+ ##chel
8198
+ ##cat
8199
+ x5
8200
+ fox
8201
+ car
8202
+ aaa
8203
+ ##blog
8204
+ loading
8205
+ ##yn
8206
+ ##tp
8207
+ kuso
8208
+ si
8209
+ sns
8210
+ rmb
8211
+ vdc
8212
+ forest
8213
+ central
8214
+ prime
8215
+ help
8216
+ ultra
8217
+ ##rmb
8218
+ square
8219
+ ##field
8220
+ ##reen
8221
+ ##ors
8222
+ ##ju
8223
+ c1
8224
+ start
8225
+ ##air
8226
+ ##map
8227
+ cdn
8228
+ ##wo
8229
+ cba
8230
+ stephen
8231
+ m8
8232
+ ##get
8233
+ opera
8234
+ ##base
8235
+ ##ood
8236
+ vsa
8237
+ com™
8238
+ ##aw
8239
+ ##ail
8240
+ count
8241
+ t2
8242
+ ##een
8243
+ hop
8244
+ ##gp
8245
+ vsc
8246
+ tree
8247
+ ##eg
8248
+ ##ose
8249
+ ##ories
8250
+ ##shop
8251
+ alphago
8252
+ v4
8253
+ simon
8254
+ fluke62max
8255
+ zip
8256
+ ##sta
8257
+ louis
8258
+ cr
8259
+ bas
8260
+ bc
8261
+ ##yer
8262
+ hadoop
8263
+ ##ube
8264
+ ##wi
8265
+ hola
8266
+ ##low
8267
+ place
8268
+ centre
8269
+ d3
8270
+ ##fer
8271
+ ##media
8272
+ exchange
8273
+ series
8274
+ ##san
8275
+ eb
8276
+ ##bank
8277
+ q3
8278
+ ##nge
8279
+ ##mail
8280
+ take
8281
+ ##lp
8282
+ client
8283
+ east
8284
+ cache
8285
+ event
8286
+ vincent
8287
+ ##nse
8288
+ sui
8289
+ adchoice
8290
+ ##stry
8291
+ ##zone
8292
+ ga
8293
+ apps
8294
+ sea
8295
+ ##ab
8296
+ cisco
8297
+ ##rner
8298
+ kymco
8299
+ ##care
8300
+ dha
8301
+ ##pu
8302
+ ##yi
8303
+ minkoff
8304
+ royal
8305
+ p1
8306
+ annie
8307
+ collection
8308
+ kpi
8309
+ playstation
8310
+ bh
8311
+ ##bar
8312
+ queen
8313
+ radio
8314
+ andy
8315
+ armani
8316
+ ##xy
8317
+ manager
8318
+ iherb
8319
+ ##ery
8320
+ ##share
8321
+ spring
8322
+ raid
8323
+ johnson
8324
+ ##ob
8325
+ volvo
8326
+ hall
8327
+ ##ball
8328
+ v6
8329
+ our
8330
+ taylor
8331
+ ##hk
8332
+ bi
8333
+ ##cp
8334
+ kate
8335
+ bo
8336
+ water
8337
+ technology
8338
+ ##rie
8339
+ ##ona
8340
+ ##sl
8341
+ hpv
8342
+ gtx
8343
+ hip
8344
+ rdquo
8345
+ jayz
8346
+ stone
8347
+ ##lex
8348
+ ##rum
8349
+ namespace
8350
+ ##ale
8351
+ ##atic
8352
+ des
8353
+ ##erson
8354
+ ##ql
8355
+ ##ves
8356
+ ##type
8357
+ enter
8358
+ d2
8359
+ ##mix
8360
+ ##bian
8361
+ a9
8362
+ jj
8363
+ ky
8364
+ ##lc
8365
+ access
8366
+ movie
8367
+ ##hc
8368
+ tower
8369
+ ##ration
8370
+ ##mit
8371
+ ##nch
8372
+ ua
8373
+ tel
8374
+ prefix
8375
+ ##o2
8376
+ ##point
8377
+ ott
8378
+ ##http
8379
+ ##ury
8380
+ baidu
8381
+ ##ink
8382
+ member
8383
+ ##logy
8384
+ bigbang
8385
+ nownews
8386
+ ##js
8387
+ ##shot
8388
+ ##tb
8389
+ eba
8390
+ ##tics
8391
+ ##lus
8392
+ v5
8393
+ spark
8394
+ ##ama
8395
+ there
8396
+ ##ions
8397
+ god
8398
+ ##lls
8399
+ ##down
8400
+ hiv
8401
+ ##ress
8402
+ burberry
8403
+ day2
8404
+ ##kv
8405
+ jeff
8406
+ related
8407
+ film
8408
+ edit
8409
+ joseph
8410
+ ##ark
8411
+ cx
8412
+ order
8413
+ g9
8414
+ ##ans
8415
+ ##tty
8416
+ s5
8417
+ ##bee
8418
+ thread
8419
+ xr
8420
+ buy
8421
+ sh
8422
+ land
8423
+ spotify
8424
+ mx
8425
+ ##ari
8426
+ ##verse
8427
+ sf
8428
+ why
8429
+ nego
8430
+ sunny
8431
+ dom
8432
+ exo
8433
+ positioning
8434
+ fit
8435
+ rgb
8436
+ ##tton
8437
+ kiss
8438
+ alexa
8439
+ adam
8440
+ lp
8441
+ mp
8442
+ ##ties
8443
+ ##llow
8444
+ amy
8445
+ ##du
8446
+ np
8447
+ institute
8448
+ ##rth
8449
+ ##lar
8450
+ ##des
8451
+ sidebar
8452
+ imax
8453
+ site
8454
+ ##cky
8455
+ ##kit
8456
+ ##ime
8457
+ season
8458
+ ##fun
8459
+ gogoro
8460
+ a7
8461
+ pu
8462
+ lily
8463
+ fire
8464
+ twd600
8465
+ ##vis
8466
+ ##cture
8467
+ information
8468
+ close
8469
+ friday
8470
+ yi
8471
+ nick
8472
+ ##tta
8473
+ ##tel
8474
+ ##lock
8475
+ cbd
8476
+ economy
8477
+ tinker
8478
+ double
8479
+ voice
8480
+ ##app
8481
+ oops
8482
+ channel
8483
+ today
8484
+ ##right
8485
+ raw
8486
+ xyz
8487
+ jim
8488
+ edm
8489
+ ##cent
8490
+ supreme
8491
+ ds
8492
+ ##its
8493
+ ##asia
8494
+ dropbox
8495
+ ##tti
8496
+ books
8497
+ ##tle
8498
+ ##ller
8499
+ ##ken
8500
+ ##more
8501
+ ##boy
8502
+ sex
8503
+ ##dom
8504
+ t3
8505
+ ##ider
8506
+ ##unch
8507
+ feel
8508
+ ##put
8509
+ s2
8510
+ mo
8511
+ ##gh
8512
+ men
8513
+ ka
8514
+ amoled
8515
+ div
8516
+ ##tr
8517
+ ##n1
8518
+ port
8519
+ howard
8520
+ ##tags
8521
+ ken
8522
+ dnf
8523
+ ##nus
8524
+ adsense
8525
+ ide
8526
+ buff
8527
+ thunder
8528
+ ##town
8529
+ ##ique
8530
+ has
8531
+ ##body
8532
+ auto
8533
+ pin
8534
+ ##erry
8535
+ tee
8536
+ number
8537
+ ##the
8538
+ object
8539
+ psp
8540
+ cool
8541
+ udnbkk
8542
+ ##mic
8543
+ miui
8544
+ ##tro
8545
+ most
8546
+ r2
8547
+ ##alk
8548
+ ##nity
8549
+ s4
8550
+ law
8551
+ version
8552
+ ##oa
8553
+ n1
8554
+ sgs
8555
+ docomo
8556
+ ##tf
8557
+ ##ack
8558
+ henry
8559
+ fc2
8560
+ ##ded
8561
+ ##sco
8562
+ ##rite
8563
+ linkedin
8564
+ ##ada
8565
+ ##now
8566
+ wii
8567
+ ##ndy
8568
+ ucbug
8569
+ sputniknews
8570
+ legalminer
8571
+ ##ika
8572
+ ##xp
8573
+ ##bu
8574
+ q10
8575
+ oo
8576
+ b6
8577
+ come
8578
+ ##rman
8579
+ cheese
8580
+ ming
8581
+ maker
8582
+ ##gm
8583
+ nikon
8584
+ ##fig
8585
+ ppi
8586
+ kelly
8587
+ jchere
8588
+ ted
8589
+ md
8590
+ fgo
8591
+ tech
8592
+ ##tto
8593
+ dan
8594
+ soc
8595
+ ##gl
8596
+ ##len
8597
+ hair
8598
+ earth
8599
+ img
8600
+ ##pper
8601
+ ##a1
8602
+ acca
8603
+ ##ition
8604
+ ##ference
8605
+ suite
8606
+ ##ig
8607
+ outlook
8608
+ ##mond
8609
+ ##cation
8610
+ ##pr
8611
+ airport
8612
+ ##over
8613
+ jones
8614
+ ##ith
8615
+ lab
8616
+ ##su
8617
+ co2
8618
+ town
8619
+ piece
8620
+ ##llo
8621
+ no1
8622
+ vmware
8623
+ ##qi
8624
+ focus
8625
+ reader
8626
+ ##admin
8627
+ ##ora
8628
+ tb
8629
+ false
8630
+ ##log
8631
+ know
8632
+ lan
8633
+ ##ces
8634
+ f4
8635
+ ##ume
8636
+ motel
8637
+ stop
8638
+ ##oper
8639
+ na
8640
+ flickr
8641
+ netcomponents
8642
+ ##af
8643
+ pose
8644
+ williams
8645
+ local
8646
+ ##ound
8647
+ ##cg
8648
+ ##site
8649
+ ##iko
8650
+ gsm
8651
+ con
8652
+ ##ath
8653
+ friends
8654
+ ##hip
8655
+ cell
8656
+ ##rey
8657
+ cream
8658
+ ##cks
8659
+ ##dp
8660
+ facebooktwitterpinterestgoogle
8661
+ sso
8662
+ shtml
8663
+ song
8664
+ swiss
8665
+ ##mw
8666
+ lumia
8667
+ xdd
8668
+ string
8669
+ tiffany
8670
+ marc
8671
+ insee
8672
+ russell
8673
+ sc
8674
+ dell
8675
+ ##ations
8676
+ camera
8677
+ ##vs
8678
+ ##flow
8679
+ ##late
8680
+ classic
8681
+ ##nter
8682
+ stay
8683
+ g1
8684
+ mtv
8685
+ ##ever
8686
+ ##lab
8687
+ ##nger
8688
+ qe
8689
+ sata
8690
+ ryan
8691
+ d1
8692
+ cms
8693
+ ##cing
8694
+ su
8695
+ editor
8696
+ ##nap
8697
+ security
8698
+ sunday
8699
+ association
8700
+ ##ens
8701
+ ##bra
8702
+ acg
8703
+ sofascore
8704
+ mkv
8705
+ ##ign
8706
+ jonathan
8707
+ gary
8708
+ build
8709
+ labels
8710
+ ##oto
8711
+ tesla
8712
+ moba
8713
+ qi
8714
+ gohappy
8715
+ general
8716
+ ajax
8717
+ society
8718
+ ##test
8719
+ ##urs
8720
+ wps
8721
+ fedora
8722
+ ##ich
8723
+ mozilla
8724
+ ##dr
8725
+ usa
8726
+ urn
8727
+ ##lina
8728
+ grace
8729
+ ##die
8730
+ ##try
8731
+ ##ader
8732
+ elle
8733
+ ##chen
8734
+ price
8735
+ ##ten
8736
+ uhz
8737
+ ##ough
8738
+ eq
8739
+ ##hen
8740
+ states
8741
+ push
8742
+ session
8743
+ balance
8744
+ wow
8745
+ ##cus
8746
+ ##py
8747
+ when
8748
+ ##ward
8749
+ ##ep
8750
+ wong
8751
+ library
8752
+ prada
8753
+ ##cle
8754
+ running
8755
+ ##ree
8756
+ ck
8757
+ date
8758
+ q4
8759
+ ##ctive
8760
+ ##ool
8761
+ mk
8762
+ ##ira
8763
+ die
8764
+ secret
8765
+ rq
8766
+ dota
8767
+ buffet
8768
+ e6
8769
+ ##ez
8770
+ pan
8771
+ ha
8772
+ ##card
8773
+ ##cha
8774
+ alan
8775
+ day3
8776
+ eye
8777
+ f3
8778
+ ##end
8779
+ france
8780
+ keep
8781
+ adi
8782
+ rna
8783
+ tvbs
8784
+ ##ala
8785
+ solo
8786
+ nova
8787
+ ##tail
8788
+ support
8789
+ ##ries
8790
+ ##ved
8791
+ base
8792
+ copy
8793
+ iis
8794
+ fps
8795
+ ##ways
8796
+ hero
8797
+ hgih
8798
+ profile
8799
+ fish
8800
+ mu
8801
+ ssh
8802
+ entertainment
8803
+ chang
8804
+ ##wd
8805
+ click
8806
+ cake
8807
+ ##ond
8808
+ pre
8809
+ ##tom
8810
+ kic
8811
+ pixel
8812
+ ##ov
8813
+ ##fl
8814
+ product
8815
+ ##pd
8816
+ dear
8817
+ ##gate
8818
+ es
8819
+ yumi
8820
+ audio
8821
+ ##²
8822
+ ##sky
8823
+ echo
8824
+ bin
8825
+ where
8826
+ ##ture
8827
+ ##ape
8828
+ find
8829
+ sap
8830
+ isis
8831
+ nand
8832
+ ##load
8833
+ ##ream
8834
+ band
8835
+ a6
8836
+ never
8837
+ ##post
8838
+ festival
8839
+ ##we
8840
+ guide
8841
+ zenfone
8842
+ ##ike
8843
+ gd
8844
+ forum
8845
+ jessica
8846
+ strong
8847
+ alexander
8848
+ ##ould
8849
+ software
8850
+ allen
8851
+ ##ious
8852
+ program
8853
+ else
8854
+ lohasthree
8855
+ ##gar
8856
+ please
8857
+ rc
8858
+ ##ggle
8859
+ ##ric
8860
+ bim
8861
+ ##own
8862
+ eclipse
8863
+ brian
8864
+ ##side
8865
+ ##other
8866
+ ##tech
8867
+ ##ator
8868
+ engine
8869
+ ##ged
8870
+ plaza
8871
+ ##fit
8872
+ cia
8873
+ ngo
8874
+ westbrook
8875
+ shi
8876
+ tbs
8877
+ sci
8878
+ reuters
8879
+ ##ily
8880
+ contextlink
8881
+ ##hn
8882
+ af
8883
+ ##cil
8884
+ bridge
8885
+ very
8886
+ ##cel
8887
+ cambridge
8888
+ ##ize
8889
+ ##aid
8890
+ ##data
8891
+ frm
8892
+ ##head
8893
+ award
8894
+ butler
8895
+ ##sun
8896
+ meta
8897
+ ##mar
8898
+ america
8899
+ ps3
8900
+ puma
8901
+ pmid
8902
+ lc
8903
+ kitchen
8904
+ ##lic
8905
+ day1
8906
+ future
8907
+ ##text
8908
+ ##page
8909
+ ##rris
8910
+ pm1
8911
+ ##ket
8912
+ fans
8913
+ christian
8914
+ bot
8915
+ kids
8916
+ trackback
8917
+ ##hai
8918
+ c3
8919
+ display
8920
+ ##hl
8921
+ n2
8922
+ idea
8923
+ ##sent
8924
+ airmail
8925
+ ##ug
8926
+ ##men
8927
+ pwm
8928
+ ##lution
8929
+ awards
8930
+ schemas
8931
+ asics
8932
+ wikipedia
8933
+ font
8934
+ ##tional
8935
+ ##vy
8936
+ c2
8937
+ ##dget
8938
+ ##ein
8939
+ contact
8940
+ pepper
8941
+ ##uel
8942
+ ##ument
8943
+ ##hang
8944
+ q5
8945
+ ##sue
8946
+ rain
8947
+ ##ndi
8948
+ wei
8949
+ swatch
8950
+ ##cept
8951
+ popular
8952
+ ##ste
8953
+ ##tag
8954
+ p2
8955
+ trc
8956
+ ##west
8957
+ ##live
8958
+ justin
8959
+ honda
8960
+ ping
8961
+ messenger
8962
+ ##rap
8963
+ v9
8964
+ unity
8965
+ appqq
8966
+ leo
8967
+ ##tone
8968
+ ##ass
8969
+ uniqlo
8970
+ her
8971
+ jane
8972
+ memory
8973
+ moneydj
8974
+ ##tical
8975
+ human
8976
+ ##m2
8977
+ coc
8978
+ miacare
8979
+ ##mn
8980
+ tmt
8981
+ ##core
8982
+ vim
8983
+ kk
8984
+ ##may
8985
+ fan
8986
+ target
8987
+ use
8988
+ too
8989
+ fast
8990
+ services
8991
+ ##ope
8992
+ omega
8993
+ energy
8994
+ pinkoi
8995
+ ##rain
8996
+ jackson
8997
+ ##ement
8998
+ p9
8999
+ rd
9000
+ ##tier
9001
+ ##vic
9002
+ zone
9003
+ dl
9004
+ isofix
9005
+ cpa
9006
+ m4
9007
+ kimi
9008
+ davis
9009
+ ##lay
9010
+ lulu
9011
+ ##uck
9012
+ weeks
9013
+ qs
9014
+ ##hop
9015
+ ae
9016
+ ##ear
9017
+ eia
9018
+ ##fly
9019
+ korea
9020
+ jpeg
9021
+ boost
9022
+ ##ship
9023
+ small
9024
+ eur
9025
+ valley
9026
+ ##iel
9027
+ simple
9028
+ ##ude
9029
+ rn
9030
+ k2
9031
+ ##ena
9032
+ non
9033
+ patrick
9034
+ feed
9035
+ process
9036
+ well
9037
+ qqmei
9038
+ ##thing
9039
+ they
9040
+ aws
9041
+ lu
9042
+ pink
9043
+ ##ters
9044
+ ##kin
9045
+ board
9046
+ ##vertisement
9047
+ wine
9048
+ ##ien
9049
+ unicode
9050
+ ##dge
9051
+ r1
9052
+ ##tant
9053
+ ##twitter
9054
+ cool1
9055
+ isp
9056
+ standard
9057
+ matt
9058
+ ##fu
9059
+ ##iner
9060
+ googlemsn
9061
+ pixnetfacebookyahoo
9062
+ x7
9063
+ ##uce
9064
+ sao
9065
+ ##ev
9066
+ ##file
9067
+ xddd
9068
+ shirt
9069
+ ##rio
9070
+ ##hat
9071
+ givenchy
9072
+ ya
9073
+ bang
9074
+ ##lio
9075
+ monday
9076
+ crystal
9077
+ ##abc
9078
+ head
9079
+ ubuntuforumwikilinuxpastechat
9080
+ ##vc
9081
+ ##rity
9082
+ cnc
9083
+ ipv6
9084
+ null
9085
+ ##ost
9086
+ yang
9087
+ imsean
9088
+ tiger
9089
+ ##fet
9090
+ dji
9091
+ ji
9092
+ maria
9093
+ ##come
9094
+ foundation
9095
+ ##beth
9096
+ active
9097
+ ##aft
9098
+ ##don
9099
+ sr
9100
+ emma
9101
+ ##khz
9102
+ living
9103
+ sas
9104
+ x6
9105
+ ##face
9106
+ pptv
9107
+ x4
9108
+ ##mate
9109
+ han
9110
+ sophie
9111
+ ##jing
9112
+ fifa
9113
+ ##mand
9114
+ other
9115
+ sale
9116
+ inwedding
9117
+ ##gn
9118
+ ##mmy
9119
+ ##pmlast
9120
+ bad
9121
+ nana
9122
+ nbc
9123
+ ##wu
9124
+ note7
9125
+ single
9126
+ ##bel
9127
+ window
9128
+ ##dio
9129
+ ##ht
9130
+ union
9131
+ age
9132
+ ##ivity
9133
+ domain
9134
+ neo
9135
+ ##isa
9136
+ ##lter
9137
+ f5
9138
+ steven
9139
+ ##cts
9140
+ powerpoint
9141
+ tft
9142
+ self
9143
+ g2
9144
+ ft
9145
+ zol
9146
+ ##act
9147
+ mwc
9148
+ nbapop
9149
+ eds
9150
+ ace
9151
+ ##room
9152
+ previous
9153
+ author
9154
+ tomtom
9155
+ il
9156
+ ##ets
9157
+ hu
9158
+ financial
9159
+ bp
9160
+ chi
9161
+ ##hg
9162
+ fairmont
9163
+ cross
9164
+ gay
9165
+ h2
9166
+ function
9167
+ also
9168
+ ##raph
9169
+ ##ils
9170
+ i3
9171
+ avenue
9172
+ ##host
9173
+ ##bon
9174
+ ##tsu
9175
+ message
9176
+ navigation
9177
+ fintech
9178
+ h6
9179
+ ##ject
9180
+ ##vas
9181
+ ##firm
9182
+ credit
9183
+ ##wf
9184
+ xxxx
9185
+ form
9186
+ ##nor
9187
+ ##space
9188
+ huawei
9189
+ plan
9190
+ json
9191
+ sbl
9192
+ ##dc
9193
+ machine
9194
+ wish
9195
+ ##sol
9196
+ windows7
9197
+ edward
9198
+ development
9199
+ washington
9200
+ ##nsis
9201
+ lo
9202
+ ##sio
9203
+ ##ym
9204
+ ##bor
9205
+ planet
9206
+ ##wt
9207
+ ieee
9208
+ gpa
9209
+ camp
9210
+ ann
9211
+ gm
9212
+ ##tw
9213
+ ##oka
9214
+ connect
9215
+ ##rss
9216
+ ##work
9217
+ ##atus
9218
+ wall
9219
+ chicken
9220
+ soul
9221
+ ##times
9222
+ fa
9223
+ ##ather
9224
+ ##cord
9225
+ ##eep
9226
+ hitachi
9227
+ gui
9228
+ harry
9229
+ ##pan
9230
+ e1
9231
+ disney
9232
+ ##press
9233
+ wind
9234
+ frigidaire
9235
+ ##tl
9236
+ liu
9237
+ hsu
9238
+ basic
9239
+ von
9240
+ ev
9241
+ learning
9242
+ ##ull
9243
+ expedia
9244
+ archives
9245
+ change
9246
+ ##wei
9247
+ santa
9248
+ cut
9249
+ ins
9250
+ turbo
9251
+ brand
9252
+ cf1
9253
+ return
9254
+ ##rip
9255
+ h1
9256
+ ##nis
9257
+ application
9258
+ emc
9259
+ rx
9260
+ ##oon
9261
+ quick
9262
+ wilson
9263
+ wing
9264
+ chapter
9265
+ ##bug
9266
+ beyond
9267
+ ##cms
9268
+ ##dar
9269
+ ##oh
9270
+ zoom
9271
+ e2
9272
+ trip
9273
+ sb
9274
+ ##nba
9275
+ rcep
9276
+ aspx
9277
+ ci
9278
+ gc
9279
+ gnu
9280
+ ##count
9281
+ advanced
9282
+ dance
9283
+ dv
9284
+ ##url
9285
+ ##ging
9286
+ am09
9287
+ shadow
9288
+ battle
9289
+ ##cia
9290
+ emily
9291
+ ##tation
9292
+ host
9293
+ ff
9294
+ techorz
9295
+ sars
9296
+ ##mini
9297
+ ##mporary
9298
+ ##ering
9299
+ nc
9300
+ ##next
9301
+ cma
9302
+ ##mbps
9303
+ ##gas
9304
+ ##ift
9305
+ ##dot
9306
+ amana
9307
+ ##ros
9308
+ ir
9309
+ ##eet
9310
+ ##ible
9311
+ ##aka
9312
+ dcs
9313
+ iq
9314
+ l1
9315
+ ##lor
9316
+ maggie
9317
+ ##iu
9318
+ ##gt
9319
+ articles
9320
+ create
9321
+ ##burg
9322
+ ##iki
9323
+ database
9324
+ fantasy
9325
+ ##rex
9326
+ ##cam
9327
+ dlc
9328
+ dean
9329
+ ##you
9330
+ hard
9331
+ path
9332
+ gaming
9333
+ victoria
9334
+ maps
9335
+ cb
9336
+ ##lee
9337
+ ##itor
9338
+ overchicstoretvhome
9339
+ systems
9340
+ ##xt
9341
+ p3
9342
+ sarah
9343
+ ##nan
9344
+ x9
9345
+ install
9346
+ second
9347
+ ##ann
9348
+ ##ph
9349
+ ##rcle
9350
+ ##nic
9351
+ ##nar
9352
+ ec
9353
+ metro
9354
+ chocolate
9355
+ ##rian
9356
+ ##table
9357
+ skin
9358
+ ##sn
9359
+ mountain
9360
+ inparadise
9361
+ ib
9362
+ ##jia
9363
+ eeworld
9364
+ creative
9365
+ g5
9366
+ g3
9367
+ parker
9368
+ ecfa
9369
+ village
9370
+ sylvia
9371
+ hbl
9372
+ ##ques
9373
+ ##onsored
9374
+ ##x2
9375
+ ##v4
9376
+ ##tein
9377
+ ie6
9378
+ ##stack
9379
+ ver
9380
+ ##ads
9381
+ ##baby
9382
+ sound
9383
+ bbe
9384
+ ##lone
9385
+ ##uid
9386
+ ads
9387
+ gundam
9388
+ thinkpad
9389
+ scrum
9390
+ match
9391
+ ##ave
9392
+ mems
9393
+ ##oy
9394
+ ##talk
9395
+ glass
9396
+ lamigo
9397
+ span
9398
+ ##eme
9399
+ job
9400
+ ##a5
9401
+ jay
9402
+ wade
9403
+ kde
9404
+ ##lace
9405
+ ocean
9406
+ tvg
9407
+ ##covery
9408
+ ##r3
9409
+ ##ners
9410
+ ##rea
9411
+ junior
9412
+ think
9413
+ ##aine
9414
+ cover
9415
+ ##ision
9416
+ ##sia
9417
+ ##bow
9418
+ msi
9419
+ ##love
9420
+ soft
9421
+ z2
9422
+ ##pl
9423
+ mobil
9424
+ mind
9425
+ ##uy
9426
+ nginx
9427
+ ##oi
9428
+ ##rr
9429
+ ##mple
9430
+ ##sson
9431
+ ##nts
9432
+ comhd
9433
+ crv3000
9434
+ ##uard
9435
+ deep
9436
+ lost
9437
+ field
9438
+ gallery
9439
+ ##bia
9440
+ rate
9441
+ spf
9442
+ redis
9443
+ traction
9444
+ icloud
9445
+ fe
9446
+ jose
9447
+ ##tory
9448
+ into
9449
+ sohu
9450
+ fx
9451
+ kicstart2
9452
+ ##hia
9453
+ ##sit
9454
+ ra
9455
+ ##walk
9456
+ ##xure
9457
+ ##pact
9458
+ pacific
9459
+ xa
9460
+ natural
9461
+ carlo
9462
+ ##walker
9463
+ ##can
9464
+ cto
9465
+ gigi
9466
+ pen
9467
+ ##hoo
9468
+ ob
9469
+ matlab
9470
+ ##yy
9471
+ ##iti
9472
+ mango
9473
+ ##bbs
9474
+ sense
9475
+ c5
9476
+ oxford
9477
+ walker
9478
+ jennifer
9479
+ ##ola
9480
+ course
9481
+ ##bre
9482
+ ##pus
9483
+ ##rder
9484
+ lucky
9485
+ ivy
9486
+ ##nia
9487
+ sotheby
9488
+ side
9489
+ ##ugh
9490
+ joy
9491
+ ##orage
9492
+ ##ush
9493
+ ##bat
9494
+ ##dt
9495
+ r9
9496
+ ##gio
9497
+ country
9498
+ wear
9499
+ ##lax
9500
+ ##moon
9501
+ seven
9502
+ study
9503
+ lonzo
9504
+ evolution
9505
+ ##kk
9506
+ gs
9507
+ kd
9508
+ arduino
9509
+ b12
9510
+ ##lux
9511
+ arpg
9512
+ ##rdon
9513
+ cook
9514
+ ##x5
9515
+ dark
9516
+ five
9517
+ ##als
9518
+ ##ida
9519
+ sign
9520
+ something
9521
+ ##nda
9522
+ ##posted
9523
+ fresh
9524
+ tf
9525
+ cam
9526
+ ##mine
9527
+ ##skip
9528
+ ##form
9529
+ ##ssion
9530
+ education
9531
+ ##tee
9532
+ dyson
9533
+ stage
9534
+ ##jie
9535
+ want
9536
+ ##night
9537
+ epson
9538
+ pack
9539
+ ##ppy
9540
+ ##█
9541
+ wd
9542
+ ##eh
9543
+ ##rence
9544
+ left
9545
+ ##lvin
9546
+ golden
9547
+ mhz
9548
+ discovery
9549
+ ##trix
9550
+ ##n2
9551
+ loft
9552
+ ##uch
9553
+ ##dra
9554
+ ##sse
9555
+ speed
9556
+ sorry
9557
+ welcome
9558
+ ##urn
9559
+ wave
9560
+ gaga
9561
+ ##lmer
9562
+ teddy
9563
+ rp
9564
+ ##sha
9565
+ rar
9566
+ holiday
9567
+ ##vg
9568
+ ##nos
9569
+ ##rail
9570
+ gartner
9571
+ gi
9572
+ ##dium
9573
+ kit
9574
+ b3
9575
+ eco
9576
+ sean
9577
+ ##stone
9578
+ autocad
9579
+ nu
9580
+ ##np
9581
+ f16
9582
+ write
9583
+ m5
9584
+ ##ias
9585
+ images
9586
+ atp
9587
+ ##dk
9588
+ fsm
9589
+ ve
9590
+ ##xxx
9591
+ ##cake
9592
+ unit
9593
+ lim
9594
+ ru
9595
+ ##ification
9596
+ published
9597
+ angela
9598
+ analytics
9599
+ ak
9600
+ ##nel
9601
+ gmt
9602
+ ##icon
9603
+ again
9604
+ ##₂
9605
+ ##bby
9606
+ ios11
9607
+ waze
9608
+ ##ust
9609
+ framework
9610
+ iptv
9611
+ delete
9612
+ cl
9613
+ wwdc
9614
+ ##fw
9615
+ ##xon
9616
+ brandt
9617
+ ##ses
9618
+ ##dragon
9619
+ tc
9620
+ vetements
9621
+ anne
9622
+ monte
9623
+ modern
9624
+ official
9625
+ ##ere
9626
+ ##nne
9627
+ ##oud
9628
+ etnews
9629
+ ##a2
9630
+ ##graphy
9631
+ ##rtex
9632
+ l2
9633
+ ##gma
9634
+ mount
9635
+ ccd
9636
+ archive
9637
+ morning
9638
+ tan
9639
+ ddos
9640
+ e7
9641
+ day4
9642
+ gis
9643
+ its
9644
+ factory
9645
+ bruce
9646
+ pg
9647
+ ##ito
9648
+ guest
9649
+ cdma
9650
+ ##lling
9651
+ n3
9652
+ mega
9653
+ eyes
9654
+ ro
9655
+ women
9656
+ dac
9657
+ church
9658
+ ##jun
9659
+ singapore
9660
+ ##facebook
9661
+ starbucks
9662
+ ##tos
9663
+ ##stin
9664
+ ##shine
9665
+ zen
9666
+ ##mu
9667
+ tina
9668
+ request
9669
+ ##gence
9670
+ qt
9671
+ q7
9672
+ ##zzi
9673
+ diary
9674
+ ##tore
9675
+ ##ead
9676
+ cst
9677
+ ##osa
9678
+ canada
9679
+ agent
9680
+ va
9681
+ ##jiang
9682
+ ##lam
9683
+ sg
9684
+ ##nix
9685
+ ##sday
9686
+ g6
9687
+ ##master
9688
+ bing
9689
+ ##zl
9690
+ charlie
9691
+ nb40
9692
+ thai
9693
+ ln284ct
9694
+ ##itz
9695
+ bonnie
9696
+ ##food
9697
+ ##lent
9698
+ originals
9699
+ ##stro
9700
+ ##lts
9701
+ ##bscribe
9702
+ children
9703
+ ntd
9704
+ yesstyle
9705
+ hmv
9706
+ ##tment
9707
+ d5
9708
+ arts
9709
+ sms
9710
+ ##pn
9711
+ topios9
9712
+ lifestyle
9713
+ virtual
9714
+ ##ague
9715
+ xz
9716
+ ##deo
9717
+ muji
9718
+ unt
9719
+ ##nnis
9720
+ faq1
9721
+ ##ette
9722
+ fly
9723
+ curry
9724
+ ##pop
9725
+ release
9726
+ ##cast
9727
+ ##ews
9728
+ ##stle
9729
+ ios7
9730
+ ##ima
9731
+ dog
9732
+ lenovo
9733
+ ##r4
9734
+ roger
9735
+ cbs
9736
+ vornado
9737
+ ##desk
9738
+ ##ald
9739
+ ##van
9740
+ oil
9741
+ some
9742
+ break
9743
+ common
9744
+ ##jy
9745
+ ##lines
9746
+ g7
9747
+ twice
9748
+ ella
9749
+ nano
9750
+ belle
9751
+ ##mes
9752
+ ##self
9753
+ ##note
9754
+ jb
9755
+ benz
9756
+ ##ova
9757
+ save
9758
+ ##wing
9759
+ kai
9760
+ ##hua
9761
+ ##rect
9762
+ rainer
9763
+ ##unge
9764
+ adsl
9765
+ guestname
9766
+ ##uma
9767
+ ##kins
9768
+ ##zu
9769
+ tokichoi
9770
+ ##price
9771
+ county
9772
+ ##med
9773
+ ##mus
9774
+ rmk
9775
+ address
9776
+ vm
9777
+ openload
9778
+ ##group
9779
+ ##hin
9780
+ ##iginal
9781
+ amg
9782
+ urban
9783
+ ##oz
9784
+ jobs
9785
+ emi
9786
+ ##public
9787
+ beautiful
9788
+ ##sch
9789
+ album
9790
+ ##dden
9791
+ ##bell
9792
+ jerry
9793
+ works
9794
+ hostel
9795
+ miller
9796
+ ##drive
9797
+ ##rmin
9798
+ boot
9799
+ ##fx
9800
+ ##nome
9801
+ ##ctionary
9802
+ ##oman
9803
+ ##lish
9804
+ ##cr
9805
+ ##hm
9806
+ ##how
9807
+ francis
9808
+ xi
9809
+ c919
9810
+ b5
9811
+ evernote
9812
+ ##uc
9813
+ vga
9814
+ coupe
9815
+ ##urg
9816
+ ##cca
9817
+ ##uality
9818
+ multi
9819
+ ##ett
9820
+ em
9821
+ hey
9822
+ ##ani
9823
+ ##tax
9824
+ ##rma
9825
+ inside
9826
+ than
9827
+ leonnhurt
9828
+ ##jin
9829
+ ict
9830
+ bird
9831
+ notes
9832
+ ##dical
9833
+ ##lli
9834
+ result
9835
+ iu
9836
+ ee
9837
+ smap
9838
+ gopro
9839
+ ##last
9840
+ yin
9841
+ pure
9842
+ ##dan
9843
+ ##rame
9844
+ mama
9845
+ ##oot
9846
+ bean
9847
+ marketing
9848
+ ##hur
9849
+ bella
9850
+ sync
9851
+ xuite
9852
+ ##ground
9853
+ discuz
9854
+ ##getrelax
9855
+ ##ince
9856
+ ##bay
9857
+ cj
9858
+ gmat
9859
+ apt
9860
+ ##pass
9861
+ jing
9862
+ ##rix
9863
+ c4
9864
+ rich
9865
+ niusnews
9866
+ ##ello
9867
+ bag
9868
+ ##eting
9869
+ ##mobile
9870
+ culture
9871
+ area
9872
+ ##ience
9873
+ details
9874
+ gp
9875
+ universal
9876
+ silver
9877
+ dit
9878
+ private
9879
+ ddd
9880
+ u11
9881
+ kanshu
9882
+ ##ified
9883
+ fung
9884
+ ##nny
9885
+ dx
9886
+ tai
9887
+ ##fr
9888
+ ##lean
9889
+ ##pin
9890
+ ##rin
9891
+ ly
9892
+ rick
9893
+ ##bility
9894
+ usb3
9895
+ banner
9896
+ ##baru
9897
+ ##gion
9898
+ metal
9899
+ dt
9900
+ vdf
9901
+ karl
9902
+ qualcomm
9903
+ bear
9904
+ oldid
9905
+ ian
9906
+ jo
9907
+ ##tors
9908
+ population
9909
+ ##ernel
9910
+ mmorpg
9911
+ ##mv
9912
+ ##bike
9913
+ ww
9914
+ friend
9915
+ ##ager
9916
+ exhibition
9917
+ ##del
9918
+ ##pods
9919
+ fpx
9920
+ structure
9921
+ ##free
9922
+ ##tings
9923
+ kl
9924
+ ##rley
9925
+ ##copyright
9926
+ ##mma
9927
+ california
9928
+ orange
9929
+ yoga
9930
+ canmake
9931
+ honey
9932
+ ##anda
9933
+ nikkie
9934
+ dhl
9935
+ publishing
9936
+ ##mall
9937
+ ##gnet
9938
+ ##┅
9939
+ e88
9940
+ ##dog
9941
+ fishbase
9942
+ ##!
9943
+ ##"
9944
+ ###
9945
+ ##$
9946
+ ##%
9947
+ ##&
9948
+ ##'
9949
+ ##(
9950
+ ##)
9951
+ ##*
9952
+ ##+
9953
+ ##,
9954
+ ##-
9955
+ ##.
9956
+ ##/
9957
+ ##:
9958
+ ##;
9959
+ ##<
9960
+ ##=
9961
+ ##>
9962
+ ##?
9963
+ ##@
9964
+ ##[
9965
+ ##\
9966
+ ##]
9967
+ ##^
9968
+ ##_
9969
+ ##{
9970
+ ##|
9971
+ ##}
9972
+ ##~
9973
+ ##£
9974
+ ##¤
9975
+ ##¥
9976
+ ##§
9977
+ ##«
9978
+ ##±
9979
+ ##³
9980
+ ##µ
9981
+ ##·
9982
+ ##¹
9983
+ ##º
9984
+ ##»
9985
+ ##¼
9986
+ ##ß
9987
+ ##æ
9988
+ ##÷
9989
+ ##ø
9990
+ ##đ
9991
+ ##ŋ
9992
+ ##ɔ
9993
+ ##ə
9994
+ ##ɡ
9995
+ ##ʰ
9996
+ ##ˇ
9997
+ ##ˈ
9998
+ ##ˊ
9999
+ ##ˋ
10000
+ ##ˍ
10001
+ ##ː
10002
+ ##˙
10003
+ ##˚
10004
+ ##ˢ
10005
+ ##α
10006
+ ##β
10007
+ ##γ
10008
+ ##δ
10009
+ ##ε
10010
+ ##η
10011
+ ##θ
10012
+ ##ι
10013
+ ##κ
10014
+ ##λ
10015
+ ##μ
10016
+ ##ν
10017
+ ##ο
10018
+ ##��
10019
+ ##ρ
10020
+ ##ς
10021
+ ##σ
10022
+ ##τ
10023
+ ##υ
10024
+ ##φ
10025
+ ##χ
10026
+ ##ψ
10027
+ ##б
10028
+ ##в
10029
+ ##г
10030
+ ##д
10031
+ ##е
10032
+ ##ж
10033
+ ##з
10034
+ ##к
10035
+ ##л
10036
+ ##м
10037
+ ##н
10038
+ ##о
10039
+ ##п
10040
+ ##р
10041
+ ##с
10042
+ ##т
10043
+ ##у
10044
+ ##ф
10045
+ ##х
10046
+ ##ц
10047
+ ##ч
10048
+ ##ш
10049
+ ##ы
10050
+ ##ь
10051
+ ##і
10052
+ ##ก
10053
+ ##ง
10054
+ ##น
10055
+ ##ม
10056
+ ##ย
10057
+ ##ร
10058
+ ##อ
10059
+ ##า
10060
+ ##เ
10061
+ ##๑
10062
+ ##་
10063
+ ##ღ
10064
+ ##ᵃ
10065
+ ##ᵉ
10066
+ ##ᵍ
10067
+ ##ᵏ
10068
+ ##ᵐ
10069
+ ##ᵒ
10070
+ ##ᵘ
10071
+ ##‖
10072
+ ##„
10073
+ ##†
10074
+ ##•
10075
+ ##‥
10076
+ ##‧
10077
+ ##
10078
+ ##‰
10079
+ ##′
10080
+ ##″
10081
+ ##‹
10082
+ ##›
10083
+ ##※
10084
+ ##‿
10085
+ ##⁄
10086
+ ##ⁱ
10087
+ ##⁺
10088
+ ##ⁿ
10089
+ ##₁
10090
+ ##₃
10091
+ ##₄
10092
+ ##€
10093
+ ##№
10094
+ ##ⅰ
10095
+ ##ⅱ
10096
+ ##ⅲ
10097
+ ##ⅳ
10098
+ ##ⅴ
10099
+ ##⇒
10100
+ ##∀
10101
+ ##−
10102
+ ##∕
10103
+ ##∙
10104
+ ##√
10105
+ ##∞
10106
+ ##∟
10107
+ ##∠
10108
+ ##∣
10109
+ ##∩
10110
+ ##∮
10111
+ ##∶
10112
+ ##∼
10113
+ ##∽
10114
+ ##≈
10115
+ ##≒
10116
+ ##≡
10117
+ ##≤
10118
+ ##≥
10119
+ ##≦
10120
+ ##≧
10121
+ ##≪
10122
+ ##≫
10123
+ ##⊙
10124
+ ##⋅
10125
+ ##⋈
10126
+ ##⋯
10127
+ ##⌒
10128
+ ##①
10129
+ ##②
10130
+ ##③
10131
+ ##④
10132
+ ##⑤
10133
+ ##⑥
10134
+ ##⑦
10135
+ ##⑧
10136
+ ##⑨
10137
+ ##⑩
10138
+ ##⑴
10139
+ ##⑵
10140
+ ##⑶
10141
+ ##⑷
10142
+ ##⑸
10143
+ ##⒈
10144
+ ##⒉
10145
+ ##⒊
10146
+ ##⒋
10147
+ ##ⓒ
10148
+ ##ⓔ
10149
+ ##ⓘ
10150
+ ##━
10151
+ ##┃
10152
+ ##┆
10153
+ ##┊
10154
+ ##┌
10155
+ ##└
10156
+ ##├
10157
+ ##┣
10158
+ ##═
10159
+ ##║
10160
+ ##╚
10161
+ ##╞
10162
+ ##╠
10163
+ ##╭
10164
+ ##╮
10165
+ ##╯
10166
+ ##╰
10167
+ ##╱
10168
+ ##╳
10169
+ ##▂
10170
+ ##▃
10171
+ ##▅
10172
+ ##▇
10173
+ ##▉
10174
+ ##▋
10175
+ ##▌
10176
+ ##▍
10177
+ ##▎
10178
+ ##□
10179
+ ##▬
10180
+ ##△
10181
+ ##►
10182
+ ##▽
10183
+ ##◇
10184
+ ##◕
10185
+ ##◠
10186
+ ##◢
10187
+ ##◤
10188
+ ##☞
10189
+ ##☼
10190
+ ##♡
10191
+ ##♫
10192
+ ##♬
10193
+ ##✕
10194
+ ##✦
10195
+ ##✪
10196
+ ##✰
10197
+ ##✿
10198
+ ##❀
10199
+ ##➜
10200
+ ##➤
10201
+ ##⦿
10202
+ ##、
10203
+ ##。
10204
+ ##〃
10205
+ ##々
10206
+ ##〇
10207
+ ##〈
10208
+ ##〉
10209
+ ##《
10210
+ ##》
10211
+ ##「
10212
+ ##」
10213
+ ##『
10214
+ ##』
10215
+ ##【
10216
+ ##】
10217
+ ##〓
10218
+ ##〔
10219
+ ##〕
10220
+ ##〖
10221
+ ##〗
10222
+ ##〜
10223
+ ##〝
10224
+ ##〞
10225
+ ##ㄧ
10226
+ ##ㆍ
10227
+ ##㈦
10228
+ ##㊣
10229
+ ##㗎
10230
+ ##︰
10231
+ ##︱
10232
+ ##︶
10233
+ ##︿
10234
+ ##﹁
10235
+ ##﹂
10236
+ ##﹍
10237
+ ##﹏
10238
+ ##﹐
10239
+ ##﹑
10240
+ ##﹒
10241
+ ##﹔
10242
+ ##﹕
10243
+ ##﹖
10244
+ ##﹗
10245
+ ##﹙
10246
+ ##﹚
10247
+ ##﹝
10248
+ ##﹞
10249
+ ##﹡
10250
+ ##﹣
10251
+ ##!
10252
+ ##(
10253
+ ##)
10254
+ ##,
10255
+ ##:
10256
+ ##;
10257
+ ##?
10258
+ ##。
10259
+ ##「
10260
+ ##」
10261
+ ##、
10262
+ ##・
10263
+ ##ッ
10264
+ ##ー
10265
+ ##゙
10266
+ ##゚
10267
+ ## ̄
10268
+ ##¥
utils/zh_util.py ADDED
@@ -0,0 +1,91 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ TODO: 繁体、简体
3
+ """
4
+ import os
5
+ import json
6
+ from collections import Counter
7
+ from utils.text_util import is_chinese, has_chinese
8
+ from zhon.hanzi import punctuation as zh_punc
9
+
10
+ CURRENT_DIR = os.path.dirname(os.path.abspath(__file__))
11
+
12
+ zh_tokens = [line.strip() for line in open(os.path.join(CURRENT_DIR, "vocab.jd.txt.v2"), "r", encoding="utf-8") if is_chinese(line.strip())]
13
+
14
+ def zh_iterator():
15
+ for idx in range(ord(u'\u4e00'), ord(u'\u9fa5')):
16
+ yield (chr(idx))
17
+
18
+
19
+ def get_coding_length(tokenizer, vocab, filter=None):
20
+ all_length = []
21
+ for word in vocab:
22
+ if len(word) > 1:
23
+ continue
24
+ if filter is not None and filter(word):
25
+ continue
26
+ tokens = tokenizer.encode(word)
27
+ all_length.append(len(tokens))
28
+ # if len(tokens.ids) > 1:
29
+ # if len(tokens) > 3:
30
+ # print(word, tokens)
31
+
32
+ dist_length = Counter(all_length)
33
+ mean_length = round(sum(all_length) / len(all_length), 2)
34
+ return dist_length, mean_length
35
+
36
+
37
+ def has_zh_char(text):
38
+ return any(ch in zh_punc for ch in text)
39
+
40
+
41
+ def iter_vocab(tokenizer, name=""):
42
+ f_out = open(name + "_vocab.zh.jsonl", "w", encoding="utf-8")
43
+ zh_token_count = {"total": 0, "中文单字": 0, "中文多字": 0}
44
+ all_single_zh_tokens = set()
45
+ zh_symbol_count = 0
46
+ for idx in range(tokenizer.vocab_size):
47
+ decode_str = tokenizer.decode([idx])
48
+ if has_chinese(decode_str):
49
+ # bert词典有 ##开头的
50
+ # byteBPE词典有带空格的
51
+ decode_str = decode_str.strip().replace("#", "")
52
+ zh_token_count["total"] += 1
53
+ if len(decode_str) > 1:
54
+ zh_token_count["中文多字"] += 1
55
+ f_out.write(json.dumps({"id": idx, "token": decode_str, "type": "中文多字"},
56
+ ensure_ascii=False) + "\n")
57
+ else:
58
+ all_single_zh_tokens.add(decode_str)
59
+ zh_token_count["中文单字"] += 1
60
+ f_out.write(json.dumps({"id": idx, "token": decode_str, "type": "中文单字"},
61
+ ensure_ascii=False) + "\n")
62
+
63
+ elif has_zh_char(decode_str):
64
+ zh_symbol_count += 1
65
+ f_out.write(json.dumps({"id": idx, "token": decode_str, "type": "中文标点"},
66
+ ensure_ascii=False) + "\n")
67
+
68
+ #
69
+
70
+ dist_length, mean_length = get_coding_length(tokenizer, zh_tokens, filter=lambda k: not is_chinese(k))
71
+
72
+ # TODO: 繁体字,简体字
73
+ zh_token_count["中文单字-去重后"] = len(all_single_zh_tokens)
74
+
75
+ return {
76
+ "name": name,
77
+ "impl": str(tokenizer.__class__),
78
+ "vocab_size": tokenizer.vocab_size,
79
+ "中文汉字数": str(zh_token_count),
80
+ "中文标点数": zh_symbol_count,
81
+ "中文汉字编码长度均值": mean_length,
82
+ "中文汉字编码长度分布": json.dumps(dist_length),
83
+
84
+ }
85
+
86
+
87
+ if __name__ == "__main__":
88
+ # test_coding_length(jd_vocab_tokens, filter=lambda k: not is_chinese(k))
89
+ # test_coding_length(zh_punc)
90
+ # test_coding_length(zh_iterator())
91
+ iter_vocab()
vocab/README.md ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ ## 词典构建
3
+
4
+ bert词典
5
+ gpt词典
6
+ gpt-neox词典
7
+
8
+ ## encode
9
+
10
+
11
+ ## decode
12
+
13
+ bert词典有个特殊字符 #
14
+ gpt词典有个特殊字符 G
15
+
16
+ gpt-neox词典呢?
17
+
18
+
19
+ ## 关于分词粒度
20
+
21
+
22
+ ## ss
23
+
24
+
25
+
26
+ bert-chinese vocab_size: 21128
27
+ bert-en
28
+ clue
29
+ glm
30
+ chatglm
31
+ bloom
32
+
33
+
34
+ ## bert
35
+
36
+ ```
37
+ [PAD]
38
+ ...
39
+ [unused99]
40
+ [UNK]
41
+ [CLS]
42
+ [SEP]
43
+ [MASK]
44
+ <S>
45
+ <T>
46
+ !
47
+ ...
48
+
49
+ big
50
+ ##ut
51
+ ftp
52
+ carol
53
+ ##vi
54
+ ```
55
+
56
+
57
+ ##
58
+
59
+ https://github.com/pytorch/fairseq/blob/master/tests/test_noising.py#L37
60
+
61
+ ```
62
+ "he@@", "llo", "n@@", "ew", "y@@", "or@@", "k"
63
+ ```
64
+
65
+ 跟BERT类似,只不过BERT是词后缀,这里是词前缀。
66
+
67
+
68
+ ## GPT2
69
+
70
+ 词典见:https://huggingface.co/gpt2/raw/main/vocab.json
71
+
72
+
73
+ ```
74
+ ['What', "'s", 'Ġup', 'Ġwith', 'Ġthe', 'Ġtoken', 'izer', '?']
75
+ ```
76
+ 跟BERT不同,BERT用特殊符号表示 “连接”,GPT2用特殊符号表示 “空格”。
77
+
78
+ 详见 gpt2/README.md
79
+
80
+ - 功能符号: `<|endoftext|>` 表示换行。tab? 空格?
81
+ - 很多数字独立编码,几乎上千个。
82
+
83
+ ## 空格、tab、换行
84
+
85
+
86
+
87
+ ##
vocab/__init__.py ADDED
@@ -0,0 +1,103 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import transformers
2
+ import importlib
3
+ from enum import Enum, auto
4
+
5
+ Animal = Enum('Animal', 'ANT BEE CAT DOG')
6
+
7
+ uniq_tokenizers = [
8
+ ""
9
+ ]
10
+
11
+ all_tokenizers = [
12
+ "gpt_35_turbo",
13
+ "gpt2",
14
+ "gpt2_chinese",
15
+ "bert_chinese",
16
+ "moss",
17
+ #
18
+ # ######
19
+ # "chatyuan_large_v2",
20
+ # "prompt_clue",
21
+ #
22
+ # #### bloom 系列
23
+ # "bloom",
24
+ # "bloomz_6b4_zh",
25
+ # "belle_7b_2m", # 模型和词典都基于bloom
26
+ #
27
+ "gpt_nexo_20b",
28
+ # "gpt_neox_chinese_v1",
29
+ #
30
+ # ##### glm系列
31
+ # "glm_chinese",
32
+ "chatglm",
33
+ #
34
+ # #### llama alpaca系列
35
+ "llama", # '中文单字': 700, '中文多字': 0
36
+ "chinese_llama_lora_7b", #
37
+ # "chinese_alpaca_lora_7b", # 中文Alpaca模型在上述中文LLaMA模型的基础上进一步使用了指令数据进行精调。
38
+ # "belle_llama_ext_7b",
39
+ # "alpaca_7b",
40
+ "baichuan_7b",
41
+ "qwen"
42
+ ]
43
+
44
+
45
+
46
+ class TokenizerType(Enum):
47
+ """
48
+ - https://huggingface.co/docs/transformers/tokenizer_summary
49
+ - https://github.com/EleutherAI/gpt-neox/blob/main/megatron/tokenizer/tokenizer.py
50
+ - https://github.com/google/sentencepiece/blob/3863f7648e5d8edb571ac592f3ac4f5f0695275a/src/sentencepiece_model.proto#L48
51
+ - UNIGRAM = 1; // Unigram language model with dynamic algorithm
52
+ - BPE = 2; // Byte Pair Encoding
53
+ - WORD = 3; // Delimitered by whitespace.
54
+ - CHAR = 4; // tokenizes into character sequence
55
+ """
56
+ BPE = auto()
57
+ ByteBPE = auto() # BBPE Byte-Level BPE
58
+ GPT2BPETokenizer = auto() #
59
+ BERTTokenizer = auto()
60
+
61
+
62
+ # class TokenizerType(Enum):
63
+ #
64
+ # # BERTTokenizer
65
+ # # 依赖一个txt文件
66
+ #
67
+ #
68
+ # # https://github.com/EleutherAI/gpt-neox/blob/v2.0/megatron/tokenizer/tokenizer.py#L231
69
+ # # 依赖一个json文件,Tokenizer.from_file(vocab_file)
70
+ # # 案例:gpt-neox-20B
71
+ # HFTokenizer = auto()
72
+ #
73
+ # # 依赖: model_file, sentencepiece.SentencePieceProcessor(model_file)
74
+ # # 案例:
75
+ # SentencePieceTokenizer = auto()
76
+ #
77
+ #
78
+ # # 依赖: 3个json文件:vocab.json, merges.txt, special_tokens.txt
79
+ # # 源码:
80
+ # # - https://github.com/NVIDIA/Megatron-LM/blob/main/megatron/tokenizer/gpt2_tokenization.py#L92
81
+ # # Byte-level BPE
82
+ # GPT2BPETokenizer = auto()
83
+
84
+
85
+ class TokenizerImpl(Enum):
86
+ """
87
+ """
88
+ SentencePiece = auto() #
89
+
90
+ # https://github.com/huggingface/transformers/blob/v4.30.2/src/transformers/models/gpt2/tokenization_gpt2.py#L104
91
+ # 构造词典:
92
+ #
93
+ GPT2Tokenizer = auto()
94
+ BertTokenizer = auto() #
95
+
96
+
97
+
98
+ def load_tokener(model_name):
99
+ tokenizer = importlib.import_module("." + model_name, 'vocab').tokenizer
100
+ return tokenizer
101
+
102
+ if __name__ == "__main__":
103
+ pass
vocab/albert/__init__.py ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ """
2
+
3
+ SentencePiece(unigram)
4
+
5
+ https://huggingface.co/docs/transformers/tokenizer_summary#sentencepiece
6
+ """
vocab/alpaca_7b/README.md ADDED
File without changes
vocab/baichuan_7b/Baichuan-7B/config.json ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "BaiChuanForCausalLM"
4
+ ],
5
+ "auto_map": {
6
+ "AutoConfig": "configuration_baichuan.BaiChuanConfig",
7
+ "AutoModelForCausalLM": "modeling_baichuan.BaiChuanForCausalLM"
8
+ },
9
+ "bos_token_id": 1,
10
+ "eos_token_id": 2,
11
+ "hidden_act": "silu",
12
+ "hidden_size": 4096,
13
+ "initializer_range": 0.02,
14
+ "intermediate_size": 11008,
15
+ "max_position_embeddings": 4096,
16
+ "model_type": "baichuan",
17
+ "num_attention_heads": 32,
18
+ "num_hidden_layers": 32,
19
+ "pad_token_id": 0,
20
+ "rms_norm_eps": 1e-06,
21
+ "tie_word_embeddings": false,
22
+ "torch_dtype": "float32",
23
+ "transformers_version": "4.29.1",
24
+ "use_cache": true,
25
+ "vocab_size": 64000
26
+ }
vocab/baichuan_7b/Baichuan-7B/configuration_baichuan.py ADDED
@@ -0,0 +1,66 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # coding=utf-8
2
+ # Copyright 2022 EleutherAI and the HuggingFace Inc. team. All rights reserved.
3
+ #
4
+ # This code is based on EleutherAI's GPT-NeoX library and the GPT-NeoX
5
+ # and OPT implementations in this library. It has been modified from its
6
+ # original forms to accommodate minor architectural differences compared
7
+ # to GPT-NeoX and OPT used by the Meta AI team that trained the model.
8
+ #
9
+ # Licensed under the Apache License, Version 2.0 (the "License");
10
+ # you may not use this file except in compliance with the License.
11
+ # You may obtain a copy of the License at
12
+ #
13
+ # http://www.apache.org/licenses/LICENSE-2.0
14
+ #
15
+ # Unless required by applicable law or agreed to in writing, software
16
+ # distributed under the License is distributed on an "AS IS" BASIS,
17
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18
+ # See the License for the specific language governing permissions and
19
+ # limitations under the License.
20
+
21
+ from transformers.configuration_utils import PretrainedConfig
22
+ from transformers.utils import logging
23
+
24
+
25
+ logger = logging.get_logger(__name__)
26
+
27
+
28
+ class BaiChuanConfig(PretrainedConfig):
29
+ model_type = "baichuan"
30
+ keys_to_ignore_at_inference = ["past_key_values"]
31
+
32
+ def __init__(
33
+ self,
34
+ vocab_size=64000,
35
+ hidden_size=4096,
36
+ intermediate_size=11008,
37
+ num_hidden_layers=32,
38
+ num_attention_heads=32,
39
+ hidden_act="silu",
40
+ max_position_embeddings=4096,
41
+ initializer_range=0.02,
42
+ rms_norm_eps=1e-6,
43
+ use_cache=True,
44
+ pad_token_id=0,
45
+ bos_token_id=1,
46
+ eos_token_id=2,
47
+ tie_word_embeddings=False,
48
+ **kwargs,
49
+ ):
50
+ self.vocab_size = vocab_size
51
+ self.max_position_embeddings = max_position_embeddings
52
+ self.hidden_size = hidden_size
53
+ self.intermediate_size = intermediate_size
54
+ self.num_hidden_layers = num_hidden_layers
55
+ self.num_attention_heads = num_attention_heads
56
+ self.hidden_act = hidden_act
57
+ self.initializer_range = initializer_range
58
+ self.rms_norm_eps = rms_norm_eps
59
+ self.use_cache = use_cache
60
+ super().__init__(
61
+ pad_token_id=pad_token_id,
62
+ bos_token_id=bos_token_id,
63
+ eos_token_id=eos_token_id,
64
+ tie_word_embeddings=tie_word_embeddings,
65
+ **kwargs,
66
+ )
vocab/baichuan_7b/Baichuan-7B/special_tokens_map.json ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "bos_token": {
3
+ "content": "<s>",
4
+ "lstrip": false,
5
+ "normalized": true,
6
+ "rstrip": false,
7
+ "single_word": false
8
+ },
9
+ "eos_token": {
10
+ "content": "</s>",
11
+ "lstrip": false,
12
+ "normalized": true,
13
+ "rstrip": false,
14
+ "single_word": false
15
+ },
16
+ "unk_token": {
17
+ "content": "<unk>",
18
+ "lstrip": false,
19
+ "normalized": true,
20
+ "rstrip": false,
21
+ "single_word": false
22
+ }
23
+ }
vocab/baichuan_7b/Baichuan-7B/tokenization_baichuan.py ADDED
@@ -0,0 +1,250 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # coding=utf-8
2
+ # Copyright 2022 EleutherAI and the HuggingFace Inc. team. All rights reserved.
3
+ #
4
+ # This code is based on EleutherAI's GPT-NeoX library and the GPT-NeoX
5
+ # and OPT implementations in this library. It has been modified from its
6
+ # original forms to accommodate minor architectural differences compared
7
+ # to GPT-NeoX and OPT used by the Meta AI team that trained the model.
8
+ #
9
+ # Licensed under the Apache License, Version 2.0 (the "License");
10
+ # you may not use this file except in compliance with the License.
11
+ # You may obtain a copy of the License at
12
+ #
13
+ # http://www.apache.org/licenses/LICENSE-2.0
14
+ #
15
+ # Unless required by applicable law or agreed to in writing, software
16
+ # distributed under the License is distributed on an "AS IS" BASIS,
17
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18
+ # See the License for the specific language governing permissions and
19
+ # limitations under the License.
20
+
21
+ import os
22
+ from shutil import copyfile
23
+ from typing import Any, Dict, List, Optional, Tuple
24
+
25
+ import sentencepiece as spm
26
+
27
+ from transformers.tokenization_utils import AddedToken, PreTrainedTokenizer
28
+ from transformers.utils import logging
29
+
30
+
31
+ logger = logging.get_logger(__name__)
32
+
33
+ VOCAB_FILES_NAMES = {"vocab_file": "tokenizer.model"}
34
+
35
+ PRETRAINED_VOCAB_FILES_MAP = {
36
+ "vocab_file": {},
37
+ "tokenizer_file": {},
38
+ }
39
+ PRETRAINED_POSITIONAL_EMBEDDINGS_SIZES = {}
40
+
41
+
42
+ class BaiChuanTokenizer(PreTrainedTokenizer):
43
+ """
44
+ Construct a BaiChuan tokenizer. Based on byte-level Byte-Pair-Encoding.
45
+
46
+ Args:
47
+ vocab_file (`str`):
48
+ Path to the vocabulary file.
49
+ """
50
+
51
+ vocab_files_names = VOCAB_FILES_NAMES
52
+ pretrained_vocab_files_map = PRETRAINED_VOCAB_FILES_MAP
53
+ max_model_input_sizes = PRETRAINED_POSITIONAL_EMBEDDINGS_SIZES
54
+ model_input_names = ["input_ids", "attention_mask"]
55
+
56
+ def __init__(
57
+ self,
58
+ vocab_file,
59
+ unk_token="<unk>",
60
+ bos_token="<s>",
61
+ eos_token="</s>",
62
+ pad_token=None,
63
+ sp_model_kwargs: Optional[Dict[str, Any]] = None,
64
+ add_bos_token=True,
65
+ add_eos_token=False,
66
+ clean_up_tokenization_spaces=False,
67
+ **kwargs,
68
+ ):
69
+ self.sp_model_kwargs = {} if sp_model_kwargs is None else sp_model_kwargs
70
+ bos_token = AddedToken(bos_token, lstrip=False, rstrip=False) if isinstance(bos_token, str) else bos_token
71
+ eos_token = AddedToken(eos_token, lstrip=False, rstrip=False) if isinstance(eos_token, str) else eos_token
72
+ unk_token = AddedToken(unk_token, lstrip=False, rstrip=False) if isinstance(unk_token, str) else unk_token
73
+ pad_token = AddedToken(pad_token, lstrip=False, rstrip=False) if isinstance(pad_token, str) else pad_token
74
+ super().__init__(
75
+ bos_token=bos_token,
76
+ eos_token=eos_token,
77
+ unk_token=unk_token,
78
+ pad_token=pad_token,
79
+ add_bos_token=add_bos_token,
80
+ add_eos_token=add_eos_token,
81
+ sp_model_kwargs=self.sp_model_kwargs,
82
+ clean_up_tokenization_spaces=clean_up_tokenization_spaces,
83
+ **kwargs,
84
+ )
85
+ self.vocab_file = vocab_file
86
+ self.add_bos_token = add_bos_token
87
+ self.add_eos_token = add_eos_token
88
+ self.sp_model = spm.SentencePieceProcessor(**self.sp_model_kwargs)
89
+ self.sp_model.Load(vocab_file)
90
+
91
+ def __getstate__(self):
92
+ state = self.__dict__.copy()
93
+ state["sp_model"] = None
94
+ return state
95
+
96
+ def __setstate__(self, d):
97
+ self.__dict__ = d
98
+ self.sp_model = spm.SentencePieceProcessor(**self.sp_model_kwargs)
99
+ self.sp_model.Load(self.vocab_file)
100
+
101
+ @property
102
+ def vocab_size(self):
103
+ """Returns vocab size"""
104
+ return self.sp_model.get_piece_size()
105
+
106
+ def get_vocab(self):
107
+ """Returns vocab as a dict"""
108
+ vocab = {self.convert_ids_to_tokens(i): i for i in range(self.vocab_size)}
109
+ vocab.update(self.added_tokens_encoder)
110
+ return vocab
111
+
112
+ def _tokenize(self, text):
113
+ """Returns a tokenized string."""
114
+ return self.sp_model.encode(text, out_type=str)
115
+
116
+ def _convert_token_to_id(self, token):
117
+ """Converts a token (str) in an id using the vocab."""
118
+ return self.sp_model.piece_to_id(token)
119
+
120
+ def _convert_id_to_token(self, index):
121
+ """Converts an index (integer) in a token (str) using the vocab."""
122
+ token = self.sp_model.IdToPiece(index)
123
+ return token
124
+
125
+ def convert_tokens_to_string(self, tokens):
126
+ """Converts a sequence of tokens (string) in a single string."""
127
+ current_sub_tokens = []
128
+ out_string = ""
129
+ prev_is_special = False
130
+ for i, token in enumerate(tokens):
131
+ # make sure that special tokens are not decoded using sentencepiece model
132
+ if token in self.all_special_tokens:
133
+ if not prev_is_special and i != 0:
134
+ out_string += " "
135
+ out_string += self.sp_model.decode(current_sub_tokens) + token
136
+ prev_is_special = True
137
+ current_sub_tokens = []
138
+ else:
139
+ current_sub_tokens.append(token)
140
+ prev_is_special = False
141
+ out_string += self.sp_model.decode(current_sub_tokens)
142
+ return out_string
143
+
144
+ def save_vocabulary(self, save_directory, filename_prefix: Optional[str] = None) -> Tuple[str]:
145
+ """
146
+ Save the vocabulary and special tokens file to a directory.
147
+
148
+ Args:
149
+ save_directory (`str`):
150
+ The directory in which to save the vocabulary.
151
+
152
+ Returns:
153
+ `Tuple(str)`: Paths to the files saved.
154
+ """
155
+ if not os.path.isdir(save_directory):
156
+ logger.error(f"Vocabulary path ({save_directory}) should be a directory")
157
+ return
158
+ out_vocab_file = os.path.join(
159
+ save_directory, (filename_prefix + "-" if filename_prefix else "") + VOCAB_FILES_NAMES["vocab_file"]
160
+ )
161
+
162
+ if os.path.abspath(self.vocab_file) != os.path.abspath(out_vocab_file) and os.path.isfile(self.vocab_file):
163
+ copyfile(self.vocab_file, out_vocab_file)
164
+ elif not os.path.isfile(self.vocab_file):
165
+ with open(out_vocab_file, "wb") as fi:
166
+ content_spiece_model = self.sp_model.serialized_model_proto()
167
+ fi.write(content_spiece_model)
168
+
169
+ return (out_vocab_file,)
170
+
171
+ def build_inputs_with_special_tokens(self, token_ids_0, token_ids_1=None):
172
+ bos_token_id = [self.bos_token_id] if self.add_bos_token else []
173
+ eos_token_id = [self.eos_token_id] if self.add_eos_token else []
174
+
175
+ output = bos_token_id + token_ids_0 + eos_token_id
176
+
177
+ if token_ids_1 is not None:
178
+ output = output + bos_token_id + token_ids_1 + eos_token_id
179
+
180
+ return output
181
+
182
+ def get_special_tokens_mask(
183
+ self, token_ids_0: List[int], token_ids_1: Optional[List[int]] = None, already_has_special_tokens: bool = False
184
+ ) -> List[int]:
185
+ """
186
+ Retrieve sequence ids from a token list that has no special tokens added. This method is called when adding
187
+ special tokens using the tokenizer `prepare_for_model` method.
188
+
189
+ Args:
190
+ token_ids_0 (`List[int]`):
191
+ List of IDs.
192
+ token_ids_1 (`List[int]`, *optional*):
193
+ Optional second list of IDs for sequence pairs.
194
+ already_has_special_tokens (`bool`, *optional*, defaults to `False`):
195
+ Whether or not the token list is already formatted with special tokens for the model.
196
+
197
+ Returns:
198
+ `List[int]`: A list of integers in the range [0, 1]: 1 for a special token, 0 for a sequence token.
199
+ """
200
+ if already_has_special_tokens:
201
+ return super().get_special_tokens_mask(
202
+ token_ids_0=token_ids_0, token_ids_1=token_ids_1, already_has_special_tokens=True
203
+ )
204
+
205
+ bos_token_id = [1] if self.add_bos_token else []
206
+ eos_token_id = [1] if self.add_eos_token else []
207
+
208
+ if token_ids_1 is None:
209
+ return bos_token_id + ([0] * len(token_ids_0)) + eos_token_id
210
+ return (
211
+ bos_token_id
212
+ + ([0] * len(token_ids_0))
213
+ + eos_token_id
214
+ + bos_token_id
215
+ + ([0] * len(token_ids_1))
216
+ + eos_token_id
217
+ )
218
+
219
+ def create_token_type_ids_from_sequences(
220
+ self, token_ids_0: List[int], token_ids_1: Optional[List[int]] = None
221
+ ) -> List[int]:
222
+ """
223
+ Creates a mask from the two sequences passed to be used in a sequence-pair classification task. An ALBERT
224
+ sequence pair mask has the following format:
225
+
226
+ ```
227
+ 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1
228
+ | first sequence | second sequence |
229
+ ```
230
+
231
+ if token_ids_1 is None, only returns the first portion of the mask (0s).
232
+
233
+ Args:
234
+ token_ids_0 (`List[int]`):
235
+ List of ids.
236
+ token_ids_1 (`List[int]`, *optional*):
237
+ Optional second list of IDs for sequence pairs.
238
+
239
+ Returns:
240
+ `List[int]`: List of [token type IDs](../glossary#token-type-ids) according to the given sequence(s).
241
+ """
242
+ bos_token_id = [self.bos_token_id] if self.add_bos_token else []
243
+ eos_token_id = [self.eos_token_id] if self.add_eos_token else []
244
+
245
+ output = [0] * len(bos_token_id + token_ids_0 + eos_token_id)
246
+
247
+ if token_ids_1 is not None:
248
+ output += [1] * len(bos_token_id + token_ids_1 + eos_token_id)
249
+
250
+ return output
vocab/baichuan_7b/Baichuan-7B/tokenizer.model ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4be54af290d93c113bcbf421115ae9eed9d6340408f564898f1e966dc738ef01
3
+ size 1136699
vocab/baichuan_7b/Baichuan-7B/tokenizer_config.json ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "auto_map": {
3
+ "AutoTokenizer": ["tokenization_baichuan.BaiChuanTokenizer", null]
4
+ },
5
+ "add_bos_token": false,
6
+ "add_eos_token": false,
7
+ "bos_token": {
8
+ "__type": "AddedToken",
9
+ "content": "<s>",
10
+ "lstrip": false,
11
+ "normalized": true,
12
+ "rstrip": false,
13
+ "single_word": false
14
+ },
15
+ "clean_up_tokenization_spaces": false,
16
+ "eos_token": {
17
+ "__type": "AddedToken",
18
+ "content": "</s>",
19
+ "lstrip": false,
20
+ "normalized": true,
21
+ "rstrip": false,
22
+ "single_word": false
23
+ },
24
+ "model_max_length": 1000000000000000019884624838656,
25
+ "sp_model_kwargs": {},
26
+ "tokenizer_class": "BaiChuanTokenizer",
27
+ "unk_token": {
28
+ "__type": "AddedToken",
29
+ "content": "<unk>",
30
+ "lstrip": false,
31
+ "normalized": true,
32
+ "rstrip": false,
33
+ "single_word": false
34
+ }
35
+ }
vocab/baichuan_7b/__init__.py ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ from transformers import AutoTokenizer
2
+ from vocab import TokenizerType
3
+
4
+ tokenizer = AutoTokenizer.from_pretrained("baichuan-inc/Baichuan-7B", trust_remote_code=True)
5
+
6
+
7
+ # byte-bpe sentencepiece
8
+ tokenizer.type = TokenizerType.ByteBPE
vocab/belle_7b_2m/README.md ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+
2
+ 采用的bloom词典
3
+
vocab/belle_7b_2m/__init__.py ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+
2
+ import os
3
+ from transformers import AutoTokenizer
4
+
5
+ CURRENT_DIR = os.path.dirname(os.path.abspath(__file__))
6
+ TOKENIZER_DIR = os.path.join(CURRENT_DIR, "belle-7b-2m")
7
+
8
+ tokenizer = AutoTokenizer.from_pretrained(TOKENIZER_DIR)
vocab/belle_7b_2m/belle-7b-2m/README.md ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+
2
+
3
+ 来自 https://huggingface.co/BelleGroup/BELLE-7B-2M
vocab/belle_7b_2m/belle-7b-2m/config.json ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "apply_residual_connection_post_layernorm": false,
3
+ "architectures": [
4
+ "BloomModel"
5
+ ],
6
+ "attention_dropout": 0.0,
7
+ "attention_softmax_in_fp32": true,
8
+ "bias_dropout_fusion": true,
9
+ "bos_token_id": 1,
10
+ "eos_token_id": 2,
11
+ "hidden_dropout": 0.0,
12
+ "initializer_range": 0.02,
13
+ "layer_norm_epsilon": 1e-05,
14
+ "masked_softmax_fusion": true,
15
+ "model_type": "bloom",
16
+ "n_embed": 4096,
17
+ "n_inner": null,
18
+ "n_layer": 30,
19
+ "num_attention_heads": 32,
20
+ "offset_alibi": 100,
21
+ "pad_token_id": 3,
22
+ "pretraining_tp": 4,
23
+ "seq_length": 2048,
24
+ "skip_bias_add": true,
25
+ "skip_bias_add_qkv": false,
26
+ "slow_but_exact": false,
27
+ "transformers_version": "4.21.0.dev0",
28
+ "unk_token_id": 0,
29
+ "use_cache": true,
30
+ "vocab_size": 250880
31
+ }
vocab/belle_7b_2m/belle-7b-2m/special_tokens_map.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"bos_token": "<s>", "eos_token": "</s>", "unk_token": "<unk>", "pad_token": "<pad>"}
vocab/belle_7b_2m/belle-7b-2m/tokenizer.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3fa39cd4b1500feb205bcce3b9703a4373414cafe4970e0657b413f7ddd2a9d3
3
+ size 14500438
vocab/belle_7b_2m/belle-7b-2m/tokenizer_config.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"unk_token": "<unk>", "eos_token": "</s>", "bos_token": "<s>", "pad_token": "<pad>", "name_or_path": "bigscience/tokenizer", "special_tokens_map_file": null, "tokenizer_class": "BloomTokenizerFast"}
vocab/belle_llama_ext_7b/BELLE-LLaMA-EXT-7B/config.json ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_name_or_path": "/nfs/a100-80G-17/jiyunjie/finetuned_ckpt/hf_llama_7b_expand_belle_tokenizer50k/wudao_200G_pretrain_filter_len2000_instr_l512_epoch=0-step=6400",
3
+ "architectures": [
4
+ "LlamaForCausalLM"
5
+ ],
6
+ "bos_token_id": 1,
7
+ "eos_token_id": 2,
8
+ "hidden_act": "silu",
9
+ "hidden_size": 4096,
10
+ "initializer_range": 0.02,
11
+ "intermediate_size": 11008,
12
+ "model_type": "llama",
13
+ "num_attention_heads": 32,
14
+ "num_hidden_layers": 32,
15
+ "pad_token_id": 0,
16
+ "rms_norm_eps": 1e-06,
17
+ "tie_word_embeddings": false,
18
+ "torch_dtype": "bfloat16",
19
+ "transformers_version": "4.28.0.dev0",
20
+ "use_cache": true,
21
+ "vocab_size": 79458
22
+ }
vocab/belle_llama_ext_7b/BELLE-LLaMA-EXT-7B/generation_config.json ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ {
2
+ "_from_model_config": true,
3
+ "bos_token_id": 1,
4
+ "eos_token_id": 2,
5
+ "pad_token_id": 0,
6
+ "transformers_version": "4.28.0.dev0"
7
+ }
vocab/belle_llama_ext_7b/BELLE-LLaMA-EXT-7B/special_tokens_map.json ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ {
2
+ "bos_token": "<s>",
3
+ "eos_token": "</s>",
4
+ "unk_token": "<unk>"
5
+ }
vocab/belle_llama_ext_7b/BELLE-LLaMA-EXT-7B/tokenizer.model ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0b716a618c9e7c45648f91d997431eba3b0ff111b17ce7b777280ed771a49f95
3
+ size 1268137
vocab/belle_llama_ext_7b/BELLE-LLaMA-EXT-7B/tokenizer_config.json ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "bos_token": "<s>",
3
+ "eos_token": "</s>",
4
+ "model_max_length": 1000000000000000019884624838656,
5
+ "special_tokens_map_file": "/nfs/v100-022/pretrained_ckpt/hf_llama_7b_expand_belle_tokenizer50k_only/special_tokens_map.json",
6
+ "tokenizer_class": "LlamaTokenizer",
7
+ "unk_token": "<unk>"
8
+ }
vocab/belle_llama_ext_7b/README.md ADDED
File without changes
vocab/belle_llama_ext_7b/__init__.py ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ import os
3
+ from transformers import LlamaTokenizer
4
+
5
+ CURRENT_DIR = os.path.dirname(os.path.abspath(__file__))
6
+ TOKENIZER_DIR = os.path.join(CURRENT_DIR, "BELLE-LLaMA-EXT-7B")
7
+
8
+ tokenizer = LlamaTokenizer.from_pretrained(TOKENIZER_DIR)
9
+
10
+
11
+
12
+ # print(tokenizer.tokenize("大道发生"))
vocab/bert_chinese/README.md ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+
2
+ vocab_size: 21128
vocab/bert_chinese/__init__.py ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ import os
3
+ from transformers import AutoTokenizer
4
+
5
+ tokenizer = AutoTokenizer.from_pretrained("bert-base-chinese")
6
+
7
+
8
+
9
+
10
+ # vocab_size = len(tokenizer.get_vocab())
11
+ # vocab_size = tokenizer.vocab_size
vocab/bert_chinese/test.py ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+
2
+ from transformers import AutoTokenizer, AutoModelForMaskedLM
3
+ tokenizer = AutoTokenizer.from_pretrained("bert-base-chinese")
4
+
5
+ tokens = tokenizer.tokenize("明天搜索")
6
+ print(tokens)
vocab/bert_chinese/test_zh_coding_len.py ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ 1. jd_vocab_tokens的中文:
3
+
4
+
5
+
6
+ 2. 中文标点
7
+
8
+
9
+ 3. 全中文(单字) unicode
10
+
11
+
12
+ 4. 全中文()
13
+ 中文汉字数:54230, 中文标点数: 549
14
+ """
15
+
16
+ from collections import Counter
17
+ from transformers import AutoTokenizer
18
+ from data_sample.oov_base import jd_vocab_tokens
19
+ from utils.text_util import is_chinese, has_chinese
20
+ from zhon.hanzi import punctuation as zh_punc
21
+
22
+
23
+ vocab = open("vocab.txt", "r", encoding="utf-8").readlines()
24
+
25
+ def zh_iterator():
26
+ for idx in range(ord(u'\u4e00'), ord(u'\u9fa5')):
27
+ yield (chr(idx))
28
+
29
+
30
+ def test_coding_length(vocab, filter=None):
31
+ all_length = []
32
+ for word in vocab:
33
+ if len(word) > 1:
34
+ continue
35
+ if filter is not None and filter(word):
36
+ continue
37
+ tokens = tokenizer.encode(word)
38
+ all_length.append(len(tokens))
39
+ # if len(tokens.ids) > 1:
40
+ if len(tokens.ids) == 1:
41
+ print(word, tokens.ids)
42
+
43
+ print("编码长度统计:", Counter(all_length))
44
+ print("平均编码长度:", sum(all_length)/len(all_length))
45
+
46
+
47
+ def has_zh_char(text):
48
+ return any(ch in zh_punc for ch in text)
49
+
50
+
51
+ def iter_vocab():
52
+
53
+ f_out = open("vocab.zh.txt", "w", encoding="utf-8")
54
+ zh_token_count = 0
55
+ zh_symbol_count = 0
56
+ for idx, word in enumerate(vocab):
57
+
58
+ if has_chinese(decode_str):
59
+ zh_token_count += 1
60
+ f_out.write("%d\t%s\t中文汉字\n" % (idx, decode_str))
61
+ elif has_zh_char(decode_str):
62
+ zh_symbol_count += 1
63
+ f_out.write("%d\t%s\t中文标点\n" % (idx, decode_str))
64
+
65
+ print("中文汉字数:%d, 中文标点数: %d" % (zh_token_count, zh_symbol_count))
66
+
67
+
68
+ if __name__ == "__main__":
69
+
70
+ # test_coding_length(jd_vocab_tokens, filter=lambda k: not is_chinese(k))
71
+ # test_coding_length(zh_punc)
72
+ # test_coding_length(zh_iterator())
73
+ iter_vocab()
vocab/bert_chinese/tokenizer/config.json ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "BertForMaskedLM"
4
+ ],
5
+ "attention_probs_dropout_prob": 0.1,
6
+ "directionality": "bidi",
7
+ "hidden_act": "gelu",
8
+ "hidden_dropout_prob": 0.1,
9
+ "hidden_size": 768,
10
+ "initializer_range": 0.02,
11
+ "intermediate_size": 3072,
12
+ "layer_norm_eps": 1e-12,
13
+ "max_position_embeddings": 512,
14
+ "model_type": "bert",
15
+ "num_attention_heads": 12,
16
+ "num_hidden_layers": 12,
17
+ "pad_token_id": 0,
18
+ "pooler_fc_size": 768,
19
+ "pooler_num_attention_heads": 12,
20
+ "pooler_num_fc_layers": 3,
21
+ "pooler_size_per_head": 128,
22
+ "pooler_type": "first_token_transform",
23
+ "type_vocab_size": 2,
24
+ "vocab_size": 21128
25
+ }
vocab/bert_chinese/tokenizer/tokenizer.json ADDED
The diff for this file is too large to render. See raw diff
 
vocab/bert_chinese/tokenizer/tokenizer_config.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ {
2
+ "do_lower_case": false
3
+ }
vocab/bert_chinese/tokenizer/vocab.txt ADDED
The diff for this file is too large to render. See raw diff
 
vocab/bert_chinese/vocab.txt ADDED
The diff for this file is too large to render. See raw diff
 
vocab/bert_clue/README.md ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+
2
+ 删除了无用字符,词典更小。增加了少部分
3
+
4
+
5
+ ## 词典大小
6
+
7
+ -
vocab/bert_clue/clue_vocab.py ADDED
@@ -0,0 +1,188 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+
3
+ """
4
+
5
+ import codecs
6
+ import sys
7
+ import re
8
+ from langconv import *
9
+ import emoji
10
+
11
+ emoji_regex = emoji.get_emoji_regexp()
12
+
13
+ human_list = ['▲top', '▲topoct', '▲topmay', '▲topapr', '▲topmar', '▲topjun', '▲topdec', '▲topnov', '▲topaug', '▲topjul',
14
+ '▲topjan', '▲topsep', '▲topfeb', '¥799', '¥2899', '~~', '~~~', '##~6', '##~10', '~10', '##~5', '~5',
15
+ '##~20', '##~8', '##~17', '##~1', '~4', '##~3', '##~7', '~1', 'wedding', '×email', 'cp', '××', 'ok', 'a',
16
+ 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
17
+ 'w', 'x', 'y', 'z', '##★', '##℃', '##~', '##°', '##☆', '↓↓↓', '##●', '##㎡', '##♪', '##×', '▌♥', '##|',
18
+ '##d', '##▲', '##o', '★★', '##→', '#a', '⋯⋯', '##▼', '##○', '★★★★★', '##∥', '##◆', '##ω', '★★★', '##c',
19
+ '##s', '##e', '##p', '##■', '##↑', '##k', '##и', '◆◆', '##g', '##+', '##а', '±0', '##◎', '##─', '##r',
20
+ '##>', '##²', '##t', '★★★★', '##│', '##n', '##l', '##=', '##y', '☆☆☆', '##i', '##↓', 'ˋ▽ˊ', '##v', '↓↓',
21
+ '##f2016', '##q', '##₂', '∟∣', '##я', '##←', '##◆◆', '##x', '##cm~', '##f', '##h', '##j', '##u', '##w',
22
+ '##z']
23
+
24
+ zhuyin_char = ['ㄅ', 'ㄆ', 'ㆠ', 'ㄇ', 'ㄈ', 'ㄪ', 'ㄉ', 'ㄊ', 'ㄋ', 'ㆹ', 'ㄌ', 'ㄍ', 'ㄎ', 'ㆣ', 'ㄫ', 'ㄏ', 'ㆸ', 'ㄐ', 'ㄑ', 'ㆢ', 'ㄬ',
25
+ 'ㄒ', 'ㆺ', 'ㄓ', 'ㄔ', 'ㄕ', 'ㄖ', 'ㄗ', 'ㄘ', 'ㆡ', 'ㄙ', 'ㆡ', 'ㆪ', 'ㄨ', 'ㆫ', 'ㆨ', 'ㄩ', 'ㄚ', 'ㆩ', 'ㆦ', 'ㆧ', 'ㄛ',
26
+ 'ㄜ', 'ㄝ', 'ㆤ', 'ㆥ', 'ㄞ', 'ㆮ', 'ㄟ', 'ㄠ', 'ㆯ', 'ㄡ', 'ㆰ', 'ㆱ', 'ㆬ', 'ㄢ', 'ㄣ', 'ㄯ', 'ㄤ', 'ㆲ', 'ㄥ', 'ㆭ', 'ㄦ',
27
+ 'ㄭ']
28
+
29
+ special_token = ['[PAD]', '[UNK]', '[CLS]', '[SEP]', '[MASK]', '<S>', '<T>']
30
+
31
+ japan_chars = ['イ', 'ク', 'シ', 'ス', 'ト', 'ノ', 'フ', 'ラ', 'ル', 'ン']
32
+
33
+ korean_chars = ['ᄀ', 'ᄁ', 'ᄂ', 'ᄃ', 'ᄅ', 'ᄆ', 'ᄇ', 'ᄈ', 'ᄉ', 'ᄋ', 'ᄌ', 'ᄎ', 'ᄏ', 'ᄐ', 'ᄑ', 'ᄒ', 'ᅡ', 'ᅢ', 'ᅣ', 'ᅥ', 'ᅦ',
34
+ 'ᅧ', 'ᅨ', 'ᅩ', 'ᅪ', 'ᅬ', 'ᅭ', 'ᅮ', 'ᅯ', 'ᅲ', 'ᅳ', 'ᅴ', 'ᅵ', 'ᆨ', 'ᆫ', 'ᆯ', 'ᆷ', 'ᆸ', 'ᆺ', 'ᆻ', 'ᆼ', 'ᗜ']
35
+
36
+ puns = ['“', '‘']
37
+
38
+ nums = ['10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27',
39
+ '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '40', '41', '42', '43', '44', '45',
40
+ '46', '47', '48', '49', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '60', '61', '62', '63',
41
+ '64', '65', '66', '67', '68', '69', '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '80', '81',
42
+ '82', '83', '84', '85', '86', '87', '88', '89', '90', '91', '92', '93', '94', '95', '96', '97', '98', '99',
43
+ '100', '2016', '2017', '2018', '2019', '2020', '2021', '2022']
44
+
45
+ with open('vocab.google.txt', 'r', encoding='utf8') as fin, \
46
+ open('vocab.clue.txt', 'w', encoding='utf8') as fout:
47
+ cout_zh = 0
48
+ cout_en = 0
49
+ cout_jp = 0
50
+ cout_em = 0
51
+ cout_zh_res = 0
52
+ cout_zh_tra = 0
53
+ cout_zh_wp = 0
54
+ cout_en_del = 0
55
+ cout_en_res = 0
56
+ cout_num = 0
57
+ cout_num_del = 0
58
+ cout_num_res = 0
59
+ cout_hand_del = 0
60
+ cout_total = 0
61
+ cout_zhuyin = 0
62
+ cout_unused = 0
63
+ cout_special = 0
64
+ cout_jp = 0
65
+ cout_ko = 0
66
+
67
+ for line in fin:
68
+ cout_total += 1
69
+ token = line.strip()
70
+
71
+ if not token:
72
+ continue
73
+
74
+ if token in human_list:
75
+ cout_hand_del += 1 # 13
76
+ continue
77
+
78
+ # chinese character
79
+ elif re.match(u'[\u4e00-\u9fa5]+', token.replace('##', '')):
80
+ cout_zh += 1 # 14642
81
+
82
+ token_simp = Converter('zh-hans').convert(token)
83
+ if token_simp != token:
84
+ cout_zh_tra += 1
85
+ continue
86
+ else:
87
+ if re.match(u'##', token):
88
+ # print(token)
89
+ cout_zh_wp += 1
90
+ continue
91
+ else:
92
+ cout_zh_res += 1
93
+ print(token, file=fout)
94
+
95
+ # korean character
96
+ elif re.match(u'[\uac00-\ud7ff]+', token.replace('##', '')):
97
+ # print(token)
98
+ cout_ko += 1
99
+ continue
100
+
101
+ # japanese character
102
+ elif re.match(u'[\u30a0-\u30ff\u3040-\u309f]+', token.replace('##', '')):
103
+ # print(token)
104
+ cout_jp += 1
105
+ continue
106
+
107
+ # english character
108
+ elif re.match(u'[a-z]+', token.replace('##', '')):
109
+ # print(token)
110
+ cout_en += 1
111
+ if re.match(u'##', token):
112
+ # print(token)
113
+ cout_en_res += 1
114
+ print(token, file=fout)
115
+ elif len(token) > 1:
116
+ # print(token)
117
+ cout_en_del += 1
118
+ continue
119
+ else:
120
+ # print(token)
121
+ cout_en_res += 1
122
+ print(token, file=fout)
123
+
124
+ # emoji character
125
+ elif re.match(emoji_regex, token.replace('##', '')):
126
+ # print(token)
127
+ cout_em += 1
128
+ continue
129
+
130
+ # multi-number characters
131
+ elif re.match(u'(##)?\d', token):
132
+ cout_num += 1
133
+ if len(token.replace('##', '')) == 1:
134
+ # print(token)
135
+ cout_num_res += 1
136
+ print(token, file=fout)
137
+ else:
138
+ cout_num_del += 1
139
+ # print(token)
140
+ continue
141
+ elif token.replace('##', '') in zhuyin_char:
142
+ # print(token, file=fout)
143
+ cout_zhuyin += 1
144
+ continue
145
+ elif token.startswith('[unused'):
146
+ print(token, file=fout)
147
+ cout_unused += 1
148
+ elif token in special_token:
149
+ print(token, file=fout)
150
+ cout_special += 1
151
+
152
+ elif token.replace('##', '') in japan_chars:
153
+ cout_jp += 1
154
+ continue
155
+
156
+ elif token.replace('##', '') in korean_chars:
157
+ cout_ko += 1
158
+ continue
159
+ else:
160
+ # print(token)
161
+ print(token, file=fout)
162
+
163
+ # add tokens
164
+ if token == '"':
165
+ for token in puns:
166
+ print(token, file=fout)
167
+ if token == '9':
168
+ for token in nums:
169
+ cout_num_res += 1
170
+ print(token, file=fout)
171
+
172
+ print("cout_zh:{}".format(cout_zh)) # 14642
173
+ print("cout_zh_tra:{}".format(cout_zh_tra)) # 3264
174
+ print("cout_zh_wp:{}".format(cout_zh_wp)) # 5689
175
+ print("cout_zh_res:{}".format(cout_zh_res)) # 5689
176
+ print("cout_en:{}".format(cout_en)) # 3555
177
+ print("cout_en_del:{}".format(cout_en_del)) # 2235
178
+ print("cout_en_res:{}".format(cout_en_res)) # 1320
179
+ print("cout_num:{}".format(cout_num)) # 1179
180
+ print("cout_num_del:{}".format(cout_num_del)) # 1137
181
+ print("cout_num_res:{}".format(cout_num_res)) # 140
182
+ print("cout_hand_del:{}".format(cout_hand_del)) # 132
183
+ print("cout_zhuyin:{}".format(cout_zhuyin)) # 36
184
+ print("cout_unused:{}".format(cout_unused)) # 99
185
+ print("cout_special:{}".format(cout_special)) # 7
186
+ print("cout_jp:{}".format(cout_jp)) # 573
187
+ print("cout_ko:{}".format(cout_ko)) # 84
188
+ print("cout_em:{}".format(cout_em)) # 56