├── .gitignore
├── LICENSE
├── README.md
├── data
└── 2016-01-02.txt
├── result1.jpg
├── result2.jpg
├── spider.py
└── utils
├── __init__.py
├── __pycache__
├── __init__.cpython-36.pyc
└── docid.cpython-36.pyc
├── docid.js
├── docid.py
├── getGuid.js
└── getVl5x.js
/.gitignore:
--------------------------------------------------------------------------------
1 | processing.py
2 | utils/行政区划代码.txt
3 | .idea
4 |
5 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2019 Yifan Wu
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # A spider for China Judgements Online
2 | ## ***This project is no longer maintained and for reference only***
3 |
4 | ***It is only used for personal study and technical exchange, and cannot be used for commercial purposes.***
5 | ## Overview
6 | This is a spider for [中国裁判文书网](http://wenshu.court.gov.cn/).
7 | ## Features
8 | - Support IP proxy
9 | - Support multiple processes
10 | - Support full crawling
11 | - Divide data according to decision time, region and court
12 | ## Run
13 | ```Shell
14 | python spider.py -num_processes 1 -start_time 2016-1-2 -end_time 2016-1-2
15 | ```
16 | ## Results
17 | - raw data
18 |
19 | 
20 | - processed data
21 |
22 | 
23 |
24 | 推荐一个付费好用的代理SmartProxy:
25 | 代理IP池项目,它主打1亿真实住宅IP资源,专业海外http代理商,千万级优质资源,覆盖全球城市,高匿稳定提供100%原生住宅IP,支持社交账户、电商平台、网络数据收集等服务。
26 | 提供API和账密提取使用方式,动态和静态住宅代理均有,大部分是真人住宅IP,成功率很赞,本人测试用过之后感觉很不错。
27 | 现在付费套餐选择多样,春季价格很优惠,动态住宅代理只要65折!需要高质量代理IP的可以注册后联系客服购买,比直接购买会优惠一点。
28 |
29 |
30 |

31 |
32 |
33 | 官网链接:https://www.smartproxy.cn/
34 |
35 | 专属注册链接:[https://www.smartproxy.cn/regist](https://www.smartproxy.cn/regist?invite=3LPPK2)
36 |
--------------------------------------------------------------------------------
/result1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuyifan18/spider/d96f53f0a8091b18d24dfa677fbc54416a122881/result1.jpg
--------------------------------------------------------------------------------
/result2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuyifan18/spider/d96f53f0a8091b18d24dfa677fbc54416a122881/result2.jpg
--------------------------------------------------------------------------------
/spider.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | # coding=utf-8
3 | import argparse
4 | import requests
5 | import execjs
6 | import json
7 | import multiprocessing
8 | import time
9 | import re
10 | import datetime
11 | from utils.docid import getkey, decode_docid
12 | import os
13 | import random
14 |
15 |
16 | class SpiderManager(object):
17 |
18 | def __init__(self):
19 |
20 | self.url = "http://wenshu.court.gov.cn/List/List?sorttype=1{}"
21 | self.detailurl = "http://wenshu.court.gov.cn/CreateContentJS/CreateContentJS.aspx?DocID={}"
22 | self.conditions = []
23 | self.url_for_content = "http://wenshu.court.gov.cn/List/ListContent"
24 | self.proxies = []
25 | self.headers_getvjkl5 = {
26 | "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3",
27 | "Accept-Language": "zh-CN,zh;q=0.9",
28 | "Connection": "keep-alive",
29 | "Cookie": "",
30 | "DNT": "1",
31 | "Host": "wenshu.court.gov.cn",
32 | "Upgrade-Insecure-Requests": "1",
33 | "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36"
34 | }
35 | self.headers_getdata = {
36 | "Accept": "*/*",
37 | "Accept-Language": "zh-CN,zh;q=0.9",
38 | "Connection": "keep-alive",
39 | "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8",
40 | "Cookie": "",
41 | "DNT": "1",
42 | "Host": "wenshu.court.gov.cn",
43 | "Origin": "http://wenshu.court.gov.cn",
44 | "Referer": "http://wenshu.court.gov.cn/list/list/?sorttype=1&conditions=searchWord+5+AJLX++%E6%A1%88%E4%BB%B6%E7%B1%BB%E5%9E%8B:%E6%89%A7%E8%A1%8C%E6%A1%88%E4%BB%B6&conditions=searchWord++CPRQ++%E8%A3%81%E5%88%A4%E6%97%A5%E6%9C%9F:2016-01-04%20TO%202016-01-04&conditions=searchWord+%E5%8C%97%E4%BA%AC%E5%B8%82+++%E6%B3%95%E9%99%A2%E5%9C%B0%E5%9F%9F:%E5%8C%97%E4%BA%AC%E5%B8%82",
45 | "X-Requested-With": "XMLHttpRequest",
46 | "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36"
47 | }
48 | self.headers_getdetail = {
49 | "Accept": "text/javascript, application/javascript, */*",
50 | "Accept-Language": "zh-CN,zh;q=0.9",
51 | "Connection": "keep-alive",
52 | "Cookie": "",
53 | "DNT": "1",
54 | "Host": "wenshu.court.gov.cn",
55 | "Referer": "http://wenshu.court.gov.cn/content/content?DocID=e282e679-92f9-49ce-afae-c401fbafedec&KeyWord=",
56 | "X-Requested-With": "XMLHttpRequest",
57 | "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36"
58 | }
59 | self.data = {
60 | "Param": "案件类型:执行案件,",
61 | "Index": "1",
62 | "Page": "10",
63 | "Order": "法院层级",
64 | "Direction": "asc",
65 | "vl5x": "",
66 | "number": "wens",
67 | "guid": ""
68 | }
69 |
70 | def setconditions(self, conditions):
71 | self.conditions = conditions
72 |
73 | def setdatacookies(self, cookies):
74 | self.headers_getdata["Cookie"] = cookies
75 |
76 | def setdetailcookies(self, cookies):
77 | self.headers_getdetail["Cookie"] = cookies
78 |
79 | @staticmethod
80 | def getguid():
81 | with open('utils/getGuid.js') as fp:
82 | js = fp.read()
83 | ctx = execjs.compile(js)
84 | return ctx.call('getGuid')
85 |
86 | def getvjkl5(self):
87 | request_url = self.url.format(self.conditions)
88 | while True:
89 | try:
90 | response = requests.post(request_url, headers=self.headers_getvjkl5, timeout=(3.05, 27), proxies={'http': self.proxies})
91 | response.close()
92 | break
93 | except (requests.exceptions.ChunkedEncodingError, requests.exceptions.InvalidURL, requests.exceptions.ProxyError, requests.exceptions.ConnectionError, requests.exceptions.ConnectTimeout, requests.exceptions.ReadTimeout)as e:
94 | print('id: {}, getvjk15: {}'.format(os.getpid(), e))
95 | self.proxies = getIP()
96 | return response.cookies["vjkl5"], response.cookies["wzws_cid"]
97 |
98 | @staticmethod
99 | def getvl5x(vjkl5):
100 | with open('utils/getVl5x.js') as fp:
101 | js = fp.read()
102 | ctx = execjs.compile(js)
103 | return ctx.call('getVl5x', vjkl5)
104 |
105 | def getData(self, page, date, area, court):
106 | if court == '中级法院:':
107 | self.data['Param'] = self.data['Param'] + date + ',' + area
108 | else:
109 | self.data['Param'] = self.data['Param'] + date + ',' + area + ',' + court
110 | self.data["Index"] = page
111 | q = 0
112 | while True:
113 | try:
114 | vjkl5, wzws_cid = self.getvjkl5()
115 | self.data["vl5x"] = self.getvl5x(vjkl5)
116 | self.data["guid"] = self.getguid()
117 | self.setdatacookies("wzws_cid={}; vjkl5={}".format(wzws_cid, vjkl5))
118 | self.setdetailcookies("wzws_cid={}; vjkl5={}".format(wzws_cid, vjkl5))
119 | rsp = requests.post(self.url_for_content, headers=self.headers_getdata, data=self.data, timeout=(3.05, 27), proxies={'http': self.proxies})
120 | rsp.close()
121 | if rsp.text[-3] == ',' and q == 1:
122 | q = 0
123 | return 'null', 'null'
124 | if rsp.text[-3] == ',':
125 | q = q + 1
126 | continue
127 | infodata = json.loads(json.loads(rsp.text))
128 | htmldata = self.getDetails(infodata)
129 | break
130 | except (KeyError, requests.exceptions.ChunkedEncodingError, requests.exceptions.InvalidURL, requests.exceptions.ProxyError, requests.exceptions.ConnectionError, requests.exceptions.ConnectTimeout, requests.exceptions.ReadTimeout)as e:
131 | print('id: {}, getData: {}'.format(os.getpid(), e))
132 | self.proxies = getIP()
133 | except (ValueError, execjs._exceptions.ProcessExitedWithNonZeroStatus, UnicodeDecodeError, IndexError) as e:
134 | print('id: {}, getKey: {}'.format(os.getpid(), e))
135 | self.proxies = getIP()
136 | return infodata, htmldata
137 |
138 | def getDetails(self, infodata):
139 | htmldata = []
140 | format_key_str = infodata[0]['RunEval']
141 | key = getkey(format_key_str).encode('utf-8')
142 | for x in infodata[1:]:
143 | iid = x['文书ID']
144 | docid = decode_docid(iid, key)
145 | if docid == '':
146 | continue
147 | request_url = self.detailurl.format(docid)
148 | while True:
149 | try:
150 | response = requests.post(request_url, headers=self.headers_getdetail, timeout=(3.05, 27), proxies={'http': self.proxies})
151 | response.close()
152 | jsonHtmlData = re.findall('var jsonHtmlData = "({.*?}";)', response.text)
153 | jsonHtmlData = json.loads(jsonHtmlData[0][:-2].replace('\\', ''), strict=False)['Html']
154 | htmldata.append(jsonHtmlData)
155 | break
156 | except (requests.exceptions.ChunkedEncodingError, requests.exceptions.InvalidURL, requests.exceptions.ProxyError, requests.exceptions.ConnectionError, requests.exceptions.ConnectTimeout, requests.exceptions.ReadTimeout)as e:
157 | print('id: {}, getDetails: {}'.format(os.getpid(), e))
158 | self.proxies = getIP()
159 | except IndexError:
160 | print('id: {}, 验证码: {}'.format(os.getpid(), response.text))
161 | self.proxies = getIP()
162 | return htmldata
163 |
164 | @staticmethod
165 | def save(infodata, htmldata, area, date):
166 | with open('data/' + date + '.txt', 'a+', encoding='utf-8') as fp:
167 | for item, html in zip(infodata, htmldata):
168 | row = '\t'.join(
169 | (item.get('裁判日期', ""), area, item.get('案件名称', ""), item.get('法院名称', ""), item.get('案号', ""), html))
170 | fp.write(row + '\n')
171 |
172 |
173 | def getIP():
174 | # while True:
175 | # try:
176 | # time.sleep(random.randint(2, 3))
177 | # response = requests.get('http://webapi.http.zhimacangku.com/getip?num=1&type=1&pro=&city=0&yys=0&port=1&time=1&ts=0&ys=0&cs=0&lb=1&sb=0&pb=45&mr=1®ions=')
178 | # ip = response.text.strip()
179 | # return ip
180 | # except (requests.exceptions.ChunkedEncodingError, requests.exceptions.InvalidURL, requests.exceptions.ProxyError, requests.exceptions.ConnectionError, requests.exceptions.ConnectTimeout, requests.exceptions.ReadTimeout)as e:
181 | # print('id: {}, getIP: {}'.format(os.getpid(), e))
182 | return ''
183 |
184 |
185 | def f(para):
186 | page, date, area, proxies, court = para.split(',')
187 | spider = SpiderManager()
188 | if court == '':
189 | spider.setconditions('&conditions=searchWord+5+AJLX++案件类型:执行案件&conditions=searchWord++CPRQ++{0}&conditions=searchWord+{1}+++法院地域:{1}'.format(date, area))
190 | else:
191 | spider.setconditions('&conditions=searchWord+5+AJLX++案件类型:执行案件&conditions=searchWord++CPRQ++{0}&conditions=searchWord+{1}+++法院地域:{1}&conditions=searchWord+{2}+++中级法院:{2}'.format(date, area, court))
192 | spider.proxies = proxies
193 | infodata, htmldata = spider.getData(page=page, date=date, area='法院地域:' + area, court='中级法院:' + court)
194 | if infodata == 'null':
195 | return 0, spider.proxies
196 | if court == '' and int(infodata[0]['Count']) > 200:
197 | spider.data['parval'] = area
198 | while True:
199 | try:
200 | rsp = requests.post('http://wenshu.court.gov.cn/List/CourtTreeContent', headers=spider.headers_getdata, data=spider.data, timeout=(3.05, 27), proxies={'http': spider.proxies})
201 | rsp.close()
202 | courtlist = [i['Key'] for i in json.loads(json.loads(rsp.text))[0]['Child'] if i['Key'] != '']
203 | break
204 | except (json.decoder.JSONDecodeError, requests.exceptions.ChunkedEncodingError, requests.exceptions.InvalidURL, requests.exceptions.ProxyError, requests.exceptions.ConnectionError, requests.exceptions.ConnectTimeout,
205 | requests.exceptions.ReadTimeout) as e:
206 | print('id: {}, getCourt: {}'.format(os.getpid(), e))
207 | spider.proxies = getIP()
208 | return courtlist, spider.proxies
209 | if infodata != 'null':
210 | spider.save(infodata[1:], htmldata, area, date.split()[-1])
211 | return int(infodata[0]['Count']), spider.proxies
212 |
213 |
214 | def getCount(page, date, area, ip, court):
215 | page_start = time.time()
216 | count, _ = f(page + ',' + date + ',' + area + ',' + ip + ',' + court)
217 | page_end = time.time()
218 | if isinstance(count, list):
219 | return 'null', count
220 | total = count
221 | count = min(count, 200)
222 | page_count = count // 10 if count % 10 == 0 and count >= 10 else count // 10 + 1
223 | if court == '':
224 | print('id: {}, date: {}, area: {}, total_count: {}, done: {}/{}, using time: {:.2f}'.format(os.getpid(), date.split()[-1], area, total, 1, page_count, page_end - page_start))
225 | else:
226 | print('id: {}, date: {}, area: {}, court: {}, total_count: {}, done: {}/{}, using time: {:.2f}'.format(os.getpid(), date.split()[-1], area, court, total, 1, page_count, page_end - page_start))
227 | return page_count, total
228 |
229 |
230 | def fun(date):
231 | area = ['北京市', '天津市', '上海市', '重庆市', '河北省', '山西省', '辽宁省', '吉林省', '黑龙江省', '江苏省', '浙江省', '安徽省', '福建省', '江西省',
232 | '山东省', '河南省', '湖北省', '湖南省', '广东省', '海南省', '四川省', '贵州省', '云南省', '陕西省', '甘肃省', '青海省',
233 | '内蒙古自治区', '广西壮族自治区', '西藏自治区', '宁夏回族自治区', '新疆维吾尔自治区', '新疆维吾尔自治区高级人民法院生产建设兵团分院']
234 | # while True:
235 | # try:
236 | # response = requests.get('http://webapi.http.zhimacangku.com/getip?num=1&type=1&pro=&city=0&yys=0&port=1&time=1&ts=0&ys=0&cs=0&lb=1&sb=0&pb=45&mr=1®ions=')
237 | # ip = response.text.strip()
238 | # if ip.find('"code":111,"success":false') == -1:
239 | # break
240 | # time.sleep(random.randint(2, 3))
241 | # except Exception as e:
242 | # print('id: {}, getIP: {}'.format(os.getpid(), e))
243 | ip = ''
244 | for a in area:
245 | page_count, count = getCount('1', date, a, ip, '')
246 | if isinstance(count, list):
247 | for court in count:
248 | page_count, total = getCount('1', date, a, ip, court)
249 | for page in range(2, page_count + 1):
250 | page_start = time.time()
251 | _, proxies = f(str(page) + ',' + date + ',' + a + ',' + ip + ',' + court)
252 | page_end = time.time()
253 | ip = proxies
254 | print('id: {}, date: {}, area: {}, court: {}, total_count: {}, done: {}/{}, using time: {:.2f}'.format(os.getpid(), date.split()[-1], a, court, total, page, page_count, page_end - page_start))
255 | else:
256 | for page in range(2, page_count + 1):
257 | page_start = time.time()
258 | _, proxies = f(str(page) + ',' + date + ',' + a + ',' + ip + ',' + '')
259 | page_end = time.time()
260 | ip = proxies
261 | print('id: {}, date: {}, area: {}, total_count: {}, done: {}/{}, using time: {:.2f}'.format(os.getpid(), date.split()[-1], a, count, page, page_count, page_end - page_start))
262 | return date
263 |
264 |
265 | if __name__ == '__main__':
266 | start = time.time()
267 | parser = argparse.ArgumentParser()
268 | parser.add_argument('-num_processes', default=1, type=int)
269 | parser.add_argument('-start_time', default='2016-1-2')
270 | parser.add_argument('-end_time', default='2016-1-2')
271 | args = parser.parse_args()
272 | enabled_proxy = args.start_time
273 | pool = multiprocessing.Pool(processes=args.num_processes)
274 | begin = datetime.datetime.strptime(args.start_time, "%Y-%m-%d")
275 | end = datetime.datetime.strptime(args.end_time, "%Y-%m-%d")
276 | t = []
277 | while begin <= end:
278 | t.append("裁判日期:{} TO {}".format(begin.strftime("%Y-%m-%d"), begin.strftime("%Y-%m-%d")))
279 | begin += datetime.timedelta(days=1)
280 | for d in pool.imap(fun, iter(t)):
281 | print('id: {}, date: {} finished.'.format(os.getpid(), d.split()[-1]))
282 | pool.close()
283 | pool.join()
284 | end = time.time()
285 | print('id: {}, using time: {:.2f}'.format(os.getpid(), end - start))
286 |
--------------------------------------------------------------------------------
/utils/__init__.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/python
2 | # -*- coding: UTF-8 -*-
--------------------------------------------------------------------------------
/utils/__pycache__/__init__.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuyifan18/spider/d96f53f0a8091b18d24dfa677fbc54416a122881/utils/__pycache__/__init__.cpython-36.pyc
--------------------------------------------------------------------------------
/utils/__pycache__/docid.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuyifan18/spider/d96f53f0a8091b18d24dfa677fbc54416a122881/utils/__pycache__/docid.cpython-36.pyc
--------------------------------------------------------------------------------
/utils/docid.js:
--------------------------------------------------------------------------------
1 | /* Copyright (C) 1999 Masanao Izumo
2 | * Version: 1.0.0.1
3 | * LastModified: Dec 25 1999
4 | */
5 |
6 | /* Interface:
7 | * data = zip_inflate(src);
8 | */
9 |
10 | /* constant parameters */
11 | var zip_WSIZE = 32768; // Sliding Window size
12 | var zip_STORED_BLOCK = 0;
13 | var zip_STATIC_TREES = 1;
14 | var zip_DYN_TREES = 2;
15 |
16 | /* for inflate */
17 | var zip_lbits = 9; // bits in base literal/length lookup table
18 | var zip_dbits = 6; // bits in base distance lookup table
19 | var zip_INBUFSIZ = 32768; // Input buffer size
20 | var zip_INBUF_EXTRA = 64; // Extra buffer
21 |
22 | /* variables (inflate) */
23 | var zip_slide;
24 | var zip_wp; // current position in slide
25 | var zip_fixed_tl = null; // inflate static
26 | var zip_fixed_td; // inflate static
27 | var zip_fixed_bl, zip_fixed_bd; // inflate static
28 | var zip_bit_buf; // bit buffer
29 | var zip_bit_len; // bits in bit buffer
30 | var zip_method;
31 | var zip_eof;
32 | var zip_copy_leng;
33 | var zip_copy_dist;
34 | var zip_tl, zip_td; // literal/length and distance decoder tables
35 | var zip_bl, zip_bd; // number of bits decoded by tl and td
36 |
37 | var zip_inflate_data;
38 | var zip_inflate_pos;
39 |
40 |
41 | /* constant tables (inflate) */
42 | var zip_MASK_BITS = new Array(
43 | 0x0000,
44 | 0x0001, 0x0003, 0x0007, 0x000f, 0x001f, 0x003f, 0x007f, 0x00ff,
45 | 0x01ff, 0x03ff, 0x07ff, 0x0fff, 0x1fff, 0x3fff, 0x7fff, 0xffff);
46 | // Tables for deflate from PKZIP's appnote.txt.
47 | var zip_cplens = new Array( // Copy lengths for literal codes 257..285
48 | 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,
49 | 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0);
50 | /* note: see note #13 above about the 258 in this list. */
51 | var zip_cplext = new Array( // Extra bits for literal codes 257..285
52 | 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2,
53 | 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 99, 99); // 99==invalid
54 | var zip_cpdist = new Array( // Copy offsets for distance codes 0..29
55 | 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,
56 | 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,
57 | 8193, 12289, 16385, 24577);
58 | var zip_cpdext = new Array( // Extra bits for distance codes
59 | 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6,
60 | 7, 7, 8, 8, 9, 9, 10, 10, 11, 11,
61 | 12, 12, 13, 13);
62 | var zip_border = new Array( // Order of the bit length code lengths
63 | 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15);
64 | /* objects (inflate) */
65 |
66 | var zip_HuftList = function() {
67 | this.next = null;
68 | this.list = null;
69 | };
70 |
71 | var zip_HuftNode = function() {
72 | this.e = 0; // number of extra bits or operation
73 | this.b = 0; // number of bits in this code or subcode
74 |
75 | // union
76 | this.n = 0; // literal, length base, or distance base
77 | this.t = null; // (zip_HuftNode) pointer to next level of table
78 | }
79 |
80 | var zip_HuftBuild = function(b, // code lengths in bits (all assumed <= BMAX)
81 | n, // number of codes (assumed <= N_MAX)
82 | s, // number of simple-valued codes (0..s-1)
83 | d, // list of base values for non-simple codes
84 | e, // list of extra bits for non-simple codes
85 | mm // maximum lookup bits
86 | ) {
87 | this.BMAX = 16; // maximum bit length of any code
88 | this.N_MAX = 288; // maximum number of codes in any set
89 | this.status = 0; // 0: success, 1: incomplete table, 2: bad input
90 | this.root = null; // (zip_HuftList) starting table
91 | this.m = 0; // maximum lookup bits, returns actual
92 |
93 | /* Given a list of code lengths and a maximum table size, make a set of
94 | tables to decode that set of codes. Return zero on success, one if
95 | the given code set is incomplete (the tables are still built in this
96 | case), two if the input is invalid (all zero length codes or an
97 | oversubscribed set of lengths), and three if not enough memory.
98 | The code with value 256 is special, and the tables are constructed
99 | so that no bits beyond that code are fetched when that code is
100 | decoded. */
101 | {
102 | var a; // counter for codes of length k
103 | var c = new Array(this.BMAX+1); // bit length count table
104 | var el; // length of EOB code (value 256)
105 | var f; // i repeats in table every f entries
106 | var g; // maximum code length
107 | var h; // table level
108 | var i; // counter, current code
109 | var j; // counter
110 | var k; // number of bits in current code
111 | var lx = new Array(this.BMAX+1); // stack of bits per table
112 | var p; // pointer into c[], b[], or v[]
113 | var pidx; // index of p
114 | var q; // (zip_HuftNode) points to current table
115 | var r = new zip_HuftNode(); // table entry for structure assignment
116 | var u = new Array(this.BMAX); // zip_HuftNode[BMAX][] table stack
117 | var v = new Array(this.N_MAX); // values in order of bit length
118 | var w;
119 | var x = new Array(this.BMAX+1);// bit offsets, then code stack
120 | var xp; // pointer into x or c
121 | var y; // number of dummy codes added
122 | var z; // number of entries in current table
123 | var o;
124 | var tail; // (zip_HuftList)
125 |
126 | tail = this.root = null;
127 | for(i = 0; i < c.length; i++)
128 | c[i] = 0;
129 | for(i = 0; i < lx.length; i++)
130 | lx[i] = 0;
131 | for(i = 0; i < u.length; i++)
132 | u[i] = null;
133 | for(i = 0; i < v.length; i++)
134 | v[i] = 0;
135 | for(i = 0; i < x.length; i++)
136 | x[i] = 0;
137 |
138 | // Generate counts for each bit length
139 | el = n > 256 ? b[256] : this.BMAX; // set length of EOB code, if any
140 | p = b; pidx = 0;
141 | i = n;
142 | do {
143 | c[p[pidx]]++; // assume all entries <= BMAX
144 | pidx++;
145 | } while(--i > 0);
146 | if(c[0] == n) { // null input--all zero length codes
147 | this.root = null;
148 | this.m = 0;
149 | this.status = 0;
150 | return;
151 | }
152 |
153 | // Find minimum and maximum length, bound *m by those
154 | for(j = 1; j <= this.BMAX; j++)
155 | if(c[j] != 0)
156 | break;
157 | k = j; // minimum code length
158 | if(mm < j)
159 | mm = j;
160 | for(i = this.BMAX; i != 0; i--)
161 | if(c[i] != 0)
162 | break;
163 | g = i; // maximum code length
164 | if(mm > i)
165 | mm = i;
166 |
167 | // Adjust last length count to fill out codes, if needed
168 | for(y = 1 << j; j < i; j++, y <<= 1)
169 | if((y -= c[j]) < 0) {
170 | this.status = 2; // bad input: more codes than bits
171 | this.m = mm;
172 | return;
173 | }
174 | if((y -= c[i]) < 0) {
175 | this.status = 2;
176 | this.m = mm;
177 | return;
178 | }
179 | c[i] += y;
180 |
181 | // Generate starting offsets into the value table for each length
182 | x[1] = j = 0;
183 | p = c;
184 | pidx = 1;
185 | xp = 2;
186 | while(--i > 0) // note that i == g from above
187 | x[xp++] = (j += p[pidx++]);
188 |
189 | // Make a table of values in order of bit lengths
190 | p = b; pidx = 0;
191 | i = 0;
192 | do {
193 | if((j = p[pidx++]) != 0)
194 | v[x[j]++] = i;
195 | } while(++i < n);
196 | n = x[g]; // set n to length of v
197 |
198 | // Generate the Huffman codes and for each, make the table entries
199 | x[0] = i = 0; // first Huffman code is zero
200 | p = v; pidx = 0; // grab values in bit order
201 | h = -1; // no tables yet--level -1
202 | w = lx[0] = 0; // no bits decoded yet
203 | q = null; // ditto
204 | z = 0; // ditto
205 |
206 | // go through the bit lengths (k already is bits in shortest code)
207 | for(; k <= g; k++) {
208 | a = c[k];
209 | while(a-- > 0) {
210 | // here i is the Huffman code of length k bits for value p[pidx]
211 | // make tables up to required level
212 | while(k > w + lx[1 + h]) {
213 | w += lx[1 + h]; // add bits already decoded
214 | h++;
215 |
216 | // compute minimum size table less than or equal to *m bits
217 | z = (z = g - w) > mm ? mm : z; // upper limit
218 | if((f = 1 << (j = k - w)) > a + 1) { // try a k-w bit table
219 | // too few codes for k-w bit table
220 | f -= a + 1; // deduct codes from patterns left
221 | xp = k;
222 | while(++j < z) { // try smaller tables up to z bits
223 | if((f <<= 1) <= c[++xp])
224 | break; // enough codes to use up j bits
225 | f -= c[xp]; // else deduct codes from patterns
226 | }
227 | }
228 | if(w + j > el && w < el)
229 | j = el - w; // make EOB code end at table
230 | z = 1 << j; // table entries for j-bit table
231 | lx[1 + h] = j; // set table size in stack
232 |
233 | // allocate and link in new table
234 | q = new Array(z);
235 | for(o = 0; o < z; o++) {
236 | q[o] = new zip_HuftNode();
237 | }
238 |
239 | if(tail == null)
240 | tail = this.root = new zip_HuftList();
241 | else
242 | tail = tail.next = new zip_HuftList();
243 | tail.next = null;
244 | tail.list = q;
245 | u[h] = q; // table starts after link
246 |
247 | /* connect to last table, if there is one */
248 | if(h > 0) {
249 | x[h] = i; // save pattern for backing up
250 | r.b = lx[h]; // bits to dump before this table
251 | r.e = 16 + j; // bits in this table
252 | r.t = q; // pointer to this table
253 | j = (i & ((1 << w) - 1)) >> (w - lx[h]);
254 | u[h-1][j].e = r.e;
255 | u[h-1][j].b = r.b;
256 | u[h-1][j].n = r.n;
257 | u[h-1][j].t = r.t;
258 | }
259 | }
260 |
261 | // set up table entry in r
262 | r.b = k - w;
263 | if(pidx >= n)
264 | r.e = 99; // out of values--invalid code
265 | else if(p[pidx] < s) {
266 | r.e = (p[pidx] < 256 ? 16 : 15); // 256 is end-of-block code
267 | r.n = p[pidx++]; // simple code is just the value
268 | } else {
269 | r.e = e[p[pidx] - s]; // non-simple--look up in lists
270 | r.n = d[p[pidx++] - s];
271 | }
272 |
273 | // fill code-like entries with r //
274 | f = 1 << (k - w);
275 | for(j = i >> w; j < z; j += f) {
276 | q[j].e = r.e;
277 | q[j].b = r.b;
278 | q[j].n = r.n;
279 | q[j].t = r.t;
280 | }
281 |
282 | // backwards increment the k-bit code i
283 | for(j = 1 << (k - 1); (i & j) != 0; j >>= 1)
284 | i ^= j;
285 | i ^= j;
286 |
287 | // backup over finished tables
288 | while((i & ((1 << w) - 1)) != x[h]) {
289 | w -= lx[h]; // don't need to update q
290 | h--;
291 | }
292 | }
293 | }
294 |
295 | /* return actual size of base table */
296 | this.m = lx[1];
297 |
298 | /* Return true (1) if we were given an incomplete table */
299 | this.status = ((y != 0 && g != 1) ? 1 : 0);
300 | } /* end of constructor */
301 | };
302 |
303 |
304 | /* routines (inflate) */
305 |
306 | var zip_GET_BYTE = function() {
307 | if(zip_inflate_data.length == zip_inflate_pos)
308 | return -1;
309 | var charcode = zip_inflate_data.charCodeAt(zip_inflate_pos++);
310 | return charcode & 0xff;
311 | };
312 |
313 | var zip_NEEDBITS = function(n) {
314 | while(zip_bit_len < n) {
315 | zip_bit_buf |= zip_GET_BYTE() << zip_bit_len;
316 | zip_bit_len += 8;
317 | }
318 | };
319 |
320 | var zip_GETBITS = function(n) {
321 | return zip_bit_buf & zip_MASK_BITS[n];
322 | };
323 |
324 | var zip_DUMPBITS = function(n) {
325 | zip_bit_buf >>= n;
326 | zip_bit_len -= n;
327 | };
328 |
329 | var zip_inflate_codes = function(buff, off, size) {
330 | /* inflate (decompress) the codes in a deflated (compressed) block.
331 | Return an error code or zero if it all goes ok. */
332 | var e; // table entry flag/number of extra bits
333 | var t; // (zip_HuftNode) pointer to table entry
334 | var n;
335 |
336 | if(size == 0)
337 | return 0;
338 |
339 | // inflate the coded data
340 | n = 0;
341 | for(;;) { // do until end of block
342 | zip_NEEDBITS(zip_bl);
343 | t = zip_tl.list[zip_GETBITS(zip_bl)];
344 | e = t.e;
345 | while(e > 16) {
346 | if(e == 99)
347 | return -1;
348 | zip_DUMPBITS(t.b);
349 | e -= 16;
350 | zip_NEEDBITS(e);
351 | t = t.t[zip_GETBITS(e)];
352 | e = t.e;
353 | }
354 | zip_DUMPBITS(t.b);
355 |
356 | if(e == 16) { // then it's a literal
357 | zip_wp &= zip_WSIZE - 1;
358 | buff[off + n++] = zip_slide[zip_wp++] = t.n;
359 | if(n == size)
360 | return size;
361 | continue;
362 | }
363 |
364 | // exit if end of block
365 | if(e == 15)
366 | break;
367 |
368 | // it's an EOB or a length
369 |
370 | // get length of block to copy
371 | zip_NEEDBITS(e);
372 | zip_copy_leng = t.n + zip_GETBITS(e);
373 | zip_DUMPBITS(e);
374 |
375 | // decode distance of block to copy
376 | zip_NEEDBITS(zip_bd);
377 | t = zip_td.list[zip_GETBITS(zip_bd)];
378 | e = t.e;
379 |
380 | while(e > 16) {
381 | if(e == 99)
382 | return -1;
383 | zip_DUMPBITS(t.b);
384 | e -= 16;
385 | zip_NEEDBITS(e);
386 | t = t.t[zip_GETBITS(e)];
387 | e = t.e;
388 | }
389 | zip_DUMPBITS(t.b);
390 | zip_NEEDBITS(e);
391 | zip_copy_dist = zip_wp - t.n - zip_GETBITS(e);
392 | zip_DUMPBITS(e);
393 |
394 | // do the copy
395 | while(zip_copy_leng > 0 && n < size) {
396 | zip_copy_leng--;
397 | zip_copy_dist &= zip_WSIZE - 1;
398 | zip_wp &= zip_WSIZE - 1;
399 | buff[off + n++] = zip_slide[zip_wp++]
400 | = zip_slide[zip_copy_dist++];
401 | }
402 |
403 | if(n == size)
404 | return size;
405 | }
406 |
407 | zip_method = -1; // done
408 | return n;
409 | };
410 |
411 | var zip_inflate_stored = function(buff, off, size) {
412 | /* "decompress" an inflated type 0 (stored) block. */
413 | var n;
414 |
415 | // go to byte boundary
416 | n = zip_bit_len & 7;
417 | zip_DUMPBITS(n);
418 |
419 | // get the length and its complement
420 | zip_NEEDBITS(16);
421 | n = zip_GETBITS(16);
422 | zip_DUMPBITS(16);
423 | zip_NEEDBITS(16);
424 | if(n != ((~zip_bit_buf) & 0xffff))
425 | return -1; // error in compressed data
426 | zip_DUMPBITS(16);
427 |
428 | // read and output the compressed data
429 | zip_copy_leng = n;
430 |
431 | n = 0;
432 | while(zip_copy_leng > 0 && n < size) {
433 | zip_copy_leng--;
434 | zip_wp &= zip_WSIZE - 1;
435 | zip_NEEDBITS(8);
436 | buff[off + n++] = zip_slide[zip_wp++] =
437 | zip_GETBITS(8);
438 | zip_DUMPBITS(8);
439 | }
440 |
441 | if(zip_copy_leng == 0)
442 | zip_method = -1; // done
443 | return n;
444 | };
445 |
446 | var zip_inflate_fixed = function(buff, off, size) {
447 | /* decompress an inflated type 1 (fixed Huffman codes) block. We should
448 | either replace this with a custom decoder, or at least precompute the
449 | Huffman tables. */
450 |
451 | // if first time, set up tables for fixed blocks
452 | if(zip_fixed_tl == null) {
453 | var i; // temporary variable
454 | var l = new Array(288); // length list for huft_build
455 | var h; // zip_HuftBuild
456 |
457 | // literal table
458 | for(i = 0; i < 144; i++)
459 | l[i] = 8;
460 | for(; i < 256; i++)
461 | l[i] = 9;
462 | for(; i < 280; i++)
463 | l[i] = 7;
464 | for(; i < 288; i++) // make a complete, but wrong code set
465 | l[i] = 8;
466 | zip_fixed_bl = 7;
467 |
468 | h = new zip_HuftBuild(l, 288, 257, zip_cplens, zip_cplext,
469 | zip_fixed_bl);
470 | if(h.status != 0) {
471 | alert("HufBuild error: "+h.status);
472 | return -1;
473 | }
474 | zip_fixed_tl = h.root;
475 | zip_fixed_bl = h.m;
476 |
477 | // distance table
478 | for(i = 0; i < 30; i++) // make an incomplete code set
479 | l[i] = 5;
480 | zip_fixed_bd = 5;
481 |
482 | h = new zip_HuftBuild(l, 30, 0, zip_cpdist, zip_cpdext, zip_fixed_bd);
483 | if(h.status > 1) {
484 | zip_fixed_tl = null;
485 | alert("HufBuild error: "+h.status);
486 | return -1;
487 | }
488 | zip_fixed_td = h.root;
489 | zip_fixed_bd = h.m;
490 | }
491 |
492 | zip_tl = zip_fixed_tl;
493 | zip_td = zip_fixed_td;
494 | zip_bl = zip_fixed_bl;
495 | zip_bd = zip_fixed_bd;
496 | return zip_inflate_codes(buff, off, size);
497 | };
498 |
499 | var zip_inflate_dynamic = function(buff, off, size) {
500 | // decompress an inflated type 2 (dynamic Huffman codes) block.
501 | var i; // temporary variables
502 | var j;
503 | var l; // last length
504 | var n; // number of lengths to get
505 | var t; // (zip_HuftNode) literal/length code table
506 | var nb; // number of bit length codes
507 | var nl; // number of literal/length codes
508 | var nd; // number of distance codes
509 | var ll = new Array(286+30); // literal/length and distance code lengths
510 | var h; // (zip_HuftBuild)
511 |
512 | for(i = 0; i < ll.length; i++)
513 | ll[i] = 0;
514 |
515 | // read in table lengths
516 | zip_NEEDBITS(5);
517 | nl = 257 + zip_GETBITS(5); // number of literal/length codes
518 | zip_DUMPBITS(5);
519 | zip_NEEDBITS(5);
520 | nd = 1 + zip_GETBITS(5); // number of distance codes
521 | zip_DUMPBITS(5);
522 | zip_NEEDBITS(4);
523 | nb = 4 + zip_GETBITS(4); // number of bit length codes
524 | zip_DUMPBITS(4);
525 | if(nl > 286 || nd > 30)
526 | return -1; // bad lengths
527 |
528 | // read in bit-length-code lengths
529 | for(j = 0; j < nb; j++)
530 | {
531 | zip_NEEDBITS(3);
532 | ll[zip_border[j]] = zip_GETBITS(3);
533 | zip_DUMPBITS(3);
534 | }
535 | for(; j < 19; j++)
536 | ll[zip_border[j]] = 0;
537 |
538 | // build decoding table for trees--single level, 7 bit lookup
539 | zip_bl = 7;
540 | h = new zip_HuftBuild(ll, 19, 19, null, null, zip_bl);
541 | if(h.status != 0)
542 | return -1; // incomplete code set
543 |
544 | zip_tl = h.root;
545 | zip_bl = h.m;
546 |
547 | // read in literal and distance code lengths
548 | n = nl + nd;
549 | i = l = 0;
550 | while(i < n) {
551 | zip_NEEDBITS(zip_bl);
552 | t = zip_tl.list[zip_GETBITS(zip_bl)];
553 | j = t.b;
554 | zip_DUMPBITS(j);
555 | j = t.n;
556 | if(j < 16) // length of code in bits (0..15)
557 | ll[i++] = l = j; // save last length in l
558 | else if(j == 16) { // repeat last length 3 to 6 times
559 | zip_NEEDBITS(2);
560 | j = 3 + zip_GETBITS(2);
561 | zip_DUMPBITS(2);
562 | if(i + j > n)
563 | return -1;
564 | while(j-- > 0)
565 | ll[i++] = l;
566 | } else if(j == 17) { // 3 to 10 zero length codes
567 | zip_NEEDBITS(3);
568 | j = 3 + zip_GETBITS(3);
569 | zip_DUMPBITS(3);
570 | if(i + j > n)
571 | return -1;
572 | while(j-- > 0)
573 | ll[i++] = 0;
574 | l = 0;
575 | } else { // j == 18: 11 to 138 zero length codes
576 | zip_NEEDBITS(7);
577 | j = 11 + zip_GETBITS(7);
578 | zip_DUMPBITS(7);
579 | if(i + j > n)
580 | return -1;
581 | while(j-- > 0)
582 | ll[i++] = 0;
583 | l = 0;
584 | }
585 | }
586 |
587 | // build the decoding tables for literal/length and distance codes
588 | zip_bl = zip_lbits;
589 | h = new zip_HuftBuild(ll, nl, 257, zip_cplens, zip_cplext, zip_bl);
590 | if(zip_bl == 0) // no literals or lengths
591 | h.status = 1;
592 | if(h.status != 0) {
593 | if(h.status == 1)
594 | ;// **incomplete literal tree**
595 | return -1; // incomplete code set
596 | }
597 | zip_tl = h.root;
598 | zip_bl = h.m;
599 |
600 | for(i = 0; i < nd; i++)
601 | ll[i] = ll[i + nl];
602 | zip_bd = zip_dbits;
603 | h = new zip_HuftBuild(ll, nd, 0, zip_cpdist, zip_cpdext, zip_bd);
604 | zip_td = h.root;
605 | zip_bd = h.m;
606 |
607 | if(zip_bd == 0 && nl > 257) { // lengths but no distances
608 | // **incomplete distance tree**
609 | return -1;
610 | }
611 |
612 | if(h.status == 1) {
613 | ;// **incomplete distance tree**
614 | }
615 | if(h.status != 0)
616 | return -1;
617 |
618 | // decompress until an end-of-block code
619 | return zip_inflate_codes(buff, off, size);
620 | };
621 |
622 | var zip_inflate_start = function() {
623 | var i;
624 |
625 | if(zip_slide == null)
626 | zip_slide = new Array(2 * zip_WSIZE);
627 | zip_wp = 0;
628 | zip_bit_buf = 0;
629 | zip_bit_len = 0;
630 | zip_method = -1;
631 | zip_eof = false;
632 | zip_copy_leng = zip_copy_dist = 0;
633 | zip_tl = null;
634 | };
635 |
636 | var zip_inflate_internal = function(buff, off, size) {
637 | // decompress an inflated entry
638 | var n, i;
639 |
640 | n = 0;
641 | while(n < size) {
642 | if(zip_eof && zip_method == -1)
643 | return n;
644 |
645 | if(zip_copy_leng > 0) {
646 | if(zip_method != zip_STORED_BLOCK) {
647 | // STATIC_TREES or DYN_TREES
648 | while(zip_copy_leng > 0 && n < size) {
649 | zip_copy_leng--;
650 | zip_copy_dist &= zip_WSIZE - 1;
651 | zip_wp &= zip_WSIZE - 1;
652 | buff[off + n++] = zip_slide[zip_wp++] =
653 | zip_slide[zip_copy_dist++];
654 | }
655 | } else {
656 | while(zip_copy_leng > 0 && n < size) {
657 | zip_copy_leng--;
658 | zip_wp &= zip_WSIZE - 1;
659 | zip_NEEDBITS(8);
660 | buff[off + n++] = zip_slide[zip_wp++] = zip_GETBITS(8);
661 | zip_DUMPBITS(8);
662 | }
663 | if(zip_copy_leng == 0)
664 | zip_method = -1; // done
665 | }
666 | if(n == size)
667 | return n;
668 | }
669 |
670 | if(zip_method == -1) {
671 | if(zip_eof)
672 | break;
673 |
674 | // read in last block bit
675 | zip_NEEDBITS(1);
676 | if(zip_GETBITS(1) != 0)
677 | zip_eof = true;
678 | zip_DUMPBITS(1);
679 |
680 | // read in block type
681 | zip_NEEDBITS(2);
682 | zip_method = zip_GETBITS(2);
683 | zip_DUMPBITS(2);
684 | zip_tl = null;
685 | zip_copy_leng = 0;
686 | }
687 |
688 | switch(zip_method) {
689 | case 0: // zip_STORED_BLOCK
690 | i = zip_inflate_stored(buff, off + n, size - n);
691 | break;
692 |
693 | case 1: // zip_STATIC_TREES
694 | if(zip_tl != null)
695 | i = zip_inflate_codes(buff, off + n, size - n);
696 | else
697 | i = zip_inflate_fixed(buff, off + n, size - n);
698 | break;
699 |
700 | case 2: // zip_DYN_TREES
701 | if(zip_tl != null)
702 | i = zip_inflate_codes(buff, off + n, size - n);
703 | else
704 | i = zip_inflate_dynamic(buff, off + n, size - n);
705 | break;
706 |
707 | default: // error
708 | i = -1;
709 | break;
710 | }
711 |
712 | if(i == -1) {
713 | if(zip_eof)
714 | return 0;
715 | return -1;
716 | }
717 | n += i;
718 | }
719 | return n;
720 | };
721 |
722 | var zip_inflate = function(str) {
723 | var i, j;
724 |
725 | zip_inflate_start();
726 | zip_inflate_data = str;
727 | zip_inflate_pos = 0;
728 |
729 | var buff = new Array(1024);
730 | var aout = [];
731 | while((i = zip_inflate_internal(buff, 0, buff.length)) > 0) {
732 | var cbuf = new Array(i);
733 | for(j = 0; j < i; j++){
734 | cbuf[j] = String.fromCharCode(buff[j]);
735 | }
736 | aout[aout.length] = cbuf.join("");
737 | }
738 | zip_inflate_data = null; // G.C.
739 | return aout.join("");
740 | };
--------------------------------------------------------------------------------
/utils/docid.py:
--------------------------------------------------------------------------------
1 | # coding:utf-8
2 |
3 | import re
4 | import zlib
5 |
6 | import execjs
7 | from Crypto.Cipher import AES
8 |
9 |
10 | def DecryptInner(pwd, key):
11 | mode = AES.MODE_CBC
12 | cipher = AES.new(key, mode, 'abcd134556abcedf'.encode('utf-8'))
13 | decrypted = cipher.decrypt(bytes.fromhex(pwd))
14 | return decrypted.split(b'\x10')[0].decode()
15 |
16 |
17 | def Decrypt(str1, key):
18 | result = DecryptInner(str1, key)
19 | return DecryptInner(result, key)
20 |
21 |
22 | b64tab = {'0': 52, '1': 53, '2': 54, '3': 55, '4': 56, '5': 57, '6': 58, '7': 59, '8': 60, '9': 61, '+': 62, '/': 63,
23 | 'A': 0, 'B': 1, 'C': 2, 'D': 3, 'E': 4, 'F': 5, 'G': 6, 'H': 7, 'I': 8, 'J': 9, 'K': 10, 'L': 11, 'M': 12,
24 | 'N': 13, 'O': 14, 'P': 15, 'Q': 16, 'R': 17, 'S': 18, 'T': 19, 'U': 20, 'V': 21, 'W': 22, 'X': 23, 'Y': 24,
25 | 'Z': 25, 'a': 26, 'b': 27, 'c': 28, 'd': 29, 'e': 30, 'f': 31, 'g': 32, 'h': 33, 'i': 34, 'j': 35, 'k': 36,
26 | 'l': 37, 'm': 38, 'n': 39, 'o': 40, 'p': 41, 'q': 42, 'r': 43, 's': 44, 't': 45, 'u': 46, 'v': 47, 'w': 48,
27 | 'x': 49, 'y': 50, 'z': 51}
28 |
29 |
30 | def fromBase64(str1):
31 | str1 = str1.replace('-', '+').replace('_', '/')
32 | str2 = re.sub('[^A-Za-z0-9\+\/]', '', str1)
33 | return _decode(str2)
34 |
35 |
36 | def _decode(a):
37 | return btou(Base64_atob(a))
38 |
39 |
40 | def Base64_atob(a):
41 | return re.sub('[\s\S]{1,4}', cb_decode, a)
42 |
43 |
44 | def fromCharCode(n):
45 | return chr(n % 256)
46 |
47 |
48 | def cb_decode(cccc):
49 | cccc = cccc.group()
50 | l = len(cccc)
51 | padlen = l % 4
52 | n = (b64tab[cccc[0]] << 18 if l > 0 else 0) | (b64tab[cccc[1]] << 12 if l > 1 else 0) | (
53 | b64tab[cccc[2]] << 6 if l > 2 else 0) | (b64tab[cccc[3]] if l > 3 else 0)
54 | # print n
55 | # chars = [
56 | # fromCharCode(n >>> 16),
57 | # fromCharCode((n >>> 8) & 0xff),
58 | # fromCharCode(n & 0xff)]
59 | chars = [
60 | fromCharCode(n >> 16),
61 | fromCharCode((n >> 8) & 0xff),
62 | fromCharCode(n & 0xff)
63 | ]
64 | p = len(chars) - [0, 0, 2, 1][padlen]
65 | chars = chars[0:p]
66 | return ''.join(chars)
67 |
68 |
69 | re_btou = '|'.join(['[\xC0-\xDF][\x80-\xBF]', '[\xE0-\xEF][\x80-\xBF]{2}', '[\xF0-\xF7][\x80-\xBF]{3}'])
70 |
71 |
72 | def cb_btou(cccc):
73 | cccc = cccc.group()
74 | if len(cccc) == 4:
75 | cp = ((0x07 & ord(cccc[0])) << 18) | ((0x3f & ord(cccc[1])) << 12) | ((0x3f & ord(cccc[2])) << 6) | (
76 | 0x3f & ord(cccc[3])),
77 | offset = cp - 0x10000
78 | # print offsetoffset
79 | # return (fromCharCode((offset >>> 10) + 0xD800) + fromCharCode((offset & 0x3FF) + 0xDC00))
80 | return fromCharCode((offset >> 10) + 0xD800) + fromCharCode((offset & 0x3FF) + 0xDC00)
81 | elif len(cccc) == 3:
82 | return fromCharCode(((0x0f & ord(cccc[0])) << 12) | ((0x3f & ord(cccc[1])) << 6) | (0x3f & ord(cccc[2])))
83 | else:
84 | return fromCharCode(((0x1f & ord(cccc[0])) << 6) | (0x3f & ord(cccc[1])))
85 |
86 |
87 | def btou(b):
88 | return re.sub(re_btou, cb_btou, b)
89 |
90 |
91 | def get_js(data):
92 | with open('utils/docid.js', 'r') as f:
93 | js_data = f.read()
94 | eval_js = execjs.compile(js_data)
95 | data = eval_js.call('zip_inflate', data)
96 | return data
97 |
98 |
99 | def unzip(str1):
100 | return btou(get_js(fromBase64(str1)))
101 |
102 |
103 | def getkey(str1):
104 | js_str = unzip(str1).replace('_[_][_](', 'return ')[:-4]
105 | c = execjs.compile(js_str)
106 | return re.findall('KEY="(\w+)"', c.eval(''))[0]
107 |
108 |
109 | def decode_docid(docid, key):
110 | return Decrypt(unzip(docid), key).replace('\f', '')
111 |
112 |
113 | if __name__ == '__main__':
114 | RunEval = "w61Zw43CjsKCMBB+FsKMwoc2bHwBw6LDiUfDmMOjwqQhBlE5KMKbw4rCnsKMw68uIAHDpEdhwqHCpcKsX0LChsOQw458M8OzTVtKWR7Cg8Kdf8OxZMOwE8Ktwr8jGcKcD8Krwr0MT8Kbw6NWbsOCwp3Dj2zDiyYBYcK0w7gCCRDCnzFCw75DIh8yXcKxKsKhwrYQw6Adw4xCwqB6YAzDhUXDviAGJMKACcKkDjrDgAnCskbDgsOgCcOJwqFewqgABAbDgkTCgjvCjsK7XnjDocO5EsOJXy8Kw6XDgnHDiRXDscOFwph9wr0lasO5dcK9cXpYUizChMKwwpnClXZwesOGTDrDnsO3wqTCj8OLw6LDvzvCscKkOcOWICvDqSFBw7HCrcOiw7BZw53DigzDmsKdVcOibsOUfRlTGcKtwrk9d8KVRl3Cp8KoFkJjDi/CsMOzIMK7MVp6fBt2R8KNPmrCvXXDv2Yww4BqwqjDqSjDtsOjwoEYwovCpAJOGcOmTMKBNcKgw6tywpHDuWEdwpZicxPDk8OFwpPCvsK6wpfDnl8KHMKPwonDlMK+DcOQWsKTwrbCjcOAPFYAwoVLIMOrwrkvwpnDkSQxwr7CtsK6w6fCgMKiUhvCsWsbw4/Co8O+cAzCqwfCnE05DibDt8KdBVBdLTp9wo7Cm8OGUsODwod3LS/Dig5Swqg4w5jCqMK1wpYBacOAw5HCgRnCvCEUw4EZd8Ou"
115 | key = getkey(RunEval).encode('utf-8')
116 | # docid = "FcKPwrkRA0EIw4BaAsKWN8Okw63CvyTCn1Mpw5BIEFbDs8KIwpfCrQB4wpJYw57Diig4M8O6wpAdZ8KxI8KTFyXCuMOYwoo2RGjDnMKASX8wDsKvw7E9LcKKTMOTw5HCugbDtsK3FMKXI8ONVAPDkMOtXsOjw4Muw6rCscKPJMO1wrTCoMOmw58Xw6XDgMKxw57DmkXDocKWw7tSY0B8L8OBwpbDscOzw44qwrlrwqVhXS7Ct8Oww5rDrsKoOmEqwqA5ICRzw6HCm0LDvAE="
117 | docid = "7Cu8Oxb1hzw6FJesOIwpnDqcK5w5ZlwqjDucOOwrMWw5DCscOAAh9kw4zCgRwecsKaf8OJw5jCi8O2w4d4Z0vChcOsF8KSw5LCp8OZAcKEfFVka8OgwoELNivDuwE="
118 | print(decode_docid(docid, key))
119 | assert decode_docid(docid, key) == '532bd8ed-4ba8-48b7-ad70-0063f64ede05'
120 |
--------------------------------------------------------------------------------
/utils/getGuid.js:
--------------------------------------------------------------------------------
1 | var getGuid = function () {
2 | return createGuid() + createGuid() + "-" + createGuid() + "-" + createGuid() + createGuid() + "-" + createGuid() + createGuid() + createGuid(); //CreateGuid();
3 | }
4 | var createGuid = function () {
5 | return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
6 | }
--------------------------------------------------------------------------------
/utils/getVl5x.js:
--------------------------------------------------------------------------------
1 |
2 |
3 | /*
4 | * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined
5 | * in FIPS PUB 180-1
6 | * Version 2.1-BETA Copyright Paul Johnston 2000 - 2002.
7 | * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
8 | * Distributed under the BSD License
9 | * See http://pajhome.org.uk/crypt/md5 for details.
10 | */
11 | /*
12 | * Configurable variables. You may need to tweak these to be compatible with
13 | * the server-side, but the defaults work in most cases.
14 | */
15 | var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */
16 | var b64pad = ""; /* base-64 pad character. "=" for strict RFC compliance */
17 | var chrsz = 8; /* bits per input character. 8 - ASCII; 16 - Unicode */
18 |
19 | /*
20 | * These are the functions you'll usually want to call
21 | * They take string arguments and return either hex or base-64 encoded strings
22 | */
23 | function hex_sha1(s) {
24 | return binb2hex(core_sha1(str2binb(s), s.length * chrsz));
25 | }
26 |
27 | function b64_sha1(s) {
28 | return binb2b64(core_sha1(str2binb(s), s.length * chrsz));
29 | }
30 |
31 | function str_sha1(s) {
32 | return binb2str(core_sha1(str2binb(s), s.length * chrsz));
33 | }
34 |
35 | function hex_hmac_sha1(key, data) {
36 | return binb2hex(core_hmac_sha1(key, data));
37 | }
38 |
39 | function b64_hmac_sha1(key, data) {
40 | return binb2b64(core_hmac_sha1(key, data));
41 | }
42 |
43 | function str_hmac_sha1(key, data) {
44 | return binb2str(core_hmac_sha1(key, data));
45 | }
46 |
47 | /*
48 | * Perform a simple self-test to see if the VM is working
49 | */
50 | function sha1_vm_test() {
51 | return hex_sha1("abc") == "a9993e364706816aba3e25717850c26c9cd0d89d";
52 | }
53 |
54 | /*
55 | * Calculate the SHA-1 of an array of big-endian words, and a bit length
56 | */
57 | function core_sha1(x, len) {
58 | /* append padding */
59 | x[len >> 5] |= 0x80 << (24 - len % 32);
60 | x[((len + 64 >> 9) << 4) + 15] = len;
61 |
62 | var w = Array(80);
63 | var a = 1732584193;
64 | var b = -271733879;
65 | var c = -1732584194;
66 | var d = 271733878;
67 | var e = -1009589776;
68 |
69 | for (var i = 0; i < x.length; i += 16) {
70 | var olda = a;
71 | var oldb = b;
72 | var oldc = c;
73 | var oldd = d;
74 | var olde = e;
75 |
76 | for (var j = 0; j < 80; j++) {
77 | if (j < 16) w[j] = x[i + j];
78 | else w[j] = rol(w[j - 3] ^ w[j - 8] ^ w[j - 14] ^ w[j - 16], 1);
79 | var t = safe_add(safe_add(rol(a, 5), sha1_ft(j, b, c, d)), safe_add(safe_add(e, w[j]), sha1_kt(j)));
80 | e = d;
81 | d = c;
82 | c = rol(b, 30);
83 | b = a;
84 | a = t;
85 | }
86 |
87 | a = safe_add(a, olda);
88 | b = safe_add(b, oldb);
89 | c = safe_add(c, oldc);
90 | d = safe_add(d, oldd);
91 | e = safe_add(e, olde);
92 | }
93 | return Array(a, b, c, d, e);
94 |
95 | }
96 |
97 | /*
98 | * Perform the appropriate triplet combination function for the current
99 | * iteration
100 | */
101 | function sha1_ft(t, b, c, d) {
102 | if (t < 20) return (b & c) | ((~b) & d);
103 | if (t < 40) return b ^ c ^ d;
104 | if (t < 60) return (b & c) | (b & d) | (c & d);
105 | return b ^ c ^ d;
106 | }
107 |
108 | /*
109 | * Determine the appropriate additive constant for the current iteration
110 | */
111 | function sha1_kt(t) {
112 | return (t < 20) ? 1518500249 : (t < 40) ? 1859775393 : (t < 60) ? -1894007588 : -899497514;
113 | }
114 |
115 | /*
116 | * Calculate the HMAC-SHA1 of a key and some data
117 | */
118 | function core_hmac_sha1(key, data) {
119 | var bkey = str2binb(key);
120 | if (bkey.length > 16) bkey = core_sha1(bkey, key.length * chrsz);
121 |
122 | var ipad = Array(16),
123 | opad = Array(16);
124 | for (var i = 0; i < 16; i++) {
125 | ipad[i] = bkey[i] ^ 0x36363636;
126 | opad[i] = bkey[i] ^ 0x5C5C5C5C;
127 | }
128 |
129 | var hash = core_sha1(ipad.concat(str2binb(data)), 512 + data.length * chrsz);
130 | return core_sha1(opad.concat(hash), 512 + 160);
131 | }
132 |
133 | /*
134 | * Add integers, wrapping at 2^32. This uses 16-bit operations internally
135 | * to work around bugs in some JS interpreters.
136 | */
137 | function safe_add(x, y) {
138 | var lsw = (x & 0xFFFF) + (y & 0xFFFF);
139 | var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
140 | return (msw << 16) | (lsw & 0xFFFF);
141 | }
142 |
143 | /*
144 | * Bitwise rotate a 32-bit number to the left.
145 | */
146 | function rol(num, cnt) {
147 | return (num << cnt) | (num >>> (32 - cnt));
148 | }
149 |
150 | /*
151 | * Convert an 8-bit or 16-bit string to an array of big-endian words
152 | * In 8-bit function, characters >255 have their hi-byte silently ignored.
153 | */
154 | function str2binb(str) {
155 | var bin = Array();
156 | var mask = (1 << chrsz) - 1;
157 | for (var i = 0; i < str.length * chrsz; i += chrsz)
158 | bin[i >> 5] |= (str.charCodeAt(i / chrsz) & mask) << (24 - i % 32);
159 | return bin;
160 | }
161 |
162 | /*
163 | * Convert an array of big-endian words to a string
164 | */
165 | function binb2str(bin) {
166 | var str = "";
167 | var mask = (1 << chrsz) - 1;
168 | for (var i = 0; i < bin.length * 32; i += chrsz)
169 | str += String.fromCharCode((bin[i >> 5] >>> (24 - i % 32)) & mask);
170 | return str;
171 | }
172 |
173 | /*
174 | * Convert an array of big-endian words to a hex string.
175 | */
176 | function binb2hex(binarray) {
177 | var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
178 | var str = "";
179 | for (var i = 0; i < binarray.length * 4; i++) {
180 | str += hex_tab.charAt((binarray[i >> 2] >> ((3 - i % 4) * 8 + 4)) & 0xF) + hex_tab.charAt((binarray[i >> 2] >> ((3 - i % 4) * 8)) & 0xF);
181 | }
182 | return str;
183 | }
184 |
185 | /*
186 | * Convert an array of big-endian words to a base-64 string
187 | */
188 | function binb2b64(binarray) {
189 | var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
190 | var str = "";
191 | for (var i = 0; i < binarray.length * 4; i += 3) {
192 | var triplet = (((binarray[i >> 2] >> 8 * (3 - i % 4)) & 0xFF) << 16) | (((binarray[i + 1 >> 2] >> 8 * (3 - (i + 1) % 4)) & 0xFF) << 8) | ((binarray[i + 2 >> 2] >> 8 * (3 - (i + 2) % 4)) & 0xFF);
193 | for (var j = 0; j < 4; j++) {
194 | if (i * 8 + j * 6 > binarray.length * 32) str += b64pad;
195 | else str += tab.charAt((triplet >> 6 * (3 - j)) & 0x3F);
196 | }
197 | }
198 | return str;
199 | }
200 | /*
201 | * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
202 | * Digest Algorithm, as defined in RFC 1321.
203 | * Version 2.1 Copyright (C) Paul Johnston 1999 - 2002.
204 | * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
205 | * Distributed under the BSD License
206 | * See http://pajhome.org.uk/crypt/md5 for more info.
207 | */
208 |
209 | /*
210 | * Configurable variables. You may need to tweak these to be compatible with
211 | * the server-side, but the defaults work in most cases.
212 | */
213 | var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */
214 | var b64pad = ""; /* base-64 pad character. "=" for strict RFC compliance */
215 | var chrsz = 8; /* bits per input character. 8 - ASCII; 16 - Unicode */
216 |
217 | /*
218 | * These are the functions you'll usually want to call
219 | * They take string arguments and return either hex or base-64 encoded strings
220 | */
221 | function hex_md5(s){ return binl2hex(core_md5(str2binl(s), s.length * chrsz));}
222 | function b64_md5(s){ return binl2b64(core_md5(str2binl(s), s.length * chrsz));}
223 | function str_md5(s){ return binl2str(core_md5(str2binl(s), s.length * chrsz));}
224 | function hex_hmac_md5(key, data) { return binl2hex(core_hmac_md5(key, data)); }
225 | function b64_hmac_md5(key, data) { return binl2b64(core_hmac_md5(key, data)); }
226 | function str_hmac_md5(key, data) { return binl2str(core_hmac_md5(key, data)); }
227 |
228 | /*
229 | * Perform a simple self-test to see if the VM is working
230 | */
231 | function md5_vm_test()
232 | {
233 | return hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72";
234 | }
235 |
236 | /*
237 | * Calculate the MD5 of an array of little-endian words, and a bit length
238 | */
239 | function core_md5(x, len)
240 | {
241 | /* append padding */
242 | x[len >> 5] |= 0x80 << ((len) % 32);
243 | x[(((len + 64) >>> 9) << 4) + 14] = len;
244 |
245 | var a = 1732584193;
246 | var b = -271733879;
247 | var c = -1732584194;
248 | var d = 271733878;
249 |
250 | for(var i = 0; i < x.length; i += 16)
251 | {
252 | var olda = a;
253 | var oldb = b;
254 | var oldc = c;
255 | var oldd = d;
256 |
257 | a = md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936);
258 | d = md5_ff(d, a, b, c, x[i+ 1], 12, -389564586);
259 | c = md5_ff(c, d, a, b, x[i+ 2], 17, 606105819);
260 | b = md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330);
261 | a = md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897);
262 | d = md5_ff(d, a, b, c, x[i+ 5], 12, 1200080426);
263 | c = md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341);
264 | b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983);
265 | a = md5_ff(a, b, c, d, x[i+ 8], 7 , 1770035416);
266 | d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417);
267 | c = md5_ff(c, d, a, b, x[i+10], 17, -42063);
268 | b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162);
269 | a = md5_ff(a, b, c, d, x[i+12], 7 , 1804603682);
270 | d = md5_ff(d, a, b, c, x[i+13], 12, -40341101);
271 | c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290);
272 | b = md5_ff(b, c, d, a, x[i+15], 22, 1236535329);
273 |
274 | a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510);
275 | d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632);
276 | c = md5_gg(c, d, a, b, x[i+11], 14, 643717713);
277 | b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302);
278 | a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691);
279 | d = md5_gg(d, a, b, c, x[i+10], 9 , 38016083);
280 | c = md5_gg(c, d, a, b, x[i+15], 14, -660478335);
281 | b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848);
282 | a = md5_gg(a, b, c, d, x[i+ 9], 5 , 568446438);
283 | d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690);
284 | c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961);
285 | b = md5_gg(b, c, d, a, x[i+ 8], 20, 1163531501);
286 | a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467);
287 | d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784);
288 | c = md5_gg(c, d, a, b, x[i+ 7], 14, 1735328473);
289 | b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734);
290 |
291 | a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558);
292 | d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463);
293 | c = md5_hh(c, d, a, b, x[i+11], 16, 1839030562);
294 | b = md5_hh(b, c, d, a, x[i+14], 23, -35309556);
295 | a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060);
296 | d = md5_hh(d, a, b, c, x[i+ 4], 11, 1272893353);
297 | c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632);
298 | b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640);
299 | a = md5_hh(a, b, c, d, x[i+13], 4 , 681279174);
300 | d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222);
301 | c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979);
302 | b = md5_hh(b, c, d, a, x[i+ 6], 23, 76029189);
303 | a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487);
304 | d = md5_hh(d, a, b, c, x[i+12], 11, -421815835);
305 | c = md5_hh(c, d, a, b, x[i+15], 16, 530742520);
306 | b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651);
307 |
308 | a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844);
309 | d = md5_ii(d, a, b, c, x[i+ 7], 10, 1126891415);
310 | c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905);
311 | b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055);
312 | a = md5_ii(a, b, c, d, x[i+12], 6 , 1700485571);
313 | d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606);
314 | c = md5_ii(c, d, a, b, x[i+10], 15, -1051523);
315 | b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799);
316 | a = md5_ii(a, b, c, d, x[i+ 8], 6 , 1873313359);
317 | d = md5_ii(d, a, b, c, x[i+15], 10, -30611744);
318 | c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380);
319 | b = md5_ii(b, c, d, a, x[i+13], 21, 1309151649);
320 | a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070);
321 | d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379);
322 | c = md5_ii(c, d, a, b, x[i+ 2], 15, 718787259);
323 | b = md5_ii(b, c, d, a, x[i+ 9], 21, -343485551);
324 |
325 | a = safe_add(a, olda);
326 | b = safe_add(b, oldb);
327 | c = safe_add(c, oldc);
328 | d = safe_add(d, oldd);
329 | }
330 | return Array(a, b, c, d);
331 |
332 | }
333 |
334 | /*
335 | * These functions implement the four basic operations the algorithm uses.
336 | */
337 | function md5_cmn(q, a, b, x, s, t)
338 | {
339 | return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
340 | }
341 | function md5_ff(a, b, c, d, x, s, t)
342 | {
343 | return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
344 | }
345 | function md5_gg(a, b, c, d, x, s, t)
346 | {
347 | return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
348 | }
349 | function md5_hh(a, b, c, d, x, s, t)
350 | {
351 | return md5_cmn(b ^ c ^ d, a, b, x, s, t);
352 | }
353 | function md5_ii(a, b, c, d, x, s, t)
354 | {
355 | return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
356 | }
357 |
358 | /*
359 | * Calculate the HMAC-MD5, of a key and some data
360 | */
361 | function core_hmac_md5(key, data)
362 | {
363 | var bkey = str2binl(key);
364 | if(bkey.length > 16) bkey = core_md5(bkey, key.length * chrsz);
365 |
366 | var ipad = Array(16), opad = Array(16);
367 | for(var i = 0; i < 16; i++)
368 | {
369 | ipad[i] = bkey[i] ^ 0x36363636;
370 | opad[i] = bkey[i] ^ 0x5C5C5C5C;
371 | }
372 |
373 | var hash = core_md5(ipad.concat(str2binl(data)), 512 + data.length * chrsz);
374 | return core_md5(opad.concat(hash), 512 + 128);
375 | }
376 |
377 | /*
378 | * Add integers, wrapping at 2^32. This uses 16-bit operations internally
379 | * to work around bugs in some JS interpreters.
380 | */
381 | function safe_add(x, y)
382 | {
383 | var lsw = (x & 0xFFFF) + (y & 0xFFFF);
384 | var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
385 | return (msw << 16) | (lsw & 0xFFFF);
386 | }
387 |
388 | /*
389 | * Bitwise rotate a 32-bit number to the left.
390 | */
391 | function bit_rol(num, cnt)
392 | {
393 | return (num << cnt) | (num >>> (32 - cnt));
394 | }
395 |
396 | /*
397 | * Convert a string to an array of little-endian words
398 | * If chrsz is ASCII, characters >255 have their hi-byte silently ignored.
399 | */
400 | function str2binl(str)
401 | {
402 | var bin = Array();
403 | var mask = (1 << chrsz) - 1;
404 | for(var i = 0; i < str.length * chrsz; i += chrsz)
405 | bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (i%32);
406 | return bin;
407 | }
408 |
409 | /*
410 | * Convert an array of little-endian words to a string
411 | */
412 | function binl2str(bin)
413 | {
414 | var str = "";
415 | var mask = (1 << chrsz) - 1;
416 | for(var i = 0; i < bin.length * 32; i += chrsz)
417 | str += String.fromCharCode((bin[i>>5] >>> (i % 32)) & mask);
418 | return str;
419 | }
420 |
421 | /*
422 | * Convert an array of little-endian words to a hex string.
423 | */
424 | function binl2hex(binarray)
425 | {
426 | var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
427 | var str = "";
428 | for(var i = 0; i < binarray.length * 4; i++)
429 | {
430 | str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) +
431 | hex_tab.charAt((binarray[i>>2] >> ((i%4)*8 )) & 0xF);
432 | }
433 | return str;
434 | }
435 |
436 | /*
437 | * Convert an array of little-endian words to a base-64 string
438 | */
439 | function binl2b64(binarray)
440 | {
441 | var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
442 | var str = "";
443 | for(var i = 0; i < binarray.length * 4; i += 3)
444 | {
445 | var triplet = (((binarray[i >> 2] >> 8 * ( i %4)) & 0xFF) << 16)
446 | | (((binarray[i+1 >> 2] >> 8 * ((i+1)%4)) & 0xFF) << 8 )
447 | | ((binarray[i+2 >> 2] >> 8 * ((i+2)%4)) & 0xFF);
448 | for(var j = 0; j < 4; j++)
449 | {
450 | if(i * 8 + j * 6 > binarray.length * 32) str += b64pad;
451 | else str += tab.charAt((triplet >> 6*(3-j)) & 0x3F);
452 | }
453 | }
454 | return str;
455 | }
456 |
457 |
458 |
459 | function Base64() {
460 |
461 | // private property
462 | _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
463 |
464 | // public method for encoding
465 | this.encode = function (input) {
466 | var output = "";
467 | var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
468 | var i = 0;
469 | input = _utf8_encode(input);
470 | while (i < input.length) {
471 | chr1 = input.charCodeAt(i++);
472 | chr2 = input.charCodeAt(i++);
473 | chr3 = input.charCodeAt(i++);
474 | enc1 = chr1 >> 2;
475 | enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
476 | enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
477 | enc4 = chr3 & 63;
478 | if (isNaN(chr2)) {
479 | enc3 = enc4 = 64;
480 | } else if (isNaN(chr3)) {
481 | enc4 = 64;
482 | }
483 | output = output +
484 | _keyStr.charAt(enc1) + _keyStr.charAt(enc2) +
485 | _keyStr.charAt(enc3) + _keyStr.charAt(enc4);
486 | }
487 | return output;
488 | }
489 |
490 | // public method for decoding
491 | this.decode = function (input) {
492 | var output = "";
493 | var chr1, chr2, chr3;
494 | var enc1, enc2, enc3, enc4;
495 | var i = 0;
496 | input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
497 | while (i < input.length) {
498 | enc1 = _keyStr.indexOf(input.charAt(i++));
499 | enc2 = _keyStr.indexOf(input.charAt(i++));
500 | enc3 = _keyStr.indexOf(input.charAt(i++));
501 | enc4 = _keyStr.indexOf(input.charAt(i++));
502 | chr1 = (enc1 << 2) | (enc2 >> 4);
503 | chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
504 | chr3 = ((enc3 & 3) << 6) | enc4;
505 | output = output + String.fromCharCode(chr1);
506 | if (enc3 != 64) {
507 | output = output + String.fromCharCode(chr2);
508 | }
509 | if (enc4 != 64) {
510 | output = output + String.fromCharCode(chr3);
511 | }
512 | }
513 | output = _utf8_decode(output);
514 | return output;
515 | }
516 |
517 | // private method for UTF-8 encoding
518 | _utf8_encode = function (string) {
519 | string = string.replace(/\r\n/g,"\n");
520 | var utftext = "";
521 | for (var n = 0; n < string.length; n++) {
522 | var c = string.charCodeAt(n);
523 | if (c < 128) {
524 | utftext += String.fromCharCode(c);
525 | } else if((c > 127) && (c < 2048)) {
526 | utftext += String.fromCharCode((c >> 6) | 192);
527 | utftext += String.fromCharCode((c & 63) | 128);
528 | } else {
529 | utftext += String.fromCharCode((c >> 12) | 224);
530 | utftext += String.fromCharCode(((c >> 6) & 63) | 128);
531 | utftext += String.fromCharCode((c & 63) | 128);
532 | }
533 |
534 | }
535 | return utftext;
536 | }
537 |
538 | // private method for UTF-8 decoding
539 | _utf8_decode = function (utftext) {
540 | var string = "";
541 | var i = 0;
542 | var c = c1 = c2 = 0;
543 | while ( i < utftext.length ) {
544 | c = utftext.charCodeAt(i);
545 | if (c < 128) {
546 | string += String.fromCharCode(c);
547 | i++;
548 | } else if((c > 191) && (c < 224)) {
549 | c2 = utftext.charCodeAt(i+1);
550 | string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
551 | i += 2;
552 | } else {
553 | c2 = utftext.charCodeAt(i+1);
554 | c3 = utftext.charCodeAt(i+2);
555 | string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
556 | i += 3;
557 | }
558 | }
559 | return string;
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 | var _fxxx = function(p, a, c, k, e, d) {
585 | e = function(c) {
586 | return (c < a ? "" : e(parseInt(c / a))) + ((c = c % a) > 35 ? String.fromCharCode(c + 29) : c.toString(36))
587 | }
588 | ;
589 | if (!"".replace(/^/, String)) {
590 | while (c--) {
591 | d[e(c)] = k[c] || e(c)
592 | }
593 | k = [function(e) {
594 | return d[e]
595 | }
596 | ];
597 | e = function() {
598 | return "\\w+"
599 | }
600 | ;
601 | c = 1
602 | }
603 | while (c--) {
604 | if (k[c]) {
605 | p = p.replace(new RegExp("\\b" + e(c) + "\\b","g"), k[c])
606 | }
607 | }
608 | return p
609 | };
610 | function de(str, count, strReplace) {
611 | var arrReplace = strReplace.split("|");
612 | for (var i = 0; i < count; i++) {
613 | str = str.replace(new RegExp("\\{" + i + "\\}","g"), arrReplace[i])
614 | }
615 | return str
616 | }
617 |
618 | function getVl5x(cookie) {
619 |
620 | function strToLong(str) {
621 | var long = 0;
622 | for (var i = 0; i < str.length; i++) {
623 | long += (str.charCodeAt(i) << (i % 16))
624 | }
625 | return long
626 | }
627 |
628 | function strToLongEn(str) {
629 | var long = 0;
630 | for (var i = 0; i < str.length; i++) {
631 | long += (str.charCodeAt(i) << (i % 16)) + i
632 | }
633 | return long
634 | }
635 |
636 | function strToLongEn2(str, step) {
637 | var long = 0;
638 | for (var i = 0; i < str.length; i++) {
639 | long += (str.charCodeAt(i) << (i % 16)) + (i * step)
640 | }
641 | return long
642 | }
643 |
644 | function strToLongEn3(str, step) {
645 | var long = 0;
646 | for (var i = 0; i < str.length; i++) {
647 | long += (str.charCodeAt(i) << (i % 16)) + (i + step - str.charCodeAt(i))
648 | }
649 | return long
650 | }
651 |
652 | function makeKey_0(str) {
653 | var str = str.substr(5, 5 * 5) + str.substr((5 + 1) * (5 + 1), 3);
654 | var a = str.substr(5) + str.substr(-4);
655 | var b = str.substr(4) + a.substr(-6);
656 | return hex_md5(str).substr(4, 24)
657 | }
658 |
659 | function makeKey_1(str) {
660 | var str = str.substr(5, 5 * 5) + "5" + str.substr(1, 2) + "1" + str.substr((5 + 1) * (5 + 1), 3);
661 | var a = str.substr(5) + str.substr(4);
662 | var b = str.substr(12) + a.substr(-6);
663 | var c = str.substr(4) + a.substr(6);
664 | return hex_md5(c).substr(4, 24)
665 | }
666 |
667 | function makeKey_2(str) {
668 | var str = str.substr(5, 5 * 5) + "15" + str.substr(1, 2) + str.substr((5 + 1) * (5 + 1), 3);
669 | var a = strToLong(str.substr(5)) + str.substr(4);
670 | var b = strToLong(str.substr(5)) + str.substr(4);
671 | var c = str.substr(4) + b.substr(5);
672 | return hex_md5(c).substr(1, 24)
673 | }
674 |
675 | function makeKey_3(str) {
676 | var str = str.substr(5, 5 * 5) + "15" + str.substr(1, 2) + str.substr((5 + 1) * (5 + 1), 3);
677 | var a = strToLongEn(str.substr(5)) + str.substr(4);
678 | var b = str.substr(4) + a.substr(5);
679 | var c = strToLong(str.substr(5)) + str.substr(4);
680 | return hex_md5(b).substr(3, 24)
681 | }
682 |
683 | function makeKey_4(str) {
684 | var str = str.substr(5, 5 * 5) + "2" + str.substr(1, 2) + str.substr((5 + 1) * (5 + 1), 3);
685 | var long = 0;
686 | for (var i = 0; i < str.substr(1).length; i++) {
687 | long += (str.charCodeAt(i) << (i % 16))
688 | }
689 | var aa = long + str.substr(4);
690 | var long = 0;
691 | var a = str.substr(5);
692 | for (var i = 0; i < a.length; i++) {
693 | long += (a.charCodeAt(i) << (i % 16)) + i
694 | }
695 | a = long + "" + str.substr(4);
696 | var b = hex_md5(str.substr(1)) + strToLong(a.substr(5));
697 | return hex_md5(b).substr(3, 24)
698 | }
699 |
700 | function makeKey_5(str) {
701 | var base = new Base64();
702 | var str = base.encode(str.substr(5, 5 * 5) + str.substr(1, 2) + "1") + str.substr((5 + 1) * (5 + 1), 3);
703 | var a = strToLongEn(str.substr(4, 10)) + str.substr(-4);
704 | var b = hex_md5(str.substr(4)) + a.substr(2);
705 | var a = str.substr(3);
706 | var c = strToLong(str.substr(5)) + str.substr(4);
707 | var aa = long + str.substr(4);
708 | var long = 0;
709 | for (var i = 0; i < a.length; i++) {
710 | long += (a.charCodeAt(i) << (i % 12)) + i
711 | }
712 | a = long + "" + str.substr(4);
713 | return hex_md5(str).substr(4, 24)
714 | }
715 |
716 |
717 | function makeKey_6(str) {
718 | var base = new Base64();
719 | var str = str.substr(5, 5 * 5) + str.substr((5 + 1) * (5 + 1), 3);
720 | var a = base.encode(str.substr(4, 10)) + str.substr(2);
721 | var b = str.substr(6) + a.substr(2);
722 | var c = strToLong(str.substr(5)) + str.substr(4);
723 | var aa = long + str.substr(4);
724 | var long = 0;
725 | var a = str.substr(5);
726 | for (var i = 0; i < a.length; i++) {
727 | long += (a.charCodeAt(i) << (i % 16)) + i
728 | }
729 | a = long + "" + str.substr(4);
730 | return hex_md5(b).substr(2, 24)
731 | }
732 |
733 | function makeKey_7(str) {
734 | var base = new Base64();
735 | var str = base.encode(str.substr(5, 5 * 4) + "55" + str.substr(1, 2)) + str.substr((5 + 1) * (5 + 1), 3);
736 | var long = 0;
737 | for (var i = 0; i < str.substr(1).length; i++) {
738 | long += (str.charCodeAt(i) << (i % 16 + 5)) + 3 + 5
739 | }
740 | var aa = long + str.substr(4);
741 | var long = 0;
742 | var a = str.substr(5);
743 | for (var i = 0; i < a.length; i++) {
744 | long += (a.charCodeAt(i) << (i % 16))
745 | }
746 | a = long + "" + str.substr(4);
747 | var b = hex_md5(str.substr(1)) + strToLong(a.substr(5));
748 | return hex_md5(b).substr(3, 24)
749 | }
750 |
751 | function makeKey_8(str) {
752 | var base = new Base64();
753 | var str = base.encode(str.substr(5, 5 * 5 - 1) + "5" + "-" + "5") + str.substr(1, 2) + str.substr((5 + 1) * (5 + 1), 3);
754 | var long = 0;
755 | for (var i = 0; i < str.substr(1).length; i++) {
756 | long += (str.charCodeAt(i) << (i % 16))
757 | }
758 | var aa = long + str.substr(4);
759 | var long = 0;
760 | var a = str.substr(5);
761 | for (var i = 0; i < a.length; i++) {
762 | long += (a.charCodeAt(i) << (i % 16))
763 | }
764 | a = long + "" + str.substr(4);
765 | var b = hex_md5(str.substr(1)) + strToLongEn(a.substr(5));
766 | return hex_md5(b).substr(4, 24)
767 | }
768 |
769 | function makeKey_9(str) {
770 | var str = str.substr(5, 5 * 5) + "5" + str.substr(1, 2) + "1" + str.substr((5 + 1) * (5 + 1), 3);
771 | var a = str.substr(5) + str.substr(4);
772 | var b = str.substr(12) + a.substr(-6);
773 | var c = hex_sha1(str.substr(4)) + a.substr(6);
774 | return hex_md5(c).substr(4, 24)
775 | }
776 |
777 | function makeKey_10(str) {
778 | var base = new Base64();
779 | var str = base.encode(str.substr(5, 5 * 5 - 1) + "5") + str.substr(1, 2) + str.substr((5 + 1) * (5 + 1), 3);
780 | var long = 0;
781 | for (var i = 0; i < str.substr(1).length; i++) {
782 | long += (str.charCodeAt(i) << (i % 16))
783 | }
784 | var aa = long + str.substr(4);
785 | var long = 0;
786 | var a = str.substr(5);
787 | for (var i = 0; i < a.length; i++) {
788 | long += (a.charCodeAt(i) << (i % 16))
789 | }
790 | a = long + "" + str.substr(4);
791 | var b = hex_md5(str.substr(1)) + hex_sha1(a.substr(5));
792 | return hex_md5(b).substr(4, 24)
793 | }
794 |
795 | function makeKey_11(str) {
796 | var base = new Base64();
797 | var str = str.substr(5, 5 * 5 - 1) + "2" + str.substr(1, 2) + str.substr((5 + 1) * (5 + 1), 3);
798 | var long = 0;
799 | for (var i = 0; i < str.substr(1).length; i++) {
800 | long += (str.charCodeAt(i) << (i % 16))
801 | }
802 | var aa = long + str.substr(4);
803 | var long = 0;
804 | var a = str.substr(5);
805 | for (var i = 0; i < a.length; i++) {
806 | long += (a.charCodeAt(i) << (i % 16))
807 | }
808 | a = long + "" + str.substr(2);
809 | var b = str.substr(1) + hex_sha1(a.substr(5));
810 | return hex_md5(b).substr(2, 24)
811 | }
812 |
813 | function makeKey_12(str) {
814 | var base = new Base64();
815 | var str = str.substr(5, 5 * 5 - 1) + str.substr((5 + 1) * (5 + 1), 3) + "2" + str.substr(1, 2);
816 | var long = 0;
817 | for (var i = 0; i < str.substr(1).length; i++) {
818 | long += (str.charCodeAt(i) << (i % 16))
819 | }
820 | var aa = long + str.substr(4);
821 | var long = 0;
822 | var a = str.substr(5);
823 | for (var i = 0; i < a.length; i++) {
824 | long += (a.charCodeAt(i) << (i % 16))
825 | }
826 | a = long + "" + str.substr(2);
827 | var b = str.substr(1) + hex_sha1(str.substr(5));
828 | return hex_md5(b).substr(1, 24)
829 | }
830 |
831 | function makeKey_13(str) {
832 | var base = new Base64();
833 | var str = str.substr(5, 5 * 5 - 1) + "2" + str.substr(1, 2);
834 | var long = 0;
835 | for (var i = 0; i < str.substr(1).length; i++) {
836 | long += (str.charCodeAt(i) << (i % 16))
837 | }
838 | var aa = long + str.substr(4);
839 | var long = 0;
840 | var a = str.substr(5);
841 | for (var i = 0; i < a.length; i++) {
842 | long += (a.charCodeAt(i) << (i % 16))
843 | }
844 | a = long + "" + str.substr(2);
845 | var b = base.encode(str.substr(1) + hex_sha1(str.substr(5)));
846 | return hex_md5(b).substr(1, 24)
847 | }
848 |
849 | function makeKey_14(str) {
850 | var base = new Base64();
851 | var str = str.substr(5, 5 * 5 - 1) + "2" + str.substr(1, 2);
852 | var long = 0;
853 | for (var i = 0; i < str.substr(1).length; i++) {
854 | long += (str.charCodeAt(i) << (i % 16))
855 | }
856 | var aa = long + str.substr(4);
857 | var long = 0;
858 | var a = str.substr(5);
859 | for (var i = 0; i < a.length; i++) {
860 | long += (a.charCodeAt(i) << (i % 16))
861 | }
862 | a = long + "" + str.substr(2);
863 | var b = base.encode(str.substr(1) + str.substr(5) + str.substr(1, 3));
864 | return hex_sha1(b).substr(1, 24)
865 | }
866 |
867 | function makeKey_15(str) {
868 | var base = new Base64();
869 | var str = str.substr(5, 5 * 5 - 1) + "2" + str.substr(1, 2);
870 | var long = 0;
871 | for (var i = 0; i < str.substr(1).length; i++) {
872 | long += (str.charCodeAt(i) << (i % 16))
873 | }
874 | var aa = long + str.substr(4);
875 | var long = 0;
876 | var a = str.substr(5);
877 | for (var i = 0; i < a.length; i++) {
878 | long += (a.charCodeAt(i) << (i % 16))
879 | }
880 | a = long + "" + str.substr(2);
881 | var b = base.encode(a.substr(1) + str.substr(5) + str.substr(2, 3));
882 | return hex_sha1(b).substr(1, 24)
883 | }
884 |
885 | function makeKey_16(str) {
886 | var base = new Base64();
887 | var str = str.substr(5, 5 * 5 - 1) + "2" + str.substr(1, 2) + "-" + "5";
888 | var long = 0;
889 | for (var i = 0; i < str.substr(1).length; i++) {
890 | long += (str.charCodeAt(i) << (i % 11))
891 | }
892 | var aa = long + str.substr(4);
893 | var long = 0;
894 | var a = str.substr(5);
895 | for (var i = 0; i < a.length; i++) {
896 | long += (a.charCodeAt(i) << (i % 16)) + i
897 | }
898 | a = long + "" + str.substr(2);
899 | var b = base.encode(a.substr(1)) + strToLongEn2(str.substr(5), 5) + str.substr(2, 3);
900 | return hex_md5(b).substr(2, 24)
901 | }
902 |
903 | function makeKey_17(str) {
904 | var base = new Base64();
905 | var str = str.substr(5, 5 * 5 - 1) + "7" + str.substr(1, 2) + "-" + "5";
906 | var long = 0;
907 | for (var i = 0; i < str.substr(1).length; i++) {
908 | long += (str.charCodeAt(i) << (i % 11))
909 | }
910 | var aa = long + str.substr(4);
911 | var long = 0;
912 | var a = str.substr(5);
913 | for (var i = 0; i < a.length; i++) {
914 | long += (a.charCodeAt(i) << (i % 16)) + i
915 | }
916 | a = long + "" + str.substr(2);
917 | var b = base.encode(a.substr(1)) + strToLongEn2(str.substr(5), 5 + 1) + str.substr(2 + 5, 3);
918 | return hex_md5(b).substr(0, 24)
919 | }
920 |
921 | function makeKey_18(str) {
922 | var base = new Base64();
923 | var str = str.substr(5, 5 * 5 - 1) + "7" + str.substr(1, 2) + "5" + str.substr(2 + 5, 3);
924 | var long = 0;
925 | for (var i = 0; i < str.substr(1).length; i++) {
926 | long += (str.charCodeAt(i) << (i % 11))
927 | }
928 | var aa = long + str.substr(4);
929 | var long = 0;
930 | var a = str.substr(5);
931 | for (var i = 0; i < a.length; i++) {
932 | long += (a.charCodeAt(i) << (i % 16)) + i
933 | }
934 | a = long + "" + str.substr(2);
935 | var b = a.substr(1) + strToLongEn2(str.substr(5), 5 + 1) + str.substr(2 + 5, 3);
936 | return hex_md5(b).substr(0, 24)
937 | }
938 |
939 | function makeKey_19(str) {
940 | var base = new Base64();
941 | var str = str.substr(5, 5 * 5 - 1) + "7" + str.substr(5, 2) + "5" + str.substr(2 + 5, 3);
942 | var long = 0;
943 | for (var i = 0; i < str.substr(1).length; i++) {
944 | long += (str.charCodeAt(i) << (i % 11))
945 | }
946 | var aa = long + str.substr(4);
947 | var long = 0;
948 | var a = str.substr(5);
949 | for (var i = 0; i < a.length; i++) {
950 | long += (a.charCodeAt(i) << (i % 16)) + i
951 | }
952 | a = long + "" + str.substr(2);
953 | var b = a.substr(1) + strToLongEn3(str.substr(5), 5 - 1) + str.substr(2 + 5, 3);
954 | return hex_md5(b).substr(0, 24)
955 | }
956 |
957 | function makeKey_20(str) {
958 | return hex_md5(makeKey_10(str) + makeKey_5(str)).substr(1, 24)
959 | }
960 |
961 |
962 | function makeKey_21(str) {
963 | return hex_md5(makeKey_11(str) + makeKey_3(str)).substr(2, 24)
964 | }
965 |
966 | function makeKey_22(str) {
967 | return hex_md5(makeKey_14(str) + makeKey_19(str)).substr(3, 24)
968 | }
969 |
970 | function makeKey_23(str) {
971 | return hex_md5(makeKey_15(str) + makeKey_0(str)).substr(4, 24)
972 | }
973 |
974 | function makeKey_24(str) {
975 | return hex_md5(makeKey_16(str) + makeKey_1(str)).substr(1, 24)
976 | }
977 |
978 | function makeKey_25(str) {
979 | return hex_md5(makeKey_9(str) + makeKey_4(str)).substr(2, 24)
980 | }
981 |
982 | function makeKey_26(str) {
983 | return hex_md5(makeKey_10(str) + makeKey_5(str)).substr(3, 24)
984 | }
985 |
986 | function makeKey_27(str) {
987 | return hex_md5(makeKey_17(str) + makeKey_3(str)).substr(4, 24)
988 | }
989 |
990 | function makeKey_28(str) {
991 | return hex_md5(makeKey_18(str) + makeKey_7(str)).substr(1, 24)
992 | }
993 |
994 | function makeKey_29(str) {
995 | return hex_md5(makeKey_19(str) + makeKey_3(str)).substr(2, 24)
996 | }
997 |
998 | function makeKey_30(str) {
999 | return hex_md5(makeKey_0(str) + makeKey_7(str)).substr(3, 24)
1000 | }
1001 |
1002 | function makeKey_31(str) {
1003 | return hex_md5(makeKey_1(str) + makeKey_8(str)).substr(4, 24)
1004 | }
1005 |
1006 | function makeKey_32(str) {
1007 | return hex_md5(makeKey_4(str) + makeKey_14(str)).substr(3, 24)
1008 | }
1009 |
1010 | function makeKey_33(str) {
1011 | return hex_md5(makeKey_5(str) + makeKey_15(str)).substr(4, 24)
1012 | }
1013 |
1014 | function makeKey_34(str) {
1015 | return hex_md5(makeKey_3(str) + makeKey_16(str)).substr(1, 24)
1016 | }
1017 |
1018 | function makeKey_35(str) {
1019 | return hex_md5(makeKey_7(str) + makeKey_9(str)).substr(2, 24)
1020 | }
1021 |
1022 | function makeKey_36(str) {
1023 | return hex_md5(makeKey_8(str) + makeKey_10(str)).substr(3, 24)
1024 | }
1025 |
1026 | function makeKey_37(str) {
1027 | return hex_md5(makeKey_6(str) + makeKey_17(str)).substr(1, 24)
1028 | }
1029 |
1030 | function makeKey_38(str) {
1031 | return hex_md5(makeKey_12(str) + makeKey_18(str)).substr(2, 24)
1032 | }
1033 |
1034 | function makeKey_39(str) {
1035 | return hex_md5(makeKey_14(str) + makeKey_19(str)).substr(3, 24)
1036 | }
1037 |
1038 | function makeKey_40(str) {
1039 | return hex_md5(makeKey_15(str) + makeKey_0(str)).substr(4, 24)
1040 | }
1041 |
1042 | function makeKey_41(str) {
1043 | return hex_md5(makeKey_16(str) + makeKey_1(str)).substr(3, 24)
1044 | }
1045 |
1046 | function makeKey_42(str) {
1047 | return hex_md5(makeKey_9(str) + makeKey_4(str)).substr(4, 24)
1048 | }
1049 |
1050 | function makeKey_43(str) {
1051 | return hex_md5(makeKey_10(str) + makeKey_5(str)).substr(1, 24)
1052 | }
1053 |
1054 | function makeKey_44(str) {
1055 | return hex_md5(makeKey_17(str) + makeKey_3(str)).substr(2, 24)
1056 | }
1057 |
1058 | function makeKey_45(str) {
1059 | return hex_md5(makeKey_18(str) + makeKey_7(str)).substr(3, 24)
1060 | }
1061 |
1062 | function makeKey_46(str) {
1063 | return hex_md5(makeKey_19(str) + makeKey_17(str)).substr(4, 24)
1064 | }
1065 |
1066 | function makeKey_47(str) {
1067 | return hex_md5(makeKey_0(str) + makeKey_18(str)).substr(1, 24)
1068 | }
1069 |
1070 | function makeKey_48(str) {
1071 | return hex_md5(makeKey_1(str) + makeKey_19(str)).substr(2, 24)
1072 | }
1073 |
1074 | function makeKey_49(str) {
1075 | return hex_md5(makeKey_4(str) + makeKey_0(str)).substr(3, 24)
1076 | }
1077 |
1078 | function makeKey_50(str) {
1079 | return hex_md5(makeKey_5(str) + makeKey_1(str)).substr(4, 24)
1080 | }
1081 |
1082 | function makeKey_51(str) {
1083 | return hex_md5(makeKey_3(str) + makeKey_4(str)).substr(1, 24)
1084 | }
1085 |
1086 | function makeKey_52(str) {
1087 | return hex_md5(makeKey_7(str) + makeKey_14(str)).substr(2, 24)
1088 | }
1089 |
1090 | function makeKey_53(str) {
1091 | return hex_md5(makeKey_12(str) + makeKey_15(str)).substr(3, 24)
1092 | }
1093 |
1094 | function makeKey_54(str) {
1095 | return hex_md5(makeKey_14(str) + makeKey_16(str)).substr(4, 24)
1096 | }
1097 |
1098 | function makeKey_55(str) {
1099 | return hex_md5(makeKey_15(str) + makeKey_9(str)).substr(3, 24)
1100 | }
1101 |
1102 | function makeKey_56(str) {
1103 | return hex_md5(makeKey_16(str) + makeKey_10(str)).substr(4, 24)
1104 | }
1105 |
1106 | function makeKey_57(str) {
1107 | return hex_md5(makeKey_9(str) + makeKey_17(str)).substr(1, 24)
1108 | }
1109 |
1110 | function makeKey_58(str) {
1111 | return hex_md5(makeKey_10(str) + makeKey_18(str)).substr(2, 24)
1112 | }
1113 |
1114 | function makeKey_59(str) {
1115 | return hex_md5(makeKey_17(str) + makeKey_19(str)).substr(3, 24)
1116 | }
1117 |
1118 | function makeKey_60(str) {
1119 | return hex_md5(makeKey_18(str) + makeKey_0(str)).substr(1, 24)
1120 | }
1121 |
1122 | function makeKey_61(str) {
1123 | return hex_md5(makeKey_19(str) + makeKey_1(str)).substr(2, 24)
1124 | }
1125 |
1126 | function makeKey_62(str) {
1127 | return hex_md5(makeKey_0(str) + makeKey_4(str)).substr(3, 24)
1128 | }
1129 |
1130 | function makeKey_63(str) {
1131 | return hex_md5(makeKey_1(str) + makeKey_19(str)).substr(4, 24)
1132 | }
1133 |
1134 | function makeKey_64(str) {
1135 | return hex_md5(makeKey_4(str) + makeKey_0(str)).substr(3, 24)
1136 | }
1137 |
1138 | function makeKey_65(str) {
1139 | return hex_md5(makeKey_14(str) + makeKey_1(str)).substr(1, 24)
1140 | }
1141 |
1142 | function makeKey_66(str) {
1143 | return hex_md5(makeKey_15(str) + makeKey_4(str)).substr(2, 24)
1144 | }
1145 |
1146 | function makeKey_67(str) {
1147 | return hex_md5(makeKey_16(str) + makeKey_5(str)).substr(3, 24)
1148 | }
1149 |
1150 | function makeKey_68(str) {
1151 | return hex_md5(makeKey_9(str) + makeKey_3(str)).substr(4, 24)
1152 | }
1153 |
1154 | function makeKey_69(str) {
1155 | return hex_md5(makeKey_10(str) + makeKey_7(str)).substr(1, 24)
1156 | }
1157 |
1158 | function makeKey_70(str) {
1159 | return hex_md5(makeKey_17(str) + makeKey_0(str)).substr(2, 24)
1160 | }
1161 |
1162 | function makeKey_71(str) {
1163 | return hex_md5(makeKey_18(str) + makeKey_1(str)).substr(3, 24)
1164 | }
1165 |
1166 | function makeKey_72(str) {
1167 | return hex_md5(makeKey_19(str) + makeKey_4(str)).substr(4, 24)
1168 | }
1169 |
1170 | function makeKey_73(str) {
1171 | return hex_md5(makeKey_0(str) + makeKey_17(str)).substr(1, 24)
1172 | }
1173 |
1174 | function makeKey_74(str) {
1175 | return hex_md5(makeKey_1(str) + makeKey_18(str)).substr(2, 24)
1176 | }
1177 |
1178 | function makeKey_75(str) {
1179 | return hex_md5(makeKey_14(str) + makeKey_19(str)).substr(3, 24)
1180 | }
1181 |
1182 | function makeKey_76(str) {
1183 | return hex_md5(makeKey_15(str) + makeKey_0(str)).substr(4, 24)
1184 | }
1185 |
1186 | function makeKey_77(str) {
1187 | return hex_md5(makeKey_16(str) + makeKey_1(str)).substr(3, 24)
1188 | }
1189 |
1190 | function makeKey_78(str) {
1191 | return hex_md5(makeKey_9(str) + makeKey_4(str)).substr(4, 24)
1192 | }
1193 |
1194 | function makeKey_79(str) {
1195 | return hex_md5(makeKey_10(str) + makeKey_9(str)).substr(1, 24)
1196 | }
1197 |
1198 | function makeKey_80(str) {
1199 | return hex_md5(makeKey_17(str) + makeKey_10(str)).substr(2, 24)
1200 | }
1201 |
1202 | function makeKey_81(str) {
1203 | return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(3, 24)
1204 | }
1205 |
1206 | function makeKey_82(str) {
1207 | return hex_md5(makeKey_14(str) + makeKey_18(str)).substr(1, 24)
1208 | }
1209 |
1210 | function makeKey_83(str) {
1211 | return hex_md5(makeKey_15(str) + makeKey_19(str)).substr(4, 24)
1212 | }
1213 |
1214 | function makeKey_84(str) {
1215 | return hex_md5(makeKey_16(str) + makeKey_0(str)).substr(1, 24)
1216 | }
1217 |
1218 | function makeKey_85(str) {
1219 | return hex_md5(makeKey_9(str) + makeKey_1(str)).substr(2, 24)
1220 | }
1221 |
1222 | function makeKey_86(str) {
1223 | return hex_md5(makeKey_10(str) + makeKey_4(str)).substr(3, 24)
1224 | }
1225 |
1226 | function makeKey_87(str) {
1227 | return hex_md5(makeKey_14(str) + makeKey_14(str)).substr(4, 24)
1228 | }
1229 |
1230 | function makeKey_88(str) {
1231 | return hex_md5(makeKey_15(str) + makeKey_15(str)).substr(1, 24)
1232 | }
1233 |
1234 | function makeKey_89(str) {
1235 | return hex_md5(makeKey_16(str) + makeKey_16(str)).substr(2, 24)
1236 | }
1237 |
1238 | function makeKey_90(str) {
1239 | return hex_md5(makeKey_9(str) + makeKey_9(str)).substr(3, 24)
1240 | }
1241 |
1242 | function makeKey_91(str) {
1243 | return hex_md5(makeKey_10(str) + makeKey_10(str)).substr(4, 24)
1244 | }
1245 |
1246 | function makeKey_92(str) {
1247 | return hex_md5(makeKey_17(str) + makeKey_17(str)).substr(3, 24)
1248 | }
1249 |
1250 | function makeKey_93(str) {
1251 | return hex_md5(makeKey_18(str) + makeKey_18(str)).substr(4, 24)
1252 | }
1253 |
1254 | function makeKey_94(str) {
1255 | return hex_md5(makeKey_19(str) + makeKey_19(str)).substr(1, 24)
1256 | }
1257 |
1258 | function makeKey_95(str) {
1259 | return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(2, 24)
1260 | }
1261 |
1262 | function makeKey_96(str) {
1263 | return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(3, 24)
1264 | }
1265 |
1266 | function makeKey_97(str) {
1267 | return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(4, 24)
1268 | }
1269 |
1270 | function makeKey_98(str) {
1271 | return hex_md5(makeKey_5(str) + makeKey_5(str)).substr(3, 24)
1272 | }
1273 |
1274 | function makeKey_99(str) {
1275 | return hex_md5(makeKey_3(str) + makeKey_3(str)).substr(4, 24)
1276 | }
1277 |
1278 | function makeKey_100(str) {
1279 | return hex_md5(makeKey_7(str) + makeKey_3(str)).substr(1, 24)
1280 | }
1281 |
1282 | function makeKey_101(str) {
1283 | return hex_md5(makeKey_10(str) + makeKey_7(str)).substr(2, 24)
1284 | }
1285 |
1286 | function makeKey_102(str) {
1287 | return hex_md5(makeKey_17(str) + makeKey_18(str)).substr(1, 24)
1288 | }
1289 |
1290 | function makeKey_103(str) {
1291 | return hex_md5(makeKey_18(str) + makeKey_19(str)).substr(2, 24)
1292 | }
1293 |
1294 | function makeKey_104(str) {
1295 | return hex_md5(makeKey_19(str) + makeKey_0(str)).substr(3, 24)
1296 | }
1297 |
1298 | function makeKey_105(str) {
1299 | return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(4, 24)
1300 | }
1301 |
1302 | function makeKey_106(str) {
1303 | return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(1, 24)
1304 | }
1305 |
1306 | function makeKey_107(str) {
1307 | return hex_md5(makeKey_14(str) + makeKey_14(str)).substr(2, 24)
1308 | }
1309 |
1310 | function makeKey_108(str) {
1311 | return hex_md5(makeKey_15(str) + makeKey_15(str)).substr(3, 24)
1312 | }
1313 |
1314 | function makeKey_109(str) {
1315 | return hex_md5(makeKey_16(str) + makeKey_16(str)).substr(4, 24)
1316 | }
1317 |
1318 | function makeKey_110(str) {
1319 | return hex_md5(makeKey_9(str) + makeKey_9(str)).substr(1, 24)
1320 | }
1321 |
1322 | function makeKey_111(str) {
1323 | return hex_md5(makeKey_10(str) + makeKey_10(str)).substr(2, 24)
1324 | }
1325 |
1326 | function makeKey_112(str) {
1327 | return hex_md5(makeKey_17(str) + makeKey_17(str)).substr(3, 24)
1328 | }
1329 |
1330 | function makeKey_113(str) {
1331 | return hex_md5(makeKey_18(str) + makeKey_18(str)).substr(4, 24)
1332 | }
1333 |
1334 | function makeKey_114(str) {
1335 | return hex_md5(makeKey_19(str) + makeKey_19(str)).substr(3, 24)
1336 | }
1337 |
1338 | function makeKey_115(str) {
1339 | return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(4, 24)
1340 | }
1341 |
1342 | function makeKey_116(str) {
1343 | return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(1, 24)
1344 | }
1345 |
1346 | function makeKey_117(str) {
1347 | return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(2, 24)
1348 | }
1349 |
1350 | function makeKey_118(str) {
1351 | return hex_md5(makeKey_5(str) + makeKey_15(str)).substr(3, 24)
1352 | }
1353 |
1354 | function makeKey_119(str) {
1355 | return hex_md5(makeKey_3(str) + makeKey_16(str)).substr(1, 24)
1356 | }
1357 |
1358 | function makeKey_120(str) {
1359 | return hex_md5(makeKey_19(str) + makeKey_9(str)).substr(1, 24)
1360 | }
1361 |
1362 | function makeKey_121(str) {
1363 | return hex_md5(makeKey_0(str) + makeKey_10(str)).substr(2, 24)
1364 | }
1365 |
1366 | function makeKey_122(str) {
1367 | return hex_md5(makeKey_1(str) + makeKey_17(str)).substr(3, 24)
1368 | }
1369 |
1370 | function makeKey_123(str) {
1371 | return hex_md5(makeKey_4(str) + makeKey_18(str)).substr(4, 24)
1372 | }
1373 |
1374 | function makeKey_124(str) {
1375 | return hex_md5(makeKey_5(str) + makeKey_19(str)).substr(1, 24)
1376 | }
1377 |
1378 | function makeKey_125(str) {
1379 | return hex_md5(makeKey_3(str) + makeKey_0(str)).substr(2, 24)
1380 | }
1381 |
1382 | function makeKey_126(str) {
1383 | return hex_md5(makeKey_7(str) + makeKey_1(str)).substr(3, 24)
1384 | }
1385 |
1386 | function makeKey_127(str) {
1387 | return hex_md5(makeKey_3(str) + makeKey_4(str)).substr(4, 24)
1388 | }
1389 |
1390 | function makeKey_128(str) {
1391 | return hex_md5(makeKey_7(str) + makeKey_5(str)).substr(1, 24)
1392 | }
1393 |
1394 | function makeKey_129(str) {
1395 | return hex_md5(makeKey_8(str) + makeKey_3(str)).substr(2, 24)
1396 | }
1397 |
1398 | function makeKey_130(str) {
1399 | return hex_md5(makeKey_14(str) + makeKey_7(str)).substr(3, 24)
1400 | }
1401 |
1402 | function makeKey_131(str) {
1403 | return hex_md5(makeKey_15(str) + makeKey_10(str)).substr(4, 24)
1404 | }
1405 |
1406 | function makeKey_132(str) {
1407 | return hex_md5(makeKey_16(str) + makeKey_17(str)).substr(3, 24)
1408 | }
1409 |
1410 | function makeKey_133(str) {
1411 | return hex_md5(makeKey_9(str) + makeKey_18(str)).substr(4, 24)
1412 | }
1413 |
1414 | function makeKey_134(str) {
1415 | return hex_md5(makeKey_10(str) + makeKey_19(str)).substr(1, 24)
1416 | }
1417 |
1418 | function makeKey_135(str) {
1419 | return hex_md5(makeKey_17(str) + makeKey_0(str)).substr(2, 24)
1420 | }
1421 |
1422 | function makeKey_136(str) {
1423 | return hex_md5(makeKey_18(str) + makeKey_1(str)).substr(1, 24)
1424 | }
1425 |
1426 | function makeKey_137(str) {
1427 | return hex_md5(makeKey_19(str) + makeKey_14(str)).substr(2, 24)
1428 | }
1429 |
1430 | function makeKey_138(str) {
1431 | return hex_md5(makeKey_0(str) + makeKey_15(str)).substr(3, 24)
1432 | }
1433 |
1434 | function makeKey_139(str) {
1435 | return hex_md5(makeKey_1(str) + makeKey_16(str)).substr(4, 24)
1436 | }
1437 |
1438 | function makeKey_140(str) {
1439 | return hex_md5(makeKey_4(str) + makeKey_9(str)).substr(1, 24)
1440 | }
1441 |
1442 | function makeKey_141(str) {
1443 | return hex_md5(makeKey_5(str) + makeKey_10(str)).substr(2, 24)
1444 | }
1445 |
1446 | function makeKey_142(str) {
1447 | return hex_md5(makeKey_3(str) + makeKey_17(str)).substr(3, 24)
1448 | }
1449 |
1450 | function makeKey_143(str) {
1451 | return hex_md5(makeKey_7(str) + makeKey_18(str)).substr(4, 24)
1452 | }
1453 |
1454 | function makeKey_144(str) {
1455 | return hex_md5(makeKey_17(str) + makeKey_19(str)).substr(1, 24)
1456 | }
1457 |
1458 | function makeKey_145(str) {
1459 | return hex_md5(makeKey_18(str) + makeKey_0(str)).substr(2, 24)
1460 | }
1461 |
1462 | function makeKey_146(str) {
1463 | return hex_md5(makeKey_19(str) + makeKey_1(str)).substr(3, 24)
1464 | }
1465 |
1466 | function makeKey_147(str) {
1467 | return hex_md5(makeKey_0(str) + makeKey_4(str)).substr(4, 24)
1468 | }
1469 |
1470 | function makeKey_148(str) {
1471 | return hex_md5(makeKey_1(str) + makeKey_5(str)).substr(3, 24)
1472 | }
1473 |
1474 | function makeKey_149(str) {
1475 | return hex_md5(makeKey_4(str) + makeKey_3(str)).substr(4, 24)
1476 | }
1477 |
1478 | function makeKey_150(str) {
1479 | return hex_md5(makeKey_14(str) + makeKey_19(str)).substr(1, 24)
1480 | }
1481 |
1482 | function makeKey_151(str) {
1483 | return hex_md5(makeKey_15(str) + makeKey_0(str)).substr(2, 24)
1484 | }
1485 |
1486 | function makeKey_152(str) {
1487 | return hex_md5(makeKey_16(str) + makeKey_1(str)).substr(3, 24)
1488 | }
1489 |
1490 | function makeKey_153(str) {
1491 | return hex_md5(makeKey_9(str) + makeKey_4(str)).substr(1, 24)
1492 | }
1493 |
1494 | function makeKey_154(str) {
1495 | return hex_md5(makeKey_10(str) + makeKey_5(str)).substr(1, 24)
1496 | }
1497 |
1498 | function makeKey_155(str) {
1499 | return hex_md5(makeKey_17(str) + makeKey_3(str)).substr(2, 24)
1500 | }
1501 |
1502 | function makeKey_156(str) {
1503 | return hex_md5(makeKey_18(str) + makeKey_7(str)).substr(3, 24)
1504 | }
1505 |
1506 | function makeKey_157(str) {
1507 | return hex_md5(makeKey_19(str) + makeKey_3(str)).substr(4, 24)
1508 | }
1509 |
1510 | function makeKey_158(str) {
1511 | return hex_md5(makeKey_0(str) + makeKey_7(str)).substr(1, 24)
1512 | }
1513 |
1514 | function makeKey_159(str) {
1515 | return hex_md5(makeKey_1(str) + makeKey_8(str)).substr(2, 24)
1516 | }
1517 |
1518 | function makeKey_160(str) {
1519 | return hex_md5(makeKey_4(str) + makeKey_14(str)).substr(3, 24)
1520 | }
1521 |
1522 | function makeKey_161(str) {
1523 | return hex_md5(makeKey_19(str) + makeKey_15(str)).substr(4, 24)
1524 | }
1525 |
1526 | function makeKey_162(str) {
1527 | return hex_md5(makeKey_0(str) + makeKey_16(str)).substr(1, 24)
1528 | }
1529 |
1530 | function makeKey_163(str) {
1531 | return hex_md5(makeKey_1(str) + makeKey_9(str)).substr(2, 24)
1532 | }
1533 |
1534 | function makeKey_164(str) {
1535 | return hex_md5(makeKey_4(str) + makeKey_10(str)).substr(3, 24)
1536 | }
1537 |
1538 | function makeKey_165(str) {
1539 | return hex_md5(makeKey_5(str) + makeKey_17(str)).substr(4, 24)
1540 | }
1541 |
1542 | function makeKey_166(str) {
1543 | return hex_md5(makeKey_3(str) + makeKey_18(str)).substr(3, 24)
1544 | }
1545 |
1546 | function makeKey_167(str) {
1547 | return hex_md5(makeKey_7(str) + makeKey_19(str)).substr(4, 24)
1548 | }
1549 |
1550 | function makeKey_168(str) {
1551 | return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(1, 24)
1552 | }
1553 |
1554 | function makeKey_169(str) {
1555 | return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(2, 24)
1556 | }
1557 |
1558 | function makeKey_170(str) {
1559 | return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(3, 24)
1560 | }
1561 |
1562 | function makeKey_171(str) {
1563 | return hex_md5(makeKey_17(str) + makeKey_5(str)).substr(1, 24)
1564 | }
1565 |
1566 | function makeKey_172(str) {
1567 | return hex_md5(makeKey_18(str) + makeKey_3(str)).substr(2, 24)
1568 | }
1569 |
1570 | function makeKey_173(str) {
1571 | return hex_md5(makeKey_19(str) + makeKey_7(str)).substr(3, 24)
1572 | }
1573 |
1574 | function makeKey_174(str) {
1575 | return hex_md5(makeKey_0(str) + makeKey_17(str)).substr(4, 24)
1576 | }
1577 |
1578 | function makeKey_175(str) {
1579 | return hex_md5(makeKey_1(str) + makeKey_18(str)).substr(1, 24)
1580 | }
1581 |
1582 | function makeKey_176(str) {
1583 | return hex_md5(makeKey_4(str) + makeKey_19(str)).substr(2, 24)
1584 | }
1585 |
1586 | function makeKey_177(str) {
1587 | return hex_md5(makeKey_9(str) + makeKey_0(str)).substr(3, 24)
1588 | }
1589 |
1590 | function makeKey_178(str) {
1591 | return hex_md5(makeKey_10(str) + makeKey_1(str)).substr(4, 24)
1592 | }
1593 |
1594 | function makeKey_179(str) {
1595 | return hex_md5(makeKey_17(str) + makeKey_4(str)).substr(1, 24)
1596 | }
1597 |
1598 | function makeKey_180(str) {
1599 | return hex_md5(makeKey_18(str) + makeKey_14(str)).substr(3, 24)
1600 | }
1601 |
1602 | function makeKey_181(str) {
1603 | return hex_md5(makeKey_19(str) + makeKey_15(str)).substr(1, 24)
1604 | }
1605 |
1606 | function makeKey_182(str) {
1607 | return hex_md5(makeKey_0(str) + makeKey_16(str)).substr(2, 24)
1608 | }
1609 |
1610 | function makeKey_183(str) {
1611 | return hex_md5(makeKey_1(str) + makeKey_9(str)).substr(3, 24)
1612 | }
1613 |
1614 | function makeKey_184(str) {
1615 | return hex_md5(makeKey_4(str) + makeKey_10(str)).substr(4, 24)
1616 | }
1617 |
1618 | function makeKey_185(str) {
1619 | return hex_md5(makeKey_14(str) + makeKey_17(str)).substr(3, 24)
1620 | }
1621 |
1622 | function makeKey_186(str) {
1623 | return hex_md5(makeKey_15(str) + makeKey_18(str)).substr(4, 24)
1624 | }
1625 |
1626 | function makeKey_187(str) {
1627 | return hex_md5(makeKey_16(str) + makeKey_19(str)).substr(4, 24)
1628 | }
1629 |
1630 | function makeKey_188(str) {
1631 | return hex_md5(makeKey_9(str) + makeKey_0(str)).substr(1, 24)
1632 | }
1633 |
1634 | function makeKey_189(str) {
1635 | return hex_md5(makeKey_10(str) + makeKey_1(str)).substr(2, 24)
1636 | }
1637 |
1638 | function makeKey_190(str) {
1639 | return hex_md5(makeKey_17(str) + makeKey_4(str)).substr(3, 24)
1640 | }
1641 |
1642 | function makeKey_191(str) {
1643 | return hex_md5(makeKey_18(str) + makeKey_19(str)).substr(4, 24)
1644 | }
1645 |
1646 | function makeKey_192(str) {
1647 | return hex_md5(makeKey_19(str) + makeKey_0(str)).substr(1, 24)
1648 | }
1649 |
1650 | function makeKey_193(str) {
1651 | return hex_md5(makeKey_0(str) + makeKey_1(str)).substr(2, 24)
1652 | }
1653 |
1654 | function makeKey_194(str) {
1655 | return hex_md5(makeKey_1(str) + makeKey_4(str)).substr(3, 24)
1656 | }
1657 |
1658 | function makeKey_195(str) {
1659 | return hex_md5(makeKey_4(str) + makeKey_14(str)).substr(4, 24)
1660 | }
1661 |
1662 | function makeKey_196(str) {
1663 | return hex_md5(makeKey_5(str) + makeKey_15(str)).substr(3, 24)
1664 | }
1665 |
1666 | function makeKey_197(str) {
1667 | return hex_md5(makeKey_3(str) + makeKey_16(str)).substr(4, 24)
1668 | }
1669 |
1670 | function makeKey_198(str) {
1671 | return hex_md5(makeKey_3(str) + makeKey_9(str)).substr(1, 24)
1672 | }
1673 |
1674 | function makeKey_199(str) {
1675 | return hex_md5(makeKey_7(str) + makeKey_1(str)).substr(2, 24)
1676 | }
1677 |
1678 | function makeKey_200(str) {
1679 | return hex_md5(makeKey_18(str) + makeKey_19(str)).substr(2, 24)
1680 | }
1681 |
1682 | function makeKey_201(str) {
1683 | return hex_md5(makeKey_19(str) + makeKey_0(str)).substr(3, 24)
1684 | }
1685 |
1686 | function makeKey_202(str) {
1687 | return hex_md5(makeKey_0(str) + makeKey_1(str)).substr(1, 24)
1688 | }
1689 |
1690 | function makeKey_203(str) {
1691 | return hex_md5(makeKey_1(str) + makeKey_4(str)).substr(2, 24)
1692 | }
1693 |
1694 | function makeKey_204(str) {
1695 | return hex_md5(makeKey_4(str) + makeKey_5(str)).substr(3, 24)
1696 | }
1697 |
1698 | function makeKey_205(str) {
1699 | return hex_md5(makeKey_14(str) + makeKey_3(str)).substr(4, 24)
1700 | }
1701 |
1702 | function makeKey_206(str) {
1703 | return hex_md5(makeKey_15(str) + makeKey_7(str)).substr(1, 24)
1704 | }
1705 |
1706 | function makeKey_207(str) {
1707 | return hex_md5(makeKey_16(str) + makeKey_17(str)).substr(2, 24)
1708 | }
1709 |
1710 | function makeKey_208(str) {
1711 | return hex_md5(makeKey_9(str) + makeKey_18(str)).substr(3, 24)
1712 | }
1713 |
1714 | function makeKey_209(str) {
1715 | return hex_md5(makeKey_10(str) + makeKey_19(str)).substr(4, 24)
1716 | }
1717 |
1718 | function makeKey_210(str) {
1719 | return hex_md5(makeKey_17(str) + makeKey_0(str)).substr(1, 24)
1720 | }
1721 |
1722 | function makeKey_211(str) {
1723 | return hex_md5(makeKey_18(str) + makeKey_1(str)).substr(3, 24)
1724 | }
1725 |
1726 | function makeKey_212(str) {
1727 | return hex_md5(makeKey_19(str) + makeKey_4(str)).substr(1, 24)
1728 | }
1729 |
1730 | function makeKey_213(str) {
1731 | return hex_md5(makeKey_0(str) + makeKey_14(str)).substr(2, 24)
1732 | }
1733 |
1734 | function makeKey_214(str) {
1735 | return hex_md5(makeKey_1(str) + makeKey_15(str)).substr(3, 24)
1736 | }
1737 |
1738 | function makeKey_215(str) {
1739 | return hex_md5(makeKey_4(str) + makeKey_16(str)).substr(4, 24)
1740 | }
1741 |
1742 | function makeKey_216(str) {
1743 | return hex_md5(makeKey_19(str) + makeKey_9(str)).substr(3, 24)
1744 | }
1745 |
1746 | function makeKey_217(str) {
1747 | return hex_md5(makeKey_0(str) + makeKey_10(str)).substr(4, 24)
1748 | }
1749 |
1750 | function makeKey_218(str) {
1751 | return hex_md5(makeKey_1(str) + makeKey_17(str)).substr(4, 24)
1752 | }
1753 |
1754 | function makeKey_219(str) {
1755 | return hex_md5(makeKey_4(str) + makeKey_18(str)).substr(1, 24)
1756 | }
1757 |
1758 | function makeKey_220(str) {
1759 | return hex_md5(makeKey_5(str) + makeKey_19(str)).substr(2, 24)
1760 | }
1761 |
1762 | function makeKey_221(str) {
1763 | return hex_md5(makeKey_3(str) + makeKey_0(str)).substr(3, 24)
1764 | }
1765 |
1766 | function makeKey_222(str) {
1767 | return hex_md5(makeKey_7(str) + makeKey_1(str)).substr(4, 24)
1768 | }
1769 |
1770 | function makeKey_223(str) {
1771 | return hex_md5(makeKey_0(str) + makeKey_4(str)).substr(1, 24)
1772 | }
1773 |
1774 | function makeKey_224(str) {
1775 | return hex_md5(makeKey_1(str) + makeKey_5(str)).substr(2, 24)
1776 | }
1777 |
1778 | function makeKey_225(str) {
1779 | return hex_md5(makeKey_4(str) + makeKey_3(str)).substr(3, 24)
1780 | }
1781 |
1782 | function makeKey_226(str) {
1783 | return hex_md5(makeKey_17(str) + makeKey_7(str)).substr(4, 24)
1784 | }
1785 |
1786 | function makeKey_227(str) {
1787 | return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(2, 24)
1788 | }
1789 |
1790 | function makeKey_228(str) {
1791 | return hex_md5(makeKey_19(str) + makeKey_18(str)).substr(3, 24)
1792 | }
1793 |
1794 | function makeKey_229(str) {
1795 | return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(1, 24)
1796 | }
1797 |
1798 | function makeKey_230(str) {
1799 | return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(2, 24)
1800 | }
1801 |
1802 | function makeKey_231(str) {
1803 | return hex_md5(makeKey_4(str) + makeKey_1(str)).substr(3, 24)
1804 | }
1805 |
1806 | function makeKey_232(str) {
1807 | return hex_md5(makeKey_9(str) + makeKey_4(str)).substr(4, 24)
1808 | }
1809 |
1810 | function makeKey_233(str) {
1811 | return hex_md5(makeKey_10(str) + makeKey_14(str)).substr(1, 24)
1812 | }
1813 |
1814 | function makeKey_234(str) {
1815 | return hex_md5(makeKey_17(str) + makeKey_15(str)).substr(2, 24)
1816 | }
1817 |
1818 | function makeKey_235(str) {
1819 | return hex_md5(makeKey_18(str) + makeKey_16(str)).substr(3, 24)
1820 | }
1821 |
1822 | function makeKey_236(str) {
1823 | return hex_md5(makeKey_19(str) + makeKey_9(str)).substr(4, 24)
1824 | }
1825 |
1826 | function makeKey_237(str) {
1827 | return hex_md5(makeKey_0(str) + makeKey_10(str)).substr(1, 24)
1828 | }
1829 |
1830 | function makeKey_238(str) {
1831 | return hex_md5(makeKey_1(str) + makeKey_17(str)).substr(3, 24)
1832 | }
1833 |
1834 | function makeKey_239(str) {
1835 | return hex_md5(makeKey_4(str) + makeKey_19(str)).substr(1, 24)
1836 | }
1837 |
1838 | function makeKey_240(str) {
1839 | return hex_md5(makeKey_14(str) + makeKey_0(str)).substr(2, 24)
1840 | }
1841 |
1842 | function makeKey_241(str) {
1843 | return hex_md5(makeKey_15(str) + makeKey_1(str)).substr(3, 24)
1844 | }
1845 |
1846 | function makeKey_242(str) {
1847 | return hex_md5(makeKey_16(str) + makeKey_4(str)).substr(4, 24)
1848 | }
1849 |
1850 | function makeKey_243(str) {
1851 | return hex_md5(makeKey_9(str) + makeKey_5(str)).substr(3, 24)
1852 | }
1853 |
1854 | function makeKey_244(str) {
1855 | return hex_md5(makeKey_10(str) + makeKey_3(str)).substr(4, 24)
1856 | }
1857 |
1858 | function makeKey_245(str) {
1859 | return hex_md5(makeKey_17(str) + makeKey_7(str)).substr(4, 24)
1860 | }
1861 |
1862 | function makeKey_246(str) {
1863 | return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(2, 24)
1864 | }
1865 |
1866 | function makeKey_247(str) {
1867 | return hex_md5(makeKey_19(str) + makeKey_18(str)).substr(3, 24)
1868 | }
1869 |
1870 | function makeKey_248(str) {
1871 | return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(1, 24)
1872 | }
1873 |
1874 | function makeKey_249(str) {
1875 | return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(2, 24)
1876 | }
1877 |
1878 | function makeKey_250(str) {
1879 | return hex_md5(makeKey_4(str) + makeKey_1(str)).substr(3, 24)
1880 | }
1881 |
1882 | function makeKey_251(str) {
1883 | return hex_md5(makeKey_19(str) + makeKey_4(str)).substr(4, 24)
1884 | }
1885 |
1886 | function makeKey_252(str) {
1887 | return hex_md5(makeKey_0(str) + makeKey_14(str)).substr(1, 24)
1888 | }
1889 |
1890 | function makeKey_253(str) {
1891 | return hex_md5(makeKey_1(str) + makeKey_15(str)).substr(2, 24)
1892 | }
1893 |
1894 | function makeKey_254(str) {
1895 | return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(3, 24)
1896 | }
1897 |
1898 | function makeKey_255(str) {
1899 | return hex_md5(makeKey_5(str) + makeKey_14(str)).substr(4, 24)
1900 | }
1901 |
1902 | function makeKey_256(str) {
1903 | return hex_md5(makeKey_3(str) + makeKey_15(str)).substr(1, 24)
1904 | }
1905 |
1906 | function makeKey_257(str) {
1907 | return hex_md5(makeKey_7(str) + makeKey_16(str)).substr(3, 24)
1908 | }
1909 |
1910 | function makeKey_258(str) {
1911 | return hex_md5(makeKey_0(str) + makeKey_9(str)).substr(1, 24)
1912 | }
1913 |
1914 | function makeKey_259(str) {
1915 | return hex_md5(makeKey_1(str) + makeKey_10(str)).substr(2, 24)
1916 | }
1917 |
1918 | function makeKey_260(str) {
1919 | return hex_md5(makeKey_4(str) + makeKey_17(str)).substr(3, 24)
1920 | }
1921 |
1922 | function makeKey_261(str) {
1923 | return hex_md5(makeKey_17(str) + makeKey_18(str)).substr(4, 24)
1924 | }
1925 |
1926 | function makeKey_262(str) {
1927 | return hex_md5(makeKey_18(str) + makeKey_19(str)).substr(3, 24)
1928 | }
1929 |
1930 | function makeKey_263(str) {
1931 | return hex_md5(makeKey_19(str) + makeKey_0(str)).substr(4, 24)
1932 | }
1933 |
1934 | function makeKey_264(str) {
1935 | return hex_md5(makeKey_0(str) + makeKey_1(str)).substr(4, 24)
1936 | }
1937 |
1938 | function makeKey_265(str) {
1939 | return hex_md5(makeKey_1(str) + makeKey_4(str)).substr(1, 24)
1940 | }
1941 |
1942 | function makeKey_266(str) {
1943 | return hex_md5(makeKey_4(str) + makeKey_19(str)).substr(2, 24)
1944 | }
1945 |
1946 | function makeKey_267(str) {
1947 | return hex_md5(makeKey_9(str) + makeKey_0(str)).substr(3, 24)
1948 | }
1949 |
1950 | function makeKey_268(str) {
1951 | return hex_md5(makeKey_10(str) + makeKey_1(str)).substr(4, 24)
1952 | }
1953 |
1954 | function makeKey_269(str) {
1955 | return hex_md5(makeKey_17(str) + makeKey_4(str)).substr(1, 24)
1956 | }
1957 |
1958 | function makeKey_270(str) {
1959 | return hex_md5(makeKey_18(str) + makeKey_14(str)).substr(2, 24)
1960 | }
1961 |
1962 | function makeKey_271(str) {
1963 | return hex_md5(makeKey_19(str) + makeKey_15(str)).substr(3, 24)
1964 | }
1965 |
1966 | function makeKey_272(str) {
1967 | return hex_md5(makeKey_0(str) + makeKey_16(str)).substr(4, 24)
1968 | }
1969 |
1970 | function makeKey_273(str) {
1971 | return hex_md5(makeKey_1(str) + makeKey_9(str)).substr(3, 24)
1972 | }
1973 |
1974 | function makeKey_274(str) {
1975 | return hex_md5(makeKey_19(str) + makeKey_1(str)).substr(4, 24)
1976 | }
1977 |
1978 | function makeKey_275(str) {
1979 | return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(1, 24)
1980 | }
1981 |
1982 | function makeKey_276(str) {
1983 | return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(2, 24)
1984 | }
1985 |
1986 | function makeKey_277(str) {
1987 | return hex_md5(makeKey_4(str) + makeKey_1(str)).substr(2, 24)
1988 | }
1989 |
1990 | function makeKey_278(str) {
1991 | return hex_md5(makeKey_5(str) + makeKey_4(str)).substr(3, 24)
1992 | }
1993 |
1994 | function makeKey_279(str) {
1995 | return hex_md5(makeKey_3(str) + makeKey_5(str)).substr(1, 24)
1996 | }
1997 |
1998 | function makeKey_280(str) {
1999 | return hex_md5(makeKey_7(str) + makeKey_3(str)).substr(2, 24)
2000 | }
2001 |
2002 | function makeKey_281(str) {
2003 | return hex_md5(makeKey_17(str) + makeKey_7(str)).substr(3, 24)
2004 | }
2005 |
2006 | function makeKey_282(str) {
2007 | return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(4, 24)
2008 | }
2009 |
2010 | function makeKey_283(str) {
2011 | return hex_md5(makeKey_19(str) + makeKey_18(str)).substr(1, 24)
2012 | }
2013 |
2014 | function makeKey_284(str) {
2015 | return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(2, 24)
2016 | }
2017 |
2018 | function makeKey_285(str) {
2019 | return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(3, 24)
2020 | }
2021 |
2022 | function makeKey_286(str) {
2023 | return hex_md5(makeKey_4(str) + makeKey_1(str)).substr(4, 24)
2024 | }
2025 |
2026 | function makeKey_287(str) {
2027 | return hex_md5(makeKey_14(str) + makeKey_4(str)).substr(1, 24)
2028 | }
2029 |
2030 | function makeKey_288(str) {
2031 | return hex_md5(makeKey_15(str) + makeKey_14(str)).substr(3, 24)
2032 | }
2033 |
2034 | function makeKey_289(str) {
2035 | return hex_md5(makeKey_16(str) + makeKey_15(str)).substr(1, 24)
2036 | }
2037 |
2038 | function makeKey_290(str) {
2039 | return hex_md5(makeKey_9(str) + makeKey_16(str)).substr(2, 24)
2040 | }
2041 |
2042 | function makeKey_291(str) {
2043 | return hex_md5(makeKey_10(str) + makeKey_9(str)).substr(3, 24)
2044 | }
2045 |
2046 | function makeKey_292(str) {
2047 | return hex_md5(makeKey_17(str) + makeKey_10(str)).substr(4, 24)
2048 | }
2049 |
2050 | function makeKey_293(str) {
2051 | return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(3, 24)
2052 | }
2053 |
2054 | function makeKey_294(str) {
2055 | return hex_md5(makeKey_18(str) + makeKey_18(str)).substr(4, 24)
2056 | }
2057 |
2058 | function makeKey_295(str) {
2059 | return hex_md5(makeKey_19(str) + makeKey_19(str)).substr(4, 24)
2060 | }
2061 |
2062 | function makeKey_296(str) {
2063 | return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(1, 24)
2064 | }
2065 |
2066 | function makeKey_297(str) {
2067 | return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(2, 24)
2068 | }
2069 |
2070 | function makeKey_298(str) {
2071 | return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(3, 24)
2072 | }
2073 |
2074 | function makeKey_299(str) {
2075 | return hex_md5(makeKey_5(str) + makeKey_5(str)).substr(4, 24)
2076 | }
2077 |
2078 | function makeKey_300(str) {
2079 | return hex_md5(makeKey_3(str) + makeKey_3(str)).substr(1, 24)
2080 | }
2081 |
2082 | function makeKey_301(str) {
2083 | return hex_md5(makeKey_7(str) + makeKey_7(str)).substr(2, 24)
2084 | }
2085 |
2086 | function makeKey_302(str) {
2087 | return hex_md5(makeKey_17(str) + makeKey_17(str)).substr(3, 24)
2088 | }
2089 |
2090 | function makeKey_303(str) {
2091 | return hex_md5(makeKey_18(str) + makeKey_18(str)).substr(4, 24)
2092 | }
2093 |
2094 | function makeKey_304(str) {
2095 | return hex_md5(makeKey_19(str) + makeKey_19(str)).substr(3, 24)
2096 | }
2097 |
2098 | function makeKey_305(str) {
2099 | return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(4, 24)
2100 | }
2101 |
2102 | function makeKey_306(str) {
2103 | return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(1, 24)
2104 | }
2105 |
2106 | function makeKey_307(str) {
2107 | return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(2, 24)
2108 | }
2109 |
2110 | function makeKey_308(str) {
2111 | return hex_md5(makeKey_14(str) + makeKey_14(str)).substr(2, 24)
2112 | }
2113 |
2114 | function makeKey_309(str) {
2115 | return hex_md5(makeKey_15(str) + makeKey_15(str)).substr(3, 24)
2116 | }
2117 |
2118 | function makeKey_310(str) {
2119 | return hex_md5(makeKey_16(str) + makeKey_16(str)).substr(1, 24)
2120 | }
2121 |
2122 | function makeKey_311(str) {
2123 | return hex_md5(makeKey_9(str) + makeKey_9(str)).substr(2, 24)
2124 | }
2125 |
2126 | function makeKey_312(str) {
2127 | return hex_md5(makeKey_10(str) + makeKey_10(str)).substr(3, 24)
2128 | }
2129 |
2130 | function makeKey_313(str) {
2131 | return hex_md5(makeKey_17(str) + makeKey_17(str)).substr(4, 24)
2132 | }
2133 |
2134 | function makeKey_314(str) {
2135 | return hex_md5(makeKey_19(str) + makeKey_19(str)).substr(1, 24)
2136 | }
2137 |
2138 | function makeKey_315(str) {
2139 | return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(2, 24)
2140 | }
2141 |
2142 | function makeKey_316(str) {
2143 | return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(3, 24)
2144 | }
2145 |
2146 | function makeKey_317(str) {
2147 | return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(4, 24)
2148 | }
2149 |
2150 | function makeKey_318(str) {
2151 | return hex_md5(makeKey_5(str) + makeKey_5(str)).substr(1, 24)
2152 | }
2153 |
2154 | function makeKey_319(str) {
2155 | return hex_md5(makeKey_3(str) + makeKey_3(str)).substr(3, 24)
2156 | }
2157 |
2158 | function makeKey_320(str) {
2159 | return hex_md5(makeKey_7(str) + makeKey_7(str)).substr(1, 24)
2160 | }
2161 |
2162 | function makeKey_321(str) {
2163 | return hex_md5(makeKey_17(str) + makeKey_17(str)).substr(2, 24)
2164 | }
2165 |
2166 | function makeKey_322(str) {
2167 | return hex_md5(makeKey_18(str) + makeKey_18(str)).substr(3, 24)
2168 | }
2169 |
2170 | function makeKey_323(str) {
2171 | return hex_md5(makeKey_19(str) + makeKey_19(str)).substr(4, 24)
2172 | }
2173 |
2174 | function makeKey_324(str) {
2175 | return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(3, 24)
2176 | }
2177 |
2178 | function makeKey_325(str) {
2179 | return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(4, 24)
2180 | }
2181 |
2182 | function makeKey_326(str) {
2183 | return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(4, 24)
2184 | }
2185 |
2186 | function makeKey_327(str) {
2187 | return hex_md5(makeKey_19(str) + makeKey_14(str)).substr(1, 24)
2188 | }
2189 |
2190 | function makeKey_328(str) {
2191 | return hex_md5(makeKey_0(str) + makeKey_15(str)).substr(2, 24)
2192 | }
2193 |
2194 | function makeKey_329(str) {
2195 | return hex_md5(makeKey_1(str) + makeKey_16(str)).substr(3, 24)
2196 | }
2197 |
2198 | function makeKey_330(str) {
2199 | return hex_md5(makeKey_4(str) + makeKey_9(str)).substr(4, 24)
2200 | }
2201 |
2202 | function makeKey_331(str) {
2203 | return hex_md5(makeKey_19(str) + makeKey_10(str)).substr(1, 24)
2204 | }
2205 |
2206 | function makeKey_332(str) {
2207 | return hex_md5(makeKey_0(str) + makeKey_17(str)).substr(2, 24)
2208 | }
2209 |
2210 | function makeKey_333(str) {
2211 | return hex_md5(makeKey_1(str) + makeKey_18(str)).substr(3, 24)
2212 | }
2213 |
2214 | function makeKey_334(str) {
2215 | return hex_md5(makeKey_4(str) + makeKey_18(str)).substr(4, 24)
2216 | }
2217 |
2218 | function makeKey_335(str) {
2219 | return hex_md5(makeKey_5(str) + makeKey_19(str)).substr(3, 24)
2220 | }
2221 |
2222 | function makeKey_336(str) {
2223 | return hex_md5(makeKey_3(str) + makeKey_0(str)).substr(4, 24)
2224 | }
2225 |
2226 | function makeKey_337(str) {
2227 | return hex_md5(makeKey_7(str) + makeKey_1(str)).substr(2, 24)
2228 | }
2229 |
2230 | function makeKey_338(str) {
2231 | return hex_md5(makeKey_0(str) + makeKey_4(str)).substr(3, 24)
2232 | }
2233 |
2234 | function makeKey_339(str) {
2235 | return hex_md5(makeKey_1(str) + makeKey_5(str)).substr(1, 24)
2236 | }
2237 |
2238 | function makeKey_340(str) {
2239 | return hex_md5(makeKey_4(str) + makeKey_3(str)).substr(2, 24)
2240 | }
2241 |
2242 | function makeKey_341(str) {
2243 | return hex_md5(makeKey_17(str) + makeKey_7(str)).substr(3, 24)
2244 | }
2245 |
2246 | function makeKey_342(str) {
2247 | return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(4, 24)
2248 | }
2249 |
2250 | function makeKey_343(str) {
2251 | return hex_md5(makeKey_19(str) + makeKey_18(str)).substr(1, 24)
2252 | }
2253 |
2254 | function makeKey_344(str) {
2255 | return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(2, 24)
2256 | }
2257 |
2258 | function makeKey_345(str) {
2259 | return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(3, 24)
2260 | }
2261 |
2262 | function makeKey_346(str) {
2263 | return hex_md5(makeKey_4(str) + makeKey_1(str)).substr(4, 24)
2264 | }
2265 |
2266 | function makeKey_347(str) {
2267 | return hex_md5(makeKey_9(str) + makeKey_4(str)).substr(1, 24)
2268 | }
2269 |
2270 | function makeKey_348(str) {
2271 | return hex_md5(makeKey_10(str) + makeKey_14(str)).substr(3, 24)
2272 | }
2273 |
2274 | function makeKey_349(str) {
2275 | return hex_md5(makeKey_17(str) + makeKey_15(str)).substr(1, 24)
2276 | }
2277 |
2278 | function makeKey_350(str) {
2279 | return hex_md5(makeKey_18(str) + makeKey_16(str)).substr(2, 24)
2280 | }
2281 |
2282 | function makeKey_351(str) {
2283 | return hex_md5(makeKey_19(str) + makeKey_9(str)).substr(3, 24)
2284 | }
2285 |
2286 | function makeKey_352(str) {
2287 | return hex_md5(makeKey_0(str) + makeKey_10(str)).substr(4, 24)
2288 | }
2289 |
2290 | function makeKey_353(str) {
2291 | return hex_md5(makeKey_1(str) + makeKey_17(str)).substr(3, 24)
2292 | }
2293 |
2294 | function makeKey_354(str) {
2295 | return hex_md5(makeKey_18(str) + makeKey_19(str)).substr(4, 24)
2296 | }
2297 |
2298 | function makeKey_355(str) {
2299 | return hex_md5(makeKey_19(str) + makeKey_0(str)).substr(4, 24)
2300 | }
2301 |
2302 | function makeKey_356(str) {
2303 | return hex_md5(makeKey_0(str) + makeKey_1(str)).substr(1, 24)
2304 | }
2305 |
2306 | function makeKey_357(str) {
2307 | return hex_md5(makeKey_1(str) + makeKey_4(str)).substr(2, 24)
2308 | }
2309 |
2310 | function makeKey_358(str) {
2311 | return hex_md5(makeKey_4(str) + makeKey_5(str)).substr(3, 24)
2312 | }
2313 |
2314 | function makeKey_359(str) {
2315 | return hex_md5(makeKey_5(str) + makeKey_3(str)).substr(4, 24)
2316 | }
2317 |
2318 | function makeKey_360(str) {
2319 | return hex_md5(makeKey_3(str) + makeKey_7(str)).substr(2, 24)
2320 | }
2321 |
2322 | function makeKey_361(str) {
2323 | return hex_md5(makeKey_7(str) + makeKey_17(str)).substr(3, 24)
2324 | }
2325 |
2326 | function makeKey_362(str) {
2327 | return hex_md5(makeKey_17(str) + makeKey_18(str)).substr(1, 24)
2328 | }
2329 |
2330 | function makeKey_363(str) {
2331 | return hex_md5(makeKey_18(str) + makeKey_19(str)).substr(2, 24)
2332 | }
2333 |
2334 | function makeKey_364(str) {
2335 | return hex_md5(makeKey_19(str) + makeKey_0(str)).substr(3, 24)
2336 | }
2337 |
2338 | function makeKey_365(str) {
2339 | return hex_md5(makeKey_0(str) + makeKey_1(str)).substr(4, 24)
2340 | }
2341 |
2342 | function makeKey_366(str) {
2343 | return hex_md5(makeKey_1(str) + makeKey_4(str)).substr(1, 24)
2344 | }
2345 |
2346 | function makeKey_367(str) {
2347 | return hex_md5(makeKey_4(str) + makeKey_7(str)).substr(2, 24)
2348 | }
2349 |
2350 | function makeKey_368(str) {
2351 | return hex_md5(makeKey_14(str) + makeKey_17(str)).substr(3, 24)
2352 | }
2353 |
2354 | function makeKey_369(str) {
2355 | return hex_md5(makeKey_15(str) + makeKey_18(str)).substr(4, 24)
2356 | }
2357 |
2358 | function makeKey_370(str) {
2359 | return hex_md5(makeKey_16(str) + makeKey_19(str)).substr(1, 24)
2360 | }
2361 |
2362 | function makeKey_371(str) {
2363 | return hex_md5(makeKey_9(str) + makeKey_0(str)).substr(3, 24)
2364 | }
2365 |
2366 | function makeKey_372(str) {
2367 | return hex_md5(makeKey_10(str) + makeKey_1(str)).substr(1, 24)
2368 | }
2369 |
2370 | function makeKey_373(str) {
2371 | return hex_md5(makeKey_17(str) + makeKey_4(str)).substr(2, 24)
2372 | }
2373 |
2374 | function makeKey_374(str) {
2375 | return hex_md5(makeKey_19(str) + makeKey_17(str)).substr(3, 24)
2376 | }
2377 |
2378 | function makeKey_375(str) {
2379 | return hex_md5(makeKey_0(str) + makeKey_18(str)).substr(4, 24)
2380 | }
2381 |
2382 | function makeKey_376(str) {
2383 | return hex_md5(makeKey_1(str) + makeKey_19(str)).substr(3, 24)
2384 | }
2385 |
2386 | function makeKey_377(str) {
2387 | return hex_md5(makeKey_4(str) + makeKey_0(str)).substr(4, 24)
2388 | }
2389 |
2390 | function makeKey_378(str) {
2391 | return hex_md5(makeKey_5(str) + makeKey_1(str)).substr(4, 24)
2392 | }
2393 |
2394 | function makeKey_379(str) {
2395 | return hex_md5(makeKey_3(str) + makeKey_4(str)).substr(1, 24)
2396 | }
2397 |
2398 | function makeKey_380(str) {
2399 | return hex_md5(makeKey_7(str) + makeKey_9(str)).substr(2, 24)
2400 | }
2401 |
2402 | function makeKey_381(str) {
2403 | return hex_md5(makeKey_17(str) + makeKey_10(str)).substr(3, 24)
2404 | }
2405 |
2406 | function makeKey_382(str) {
2407 | return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(4, 24)
2408 | }
2409 |
2410 | function makeKey_383(str) {
2411 | return hex_md5(makeKey_19(str) + makeKey_18(str)).substr(1, 24)
2412 | }
2413 |
2414 | function makeKey_384(str) {
2415 | return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(2, 24)
2416 | }
2417 |
2418 | function makeKey_385(str) {
2419 | return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(3, 24)
2420 | }
2421 |
2422 | function makeKey_386(str) {
2423 | return hex_md5(makeKey_4(str) + makeKey_1(str)).substr(4, 24)
2424 | }
2425 |
2426 | function makeKey_387(str) {
2427 | return hex_md5(makeKey_17(str) + makeKey_1(str)).substr(2, 24)
2428 | }
2429 |
2430 | function makeKey_388(str) {
2431 | return hex_md5(makeKey_18(str) + makeKey_4(str)).substr(3, 24)
2432 | }
2433 |
2434 | function makeKey_389(str) {
2435 | return hex_md5(makeKey_19(str) + makeKey_7(str)).substr(1, 24)
2436 | }
2437 |
2438 | function makeKey_390(str) {
2439 | return hex_md5(makeKey_0(str) + makeKey_17(str)).substr(2, 24)
2440 | }
2441 |
2442 | function makeKey_391(str) {
2443 | return hex_md5(makeKey_1(str) + makeKey_18(str)).substr(3, 24)
2444 | }
2445 |
2446 | function makeKey_392(str) {
2447 | return hex_md5(makeKey_4(str) + makeKey_19(str)).substr(4, 24)
2448 | }
2449 |
2450 | function makeKey_393(str) {
2451 | return hex_md5(makeKey_9(str) + makeKey_0(str)).substr(1, 24)
2452 | }
2453 |
2454 | function makeKey_394(str) {
2455 | return hex_md5(makeKey_10(str) + makeKey_1(str)).substr(2, 24)
2456 | }
2457 |
2458 | function makeKey_395(str) {
2459 | return hex_md5(makeKey_17(str) + makeKey_4(str)).substr(3, 24)
2460 | }
2461 |
2462 | function makeKey_396(str) {
2463 | return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(4, 24)
2464 | }
2465 |
2466 | function makeKey_397(str) {
2467 | return hex_md5(makeKey_19(str) + makeKey_18(str)).substr(1, 24)
2468 | }
2469 |
2470 | function makeKey_398(str) {
2471 | return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(3, 24)
2472 | }
2473 |
2474 | function makeKey_399(str) {
2475 | return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(1, 24)
2476 | }
2477 |
2478 | // var cookie = getCookie('vjkl5');
2479 | var arrFun = [makeKey_0, makeKey_1, makeKey_2, makeKey_3, makeKey_4, makeKey_5, makeKey_6, makeKey_7, makeKey_8, makeKey_9, makeKey_10, makeKey_11, makeKey_12, makeKey_13, makeKey_14, makeKey_15, makeKey_16, makeKey_17, makeKey_18, makeKey_19, makeKey_20, makeKey_21, makeKey_22, makeKey_23, makeKey_24, makeKey_25, makeKey_26, makeKey_27, makeKey_28, makeKey_29, makeKey_30, makeKey_31, makeKey_32, makeKey_33, makeKey_34, makeKey_35, makeKey_36, makeKey_37, makeKey_38, makeKey_39, makeKey_40, makeKey_41, makeKey_42, makeKey_43, makeKey_44, makeKey_45, makeKey_46, makeKey_47, makeKey_48, makeKey_49, makeKey_50, makeKey_51, makeKey_52, makeKey_53, makeKey_54, makeKey_55, makeKey_56, makeKey_57, makeKey_58, makeKey_59, makeKey_60, makeKey_61, makeKey_62, makeKey_63, makeKey_64, makeKey_65, makeKey_66, makeKey_67, makeKey_68, makeKey_69, makeKey_70, makeKey_71, makeKey_72, makeKey_73, makeKey_74, makeKey_75, makeKey_76, makeKey_77, makeKey_78, makeKey_79, makeKey_80, makeKey_81, makeKey_82, makeKey_83, makeKey_84, makeKey_85, makeKey_86, makeKey_87, makeKey_88, makeKey_89, makeKey_90, makeKey_91, makeKey_92, makeKey_93, makeKey_94, makeKey_95, makeKey_96, makeKey_97, makeKey_98, makeKey_99, makeKey_100, makeKey_101, makeKey_102, makeKey_103, makeKey_104, makeKey_105, makeKey_106, makeKey_107, makeKey_108, makeKey_109, makeKey_110, makeKey_111, makeKey_112, makeKey_113, makeKey_114, makeKey_115, makeKey_116, makeKey_117, makeKey_118, makeKey_119, makeKey_120, makeKey_121, makeKey_122, makeKey_123, makeKey_124, makeKey_125, makeKey_126, makeKey_127, makeKey_128, makeKey_129, makeKey_130, makeKey_131, makeKey_132, makeKey_133, makeKey_134, makeKey_135, makeKey_136, makeKey_137, makeKey_138, makeKey_139, makeKey_140, makeKey_141, makeKey_142, makeKey_143, makeKey_144, makeKey_145, makeKey_146, makeKey_147, makeKey_148, makeKey_149, makeKey_150, makeKey_151, makeKey_152, makeKey_153, makeKey_154, makeKey_155, makeKey_156, makeKey_157, makeKey_158, makeKey_159, makeKey_160, makeKey_161, makeKey_162, makeKey_163, makeKey_164, makeKey_165, makeKey_166, makeKey_167, makeKey_168, makeKey_169, makeKey_170, makeKey_171, makeKey_172, makeKey_173, makeKey_174, makeKey_175, makeKey_176, makeKey_177, makeKey_178, makeKey_179, makeKey_180, makeKey_181, makeKey_182, makeKey_183, makeKey_184, makeKey_185, makeKey_186, makeKey_187, makeKey_188, makeKey_189, makeKey_190, makeKey_191, makeKey_192, makeKey_193, makeKey_194, makeKey_195, makeKey_196, makeKey_197, makeKey_198, makeKey_199, makeKey_200, makeKey_201, makeKey_202, makeKey_203, makeKey_204, makeKey_205, makeKey_206, makeKey_207, makeKey_208, makeKey_209, makeKey_210, makeKey_211, makeKey_212, makeKey_213, makeKey_214, makeKey_215, makeKey_216, makeKey_217, makeKey_218, makeKey_219, makeKey_220, makeKey_221, makeKey_222, makeKey_223, makeKey_224, makeKey_225, makeKey_226, makeKey_227, makeKey_228, makeKey_229, makeKey_230, makeKey_231, makeKey_232, makeKey_233, makeKey_234, makeKey_235, makeKey_236, makeKey_237, makeKey_238, makeKey_239, makeKey_240, makeKey_241, makeKey_242, makeKey_243, makeKey_244, makeKey_245, makeKey_246, makeKey_247, makeKey_248, makeKey_249, makeKey_250, makeKey_251, makeKey_252, makeKey_253, makeKey_254, makeKey_255, makeKey_256, makeKey_257, makeKey_258, makeKey_259, makeKey_260, makeKey_261, makeKey_262, makeKey_263, makeKey_264, makeKey_265, makeKey_266, makeKey_267, makeKey_268, makeKey_269, makeKey_270, makeKey_271, makeKey_272, makeKey_273, makeKey_274, makeKey_275, makeKey_276, makeKey_277, makeKey_278, makeKey_279, makeKey_280, makeKey_281, makeKey_282, makeKey_283, makeKey_284, makeKey_285, makeKey_286, makeKey_287, makeKey_288, makeKey_289, makeKey_290, makeKey_291, makeKey_292, makeKey_293, makeKey_294, makeKey_295, makeKey_296, makeKey_297, makeKey_298, makeKey_299, makeKey_300, makeKey_301, makeKey_302, makeKey_303, makeKey_304, makeKey_305, makeKey_306, makeKey_307, makeKey_308, makeKey_309, makeKey_310, makeKey_311, makeKey_312, makeKey_313, makeKey_314, makeKey_315, makeKey_316, makeKey_317, makeKey_318, makeKey_319, makeKey_320, makeKey_321, makeKey_322, makeKey_323, makeKey_324, makeKey_325, makeKey_326, makeKey_327, makeKey_328, makeKey_329, makeKey_330, makeKey_331, makeKey_332, makeKey_333, makeKey_334, makeKey_335, makeKey_336, makeKey_337, makeKey_338, makeKey_339, makeKey_340, makeKey_341, makeKey_342, makeKey_343, makeKey_344, makeKey_345, makeKey_346, makeKey_347, makeKey_348, makeKey_349, makeKey_350, makeKey_351, makeKey_352, makeKey_353, makeKey_354, makeKey_355, makeKey_356, makeKey_357, makeKey_358, makeKey_359, makeKey_360, makeKey_361, makeKey_362, makeKey_363, makeKey_364, makeKey_365, makeKey_366, makeKey_367, makeKey_368, makeKey_369, makeKey_370, makeKey_371, makeKey_372, makeKey_373, makeKey_374, makeKey_375, makeKey_376, makeKey_377, makeKey_378, makeKey_379, makeKey_380, makeKey_381, makeKey_382, makeKey_383, makeKey_384, makeKey_385, makeKey_386, makeKey_387, makeKey_388, makeKey_389, makeKey_390, makeKey_391, makeKey_392, makeKey_393, makeKey_394, makeKey_395, makeKey_396, makeKey_397, makeKey_398, makeKey_399];
2480 | var funIndex = strToLong(cookie) % arrFun.length;
2481 | var fun = arrFun[funIndex];
2482 | var result = fun(cookie);
2483 | return result
2484 | }
--------------------------------------------------------------------------------