-
Notifications
You must be signed in to change notification settings - Fork 0
/
contract-cache.json
674 lines (674 loc) · 86.4 KB
/
contract-cache.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
{
"_format": "hh-sol-artifact-1",
"contractName": "TeoniteGeonodes",
"sourceName": "contracts/TeoniteGeonodes.sol",
"abi": [
{
"inputs": [
{
"internalType": "string",
"name": "name_",
"type": "string"
},
{
"internalType": "string",
"name": "symbol_",
"type": "string"
},
{
"internalType": "string",
"name": "baseURI_",
"type": "string"
},
{
"internalType": "address[]",
"name": "owners_",
"type": "address[]"
},
{
"internalType": "uint96",
"name": "royalty_",
"type": "uint96"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "AlreadyBaseURI",
"type": "error"
},
{
"inputs": [],
"name": "AlreadyNotOwner",
"type": "error"
},
{
"inputs": [],
"name": "AlreadyOwner",
"type": "error"
},
{
"inputs": [],
"name": "OnlyOwner",
"type": "error"
},
{
"inputs": [],
"name": "ZeroAddress",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "AddedOwner",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "string",
"name": "uniqueURI",
"type": "string"
}
],
"name": "AddedUniqueURI",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "approved",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"indexed": false,
"internalType": "bool",
"name": "approved",
"type": "bool"
}
],
"name": "ApprovalForAll",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "baseURI",
"type": "string"
}
],
"name": "ChangedBaseURI",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "oldOwner",
"type": "address"
}
],
"name": "RemovedOwner",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "ReturnedToBaseURI",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner_",
"type": "address"
}
],
"name": "addOwner",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "approve",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "baseURI_",
"type": "string"
}
],
"name": "changeBase",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "getApproved",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "getTokenURI",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "operator",
"type": "address"
}
],
"name": "isApprovedForAll",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "recipient_",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount_",
"type": "uint256"
}
],
"name": "mint",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "ownerOf",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "owners",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "oldOwner_",
"type": "address"
}
],
"name": "removeOwner",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "returnToBaseURI",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_salePrice",
"type": "uint256"
}
],
"name": "royaltyInfo",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "safeTransferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "_data",
"type": "bytes"
}
],
"name": "safeTransferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"internalType": "bool",
"name": "approved",
"type": "bool"
}
],
"name": "setApprovalForAll",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "tokenURI",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "tokensOfOwner",
"outputs": [
{
"internalType": "uint256[]",
"name": "",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "uniqueURIs",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "uniqueURI_",
"type": "string"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "upgradeSingleURI",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x60806040523480156200001157600080fd5b5060405162004efe38038062004efe833981810160405281019062000037919062000686565b848481600390816200004a9190620009d5565b5080600490816200005c9190620009d5565b506200006d620001b960201b60201c565b600681905550505060005b82518110156200018957600073ffffffffffffffffffffffffffffffffffffffff16838281518110620000b057620000af62000abc565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff160362000106576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016009600085848151811062000122576200012162000abc565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808060010191505062000078565b5082600b90816200019b9190620009d5565b50620001ae3382620001be60201b60201c565b505050505062000c06565b600090565b620001ce6200036060201b60201c565b6bffffffffffffffffffffffff16816bffffffffffffffffffffffff1611156200022f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002269062000b72565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620002a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002989062000be4565b60405180910390fd5b60405180604001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001826bffffffffffffffffffffffff168152506000808201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055509050505050565b6000612710905090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620003d38262000388565b810181811067ffffffffffffffff82111715620003f557620003f462000399565b5b80604052505050565b60006200040a6200036a565b9050620004188282620003c8565b919050565b600067ffffffffffffffff8211156200043b576200043a62000399565b5b620004468262000388565b9050602081019050919050565b60005b838110156200047357808201518184015260208101905062000456565b60008484015250505050565b60006200049662000490846200041d565b620003fe565b905082815260208101848484011115620004b557620004b462000383565b5b620004c284828562000453565b509392505050565b600082601f830112620004e257620004e16200037e565b5b8151620004f48482602086016200047f565b91505092915050565b600067ffffffffffffffff8211156200051b576200051a62000399565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200055e8262000531565b9050919050565b620005708162000551565b81146200057c57600080fd5b50565b600081519050620005908162000565565b92915050565b6000620005ad620005a784620004fd565b620003fe565b90508083825260208201905060208402830185811115620005d357620005d26200052c565b5b835b81811015620006005780620005eb88826200057f565b845260208401935050602081019050620005d5565b5050509392505050565b600082601f8301126200062257620006216200037e565b5b81516200063484826020860162000596565b91505092915050565b60006bffffffffffffffffffffffff82169050919050565b62000660816200063d565b81146200066c57600080fd5b50565b600081519050620006808162000655565b92915050565b600080600080600060a08688031215620006a557620006a462000374565b5b600086015167ffffffffffffffff811115620006c657620006c562000379565b5b620006d488828901620004ca565b955050602086015167ffffffffffffffff811115620006f857620006f762000379565b5b6200070688828901620004ca565b945050604086015167ffffffffffffffff8111156200072a576200072962000379565b5b6200073888828901620004ca565b935050606086015167ffffffffffffffff8111156200075c576200075b62000379565b5b6200076a888289016200060a565b92505060806200077d888289016200066f565b9150509295509295909350565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620007dd57607f821691505b602082108103620007f357620007f262000795565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200085d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200081e565b6200086986836200081e565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620008b6620008b0620008aa8462000881565b6200088b565b62000881565b9050919050565b6000819050919050565b620008d28362000895565b620008ea620008e182620008bd565b8484546200082b565b825550505050565b600090565b62000901620008f2565b6200090e818484620008c7565b505050565b5b8181101562000936576200092a600082620008f7565b60018101905062000914565b5050565b601f82111562000985576200094f81620007f9565b6200095a846200080e565b810160208510156200096a578190505b6200098262000979856200080e565b83018262000913565b50505b505050565b600082821c905092915050565b6000620009aa600019846008026200098a565b1980831691505092915050565b6000620009c5838362000997565b9150826002028217905092915050565b620009e0826200078a565b67ffffffffffffffff811115620009fc57620009fb62000399565b5b62000a088254620007c4565b62000a158282856200093a565b600060209050601f83116001811462000a4d576000841562000a38578287015190505b62000a448582620009b7565b86555062000ab4565b601f19841662000a5d86620007f9565b60005b8281101562000a875784890151825560018201915060208501945060208101905062000a60565b8683101562000aa7578489015162000aa3601f89168262000997565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082825260208201905092915050565b7f455243323938313a20726f79616c7479206665652077696c6c2065786365656460008201527f2073616c65507269636500000000000000000000000000000000000000000000602082015250565b600062000b5a602a8362000aeb565b915062000b678262000afc565b604082019050919050565b6000602082019050818103600083015262000b8d8162000b4b565b9050919050565b7f455243323938313a20696e76616c696420726563656976657200000000000000600082015250565b600062000bcc60198362000aeb565b915062000bd98262000b94565b602082019050919050565b6000602082019050818103600083015262000bff8162000bbd565b9050919050565b6142e88062000c166000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c80633edf4edd116100de5780638462151c11610097578063a923fd9911610071578063a923fd991461047f578063b88d4fde1461049b578063c87b56dd146104b7578063e985e9c5146104e757610173565b80638462151c1461041557806395d89b4114610445578063a22cb4651461046357610173565b80633edf4edd1461034557806340c10f191461036157806342842e0e1461037d5780636352211e146103995780637065cb48146103c957806370a08231146103e557610173565b806318160ddd1161013057806318160ddd1461025e5780631dc5bf1e1461027c57806323b872dd146102ac5780632a55205a146102c85780632bf5651a146102f95780633bb3a24d1461031557610173565b806301ffc9a714610178578063022914a7146101a857806306fdde03146101d8578063081812fc146101f6578063095ea7b314610226578063173825d914610242575b600080fd5b610192600480360381019061018d9190612a03565b610517565b60405161019f9190612a4b565b60405180910390f35b6101c260048036038101906101bd9190612ac4565b610529565b6040516101cf9190612a4b565b60405180910390f35b6101e0610549565b6040516101ed9190612b81565b60405180910390f35b610210600480360381019061020b9190612bd9565b6105db565b60405161021d9190612c15565b60405180910390f35b610240600480360381019061023b9190612c30565b610660565b005b61025c60048036038101906102579190612ac4565b610777565b005b610266610929565b6040516102739190612c7f565b60405180910390f35b61029660048036038101906102919190612bd9565b610938565b6040516102a39190612b81565b60405180910390f35b6102c660048036038101906102c19190612c9a565b6109d8565b005b6102e260048036038101906102dd9190612ced565b610a38565b6040516102f0929190612d2d565b60405180910390f35b610313600480360381019061030e9190612dbb565b610c22565b005b61032f600480360381019061032a9190612bd9565b610cfa565b60405161033c9190612b81565b60405180910390f35b61035f600480360381019061035a9190612bd9565b610dd5565b005b61037b60048036038101906103769190612c30565b610f33565b005b61039760048036038101906103929190612c9a565b610fcb565b005b6103b360048036038101906103ae9190612bd9565b610feb565b6040516103c09190612c15565b60405180910390f35b6103e360048036038101906103de9190612ac4565b611003565b005b6103ff60048036038101906103fa9190612ac4565b61121b565b60405161040c9190612c7f565b60405180910390f35b61042f600480360381019061042a9190612ac4565b61131a565b60405161043c9190612ec6565b60405180910390f35b61044d611413565b60405161045a9190612b81565b60405180910390f35b61047d60048036038101906104789190612f14565b6114a5565b005b61049960048036038101906104949190612f54565b611625565b005b6104b560048036038101906104b091906130e4565b611759565b005b6104d160048036038101906104cc9190612bd9565b6117bb565b6040516104de9190612b81565b60405180910390f35b61050160048036038101906104fc9190613167565b611862565b60405161050e9190612a4b565b60405180910390f35b6000610522826118f6565b9050919050565b60096020528060005260406000206000915054906101000a900460ff1681565b606060038054610558906131d6565b80601f0160208091040260200160405190810160405280929190818152602001828054610584906131d6565b80156105d15780601f106105a6576101008083540402835291602001916105d1565b820191906000526020600020905b8154815290600101906020018083116105b457829003601f168201915b5050505050905090565b60006105e6826119d8565b610625576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061c90613279565b60405180910390fd5b6007600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061066b82610feb565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036106db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d29061330b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166106fa6119fe565b73ffffffffffffffffffffffffffffffffffffffff1614806107295750610728816107236119fe565b611862565b5b610768576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075f9061339d565b60405180910390fd5b6107728383611a06565b505050565b60011515600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514610801576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60001515600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615150361088b576040517fe162b5ee00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff167ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf60405160405180910390a26000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000610933611abf565b905090565b600a6020528060005260406000206000915090508054610957906131d6565b80601f0160208091040260200160405190810160405280929190818152602001828054610983906131d6565b80156109d05780601f106109a5576101008083540402835291602001916109d0565b820191906000526020600020905b8154815290600101906020018083116109b357829003601f168201915b505050505081565b6109e96109e36119fe565b82611adb565b610a28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1f9061342f565b60405180910390fd5b610a33838383611bb9565b505050565b6000806000600160008681526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1603610bcd5760006040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff168152505090505b6000610bd7611e40565b6bffffffffffffffffffffffff1682602001516bffffffffffffffffffffffff1686610c03919061347e565b610c0d91906134ef565b90508160000151819350935050509250929050565b60011515600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514610cac576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8181600b9182610cbd9291906136d7565b507f9bda31c5daf938016d59248ce284119fc191a83aabdfb40b4405397af0a9c97b600b604051610cee919061382b565b60405180910390a15050565b60606000600a60008481526020019081526020016000208054610d1c906131d6565b905011610d3157610d2c826117bb565b610dce565b600a60008381526020019081526020016000208054610d4f906131d6565b80601f0160208091040260200160405190810160405280929190818152602001828054610d7b906131d6565b8015610dc85780601f10610d9d57610100808354040283529160200191610dc8565b820191906000526020600020905b815481529060010190602001808311610dab57829003601f168201915b50505050505b9050919050565b60011515600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514610e5f576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e68816119d8565b610ea7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9e906138bf565b60405180910390fd5b6000600a60008381526020019081526020016000208054610ec7906131d6565b905003610f00576040517fbe97261900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405180602001604052806000815250600a60008381526020019081526020016000209081610f2f91906138df565b5050565b60011515600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514610fbd576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fc78282611e4a565b5050565b610fe683838360405180602001604052806000815250611759565b505050565b600080610ff783611e68565b50905080915050919050565b60011515600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151461108d576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036110f3576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60011515600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615150361117d576040517fc0159e0e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff167f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2660405160405180910390a26001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361128b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128290613a23565b60405180910390fd5b600080611296611ef9565b90505b6112a1611efe565b811015611310576112b1816119d8565b156112ff576112bf81610feb565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036112fe57816112fb90613a43565b91505b5b8061130990613a43565b9050611299565b5080915050919050565b60606000806113288461121b565b905060008167ffffffffffffffff81111561134657611345612fb9565b5b6040519080825280602002602001820160405280156113745781602001602082028036833780820191505090505b5090506000611381611ef9565b90505b82841461140757611394816119d8565b156113fc578573ffffffffffffffffffffffffffffffffffffffff166113b982610feb565b73ffffffffffffffffffffffffffffffffffffffff16036113fb57808285806001019650815181106113ee576113ed613a8b565b5b6020026020010181815250505b5b806001019050611384565b50809350505050919050565b606060048054611422906131d6565b80601f016020809104026020016040519081016040528092919081815260200182805461144e906131d6565b801561149b5780601f106114705761010080835404028352916020019161149b565b820191906000526020600020905b81548152906001019060200180831161147e57829003601f168201915b5050505050905090565b6114ad6119fe565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361151a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151190613b06565b60405180910390fd5b80600860006115276119fe565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166115d46119fe565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516116199190612a4b565b60405180910390a35050565b60011515600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515146116af576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6116b8816119d8565b6116f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ee906138bf565b60405180910390fd5b807fde30adb6859f0f8dea77fd1c6235d759beeb501c4592004ec1e21e3e27343feb8484604051611729929190613b53565b60405180910390a28282600a600084815260200190815260200160002091826117539291906136d7565b50505050565b61176a6117646119fe565b83611adb565b6117a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a09061342f565b60405180910390fd5b6117b584848484611f08565b50505050565b60606117c6826119d8565b611805576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fc906138bf565b60405180910390fd5b600061180f611f66565b9050600081511161182f576040518060200160405280600081525061185a565b8061183984611ff8565b60405160200161184a929190613bb3565b6040516020818303038152906040525b915050919050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806119c157507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806119d157506119d0826120c6565b5b9050919050565b60006119e2611efe565b821080156119f75750816119f4611ef9565b11155b9050919050565b600033905090565b816007600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16611a7983610feb565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000611ac9611ef9565b600654611ad69190613bd7565b905090565b6000611ae6826119d8565b611b25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1c90613c7d565b60405180910390fd5b6000611b3083610feb565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611b9f57508373ffffffffffffffffffffffffffffffffffffffff16611b87846105db565b73ffffffffffffffffffffffffffffffffffffffff16145b80611bb05750611baf8185611862565b5b91505092915050565b600080611bc583611e68565b915091508473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611c37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2e90613d0f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611ca6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9d90613da1565b60405180910390fd5b611cb38585856001612140565b611cbe600084611a06565b6000600184611ccd9190613dc1565b9050611ce381600261214690919063ffffffff16565b158015611cf65750611cf3611efe565b81105b15611d6257856005600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611d618160026121a190919063ffffffff16565b5b846005600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818414611dd057611dcf8460026121a190919063ffffffff16565b5b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611e3886868660016121fe565b505050505050565b6000612710905090565b611e64828260405180602001604052806000815250612204565b5050565b600080611e74836119d8565b611eb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eaa90613e67565b60405180910390fd5b611ebc8361226d565b90506005600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150915091565b600090565b6000600654905090565b611f13848484611bb9565b611f2184848460018561228a565b611f60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5790613ef9565b60405180910390fd5b50505050565b6060600b8054611f75906131d6565b80601f0160208091040260200160405190810160405280929190818152602001828054611fa1906131d6565b8015611fee5780601f10611fc357610100808354040283529160200191611fee565b820191906000526020600020905b815481529060010190602001808311611fd157829003601f168201915b5050505050905090565b6060600060016120078461244c565b01905060008167ffffffffffffffff81111561202657612025612fb9565b5b6040519080825280601f01601f1916602001820160405280156120585781602001600182028036833780820191505090505b509050600082602001820190505b6001156120bb578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816120af576120ae6134c0565b5b04945060008503612066575b819350505050919050565b60007f2a55205a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061213957506121388261259f565b5b9050919050565b50505050565b600080600883901c9050600060ff84167f8000000000000000000000000000000000000000000000000000000000000000901c9050600081866000016000858152602001908152602001600020541614159250505092915050565b6000600882901c9050600060ff83167f8000000000000000000000000000000000000000000000000000000000000000901c9050808460000160008481526020019081526020016000206000828254179250508190555050505050565b50505050565b600061220e611efe565b905061221a8484612609565b61222860008583868661228a565b612267576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225e90613ef9565b60405180910390fd5b50505050565b60006122838260026127ee90919063ffffffff16565b9050919050565b60006122ab8573ffffffffffffffffffffffffffffffffffffffff166128e7565b1561243e576001905060008490505b83856122c69190613dc1565b811015612438578573ffffffffffffffffffffffffffffffffffffffff1663150b7a026122f16119fe565b8984876040518563ffffffff1660e01b81526004016123139493929190613f6e565b6020604051808303816000875af192505050801561234f57506040513d601f19601f8201168201806040525081019061234c9190613fcf565b60015b6123d1573d806000811461237f576040519150601f19603f3d011682016040523d82523d6000602084013e612384565b606091505b5060008151036123c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c090613ef9565b60405180910390fd5b805181602001fd5b828015612422575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b925050808061243090613a43565b9150506122ba565b50612443565b600190505b95945050505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106124aa577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816124a05761249f6134c0565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106124e7576d04ee2d6d415b85acef810000000083816124dd576124dc6134c0565b5b0492506020810190505b662386f26fc10000831061251657662386f26fc10000838161250c5761250b6134c0565b5b0492506010810190505b6305f5e100831061253f576305f5e1008381612535576125346134c0565b5b0492506008810190505b612710831061256457612710838161255a576125596134c0565b5b0492506004810190505b60648310612587576064838161257d5761257c6134c0565b5b0492506002810190505b600a8310612596576001810190505b80915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6000612613611efe565b905060008211612658576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264f9061406e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036126c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126be90614100565b60405180910390fd5b6126d46000848385612140565b81600660008282546126e69190613dc1565b92505081905550826005600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506127538160026121a190919063ffffffff16565b61276060008483856121fe565b60008190505b82826127729190613dc1565b8110156127e857808473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a480806127e090613a43565b915050612766565b50505050565b600080600883901c9050600060ff8416905060008560000160008481526020019081526020016000205490508160ff1881901c90506000811115612847576128358161290a565b60ff168203600884901b1793506128de565b5b6001156128dd5760008311612892576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161288990614192565b60405180910390fd5b82806001900393505085600001600084815260200190815260200160002054905060008111156128d8576128c58161290a565b60ff0360ff16600884901b1793506128dd565b612848565b5b50505092915050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060405180610120016040528061010081526020016141b3610100913960f87e818283848586878898a8b8c8d8e8f929395969799a9b9d9e9faaeb6bedeeff6129538561297c565b02901c8151811061296757612966613a8b565b5b602001015160f81c60f81b60f81c9050919050565b600080821161298a57600080fd5b8160000382169050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6129e0816129ab565b81146129eb57600080fd5b50565b6000813590506129fd816129d7565b92915050565b600060208284031215612a1957612a186129a1565b5b6000612a27848285016129ee565b91505092915050565b60008115159050919050565b612a4581612a30565b82525050565b6000602082019050612a606000830184612a3c565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a9182612a66565b9050919050565b612aa181612a86565b8114612aac57600080fd5b50565b600081359050612abe81612a98565b92915050565b600060208284031215612ada57612ad96129a1565b5b6000612ae884828501612aaf565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b2b578082015181840152602081019050612b10565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b5382612af1565b612b5d8185612afc565b9350612b6d818560208601612b0d565b612b7681612b37565b840191505092915050565b60006020820190508181036000830152612b9b8184612b48565b905092915050565b6000819050919050565b612bb681612ba3565b8114612bc157600080fd5b50565b600081359050612bd381612bad565b92915050565b600060208284031215612bef57612bee6129a1565b5b6000612bfd84828501612bc4565b91505092915050565b612c0f81612a86565b82525050565b6000602082019050612c2a6000830184612c06565b92915050565b60008060408385031215612c4757612c466129a1565b5b6000612c5585828601612aaf565b9250506020612c6685828601612bc4565b9150509250929050565b612c7981612ba3565b82525050565b6000602082019050612c946000830184612c70565b92915050565b600080600060608486031215612cb357612cb26129a1565b5b6000612cc186828701612aaf565b9350506020612cd286828701612aaf565b9250506040612ce386828701612bc4565b9150509250925092565b60008060408385031215612d0457612d036129a1565b5b6000612d1285828601612bc4565b9250506020612d2385828601612bc4565b9150509250929050565b6000604082019050612d426000830185612c06565b612d4f6020830184612c70565b9392505050565b600080fd5b600080fd5b600080fd5b60008083601f840112612d7b57612d7a612d56565b5b8235905067ffffffffffffffff811115612d9857612d97612d5b565b5b602083019150836001820283011115612db457612db3612d60565b5b9250929050565b60008060208385031215612dd257612dd16129a1565b5b600083013567ffffffffffffffff811115612df057612def6129a6565b5b612dfc85828601612d65565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612e3d81612ba3565b82525050565b6000612e4f8383612e34565b60208301905092915050565b6000602082019050919050565b6000612e7382612e08565b612e7d8185612e13565b9350612e8883612e24565b8060005b83811015612eb9578151612ea08882612e43565b9750612eab83612e5b565b925050600181019050612e8c565b5085935050505092915050565b60006020820190508181036000830152612ee08184612e68565b905092915050565b612ef181612a30565b8114612efc57600080fd5b50565b600081359050612f0e81612ee8565b92915050565b60008060408385031215612f2b57612f2a6129a1565b5b6000612f3985828601612aaf565b9250506020612f4a85828601612eff565b9150509250929050565b600080600060408486031215612f6d57612f6c6129a1565b5b600084013567ffffffffffffffff811115612f8b57612f8a6129a6565b5b612f9786828701612d65565b93509350506020612faa86828701612bc4565b9150509250925092565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612ff182612b37565b810181811067ffffffffffffffff821117156130105761300f612fb9565b5b80604052505050565b6000613023612997565b905061302f8282612fe8565b919050565b600067ffffffffffffffff82111561304f5761304e612fb9565b5b61305882612b37565b9050602081019050919050565b82818337600083830152505050565b600061308761308284613034565b613019565b9050828152602081018484840111156130a3576130a2612fb4565b5b6130ae848285613065565b509392505050565b600082601f8301126130cb576130ca612d56565b5b81356130db848260208601613074565b91505092915050565b600080600080608085870312156130fe576130fd6129a1565b5b600061310c87828801612aaf565b945050602061311d87828801612aaf565b935050604061312e87828801612bc4565b925050606085013567ffffffffffffffff81111561314f5761314e6129a6565b5b61315b878288016130b6565b91505092959194509250565b6000806040838503121561317e5761317d6129a1565b5b600061318c85828601612aaf565b925050602061319d85828601612aaf565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806131ee57607f821691505b602082108103613201576132006131a7565b5b50919050565b7f4552433732315073693a20617070726f76656420717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b6000613263602f83612afc565b915061326e82613207565b604082019050919050565b6000602082019050818103600083015261329281613256565b9050919050565b7f4552433732315073693a20617070726f76616c20746f2063757272656e74206f60008201527f776e657200000000000000000000000000000000000000000000000000000000602082015250565b60006132f5602483612afc565b915061330082613299565b604082019050919050565b60006020820190508181036000830152613324816132e8565b9050919050565b7f4552433732315073693a20617070726f76652063616c6c6572206973206e6f7460008201527f206f776e6572206e6f7220617070726f76656420666f7220616c6c0000000000602082015250565b6000613387603b83612afc565b91506133928261332b565b604082019050919050565b600060208201905081810360008301526133b68161337a565b9050919050565b7f4552433732315073693a207472616e736665722063616c6c6572206973206e6f60008201527f74206f776e6572206e6f7220617070726f766564000000000000000000000000602082015250565b6000613419603483612afc565b9150613424826133bd565b604082019050919050565b600060208201905081810360008301526134488161340c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061348982612ba3565b915061349483612ba3565b92508282026134a281612ba3565b915082820484148315176134b9576134b861344f565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006134fa82612ba3565b915061350583612ba3565b925082613515576135146134c0565b5b828204905092915050565b600082905092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261358d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613550565b6135978683613550565b95508019841693508086168417925050509392505050565b6000819050919050565b60006135d46135cf6135ca84612ba3565b6135af565b612ba3565b9050919050565b6000819050919050565b6135ee836135b9565b6136026135fa826135db565b84845461355d565b825550505050565b600090565b61361761360a565b6136228184846135e5565b505050565b5b818110156136465761363b60008261360f565b600181019050613628565b5050565b601f82111561368b5761365c8161352b565b61366584613540565b81016020851015613674578190505b61368861368085613540565b830182613627565b50505b505050565b600082821c905092915050565b60006136ae60001984600802613690565b1980831691505092915050565b60006136c7838361369d565b9150826002028217905092915050565b6136e18383613520565b67ffffffffffffffff8111156136fa576136f9612fb9565b5b61370482546131d6565b61370f82828561364a565b6000601f83116001811461373e576000841561372c578287013590505b61373685826136bb565b86555061379e565b601f19841661374c8661352b565b60005b828110156137745784890135825560018201915060208501945060208101905061374f565b86831015613791578489013561378d601f89168261369d565b8355505b6001600288020188555050505b50505050505050565b600081546137b4816131d6565b6137be8186612afc565b945060018216600081146137d957600181146137ef57613822565b60ff198316865281151560200286019350613822565b6137f88561352b565b60005b8381101561381a578154818901526001820191506020810190506137fb565b808801955050505b50505092915050565b6000602082019050818103600083015261384581846137a7565b905092915050565b7f4552433732315073693a2055524920717565727920666f72206e6f6e6578697360008201527f74656e7420746f6b656e00000000000000000000000000000000000000000000602082015250565b60006138a9602a83612afc565b91506138b48261384d565b604082019050919050565b600060208201905081810360008301526138d88161389c565b9050919050565b6138e882612af1565b67ffffffffffffffff81111561390157613900612fb9565b5b61390b82546131d6565b61391682828561364a565b600060209050601f8311600181146139495760008415613937578287015190505b61394185826136bb565b8655506139a9565b601f1984166139578661352b565b60005b8281101561397f5784890151825560018201915060208501945060208101905061395a565b8683101561399c5784890151613998601f89168261369d565b8355505b6001600288020188555050505b505050505050565b7f4552433732315073693a2062616c616e636520717565727920666f722074686560008201527f207a65726f206164647265737300000000000000000000000000000000000000602082015250565b6000613a0d602d83612afc565b9150613a18826139b1565b604082019050919050565b60006020820190508181036000830152613a3c81613a00565b9050919050565b6000613a4e82612ba3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613a8057613a7f61344f565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4552433732315073693a20617070726f766520746f2063616c6c657200000000600082015250565b6000613af0601c83612afc565b9150613afb82613aba565b602082019050919050565b60006020820190508181036000830152613b1f81613ae3565b9050919050565b6000613b328385612afc565b9350613b3f838584613065565b613b4883612b37565b840190509392505050565b60006020820190508181036000830152613b6e818486613b26565b90509392505050565b600081905092915050565b6000613b8d82612af1565b613b978185613b77565b9350613ba7818560208601612b0d565b80840191505092915050565b6000613bbf8285613b82565b9150613bcb8284613b82565b91508190509392505050565b6000613be282612ba3565b9150613bed83612ba3565b9250828203905081811115613c0557613c0461344f565b5b92915050565b7f4552433732315073693a206f70657261746f7220717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b6000613c67602f83612afc565b9150613c7282613c0b565b604082019050919050565b60006020820190508181036000830152613c9681613c5a565b9050919050565b7f4552433732315073693a207472616e73666572206f6620746f6b656e2074686160008201527f74206973206e6f74206f776e0000000000000000000000000000000000000000602082015250565b6000613cf9602c83612afc565b9150613d0482613c9d565b604082019050919050565b60006020820190508181036000830152613d2881613cec565b9050919050565b7f4552433732315073693a207472616e7366657220746f20746865207a65726f2060008201527f6164647265737300000000000000000000000000000000000000000000000000602082015250565b6000613d8b602783612afc565b9150613d9682613d2f565b604082019050919050565b60006020820190508181036000830152613dba81613d7e565b9050919050565b6000613dcc82612ba3565b9150613dd783612ba3565b9250828201905080821115613def57613dee61344f565b5b92915050565b7f4552433732315073693a206f776e657220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b6000613e51602c83612afc565b9150613e5c82613df5565b604082019050919050565b60006020820190508181036000830152613e8081613e44565b9050919050565b7f4552433732315073693a207472616e7366657220746f206e6f6e20455243373260008201527f31526563656976657220696d706c656d656e7465720000000000000000000000602082015250565b6000613ee3603583612afc565b9150613eee82613e87565b604082019050919050565b60006020820190508181036000830152613f1281613ed6565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000613f4082613f19565b613f4a8185613f24565b9350613f5a818560208601612b0d565b613f6381612b37565b840191505092915050565b6000608082019050613f836000830187612c06565b613f906020830186612c06565b613f9d6040830185612c70565b8181036060830152613faf8184613f35565b905095945050505050565b600081519050613fc9816129d7565b92915050565b600060208284031215613fe557613fe46129a1565b5b6000613ff384828501613fba565b91505092915050565b7f4552433732315073693a207175616e74697479206d757374206265206772656160008201527f7465722030000000000000000000000000000000000000000000000000000000602082015250565b6000614058602583612afc565b915061406382613ffc565b604082019050919050565b600060208201905081810360008301526140878161404b565b9050919050565b7f4552433732315073693a206d696e7420746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006140ea602383612afc565b91506140f58261408e565b604082019050919050565b60006020820190508181036000830152614119816140dd565b9050919050565b7f4269744d6170733a205468652073657420626974206265666f7265207468652060008201527f696e64657820646f65736e27742065786973742e000000000000000000000000602082015250565b600061417c603483612afc565b915061418782614120565b604082019050919050565b600060208201905081810360008301526141ab8161416f565b905091905056fe0001020903110a19042112290b311a3905412245134d2a550c5d32651b6d3a7506264262237d468514804e8d2b95569d0d495ea533a966b11c886eb93bc176c9071727374353637324837e9b47af86c7155181ad4fd18ed32c9096db57d59ee30e2e4a6a5f92a6be3498aae067ddb2eb1d5989b56fd7baf33ca0c2ee77e5caf7ff0810182028303840444c545c646c7425617c847f8c949c48a4a8b087b8c0c816365272829aaec650acd0d28fdad4e22d6991bd97dfdcea58b4d6f29fede4f6fe0f1f2f3f4b5b6b607b8b93a3a7b7bf357199c5abcfd9e168bcdee9b3f1ecf5fd1e3e5a7a8aa2b670c4ced8bbe8f0f4fc3d79a1c3cde7effb78cce6facbf9f8a2646970667358221220266e605b6a462f946b842178223abeb7fc77c1ecaa4b3e3267a7424228494cdb64736f6c63430008110033",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101735760003560e01c80633edf4edd116100de5780638462151c11610097578063a923fd9911610071578063a923fd991461047f578063b88d4fde1461049b578063c87b56dd146104b7578063e985e9c5146104e757610173565b80638462151c1461041557806395d89b4114610445578063a22cb4651461046357610173565b80633edf4edd1461034557806340c10f191461036157806342842e0e1461037d5780636352211e146103995780637065cb48146103c957806370a08231146103e557610173565b806318160ddd1161013057806318160ddd1461025e5780631dc5bf1e1461027c57806323b872dd146102ac5780632a55205a146102c85780632bf5651a146102f95780633bb3a24d1461031557610173565b806301ffc9a714610178578063022914a7146101a857806306fdde03146101d8578063081812fc146101f6578063095ea7b314610226578063173825d914610242575b600080fd5b610192600480360381019061018d9190612a03565b610517565b60405161019f9190612a4b565b60405180910390f35b6101c260048036038101906101bd9190612ac4565b610529565b6040516101cf9190612a4b565b60405180910390f35b6101e0610549565b6040516101ed9190612b81565b60405180910390f35b610210600480360381019061020b9190612bd9565b6105db565b60405161021d9190612c15565b60405180910390f35b610240600480360381019061023b9190612c30565b610660565b005b61025c60048036038101906102579190612ac4565b610777565b005b610266610929565b6040516102739190612c7f565b60405180910390f35b61029660048036038101906102919190612bd9565b610938565b6040516102a39190612b81565b60405180910390f35b6102c660048036038101906102c19190612c9a565b6109d8565b005b6102e260048036038101906102dd9190612ced565b610a38565b6040516102f0929190612d2d565b60405180910390f35b610313600480360381019061030e9190612dbb565b610c22565b005b61032f600480360381019061032a9190612bd9565b610cfa565b60405161033c9190612b81565b60405180910390f35b61035f600480360381019061035a9190612bd9565b610dd5565b005b61037b60048036038101906103769190612c30565b610f33565b005b61039760048036038101906103929190612c9a565b610fcb565b005b6103b360048036038101906103ae9190612bd9565b610feb565b6040516103c09190612c15565b60405180910390f35b6103e360048036038101906103de9190612ac4565b611003565b005b6103ff60048036038101906103fa9190612ac4565b61121b565b60405161040c9190612c7f565b60405180910390f35b61042f600480360381019061042a9190612ac4565b61131a565b60405161043c9190612ec6565b60405180910390f35b61044d611413565b60405161045a9190612b81565b60405180910390f35b61047d60048036038101906104789190612f14565b6114a5565b005b61049960048036038101906104949190612f54565b611625565b005b6104b560048036038101906104b091906130e4565b611759565b005b6104d160048036038101906104cc9190612bd9565b6117bb565b6040516104de9190612b81565b60405180910390f35b61050160048036038101906104fc9190613167565b611862565b60405161050e9190612a4b565b60405180910390f35b6000610522826118f6565b9050919050565b60096020528060005260406000206000915054906101000a900460ff1681565b606060038054610558906131d6565b80601f0160208091040260200160405190810160405280929190818152602001828054610584906131d6565b80156105d15780601f106105a6576101008083540402835291602001916105d1565b820191906000526020600020905b8154815290600101906020018083116105b457829003601f168201915b5050505050905090565b60006105e6826119d8565b610625576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061c90613279565b60405180910390fd5b6007600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061066b82610feb565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036106db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d29061330b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166106fa6119fe565b73ffffffffffffffffffffffffffffffffffffffff1614806107295750610728816107236119fe565b611862565b5b610768576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075f9061339d565b60405180910390fd5b6107728383611a06565b505050565b60011515600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514610801576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60001515600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615150361088b576040517fe162b5ee00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff167ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf60405160405180910390a26000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000610933611abf565b905090565b600a6020528060005260406000206000915090508054610957906131d6565b80601f0160208091040260200160405190810160405280929190818152602001828054610983906131d6565b80156109d05780601f106109a5576101008083540402835291602001916109d0565b820191906000526020600020905b8154815290600101906020018083116109b357829003601f168201915b505050505081565b6109e96109e36119fe565b82611adb565b610a28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1f9061342f565b60405180910390fd5b610a33838383611bb9565b505050565b6000806000600160008681526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1603610bcd5760006040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff168152505090505b6000610bd7611e40565b6bffffffffffffffffffffffff1682602001516bffffffffffffffffffffffff1686610c03919061347e565b610c0d91906134ef565b90508160000151819350935050509250929050565b60011515600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514610cac576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8181600b9182610cbd9291906136d7565b507f9bda31c5daf938016d59248ce284119fc191a83aabdfb40b4405397af0a9c97b600b604051610cee919061382b565b60405180910390a15050565b60606000600a60008481526020019081526020016000208054610d1c906131d6565b905011610d3157610d2c826117bb565b610dce565b600a60008381526020019081526020016000208054610d4f906131d6565b80601f0160208091040260200160405190810160405280929190818152602001828054610d7b906131d6565b8015610dc85780601f10610d9d57610100808354040283529160200191610dc8565b820191906000526020600020905b815481529060010190602001808311610dab57829003601f168201915b50505050505b9050919050565b60011515600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514610e5f576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e68816119d8565b610ea7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9e906138bf565b60405180910390fd5b6000600a60008381526020019081526020016000208054610ec7906131d6565b905003610f00576040517fbe97261900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405180602001604052806000815250600a60008381526020019081526020016000209081610f2f91906138df565b5050565b60011515600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514610fbd576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fc78282611e4a565b5050565b610fe683838360405180602001604052806000815250611759565b505050565b600080610ff783611e68565b50905080915050919050565b60011515600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151461108d576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036110f3576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60011515600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615150361117d576040517fc0159e0e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff167f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2660405160405180910390a26001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361128b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128290613a23565b60405180910390fd5b600080611296611ef9565b90505b6112a1611efe565b811015611310576112b1816119d8565b156112ff576112bf81610feb565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036112fe57816112fb90613a43565b91505b5b8061130990613a43565b9050611299565b5080915050919050565b60606000806113288461121b565b905060008167ffffffffffffffff81111561134657611345612fb9565b5b6040519080825280602002602001820160405280156113745781602001602082028036833780820191505090505b5090506000611381611ef9565b90505b82841461140757611394816119d8565b156113fc578573ffffffffffffffffffffffffffffffffffffffff166113b982610feb565b73ffffffffffffffffffffffffffffffffffffffff16036113fb57808285806001019650815181106113ee576113ed613a8b565b5b6020026020010181815250505b5b806001019050611384565b50809350505050919050565b606060048054611422906131d6565b80601f016020809104026020016040519081016040528092919081815260200182805461144e906131d6565b801561149b5780601f106114705761010080835404028352916020019161149b565b820191906000526020600020905b81548152906001019060200180831161147e57829003601f168201915b5050505050905090565b6114ad6119fe565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361151a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151190613b06565b60405180910390fd5b80600860006115276119fe565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166115d46119fe565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516116199190612a4b565b60405180910390a35050565b60011515600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515146116af576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6116b8816119d8565b6116f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ee906138bf565b60405180910390fd5b807fde30adb6859f0f8dea77fd1c6235d759beeb501c4592004ec1e21e3e27343feb8484604051611729929190613b53565b60405180910390a28282600a600084815260200190815260200160002091826117539291906136d7565b50505050565b61176a6117646119fe565b83611adb565b6117a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a09061342f565b60405180910390fd5b6117b584848484611f08565b50505050565b60606117c6826119d8565b611805576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fc906138bf565b60405180910390fd5b600061180f611f66565b9050600081511161182f576040518060200160405280600081525061185a565b8061183984611ff8565b60405160200161184a929190613bb3565b6040516020818303038152906040525b915050919050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806119c157507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806119d157506119d0826120c6565b5b9050919050565b60006119e2611efe565b821080156119f75750816119f4611ef9565b11155b9050919050565b600033905090565b816007600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16611a7983610feb565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000611ac9611ef9565b600654611ad69190613bd7565b905090565b6000611ae6826119d8565b611b25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1c90613c7d565b60405180910390fd5b6000611b3083610feb565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611b9f57508373ffffffffffffffffffffffffffffffffffffffff16611b87846105db565b73ffffffffffffffffffffffffffffffffffffffff16145b80611bb05750611baf8185611862565b5b91505092915050565b600080611bc583611e68565b915091508473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611c37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2e90613d0f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611ca6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9d90613da1565b60405180910390fd5b611cb38585856001612140565b611cbe600084611a06565b6000600184611ccd9190613dc1565b9050611ce381600261214690919063ffffffff16565b158015611cf65750611cf3611efe565b81105b15611d6257856005600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611d618160026121a190919063ffffffff16565b5b846005600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818414611dd057611dcf8460026121a190919063ffffffff16565b5b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611e3886868660016121fe565b505050505050565b6000612710905090565b611e64828260405180602001604052806000815250612204565b5050565b600080611e74836119d8565b611eb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eaa90613e67565b60405180910390fd5b611ebc8361226d565b90506005600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150915091565b600090565b6000600654905090565b611f13848484611bb9565b611f2184848460018561228a565b611f60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5790613ef9565b60405180910390fd5b50505050565b6060600b8054611f75906131d6565b80601f0160208091040260200160405190810160405280929190818152602001828054611fa1906131d6565b8015611fee5780601f10611fc357610100808354040283529160200191611fee565b820191906000526020600020905b815481529060010190602001808311611fd157829003601f168201915b5050505050905090565b6060600060016120078461244c565b01905060008167ffffffffffffffff81111561202657612025612fb9565b5b6040519080825280601f01601f1916602001820160405280156120585781602001600182028036833780820191505090505b509050600082602001820190505b6001156120bb578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816120af576120ae6134c0565b5b04945060008503612066575b819350505050919050565b60007f2a55205a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061213957506121388261259f565b5b9050919050565b50505050565b600080600883901c9050600060ff84167f8000000000000000000000000000000000000000000000000000000000000000901c9050600081866000016000858152602001908152602001600020541614159250505092915050565b6000600882901c9050600060ff83167f8000000000000000000000000000000000000000000000000000000000000000901c9050808460000160008481526020019081526020016000206000828254179250508190555050505050565b50505050565b600061220e611efe565b905061221a8484612609565b61222860008583868661228a565b612267576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225e90613ef9565b60405180910390fd5b50505050565b60006122838260026127ee90919063ffffffff16565b9050919050565b60006122ab8573ffffffffffffffffffffffffffffffffffffffff166128e7565b1561243e576001905060008490505b83856122c69190613dc1565b811015612438578573ffffffffffffffffffffffffffffffffffffffff1663150b7a026122f16119fe565b8984876040518563ffffffff1660e01b81526004016123139493929190613f6e565b6020604051808303816000875af192505050801561234f57506040513d601f19601f8201168201806040525081019061234c9190613fcf565b60015b6123d1573d806000811461237f576040519150601f19603f3d011682016040523d82523d6000602084013e612384565b606091505b5060008151036123c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c090613ef9565b60405180910390fd5b805181602001fd5b828015612422575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b925050808061243090613a43565b9150506122ba565b50612443565b600190505b95945050505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106124aa577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816124a05761249f6134c0565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106124e7576d04ee2d6d415b85acef810000000083816124dd576124dc6134c0565b5b0492506020810190505b662386f26fc10000831061251657662386f26fc10000838161250c5761250b6134c0565b5b0492506010810190505b6305f5e100831061253f576305f5e1008381612535576125346134c0565b5b0492506008810190505b612710831061256457612710838161255a576125596134c0565b5b0492506004810190505b60648310612587576064838161257d5761257c6134c0565b5b0492506002810190505b600a8310612596576001810190505b80915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6000612613611efe565b905060008211612658576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264f9061406e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036126c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126be90614100565b60405180910390fd5b6126d46000848385612140565b81600660008282546126e69190613dc1565b92505081905550826005600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506127538160026121a190919063ffffffff16565b61276060008483856121fe565b60008190505b82826127729190613dc1565b8110156127e857808473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a480806127e090613a43565b915050612766565b50505050565b600080600883901c9050600060ff8416905060008560000160008481526020019081526020016000205490508160ff1881901c90506000811115612847576128358161290a565b60ff168203600884901b1793506128de565b5b6001156128dd5760008311612892576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161288990614192565b60405180910390fd5b82806001900393505085600001600084815260200190815260200160002054905060008111156128d8576128c58161290a565b60ff0360ff16600884901b1793506128dd565b612848565b5b50505092915050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060405180610120016040528061010081526020016141b3610100913960f87e818283848586878898a8b8c8d8e8f929395969799a9b9d9e9faaeb6bedeeff6129538561297c565b02901c8151811061296757612966613a8b565b5b602001015160f81c60f81b60f81c9050919050565b600080821161298a57600080fd5b8160000382169050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6129e0816129ab565b81146129eb57600080fd5b50565b6000813590506129fd816129d7565b92915050565b600060208284031215612a1957612a186129a1565b5b6000612a27848285016129ee565b91505092915050565b60008115159050919050565b612a4581612a30565b82525050565b6000602082019050612a606000830184612a3c565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a9182612a66565b9050919050565b612aa181612a86565b8114612aac57600080fd5b50565b600081359050612abe81612a98565b92915050565b600060208284031215612ada57612ad96129a1565b5b6000612ae884828501612aaf565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b2b578082015181840152602081019050612b10565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b5382612af1565b612b5d8185612afc565b9350612b6d818560208601612b0d565b612b7681612b37565b840191505092915050565b60006020820190508181036000830152612b9b8184612b48565b905092915050565b6000819050919050565b612bb681612ba3565b8114612bc157600080fd5b50565b600081359050612bd381612bad565b92915050565b600060208284031215612bef57612bee6129a1565b5b6000612bfd84828501612bc4565b91505092915050565b612c0f81612a86565b82525050565b6000602082019050612c2a6000830184612c06565b92915050565b60008060408385031215612c4757612c466129a1565b5b6000612c5585828601612aaf565b9250506020612c6685828601612bc4565b9150509250929050565b612c7981612ba3565b82525050565b6000602082019050612c946000830184612c70565b92915050565b600080600060608486031215612cb357612cb26129a1565b5b6000612cc186828701612aaf565b9350506020612cd286828701612aaf565b9250506040612ce386828701612bc4565b9150509250925092565b60008060408385031215612d0457612d036129a1565b5b6000612d1285828601612bc4565b9250506020612d2385828601612bc4565b9150509250929050565b6000604082019050612d426000830185612c06565b612d4f6020830184612c70565b9392505050565b600080fd5b600080fd5b600080fd5b60008083601f840112612d7b57612d7a612d56565b5b8235905067ffffffffffffffff811115612d9857612d97612d5b565b5b602083019150836001820283011115612db457612db3612d60565b5b9250929050565b60008060208385031215612dd257612dd16129a1565b5b600083013567ffffffffffffffff811115612df057612def6129a6565b5b612dfc85828601612d65565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612e3d81612ba3565b82525050565b6000612e4f8383612e34565b60208301905092915050565b6000602082019050919050565b6000612e7382612e08565b612e7d8185612e13565b9350612e8883612e24565b8060005b83811015612eb9578151612ea08882612e43565b9750612eab83612e5b565b925050600181019050612e8c565b5085935050505092915050565b60006020820190508181036000830152612ee08184612e68565b905092915050565b612ef181612a30565b8114612efc57600080fd5b50565b600081359050612f0e81612ee8565b92915050565b60008060408385031215612f2b57612f2a6129a1565b5b6000612f3985828601612aaf565b9250506020612f4a85828601612eff565b9150509250929050565b600080600060408486031215612f6d57612f6c6129a1565b5b600084013567ffffffffffffffff811115612f8b57612f8a6129a6565b5b612f9786828701612d65565b93509350506020612faa86828701612bc4565b9150509250925092565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612ff182612b37565b810181811067ffffffffffffffff821117156130105761300f612fb9565b5b80604052505050565b6000613023612997565b905061302f8282612fe8565b919050565b600067ffffffffffffffff82111561304f5761304e612fb9565b5b61305882612b37565b9050602081019050919050565b82818337600083830152505050565b600061308761308284613034565b613019565b9050828152602081018484840111156130a3576130a2612fb4565b5b6130ae848285613065565b509392505050565b600082601f8301126130cb576130ca612d56565b5b81356130db848260208601613074565b91505092915050565b600080600080608085870312156130fe576130fd6129a1565b5b600061310c87828801612aaf565b945050602061311d87828801612aaf565b935050604061312e87828801612bc4565b925050606085013567ffffffffffffffff81111561314f5761314e6129a6565b5b61315b878288016130b6565b91505092959194509250565b6000806040838503121561317e5761317d6129a1565b5b600061318c85828601612aaf565b925050602061319d85828601612aaf565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806131ee57607f821691505b602082108103613201576132006131a7565b5b50919050565b7f4552433732315073693a20617070726f76656420717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b6000613263602f83612afc565b915061326e82613207565b604082019050919050565b6000602082019050818103600083015261329281613256565b9050919050565b7f4552433732315073693a20617070726f76616c20746f2063757272656e74206f60008201527f776e657200000000000000000000000000000000000000000000000000000000602082015250565b60006132f5602483612afc565b915061330082613299565b604082019050919050565b60006020820190508181036000830152613324816132e8565b9050919050565b7f4552433732315073693a20617070726f76652063616c6c6572206973206e6f7460008201527f206f776e6572206e6f7220617070726f76656420666f7220616c6c0000000000602082015250565b6000613387603b83612afc565b91506133928261332b565b604082019050919050565b600060208201905081810360008301526133b68161337a565b9050919050565b7f4552433732315073693a207472616e736665722063616c6c6572206973206e6f60008201527f74206f776e6572206e6f7220617070726f766564000000000000000000000000602082015250565b6000613419603483612afc565b9150613424826133bd565b604082019050919050565b600060208201905081810360008301526134488161340c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061348982612ba3565b915061349483612ba3565b92508282026134a281612ba3565b915082820484148315176134b9576134b861344f565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006134fa82612ba3565b915061350583612ba3565b925082613515576135146134c0565b5b828204905092915050565b600082905092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261358d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613550565b6135978683613550565b95508019841693508086168417925050509392505050565b6000819050919050565b60006135d46135cf6135ca84612ba3565b6135af565b612ba3565b9050919050565b6000819050919050565b6135ee836135b9565b6136026135fa826135db565b84845461355d565b825550505050565b600090565b61361761360a565b6136228184846135e5565b505050565b5b818110156136465761363b60008261360f565b600181019050613628565b5050565b601f82111561368b5761365c8161352b565b61366584613540565b81016020851015613674578190505b61368861368085613540565b830182613627565b50505b505050565b600082821c905092915050565b60006136ae60001984600802613690565b1980831691505092915050565b60006136c7838361369d565b9150826002028217905092915050565b6136e18383613520565b67ffffffffffffffff8111156136fa576136f9612fb9565b5b61370482546131d6565b61370f82828561364a565b6000601f83116001811461373e576000841561372c578287013590505b61373685826136bb565b86555061379e565b601f19841661374c8661352b565b60005b828110156137745784890135825560018201915060208501945060208101905061374f565b86831015613791578489013561378d601f89168261369d565b8355505b6001600288020188555050505b50505050505050565b600081546137b4816131d6565b6137be8186612afc565b945060018216600081146137d957600181146137ef57613822565b60ff198316865281151560200286019350613822565b6137f88561352b565b60005b8381101561381a578154818901526001820191506020810190506137fb565b808801955050505b50505092915050565b6000602082019050818103600083015261384581846137a7565b905092915050565b7f4552433732315073693a2055524920717565727920666f72206e6f6e6578697360008201527f74656e7420746f6b656e00000000000000000000000000000000000000000000602082015250565b60006138a9602a83612afc565b91506138b48261384d565b604082019050919050565b600060208201905081810360008301526138d88161389c565b9050919050565b6138e882612af1565b67ffffffffffffffff81111561390157613900612fb9565b5b61390b82546131d6565b61391682828561364a565b600060209050601f8311600181146139495760008415613937578287015190505b61394185826136bb565b8655506139a9565b601f1984166139578661352b565b60005b8281101561397f5784890151825560018201915060208501945060208101905061395a565b8683101561399c5784890151613998601f89168261369d565b8355505b6001600288020188555050505b505050505050565b7f4552433732315073693a2062616c616e636520717565727920666f722074686560008201527f207a65726f206164647265737300000000000000000000000000000000000000602082015250565b6000613a0d602d83612afc565b9150613a18826139b1565b604082019050919050565b60006020820190508181036000830152613a3c81613a00565b9050919050565b6000613a4e82612ba3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613a8057613a7f61344f565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4552433732315073693a20617070726f766520746f2063616c6c657200000000600082015250565b6000613af0601c83612afc565b9150613afb82613aba565b602082019050919050565b60006020820190508181036000830152613b1f81613ae3565b9050919050565b6000613b328385612afc565b9350613b3f838584613065565b613b4883612b37565b840190509392505050565b60006020820190508181036000830152613b6e818486613b26565b90509392505050565b600081905092915050565b6000613b8d82612af1565b613b978185613b77565b9350613ba7818560208601612b0d565b80840191505092915050565b6000613bbf8285613b82565b9150613bcb8284613b82565b91508190509392505050565b6000613be282612ba3565b9150613bed83612ba3565b9250828203905081811115613c0557613c0461344f565b5b92915050565b7f4552433732315073693a206f70657261746f7220717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b6000613c67602f83612afc565b9150613c7282613c0b565b604082019050919050565b60006020820190508181036000830152613c9681613c5a565b9050919050565b7f4552433732315073693a207472616e73666572206f6620746f6b656e2074686160008201527f74206973206e6f74206f776e0000000000000000000000000000000000000000602082015250565b6000613cf9602c83612afc565b9150613d0482613c9d565b604082019050919050565b60006020820190508181036000830152613d2881613cec565b9050919050565b7f4552433732315073693a207472616e7366657220746f20746865207a65726f2060008201527f6164647265737300000000000000000000000000000000000000000000000000602082015250565b6000613d8b602783612afc565b9150613d9682613d2f565b604082019050919050565b60006020820190508181036000830152613dba81613d7e565b9050919050565b6000613dcc82612ba3565b9150613dd783612ba3565b9250828201905080821115613def57613dee61344f565b5b92915050565b7f4552433732315073693a206f776e657220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b6000613e51602c83612afc565b9150613e5c82613df5565b604082019050919050565b60006020820190508181036000830152613e8081613e44565b9050919050565b7f4552433732315073693a207472616e7366657220746f206e6f6e20455243373260008201527f31526563656976657220696d706c656d656e7465720000000000000000000000602082015250565b6000613ee3603583612afc565b9150613eee82613e87565b604082019050919050565b60006020820190508181036000830152613f1281613ed6565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000613f4082613f19565b613f4a8185613f24565b9350613f5a818560208601612b0d565b613f6381612b37565b840191505092915050565b6000608082019050613f836000830187612c06565b613f906020830186612c06565b613f9d6040830185612c70565b8181036060830152613faf8184613f35565b905095945050505050565b600081519050613fc9816129d7565b92915050565b600060208284031215613fe557613fe46129a1565b5b6000613ff384828501613fba565b91505092915050565b7f4552433732315073693a207175616e74697479206d757374206265206772656160008201527f7465722030000000000000000000000000000000000000000000000000000000602082015250565b6000614058602583612afc565b915061406382613ffc565b604082019050919050565b600060208201905081810360008301526140878161404b565b9050919050565b7f4552433732315073693a206d696e7420746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006140ea602383612afc565b91506140f58261408e565b604082019050919050565b60006020820190508181036000830152614119816140dd565b9050919050565b7f4269744d6170733a205468652073657420626974206265666f7265207468652060008201527f696e64657820646f65736e27742065786973742e000000000000000000000000602082015250565b600061417c603483612afc565b915061418782614120565b604082019050919050565b600060208201905081810360008301526141ab8161416f565b905091905056fe0001020903110a19042112290b311a3905412245134d2a550c5d32651b6d3a7506264262237d468514804e8d2b95569d0d495ea533a966b11c886eb93bc176c9071727374353637324837e9b47af86c7155181ad4fd18ed32c9096db57d59ee30e2e4a6a5f92a6be3498aae067ddb2eb1d5989b56fd7baf33ca0c2ee77e5caf7ff0810182028303840444c545c646c7425617c847f8c949c48a4a8b087b8c0c816365272829aaec650acd0d28fdad4e22d6991bd97dfdcea58b4d6f29fede4f6fe0f1f2f3f4b5b6b607b8b93a3a7b7bf357199c5abcfd9e168bcdee9b3f1ecf5fd1e3e5a7a8aa2b670c4ced8bbe8f0f4fc3d79a1c3cde7effb78cce6facbf9f8a2646970667358221220266e605b6a462f946b842178223abeb7fc77c1ecaa4b3e3267a7424228494cdb64736f6c63430008110033",
"linkReferences": {},
"deployedLinkReferences": {}
}