privately-smartcontract-lib 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/PrivatelyAuctionSystem.json +734 -0
  2. package/PrivatelyCoin.json +863 -0
  3. package/PrivatelyCollection.json +865 -0
  4. package/dist/PrivatelyAuctionSystem.json +734 -0
  5. package/dist/PrivatelyCoin.json +863 -0
  6. package/dist/PrivatelyCollection.json +865 -0
  7. package/dist/client.d.ts +38 -0
  8. package/dist/client.js +67 -0
  9. package/dist/common/index.d.ts +2 -0
  10. package/dist/common/index.js +18 -0
  11. package/dist/common/privately.error.d.ts +5 -0
  12. package/dist/common/privately.error.js +47 -0
  13. package/dist/common/request-signature.d.ts +17 -0
  14. package/dist/common/request-signature.js +38 -0
  15. package/dist/index.d.ts +5 -0
  16. package/dist/index.js +21 -0
  17. package/dist/modules/auctions/auctions.auction.d.ts +12 -0
  18. package/dist/modules/auctions/auctions.auction.js +29 -0
  19. package/dist/modules/auctions/auctions.bid.reqest.d.ts +12 -0
  20. package/dist/modules/auctions/auctions.bid.reqest.js +11 -0
  21. package/dist/modules/auctions/auctions.client.d.ts +147 -0
  22. package/dist/modules/auctions/auctions.client.js +312 -0
  23. package/dist/modules/auctions/auctions.create.request.d.ts +13 -0
  24. package/dist/modules/auctions/auctions.create.request.js +12 -0
  25. package/dist/modules/auctions/auctions.errors.d.ts +6 -0
  26. package/dist/modules/auctions/auctions.errors.js +14 -0
  27. package/dist/modules/auctions/auctions.events.d.ts +5 -0
  28. package/dist/modules/auctions/auctions.events.js +2 -0
  29. package/dist/modules/auctions/auctions.nonces.d.ts +4 -0
  30. package/dist/modules/auctions/auctions.nonces.js +2 -0
  31. package/dist/modules/auctions/index.d.ts +6 -0
  32. package/dist/modules/auctions/index.js +22 -0
  33. package/dist/modules/coin/coin.approve.request.d.ts +8 -0
  34. package/dist/modules/coin/coin.approve.request.js +11 -0
  35. package/dist/modules/coin/coin.client.d.ts +120 -0
  36. package/dist/modules/coin/coin.client.js +246 -0
  37. package/dist/modules/coin/coin.errors.d.ts +6 -0
  38. package/dist/modules/coin/coin.errors.js +23 -0
  39. package/dist/modules/coin/coin.events.d.ts +3 -0
  40. package/dist/modules/coin/coin.events.js +2 -0
  41. package/dist/modules/coin/coin.nonces.d.ts +4 -0
  42. package/dist/modules/coin/coin.nonces.js +2 -0
  43. package/dist/modules/coin/coin.transfer.request.d.ts +8 -0
  44. package/dist/modules/coin/coin.transfer.request.js +11 -0
  45. package/dist/modules/coin/index.d.ts +5 -0
  46. package/dist/modules/coin/index.js +21 -0
  47. package/dist/modules/collection/collection.approve.request.d.ts +8 -0
  48. package/dist/modules/collection/collection.approve.request.js +11 -0
  49. package/dist/modules/collection/collection.client.d.ts +97 -0
  50. package/dist/modules/collection/collection.client.js +224 -0
  51. package/dist/modules/collection/collection.errors.d.ts +6 -0
  52. package/dist/modules/collection/collection.errors.js +14 -0
  53. package/dist/modules/collection/collection.events.d.ts +3 -0
  54. package/dist/modules/collection/collection.events.js +2 -0
  55. package/dist/modules/collection/collection.mint.request.d.ts +9 -0
  56. package/dist/modules/collection/collection.mint.request.js +12 -0
  57. package/dist/modules/collection/collection.nft.d.ts +8 -0
  58. package/dist/modules/collection/collection.nft.js +21 -0
  59. package/dist/modules/collection/collection.nonces.d.ts +5 -0
  60. package/dist/modules/collection/collection.nonces.js +2 -0
  61. package/dist/modules/collection/collection.transfer.request.d.ts +12 -0
  62. package/dist/modules/collection/collection.transfer.request.js +11 -0
  63. package/dist/modules/collection/index.d.ts +7 -0
  64. package/dist/modules/collection/index.js +23 -0
  65. package/package.json +53 -0
@@ -0,0 +1,734 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "PrivatelyAuctionSystem",
4
+ "sourceName": "contracts/PrivatelyAuctionSystem.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "coinContractAddress",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "address",
15
+ "name": "collectionContractAddress",
16
+ "type": "address"
17
+ },
18
+ {
19
+ "internalType": "string",
20
+ "name": "name",
21
+ "type": "string"
22
+ },
23
+ {
24
+ "internalType": "string",
25
+ "name": "version",
26
+ "type": "string"
27
+ }
28
+ ],
29
+ "stateMutability": "nonpayable",
30
+ "type": "constructor"
31
+ },
32
+ {
33
+ "inputs": [],
34
+ "name": "ECDSAInvalidSignature",
35
+ "type": "error"
36
+ },
37
+ {
38
+ "inputs": [
39
+ {
40
+ "internalType": "uint256",
41
+ "name": "length",
42
+ "type": "uint256"
43
+ }
44
+ ],
45
+ "name": "ECDSAInvalidSignatureLength",
46
+ "type": "error"
47
+ },
48
+ {
49
+ "inputs": [
50
+ {
51
+ "internalType": "bytes32",
52
+ "name": "s",
53
+ "type": "bytes32"
54
+ }
55
+ ],
56
+ "name": "ECDSAInvalidSignatureS",
57
+ "type": "error"
58
+ },
59
+ {
60
+ "inputs": [],
61
+ "name": "InvalidShortString",
62
+ "type": "error"
63
+ },
64
+ {
65
+ "inputs": [],
66
+ "name": "ReentrancyGuardReentrantCall",
67
+ "type": "error"
68
+ },
69
+ {
70
+ "inputs": [
71
+ {
72
+ "internalType": "address",
73
+ "name": "token",
74
+ "type": "address"
75
+ }
76
+ ],
77
+ "name": "SafeERC20FailedOperation",
78
+ "type": "error"
79
+ },
80
+ {
81
+ "inputs": [
82
+ {
83
+ "internalType": "string",
84
+ "name": "str",
85
+ "type": "string"
86
+ }
87
+ ],
88
+ "name": "StringTooLong",
89
+ "type": "error"
90
+ },
91
+ {
92
+ "anonymous": false,
93
+ "inputs": [],
94
+ "name": "EIP712DomainChanged",
95
+ "type": "event"
96
+ },
97
+ {
98
+ "anonymous": false,
99
+ "inputs": [
100
+ {
101
+ "indexed": true,
102
+ "internalType": "uint256",
103
+ "name": "auctionId",
104
+ "type": "uint256"
105
+ },
106
+ {
107
+ "indexed": true,
108
+ "internalType": "address",
109
+ "name": "bidder",
110
+ "type": "address"
111
+ },
112
+ {
113
+ "indexed": false,
114
+ "internalType": "uint256",
115
+ "name": "bidAmount",
116
+ "type": "uint256"
117
+ }
118
+ ],
119
+ "name": "OnBid",
120
+ "type": "event"
121
+ },
122
+ {
123
+ "anonymous": false,
124
+ "inputs": [
125
+ {
126
+ "indexed": true,
127
+ "internalType": "uint256",
128
+ "name": "auctionId",
129
+ "type": "uint256"
130
+ },
131
+ {
132
+ "indexed": true,
133
+ "internalType": "address",
134
+ "name": "seller",
135
+ "type": "address"
136
+ },
137
+ {
138
+ "indexed": true,
139
+ "internalType": "uint256",
140
+ "name": "tokenId",
141
+ "type": "uint256"
142
+ },
143
+ {
144
+ "indexed": false,
145
+ "internalType": "uint256",
146
+ "name": "startPrice",
147
+ "type": "uint256"
148
+ },
149
+ {
150
+ "indexed": false,
151
+ "internalType": "uint256",
152
+ "name": "endTime",
153
+ "type": "uint256"
154
+ }
155
+ ],
156
+ "name": "OnCreate",
157
+ "type": "event"
158
+ },
159
+ {
160
+ "anonymous": false,
161
+ "inputs": [
162
+ {
163
+ "indexed": true,
164
+ "internalType": "uint256",
165
+ "name": "auctionId",
166
+ "type": "uint256"
167
+ },
168
+ {
169
+ "indexed": true,
170
+ "internalType": "uint256",
171
+ "name": "tokenId",
172
+ "type": "uint256"
173
+ },
174
+ {
175
+ "indexed": true,
176
+ "internalType": "address",
177
+ "name": "highestBidder",
178
+ "type": "address"
179
+ },
180
+ {
181
+ "indexed": false,
182
+ "internalType": "uint256",
183
+ "name": "highestBid",
184
+ "type": "uint256"
185
+ }
186
+ ],
187
+ "name": "OnEnd",
188
+ "type": "event"
189
+ },
190
+ {
191
+ "anonymous": false,
192
+ "inputs": [
193
+ {
194
+ "indexed": true,
195
+ "internalType": "address",
196
+ "name": "user",
197
+ "type": "address"
198
+ },
199
+ {
200
+ "indexed": false,
201
+ "internalType": "uint256",
202
+ "name": "amount",
203
+ "type": "uint256"
204
+ }
205
+ ],
206
+ "name": "OnWithdraw",
207
+ "type": "event"
208
+ },
209
+ {
210
+ "inputs": [
211
+ {
212
+ "internalType": "uint256",
213
+ "name": "",
214
+ "type": "uint256"
215
+ }
216
+ ],
217
+ "name": "activeAuctionByToken",
218
+ "outputs": [
219
+ {
220
+ "internalType": "uint256",
221
+ "name": "",
222
+ "type": "uint256"
223
+ }
224
+ ],
225
+ "stateMutability": "view",
226
+ "type": "function"
227
+ },
228
+ {
229
+ "inputs": [
230
+ {
231
+ "internalType": "uint256",
232
+ "name": "",
233
+ "type": "uint256"
234
+ }
235
+ ],
236
+ "name": "auctions",
237
+ "outputs": [
238
+ {
239
+ "internalType": "address",
240
+ "name": "seller",
241
+ "type": "address"
242
+ },
243
+ {
244
+ "internalType": "uint256",
245
+ "name": "tokenId",
246
+ "type": "uint256"
247
+ },
248
+ {
249
+ "internalType": "uint256",
250
+ "name": "startPrice",
251
+ "type": "uint256"
252
+ },
253
+ {
254
+ "internalType": "uint256",
255
+ "name": "highestBid",
256
+ "type": "uint256"
257
+ },
258
+ {
259
+ "internalType": "address",
260
+ "name": "highestBidder",
261
+ "type": "address"
262
+ },
263
+ {
264
+ "internalType": "uint256",
265
+ "name": "endTime",
266
+ "type": "uint256"
267
+ },
268
+ {
269
+ "internalType": "bool",
270
+ "name": "settled",
271
+ "type": "bool"
272
+ }
273
+ ],
274
+ "stateMutability": "view",
275
+ "type": "function"
276
+ },
277
+ {
278
+ "inputs": [
279
+ {
280
+ "internalType": "address",
281
+ "name": "",
282
+ "type": "address"
283
+ }
284
+ ],
285
+ "name": "bidNonces",
286
+ "outputs": [
287
+ {
288
+ "internalType": "uint256",
289
+ "name": "",
290
+ "type": "uint256"
291
+ }
292
+ ],
293
+ "stateMutability": "view",
294
+ "type": "function"
295
+ },
296
+ {
297
+ "inputs": [],
298
+ "name": "coinContract",
299
+ "outputs": [
300
+ {
301
+ "internalType": "contract IERC20",
302
+ "name": "",
303
+ "type": "address"
304
+ }
305
+ ],
306
+ "stateMutability": "view",
307
+ "type": "function"
308
+ },
309
+ {
310
+ "inputs": [],
311
+ "name": "collectionContract",
312
+ "outputs": [
313
+ {
314
+ "internalType": "contract IERC721",
315
+ "name": "",
316
+ "type": "address"
317
+ }
318
+ ],
319
+ "stateMutability": "view",
320
+ "type": "function"
321
+ },
322
+ {
323
+ "inputs": [
324
+ {
325
+ "internalType": "address",
326
+ "name": "",
327
+ "type": "address"
328
+ }
329
+ ],
330
+ "name": "createAuctionNonces",
331
+ "outputs": [
332
+ {
333
+ "internalType": "uint256",
334
+ "name": "",
335
+ "type": "uint256"
336
+ }
337
+ ],
338
+ "stateMutability": "view",
339
+ "type": "function"
340
+ },
341
+ {
342
+ "inputs": [],
343
+ "name": "eip712Domain",
344
+ "outputs": [
345
+ {
346
+ "internalType": "bytes1",
347
+ "name": "fields",
348
+ "type": "bytes1"
349
+ },
350
+ {
351
+ "internalType": "string",
352
+ "name": "name",
353
+ "type": "string"
354
+ },
355
+ {
356
+ "internalType": "string",
357
+ "name": "version",
358
+ "type": "string"
359
+ },
360
+ {
361
+ "internalType": "uint256",
362
+ "name": "chainId",
363
+ "type": "uint256"
364
+ },
365
+ {
366
+ "internalType": "address",
367
+ "name": "verifyingContract",
368
+ "type": "address"
369
+ },
370
+ {
371
+ "internalType": "bytes32",
372
+ "name": "salt",
373
+ "type": "bytes32"
374
+ },
375
+ {
376
+ "internalType": "uint256[]",
377
+ "name": "extensions",
378
+ "type": "uint256[]"
379
+ }
380
+ ],
381
+ "stateMutability": "view",
382
+ "type": "function"
383
+ },
384
+ {
385
+ "inputs": [
386
+ {
387
+ "internalType": "uint256",
388
+ "name": "auctionId",
389
+ "type": "uint256"
390
+ }
391
+ ],
392
+ "name": "finalizeAuction",
393
+ "outputs": [],
394
+ "stateMutability": "nonpayable",
395
+ "type": "function"
396
+ },
397
+ {
398
+ "inputs": [],
399
+ "name": "getAllActiveAuctions",
400
+ "outputs": [
401
+ {
402
+ "internalType": "uint256[]",
403
+ "name": "",
404
+ "type": "uint256[]"
405
+ }
406
+ ],
407
+ "stateMutability": "view",
408
+ "type": "function"
409
+ },
410
+ {
411
+ "inputs": [],
412
+ "name": "getAllAuctions",
413
+ "outputs": [
414
+ {
415
+ "internalType": "uint256[]",
416
+ "name": "",
417
+ "type": "uint256[]"
418
+ }
419
+ ],
420
+ "stateMutability": "view",
421
+ "type": "function"
422
+ },
423
+ {
424
+ "inputs": [],
425
+ "name": "getAllExpiredUnfinalizedAuctions",
426
+ "outputs": [
427
+ {
428
+ "internalType": "uint256[]",
429
+ "name": "",
430
+ "type": "uint256[]"
431
+ }
432
+ ],
433
+ "stateMutability": "view",
434
+ "type": "function"
435
+ },
436
+ {
437
+ "inputs": [
438
+ {
439
+ "internalType": "uint256",
440
+ "name": "auctionId",
441
+ "type": "uint256"
442
+ }
443
+ ],
444
+ "name": "getAuction",
445
+ "outputs": [
446
+ {
447
+ "components": [
448
+ {
449
+ "internalType": "address",
450
+ "name": "seller",
451
+ "type": "address"
452
+ },
453
+ {
454
+ "internalType": "uint256",
455
+ "name": "tokenId",
456
+ "type": "uint256"
457
+ },
458
+ {
459
+ "internalType": "uint256",
460
+ "name": "startPrice",
461
+ "type": "uint256"
462
+ },
463
+ {
464
+ "internalType": "uint256",
465
+ "name": "highestBid",
466
+ "type": "uint256"
467
+ },
468
+ {
469
+ "internalType": "address",
470
+ "name": "highestBidder",
471
+ "type": "address"
472
+ },
473
+ {
474
+ "internalType": "uint256",
475
+ "name": "endTime",
476
+ "type": "uint256"
477
+ },
478
+ {
479
+ "internalType": "bool",
480
+ "name": "settled",
481
+ "type": "bool"
482
+ }
483
+ ],
484
+ "internalType": "struct PrivatelyAuctionSystem.Auction",
485
+ "name": "",
486
+ "type": "tuple"
487
+ }
488
+ ],
489
+ "stateMutability": "view",
490
+ "type": "function"
491
+ },
492
+ {
493
+ "inputs": [
494
+ {
495
+ "internalType": "uint256",
496
+ "name": "tokenId",
497
+ "type": "uint256"
498
+ }
499
+ ],
500
+ "name": "getAuctionsByToken",
501
+ "outputs": [
502
+ {
503
+ "components": [
504
+ {
505
+ "internalType": "address",
506
+ "name": "seller",
507
+ "type": "address"
508
+ },
509
+ {
510
+ "internalType": "uint256",
511
+ "name": "tokenId",
512
+ "type": "uint256"
513
+ },
514
+ {
515
+ "internalType": "uint256",
516
+ "name": "startPrice",
517
+ "type": "uint256"
518
+ },
519
+ {
520
+ "internalType": "uint256",
521
+ "name": "highestBid",
522
+ "type": "uint256"
523
+ },
524
+ {
525
+ "internalType": "address",
526
+ "name": "highestBidder",
527
+ "type": "address"
528
+ },
529
+ {
530
+ "internalType": "uint256",
531
+ "name": "endTime",
532
+ "type": "uint256"
533
+ },
534
+ {
535
+ "internalType": "bool",
536
+ "name": "settled",
537
+ "type": "bool"
538
+ }
539
+ ],
540
+ "internalType": "struct PrivatelyAuctionSystem.Auction[]",
541
+ "name": "results",
542
+ "type": "tuple[]"
543
+ }
544
+ ],
545
+ "stateMutability": "view",
546
+ "type": "function"
547
+ },
548
+ {
549
+ "inputs": [
550
+ {
551
+ "internalType": "address",
552
+ "name": "user",
553
+ "type": "address"
554
+ }
555
+ ],
556
+ "name": "getNonces",
557
+ "outputs": [
558
+ {
559
+ "internalType": "uint256",
560
+ "name": "createAuctionNonce",
561
+ "type": "uint256"
562
+ },
563
+ {
564
+ "internalType": "uint256",
565
+ "name": "bidNonce",
566
+ "type": "uint256"
567
+ }
568
+ ],
569
+ "stateMutability": "view",
570
+ "type": "function"
571
+ },
572
+ {
573
+ "inputs": [
574
+ {
575
+ "internalType": "address",
576
+ "name": "seller",
577
+ "type": "address"
578
+ }
579
+ ],
580
+ "name": "getSellerAuctions",
581
+ "outputs": [
582
+ {
583
+ "internalType": "uint256[]",
584
+ "name": "",
585
+ "type": "uint256[]"
586
+ }
587
+ ],
588
+ "stateMutability": "view",
589
+ "type": "function"
590
+ },
591
+ {
592
+ "inputs": [],
593
+ "name": "getTotalAuctionsCount",
594
+ "outputs": [
595
+ {
596
+ "internalType": "uint256",
597
+ "name": "",
598
+ "type": "uint256"
599
+ }
600
+ ],
601
+ "stateMutability": "view",
602
+ "type": "function"
603
+ },
604
+ {
605
+ "inputs": [
606
+ {
607
+ "internalType": "address",
608
+ "name": "user",
609
+ "type": "address"
610
+ }
611
+ ],
612
+ "name": "getUserActiveBidAuctions",
613
+ "outputs": [
614
+ {
615
+ "internalType": "uint256[]",
616
+ "name": "",
617
+ "type": "uint256[]"
618
+ }
619
+ ],
620
+ "stateMutability": "view",
621
+ "type": "function"
622
+ },
623
+ {
624
+ "inputs": [
625
+ {
626
+ "internalType": "address",
627
+ "name": "user",
628
+ "type": "address"
629
+ }
630
+ ],
631
+ "name": "getUserBidAuctions",
632
+ "outputs": [
633
+ {
634
+ "internalType": "uint256[]",
635
+ "name": "",
636
+ "type": "uint256[]"
637
+ }
638
+ ],
639
+ "stateMutability": "view",
640
+ "type": "function"
641
+ },
642
+ {
643
+ "inputs": [
644
+ {
645
+ "internalType": "address",
646
+ "name": "bidder",
647
+ "type": "address"
648
+ },
649
+ {
650
+ "internalType": "uint256",
651
+ "name": "auctionId",
652
+ "type": "uint256"
653
+ },
654
+ {
655
+ "internalType": "uint256",
656
+ "name": "bidAmount",
657
+ "type": "uint256"
658
+ },
659
+ {
660
+ "internalType": "bytes",
661
+ "name": "signature",
662
+ "type": "bytes"
663
+ }
664
+ ],
665
+ "name": "metaBidAuction",
666
+ "outputs": [],
667
+ "stateMutability": "nonpayable",
668
+ "type": "function"
669
+ },
670
+ {
671
+ "inputs": [
672
+ {
673
+ "internalType": "address",
674
+ "name": "seller",
675
+ "type": "address"
676
+ },
677
+ {
678
+ "internalType": "uint256",
679
+ "name": "tokenId",
680
+ "type": "uint256"
681
+ },
682
+ {
683
+ "internalType": "uint256",
684
+ "name": "startPrice",
685
+ "type": "uint256"
686
+ },
687
+ {
688
+ "internalType": "uint256",
689
+ "name": "endTime",
690
+ "type": "uint256"
691
+ },
692
+ {
693
+ "internalType": "bytes",
694
+ "name": "signature",
695
+ "type": "bytes"
696
+ }
697
+ ],
698
+ "name": "metaCreateAuction",
699
+ "outputs": [],
700
+ "stateMutability": "nonpayable",
701
+ "type": "function"
702
+ },
703
+ {
704
+ "inputs": [
705
+ {
706
+ "internalType": "address",
707
+ "name": "",
708
+ "type": "address"
709
+ }
710
+ ],
711
+ "name": "pendingWithdrawals",
712
+ "outputs": [
713
+ {
714
+ "internalType": "uint256",
715
+ "name": "",
716
+ "type": "uint256"
717
+ }
718
+ ],
719
+ "stateMutability": "view",
720
+ "type": "function"
721
+ },
722
+ {
723
+ "inputs": [],
724
+ "name": "withdraw",
725
+ "outputs": [],
726
+ "stateMutability": "nonpayable",
727
+ "type": "function"
728
+ }
729
+ ],
730
+ "bytecode": "0x6101a060405234801561001157600080fd5b506040516150bb3803806150bb83398181016040528101906100339190610528565b818161004960008361023860201b90919060201c565b610120818152505061006560018261023860201b90919060201c565b6101408181525050818051906020012060e08181525050808051906020012061010081815250504660a081815250506100a261028860201b60201c565b608081815250503073ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff168152505050506001600281905550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610156576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014d90610624565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036101c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101bc906106b6565b60405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff166101808173ffffffffffffffffffffffffffffffffffffffff16815250508273ffffffffffffffffffffffffffffffffffffffff166101608173ffffffffffffffffffffffffffffffffffffffff168152505050505050610b45565b600060208351101561025a57610253836102e360201b60201c565b9050610282565b8261026a8361034b60201b60201c565b600001908161027991906108f7565b5060ff60001b90505b92915050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60e0516101005146306040516020016102c8959493929190610a00565b60405160208183030381529060405280519060200120905090565b600080829050601f8151111561033057826040517f305a27a90000000000000000000000000000000000000000000000000000000081526004016103279190610a8c565b60405180910390fd5b80518161033c90610ade565b60001c1760001b915050919050565b6000819050919050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061039482610369565b9050919050565b6103a481610389565b81146103af57600080fd5b50565b6000815190506103c18161039b565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61041a826103d1565b810181811067ffffffffffffffff82111715610439576104386103e2565b5b80604052505050565b600061044c610355565b90506104588282610411565b919050565b600067ffffffffffffffff821115610478576104776103e2565b5b610481826103d1565b9050602081019050919050565b60005b838110156104ac578082015181840152602081019050610491565b60008484015250505050565b60006104cb6104c68461045d565b610442565b9050828152602081018484840111156104e7576104e66103cc565b5b6104f284828561048e565b509392505050565b600082601f83011261050f5761050e6103c7565b5b815161051f8482602086016104b8565b91505092915050565b600080600080608085870312156105425761054161035f565b5b6000610550878288016103b2565b9450506020610561878288016103b2565b935050604085015167ffffffffffffffff81111561058257610581610364565b5b61058e878288016104fa565b925050606085015167ffffffffffffffff8111156105af576105ae610364565b5b6105bb878288016104fa565b91505092959194509250565b600082825260208201905092915050565b7f496e76616c696420636f696e20636f6e74726163742061646472657373000000600082015250565b600061060e601d836105c7565b9150610619826105d8565b602082019050919050565b6000602082019050818103600083015261063d81610601565b9050919050565b7f496e76616c696420636f6c6c656374696f6e20636f6e7472616374206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006106a06023836105c7565b91506106ab82610644565b604082019050919050565b600060208201905081810360008301526106cf81610693565b9050919050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061072857607f821691505b60208210810361073b5761073a6106e1565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026107a37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610766565b6107ad8683610766565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006107f46107ef6107ea846107c5565b6107cf565b6107c5565b9050919050565b6000819050919050565b61080e836107d9565b61082261081a826107fb565b848454610773565b825550505050565b600090565b61083761082a565b610842818484610805565b505050565b5b818110156108665761085b60008261082f565b600181019050610848565b5050565b601f8211156108ab5761087c81610741565b61088584610756565b81016020851015610894578190505b6108a86108a085610756565b830182610847565b50505b505050565b600082821c905092915050565b60006108ce600019846008026108b0565b1980831691505092915050565b60006108e783836108bd565b9150826002028217905092915050565b610900826106d6565b67ffffffffffffffff811115610919576109186103e2565b5b6109238254610710565b61092e82828561086a565b600060209050601f831160018114610961576000841561094f578287015190505b61095985826108db565b8655506109c1565b601f19841661096f86610741565b60005b8281101561099757848901518255600182019150602085019450602081019050610972565b868310156109b457848901516109b0601f8916826108bd565b8355505b6001600288020188555050505b505050505050565b6000819050919050565b6109dc816109c9565b82525050565b6109eb816107c5565b82525050565b6109fa81610389565b82525050565b600060a082019050610a1560008301886109d3565b610a2260208301876109d3565b610a2f60408301866109d3565b610a3c60608301856109e2565b610a4960808301846109f1565b9695505050505050565b6000610a5e826106d6565b610a6881856105c7565b9350610a7881856020860161048e565b610a81816103d1565b840191505092915050565b60006020820190508181036000830152610aa68184610a53565b905092915050565b600081519050919050565b6000819050602082019050919050565b6000610ad582516109c9565b80915050919050565b6000610ae982610aae565b82610af384610ab9565b9050610afe81610ac9565b92506020821015610b3e57610b397fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83602003600802610766565b831692505b5050919050565b60805160a05160c05160e05161010051610120516101405161016051610180516144c0610bfb60003960008181610999015281816119bb01528181611efb01528181611fde015261265c015260008181610e0801528181610ebf015281816111c1015281816112b1015281816119970152818161246501526125780152600061295f0152600061292401526000612e6301526000612e4201526000612ab901526000612b0f01526000612b3801526144c06000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c806372dd52e3116100b8578063cbd2bdfd1161007c578063cbd2bdfd1461039a578063e8083863146103b8578063ed9559f7146103d4578063f279f9ad14610404578063f3f4370314610434578063fc2260891461046457610142565b806372dd52e3146102ee57806378bd79351461030c57806384b0196e1461033c578063a0bff76b14610360578063bf63fb821461037e57610142565b80635ff341d21161010a5780635ff341d2146102065780636388923f14610224578063666b0cf91461024057806369ce5d87146102705780636b4b3baf146102a0578063709263c1146102d057610142565b80632dee466d146101475780633939edf5146101655780633ccfd60b146101955780635124ae951461019f578063571a26a0146101d0575b600080fd5b61014f610494565b60405161015c919061319e565b60405180910390f35b61017f600480360381019061017a91906131f6565b610643565b60405161018c91906133bc565b60405180910390f35b61019d6108be565b005b6101b960048036038101906101b4919061340a565b610a36565b6040516101c7929190613446565b60405180910390f35b6101ea60048036038101906101e591906131f6565b610ac2565b6040516101fd979695949392919061348d565b60405180910390f35b61020e610b51565b60405161021b919061319e565b60405180910390f35b61023e60048036038101906102399190613561565b610cfe565b005b61025a6004803603810190610255919061340a565b611589565b60405161026791906135fb565b60405180910390f35b61028a6004803603810190610285919061340a565b6115a1565b604051610297919061319e565b60405180910390f35b6102ba60048036038101906102b5919061340a565b6117a4565b6040516102c7919061319e565b60405180910390f35b6102d8611995565b6040516102e59190613675565b60405180910390f35b6102f66119b9565b60405161030391906136b1565b60405180910390f35b610326600480360381019061032191906131f6565b6119dd565b604051610333919061375a565b60405180910390f35b610344611af9565b6040516103579796959493929190613859565b60405180910390f35b610368611ba3565b60405161037591906135fb565b60405180910390f35b610398600480360381019061039391906138dd565b611bb0565b005b6103a26122c2565b6040516103af919061319e565b60405180910390f35b6103d260048036038101906103cd91906131f6565b61231a565b005b6103ee60048036038101906103e991906131f6565b612729565b6040516103fb91906135fb565b60405180910390f35b61041e6004803603810190610419919061340a565b612741565b60405161042b919061319e565b60405180910390f35b61044e6004803603810190610449919061340a565b6127d8565b60405161045b91906135fb565b60405180910390f35b61047e6004803603810190610479919061340a565b6127f0565b60405161048b91906135fb565b60405180910390f35b6060600080600a80549050905060005b8181101561052657600060036000600a84815481106104c6576104c5613965565b5b9060005260206000200154815260200190815260200160002090508060060160009054906101000a900460ff16158015610504575080600501544211155b15610518578380610514906139c3565b9450505b5080806001019150506104a4565b5060008267ffffffffffffffff81111561054357610542613a0b565b5b6040519080825280602002602001820160405280156105715781602001602082028036833780820191505090505b5090506000805b8381101561063857600060036000600a848154811061059a57610599613965565b5b9060005260206000200154815260200190815260200160002090508060060160009054906101000a900460ff161580156105d8575080600501544211155b1561062a57600a82815481106105f1576105f0613965565b5b906000526020600020015484848151811061060f5761060e613965565b5b6020026020010181815250508280610626906139c3565b9350505b508080600101915050610578565b508194505050505090565b6060600080600a80549050905060005b818110156106b2578460036000600a848154811061067457610673613965565b5b9060005260206000200154815260200190815260200160002060010154036106a55782806106a1906139c3565b9350505b8080600101915050610653565b508167ffffffffffffffff8111156106cd576106cc613a0b565b5b60405190808252806020026020018201604052801561070657816020015b6106f361306b565b8152602001906001900390816106eb5790505b5092506000805b828110156108b5578560036000600a848154811061072e5761072d613965565b5b9060005260206000200154815260200190815260200160002060010154036108a85760036000600a838154811061076857610767613965565b5b906000526020600020015481526020019081526020016000206040518060e00160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820154815260200160028201548152602001600382015481526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600582015481526020016006820160009054906101000a900460ff16151515158152505085838151811061088e5761088d613965565b5b602002602001018190525081806108a4906139c3565b9250505b808060010191505061070d565b50505050919050565b6108c6612808565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811161094d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094490613a86565b60405180910390fd5b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109dd33827f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661284c9092919063ffffffff16565b3373ffffffffffffffffffffffffffffffffffffffff167fbace9fd79d5ea02ed8b43fa96af07e4e8f859a2f71ff878c748f5c22c578028482604051610a2391906135fb565b60405180910390a250610a346128cb565b565b600080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549150600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050915091565b60036020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154908060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060050154908060060160009054906101000a900460ff16905087565b6060600080600a80549050905060005b81811015610be257600060036000600a8481548110610b8357610b82613965565b5b9060005260206000200154815260200190815260200160002090508060060160009054906101000a900460ff16158015610bc05750806005015442115b15610bd4578380610bd0906139c3565b9450505b508080600101915050610b61565b5060008267ffffffffffffffff811115610bff57610bfe613a0b565b5b604051908082528060200260200182016040528015610c2d5781602001602082028036833780820191505090505b5090506000805b83811015610cf357600060036000600a8481548110610c5657610c55613965565b5b9060005260206000200154815260200190815260200160002090508060060160009054906101000a900460ff16158015610c935750806005015442115b15610ce557600a8281548110610cac57610cab613965565b5b9060005260206000200154848481518110610cca57610cc9613965565b5b6020026020010181815250508280610ce1906139c3565b9350505b508080600101915050610c34565b508194505050505090565b610d06612808565b6000600760008781526020019081526020016000205414610d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5390613af2565b60405180910390fd5b428311610d9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9590613b5e565b60405180910390fd5b62093a8042610dad9190613b7e565b831115610def576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de690613bfe565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663081812fc876040518263ffffffff1660e01b8152600401610e5f91906135fb565b602060405180830381865afa158015610e7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea09190613c33565b73ffffffffffffffffffffffffffffffffffffffff161480610f5a57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e985e9c587306040518363ffffffff1660e01b8152600401610f18929190613c60565b602060405180830381865afa158015610f35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f599190613cb5565b5b610f99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9090613d2e565b60405180910390fd5b60006040518060a001604052808873ffffffffffffffffffffffffffffffffffffffff168152602001878152602001868152602001858152602001600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815250905060006110887f7be5249af73b8af0f3a9642084df32b0278b3e21858028e300ea894dc3c4d5428360000151846020015185604001518660600151876080015160405160200161106d96959493929190613d4e565b604051602081830303815290604052805190602001206128d5565b905060006110e385858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050836128ef90919063ffffffff16565b90508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611153576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114a90613dfb565b60405180910390fd5b600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906111a3906139c3565b91905055508873ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636352211e8a6040518263ffffffff1660e01b815260040161121891906135fb565b602060405180830381865afa158015611235573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112599190613c33565b73ffffffffffffffffffffffffffffffffffffffff16146112af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a690613e67565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd8a308b6040518463ffffffff1660e01b815260040161130c93929190613e87565b600060405180830381600087803b15801561132657600080fd5b505af115801561133a573d6000803e3d6000fd5b505050506000898942600b546040516020016113599493929190613f27565b6040516020818303038152906040528051906020012060001c9050600b6000815480929190611387906139c3565b919050555060006040518060e001604052808c73ffffffffffffffffffffffffffffffffffffffff1681526020018b81526020018a815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001898152602001600015158152509050806003600084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155604082015181600201556060820151816003015560808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a0820151816005015560c08201518160060160006101000a81548160ff02191690831515021790555090505081600760008c815260200190815260200160002081905550600a829080600181540180825580915050600190039060005260206000200160009091909190915055898b73ffffffffffffffffffffffffffffffffffffffff16837f872f4927295e3b20ee4645a26f98ff735a0af5c6ea34ba8e84281324153dd1cb8c8c60405161156c929190613446565b60405180910390a450505050506115816128cb565b505050505050565b60056020528060005260406000206000915090505481565b6060600080600a80549050905060005b8181101561165c578473ffffffffffffffffffffffffffffffffffffffff1660036000600a84815481106115e8576115e7613965565b5b9060005260206000200154815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361164f57828061164b906139c3565b9350505b80806001019150506115b1565b5060008267ffffffffffffffff81111561167957611678613a0b565b5b6040519080825280602002602001820160405280156116a75781602001602082028036833780820191505090505b5090506000805b83811015611797578673ffffffffffffffffffffffffffffffffffffffff1660036000600a84815481106116e5576116e4613965565b5b9060005260206000200154815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361178a57600a818154811061175157611750613965565b5b906000526020600020015483838151811061176f5761176e613965565b5b6020026020010181815250508180611786906139c3565b9250505b80806001019150506116ae565b5081945050505050919050565b60606000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000808280549050905060005b818110156118775760006003600086848154811061181757611816613965565b5b9060005260206000200154815260200190815260200160002090508060060160009054906101000a900460ff16158015611855575080600501544211155b15611869578380611865906139c3565b9450505b5080806001019150506117f6565b5060008267ffffffffffffffff81111561189457611893613a0b565b5b6040519080825280602002602001820160405280156118c25781602001602082028036833780820191505090505b5090506000805b83811015611987576000600360008884815481106118ea576118e9613965565b5b9060005260206000200154815260200190815260200160002090508060060160009054906101000a900460ff16158015611928575080600501544211155b15611979578682815481106119405761193f613965565b5b906000526020600020015484848151811061195e5761195d613965565b5b6020026020010181815250508280611975906139c3565b9350505b5080806001019150506118c9565b508195505050505050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6119e561306b565b600360008381526020019081526020016000206040518060e00160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820154815260200160028201548152602001600382015481526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600582015481526020016006820160009054906101000a900460ff1615151515815250509050919050565b600060608060008060006060611b0d61291b565b611b15612956565b46306000801b600067ffffffffffffffff811115611b3657611b35613a0b565b5b604051908082528060200260200182016040528015611b645781602001602082028036833780820191505090505b507f0f00000000000000000000000000000000000000000000000000000000000000959493929190965096509650965096509650965090919293949596565b6000600a80549050905090565b611bb8612808565b600060405180608001604052808773ffffffffffffffffffffffffffffffffffffffff168152602001868152602001858152602001600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481525090506000611c9b7f4fe13e9b5c3c29693ebfa1669379ca330a64d4132615b021171162526df4b0fb8360000151846020015185604001518660600151604051602001611c80959493929190613f75565b604051602081830303815290604052805190602001206128d5565b90506000611cf685858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050836128ef90919063ffffffff16565b90508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611d66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5d90613dfb565b60405180910390fd5b600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190611db6906139c3565b919050555060006003600089815260200190815260200160002090508060060160009054906101000a900460ff1615611e24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1b90614014565b60405180910390fd5b8060050154421115611e6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6290614080565b60405180910390fd5b80600301548711611eb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea8906140ec565b60405180910390fd5b8060020154871015611ef8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eef90614158565b60405180910390fd5b867f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e8b306040518363ffffffff1660e01b8152600401611f54929190613c60565b602060405180830381865afa158015611f71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f95919061418d565b1015611fd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fcd90614206565b60405180910390fd5b6120238930897f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16612991909392919063ffffffff16565b60008160030154905060008260040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508883600301819055508a8360040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600960008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b815260200190815260200160002060009054906101000a900460ff166121d357600860008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208a90806001815401808255809150506001900390600052602060002001600090919091909150556001600960008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008c815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461225e5781600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122569190613b7e565b925050819055505b8a73ffffffffffffffffffffffffffffffffffffffff168a7f72ae9131421b849cf909c122d6af26d1ba34a94635f45bf475c4b6b06b0ddeaa8b6040516122a591906135fb565b60405180910390a35050505050506122bb6128cb565b5050505050565b6060600a80548060200260200160405190810160405280929190818152602001828054801561231057602002820191906000526020600020905b8154815260200190600101908083116122fc575b5050505050905090565b612322612808565b60006003600083815260200190815260200160002090508060060160009054906101000a900460ff161561238b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238290614014565b60405180910390fd5b806005015442116123d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c890614272565b60405180910390fd5b60018160060160006101000a81548160ff0219169083151502179055506000600760008360010154815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603612576577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd308360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600101546040518463ffffffff1660e01b81526004016124e893929190613e87565b600060405180830381600087803b15801561250257600080fd5b505af1158015612516573d6000803e3d6000fd5b50505050600073ffffffffffffffffffffffffffffffffffffffff168160010154837fb25cfc4fabbacb24741d3ec1015d93bb6107e86543a3d66e8610fa859df2dd54600060405161256891906142cd565b60405180910390a45061271e565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd308360040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600101546040518463ffffffff1660e01b81526004016125fb93929190613e87565b600060405180830381600087803b15801561261557600080fd5b505af1158015612629573d6000803e3d6000fd5b505050506126a08160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682600301547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661284c9092919063ffffffff16565b8060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160010154837fb25cfc4fabbacb24741d3ec1015d93bb6107e86543a3d66e8610fa859df2dd54846003015460405161271491906135fb565b60405180910390a4505b6127266128cb565b50565b60076020528060005260406000206000915090505481565b6060600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806020026020016040519081016040528092919081815260200182805480156127cc57602002820191906000526020600020905b8154815260200190600101908083116127b8575b50505050509050919050565b60066020528060005260406000206000915090505481565b60046020528060005260406000206000915090505481565b6002805403612843576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028081905550565b6128c6838473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb858560405160240161287f9291906142e8565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612a13565b505050565b6001600281905550565b60006128e86128e2612ab5565b83612b6c565b9050919050565b6000806000806128ff8686612bad565b92509250925061290f8282612c09565b82935050505092915050565b606061295160007f0000000000000000000000000000000000000000000000000000000000000000612d6d90919063ffffffff16565b905090565b606061298c60017f0000000000000000000000000000000000000000000000000000000000000000612d6d90919063ffffffff16565b905090565b612a0d848573ffffffffffffffffffffffffffffffffffffffff166323b872dd8686866040516024016129c693929190613e87565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612a13565b50505050565b600080602060008451602086016000885af180612a36576040513d6000823e3d81fd5b3d925060005191505060008214612a51576001811415612a6d565b60008473ffffffffffffffffffffffffffffffffffffffff163b145b15612aaf57836040517f5274afe7000000000000000000000000000000000000000000000000000000008152600401612aa69190614311565b60405180910390fd5b50505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff16148015612b3157507f000000000000000000000000000000000000000000000000000000000000000046145b15612b5e577f00000000000000000000000000000000000000000000000000000000000000009050612b69565b612b66612e1d565b90505b90565b60006040517f190100000000000000000000000000000000000000000000000000000000000081528360028201528260228201526042812091505092915050565b60008060006041845103612bf25760008060006020870151925060408701519150606087015160001a9050612be488828585612eb3565b955095509550505050612c02565b60006002855160001b9250925092505b9250925092565b60006003811115612c1d57612c1c61432c565b5b826003811115612c3057612c2f61432c565b5b0315612d695760016003811115612c4a57612c4961432c565b5b826003811115612c5d57612c5c61432c565b5b03612c94576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60026003811115612ca857612ca761432c565b5b826003811115612cbb57612cba61432c565b5b03612d00578060001c6040517ffce698f7000000000000000000000000000000000000000000000000000000008152600401612cf791906135fb565b60405180910390fd5b600380811115612d1357612d1261432c565b5b826003811115612d2657612d2561432c565b5b03612d6857806040517fd78bce0c000000000000000000000000000000000000000000000000000000008152600401612d5f919061435b565b60405180910390fd5b5b5050565b606060ff60001b8314612d8a57612d8383612fa7565b9050612e17565b818054612d96906143a5565b80601f0160208091040260200160405190810160405280929190818152602001828054612dc2906143a5565b8015612e0f5780601f10612de457610100808354040283529160200191612e0f565b820191906000526020600020905b815481529060010190602001808311612df257829003601f168201915b505050505090505b92915050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000004630604051602001612e989594939291906143d6565b60405160208183030381529060405280519060200120905090565b60008060007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08460001c1115612ef3576000600385925092509250612f9d565b600060018888888860405160008152602001604052604051612f189493929190614445565b6020604051602081039080840390855afa158015612f3a573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612f8e57600060016000801b93509350935050612f9d565b8060008060001b935093509350505b9450945094915050565b60606000612fb48361301b565b90506000602067ffffffffffffffff811115612fd357612fd2613a0b565b5b6040519080825280601f01601f1916602001820160405280156130055781602001600182028036833780820191505090505b5090508181528360208201528092505050919050565b60008060ff8360001c169050601f811115613062576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80915050919050565b6040518060e00160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016000151581525090565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000819050919050565b61311581613102565b82525050565b6000613127838361310c565b60208301905092915050565b6000602082019050919050565b600061314b826130d6565b61315581856130e1565b9350613160836130f2565b8060005b83811015613191578151613178888261311b565b975061318383613133565b925050600181019050613164565b5085935050505092915050565b600060208201905081810360008301526131b88184613140565b905092915050565b600080fd5b600080fd5b6131d381613102565b81146131de57600080fd5b50565b6000813590506131f0816131ca565b92915050565b60006020828403121561320c5761320b6131c0565b5b600061321a848285016131e1565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061327a8261324f565b9050919050565b61328a8161326f565b82525050565b60008115159050919050565b6132a581613290565b82525050565b60e0820160008201516132c16000850182613281565b5060208201516132d4602085018261310c565b5060408201516132e7604085018261310c565b5060608201516132fa606085018261310c565b50608082015161330d6080850182613281565b5060a082015161332060a085018261310c565b5060c082015161333360c085018261329c565b50505050565b600061334583836132ab565b60e08301905092915050565b6000602082019050919050565b600061336982613223565b613373818561322e565b935061337e8361323f565b8060005b838110156133af5781516133968882613339565b97506133a183613351565b925050600181019050613382565b5085935050505092915050565b600060208201905081810360008301526133d6818461335e565b905092915050565b6133e78161326f565b81146133f257600080fd5b50565b600081359050613404816133de565b92915050565b6000602082840312156134205761341f6131c0565b5b600061342e848285016133f5565b91505092915050565b61344081613102565b82525050565b600060408201905061345b6000830185613437565b6134686020830184613437565b9392505050565b6134788161326f565b82525050565b61348781613290565b82525050565b600060e0820190506134a2600083018a61346f565b6134af6020830189613437565b6134bc6040830188613437565b6134c96060830187613437565b6134d6608083018661346f565b6134e360a0830185613437565b6134f060c083018461347e565b98975050505050505050565b600080fd5b600080fd5b600080fd5b60008083601f840112613521576135206134fc565b5b8235905067ffffffffffffffff81111561353e5761353d613501565b5b60208301915083600182028301111561355a57613559613506565b5b9250929050565b60008060008060008060a0878903121561357e5761357d6131c0565b5b600061358c89828a016133f5565b965050602061359d89828a016131e1565b95505060406135ae89828a016131e1565b94505060606135bf89828a016131e1565b935050608087013567ffffffffffffffff8111156135e0576135df6131c5565b5b6135ec89828a0161350b565b92509250509295509295509295565b60006020820190506136106000830184613437565b92915050565b6000819050919050565b600061363b6136366136318461324f565b613616565b61324f565b9050919050565b600061364d82613620565b9050919050565b600061365f82613642565b9050919050565b61366f81613654565b82525050565b600060208201905061368a6000830184613666565b92915050565b600061369b82613642565b9050919050565b6136ab81613690565b82525050565b60006020820190506136c660008301846136a2565b92915050565b60e0820160008201516136e26000850182613281565b5060208201516136f5602085018261310c565b506040820151613708604085018261310c565b50606082015161371b606085018261310c565b50608082015161372e6080850182613281565b5060a082015161374160a085018261310c565b5060c082015161375460c085018261329c565b50505050565b600060e08201905061376f60008301846136cc565b92915050565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6137aa81613775565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b838110156137ea5780820151818401526020810190506137cf565b60008484015250505050565b6000601f19601f8301169050919050565b6000613812826137b0565b61381c81856137bb565b935061382c8185602086016137cc565b613835816137f6565b840191505092915050565b6000819050919050565b61385381613840565b82525050565b600060e08201905061386e600083018a6137a1565b81810360208301526138808189613807565b905081810360408301526138948188613807565b90506138a36060830187613437565b6138b0608083018661346f565b6138bd60a083018561384a565b81810360c08301526138cf8184613140565b905098975050505050505050565b6000806000806000608086880312156138f9576138f86131c0565b5b6000613907888289016133f5565b9550506020613918888289016131e1565b9450506040613929888289016131e1565b935050606086013567ffffffffffffffff81111561394a576139496131c5565b5b6139568882890161350b565b92509250509295509295909350565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006139ce82613102565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613a00576139ff613994565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e6f2066756e647320746f207769746864726177000000000000000000000000600082015250565b6000613a706014836137bb565b9150613a7b82613a3a565b602082019050919050565b60006020820190508181036000830152613a9f81613a63565b9050919050565b7f546f6b656e20616c726561647920696e206163746976652061756374696f6e00600082015250565b6000613adc601f836137bb565b9150613ae782613aa6565b602082019050919050565b60006020820190508181036000830152613b0b81613acf565b9050919050565b7f456e642074696d6520696e207061737400000000000000000000000000000000600082015250565b6000613b486010836137bb565b9150613b5382613b12565b602082019050919050565b60006020820190508181036000830152613b7781613b3b565b9050919050565b6000613b8982613102565b9150613b9483613102565b9250828201905080821115613bac57613bab613994565b5b92915050565b7f456e642074696d65206d7573742062652077697468696e203720646179730000600082015250565b6000613be8601e836137bb565b9150613bf382613bb2565b602082019050919050565b60006020820190508181036000830152613c1781613bdb565b9050919050565b600081519050613c2d816133de565b92915050565b600060208284031215613c4957613c486131c0565b5b6000613c5784828501613c1e565b91505092915050565b6000604082019050613c75600083018561346f565b613c82602083018461346f565b9392505050565b613c9281613290565b8114613c9d57600080fd5b50565b600081519050613caf81613c89565b92915050565b600060208284031215613ccb57613cca6131c0565b5b6000613cd984828501613ca0565b91505092915050565b7f4e6f7420617070726f7665640000000000000000000000000000000000000000600082015250565b6000613d18600c836137bb565b9150613d2382613ce2565b602082019050919050565b60006020820190508181036000830152613d4781613d0b565b9050919050565b600060c082019050613d63600083018961384a565b613d70602083018861346f565b613d7d6040830187613437565b613d8a6060830186613437565b613d976080830185613437565b613da460a0830184613437565b979650505050505050565b7f496e76616c6964207369676e6174757265000000000000000000000000000000600082015250565b6000613de56011836137bb565b9150613df082613daf565b602082019050919050565b60006020820190508181036000830152613e1481613dd8565b9050919050565b7f4e6f7420746865206f776e657200000000000000000000000000000000000000600082015250565b6000613e51600d836137bb565b9150613e5c82613e1b565b602082019050919050565b60006020820190508181036000830152613e8081613e44565b9050919050565b6000606082019050613e9c600083018661346f565b613ea9602083018561346f565b613eb66040830184613437565b949350505050565b60008160601b9050919050565b6000613ed682613ebe565b9050919050565b6000613ee882613ecb565b9050919050565b613f00613efb8261326f565b613edd565b82525050565b6000819050919050565b613f21613f1c82613102565b613f06565b82525050565b6000613f338287613eef565b601482019150613f438286613f10565b602082019150613f538285613f10565b602082019150613f638284613f10565b60208201915081905095945050505050565b600060a082019050613f8a600083018861384a565b613f97602083018761346f565b613fa46040830186613437565b613fb16060830185613437565b613fbe6080830184613437565b9695505050505050565b7f41756374696f6e20616c726561647920736574746c6564000000000000000000600082015250565b6000613ffe6017836137bb565b915061400982613fc8565b602082019050919050565b6000602082019050818103600083015261402d81613ff1565b9050919050565b7f41756374696f6e20656e64656400000000000000000000000000000000000000600082015250565b600061406a600d836137bb565b915061407582614034565b602082019050919050565b600060208201905081810360008301526140998161405d565b9050919050565b7f426964206e6f74206869676820656e6f75676800000000000000000000000000600082015250565b60006140d66013836137bb565b91506140e1826140a0565b602082019050919050565b60006020820190508181036000830152614105816140c9565b9050919050565b7f4269642062656c6f772073746172742070726963650000000000000000000000600082015250565b60006141426015836137bb565b915061414d8261410c565b602082019050919050565b6000602082019050818103600083015261417181614135565b9050919050565b600081519050614187816131ca565b92915050565b6000602082840312156141a3576141a26131c0565b5b60006141b184828501614178565b91505092915050565b7f496e73756666696369656e7420746f6b656e20616c6c6f77616e636500000000600082015250565b60006141f0601c836137bb565b91506141fb826141ba565b602082019050919050565b6000602082019050818103600083015261421f816141e3565b9050919050565b7f41756374696f6e206e6f7420656e646564207965740000000000000000000000600082015250565b600061425c6015836137bb565b915061426782614226565b602082019050919050565b6000602082019050818103600083015261428b8161424f565b9050919050565b6000819050919050565b60006142b76142b26142ad84614292565b613616565b613102565b9050919050565b6142c78161429c565b82525050565b60006020820190506142e260008301846142be565b92915050565b60006040820190506142fd600083018561346f565b61430a6020830184613437565b9392505050565b6000602082019050614326600083018461346f565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000602082019050614370600083018461384a565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806143bd57607f821691505b6020821081036143d0576143cf614376565b5b50919050565b600060a0820190506143eb600083018861384a565b6143f8602083018761384a565b614405604083018661384a565b6144126060830185613437565b61441f608083018461346f565b9695505050505050565b600060ff82169050919050565b61443f81614429565b82525050565b600060808201905061445a600083018761384a565b6144676020830186614436565b614474604083018561384a565b614481606083018461384a565b9594505050505056fea26469706673582212208a4e6f0fe032e4062a1b3ce6245710e03668b0e9dd521973d067c782cc17445664736f6c634300081c0033",
731
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101425760003560e01c806372dd52e3116100b8578063cbd2bdfd1161007c578063cbd2bdfd1461039a578063e8083863146103b8578063ed9559f7146103d4578063f279f9ad14610404578063f3f4370314610434578063fc2260891461046457610142565b806372dd52e3146102ee57806378bd79351461030c57806384b0196e1461033c578063a0bff76b14610360578063bf63fb821461037e57610142565b80635ff341d21161010a5780635ff341d2146102065780636388923f14610224578063666b0cf91461024057806369ce5d87146102705780636b4b3baf146102a0578063709263c1146102d057610142565b80632dee466d146101475780633939edf5146101655780633ccfd60b146101955780635124ae951461019f578063571a26a0146101d0575b600080fd5b61014f610494565b60405161015c919061319e565b60405180910390f35b61017f600480360381019061017a91906131f6565b610643565b60405161018c91906133bc565b60405180910390f35b61019d6108be565b005b6101b960048036038101906101b4919061340a565b610a36565b6040516101c7929190613446565b60405180910390f35b6101ea60048036038101906101e591906131f6565b610ac2565b6040516101fd979695949392919061348d565b60405180910390f35b61020e610b51565b60405161021b919061319e565b60405180910390f35b61023e60048036038101906102399190613561565b610cfe565b005b61025a6004803603810190610255919061340a565b611589565b60405161026791906135fb565b60405180910390f35b61028a6004803603810190610285919061340a565b6115a1565b604051610297919061319e565b60405180910390f35b6102ba60048036038101906102b5919061340a565b6117a4565b6040516102c7919061319e565b60405180910390f35b6102d8611995565b6040516102e59190613675565b60405180910390f35b6102f66119b9565b60405161030391906136b1565b60405180910390f35b610326600480360381019061032191906131f6565b6119dd565b604051610333919061375a565b60405180910390f35b610344611af9565b6040516103579796959493929190613859565b60405180910390f35b610368611ba3565b60405161037591906135fb565b60405180910390f35b610398600480360381019061039391906138dd565b611bb0565b005b6103a26122c2565b6040516103af919061319e565b60405180910390f35b6103d260048036038101906103cd91906131f6565b61231a565b005b6103ee60048036038101906103e991906131f6565b612729565b6040516103fb91906135fb565b60405180910390f35b61041e6004803603810190610419919061340a565b612741565b60405161042b919061319e565b60405180910390f35b61044e6004803603810190610449919061340a565b6127d8565b60405161045b91906135fb565b60405180910390f35b61047e6004803603810190610479919061340a565b6127f0565b60405161048b91906135fb565b60405180910390f35b6060600080600a80549050905060005b8181101561052657600060036000600a84815481106104c6576104c5613965565b5b9060005260206000200154815260200190815260200160002090508060060160009054906101000a900460ff16158015610504575080600501544211155b15610518578380610514906139c3565b9450505b5080806001019150506104a4565b5060008267ffffffffffffffff81111561054357610542613a0b565b5b6040519080825280602002602001820160405280156105715781602001602082028036833780820191505090505b5090506000805b8381101561063857600060036000600a848154811061059a57610599613965565b5b9060005260206000200154815260200190815260200160002090508060060160009054906101000a900460ff161580156105d8575080600501544211155b1561062a57600a82815481106105f1576105f0613965565b5b906000526020600020015484848151811061060f5761060e613965565b5b6020026020010181815250508280610626906139c3565b9350505b508080600101915050610578565b508194505050505090565b6060600080600a80549050905060005b818110156106b2578460036000600a848154811061067457610673613965565b5b9060005260206000200154815260200190815260200160002060010154036106a55782806106a1906139c3565b9350505b8080600101915050610653565b508167ffffffffffffffff8111156106cd576106cc613a0b565b5b60405190808252806020026020018201604052801561070657816020015b6106f361306b565b8152602001906001900390816106eb5790505b5092506000805b828110156108b5578560036000600a848154811061072e5761072d613965565b5b9060005260206000200154815260200190815260200160002060010154036108a85760036000600a838154811061076857610767613965565b5b906000526020600020015481526020019081526020016000206040518060e00160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820154815260200160028201548152602001600382015481526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600582015481526020016006820160009054906101000a900460ff16151515158152505085838151811061088e5761088d613965565b5b602002602001018190525081806108a4906139c3565b9250505b808060010191505061070d565b50505050919050565b6108c6612808565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811161094d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094490613a86565b60405180910390fd5b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109dd33827f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661284c9092919063ffffffff16565b3373ffffffffffffffffffffffffffffffffffffffff167fbace9fd79d5ea02ed8b43fa96af07e4e8f859a2f71ff878c748f5c22c578028482604051610a2391906135fb565b60405180910390a250610a346128cb565b565b600080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549150600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050915091565b60036020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154908060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060050154908060060160009054906101000a900460ff16905087565b6060600080600a80549050905060005b81811015610be257600060036000600a8481548110610b8357610b82613965565b5b9060005260206000200154815260200190815260200160002090508060060160009054906101000a900460ff16158015610bc05750806005015442115b15610bd4578380610bd0906139c3565b9450505b508080600101915050610b61565b5060008267ffffffffffffffff811115610bff57610bfe613a0b565b5b604051908082528060200260200182016040528015610c2d5781602001602082028036833780820191505090505b5090506000805b83811015610cf357600060036000600a8481548110610c5657610c55613965565b5b9060005260206000200154815260200190815260200160002090508060060160009054906101000a900460ff16158015610c935750806005015442115b15610ce557600a8281548110610cac57610cab613965565b5b9060005260206000200154848481518110610cca57610cc9613965565b5b6020026020010181815250508280610ce1906139c3565b9350505b508080600101915050610c34565b508194505050505090565b610d06612808565b6000600760008781526020019081526020016000205414610d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5390613af2565b60405180910390fd5b428311610d9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9590613b5e565b60405180910390fd5b62093a8042610dad9190613b7e565b831115610def576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de690613bfe565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663081812fc876040518263ffffffff1660e01b8152600401610e5f91906135fb565b602060405180830381865afa158015610e7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea09190613c33565b73ffffffffffffffffffffffffffffffffffffffff161480610f5a57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e985e9c587306040518363ffffffff1660e01b8152600401610f18929190613c60565b602060405180830381865afa158015610f35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f599190613cb5565b5b610f99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9090613d2e565b60405180910390fd5b60006040518060a001604052808873ffffffffffffffffffffffffffffffffffffffff168152602001878152602001868152602001858152602001600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815250905060006110887f7be5249af73b8af0f3a9642084df32b0278b3e21858028e300ea894dc3c4d5428360000151846020015185604001518660600151876080015160405160200161106d96959493929190613d4e565b604051602081830303815290604052805190602001206128d5565b905060006110e385858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050836128ef90919063ffffffff16565b90508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611153576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114a90613dfb565b60405180910390fd5b600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906111a3906139c3565b91905055508873ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636352211e8a6040518263ffffffff1660e01b815260040161121891906135fb565b602060405180830381865afa158015611235573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112599190613c33565b73ffffffffffffffffffffffffffffffffffffffff16146112af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a690613e67565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd8a308b6040518463ffffffff1660e01b815260040161130c93929190613e87565b600060405180830381600087803b15801561132657600080fd5b505af115801561133a573d6000803e3d6000fd5b505050506000898942600b546040516020016113599493929190613f27565b6040516020818303038152906040528051906020012060001c9050600b6000815480929190611387906139c3565b919050555060006040518060e001604052808c73ffffffffffffffffffffffffffffffffffffffff1681526020018b81526020018a815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001898152602001600015158152509050806003600084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155604082015181600201556060820151816003015560808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a0820151816005015560c08201518160060160006101000a81548160ff02191690831515021790555090505081600760008c815260200190815260200160002081905550600a829080600181540180825580915050600190039060005260206000200160009091909190915055898b73ffffffffffffffffffffffffffffffffffffffff16837f872f4927295e3b20ee4645a26f98ff735a0af5c6ea34ba8e84281324153dd1cb8c8c60405161156c929190613446565b60405180910390a450505050506115816128cb565b505050505050565b60056020528060005260406000206000915090505481565b6060600080600a80549050905060005b8181101561165c578473ffffffffffffffffffffffffffffffffffffffff1660036000600a84815481106115e8576115e7613965565b5b9060005260206000200154815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361164f57828061164b906139c3565b9350505b80806001019150506115b1565b5060008267ffffffffffffffff81111561167957611678613a0b565b5b6040519080825280602002602001820160405280156116a75781602001602082028036833780820191505090505b5090506000805b83811015611797578673ffffffffffffffffffffffffffffffffffffffff1660036000600a84815481106116e5576116e4613965565b5b9060005260206000200154815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361178a57600a818154811061175157611750613965565b5b906000526020600020015483838151811061176f5761176e613965565b5b6020026020010181815250508180611786906139c3565b9250505b80806001019150506116ae565b5081945050505050919050565b60606000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000808280549050905060005b818110156118775760006003600086848154811061181757611816613965565b5b9060005260206000200154815260200190815260200160002090508060060160009054906101000a900460ff16158015611855575080600501544211155b15611869578380611865906139c3565b9450505b5080806001019150506117f6565b5060008267ffffffffffffffff81111561189457611893613a0b565b5b6040519080825280602002602001820160405280156118c25781602001602082028036833780820191505090505b5090506000805b83811015611987576000600360008884815481106118ea576118e9613965565b5b9060005260206000200154815260200190815260200160002090508060060160009054906101000a900460ff16158015611928575080600501544211155b15611979578682815481106119405761193f613965565b5b906000526020600020015484848151811061195e5761195d613965565b5b6020026020010181815250508280611975906139c3565b9350505b5080806001019150506118c9565b508195505050505050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6119e561306b565b600360008381526020019081526020016000206040518060e00160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820154815260200160028201548152602001600382015481526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600582015481526020016006820160009054906101000a900460ff1615151515815250509050919050565b600060608060008060006060611b0d61291b565b611b15612956565b46306000801b600067ffffffffffffffff811115611b3657611b35613a0b565b5b604051908082528060200260200182016040528015611b645781602001602082028036833780820191505090505b507f0f00000000000000000000000000000000000000000000000000000000000000959493929190965096509650965096509650965090919293949596565b6000600a80549050905090565b611bb8612808565b600060405180608001604052808773ffffffffffffffffffffffffffffffffffffffff168152602001868152602001858152602001600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481525090506000611c9b7f4fe13e9b5c3c29693ebfa1669379ca330a64d4132615b021171162526df4b0fb8360000151846020015185604001518660600151604051602001611c80959493929190613f75565b604051602081830303815290604052805190602001206128d5565b90506000611cf685858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050836128ef90919063ffffffff16565b90508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611d66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5d90613dfb565b60405180910390fd5b600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190611db6906139c3565b919050555060006003600089815260200190815260200160002090508060060160009054906101000a900460ff1615611e24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1b90614014565b60405180910390fd5b8060050154421115611e6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6290614080565b60405180910390fd5b80600301548711611eb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea8906140ec565b60405180910390fd5b8060020154871015611ef8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eef90614158565b60405180910390fd5b867f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e8b306040518363ffffffff1660e01b8152600401611f54929190613c60565b602060405180830381865afa158015611f71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f95919061418d565b1015611fd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fcd90614206565b60405180910390fd5b6120238930897f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16612991909392919063ffffffff16565b60008160030154905060008260040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508883600301819055508a8360040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600960008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b815260200190815260200160002060009054906101000a900460ff166121d357600860008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208a90806001815401808255809150506001900390600052602060002001600090919091909150556001600960008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008c815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461225e5781600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122569190613b7e565b925050819055505b8a73ffffffffffffffffffffffffffffffffffffffff168a7f72ae9131421b849cf909c122d6af26d1ba34a94635f45bf475c4b6b06b0ddeaa8b6040516122a591906135fb565b60405180910390a35050505050506122bb6128cb565b5050505050565b6060600a80548060200260200160405190810160405280929190818152602001828054801561231057602002820191906000526020600020905b8154815260200190600101908083116122fc575b5050505050905090565b612322612808565b60006003600083815260200190815260200160002090508060060160009054906101000a900460ff161561238b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238290614014565b60405180910390fd5b806005015442116123d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c890614272565b60405180910390fd5b60018160060160006101000a81548160ff0219169083151502179055506000600760008360010154815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603612576577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd308360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600101546040518463ffffffff1660e01b81526004016124e893929190613e87565b600060405180830381600087803b15801561250257600080fd5b505af1158015612516573d6000803e3d6000fd5b50505050600073ffffffffffffffffffffffffffffffffffffffff168160010154837fb25cfc4fabbacb24741d3ec1015d93bb6107e86543a3d66e8610fa859df2dd54600060405161256891906142cd565b60405180910390a45061271e565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd308360040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600101546040518463ffffffff1660e01b81526004016125fb93929190613e87565b600060405180830381600087803b15801561261557600080fd5b505af1158015612629573d6000803e3d6000fd5b505050506126a08160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682600301547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661284c9092919063ffffffff16565b8060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160010154837fb25cfc4fabbacb24741d3ec1015d93bb6107e86543a3d66e8610fa859df2dd54846003015460405161271491906135fb565b60405180910390a4505b6127266128cb565b50565b60076020528060005260406000206000915090505481565b6060600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806020026020016040519081016040528092919081815260200182805480156127cc57602002820191906000526020600020905b8154815260200190600101908083116127b8575b50505050509050919050565b60066020528060005260406000206000915090505481565b60046020528060005260406000206000915090505481565b6002805403612843576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028081905550565b6128c6838473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb858560405160240161287f9291906142e8565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612a13565b505050565b6001600281905550565b60006128e86128e2612ab5565b83612b6c565b9050919050565b6000806000806128ff8686612bad565b92509250925061290f8282612c09565b82935050505092915050565b606061295160007f0000000000000000000000000000000000000000000000000000000000000000612d6d90919063ffffffff16565b905090565b606061298c60017f0000000000000000000000000000000000000000000000000000000000000000612d6d90919063ffffffff16565b905090565b612a0d848573ffffffffffffffffffffffffffffffffffffffff166323b872dd8686866040516024016129c693929190613e87565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612a13565b50505050565b600080602060008451602086016000885af180612a36576040513d6000823e3d81fd5b3d925060005191505060008214612a51576001811415612a6d565b60008473ffffffffffffffffffffffffffffffffffffffff163b145b15612aaf57836040517f5274afe7000000000000000000000000000000000000000000000000000000008152600401612aa69190614311565b60405180910390fd5b50505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff16148015612b3157507f000000000000000000000000000000000000000000000000000000000000000046145b15612b5e577f00000000000000000000000000000000000000000000000000000000000000009050612b69565b612b66612e1d565b90505b90565b60006040517f190100000000000000000000000000000000000000000000000000000000000081528360028201528260228201526042812091505092915050565b60008060006041845103612bf25760008060006020870151925060408701519150606087015160001a9050612be488828585612eb3565b955095509550505050612c02565b60006002855160001b9250925092505b9250925092565b60006003811115612c1d57612c1c61432c565b5b826003811115612c3057612c2f61432c565b5b0315612d695760016003811115612c4a57612c4961432c565b5b826003811115612c5d57612c5c61432c565b5b03612c94576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60026003811115612ca857612ca761432c565b5b826003811115612cbb57612cba61432c565b5b03612d00578060001c6040517ffce698f7000000000000000000000000000000000000000000000000000000008152600401612cf791906135fb565b60405180910390fd5b600380811115612d1357612d1261432c565b5b826003811115612d2657612d2561432c565b5b03612d6857806040517fd78bce0c000000000000000000000000000000000000000000000000000000008152600401612d5f919061435b565b60405180910390fd5b5b5050565b606060ff60001b8314612d8a57612d8383612fa7565b9050612e17565b818054612d96906143a5565b80601f0160208091040260200160405190810160405280929190818152602001828054612dc2906143a5565b8015612e0f5780601f10612de457610100808354040283529160200191612e0f565b820191906000526020600020905b815481529060010190602001808311612df257829003601f168201915b505050505090505b92915050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000004630604051602001612e989594939291906143d6565b60405160208183030381529060405280519060200120905090565b60008060007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08460001c1115612ef3576000600385925092509250612f9d565b600060018888888860405160008152602001604052604051612f189493929190614445565b6020604051602081039080840390855afa158015612f3a573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612f8e57600060016000801b93509350935050612f9d565b8060008060001b935093509350505b9450945094915050565b60606000612fb48361301b565b90506000602067ffffffffffffffff811115612fd357612fd2613a0b565b5b6040519080825280601f01601f1916602001820160405280156130055781602001600182028036833780820191505090505b5090508181528360208201528092505050919050565b60008060ff8360001c169050601f811115613062576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80915050919050565b6040518060e00160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016000151581525090565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000819050919050565b61311581613102565b82525050565b6000613127838361310c565b60208301905092915050565b6000602082019050919050565b600061314b826130d6565b61315581856130e1565b9350613160836130f2565b8060005b83811015613191578151613178888261311b565b975061318383613133565b925050600181019050613164565b5085935050505092915050565b600060208201905081810360008301526131b88184613140565b905092915050565b600080fd5b600080fd5b6131d381613102565b81146131de57600080fd5b50565b6000813590506131f0816131ca565b92915050565b60006020828403121561320c5761320b6131c0565b5b600061321a848285016131e1565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061327a8261324f565b9050919050565b61328a8161326f565b82525050565b60008115159050919050565b6132a581613290565b82525050565b60e0820160008201516132c16000850182613281565b5060208201516132d4602085018261310c565b5060408201516132e7604085018261310c565b5060608201516132fa606085018261310c565b50608082015161330d6080850182613281565b5060a082015161332060a085018261310c565b5060c082015161333360c085018261329c565b50505050565b600061334583836132ab565b60e08301905092915050565b6000602082019050919050565b600061336982613223565b613373818561322e565b935061337e8361323f565b8060005b838110156133af5781516133968882613339565b97506133a183613351565b925050600181019050613382565b5085935050505092915050565b600060208201905081810360008301526133d6818461335e565b905092915050565b6133e78161326f565b81146133f257600080fd5b50565b600081359050613404816133de565b92915050565b6000602082840312156134205761341f6131c0565b5b600061342e848285016133f5565b91505092915050565b61344081613102565b82525050565b600060408201905061345b6000830185613437565b6134686020830184613437565b9392505050565b6134788161326f565b82525050565b61348781613290565b82525050565b600060e0820190506134a2600083018a61346f565b6134af6020830189613437565b6134bc6040830188613437565b6134c96060830187613437565b6134d6608083018661346f565b6134e360a0830185613437565b6134f060c083018461347e565b98975050505050505050565b600080fd5b600080fd5b600080fd5b60008083601f840112613521576135206134fc565b5b8235905067ffffffffffffffff81111561353e5761353d613501565b5b60208301915083600182028301111561355a57613559613506565b5b9250929050565b60008060008060008060a0878903121561357e5761357d6131c0565b5b600061358c89828a016133f5565b965050602061359d89828a016131e1565b95505060406135ae89828a016131e1565b94505060606135bf89828a016131e1565b935050608087013567ffffffffffffffff8111156135e0576135df6131c5565b5b6135ec89828a0161350b565b92509250509295509295509295565b60006020820190506136106000830184613437565b92915050565b6000819050919050565b600061363b6136366136318461324f565b613616565b61324f565b9050919050565b600061364d82613620565b9050919050565b600061365f82613642565b9050919050565b61366f81613654565b82525050565b600060208201905061368a6000830184613666565b92915050565b600061369b82613642565b9050919050565b6136ab81613690565b82525050565b60006020820190506136c660008301846136a2565b92915050565b60e0820160008201516136e26000850182613281565b5060208201516136f5602085018261310c565b506040820151613708604085018261310c565b50606082015161371b606085018261310c565b50608082015161372e6080850182613281565b5060a082015161374160a085018261310c565b5060c082015161375460c085018261329c565b50505050565b600060e08201905061376f60008301846136cc565b92915050565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6137aa81613775565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b838110156137ea5780820151818401526020810190506137cf565b60008484015250505050565b6000601f19601f8301169050919050565b6000613812826137b0565b61381c81856137bb565b935061382c8185602086016137cc565b613835816137f6565b840191505092915050565b6000819050919050565b61385381613840565b82525050565b600060e08201905061386e600083018a6137a1565b81810360208301526138808189613807565b905081810360408301526138948188613807565b90506138a36060830187613437565b6138b0608083018661346f565b6138bd60a083018561384a565b81810360c08301526138cf8184613140565b905098975050505050505050565b6000806000806000608086880312156138f9576138f86131c0565b5b6000613907888289016133f5565b9550506020613918888289016131e1565b9450506040613929888289016131e1565b935050606086013567ffffffffffffffff81111561394a576139496131c5565b5b6139568882890161350b565b92509250509295509295909350565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006139ce82613102565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613a00576139ff613994565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e6f2066756e647320746f207769746864726177000000000000000000000000600082015250565b6000613a706014836137bb565b9150613a7b82613a3a565b602082019050919050565b60006020820190508181036000830152613a9f81613a63565b9050919050565b7f546f6b656e20616c726561647920696e206163746976652061756374696f6e00600082015250565b6000613adc601f836137bb565b9150613ae782613aa6565b602082019050919050565b60006020820190508181036000830152613b0b81613acf565b9050919050565b7f456e642074696d6520696e207061737400000000000000000000000000000000600082015250565b6000613b486010836137bb565b9150613b5382613b12565b602082019050919050565b60006020820190508181036000830152613b7781613b3b565b9050919050565b6000613b8982613102565b9150613b9483613102565b9250828201905080821115613bac57613bab613994565b5b92915050565b7f456e642074696d65206d7573742062652077697468696e203720646179730000600082015250565b6000613be8601e836137bb565b9150613bf382613bb2565b602082019050919050565b60006020820190508181036000830152613c1781613bdb565b9050919050565b600081519050613c2d816133de565b92915050565b600060208284031215613c4957613c486131c0565b5b6000613c5784828501613c1e565b91505092915050565b6000604082019050613c75600083018561346f565b613c82602083018461346f565b9392505050565b613c9281613290565b8114613c9d57600080fd5b50565b600081519050613caf81613c89565b92915050565b600060208284031215613ccb57613cca6131c0565b5b6000613cd984828501613ca0565b91505092915050565b7f4e6f7420617070726f7665640000000000000000000000000000000000000000600082015250565b6000613d18600c836137bb565b9150613d2382613ce2565b602082019050919050565b60006020820190508181036000830152613d4781613d0b565b9050919050565b600060c082019050613d63600083018961384a565b613d70602083018861346f565b613d7d6040830187613437565b613d8a6060830186613437565b613d976080830185613437565b613da460a0830184613437565b979650505050505050565b7f496e76616c6964207369676e6174757265000000000000000000000000000000600082015250565b6000613de56011836137bb565b9150613df082613daf565b602082019050919050565b60006020820190508181036000830152613e1481613dd8565b9050919050565b7f4e6f7420746865206f776e657200000000000000000000000000000000000000600082015250565b6000613e51600d836137bb565b9150613e5c82613e1b565b602082019050919050565b60006020820190508181036000830152613e8081613e44565b9050919050565b6000606082019050613e9c600083018661346f565b613ea9602083018561346f565b613eb66040830184613437565b949350505050565b60008160601b9050919050565b6000613ed682613ebe565b9050919050565b6000613ee882613ecb565b9050919050565b613f00613efb8261326f565b613edd565b82525050565b6000819050919050565b613f21613f1c82613102565b613f06565b82525050565b6000613f338287613eef565b601482019150613f438286613f10565b602082019150613f538285613f10565b602082019150613f638284613f10565b60208201915081905095945050505050565b600060a082019050613f8a600083018861384a565b613f97602083018761346f565b613fa46040830186613437565b613fb16060830185613437565b613fbe6080830184613437565b9695505050505050565b7f41756374696f6e20616c726561647920736574746c6564000000000000000000600082015250565b6000613ffe6017836137bb565b915061400982613fc8565b602082019050919050565b6000602082019050818103600083015261402d81613ff1565b9050919050565b7f41756374696f6e20656e64656400000000000000000000000000000000000000600082015250565b600061406a600d836137bb565b915061407582614034565b602082019050919050565b600060208201905081810360008301526140998161405d565b9050919050565b7f426964206e6f74206869676820656e6f75676800000000000000000000000000600082015250565b60006140d66013836137bb565b91506140e1826140a0565b602082019050919050565b60006020820190508181036000830152614105816140c9565b9050919050565b7f4269642062656c6f772073746172742070726963650000000000000000000000600082015250565b60006141426015836137bb565b915061414d8261410c565b602082019050919050565b6000602082019050818103600083015261417181614135565b9050919050565b600081519050614187816131ca565b92915050565b6000602082840312156141a3576141a26131c0565b5b60006141b184828501614178565b91505092915050565b7f496e73756666696369656e7420746f6b656e20616c6c6f77616e636500000000600082015250565b60006141f0601c836137bb565b91506141fb826141ba565b602082019050919050565b6000602082019050818103600083015261421f816141e3565b9050919050565b7f41756374696f6e206e6f7420656e646564207965740000000000000000000000600082015250565b600061425c6015836137bb565b915061426782614226565b602082019050919050565b6000602082019050818103600083015261428b8161424f565b9050919050565b6000819050919050565b60006142b76142b26142ad84614292565b613616565b613102565b9050919050565b6142c78161429c565b82525050565b60006020820190506142e260008301846142be565b92915050565b60006040820190506142fd600083018561346f565b61430a6020830184613437565b9392505050565b6000602082019050614326600083018461346f565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000602082019050614370600083018461384a565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806143bd57607f821691505b6020821081036143d0576143cf614376565b5b50919050565b600060a0820190506143eb600083018861384a565b6143f8602083018761384a565b614405604083018661384a565b6144126060830185613437565b61441f608083018461346f565b9695505050505050565b600060ff82169050919050565b61443f81614429565b82525050565b600060808201905061445a600083018761384a565b6144676020830186614436565b614474604083018561384a565b614481606083018461384a565b9594505050505056fea26469706673582212208a4e6f0fe032e4062a1b3ce6245710e03668b0e9dd521973d067c782cc17445664736f6c634300081c0033",
732
+ "linkReferences": {},
733
+ "deployedLinkReferences": {}
734
+ }