h-agent-swap 2.1.8 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/.DS_Store +0 -0
- package/src/BERC20.js +30 -0
- package/src/abi/ERC20Standard.json +359 -0
- package/src/abi/PancakePair.json +5 -1
- package/src/abi/ProofPoker.json +293 -0
- package/src/abi/SwapFactory.json +2 -2
- package/src/abi/SwapRouter.json +7 -2
- package/src/abi/TokenMarket.json +324 -956
- package/src/agent-swap.js +118 -96
- package/src/index.js +7 -1
- package/src/poker.js +31 -0
- package/src/swap-router.js +45 -2
package/src/abi/TokenMarket.json
CHANGED
|
@@ -5,11 +5,6 @@
|
|
|
5
5
|
"abi": [
|
|
6
6
|
{
|
|
7
7
|
"inputs": [
|
|
8
|
-
{
|
|
9
|
-
"internalType": "address",
|
|
10
|
-
"name": "_signer",
|
|
11
|
-
"type": "address"
|
|
12
|
-
},
|
|
13
8
|
{
|
|
14
9
|
"internalType": "address",
|
|
15
10
|
"name": "_route",
|
|
@@ -19,179 +14,6 @@
|
|
|
19
14
|
"stateMutability": "nonpayable",
|
|
20
15
|
"type": "constructor"
|
|
21
16
|
},
|
|
22
|
-
{
|
|
23
|
-
"anonymous": false,
|
|
24
|
-
"inputs": [
|
|
25
|
-
{
|
|
26
|
-
"indexed": false,
|
|
27
|
-
"internalType": "address",
|
|
28
|
-
"name": "sender",
|
|
29
|
-
"type": "address"
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
"indexed": false,
|
|
33
|
-
"internalType": "address",
|
|
34
|
-
"name": "fromToken",
|
|
35
|
-
"type": "address"
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
"indexed": false,
|
|
39
|
-
"internalType": "uint256",
|
|
40
|
-
"name": "fromAmount",
|
|
41
|
-
"type": "uint256"
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
"indexed": false,
|
|
45
|
-
"internalType": "address",
|
|
46
|
-
"name": "toToken",
|
|
47
|
-
"type": "address"
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
"indexed": false,
|
|
51
|
-
"internalType": "uint256",
|
|
52
|
-
"name": "toAmount",
|
|
53
|
-
"type": "uint256"
|
|
54
|
-
}
|
|
55
|
-
],
|
|
56
|
-
"name": "BackBuy",
|
|
57
|
-
"type": "event"
|
|
58
|
-
},
|
|
59
|
-
{
|
|
60
|
-
"anonymous": false,
|
|
61
|
-
"inputs": [
|
|
62
|
-
{
|
|
63
|
-
"indexed": false,
|
|
64
|
-
"internalType": "address",
|
|
65
|
-
"name": "sender",
|
|
66
|
-
"type": "address"
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
"indexed": false,
|
|
70
|
-
"internalType": "address",
|
|
71
|
-
"name": "token",
|
|
72
|
-
"type": "address"
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
"indexed": false,
|
|
76
|
-
"internalType": "uint256",
|
|
77
|
-
"name": "amount",
|
|
78
|
-
"type": "uint256"
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
"indexed": false,
|
|
82
|
-
"internalType": "uint256",
|
|
83
|
-
"name": "burnType",
|
|
84
|
-
"type": "uint256"
|
|
85
|
-
}
|
|
86
|
-
],
|
|
87
|
-
"name": "Burn",
|
|
88
|
-
"type": "event"
|
|
89
|
-
},
|
|
90
|
-
{
|
|
91
|
-
"anonymous": false,
|
|
92
|
-
"inputs": [
|
|
93
|
-
{
|
|
94
|
-
"indexed": false,
|
|
95
|
-
"internalType": "address",
|
|
96
|
-
"name": "user",
|
|
97
|
-
"type": "address"
|
|
98
|
-
},
|
|
99
|
-
{
|
|
100
|
-
"indexed": false,
|
|
101
|
-
"internalType": "address",
|
|
102
|
-
"name": "token",
|
|
103
|
-
"type": "address"
|
|
104
|
-
},
|
|
105
|
-
{
|
|
106
|
-
"indexed": false,
|
|
107
|
-
"internalType": "uint256",
|
|
108
|
-
"name": "amount",
|
|
109
|
-
"type": "uint256"
|
|
110
|
-
},
|
|
111
|
-
{
|
|
112
|
-
"indexed": false,
|
|
113
|
-
"internalType": "uint256",
|
|
114
|
-
"name": "inAmount",
|
|
115
|
-
"type": "uint256"
|
|
116
|
-
},
|
|
117
|
-
{
|
|
118
|
-
"indexed": false,
|
|
119
|
-
"internalType": "uint256",
|
|
120
|
-
"name": "outAmount",
|
|
121
|
-
"type": "uint256"
|
|
122
|
-
}
|
|
123
|
-
],
|
|
124
|
-
"name": "Compensate",
|
|
125
|
-
"type": "event"
|
|
126
|
-
},
|
|
127
|
-
{
|
|
128
|
-
"anonymous": false,
|
|
129
|
-
"inputs": [
|
|
130
|
-
{
|
|
131
|
-
"indexed": false,
|
|
132
|
-
"internalType": "address",
|
|
133
|
-
"name": "sender",
|
|
134
|
-
"type": "address"
|
|
135
|
-
},
|
|
136
|
-
{
|
|
137
|
-
"indexed": false,
|
|
138
|
-
"internalType": "address",
|
|
139
|
-
"name": "token",
|
|
140
|
-
"type": "address"
|
|
141
|
-
},
|
|
142
|
-
{
|
|
143
|
-
"indexed": false,
|
|
144
|
-
"internalType": "uint256",
|
|
145
|
-
"name": "amount",
|
|
146
|
-
"type": "uint256"
|
|
147
|
-
}
|
|
148
|
-
],
|
|
149
|
-
"name": "Donate",
|
|
150
|
-
"type": "event"
|
|
151
|
-
},
|
|
152
|
-
{
|
|
153
|
-
"anonymous": false,
|
|
154
|
-
"inputs": [
|
|
155
|
-
{
|
|
156
|
-
"indexed": false,
|
|
157
|
-
"internalType": "address",
|
|
158
|
-
"name": "player",
|
|
159
|
-
"type": "address"
|
|
160
|
-
},
|
|
161
|
-
{
|
|
162
|
-
"indexed": false,
|
|
163
|
-
"internalType": "uint256",
|
|
164
|
-
"name": "signType",
|
|
165
|
-
"type": "uint256"
|
|
166
|
-
},
|
|
167
|
-
{
|
|
168
|
-
"indexed": false,
|
|
169
|
-
"internalType": "address",
|
|
170
|
-
"name": "token",
|
|
171
|
-
"type": "address"
|
|
172
|
-
},
|
|
173
|
-
{
|
|
174
|
-
"indexed": false,
|
|
175
|
-
"internalType": "uint256",
|
|
176
|
-
"name": "amount",
|
|
177
|
-
"type": "uint256"
|
|
178
|
-
},
|
|
179
|
-
{
|
|
180
|
-
"indexed": false,
|
|
181
|
-
"internalType": "uint256",
|
|
182
|
-
"name": "time",
|
|
183
|
-
"type": "uint256"
|
|
184
|
-
},
|
|
185
|
-
{
|
|
186
|
-
"indexed": false,
|
|
187
|
-
"internalType": "bytes",
|
|
188
|
-
"name": "signature",
|
|
189
|
-
"type": "bytes"
|
|
190
|
-
}
|
|
191
|
-
],
|
|
192
|
-
"name": "Expend",
|
|
193
|
-
"type": "event"
|
|
194
|
-
},
|
|
195
17
|
{
|
|
196
18
|
"anonymous": false,
|
|
197
19
|
"inputs": [
|
|
@@ -219,440 +41,93 @@
|
|
|
219
41
|
"name": "inAmount",
|
|
220
42
|
"type": "uint256"
|
|
221
43
|
},
|
|
222
|
-
{
|
|
223
|
-
"indexed": false,
|
|
224
|
-
"internalType": "uint256",
|
|
225
|
-
"name": "feeAmount",
|
|
226
|
-
"type": "uint256"
|
|
227
|
-
},
|
|
228
|
-
{
|
|
229
|
-
"indexed": false,
|
|
230
|
-
"internalType": "uint256",
|
|
231
|
-
"name": "taxAmount",
|
|
232
|
-
"type": "uint256"
|
|
233
|
-
},
|
|
234
44
|
{
|
|
235
45
|
"indexed": false,
|
|
236
46
|
"internalType": "uint256",
|
|
237
47
|
"name": "outAmount",
|
|
238
48
|
"type": "uint256"
|
|
239
49
|
},
|
|
240
|
-
{
|
|
241
|
-
"indexed": false,
|
|
242
|
-
"internalType": "bool",
|
|
243
|
-
"name": "win",
|
|
244
|
-
"type": "bool"
|
|
245
|
-
},
|
|
246
50
|
{
|
|
247
51
|
"indexed": false,
|
|
248
52
|
"internalType": "uint256",
|
|
249
|
-
"name": "
|
|
53
|
+
"name": "actualOut",
|
|
250
54
|
"type": "uint256"
|
|
251
55
|
}
|
|
252
56
|
],
|
|
253
57
|
"name": "MarketSwap",
|
|
254
|
-
"type": "event"
|
|
255
|
-
},
|
|
256
|
-
{
|
|
257
|
-
"anonymous": false,
|
|
258
|
-
"inputs": [
|
|
259
|
-
{
|
|
260
|
-
"indexed": false,
|
|
261
|
-
"internalType": "uint256",
|
|
262
|
-
"name": "sequence",
|
|
263
|
-
"type": "uint256"
|
|
264
|
-
},
|
|
265
|
-
{
|
|
266
|
-
"indexed": false,
|
|
267
|
-
"internalType": "uint256",
|
|
268
|
-
"name": "price",
|
|
269
|
-
"type": "uint256"
|
|
270
|
-
}
|
|
271
|
-
],
|
|
272
|
-
"name": "NewPrice",
|
|
273
|
-
"type": "event"
|
|
274
|
-
},
|
|
275
|
-
{
|
|
276
|
-
"anonymous": false,
|
|
277
|
-
"inputs": [
|
|
278
|
-
{
|
|
279
|
-
"indexed": true,
|
|
280
|
-
"internalType": "address",
|
|
281
|
-
"name": "previousOwner",
|
|
282
|
-
"type": "address"
|
|
283
|
-
},
|
|
284
|
-
{
|
|
285
|
-
"indexed": true,
|
|
286
|
-
"internalType": "address",
|
|
287
|
-
"name": "newOwner",
|
|
288
|
-
"type": "address"
|
|
289
|
-
}
|
|
290
|
-
],
|
|
291
|
-
"name": "OwnershipTransferred",
|
|
292
|
-
"type": "event"
|
|
293
|
-
},
|
|
294
|
-
{
|
|
295
|
-
"anonymous": false,
|
|
296
|
-
"inputs": [
|
|
297
|
-
{
|
|
298
|
-
"indexed": false,
|
|
299
|
-
"internalType": "address",
|
|
300
|
-
"name": "sender",
|
|
301
|
-
"type": "address"
|
|
302
|
-
},
|
|
303
|
-
{
|
|
304
|
-
"indexed": false,
|
|
305
|
-
"internalType": "address",
|
|
306
|
-
"name": "rewardToken",
|
|
307
|
-
"type": "address"
|
|
308
|
-
},
|
|
309
|
-
{
|
|
310
|
-
"indexed": false,
|
|
311
|
-
"internalType": "uint256",
|
|
312
|
-
"name": "rewardAmount",
|
|
313
|
-
"type": "uint256"
|
|
314
|
-
}
|
|
315
|
-
],
|
|
316
|
-
"name": "Reward",
|
|
317
|
-
"type": "event"
|
|
318
|
-
},
|
|
319
|
-
{
|
|
320
|
-
"anonymous": false,
|
|
321
|
-
"inputs": [
|
|
322
|
-
{
|
|
323
|
-
"indexed": false,
|
|
324
|
-
"internalType": "uint256",
|
|
325
|
-
"name": "id",
|
|
326
|
-
"type": "uint256"
|
|
327
|
-
},
|
|
328
|
-
{
|
|
329
|
-
"indexed": false,
|
|
330
|
-
"internalType": "address",
|
|
331
|
-
"name": "wallet",
|
|
332
|
-
"type": "address"
|
|
333
|
-
},
|
|
334
|
-
{
|
|
335
|
-
"indexed": false,
|
|
336
|
-
"internalType": "address",
|
|
337
|
-
"name": "token",
|
|
338
|
-
"type": "address"
|
|
339
|
-
},
|
|
340
|
-
{
|
|
341
|
-
"indexed": false,
|
|
342
|
-
"internalType": "uint256",
|
|
343
|
-
"name": "amount",
|
|
344
|
-
"type": "uint256"
|
|
345
|
-
}
|
|
346
|
-
],
|
|
347
|
-
"name": "Send",
|
|
348
|
-
"type": "event"
|
|
349
|
-
},
|
|
350
|
-
{
|
|
351
|
-
"stateMutability": "payable",
|
|
352
|
-
"type": "fallback"
|
|
353
|
-
},
|
|
354
|
-
{
|
|
355
|
-
"inputs": [
|
|
356
|
-
{
|
|
357
|
-
"internalType": "uint256[]",
|
|
358
|
-
"name": "id",
|
|
359
|
-
"type": "uint256[]"
|
|
360
|
-
},
|
|
361
|
-
{
|
|
362
|
-
"internalType": "address[]",
|
|
363
|
-
"name": "wallet",
|
|
364
|
-
"type": "address[]"
|
|
365
|
-
},
|
|
366
|
-
{
|
|
367
|
-
"internalType": "address[]",
|
|
368
|
-
"name": "token",
|
|
369
|
-
"type": "address[]"
|
|
370
|
-
},
|
|
371
|
-
{
|
|
372
|
-
"internalType": "uint256[]",
|
|
373
|
-
"name": "amount",
|
|
374
|
-
"type": "uint256[]"
|
|
375
|
-
}
|
|
376
|
-
],
|
|
377
|
-
"name": "batchTransfer",
|
|
378
|
-
"outputs": [],
|
|
379
|
-
"stateMutability": "nonpayable",
|
|
380
|
-
"type": "function"
|
|
381
|
-
},
|
|
382
|
-
{
|
|
383
|
-
"inputs": [
|
|
384
|
-
{
|
|
385
|
-
"internalType": "address",
|
|
386
|
-
"name": "inToken",
|
|
387
|
-
"type": "address"
|
|
388
|
-
},
|
|
389
|
-
{
|
|
390
|
-
"internalType": "address",
|
|
391
|
-
"name": "outToken",
|
|
392
|
-
"type": "address"
|
|
393
|
-
}
|
|
394
|
-
],
|
|
395
|
-
"name": "calibration",
|
|
396
|
-
"outputs": [
|
|
397
|
-
{
|
|
398
|
-
"internalType": "uint256",
|
|
399
|
-
"name": "open",
|
|
400
|
-
"type": "uint256"
|
|
401
|
-
},
|
|
402
|
-
{
|
|
403
|
-
"internalType": "address",
|
|
404
|
-
"name": "pricing",
|
|
405
|
-
"type": "address"
|
|
406
|
-
}
|
|
407
|
-
],
|
|
408
|
-
"stateMutability": "view",
|
|
409
|
-
"type": "function"
|
|
410
|
-
},
|
|
411
|
-
{
|
|
412
|
-
"inputs": [
|
|
413
|
-
{
|
|
414
|
-
"internalType": "uint256",
|
|
415
|
-
"name": "amount",
|
|
416
|
-
"type": "uint256"
|
|
417
|
-
},
|
|
418
|
-
{
|
|
419
|
-
"internalType": "address[]",
|
|
420
|
-
"name": "path",
|
|
421
|
-
"type": "address[]"
|
|
422
|
-
},
|
|
423
|
-
{
|
|
424
|
-
"internalType": "uint256",
|
|
425
|
-
"name": "side",
|
|
426
|
-
"type": "uint256"
|
|
427
|
-
},
|
|
428
|
-
{
|
|
429
|
-
"internalType": "uint256",
|
|
430
|
-
"name": "point",
|
|
431
|
-
"type": "uint256"
|
|
432
|
-
}
|
|
433
|
-
],
|
|
434
|
-
"name": "computeAmount",
|
|
435
|
-
"outputs": [
|
|
436
|
-
{
|
|
437
|
-
"internalType": "uint256",
|
|
438
|
-
"name": "result",
|
|
439
|
-
"type": "uint256"
|
|
440
|
-
}
|
|
441
|
-
],
|
|
442
|
-
"stateMutability": "view",
|
|
443
|
-
"type": "function"
|
|
444
|
-
},
|
|
445
|
-
{
|
|
446
|
-
"inputs": [
|
|
447
|
-
{
|
|
448
|
-
"internalType": "bytes",
|
|
449
|
-
"name": "",
|
|
450
|
-
"type": "bytes"
|
|
451
|
-
}
|
|
452
|
-
],
|
|
453
|
-
"name": "expired",
|
|
454
|
-
"outputs": [
|
|
455
|
-
{
|
|
456
|
-
"internalType": "bool",
|
|
457
|
-
"name": "",
|
|
458
|
-
"type": "bool"
|
|
459
|
-
}
|
|
460
|
-
],
|
|
461
|
-
"stateMutability": "view",
|
|
462
|
-
"type": "function"
|
|
463
|
-
},
|
|
464
|
-
{
|
|
465
|
-
"inputs": [
|
|
466
|
-
{
|
|
467
|
-
"internalType": "address",
|
|
468
|
-
"name": "inToken",
|
|
469
|
-
"type": "address"
|
|
470
|
-
},
|
|
471
|
-
{
|
|
472
|
-
"internalType": "address",
|
|
473
|
-
"name": "outToken",
|
|
474
|
-
"type": "address"
|
|
475
|
-
},
|
|
476
|
-
{
|
|
477
|
-
"internalType": "address[]",
|
|
478
|
-
"name": "path",
|
|
479
|
-
"type": "address[]"
|
|
480
|
-
},
|
|
481
|
-
{
|
|
482
|
-
"internalType": "uint256",
|
|
483
|
-
"name": "inAmount",
|
|
484
|
-
"type": "uint256"
|
|
485
|
-
},
|
|
486
|
-
{
|
|
487
|
-
"internalType": "uint256",
|
|
488
|
-
"name": "outAmount",
|
|
489
|
-
"type": "uint256"
|
|
490
|
-
},
|
|
491
|
-
{
|
|
492
|
-
"internalType": "address",
|
|
493
|
-
"name": "target",
|
|
494
|
-
"type": "address"
|
|
495
|
-
}
|
|
496
|
-
],
|
|
497
|
-
"name": "fundRead",
|
|
498
|
-
"outputs": [
|
|
499
|
-
{
|
|
500
|
-
"components": [
|
|
501
|
-
{
|
|
502
|
-
"internalType": "address",
|
|
503
|
-
"name": "feeReceipt",
|
|
504
|
-
"type": "address"
|
|
505
|
-
},
|
|
506
|
-
{
|
|
507
|
-
"internalType": "int256",
|
|
508
|
-
"name": "feeRate",
|
|
509
|
-
"type": "int256"
|
|
510
|
-
},
|
|
511
|
-
{
|
|
512
|
-
"internalType": "address",
|
|
513
|
-
"name": "rewardToken",
|
|
514
|
-
"type": "address"
|
|
515
|
-
},
|
|
516
|
-
{
|
|
517
|
-
"internalType": "int256",
|
|
518
|
-
"name": "reward",
|
|
519
|
-
"type": "int256"
|
|
520
|
-
},
|
|
521
|
-
{
|
|
522
|
-
"internalType": "uint256",
|
|
523
|
-
"name": "price",
|
|
524
|
-
"type": "uint256"
|
|
525
|
-
},
|
|
526
|
-
{
|
|
527
|
-
"internalType": "int256",
|
|
528
|
-
"name": "feeMin",
|
|
529
|
-
"type": "int256"
|
|
530
|
-
},
|
|
531
|
-
{
|
|
532
|
-
"internalType": "int256",
|
|
533
|
-
"name": "feeMax",
|
|
534
|
-
"type": "int256"
|
|
535
|
-
},
|
|
536
|
-
{
|
|
537
|
-
"internalType": "int256",
|
|
538
|
-
"name": "rewardMin",
|
|
539
|
-
"type": "int256"
|
|
540
|
-
},
|
|
541
|
-
{
|
|
542
|
-
"internalType": "int256",
|
|
543
|
-
"name": "rewardMax",
|
|
544
|
-
"type": "int256"
|
|
545
|
-
},
|
|
546
|
-
{
|
|
547
|
-
"internalType": "uint256",
|
|
548
|
-
"name": "range",
|
|
549
|
-
"type": "uint256"
|
|
550
|
-
},
|
|
551
|
-
{
|
|
552
|
-
"internalType": "int256",
|
|
553
|
-
"name": "feeChange",
|
|
554
|
-
"type": "int256"
|
|
555
|
-
},
|
|
556
|
-
{
|
|
557
|
-
"internalType": "int256",
|
|
558
|
-
"name": "rewardChange",
|
|
559
|
-
"type": "int256"
|
|
560
|
-
}
|
|
561
|
-
],
|
|
562
|
-
"internalType": "struct TokenMarket.TradeConfig",
|
|
563
|
-
"name": "config",
|
|
564
|
-
"type": "tuple"
|
|
565
|
-
},
|
|
566
|
-
{
|
|
567
|
-
"components": [
|
|
568
|
-
{
|
|
569
|
-
"internalType": "uint256",
|
|
570
|
-
"name": "taxAmount",
|
|
571
|
-
"type": "uint256"
|
|
572
|
-
},
|
|
573
|
-
{
|
|
574
|
-
"internalType": "uint256",
|
|
575
|
-
"name": "backAmount",
|
|
576
|
-
"type": "uint256"
|
|
577
|
-
},
|
|
578
|
-
{
|
|
579
|
-
"internalType": "uint256",
|
|
580
|
-
"name": "buyAmount",
|
|
581
|
-
"type": "uint256"
|
|
582
|
-
},
|
|
583
|
-
{
|
|
584
|
-
"internalType": "uint256",
|
|
585
|
-
"name": "outAmount",
|
|
586
|
-
"type": "uint256"
|
|
587
|
-
},
|
|
588
|
-
{
|
|
589
|
-
"internalType": "uint256",
|
|
590
|
-
"name": "feeAmount",
|
|
591
|
-
"type": "uint256"
|
|
592
|
-
},
|
|
593
|
-
{
|
|
594
|
-
"internalType": "uint256",
|
|
595
|
-
"name": "rewardAmount",
|
|
596
|
-
"type": "uint256"
|
|
597
|
-
},
|
|
598
|
-
{
|
|
599
|
-
"internalType": "bool",
|
|
600
|
-
"name": "win",
|
|
601
|
-
"type": "bool"
|
|
602
|
-
},
|
|
603
|
-
{
|
|
604
|
-
"internalType": "uint256",
|
|
605
|
-
"name": "change",
|
|
606
|
-
"type": "uint256"
|
|
607
|
-
}
|
|
608
|
-
],
|
|
609
|
-
"internalType": "struct TokenMarket.Amounts",
|
|
610
|
-
"name": "group",
|
|
611
|
-
"type": "tuple"
|
|
612
|
-
}
|
|
613
|
-
],
|
|
614
|
-
"stateMutability": "view",
|
|
615
|
-
"type": "function"
|
|
58
|
+
"type": "event"
|
|
616
59
|
},
|
|
617
60
|
{
|
|
61
|
+
"anonymous": false,
|
|
618
62
|
"inputs": [
|
|
619
63
|
{
|
|
64
|
+
"indexed": true,
|
|
620
65
|
"internalType": "address",
|
|
621
|
-
"name": "",
|
|
66
|
+
"name": "previousOwner",
|
|
622
67
|
"type": "address"
|
|
623
68
|
},
|
|
624
69
|
{
|
|
70
|
+
"indexed": true,
|
|
625
71
|
"internalType": "address",
|
|
626
|
-
"name": "",
|
|
72
|
+
"name": "newOwner",
|
|
627
73
|
"type": "address"
|
|
628
|
-
}
|
|
74
|
+
}
|
|
75
|
+
],
|
|
76
|
+
"name": "OwnershipTransferred",
|
|
77
|
+
"type": "event"
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"anonymous": false,
|
|
81
|
+
"inputs": [
|
|
629
82
|
{
|
|
83
|
+
"indexed": false,
|
|
630
84
|
"internalType": "uint256",
|
|
631
|
-
"name": "",
|
|
85
|
+
"name": "price",
|
|
632
86
|
"type": "uint256"
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"indexed": false,
|
|
90
|
+
"internalType": "bool",
|
|
91
|
+
"name": "strict",
|
|
92
|
+
"type": "bool"
|
|
633
93
|
}
|
|
634
94
|
],
|
|
635
|
-
"name": "
|
|
636
|
-
"
|
|
95
|
+
"name": "TwapAveragePrice",
|
|
96
|
+
"type": "event"
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"stateMutability": "payable",
|
|
100
|
+
"type": "fallback"
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"inputs": [
|
|
637
104
|
{
|
|
638
105
|
"internalType": "uint256",
|
|
639
|
-
"name": "
|
|
106
|
+
"name": "amount",
|
|
640
107
|
"type": "uint256"
|
|
641
108
|
},
|
|
109
|
+
{
|
|
110
|
+
"internalType": "address[]",
|
|
111
|
+
"name": "path",
|
|
112
|
+
"type": "address[]"
|
|
113
|
+
},
|
|
642
114
|
{
|
|
643
115
|
"internalType": "uint256",
|
|
644
|
-
"name": "
|
|
116
|
+
"name": "side",
|
|
645
117
|
"type": "uint256"
|
|
646
118
|
},
|
|
647
119
|
{
|
|
648
|
-
"internalType": "
|
|
649
|
-
"name": "
|
|
650
|
-
"type": "
|
|
651
|
-
}
|
|
120
|
+
"internalType": "uint256",
|
|
121
|
+
"name": "point",
|
|
122
|
+
"type": "uint256"
|
|
123
|
+
}
|
|
124
|
+
],
|
|
125
|
+
"name": "computeAmount",
|
|
126
|
+
"outputs": [
|
|
652
127
|
{
|
|
653
|
-
"internalType": "
|
|
654
|
-
"name": "
|
|
655
|
-
"type": "
|
|
128
|
+
"internalType": "uint256",
|
|
129
|
+
"name": "result",
|
|
130
|
+
"type": "uint256"
|
|
656
131
|
}
|
|
657
132
|
],
|
|
658
133
|
"stateMutability": "view",
|
|
@@ -662,36 +137,21 @@
|
|
|
662
137
|
"inputs": [
|
|
663
138
|
{
|
|
664
139
|
"internalType": "address",
|
|
665
|
-
"name": "
|
|
666
|
-
"type": "address"
|
|
667
|
-
},
|
|
668
|
-
{
|
|
669
|
-
"internalType": "address",
|
|
670
|
-
"name": "outToken",
|
|
140
|
+
"name": "",
|
|
671
141
|
"type": "address"
|
|
672
142
|
},
|
|
673
|
-
{
|
|
674
|
-
"internalType": "address[]",
|
|
675
|
-
"name": "path",
|
|
676
|
-
"type": "address[]"
|
|
677
|
-
},
|
|
678
143
|
{
|
|
679
144
|
"internalType": "address",
|
|
680
|
-
"name": "
|
|
145
|
+
"name": "",
|
|
681
146
|
"type": "address"
|
|
682
147
|
}
|
|
683
148
|
],
|
|
684
|
-
"name": "
|
|
149
|
+
"name": "fairPrice",
|
|
685
150
|
"outputs": [
|
|
686
151
|
{
|
|
687
152
|
"internalType": "uint256",
|
|
688
|
-
"name": "
|
|
153
|
+
"name": "",
|
|
689
154
|
"type": "uint256"
|
|
690
|
-
},
|
|
691
|
-
{
|
|
692
|
-
"internalType": "address",
|
|
693
|
-
"name": "pricing",
|
|
694
|
-
"type": "address"
|
|
695
155
|
}
|
|
696
156
|
],
|
|
697
157
|
"stateMutability": "view",
|
|
@@ -699,32 +159,12 @@
|
|
|
699
159
|
},
|
|
700
160
|
{
|
|
701
161
|
"inputs": [],
|
|
702
|
-
"name": "
|
|
162
|
+
"name": "feederPriceTTL",
|
|
703
163
|
"outputs": [
|
|
704
164
|
{
|
|
705
|
-
"internalType": "
|
|
706
|
-
"name": "
|
|
707
|
-
"type": "
|
|
708
|
-
},
|
|
709
|
-
{
|
|
710
|
-
"internalType": "uint256",
|
|
711
|
-
"name": "buyMax",
|
|
712
|
-
"type": "uint256"
|
|
713
|
-
},
|
|
714
|
-
{
|
|
715
|
-
"internalType": "uint256",
|
|
716
|
-
"name": "holdMax",
|
|
717
|
-
"type": "uint256"
|
|
718
|
-
},
|
|
719
|
-
{
|
|
720
|
-
"internalType": "uint256",
|
|
721
|
-
"name": "outMin",
|
|
722
|
-
"type": "uint256"
|
|
723
|
-
},
|
|
724
|
-
{
|
|
725
|
-
"internalType": "uint256",
|
|
726
|
-
"name": "inMin",
|
|
727
|
-
"type": "uint256"
|
|
165
|
+
"internalType": "uint32",
|
|
166
|
+
"name": "",
|
|
167
|
+
"type": "uint32"
|
|
728
168
|
}
|
|
729
169
|
],
|
|
730
170
|
"stateMutability": "view",
|
|
@@ -734,97 +174,86 @@
|
|
|
734
174
|
"inputs": [
|
|
735
175
|
{
|
|
736
176
|
"internalType": "address",
|
|
737
|
-
"name": "
|
|
177
|
+
"name": "tokenIn",
|
|
738
178
|
"type": "address"
|
|
739
179
|
},
|
|
740
180
|
{
|
|
741
181
|
"internalType": "address",
|
|
742
|
-
"name": "
|
|
182
|
+
"name": "tokenOut",
|
|
743
183
|
"type": "address"
|
|
744
|
-
},
|
|
745
|
-
{
|
|
746
|
-
"internalType": "address[]",
|
|
747
|
-
"name": "path",
|
|
748
|
-
"type": "address[]"
|
|
749
184
|
}
|
|
750
185
|
],
|
|
751
|
-
"name": "
|
|
186
|
+
"name": "getTwapSnapshots",
|
|
752
187
|
"outputs": [
|
|
753
188
|
{
|
|
754
189
|
"components": [
|
|
755
190
|
{
|
|
756
|
-
"internalType": "
|
|
757
|
-
"name": "
|
|
758
|
-
"type": "
|
|
759
|
-
},
|
|
760
|
-
{
|
|
761
|
-
"internalType": "int256",
|
|
762
|
-
"name": "feeRate",
|
|
763
|
-
"type": "int256"
|
|
764
|
-
},
|
|
765
|
-
{
|
|
766
|
-
"internalType": "address",
|
|
767
|
-
"name": "rewardToken",
|
|
768
|
-
"type": "address"
|
|
769
|
-
},
|
|
770
|
-
{
|
|
771
|
-
"internalType": "int256",
|
|
772
|
-
"name": "reward",
|
|
773
|
-
"type": "int256"
|
|
191
|
+
"internalType": "uint32",
|
|
192
|
+
"name": "timestamp",
|
|
193
|
+
"type": "uint32"
|
|
774
194
|
},
|
|
775
195
|
{
|
|
776
196
|
"internalType": "uint256",
|
|
777
|
-
"name": "
|
|
197
|
+
"name": "price0Cumulative",
|
|
778
198
|
"type": "uint256"
|
|
779
199
|
},
|
|
780
|
-
{
|
|
781
|
-
"internalType": "int256",
|
|
782
|
-
"name": "feeMin",
|
|
783
|
-
"type": "int256"
|
|
784
|
-
},
|
|
785
|
-
{
|
|
786
|
-
"internalType": "int256",
|
|
787
|
-
"name": "feeMax",
|
|
788
|
-
"type": "int256"
|
|
789
|
-
},
|
|
790
|
-
{
|
|
791
|
-
"internalType": "int256",
|
|
792
|
-
"name": "rewardMin",
|
|
793
|
-
"type": "int256"
|
|
794
|
-
},
|
|
795
|
-
{
|
|
796
|
-
"internalType": "int256",
|
|
797
|
-
"name": "rewardMax",
|
|
798
|
-
"type": "int256"
|
|
799
|
-
},
|
|
800
200
|
{
|
|
801
201
|
"internalType": "uint256",
|
|
802
|
-
"name": "
|
|
202
|
+
"name": "price1Cumulative",
|
|
803
203
|
"type": "uint256"
|
|
804
|
-
},
|
|
805
|
-
{
|
|
806
|
-
"internalType": "int256",
|
|
807
|
-
"name": "feeChange",
|
|
808
|
-
"type": "int256"
|
|
809
|
-
},
|
|
810
|
-
{
|
|
811
|
-
"internalType": "int256",
|
|
812
|
-
"name": "rewardChange",
|
|
813
|
-
"type": "int256"
|
|
814
204
|
}
|
|
815
205
|
],
|
|
816
|
-
"internalType": "struct TokenMarket.
|
|
817
|
-
"name": "
|
|
206
|
+
"internalType": "struct TokenMarket.TwapSnapshot",
|
|
207
|
+
"name": "result",
|
|
818
208
|
"type": "tuple"
|
|
819
209
|
},
|
|
820
210
|
{
|
|
821
211
|
"internalType": "uint256",
|
|
822
|
-
"name": "
|
|
212
|
+
"name": "price0",
|
|
823
213
|
"type": "uint256"
|
|
824
214
|
},
|
|
825
215
|
{
|
|
826
216
|
"internalType": "uint256",
|
|
827
|
-
"name": "
|
|
217
|
+
"name": "price1",
|
|
218
|
+
"type": "uint256"
|
|
219
|
+
}
|
|
220
|
+
],
|
|
221
|
+
"stateMutability": "view",
|
|
222
|
+
"type": "function"
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
"inputs": [],
|
|
226
|
+
"name": "logView",
|
|
227
|
+
"outputs": [
|
|
228
|
+
{
|
|
229
|
+
"internalType": "bool",
|
|
230
|
+
"name": "",
|
|
231
|
+
"type": "bool"
|
|
232
|
+
}
|
|
233
|
+
],
|
|
234
|
+
"stateMutability": "view",
|
|
235
|
+
"type": "function"
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
"inputs": [],
|
|
239
|
+
"name": "maxAllowedOffset",
|
|
240
|
+
"outputs": [
|
|
241
|
+
{
|
|
242
|
+
"internalType": "uint256",
|
|
243
|
+
"name": "",
|
|
244
|
+
"type": "uint256"
|
|
245
|
+
}
|
|
246
|
+
],
|
|
247
|
+
"stateMutability": "view",
|
|
248
|
+
"type": "function"
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
"inputs": [],
|
|
252
|
+
"name": "maxSwapRatioBps",
|
|
253
|
+
"outputs": [
|
|
254
|
+
{
|
|
255
|
+
"internalType": "uint256",
|
|
256
|
+
"name": "",
|
|
828
257
|
"type": "uint256"
|
|
829
258
|
}
|
|
830
259
|
],
|
|
@@ -844,6 +273,30 @@
|
|
|
844
273
|
"stateMutability": "view",
|
|
845
274
|
"type": "function"
|
|
846
275
|
},
|
|
276
|
+
{
|
|
277
|
+
"inputs": [
|
|
278
|
+
{
|
|
279
|
+
"internalType": "address",
|
|
280
|
+
"name": "tokenA",
|
|
281
|
+
"type": "address"
|
|
282
|
+
},
|
|
283
|
+
{
|
|
284
|
+
"internalType": "address",
|
|
285
|
+
"name": "tokenB",
|
|
286
|
+
"type": "address"
|
|
287
|
+
}
|
|
288
|
+
],
|
|
289
|
+
"name": "pairKey",
|
|
290
|
+
"outputs": [
|
|
291
|
+
{
|
|
292
|
+
"internalType": "bytes32",
|
|
293
|
+
"name": "key",
|
|
294
|
+
"type": "bytes32"
|
|
295
|
+
}
|
|
296
|
+
],
|
|
297
|
+
"stateMutability": "view",
|
|
298
|
+
"type": "function"
|
|
299
|
+
},
|
|
847
300
|
{
|
|
848
301
|
"inputs": [
|
|
849
302
|
{
|
|
@@ -885,58 +338,21 @@
|
|
|
885
338
|
"inputs": [
|
|
886
339
|
{
|
|
887
340
|
"internalType": "address",
|
|
888
|
-
"name": "
|
|
341
|
+
"name": "",
|
|
889
342
|
"type": "address"
|
|
890
343
|
},
|
|
891
344
|
{
|
|
892
345
|
"internalType": "address",
|
|
893
|
-
"name": "
|
|
346
|
+
"name": "",
|
|
894
347
|
"type": "address"
|
|
895
348
|
}
|
|
896
349
|
],
|
|
897
|
-
"name": "
|
|
350
|
+
"name": "priceUpdatedAt",
|
|
898
351
|
"outputs": [
|
|
899
352
|
{
|
|
900
|
-
"internalType": "
|
|
901
|
-
"name": "
|
|
902
|
-
"type": "
|
|
903
|
-
},
|
|
904
|
-
{
|
|
905
|
-
"internalType": "int256",
|
|
906
|
-
"name": "reward",
|
|
907
|
-
"type": "int256"
|
|
908
|
-
},
|
|
909
|
-
{
|
|
910
|
-
"components": [
|
|
911
|
-
{
|
|
912
|
-
"internalType": "uint256",
|
|
913
|
-
"name": "buyMin",
|
|
914
|
-
"type": "uint256"
|
|
915
|
-
},
|
|
916
|
-
{
|
|
917
|
-
"internalType": "uint256",
|
|
918
|
-
"name": "buyMax",
|
|
919
|
-
"type": "uint256"
|
|
920
|
-
},
|
|
921
|
-
{
|
|
922
|
-
"internalType": "uint256",
|
|
923
|
-
"name": "holdMax",
|
|
924
|
-
"type": "uint256"
|
|
925
|
-
},
|
|
926
|
-
{
|
|
927
|
-
"internalType": "uint256",
|
|
928
|
-
"name": "outMin",
|
|
929
|
-
"type": "uint256"
|
|
930
|
-
},
|
|
931
|
-
{
|
|
932
|
-
"internalType": "uint256",
|
|
933
|
-
"name": "inMin",
|
|
934
|
-
"type": "uint256"
|
|
935
|
-
}
|
|
936
|
-
],
|
|
937
|
-
"internalType": "struct TokenMarket.Limit",
|
|
938
|
-
"name": "limit",
|
|
939
|
-
"type": "tuple"
|
|
353
|
+
"internalType": "uint256",
|
|
354
|
+
"name": "",
|
|
355
|
+
"type": "uint256"
|
|
940
356
|
}
|
|
941
357
|
],
|
|
942
358
|
"stateMutability": "view",
|
|
@@ -983,88 +399,141 @@
|
|
|
983
399
|
"type": "address"
|
|
984
400
|
},
|
|
985
401
|
{
|
|
986
|
-
"internalType": "
|
|
402
|
+
"internalType": "uint256",
|
|
987
403
|
"name": "feeRate",
|
|
988
|
-
"type": "
|
|
404
|
+
"type": "uint256"
|
|
405
|
+
},
|
|
406
|
+
{
|
|
407
|
+
"internalType": "address",
|
|
408
|
+
"name": "burnReceipt",
|
|
409
|
+
"type": "address"
|
|
410
|
+
},
|
|
411
|
+
{
|
|
412
|
+
"internalType": "uint256",
|
|
413
|
+
"name": "burnRate",
|
|
414
|
+
"type": "uint256"
|
|
415
|
+
},
|
|
416
|
+
{
|
|
417
|
+
"internalType": "bool",
|
|
418
|
+
"name": "onoff",
|
|
419
|
+
"type": "bool"
|
|
420
|
+
}
|
|
421
|
+
],
|
|
422
|
+
"stateMutability": "view",
|
|
423
|
+
"type": "function"
|
|
424
|
+
},
|
|
425
|
+
{
|
|
426
|
+
"inputs": [
|
|
427
|
+
{
|
|
428
|
+
"internalType": "address",
|
|
429
|
+
"name": "tokenIn",
|
|
430
|
+
"type": "address"
|
|
989
431
|
},
|
|
990
432
|
{
|
|
991
433
|
"internalType": "address",
|
|
992
|
-
"name": "
|
|
434
|
+
"name": "tokenOut",
|
|
993
435
|
"type": "address"
|
|
994
436
|
},
|
|
995
437
|
{
|
|
996
|
-
"internalType": "
|
|
997
|
-
"name": "
|
|
998
|
-
"type": "
|
|
999
|
-
}
|
|
438
|
+
"internalType": "uint256",
|
|
439
|
+
"name": "price",
|
|
440
|
+
"type": "uint256"
|
|
441
|
+
}
|
|
442
|
+
],
|
|
443
|
+
"name": "setFairPrice",
|
|
444
|
+
"outputs": [],
|
|
445
|
+
"stateMutability": "nonpayable",
|
|
446
|
+
"type": "function"
|
|
447
|
+
},
|
|
448
|
+
{
|
|
449
|
+
"inputs": [
|
|
450
|
+
{
|
|
451
|
+
"internalType": "uint32",
|
|
452
|
+
"name": "_period",
|
|
453
|
+
"type": "uint32"
|
|
454
|
+
}
|
|
455
|
+
],
|
|
456
|
+
"name": "setFeederPriceTTL",
|
|
457
|
+
"outputs": [],
|
|
458
|
+
"stateMutability": "nonpayable",
|
|
459
|
+
"type": "function"
|
|
460
|
+
},
|
|
461
|
+
{
|
|
462
|
+
"inputs": [
|
|
463
|
+
{
|
|
464
|
+
"internalType": "bool",
|
|
465
|
+
"name": "_use",
|
|
466
|
+
"type": "bool"
|
|
467
|
+
}
|
|
468
|
+
],
|
|
469
|
+
"name": "setLogView",
|
|
470
|
+
"outputs": [],
|
|
471
|
+
"stateMutability": "nonpayable",
|
|
472
|
+
"type": "function"
|
|
473
|
+
},
|
|
474
|
+
{
|
|
475
|
+
"inputs": [
|
|
1000
476
|
{
|
|
1001
477
|
"internalType": "uint256",
|
|
1002
|
-
"name": "
|
|
478
|
+
"name": "point",
|
|
1003
479
|
"type": "uint256"
|
|
1004
|
-
}
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
"type": "int256"
|
|
1014
|
-
},
|
|
1015
|
-
{
|
|
1016
|
-
"internalType": "int256",
|
|
1017
|
-
"name": "rewardMin",
|
|
1018
|
-
"type": "int256"
|
|
1019
|
-
},
|
|
1020
|
-
{
|
|
1021
|
-
"internalType": "int256",
|
|
1022
|
-
"name": "rewardMax",
|
|
1023
|
-
"type": "int256"
|
|
1024
|
-
},
|
|
480
|
+
}
|
|
481
|
+
],
|
|
482
|
+
"name": "setMaxAllowedOffset",
|
|
483
|
+
"outputs": [],
|
|
484
|
+
"stateMutability": "nonpayable",
|
|
485
|
+
"type": "function"
|
|
486
|
+
},
|
|
487
|
+
{
|
|
488
|
+
"inputs": [
|
|
1025
489
|
{
|
|
1026
490
|
"internalType": "uint256",
|
|
1027
|
-
"name": "
|
|
491
|
+
"name": "ratio",
|
|
1028
492
|
"type": "uint256"
|
|
1029
|
-
}
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
493
|
+
}
|
|
494
|
+
],
|
|
495
|
+
"name": "setMaxSwapRatioBps",
|
|
496
|
+
"outputs": [],
|
|
497
|
+
"stateMutability": "nonpayable",
|
|
498
|
+
"type": "function"
|
|
499
|
+
},
|
|
500
|
+
{
|
|
501
|
+
"inputs": [
|
|
1035
502
|
{
|
|
1036
|
-
"internalType": "
|
|
1037
|
-
"name": "
|
|
1038
|
-
"type": "
|
|
503
|
+
"internalType": "uint32",
|
|
504
|
+
"name": "_period",
|
|
505
|
+
"type": "uint32"
|
|
1039
506
|
}
|
|
1040
507
|
],
|
|
1041
|
-
"
|
|
508
|
+
"name": "setTwapPeriod",
|
|
509
|
+
"outputs": [],
|
|
510
|
+
"stateMutability": "nonpayable",
|
|
1042
511
|
"type": "function"
|
|
1043
512
|
},
|
|
1044
513
|
{
|
|
1045
514
|
"inputs": [
|
|
1046
515
|
{
|
|
1047
|
-
"internalType": "
|
|
1048
|
-
"name": "
|
|
1049
|
-
"type": "
|
|
516
|
+
"internalType": "bool",
|
|
517
|
+
"name": "_use",
|
|
518
|
+
"type": "bool"
|
|
1050
519
|
}
|
|
1051
520
|
],
|
|
1052
|
-
"name": "
|
|
521
|
+
"name": "setUseTrueTwap",
|
|
1053
522
|
"outputs": [],
|
|
1054
523
|
"stateMutability": "nonpayable",
|
|
1055
524
|
"type": "function"
|
|
1056
525
|
},
|
|
1057
526
|
{
|
|
1058
|
-
"inputs": [
|
|
1059
|
-
"name": "signer",
|
|
1060
|
-
"outputs": [
|
|
527
|
+
"inputs": [
|
|
1061
528
|
{
|
|
1062
529
|
"internalType": "address",
|
|
1063
|
-
"name": "",
|
|
530
|
+
"name": "_route",
|
|
1064
531
|
"type": "address"
|
|
1065
532
|
}
|
|
1066
533
|
],
|
|
1067
|
-
"
|
|
534
|
+
"name": "setting",
|
|
535
|
+
"outputs": [],
|
|
536
|
+
"stateMutability": "nonpayable",
|
|
1068
537
|
"type": "function"
|
|
1069
538
|
},
|
|
1070
539
|
{
|
|
@@ -1100,7 +569,7 @@
|
|
|
1100
569
|
"type": "uint256"
|
|
1101
570
|
}
|
|
1102
571
|
],
|
|
1103
|
-
"name": "
|
|
572
|
+
"name": "support",
|
|
1104
573
|
"outputs": [],
|
|
1105
574
|
"stateMutability": "payable",
|
|
1106
575
|
"type": "function"
|
|
@@ -1108,69 +577,52 @@
|
|
|
1108
577
|
{
|
|
1109
578
|
"inputs": [
|
|
1110
579
|
{
|
|
1111
|
-
"internalType": "address",
|
|
1112
|
-
"name": "",
|
|
1113
|
-
"type": "address"
|
|
580
|
+
"internalType": "address[]",
|
|
581
|
+
"name": "path",
|
|
582
|
+
"type": "address[]"
|
|
1114
583
|
},
|
|
1115
584
|
{
|
|
1116
|
-
"internalType": "
|
|
1117
|
-
"name": "",
|
|
1118
|
-
"type": "
|
|
1119
|
-
}
|
|
1120
|
-
],
|
|
1121
|
-
"name": "taxConfig",
|
|
1122
|
-
"outputs": [
|
|
1123
|
-
{
|
|
1124
|
-
"internalType": "address",
|
|
1125
|
-
"name": "taxReceipt",
|
|
1126
|
-
"type": "address"
|
|
585
|
+
"internalType": "uint256",
|
|
586
|
+
"name": "inAmount",
|
|
587
|
+
"type": "uint256"
|
|
1127
588
|
},
|
|
1128
589
|
{
|
|
1129
590
|
"internalType": "uint256",
|
|
1130
|
-
"name": "
|
|
591
|
+
"name": "side",
|
|
1131
592
|
"type": "uint256"
|
|
1132
593
|
},
|
|
1133
594
|
{
|
|
1134
595
|
"internalType": "uint256",
|
|
1135
|
-
"name": "
|
|
596
|
+
"name": "deadline",
|
|
1136
597
|
"type": "uint256"
|
|
1137
598
|
},
|
|
1138
599
|
{
|
|
1139
|
-
"internalType": "
|
|
1140
|
-
"name": "
|
|
1141
|
-
"type": "
|
|
600
|
+
"internalType": "uint256",
|
|
601
|
+
"name": "point",
|
|
602
|
+
"type": "uint256"
|
|
1142
603
|
}
|
|
1143
604
|
],
|
|
1144
|
-
"
|
|
605
|
+
"name": "swapToken",
|
|
606
|
+
"outputs": [],
|
|
607
|
+
"stateMutability": "payable",
|
|
1145
608
|
"type": "function"
|
|
1146
609
|
},
|
|
1147
610
|
{
|
|
1148
611
|
"inputs": [
|
|
1149
612
|
{
|
|
1150
613
|
"internalType": "address",
|
|
1151
|
-
"name": "",
|
|
614
|
+
"name": "tokenIn",
|
|
1152
615
|
"type": "address"
|
|
1153
616
|
},
|
|
1154
617
|
{
|
|
1155
618
|
"internalType": "address",
|
|
1156
|
-
"name": "",
|
|
619
|
+
"name": "tokenOut",
|
|
1157
620
|
"type": "address"
|
|
1158
621
|
}
|
|
1159
622
|
],
|
|
1160
|
-
"name": "
|
|
1161
|
-
"outputs": [
|
|
1162
|
-
|
|
1163
|
-
"internalType": "uint256",
|
|
1164
|
-
"name": "outAmount",
|
|
1165
|
-
"type": "uint256"
|
|
1166
|
-
},
|
|
1167
|
-
{
|
|
1168
|
-
"internalType": "uint256",
|
|
1169
|
-
"name": "inAmount",
|
|
1170
|
-
"type": "uint256"
|
|
1171
|
-
}
|
|
1172
|
-
],
|
|
1173
|
-
"stateMutability": "view",
|
|
623
|
+
"name": "sync",
|
|
624
|
+
"outputs": [],
|
|
625
|
+
"stateMutability": "nonpayable",
|
|
1174
626
|
"type": "function"
|
|
1175
627
|
},
|
|
1176
628
|
{
|
|
@@ -1209,6 +661,38 @@
|
|
|
1209
661
|
"stateMutability": "nonpayable",
|
|
1210
662
|
"type": "function"
|
|
1211
663
|
},
|
|
664
|
+
{
|
|
665
|
+
"inputs": [
|
|
666
|
+
{
|
|
667
|
+
"internalType": "bytes32",
|
|
668
|
+
"name": "",
|
|
669
|
+
"type": "bytes32"
|
|
670
|
+
}
|
|
671
|
+
],
|
|
672
|
+
"name": "twapLastUpdatedAt",
|
|
673
|
+
"outputs": [
|
|
674
|
+
{
|
|
675
|
+
"internalType": "uint32",
|
|
676
|
+
"name": "",
|
|
677
|
+
"type": "uint32"
|
|
678
|
+
}
|
|
679
|
+
],
|
|
680
|
+
"stateMutability": "view",
|
|
681
|
+
"type": "function"
|
|
682
|
+
},
|
|
683
|
+
{
|
|
684
|
+
"inputs": [],
|
|
685
|
+
"name": "twapPeriod",
|
|
686
|
+
"outputs": [
|
|
687
|
+
{
|
|
688
|
+
"internalType": "uint32",
|
|
689
|
+
"name": "",
|
|
690
|
+
"type": "uint32"
|
|
691
|
+
}
|
|
692
|
+
],
|
|
693
|
+
"stateMutability": "view",
|
|
694
|
+
"type": "function"
|
|
695
|
+
},
|
|
1212
696
|
{
|
|
1213
697
|
"inputs": [
|
|
1214
698
|
{
|
|
@@ -1229,91 +713,29 @@
|
|
|
1229
713
|
"type": "address"
|
|
1230
714
|
},
|
|
1231
715
|
{
|
|
1232
|
-
"internalType": "
|
|
716
|
+
"internalType": "uint256",
|
|
1233
717
|
"name": "feeRate",
|
|
1234
|
-
"type": "
|
|
718
|
+
"type": "uint256"
|
|
1235
719
|
},
|
|
1236
720
|
{
|
|
1237
721
|
"internalType": "address",
|
|
1238
|
-
"name": "
|
|
722
|
+
"name": "burnReceipt",
|
|
1239
723
|
"type": "address"
|
|
1240
724
|
},
|
|
1241
|
-
{
|
|
1242
|
-
"internalType": "int256",
|
|
1243
|
-
"name": "reward",
|
|
1244
|
-
"type": "int256"
|
|
1245
|
-
},
|
|
1246
|
-
{
|
|
1247
|
-
"internalType": "uint256",
|
|
1248
|
-
"name": "price",
|
|
1249
|
-
"type": "uint256"
|
|
1250
|
-
},
|
|
1251
|
-
{
|
|
1252
|
-
"internalType": "int256",
|
|
1253
|
-
"name": "feeMin",
|
|
1254
|
-
"type": "int256"
|
|
1255
|
-
},
|
|
1256
|
-
{
|
|
1257
|
-
"internalType": "int256",
|
|
1258
|
-
"name": "feeMax",
|
|
1259
|
-
"type": "int256"
|
|
1260
|
-
},
|
|
1261
|
-
{
|
|
1262
|
-
"internalType": "int256",
|
|
1263
|
-
"name": "rewardMin",
|
|
1264
|
-
"type": "int256"
|
|
1265
|
-
},
|
|
1266
|
-
{
|
|
1267
|
-
"internalType": "int256",
|
|
1268
|
-
"name": "rewardMax",
|
|
1269
|
-
"type": "int256"
|
|
1270
|
-
},
|
|
1271
725
|
{
|
|
1272
726
|
"internalType": "uint256",
|
|
1273
|
-
"name": "
|
|
727
|
+
"name": "burnRate",
|
|
1274
728
|
"type": "uint256"
|
|
1275
729
|
},
|
|
1276
730
|
{
|
|
1277
|
-
"internalType": "
|
|
1278
|
-
"name": "
|
|
1279
|
-
"type": "
|
|
1280
|
-
},
|
|
1281
|
-
{
|
|
1282
|
-
"internalType": "int256",
|
|
1283
|
-
"name": "rewardChange",
|
|
1284
|
-
"type": "int256"
|
|
731
|
+
"internalType": "bool",
|
|
732
|
+
"name": "onoff",
|
|
733
|
+
"type": "bool"
|
|
1285
734
|
}
|
|
1286
735
|
],
|
|
1287
736
|
"internalType": "struct TokenMarket.TradeConfig",
|
|
1288
737
|
"name": "_config",
|
|
1289
738
|
"type": "tuple"
|
|
1290
|
-
},
|
|
1291
|
-
{
|
|
1292
|
-
"components": [
|
|
1293
|
-
{
|
|
1294
|
-
"internalType": "address",
|
|
1295
|
-
"name": "taxReceipt",
|
|
1296
|
-
"type": "address"
|
|
1297
|
-
},
|
|
1298
|
-
{
|
|
1299
|
-
"internalType": "uint256",
|
|
1300
|
-
"name": "tax",
|
|
1301
|
-
"type": "uint256"
|
|
1302
|
-
},
|
|
1303
|
-
{
|
|
1304
|
-
"internalType": "uint256",
|
|
1305
|
-
"name": "backBuy",
|
|
1306
|
-
"type": "uint256"
|
|
1307
|
-
},
|
|
1308
|
-
{
|
|
1309
|
-
"internalType": "address",
|
|
1310
|
-
"name": "pricing",
|
|
1311
|
-
"type": "address"
|
|
1312
|
-
}
|
|
1313
|
-
],
|
|
1314
|
-
"internalType": "struct TokenMarket.TaxConfig",
|
|
1315
|
-
"name": "_tax",
|
|
1316
|
-
"type": "tuple"
|
|
1317
739
|
}
|
|
1318
740
|
],
|
|
1319
741
|
"name": "updateConfig",
|
|
@@ -1324,72 +746,32 @@
|
|
|
1324
746
|
{
|
|
1325
747
|
"inputs": [
|
|
1326
748
|
{
|
|
1327
|
-
"
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
"name": "buyMin",
|
|
1331
|
-
"type": "uint256"
|
|
1332
|
-
},
|
|
1333
|
-
{
|
|
1334
|
-
"internalType": "uint256",
|
|
1335
|
-
"name": "buyMax",
|
|
1336
|
-
"type": "uint256"
|
|
1337
|
-
},
|
|
1338
|
-
{
|
|
1339
|
-
"internalType": "uint256",
|
|
1340
|
-
"name": "holdMax",
|
|
1341
|
-
"type": "uint256"
|
|
1342
|
-
},
|
|
1343
|
-
{
|
|
1344
|
-
"internalType": "uint256",
|
|
1345
|
-
"name": "outMin",
|
|
1346
|
-
"type": "uint256"
|
|
1347
|
-
},
|
|
1348
|
-
{
|
|
1349
|
-
"internalType": "uint256",
|
|
1350
|
-
"name": "inMin",
|
|
1351
|
-
"type": "uint256"
|
|
1352
|
-
}
|
|
1353
|
-
],
|
|
1354
|
-
"internalType": "struct TokenMarket.Limit",
|
|
1355
|
-
"name": "_limitBuy",
|
|
1356
|
-
"type": "tuple"
|
|
1357
|
-
}
|
|
1358
|
-
],
|
|
1359
|
-
"name": "updateLimit",
|
|
1360
|
-
"outputs": [],
|
|
1361
|
-
"stateMutability": "nonpayable",
|
|
1362
|
-
"type": "function"
|
|
1363
|
-
},
|
|
1364
|
-
{
|
|
1365
|
-
"inputs": [
|
|
1366
|
-
{
|
|
1367
|
-
"internalType": "uint256",
|
|
1368
|
-
"name": "_space",
|
|
1369
|
-
"type": "uint256"
|
|
749
|
+
"internalType": "address",
|
|
750
|
+
"name": "_whiter",
|
|
751
|
+
"type": "address"
|
|
1370
752
|
},
|
|
1371
753
|
{
|
|
1372
|
-
"internalType": "
|
|
1373
|
-
"name": "
|
|
1374
|
-
"type": "
|
|
754
|
+
"internalType": "bool",
|
|
755
|
+
"name": "_open",
|
|
756
|
+
"type": "bool"
|
|
1375
757
|
}
|
|
1376
758
|
],
|
|
1377
|
-
"name": "
|
|
759
|
+
"name": "updateWhite",
|
|
1378
760
|
"outputs": [],
|
|
1379
761
|
"stateMutability": "nonpayable",
|
|
1380
762
|
"type": "function"
|
|
1381
763
|
},
|
|
1382
764
|
{
|
|
1383
|
-
"inputs": [
|
|
765
|
+
"inputs": [],
|
|
766
|
+
"name": "useTrueTwap",
|
|
767
|
+
"outputs": [
|
|
1384
768
|
{
|
|
1385
|
-
"internalType": "
|
|
1386
|
-
"name": "
|
|
1387
|
-
"type": "
|
|
769
|
+
"internalType": "bool",
|
|
770
|
+
"name": "",
|
|
771
|
+
"type": "bool"
|
|
1388
772
|
}
|
|
1389
773
|
],
|
|
1390
|
-
"
|
|
1391
|
-
"outputs": [],
|
|
1392
|
-
"stateMutability": "nonpayable",
|
|
774
|
+
"stateMutability": "view",
|
|
1393
775
|
"type": "function"
|
|
1394
776
|
},
|
|
1395
777
|
{
|
|
@@ -1407,35 +789,21 @@
|
|
|
1407
789
|
},
|
|
1408
790
|
{
|
|
1409
791
|
"inputs": [
|
|
1410
|
-
{
|
|
1411
|
-
"internalType": "uint256",
|
|
1412
|
-
"name": "signType",
|
|
1413
|
-
"type": "uint256"
|
|
1414
|
-
},
|
|
1415
792
|
{
|
|
1416
793
|
"internalType": "address",
|
|
1417
|
-
"name": "
|
|
794
|
+
"name": "",
|
|
1418
795
|
"type": "address"
|
|
1419
|
-
}
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
"type": "uint256"
|
|
1424
|
-
},
|
|
1425
|
-
{
|
|
1426
|
-
"internalType": "uint256",
|
|
1427
|
-
"name": "deadline",
|
|
1428
|
-
"type": "uint256"
|
|
1429
|
-
},
|
|
796
|
+
}
|
|
797
|
+
],
|
|
798
|
+
"name": "whitelist",
|
|
799
|
+
"outputs": [
|
|
1430
800
|
{
|
|
1431
|
-
"internalType": "
|
|
1432
|
-
"name": "
|
|
1433
|
-
"type": "
|
|
801
|
+
"internalType": "bool",
|
|
802
|
+
"name": "",
|
|
803
|
+
"type": "bool"
|
|
1434
804
|
}
|
|
1435
805
|
],
|
|
1436
|
-
"
|
|
1437
|
-
"outputs": [],
|
|
1438
|
-
"stateMutability": "nonpayable",
|
|
806
|
+
"stateMutability": "view",
|
|
1439
807
|
"type": "function"
|
|
1440
808
|
},
|
|
1441
809
|
{
|
|
@@ -1443,8 +811,8 @@
|
|
|
1443
811
|
"type": "receive"
|
|
1444
812
|
}
|
|
1445
813
|
],
|
|
1446
|
-
"bytecode": "0x608060405262015180600a556000600b556305f5e1006012553480156200002557600080fd5b506040516200677138038062006771833981016040819052620000489162000746565b620000533362000322565b60018055600280546001600160a01b0319166001600160a01b0384161790556200007d8162000372565b600080734683b08798f3e30220c9d2018a4715f9f9532f5c738f689b86683004e20b938c60cc547f3ba23c283346606103620000e757735f0a0fd7b6e0fa043386158c801f82e20cecca939350738e8d0092879f6cd758b3ede480a40231be41817d92506200015e565b466201388103620001265773cf43b390dc89b36fd49267c646a73a0dfb7f3e4c93507385217dbb899f176f2533beb32d27b0e16aa2dd9592506200015e565b466089036200015e5773c2132d05d31c914a87c6611c10748aeb04b58e8f935073d34c03815039aded697d3e8cf94a7b371628383392505b6040805160a0808201835260008083526302faf08060208085018290528486018290526298968060608087018290526080968701829052600d859055600e849055600f9390935560108190556011819055865161018081018852600181528083018290526001600160a01b03808c16828a015262b71b008286018190526005838a015296820183905260c082019290925260e081019590955262e4e1c0610100860152624c4b406101208601526101408501849052620f423f196101608601528651958601875283865290850183905294840191909152928716928201929092526200024f9186918691906200047c565b620003168385604051806101800160405280866001600160a01b03168152602001621e84808152602001876001600160a01b031681526020016000815260200160058152602001621e848081526020016302faf08081526020016000815260200160008152602001624c4b408152602001624c4b3f19815260200160008152506040518060800160405280866001600160a01b0316815260200163017d7840815260200163017d78408152602001896001600160a01b03168152506200047c60201b60201c565b505050505050620007a3565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116620003d95760405162461bcd60e51b815260206004820152602260248201527f546f6b656e4d61726b65743a3a696e76616c696420726f757465206164647265604482015261737360f01b60648201526084015b60405180910390fd5b600580546001600160a01b0319166001600160a01b038316908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000433573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200045991906200077e565b600480546001600160a01b0319166001600160a01b039290921691909117905550565b6000546001600160a01b03163314620004d85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401620003d0565b6000826060015112156200052f5760405162461bcd60e51b815260206004820152601860248201527f546f6b656e4d61726b65743a3a726577617264203e3d203000000000000000006044820152606401620003d0565b600082602001511215620005865760405162461bcd60e51b815260206004820152601960248201527f546f6b656e4d61726b65743a3a66656552617465203e3d2030000000000000006044820152606401620003d0565b836001600160a01b031681606001516001600160a01b03161480620005c05750826001600160a01b031681606001516001600160a01b0316145b6200060e5760405162461bcd60e51b815260206004820152601c60248201527f546f6b656e4d61726b65743a3a496c6c6567616c2070726963696e67000000006044820152606401620003d0565b6001600160a01b03938416600081815260076020818152604080842097891680855297825280842087518154908b166001600160a01b031991821617825583890151600180840191909155838a015160028085018054928f16928516929092179091556060808c015160038087019190915560808d0151600487015560a08d0151600587015560c08d0151600687015560e08d0151988601989098556101008c01516008808701919091556101208d015160098701556101408d0151600a870155610160909c0151600b909501949094559787529884528286209986529883529381902086518154908b16908a1617815591860151968201969096559484015192850192909255919091015191018054919093169116179055565b80516001600160a01b03811681146200074157600080fd5b919050565b600080604083850312156200075a57600080fd5b620007658362000729565b9150620007756020840162000729565b90509250929050565b6000602082840312156200079157600080fd5b6200079c8262000729565b9392505050565b615fbe80620007b36000396000f3fe6080604052600436106101ae5760003560e01c8063715018a6116100eb578063aa5d448f1161008f578063eed8386c11610061578063eed8386c14610730578063f2fde38b1461076d578063f98486501461078d578063fe8691b4146107ad57005b8063aa5d448f146106a2578063cb17b194146106c2578063d738eba1146106f0578063d96661ef1461071057005b80638da5cb5b116100c85780638da5cb5b146105de5780639065a9af146105fc5780639bad44e81461066f578063a6a3694a1461068f57005b8063715018a61461057a5780637aaa9b021461058f57806381f3fdc3146105af57005b8063238ac9331161015257806334e3f92d1161012f57806334e3f92d146104875780633fc8cef3146104d257806340216a83146104f25780636f151a381461055a57005b8063238ac933146103365780632926e5de1461036e5780632bd2c18d1461046757005b8063092e469f1161018b578063092e469f146102915780630d83b1e4146102e05780631b153401146102f65780631f8c24de1461031657005b8063016eb8a8146101b7578063089aa047146101ea578063089afeae1461020a57005b366101b557005b005b3480156101c357600080fd5b506101d76101d2366004615010565b610801565b6040519081526020015b60405180910390f35b3480156101f657600080fd5b506101b56102053660046150a1565b610822565b34801561021657600080fd5b50610262610225366004615135565b600860209081526000928352604080842090915290825290208054600182015460028301546003909301546001600160a01b039283169391921684565b604080516001600160a01b039586168152602081019490945283019190915290911660608201526080016101e1565b34801561029d57600080fd5b50600d54600e54600f546010546011546102b8949392919085565b604080519586526020860194909452928401919091526060830152608082015260a0016101e1565b3480156102ec57600080fd5b506101d760125481565b34801561030257600080fd5b506101b561031136600461516e565b61087b565b34801561032257600080fd5b506101b561033136600461521e565b6108fa565b34801561034257600080fd5b50600254610356906001600160a01b031681565b6040516001600160a01b0390911681526020016101e1565b34801561037a57600080fd5b506103fd610389366004615135565b6007602081815260009384526040808520909152918352912080546001820154600283015460038401546004850154600586015460068701549787015460088801546009890154600a8a0154600b909a01546001600160a01b03998a169b989a99909716989597949693959293919290918c565b604080516001600160a01b039d8e168152602081019c909c5299909b16988a01989098526060890196909652608088019490945260a087019290925260c086015260e0850152610100840152610120830152610140820152610160810191909152610180016101e1565b34801561047357600080fd5b506101d7610482366004615321565b61097a565b34801561049357600080fd5b506104c26104a2366004615377565b805160208183018101805160038252928201919093012091525460ff1681565b60405190151581526020016101e1565b3480156104de57600080fd5b50600454610356906001600160a01b031681565b3480156104fe57600080fd5b5061051261050d366004615135565b6109cf565b6040805193845260208085019390935281518482015291810151606080850191909152918101516080808501919091529181015160a0840152015160c082015260e0016101e1565b34801561056657600080fd5b506101b56105753660046153b3565b610b83565b34801561058657600080fd5b506101b5610bb9565b34801561059b57600080fd5b506101b56105aa366004615448565b610bef565b3480156105bb57600080fd5b506105cf6105ca366004615545565b610e63565b6040516101e193929190615637565b3480156105ea57600080fd5b506000546001600160a01b0316610356565b34801561060857600080fd5b5061064f61061736600461516e565b600960209081526000938452604080852082529284528284209052825290208054600182015460028301546003909301549192909184565b6040805194855260208501939093529183015260608201526080016101e1565b34801561067b57600080fd5b506101b561068a3660046156b4565b6111ac565b6101b561069d366004615760565b61136e565b3480156106ae57600080fd5b506101b56106bd3660046153b3565b6116b7565b3480156106ce57600080fd5b506106e26106dd3660046157c4565b6116ea565b6040516101e192919061584c565b3480156106fc57600080fd5b506101b561070b366004615010565b611ab6565b34801561071c57600080fd5b50600554610356906001600160a01b031681565b34801561073c57600080fd5b5061075061074b366004615135565b611aeb565b604080519283526001600160a01b039091166020830152016101e1565b34801561077957600080fd5b506101b56107883660046153b3565b611c7a565b34801561079957600080fd5b506107506107a83660046158b9565b611d12565b3480156107b957600080fd5b506107ec6107c8366004615135565b60066020908152600092835260408084209091529082529020805460019091015482565b604080519283526020830191909152016101e1565b60125460009061081b906108158585611e55565b90611e67565b9392505050565b6000546001600160a01b031633146108555760405162461bcd60e51b815260040161084c9061592d565b60405180910390fd5b8051600d556020810151600e556040810151600f55606081015160105560800151601155565b6000546001600160a01b031633146108a55760405162461bcd60e51b815260040161084c9061592d565b6108b0838383611e73565b6108f55760405162461bcd60e51b8152602060048201526016602482015275151bdad95b93585c9ad95d0e8e9cd95b990819985a5b60521b604482015260640161084c565b505050565b610902611eaa565b61090f8585858585611f03565b61091b858585846120be565b81421061096a5760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e4d61726b65743a3a4f726465722045787069726174696f6e000000604482015260640161084c565b61097360018055565b5050505050565b600080808481036109a75761098f878761212d565b915061099d8483600061224a565b91508192506109c5565b6109b18787612292565b90506109bf8482600161224a565b90508092505b5050949350505050565b600080610a046040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6000600a54600b5442610a179190615978565b610a219190615990565b6001600160a01b0380881660008181526007602081815260408084208c87168086529083528185208251610180810184528154891681526001820154818601526002820154909816888401526003810154606089015260048101546080890152600581015460a0890152600681015460c08901529384015460e08801526008840154610100880152600980850154610120890152600a850154610140890152600b909401546101608801529484529181528183209383529283528082208583529092529081205492935090919003610b06578060200151945080606001519350610b44565b6001600160a01b038781166000908152600960209081526040808320938a168352928152828220858352905220600281015460039091015490955093505b50506040805160a081018252600d548152600e546020820152600f54918101919091526010546060820152601154608082015292959194509192509050565b6000546001600160a01b03163314610bad5760405162461bcd60e51b815260040161084c9061592d565b610bb681612394565b50565b6000546001600160a01b03163314610be35760405162461bcd60e51b815260040161084c9061592d565b610bed6000612418565b565b6000546001600160a01b03163314610c195760405162461bcd60e51b815260040161084c9061592d565b600082606001511215610c6e5760405162461bcd60e51b815260206004820152601860248201527f546f6b656e4d61726b65743a3a726577617264203e3d20300000000000000000604482015260640161084c565b600082602001511215610cc35760405162461bcd60e51b815260206004820152601960248201527f546f6b656e4d61726b65743a3a66656552617465203e3d203000000000000000604482015260640161084c565b836001600160a01b031681606001516001600160a01b03161480610cfc5750826001600160a01b031681606001516001600160a01b0316145b610d485760405162461bcd60e51b815260206004820152601c60248201527f546f6b656e4d61726b65743a3a496c6c6567616c2070726963696e6700000000604482015260640161084c565b6001600160a01b03938416600081815260076020818152604080842097891680855297825280842087518154908b166001600160a01b031991821617825583890151600180840191909155838a015160028085018054928f16928516929092179091556060808c015160038087019190915560808d0151600487015560a08d0151600587015560c08d0151600687015560e08d0151988601989098556101008c01516008808701919091556101208d015160098701556101408d0151600a870155610160909c0151600b909501949094559787529884528286209986529883529381902086518154908b16908a1617815591860151968201969096559484015192850192909255919091015191018054919093169116179055565b610e6b614f9d565b506001600160a01b03808416600081815260076020818152604080842088871685528252808420815161018081018352815488168152600182015481850152600282015490971687830152600381015460608801526004808201546080890152600582015460a0890152600682015460c08901529381015460e088015260088101546101008801526009810154610120880152600a810154610140880152600b0154610160870152805163313ce56760e01b8152905193948594909363313ce5679383820193909291908290030181865afa158015610f4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7291906159b2565b60ff169150610f8b610f8583600a615ab9565b8561212d565b90506000808285608001511115610fdd576101208501516080860151601254610fb48683615ac5565b610fbe9190615adc565b610fc89190615990565b610fd29190615990565b905060009150611026565b84608001518311156110265761012085015160808601516012546110018287615ac5565b61100b9190615adc565b6110159190615990565b61101f9190615990565b9050600191505b60008113156111a157608085018390526101408501516101608601518361105e5761105082615afb565b915061105b81615afb565b90505b600082126110a15760208701516110758484615b17565b61107f9190615b9c565b6020880181905260c0880151121561109c5760c087015160208801525b6110fd565b86602001518760a00151846110b585612468565b6110bf9190615b17565b6110c99190615b9c565b13156110de5760a087015160208801526110fd565b60208701516110ed8484615b17565b6110f79190615b9c565b60208801525b600081126111425760608701516111148483615b17565b61111e9190615b9c565b60608801819052610100880151121561113d5761010087015160608801525b61119e565b86606001518760e001518461115684612468565b6111609190615b17565b61116a9190615b9c565b131561117f5760e0870151606088015261119e565b606087015161118e8483615b17565b6111989190615b9c565b60608801525b50505b505093509350939050565b6000546001600160a01b031633146111d65760405162461bcd60e51b815260040161084c9061592d565b82518451146111f75760405162461bcd60e51b815260040161084c90615bdd565b81518351146112185760405162461bcd60e51b815260040161084c90615bdd565b80518251146112395760405162461bcd60e51b815260040161084c90615bdd565b60005b84518110156109735761129b83828151811061125a5761125a615c14565b602002602001015185838151811061127457611274615c14565b602002602001015184848151811061128e5761128e615c14565b6020026020010151612484565b7fd854fbf5db341a7d003a14ee8ed089e806c8731c6aca5fb4b89095d0a230ccd08582815181106112ce576112ce615c14565b60200260200101518583815181106112e8576112e8615c14565b602002602001015185848151811061130257611302615c14565b602002602001015185858151811061131c5761131c615c14565b602002602001015160405161135494939291909384526001600160a01b03928316602085015291166040830152606082015260800190565b60405180910390a18061136681615c2a565b91505061123c565b611376611eaa565b3332146113c55760405162461bcd60e51b815260206004820152601b60248201527f546f6b656e4d61726b65743a3a496c6c6567616c2063616c6c65720000000000604482015260640161084c565b333b156114205760405162461bcd60e51b8152602060048201526024808201527f546f6b656e4d61726b65743a3a50726f686962697420636f6e74726163742063604482015263616c6c7360e01b606482015260840161084c565b8260000361144757611432858761212d565b93506114408185600061224a565b9350611462565b6114518487612292565b945061145f8186600161224a565b94505b60008660008151811061147757611477615c14565b60200260200101519050600087600189516114929190615ac5565b815181106114a2576114a2615c14565b6020908102919091018101513360009081526006835260408082206001600160a01b03871683529093529182206001018054919350899290916114e6908490615978565b909155506114f8905082828a8a6125ae565b6000604051806040016040528061150e8561279a565b8152602001846001600160a01b03168152509050600060405180604001604052806115388561279a565b81526001600160a01b0385166020909101528251909150600303611567576115628433308c6127d3565b6115c5565b8834146115c55760405162461bcd60e51b815260206004820152602660248201527f546f6b656e4d61726b65743a3a696e70757420657468206973206e6f7420616360448201526563757261746560d01b606482015260840161084c565b6115d482828b8b8e8c8c612905565b60006115e185858b612b49565b905060006115f186868e8d612cf5565b90506115fe86868e612e52565b7f72d976c83fc087ff662ebb498c75e02af61aa6678458ea09336773ce6b767d3b3387878e868660000151876020015188604001518960600151604051611698999897969594939291906001600160a01b03998a16815297891660208901529590971660408701526060860193909352608085019190915260a084015260c083015291151560e08201526101008101919091526101200190565b60405180910390a15050505050506116af60018055565b505050505050565b6000546001600160a01b031633146116e15760405162461bcd60e51b815260040161084c9061592d565b610bb681613123565b6116f2614f9d565b61173c604051806101000160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600015158152602001600081525090565b60008061174c8a8a8a8a8a613224565b60a08801929092526080870183905292965091935090915061176f908790613336565b9550600061177e83600a615ab9565b82898660a001518e6001600160a01b03166370a082318b6040518263ffffffff1660e01b81526004016117c091906001600160a01b0391909116815260200190565b602060405180830381865afa1580156117dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118019190615c43565b61180b9190615978565b6118159190615ac5565b61181f9190615adc565b6118299190615990565b6001600160a01b038781166000908152600660209081526040808320938f16835292905290812060018101549054929350918390611868908b90615978565b6118729190615978565b905080821061189657600060c087015261188c8183615ac5565b60e08701526118ad565b600160c08701526118a78282615ac5565b60e08701525b6000600860008f6001600160a01b03166001600160a01b0316815260200190815260200160002060008e6001600160a01b03166001600160a01b031681526020019081526020016000206040518060800160405290816000820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200160018201548152602001600282015481526020016003820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152505090508c6001600160a01b031681606001516001600160a01b031603611a9d578660c0015115611a4a5760e0870151601154118015906119b7575060008760e00151115b15611a3d57898760e0015110611a12576119d58a8260400151610801565b604088015260208101516119ea908b90610801565b8088526040880151611a089190611a02908d90613336565b90613336565b6060880152611aa5565b611a248760e001518260400151610801565b604088015260e087015160208201516119ea9190610801565b606087018a90525b611aa5565b611a588a8260400151610801565b60408801819052611a6a908b90613336565b606088015260e087015160105411801590611a89575060008760e00151115b15611a455760e08701516020880152611aa5565b606087018a90525b505050505050965096945050505050565b6000546001600160a01b03163314611ae05760405162461bcd60e51b815260040161084c9061592d565b600a91909155600b55565b6000806000600a54600b5442611b019190615978565b611b0b9190615990565b6001600160a01b0380871660008181526009602081815260408084208b871680865290835281852088865283528185208251608080820185528254825260018084015483880152600280850154848801526003948501546060808601919091529a8a526007808952878b20968b529588529886902086516101808101885281548d1681529181015497820197909752978601549099169387019390935283015495850195909552600482015495840195909552600581015460a0840152600681015460c08401529283015460e08301526008830154610100830152820154610120820152600a820154610140820152600b9091015461016082015281519293509091158015611c1a5750600c54155b15611c2b5780608001519450611c43565b8151600003611c3e57600c549450611c43565b815194505b505050506001600160a01b039283166000908152600860209081526040808320948616835293905291909120600301549092911690565b6000546001600160a01b03163314611ca45760405162461bcd60e51b815260040161084c9061592d565b6001600160a01b038116611d095760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161084c565b610bb681612418565b6001600160a01b038085166000908152600860209081526040808320878516845290915281206003015490911681611d4b878787613342565b90506000866001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611db191906159b2565b6040516370a0823160e01b81526001600160a01b03878116600483015260ff9290921692506000918916906370a0823190602401602060405180830381865afa158015611e02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e269190615c43565b9050611e3382600a615ab9565b611e3d8483615adc565b611e479190615990565b945050505094509492505050565b600061081b8284615adc565b92915050565b600061081b8284615990565b60006001600160a01b038416611e9557611e8d8383613524565b50600161081b565b611ea0848484612484565b5060019392505050565b600260015403611efc5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161084c565b6002600155565b600381604051611f139190615c8c565b9081526040519081900360200190205460ff1615611f735760405162461bcd60e51b815260206004820181905260248201527f546f6b656e4d61726b65743a3a63657274696669636174652065787069726564604482015260640161084c565b60408051466020808301919091528183018890526bffffffffffffffffffffffff1933606090811b82168185015288901b1660748301526088820186905260a88083018690528351808403909101815260c8830184528051908201207f19457468657265756d205369676e6564204d6573736167653a0a33320000000060e884015261010480840191909152835180840390910181526101249092019092528051910120600090612024908361363d565b6002549091506001600160a01b038083169116146120845760405162461bcd60e51b815260206004820181905260248201527f546f6b656e4d61726b65743a3a696e76616c6964206365727469666963617465604482015260640161084c565b60016003836040516120969190615c8c565b908152604051908190036020019020805491151560ff19909216919091179055505050505050565b6001600160a01b0383166120db576120d63383613524565b6120e6565b6120e6833384612484565b7f620ad9fc50d4bd40a79cb189cc547554eb4619554627f5ff4b98002f3269211d33858585428660405161211f96959493929190615ca8565b60405180910390a150505050565b60055460405163d06ca61f60e01b815260009182916001600160a01b039091169063d06ca61f906121649087908790600401615d4e565b600060405180830381865afa158015612181573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526121a99190810190615d67565b9050806121c16001835161333690919063ffffffff16565b815181106121d1576121d1615c14565b60200260200101519150600082116122435760405162461bcd60e51b815260206004820152602f60248201527f546f6b656e4d61726b65743a3a6f7574416d6f756e742073686f756c6420626560448201526e02067726561746572207468616e203608c1b606482015260840161084c565b5092915050565b600060018215612268576012546122619086613661565b9050612278565b6012546122759086613336565b90505b601254612289906108158684611e55565b95945050505050565b6005546040516307c0329d60e21b815260009182916001600160a01b0390911690631f00ca74906122c99087908790600401615d4e565b600060405180830381865afa1580156122e6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261230e9190810190615d67565b90508060008151811061232357612323615c14565b60200260200101519150600082116122435760405162461bcd60e51b815260206004820152602e60248201527f546f6b656e4d61726b65743a3a696e416d6f756e742073686f756c642062652060448201526d067726561746572207468616e20360941b606482015260840161084c565b6001600160a01b0381166123f65760405162461bcd60e51b8152602060048201526024808201527f546f6b656e4d61726b65743a3a696e76616c6964207369676e696e67206164646044820152637265737360e01b606482015260840161084c565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000808212156124805761247b82615afb565b611e61565b5090565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291516000928392908716916124e09190615c8c565b6000604051808303816000865af19150503d806000811461251d576040519150601f19603f3d011682016040523d82523d6000602084013e612522565b606091505b509150915081801561254c57508051158061254c57508080602001905181019061254c9190615df7565b6109735760405162461bcd60e51b815260206004820152602d60248201527f5472616e7366657248656c7065723a3a736166655472616e736665723a20747260448201526c185b9cd9995c8819985a5b1959609a1b606482015260840161084c565b6001600160a01b0380851660008181526008602090815260408083208886168452825291829020825160808101845281548616815260018201549281019290925260028101549282019290925260039091015490921660608301819052900361097357600061261d86866109cf565b92505050600061262f87878733611d12565b50905083826000015111156126ac5760405162461bcd60e51b815260206004820152603860248201527f546f6b656e4d61726b65743a3a4c657373207468616e20746865207175616e7460448201527f697479206f6620612073696e676c652070757263686173650000000000000000606482015260840161084c565b83826020015110156127265760405162461bcd60e51b815260206004820152603b60248201527f546f6b656e4d61726b65743a3a47726561746572207468616e2074686520717560448201527f616e74697479206f6620612073696e676c652070757263686173650000000000606482015260840161084c565b6127308482615978565b826040015110156127915760405162461bcd60e51b815260206004820152602560248201527f546f6b656e4d61726b65743a3a457863656564696e6720706f736974696f6e206044820152641b1a5b5a5d60da1b606482015260840161084c565b50505050505050565b600060036001600160a01b0383166127b457506001611e61565b6004546001600160a01b0390811690841603611e615750600292915050565b600080856001600160a01b03166323b872dd8686866040516024016127fa93929190615e19565b6040516020818303038152906040529060e01b6020820180516001600160e01b0383818316178352505050506040516128339190615c8c565b6000604051808303816000865af19150503d8060008114612870576040519150601f19603f3d011682016040523d82523d6000602084013e612875565b606091505b509150915081801561289f57508051158061289f57508080602001905181019061289f9190615df7565b6116af5760405162461bcd60e51b815260206004820152603160248201527f5472616e7366657248656c7065723a3a7472616e7366657246726f6d3a207472604482015270185b9cd9995c919c9bdb4819985a5b1959607a1b606482015260840161084c565b865160030361292a57602087015160055461292a91906001600160a01b03168761366d565b8651600314801561293c575085516003145b8015612946575081155b156129d0576005546040516338ed173960e01b81526001600160a01b03909116906338ed1739906129839088908890889030908890600401615e3d565b6000604051808303816000875af11580156129a2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526129ca9190810190615d67565b50612791565b865160031480156129e2575085516003145b80156129ee5750816001145b15612a2b57600554604051634401edf760e11b81526001600160a01b0390911690638803dbee906129839087908990889030908890600401615e3d565b86516003148015612a485750855160021480612a48575085516001145b8015612a545750816001145b15612a9157600554604051632512eca560e11b81526001600160a01b0390911690634a25d94a906129839087908990889030908890600401615e3d565b865160021480612aa2575086516001145b8015612aaf575085516003145b8015612abb5750816001145b156127915760055460405163fb3bdb4160e01b81526001600160a01b039091169063fb3bdb41908790612af8908890889030908890600401615e79565b60006040518083038185885af1158015612b16573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f19168201604052612b3f9190810190615d67565b5050505050505050565b6001600160a01b038084166000908152600760208181526040808420878616855282528084208151610180810183528154871681526001820154938101939093526002810154909516908201526003840154606082015260048401546080820152600584015460a0820152600684015460c08201529083015460e082015260088301546101008201526009830154610120820152600a830154610140820152600b909201546101608301529081612c0086866109cf565b50509050612c0e8482610801565b925060006040518060400160405280612c268861279a565b81526001600160a01b0388166020909101528051909150600303612cce5782516001600160a01b03163014612cc957612c6486846000015186612484565b82516001600160a01b03161580612c85575082516001600160a01b03166001145b15612cc9577f5d624aa9c148153ab3446c1b154f660ee7701e549fe9b62dab7171b1c80e6fa23387866000604051612cc09493929190615eae565b60405180910390a15b612ceb565b82516001600160a01b03163014612ceb578251612ceb9085613795565b5050509392505050565b612d2260405180608001604052806000815260200160008152602001600015158152602001600081525090565b6001600160a01b038086166000908152600860209081526040808320888516845282529182902082516080810184528154851681526001820154928101929092526002810154928201929092526003909101549091166060820152612d898686868661386f565b60608086019290925291151560408501528201519093506001600160a01b03808716911603612df457816040015115612dd957612dcd868686856060015187613998565b60208401528252612dfc565b612dea868686856060015187613d3c565b6020830152612dfc565b602082018390525b612e0b85338460200151612484565b6020808301513360009081526006835260408082206001600160a01b038a168352909352918220805491929091612e43908490615978565b90915550919695505050505050565b6000600a54600b5442612e659190615978565b612e6f9190615990565b6001600160a01b0380861660008181526009602081815260408084208a871680865290835281852088865283528185208251608080820185528254825260018084015483880152600280850154848801526003948501546060808601919091529a8a526007808952878b20968b529588529886902086516101808101885281548d1681529181015497820197909752978601549099169387019390935283015495850195909552600482015495840195909552600581015460a0840152600681015460c08401529283015460e08301526008830154610100830152820154610120820152600a820154610140820152600b9091015461016082015281519293509091158015612f7e5750600c54155b15612fde576080810180516001600160a01b038089166000818152600960208181526040808420958d168085529582528084208b855282528084209690965595519382528552838120918152908452828120878252909352912055613038565b815160000361303857600c546001600160a01b038088166000818152600960208181526040808420958c168085529582528084208a8552825280842087905594835290815283822092825291825282812087825290915220555b6000613045878787613342565b6001600160a01b038089166000908152600960209081526040808320938b168352928152828220888352905220549091506130838888848489613f23565b50506001600160a01b038881166000818152600960208181526040808420958d168085529582528084208b855282528084206001908101899055958452918152818320938352928352808220898352835290819020909201849055600c84905581518781529081018490527fb9362b96e28efbb7a7e63bb4a97faf9924ec0394635feff8588a6ae2a5f784fe910160405180910390a15050505050505050565b6001600160a01b0381166131845760405162461bcd60e51b815260206004820152602260248201527f546f6b656e4d61726b65743a3a696e76616c696420726f757465206164647265604482015261737360f01b606482015260840161084c565b600580546001600160a01b0319166001600160a01b038316908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa1580156131dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132019190615ed7565b600480546001600160a01b0319166001600160a01b039290921691909117905550565b61322c614f9d565b506001600160a01b038086166000908152600760208181526040808420898616855282528084208151610180810183528154871681526001820154938101939093526002810154909516908201526003840154606082015260048401546080820152600584015460a0820152600684015460c08201529083015460e082015260088301546101008201526009830154610120820152600a830154610140820152600b909201546101608301528080806132e688888861419a565b925090506000806132f78c8c6109cf565b50602089018290526060890181905290925090506133158883610801565b9550613325888860600151610801565b945050509550955095509550959050565b600061081b8284615ac5565b6001600160a01b03808416600081815260086020908152604080832087861684528252808320815160808101835281548716815260018201549381019390935260028101549183019190915260030154909316606084018190529092918391900361343157846001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133e5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061340991906159b2565b60ff16905061342a61341c82600a615ab9565b61342586614625565b61212d565b925061351b565b81606001516001600160a01b0316856001600160a01b0316036134c357856001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561348c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134b091906159b2565b60ff16905061342a610f8582600a615ab9565b60405162461bcd60e51b815260206004820152602760248201527f546f6b656e4d61726b65743a3a496c6c6567616c2076616c756174696f6e2063604482015266757272656e637960c81b606482015260840161084c565b50509392505050565b804710156135745760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161084c565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146135c1576040519150601f19603f3d011682016040523d82523d6000602084013e6135c6565b606091505b50509050806108f55760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161084c565b600080600061364c85856146f4565b9150915061365981614739565b509392505050565b600061081b8284615978565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b17905291516000928392908716916136c99190615c8c565b6000604051808303816000865af19150503d8060008114613706576040519150601f19603f3d011682016040523d82523d6000602084013e61370b565b606091505b50915091508180156137355750805115806137355750808060200190518101906137359190615df7565b6109735760405162461bcd60e51b815260206004820152602b60248201527f5472616e7366657248656c7065723a3a73616665417070726f76653a2061707060448201526a1c9bdd994819985a5b195960aa1b606482015260840161084c565b604080516000808252602082019092526001600160a01b0384169083906040516137bf9190615c8c565b60006040518083038185875af1925050503d80600081146137fc576040519150601f19603f3d011682016040523d82523d6000602084013e613801565b606091505b50509050806108f55760405162461bcd60e51b815260206004820152603460248201527f5472616e7366657248656c7065723a3a736166655472616e736665724554483a60448201527308115512081d1c985b9cd9995c8819985a5b195960621b606482015260840161084c565b600080600080600061388389898989614883565b91945092509050600061389782600a615ab9565b6040516370a0823160e01b815233600482015284906001600160a01b038d16906370a0823190602401602060405180830381865afa1580156138dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139019190615c43565b61390b9190615adc565b6139159190615990565b3360009081526006602090815260408083206001600160a01b038e168452909152812060018101549054929350918390613950908890615978565b61395a9190615978565b905080821061397857600097506139718183615ac5565b9650613989565b600197506139868282615ac5565b96505b50505050509450945094915050565b6001600160a01b0380861660009081526008602090815260408083208885168452825280832081516080810183528154861681526001820154938101939093526002810154918301919091526003015490921660608301526011549091829182908610801590613a085750600086115b15613c6e57848610613b5057613a35613a25868460400151610801565b613a2e89614625565b6001614b39565b90507f5d624aa9c148153ab3446c1b154f660ee7701e549fe9b62dab7171b1c80e6fa2338a836001604051613a6d9493929190615eae565b60405180910390a1613a83858360200151610801565b9350613a9488836000015186612484565b613aa2858360400151610801565b613aac8587615ac5565b613ab69190615ac5565b3360009081526006602090815260408083206001600160a01b038d16845290915281206001018054909190613aec908490615978565b90915550506040517f88dcaca629d63d86330e97adc358b13dd0ebd703239aea96b7ea2fb331b16f4e90613b259033908b908890615e19565b60405180910390a1613b4984611a02613b42888660400151610801565b8890613336565b9250613d30565b613b61613a25878460400151610801565b90507f5d624aa9c148153ab3446c1b154f660ee7701e549fe9b62dab7171b1c80e6fa2338a836001604051613b999493929190615eae565b60405180910390a1613baf868360200151610801565b9350613bc088836000015186612484565b613bce868360400151610801565b613bd88588615ac5565b613be29190615ac5565b3360009081526006602090815260408083206001600160a01b038d16845290915281206001018054909190613c18908490615978565b90915550506040517f88dcaca629d63d86330e97adc358b13dd0ebd703239aea96b7ea2fb331b16f4e90613c519033908b908890615e19565b60405180910390a1613b4984611a02613b42898660400151610801565b6000613c7e868460400151610801565b1115613d2c57613ca4613c95868460400151610801565b613c9e89614625565b33614b39565b9050613cbe613cb7868460400151610801565b8690613336565b92507f340b543910b47fe717183f8972077c5d42343802898948d4dffc9cc82a4f60993389613cf1888660400151610801565b604080516001600160a01b0394851681529284166020840152820152908b1660608201526080810183905260a00160405180910390a1613d30565b8492505b50509550959350505050565b6001600160a01b0380861660009081526008602090815260408083208885168452825280832081516080810183528154861681526001820154938101939093526002810154918301829052600301549093166060820152909182908190613da4908690610801565b1115613e4c57613dc4613dbb858460400151610801565b613c9e88614625565b9050613dde613dd7858460400151610801565b8590613336565b92507f340b543910b47fe717183f8972077c5d42343802898948d4dffc9cc82a4f60993388613e11878660400151610801565b604080516001600160a01b0394851681529284166020840152820152908a1660608201526080810183905260a00160405180910390a1613e50565b8392505b6010548510801590613e625750600085115b15613f18573360009081526006602090815260408083206001600160a01b038b16845290915281208054879290613e9a908490615978565b90915550503360008181526006602090815260408083206001600160a01b038c1680855290835292819020600181015490548251958652928501939093528301889052606083019190915260808201527f4e7e2735528d8c3e943fd545526d432a6f178a48e5e201186f897a1a865336539060a00160405180910390a15b505095945050505050565b6001600160a01b038086166000908152600760208181526040808420898616855282528084208151610180810183528154871681526001820154938101939093526002810154909516908201526003840154606082015260048401546080820152600584015460a0820152600684015460c08201529083015460e0820152600883015461010082015260098301546101208201819052600a840154610140830152600b9093015461016082015290918291906140215760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e4d61726b65743a3a636f6e6669672e72616e6765203e2030000000604482015260640161084c565b600085116140695760405162461bcd60e51b81526020600482015260156024820152740546f6b656e4d61726b65743a3a6f70656e203e203605c1b604482015260640161084c565b858511156140af5761012081015160125486906140868983615ac5565b6140909190615adc565b61409a9190615990565b6140a49190615990565b9250600091506140f1565b848611156140f15761012081015160125486906140cc828a615ac5565b6140d69190615adc565b6140e09190615990565b6140ea9190615990565b9250600191505b6000806141008a8a8787614c1a565b6001600160a01b038c81166000908152600960209081526040808320938f1683529281528282208b835290522060028101839055600301819055909250905061414b898b8787614c1a565b6001600160a01b039a8b1660009081526009602090815260408083209e909d1682529c8d528b812098815297909b52989095206002810198909855505060039095019590955550929391925050565b600080846000815181106141b0576141b0615c14565b60200260200101516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156141f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061421991906159b2565b60ff169050600080600560009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015614274573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142989190615ed7565b6001600160a01b031663e6a43905886000815181106142b9576142b9615c14565b60200260200101518960018b516142d09190615ac5565b815181106142e0576142e0615c14565b60200260200101516040518363ffffffff1660e01b815260040161431a9291906001600160a01b0392831681529116602082015260400190565b602060405180830381865afa158015614337573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061435b9190615ed7565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015614398573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143bc9190615f0b565b506001600160701b031691506001600160701b03169150600087600189516143e49190615ac5565b815181106143f4576143f4615c14565b60200260200101516001600160a01b03168860008151811061441857614418615c14565b60200260200101516001600160a01b03161061447557876001895161443d9190615ac5565b8151811061444d5761444d615c14565b60200260200101518860008151811061446857614468615c14565b60200260200101516144b8565b8760008151811061448857614488615c14565b60200260200101518860018a5161449f9190615ac5565b815181106144af576144af615c14565b60200260200101515b5090506000808960018b516144cd9190615ac5565b815181106144dd576144dd615c14565b60200260200101516001600160a01b03168a60008151811061450157614501615c14565b60200260200101516001600160a01b03161061451e578789614521565b88885b91509150826001600160a01b03168a60008151811061454257614542615c14565b60200260200101516001600160a01b0316036145c0576145628583613661565b945061456e8482613336565b935061459c61458a6126f761458489600a615ab9565b90611e55565b61459687612710611e55565b90613661565b6145af856145846126f7818b600a615ab9565b6145b99190615990565b9650614618565b6145ca8482613661565b93506145d68583613336565b94506145f86145ec6126f761458489600a615ab9565b61459686612710611e55565b61460b866145846126f7818b600a615ab9565b6146159190615990565b96505b5050505050935093915050565b80516060906000816001600160401b0381111561464457614644615032565b60405190808252806020026020018201604052801561466d578160200160208202803683370190505b5090506000825b600181106146ea5785614688600183615ac5565b8151811061469857614698615c14565b60200260200101518383815181106146b2576146b2615c14565b6001600160a01b0390921660209283029190910190910152816146d481615c2a565b92505080806146e290615f5b565b915050614674565b5090949350505050565b600080825160410361472a5760208301516040840151606085015160001a61471e87828585614edc565b94509450505050614732565b506000905060025b9250929050565b600081600481111561474d5761474d615f72565b036147555750565b600181600481111561476957614769615f72565b036147b65760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161084c565b60028160048111156147ca576147ca615f72565b036148175760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161084c565b600381600481111561482b5761482b615f72565b03610bb65760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161084c565b6001600160a01b038085166000908152600760208181526040808420888616855282528084208151610180810183528154871681526001820154938101939093526002810154909516908201526003840154606082015260048401546080820152600584015460a0820152600684015460c08201529083015460e082015260088301546101008201526009830154610120820152600a830154610140820152600b909201546101608301529081908190818061493f8a8a6109cf565b509150915061494e8782610801565b60408085015190516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015614998573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906149bc9190615c43565b1015614a215760405162461bcd60e51b815260206004820152602e60248201527f546f6b656e4d61726b65743a3a52657761726420546f6b656e20496e7375666660448201526d696369656e742042616c616e636560901b606482015260840161084c565b6000614a2d8883610801565b1115614a9457614a4b836040015133614a468a85610801565b612484565b7f6b053894d8fdbdcc936dd753e21291f0c48e68ef12306eb39a63a374147ba4bd338460400151614a7c8a85610801565b604051614a8b93929190615e19565b60405180910390a15b896001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015614ad2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614af691906159b2565b60ff169350614b0f614b0985600a615ab9565b8961212d565b94506000614b1d8884610801565b9050614b298882613336565b9650505050509450945094915050565b60008083600081518110614b4f57614b4f615c14565b6020026020010151905060008460018651614b6a9190615ac5565b81518110614b7a57614b7a615c14565b6020026020010151905060006040518060400160405280614b9a8561279a565b8152602001846001600160a01b0316815250905060006040518060400160405280614bc48561279a565b8152602001846001600160a01b03168152509050614be2888861212d565b94506000614bf142600a615978565b9050614c0383838b898c600087612905565b614c0e848888612484565b50505050509392505050565b6000806000841315614ea0576001600160a01b038681166000908152600760209081526040808320938916835292905220600a810154600b9091015484614c7257614c6482615afb565b9150614c6f81615afb565b90505b6000614c7d83612468565b1315614d2857614c8d8683615b17565b935060008212614cf8576001600160a01b038089166000908152600760209081526040808320938b1683529290522060060154841315614cf3576001600160a01b038089166000908152600760209081526040808320938b168352929052206006015493505b614d54565b6001600160a01b038089166000908152600760209081526040808320938b16835292905220600101549350614d54565b6001600160a01b038089166000908152600760209081526040808320938b168352929052206001015493505b6000614d5f82612468565b1315614e6d576001600160a01b038089166000908152600760209081526040808320938b1683529290522060030154614d988783615b17565b614da29190615b9c565b925060008112614e0d576001600160a01b038089166000908152600760209081526040808320938b1683529290522060080154831315614e08576001600160a01b038089166000908152600760209081526040808320938b168352929052206008015492505b614e99565b6001600160a01b038089166000908152600760208181526040808420948c1684529390529190200154831215614e08576001600160a01b038089166000908152600760208181526040808420948c16845293905291902001549250614e99565b6001600160a01b038089166000908152600760209081526040808320938b168352929052206003015492505b5050614ed3565b50506001600160a01b03848116600090815260076020908152604080832093871683529290522060018101546003909101545b94509492505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115614f135750600090506003614ed3565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614f67573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116614f9057600060019250925050614ed3565b9660009650945050505050565b60405180610180016040528060006001600160a01b031681526020016000815260200160006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6000806040838503121561502357600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b038111828210171561506b5761506b615032565b60405290565b604051601f8201601f191681016001600160401b038111828210171561509957615099615032565b604052919050565b600060a082840312156150b357600080fd5b60405160a081018181106001600160401b03821117156150d5576150d5615032565b806040525082358152602083013560208201526040830135604082015260608301356060820152608083013560808201528091505092915050565b6001600160a01b0381168114610bb657600080fd5b803561513081615110565b919050565b6000806040838503121561514857600080fd5b823561515381615110565b9150602083013561516381615110565b809150509250929050565b60008060006060848603121561518357600080fd5b833561518e81615110565b9250602084013561519e81615110565b929592945050506040919091013590565b600082601f8301126151c057600080fd5b81356001600160401b038111156151d9576151d9615032565b6151ec601f8201601f1916602001615071565b81815284602083860101111561520157600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a0868803121561523657600080fd5b85359450602086013561524881615110565b9350604086013592506060860135915060808601356001600160401b0381111561527157600080fd5b61527d888289016151af565b9150509295509295909350565b60006001600160401b038211156152a3576152a3615032565b5060051b60200190565b600082601f8301126152be57600080fd5b813560206152d36152ce8361528a565b615071565b82815260059290921b840181019181810190868411156152f257600080fd5b8286015b8481101561531657803561530981615110565b83529183019183016152f6565b509695505050505050565b6000806000806080858703121561533757600080fd5b8435935060208501356001600160401b0381111561535457600080fd5b615360878288016152ad565b949794965050505060408301359260600135919050565b60006020828403121561538957600080fd5b81356001600160401b0381111561539f57600080fd5b6153ab848285016151af565b949350505050565b6000602082840312156153c557600080fd5b813561081b81615110565b6000608082840312156153e257600080fd5b604051608081018181106001600160401b038211171561540457615404615032565b604052905080823561541581615110565b808252506020830135602082015260408301356040820152606083013561543b81615110565b6060919091015292915050565b60008060008084860361024081121561546057600080fd5b853561546b81615110565b9450602086013561547b81615110565b9350610180603f19820181131561549157600080fd5b615499615048565b91506154a760408801615125565b8252606087013560208301526154bf60808801615125565b604083015260a0870135606083015260c0870135608083015260e087013560a08301526101008088013560c08401526101208089013560e0850152610140808a0135838601526101609250828a013582860152838a01358186015250506101a08801358184015250508092505061553a866101c087016153d0565b905092959194509250565b60008060006060848603121561555a57600080fd5b833561556581615110565b9250602084013561557581615110565b915060408401356001600160401b0381111561559057600080fd5b61559c868287016152ad565b9150509250925092565b80516001600160a01b031682526020810151602083015260408101516155d760408401826001600160a01b03169052565b50606081810151908301526080808201519083015260a0808201519083015260c0808201519083015260e0808201519083015261010080820151908301526101208082015190830152610140808201519083015261016090810151910152565b6101c0810161564682866155a6565b6101808201939093526101a00152919050565b600082601f83011261566a57600080fd5b8135602061567a6152ce8361528a565b82815260059290921b8401810191818101908684111561569957600080fd5b8286015b84811015615316578035835291830191830161569d565b600080600080608085870312156156ca57600080fd5b84356001600160401b03808211156156e157600080fd5b6156ed88838901615659565b9550602087013591508082111561570357600080fd5b61570f888389016152ad565b9450604087013591508082111561572557600080fd5b615731888389016152ad565b9350606087013591508082111561574757600080fd5b5061575487828801615659565b91505092959194509250565b60008060008060008060c0878903121561577957600080fd5b86356001600160401b0381111561578f57600080fd5b61579b89828a016152ad565b9960208901359950604089013598606081013598506080810135975060a0013595509350505050565b60008060008060008060c087890312156157dd57600080fd5b86356157e881615110565b955060208701356157f881615110565b945060408701356001600160401b0381111561581357600080fd5b61581f89828a016152ad565b945050606087013592506080870135915060a087013561583e81615110565b809150509295509295509295565b610280810161585b82856155a6565b825161018083015260208301516101a083015260408301516101c083015260608301516101e0830152608083015161020083015260a083015161022083015260c0830151151561024083015260e08301516102608301529392505050565b600080600080608085870312156158cf57600080fd5b84356158da81615110565b935060208501356158ea81615110565b925060408501356001600160401b0381111561590557600080fd5b615911878288016152ad565b925050606085013561592281615110565b939692955090935050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000821982111561598b5761598b615962565b500190565b6000826159ad57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156159c457600080fd5b815160ff8116811461081b57600080fd5b600181815b80851115615a105781600019048211156159f6576159f6615962565b80851615615a0357918102915b93841c93908002906159da565b509250929050565b600082615a2757506001611e61565b81615a3457506000611e61565b8160018114615a4a5760028114615a5457615a70565b6001915050611e61565b60ff841115615a6557615a65615962565b50506001821b611e61565b5060208310610133831016604e8410600b8410161715615a93575081810a611e61565b615a9d83836159d5565b8060001904821115615ab157615ab1615962565b029392505050565b600061081b8383615a18565b600082821015615ad757615ad7615962565b500390565b6000816000190483118215151615615af657615af6615962565b500290565b6000600160ff1b8201615b1057615b10615962565b5060000390565b60006001600160ff1b0381841382841380821686840486111615615b3d57615b3d615962565b600160ff1b6000871282811687830589121615615b5c57615b5c615962565b60008712925087820587128484161615615b7857615b78615962565b87850587128184161615615b8e57615b8e615962565b505050929093029392505050565b600080821280156001600160ff1b0384900385131615615bbe57615bbe615962565b600160ff1b8390038412811615615bd757615bd7615962565b50500190565b60208082526017908201527f546f6b656e4d61726b65743a3a206c656e67746820213d000000000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600060018201615c3c57615c3c615962565b5060010190565b600060208284031215615c5557600080fd5b5051919050565b60005b83811015615c77578181015183820152602001615c5f565b83811115615c86576000848401525b50505050565b60008251615c9e818460208701615c5c565b9190910192915050565b600060018060a01b03808916835287602084015280871660408401525084606083015283608083015260c060a083015282518060c0840152615cf18160e0850160208701615c5c565b601f01601f19169190910160e001979650505050505050565b600081518084526020808501945080840160005b83811015615d435781516001600160a01b031687529582019590820190600101615d1e565b509495945050505050565b8281526040602082015260006153ab6040830184615d0a565b60006020808385031215615d7a57600080fd5b82516001600160401b03811115615d9057600080fd5b8301601f81018513615da157600080fd5b8051615daf6152ce8261528a565b81815260059190911b82018301908381019087831115615dce57600080fd5b928401925b82841015615dec57835182529284019290840190615dd3565b979650505050505050565b600060208284031215615e0957600080fd5b8151801515811461081b57600080fd5b6001600160a01b039384168152919092166020820152604081019190915260600190565b85815284602082015260a060408201526000615e5c60a0830186615d0a565b6001600160a01b0394909416606083015250608001529392505050565b848152608060208201526000615e926080830186615d0a565b6001600160a01b03949094166040830152506060015292915050565b6001600160a01b0394851681529290931660208301526040820152606081019190915260800190565b600060208284031215615ee957600080fd5b815161081b81615110565b80516001600160701b038116811461513057600080fd5b600080600060608486031215615f2057600080fd5b615f2984615ef4565b9250615f3760208501615ef4565b9150604084015163ffffffff81168114615f5057600080fd5b809150509250925092565b600081615f6a57615f6a615962565b506000190190565b634e487b7160e01b600052602160045260246000fdfea2646970667358221220015bbe399e0d74eed445a58b8e529a27c557072d64f8e8f4a0d3835158a21a0f64736f6c634300080e0033",
|
|
1447
|
-
"deployedBytecode": "0x6080604052600436106101ae5760003560e01c8063715018a6116100eb578063aa5d448f1161008f578063eed8386c11610061578063eed8386c14610730578063f2fde38b1461076d578063f98486501461078d578063fe8691b4146107ad57005b8063aa5d448f146106a2578063cb17b194146106c2578063d738eba1146106f0578063d96661ef1461071057005b80638da5cb5b116100c85780638da5cb5b146105de5780639065a9af146105fc5780639bad44e81461066f578063a6a3694a1461068f57005b8063715018a61461057a5780637aaa9b021461058f57806381f3fdc3146105af57005b8063238ac9331161015257806334e3f92d1161012f57806334e3f92d146104875780633fc8cef3146104d257806340216a83146104f25780636f151a381461055a57005b8063238ac933146103365780632926e5de1461036e5780632bd2c18d1461046757005b8063092e469f1161018b578063092e469f146102915780630d83b1e4146102e05780631b153401146102f65780631f8c24de1461031657005b8063016eb8a8146101b7578063089aa047146101ea578063089afeae1461020a57005b366101b557005b005b3480156101c357600080fd5b506101d76101d2366004615010565b610801565b6040519081526020015b60405180910390f35b3480156101f657600080fd5b506101b56102053660046150a1565b610822565b34801561021657600080fd5b50610262610225366004615135565b600860209081526000928352604080842090915290825290208054600182015460028301546003909301546001600160a01b039283169391921684565b604080516001600160a01b039586168152602081019490945283019190915290911660608201526080016101e1565b34801561029d57600080fd5b50600d54600e54600f546010546011546102b8949392919085565b604080519586526020860194909452928401919091526060830152608082015260a0016101e1565b3480156102ec57600080fd5b506101d760125481565b34801561030257600080fd5b506101b561031136600461516e565b61087b565b34801561032257600080fd5b506101b561033136600461521e565b6108fa565b34801561034257600080fd5b50600254610356906001600160a01b031681565b6040516001600160a01b0390911681526020016101e1565b34801561037a57600080fd5b506103fd610389366004615135565b6007602081815260009384526040808520909152918352912080546001820154600283015460038401546004850154600586015460068701549787015460088801546009890154600a8a0154600b909a01546001600160a01b03998a169b989a99909716989597949693959293919290918c565b604080516001600160a01b039d8e168152602081019c909c5299909b16988a01989098526060890196909652608088019490945260a087019290925260c086015260e0850152610100840152610120830152610140820152610160810191909152610180016101e1565b34801561047357600080fd5b506101d7610482366004615321565b61097a565b34801561049357600080fd5b506104c26104a2366004615377565b805160208183018101805160038252928201919093012091525460ff1681565b60405190151581526020016101e1565b3480156104de57600080fd5b50600454610356906001600160a01b031681565b3480156104fe57600080fd5b5061051261050d366004615135565b6109cf565b6040805193845260208085019390935281518482015291810151606080850191909152918101516080808501919091529181015160a0840152015160c082015260e0016101e1565b34801561056657600080fd5b506101b56105753660046153b3565b610b83565b34801561058657600080fd5b506101b5610bb9565b34801561059b57600080fd5b506101b56105aa366004615448565b610bef565b3480156105bb57600080fd5b506105cf6105ca366004615545565b610e63565b6040516101e193929190615637565b3480156105ea57600080fd5b506000546001600160a01b0316610356565b34801561060857600080fd5b5061064f61061736600461516e565b600960209081526000938452604080852082529284528284209052825290208054600182015460028301546003909301549192909184565b6040805194855260208501939093529183015260608201526080016101e1565b34801561067b57600080fd5b506101b561068a3660046156b4565b6111ac565b6101b561069d366004615760565b61136e565b3480156106ae57600080fd5b506101b56106bd3660046153b3565b6116b7565b3480156106ce57600080fd5b506106e26106dd3660046157c4565b6116ea565b6040516101e192919061584c565b3480156106fc57600080fd5b506101b561070b366004615010565b611ab6565b34801561071c57600080fd5b50600554610356906001600160a01b031681565b34801561073c57600080fd5b5061075061074b366004615135565b611aeb565b604080519283526001600160a01b039091166020830152016101e1565b34801561077957600080fd5b506101b56107883660046153b3565b611c7a565b34801561079957600080fd5b506107506107a83660046158b9565b611d12565b3480156107b957600080fd5b506107ec6107c8366004615135565b60066020908152600092835260408084209091529082529020805460019091015482565b604080519283526020830191909152016101e1565b60125460009061081b906108158585611e55565b90611e67565b9392505050565b6000546001600160a01b031633146108555760405162461bcd60e51b815260040161084c9061592d565b60405180910390fd5b8051600d556020810151600e556040810151600f55606081015160105560800151601155565b6000546001600160a01b031633146108a55760405162461bcd60e51b815260040161084c9061592d565b6108b0838383611e73565b6108f55760405162461bcd60e51b8152602060048201526016602482015275151bdad95b93585c9ad95d0e8e9cd95b990819985a5b60521b604482015260640161084c565b505050565b610902611eaa565b61090f8585858585611f03565b61091b858585846120be565b81421061096a5760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e4d61726b65743a3a4f726465722045787069726174696f6e000000604482015260640161084c565b61097360018055565b5050505050565b600080808481036109a75761098f878761212d565b915061099d8483600061224a565b91508192506109c5565b6109b18787612292565b90506109bf8482600161224a565b90508092505b5050949350505050565b600080610a046040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6000600a54600b5442610a179190615978565b610a219190615990565b6001600160a01b0380881660008181526007602081815260408084208c87168086529083528185208251610180810184528154891681526001820154818601526002820154909816888401526003810154606089015260048101546080890152600581015460a0890152600681015460c08901529384015460e08801526008840154610100880152600980850154610120890152600a850154610140890152600b909401546101608801529484529181528183209383529283528082208583529092529081205492935090919003610b06578060200151945080606001519350610b44565b6001600160a01b038781166000908152600960209081526040808320938a168352928152828220858352905220600281015460039091015490955093505b50506040805160a081018252600d548152600e546020820152600f54918101919091526010546060820152601154608082015292959194509192509050565b6000546001600160a01b03163314610bad5760405162461bcd60e51b815260040161084c9061592d565b610bb681612394565b50565b6000546001600160a01b03163314610be35760405162461bcd60e51b815260040161084c9061592d565b610bed6000612418565b565b6000546001600160a01b03163314610c195760405162461bcd60e51b815260040161084c9061592d565b600082606001511215610c6e5760405162461bcd60e51b815260206004820152601860248201527f546f6b656e4d61726b65743a3a726577617264203e3d20300000000000000000604482015260640161084c565b600082602001511215610cc35760405162461bcd60e51b815260206004820152601960248201527f546f6b656e4d61726b65743a3a66656552617465203e3d203000000000000000604482015260640161084c565b836001600160a01b031681606001516001600160a01b03161480610cfc5750826001600160a01b031681606001516001600160a01b0316145b610d485760405162461bcd60e51b815260206004820152601c60248201527f546f6b656e4d61726b65743a3a496c6c6567616c2070726963696e6700000000604482015260640161084c565b6001600160a01b03938416600081815260076020818152604080842097891680855297825280842087518154908b166001600160a01b031991821617825583890151600180840191909155838a015160028085018054928f16928516929092179091556060808c015160038087019190915560808d0151600487015560a08d0151600587015560c08d0151600687015560e08d0151988601989098556101008c01516008808701919091556101208d015160098701556101408d0151600a870155610160909c0151600b909501949094559787529884528286209986529883529381902086518154908b16908a1617815591860151968201969096559484015192850192909255919091015191018054919093169116179055565b610e6b614f9d565b506001600160a01b03808416600081815260076020818152604080842088871685528252808420815161018081018352815488168152600182015481850152600282015490971687830152600381015460608801526004808201546080890152600582015460a0890152600682015460c08901529381015460e088015260088101546101008801526009810154610120880152600a810154610140880152600b0154610160870152805163313ce56760e01b8152905193948594909363313ce5679383820193909291908290030181865afa158015610f4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7291906159b2565b60ff169150610f8b610f8583600a615ab9565b8561212d565b90506000808285608001511115610fdd576101208501516080860151601254610fb48683615ac5565b610fbe9190615adc565b610fc89190615990565b610fd29190615990565b905060009150611026565b84608001518311156110265761012085015160808601516012546110018287615ac5565b61100b9190615adc565b6110159190615990565b61101f9190615990565b9050600191505b60008113156111a157608085018390526101408501516101608601518361105e5761105082615afb565b915061105b81615afb565b90505b600082126110a15760208701516110758484615b17565b61107f9190615b9c565b6020880181905260c0880151121561109c5760c087015160208801525b6110fd565b86602001518760a00151846110b585612468565b6110bf9190615b17565b6110c99190615b9c565b13156110de5760a087015160208801526110fd565b60208701516110ed8484615b17565b6110f79190615b9c565b60208801525b600081126111425760608701516111148483615b17565b61111e9190615b9c565b60608801819052610100880151121561113d5761010087015160608801525b61119e565b86606001518760e001518461115684612468565b6111609190615b17565b61116a9190615b9c565b131561117f5760e0870151606088015261119e565b606087015161118e8483615b17565b6111989190615b9c565b60608801525b50505b505093509350939050565b6000546001600160a01b031633146111d65760405162461bcd60e51b815260040161084c9061592d565b82518451146111f75760405162461bcd60e51b815260040161084c90615bdd565b81518351146112185760405162461bcd60e51b815260040161084c90615bdd565b80518251146112395760405162461bcd60e51b815260040161084c90615bdd565b60005b84518110156109735761129b83828151811061125a5761125a615c14565b602002602001015185838151811061127457611274615c14565b602002602001015184848151811061128e5761128e615c14565b6020026020010151612484565b7fd854fbf5db341a7d003a14ee8ed089e806c8731c6aca5fb4b89095d0a230ccd08582815181106112ce576112ce615c14565b60200260200101518583815181106112e8576112e8615c14565b602002602001015185848151811061130257611302615c14565b602002602001015185858151811061131c5761131c615c14565b602002602001015160405161135494939291909384526001600160a01b03928316602085015291166040830152606082015260800190565b60405180910390a18061136681615c2a565b91505061123c565b611376611eaa565b3332146113c55760405162461bcd60e51b815260206004820152601b60248201527f546f6b656e4d61726b65743a3a496c6c6567616c2063616c6c65720000000000604482015260640161084c565b333b156114205760405162461bcd60e51b8152602060048201526024808201527f546f6b656e4d61726b65743a3a50726f686962697420636f6e74726163742063604482015263616c6c7360e01b606482015260840161084c565b8260000361144757611432858761212d565b93506114408185600061224a565b9350611462565b6114518487612292565b945061145f8186600161224a565b94505b60008660008151811061147757611477615c14565b60200260200101519050600087600189516114929190615ac5565b815181106114a2576114a2615c14565b6020908102919091018101513360009081526006835260408082206001600160a01b03871683529093529182206001018054919350899290916114e6908490615978565b909155506114f8905082828a8a6125ae565b6000604051806040016040528061150e8561279a565b8152602001846001600160a01b03168152509050600060405180604001604052806115388561279a565b81526001600160a01b0385166020909101528251909150600303611567576115628433308c6127d3565b6115c5565b8834146115c55760405162461bcd60e51b815260206004820152602660248201527f546f6b656e4d61726b65743a3a696e70757420657468206973206e6f7420616360448201526563757261746560d01b606482015260840161084c565b6115d482828b8b8e8c8c612905565b60006115e185858b612b49565b905060006115f186868e8d612cf5565b90506115fe86868e612e52565b7f72d976c83fc087ff662ebb498c75e02af61aa6678458ea09336773ce6b767d3b3387878e868660000151876020015188604001518960600151604051611698999897969594939291906001600160a01b03998a16815297891660208901529590971660408701526060860193909352608085019190915260a084015260c083015291151560e08201526101008101919091526101200190565b60405180910390a15050505050506116af60018055565b505050505050565b6000546001600160a01b031633146116e15760405162461bcd60e51b815260040161084c9061592d565b610bb681613123565b6116f2614f9d565b61173c604051806101000160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600015158152602001600081525090565b60008061174c8a8a8a8a8a613224565b60a08801929092526080870183905292965091935090915061176f908790613336565b9550600061177e83600a615ab9565b82898660a001518e6001600160a01b03166370a082318b6040518263ffffffff1660e01b81526004016117c091906001600160a01b0391909116815260200190565b602060405180830381865afa1580156117dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118019190615c43565b61180b9190615978565b6118159190615ac5565b61181f9190615adc565b6118299190615990565b6001600160a01b038781166000908152600660209081526040808320938f16835292905290812060018101549054929350918390611868908b90615978565b6118729190615978565b905080821061189657600060c087015261188c8183615ac5565b60e08701526118ad565b600160c08701526118a78282615ac5565b60e08701525b6000600860008f6001600160a01b03166001600160a01b0316815260200190815260200160002060008e6001600160a01b03166001600160a01b031681526020019081526020016000206040518060800160405290816000820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200160018201548152602001600282015481526020016003820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152505090508c6001600160a01b031681606001516001600160a01b031603611a9d578660c0015115611a4a5760e0870151601154118015906119b7575060008760e00151115b15611a3d57898760e0015110611a12576119d58a8260400151610801565b604088015260208101516119ea908b90610801565b8088526040880151611a089190611a02908d90613336565b90613336565b6060880152611aa5565b611a248760e001518260400151610801565b604088015260e087015160208201516119ea9190610801565b606087018a90525b611aa5565b611a588a8260400151610801565b60408801819052611a6a908b90613336565b606088015260e087015160105411801590611a89575060008760e00151115b15611a455760e08701516020880152611aa5565b606087018a90525b505050505050965096945050505050565b6000546001600160a01b03163314611ae05760405162461bcd60e51b815260040161084c9061592d565b600a91909155600b55565b6000806000600a54600b5442611b019190615978565b611b0b9190615990565b6001600160a01b0380871660008181526009602081815260408084208b871680865290835281852088865283528185208251608080820185528254825260018084015483880152600280850154848801526003948501546060808601919091529a8a526007808952878b20968b529588529886902086516101808101885281548d1681529181015497820197909752978601549099169387019390935283015495850195909552600482015495840195909552600581015460a0840152600681015460c08401529283015460e08301526008830154610100830152820154610120820152600a820154610140820152600b9091015461016082015281519293509091158015611c1a5750600c54155b15611c2b5780608001519450611c43565b8151600003611c3e57600c549450611c43565b815194505b505050506001600160a01b039283166000908152600860209081526040808320948616835293905291909120600301549092911690565b6000546001600160a01b03163314611ca45760405162461bcd60e51b815260040161084c9061592d565b6001600160a01b038116611d095760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161084c565b610bb681612418565b6001600160a01b038085166000908152600860209081526040808320878516845290915281206003015490911681611d4b878787613342565b90506000866001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611db191906159b2565b6040516370a0823160e01b81526001600160a01b03878116600483015260ff9290921692506000918916906370a0823190602401602060405180830381865afa158015611e02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e269190615c43565b9050611e3382600a615ab9565b611e3d8483615adc565b611e479190615990565b945050505094509492505050565b600061081b8284615adc565b92915050565b600061081b8284615990565b60006001600160a01b038416611e9557611e8d8383613524565b50600161081b565b611ea0848484612484565b5060019392505050565b600260015403611efc5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161084c565b6002600155565b600381604051611f139190615c8c565b9081526040519081900360200190205460ff1615611f735760405162461bcd60e51b815260206004820181905260248201527f546f6b656e4d61726b65743a3a63657274696669636174652065787069726564604482015260640161084c565b60408051466020808301919091528183018890526bffffffffffffffffffffffff1933606090811b82168185015288901b1660748301526088820186905260a88083018690528351808403909101815260c8830184528051908201207f19457468657265756d205369676e6564204d6573736167653a0a33320000000060e884015261010480840191909152835180840390910181526101249092019092528051910120600090612024908361363d565b6002549091506001600160a01b038083169116146120845760405162461bcd60e51b815260206004820181905260248201527f546f6b656e4d61726b65743a3a696e76616c6964206365727469666963617465604482015260640161084c565b60016003836040516120969190615c8c565b908152604051908190036020019020805491151560ff19909216919091179055505050505050565b6001600160a01b0383166120db576120d63383613524565b6120e6565b6120e6833384612484565b7f620ad9fc50d4bd40a79cb189cc547554eb4619554627f5ff4b98002f3269211d33858585428660405161211f96959493929190615ca8565b60405180910390a150505050565b60055460405163d06ca61f60e01b815260009182916001600160a01b039091169063d06ca61f906121649087908790600401615d4e565b600060405180830381865afa158015612181573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526121a99190810190615d67565b9050806121c16001835161333690919063ffffffff16565b815181106121d1576121d1615c14565b60200260200101519150600082116122435760405162461bcd60e51b815260206004820152602f60248201527f546f6b656e4d61726b65743a3a6f7574416d6f756e742073686f756c6420626560448201526e02067726561746572207468616e203608c1b606482015260840161084c565b5092915050565b600060018215612268576012546122619086613661565b9050612278565b6012546122759086613336565b90505b601254612289906108158684611e55565b95945050505050565b6005546040516307c0329d60e21b815260009182916001600160a01b0390911690631f00ca74906122c99087908790600401615d4e565b600060405180830381865afa1580156122e6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261230e9190810190615d67565b90508060008151811061232357612323615c14565b60200260200101519150600082116122435760405162461bcd60e51b815260206004820152602e60248201527f546f6b656e4d61726b65743a3a696e416d6f756e742073686f756c642062652060448201526d067726561746572207468616e20360941b606482015260840161084c565b6001600160a01b0381166123f65760405162461bcd60e51b8152602060048201526024808201527f546f6b656e4d61726b65743a3a696e76616c6964207369676e696e67206164646044820152637265737360e01b606482015260840161084c565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000808212156124805761247b82615afb565b611e61565b5090565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291516000928392908716916124e09190615c8c565b6000604051808303816000865af19150503d806000811461251d576040519150601f19603f3d011682016040523d82523d6000602084013e612522565b606091505b509150915081801561254c57508051158061254c57508080602001905181019061254c9190615df7565b6109735760405162461bcd60e51b815260206004820152602d60248201527f5472616e7366657248656c7065723a3a736166655472616e736665723a20747260448201526c185b9cd9995c8819985a5b1959609a1b606482015260840161084c565b6001600160a01b0380851660008181526008602090815260408083208886168452825291829020825160808101845281548616815260018201549281019290925260028101549282019290925260039091015490921660608301819052900361097357600061261d86866109cf565b92505050600061262f87878733611d12565b50905083826000015111156126ac5760405162461bcd60e51b815260206004820152603860248201527f546f6b656e4d61726b65743a3a4c657373207468616e20746865207175616e7460448201527f697479206f6620612073696e676c652070757263686173650000000000000000606482015260840161084c565b83826020015110156127265760405162461bcd60e51b815260206004820152603b60248201527f546f6b656e4d61726b65743a3a47726561746572207468616e2074686520717560448201527f616e74697479206f6620612073696e676c652070757263686173650000000000606482015260840161084c565b6127308482615978565b826040015110156127915760405162461bcd60e51b815260206004820152602560248201527f546f6b656e4d61726b65743a3a457863656564696e6720706f736974696f6e206044820152641b1a5b5a5d60da1b606482015260840161084c565b50505050505050565b600060036001600160a01b0383166127b457506001611e61565b6004546001600160a01b0390811690841603611e615750600292915050565b600080856001600160a01b03166323b872dd8686866040516024016127fa93929190615e19565b6040516020818303038152906040529060e01b6020820180516001600160e01b0383818316178352505050506040516128339190615c8c565b6000604051808303816000865af19150503d8060008114612870576040519150601f19603f3d011682016040523d82523d6000602084013e612875565b606091505b509150915081801561289f57508051158061289f57508080602001905181019061289f9190615df7565b6116af5760405162461bcd60e51b815260206004820152603160248201527f5472616e7366657248656c7065723a3a7472616e7366657246726f6d3a207472604482015270185b9cd9995c919c9bdb4819985a5b1959607a1b606482015260840161084c565b865160030361292a57602087015160055461292a91906001600160a01b03168761366d565b8651600314801561293c575085516003145b8015612946575081155b156129d0576005546040516338ed173960e01b81526001600160a01b03909116906338ed1739906129839088908890889030908890600401615e3d565b6000604051808303816000875af11580156129a2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526129ca9190810190615d67565b50612791565b865160031480156129e2575085516003145b80156129ee5750816001145b15612a2b57600554604051634401edf760e11b81526001600160a01b0390911690638803dbee906129839087908990889030908890600401615e3d565b86516003148015612a485750855160021480612a48575085516001145b8015612a545750816001145b15612a9157600554604051632512eca560e11b81526001600160a01b0390911690634a25d94a906129839087908990889030908890600401615e3d565b865160021480612aa2575086516001145b8015612aaf575085516003145b8015612abb5750816001145b156127915760055460405163fb3bdb4160e01b81526001600160a01b039091169063fb3bdb41908790612af8908890889030908890600401615e79565b60006040518083038185885af1158015612b16573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f19168201604052612b3f9190810190615d67565b5050505050505050565b6001600160a01b038084166000908152600760208181526040808420878616855282528084208151610180810183528154871681526001820154938101939093526002810154909516908201526003840154606082015260048401546080820152600584015460a0820152600684015460c08201529083015460e082015260088301546101008201526009830154610120820152600a830154610140820152600b909201546101608301529081612c0086866109cf565b50509050612c0e8482610801565b925060006040518060400160405280612c268861279a565b81526001600160a01b0388166020909101528051909150600303612cce5782516001600160a01b03163014612cc957612c6486846000015186612484565b82516001600160a01b03161580612c85575082516001600160a01b03166001145b15612cc9577f5d624aa9c148153ab3446c1b154f660ee7701e549fe9b62dab7171b1c80e6fa23387866000604051612cc09493929190615eae565b60405180910390a15b612ceb565b82516001600160a01b03163014612ceb578251612ceb9085613795565b5050509392505050565b612d2260405180608001604052806000815260200160008152602001600015158152602001600081525090565b6001600160a01b038086166000908152600860209081526040808320888516845282529182902082516080810184528154851681526001820154928101929092526002810154928201929092526003909101549091166060820152612d898686868661386f565b60608086019290925291151560408501528201519093506001600160a01b03808716911603612df457816040015115612dd957612dcd868686856060015187613998565b60208401528252612dfc565b612dea868686856060015187613d3c565b6020830152612dfc565b602082018390525b612e0b85338460200151612484565b6020808301513360009081526006835260408082206001600160a01b038a168352909352918220805491929091612e43908490615978565b90915550919695505050505050565b6000600a54600b5442612e659190615978565b612e6f9190615990565b6001600160a01b0380861660008181526009602081815260408084208a871680865290835281852088865283528185208251608080820185528254825260018084015483880152600280850154848801526003948501546060808601919091529a8a526007808952878b20968b529588529886902086516101808101885281548d1681529181015497820197909752978601549099169387019390935283015495850195909552600482015495840195909552600581015460a0840152600681015460c08401529283015460e08301526008830154610100830152820154610120820152600a820154610140820152600b9091015461016082015281519293509091158015612f7e5750600c54155b15612fde576080810180516001600160a01b038089166000818152600960208181526040808420958d168085529582528084208b855282528084209690965595519382528552838120918152908452828120878252909352912055613038565b815160000361303857600c546001600160a01b038088166000818152600960208181526040808420958c168085529582528084208a8552825280842087905594835290815283822092825291825282812087825290915220555b6000613045878787613342565b6001600160a01b038089166000908152600960209081526040808320938b168352928152828220888352905220549091506130838888848489613f23565b50506001600160a01b038881166000818152600960208181526040808420958d168085529582528084208b855282528084206001908101899055958452918152818320938352928352808220898352835290819020909201849055600c84905581518781529081018490527fb9362b96e28efbb7a7e63bb4a97faf9924ec0394635feff8588a6ae2a5f784fe910160405180910390a15050505050505050565b6001600160a01b0381166131845760405162461bcd60e51b815260206004820152602260248201527f546f6b656e4d61726b65743a3a696e76616c696420726f757465206164647265604482015261737360f01b606482015260840161084c565b600580546001600160a01b0319166001600160a01b038316908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa1580156131dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132019190615ed7565b600480546001600160a01b0319166001600160a01b039290921691909117905550565b61322c614f9d565b506001600160a01b038086166000908152600760208181526040808420898616855282528084208151610180810183528154871681526001820154938101939093526002810154909516908201526003840154606082015260048401546080820152600584015460a0820152600684015460c08201529083015460e082015260088301546101008201526009830154610120820152600a830154610140820152600b909201546101608301528080806132e688888861419a565b925090506000806132f78c8c6109cf565b50602089018290526060890181905290925090506133158883610801565b9550613325888860600151610801565b945050509550955095509550959050565b600061081b8284615ac5565b6001600160a01b03808416600081815260086020908152604080832087861684528252808320815160808101835281548716815260018201549381019390935260028101549183019190915260030154909316606084018190529092918391900361343157846001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133e5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061340991906159b2565b60ff16905061342a61341c82600a615ab9565b61342586614625565b61212d565b925061351b565b81606001516001600160a01b0316856001600160a01b0316036134c357856001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561348c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134b091906159b2565b60ff16905061342a610f8582600a615ab9565b60405162461bcd60e51b815260206004820152602760248201527f546f6b656e4d61726b65743a3a496c6c6567616c2076616c756174696f6e2063604482015266757272656e637960c81b606482015260840161084c565b50509392505050565b804710156135745760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161084c565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146135c1576040519150601f19603f3d011682016040523d82523d6000602084013e6135c6565b606091505b50509050806108f55760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161084c565b600080600061364c85856146f4565b9150915061365981614739565b509392505050565b600061081b8284615978565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b17905291516000928392908716916136c99190615c8c565b6000604051808303816000865af19150503d8060008114613706576040519150601f19603f3d011682016040523d82523d6000602084013e61370b565b606091505b50915091508180156137355750805115806137355750808060200190518101906137359190615df7565b6109735760405162461bcd60e51b815260206004820152602b60248201527f5472616e7366657248656c7065723a3a73616665417070726f76653a2061707060448201526a1c9bdd994819985a5b195960aa1b606482015260840161084c565b604080516000808252602082019092526001600160a01b0384169083906040516137bf9190615c8c565b60006040518083038185875af1925050503d80600081146137fc576040519150601f19603f3d011682016040523d82523d6000602084013e613801565b606091505b50509050806108f55760405162461bcd60e51b815260206004820152603460248201527f5472616e7366657248656c7065723a3a736166655472616e736665724554483a60448201527308115512081d1c985b9cd9995c8819985a5b195960621b606482015260840161084c565b600080600080600061388389898989614883565b91945092509050600061389782600a615ab9565b6040516370a0823160e01b815233600482015284906001600160a01b038d16906370a0823190602401602060405180830381865afa1580156138dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139019190615c43565b61390b9190615adc565b6139159190615990565b3360009081526006602090815260408083206001600160a01b038e168452909152812060018101549054929350918390613950908890615978565b61395a9190615978565b905080821061397857600097506139718183615ac5565b9650613989565b600197506139868282615ac5565b96505b50505050509450945094915050565b6001600160a01b0380861660009081526008602090815260408083208885168452825280832081516080810183528154861681526001820154938101939093526002810154918301919091526003015490921660608301526011549091829182908610801590613a085750600086115b15613c6e57848610613b5057613a35613a25868460400151610801565b613a2e89614625565b6001614b39565b90507f5d624aa9c148153ab3446c1b154f660ee7701e549fe9b62dab7171b1c80e6fa2338a836001604051613a6d9493929190615eae565b60405180910390a1613a83858360200151610801565b9350613a9488836000015186612484565b613aa2858360400151610801565b613aac8587615ac5565b613ab69190615ac5565b3360009081526006602090815260408083206001600160a01b038d16845290915281206001018054909190613aec908490615978565b90915550506040517f88dcaca629d63d86330e97adc358b13dd0ebd703239aea96b7ea2fb331b16f4e90613b259033908b908890615e19565b60405180910390a1613b4984611a02613b42888660400151610801565b8890613336565b9250613d30565b613b61613a25878460400151610801565b90507f5d624aa9c148153ab3446c1b154f660ee7701e549fe9b62dab7171b1c80e6fa2338a836001604051613b999493929190615eae565b60405180910390a1613baf868360200151610801565b9350613bc088836000015186612484565b613bce868360400151610801565b613bd88588615ac5565b613be29190615ac5565b3360009081526006602090815260408083206001600160a01b038d16845290915281206001018054909190613c18908490615978565b90915550506040517f88dcaca629d63d86330e97adc358b13dd0ebd703239aea96b7ea2fb331b16f4e90613c519033908b908890615e19565b60405180910390a1613b4984611a02613b42898660400151610801565b6000613c7e868460400151610801565b1115613d2c57613ca4613c95868460400151610801565b613c9e89614625565b33614b39565b9050613cbe613cb7868460400151610801565b8690613336565b92507f340b543910b47fe717183f8972077c5d42343802898948d4dffc9cc82a4f60993389613cf1888660400151610801565b604080516001600160a01b0394851681529284166020840152820152908b1660608201526080810183905260a00160405180910390a1613d30565b8492505b50509550959350505050565b6001600160a01b0380861660009081526008602090815260408083208885168452825280832081516080810183528154861681526001820154938101939093526002810154918301829052600301549093166060820152909182908190613da4908690610801565b1115613e4c57613dc4613dbb858460400151610801565b613c9e88614625565b9050613dde613dd7858460400151610801565b8590613336565b92507f340b543910b47fe717183f8972077c5d42343802898948d4dffc9cc82a4f60993388613e11878660400151610801565b604080516001600160a01b0394851681529284166020840152820152908a1660608201526080810183905260a00160405180910390a1613e50565b8392505b6010548510801590613e625750600085115b15613f18573360009081526006602090815260408083206001600160a01b038b16845290915281208054879290613e9a908490615978565b90915550503360008181526006602090815260408083206001600160a01b038c1680855290835292819020600181015490548251958652928501939093528301889052606083019190915260808201527f4e7e2735528d8c3e943fd545526d432a6f178a48e5e201186f897a1a865336539060a00160405180910390a15b505095945050505050565b6001600160a01b038086166000908152600760208181526040808420898616855282528084208151610180810183528154871681526001820154938101939093526002810154909516908201526003840154606082015260048401546080820152600584015460a0820152600684015460c08201529083015460e0820152600883015461010082015260098301546101208201819052600a840154610140830152600b9093015461016082015290918291906140215760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e4d61726b65743a3a636f6e6669672e72616e6765203e2030000000604482015260640161084c565b600085116140695760405162461bcd60e51b81526020600482015260156024820152740546f6b656e4d61726b65743a3a6f70656e203e203605c1b604482015260640161084c565b858511156140af5761012081015160125486906140868983615ac5565b6140909190615adc565b61409a9190615990565b6140a49190615990565b9250600091506140f1565b848611156140f15761012081015160125486906140cc828a615ac5565b6140d69190615adc565b6140e09190615990565b6140ea9190615990565b9250600191505b6000806141008a8a8787614c1a565b6001600160a01b038c81166000908152600960209081526040808320938f1683529281528282208b835290522060028101839055600301819055909250905061414b898b8787614c1a565b6001600160a01b039a8b1660009081526009602090815260408083209e909d1682529c8d528b812098815297909b52989095206002810198909855505060039095019590955550929391925050565b600080846000815181106141b0576141b0615c14565b60200260200101516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156141f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061421991906159b2565b60ff169050600080600560009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015614274573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142989190615ed7565b6001600160a01b031663e6a43905886000815181106142b9576142b9615c14565b60200260200101518960018b516142d09190615ac5565b815181106142e0576142e0615c14565b60200260200101516040518363ffffffff1660e01b815260040161431a9291906001600160a01b0392831681529116602082015260400190565b602060405180830381865afa158015614337573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061435b9190615ed7565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015614398573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143bc9190615f0b565b506001600160701b031691506001600160701b03169150600087600189516143e49190615ac5565b815181106143f4576143f4615c14565b60200260200101516001600160a01b03168860008151811061441857614418615c14565b60200260200101516001600160a01b03161061447557876001895161443d9190615ac5565b8151811061444d5761444d615c14565b60200260200101518860008151811061446857614468615c14565b60200260200101516144b8565b8760008151811061448857614488615c14565b60200260200101518860018a5161449f9190615ac5565b815181106144af576144af615c14565b60200260200101515b5090506000808960018b516144cd9190615ac5565b815181106144dd576144dd615c14565b60200260200101516001600160a01b03168a60008151811061450157614501615c14565b60200260200101516001600160a01b03161061451e578789614521565b88885b91509150826001600160a01b03168a60008151811061454257614542615c14565b60200260200101516001600160a01b0316036145c0576145628583613661565b945061456e8482613336565b935061459c61458a6126f761458489600a615ab9565b90611e55565b61459687612710611e55565b90613661565b6145af856145846126f7818b600a615ab9565b6145b99190615990565b9650614618565b6145ca8482613661565b93506145d68583613336565b94506145f86145ec6126f761458489600a615ab9565b61459686612710611e55565b61460b866145846126f7818b600a615ab9565b6146159190615990565b96505b5050505050935093915050565b80516060906000816001600160401b0381111561464457614644615032565b60405190808252806020026020018201604052801561466d578160200160208202803683370190505b5090506000825b600181106146ea5785614688600183615ac5565b8151811061469857614698615c14565b60200260200101518383815181106146b2576146b2615c14565b6001600160a01b0390921660209283029190910190910152816146d481615c2a565b92505080806146e290615f5b565b915050614674565b5090949350505050565b600080825160410361472a5760208301516040840151606085015160001a61471e87828585614edc565b94509450505050614732565b506000905060025b9250929050565b600081600481111561474d5761474d615f72565b036147555750565b600181600481111561476957614769615f72565b036147b65760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161084c565b60028160048111156147ca576147ca615f72565b036148175760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161084c565b600381600481111561482b5761482b615f72565b03610bb65760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161084c565b6001600160a01b038085166000908152600760208181526040808420888616855282528084208151610180810183528154871681526001820154938101939093526002810154909516908201526003840154606082015260048401546080820152600584015460a0820152600684015460c08201529083015460e082015260088301546101008201526009830154610120820152600a830154610140820152600b909201546101608301529081908190818061493f8a8a6109cf565b509150915061494e8782610801565b60408085015190516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015614998573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906149bc9190615c43565b1015614a215760405162461bcd60e51b815260206004820152602e60248201527f546f6b656e4d61726b65743a3a52657761726420546f6b656e20496e7375666660448201526d696369656e742042616c616e636560901b606482015260840161084c565b6000614a2d8883610801565b1115614a9457614a4b836040015133614a468a85610801565b612484565b7f6b053894d8fdbdcc936dd753e21291f0c48e68ef12306eb39a63a374147ba4bd338460400151614a7c8a85610801565b604051614a8b93929190615e19565b60405180910390a15b896001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015614ad2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614af691906159b2565b60ff169350614b0f614b0985600a615ab9565b8961212d565b94506000614b1d8884610801565b9050614b298882613336565b9650505050509450945094915050565b60008083600081518110614b4f57614b4f615c14565b6020026020010151905060008460018651614b6a9190615ac5565b81518110614b7a57614b7a615c14565b6020026020010151905060006040518060400160405280614b9a8561279a565b8152602001846001600160a01b0316815250905060006040518060400160405280614bc48561279a565b8152602001846001600160a01b03168152509050614be2888861212d565b94506000614bf142600a615978565b9050614c0383838b898c600087612905565b614c0e848888612484565b50505050509392505050565b6000806000841315614ea0576001600160a01b038681166000908152600760209081526040808320938916835292905220600a810154600b9091015484614c7257614c6482615afb565b9150614c6f81615afb565b90505b6000614c7d83612468565b1315614d2857614c8d8683615b17565b935060008212614cf8576001600160a01b038089166000908152600760209081526040808320938b1683529290522060060154841315614cf3576001600160a01b038089166000908152600760209081526040808320938b168352929052206006015493505b614d54565b6001600160a01b038089166000908152600760209081526040808320938b16835292905220600101549350614d54565b6001600160a01b038089166000908152600760209081526040808320938b168352929052206001015493505b6000614d5f82612468565b1315614e6d576001600160a01b038089166000908152600760209081526040808320938b1683529290522060030154614d988783615b17565b614da29190615b9c565b925060008112614e0d576001600160a01b038089166000908152600760209081526040808320938b1683529290522060080154831315614e08576001600160a01b038089166000908152600760209081526040808320938b168352929052206008015492505b614e99565b6001600160a01b038089166000908152600760208181526040808420948c1684529390529190200154831215614e08576001600160a01b038089166000908152600760208181526040808420948c16845293905291902001549250614e99565b6001600160a01b038089166000908152600760209081526040808320938b168352929052206003015492505b5050614ed3565b50506001600160a01b03848116600090815260076020908152604080832093871683529290522060018101546003909101545b94509492505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115614f135750600090506003614ed3565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614f67573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116614f9057600060019250925050614ed3565b9660009650945050505050565b60405180610180016040528060006001600160a01b031681526020016000815260200160006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6000806040838503121561502357600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b038111828210171561506b5761506b615032565b60405290565b604051601f8201601f191681016001600160401b038111828210171561509957615099615032565b604052919050565b600060a082840312156150b357600080fd5b60405160a081018181106001600160401b03821117156150d5576150d5615032565b806040525082358152602083013560208201526040830135604082015260608301356060820152608083013560808201528091505092915050565b6001600160a01b0381168114610bb657600080fd5b803561513081615110565b919050565b6000806040838503121561514857600080fd5b823561515381615110565b9150602083013561516381615110565b809150509250929050565b60008060006060848603121561518357600080fd5b833561518e81615110565b9250602084013561519e81615110565b929592945050506040919091013590565b600082601f8301126151c057600080fd5b81356001600160401b038111156151d9576151d9615032565b6151ec601f8201601f1916602001615071565b81815284602083860101111561520157600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a0868803121561523657600080fd5b85359450602086013561524881615110565b9350604086013592506060860135915060808601356001600160401b0381111561527157600080fd5b61527d888289016151af565b9150509295509295909350565b60006001600160401b038211156152a3576152a3615032565b5060051b60200190565b600082601f8301126152be57600080fd5b813560206152d36152ce8361528a565b615071565b82815260059290921b840181019181810190868411156152f257600080fd5b8286015b8481101561531657803561530981615110565b83529183019183016152f6565b509695505050505050565b6000806000806080858703121561533757600080fd5b8435935060208501356001600160401b0381111561535457600080fd5b615360878288016152ad565b949794965050505060408301359260600135919050565b60006020828403121561538957600080fd5b81356001600160401b0381111561539f57600080fd5b6153ab848285016151af565b949350505050565b6000602082840312156153c557600080fd5b813561081b81615110565b6000608082840312156153e257600080fd5b604051608081018181106001600160401b038211171561540457615404615032565b604052905080823561541581615110565b808252506020830135602082015260408301356040820152606083013561543b81615110565b6060919091015292915050565b60008060008084860361024081121561546057600080fd5b853561546b81615110565b9450602086013561547b81615110565b9350610180603f19820181131561549157600080fd5b615499615048565b91506154a760408801615125565b8252606087013560208301526154bf60808801615125565b604083015260a0870135606083015260c0870135608083015260e087013560a08301526101008088013560c08401526101208089013560e0850152610140808a0135838601526101609250828a013582860152838a01358186015250506101a08801358184015250508092505061553a866101c087016153d0565b905092959194509250565b60008060006060848603121561555a57600080fd5b833561556581615110565b9250602084013561557581615110565b915060408401356001600160401b0381111561559057600080fd5b61559c868287016152ad565b9150509250925092565b80516001600160a01b031682526020810151602083015260408101516155d760408401826001600160a01b03169052565b50606081810151908301526080808201519083015260a0808201519083015260c0808201519083015260e0808201519083015261010080820151908301526101208082015190830152610140808201519083015261016090810151910152565b6101c0810161564682866155a6565b6101808201939093526101a00152919050565b600082601f83011261566a57600080fd5b8135602061567a6152ce8361528a565b82815260059290921b8401810191818101908684111561569957600080fd5b8286015b84811015615316578035835291830191830161569d565b600080600080608085870312156156ca57600080fd5b84356001600160401b03808211156156e157600080fd5b6156ed88838901615659565b9550602087013591508082111561570357600080fd5b61570f888389016152ad565b9450604087013591508082111561572557600080fd5b615731888389016152ad565b9350606087013591508082111561574757600080fd5b5061575487828801615659565b91505092959194509250565b60008060008060008060c0878903121561577957600080fd5b86356001600160401b0381111561578f57600080fd5b61579b89828a016152ad565b9960208901359950604089013598606081013598506080810135975060a0013595509350505050565b60008060008060008060c087890312156157dd57600080fd5b86356157e881615110565b955060208701356157f881615110565b945060408701356001600160401b0381111561581357600080fd5b61581f89828a016152ad565b945050606087013592506080870135915060a087013561583e81615110565b809150509295509295509295565b610280810161585b82856155a6565b825161018083015260208301516101a083015260408301516101c083015260608301516101e0830152608083015161020083015260a083015161022083015260c0830151151561024083015260e08301516102608301529392505050565b600080600080608085870312156158cf57600080fd5b84356158da81615110565b935060208501356158ea81615110565b925060408501356001600160401b0381111561590557600080fd5b615911878288016152ad565b925050606085013561592281615110565b939692955090935050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000821982111561598b5761598b615962565b500190565b6000826159ad57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156159c457600080fd5b815160ff8116811461081b57600080fd5b600181815b80851115615a105781600019048211156159f6576159f6615962565b80851615615a0357918102915b93841c93908002906159da565b509250929050565b600082615a2757506001611e61565b81615a3457506000611e61565b8160018114615a4a5760028114615a5457615a70565b6001915050611e61565b60ff841115615a6557615a65615962565b50506001821b611e61565b5060208310610133831016604e8410600b8410161715615a93575081810a611e61565b615a9d83836159d5565b8060001904821115615ab157615ab1615962565b029392505050565b600061081b8383615a18565b600082821015615ad757615ad7615962565b500390565b6000816000190483118215151615615af657615af6615962565b500290565b6000600160ff1b8201615b1057615b10615962565b5060000390565b60006001600160ff1b0381841382841380821686840486111615615b3d57615b3d615962565b600160ff1b6000871282811687830589121615615b5c57615b5c615962565b60008712925087820587128484161615615b7857615b78615962565b87850587128184161615615b8e57615b8e615962565b505050929093029392505050565b600080821280156001600160ff1b0384900385131615615bbe57615bbe615962565b600160ff1b8390038412811615615bd757615bd7615962565b50500190565b60208082526017908201527f546f6b656e4d61726b65743a3a206c656e67746820213d000000000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600060018201615c3c57615c3c615962565b5060010190565b600060208284031215615c5557600080fd5b5051919050565b60005b83811015615c77578181015183820152602001615c5f565b83811115615c86576000848401525b50505050565b60008251615c9e818460208701615c5c565b9190910192915050565b600060018060a01b03808916835287602084015280871660408401525084606083015283608083015260c060a083015282518060c0840152615cf18160e0850160208701615c5c565b601f01601f19169190910160e001979650505050505050565b600081518084526020808501945080840160005b83811015615d435781516001600160a01b031687529582019590820190600101615d1e565b509495945050505050565b8281526040602082015260006153ab6040830184615d0a565b60006020808385031215615d7a57600080fd5b82516001600160401b03811115615d9057600080fd5b8301601f81018513615da157600080fd5b8051615daf6152ce8261528a565b81815260059190911b82018301908381019087831115615dce57600080fd5b928401925b82841015615dec57835182529284019290840190615dd3565b979650505050505050565b600060208284031215615e0957600080fd5b8151801515811461081b57600080fd5b6001600160a01b039384168152919092166020820152604081019190915260600190565b85815284602082015260a060408201526000615e5c60a0830186615d0a565b6001600160a01b0394909416606083015250608001529392505050565b848152608060208201526000615e926080830186615d0a565b6001600160a01b03949094166040830152506060015292915050565b6001600160a01b0394851681529290931660208301526040820152606081019190915260800190565b600060208284031215615ee957600080fd5b815161081b81615110565b80516001600160701b038116811461513057600080fd5b600080600060608486031215615f2057600080fd5b615f2984615ef4565b9250615f3760208501615ef4565b9150604084015163ffffffff81168114615f5057600080fd5b809150509250925092565b600081615f6a57615f6a615962565b506000190190565b634e487b7160e01b600052602160045260246000fdfea2646970667358221220015bbe399e0d74eed445a58b8e529a27c557072d64f8e8f4a0d3835158a21a0f64736f6c634300080e0033",
|
|
814
|
+
"bytecode": "0x6080604052600a805465ffffffffffff191662012c01179055600d805463ffffffff191661012c1790556305f5e100600e556301312d00600f55624c4b406010553480156200004d57600080fd5b50604051620040d7380380620040d78339810160408190526200007091620004c5565b6200007b3362000223565b600180556200008a8162000273565b336000908152600460205260408120805460ff1916600117905580739eff3043cdbd7abe80f020b99b5627c344de59138046606103620000f857735f0a0fd7b6e0fa043386158c801f82e20cecca9393507397c4b486061a1a1fb9c8646728cc9a350506d23f92506200016f565b466201388103620001375773cf43b390dc89b36fd49267c646a73a0dfb7f3e4c93507397c4b486061a1a1fb9c8646728cc9a350506d23f92506200016f565b466089036200016f5773c2132d05d31c914a87c6611c10748aeb04b58e8f93507397c4b486061a1a1fb9c8646728cc9a350506d23f92505b620001c384846040518060a00160405280866001600160a01b031681526020016302faf080815260200160006001600160a01b0316815260200160008152602001600115158152506200037d60201b60201c565b6200021883856040518060a00160405280856001600160a01b03168152602001620f4240815260200160006001600160a01b03168152602001620f42408152602001600115158152506200037d60201b60201c565b50505050506200051e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116620002da5760405162461bcd60e51b815260206004820152602260248201527f546f6b656e4d61726b65743a3a696e76616c696420726f757465206164647265604482015261737360f01b60648201526084015b60405180910390fd5b600380546001600160a01b0319166001600160a01b038316908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000334573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200035a9190620004c5565b600280546001600160a01b0319166001600160a01b039290921691909117905550565b6000546001600160a01b03163314620003d95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401620002d1565b600e5481606001518260200151620003f29190620004f7565b1115620004425760405162461bcd60e51b815260206004820181905260248201527f546f6b656e4d61726b65743a3a66656552617465203c3d20706f696e744d61786044820152606401620002d1565b6001600160a01b039283166000908152600560209081526040808320948616835293815290839020825181549086166001600160a01b03199182161782559183015160018201559282015160028401805491909516911617909255606082015160038201556080909101516004909101805491151560ff19909216919091179055565b600060208284031215620004d857600080fd5b81516001600160a01b0381168114620004f057600080fd5b9392505050565b600082198211156200051957634e487b7160e01b600052601160045260246000fd5b500190565b613ba9806200052e6000396000f3fe6080604052600436106101ef5760003560e01c8063823e1c4e1161010c578063d96661ef1161009a578063f18798fd1161006c578063f18798fd146106a8578063f2fde38b146106c8578063f35cd4e2146106e8578063f620732614610720578063f9c95d461461074257005b8063d96661ef14610615578063ecce1fbd14610635578063ee924d8614610655578063f108f8761461067557005b80639b19251a116100de5780639b19251a1461054d578063aa5d448f1461057d578063aa7993c01461059d578063c04606f0146105d5578063cd27ca82146105f557005b8063823e1c4e146104e2578063868c9abc146104fc57806388697d661461051c5780638da5cb5b1461052f57005b80632d52aa4e1161018957806339088d851161015b57806339088d85146103f85780633fc8cef31461042a57806348c8cd6c146104625780635e5ce28114610478578063715018a6146104cd57005b80632d52aa4e146103745780633041949b146103a5578063340ce57f146103c5578063382b06ff146103e557005b80630d83b1e4116101c25780630d83b1e4146102815780631b153401146102975780632926e5de146102b75780632bd2c18d1461035457005b8062067411146101f8578063016eb8a81461022157806304c8c100146102415780630a99d30f1461026157005b366101f657005b005b34801561020457600080fd5b5061020e60105481565b6040519081526020015b60405180910390f35b34801561022d57600080fd5b5061020e61023c366004613383565b610762565b34801561024d57600080fd5b506101f661025c3660046133c8565b610783565b34801561026d57600080fd5b506101f661027c366004613401565b6107e1565b34801561028d57600080fd5b5061020e600e5481565b3480156102a357600080fd5b506101f66102b236600461341e565b61081e565b3480156102c357600080fd5b5061031b6102d236600461345f565b6005602090815260009283526040808420909152908252902080546001820154600283015460038401546004909401546001600160a01b03938416949293909116919060ff1685565b604080516001600160a01b039687168152602081019590955292909416918301919091526060820152901515608082015260a001610218565b34801561036057600080fd5b5061020e61036f366004613595565b61089d565b34801561038057600080fd5b50600a5461039590600160281b900460ff1681565b6040519015158152602001610218565b3480156103b157600080fd5b506101f66103c036600461345f565b6108f2565b3480156103d157600080fd5b506101f66103e036600461341e565b610991565b6101f66103f33660046135ec565b610a03565b34801561040457600080fd5b50600d546104159063ffffffff1681565b60405163ffffffff9091168152602001610218565b34801561043657600080fd5b5060025461044a906001600160a01b031681565b6040516001600160a01b039091168152602001610218565b34801561046e57600080fd5b5061020e600f5481565b34801561048457600080fd5b5061049861049336600461345f565b610e43565b60408051845163ffffffff1681526020808601519082015293810151908401526060830191909152608082015260a001610218565b3480156104d957600080fd5b506101f6610f5d565b3480156104ee57600080fd5b50600a546103959060ff1681565b34801561050857600080fd5b506101f6610517366004613649565b610f93565b6101f661052a366004613662565b611017565b34801561053b57600080fd5b506000546001600160a01b031661044a565b34801561055957600080fd5b506103956105683660046136c7565b60046020526000908152604090205460ff1681565b34801561058957600080fd5b506101f66105983660046136c7565b6111aa565b3480156105a957600080fd5b5061020e6105b836600461345f565b600c60209081526000928352604080842090915290825290205481565b3480156105e157600080fd5b506101f66105f0366004613649565b6111e0565b34801561060157600080fd5b5061020e61061036600461345f565b611265565b34801561062157600080fd5b5060035461044a906001600160a01b031681565b34801561064157600080fd5b506101f66106503660046136e4565b611291565b34801561066157600080fd5b506101f6610670366004613401565b6113a3565b34801561068157600080fd5b50610415610690366004613649565b60086020526000908152604090205463ffffffff1681565b3480156106b457600080fd5b506101f66106c336600461379a565b6113ed565b3480156106d457600080fd5b506101f66106e33660046136c7565b611482565b3480156106f457600080fd5b5061020e61070336600461345f565b600b60209081526000928352604080842090915290825290205481565b34801561072c57600080fd5b50600a5461041590610100900463ffffffff1681565b34801561074e57600080fd5b506101f661075d36600461379a565b61151a565b600e5460009061077c9061077685856115b5565b906115c1565b9392505050565b6000546001600160a01b031633146107b65760405162461bcd60e51b81526004016107ad906137b7565b60405180910390fd5b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461080b5760405162461bcd60e51b81526004016107ad906137b7565b600a805460ff1916911515919091179055565b6000546001600160a01b031633146108485760405162461bcd60e51b81526004016107ad906137b7565b6108538383836115cd565b6108985760405162461bcd60e51b8152602060048201526016602482015275151bdad95b93585c9ad95d0e8e9cd95b990819985a5b60521b60448201526064016107ad565b505050565b600080808481036108ca576108b28787611604565b91506108c084836000611721565b91508192506108e8565b6108d487876117be565b90506108e284826001611721565b90508092505b5050949350505050565b3360009081526004602052604090205460ff166109215760405162461bcd60e51b81526004016107ad906137ec565b60006001600160a01b038316156109385782610945565b6002546001600160a01b03165b905060006001600160a01b0383161561095e578261096b565b6002546001600160a01b03165b905061098a8282600a60019054906101000a900463ffffffff166118c0565b5050505050565b3360009081526004602052604090205460ff166109c05760405162461bcd60e51b81526004016107ad906137ec565b6001600160a01b039283166000818152600b602090815260408083209590961680835294815285822093909355908152600c825283812092815291905220429055565b610a0b611b32565b333214610a5a5760405162461bcd60e51b815260206004820152601b60248201527f546f6b656e4d61726b65743a3a496c6c6567616c2063616c6c6572000000000060448201526064016107ad565b333b15610ab55760405162461bcd60e51b8152602060048201526024808201527f546f6b656e4d61726b65743a3a50726f686962697420636f6e74726163742063604482015263616c6c7360e01b60648201526084016107ad565b8215610b035760405162461bcd60e51b815260206004820152601960248201527f546f6b656e4d61726b65743a3a496e76616c696420736964650000000000000060448201526064016107ad565b6003855110610b545760405162461bcd60e51b815260206004820181905260248201527f546f6b656e4d61726b65743a3a496e76616c69642070617468206c656e67746860448201526064016107ad565b600085600081518110610b6957610b6961381c565b6020026020010151905060008660018851610b849190613848565b81518110610b9457610b9461381c565b6020908102919091018101516001600160a01b0380851660009081526005845260408082209284168252919093529091206004015490915060ff16610c1b5760405162461bcd60e51b815260206004820152601e60248201527f546f6b656e4d61726b65743a3a54726164652070616972206973206f6666000060448201526064016107ad565b60006040518060400160405280610c3185611b8b565b8152602001846001600160a01b0316815250905060006040518060400160405280610c5b85611b8b565b81526001600160a01b0385166020909101528251909150600303610c8a57610c858433308b611bc9565b610caa565b87341015610caa5760405162461bcd60e51b81526004016107ad9061385f565b610cd3610cb885858b611cff565b610ccd610cc687878d611dfe565b8b90611ee9565b90611ee9565b9750610ce084848a611ef5565b600087600003610d0557610cf4898b611604565b9050610d0286826000611721565b90505b6000610d1784848c858f8e8e30611fba565b905081811015610d695760405162461bcd60e51b815260206004820152601f60248201527f546f6b656e4d61726b65743a3a42656c6f77206578706563746174696f6e730060448201526064016107ad565b610d7586868c846122ce565b8115610dd657610d8a836020015133846115cd565b610dd65760405162461bcd60e51b815260206004820152601c60248201527f546f6b656e4d61726b65743a3a73656e6420746f6b656e206661696c0000000060448201526064016107ad565b604080513381526001600160a01b038881166020830152871681830152606081018c90526080810184905260a0810183905290517f96c33ff19b53193fda53bab8868675504d5ac0c24f257e854da2493e7e3151859181900360c00190a150505050505061098a60018055565b610e6d6040518060600160405280600063ffffffff16815260200160008152602001600081525090565b600a546000908190600160281b900460ff16610ea957505060408051606081018252600080825260208201819052918101829052915080610f56565b60006001600160a01b03861615610ec05785610ecd565b6002546001600160a01b03165b905060006001600160a01b03861615610ee65785610ef3565b6002546001600160a01b03165b90506000610f018383612428565b60008181526009602090815260408083208151606081018352815463ffffffff168152600182015481850152600290910154818301529383526006825280832054600790925290912054919750955093505050505b9250925092565b6000546001600160a01b03163314610f875760405162461bcd60e51b81526004016107ad906137b7565b610f9160006124b9565b565b6000546001600160a01b03163314610fbd5760405162461bcd60e51b81526004016107ad906137b7565b6002600e54610fcc91906138a5565b8111156110125760405162461bcd60e51b8152602060048201526014602482015273546f6b656e4d61726b65743a3a4d61782035302560601b60448201526064016107ad565b601055565b3360009081526004602052604090205460ff166110465760405162461bcd60e51b81526004016107ad906137ec565b61104e611b32565b82600003611075576110608587611604565b935061106e81856000611721565b9350611090565b61107f84876117be565b945061108d81866001611721565b94505b6000866000815181106110a5576110a561381c565b60200260200101519050600087600189516110c09190613848565b815181106110d0576110d061381c565b60200260200101519050600060405180604001604052806110f085611b8b565b8152602001846001600160a01b031681525090506000604051806040016040528061111a85611b8b565b81526001600160a01b0385166020909101528251909150600303611149576111448433308c611bc9565b611184565b883410156111695760405162461bcd60e51b81526004016107ad9061385f565b88341115611184576111843361117f8b34613848565b612509565b61119482828b8b8e8c8c33611fba565b50505050506111a260018055565b505050505050565b6000546001600160a01b031633146111d45760405162461bcd60e51b81526004016107ad906137b7565b6111dd81612622565b50565b6000546001600160a01b0316331461120a5760405162461bcd60e51b81526004016107ad906137b7565b6002600e5461121991906138a5565b8111156112605760405162461bcd60e51b81526020600482015260156024820152740a8ded6cadc9ac2e4d6cae87474a8dede40d0d2ced605b1b60448201526064016107ad565b600f55565b600a54600090600160281b900460ff166112815750600061128b565b61077c8383612428565b92915050565b6000546001600160a01b031633146112bb5760405162461bcd60e51b81526004016107ad906137b7565b600e54816060015182602001516112d291906138c7565b11156113205760405162461bcd60e51b815260206004820181905260248201527f546f6b656e4d61726b65743a3a66656552617465203c3d20706f696e744d617860448201526064016107ad565b6001600160a01b039283166000908152600560209081526040808320948616835293815290839020825181549086166001600160a01b03199182161782559183015160018201559282015160028401805491909516911617909255606082015160038201556080909101516004909101805491151560ff19909216919091179055565b6000546001600160a01b031633146113cd5760405162461bcd60e51b81526004016107ad906137b7565b600a8054911515600160281b0265ff000000000019909216919091179055565b6000546001600160a01b031633146114175760405162461bcd60e51b81526004016107ad906137b7565b60788163ffffffff1610156114665760405162461bcd60e51b8152602060048201526015602482015274546f6b656e4d61726b65743a3a4d696e203132307360581b60448201526064016107ad565b600d805463ffffffff191663ffffffff92909216919091179055565b6000546001600160a01b031633146114ac5760405162461bcd60e51b81526004016107ad906137b7565b6001600160a01b0381166115115760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107ad565b6111dd816124b9565b6000546001600160a01b031633146115445760405162461bcd60e51b81526004016107ad906137b7565b60788163ffffffff1610156115935760405162461bcd60e51b8152602060048201526015602482015274546f6b656e4d61726b65743a3a4d696e203132307360581b60448201526064016107ad565b600a805463ffffffff9092166101000264ffffffff0019909216919091179055565b600061077c82846138df565b600061077c82846138a5565b60006001600160a01b0384166115ef576115e78383612509565b50600161077c565b6115fa848484612723565b5060019392505050565b60035460405163d06ca61f60e01b815260009182916001600160a01b039091169063d06ca61f9061163b9087908790600401613942565b600060405180830381865afa158015611658573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611680919081019061395b565b90508061169860018351611ee990919063ffffffff16565b815181106116a8576116a861381c565b602002602001015191506000821161171a5760405162461bcd60e51b815260206004820152602f60248201527f546f6b656e4d61726b65743a3a6f7574416d6f756e742073686f756c6420626560448201526e02067726561746572207468616e203608c1b60648201526084016107ad565b5092915050565b60006002600e5461173291906138a5565b8411156117785760405162461bcd60e51b8152602060048201526014602482015273546f6b656e4d61726b65743a3a4d61782035302560601b60448201526064016107ad565b6001821561179457600e5461178d908661284d565b90506117a4565b600e546117a19086611ee9565b90505b600e546117b59061077686846115b5565b95945050505050565b6003546040516307c0329d60e21b815260009182916001600160a01b0390911690631f00ca74906117f59087908790600401613942565b600060405180830381865afa158015611812573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261183a919081019061395b565b90508060008151811061184f5761184f61381c565b602002602001015191506000821161171a5760405162461bcd60e51b815260206004820152602e60248201527f546f6b656e4d61726b65743a3a696e416d6f756e742073686f756c642062652060448201526d067726561746572207468616e20360941b60648201526084016107ad565b6000806118cd8585612428565b60008181526009602052604081209192506118e88787612859565b50905060008060006118f984612a29565b8754929550909350915063ffffffff1660000361194257845463ffffffff191663ffffffff919091161784556001840191909155600290920191909155506000915061077c9050565b84546000906119579063ffffffff16836139ec565b90508863ffffffff168163ffffffff16101561197d57600097505050505050505061077c565b60008163ffffffff168760010154866119969190613848565b6119a091906138a5565b905060008263ffffffff168860020154866119bb9190613848565b6119c591906138a5565b90506119de82670de0b6b3a7640000600160701b612c13565b60008a815260066020526040902055611a0481670de0b6b3a7640000600160701b612c13565b60008a815260076020908152604080832093909355600690522054611a7a5760405162461bcd60e51b815260206004820152602660248201527f546f6b656e4d61726b65743a3a496e76616c696420545741502028707269636560448201526530547761702960d01b60648201526084016107ad565b600089815260076020526040902054611ae45760405162461bcd60e51b815260206004820152602660248201527f546f6b656e4d61726b65743a3a496e76616c696420545741502028707269636560448201526531547761702960d01b60648201526084016107ad565b505050600095865260086020526040909520805463ffffffff1990811663ffffffff909716968717909155845416909417835560018381019190915560029092019290925595945050505050565b600260015403611b845760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107ad565b6002600155565b60006001600160a01b038216611ba357506001919050565b6002546001600160a01b0390811690831603611bc157506002919050565b506003919050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b1790529151600092839290881691611c2d9190613a11565b6000604051808303816000865af19150503d8060008114611c6a576040519150601f19603f3d011682016040523d82523d6000602084013e611c6f565b606091505b5091509150818015611c99575080511580611c99575080806020019051810190611c999190613a4c565b6111a25760405162461bcd60e51b815260206004820152603160248201527f5472616e7366657248656c7065723a3a7472616e7366657246726f6d3a207472604482015270185b9cd9995c919c9bdb4819985a5b1959607a1b60648201526084016107ad565b6001600160a01b038084166000908152600560209081526040808320868516808552818452828520835160a08101855281548816815260018201548187015260028201549097169387019390935260038301546060870181905260049093015460ff16151560808701528452909152909190808303611d835760009250505061077c565b611d8d8482610762565b925082600003611d9e57505061077c565b60006040518060400160405280611db489611b8b565b81526001600160a01b0389166020909101528051909150600303611de657611de187846040015186612723565b611df4565b611df4836040015185612c82565b5050509392505050565b6001600160a01b038084166000908152600560209081526040808320868516808552818452828520835160a0810185528154881681526001820154818701819052600283015490981694810194909452600381015460608501526004015460ff161515608084015284529091529091808303611e7f5760009250505061077c565b611e898482610762565b925082600003611e9a57505061077c565b60006040518060400160405280611eb089611b8b565b81526001600160a01b0389166020909101528051909150600303611edd57611de187846000015186612723565b8251611df49085612c82565b600061077c8284613848565b60006001600160a01b03841615611f0c5783611f19565b6002546001600160a01b03165b905060006001600160a01b03841615611f325783611f3f565b6002546001600160a01b03165b90506000611f4d8383612d5c565b509050600e5460105482611f6191906138df565b611f6b91906138a5565b8411156111a25760405162461bcd60e51b815260206004820152601c60248201527f546f6b656e4d61726b65743a3a496e70757420746f6f206c617267650000000060448201526064016107ad565b8751600090600303611fe2576020890151600354611fe291906001600160a01b031689612f00565b606060008a6000015160011480611ffa57508a516002145b905060008a600001516001148061201257508a516002145b905081158015612020575080155b156120eb57866000036120b3576003546040516338ed173960e01b81526001600160a01b03909116906338ed173990612065908d908d908d908b908d90600401613a69565b6000604051808303816000875af1158015612084573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526120ac919081019061395b565b9250612296565b600354604051634401edf760e11b81526001600160a01b0390911690638803dbee90612065908c908e908d908b908d90600401613a69565b8180156120f6575080155b156121ba578660000361218257600354604051637ff36ab560e01b81526001600160a01b0390911690637ff36ab5908c9061213b908d908d908b908d90600401613aa5565b60006040518083038185885af1158015612159573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f191682016040526120ac919081019061395b565b60035460405163fb3bdb4160e01b81526001600160a01b039091169063fb3bdb41908c9061213b908d908d908b908d90600401613aa5565b811580156121c55750805b15612242578660000361220a576003546040516318cbafe560e01b81526001600160a01b03909116906318cbafe590612065908d908d908d908b908d90600401613a69565b600354604051632512eca560e11b81526001600160a01b0390911690634a25d94a90612065908c908e908d908b908d90600401613a69565b60405162461bcd60e51b8152602060048201526024808201527f546f6b656e4d61726b65743a3a4554483c2d3e455448206e6f7420737570706f6044820152631c9d195960e21b60648201526084016107ad565b82600184516122a59190613848565b815181106122b5576122b561381c565b6020026020010151935050505098975050505050505050565b6000821180156122de5750600081115b61232a5760405162461bcd60e51b815260206004820152601860248201527f546f6b656e4d61726b65743a3a5a65726f20616d6f756e74000000000000000060448201526064016107ad565b6000806123378686613028565b9150915080612347575050612422565b60008461235c85670de0b6b3a76400006138df565b61236691906138a5565b90506000600e54600f548561237b91906138df565b61238591906138a5565b905060008185116123975760006123a1565b6123a18286613848565b905060006123af83876138c7565b90508184101580156123c15750808411155b61241b5760405162461bcd60e51b815260206004820152602560248201527f546f6b656e4d61726b65743a3a507269636520646576696174696f6e20746f6f604482015264040d0d2ced60db1b60648201526084016107ad565b5050505050505b50505050565b6000816001600160a01b0316836001600160a01b0316101561248b576040516bffffffffffffffffffffffff19606085811b8216602084015284901b1660348201526048015b60405160208183030381529060405280519060200120905061128b565b6040516bffffffffffffffffffffffff19606084811b8216602084015285901b16603482015260480161246e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b804710156125595760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016107ad565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146125a6576040519150601f19603f3d011682016040523d82523d6000602084013e6125ab565b606091505b50509050806108985760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016107ad565b6001600160a01b0381166126835760405162461bcd60e51b815260206004820152602260248201527f546f6b656e4d61726b65743a3a696e76616c696420726f757465206164647265604482015261737360f01b60648201526084016107ad565b600380546001600160a01b0319166001600160a01b038316908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa1580156126dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127009190613ada565b600280546001600160a01b0319166001600160a01b039290921691909117905550565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b179052915160009283929087169161277f9190613a11565b6000604051808303816000865af19150503d80600081146127bc576040519150601f19603f3d011682016040523d82523d6000602084013e6127c1565b606091505b50915091508180156127eb5750805115806127eb5750808060200190518101906127eb9190613a4c565b61098a5760405162461bcd60e51b815260206004820152602d60248201527f5472616e7366657248656c7065723a3a736166655472616e736665723a20747260448201526c185b9cd9995c8819985a5b1959609a1b60648201526084016107ad565b600061077c82846138c7565b6000806000600360009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128d59190613ada565b60405163e6a4390560e01b81526001600160a01b038781166004830152868116602483015291925060009183169063e6a4390590604401602060405180830381865afa158015612929573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061294d9190613ada565b90506001600160a01b0381166129a55760405162461bcd60e51b815260206004820152601b60248201527f546f6b656e4d61726b65743a3a50616972206e6f74206578697374000000000060448201526064016107ad565b809350836001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129e6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a0a9190613ada565b6001600160a01b0316866001600160a01b031614925050509250929050565b6000806000836001600160a01b0316635909c0d56040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a909190613af7565b9250836001600160a01b0316635a3d54936040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ad0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612af49190613af7565b91506000806000866001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015612b39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b5d9190613b2c565b9250925092504293508363ffffffff168163ffffffff1614612c09576000612b8582866139ec565b905063ffffffff8116612bb16001600160701b038616600160701b600160e01b03607087901b166138a5565b612bbb91906138df565b612bc590886138c7565b965063ffffffff8116612bf16001600160701b038516600160701b600160e01b03607088901b166138a5565b612bfb91906138df565b612c0590876138c7565b9550505b5050509193909250565b600081600003612c655760405162461bcd60e51b815260206004820152601860248201527f6d756c4469763a206469766973696f6e206279207a65726f000000000000000060448201526064016107ad565b81612c7084866138df565b612c7a91906138a5565b949350505050565b604080516000808252602082019092526001600160a01b038416908390604051612cac9190613a11565b60006040518083038185875af1925050503d8060008114612ce9576040519150601f19603f3d011682016040523d82523d6000602084013e612cee565b606091505b50509050806108985760405162461bcd60e51b815260206004820152603460248201527f5472616e7366657248656c7065723a3a736166655472616e736665724554483a60448201527308115512081d1c985b9cd9995c8819985a5b195960621b60648201526084016107ad565b6000806000600360009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015612db4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dd89190613ada565b60405163e6a4390560e01b81526001600160a01b0387811660048301528681166024830152919091169063e6a4390590604401602060405180830381865afa158015612e28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e4c9190613ada565b9050600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015612e8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612eb39190613b2c565b506001600160701b031691506001600160701b03169150856001600160a01b0316876001600160a01b03161015612eef57819450809350612ef6565b8094508193505b5050509250929050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b1790529151600092839290871691612f5c9190613a11565b6000604051808303816000865af19150503d8060008114612f99576040519150601f19603f3d011682016040523d82523d6000602084013e612f9e565b606091505b5091509150818015612fc8575080511580612fc8575080806020019051810190612fc89190613a4c565b61098a5760405162461bcd60e51b815260206004820152602b60248201527f5472616e7366657248656c7065723a3a73616665417070726f76653a2061707060448201526a1c9bdd994819985a5b195960aa1b60648201526084016107ad565b600a54600090819060ff16156131f55760006001600160a01b0385161561304f578461305c565b6002546001600160a01b03165b905060006001600160a01b038516156130755784613082565b6002546001600160a01b03165b905060006130908383612428565b90506130af8383600a60019054906101000a900463ffffffff166118c0565b5060008181526008602052604090205463ffffffff168015806130de5750600082815260066020526040902054155b806130f55750600082815260076020526040902054155b156131605761310484846132f7565b600a5490965060009550600160281b900460ff16156131575760408051878152600060208201527ffb3582a7ead56856e76f4dd65cb289a4eab99d7838c6ab0c08ea8dc71c51ae85910160405180910390a15b505050506132f0565b600061316c8585612859565b9150508061318857600083815260076020526040902054613198565b6000838152600660205260409020545b600a54909750600160281b900460ff16156131e75760408051888152600160208201527ffb3582a7ead56856e76f4dd65cb289a4eab99d7838c6ab0c08ea8dc71c51ae85910160405180910390a15b6001955050505050506132f0565b6001600160a01b038085166000818152600b6020908152604080832094881680845294825280832054938352600c82528083209483529390529190912054600d5491935090429061324c9063ffffffff16836138c7565b101561329a5760405162461bcd60e51b815260206004820152601b60248201527f546f6b656e4d61726b65743a3a5072696365206f75746461746564000000000060448201526064016107ad565b600083116132ea5760405162461bcd60e51b815260206004820152601a60248201527f546f6b656e4d61726b65743a3a4e6f207072696365206665656400000000000060448201526064016107ad565b60009150505b9250929050565b60008060006133068585612d5c565b9150915060008211801561331a5750600081115b6133665760405162461bcd60e51b815260206004820152601960248201527f546f6b656e4d61726b65743a3a4e6f206c69717569646974790000000000000060448201526064016107ad565b8161337982670de0b6b3a76400006138df565b6117b591906138a5565b6000806040838503121561339657600080fd5b50508035926020909101359150565b6001600160a01b03811681146111dd57600080fd5b80151581146111dd57600080fd5b600080604083850312156133db57600080fd5b82356133e6816133a5565b915060208301356133f6816133ba565b809150509250929050565b60006020828403121561341357600080fd5b813561077c816133ba565b60008060006060848603121561343357600080fd5b833561343e816133a5565b9250602084013561344e816133a5565b929592945050506040919091013590565b6000806040838503121561347257600080fd5b823561347d816133a5565b915060208301356133f6816133a5565b634e487b7160e01b600052604160045260246000fd5b60405160a0810167ffffffffffffffff811182821017156134c6576134c661348d565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156134f5576134f561348d565b604052919050565b600067ffffffffffffffff8211156135175761351761348d565b5060051b60200190565b600082601f83011261353257600080fd5b81356020613547613542836134fd565b6134cc565b82815260059290921b8401810191818101908684111561356657600080fd5b8286015b8481101561358a57803561357d816133a5565b835291830191830161356a565b509695505050505050565b600080600080608085870312156135ab57600080fd5b84359350602085013567ffffffffffffffff8111156135c957600080fd5b6135d587828801613521565b949794965050505060408301359260600135919050565b600080600080600060a0868803121561360457600080fd5b853567ffffffffffffffff81111561361b57600080fd5b61362788828901613521565b9860208801359850604088013597606081013597506080013595509350505050565b60006020828403121561365b57600080fd5b5035919050565b60008060008060008060c0878903121561367b57600080fd5b863567ffffffffffffffff81111561369257600080fd5b61369e89828a01613521565b9960208901359950604089013598606081013598506080810135975060a0013595509350505050565b6000602082840312156136d957600080fd5b813561077c816133a5565b600080600083850360e08112156136fa57600080fd5b8435613705816133a5565b93506020850135613715816133a5565b925060a0603f198201121561372957600080fd5b506137326134a3565b6040850135613740816133a5565b815260608501356020820152608085013561375a816133a5565b604082015260a0850135606082015260c0850135613777816133ba565b608082015292959194509192509050565b63ffffffff811681146111dd57600080fd5b6000602082840312156137ac57600080fd5b813561077c81613788565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526016908201527514ddd85c149bdd5d195c8e881b1a5b5a5d0818d85b1b60521b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008282101561385a5761385a613832565b500390565b60208082526026908201527f546f6b656e4d61726b65743a3a696e70757420657468206973206e6f7420616360408201526563757261746560d01b606082015260800190565b6000826138c257634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156138da576138da613832565b500190565b60008160001904831182151516156138f9576138f9613832565b500290565b600081518084526020808501945080840160005b838110156139375781516001600160a01b031687529582019590820190600101613912565b509495945050505050565b828152604060208201526000612c7a60408301846138fe565b6000602080838503121561396e57600080fd5b825167ffffffffffffffff81111561398557600080fd5b8301601f8101851361399657600080fd5b80516139a4613542826134fd565b81815260059190911b820183019083810190878311156139c357600080fd5b928401925b828410156139e1578351825292840192908401906139c8565b979650505050505050565b600063ffffffff83811690831681811015613a0957613a09613832565b039392505050565b6000825160005b81811015613a325760208186018101518583015201613a18565b81811115613a41576000828501525b509190910192915050565b600060208284031215613a5e57600080fd5b815161077c816133ba565b85815284602082015260a060408201526000613a8860a08301866138fe565b6001600160a01b0394909416606083015250608001529392505050565b848152608060208201526000613abe60808301866138fe565b6001600160a01b03949094166040830152506060015292915050565b600060208284031215613aec57600080fd5b815161077c816133a5565b600060208284031215613b0957600080fd5b5051919050565b80516001600160701b0381168114613b2757600080fd5b919050565b600080600060608486031215613b4157600080fd5b613b4a84613b10565b9250613b5860208501613b10565b91506040840151613b6881613788565b80915050925092509256fea26469706673582212201c5744e437e098e4d7e53fea8ae290cba451a5f9c0a15819b0f7423ff77f8a1764736f6c634300080e0033",
|
|
815
|
+
"deployedBytecode": "0x6080604052600436106101ef5760003560e01c8063823e1c4e1161010c578063d96661ef1161009a578063f18798fd1161006c578063f18798fd146106a8578063f2fde38b146106c8578063f35cd4e2146106e8578063f620732614610720578063f9c95d461461074257005b8063d96661ef14610615578063ecce1fbd14610635578063ee924d8614610655578063f108f8761461067557005b80639b19251a116100de5780639b19251a1461054d578063aa5d448f1461057d578063aa7993c01461059d578063c04606f0146105d5578063cd27ca82146105f557005b8063823e1c4e146104e2578063868c9abc146104fc57806388697d661461051c5780638da5cb5b1461052f57005b80632d52aa4e1161018957806339088d851161015b57806339088d85146103f85780633fc8cef31461042a57806348c8cd6c146104625780635e5ce28114610478578063715018a6146104cd57005b80632d52aa4e146103745780633041949b146103a5578063340ce57f146103c5578063382b06ff146103e557005b80630d83b1e4116101c25780630d83b1e4146102815780631b153401146102975780632926e5de146102b75780632bd2c18d1461035457005b8062067411146101f8578063016eb8a81461022157806304c8c100146102415780630a99d30f1461026157005b366101f657005b005b34801561020457600080fd5b5061020e60105481565b6040519081526020015b60405180910390f35b34801561022d57600080fd5b5061020e61023c366004613383565b610762565b34801561024d57600080fd5b506101f661025c3660046133c8565b610783565b34801561026d57600080fd5b506101f661027c366004613401565b6107e1565b34801561028d57600080fd5b5061020e600e5481565b3480156102a357600080fd5b506101f66102b236600461341e565b61081e565b3480156102c357600080fd5b5061031b6102d236600461345f565b6005602090815260009283526040808420909152908252902080546001820154600283015460038401546004909401546001600160a01b03938416949293909116919060ff1685565b604080516001600160a01b039687168152602081019590955292909416918301919091526060820152901515608082015260a001610218565b34801561036057600080fd5b5061020e61036f366004613595565b61089d565b34801561038057600080fd5b50600a5461039590600160281b900460ff1681565b6040519015158152602001610218565b3480156103b157600080fd5b506101f66103c036600461345f565b6108f2565b3480156103d157600080fd5b506101f66103e036600461341e565b610991565b6101f66103f33660046135ec565b610a03565b34801561040457600080fd5b50600d546104159063ffffffff1681565b60405163ffffffff9091168152602001610218565b34801561043657600080fd5b5060025461044a906001600160a01b031681565b6040516001600160a01b039091168152602001610218565b34801561046e57600080fd5b5061020e600f5481565b34801561048457600080fd5b5061049861049336600461345f565b610e43565b60408051845163ffffffff1681526020808601519082015293810151908401526060830191909152608082015260a001610218565b3480156104d957600080fd5b506101f6610f5d565b3480156104ee57600080fd5b50600a546103959060ff1681565b34801561050857600080fd5b506101f6610517366004613649565b610f93565b6101f661052a366004613662565b611017565b34801561053b57600080fd5b506000546001600160a01b031661044a565b34801561055957600080fd5b506103956105683660046136c7565b60046020526000908152604090205460ff1681565b34801561058957600080fd5b506101f66105983660046136c7565b6111aa565b3480156105a957600080fd5b5061020e6105b836600461345f565b600c60209081526000928352604080842090915290825290205481565b3480156105e157600080fd5b506101f66105f0366004613649565b6111e0565b34801561060157600080fd5b5061020e61061036600461345f565b611265565b34801561062157600080fd5b5060035461044a906001600160a01b031681565b34801561064157600080fd5b506101f66106503660046136e4565b611291565b34801561066157600080fd5b506101f6610670366004613401565b6113a3565b34801561068157600080fd5b50610415610690366004613649565b60086020526000908152604090205463ffffffff1681565b3480156106b457600080fd5b506101f66106c336600461379a565b6113ed565b3480156106d457600080fd5b506101f66106e33660046136c7565b611482565b3480156106f457600080fd5b5061020e61070336600461345f565b600b60209081526000928352604080842090915290825290205481565b34801561072c57600080fd5b50600a5461041590610100900463ffffffff1681565b34801561074e57600080fd5b506101f661075d36600461379a565b61151a565b600e5460009061077c9061077685856115b5565b906115c1565b9392505050565b6000546001600160a01b031633146107b65760405162461bcd60e51b81526004016107ad906137b7565b60405180910390fd5b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461080b5760405162461bcd60e51b81526004016107ad906137b7565b600a805460ff1916911515919091179055565b6000546001600160a01b031633146108485760405162461bcd60e51b81526004016107ad906137b7565b6108538383836115cd565b6108985760405162461bcd60e51b8152602060048201526016602482015275151bdad95b93585c9ad95d0e8e9cd95b990819985a5b60521b60448201526064016107ad565b505050565b600080808481036108ca576108b28787611604565b91506108c084836000611721565b91508192506108e8565b6108d487876117be565b90506108e284826001611721565b90508092505b5050949350505050565b3360009081526004602052604090205460ff166109215760405162461bcd60e51b81526004016107ad906137ec565b60006001600160a01b038316156109385782610945565b6002546001600160a01b03165b905060006001600160a01b0383161561095e578261096b565b6002546001600160a01b03165b905061098a8282600a60019054906101000a900463ffffffff166118c0565b5050505050565b3360009081526004602052604090205460ff166109c05760405162461bcd60e51b81526004016107ad906137ec565b6001600160a01b039283166000818152600b602090815260408083209590961680835294815285822093909355908152600c825283812092815291905220429055565b610a0b611b32565b333214610a5a5760405162461bcd60e51b815260206004820152601b60248201527f546f6b656e4d61726b65743a3a496c6c6567616c2063616c6c6572000000000060448201526064016107ad565b333b15610ab55760405162461bcd60e51b8152602060048201526024808201527f546f6b656e4d61726b65743a3a50726f686962697420636f6e74726163742063604482015263616c6c7360e01b60648201526084016107ad565b8215610b035760405162461bcd60e51b815260206004820152601960248201527f546f6b656e4d61726b65743a3a496e76616c696420736964650000000000000060448201526064016107ad565b6003855110610b545760405162461bcd60e51b815260206004820181905260248201527f546f6b656e4d61726b65743a3a496e76616c69642070617468206c656e67746860448201526064016107ad565b600085600081518110610b6957610b6961381c565b6020026020010151905060008660018851610b849190613848565b81518110610b9457610b9461381c565b6020908102919091018101516001600160a01b0380851660009081526005845260408082209284168252919093529091206004015490915060ff16610c1b5760405162461bcd60e51b815260206004820152601e60248201527f546f6b656e4d61726b65743a3a54726164652070616972206973206f6666000060448201526064016107ad565b60006040518060400160405280610c3185611b8b565b8152602001846001600160a01b0316815250905060006040518060400160405280610c5b85611b8b565b81526001600160a01b0385166020909101528251909150600303610c8a57610c858433308b611bc9565b610caa565b87341015610caa5760405162461bcd60e51b81526004016107ad9061385f565b610cd3610cb885858b611cff565b610ccd610cc687878d611dfe565b8b90611ee9565b90611ee9565b9750610ce084848a611ef5565b600087600003610d0557610cf4898b611604565b9050610d0286826000611721565b90505b6000610d1784848c858f8e8e30611fba565b905081811015610d695760405162461bcd60e51b815260206004820152601f60248201527f546f6b656e4d61726b65743a3a42656c6f77206578706563746174696f6e730060448201526064016107ad565b610d7586868c846122ce565b8115610dd657610d8a836020015133846115cd565b610dd65760405162461bcd60e51b815260206004820152601c60248201527f546f6b656e4d61726b65743a3a73656e6420746f6b656e206661696c0000000060448201526064016107ad565b604080513381526001600160a01b038881166020830152871681830152606081018c90526080810184905260a0810183905290517f96c33ff19b53193fda53bab8868675504d5ac0c24f257e854da2493e7e3151859181900360c00190a150505050505061098a60018055565b610e6d6040518060600160405280600063ffffffff16815260200160008152602001600081525090565b600a546000908190600160281b900460ff16610ea957505060408051606081018252600080825260208201819052918101829052915080610f56565b60006001600160a01b03861615610ec05785610ecd565b6002546001600160a01b03165b905060006001600160a01b03861615610ee65785610ef3565b6002546001600160a01b03165b90506000610f018383612428565b60008181526009602090815260408083208151606081018352815463ffffffff168152600182015481850152600290910154818301529383526006825280832054600790925290912054919750955093505050505b9250925092565b6000546001600160a01b03163314610f875760405162461bcd60e51b81526004016107ad906137b7565b610f9160006124b9565b565b6000546001600160a01b03163314610fbd5760405162461bcd60e51b81526004016107ad906137b7565b6002600e54610fcc91906138a5565b8111156110125760405162461bcd60e51b8152602060048201526014602482015273546f6b656e4d61726b65743a3a4d61782035302560601b60448201526064016107ad565b601055565b3360009081526004602052604090205460ff166110465760405162461bcd60e51b81526004016107ad906137ec565b61104e611b32565b82600003611075576110608587611604565b935061106e81856000611721565b9350611090565b61107f84876117be565b945061108d81866001611721565b94505b6000866000815181106110a5576110a561381c565b60200260200101519050600087600189516110c09190613848565b815181106110d0576110d061381c565b60200260200101519050600060405180604001604052806110f085611b8b565b8152602001846001600160a01b031681525090506000604051806040016040528061111a85611b8b565b81526001600160a01b0385166020909101528251909150600303611149576111448433308c611bc9565b611184565b883410156111695760405162461bcd60e51b81526004016107ad9061385f565b88341115611184576111843361117f8b34613848565b612509565b61119482828b8b8e8c8c33611fba565b50505050506111a260018055565b505050505050565b6000546001600160a01b031633146111d45760405162461bcd60e51b81526004016107ad906137b7565b6111dd81612622565b50565b6000546001600160a01b0316331461120a5760405162461bcd60e51b81526004016107ad906137b7565b6002600e5461121991906138a5565b8111156112605760405162461bcd60e51b81526020600482015260156024820152740a8ded6cadc9ac2e4d6cae87474a8dede40d0d2ced605b1b60448201526064016107ad565b600f55565b600a54600090600160281b900460ff166112815750600061128b565b61077c8383612428565b92915050565b6000546001600160a01b031633146112bb5760405162461bcd60e51b81526004016107ad906137b7565b600e54816060015182602001516112d291906138c7565b11156113205760405162461bcd60e51b815260206004820181905260248201527f546f6b656e4d61726b65743a3a66656552617465203c3d20706f696e744d617860448201526064016107ad565b6001600160a01b039283166000908152600560209081526040808320948616835293815290839020825181549086166001600160a01b03199182161782559183015160018201559282015160028401805491909516911617909255606082015160038201556080909101516004909101805491151560ff19909216919091179055565b6000546001600160a01b031633146113cd5760405162461bcd60e51b81526004016107ad906137b7565b600a8054911515600160281b0265ff000000000019909216919091179055565b6000546001600160a01b031633146114175760405162461bcd60e51b81526004016107ad906137b7565b60788163ffffffff1610156114665760405162461bcd60e51b8152602060048201526015602482015274546f6b656e4d61726b65743a3a4d696e203132307360581b60448201526064016107ad565b600d805463ffffffff191663ffffffff92909216919091179055565b6000546001600160a01b031633146114ac5760405162461bcd60e51b81526004016107ad906137b7565b6001600160a01b0381166115115760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107ad565b6111dd816124b9565b6000546001600160a01b031633146115445760405162461bcd60e51b81526004016107ad906137b7565b60788163ffffffff1610156115935760405162461bcd60e51b8152602060048201526015602482015274546f6b656e4d61726b65743a3a4d696e203132307360581b60448201526064016107ad565b600a805463ffffffff9092166101000264ffffffff0019909216919091179055565b600061077c82846138df565b600061077c82846138a5565b60006001600160a01b0384166115ef576115e78383612509565b50600161077c565b6115fa848484612723565b5060019392505050565b60035460405163d06ca61f60e01b815260009182916001600160a01b039091169063d06ca61f9061163b9087908790600401613942565b600060405180830381865afa158015611658573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611680919081019061395b565b90508061169860018351611ee990919063ffffffff16565b815181106116a8576116a861381c565b602002602001015191506000821161171a5760405162461bcd60e51b815260206004820152602f60248201527f546f6b656e4d61726b65743a3a6f7574416d6f756e742073686f756c6420626560448201526e02067726561746572207468616e203608c1b60648201526084016107ad565b5092915050565b60006002600e5461173291906138a5565b8411156117785760405162461bcd60e51b8152602060048201526014602482015273546f6b656e4d61726b65743a3a4d61782035302560601b60448201526064016107ad565b6001821561179457600e5461178d908661284d565b90506117a4565b600e546117a19086611ee9565b90505b600e546117b59061077686846115b5565b95945050505050565b6003546040516307c0329d60e21b815260009182916001600160a01b0390911690631f00ca74906117f59087908790600401613942565b600060405180830381865afa158015611812573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261183a919081019061395b565b90508060008151811061184f5761184f61381c565b602002602001015191506000821161171a5760405162461bcd60e51b815260206004820152602e60248201527f546f6b656e4d61726b65743a3a696e416d6f756e742073686f756c642062652060448201526d067726561746572207468616e20360941b60648201526084016107ad565b6000806118cd8585612428565b60008181526009602052604081209192506118e88787612859565b50905060008060006118f984612a29565b8754929550909350915063ffffffff1660000361194257845463ffffffff191663ffffffff919091161784556001840191909155600290920191909155506000915061077c9050565b84546000906119579063ffffffff16836139ec565b90508863ffffffff168163ffffffff16101561197d57600097505050505050505061077c565b60008163ffffffff168760010154866119969190613848565b6119a091906138a5565b905060008263ffffffff168860020154866119bb9190613848565b6119c591906138a5565b90506119de82670de0b6b3a7640000600160701b612c13565b60008a815260066020526040902055611a0481670de0b6b3a7640000600160701b612c13565b60008a815260076020908152604080832093909355600690522054611a7a5760405162461bcd60e51b815260206004820152602660248201527f546f6b656e4d61726b65743a3a496e76616c696420545741502028707269636560448201526530547761702960d01b60648201526084016107ad565b600089815260076020526040902054611ae45760405162461bcd60e51b815260206004820152602660248201527f546f6b656e4d61726b65743a3a496e76616c696420545741502028707269636560448201526531547761702960d01b60648201526084016107ad565b505050600095865260086020526040909520805463ffffffff1990811663ffffffff909716968717909155845416909417835560018381019190915560029092019290925595945050505050565b600260015403611b845760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107ad565b6002600155565b60006001600160a01b038216611ba357506001919050565b6002546001600160a01b0390811690831603611bc157506002919050565b506003919050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b1790529151600092839290881691611c2d9190613a11565b6000604051808303816000865af19150503d8060008114611c6a576040519150601f19603f3d011682016040523d82523d6000602084013e611c6f565b606091505b5091509150818015611c99575080511580611c99575080806020019051810190611c999190613a4c565b6111a25760405162461bcd60e51b815260206004820152603160248201527f5472616e7366657248656c7065723a3a7472616e7366657246726f6d3a207472604482015270185b9cd9995c919c9bdb4819985a5b1959607a1b60648201526084016107ad565b6001600160a01b038084166000908152600560209081526040808320868516808552818452828520835160a08101855281548816815260018201548187015260028201549097169387019390935260038301546060870181905260049093015460ff16151560808701528452909152909190808303611d835760009250505061077c565b611d8d8482610762565b925082600003611d9e57505061077c565b60006040518060400160405280611db489611b8b565b81526001600160a01b0389166020909101528051909150600303611de657611de187846040015186612723565b611df4565b611df4836040015185612c82565b5050509392505050565b6001600160a01b038084166000908152600560209081526040808320868516808552818452828520835160a0810185528154881681526001820154818701819052600283015490981694810194909452600381015460608501526004015460ff161515608084015284529091529091808303611e7f5760009250505061077c565b611e898482610762565b925082600003611e9a57505061077c565b60006040518060400160405280611eb089611b8b565b81526001600160a01b0389166020909101528051909150600303611edd57611de187846000015186612723565b8251611df49085612c82565b600061077c8284613848565b60006001600160a01b03841615611f0c5783611f19565b6002546001600160a01b03165b905060006001600160a01b03841615611f325783611f3f565b6002546001600160a01b03165b90506000611f4d8383612d5c565b509050600e5460105482611f6191906138df565b611f6b91906138a5565b8411156111a25760405162461bcd60e51b815260206004820152601c60248201527f546f6b656e4d61726b65743a3a496e70757420746f6f206c617267650000000060448201526064016107ad565b8751600090600303611fe2576020890151600354611fe291906001600160a01b031689612f00565b606060008a6000015160011480611ffa57508a516002145b905060008a600001516001148061201257508a516002145b905081158015612020575080155b156120eb57866000036120b3576003546040516338ed173960e01b81526001600160a01b03909116906338ed173990612065908d908d908d908b908d90600401613a69565b6000604051808303816000875af1158015612084573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526120ac919081019061395b565b9250612296565b600354604051634401edf760e11b81526001600160a01b0390911690638803dbee90612065908c908e908d908b908d90600401613a69565b8180156120f6575080155b156121ba578660000361218257600354604051637ff36ab560e01b81526001600160a01b0390911690637ff36ab5908c9061213b908d908d908b908d90600401613aa5565b60006040518083038185885af1158015612159573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f191682016040526120ac919081019061395b565b60035460405163fb3bdb4160e01b81526001600160a01b039091169063fb3bdb41908c9061213b908d908d908b908d90600401613aa5565b811580156121c55750805b15612242578660000361220a576003546040516318cbafe560e01b81526001600160a01b03909116906318cbafe590612065908d908d908d908b908d90600401613a69565b600354604051632512eca560e11b81526001600160a01b0390911690634a25d94a90612065908c908e908d908b908d90600401613a69565b60405162461bcd60e51b8152602060048201526024808201527f546f6b656e4d61726b65743a3a4554483c2d3e455448206e6f7420737570706f6044820152631c9d195960e21b60648201526084016107ad565b82600184516122a59190613848565b815181106122b5576122b561381c565b6020026020010151935050505098975050505050505050565b6000821180156122de5750600081115b61232a5760405162461bcd60e51b815260206004820152601860248201527f546f6b656e4d61726b65743a3a5a65726f20616d6f756e74000000000000000060448201526064016107ad565b6000806123378686613028565b9150915080612347575050612422565b60008461235c85670de0b6b3a76400006138df565b61236691906138a5565b90506000600e54600f548561237b91906138df565b61238591906138a5565b905060008185116123975760006123a1565b6123a18286613848565b905060006123af83876138c7565b90508184101580156123c15750808411155b61241b5760405162461bcd60e51b815260206004820152602560248201527f546f6b656e4d61726b65743a3a507269636520646576696174696f6e20746f6f604482015264040d0d2ced60db1b60648201526084016107ad565b5050505050505b50505050565b6000816001600160a01b0316836001600160a01b0316101561248b576040516bffffffffffffffffffffffff19606085811b8216602084015284901b1660348201526048015b60405160208183030381529060405280519060200120905061128b565b6040516bffffffffffffffffffffffff19606084811b8216602084015285901b16603482015260480161246e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b804710156125595760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016107ad565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146125a6576040519150601f19603f3d011682016040523d82523d6000602084013e6125ab565b606091505b50509050806108985760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016107ad565b6001600160a01b0381166126835760405162461bcd60e51b815260206004820152602260248201527f546f6b656e4d61726b65743a3a696e76616c696420726f757465206164647265604482015261737360f01b60648201526084016107ad565b600380546001600160a01b0319166001600160a01b038316908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa1580156126dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127009190613ada565b600280546001600160a01b0319166001600160a01b039290921691909117905550565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b179052915160009283929087169161277f9190613a11565b6000604051808303816000865af19150503d80600081146127bc576040519150601f19603f3d011682016040523d82523d6000602084013e6127c1565b606091505b50915091508180156127eb5750805115806127eb5750808060200190518101906127eb9190613a4c565b61098a5760405162461bcd60e51b815260206004820152602d60248201527f5472616e7366657248656c7065723a3a736166655472616e736665723a20747260448201526c185b9cd9995c8819985a5b1959609a1b60648201526084016107ad565b600061077c82846138c7565b6000806000600360009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128d59190613ada565b60405163e6a4390560e01b81526001600160a01b038781166004830152868116602483015291925060009183169063e6a4390590604401602060405180830381865afa158015612929573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061294d9190613ada565b90506001600160a01b0381166129a55760405162461bcd60e51b815260206004820152601b60248201527f546f6b656e4d61726b65743a3a50616972206e6f74206578697374000000000060448201526064016107ad565b809350836001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129e6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a0a9190613ada565b6001600160a01b0316866001600160a01b031614925050509250929050565b6000806000836001600160a01b0316635909c0d56040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a909190613af7565b9250836001600160a01b0316635a3d54936040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ad0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612af49190613af7565b91506000806000866001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015612b39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b5d9190613b2c565b9250925092504293508363ffffffff168163ffffffff1614612c09576000612b8582866139ec565b905063ffffffff8116612bb16001600160701b038616600160701b600160e01b03607087901b166138a5565b612bbb91906138df565b612bc590886138c7565b965063ffffffff8116612bf16001600160701b038516600160701b600160e01b03607088901b166138a5565b612bfb91906138df565b612c0590876138c7565b9550505b5050509193909250565b600081600003612c655760405162461bcd60e51b815260206004820152601860248201527f6d756c4469763a206469766973696f6e206279207a65726f000000000000000060448201526064016107ad565b81612c7084866138df565b612c7a91906138a5565b949350505050565b604080516000808252602082019092526001600160a01b038416908390604051612cac9190613a11565b60006040518083038185875af1925050503d8060008114612ce9576040519150601f19603f3d011682016040523d82523d6000602084013e612cee565b606091505b50509050806108985760405162461bcd60e51b815260206004820152603460248201527f5472616e7366657248656c7065723a3a736166655472616e736665724554483a60448201527308115512081d1c985b9cd9995c8819985a5b195960621b60648201526084016107ad565b6000806000600360009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015612db4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dd89190613ada565b60405163e6a4390560e01b81526001600160a01b0387811660048301528681166024830152919091169063e6a4390590604401602060405180830381865afa158015612e28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e4c9190613ada565b9050600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015612e8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612eb39190613b2c565b506001600160701b031691506001600160701b03169150856001600160a01b0316876001600160a01b03161015612eef57819450809350612ef6565b8094508193505b5050509250929050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b1790529151600092839290871691612f5c9190613a11565b6000604051808303816000865af19150503d8060008114612f99576040519150601f19603f3d011682016040523d82523d6000602084013e612f9e565b606091505b5091509150818015612fc8575080511580612fc8575080806020019051810190612fc89190613a4c565b61098a5760405162461bcd60e51b815260206004820152602b60248201527f5472616e7366657248656c7065723a3a73616665417070726f76653a2061707060448201526a1c9bdd994819985a5b195960aa1b60648201526084016107ad565b600a54600090819060ff16156131f55760006001600160a01b0385161561304f578461305c565b6002546001600160a01b03165b905060006001600160a01b038516156130755784613082565b6002546001600160a01b03165b905060006130908383612428565b90506130af8383600a60019054906101000a900463ffffffff166118c0565b5060008181526008602052604090205463ffffffff168015806130de5750600082815260066020526040902054155b806130f55750600082815260076020526040902054155b156131605761310484846132f7565b600a5490965060009550600160281b900460ff16156131575760408051878152600060208201527ffb3582a7ead56856e76f4dd65cb289a4eab99d7838c6ab0c08ea8dc71c51ae85910160405180910390a15b505050506132f0565b600061316c8585612859565b9150508061318857600083815260076020526040902054613198565b6000838152600660205260409020545b600a54909750600160281b900460ff16156131e75760408051888152600160208201527ffb3582a7ead56856e76f4dd65cb289a4eab99d7838c6ab0c08ea8dc71c51ae85910160405180910390a15b6001955050505050506132f0565b6001600160a01b038085166000818152600b6020908152604080832094881680845294825280832054938352600c82528083209483529390529190912054600d5491935090429061324c9063ffffffff16836138c7565b101561329a5760405162461bcd60e51b815260206004820152601b60248201527f546f6b656e4d61726b65743a3a5072696365206f75746461746564000000000060448201526064016107ad565b600083116132ea5760405162461bcd60e51b815260206004820152601a60248201527f546f6b656e4d61726b65743a3a4e6f207072696365206665656400000000000060448201526064016107ad565b60009150505b9250929050565b60008060006133068585612d5c565b9150915060008211801561331a5750600081115b6133665760405162461bcd60e51b815260206004820152601960248201527f546f6b656e4d61726b65743a3a4e6f206c69717569646974790000000000000060448201526064016107ad565b8161337982670de0b6b3a76400006138df565b6117b591906138a5565b6000806040838503121561339657600080fd5b50508035926020909101359150565b6001600160a01b03811681146111dd57600080fd5b80151581146111dd57600080fd5b600080604083850312156133db57600080fd5b82356133e6816133a5565b915060208301356133f6816133ba565b809150509250929050565b60006020828403121561341357600080fd5b813561077c816133ba565b60008060006060848603121561343357600080fd5b833561343e816133a5565b9250602084013561344e816133a5565b929592945050506040919091013590565b6000806040838503121561347257600080fd5b823561347d816133a5565b915060208301356133f6816133a5565b634e487b7160e01b600052604160045260246000fd5b60405160a0810167ffffffffffffffff811182821017156134c6576134c661348d565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156134f5576134f561348d565b604052919050565b600067ffffffffffffffff8211156135175761351761348d565b5060051b60200190565b600082601f83011261353257600080fd5b81356020613547613542836134fd565b6134cc565b82815260059290921b8401810191818101908684111561356657600080fd5b8286015b8481101561358a57803561357d816133a5565b835291830191830161356a565b509695505050505050565b600080600080608085870312156135ab57600080fd5b84359350602085013567ffffffffffffffff8111156135c957600080fd5b6135d587828801613521565b949794965050505060408301359260600135919050565b600080600080600060a0868803121561360457600080fd5b853567ffffffffffffffff81111561361b57600080fd5b61362788828901613521565b9860208801359850604088013597606081013597506080013595509350505050565b60006020828403121561365b57600080fd5b5035919050565b60008060008060008060c0878903121561367b57600080fd5b863567ffffffffffffffff81111561369257600080fd5b61369e89828a01613521565b9960208901359950604089013598606081013598506080810135975060a0013595509350505050565b6000602082840312156136d957600080fd5b813561077c816133a5565b600080600083850360e08112156136fa57600080fd5b8435613705816133a5565b93506020850135613715816133a5565b925060a0603f198201121561372957600080fd5b506137326134a3565b6040850135613740816133a5565b815260608501356020820152608085013561375a816133a5565b604082015260a0850135606082015260c0850135613777816133ba565b608082015292959194509192509050565b63ffffffff811681146111dd57600080fd5b6000602082840312156137ac57600080fd5b813561077c81613788565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526016908201527514ddd85c149bdd5d195c8e881b1a5b5a5d0818d85b1b60521b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008282101561385a5761385a613832565b500390565b60208082526026908201527f546f6b656e4d61726b65743a3a696e70757420657468206973206e6f7420616360408201526563757261746560d01b606082015260800190565b6000826138c257634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156138da576138da613832565b500190565b60008160001904831182151516156138f9576138f9613832565b500290565b600081518084526020808501945080840160005b838110156139375781516001600160a01b031687529582019590820190600101613912565b509495945050505050565b828152604060208201526000612c7a60408301846138fe565b6000602080838503121561396e57600080fd5b825167ffffffffffffffff81111561398557600080fd5b8301601f8101851361399657600080fd5b80516139a4613542826134fd565b81815260059190911b820183019083810190878311156139c357600080fd5b928401925b828410156139e1578351825292840192908401906139c8565b979650505050505050565b600063ffffffff83811690831681811015613a0957613a09613832565b039392505050565b6000825160005b81811015613a325760208186018101518583015201613a18565b81811115613a41576000828501525b509190910192915050565b600060208284031215613a5e57600080fd5b815161077c816133ba565b85815284602082015260a060408201526000613a8860a08301866138fe565b6001600160a01b0394909416606083015250608001529392505050565b848152608060208201526000613abe60808301866138fe565b6001600160a01b03949094166040830152506060015292915050565b600060208284031215613aec57600080fd5b815161077c816133a5565b600060208284031215613b0957600080fd5b5051919050565b80516001600160701b0381168114613b2757600080fd5b919050565b600080600060608486031215613b4157600080fd5b613b4a84613b10565b9250613b5860208501613b10565b91506040840151613b6881613788565b80915050925092509256fea26469706673582212201c5744e437e098e4d7e53fea8ae290cba451a5f9c0a15819b0f7423ff77f8a1764736f6c634300080e0033",
|
|
1448
816
|
"linkReferences": {},
|
|
1449
817
|
"deployedLinkReferences": {}
|
|
1450
818
|
}
|