@flarenetwork/flare-periphery-contract-artifacts 0.0.1 → 0.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 (123) hide show
  1. package/dist/coston/deploys/contractAddresses.d.ts +1 -0
  2. package/dist/coston/deploys/contractAddresses.d.ts.map +1 -1
  3. package/dist/coston/deploys/contractAddresses.js +1 -0
  4. package/dist/coston/deploys/contractAddresses.js.map +1 -1
  5. package/dist/coston/deploys/mapper.d.ts.map +1 -1
  6. package/dist/coston/deploys/mapper.js +6 -2
  7. package/dist/coston/deploys/mapper.js.map +1 -1
  8. package/dist/coston2/abis.coston2.d.ts.map +1 -1
  9. package/dist/coston2/abis.coston2.js +8 -2
  10. package/dist/coston2/abis.coston2.js.map +1 -1
  11. package/dist/coston2/artifacts/contracts/addressUpdater/implementation/AddressUpdater.sol/AddressUpdater.json +72 -2
  12. package/dist/coston2/artifacts/contracts/addressUpdater/interface/IIAddressUpdater.sol/IIAddressUpdater.json +105 -0
  13. package/dist/coston2/artifacts/contracts/assetRegistry/implementation/WNatRegistryProvider.sol/WNatRegistryProvider.json +2 -2
  14. package/dist/coston2/artifacts/contracts/genesis/implementation/DistributionTreasury.sol/DistributionTreasury.json +17 -64
  15. package/dist/coston2/artifacts/contracts/token/lib/IICombinedNatBalance.sol/IICombinedNatBalance.json +54 -0
  16. package/dist/coston2/artifacts/contracts/tokenPools/implementation/DistributionToDelegators.sol/DistributionToDelegators.json +148 -231
  17. package/dist/coston2/artifacts/contracts/tokenPools/implementation/FtsoRewardManager.sol/FtsoRewardManager.json +2 -2
  18. package/dist/coston2/artifacts/contracts/utils/implementation/FlareContractRegistry.sol/FlareContractRegistry.json +147 -0
  19. package/dist/coston2/artifacts/contracts/utils/interface/IIRandomProvider.sol/IIRandomProvider.json +60 -0
  20. package/dist/coston2/deploys/contractAddresses.d.ts +2 -1
  21. package/dist/coston2/deploys/contractAddresses.d.ts.map +1 -1
  22. package/dist/coston2/deploys/contractAddresses.js +5 -4
  23. package/dist/coston2/deploys/contractAddresses.js.map +1 -1
  24. package/dist/coston2/deploys/mapper.d.ts.map +1 -1
  25. package/dist/coston2/deploys/mapper.js +6 -2
  26. package/dist/coston2/deploys/mapper.js.map +1 -1
  27. package/dist/flare/abis.flare.d.ts.map +1 -1
  28. package/dist/flare/abis.flare.js +8 -2
  29. package/dist/flare/abis.flare.js.map +1 -1
  30. package/dist/flare/artifacts/contracts/addressUpdater/implementation/AddressUpdater.sol/AddressUpdater.json +72 -2
  31. package/dist/flare/artifacts/contracts/addressUpdater/interface/IIAddressUpdater.sol/IIAddressUpdater.json +105 -0
  32. package/dist/flare/artifacts/contracts/assetRegistry/implementation/WNatRegistryProvider.sol/WNatRegistryProvider.json +2 -2
  33. package/dist/flare/artifacts/contracts/genesis/implementation/DistributionTreasury.sol/DistributionTreasury.json +17 -64
  34. package/dist/flare/artifacts/contracts/token/lib/IICombinedNatBalance.sol/IICombinedNatBalance.json +54 -0
  35. package/dist/flare/artifacts/contracts/tokenPools/implementation/DistributionToDelegators.sol/DistributionToDelegators.json +148 -231
  36. package/dist/flare/artifacts/contracts/utils/implementation/FlareContractRegistry.sol/FlareContractRegistry.json +147 -0
  37. package/dist/flare/artifacts/contracts/utils/interface/IIRandomProvider.sol/IIRandomProvider.json +60 -0
  38. package/dist/flare/deploys/contractAddresses.d.ts +2 -1
  39. package/dist/flare/deploys/contractAddresses.d.ts.map +1 -1
  40. package/dist/flare/deploys/contractAddresses.js +5 -4
  41. package/dist/flare/deploys/contractAddresses.js.map +1 -1
  42. package/dist/flare/deploys/mapper.d.ts.map +1 -1
  43. package/dist/flare/deploys/mapper.js +6 -2
  44. package/dist/flare/deploys/mapper.js.map +1 -1
  45. package/dist/songbird/abis.songbird.d.ts.map +1 -1
  46. package/dist/songbird/abis.songbird.js +52 -4
  47. package/dist/songbird/abis.songbird.js.map +1 -1
  48. package/dist/songbird/artifacts/contracts/addressUpdater/implementation/AddressUpdatable.sol/AddressUpdatable.json +42 -0
  49. package/dist/songbird/artifacts/contracts/addressUpdater/implementation/AddressUpdater.sol/AddressUpdater.json +381 -0
  50. package/dist/songbird/artifacts/contracts/addressUpdater/interface/IIAddressUpdatable.sol/IIAddressUpdatable.json +29 -0
  51. package/dist/songbird/artifacts/contracts/addressUpdater/interface/IIAddressUpdater.sol/IIAddressUpdater.json +105 -0
  52. package/dist/songbird/artifacts/contracts/claiming/implementation/ClaimSetupManager.sol/ClaimSetupManager.json +1151 -0
  53. package/dist/songbird/artifacts/contracts/claiming/implementation/CloneFactory.sol/CloneFactory.json +10 -0
  54. package/dist/songbird/artifacts/contracts/claiming/implementation/DelegationAccount.sol/DelegationAccount.json +346 -0
  55. package/dist/songbird/artifacts/contracts/claiming/interface/IIClaimSetupManager.sol/IIClaimSetupManager.json +795 -0
  56. package/dist/songbird/artifacts/contracts/claiming/interface/IIDelegationAccount.sol/IIDelegationAccount.json +316 -0
  57. package/dist/songbird/artifacts/contracts/ftso/implementation/Ftso.sol/Ftso.json +175 -26
  58. package/dist/songbird/artifacts/contracts/ftso/implementation/FtsoManager.sol/FtsoManager.json +758 -146
  59. package/dist/songbird/artifacts/contracts/ftso/interface/IIFtso.sol/IIFtso.json +162 -20
  60. package/dist/songbird/artifacts/contracts/ftso/interface/IIFtsoManager.sol/IIFtsoManager.json +321 -46
  61. package/dist/songbird/artifacts/contracts/ftso/interface/IIFtsoManagerV1.sol/IIFtsoManagerV1.json +102 -0
  62. package/dist/songbird/artifacts/contracts/ftso/lib/FtsoEpoch.sol/FtsoEpoch.json +2 -2
  63. package/dist/songbird/artifacts/contracts/ftso/lib/FtsoManagement.sol/FtsoManagement.json +43 -0
  64. package/dist/songbird/artifacts/contracts/ftso/lib/FtsoManagerSettings.sol/FtsoManagerSettings.json +2 -2
  65. package/dist/songbird/artifacts/contracts/ftso/lib/FtsoMedian.sol/FtsoMedian.json +2 -2
  66. package/dist/songbird/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockFtsoRegistry.json +184 -3
  67. package/dist/songbird/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockPriceSubmitter.json +2 -2
  68. package/dist/songbird/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockVoterWhitelister.json +2 -2
  69. package/dist/songbird/artifacts/contracts/ftso/priceProviderMockContracts/priceProviderMockFtso.sol/MockNpmFtso.json +164 -22
  70. package/dist/songbird/artifacts/contracts/genesis/implementation/GovernanceSettings.sol/GovernanceSettings.json +224 -0
  71. package/dist/songbird/artifacts/contracts/genesis/implementation/PriceSubmitter.sol/PriceSubmitter.json +2 -2
  72. package/dist/songbird/artifacts/contracts/genesis/implementation/StateConnector.sol/StateConnector.json +106 -785
  73. package/dist/songbird/artifacts/contracts/genesis/interface/IFtsoManagerGenesis.sol/IFtsoManagerGenesis.json +24 -0
  74. package/dist/songbird/artifacts/contracts/{tokenPools/interface/IIDataAvailabilityRewardManager.sol/IIDataAvailabilityRewardManager.json → governance/implementation/GovernedBaseV2.sol/GovernedBaseV2.json} +97 -91
  75. package/dist/songbird/artifacts/contracts/governance/implementation/GovernedV2.sol/GovernedV2.json +220 -0
  76. package/dist/songbird/artifacts/contracts/governance/implementation/Governor.sol/Governor.json +22 -154
  77. package/dist/songbird/artifacts/contracts/governance/implementation/GovernorProposer.sol/GovernorProposer.json +126 -32
  78. package/dist/songbird/artifacts/contracts/governance/implementation/InflationAllocation.sol/InflationAllocation.json +2 -2
  79. package/dist/songbird/artifacts/contracts/governance/implementation/PollingFoundation.sol/PollingFoundation.json +161 -90
  80. package/dist/songbird/artifacts/contracts/governance/interface/IIPollingFoundation.sol/IIPollingFoundation.json +0 -31
  81. package/dist/songbird/artifacts/contracts/inflation/implementation/Inflation.sol/Inflation.json +2 -2
  82. package/dist/songbird/artifacts/contracts/inflation/lib/InflationAnnum.sol/InflationAnnum.json +2 -2
  83. package/dist/songbird/artifacts/contracts/inflation/lib/InflationAnnums.sol/InflationAnnums.json +2 -2
  84. package/dist/songbird/artifacts/contracts/inflation/lib/RewardServices.sol/RewardServices.json +2 -2
  85. package/dist/songbird/artifacts/contracts/token/implementation/GovernanceVotePower.sol/GovernanceVotePower.json +2 -2
  86. package/dist/songbird/artifacts/contracts/token/implementation/VPContract.sol/VPContract.json +2 -2
  87. package/dist/songbird/artifacts/contracts/token/implementation/VPToken.sol/VPToken.json +2 -2
  88. package/dist/songbird/artifacts/contracts/token/implementation/WNat.sol/WNat.json +2 -2
  89. package/dist/songbird/artifacts/contracts/tokenPools/implementation/Distribution.sol/Distribution.json +25 -2
  90. package/dist/songbird/artifacts/contracts/tokenPools/implementation/FtsoRewardManager.sol/FtsoRewardManager.json +2 -2
  91. package/dist/songbird/artifacts/contracts/tokenPools/interface/IIFtsoRewardManager.sol/IIFtsoRewardManager.json +69 -0
  92. package/dist/songbird/artifacts/contracts/tokenPools/interface/IIFtsoRewardManagerV2.sol/IIFtsoRewardManagerV2.json +949 -0
  93. package/dist/songbird/artifacts/contracts/tokenPools/lib/DataProviderFee.sol/DataProviderFee.json +10 -0
  94. package/dist/songbird/artifacts/contracts/utils/implementation/AddressSet.sol/AddressSet.json +10 -0
  95. package/dist/songbird/artifacts/contracts/utils/implementation/FlareContractRegistry.sol/FlareContractRegistry.json +147 -0
  96. package/dist/songbird/artifacts/contracts/utils/implementation/FtsoRegistry.sol/FtsoRegistry.json +327 -33
  97. package/dist/songbird/artifacts/contracts/utils/implementation/FtsoRegistryProxy.sol/FtsoRegistryProxy.json +272 -0
  98. package/dist/songbird/artifacts/contracts/utils/implementation/FtsoV2Upgrader.sol/FtsoV2Upgrader.json +440 -0
  99. package/dist/songbird/artifacts/contracts/utils/implementation/GovernedAndFlareDaemonizedV2.sol/GovernedAndFlareDaemonizedV2.json +238 -0
  100. package/dist/songbird/artifacts/contracts/utils/implementation/ProxyGoverned.sol/ProxyGoverned.json +256 -0
  101. package/dist/songbird/artifacts/contracts/utils/implementation/RevertErrorTracking.sol/RevertErrorTracking.json +2 -20
  102. package/dist/songbird/artifacts/contracts/utils/implementation/VoterWhitelister.sol/VoterWhitelister.json +2 -2
  103. package/dist/songbird/artifacts/contracts/utils/interface/IIFtsoRegistry.sol/IIFtsoRegistry.json +175 -13
  104. package/dist/songbird/artifacts/contracts/utils/interface/IIFtsoRegistryV1.sol/IIFtsoRegistryV1.json +120 -0
  105. package/dist/songbird/artifacts/contracts/utils/interface/IIRandomProvider.sol/IIRandomProvider.json +60 -0
  106. package/dist/songbird/artifacts/contracts/utils/interface/IUpdateValidators.sol/IUpdateValidators.json +18 -0
  107. package/dist/songbird/deploys/contractAddresses.d.ts +3 -0
  108. package/dist/songbird/deploys/contractAddresses.d.ts.map +1 -1
  109. package/dist/songbird/deploys/contractAddresses.js +19 -16
  110. package/dist/songbird/deploys/contractAddresses.js.map +1 -1
  111. package/dist/songbird/deploys/mapper.d.ts.map +1 -1
  112. package/dist/songbird/deploys/mapper.js +6 -2
  113. package/dist/songbird/deploys/mapper.js.map +1 -1
  114. package/package.json +1 -1
  115. package/dist/README.md +0 -5
  116. package/dist/coston/deploys/coston.json +0 -142
  117. package/dist/coston2/artifacts/contracts/tokenPools/implementation/Distribution.sol/Distribution.json +0 -561
  118. package/dist/coston2/deploys/coston2.json +0 -212
  119. package/dist/flare/artifacts/contracts/tokenPools/implementation/Distribution.sol/Distribution.json +0 -561
  120. package/dist/flare/deploys/flare.json +0 -207
  121. package/dist/package.json +0 -28
  122. package/dist/songbird/artifacts/contracts/tokenPools/implementation/DataAvailabilityRewardManager.sol/DataAvailabilityRewardManager.json +0 -566
  123. package/dist/songbird/deploys/songbird.json +0 -132
@@ -10,6 +10,11 @@
10
10
  "name": "_governance",
11
11
  "type": "address"
12
12
  },
13
+ {
14
+ "internalType": "address",
15
+ "name": "_addressUpdater",
16
+ "type": "address"
17
+ },
13
18
  {
14
19
  "internalType": "address[]",
15
20
  "name": "_proposers",
@@ -24,30 +29,24 @@
24
29
  "inputs": [
25
30
  {
26
31
  "indexed": false,
27
- "internalType": "contract IIGovernanceVotePower",
28
- "name": "vpContract",
29
- "type": "address"
30
- },
31
- {
32
- "indexed": false,
33
- "internalType": "contract IFtsoRegistry",
34
- "name": "ftsoRegistry",
35
- "type": "address"
32
+ "internalType": "bytes4",
33
+ "name": "selector",
34
+ "type": "bytes4"
36
35
  },
37
36
  {
38
37
  "indexed": false,
39
- "internalType": "contract IIFtsoManager",
40
- "name": "ftsoManager",
41
- "type": "address"
38
+ "internalType": "uint256",
39
+ "name": "allowedAfterTimestamp",
40
+ "type": "uint256"
42
41
  },
43
42
  {
44
43
  "indexed": false,
45
- "internalType": "contract IISupply",
46
- "name": "supply",
47
- "type": "address"
44
+ "internalType": "bytes",
45
+ "name": "encodedCall",
46
+ "type": "bytes"
48
47
  }
49
48
  ],
50
- "name": "ContractAddressesSet",
49
+ "name": "GovernanceCallTimelocked",
51
50
  "type": "event"
52
51
  },
53
52
  {
@@ -56,11 +55,11 @@
56
55
  {
57
56
  "indexed": false,
58
57
  "internalType": "address",
59
- "name": "proposedGovernance",
58
+ "name": "initialGovernance",
60
59
  "type": "address"
61
60
  }
62
61
  ],
63
- "name": "GovernanceProposed",
62
+ "name": "GovernanceInitialised",
64
63
  "type": "event"
65
64
  },
66
65
  {
@@ -69,17 +68,11 @@
69
68
  {
70
69
  "indexed": false,
71
70
  "internalType": "address",
72
- "name": "oldGovernance",
73
- "type": "address"
74
- },
75
- {
76
- "indexed": false,
77
- "internalType": "address",
78
- "name": "newGoveranance",
71
+ "name": "governanceSettings",
79
72
  "type": "address"
80
73
  }
81
74
  ],
82
- "name": "GovernanceUpdated",
75
+ "name": "GovernedProductionModeEntered",
83
76
  "type": "event"
84
77
  },
85
78
  {
@@ -212,6 +205,44 @@
212
205
  "name": "ProposersChanged",
213
206
  "type": "event"
214
207
  },
208
+ {
209
+ "anonymous": false,
210
+ "inputs": [
211
+ {
212
+ "indexed": false,
213
+ "internalType": "bytes4",
214
+ "name": "selector",
215
+ "type": "bytes4"
216
+ },
217
+ {
218
+ "indexed": false,
219
+ "internalType": "uint256",
220
+ "name": "timestamp",
221
+ "type": "uint256"
222
+ }
223
+ ],
224
+ "name": "TimelockedGovernanceCallCanceled",
225
+ "type": "event"
226
+ },
227
+ {
228
+ "anonymous": false,
229
+ "inputs": [
230
+ {
231
+ "indexed": false,
232
+ "internalType": "bytes4",
233
+ "name": "selector",
234
+ "type": "bytes4"
235
+ },
236
+ {
237
+ "indexed": false,
238
+ "internalType": "uint256",
239
+ "name": "timestamp",
240
+ "type": "uint256"
241
+ }
242
+ ],
243
+ "name": "TimelockedGovernanceCallExecuted",
244
+ "type": "event"
245
+ },
215
246
  {
216
247
  "anonymous": false,
217
248
  "inputs": [
@@ -287,6 +318,19 @@
287
318
  "stateMutability": "nonpayable",
288
319
  "type": "function"
289
320
  },
321
+ {
322
+ "inputs": [
323
+ {
324
+ "internalType": "bytes4",
325
+ "name": "_selector",
326
+ "type": "bytes4"
327
+ }
328
+ ],
329
+ "name": "cancelGovernanceCall",
330
+ "outputs": [],
331
+ "stateMutability": "nonpayable",
332
+ "type": "function"
333
+ },
290
334
  {
291
335
  "inputs": [
292
336
  {
@@ -410,13 +454,6 @@
410
454
  "stateMutability": "nonpayable",
411
455
  "type": "function"
412
456
  },
413
- {
414
- "inputs": [],
415
- "name": "claimGovernance",
416
- "outputs": [],
417
- "stateMutability": "nonpayable",
418
- "type": "function"
419
- },
420
457
  {
421
458
  "inputs": [
422
459
  {
@@ -470,6 +507,19 @@
470
507
  "stateMutability": "payable",
471
508
  "type": "function"
472
509
  },
510
+ {
511
+ "inputs": [
512
+ {
513
+ "internalType": "bytes4",
514
+ "name": "_selector",
515
+ "type": "bytes4"
516
+ }
517
+ ],
518
+ "name": "executeGovernanceCall",
519
+ "outputs": [],
520
+ "stateMutability": "nonpayable",
521
+ "type": "function"
522
+ },
473
523
  {
474
524
  "inputs": [],
475
525
  "name": "ftsoManager",
@@ -496,6 +546,19 @@
496
546
  "stateMutability": "view",
497
547
  "type": "function"
498
548
  },
549
+ {
550
+ "inputs": [],
551
+ "name": "getAddressUpdater",
552
+ "outputs": [
553
+ {
554
+ "internalType": "address",
555
+ "name": "_addressUpdater",
556
+ "type": "address"
557
+ }
558
+ ],
559
+ "stateMutability": "view",
560
+ "type": "function"
561
+ },
499
562
  {
500
563
  "inputs": [
501
564
  {
@@ -655,6 +718,19 @@
655
718
  "stateMutability": "view",
656
719
  "type": "function"
657
720
  },
721
+ {
722
+ "inputs": [],
723
+ "name": "governanceSettings",
724
+ "outputs": [
725
+ {
726
+ "internalType": "contract IGovernanceSettings",
727
+ "name": "",
728
+ "type": "address"
729
+ }
730
+ ],
731
+ "stateMutability": "view",
732
+ "type": "function"
733
+ },
658
734
  {
659
735
  "inputs": [
660
736
  {
@@ -683,7 +759,7 @@
683
759
  "inputs": [
684
760
  {
685
761
  "internalType": "address",
686
- "name": "_governance",
762
+ "name": "_initialGovernance",
687
763
  "type": "address"
688
764
  }
689
765
  ],
@@ -724,6 +800,19 @@
724
800
  "stateMutability": "pure",
725
801
  "type": "function"
726
802
  },
803
+ {
804
+ "inputs": [],
805
+ "name": "productionMode",
806
+ "outputs": [
807
+ {
808
+ "internalType": "bool",
809
+ "name": "",
810
+ "type": "bool"
811
+ }
812
+ ],
813
+ "stateMutability": "view",
814
+ "type": "function"
815
+ },
727
816
  {
728
817
  "inputs": [
729
818
  {
@@ -864,53 +953,38 @@
864
953
  {
865
954
  "inputs": [
866
955
  {
867
- "internalType": "address",
868
- "name": "_governance",
869
- "type": "address"
956
+ "internalType": "uint256",
957
+ "name": "_proposalId",
958
+ "type": "uint256"
870
959
  }
871
960
  ],
872
- "name": "proposeGovernance",
873
- "outputs": [],
874
- "stateMutability": "nonpayable",
875
- "type": "function"
876
- },
877
- {
878
- "inputs": [],
879
- "name": "proposedGovernance",
961
+ "name": "state",
880
962
  "outputs": [
881
963
  {
882
- "internalType": "address",
964
+ "internalType": "enum IGovernor.ProposalState",
883
965
  "name": "",
884
- "type": "address"
966
+ "type": "uint8"
885
967
  }
886
968
  ],
887
969
  "stateMutability": "view",
888
970
  "type": "function"
889
971
  },
890
972
  {
891
- "inputs": [
892
- {
893
- "internalType": "contract IIGovernanceVotePower",
894
- "name": "_vpContract",
895
- "type": "address"
896
- },
897
- {
898
- "internalType": "contract IFtsoRegistry",
899
- "name": "_ftsoRegistry",
900
- "type": "address"
901
- },
902
- {
903
- "internalType": "contract IIFtsoManager",
904
- "name": "_ftsoManager",
905
- "type": "address"
906
- },
973
+ "inputs": [],
974
+ "name": "supply",
975
+ "outputs": [
907
976
  {
908
977
  "internalType": "contract IISupply",
909
- "name": "_supply",
978
+ "name": "",
910
979
  "type": "address"
911
980
  }
912
981
  ],
913
- "name": "setContractAddresses",
982
+ "stateMutability": "view",
983
+ "type": "function"
984
+ },
985
+ {
986
+ "inputs": [],
987
+ "name": "switchToProductionMode",
914
988
  "outputs": [],
915
989
  "stateMutability": "nonpayable",
916
990
  "type": "function"
@@ -918,30 +992,22 @@
918
992
  {
919
993
  "inputs": [
920
994
  {
921
- "internalType": "uint256",
922
- "name": "_proposalId",
923
- "type": "uint256"
924
- }
925
- ],
926
- "name": "state",
927
- "outputs": [
928
- {
929
- "internalType": "enum IGovernor.ProposalState",
995
+ "internalType": "bytes4",
930
996
  "name": "",
931
- "type": "uint8"
997
+ "type": "bytes4"
932
998
  }
933
999
  ],
934
- "stateMutability": "view",
935
- "type": "function"
936
- },
937
- {
938
- "inputs": [],
939
- "name": "supply",
1000
+ "name": "timelockedCalls",
940
1001
  "outputs": [
941
1002
  {
942
- "internalType": "contract IISupply",
943
- "name": "",
944
- "type": "address"
1003
+ "internalType": "uint256",
1004
+ "name": "allowedAfterTimestamp",
1005
+ "type": "uint256"
1006
+ },
1007
+ {
1008
+ "internalType": "bytes",
1009
+ "name": "encodedCall",
1010
+ "type": "bytes"
945
1011
  }
946
1012
  ],
947
1013
  "stateMutability": "view",
@@ -950,12 +1016,17 @@
950
1016
  {
951
1017
  "inputs": [
952
1018
  {
953
- "internalType": "address",
954
- "name": "_governance",
955
- "type": "address"
1019
+ "internalType": "bytes32[]",
1020
+ "name": "_contractNameHashes",
1021
+ "type": "bytes32[]"
1022
+ },
1023
+ {
1024
+ "internalType": "address[]",
1025
+ "name": "_contractAddresses",
1026
+ "type": "address[]"
956
1027
  }
957
1028
  ],
958
- "name": "transferGovernance",
1029
+ "name": "updateContractAddresses",
959
1030
  "outputs": [],
960
1031
  "stateMutability": "nonpayable",
961
1032
  "type": "function"
@@ -987,8 +1058,8 @@
987
1058
  "type": "function"
988
1059
  }
989
1060
  ],
990
- "bytecode": "0x6101406040523480156200001257600080fd5b5060405162003b8d38038062003b8d8339810160408190526200003591620003ec565b8082806200004262000146565b6200004c62000171565b815160208084019190912082519183019190912060c082905260e08190527f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f620000956200018c565b60a052620000a581848462000190565b608052610100525050466101205250506001600160a01b03811615620000d057620000d081620001f4565b506001600160a01b03811662000120576040805162461bcd60e51b815260206004820152601060248201526f5f676f7665726e616e6365207a65726f60801b604482015290519081900360640190fd5b506040805160008152602081019091526200013d908290620002d8565b50505062000538565b6040805180820190915260118152702837b63634b733a337bab73230ba34b7b760791b602082015290565b6040805180820190915260018152603160f81b602082015290565b4690565b60008383836200019f6200018c565b3060405160200180868152602001858152602001848152602001838152602001826001600160a01b03168152602001955050505050506040516020818303038152906040528051906020012090509392505050565b600554600160a01b900460ff161562000254576040805162461bcd60e51b815260206004820152601460248201527f696e697469616c6973656420213d2066616c7365000000000000000000000000604482015290519081900360640190fd5b6005805460ff60a01b1916600160a01b179055600454604080516001600160a01b039283168152918316602083015280517f434a2db650703b36c824e745330d6397cdaa9ee2cc891a4938ae853e1c50b68d9281900390910190a1600480546001600160a01b039092166001600160a01b0319928316179055600580549091169055565b7f4b8f4e528b6d075c6c9d025e58db64e36b460c1516341b1ab7339b4c6d5bcb8a82826040516200030b92919062000506565b60405180910390a160005b82518110156200036e576001600960008584815181106200033357fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905560010162000316565b5060005b8151811015620003ca576000600960008484815181106200038f57fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905560010162000372565b505050565b80516001600160a01b0381168114620003e757600080fd5b919050565b60008060408385031215620003ff578182fd5b6200040a83620003cf565b602084810151919350906001600160401b038082111562000429578384fd5b818601915086601f8301126200043d578384fd5b8151818111156200044a57fe5b838102604051858282010181811085821117156200046457fe5b604052828152858101935084860182860187018b101562000483578788fd5b8795505b83861015620004b0576200049b81620003cf565b85526001959095019493860193860162000487565b508096505050505050509250929050565b6000815180845260208085019450808401835b83811015620004fb5781516001600160a01b031687529582019590820190600101620004d4565b509495945050505050565b6000604082526200051b6040830185620004c1565b82810360208401526200052f8185620004c1565b95945050505050565b60805160a05160c05160e05161010051610120516136066200058760003980610a2b528061153b5250806118825250806118c45250806118a352508061182952508061185952506136066000f3fe6080604052600436106101d85760003560e01c80637b3c71d311610102578063bc903cb811610095578063deaaa7cc11610064578063deaaa7cc1461054a578063e4ea8b651461055f578063eb9019d414610572578063f17c9d7614610592576101d8565b8063bc903cb8146104b4578063bd590d7e146104ea578063c373a08e1461050a578063d38bfff41461052a576101d8565b80639d6a890f116100d15780639d6a890f14610434578063a3c90b8014610454578063a7a6224a14610474578063aaa6877714610494576101d8565b80637b3c71d3146103bf57806385412196146103df57806386f90bbf146103ff5780639a8a05921461041f576101d8565b8063438596321161017a5780635aa6e675116101495780635aa6e675146103605780635d36b1901461037557806360f7ac971461038a57806374ec29a01461039f576101d8565b806343859632146102d057806347c66140146102fd57806354fd4d501461032b5780635678138814610340576101d8565b806338b5f869116101b657806338b5f8691461023f5780633bccf4fd146102545780633e4f49e61461028157806340e58ee5146102ae576101d8565b8063047fc9aa146101dd57806306fdde031461020857806311a7aaaa1461022a575b600080fd5b3480156101e957600080fd5b506101f26105a7565b6040516101ff9190612d7e565b60405180910390f35b34801561021457600080fd5b5061021d6105b6565b6040516101ff9190612f49565b34801561023657600080fd5b506101f26105e2565b34801561024b57600080fd5b506101f26105f1565b34801561026057600080fd5b5061027461026f366004612bfb565b610600565b6040516101ff9190612ee8565b34801561028d57600080fd5b506102a161029c366004612a45565b6106c6565b6040516101ff9190612f35565b3480156102ba57600080fd5b506102ce6102c9366004612a45565b6106e7565b005b3480156102dc57600080fd5b506102f06102eb366004612a75565b6107aa565b6040516101ff9190612edd565b34801561030957600080fd5b5061031d610318366004612a45565b6107da565b6040516101ff929190613493565b34801561033757600080fd5b5061021d6107f3565b34801561034c57600080fd5b5061027461035b366004612b4e565b61080e565b34801561036c57600080fd5b506101f2610832565b34801561038157600080fd5b506102ce610841565b34801561039657600080fd5b506101f2610903565b3480156103ab57600080fd5b506102f06103ba3660046125e4565b610912565b3480156103cb57600080fd5b506102746103da366004612b79565b610930565b3480156103eb57600080fd5b506102746103fa366004612734565b61097f565b34801561040b57600080fd5b5061027461041a366004612990565b610998565b34801561042b57600080fd5b50610274610a29565b34801561044057600080fd5b506102ce61044f3660046125e4565b610a4d565b34801561046057600080fd5b5061027461046f36600461268c565b610b27565b34801561048057600080fd5b506102ce61048f36600461262b565b610b3d565b3480156104a057600080fd5b506102ce6104af366004612902565b610b9c565b3480156104c057600080fd5b506104d46104cf366004612a45565b610c77565b6040516101ff9a99989796959493929190612e46565b3480156104f657600080fd5b5061027461050536600461295d565b610cd6565b34801561051657600080fd5b506102ce6105253660046125e4565b610d25565b34801561053657600080fd5b506102ce6105453660046125e4565b610dca565b34801561055657600080fd5b50610274610e8c565b61027461056d36600461268c565b610eb0565b34801561057e57600080fd5b5061027461058d366004612600565b610ec1565b34801561059e57600080fd5b506101f2610ecd565b6007546001600160a01b031681565b6040805180820190915260118152702837b63634b733a337bab73230ba34b7b760791b60208201525b90565b6006546001600160a01b031681565b6008546001600160a01b031681565b60008061065e6106597f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f898960405160200161063e93929190612ef1565b60405160208183030381529060405280519060200120610edc565b610f28565b9050600061066e82878787610f79565b90506001600160a01b03811661069f5760405162461bcd60e51b8152600401610696906131f0565b60405180910390fd5b6106ba888289604051806020016040528060008152506110ee565b98975050505050505050565b60008181526002602052604081206106df9083906111af565b90505b919050565b60008181526002602052604090208054600160b01b900460ff161561071e5760405162461bcd60e51b8152600401610696906132cc565b80546001600160a01b031633146107475760405162461bcd60e51b815260040161069690612f93565b8060020154421061076a5760405162461bcd60e51b815260040161069690613017565b805460ff60b01b1916600160b01b17815560405182907f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c90600090a25050565b60008281526003602090815260408083206001600160a01b038516845260020190915290205460ff165b92915050565b6000908152600360205260409020600181015490549091565b6040805180820190915260018152603160f81b602082015290565b600061082b833384604051806020016040528060008152506110ee565b9392505050565b6004546001600160a01b031681565b6005546001600160a01b03163314610890576040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd0818db185a5b585a5b9d609a1b604482015290519081900360640190fd5b600454600554604080516001600160a01b03938416815292909116602083015280517f434a2db650703b36c824e745330d6397cdaa9ee2cc891a4938ae853e1c50b68d9281900390910190a160058054600480546001600160a01b03199081166001600160a01b03841617909155169055565b6005546001600160a01b031681565b6001600160a01b031660009081526009602052604090205460ff1690565b600061097485338686868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506110ee92505050565b90505b949350505050565b600061098e868686868661128d565b9695505050505050565b6040805161010081018252825115158152602080840151818301528383015182840152606080850151818401526080808601519084015260a08086015190840152600060c08401819052600160e0850152845181815292830181815283860182815292840190955293610977929185610a21565b6060815260200190600190039081610a0c5790505b50878561128d565b7f000000000000000000000000000000000000000000000000000000000000000081565b600554600160a01b900460ff1615610aa3576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b6005805460ff60a01b1916600160a01b179055600454604080516001600160a01b039283168152918316602083015280517f434a2db650703b36c824e745330d6397cdaa9ee2cc891a4938ae853e1c50b68d9281900390910190a1600480546001600160a01b039092166001600160a01b0319928316179055600580549091169055565b6000610974858585610b388661152c565b611537565b6004546001600160a01b03163314610b8e576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b610b988282611595565b5050565b6004546001600160a01b03163314610bed576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b610bf684611684565b600880546001600160a01b038086166001600160a01b0319928316179092556006805485841690831617905560078054928416929091169190911790556040517f8b83952a1d5f77e71c4e134b67faaeae2274d5571516c205eb7bfd0f7ccdc29690610c69908690869086908690612f0a565b60405180910390a150505050565b60009081526002602081905260409091208054600182015492820154600383015460048401546005850154600686015460078701546008909701546001600160a01b03871699600160a01b90970460ff16989795969495939492939192565b604080516000808252602082018181528284018281526060840190945290926106df92919084610d16565b6060815260200190600190039081610d015790505b50610d208661152c565b6116a6565b6004546001600160a01b03163314610d76576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b600580546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f1f95fb40be3a947982072902a887b521248d1d8931a39eb38f84f4d6fd758b699181900360200190a150565b6004546001600160a01b03163314610e1b576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b600454604080516001600160a01b039283168152918316602083015280517f434a2db650703b36c824e745330d6397cdaa9ee2cc891a4938ae853e1c50b68d9281900390910190a1600480546001600160a01b039092166001600160a01b0319928316179055600580549091169055565b7f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b6000610974858585610d208661152c565b600061082b83836117a2565b6000546001600160a01b031681565b6000610ee6611825565b82604051602001808061190160f01b81525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050919050565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115610fda5760405162461bcd60e51b815260040180806020018281038252602281526020018061356c6022913960400191505060405180910390fd5b8360ff16601b1480610fef57508360ff16601c145b61102a5760405162461bcd60e51b815260040180806020018281038252602281526020018061358e6022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611086573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610974576040805162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b6000848152600260205260408120600161110887836111af565b600781111561111357fe5b146111305760405162461bcd60e51b815260040161069690613332565b60006111408683600101546117a2565b90506000611150888888856118ef565b905087876001600160a01b03167fdd14487524f5e7c93029ad24503aa74e185d049a8c975136786a20eacc5e1b4e8885898660010154876000015460405161119c9594939291906134a1565b60405180910390a3509695505050505050565b8054600090600160b01b900460ff16156111cb575060076107d4565b8154600160a81b900460ff16156111e4575060066107d4565b60028201546112055760405162461bcd60e51b815260040161069690613220565b4282600201541115611219575060006107d4565b428260030154111561122d575060016107d4565b61123783836119a7565b15611284578154600160b81b900460ff16611254575060046107d4565b4282600401541115611268575060036107d4565b428260050154111561127c575060046107d4565b5060056107d4565b50600292915050565b600080600061129f8460600151611a50565b915091506112ad3383611cf3565b6112c95760405162461bcd60e51b8152600401610696906130a0565b60008460400151116112ed5760405162461bcd60e51b815260040161069690613303565b60008460e00151116113115760405162461bcd60e51b81526004016106969061324d565b612710846080015111156113375760405162461bcd60e51b815260040161069690613069565b6113888460a001511015801561135357506127108460a0015111155b61136f5760405162461bcd60e51b8152600401610696906130ee565b60075460405163d9330e6360e01b81526000916001600160a01b03169063d9330e63906113a0908690600401612ee8565b60206040518083038186803b1580156113b857600080fd5b505afa1580156113cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f09190612a5d565b90506000600660009054906101000a90046001600160a01b03166001600160a01b031663e06174e46040518163ffffffff1660e01b81526004016101206040518083038186803b15801561144357600080fd5b505afa158015611457573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061147b9190612ad1565b5050965050505050505060008061149a338d8d8d8d8b8b8f8c8c611cfe565b91509150817f72ae4a121488f73dfdb9308e9ecdcd1fc31e5f6c553b6f1fb65650d04406e6ec338e8e8e8e8760000160149054906101000a900460ff166114e089611ea4565b6114e98a611ec6565b8a600101548b600601548c600701548d600801546040516115159c9b9a99989796959493929190612d92565b60405180910390a2509a9950505050505050505050565b805160209091012090565b60007f000000000000000000000000000000000000000000000000000000000000000030868686866040516020016115749695949392919061342f565b60408051601f19818403018152919052805160209091012095945050505050565b7f4b8f4e528b6d075c6c9d025e58db64e36b460c1516341b1ab7339b4c6d5bcb8a82826040516115c6929190612eaf565b60405180910390a160005b8251811015611626576001600960008584815181106115ec57fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790556001016115d1565b5060005b815181101561167f5760006009600084848151811061164557fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905560010161162a565b505050565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b60006116b485858585611537565b6000818152600260205260409020805491925090600160a81b900460ff16156116ef5760405162461bcd60e51b8152600401610696906133f8565b80546001600160a01b031633146117185760405162461bcd60e51b81526004016106969061315c565b600061172483836111af565b9050600481600781111561173457fe5b146117515760405162461bcd60e51b8152600401610696906133c1565b815460ff60a81b1916600160a81b17825561176d878787611ee2565b60405183907f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f90600090a25050949350505050565b60008054604051631257fcdb60e31b81526001600160a01b03909116906392bfe6d8906117d59086908690600401612e96565b60206040518083038186803b1580156117ed57600080fd5b505afa158015611801573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082b9190612a5d565b60007f000000000000000000000000000000000000000000000000000000000000000061185061201a565b141561187d57507f00000000000000000000000000000000000000000000000000000000000000006105df565b6118e87f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061201e565b90506105df565b60008481526003602090815260408083206001600160a01b0387168452600281019092529091205460ff16156119375760405162461bcd60e51b815260040161069690613396565b6001600160a01b03841660009081526002820160205260408120805460ff1916600117905560ff168360ff16141561197457805482018155610977565b60ff83166001141561198f5760018101805483019055610977565b60405162461bcd60e51b81526004016106969061335f565b6000828152600360205260408120600883015460068401546119cb91612710612080565b815460018301540110156119ed5750508054600160a01b900460ff16156107d4565b805460018201546007850154611a0892909101612710612080565b8354600160a01b900460ff16611a1f578154611a25565b81600101545b11611a3e5750508054600160a01b900460ff16156107d4565b505054600160a01b900460ff16919050565b6000806000600660009054906101000a90046001600160a01b03166001600160a01b031663e7c830d46040518163ffffffff1660e01b815260040160206040518083038186803b158015611aa357600080fd5b505afa158015611ab7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611adb9190612a5d565b60065460405163a795f40960e01b8152919250600091829182916001600160a01b039091169063a795f40990611b15908790600401612ee8565b60606040518083038186803b158015611b2d57600080fd5b505afa158015611b41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b659190612aa4565b925092509250600043905060008060009054906101000a90046001600160a01b03166001600160a01b031663a72ec4b66040518163ffffffff1660e01b815260040160206040518083038186803b158015611bbf57600080fd5b505afa158015611bd3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf79190612a5d565b9050428390035b600087118015611c0d57508981105b15611cc95760065460405163a795f40960e01b8152600091829182916001600160a01b03169063a795f40990611c4b906000198e0190600401612ee8565b60606040518083038186803b158015611c6357600080fd5b505afa158015611c77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c9b9190612aa4565b92509250925084821015611cb157505050611cc9565b60001990990198919750955093505042839003611bfe565b846000818503611cd761218c565b81611cde57fe5b06909403995093975050505050505050915091565b600061082b83610912565b60008089518b5114611d225760405162461bcd60e51b815260040161069690612f5c565b88518b5114611d435760405162461bcd60e51b815260040161069690612f5c565b6000611d548c8c8c610b388d61152c565b6000818152600260208190526040909120908101549192509015611d8a5760405162461bcd60e51b815260040161069690612fe0565b8d8160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555088816001018190555086600001518160000160146101000a81548160ff02191690831515021790555086602001514201816002018190555086604001518160020154018160030181905550848882600301540310611e235760405162461bcd60e51b8152600401610696906131a9565b8c5115611e7557805460ff60b81b1916600160b81b17815560c0870151600382015401600482018190556001541115611e5f5760015460048201555b60e0870151600482015401600582018190556001555b6080870151600682015560a087015160078201556008810186905590925090509a509a98505050505050505050565b611eac612400565b6002820154815260038201548160015b6020020152919050565b611ece612400565b600482015481526005820154816001611ebc565b6000805b8351811015611f1457838181518110611efb57fe5b6020026020010151820191508080600101915050611ee6565b50803414611f345760405162461bcd60e51b815260040161069690613284565b60005b845181101561201357600080868381518110611f4f57fe5b60200260200101516001600160a01b0316868481518110611f6c57fe5b6020026020010151868581518110611f8057fe5b6020026020010151604051611f959190612d62565b60006040518083038185875af1925050503d8060008114611fd2576040519150601f19603f3d011682016040523d82523d6000602084013e611fd7565b606091505b50915091508161200957805115611ff15780518082602001fd5b60405162461bcd60e51b815260040161069690613125565b5050600101611f37565b5050505050565b4690565b600083838361202b61201a565b3060405160200180868152602001858152602001848152602001838152602001826001600160a01b03168152602001955050505050506040516020818303038152906040528051906020012090509392505050565b60008082116120c9576040805162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b604482015290519081900360640190fd5b836120d65750600061082b565b838302838582816120e357fe5b0414156120fc578281816120f357fe5b0491505061082b565b600083868161210757fe5b049050600084878161211557fe5b069050600085878161212357fe5b049050600086888161213157fe5b06905061217f61214b8861214586856122e6565b9061233f565b61217961215886866122e6565b61217961216589876122e6565b6121798d6121738c8b6122e6565b906122e6565b906123a6565b9998505050505050505050565b6000804290506000600860009054906101000a90046001600160a01b03166001600160a01b031663a40060ba6040518163ffffffff1660e01b815260040160006040518083038186803b1580156121e257600080fd5b505afa1580156121f6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261221e9190810190612869565b90506000818251848161222d57fe5b068151811061223857fe5b60200260200101516001600160a01b031663d89601fd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561227857600080fd5b505afa15801561228c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122b09190612a5d565b905082816040516020016122c5929190613493565b6040516020818303038152906040528051906020012060001c935050505090565b6000826122f5575060006107d4565b8282028284828161230257fe5b041461082b5760405162461bcd60e51b81526004018080602001828103825260218152602001806135b06021913960400191505060405180910390fd5b6000808211612395576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161239e57fe5b049392505050565b60008282018381101561082b576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60405180604001604052806002906020820280368337509192915050565b600067ffffffffffffffff83111561243257fe5b612445601f8401601f19166020016134d7565b905082815283838301111561245957600080fd5b828260208301376000602084830101529392505050565b600082601f830112612480578081fd5b81356020612495612490836134fb565b6134d7565b82815281810190858301838502870184018810156124b1578586fd5b855b858110156124d85781356124c681613545565b845292840192908401906001016124b3565b5090979650505050505050565b600082601f8301126124f5578081fd5b81356020612505612490836134fb565b82815281810190858301855b858110156124d8578135880189603f82011261252b578788fd5b61253c8a878301356040840161241e565b8552509284019290840190600101612511565b600082601f83011261255f578081fd5b8135602061256f612490836134fb565b828152818101908583018385028701840188101561258b578586fd5b855b858110156124d85781358452928401929084019060010161258d565b80356106e28161355d565b600082601f8301126125c4578081fd5b61082b8383356020850161241e565b803560ff811681146106e257600080fd5b6000602082840312156125f5578081fd5b813561082b81613545565b60008060408385031215612612578081fd5b823561261d81613545565b946020939093013593505050565b6000806040838503121561263d578182fd5b823567ffffffffffffffff80821115612654578384fd5b61266086838701612470565b93506020850135915080821115612675578283fd5b5061268285828601612470565b9150509250929050565b600080600080608085870312156126a1578182fd5b843567ffffffffffffffff808211156126b8578384fd5b6126c488838901612470565b955060208701359150808211156126d9578384fd5b6126e58883890161254f565b945060408701359150808211156126fa578384fd5b612706888389016124e5565b9350606087013591508082111561271b578283fd5b50612728878288016125b4565b91505092959194509250565b600080600080600085870361018081121561274d578384fd5b863567ffffffffffffffff80821115612764578586fd5b6127708a838b01612470565b97506020890135915080821115612785578586fd5b6127918a838b0161254f565b965060408901359150808211156127a6578586fd5b6127b28a838b016124e5565b955060608901359150808211156127c7578384fd5b6127d38a838b016125b4565b9450610100915081607f19840112156127ea578384fd5b6040519250818301838110828211171561280057fe5b60405250612810608089016125a9565b825260a0880135602083015260c0880135604083015260e088013560608301528088013560808301525061012087013560a082015261014087013560c082015261016087013560e0820152809150509295509295909350565b6000602080838503121561287b578182fd5b825167ffffffffffffffff811115612891578283fd5b8301601f810185136128a1578283fd5b80516128af612490826134fb565b81815283810190838501858402850186018910156128cb578687fd5b8694505b838510156128f65780516128e281613545565b8352600194909401939185019185016128cf565b50979650505050505050565b60008060008060808587031215612917578182fd5b843561292281613545565b9350602085013561293281613545565b9250604085013561294281613545565b9150606085013561295281613545565b939692955090935050565b60006020828403121561296e578081fd5b813567ffffffffffffffff811115612984578182fd5b610977848285016125b4565b60008082840360e08112156129a3578283fd5b833567ffffffffffffffff808211156129ba578485fd5b6129c6878388016125b4565b945060c0601f19840112156129d9578384fd5b604051925060c08301915082821081831117156129f257fe5b506040526020840135612a048161355d565b8082525060408401356020820152606084013560408201526080840135606082015260a0840135608082015260c084013560a0820152809150509250929050565b600060208284031215612a56578081fd5b5035919050565b600060208284031215612a6e578081fd5b5051919050565b60008060408385031215612a87578182fd5b823591506020830135612a9981613545565b809150509250929050565b600080600060608486031215612ab8578081fd5b8351925060208401519150604084015190509250925092565b60008060008060008060008060006101208a8c031215612aef578687fd5b8951985060208a0151975060408a0151965060608a0151955060808a0151945060a08a0151935060c08a0151925060e08a0151612b2b8161355d565b6101008b0151909250612b3d8161355d565b809150509295985092959850929598565b60008060408385031215612b60578182fd5b82359150612b70602084016125d3565b90509250929050565b60008060008060608587031215612b8e578182fd5b84359350612b9e602086016125d3565b9250604085013567ffffffffffffffff80821115612bba578384fd5b818701915087601f830112612bcd578384fd5b813581811115612bdb578485fd5b886020828501011115612bec578485fd5b95989497505060200194505050565b600080600080600060a08688031215612c12578283fd5b85359450612c22602087016125d3565b9350612c30604087016125d3565b94979396509394606081013594506080013592915050565b6000815180845260208085019450808401835b83811015612c805781516001600160a01b031687529582019590820190600101612c5b565b509495945050505050565b6000815180845260208085018081965082840281019150828601855b85811015612cd1578284038952612cbf848351612d36565b98850198935090840190600101612ca7565b5091979650505050505050565b8060005b6002811015612d01578151845260209384019390910190600101612ce2565b50505050565b6000815180845260208085019450808401835b83811015612c8057815187529582019590820190600101612d1a565b60008151808452612d4e816020860160208601613519565b601f01601f19169290920160200192915050565b60008251612d74818460208701613519565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b038d1681526101c060208201819052600090612db78382018f612c48565b90508281036040840152612dcb818e612d07565b90508281036060840152612ddf818d612c8b565b90508281036080840152612df3818c612d36565b91505088151560a0830152612e0b60c0830189612cde565b612e19610100830188612cde565b856101408301528461016083015283610180830152826101a08301529d9c50505050505050505050505050565b6001600160a01b039a909a168a5297151560208a015260408901969096526060880194909452608087019290925260a086015260c085015260e08401526101008301526101208201526101400190565b6001600160a01b03929092168252602082015260400190565b600060408252612ec26040830185612c48565b8281036020840152612ed48185612c48565b95945050505050565b901515815260200190565b90815260200190565b928352602083019190915260ff16604082015260600190565b6001600160a01b03948516815292841660208401529083166040830152909116606082015260800190565b6020810160088310612f4357fe5b91905290565b60006020825261082b6020830184612d36565b60208082526017908201527f696e76616c69642070726f706f73616c206c656e677468000000000000000000604082015260600190565b6020808252602d908201527f70726f706f73616c2063616e206f6e6c792062652063616e63656c656420627960408201526c1034ba3990383937b837b9b2b960991b606082015260800190565b60208082526017908201527f70726f706f73616c20616c726561647920657869737473000000000000000000604082015260600190565b60208082526032908201527f70726f706f73616c2063616e206f6e6c792062652063616e63656c6564206265604082015271666f726520766f74696e672073746172747360701b606082015260800190565b6020808252601e908201527f696e76616c6964207468726573686f6c64436f6e646974696f6e424950530000604082015260600190565b6020808252602e908201527f7375626d6974746572206973206e6f7420656c696769626c6520746f2073756260408201526d1b5a5d0818481c1c9bdc1bdcd85b60921b606082015260800190565b6020808252601d908201527f696e76616c6964206d616a6f72697479436f6e646974696f6e42495053000000604082015260600190565b6020808252601d908201527f63616c6c20726576657274656420776974686f7574206d657373616765000000604082015260600190565b6020808252602d908201527f70726f706f73616c2063616e206f6e6c7920626520657865637574656420627960408201526c1034ba3990383937b837b9b2b960991b606082015260800190565b60208082526027908201527f766f746520706f77657220626c6f636b20697320746f6f2066617220696e20746040820152661a19481c185cdd60ca1b606082015260800190565b602080825260169082015275696e76616c696420766f7465207369676e617475726560501b604082015260600190565b6020808252601390820152721d5b9adb9bdddb881c1c9bdc1bdcd85b081a59606a1b604082015260600190565b60208082526018908201527f657865637574696f6e20706572696f6420746f6f206c6f770000000000000000604082015260600190565b60208082526028908201527f73756d206f66205f76616c75657320646f6573206e6f7420657175616c73206d60408201526773672e76616c756560c01b606082015260800190565b6020808252601c908201527f70726f706f73616c20697320616c72656164792063616e63656c656400000000604082015260600190565b602080825260159082015274766f74696e6720706572696f6420746f6f206c6f7760581b604082015260600190565b60208082526013908201527270726f706f73616c206e6f742061637469766560681b604082015260600190565b6020808252601f908201527f696e76616c69642076616c756520666f7220656e756d20566f74655479706500604082015260600190565b6020808252601190820152701d9bdd1948185b1c9958591e4818d85cdd607a1b604082015260600190565b6020808252601f908201527f70726f706f73616c206e6f7420696e20657865637574696f6e20737461746500604082015260600190565b60208082526019908201527f70726f706f73616c20616c726561647920657865637574656400000000000000604082015260600190565b8681526001600160a01b038616602082015260c06040820181905260009061345990830187612c48565b828103606084015261346b8187612d07565b9050828103608084015261347f8186612c8b565b9150508260a0830152979650505050505050565b918252602082015260400190565b600060ff8716825285602083015260a060408301526134c360a0830186612d36565b606083019490945250608001529392505050565b60405181810167ffffffffffffffff811182821017156134f357fe5b604052919050565b600067ffffffffffffffff82111561350f57fe5b5060209081020190565b60005b8381101561353457818101518382015260200161351c565b83811115612d015750506000910152565b6001600160a01b038116811461355a57600080fd5b50565b801515811461355a57600080fdfe45434453413a20696e76616c6964207369676e6174757265202773272076616c756545434453413a20696e76616c6964207369676e6174757265202776272076616c7565536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a264697066735822122022d8b01e97b19db6dbca7cda30accdaa950f4bb1012eb8621c67657faaed906664736f6c63430007060033",
991
- "deployedBytecode": "0x6080604052600436106101d85760003560e01c80637b3c71d311610102578063bc903cb811610095578063deaaa7cc11610064578063deaaa7cc1461054a578063e4ea8b651461055f578063eb9019d414610572578063f17c9d7614610592576101d8565b8063bc903cb8146104b4578063bd590d7e146104ea578063c373a08e1461050a578063d38bfff41461052a576101d8565b80639d6a890f116100d15780639d6a890f14610434578063a3c90b8014610454578063a7a6224a14610474578063aaa6877714610494576101d8565b80637b3c71d3146103bf57806385412196146103df57806386f90bbf146103ff5780639a8a05921461041f576101d8565b8063438596321161017a5780635aa6e675116101495780635aa6e675146103605780635d36b1901461037557806360f7ac971461038a57806374ec29a01461039f576101d8565b806343859632146102d057806347c66140146102fd57806354fd4d501461032b5780635678138814610340576101d8565b806338b5f869116101b657806338b5f8691461023f5780633bccf4fd146102545780633e4f49e61461028157806340e58ee5146102ae576101d8565b8063047fc9aa146101dd57806306fdde031461020857806311a7aaaa1461022a575b600080fd5b3480156101e957600080fd5b506101f26105a7565b6040516101ff9190612d7e565b60405180910390f35b34801561021457600080fd5b5061021d6105b6565b6040516101ff9190612f49565b34801561023657600080fd5b506101f26105e2565b34801561024b57600080fd5b506101f26105f1565b34801561026057600080fd5b5061027461026f366004612bfb565b610600565b6040516101ff9190612ee8565b34801561028d57600080fd5b506102a161029c366004612a45565b6106c6565b6040516101ff9190612f35565b3480156102ba57600080fd5b506102ce6102c9366004612a45565b6106e7565b005b3480156102dc57600080fd5b506102f06102eb366004612a75565b6107aa565b6040516101ff9190612edd565b34801561030957600080fd5b5061031d610318366004612a45565b6107da565b6040516101ff929190613493565b34801561033757600080fd5b5061021d6107f3565b34801561034c57600080fd5b5061027461035b366004612b4e565b61080e565b34801561036c57600080fd5b506101f2610832565b34801561038157600080fd5b506102ce610841565b34801561039657600080fd5b506101f2610903565b3480156103ab57600080fd5b506102f06103ba3660046125e4565b610912565b3480156103cb57600080fd5b506102746103da366004612b79565b610930565b3480156103eb57600080fd5b506102746103fa366004612734565b61097f565b34801561040b57600080fd5b5061027461041a366004612990565b610998565b34801561042b57600080fd5b50610274610a29565b34801561044057600080fd5b506102ce61044f3660046125e4565b610a4d565b34801561046057600080fd5b5061027461046f36600461268c565b610b27565b34801561048057600080fd5b506102ce61048f36600461262b565b610b3d565b3480156104a057600080fd5b506102ce6104af366004612902565b610b9c565b3480156104c057600080fd5b506104d46104cf366004612a45565b610c77565b6040516101ff9a99989796959493929190612e46565b3480156104f657600080fd5b5061027461050536600461295d565b610cd6565b34801561051657600080fd5b506102ce6105253660046125e4565b610d25565b34801561053657600080fd5b506102ce6105453660046125e4565b610dca565b34801561055657600080fd5b50610274610e8c565b61027461056d36600461268c565b610eb0565b34801561057e57600080fd5b5061027461058d366004612600565b610ec1565b34801561059e57600080fd5b506101f2610ecd565b6007546001600160a01b031681565b6040805180820190915260118152702837b63634b733a337bab73230ba34b7b760791b60208201525b90565b6006546001600160a01b031681565b6008546001600160a01b031681565b60008061065e6106597f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f898960405160200161063e93929190612ef1565b60405160208183030381529060405280519060200120610edc565b610f28565b9050600061066e82878787610f79565b90506001600160a01b03811661069f5760405162461bcd60e51b8152600401610696906131f0565b60405180910390fd5b6106ba888289604051806020016040528060008152506110ee565b98975050505050505050565b60008181526002602052604081206106df9083906111af565b90505b919050565b60008181526002602052604090208054600160b01b900460ff161561071e5760405162461bcd60e51b8152600401610696906132cc565b80546001600160a01b031633146107475760405162461bcd60e51b815260040161069690612f93565b8060020154421061076a5760405162461bcd60e51b815260040161069690613017565b805460ff60b01b1916600160b01b17815560405182907f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c90600090a25050565b60008281526003602090815260408083206001600160a01b038516845260020190915290205460ff165b92915050565b6000908152600360205260409020600181015490549091565b6040805180820190915260018152603160f81b602082015290565b600061082b833384604051806020016040528060008152506110ee565b9392505050565b6004546001600160a01b031681565b6005546001600160a01b03163314610890576040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd0818db185a5b585a5b9d609a1b604482015290519081900360640190fd5b600454600554604080516001600160a01b03938416815292909116602083015280517f434a2db650703b36c824e745330d6397cdaa9ee2cc891a4938ae853e1c50b68d9281900390910190a160058054600480546001600160a01b03199081166001600160a01b03841617909155169055565b6005546001600160a01b031681565b6001600160a01b031660009081526009602052604090205460ff1690565b600061097485338686868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506110ee92505050565b90505b949350505050565b600061098e868686868661128d565b9695505050505050565b6040805161010081018252825115158152602080840151818301528383015182840152606080850151818401526080808601519084015260a08086015190840152600060c08401819052600160e0850152845181815292830181815283860182815292840190955293610977929185610a21565b6060815260200190600190039081610a0c5790505b50878561128d565b7f000000000000000000000000000000000000000000000000000000000000000081565b600554600160a01b900460ff1615610aa3576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b6005805460ff60a01b1916600160a01b179055600454604080516001600160a01b039283168152918316602083015280517f434a2db650703b36c824e745330d6397cdaa9ee2cc891a4938ae853e1c50b68d9281900390910190a1600480546001600160a01b039092166001600160a01b0319928316179055600580549091169055565b6000610974858585610b388661152c565b611537565b6004546001600160a01b03163314610b8e576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b610b988282611595565b5050565b6004546001600160a01b03163314610bed576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b610bf684611684565b600880546001600160a01b038086166001600160a01b0319928316179092556006805485841690831617905560078054928416929091169190911790556040517f8b83952a1d5f77e71c4e134b67faaeae2274d5571516c205eb7bfd0f7ccdc29690610c69908690869086908690612f0a565b60405180910390a150505050565b60009081526002602081905260409091208054600182015492820154600383015460048401546005850154600686015460078701546008909701546001600160a01b03871699600160a01b90970460ff16989795969495939492939192565b604080516000808252602082018181528284018281526060840190945290926106df92919084610d16565b6060815260200190600190039081610d015790505b50610d208661152c565b6116a6565b6004546001600160a01b03163314610d76576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b600580546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f1f95fb40be3a947982072902a887b521248d1d8931a39eb38f84f4d6fd758b699181900360200190a150565b6004546001600160a01b03163314610e1b576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b600454604080516001600160a01b039283168152918316602083015280517f434a2db650703b36c824e745330d6397cdaa9ee2cc891a4938ae853e1c50b68d9281900390910190a1600480546001600160a01b039092166001600160a01b0319928316179055600580549091169055565b7f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b6000610974858585610d208661152c565b600061082b83836117a2565b6000546001600160a01b031681565b6000610ee6611825565b82604051602001808061190160f01b81525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050919050565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115610fda5760405162461bcd60e51b815260040180806020018281038252602281526020018061356c6022913960400191505060405180910390fd5b8360ff16601b1480610fef57508360ff16601c145b61102a5760405162461bcd60e51b815260040180806020018281038252602281526020018061358e6022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611086573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610974576040805162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b6000848152600260205260408120600161110887836111af565b600781111561111357fe5b146111305760405162461bcd60e51b815260040161069690613332565b60006111408683600101546117a2565b90506000611150888888856118ef565b905087876001600160a01b03167fdd14487524f5e7c93029ad24503aa74e185d049a8c975136786a20eacc5e1b4e8885898660010154876000015460405161119c9594939291906134a1565b60405180910390a3509695505050505050565b8054600090600160b01b900460ff16156111cb575060076107d4565b8154600160a81b900460ff16156111e4575060066107d4565b60028201546112055760405162461bcd60e51b815260040161069690613220565b4282600201541115611219575060006107d4565b428260030154111561122d575060016107d4565b61123783836119a7565b15611284578154600160b81b900460ff16611254575060046107d4565b4282600401541115611268575060036107d4565b428260050154111561127c575060046107d4565b5060056107d4565b50600292915050565b600080600061129f8460600151611a50565b915091506112ad3383611cf3565b6112c95760405162461bcd60e51b8152600401610696906130a0565b60008460400151116112ed5760405162461bcd60e51b815260040161069690613303565b60008460e00151116113115760405162461bcd60e51b81526004016106969061324d565b612710846080015111156113375760405162461bcd60e51b815260040161069690613069565b6113888460a001511015801561135357506127108460a0015111155b61136f5760405162461bcd60e51b8152600401610696906130ee565b60075460405163d9330e6360e01b81526000916001600160a01b03169063d9330e63906113a0908690600401612ee8565b60206040518083038186803b1580156113b857600080fd5b505afa1580156113cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f09190612a5d565b90506000600660009054906101000a90046001600160a01b03166001600160a01b031663e06174e46040518163ffffffff1660e01b81526004016101206040518083038186803b15801561144357600080fd5b505afa158015611457573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061147b9190612ad1565b5050965050505050505060008061149a338d8d8d8d8b8b8f8c8c611cfe565b91509150817f72ae4a121488f73dfdb9308e9ecdcd1fc31e5f6c553b6f1fb65650d04406e6ec338e8e8e8e8760000160149054906101000a900460ff166114e089611ea4565b6114e98a611ec6565b8a600101548b600601548c600701548d600801546040516115159c9b9a99989796959493929190612d92565b60405180910390a2509a9950505050505050505050565b805160209091012090565b60007f000000000000000000000000000000000000000000000000000000000000000030868686866040516020016115749695949392919061342f565b60408051601f19818403018152919052805160209091012095945050505050565b7f4b8f4e528b6d075c6c9d025e58db64e36b460c1516341b1ab7339b4c6d5bcb8a82826040516115c6929190612eaf565b60405180910390a160005b8251811015611626576001600960008584815181106115ec57fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790556001016115d1565b5060005b815181101561167f5760006009600084848151811061164557fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905560010161162a565b505050565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b60006116b485858585611537565b6000818152600260205260409020805491925090600160a81b900460ff16156116ef5760405162461bcd60e51b8152600401610696906133f8565b80546001600160a01b031633146117185760405162461bcd60e51b81526004016106969061315c565b600061172483836111af565b9050600481600781111561173457fe5b146117515760405162461bcd60e51b8152600401610696906133c1565b815460ff60a81b1916600160a81b17825561176d878787611ee2565b60405183907f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f90600090a25050949350505050565b60008054604051631257fcdb60e31b81526001600160a01b03909116906392bfe6d8906117d59086908690600401612e96565b60206040518083038186803b1580156117ed57600080fd5b505afa158015611801573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082b9190612a5d565b60007f000000000000000000000000000000000000000000000000000000000000000061185061201a565b141561187d57507f00000000000000000000000000000000000000000000000000000000000000006105df565b6118e87f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061201e565b90506105df565b60008481526003602090815260408083206001600160a01b0387168452600281019092529091205460ff16156119375760405162461bcd60e51b815260040161069690613396565b6001600160a01b03841660009081526002820160205260408120805460ff1916600117905560ff168360ff16141561197457805482018155610977565b60ff83166001141561198f5760018101805483019055610977565b60405162461bcd60e51b81526004016106969061335f565b6000828152600360205260408120600883015460068401546119cb91612710612080565b815460018301540110156119ed5750508054600160a01b900460ff16156107d4565b805460018201546007850154611a0892909101612710612080565b8354600160a01b900460ff16611a1f578154611a25565b81600101545b11611a3e5750508054600160a01b900460ff16156107d4565b505054600160a01b900460ff16919050565b6000806000600660009054906101000a90046001600160a01b03166001600160a01b031663e7c830d46040518163ffffffff1660e01b815260040160206040518083038186803b158015611aa357600080fd5b505afa158015611ab7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611adb9190612a5d565b60065460405163a795f40960e01b8152919250600091829182916001600160a01b039091169063a795f40990611b15908790600401612ee8565b60606040518083038186803b158015611b2d57600080fd5b505afa158015611b41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b659190612aa4565b925092509250600043905060008060009054906101000a90046001600160a01b03166001600160a01b031663a72ec4b66040518163ffffffff1660e01b815260040160206040518083038186803b158015611bbf57600080fd5b505afa158015611bd3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf79190612a5d565b9050428390035b600087118015611c0d57508981105b15611cc95760065460405163a795f40960e01b8152600091829182916001600160a01b03169063a795f40990611c4b906000198e0190600401612ee8565b60606040518083038186803b158015611c6357600080fd5b505afa158015611c77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c9b9190612aa4565b92509250925084821015611cb157505050611cc9565b60001990990198919750955093505042839003611bfe565b846000818503611cd761218c565b81611cde57fe5b06909403995093975050505050505050915091565b600061082b83610912565b60008089518b5114611d225760405162461bcd60e51b815260040161069690612f5c565b88518b5114611d435760405162461bcd60e51b815260040161069690612f5c565b6000611d548c8c8c610b388d61152c565b6000818152600260208190526040909120908101549192509015611d8a5760405162461bcd60e51b815260040161069690612fe0565b8d8160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555088816001018190555086600001518160000160146101000a81548160ff02191690831515021790555086602001514201816002018190555086604001518160020154018160030181905550848882600301540310611e235760405162461bcd60e51b8152600401610696906131a9565b8c5115611e7557805460ff60b81b1916600160b81b17815560c0870151600382015401600482018190556001541115611e5f5760015460048201555b60e0870151600482015401600582018190556001555b6080870151600682015560a087015160078201556008810186905590925090509a509a98505050505050505050565b611eac612400565b6002820154815260038201548160015b6020020152919050565b611ece612400565b600482015481526005820154816001611ebc565b6000805b8351811015611f1457838181518110611efb57fe5b6020026020010151820191508080600101915050611ee6565b50803414611f345760405162461bcd60e51b815260040161069690613284565b60005b845181101561201357600080868381518110611f4f57fe5b60200260200101516001600160a01b0316868481518110611f6c57fe5b6020026020010151868581518110611f8057fe5b6020026020010151604051611f959190612d62565b60006040518083038185875af1925050503d8060008114611fd2576040519150601f19603f3d011682016040523d82523d6000602084013e611fd7565b606091505b50915091508161200957805115611ff15780518082602001fd5b60405162461bcd60e51b815260040161069690613125565b5050600101611f37565b5050505050565b4690565b600083838361202b61201a565b3060405160200180868152602001858152602001848152602001838152602001826001600160a01b03168152602001955050505050506040516020818303038152906040528051906020012090509392505050565b60008082116120c9576040805162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b604482015290519081900360640190fd5b836120d65750600061082b565b838302838582816120e357fe5b0414156120fc578281816120f357fe5b0491505061082b565b600083868161210757fe5b049050600084878161211557fe5b069050600085878161212357fe5b049050600086888161213157fe5b06905061217f61214b8861214586856122e6565b9061233f565b61217961215886866122e6565b61217961216589876122e6565b6121798d6121738c8b6122e6565b906122e6565b906123a6565b9998505050505050505050565b6000804290506000600860009054906101000a90046001600160a01b03166001600160a01b031663a40060ba6040518163ffffffff1660e01b815260040160006040518083038186803b1580156121e257600080fd5b505afa1580156121f6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261221e9190810190612869565b90506000818251848161222d57fe5b068151811061223857fe5b60200260200101516001600160a01b031663d89601fd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561227857600080fd5b505afa15801561228c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122b09190612a5d565b905082816040516020016122c5929190613493565b6040516020818303038152906040528051906020012060001c935050505090565b6000826122f5575060006107d4565b8282028284828161230257fe5b041461082b5760405162461bcd60e51b81526004018080602001828103825260218152602001806135b06021913960400191505060405180910390fd5b6000808211612395576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161239e57fe5b049392505050565b60008282018381101561082b576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60405180604001604052806002906020820280368337509192915050565b600067ffffffffffffffff83111561243257fe5b612445601f8401601f19166020016134d7565b905082815283838301111561245957600080fd5b828260208301376000602084830101529392505050565b600082601f830112612480578081fd5b81356020612495612490836134fb565b6134d7565b82815281810190858301838502870184018810156124b1578586fd5b855b858110156124d85781356124c681613545565b845292840192908401906001016124b3565b5090979650505050505050565b600082601f8301126124f5578081fd5b81356020612505612490836134fb565b82815281810190858301855b858110156124d8578135880189603f82011261252b578788fd5b61253c8a878301356040840161241e565b8552509284019290840190600101612511565b600082601f83011261255f578081fd5b8135602061256f612490836134fb565b828152818101908583018385028701840188101561258b578586fd5b855b858110156124d85781358452928401929084019060010161258d565b80356106e28161355d565b600082601f8301126125c4578081fd5b61082b8383356020850161241e565b803560ff811681146106e257600080fd5b6000602082840312156125f5578081fd5b813561082b81613545565b60008060408385031215612612578081fd5b823561261d81613545565b946020939093013593505050565b6000806040838503121561263d578182fd5b823567ffffffffffffffff80821115612654578384fd5b61266086838701612470565b93506020850135915080821115612675578283fd5b5061268285828601612470565b9150509250929050565b600080600080608085870312156126a1578182fd5b843567ffffffffffffffff808211156126b8578384fd5b6126c488838901612470565b955060208701359150808211156126d9578384fd5b6126e58883890161254f565b945060408701359150808211156126fa578384fd5b612706888389016124e5565b9350606087013591508082111561271b578283fd5b50612728878288016125b4565b91505092959194509250565b600080600080600085870361018081121561274d578384fd5b863567ffffffffffffffff80821115612764578586fd5b6127708a838b01612470565b97506020890135915080821115612785578586fd5b6127918a838b0161254f565b965060408901359150808211156127a6578586fd5b6127b28a838b016124e5565b955060608901359150808211156127c7578384fd5b6127d38a838b016125b4565b9450610100915081607f19840112156127ea578384fd5b6040519250818301838110828211171561280057fe5b60405250612810608089016125a9565b825260a0880135602083015260c0880135604083015260e088013560608301528088013560808301525061012087013560a082015261014087013560c082015261016087013560e0820152809150509295509295909350565b6000602080838503121561287b578182fd5b825167ffffffffffffffff811115612891578283fd5b8301601f810185136128a1578283fd5b80516128af612490826134fb565b81815283810190838501858402850186018910156128cb578687fd5b8694505b838510156128f65780516128e281613545565b8352600194909401939185019185016128cf565b50979650505050505050565b60008060008060808587031215612917578182fd5b843561292281613545565b9350602085013561293281613545565b9250604085013561294281613545565b9150606085013561295281613545565b939692955090935050565b60006020828403121561296e578081fd5b813567ffffffffffffffff811115612984578182fd5b610977848285016125b4565b60008082840360e08112156129a3578283fd5b833567ffffffffffffffff808211156129ba578485fd5b6129c6878388016125b4565b945060c0601f19840112156129d9578384fd5b604051925060c08301915082821081831117156129f257fe5b506040526020840135612a048161355d565b8082525060408401356020820152606084013560408201526080840135606082015260a0840135608082015260c084013560a0820152809150509250929050565b600060208284031215612a56578081fd5b5035919050565b600060208284031215612a6e578081fd5b5051919050565b60008060408385031215612a87578182fd5b823591506020830135612a9981613545565b809150509250929050565b600080600060608486031215612ab8578081fd5b8351925060208401519150604084015190509250925092565b60008060008060008060008060006101208a8c031215612aef578687fd5b8951985060208a0151975060408a0151965060608a0151955060808a0151945060a08a0151935060c08a0151925060e08a0151612b2b8161355d565b6101008b0151909250612b3d8161355d565b809150509295985092959850929598565b60008060408385031215612b60578182fd5b82359150612b70602084016125d3565b90509250929050565b60008060008060608587031215612b8e578182fd5b84359350612b9e602086016125d3565b9250604085013567ffffffffffffffff80821115612bba578384fd5b818701915087601f830112612bcd578384fd5b813581811115612bdb578485fd5b886020828501011115612bec578485fd5b95989497505060200194505050565b600080600080600060a08688031215612c12578283fd5b85359450612c22602087016125d3565b9350612c30604087016125d3565b94979396509394606081013594506080013592915050565b6000815180845260208085019450808401835b83811015612c805781516001600160a01b031687529582019590820190600101612c5b565b509495945050505050565b6000815180845260208085018081965082840281019150828601855b85811015612cd1578284038952612cbf848351612d36565b98850198935090840190600101612ca7565b5091979650505050505050565b8060005b6002811015612d01578151845260209384019390910190600101612ce2565b50505050565b6000815180845260208085019450808401835b83811015612c8057815187529582019590820190600101612d1a565b60008151808452612d4e816020860160208601613519565b601f01601f19169290920160200192915050565b60008251612d74818460208701613519565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b038d1681526101c060208201819052600090612db78382018f612c48565b90508281036040840152612dcb818e612d07565b90508281036060840152612ddf818d612c8b565b90508281036080840152612df3818c612d36565b91505088151560a0830152612e0b60c0830189612cde565b612e19610100830188612cde565b856101408301528461016083015283610180830152826101a08301529d9c50505050505050505050505050565b6001600160a01b039a909a168a5297151560208a015260408901969096526060880194909452608087019290925260a086015260c085015260e08401526101008301526101208201526101400190565b6001600160a01b03929092168252602082015260400190565b600060408252612ec26040830185612c48565b8281036020840152612ed48185612c48565b95945050505050565b901515815260200190565b90815260200190565b928352602083019190915260ff16604082015260600190565b6001600160a01b03948516815292841660208401529083166040830152909116606082015260800190565b6020810160088310612f4357fe5b91905290565b60006020825261082b6020830184612d36565b60208082526017908201527f696e76616c69642070726f706f73616c206c656e677468000000000000000000604082015260600190565b6020808252602d908201527f70726f706f73616c2063616e206f6e6c792062652063616e63656c656420627960408201526c1034ba3990383937b837b9b2b960991b606082015260800190565b60208082526017908201527f70726f706f73616c20616c726561647920657869737473000000000000000000604082015260600190565b60208082526032908201527f70726f706f73616c2063616e206f6e6c792062652063616e63656c6564206265604082015271666f726520766f74696e672073746172747360701b606082015260800190565b6020808252601e908201527f696e76616c6964207468726573686f6c64436f6e646974696f6e424950530000604082015260600190565b6020808252602e908201527f7375626d6974746572206973206e6f7420656c696769626c6520746f2073756260408201526d1b5a5d0818481c1c9bdc1bdcd85b60921b606082015260800190565b6020808252601d908201527f696e76616c6964206d616a6f72697479436f6e646974696f6e42495053000000604082015260600190565b6020808252601d908201527f63616c6c20726576657274656420776974686f7574206d657373616765000000604082015260600190565b6020808252602d908201527f70726f706f73616c2063616e206f6e6c7920626520657865637574656420627960408201526c1034ba3990383937b837b9b2b960991b606082015260800190565b60208082526027908201527f766f746520706f77657220626c6f636b20697320746f6f2066617220696e20746040820152661a19481c185cdd60ca1b606082015260800190565b602080825260169082015275696e76616c696420766f7465207369676e617475726560501b604082015260600190565b6020808252601390820152721d5b9adb9bdddb881c1c9bdc1bdcd85b081a59606a1b604082015260600190565b60208082526018908201527f657865637574696f6e20706572696f6420746f6f206c6f770000000000000000604082015260600190565b60208082526028908201527f73756d206f66205f76616c75657320646f6573206e6f7420657175616c73206d60408201526773672e76616c756560c01b606082015260800190565b6020808252601c908201527f70726f706f73616c20697320616c72656164792063616e63656c656400000000604082015260600190565b602080825260159082015274766f74696e6720706572696f6420746f6f206c6f7760581b604082015260600190565b60208082526013908201527270726f706f73616c206e6f742061637469766560681b604082015260600190565b6020808252601f908201527f696e76616c69642076616c756520666f7220656e756d20566f74655479706500604082015260600190565b6020808252601190820152701d9bdd1948185b1c9958591e4818d85cdd607a1b604082015260600190565b6020808252601f908201527f70726f706f73616c206e6f7420696e20657865637574696f6e20737461746500604082015260600190565b60208082526019908201527f70726f706f73616c20616c726561647920657865637574656400000000000000604082015260600190565b8681526001600160a01b038616602082015260c06040820181905260009061345990830187612c48565b828103606084015261346b8187612d07565b9050828103608084015261347f8186612c8b565b9150508260a0830152979650505050505050565b918252602082015260400190565b600060ff8716825285602083015260a060408301526134c360a0830186612d36565b606083019490945250608001529392505050565b60405181810167ffffffffffffffff811182821017156134f357fe5b604052919050565b600067ffffffffffffffff82111561350f57fe5b5060209081020190565b60005b8381101561353457818101518382015260200161351c565b83811115612d015750506000910152565b6001600160a01b038116811461355a57600080fd5b50565b801515811461355a57600080fdfe45434453413a20696e76616c6964207369676e6174757265202773272076616c756545434453413a20696e76616c6964207369676e6174757265202776272076616c7565536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a264697066735822122022d8b01e97b19db6dbca7cda30accdaa950f4bb1012eb8621c67657faaed906664736f6c63430007060033",
1061
+ "bytecode": "0x6101406040523480156200001257600080fd5b50604051620045b7380380620045b7833981016040819052620000359162000400565b80838084806200004462000157565b6200004e62000182565b815160208084019190912082519183019190912060c082905260e08190527f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f620000976200019d565b60a052620000a7818484620001a1565b608052610100525050466101205250620000c390508162000205565b50506001600160a01b03811615620000e057620000e08162000229565b506001600160a01b03811662000130576040805162461bcd60e51b815260206004820152601060248201526f5f676f7665726e616e6365207a65726f60801b604482015290519081900360640190fd5b506040805160008152602081019091526200014d908290620002ec565b505050506200055d565b6040805180820190915260118152702837b63634b733a337bab73230ba34b7b760791b602082015290565b6040805180820190915260018152603160f81b602082015290565b4690565b6000838383620001b06200019d565b3060405160200180868152602001858152602001848152602001838152602001826001600160a01b03168152602001955050505050506040516020818303038152906040528051906020012090509392505050565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b600754600160a01b900460ff161562000289576040805162461bcd60e51b815260206004820152601460248201527f696e697469616c6973656420213d2066616c7365000000000000000000000000604482015290519081900360640190fd5b60078054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b7f4b8f4e528b6d075c6c9d025e58db64e36b460c1516341b1ab7339b4c6d5bcb8a82826040516200031f9291906200052b565b60405180910390a160005b825181101562000382576001600960008584815181106200034757fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790556001016200032a565b5060005b8151811015620003de57600060096000848481518110620003a357fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905560010162000386565b505050565b80516001600160a01b0381168114620003fb57600080fd5b919050565b60008060006060848603121562000415578283fd5b6200042084620003e3565b9250602062000431818601620003e3565b60408601519093506001600160401b03808211156200044e578384fd5b818701915087601f83011262000462578384fd5b8151818111156200046f57fe5b838102604051858282010181811085821117156200048957fe5b604052828152858101935084860182860187018c1015620004a8578788fd5b8795505b83861015620004d557620004c081620003e3565b855260019590950194938601938601620004ac565b508096505050505050509250925092565b6000815180845260208085019450808401835b83811015620005205781516001600160a01b031687529582019590820190600101620004f9565b509495945050505050565b600060408252620005406040830185620004e6565b8281036020840152620005548185620004e6565b95945050505050565b60805160a05160c05160e051610100516101205161400b620005ac60003980610f965280611a245250806121975250806121d95250806121b852508061213e52508061216e525061400b6000f3fe6080604052600436106101f95760003560e01c806374ec29a01161010d578063b00c0b76116100a0578063e17f212e1161006f578063e17f212e146105ae578063e4ea8b65146105c3578063eb9019d4146105d6578063f17c9d76146105f6578063f5a983831461060b576101f9565b8063b00c0b7614610523578063bc903cb814610543578063bd590d7e14610579578063deaaa7cc14610599576101f9565b80639a8a0592116100dc5780639a8a0592146104ae5780639d6a890f146104c3578063a3c90b80146104e3578063a7a6224a14610503576101f9565b806374ec29a01461042e5780637b3c71d31461044e578063854121961461046e57806386f90bbf1461048e576101f9565b806347c66140116101905780635aa6e6751161015f5780635aa6e675146103965780635ff27079146103ab57806362354e03146103cb57806367fc4029146103e057806374e6310e14610400576101f9565b806347c661401461031e5780635267a15d1461034c57806354fd4d50146103615780635678138814610376576101f9565b80633bccf4fd116101cc5780633bccf4fd146102755780633e4f49e6146102a257806340e58ee5146102cf57806343859632146102f1576101f9565b8063047fc9aa146101fe57806306fdde031461022957806311a7aaaa1461024b57806338b5f86914610260575b600080fd5b34801561020a57600080fd5b50610213610620565b60405161022091906137af565b60405180910390f35b34801561023557600080fd5b5061023e61062f565b6040516102209190613946565b34801561025757600080fd5b5061021361065b565b34801561026c57600080fd5b5061021361066a565b34801561028157600080fd5b50610295610290366004613632565b610679565b6040516102209190613910565b3480156102ae57600080fd5b506102c26102bd366004613526565b61073f565b6040516102209190613932565b3480156102db57600080fd5b506102ef6102ea366004613526565b610760565b005b3480156102fd57600080fd5b5061031161030c366004613556565b610823565b6040516102209190613905565b34801561032a57600080fd5b5061033e610339366004613526565b610853565b604051610220929190613ea9565b34801561035857600080fd5b5061021361086c565b34801561036d57600080fd5b5061023e610891565b34801561038257600080fd5b50610295610391366004613585565b6108ac565b3480156103a257600080fd5b506102136108d0565b3480156103b757600080fd5b506102ef6103c63660046133c5565b610974565b3480156103d757600080fd5b50610213610cd8565b3480156103ec57600080fd5b506102ef6103fb3660046133c5565b610cf0565b34801561040c57600080fd5b5061042061041b3660046133c5565b610dd6565b604051610220929190613e90565b34801561043a57600080fd5b50610311610449366004613007565b610e7d565b34801561045a57600080fd5b506102956104693660046135b0565b610e9b565b34801561047a57600080fd5b50610295610489366004613157565b610eea565b34801561049a57600080fd5b506102956104a9366004613420565b610f03565b3480156104ba57600080fd5b50610295610f94565b3480156104cf57600080fd5b506102ef6104de366004613007565b610fb8565b3480156104ef57600080fd5b506102956104fe3660046130af565b611071565b34801561050f57600080fd5b506102ef61051e36600461304e565b611087565b34801561052f57600080fd5b506102ef61053e36600461328c565b6110d4565b34801561054f57600080fd5b5061056361055e366004613526565b61117b565b6040516102209a99989796959493929190613877565b34801561058557600080fd5b506102956105943660046133ed565b6111da565b3480156105a557600080fd5b50610295611229565b3480156105ba57600080fd5b5061031161124d565b6102956105d13660046130af565b61125d565b3480156105e257600080fd5b506102956105f1366004613023565b61126e565b34801561060257600080fd5b5061021361127a565b34801561061757600080fd5b506102ef611289565b6005546001600160a01b031681565b6040805180820190915260118152702837b63634b733a337bab73230ba34b7b760791b60208201525b90565b6004546001600160a01b031681565b6006546001600160a01b031681565b6000806106d76106d27f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f89896040516020016106b793929190613919565b60405160208183030381529060405280519060200120611350565b61139c565b905060006106e7828787876113ed565b90506001600160a01b0381166107185760405162461bcd60e51b815260040161070f90613bed565b60405180910390fd5b61073388828960405180602001604052806000815250611562565b98975050505050505050565b6000818152600260205260408120610758908390611623565b90505b919050565b60008181526002602052604090208054600160b01b900460ff16156107975760405162461bcd60e51b815260040161070f90613cc9565b80546001600160a01b031633146107c05760405162461bcd60e51b815260040161070f90613990565b806002015442106107e35760405162461bcd60e51b815260040161070f90613a14565b805460ff60b01b1916600160b01b17815560405182907f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c90600090a25050565b60008281526003602090815260408083206001600160a01b038516845260020190915290205460ff165b92915050565b6000908152600360205260409020600181015490549091565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e77195490565b6040805180820190915260018152603160f81b602082015290565b60006108c983338460405180602001604052806000815250611562565b9392505050565b600754600090600160a81b900460ff166108f5576007546001600160a01b031661096f565b73183faff6997c98a812a3b98748fc80241d08f3126001600160a01b031663732524946040518163ffffffff1660e01b815260040160206040518083038186803b15801561094257600080fd5b505afa158015610956573d6000803e3d6000fd5b505050506040513d602081101561096c57600080fd5b50515b905090565b60408051630debfda360e41b8152336004820152905173183faff6997c98a812a3b98748fc80241d08f3129163debfda30916024808301926020929190829003018186803b1580156109c557600080fd5b505afa1580156109d9573d6000803e3d6000fd5b505050506040513d60208110156109ef57600080fd5b5051610a32576040805162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b604482015290519081900360640190fd5b6001600160e01b0319811660009081526008602052604090208054610a9e576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b8054421015610af4576040805162461bcd60e51b815260206004820152601960248201527f74696d656c6f636b3a206e6f7420616c6c6f7765642079657400000000000000604482015290519081900360640190fd5b6000816001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b8e5780601f10610b6357610100808354040283529160200191610b8e565b820191906000526020600020905b815481529060010190602001808311610b7157829003601f168201915b505050506001600160e01b0319851660009081526008602052604081208181559293509050610bc06001830182612d36565b50506007805460ff60b01b1916600160b01b17905560405181516000913091849190819060208401908083835b60208310610c0c5780518252601f199092019160209182019101610bed565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610c6e576040519150601f19603f3d011682016040523d82523d6000602084013e610c73565b606091505b50506007805460ff60b01b19169055604080516001600160e01b03198716815242602082015281519293507fa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438929081900390910190a1610cd281611701565b50505050565b73183faff6997c98a812a3b98748fc80241d08f31281565b610cf861171e565b6001600160e01b03198116600090815260086020526040902054610d63576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b604080516001600160e01b03198316815242602082015281517f7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8929181900390910190a16001600160e01b03198116600090815260086020526040812081815590610dd16001830182612d36565b505050565b6008602090815260009182526040918290208054600180830180548651600293821615610100026000190190911692909204601f810186900486028301860190965285825291949293909290830182828015610e735780601f10610e4857610100808354040283529160200191610e73565b820191906000526020600020905b815481529060010190602001808311610e5657829003601f168201915b5050505050905082565b6001600160a01b031660009081526009602052604090205460ff1690565b6000610edf85338686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061156292505050565b90505b949350505050565b6000610ef9868686868661177f565b9695505050505050565b6040805161010081018252825115158152602080840151818301528383015182840152606080850151818401526080808601519084015260a08086015190840152600060c08401819052600160e0850152845181815292830181815283860182815292840190955293610ee2929185610f8c565b6060815260200190600190039081610f775790505b50878561177f565b7f000000000000000000000000000000000000000000000000000000000000000081565b600754600160a01b900460ff161561100e576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b60078054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b6000610edf85858561108286611a15565b611a20565b600754600160b01b900460ff16806110a95750600754600160a81b900460ff16155b156110c5576110b6611a7e565b6110c08282611ab3565b6110d0565b6110d0600036611b9d565b5050565b6110dc61086c565b6001600160a01b0316336001600160a01b031614611138576040805162461bcd60e51b815260206004820152601460248201527337b7363c9030b2323932b9b9903ab83230ba32b960611b604482015290519081900360640190fd5b61117161116c83836040518060400160405280600e81526020016d20b2323932b9b9aab83230ba32b960911b815250611d2f565b611e5c565b6110d08282611e80565b60009081526002602081905260409091208054600182015492820154600383015460048401546005850154600686015460078701546008909701546001600160a01b03871699600160a01b90970460ff16989795969495939492939192565b604080516000808252602082018181528284018281526060840190945290926107589291908461121a565b60608152602001906001900390816112055790505b5061122486611a15565b611fbb565b7f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b600754600160a81b900460ff1681565b6000610edf85858561122486611a15565b60006108c983836120b7565b6000546001600160a01b031681565b61129161171e565b600754600160a81b900460ff16156112f0576040805162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2070726f64756374696f6e206d6f6465000000000000604482015290519081900360640190fd5b60078054600161ff0160a01b031916600160a81b1790556040805173183faff6997c98a812a3b98748fc80241d08f312815290517f83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c9181900360200190a1565b600061135a61213a565b82604051602001808061190160f01b81525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050919050565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a082111561144e5760405162461bcd60e51b8152600401808060200182810382526022815260200180613f716022913960400191505060405180910390fd5b8360ff16601b148061146357508360ff16601c145b61149e5760405162461bcd60e51b8152600401808060200182810382526022815260200180613f936022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156114fa573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610edf576040805162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b6000848152600260205260408120600161157c8783611623565b600781111561158757fe5b146115a45760405162461bcd60e51b815260040161070f90613d2f565b60006115b48683600101546120b7565b905060006115c488888885612204565b905087876001600160a01b03167fdd14487524f5e7c93029ad24503aa74e185d049a8c975136786a20eacc5e1b4e88858986600101548760000154604051611610959493929190613eb7565b60405180910390a3509695505050505050565b8054600090600160b01b900460ff161561163f5750600761084d565b8154600160a81b900460ff16156116585750600661084d565b60028201546116795760405162461bcd60e51b815260040161070f90613c1d565b428260020154111561168d5750600061084d565b42826003015411156116a15750600161084d565b6116ab83836122bc565b156116f8578154600160b81b900460ff166116c85750600461084d565b42826004015411156116dc5750600361084d565b42826005015411156116f05750600461084d565b50600561084d565b50600292915050565b3d604051818101604052816000823e821561171a578181f35b8181fd5b6117266108d0565b6001600160a01b0316336001600160a01b03161461177d576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b565b60008060006117918460600151612365565b9150915061179f33836125fc565b6117bb5760405162461bcd60e51b815260040161070f90613a9d565b60008460400151116117df5760405162461bcd60e51b815260040161070f90613d00565b60008460e00151116118035760405162461bcd60e51b815260040161070f90613c4a565b612710846080015111156118295760405162461bcd60e51b815260040161070f90613a66565b6113888460a001511015801561184557506127108460a0015111155b6118615760405162461bcd60e51b815260040161070f90613aeb565b60055460405163d9330e6360e01b81526000916001600160a01b03169063d9330e6390611892908690600401613910565b60206040518083038186803b1580156118aa57600080fd5b505afa1580156118be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e2919061353e565b90506000600460009054906101000a90046001600160a01b03166001600160a01b031663ec31db0c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561193457600080fd5b505afa158015611948573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196c919061353e565b9050600080611983338d8d8d8d8b8b8f8c8c612607565b91509150817f72ae4a121488f73dfdb9308e9ecdcd1fc31e5f6c553b6f1fb65650d04406e6ec338e8e8e8e8760000160149054906101000a900460ff166119c9896127ad565b6119d28a6127cf565b8a600101548b600601548c600701548d600801546040516119fe9c9b9a999897969594939291906137c3565b60405180910390a2509a9950505050505050505050565b805160209091012090565b60007f00000000000000000000000000000000000000000000000000000000000000003086868686604051602001611a5d96959493929190613e2c565b60408051601f19818403018152919052805160209091012095945050505050565b600754600160b01b900460ff1615611aab57333014611a9957fe5b6007805460ff60b01b1916905561177d565b61177d61171e565b7f4b8f4e528b6d075c6c9d025e58db64e36b460c1516341b1ab7339b4c6d5bcb8a8282604051611ae49291906138e0565b60405180910390a160005b8251811015611b4457600160096000858481518110611b0a57fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101611aef565b5060005b8151811015610dd157600060096000848481518110611b6357fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101611b48565b611ba561171e565b600082359050600073183faff6997c98a812a3b98748fc80241d08f3126001600160a01b0316636221a54b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611bfa57600080fd5b505afa158015611c0e573d6000803e3d6000fd5b505050506040513d6020811015611c2457600080fd5b505160408051808201825242830180825282516020601f89018190048102820181019094528781529394509290918281019190889088908190840183828082843760009201829052509390945250506001600160e01b03198616815260086020908152604090912083518155838201518051919350611caa926001850192910190612d7d565b509050507fed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b68382878760405180856001600160e01b0319168152602001848152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f191690920182900397509095505050505050a15050505050565b600080826040516020018080602001828103825283818151815260200191508051906020019080838360005b83811015611d73578181015183820152602001611d5b565b50505050905090810190601f168015611da05780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012090506000805b8651811015611e0857868181518110611dd657fe5b6020026020010151831415611e0057858181518110611df157fe5b60200260200101519150611e08565b600101611dc1565b506001600160a01b038116611e53576040805162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b604482015290519081900360640190fd5b95945050505050565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b611eaf82826040518060400160405280600c81526020016b4674736f526567697374727960a01b815250611d2f565b600660006101000a8154816001600160a01b0302191690836001600160a01b03160217905550611f0382826040518060400160405280600b81526020016a233a39b7a6b0b730b3b2b960a91b815250611d2f565b600460006101000a8154816001600160a01b0302191690836001600160a01b03160217905550611f52828260405180604001604052806006815260200165537570706c7960d01b815250611d2f565b600560006101000a8154816001600160a01b0302191690836001600160a01b031602179055506000611fb083836040518060400160405280601381526020017223b7bb32b93730b731b2ab37ba32a837bbb2b960691b815250611d2f565b9050610dd1816127eb565b6000611fc985858585611a20565b6000818152600260205260409020805491925090600160a81b900460ff16156120045760405162461bcd60e51b815260040161070f90613df5565b80546001600160a01b0316331461202d5760405162461bcd60e51b815260040161070f90613b59565b60006120398383611623565b9050600481600781111561204957fe5b146120665760405162461bcd60e51b815260040161070f90613dbe565b815460ff60a81b1916600160a81b17825561208287878761280d565b60405183907f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f90600090a25050949350505050565b60008054604051631257fcdb60e31b81526001600160a01b03909116906392bfe6d8906120ea90869086906004016138c7565b60206040518083038186803b15801561210257600080fd5b505afa158015612116573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c9919061353e565b60007f0000000000000000000000000000000000000000000000000000000000000000612165612945565b141561219257507f0000000000000000000000000000000000000000000000000000000000000000610658565b6121fd7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000612949565b9050610658565b60008481526003602090815260408083206001600160a01b0387168452600281019092529091205460ff161561224c5760405162461bcd60e51b815260040161070f90613d93565b6001600160a01b03841660009081526002820160205260408120805460ff1916600117905560ff168360ff16141561228957805482018155610ee2565b60ff8316600114156122a45760018101805483019055610ee2565b60405162461bcd60e51b815260040161070f90613d5c565b6000828152600360205260408120600883015460068401546122e0916127106129ab565b815460018301540110156123025750508054600160a01b900460ff161561084d565b80546001820154600785015461231d929091016127106129ab565b8354600160a01b900460ff1661233457815461233a565b81600101545b116123535750508054600160a01b900460ff161561084d565b505054600160a01b900460ff16919050565b6000806000600460009054906101000a90046001600160a01b03166001600160a01b031663e7c830d46040518163ffffffff1660e01b815260040160206040518083038186803b1580156123b857600080fd5b505afa1580156123cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123f0919061353e565b6004805460405163e5399da360e01b81529293506000926001600160a01b039091169163e5399da39161242591869101613910565b60606040518083038186803b15801561243d57600080fd5b505afa158015612451573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061247591906134d1565b6000805460408051635397625b60e11b8152905193945043936001600160a01b039092169163a72ec4b691600480820192602092909190829003018186803b1580156124c057600080fd5b505afa1580156124d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124f8919061353e565b604084015190915042035b60008511801561251257508781105b156125c9576004805460405163e5399da360e01b81526000926001600160a01b039092169163e5399da39161254d916000198b019101613910565b60606040518083038186803b15801561256557600080fd5b505afa158015612579573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061259d91906134d1565b905082816020015110156125b157506125c9565b60408101516000199096019590945042039050612503565b602084015160008185036125db612ab7565b816125e257fe5b604090970151960690940397509395505050505050915091565b60006108c983610e7d565b60008089518b511461262b5760405162461bcd60e51b815260040161070f90613959565b88518b511461264c5760405162461bcd60e51b815260040161070f90613959565b600061265d8c8c8c6110828d611a15565b60008181526002602081905260409091209081015491925090156126935760405162461bcd60e51b815260040161070f906139dd565b8d8160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555088816001018190555086600001518160000160146101000a81548160ff0219169083151502179055508660200151420181600201819055508660400151816002015401816003018190555084888260030154031061272c5760405162461bcd60e51b815260040161070f90613ba6565b8c511561277e57805460ff60b81b1916600160b81b17815560c08701516003820154016004820181905560015411156127685760015460048201555b60e0870151600482015401600582018190556001555b6080870151600682015560a087015160078201556008810186905590925090509a509a98505050505050505050565b6127b5612e09565b6002820154815260038201548160015b6020020152919050565b6127d7612e09565b6004820154815260058201548160016127c5565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000805b835181101561283f5783818151811061282657fe5b6020026020010151820191508080600101915050612811565b5080341461285f5760405162461bcd60e51b815260040161070f90613c81565b60005b845181101561293e5760008086838151811061287a57fe5b60200260200101516001600160a01b031686848151811061289757fe5b60200260200101518685815181106128ab57fe5b60200260200101516040516128c09190613793565b60006040518083038185875af1925050503d80600081146128fd576040519150601f19603f3d011682016040523d82523d6000602084013e612902565b606091505b5091509150816129345780511561291c5780518082602001fd5b60405162461bcd60e51b815260040161070f90613b22565b5050600101612862565b5050505050565b4690565b6000838383612956612945565b3060405160200180868152602001858152602001848152602001838152602001826001600160a01b03168152602001955050505050506040516020818303038152906040528051906020012090509392505050565b60008082116129f4576040805162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b604482015290519081900360640190fd5b83612a01575060006108c9565b83830283858281612a0e57fe5b041415612a2757828181612a1e57fe5b049150506108c9565b6000838681612a3257fe5b0490506000848781612a4057fe5b0690506000858781612a4e57fe5b0490506000868881612a5c57fe5b069050612aaa612a7688612a708685612c1c565b90612c75565b612aa4612a838686612c1c565b612aa4612a908987612c1c565b612aa48d612a9e8c8b612c1c565b90612c1c565b90612cdc565b9998505050505050505050565b600080600090506000600660009054906101000a90046001600160a01b03166001600160a01b031663a40060ba6040518163ffffffff1660e01b815260040160006040518083038186803b158015612b0e57600080fd5b505afa158015612b22573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612b4a919081019061332c565b905060005b8151811015612be857818181518110612b6457fe5b60200260200101516001600160a01b031663d89601fd6040518163ffffffff1660e01b815260040160206040518083038186803b158015612ba457600080fd5b505afa158015612bb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bdc919061353e565b90920191600101612b4f565b504282604051602001612bfc929190613ea9565b6040516020818303038152906040528051906020012060001c9250505090565b600082612c2b5750600061084d565b82820282848281612c3857fe5b04146108c95760405162461bcd60e51b8152600401808060200182810382526021815260200180613fb56021913960400191505060405180910390fd5b6000808211612ccb576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381612cd457fe5b049392505050565b6000828201838110156108c9576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b50805460018160011615610100020316600290046000825580601f10612d5c5750612d7a565b601f016020900490600052602060002090810190612d7a9190612e27565b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282612db35760008555612df9565b82601f10612dcc57805160ff1916838001178555612df9565b82800160010185558215612df9579182015b82811115612df9578251825591602001919060010190612dde565b50612e05929150612e27565b5090565b60405180604001604052806002906020820280368337509192915050565b5b80821115612e055760008155600101612e28565b600067ffffffffffffffff831115612e5057fe5b612e63601f8401601f1916602001613eed565b9050828152838383011115612e7757600080fd5b828260208301376000602084830101529392505050565b600082601f830112612e9e578081fd5b81356020612eb3612eae83613f11565b613eed565b8281528181019085830183850287018401881015612ecf578586fd5b855b85811015612ef6578135612ee481613f5b565b84529284019290840190600101612ed1565b5090979650505050505050565b600082601f830112612f13578081fd5b81356020612f23612eae83613f11565b82815281810190858301855b85811015612ef6578135880189603f820112612f49578788fd5b612f5a8a8783013560408401612e3c565b8552509284019290840190600101612f2f565b600082601f830112612f7d578081fd5b81356020612f8d612eae83613f11565b8281528181019085830183850287018401881015612fa9578586fd5b855b85811015612ef657813584529284019290840190600101612fab565b8035801515811461075b57600080fd5b600082601f830112612fe7578081fd5b6108c983833560208501612e3c565b803560ff8116811461075b57600080fd5b600060208284031215613018578081fd5b81356108c981613f5b565b60008060408385031215613035578081fd5b823561304081613f5b565b946020939093013593505050565b60008060408385031215613060578182fd5b823567ffffffffffffffff80821115613077578384fd5b61308386838701612e8e565b93506020850135915080821115613098578283fd5b506130a585828601612e8e565b9150509250929050565b600080600080608085870312156130c4578182fd5b843567ffffffffffffffff808211156130db578384fd5b6130e788838901612e8e565b955060208701359150808211156130fc578384fd5b61310888838901612f6d565b9450604087013591508082111561311d578384fd5b61312988838901612f03565b9350606087013591508082111561313e578283fd5b5061314b87828801612fd7565b91505092959194509250565b6000806000806000858703610180811215613170578384fd5b863567ffffffffffffffff80821115613187578586fd5b6131938a838b01612e8e565b975060208901359150808211156131a8578586fd5b6131b48a838b01612f6d565b965060408901359150808211156131c9578586fd5b6131d58a838b01612f03565b955060608901359150808211156131ea578384fd5b6131f68a838b01612fd7565b9450610100915081607f198401121561320d578384fd5b6040519250818301838110828211171561322357fe5b6040525061323360808901612fc7565b825260a0880135602083015260c0880135604083015260e088013560608301528088013560808301525061012087013560a082015261014087013560c082015261016087013560e0820152809150509295509295909350565b6000806040838503121561329e578182fd5b823567ffffffffffffffff808211156132b5578384fd5b818501915085601f8301126132c8578384fd5b813560206132d8612eae83613f11565b82815281810190858301838502870184018b10156132f4578889fd5b8896505b848710156133165780358352600196909601959183019183016132f8565b5096505086013592505080821115613098578283fd5b6000602080838503121561333e578182fd5b825167ffffffffffffffff811115613354578283fd5b8301601f81018513613364578283fd5b8051613372612eae82613f11565b818152838101908385018584028501860189101561338e578687fd5b8694505b838510156133b95780516133a581613f5b565b835260019490940193918501918501613392565b50979650505050505050565b6000602082840312156133d6578081fd5b81356001600160e01b0319811681146108c9578182fd5b6000602082840312156133fe578081fd5b813567ffffffffffffffff811115613414578182fd5b610ee284828501612fd7565b60008082840360e0811215613433578283fd5b833567ffffffffffffffff8082111561344a578485fd5b61345687838801612fd7565b945060c0601f1984011215613469578384fd5b604051925060c083019150828210818311171561348257fe5b5060405261349260208501612fc7565b815260408401356020820152606084013560408201526080840135606082015260a0840135608082015260c084013560a0820152809150509250929050565b6000606082840312156134e2578081fd5b6040516060810181811067ffffffffffffffff821117156134ff57fe5b80604052508251815260208301516020820152604083015160408201528091505092915050565b600060208284031215613537578081fd5b5035919050565b60006020828403121561354f578081fd5b5051919050565b60008060408385031215613568578182fd5b82359150602083013561357a81613f5b565b809150509250929050565b60008060408385031215613597578182fd5b823591506135a760208401612ff6565b90509250929050565b600080600080606085870312156135c5578182fd5b843593506135d560208601612ff6565b9250604085013567ffffffffffffffff808211156135f1578384fd5b818701915087601f830112613604578384fd5b813581811115613612578485fd5b886020828501011115613623578485fd5b95989497505060200194505050565b600080600080600060a08688031215613649578283fd5b8535945061365960208701612ff6565b935061366760408701612ff6565b94979396509394606081013594506080013592915050565b6000815180845260208085019450808401835b838110156136b75781516001600160a01b031687529582019590820190600101613692565b509495945050505050565b6000815180845260208085018081965082840281019150828601855b858110156137085782840389526136f6848351613767565b988501989350908401906001016136de565b5091979650505050505050565b8060005b6002811015610cd2578151845260209384019390910190600101613719565b6000815180845260208085019450808401835b838110156136b75781518752958201959082019060010161374b565b6000815180845261377f816020860160208601613f2f565b601f01601f19169290920160200192915050565b600082516137a5818460208701613f2f565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b038d1681526101c0602082018190526000906137e88382018f61367f565b905082810360408401526137fc818e613738565b90508281036060840152613810818d6136c2565b90508281036080840152613824818c613767565b91505088151560a083015261383c60c0830189613715565b61384a610100830188613715565b856101408301528461016083015283610180830152826101a08301529d9c50505050505050505050505050565b6001600160a01b039a909a168a5297151560208a015260408901969096526060880194909452608087019290925260a086015260c085015260e08401526101008301526101208201526101400190565b6001600160a01b03929092168252602082015260400190565b6000604082526138f3604083018561367f565b8281036020840152611e53818561367f565b901515815260200190565b90815260200190565b928352602083019190915260ff16604082015260600190565b602081016008831061394057fe5b91905290565b6000602082526108c96020830184613767565b60208082526017908201527f696e76616c69642070726f706f73616c206c656e677468000000000000000000604082015260600190565b6020808252602d908201527f70726f706f73616c2063616e206f6e6c792062652063616e63656c656420627960408201526c1034ba3990383937b837b9b2b960991b606082015260800190565b60208082526017908201527f70726f706f73616c20616c726561647920657869737473000000000000000000604082015260600190565b60208082526032908201527f70726f706f73616c2063616e206f6e6c792062652063616e63656c6564206265604082015271666f726520766f74696e672073746172747360701b606082015260800190565b6020808252601e908201527f696e76616c6964207468726573686f6c64436f6e646974696f6e424950530000604082015260600190565b6020808252602e908201527f7375626d6974746572206973206e6f7420656c696769626c6520746f2073756260408201526d1b5a5d0818481c1c9bdc1bdcd85b60921b606082015260800190565b6020808252601d908201527f696e76616c6964206d616a6f72697479436f6e646974696f6e42495053000000604082015260600190565b6020808252601d908201527f63616c6c20726576657274656420776974686f7574206d657373616765000000604082015260600190565b6020808252602d908201527f70726f706f73616c2063616e206f6e6c7920626520657865637574656420627960408201526c1034ba3990383937b837b9b2b960991b606082015260800190565b60208082526027908201527f766f746520706f77657220626c6f636b20697320746f6f2066617220696e20746040820152661a19481c185cdd60ca1b606082015260800190565b602080825260169082015275696e76616c696420766f7465207369676e617475726560501b604082015260600190565b6020808252601390820152721d5b9adb9bdddb881c1c9bdc1bdcd85b081a59606a1b604082015260600190565b60208082526018908201527f657865637574696f6e20706572696f6420746f6f206c6f770000000000000000604082015260600190565b60208082526028908201527f73756d206f66205f76616c75657320646f6573206e6f7420657175616c73206d60408201526773672e76616c756560c01b606082015260800190565b6020808252601c908201527f70726f706f73616c20697320616c72656164792063616e63656c656400000000604082015260600190565b602080825260159082015274766f74696e6720706572696f6420746f6f206c6f7760581b604082015260600190565b60208082526013908201527270726f706f73616c206e6f742061637469766560681b604082015260600190565b6020808252601f908201527f696e76616c69642076616c756520666f7220656e756d20566f74655479706500604082015260600190565b6020808252601190820152701d9bdd1948185b1c9958591e4818d85cdd607a1b604082015260600190565b6020808252601f908201527f70726f706f73616c206e6f7420696e20657865637574696f6e20737461746500604082015260600190565b60208082526019908201527f70726f706f73616c20616c726561647920657865637574656400000000000000604082015260600190565b8681526001600160a01b038616602082015260c060408201819052600090613e569083018761367f565b8281036060840152613e688187613738565b90508281036080840152613e7c81866136c2565b9150508260a0830152979650505050505050565b600083825260406020830152610ee26040830184613767565b918252602082015260400190565b600060ff8716825285602083015260a06040830152613ed960a0830186613767565b606083019490945250608001529392505050565b60405181810167ffffffffffffffff81118282101715613f0957fe5b604052919050565b600067ffffffffffffffff821115613f2557fe5b5060209081020190565b60005b83811015613f4a578181015183820152602001613f32565b83811115610cd25750506000910152565b6001600160a01b0381168114612d7a57600080fdfe45434453413a20696e76616c6964207369676e6174757265202773272076616c756545434453413a20696e76616c6964207369676e6174757265202776272076616c7565536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212204d6c4e0ca1ccbd15c47930aca722f49258f5819abd21785313be560f5f94e98264736f6c63430007060033",
1062
+ "deployedBytecode": "0x6080604052600436106101f95760003560e01c806374ec29a01161010d578063b00c0b76116100a0578063e17f212e1161006f578063e17f212e146105ae578063e4ea8b65146105c3578063eb9019d4146105d6578063f17c9d76146105f6578063f5a983831461060b576101f9565b8063b00c0b7614610523578063bc903cb814610543578063bd590d7e14610579578063deaaa7cc14610599576101f9565b80639a8a0592116100dc5780639a8a0592146104ae5780639d6a890f146104c3578063a3c90b80146104e3578063a7a6224a14610503576101f9565b806374ec29a01461042e5780637b3c71d31461044e578063854121961461046e57806386f90bbf1461048e576101f9565b806347c66140116101905780635aa6e6751161015f5780635aa6e675146103965780635ff27079146103ab57806362354e03146103cb57806367fc4029146103e057806374e6310e14610400576101f9565b806347c661401461031e5780635267a15d1461034c57806354fd4d50146103615780635678138814610376576101f9565b80633bccf4fd116101cc5780633bccf4fd146102755780633e4f49e6146102a257806340e58ee5146102cf57806343859632146102f1576101f9565b8063047fc9aa146101fe57806306fdde031461022957806311a7aaaa1461024b57806338b5f86914610260575b600080fd5b34801561020a57600080fd5b50610213610620565b60405161022091906137af565b60405180910390f35b34801561023557600080fd5b5061023e61062f565b6040516102209190613946565b34801561025757600080fd5b5061021361065b565b34801561026c57600080fd5b5061021361066a565b34801561028157600080fd5b50610295610290366004613632565b610679565b6040516102209190613910565b3480156102ae57600080fd5b506102c26102bd366004613526565b61073f565b6040516102209190613932565b3480156102db57600080fd5b506102ef6102ea366004613526565b610760565b005b3480156102fd57600080fd5b5061031161030c366004613556565b610823565b6040516102209190613905565b34801561032a57600080fd5b5061033e610339366004613526565b610853565b604051610220929190613ea9565b34801561035857600080fd5b5061021361086c565b34801561036d57600080fd5b5061023e610891565b34801561038257600080fd5b50610295610391366004613585565b6108ac565b3480156103a257600080fd5b506102136108d0565b3480156103b757600080fd5b506102ef6103c63660046133c5565b610974565b3480156103d757600080fd5b50610213610cd8565b3480156103ec57600080fd5b506102ef6103fb3660046133c5565b610cf0565b34801561040c57600080fd5b5061042061041b3660046133c5565b610dd6565b604051610220929190613e90565b34801561043a57600080fd5b50610311610449366004613007565b610e7d565b34801561045a57600080fd5b506102956104693660046135b0565b610e9b565b34801561047a57600080fd5b50610295610489366004613157565b610eea565b34801561049a57600080fd5b506102956104a9366004613420565b610f03565b3480156104ba57600080fd5b50610295610f94565b3480156104cf57600080fd5b506102ef6104de366004613007565b610fb8565b3480156104ef57600080fd5b506102956104fe3660046130af565b611071565b34801561050f57600080fd5b506102ef61051e36600461304e565b611087565b34801561052f57600080fd5b506102ef61053e36600461328c565b6110d4565b34801561054f57600080fd5b5061056361055e366004613526565b61117b565b6040516102209a99989796959493929190613877565b34801561058557600080fd5b506102956105943660046133ed565b6111da565b3480156105a557600080fd5b50610295611229565b3480156105ba57600080fd5b5061031161124d565b6102956105d13660046130af565b61125d565b3480156105e257600080fd5b506102956105f1366004613023565b61126e565b34801561060257600080fd5b5061021361127a565b34801561061757600080fd5b506102ef611289565b6005546001600160a01b031681565b6040805180820190915260118152702837b63634b733a337bab73230ba34b7b760791b60208201525b90565b6004546001600160a01b031681565b6006546001600160a01b031681565b6000806106d76106d27f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f89896040516020016106b793929190613919565b60405160208183030381529060405280519060200120611350565b61139c565b905060006106e7828787876113ed565b90506001600160a01b0381166107185760405162461bcd60e51b815260040161070f90613bed565b60405180910390fd5b61073388828960405180602001604052806000815250611562565b98975050505050505050565b6000818152600260205260408120610758908390611623565b90505b919050565b60008181526002602052604090208054600160b01b900460ff16156107975760405162461bcd60e51b815260040161070f90613cc9565b80546001600160a01b031633146107c05760405162461bcd60e51b815260040161070f90613990565b806002015442106107e35760405162461bcd60e51b815260040161070f90613a14565b805460ff60b01b1916600160b01b17815560405182907f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c90600090a25050565b60008281526003602090815260408083206001600160a01b038516845260020190915290205460ff165b92915050565b6000908152600360205260409020600181015490549091565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e77195490565b6040805180820190915260018152603160f81b602082015290565b60006108c983338460405180602001604052806000815250611562565b9392505050565b600754600090600160a81b900460ff166108f5576007546001600160a01b031661096f565b73183faff6997c98a812a3b98748fc80241d08f3126001600160a01b031663732524946040518163ffffffff1660e01b815260040160206040518083038186803b15801561094257600080fd5b505afa158015610956573d6000803e3d6000fd5b505050506040513d602081101561096c57600080fd5b50515b905090565b60408051630debfda360e41b8152336004820152905173183faff6997c98a812a3b98748fc80241d08f3129163debfda30916024808301926020929190829003018186803b1580156109c557600080fd5b505afa1580156109d9573d6000803e3d6000fd5b505050506040513d60208110156109ef57600080fd5b5051610a32576040805162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b604482015290519081900360640190fd5b6001600160e01b0319811660009081526008602052604090208054610a9e576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b8054421015610af4576040805162461bcd60e51b815260206004820152601960248201527f74696d656c6f636b3a206e6f7420616c6c6f7765642079657400000000000000604482015290519081900360640190fd5b6000816001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b8e5780601f10610b6357610100808354040283529160200191610b8e565b820191906000526020600020905b815481529060010190602001808311610b7157829003601f168201915b505050506001600160e01b0319851660009081526008602052604081208181559293509050610bc06001830182612d36565b50506007805460ff60b01b1916600160b01b17905560405181516000913091849190819060208401908083835b60208310610c0c5780518252601f199092019160209182019101610bed565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610c6e576040519150601f19603f3d011682016040523d82523d6000602084013e610c73565b606091505b50506007805460ff60b01b19169055604080516001600160e01b03198716815242602082015281519293507fa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438929081900390910190a1610cd281611701565b50505050565b73183faff6997c98a812a3b98748fc80241d08f31281565b610cf861171e565b6001600160e01b03198116600090815260086020526040902054610d63576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b604080516001600160e01b03198316815242602082015281517f7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8929181900390910190a16001600160e01b03198116600090815260086020526040812081815590610dd16001830182612d36565b505050565b6008602090815260009182526040918290208054600180830180548651600293821615610100026000190190911692909204601f810186900486028301860190965285825291949293909290830182828015610e735780601f10610e4857610100808354040283529160200191610e73565b820191906000526020600020905b815481529060010190602001808311610e5657829003601f168201915b5050505050905082565b6001600160a01b031660009081526009602052604090205460ff1690565b6000610edf85338686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061156292505050565b90505b949350505050565b6000610ef9868686868661177f565b9695505050505050565b6040805161010081018252825115158152602080840151818301528383015182840152606080850151818401526080808601519084015260a08086015190840152600060c08401819052600160e0850152845181815292830181815283860182815292840190955293610ee2929185610f8c565b6060815260200190600190039081610f775790505b50878561177f565b7f000000000000000000000000000000000000000000000000000000000000000081565b600754600160a01b900460ff161561100e576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b60078054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b6000610edf85858561108286611a15565b611a20565b600754600160b01b900460ff16806110a95750600754600160a81b900460ff16155b156110c5576110b6611a7e565b6110c08282611ab3565b6110d0565b6110d0600036611b9d565b5050565b6110dc61086c565b6001600160a01b0316336001600160a01b031614611138576040805162461bcd60e51b815260206004820152601460248201527337b7363c9030b2323932b9b9903ab83230ba32b960611b604482015290519081900360640190fd5b61117161116c83836040518060400160405280600e81526020016d20b2323932b9b9aab83230ba32b960911b815250611d2f565b611e5c565b6110d08282611e80565b60009081526002602081905260409091208054600182015492820154600383015460048401546005850154600686015460078701546008909701546001600160a01b03871699600160a01b90970460ff16989795969495939492939192565b604080516000808252602082018181528284018281526060840190945290926107589291908461121a565b60608152602001906001900390816112055790505b5061122486611a15565b611fbb565b7f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b600754600160a81b900460ff1681565b6000610edf85858561122486611a15565b60006108c983836120b7565b6000546001600160a01b031681565b61129161171e565b600754600160a81b900460ff16156112f0576040805162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2070726f64756374696f6e206d6f6465000000000000604482015290519081900360640190fd5b60078054600161ff0160a01b031916600160a81b1790556040805173183faff6997c98a812a3b98748fc80241d08f312815290517f83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c9181900360200190a1565b600061135a61213a565b82604051602001808061190160f01b81525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050919050565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a082111561144e5760405162461bcd60e51b8152600401808060200182810382526022815260200180613f716022913960400191505060405180910390fd5b8360ff16601b148061146357508360ff16601c145b61149e5760405162461bcd60e51b8152600401808060200182810382526022815260200180613f936022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156114fa573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610edf576040805162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b6000848152600260205260408120600161157c8783611623565b600781111561158757fe5b146115a45760405162461bcd60e51b815260040161070f90613d2f565b60006115b48683600101546120b7565b905060006115c488888885612204565b905087876001600160a01b03167fdd14487524f5e7c93029ad24503aa74e185d049a8c975136786a20eacc5e1b4e88858986600101548760000154604051611610959493929190613eb7565b60405180910390a3509695505050505050565b8054600090600160b01b900460ff161561163f5750600761084d565b8154600160a81b900460ff16156116585750600661084d565b60028201546116795760405162461bcd60e51b815260040161070f90613c1d565b428260020154111561168d5750600061084d565b42826003015411156116a15750600161084d565b6116ab83836122bc565b156116f8578154600160b81b900460ff166116c85750600461084d565b42826004015411156116dc5750600361084d565b42826005015411156116f05750600461084d565b50600561084d565b50600292915050565b3d604051818101604052816000823e821561171a578181f35b8181fd5b6117266108d0565b6001600160a01b0316336001600160a01b03161461177d576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b565b60008060006117918460600151612365565b9150915061179f33836125fc565b6117bb5760405162461bcd60e51b815260040161070f90613a9d565b60008460400151116117df5760405162461bcd60e51b815260040161070f90613d00565b60008460e00151116118035760405162461bcd60e51b815260040161070f90613c4a565b612710846080015111156118295760405162461bcd60e51b815260040161070f90613a66565b6113888460a001511015801561184557506127108460a0015111155b6118615760405162461bcd60e51b815260040161070f90613aeb565b60055460405163d9330e6360e01b81526000916001600160a01b03169063d9330e6390611892908690600401613910565b60206040518083038186803b1580156118aa57600080fd5b505afa1580156118be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e2919061353e565b90506000600460009054906101000a90046001600160a01b03166001600160a01b031663ec31db0c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561193457600080fd5b505afa158015611948573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196c919061353e565b9050600080611983338d8d8d8d8b8b8f8c8c612607565b91509150817f72ae4a121488f73dfdb9308e9ecdcd1fc31e5f6c553b6f1fb65650d04406e6ec338e8e8e8e8760000160149054906101000a900460ff166119c9896127ad565b6119d28a6127cf565b8a600101548b600601548c600701548d600801546040516119fe9c9b9a999897969594939291906137c3565b60405180910390a2509a9950505050505050505050565b805160209091012090565b60007f00000000000000000000000000000000000000000000000000000000000000003086868686604051602001611a5d96959493929190613e2c565b60408051601f19818403018152919052805160209091012095945050505050565b600754600160b01b900460ff1615611aab57333014611a9957fe5b6007805460ff60b01b1916905561177d565b61177d61171e565b7f4b8f4e528b6d075c6c9d025e58db64e36b460c1516341b1ab7339b4c6d5bcb8a8282604051611ae49291906138e0565b60405180910390a160005b8251811015611b4457600160096000858481518110611b0a57fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101611aef565b5060005b8151811015610dd157600060096000848481518110611b6357fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101611b48565b611ba561171e565b600082359050600073183faff6997c98a812a3b98748fc80241d08f3126001600160a01b0316636221a54b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611bfa57600080fd5b505afa158015611c0e573d6000803e3d6000fd5b505050506040513d6020811015611c2457600080fd5b505160408051808201825242830180825282516020601f89018190048102820181019094528781529394509290918281019190889088908190840183828082843760009201829052509390945250506001600160e01b03198616815260086020908152604090912083518155838201518051919350611caa926001850192910190612d7d565b509050507fed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b68382878760405180856001600160e01b0319168152602001848152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f191690920182900397509095505050505050a15050505050565b600080826040516020018080602001828103825283818151815260200191508051906020019080838360005b83811015611d73578181015183820152602001611d5b565b50505050905090810190601f168015611da05780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012090506000805b8651811015611e0857868181518110611dd657fe5b6020026020010151831415611e0057858181518110611df157fe5b60200260200101519150611e08565b600101611dc1565b506001600160a01b038116611e53576040805162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b604482015290519081900360640190fd5b95945050505050565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b611eaf82826040518060400160405280600c81526020016b4674736f526567697374727960a01b815250611d2f565b600660006101000a8154816001600160a01b0302191690836001600160a01b03160217905550611f0382826040518060400160405280600b81526020016a233a39b7a6b0b730b3b2b960a91b815250611d2f565b600460006101000a8154816001600160a01b0302191690836001600160a01b03160217905550611f52828260405180604001604052806006815260200165537570706c7960d01b815250611d2f565b600560006101000a8154816001600160a01b0302191690836001600160a01b031602179055506000611fb083836040518060400160405280601381526020017223b7bb32b93730b731b2ab37ba32a837bbb2b960691b815250611d2f565b9050610dd1816127eb565b6000611fc985858585611a20565b6000818152600260205260409020805491925090600160a81b900460ff16156120045760405162461bcd60e51b815260040161070f90613df5565b80546001600160a01b0316331461202d5760405162461bcd60e51b815260040161070f90613b59565b60006120398383611623565b9050600481600781111561204957fe5b146120665760405162461bcd60e51b815260040161070f90613dbe565b815460ff60a81b1916600160a81b17825561208287878761280d565b60405183907f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f90600090a25050949350505050565b60008054604051631257fcdb60e31b81526001600160a01b03909116906392bfe6d8906120ea90869086906004016138c7565b60206040518083038186803b15801561210257600080fd5b505afa158015612116573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c9919061353e565b60007f0000000000000000000000000000000000000000000000000000000000000000612165612945565b141561219257507f0000000000000000000000000000000000000000000000000000000000000000610658565b6121fd7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000612949565b9050610658565b60008481526003602090815260408083206001600160a01b0387168452600281019092529091205460ff161561224c5760405162461bcd60e51b815260040161070f90613d93565b6001600160a01b03841660009081526002820160205260408120805460ff1916600117905560ff168360ff16141561228957805482018155610ee2565b60ff8316600114156122a45760018101805483019055610ee2565b60405162461bcd60e51b815260040161070f90613d5c565b6000828152600360205260408120600883015460068401546122e0916127106129ab565b815460018301540110156123025750508054600160a01b900460ff161561084d565b80546001820154600785015461231d929091016127106129ab565b8354600160a01b900460ff1661233457815461233a565b81600101545b116123535750508054600160a01b900460ff161561084d565b505054600160a01b900460ff16919050565b6000806000600460009054906101000a90046001600160a01b03166001600160a01b031663e7c830d46040518163ffffffff1660e01b815260040160206040518083038186803b1580156123b857600080fd5b505afa1580156123cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123f0919061353e565b6004805460405163e5399da360e01b81529293506000926001600160a01b039091169163e5399da39161242591869101613910565b60606040518083038186803b15801561243d57600080fd5b505afa158015612451573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061247591906134d1565b6000805460408051635397625b60e11b8152905193945043936001600160a01b039092169163a72ec4b691600480820192602092909190829003018186803b1580156124c057600080fd5b505afa1580156124d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124f8919061353e565b604084015190915042035b60008511801561251257508781105b156125c9576004805460405163e5399da360e01b81526000926001600160a01b039092169163e5399da39161254d916000198b019101613910565b60606040518083038186803b15801561256557600080fd5b505afa158015612579573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061259d91906134d1565b905082816020015110156125b157506125c9565b60408101516000199096019590945042039050612503565b602084015160008185036125db612ab7565b816125e257fe5b604090970151960690940397509395505050505050915091565b60006108c983610e7d565b60008089518b511461262b5760405162461bcd60e51b815260040161070f90613959565b88518b511461264c5760405162461bcd60e51b815260040161070f90613959565b600061265d8c8c8c6110828d611a15565b60008181526002602081905260409091209081015491925090156126935760405162461bcd60e51b815260040161070f906139dd565b8d8160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555088816001018190555086600001518160000160146101000a81548160ff0219169083151502179055508660200151420181600201819055508660400151816002015401816003018190555084888260030154031061272c5760405162461bcd60e51b815260040161070f90613ba6565b8c511561277e57805460ff60b81b1916600160b81b17815560c08701516003820154016004820181905560015411156127685760015460048201555b60e0870151600482015401600582018190556001555b6080870151600682015560a087015160078201556008810186905590925090509a509a98505050505050505050565b6127b5612e09565b6002820154815260038201548160015b6020020152919050565b6127d7612e09565b6004820154815260058201548160016127c5565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000805b835181101561283f5783818151811061282657fe5b6020026020010151820191508080600101915050612811565b5080341461285f5760405162461bcd60e51b815260040161070f90613c81565b60005b845181101561293e5760008086838151811061287a57fe5b60200260200101516001600160a01b031686848151811061289757fe5b60200260200101518685815181106128ab57fe5b60200260200101516040516128c09190613793565b60006040518083038185875af1925050503d80600081146128fd576040519150601f19603f3d011682016040523d82523d6000602084013e612902565b606091505b5091509150816129345780511561291c5780518082602001fd5b60405162461bcd60e51b815260040161070f90613b22565b5050600101612862565b5050505050565b4690565b6000838383612956612945565b3060405160200180868152602001858152602001848152602001838152602001826001600160a01b03168152602001955050505050506040516020818303038152906040528051906020012090509392505050565b60008082116129f4576040805162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b604482015290519081900360640190fd5b83612a01575060006108c9565b83830283858281612a0e57fe5b041415612a2757828181612a1e57fe5b049150506108c9565b6000838681612a3257fe5b0490506000848781612a4057fe5b0690506000858781612a4e57fe5b0490506000868881612a5c57fe5b069050612aaa612a7688612a708685612c1c565b90612c75565b612aa4612a838686612c1c565b612aa4612a908987612c1c565b612aa48d612a9e8c8b612c1c565b90612c1c565b90612cdc565b9998505050505050505050565b600080600090506000600660009054906101000a90046001600160a01b03166001600160a01b031663a40060ba6040518163ffffffff1660e01b815260040160006040518083038186803b158015612b0e57600080fd5b505afa158015612b22573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612b4a919081019061332c565b905060005b8151811015612be857818181518110612b6457fe5b60200260200101516001600160a01b031663d89601fd6040518163ffffffff1660e01b815260040160206040518083038186803b158015612ba457600080fd5b505afa158015612bb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bdc919061353e565b90920191600101612b4f565b504282604051602001612bfc929190613ea9565b6040516020818303038152906040528051906020012060001c9250505090565b600082612c2b5750600061084d565b82820282848281612c3857fe5b04146108c95760405162461bcd60e51b8152600401808060200182810382526021815260200180613fb56021913960400191505060405180910390fd5b6000808211612ccb576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381612cd457fe5b049392505050565b6000828201838110156108c9576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b50805460018160011615610100020316600290046000825580601f10612d5c5750612d7a565b601f016020900490600052602060002090810190612d7a9190612e27565b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282612db35760008555612df9565b82601f10612dcc57805160ff1916838001178555612df9565b82800160010185558215612df9579182015b82811115612df9578251825591602001919060010190612dde565b50612e05929150612e27565b5090565b60405180604001604052806002906020820280368337509192915050565b5b80821115612e055760008155600101612e28565b600067ffffffffffffffff831115612e5057fe5b612e63601f8401601f1916602001613eed565b9050828152838383011115612e7757600080fd5b828260208301376000602084830101529392505050565b600082601f830112612e9e578081fd5b81356020612eb3612eae83613f11565b613eed565b8281528181019085830183850287018401881015612ecf578586fd5b855b85811015612ef6578135612ee481613f5b565b84529284019290840190600101612ed1565b5090979650505050505050565b600082601f830112612f13578081fd5b81356020612f23612eae83613f11565b82815281810190858301855b85811015612ef6578135880189603f820112612f49578788fd5b612f5a8a8783013560408401612e3c565b8552509284019290840190600101612f2f565b600082601f830112612f7d578081fd5b81356020612f8d612eae83613f11565b8281528181019085830183850287018401881015612fa9578586fd5b855b85811015612ef657813584529284019290840190600101612fab565b8035801515811461075b57600080fd5b600082601f830112612fe7578081fd5b6108c983833560208501612e3c565b803560ff8116811461075b57600080fd5b600060208284031215613018578081fd5b81356108c981613f5b565b60008060408385031215613035578081fd5b823561304081613f5b565b946020939093013593505050565b60008060408385031215613060578182fd5b823567ffffffffffffffff80821115613077578384fd5b61308386838701612e8e565b93506020850135915080821115613098578283fd5b506130a585828601612e8e565b9150509250929050565b600080600080608085870312156130c4578182fd5b843567ffffffffffffffff808211156130db578384fd5b6130e788838901612e8e565b955060208701359150808211156130fc578384fd5b61310888838901612f6d565b9450604087013591508082111561311d578384fd5b61312988838901612f03565b9350606087013591508082111561313e578283fd5b5061314b87828801612fd7565b91505092959194509250565b6000806000806000858703610180811215613170578384fd5b863567ffffffffffffffff80821115613187578586fd5b6131938a838b01612e8e565b975060208901359150808211156131a8578586fd5b6131b48a838b01612f6d565b965060408901359150808211156131c9578586fd5b6131d58a838b01612f03565b955060608901359150808211156131ea578384fd5b6131f68a838b01612fd7565b9450610100915081607f198401121561320d578384fd5b6040519250818301838110828211171561322357fe5b6040525061323360808901612fc7565b825260a0880135602083015260c0880135604083015260e088013560608301528088013560808301525061012087013560a082015261014087013560c082015261016087013560e0820152809150509295509295909350565b6000806040838503121561329e578182fd5b823567ffffffffffffffff808211156132b5578384fd5b818501915085601f8301126132c8578384fd5b813560206132d8612eae83613f11565b82815281810190858301838502870184018b10156132f4578889fd5b8896505b848710156133165780358352600196909601959183019183016132f8565b5096505086013592505080821115613098578283fd5b6000602080838503121561333e578182fd5b825167ffffffffffffffff811115613354578283fd5b8301601f81018513613364578283fd5b8051613372612eae82613f11565b818152838101908385018584028501860189101561338e578687fd5b8694505b838510156133b95780516133a581613f5b565b835260019490940193918501918501613392565b50979650505050505050565b6000602082840312156133d6578081fd5b81356001600160e01b0319811681146108c9578182fd5b6000602082840312156133fe578081fd5b813567ffffffffffffffff811115613414578182fd5b610ee284828501612fd7565b60008082840360e0811215613433578283fd5b833567ffffffffffffffff8082111561344a578485fd5b61345687838801612fd7565b945060c0601f1984011215613469578384fd5b604051925060c083019150828210818311171561348257fe5b5060405261349260208501612fc7565b815260408401356020820152606084013560408201526080840135606082015260a0840135608082015260c084013560a0820152809150509250929050565b6000606082840312156134e2578081fd5b6040516060810181811067ffffffffffffffff821117156134ff57fe5b80604052508251815260208301516020820152604083015160408201528091505092915050565b600060208284031215613537578081fd5b5035919050565b60006020828403121561354f578081fd5b5051919050565b60008060408385031215613568578182fd5b82359150602083013561357a81613f5b565b809150509250929050565b60008060408385031215613597578182fd5b823591506135a760208401612ff6565b90509250929050565b600080600080606085870312156135c5578182fd5b843593506135d560208601612ff6565b9250604085013567ffffffffffffffff808211156135f1578384fd5b818701915087601f830112613604578384fd5b813581811115613612578485fd5b886020828501011115613623578485fd5b95989497505060200194505050565b600080600080600060a08688031215613649578283fd5b8535945061365960208701612ff6565b935061366760408701612ff6565b94979396509394606081013594506080013592915050565b6000815180845260208085019450808401835b838110156136b75781516001600160a01b031687529582019590820190600101613692565b509495945050505050565b6000815180845260208085018081965082840281019150828601855b858110156137085782840389526136f6848351613767565b988501989350908401906001016136de565b5091979650505050505050565b8060005b6002811015610cd2578151845260209384019390910190600101613719565b6000815180845260208085019450808401835b838110156136b75781518752958201959082019060010161374b565b6000815180845261377f816020860160208601613f2f565b601f01601f19169290920160200192915050565b600082516137a5818460208701613f2f565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b038d1681526101c0602082018190526000906137e88382018f61367f565b905082810360408401526137fc818e613738565b90508281036060840152613810818d6136c2565b90508281036080840152613824818c613767565b91505088151560a083015261383c60c0830189613715565b61384a610100830188613715565b856101408301528461016083015283610180830152826101a08301529d9c50505050505050505050505050565b6001600160a01b039a909a168a5297151560208a015260408901969096526060880194909452608087019290925260a086015260c085015260e08401526101008301526101208201526101400190565b6001600160a01b03929092168252602082015260400190565b6000604082526138f3604083018561367f565b8281036020840152611e53818561367f565b901515815260200190565b90815260200190565b928352602083019190915260ff16604082015260600190565b602081016008831061394057fe5b91905290565b6000602082526108c96020830184613767565b60208082526017908201527f696e76616c69642070726f706f73616c206c656e677468000000000000000000604082015260600190565b6020808252602d908201527f70726f706f73616c2063616e206f6e6c792062652063616e63656c656420627960408201526c1034ba3990383937b837b9b2b960991b606082015260800190565b60208082526017908201527f70726f706f73616c20616c726561647920657869737473000000000000000000604082015260600190565b60208082526032908201527f70726f706f73616c2063616e206f6e6c792062652063616e63656c6564206265604082015271666f726520766f74696e672073746172747360701b606082015260800190565b6020808252601e908201527f696e76616c6964207468726573686f6c64436f6e646974696f6e424950530000604082015260600190565b6020808252602e908201527f7375626d6974746572206973206e6f7420656c696769626c6520746f2073756260408201526d1b5a5d0818481c1c9bdc1bdcd85b60921b606082015260800190565b6020808252601d908201527f696e76616c6964206d616a6f72697479436f6e646974696f6e42495053000000604082015260600190565b6020808252601d908201527f63616c6c20726576657274656420776974686f7574206d657373616765000000604082015260600190565b6020808252602d908201527f70726f706f73616c2063616e206f6e6c7920626520657865637574656420627960408201526c1034ba3990383937b837b9b2b960991b606082015260800190565b60208082526027908201527f766f746520706f77657220626c6f636b20697320746f6f2066617220696e20746040820152661a19481c185cdd60ca1b606082015260800190565b602080825260169082015275696e76616c696420766f7465207369676e617475726560501b604082015260600190565b6020808252601390820152721d5b9adb9bdddb881c1c9bdc1bdcd85b081a59606a1b604082015260600190565b60208082526018908201527f657865637574696f6e20706572696f6420746f6f206c6f770000000000000000604082015260600190565b60208082526028908201527f73756d206f66205f76616c75657320646f6573206e6f7420657175616c73206d60408201526773672e76616c756560c01b606082015260800190565b6020808252601c908201527f70726f706f73616c20697320616c72656164792063616e63656c656400000000604082015260600190565b602080825260159082015274766f74696e6720706572696f6420746f6f206c6f7760581b604082015260600190565b60208082526013908201527270726f706f73616c206e6f742061637469766560681b604082015260600190565b6020808252601f908201527f696e76616c69642076616c756520666f7220656e756d20566f74655479706500604082015260600190565b6020808252601190820152701d9bdd1948185b1c9958591e4818d85cdd607a1b604082015260600190565b6020808252601f908201527f70726f706f73616c206e6f7420696e20657865637574696f6e20737461746500604082015260600190565b60208082526019908201527f70726f706f73616c20616c726561647920657865637574656400000000000000604082015260600190565b8681526001600160a01b038616602082015260c060408201819052600090613e569083018761367f565b8281036060840152613e688187613738565b90508281036080840152613e7c81866136c2565b9150508260a0830152979650505050505050565b600083825260406020830152610ee26040830184613767565b918252602082015260400190565b600060ff8716825285602083015260a06040830152613ed960a0830186613767565b606083019490945250608001529392505050565b60405181810167ffffffffffffffff81118282101715613f0957fe5b604052919050565b600067ffffffffffffffff821115613f2557fe5b5060209081020190565b60005b83811015613f4a578181015183820152602001613f32565b83811115610cd25750506000910152565b6001600160a01b0381168114612d7a57600080fdfe45434453413a20696e76616c6964207369676e6174757265202773272076616c756545434453413a20696e76616c6964207369676e6174757265202776272076616c7565536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212204d6c4e0ca1ccbd15c47930aca722f49258f5819abd21785313be560f5f94e98264736f6c63430007060033",
992
1063
  "linkReferences": {},
993
1064
  "deployedLinkReferences": {}
994
1065
  }