-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathPancakeRouter01.json
778 lines (778 loc) · 70.1 KB
/
PancakeRouter01.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
{
"contractName": "PancakeRouter01",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "_factory",
"type": "address"
},
{
"internalType": "address",
"name": "_WETH",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "WETH",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
},
{
"internalType": "uint256",
"name": "amountADesired",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountBDesired",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountAMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountBMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "addLiquidity",
"outputs": [
{
"internalType": "uint256",
"name": "amountA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountB",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "amountTokenDesired",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountTokenMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETHMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "addLiquidityETH",
"outputs": [
{
"internalType": "uint256",
"name": "amountToken",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETH",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "factory",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveOut",
"type": "uint256"
}
],
"name": "getAmountIn",
"outputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveOut",
"type": "uint256"
}
],
"name": "getAmountOut",
"outputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
}
],
"name": "getAmountsIn",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
}
],
"name": "getAmountsOut",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveB",
"type": "uint256"
}
],
"name": "quote",
"outputs": [
{
"internalType": "uint256",
"name": "amountB",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountAMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountBMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "removeLiquidity",
"outputs": [
{
"internalType": "uint256",
"name": "amountA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountB",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountTokenMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETHMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "removeLiquidityETH",
"outputs": [
{
"internalType": "uint256",
"name": "amountToken",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETH",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountTokenMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETHMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "bool",
"name": "approveMax",
"type": "bool"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"name": "removeLiquidityETHWithPermit",
"outputs": [
{
"internalType": "uint256",
"name": "amountToken",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETH",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountAMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountBMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "bool",
"name": "approveMax",
"type": "bool"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"name": "removeLiquidityWithPermit",
"outputs": [
{
"internalType": "uint256",
"name": "amountA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountB",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapETHForExactTokens",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactETHForTokens",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactTokensForETH",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactTokensForTokens",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountInMax",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapTokensForExactETH",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountInMax",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapTokensForExactTokens",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"stateMutability": "payable",
"type": "receive"
}
],
"bytecode": "0x60c060405234801561001057600080fd5b5060405161360e38038061360e8339818101604052604081101561003357600080fd5b5080516020909101516001600160601b0319606092831b8116608052911b1660a05260805160601c60a05160601c6134d261013c600039806101285280610a015280610a3c5280610b335280610d5152806110db528061125f52806113a5528061142d528061168252806119725280611be55280611c3b5280611c6f5280611ce35280611e835280611fc6528061204e525080610bc15280610c985280610e175280610e505280610f8b528061116952806112f2528061145f52806115d252806116ff52806118f7528061192052806119505280611abd5280611c195280611f1652806120805280612927528061296a5280612db15280612e5f5280612edf52506134d26000f3fe6080604052600436106101185760003560e01c80638803dbee116100a0578063d06ca61f11610064578063d06ca61f14610742578063ded9382a146107f7578063e8e337001461086a578063f305d719146108ea578063fb3bdb411461093057610151565b80638803dbee146105d3578063ad5c464814610669578063ad615dec1461069a578063baa2abde146106d0578063c45a01551461072d57610151565b80632195995c116100e75780632195995c146103a557806338ed1739146104235780634a25d94a146104b95780637ff36ab51461054f57806385f8c259146101c257610151565b806302751cec14610156578063054d50d4146101c257806318cbafe51461020a5780631f00ca74146102f057610151565b3661015157336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461014f57fe5b005b600080fd5b34801561016257600080fd5b506101a9600480360360c081101561017957600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a001356109b4565b6040805192835260208301919091528051918290030190f35b3480156101ce57600080fd5b506101f8600480360360608110156101e557600080fd5b5080359060208101359060400135610ace565b60408051918252519081900360200190f35b34801561021657600080fd5b506102a0600480360360a081101561022d57600080fd5b813591602081013591810190606081016040820135600160201b81111561025357600080fd5b82018360208201111561026557600080fd5b803590602001918460208302840111600160201b8311171561028657600080fd5b91935091506001600160a01b038135169060200135610ae3565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102dc5781810151838201526020016102c4565b505050509050019250505060405180910390f35b3480156102fc57600080fd5b506102a06004803603604081101561031357600080fd5b81359190810190604081016020820135600160201b81111561033457600080fd5b82018360208201111561034657600080fd5b803590602001918460208302840111600160201b8311171561036757600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610e10945050505050565b3480156103b157600080fd5b506101a960048036036101608110156103c957600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359091169060c08101359060e081013515159060ff6101008201351690610120810135906101400135610e46565b34801561042f57600080fd5b506102a0600480360360a081101561044657600080fd5b813591602081013591810190606081016040820135600160201b81111561046c57600080fd5b82018360208201111561047e57600080fd5b803590602001918460208302840111600160201b8311171561049f57600080fd5b91935091506001600160a01b038135169060200135610f40565b3480156104c557600080fd5b506102a0600480360360a08110156104dc57600080fd5b813591602081013591810190606081016040820135600160201b81111561050257600080fd5b82018360208201111561051457600080fd5b803590602001918460208302840111600160201b8311171561053557600080fd5b91935091506001600160a01b03813516906020013561108b565b6102a06004803603608081101561056557600080fd5b81359190810190604081016020820135600160201b81111561058657600080fd5b82018360208201111561059857600080fd5b803590602001918460208302840111600160201b831117156105b957600080fd5b91935091506001600160a01b038135169060200135611217565b3480156105df57600080fd5b506102a0600480360360a08110156105f657600080fd5b813591602081013591810190606081016040820135600160201b81111561061c57600080fd5b82018360208201111561062e57600080fd5b803590602001918460208302840111600160201b8311171561064f57600080fd5b91935091506001600160a01b038135169060200135611587565b34801561067557600080fd5b5061067e611680565b604080516001600160a01b039092168252519081900360200190f35b3480156106a657600080fd5b506101f8600480360360608110156106bd57600080fd5b50803590602081013590604001356116a4565b3480156106dc57600080fd5b506101a9600480360360e08110156106f357600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359091169060c001356116b1565b34801561073957600080fd5b5061067e6118f5565b34801561074e57600080fd5b506102a06004803603604081101561076557600080fd5b81359190810190604081016020820135600160201b81111561078657600080fd5b82018360208201111561079857600080fd5b803590602001918460208302840111600160201b831117156107b957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611919945050505050565b34801561080357600080fd5b506101a9600480360361014081101561081b57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e08201351690610100810135906101200135611946565b34801561087657600080fd5b506108cc600480360361010081101561088e57600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359160c0820135169060e00135611a5a565b60408051938452602084019290925282820152519081900360600190f35b6108cc600480360360c081101561090057600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a00135611b96565b6102a06004803603608081101561094657600080fd5b81359190810190604081016020820135600160201b81111561096757600080fd5b82018360208201111561097957600080fd5b803590602001918460208302840111600160201b8311171561099a57600080fd5b91935091506001600160a01b038135169060200135611e3b565b60008082428110156109fb576040805162461bcd60e51b81526020600482015260166024820152600080516020613314833981519152604482015290519081900360640190fd5b610a2a897f00000000000000000000000000000000000000000000000000000000000000008a8a8a308a6116b1565b9093509150610a3a8986856121bd565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610aa057600080fd5b505af1158015610ab4573d6000803e3d6000fd5b50505050610ac28583612327565b50965096945050505050565b6000610adb84848461241f565b949350505050565b60608142811015610b29576040805162461bcd60e51b81526020600482015260166024820152600080516020613314833981519152604482015290519081900360640190fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001686866000198101818110610b6357fe5b905060200201356001600160a01b03166001600160a01b031614610bbc576040805162461bcd60e51b815260206004820152601b6024820152600080516020613380833981519152604482015290519081900360640190fd5b610c1a7f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061250f92505050565b91508682600184510381518110610c2d57fe5b60200260200101511015610c725760405162461bcd60e51b81526004018080602001828103825260298152602001806133346029913960400191505060405180910390fd5b610d1086866000818110610c8257fe5b905060200201356001600160a01b031633610cf67f00000000000000000000000000000000000000000000000000000000000000008a8a6000818110610cc457fe5b905060200201356001600160a01b03168b8b6001818110610ce157fe5b905060200201356001600160a01b031661265b565b85600081518110610d0357fe5b602002602001015161271b565b610d4f82878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250309250612878915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d83600185510381518110610d8e57fe5b60200260200101516040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610dcc57600080fd5b505af1158015610de0573d6000803e3d6000fd5b50505050610e058483600185510381518110610df857fe5b6020026020010151612327565b509695505050505050565b6060610e3d7f00000000000000000000000000000000000000000000000000000000000000008484612abe565b90505b92915050565b6000806000610e767f00000000000000000000000000000000000000000000000000000000000000008f8f61265b565b9050600087610e85578c610e89565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c4810188905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b158015610eff57600080fd5b505af1158015610f13573d6000803e3d6000fd5b50505050610f268f8f8f8f8f8f8f6116b1565b809450819550505050509b509b9950505050505050505050565b60608142811015610f86576040805162461bcd60e51b81526020600482015260166024820152600080516020613314833981519152604482015290519081900360640190fd5b610fe47f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061250f92505050565b91508682600184510381518110610ff757fe5b6020026020010151101561103c5760405162461bcd60e51b81526004018080602001828103825260298152602001806133346029913960400191505060405180910390fd5b61104c86866000818110610c8257fe5b610e0582878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250899250612878915050565b606081428110156110d1576040805162461bcd60e51b81526020600482015260166024820152600080516020613314833981519152604482015290519081900360640190fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168686600019810181811061110b57fe5b905060200201356001600160a01b03166001600160a01b031614611164576040805162461bcd60e51b815260206004820152601b6024820152600080516020613380833981519152604482015290519081900360640190fd5b6111c27f000000000000000000000000000000000000000000000000000000000000000089888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250612abe92505050565b915086826000815181106111d257fe5b60200260200101511115610c725760405162461bcd60e51b815260040180806020018281038252602581526020018061340a6025913960400191505060405180910390fd5b6060814281101561125d576040805162461bcd60e51b81526020600482015260166024820152600080516020613314833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168686600081811061129457fe5b905060200201356001600160a01b03166001600160a01b0316146112ed576040805162461bcd60e51b815260206004820152601b6024820152600080516020613380833981519152604482015290519081900360640190fd5b61134b7f00000000000000000000000000000000000000000000000000000000000000003488888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061250f92505050565b9150868260018451038151811061135e57fe5b602002602001015110156113a35760405162461bcd60e51b81526004018080602001828103825260298152602001806133346029913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0836000815181106113df57fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b15801561141257600080fd5b505af1158015611426573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb6114a87f00000000000000000000000000000000000000000000000000000000000000008989600081811061148b57fe5b905060200201356001600160a01b03168a8a6001818110610ce157fe5b846000815181106114b557fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561150c57600080fd5b505af1158015611520573d6000803e3d6000fd5b505050506040513d602081101561153657600080fd5b505161153e57fe5b61157d82878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250899250612878915050565b5095945050505050565b606081428110156115cd576040805162461bcd60e51b81526020600482015260166024820152600080516020613314833981519152604482015290519081900360640190fd5b61162b7f000000000000000000000000000000000000000000000000000000000000000089888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250612abe92505050565b9150868260008151811061163b57fe5b6020026020010151111561103c5760405162461bcd60e51b815260040180806020018281038252602581526020018061340a6025913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610adb848484612bf6565b60008082428110156116f8576040805162461bcd60e51b81526020600482015260166024820152600080516020613314833981519152604482015290519081900360640190fd5b60006117257f00000000000000000000000000000000000000000000000000000000000000008c8c61265b565b604080516323b872dd60e01b81523360048201526001600160a01b03831660248201819052604482018d9052915192935090916323b872dd916064808201926020929091908290030181600087803b15801561178057600080fd5b505af1158015611794573d6000803e3d6000fd5b505050506040513d60208110156117aa57600080fd5b50506040805163226bf2d160e21b81526001600160a01b03888116600483015282516000938493928616926389afcb44926024808301939282900301818787803b1580156117f757600080fd5b505af115801561180b573d6000803e3d6000fd5b505050506040513d604081101561182157600080fd5b5080516020909101519092509050600061183b8e8e612ca2565b509050806001600160a01b03168e6001600160a01b03161461185e578183611861565b82825b90975095508a8710156118a55760405162461bcd60e51b81526004018080602001828103825260248152602001806133a06024913960400191505060405180910390fd5b898610156118e45760405162461bcd60e51b81526004018080602001828103825260248152602001806134796024913960400191505060405180910390fd5b505050505097509795505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6060610e3d7f0000000000000000000000000000000000000000000000000000000000000000848461250f565b60008060006119967f00000000000000000000000000000000000000000000000000000000000000008e7f000000000000000000000000000000000000000000000000000000000000000061265b565b90506000876119a5578c6119a9565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c4810188905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b158015611a1f57600080fd5b505af1158015611a33573d6000803e3d6000fd5b50505050611a458e8e8e8e8e8e6109b4565b909f909e509c50505050505050505050505050565b60008060008342811015611aa3576040805162461bcd60e51b81526020600482015260166024820152600080516020613314833981519152604482015290519081900360640190fd5b611ab18c8c8c8c8c8c612d80565b90945092506000611ae37f00000000000000000000000000000000000000000000000000000000000000008e8e61265b565b9050611af18d33838861271b565b611afd8c33838761271b565b806001600160a01b0316636a627842886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050602060405180830381600087803b158015611b5557600080fd5b505af1158015611b69573d6000803e3d6000fd5b505050506040513d6020811015611b7f57600080fd5b5051949d939c50939a509198505050505050505050565b60008060008342811015611bdf576040805162461bcd60e51b81526020600482015260166024820152600080516020613314833981519152604482015290519081900360640190fd5b611c0d8a7f00000000000000000000000000000000000000000000000000000000000000008b348c8c612d80565b90945092506000611c5f7f00000000000000000000000000000000000000000000000000000000000000008c7f000000000000000000000000000000000000000000000000000000000000000061265b565b9050611c6d8b33838861271b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b158015611cc857600080fd5b505af1158015611cdc573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb82866040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015611d6157600080fd5b505af1158015611d75573d6000803e3d6000fd5b505050506040513d6020811015611d8b57600080fd5b5051611d9357fe5b806001600160a01b0316636a627842886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050602060405180830381600087803b158015611deb57600080fd5b505af1158015611dff573d6000803e3d6000fd5b505050506040513d6020811015611e1557600080fd5b5051925034841015611e2d57611e2d33853403612327565b505096509650969350505050565b60608142811015611e81576040805162461bcd60e51b81526020600482015260166024820152600080516020613314833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031686866000818110611eb857fe5b905060200201356001600160a01b03166001600160a01b031614611f11576040805162461bcd60e51b815260206004820152601b6024820152600080516020613380833981519152604482015290519081900360640190fd5b611f6f7f000000000000000000000000000000000000000000000000000000000000000088888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250612abe92505050565b91503482600081518110611f7f57fe5b60200260200101511115611fc45760405162461bcd60e51b815260040180806020018281038252602581526020018061340a6025913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db08360008151811061200057fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b15801561203357600080fd5b505af1158015612047573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb6120ac7f00000000000000000000000000000000000000000000000000000000000000008989600081811061148b57fe5b846000815181106120b957fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561211057600080fd5b505af1158015612124573d6000803e3d6000fd5b505050506040513d602081101561213a57600080fd5b505161214257fe5b61218182878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250899250612878915050565b8160008151811061218e57fe5b602002602001015134111561157d5761157d33836000815181106121ae57fe5b60200260200101513403612327565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b178152925182516000946060949389169392918291908083835b6020831061223a5780518252601f19909201916020918201910161221b565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461229c576040519150601f19603f3d011682016040523d82523d6000602084013e6122a1565b606091505b50915091508180156122cf5750805115806122cf57508080602001905160208110156122cc57600080fd5b50515b612320576040805162461bcd60e51b815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604482015290519081900360640190fd5b5050505050565b604080516000808252602082019092526001600160a01b0384169083906040518082805190602001908083835b602083106123735780518252601f199092019160209182019101612354565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146123d5576040519150601f19603f3d011682016040523d82523d6000602084013e6123da565b606091505b505090508061241a5760405162461bcd60e51b81526004018080602001828103825260238152602001806133e76023913960400191505060405180910390fd5b505050565b600080841161245f5760405162461bcd60e51b81526004018080602001828103825260298152602001806132c16029913960400191505060405180910390fd5b60008311801561246f5750600082115b6124aa5760405162461bcd60e51b815260040180806020018281038252602681526020018061342f6026913960400191505060405180910390fd5b60006124be856103e663ffffffff612ff416565b905060006124d2828563ffffffff612ff416565b905060006124f8836124ec886103e863ffffffff612ff416565b9063ffffffff61305716565b905080828161250357fe5b04979650505050505050565b6060600282511015612568576040805162461bcd60e51b815260206004820152601c60248201527f50616e63616b654c6962726172793a20494e56414c49445f5041544800000000604482015290519081900360640190fd5b815167ffffffffffffffff8111801561258057600080fd5b506040519080825280602002602001820160405280156125aa578160200160208202803683370190505b50905082816000815181106125bb57fe5b60200260200101818152505060005b60018351038110156126535760008061260d878685815181106125e957fe5b602002602001015187866001018151811061260057fe5b60200260200101516130a6565b9150915061262f84848151811061262057fe5b6020026020010151838361241f565b84846001018151811061263e57fe5b602090810291909101015250506001016125ca565b509392505050565b600080600061266a8585612ca2565b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501206001600160f81b031960688401529a90941b9093166069840152607d8301989098527f3e587aafa830ed6729f6ad31bd15f244a5938c6c3dc057d4fcf2cbc0b1046987609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17815292518251600094606094938a169392918291908083835b602083106127a05780518252601f199092019160209182019101612781565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612802576040519150601f19603f3d011682016040523d82523d6000602084013e612807565b606091505b5091509150818015612835575080511580612835575080806020019051602081101561283257600080fd5b50515b6128705760405162461bcd60e51b81526004018080602001828103825260248152602001806134556024913960400191505060405180910390fd5b505050505050565b60005b6001835103811015612ab85760008084838151811061289657fe5b60200260200101518584600101815181106128ad57fe5b60200260200101519150915060006128c58383612ca2565b50905060008785600101815181106128d957fe5b60200260200101519050600080836001600160a01b0316866001600160a01b0316146129075782600061290b565b6000835b91509150600060028a510388106129225788612963565b6129637f0000000000000000000000000000000000000000000000000000000000000000878c8b6002018151811061295657fe5b602002602001015161265b565b90506129907f0000000000000000000000000000000000000000000000000000000000000000888861265b565b6001600160a01b031663022c0d9f84848460006040519080825280601f01601f1916602001820160405280156129cd576020820181803683370190505b506040518563ffffffff1660e01b815260040180858152602001848152602001836001600160a01b03166001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612a3e578181015183820152602001612a26565b50505050905090810190601f168015612a6b5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015612a8d57600080fd5b505af1158015612aa1573d6000803e3d6000fd5b50506001909901985061287b975050505050505050565b50505050565b6060600282511015612b17576040805162461bcd60e51b815260206004820152601c60248201527f50616e63616b654c6962726172793a20494e56414c49445f5041544800000000604482015290519081900360640190fd5b815167ffffffffffffffff81118015612b2f57600080fd5b50604051908082528060200260200182016040528015612b59578160200160208202803683370190505b5090508281600183510381518110612b6d57fe5b60209081029190910101528151600019015b801561265357600080612baf87866001860381518110612b9b57fe5b602002602001015187868151811061260057fe5b91509150612bd1848481518110612bc257fe5b60200260200101518383613180565b846001850381518110612be057fe5b6020908102919091010152505060001901612b7f565b6000808411612c365760405162461bcd60e51b81526004018080602001828103825260238152602001806133c46023913960400191505060405180910390fd5b600083118015612c465750600082115b612c815760405162461bcd60e51b815260040180806020018281038252602681526020018061342f6026913960400191505060405180910390fd5b82612c92858463ffffffff612ff416565b81612c9957fe5b04949350505050565b600080826001600160a01b0316846001600160a01b03161415612cf65760405162461bcd60e51b815260040180806020018281038252602381526020018061335d6023913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b031610612d16578284612d19565b83835b90925090506001600160a01b038216612d79576040805162461bcd60e51b815260206004820152601c60248201527f50616e63616b654c6962726172793a205a45524f5f4144445245535300000000604482015290519081900360640190fd5b9250929050565b6040805163e6a4390560e01b81526001600160a01b03888116600483015287811660248301529151600092839283927f00000000000000000000000000000000000000000000000000000000000000009092169163e6a4390591604480820192602092909190829003018186803b158015612dfa57600080fd5b505afa158015612e0e573d6000803e3d6000fd5b505050506040513d6020811015612e2457600080fd5b50516001600160a01b03161415612ed757604080516364e329cb60e11b81526001600160a01b038a81166004830152898116602483015291517f00000000000000000000000000000000000000000000000000000000000000009092169163c9c65396916044808201926020929091908290030181600087803b158015612eaa57600080fd5b505af1158015612ebe573d6000803e3d6000fd5b505050506040513d6020811015612ed457600080fd5b50505b600080612f057f00000000000000000000000000000000000000000000000000000000000000008b8b6130a6565b91509150816000148015612f17575080155b15612f2757879350869250612fe7565b6000612f34898484612bf6565b9050878111612f875785811015612f7c5760405162461bcd60e51b81526004018080602001828103825260248152602001806134796024913960400191505060405180910390fd5b889450925082612fe5565b6000612f94898486612bf6565b905089811115612fa057fe5b87811015612fdf5760405162461bcd60e51b81526004018080602001828103825260248152602001806133a06024913960400191505060405180910390fd5b94508793505b505b5050965096945050505050565b600081158061300f5750508082028282828161300c57fe5b04145b610e40576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b80820182811015610e40576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fd5b60008060006130b58585612ca2565b5090506130c386868661265b565b506000806130d288888861265b565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561310a57600080fd5b505afa15801561311e573d6000803e3d6000fd5b505050506040513d606081101561313457600080fd5b5080516020909101516dffffffffffffffffffffffffffff91821693501690506001600160a01b038781169084161461316e578082613171565b81815b90999098509650505050505050565b60008084116131c05760405162461bcd60e51b815260040180806020018281038252602a8152602001806132ea602a913960400191505060405180910390fd5b6000831180156131d05750600082115b61320b5760405162461bcd60e51b815260040180806020018281038252602681526020018061342f6026913960400191505060405180910390fd5b600061322f6103e8613223868863ffffffff612ff416565b9063ffffffff612ff416565b905060006132496103e6613223868963ffffffff61327016565b9050613266600182848161325957fe5b049063ffffffff61305716565b9695505050505050565b80820382811115610e40576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fdfe50616e63616b654c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e5450616e63616b654c6962726172793a20494e53554646494349454e545f4f55545055545f414d4f554e5450616e63616b65526f757465723a20455850495245440000000000000000000050616e63616b65526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e5450616e63616b654c6962726172793a204944454e544943414c5f41444452455353455350616e63616b65526f757465723a20494e56414c49445f50415448000000000050616e63616b65526f757465723a20494e53554646494349454e545f415f414d4f554e5450616e63616b654c6962726172793a20494e53554646494349454e545f414d4f554e545472616e7366657248656c7065723a204554485f5452414e534645525f4641494c454450616e63616b65526f757465723a204558434553534956455f494e5055545f414d4f554e5450616e63616b654c6962726172793a20494e53554646494349454e545f4c49515549444954595472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c454450616e63616b65526f757465723a20494e53554646494349454e545f425f414d4f554e54a264697066735822122037caab462ecf223ad969eb8e2620cb07f043619612162649068b8a65328cc67c64736f6c63430006060033",
"deployedBytecode": "0x6080604052600436106101185760003560e01c80638803dbee116100a0578063d06ca61f11610064578063d06ca61f14610742578063ded9382a146107f7578063e8e337001461086a578063f305d719146108ea578063fb3bdb411461093057610151565b80638803dbee146105d3578063ad5c464814610669578063ad615dec1461069a578063baa2abde146106d0578063c45a01551461072d57610151565b80632195995c116100e75780632195995c146103a557806338ed1739146104235780634a25d94a146104b95780637ff36ab51461054f57806385f8c259146101c257610151565b806302751cec14610156578063054d50d4146101c257806318cbafe51461020a5780631f00ca74146102f057610151565b3661015157336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461014f57fe5b005b600080fd5b34801561016257600080fd5b506101a9600480360360c081101561017957600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a001356109b4565b6040805192835260208301919091528051918290030190f35b3480156101ce57600080fd5b506101f8600480360360608110156101e557600080fd5b5080359060208101359060400135610ace565b60408051918252519081900360200190f35b34801561021657600080fd5b506102a0600480360360a081101561022d57600080fd5b813591602081013591810190606081016040820135600160201b81111561025357600080fd5b82018360208201111561026557600080fd5b803590602001918460208302840111600160201b8311171561028657600080fd5b91935091506001600160a01b038135169060200135610ae3565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102dc5781810151838201526020016102c4565b505050509050019250505060405180910390f35b3480156102fc57600080fd5b506102a06004803603604081101561031357600080fd5b81359190810190604081016020820135600160201b81111561033457600080fd5b82018360208201111561034657600080fd5b803590602001918460208302840111600160201b8311171561036757600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610e10945050505050565b3480156103b157600080fd5b506101a960048036036101608110156103c957600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359091169060c08101359060e081013515159060ff6101008201351690610120810135906101400135610e46565b34801561042f57600080fd5b506102a0600480360360a081101561044657600080fd5b813591602081013591810190606081016040820135600160201b81111561046c57600080fd5b82018360208201111561047e57600080fd5b803590602001918460208302840111600160201b8311171561049f57600080fd5b91935091506001600160a01b038135169060200135610f40565b3480156104c557600080fd5b506102a0600480360360a08110156104dc57600080fd5b813591602081013591810190606081016040820135600160201b81111561050257600080fd5b82018360208201111561051457600080fd5b803590602001918460208302840111600160201b8311171561053557600080fd5b91935091506001600160a01b03813516906020013561108b565b6102a06004803603608081101561056557600080fd5b81359190810190604081016020820135600160201b81111561058657600080fd5b82018360208201111561059857600080fd5b803590602001918460208302840111600160201b831117156105b957600080fd5b91935091506001600160a01b038135169060200135611217565b3480156105df57600080fd5b506102a0600480360360a08110156105f657600080fd5b813591602081013591810190606081016040820135600160201b81111561061c57600080fd5b82018360208201111561062e57600080fd5b803590602001918460208302840111600160201b8311171561064f57600080fd5b91935091506001600160a01b038135169060200135611587565b34801561067557600080fd5b5061067e611680565b604080516001600160a01b039092168252519081900360200190f35b3480156106a657600080fd5b506101f8600480360360608110156106bd57600080fd5b50803590602081013590604001356116a4565b3480156106dc57600080fd5b506101a9600480360360e08110156106f357600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359091169060c001356116b1565b34801561073957600080fd5b5061067e6118f5565b34801561074e57600080fd5b506102a06004803603604081101561076557600080fd5b81359190810190604081016020820135600160201b81111561078657600080fd5b82018360208201111561079857600080fd5b803590602001918460208302840111600160201b831117156107b957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611919945050505050565b34801561080357600080fd5b506101a9600480360361014081101561081b57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e08201351690610100810135906101200135611946565b34801561087657600080fd5b506108cc600480360361010081101561088e57600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359160c0820135169060e00135611a5a565b60408051938452602084019290925282820152519081900360600190f35b6108cc600480360360c081101561090057600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a00135611b96565b6102a06004803603608081101561094657600080fd5b81359190810190604081016020820135600160201b81111561096757600080fd5b82018360208201111561097957600080fd5b803590602001918460208302840111600160201b8311171561099a57600080fd5b91935091506001600160a01b038135169060200135611e3b565b60008082428110156109fb576040805162461bcd60e51b81526020600482015260166024820152600080516020613314833981519152604482015290519081900360640190fd5b610a2a897f00000000000000000000000000000000000000000000000000000000000000008a8a8a308a6116b1565b9093509150610a3a8986856121bd565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610aa057600080fd5b505af1158015610ab4573d6000803e3d6000fd5b50505050610ac28583612327565b50965096945050505050565b6000610adb84848461241f565b949350505050565b60608142811015610b29576040805162461bcd60e51b81526020600482015260166024820152600080516020613314833981519152604482015290519081900360640190fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001686866000198101818110610b6357fe5b905060200201356001600160a01b03166001600160a01b031614610bbc576040805162461bcd60e51b815260206004820152601b6024820152600080516020613380833981519152604482015290519081900360640190fd5b610c1a7f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061250f92505050565b91508682600184510381518110610c2d57fe5b60200260200101511015610c725760405162461bcd60e51b81526004018080602001828103825260298152602001806133346029913960400191505060405180910390fd5b610d1086866000818110610c8257fe5b905060200201356001600160a01b031633610cf67f00000000000000000000000000000000000000000000000000000000000000008a8a6000818110610cc457fe5b905060200201356001600160a01b03168b8b6001818110610ce157fe5b905060200201356001600160a01b031661265b565b85600081518110610d0357fe5b602002602001015161271b565b610d4f82878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250309250612878915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d83600185510381518110610d8e57fe5b60200260200101516040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610dcc57600080fd5b505af1158015610de0573d6000803e3d6000fd5b50505050610e058483600185510381518110610df857fe5b6020026020010151612327565b509695505050505050565b6060610e3d7f00000000000000000000000000000000000000000000000000000000000000008484612abe565b90505b92915050565b6000806000610e767f00000000000000000000000000000000000000000000000000000000000000008f8f61265b565b9050600087610e85578c610e89565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c4810188905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b158015610eff57600080fd5b505af1158015610f13573d6000803e3d6000fd5b50505050610f268f8f8f8f8f8f8f6116b1565b809450819550505050509b509b9950505050505050505050565b60608142811015610f86576040805162461bcd60e51b81526020600482015260166024820152600080516020613314833981519152604482015290519081900360640190fd5b610fe47f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061250f92505050565b91508682600184510381518110610ff757fe5b6020026020010151101561103c5760405162461bcd60e51b81526004018080602001828103825260298152602001806133346029913960400191505060405180910390fd5b61104c86866000818110610c8257fe5b610e0582878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250899250612878915050565b606081428110156110d1576040805162461bcd60e51b81526020600482015260166024820152600080516020613314833981519152604482015290519081900360640190fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168686600019810181811061110b57fe5b905060200201356001600160a01b03166001600160a01b031614611164576040805162461bcd60e51b815260206004820152601b6024820152600080516020613380833981519152604482015290519081900360640190fd5b6111c27f000000000000000000000000000000000000000000000000000000000000000089888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250612abe92505050565b915086826000815181106111d257fe5b60200260200101511115610c725760405162461bcd60e51b815260040180806020018281038252602581526020018061340a6025913960400191505060405180910390fd5b6060814281101561125d576040805162461bcd60e51b81526020600482015260166024820152600080516020613314833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168686600081811061129457fe5b905060200201356001600160a01b03166001600160a01b0316146112ed576040805162461bcd60e51b815260206004820152601b6024820152600080516020613380833981519152604482015290519081900360640190fd5b61134b7f00000000000000000000000000000000000000000000000000000000000000003488888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061250f92505050565b9150868260018451038151811061135e57fe5b602002602001015110156113a35760405162461bcd60e51b81526004018080602001828103825260298152602001806133346029913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0836000815181106113df57fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b15801561141257600080fd5b505af1158015611426573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb6114a87f00000000000000000000000000000000000000000000000000000000000000008989600081811061148b57fe5b905060200201356001600160a01b03168a8a6001818110610ce157fe5b846000815181106114b557fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561150c57600080fd5b505af1158015611520573d6000803e3d6000fd5b505050506040513d602081101561153657600080fd5b505161153e57fe5b61157d82878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250899250612878915050565b5095945050505050565b606081428110156115cd576040805162461bcd60e51b81526020600482015260166024820152600080516020613314833981519152604482015290519081900360640190fd5b61162b7f000000000000000000000000000000000000000000000000000000000000000089888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250612abe92505050565b9150868260008151811061163b57fe5b6020026020010151111561103c5760405162461bcd60e51b815260040180806020018281038252602581526020018061340a6025913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610adb848484612bf6565b60008082428110156116f8576040805162461bcd60e51b81526020600482015260166024820152600080516020613314833981519152604482015290519081900360640190fd5b60006117257f00000000000000000000000000000000000000000000000000000000000000008c8c61265b565b604080516323b872dd60e01b81523360048201526001600160a01b03831660248201819052604482018d9052915192935090916323b872dd916064808201926020929091908290030181600087803b15801561178057600080fd5b505af1158015611794573d6000803e3d6000fd5b505050506040513d60208110156117aa57600080fd5b50506040805163226bf2d160e21b81526001600160a01b03888116600483015282516000938493928616926389afcb44926024808301939282900301818787803b1580156117f757600080fd5b505af115801561180b573d6000803e3d6000fd5b505050506040513d604081101561182157600080fd5b5080516020909101519092509050600061183b8e8e612ca2565b509050806001600160a01b03168e6001600160a01b03161461185e578183611861565b82825b90975095508a8710156118a55760405162461bcd60e51b81526004018080602001828103825260248152602001806133a06024913960400191505060405180910390fd5b898610156118e45760405162461bcd60e51b81526004018080602001828103825260248152602001806134796024913960400191505060405180910390fd5b505050505097509795505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6060610e3d7f0000000000000000000000000000000000000000000000000000000000000000848461250f565b60008060006119967f00000000000000000000000000000000000000000000000000000000000000008e7f000000000000000000000000000000000000000000000000000000000000000061265b565b90506000876119a5578c6119a9565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c4810188905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b158015611a1f57600080fd5b505af1158015611a33573d6000803e3d6000fd5b50505050611a458e8e8e8e8e8e6109b4565b909f909e509c50505050505050505050505050565b60008060008342811015611aa3576040805162461bcd60e51b81526020600482015260166024820152600080516020613314833981519152604482015290519081900360640190fd5b611ab18c8c8c8c8c8c612d80565b90945092506000611ae37f00000000000000000000000000000000000000000000000000000000000000008e8e61265b565b9050611af18d33838861271b565b611afd8c33838761271b565b806001600160a01b0316636a627842886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050602060405180830381600087803b158015611b5557600080fd5b505af1158015611b69573d6000803e3d6000fd5b505050506040513d6020811015611b7f57600080fd5b5051949d939c50939a509198505050505050505050565b60008060008342811015611bdf576040805162461bcd60e51b81526020600482015260166024820152600080516020613314833981519152604482015290519081900360640190fd5b611c0d8a7f00000000000000000000000000000000000000000000000000000000000000008b348c8c612d80565b90945092506000611c5f7f00000000000000000000000000000000000000000000000000000000000000008c7f000000000000000000000000000000000000000000000000000000000000000061265b565b9050611c6d8b33838861271b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b158015611cc857600080fd5b505af1158015611cdc573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb82866040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015611d6157600080fd5b505af1158015611d75573d6000803e3d6000fd5b505050506040513d6020811015611d8b57600080fd5b5051611d9357fe5b806001600160a01b0316636a627842886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050602060405180830381600087803b158015611deb57600080fd5b505af1158015611dff573d6000803e3d6000fd5b505050506040513d6020811015611e1557600080fd5b5051925034841015611e2d57611e2d33853403612327565b505096509650969350505050565b60608142811015611e81576040805162461bcd60e51b81526020600482015260166024820152600080516020613314833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031686866000818110611eb857fe5b905060200201356001600160a01b03166001600160a01b031614611f11576040805162461bcd60e51b815260206004820152601b6024820152600080516020613380833981519152604482015290519081900360640190fd5b611f6f7f000000000000000000000000000000000000000000000000000000000000000088888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250612abe92505050565b91503482600081518110611f7f57fe5b60200260200101511115611fc45760405162461bcd60e51b815260040180806020018281038252602581526020018061340a6025913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db08360008151811061200057fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b15801561203357600080fd5b505af1158015612047573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb6120ac7f00000000000000000000000000000000000000000000000000000000000000008989600081811061148b57fe5b846000815181106120b957fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561211057600080fd5b505af1158015612124573d6000803e3d6000fd5b505050506040513d602081101561213a57600080fd5b505161214257fe5b61218182878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250899250612878915050565b8160008151811061218e57fe5b602002602001015134111561157d5761157d33836000815181106121ae57fe5b60200260200101513403612327565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b178152925182516000946060949389169392918291908083835b6020831061223a5780518252601f19909201916020918201910161221b565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461229c576040519150601f19603f3d011682016040523d82523d6000602084013e6122a1565b606091505b50915091508180156122cf5750805115806122cf57508080602001905160208110156122cc57600080fd5b50515b612320576040805162461bcd60e51b815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604482015290519081900360640190fd5b5050505050565b604080516000808252602082019092526001600160a01b0384169083906040518082805190602001908083835b602083106123735780518252601f199092019160209182019101612354565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146123d5576040519150601f19603f3d011682016040523d82523d6000602084013e6123da565b606091505b505090508061241a5760405162461bcd60e51b81526004018080602001828103825260238152602001806133e76023913960400191505060405180910390fd5b505050565b600080841161245f5760405162461bcd60e51b81526004018080602001828103825260298152602001806132c16029913960400191505060405180910390fd5b60008311801561246f5750600082115b6124aa5760405162461bcd60e51b815260040180806020018281038252602681526020018061342f6026913960400191505060405180910390fd5b60006124be856103e663ffffffff612ff416565b905060006124d2828563ffffffff612ff416565b905060006124f8836124ec886103e863ffffffff612ff416565b9063ffffffff61305716565b905080828161250357fe5b04979650505050505050565b6060600282511015612568576040805162461bcd60e51b815260206004820152601c60248201527f50616e63616b654c6962726172793a20494e56414c49445f5041544800000000604482015290519081900360640190fd5b815167ffffffffffffffff8111801561258057600080fd5b506040519080825280602002602001820160405280156125aa578160200160208202803683370190505b50905082816000815181106125bb57fe5b60200260200101818152505060005b60018351038110156126535760008061260d878685815181106125e957fe5b602002602001015187866001018151811061260057fe5b60200260200101516130a6565b9150915061262f84848151811061262057fe5b6020026020010151838361241f565b84846001018151811061263e57fe5b602090810291909101015250506001016125ca565b509392505050565b600080600061266a8585612ca2565b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501206001600160f81b031960688401529a90941b9093166069840152607d8301989098527f3e587aafa830ed6729f6ad31bd15f244a5938c6c3dc057d4fcf2cbc0b1046987609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17815292518251600094606094938a169392918291908083835b602083106127a05780518252601f199092019160209182019101612781565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612802576040519150601f19603f3d011682016040523d82523d6000602084013e612807565b606091505b5091509150818015612835575080511580612835575080806020019051602081101561283257600080fd5b50515b6128705760405162461bcd60e51b81526004018080602001828103825260248152602001806134556024913960400191505060405180910390fd5b505050505050565b60005b6001835103811015612ab85760008084838151811061289657fe5b60200260200101518584600101815181106128ad57fe5b60200260200101519150915060006128c58383612ca2565b50905060008785600101815181106128d957fe5b60200260200101519050600080836001600160a01b0316866001600160a01b0316146129075782600061290b565b6000835b91509150600060028a510388106129225788612963565b6129637f0000000000000000000000000000000000000000000000000000000000000000878c8b6002018151811061295657fe5b602002602001015161265b565b90506129907f0000000000000000000000000000000000000000000000000000000000000000888861265b565b6001600160a01b031663022c0d9f84848460006040519080825280601f01601f1916602001820160405280156129cd576020820181803683370190505b506040518563ffffffff1660e01b815260040180858152602001848152602001836001600160a01b03166001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612a3e578181015183820152602001612a26565b50505050905090810190601f168015612a6b5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015612a8d57600080fd5b505af1158015612aa1573d6000803e3d6000fd5b50506001909901985061287b975050505050505050565b50505050565b6060600282511015612b17576040805162461bcd60e51b815260206004820152601c60248201527f50616e63616b654c6962726172793a20494e56414c49445f5041544800000000604482015290519081900360640190fd5b815167ffffffffffffffff81118015612b2f57600080fd5b50604051908082528060200260200182016040528015612b59578160200160208202803683370190505b5090508281600183510381518110612b6d57fe5b60209081029190910101528151600019015b801561265357600080612baf87866001860381518110612b9b57fe5b602002602001015187868151811061260057fe5b91509150612bd1848481518110612bc257fe5b60200260200101518383613180565b846001850381518110612be057fe5b6020908102919091010152505060001901612b7f565b6000808411612c365760405162461bcd60e51b81526004018080602001828103825260238152602001806133c46023913960400191505060405180910390fd5b600083118015612c465750600082115b612c815760405162461bcd60e51b815260040180806020018281038252602681526020018061342f6026913960400191505060405180910390fd5b82612c92858463ffffffff612ff416565b81612c9957fe5b04949350505050565b600080826001600160a01b0316846001600160a01b03161415612cf65760405162461bcd60e51b815260040180806020018281038252602381526020018061335d6023913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b031610612d16578284612d19565b83835b90925090506001600160a01b038216612d79576040805162461bcd60e51b815260206004820152601c60248201527f50616e63616b654c6962726172793a205a45524f5f4144445245535300000000604482015290519081900360640190fd5b9250929050565b6040805163e6a4390560e01b81526001600160a01b03888116600483015287811660248301529151600092839283927f00000000000000000000000000000000000000000000000000000000000000009092169163e6a4390591604480820192602092909190829003018186803b158015612dfa57600080fd5b505afa158015612e0e573d6000803e3d6000fd5b505050506040513d6020811015612e2457600080fd5b50516001600160a01b03161415612ed757604080516364e329cb60e11b81526001600160a01b038a81166004830152898116602483015291517f00000000000000000000000000000000000000000000000000000000000000009092169163c9c65396916044808201926020929091908290030181600087803b158015612eaa57600080fd5b505af1158015612ebe573d6000803e3d6000fd5b505050506040513d6020811015612ed457600080fd5b50505b600080612f057f00000000000000000000000000000000000000000000000000000000000000008b8b6130a6565b91509150816000148015612f17575080155b15612f2757879350869250612fe7565b6000612f34898484612bf6565b9050878111612f875785811015612f7c5760405162461bcd60e51b81526004018080602001828103825260248152602001806134796024913960400191505060405180910390fd5b889450925082612fe5565b6000612f94898486612bf6565b905089811115612fa057fe5b87811015612fdf5760405162461bcd60e51b81526004018080602001828103825260248152602001806133a06024913960400191505060405180910390fd5b94508793505b505b5050965096945050505050565b600081158061300f5750508082028282828161300c57fe5b04145b610e40576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b80820182811015610e40576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fd5b60008060006130b58585612ca2565b5090506130c386868661265b565b506000806130d288888861265b565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561310a57600080fd5b505afa15801561311e573d6000803e3d6000fd5b505050506040513d606081101561313457600080fd5b5080516020909101516dffffffffffffffffffffffffffff91821693501690506001600160a01b038781169084161461316e578082613171565b81815b90999098509650505050505050565b60008084116131c05760405162461bcd60e51b815260040180806020018281038252602a8152602001806132ea602a913960400191505060405180910390fd5b6000831180156131d05750600082115b61320b5760405162461bcd60e51b815260040180806020018281038252602681526020018061342f6026913960400191505060405180910390fd5b600061322f6103e8613223868863ffffffff612ff416565b9063ffffffff612ff416565b905060006132496103e6613223868963ffffffff61327016565b9050613266600182848161325957fe5b049063ffffffff61305716565b9695505050505050565b80820382811115610e40576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fdfe50616e63616b654c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e5450616e63616b654c6962726172793a20494e53554646494349454e545f4f55545055545f414d4f554e5450616e63616b65526f757465723a20455850495245440000000000000000000050616e63616b65526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e5450616e63616b654c6962726172793a204944454e544943414c5f41444452455353455350616e63616b65526f757465723a20494e56414c49445f50415448000000000050616e63616b65526f757465723a20494e53554646494349454e545f415f414d4f554e5450616e63616b654c6962726172793a20494e53554646494349454e545f414d4f554e545472616e7366657248656c7065723a204554485f5452414e534645525f4641494c454450616e63616b65526f757465723a204558434553534956455f494e5055545f414d4f554e5450616e63616b654c6962726172793a20494e53554646494349454e545f4c49515549444954595472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c454450616e63616b65526f757465723a20494e53554646494349454e545f425f414d4f554e54a264697066735822122037caab462ecf223ad969eb8e2620cb07f043619612162649068b8a65328cc67c64736f6c63430006060033",
"linkReferences": {},
"deployedLinkReferences": {}
}