@flarenetwork/flare-periphery-contract-artifacts 0.0.3 → 0.0.4

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 (210) hide show
  1. package/dist/coston/abis.coston.d.ts.map +1 -1
  2. package/dist/coston/abis.coston.js +14 -4
  3. package/dist/coston/abis.coston.js.map +1 -1
  4. package/dist/coston/artifacts/contracts/assetRegistry/implementation/FlareAssetRegistry.sol/FlareAssetRegistry.json +525 -0
  5. package/dist/coston/artifacts/contracts/assetRegistry/implementation/WNatRegistryProvider.sol/WNatRegistryProvider.json +113 -0
  6. package/dist/coston/artifacts/contracts/assetRegistry/interface/IIERC20WithMetadata.sol/IIERC20WithMetadata.json +233 -0
  7. package/dist/coston/artifacts/contracts/assetRegistry/interface/IIFlareAssetRegistry.sol/IIFlareAssetRegistry.json +316 -0
  8. package/dist/coston/artifacts/contracts/assetRegistry/interface/IIFlareAssetRegistryProvider.sol/IIFlareAssetRegistryProvider.json +66 -0
  9. package/dist/coston/artifacts/contracts/assetRegistry/lib/StandardAttributes.sol/StandardAttributes.json +10 -0
  10. package/dist/coston/artifacts/contracts/claiming/implementation/ClaimSetupManager.sol/ClaimSetupManager.json +2 -2
  11. package/dist/coston/artifacts/contracts/claiming/implementation/DelegationAccount.sol/DelegationAccount.json +2 -2
  12. package/dist/coston/artifacts/contracts/ftso/implementation/Ftso.sol/Ftso.json +2 -2
  13. package/dist/coston/artifacts/contracts/ftso/implementation/FtsoManager.sol/FtsoManager.json +3 -3
  14. package/dist/coston/artifacts/contracts/ftso/lib/FtsoEpoch.sol/FtsoEpoch.json +2 -2
  15. package/dist/coston/artifacts/contracts/ftso/lib/FtsoManagement.sol/FtsoManagement.json +2 -2
  16. package/dist/coston/artifacts/contracts/ftso/lib/FtsoVote.sol/FtsoVote.json +2 -2
  17. package/dist/coston/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockFtsoRegistry.json +2 -2
  18. package/dist/coston/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockPriceSubmitter.json +2 -2
  19. package/dist/coston/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockVoterWhitelister.json +40 -2
  20. package/dist/coston/artifacts/contracts/genesis/implementation/FlareDaemon.sol/FlareDaemon.json +2 -2
  21. package/dist/coston/artifacts/contracts/governance/implementation/InflationAllocation.sol/InflationAllocation.json +2 -2
  22. package/dist/coston/artifacts/contracts/governance/implementation/PollingFoundation.sol/PollingFoundation.json +2 -2
  23. package/dist/coston/artifacts/contracts/governance/implementation/PollingFtso.sol/PollingFtso.json +1187 -0
  24. package/dist/coston/artifacts/contracts/inflation/implementation/Inflation.sol/Inflation.json +2 -2
  25. package/dist/coston/artifacts/contracts/inflation/lib/InflationAnnum.sol/InflationAnnum.json +2 -2
  26. package/dist/coston/artifacts/contracts/inflation/lib/InflationAnnums.sol/InflationAnnums.json +2 -2
  27. package/dist/coston/artifacts/contracts/inflation/lib/RewardService.sol/RewardService.json +2 -2
  28. package/dist/coston/artifacts/contracts/inflation/lib/RewardServices.sol/RewardServices.json +2 -2
  29. package/dist/coston/artifacts/contracts/token/implementation/CleanupBlockNumberManager.sol/CleanupBlockNumberManager.json +172 -37
  30. package/dist/coston/artifacts/contracts/token/implementation/Delegatable.sol/Delegatable.json +2 -2
  31. package/dist/coston/artifacts/contracts/token/implementation/GovernanceVotePower.sol/GovernanceVotePower.json +2 -2
  32. package/dist/coston/artifacts/contracts/token/implementation/VPContract.sol/VPContract.json +2 -2
  33. package/dist/coston/artifacts/contracts/token/implementation/VPToken.sol/VPToken.json +2 -2
  34. package/dist/coston/artifacts/contracts/token/implementation/WNat.sol/WNat.json +2 -2
  35. package/dist/coston/artifacts/contracts/token/lib/DelegationHistory.sol/DelegationHistory.json +2 -2
  36. package/dist/coston/artifacts/contracts/token/lib/ExplicitDelegation.sol/ExplicitDelegation.json +2 -2
  37. package/dist/coston/artifacts/contracts/token/lib/PercentageDelegation.sol/PercentageDelegation.json +2 -2
  38. package/dist/coston/artifacts/contracts/tokenPools/implementation/FtsoRewardManager.sol/FtsoRewardManager.json +523 -138
  39. package/dist/coston/artifacts/contracts/tokenPools/interface/IIFtsoRewardManager.sol/IIFtsoRewardManager.json +322 -0
  40. package/dist/coston/artifacts/contracts/utils/implementation/FtsoV2Upgrader.sol/FtsoV2Upgrader.json +2 -2
  41. package/dist/coston/artifacts/contracts/utils/implementation/GovernedAndFlareDaemonized.sol/GovernedAndFlareDaemonized.json +2 -2
  42. package/dist/coston/artifacts/contracts/utils/implementation/GovernedAndFlareDaemonizedV2.sol/GovernedAndFlareDaemonizedV2.json +2 -2
  43. package/dist/coston/artifacts/contracts/utils/implementation/SafePct.sol/SafePct.json +2 -2
  44. package/dist/coston/artifacts/contracts/utils/implementation/VoterWhitelister.sol/VoterWhitelister.json +276 -41
  45. package/dist/coston/artifacts/contracts/utils/interface/IIVoterWhitelister.sol/IIVoterWhitelister.json +72 -0
  46. package/dist/coston/deploys/contractAddresses.d.ts +5 -0
  47. package/dist/coston/deploys/contractAddresses.d.ts.map +1 -1
  48. package/dist/coston/deploys/contractAddresses.js +8 -3
  49. package/dist/coston/deploys/contractAddresses.js.map +1 -1
  50. package/dist/coston/deploys/coston.json +28 -3
  51. package/dist/coston2/abis.coston2.d.ts.map +1 -1
  52. package/dist/coston2/abis.coston2.js +2 -0
  53. package/dist/coston2/abis.coston2.js.map +1 -1
  54. package/dist/coston2/artifacts/contracts/claiming/implementation/ClaimSetupManager.sol/ClaimSetupManager.json +2 -2
  55. package/dist/coston2/artifacts/contracts/claiming/implementation/DelegationAccount.sol/DelegationAccount.json +2 -2
  56. package/dist/coston2/artifacts/contracts/ftso/implementation/Ftso.sol/Ftso.json +2 -2
  57. package/dist/coston2/artifacts/contracts/ftso/implementation/FtsoManager.sol/FtsoManager.json +2 -2
  58. package/dist/coston2/artifacts/contracts/ftso/lib/FtsoEpoch.sol/FtsoEpoch.json +2 -2
  59. package/dist/coston2/artifacts/contracts/ftso/lib/FtsoManagement.sol/FtsoManagement.json +2 -2
  60. package/dist/coston2/artifacts/contracts/ftso/lib/FtsoVote.sol/FtsoVote.json +2 -2
  61. package/dist/coston2/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockFtsoRegistry.json +2 -2
  62. package/dist/coston2/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockPriceSubmitter.json +2 -2
  63. package/dist/coston2/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockVoterWhitelister.json +40 -2
  64. package/dist/coston2/artifacts/contracts/genesis/implementation/FlareDaemon.sol/FlareDaemon.json +2 -2
  65. package/dist/coston2/artifacts/contracts/genesis/implementation/InitialAirdrop.sol/InitialAirdrop.json +2 -2
  66. package/dist/coston2/artifacts/contracts/governance/implementation/PollingFoundation.sol/PollingFoundation.json +2 -2
  67. package/dist/coston2/artifacts/contracts/governance/implementation/PollingFtso.sol/PollingFtso.json +1187 -0
  68. package/dist/coston2/artifacts/contracts/inflation/implementation/Inflation.sol/Inflation.json +2 -2
  69. package/dist/coston2/artifacts/contracts/inflation/implementation/InflationAllocation.sol/InflationAllocation.json +2 -2
  70. package/dist/coston2/artifacts/contracts/inflation/lib/InflationAnnum.sol/InflationAnnum.json +2 -2
  71. package/dist/coston2/artifacts/contracts/inflation/lib/InflationAnnums.sol/InflationAnnums.json +2 -2
  72. package/dist/coston2/artifacts/contracts/inflation/lib/RewardService.sol/RewardService.json +2 -2
  73. package/dist/coston2/artifacts/contracts/inflation/lib/RewardServices.sol/RewardServices.json +2 -2
  74. package/dist/coston2/artifacts/contracts/token/implementation/Delegatable.sol/Delegatable.json +2 -2
  75. package/dist/coston2/artifacts/contracts/token/implementation/GovernanceVotePower.sol/GovernanceVotePower.json +2 -2
  76. package/dist/coston2/artifacts/contracts/token/implementation/VPContract.sol/VPContract.json +2 -2
  77. package/dist/coston2/artifacts/contracts/token/implementation/VPToken.sol/VPToken.json +2 -2
  78. package/dist/coston2/artifacts/contracts/token/implementation/WNat.sol/WNat.json +2 -2
  79. package/dist/coston2/artifacts/contracts/token/lib/DelegationHistory.sol/DelegationHistory.json +2 -2
  80. package/dist/coston2/artifacts/contracts/token/lib/ExplicitDelegation.sol/ExplicitDelegation.json +2 -2
  81. package/dist/coston2/artifacts/contracts/token/lib/PercentageDelegation.sol/PercentageDelegation.json +2 -2
  82. package/dist/coston2/artifacts/contracts/tokenPools/implementation/AttestationProviderRewardManager.sol/AttestationProviderRewardManager.json +2 -2
  83. package/dist/coston2/artifacts/contracts/tokenPools/implementation/DistributionToDelegators.sol/DistributionToDelegators.json +2 -2
  84. package/dist/coston2/artifacts/contracts/tokenPools/implementation/Escrow.sol/Escrow.json +2 -2
  85. package/dist/coston2/artifacts/contracts/tokenPools/implementation/FtsoRewardManager.sol/FtsoRewardManager.json +2 -2
  86. package/dist/coston2/artifacts/contracts/tokenPools/implementation/IncentivePool.sol/IncentivePool.json +2 -2
  87. package/dist/coston2/artifacts/contracts/tokenPools/implementation/IncentivePoolAllocation.sol/IncentivePoolAllocation.json +2 -2
  88. package/dist/coston2/artifacts/contracts/tokenPools/implementation/ValidatorRewardManager.sol/ValidatorRewardManager.json +2 -2
  89. package/dist/coston2/artifacts/contracts/tokenPools/lib/IncentivePoolAnnum.sol/IncentivePoolAnnum.json +2 -2
  90. package/dist/coston2/artifacts/contracts/tokenPools/lib/IncentivePoolAnnums.sol/IncentivePoolAnnums.json +2 -2
  91. package/dist/coston2/artifacts/contracts/tokenPools/lib/IncentivePoolRewardService.sol/IncentivePoolRewardService.json +2 -2
  92. package/dist/coston2/artifacts/contracts/tokenPools/lib/IncentivePoolRewardServices.sol/IncentivePoolRewardServices.json +2 -2
  93. package/dist/coston2/artifacts/contracts/utils/implementation/FundDistributor.sol/FundDistributor.json +2 -2
  94. package/dist/coston2/artifacts/contracts/utils/implementation/GovernedAndFlareDaemonized.sol/GovernedAndFlareDaemonized.json +2 -2
  95. package/dist/coston2/artifacts/contracts/utils/implementation/SafePct.sol/SafePct.json +2 -2
  96. package/dist/coston2/artifacts/contracts/utils/implementation/VoterWhitelister.sol/VoterWhitelister.json +126 -3
  97. package/dist/coston2/artifacts/contracts/utils/interface/IIVoterWhitelister.sol/IIVoterWhitelister.json +72 -0
  98. package/dist/coston2/deploys/contractAddresses.d.ts +1 -0
  99. package/dist/coston2/deploys/contractAddresses.d.ts.map +1 -1
  100. package/dist/coston2/deploys/contractAddresses.js +2 -1
  101. package/dist/coston2/deploys/contractAddresses.js.map +1 -1
  102. package/dist/coston2/deploys/coston2.json +6 -1
  103. package/dist/flare/abis.flare.d.ts.map +1 -1
  104. package/dist/flare/abis.flare.js +2 -0
  105. package/dist/flare/abis.flare.js.map +1 -1
  106. package/dist/flare/artifacts/contracts/claiming/implementation/ClaimSetupManager.sol/ClaimSetupManager.json +2 -2
  107. package/dist/flare/artifacts/contracts/claiming/implementation/DelegationAccount.sol/DelegationAccount.json +2 -2
  108. package/dist/flare/artifacts/contracts/ftso/implementation/Ftso.sol/Ftso.json +2 -2
  109. package/dist/flare/artifacts/contracts/ftso/implementation/FtsoManager.sol/FtsoManager.json +2 -2
  110. package/dist/flare/artifacts/contracts/ftso/lib/FtsoEpoch.sol/FtsoEpoch.json +2 -2
  111. package/dist/flare/artifacts/contracts/ftso/lib/FtsoManagement.sol/FtsoManagement.json +2 -2
  112. package/dist/flare/artifacts/contracts/ftso/lib/FtsoVote.sol/FtsoVote.json +2 -2
  113. package/dist/flare/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockFtsoRegistry.json +2 -2
  114. package/dist/flare/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockPriceSubmitter.json +2 -2
  115. package/dist/flare/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockVoterWhitelister.json +40 -2
  116. package/dist/flare/artifacts/contracts/genesis/implementation/FlareDaemon.sol/FlareDaemon.json +2 -2
  117. package/dist/flare/artifacts/contracts/genesis/implementation/InitialAirdrop.sol/InitialAirdrop.json +2 -2
  118. package/dist/flare/artifacts/contracts/governance/implementation/PollingFoundation.sol/PollingFoundation.json +2 -2
  119. package/dist/flare/artifacts/contracts/governance/implementation/PollingFtso.sol/PollingFtso.json +1187 -0
  120. package/dist/flare/artifacts/contracts/inflation/implementation/Inflation.sol/Inflation.json +2 -2
  121. package/dist/flare/artifacts/contracts/inflation/implementation/InflationAllocation.sol/InflationAllocation.json +2 -2
  122. package/dist/flare/artifacts/contracts/inflation/lib/InflationAnnum.sol/InflationAnnum.json +2 -2
  123. package/dist/flare/artifacts/contracts/inflation/lib/InflationAnnums.sol/InflationAnnums.json +2 -2
  124. package/dist/flare/artifacts/contracts/inflation/lib/RewardService.sol/RewardService.json +2 -2
  125. package/dist/flare/artifacts/contracts/inflation/lib/RewardServices.sol/RewardServices.json +2 -2
  126. package/dist/flare/artifacts/contracts/token/implementation/Delegatable.sol/Delegatable.json +2 -2
  127. package/dist/flare/artifacts/contracts/token/implementation/GovernanceVotePower.sol/GovernanceVotePower.json +2 -2
  128. package/dist/flare/artifacts/contracts/token/implementation/VPContract.sol/VPContract.json +2 -2
  129. package/dist/flare/artifacts/contracts/token/implementation/VPToken.sol/VPToken.json +2 -2
  130. package/dist/flare/artifacts/contracts/token/implementation/WNat.sol/WNat.json +2 -2
  131. package/dist/flare/artifacts/contracts/token/lib/DelegationHistory.sol/DelegationHistory.json +2 -2
  132. package/dist/flare/artifacts/contracts/token/lib/ExplicitDelegation.sol/ExplicitDelegation.json +2 -2
  133. package/dist/flare/artifacts/contracts/token/lib/PercentageDelegation.sol/PercentageDelegation.json +2 -2
  134. package/dist/flare/artifacts/contracts/tokenPools/implementation/AttestationProviderRewardManager.sol/AttestationProviderRewardManager.json +2 -2
  135. package/dist/flare/artifacts/contracts/tokenPools/implementation/DistributionToDelegators.sol/DistributionToDelegators.json +2 -2
  136. package/dist/flare/artifacts/contracts/tokenPools/implementation/Escrow.sol/Escrow.json +2 -2
  137. package/dist/flare/artifacts/contracts/tokenPools/implementation/FtsoRewardManager.sol/FtsoRewardManager.json +2 -2
  138. package/dist/flare/artifacts/contracts/tokenPools/implementation/IncentivePool.sol/IncentivePool.json +2 -2
  139. package/dist/flare/artifacts/contracts/tokenPools/implementation/IncentivePoolAllocation.sol/IncentivePoolAllocation.json +2 -2
  140. package/dist/flare/artifacts/contracts/tokenPools/implementation/ValidatorRewardManager.sol/ValidatorRewardManager.json +2 -2
  141. package/dist/flare/artifacts/contracts/tokenPools/lib/IncentivePoolAnnum.sol/IncentivePoolAnnum.json +2 -2
  142. package/dist/flare/artifacts/contracts/tokenPools/lib/IncentivePoolAnnums.sol/IncentivePoolAnnums.json +2 -2
  143. package/dist/flare/artifacts/contracts/tokenPools/lib/IncentivePoolRewardService.sol/IncentivePoolRewardService.json +2 -2
  144. package/dist/flare/artifacts/contracts/tokenPools/lib/IncentivePoolRewardServices.sol/IncentivePoolRewardServices.json +2 -2
  145. package/dist/flare/artifacts/contracts/utils/implementation/FundDistributor.sol/FundDistributor.json +2 -2
  146. package/dist/flare/artifacts/contracts/utils/implementation/GovernedAndFlareDaemonized.sol/GovernedAndFlareDaemonized.json +2 -2
  147. package/dist/flare/artifacts/contracts/utils/implementation/SafePct.sol/SafePct.json +2 -2
  148. package/dist/flare/artifacts/contracts/utils/implementation/VoterWhitelister.sol/VoterWhitelister.json +126 -3
  149. package/dist/flare/artifacts/contracts/utils/interface/IIVoterWhitelister.sol/IIVoterWhitelister.json +72 -0
  150. package/dist/flare/deploys/contractAddresses.d.ts +2 -0
  151. package/dist/flare/deploys/contractAddresses.d.ts.map +1 -1
  152. package/dist/flare/deploys/contractAddresses.js +3 -1
  153. package/dist/flare/deploys/contractAddresses.js.map +1 -1
  154. package/dist/flare/deploys/flare.json +11 -1
  155. package/dist/package.json +1 -1
  156. package/dist/songbird/abis.songbird.d.ts.map +1 -1
  157. package/dist/songbird/abis.songbird.js +14 -4
  158. package/dist/songbird/abis.songbird.js.map +1 -1
  159. package/dist/songbird/artifacts/contracts/assetRegistry/implementation/FlareAssetRegistry.sol/FlareAssetRegistry.json +525 -0
  160. package/dist/songbird/artifacts/contracts/assetRegistry/implementation/WNatRegistryProvider.sol/WNatRegistryProvider.json +113 -0
  161. package/dist/songbird/artifacts/contracts/assetRegistry/interface/IIERC20WithMetadata.sol/IIERC20WithMetadata.json +233 -0
  162. package/dist/songbird/artifacts/contracts/assetRegistry/interface/IIFlareAssetRegistry.sol/IIFlareAssetRegistry.json +316 -0
  163. package/dist/songbird/artifacts/contracts/assetRegistry/interface/IIFlareAssetRegistryProvider.sol/IIFlareAssetRegistryProvider.json +66 -0
  164. package/dist/songbird/artifacts/contracts/assetRegistry/lib/StandardAttributes.sol/StandardAttributes.json +10 -0
  165. package/dist/songbird/artifacts/contracts/claiming/implementation/ClaimSetupManager.sol/ClaimSetupManager.json +2 -2
  166. package/dist/songbird/artifacts/contracts/claiming/implementation/DelegationAccount.sol/DelegationAccount.json +2 -2
  167. package/dist/songbird/artifacts/contracts/ftso/implementation/Ftso.sol/Ftso.json +2 -2
  168. package/dist/songbird/artifacts/contracts/ftso/implementation/FtsoManager.sol/FtsoManager.json +3 -3
  169. package/dist/songbird/artifacts/contracts/ftso/lib/FtsoEpoch.sol/FtsoEpoch.json +2 -2
  170. package/dist/songbird/artifacts/contracts/ftso/lib/FtsoManagement.sol/FtsoManagement.json +2 -2
  171. package/dist/songbird/artifacts/contracts/ftso/lib/FtsoVote.sol/FtsoVote.json +2 -2
  172. package/dist/songbird/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockFtsoRegistry.json +2 -2
  173. package/dist/songbird/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockPriceSubmitter.json +2 -2
  174. package/dist/songbird/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockVoterWhitelister.json +40 -2
  175. package/dist/songbird/artifacts/contracts/genesis/implementation/FlareDaemon.sol/FlareDaemon.json +2 -2
  176. package/dist/songbird/artifacts/contracts/governance/implementation/InflationAllocation.sol/InflationAllocation.json +2 -2
  177. package/dist/songbird/artifacts/contracts/governance/implementation/PollingFoundation.sol/PollingFoundation.json +2 -2
  178. package/dist/songbird/artifacts/contracts/governance/implementation/PollingFtso.sol/PollingFtso.json +1187 -0
  179. package/dist/songbird/artifacts/contracts/inflation/implementation/Inflation.sol/Inflation.json +2 -2
  180. package/dist/songbird/artifacts/contracts/inflation/lib/InflationAnnum.sol/InflationAnnum.json +2 -2
  181. package/dist/songbird/artifacts/contracts/inflation/lib/InflationAnnums.sol/InflationAnnums.json +2 -2
  182. package/dist/songbird/artifacts/contracts/inflation/lib/RewardService.sol/RewardService.json +2 -2
  183. package/dist/songbird/artifacts/contracts/inflation/lib/RewardServices.sol/RewardServices.json +2 -2
  184. package/dist/songbird/artifacts/contracts/token/implementation/CleanupBlockNumberManager.sol/CleanupBlockNumberManager.json +172 -37
  185. package/dist/songbird/artifacts/contracts/token/implementation/Delegatable.sol/Delegatable.json +2 -2
  186. package/dist/songbird/artifacts/contracts/token/implementation/GovernanceVotePower.sol/GovernanceVotePower.json +2 -2
  187. package/dist/songbird/artifacts/contracts/token/implementation/VPContract.sol/VPContract.json +2 -2
  188. package/dist/songbird/artifacts/contracts/token/implementation/VPToken.sol/VPToken.json +2 -2
  189. package/dist/songbird/artifacts/contracts/token/implementation/WNat.sol/WNat.json +2 -2
  190. package/dist/songbird/artifacts/contracts/token/lib/DelegationHistory.sol/DelegationHistory.json +2 -2
  191. package/dist/songbird/artifacts/contracts/token/lib/ExplicitDelegation.sol/ExplicitDelegation.json +2 -2
  192. package/dist/songbird/artifacts/contracts/token/lib/PercentageDelegation.sol/PercentageDelegation.json +2 -2
  193. package/dist/songbird/artifacts/contracts/tokenPools/implementation/FtsoRewardManager.sol/FtsoRewardManager.json +523 -138
  194. package/dist/songbird/artifacts/contracts/tokenPools/interface/IIFtsoRewardManager.sol/IIFtsoRewardManager.json +322 -0
  195. package/dist/songbird/artifacts/contracts/utils/implementation/FtsoV2Upgrader.sol/FtsoV2Upgrader.json +2 -2
  196. package/dist/songbird/artifacts/contracts/utils/implementation/GovernedAndFlareDaemonized.sol/GovernedAndFlareDaemonized.json +2 -2
  197. package/dist/songbird/artifacts/contracts/utils/implementation/GovernedAndFlareDaemonizedV2.sol/GovernedAndFlareDaemonizedV2.json +2 -2
  198. package/dist/songbird/artifacts/contracts/utils/implementation/SafePct.sol/SafePct.json +2 -2
  199. package/dist/songbird/artifacts/contracts/utils/implementation/VoterWhitelister.sol/VoterWhitelister.json +276 -41
  200. package/dist/songbird/artifacts/contracts/utils/interface/IIVoterWhitelister.sol/IIVoterWhitelister.json +72 -0
  201. package/dist/songbird/deploys/contractAddresses.d.ts +5 -0
  202. package/dist/songbird/deploys/contractAddresses.d.ts.map +1 -1
  203. package/dist/songbird/deploys/contractAddresses.js +8 -3
  204. package/dist/songbird/deploys/contractAddresses.js.map +1 -1
  205. package/dist/songbird/deploys/songbird.json +28 -3
  206. package/package.json +1 -1
  207. package/dist/coston/artifacts/contracts/tokenPools/implementation/Distribution.sol/Distribution.json +0 -414
  208. package/dist/coston/artifacts/contracts/tokenPools/interface/IIFtsoRewardManagerV2.sol/IIFtsoRewardManagerV2.json +0 -949
  209. package/dist/songbird/artifacts/contracts/tokenPools/implementation/Distribution.sol/Distribution.json +0 -414
  210. package/dist/songbird/artifacts/contracts/tokenPools/interface/IIFtsoRewardManagerV2.sol/IIFtsoRewardManagerV2.json +0 -949
@@ -1257,8 +1257,8 @@
1257
1257
  "type": "function"
1258
1258
  }
1259
1259
  ],
1260
- "bytecode": "0x60806040526011805460ff60a01b191690553480156200001e57600080fd5b5060405162004e0b38038062004e0b833981810160405260608110156200004457600080fd5b8151602083018051604051929492938301929190846401000000008211156200006c57600080fd5b9083019060208201858111156200008257600080fd5b82516401000000008111828201881017156200009d57600080fd5b82525081516020918201929091019080838360005b83811015620000cc578181015183820152602001620000b2565b50505050905090810190601f168015620000fa5780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200011e57600080fd5b9083019060208201858111156200013457600080fd5b82516401000000008111828201881017156200014f57600080fd5b82525081516020918201929091019080838360005b838110156200017e57818101518382015260200162000164565b50505050905090810190601f168015620001ac5780820380516001836020036101000a031916815260200191505b50604052505050828083838160039080519060200190620001cf9291906200032d565b508051620001e59060049060208401906200032d565b50506005805460ff19166012179055506001600160a01b03811615620002105762000210816200026a565b506001600160a01b03811662000260576040805162461bcd60e51b815260206004820152601060248201526f5f676f7665726e616e6365207a65726f60801b604482015290519081900360640190fd5b50505050620003d9565b600c54600160a01b900460ff1615620002ca576040805162461bcd60e51b815260206004820152601460248201527f696e697469616c6973656420213d2066616c7365000000000000000000000000604482015290519081900360640190fd5b600c8054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282620003655760008555620003b0565b82601f106200038057805160ff1916838001178555620003b0565b82800160010185558215620003b0579182015b82811115620003b057825182559160200191906001019062000393565b50620003be929150620003c2565b5090565b5b80821115620003be5760008155600101620003c3565b614a2280620003e96000396000f3fe608060405234801561001057600080fd5b506004361061038e5760003560e01c806392bfe6d8116101de578063d06dc3ad1161010f578063e64767aa116100ad578063f5f3d4f71161007c578063f5f3d4f714610e4b578063f62f8f3a14610e53578063f683776714610e70578063f6a494af14610e965761038e565b8063e64767aa14610db5578063ed475a7914610deb578063f0e292c914610e17578063f5a9838314610e435761038e565b8063dd62ed3e116100e9578063dd62ed3e14610d4b578063deea13e714610d79578063e17f212e14610d81578063e587497e14610d895761038e565b8063d06dc3ad14610bd6578063d6aa0b7714610c02578063dc4fcda714610c285761038e565b8063a457c2d71161017c578063bbd6fbf811610156578063bbd6fbf814610b57578063be0ca74714610b83578063c787a8fc14610bb1578063caeb942b14610bb95761038e565b8063a457c2d714610af7578063a9059cbb14610b23578063b302f39314610b4f5761038e565b80639b3baa0e116101b85780639b3baa0e14610a9b5780639ca20e4e14610aa35780639ca2231a14610aab5780639d6a890f14610ad15761038e565b806392bfe6d814610a4a57806395d89b4114610a76578063981b24d014610a7e5761038e565b806349e3c7e5116102c357806367fc4029116102615780637de5b8ed116102305780637de5b8ed146109235780637f4fcaa9146109f057806383035a8214610a165780638c2b8ae114610a425761038e565b806367fc40291461080a57806370a082311461083157806374e6310e14610857578063755d10a4146108fd5761038e565b80635aa6e6751161029d5780635aa6e675146107325780635d6d11eb1461073a5780635ff27079146107db57806362354e03146108025761038e565b806349e3c7e51461060b5780634eac870f146106fe5780634ee2cd7e146107065761038e565b80631fec092a1161033057806331d12a161161030a57806331d12a161461057f57806339509351146105a55780633e5aa26a146105d157806343ea370b146105ee5761038e565b80631fec092a1461050757806323b872dd1461052b578063313ce567146105615761038e565b8063095ea7b31161036c578063095ea7b31461047c57806313de97f5146104bc578063142d1018146104d957806318160ddd146104ff5761038e565b8063026e402b1461039357806304bb4e43146103c157806306fdde03146103ff575b600080fd5b6103bf600480360360408110156103a957600080fd5b506001600160a01b038135169060200135610ebc565b005b6103ed600480360360408110156103d757600080fd5b506001600160a01b038135169060200135610f57565b60408051918252519081900360200190f35b610407610fea565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610441578181015183820152602001610429565b50505050905090810190601f16801561046e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104a86004803603604081101561049257600080fd5b506001600160a01b038135169060200135610ff9565b604080519115158252519081900360200190f35b6103bf600480360360208110156104d257600080fd5b5035611016565b6103ed600480360360208110156104ef57600080fd5b50356001600160a01b0316611205565b6103ed61128f565b61050f611295565b604080516001600160a01b039092168252519081900360200190f35b6104a86004803603606081101561054157600080fd5b506001600160a01b038135811691602081013590911690604001356112a4565b61056961132c565b6040805160ff9092168252519081900360200190f35b6103bf6004803603602081101561059557600080fd5b50356001600160a01b0316611336565b6104a8600480360360408110156105bb57600080fd5b506001600160a01b038135169060200135611506565b6103ed600480360360208110156105e757600080fd5b5035611554565b6103ed6004803603602081101561060457600080fd5b503561155f565b6106ae6004803603604081101561062157600080fd5b810190602081018135600160201b81111561063b57600080fd5b82018360208201111561064d57600080fd5b803590602001918460208302840111600160201b8311171561066e57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550509135925061161a915050565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156106ea5781810151838201526020016106d2565b505050509050019250505060405180910390f35b61050f61177c565b6103ed6004803603604081101561071c57600080fd5b506001600160a01b03813516906020013561178b565b61050f611797565b6103ed6004803603602081101561075057600080fd5b810190602081018135600160201b81111561076a57600080fd5b82018360208201111561077c57600080fd5b803590602001918460208302840111600160201b8311171561079d57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061182d945050505050565b6103bf600480360360208110156107f157600080fd5b50356001600160e01b0319166118df565b61050f611c36565b6103bf6004803603602081101561082057600080fd5b50356001600160e01b031916611c41565b6103ed6004803603602081101561084757600080fd5b50356001600160a01b0316611d27565b61087e6004803603602081101561086d57600080fd5b50356001600160e01b031916611d42565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156108c15781810151838201526020016108a9565b50505050905090810190601f1680156108ee5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b6103bf6004803603602081101561091357600080fd5b50356001600160a01b0316611de9565b6109496004803603602081101561093957600080fd5b50356001600160a01b0316612076565b604051808060200180602001858152602001848152602001838103835287818151815260200191508051906020019060200280838360005b83811015610999578181015183820152602001610981565b50505050905001838103825286818151815260200191508051906020019060200280838360005b838110156109d85781810151838201526020016109c0565b50505050905001965050505050505060405180910390f35b6103bf60048036036020811015610a0657600080fd5b50356001600160a01b0316612239565b6103ed60048036036040811015610a2c57600080fd5b506001600160a01b038135169060200135612288565b61050f6122f7565b6103ed60048036036040811015610a6057600080fd5b506001600160a01b038135169060200135612306565b610407612364565b6103ed60048036036020811015610a9457600080fd5b503561236e565b61050f612379565b61050f612388565b6103bf60048036036020811015610ac157600080fd5b50356001600160a01b0316612397565b6103bf60048036036020811015610ae757600080fd5b50356001600160a01b03166124e7565b6104a860048036036040811015610b0d57600080fd5b506001600160a01b0381351690602001356125a0565b6104a860048036036040811015610b3957600080fd5b506001600160a01b038135169060200135612608565b6103bf61261c565b6103bf60048036036040811015610b6d57600080fd5b506001600160a01b038135169060200135612696565b6103ed60048036036040811015610b9957600080fd5b506001600160a01b0381358116916020013516612803565b6104a861287a565b6103ed60048036036020811015610bcf57600080fd5b503561288a565b6103bf60048036036040811015610bec57600080fd5b506001600160a01b038135169060200135612895565b6103ed60048036036020811015610c1857600080fd5b50356001600160a01b03166128b6565b6103bf60048036036040811015610c3e57600080fd5b810190602081018135600160201b811115610c5857600080fd5b820183602082011115610c6a57600080fd5b803590602001918460208302840111600160201b83111715610c8b57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b811115610cda57600080fd5b820183602082011115610cec57600080fd5b803590602001918460208302840111600160201b83111715610d0d57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061291c945050505050565b6103ed60048036036040811015610d6157600080fd5b506001600160a01b0381358116916020013516612ab8565b6103ed612ae3565b6104a8612aed565b6103ed60048036036040811015610d9f57600080fd5b506001600160a01b038135169060200135612afd565b6103ed60048036036060811015610dcb57600080fd5b506001600160a01b03813581169160208101359091169060400135612b71565b61094960048036036040811015610e0157600080fd5b506001600160a01b038135169060200135612c25565b6103ed60048036036040811015610e2d57600080fd5b506001600160a01b038135169060200135612df1565b6103bf612e5e565b6103ed612f18565b6103ed60048036036020811015610e6957600080fd5b5035612f22565b6103ed60048036036020811015610e8657600080fd5b50356001600160a01b0316612f8d565b6103bf60048036036020811015610eac57600080fd5b50356001600160a01b0316612fe3565b610ec46131a7565b6001600160a01b0316636230001a3384610edd33611d27565b856040518563ffffffff1660e01b815260040180856001600160a01b03168152602001846001600160a01b03168152602001838152602001828152602001945050505050600060405180830381600087803b158015610f3b57600080fd5b505af1158015610f4f573d6000803e3d6000fd5b505050505050565b6000610f61613208565b6001600160a01b03166304bb4e4384846040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b158015610fb557600080fd5b505afa158015610fc9573d6000803e3d6000fd5b505050506040513d6020811015610fdf57600080fd5b505190505b92915050565b6060610ff4613269565b905090565b600061100d6110066132ff565b8484613303565b50600192915050565b6011546001600160a01b03163314611075576040805162461bcd60e51b815260206004820152601a60248201527f6f6e6c7920636c65616e757020626c6f636b206d616e61676572000000000000604482015290519081900360640190fd5b61107e816133ef565b600e546001600160a01b0316156110f557600e54604080516313de97f560e01b81526004810184905290516001600160a01b03909216916313de97f59160248082019260009290919082900301818387803b1580156110dc57600080fd5b505af11580156110f0573d6000803e3d6000fd5b505050505b600f546001600160a01b0316158015906111205750600e54600f546001600160a01b03908116911614155b1561118b57600f54604080516313de97f560e01b81526004810184905290516001600160a01b03909216916313de97f59160248082019260009290919082900301818387803b15801561117257600080fd5b505af1158015611186573d6000803e3d6000fd5b505050505b6010546001600160a01b03161561120257601054604080516313de97f560e01b81526004810184905290516001600160a01b03909216916313de97f59160248082019260009290919082900301818387803b1580156111e957600080fd5b505af11580156111fd573d6000803e3d6000fd5b505050505b50565b600061120f613208565b6001600160a01b031663142d1018836040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561125b57600080fd5b505afa15801561126f573d6000803e3d6000fd5b505050506040513d602081101561128557600080fd5b505190505b919050565b60025490565b600f546001600160a01b031690565b60006112b1848484613473565b611321846112bd6132ff565b61131c856040518060600160405280602881526020016148c8602891396001600160a01b038a166000908152600160205260408120906112fb6132ff565b6001600160a01b0316815260208101919091526040016000205491906135ce565b613303565b5060015b9392505050565b6000610ff4613665565b600c54600160b01b900460ff16806113585750600c54600160a81b900460ff16155b156114fb5761136561366e565b6001600160a01b0381161561148e57306001600160a01b0316816001600160a01b031663653718836040518163ffffffff1660e01b815260040160206040518083038186803b1580156113b757600080fd5b505afa1580156113cb573d6000803e3d6000fd5b505050506040513d60208110156113e157600080fd5b50516001600160a01b0316146114285760405162461bcd60e51b81526004018080602001828103825260228152602001806149cb6022913960400191505060405180910390fd5b806001600160a01b03166313de97f561143f6136a5565b6040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561147557600080fd5b505af1158015611489573d6000803e3d6000fd5b505050505b600e5460408051600081526001600160a01b03928316602082015291831682820152517fbec98a6c0f609cda6b9f23b95824ba6ac733cb57edd17d344f2f2796844007399181900360600190a1600e80546001600160a01b0319166001600160a01b038316179055611202565b6112026000366136ab565b600061100d6115136132ff565b8461131c85600160006115246132ff565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490613830565b6000610fe48261236e565b600b546000906001600160a01b031633146115b9576040805162461bcd60e51b815260206004820152601560248201527413db9b1e4818db19585b995c8818dbdb9d1c9858dd605a1b604482015290519081900360640190fd5b600a54821061160f576040805162461bcd60e51b815260206004820152601e60248201527f4e6f20636c65616e757020616674657220636c65616e757020626c6f636b0000604482015290519081900360640190fd5b610fe460098361388a565b6060611624613208565b6001600160a01b03166349e3c7e584846040518363ffffffff1660e01b81526004018080602001838152602001828103825284818151815260200191508051906020019060200280838360005b83811015611689578181015183820152602001611671565b50505050905001935050505060006040518083038186803b1580156116ad57600080fd5b505afa1580156116c1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156116ea57600080fd5b8101908080516040519392919084600160201b82111561170957600080fd5b90830190602082018581111561171e57600080fd5b82518660208202830111600160201b8211171561173a57600080fd5b82525081516020918201928201910280838360005b8381101561176757818101518382015260200161174f565b50505050905001604052505050905092915050565b6011546001600160a01b031681565b600061132583836138be565b600c54600090600160a81b900460ff166117bc57600c546001600160a01b0316610ff4565b60076001609c1b016001600160a01b031663732524946040518163ffffffff1660e01b815260040160206040518083038186803b1580156117fc57600080fd5b505afa158015611810573d6000803e3d6000fd5b505050506040513d602081101561182657600080fd5b5051905090565b60006118376131a7565b6001600160a01b0316630f8b8af733846040518363ffffffff1660e01b815260040180836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019060200280838360005b838110156118a557818101518382015260200161188d565b505050509050019350505050602060405180830381600087803b1580156118cb57600080fd5b505af115801561126f573d6000803e3d6000fd5b60408051630debfda360e41b8152336004820152905160076001609c1b019163debfda30916024808301926020929190829003018186803b15801561192357600080fd5b505afa158015611937573d6000803e3d6000fd5b505050506040513d602081101561194d57600080fd5b5051611990576040805162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b604482015290519081900360640190fd5b6001600160e01b031981166000908152600d6020526040902080546119fc576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b8054421015611a52576040805162461bcd60e51b815260206004820152601960248201527f74696d656c6f636b3a206e6f7420616c6c6f7765642079657400000000000000604482015290519081900360640190fd5b6000816001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aec5780601f10611ac157610100808354040283529160200191611aec565b820191906000526020600020905b815481529060010190602001808311611acf57829003601f168201915b505050506001600160e01b031985166000908152600d602052604081208181559293509050611b1e60018301826146ba565b5050600c805460ff60b01b1916600160b01b17905560405181516000913091849190819060208401908083835b60208310611b6a5780518252601f199092019160209182019101611b4b565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611bcc576040519150601f19603f3d011682016040523d82523d6000602084013e611bd1565b606091505b5050600c805460ff60b01b19169055604080516001600160e01b03198716815242602082015281519293507fa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438929081900390910190a1611c3081613916565b50505050565b60076001609c1b0181565b611c49613933565b6001600160e01b031981166000908152600d6020526040902054611cb4576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b604080516001600160e01b03198316815242602082015281517f7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8929181900390910190a16001600160e01b031981166000908152600d6020526040812081815590611d2260018301826146ba565b505050565b6001600160a01b031660009081526020819052604090205490565b600d602090815260009182526040918290208054600180830180548651600293821615610100026000190190911692909204601f810186900486028301860190965285825291949293909290830182828015611ddf5780601f10611db457610100808354040283529160200191611ddf565b820191906000526020600020905b815481529060010190602001808311611dc257829003601f168201915b5050505050905082565b600c54600160b01b900460ff1680611e0b5750600c54600160a81b900460ff16155b156114fb57611e1861366e565b6001600160a01b0381161561200957306001600160a01b0316816001600160a01b031663653718836040518163ffffffff1660e01b815260040160206040518083038186803b158015611e6a57600080fd5b505afa158015611e7e573d6000803e3d6000fd5b505050506040513d6020811015611e9457600080fd5b50516001600160a01b031614611edb5760405162461bcd60e51b81526004018080602001828103825260228152602001806149cb6022913960400191505060405180910390fd5b601154600160a01b900460ff161580611f555750806001600160a01b031663aa94d3f26040518163ffffffff1660e01b815260040160206040518083038186803b158015611f2857600080fd5b505afa158015611f3c573d6000803e3d6000fd5b505050506040513d6020811015611f5257600080fd5b50515b611f905760405162461bcd60e51b81526004018080602001828103825260298152602001806148796029913960400191505060405180910390fd5b806001600160a01b03166313de97f5611fa76136a5565b6040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611fdd57600080fd5b505af1158015611ff1573d6000803e3d6000fd5b50506011805460ff60a01b1916600160a01b17905550505b600f5460408051600181526001600160a01b03928316602082015291831682820152517fbec98a6c0f609cda6b9f23b95824ba6ac733cb57edd17d344f2f2796844007399181900360600190a1600f80546001600160a01b0319166001600160a01b038316179055611202565b606080600080612084613208565b6001600160a01b0316637de5b8ed866040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060006040518083038186803b1580156120d057600080fd5b505afa1580156120e4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052608081101561210d57600080fd5b8101908080516040519392919084600160201b82111561212c57600080fd5b90830190602082018581111561214157600080fd5b82518660208202830111600160201b8211171561215d57600080fd5b82525081516020918201928201910280838360005b8381101561218a578181015183820152602001612172565b5050505090500160405260200180516040519392919084600160201b8211156121b257600080fd5b9083019060208201858111156121c757600080fd5b82518660208202830111600160201b821117156121e357600080fd5b82525081516020918201928201910280838360005b838110156122105781810151838201526020016121f8565b505050509190910160409081526020830151920151959b949a5090985093965091945050505050565b600c54600160b01b900460ff168061225b5750600c54600160a81b900460ff16155b156114fb5761226861366e565b601180546001600160a01b0319166001600160a01b038316179055611202565b6000612292613208565b6001600160a01b03166331503927846122ab868661178b565b856040518463ffffffff1660e01b815260040180846001600160a01b03168152602001838152602001828152602001935050505060206040518083038186803b158015610fb557600080fd5b6010546001600160a01b031690565b6000612310613208565b6001600160a01b03166392bfe6d884846040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b158015610fb557600080fd5b6060610ff4613992565b6000610fe4826139f3565b600e546001600160a01b031690565b600b546001600160a01b031681565b600c54600160b01b900460ff16806123b95750600c54600160a81b900460ff16155b156114fb576123c661366e565b306001600160a01b0316816001600160a01b031663653718836040518163ffffffff1660e01b815260040160206040518083038186803b15801561240957600080fd5b505afa15801561241d573d6000803e3d6000fd5b505050506040513d602081101561243357600080fd5b50516001600160a01b03161461247a5760405162461bcd60e51b815260040180806020018281038252603d8152602001806148f0603d913960400191505060405180910390fd5b60105460408051600281526001600160a01b03928316602082015291831682820152517fbec98a6c0f609cda6b9f23b95824ba6ac733cb57edd17d344f2f2796844007399181900360600190a1601080546001600160a01b0319166001600160a01b038316179055611202565b600c54600160a01b900460ff161561253d576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b600c8054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b600061100d6125ad6132ff565b8461131c856040518060600160405280602581526020016149a660259139600160006125d76132ff565b6001600160a01b03908116825260208083019390935260409182016000908120918d168152925290205491906135ce565b600061100d6126156132ff565b8484613473565b6126246131a7565b6001600160a01b03166305109ecf3361263c33611d27565b6040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561268257600080fd5b505af1158015611c30573d6000803e3d6000fd5b600f54600e546001600160a01b039182169116811561274157816001600160a01b031663c7c62fab33866126ca338861178b565b876040518563ffffffff1660e01b815260040180856001600160a01b03168152602001846001600160a01b03168152602001838152602001828152602001945050505050600060405180830381600087803b15801561272857600080fd5b505af115801561273c573d6000803e3d6000fd5b505050505b816001600160a01b0316816001600160a01b03161415801561276b57506001600160a01b03811615155b15611c3057806001600160a01b031663c7c62fab338661278b338861178b565b876040518563ffffffff1660e01b815260040180856001600160a01b03168152602001846001600160a01b03168152602001838152602001828152602001945050505050600060405180830381600087803b1580156127e957600080fd5b505af19250505080156127fa575060015b611c3057611c30565b600061280d613208565b6001600160a01b0316639dc6b9f2848461282687611d27565b6040518463ffffffff1660e01b815260040180846001600160a01b03168152602001836001600160a01b03168152602001828152602001935050505060206040518083038186803b158015610fb557600080fd5b601154600160a01b900460ff1681565b6000610fe482613a42565b61289d6131a7565b6001600160a01b031663404d9e823384610edd33611d27565b60006128c0613208565b6001600160a01b0316634a03d556836128d885611d27565b6040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b15801561125b57600080fd5b805182511461296a576040805162461bcd60e51b8152602060048201526015602482015274082e4e4c2f240d8cadccee8d040dad2e6dac2e8c6d605b1b604482015290519081900360640190fd5b60006129746131a7565b9050600061298133611d27565b9050816001600160a01b03166305109ecf33836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156129da57600080fd5b505af11580156129ee573d6000803e3d6000fd5b5050505060005b84518110156111fd57826001600160a01b0316636230001a33878481518110612a1a57fe5b602002602001015185888681518110612a2f57fe5b60200260200101516040518563ffffffff1660e01b815260040180856001600160a01b03168152602001846001600160a01b03168152602001838152602001828152602001945050505050600060405180830381600087803b158015612a9457600080fd5b505af1158015612aa8573d6000803e3d6000fd5b5050600190920191506129f59050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6000610ff46136a5565b600c54600160a81b900460ff1681565b6000612b07613208565b6001600160a01b031663e587497e84846040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015612b5d57600080fd5b505af1158015610fc9573d6000803e3d6000fd5b6000612b7b613208565b6001600160a01b031663833aca928585612b95888761178b565b866040518563ffffffff1660e01b815260040180856001600160a01b03168152602001846001600160a01b0316815260200183815260200182815260200194505050505060206040518083038186803b158015612bf157600080fd5b505afa158015612c05573d6000803e3d6000fd5b505050506040513d6020811015612c1b57600080fd5b5051949350505050565b606080600080612c33613208565b6001600160a01b031663ed475a7987876040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060006040518083038186803b158015612c8757600080fd5b505afa158015612c9b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526080811015612cc457600080fd5b8101908080516040519392919084600160201b821115612ce357600080fd5b908301906020820185811115612cf857600080fd5b82518660208202830111600160201b82111715612d1457600080fd5b82525081516020918201928201910280838360005b83811015612d41578181015183820152602001612d29565b5050505090500160405260200180516040519392919084600160201b821115612d6957600080fd5b908301906020820185811115612d7e57600080fd5b82518660208202830111600160201b82111715612d9a57600080fd5b82525081516020918201928201910280838360005b83811015612dc7578181015183820152602001612daf565b505050509190910160409081526020830151920151959c949b509099509397509195505050505050565b600b546000906001600160a01b03163314612e4b576040805162461bcd60e51b815260206004820152601560248201527413db9b1e4818db19585b995c8818dbdb9d1c9858dd605a1b604482015290519081900360640190fd5b600a546113259060069085908590613b30565b612e66613933565b600c54600160a81b900460ff1615612ec5576040805162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2070726f64756374696f6e206d6f6465000000000000604482015290519081900360640190fd5b600c8054600161ff0160a01b031916600160a81b1790556040805160076001609c1b01815290517f83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c9181900360200190a1565b6000610ff461128f565b600b546000906001600160a01b03163314612f7c576040805162461bcd60e51b815260206004820152601560248201527413db9b1e4818db19585b995c8818dbdb9d1c9858dd605a1b604482015290519081900360640190fd5b600a54610fe4906007908490613b76565b6000612f97613208565b6001600160a01b031663f6837767836040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561125b57600080fd5b600c54600160b01b900460ff16806130055750600c54600160a81b900460ff16155b156114fb5761301261366e565b61301b81613c63565b600e546001600160a01b03161561309357600e546040805163f6a494af60e01b81526001600160a01b0384811660048301529151919092169163f6a494af91602480830192600092919082900301818387803b15801561307a57600080fd5b505af115801561308e573d6000803e3d6000fd5b505050505b600f546001600160a01b0316158015906130be5750600e54600f546001600160a01b03908116911614155b1561312a57600f546040805163f6a494af60e01b81526001600160a01b0384811660048301529151919092169163f6a494af91602480830192600092919082900301818387803b15801561311157600080fd5b505af1158015613125573d6000803e3d6000fd5b505050505b6010546001600160a01b0316156131a2576010546040805163f6a494af60e01b81526001600160a01b0384811660048301529151919092169163f6a494af91602480830192600092919082900301818387803b15801561318957600080fd5b505af115801561319d573d6000803e3d6000fd5b505050505b611202565b600f546000906001600160a01b031680610ff4576040805162461bcd60e51b815260206004820152601e60248201527f546f6b656e206d697373696e67207772697465205650436f6e74726163740000604482015290519081900360640190fd5b600e546000906001600160a01b031680610ff4576040805162461bcd60e51b815260206004820152601d60248201527f546f6b656e206d697373696e672072656164205650436f6e7472616374000000604482015290519081900360640190fd5b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156132f55780601f106132ca576101008083540402835291602001916132f5565b820191906000526020600020905b8154815290600101906020018083116132d857829003601f168201915b5050505050905090565b3390565b6001600160a01b0383166133485760405162461bcd60e51b81526004018080602001828103825260248152602001806149526024913960400191505060405180910390fd5b6001600160a01b03821661338d5760405162461bcd60e51b81526004018080602001828103825260228152602001806147dc6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600a548110156134305760405162461bcd60e51b81526004018080602001828103825260288152602001806148246028913960400191505060405180910390fd5b43811061346e5760405162461bcd60e51b81526004018080602001828103825260218152602001806147bb6021913960400191505060405180910390fd5b600a55565b6001600160a01b0383166134b85760405162461bcd60e51b815260040180806020018281038252602581526020018061492d6025913960400191505060405180910390fd5b6001600160a01b0382166134fd5760405162461bcd60e51b81526004018080602001828103825260238152602001806147986023913960400191505060405180910390fd5b613508838383613c85565b613545816040518060600160405280602681526020016147fe602691396001600160a01b03861660009081526020819052604090205491906135ce565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546135749082613830565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000818484111561365d5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561362257818101518382015260200161360a565b50505050905090810190601f16801561364f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60055460ff1690565b600c54600160b01b900460ff161561369b5733301461368957fe5b600c805460ff60b01b191690556136a3565b6136a3613933565b565b600a5490565b6136b3613933565b600082359050600060076001609c1b016001600160a01b0316636221a54b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156136fb57600080fd5b505afa15801561370f573d6000803e3d6000fd5b505050506040513d602081101561372557600080fd5b505160408051808201825242830180825282516020601f89018190048102820181019094528781529394509290918281019190889088908190840183828082843760009201829052509390945250506001600160e01b031986168152600d60209081526040909120835181558382015180519193506137ab9260018501929101906146fe565b509050507fed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b68382878760405180856001600160e01b0319168152602001848152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f191690920182900397509095505050505050a15050505050565b600082820183811015611325576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600081815260208390526040812054156138b557506000818152602083905260408120556001610fe4565b50600092915050565b600081600a548110156139025760405162461bcd60e51b815260040180806020018281038252602d81526020018061484c602d913960400191505060405180910390fd5b61390e60068585613e94565b949350505050565b3d604051818101604052816000823e821561392f578181f35b8181fd5b61393b611797565b6001600160a01b0316336001600160a01b0316146136a3576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156132f55780601f106132ca576101008083540402835291602001916132f5565b600081600a54811015613a375760405162461bcd60e51b815260040180806020018281038252602d81526020018061484c602d913960400191505060405180910390fd5b611325600784613ebf565b600081600a54811015613a865760405162461bcd60e51b815260040180806020018281038252602d81526020018061484c602d913960400191505060405180910390fd5b438310613ada576040805162461bcd60e51b815260206004820181905260248201527f43616e206f6e6c79206265207573656420666f72207061737420626c6f636b73604482015290519081900360640190fd5b600080613aea6009600787614002565b915091508015613b28576040805186815290517ffec477a10b4fcdfdf1114eb32b3caf6118b2d76d20e1fcb70007274bb4b616be9181900360200190a15b509392505050565b60006001600160a01b03841615613b6b576001600160a01b0384166000908152602086905260409020613b64908484613b76565b905061390e565b506000949350505050565b600081613b8557506000611325565b6001840154600160401b90046001600160401b031680613ba9576000915050611325565b60018501546001600160401b03166000613bcf613bc68388613830565b60018503614060565b9050815b8181108015613c04575060018101600090815260208990526040902054600160c01b90046001600160401b03168610155b15613c2057600081815260208990526040812055600101613bd3565b82811115613c5557613c3181614076565b60018901805467ffffffffffffffff19166001600160401b03929092169190911790555b919091039695505050505050565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b816001600160a01b0316836001600160a01b03161415613cec576040805162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015290519081900360640190fd5b60006001600160a01b038416613d03576000613d0c565b613d0c84611d27565b905060006001600160a01b038416613d25576000613d2e565b613d2e84611d27565b600f549091506001600160a01b03168015613dc8576040805163756da1b160e11b81526001600160a01b038881166004830152878116602483015260448201869052606482018590526084820187905291519183169163eadb43629160a48082019260009290919082900301818387803b158015613dab57600080fd5b505af1158015613dbf573d6000803e3d6000fd5b50505050613ded565b601154600160a01b900460ff16613ded576011805460ff60a01b1916600160a01b1790555b6010546001600160a01b03168015613e80576040805163756da1b160e11b81526001600160a01b038981166004830152888116602483015260448201879052606482018690526084820188905291519183169163eadb43629160a48082019260009290919082900301818387803b158015613e6757600080fd5b505af1158015613e7b573d6000803e3d6000fd5b505050505b613e8b8787876140be565b50505050505050565b6001600160a01b0382166000908152602084905260408120613eb68184613ebf565b95945050505050565b6001820154600090600160401b90046001600160401b031680613ee6576000915050610fe4565b4383101580613f1857506000198101600090815260208590526040902054600160c01b90046001600160401b03168310155b15613f4057600019016000908152602084905260409020546001600160c01b03169050610fe4565b60018401546001600160401b039081166000818152602087905260409020549091600160c01b90910416841015613fb9578015613fae5760405162461bcd60e51b81526004018080602001828103825260308152602001806149766030913960400191505060405180910390fd5b600092505050610fe4565b6001850154600090613fdf9087908490600160401b90046001600160401b0316886140fe565b6000908152602087905260409020546001600160c01b0316935050505092915050565b600081815260208490526040812054819080156140285760001901915060009050614058565b60006140348686613ebf565b9050614041816001613830565b600086815260208990526040902055925060019150505b935093915050565b600081831061406f5781611325565b5090919050565b6000600160401b82106140ba5760405162461bcd60e51b81526004018080602001828103825260268152602001806148a26026913960400191505060405180910390fd5b5090565b6001600160a01b0383166140db576140d68282614188565b611d22565b6001600160a01b0382166140f3576140d683826141e5565b611d22838383614294565b6000838161410d8560016142ca565b90505b8181111561417e57600061413a6002614134600161412e8688613830565b90613830565b90614327565b600081815260208a90526040902054909150600160c01b90046001600160401b0316851061416a57809250614178565b6141758160016142ca565b91505b50614110565b5095945050505050565b60006141988261412e854361178b565b90506141a66006848361438e565b600a546141ba906006908590600290613b30565b506141d36141cb8361412e4361236e565b6007906143ac565b600a54611c3090600790600290613b76565b600061422b8260405180604001604052806016815260200175213ab937103a37b7903134b3903337b91037bbb732b960511b815250614224864361178b565b91906135ce565b90506142396006848361438e565b600a5461424d906006908590600290613b30565b506141d36141cb836040518060400160405280601d81526020017f4275726e20746f6f2062696720666f7220746f74616c20737570706c790000008152506142244361236e565b6142a1600684848461456d565b600a546142b5906006908590600290613b30565b50600a54611c30906006908490600290613b30565b600082821115614321576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600080821161437d576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161438657fe5b049392505050565b6001600160a01b0382166000908152602084905260409020611c3081835b6001820154600160401b90046001600160401b0316806144635760405180604001604052806143da846145fc565b6001600160c01b031681526020016143f143614076565b6001600160401b03908116909152600080805260208681526040909120835181549490920151909216600160c01b026001600160c01b039182166001600160c01b0319909416939093171691909117905560018301805467ffffffffffffffff60401b1916600160401b179055611d22565b600019810160009081526020849052604090208054600160c01b90046001600160401b0316438114156144b957614499846145fc565b82546001600160c01b0319166001600160c01b03919091161782556111fd565b8043116144c257fe5b60405180604001604052806144d6866145fc565b6001600160c01b031681526020016144ed43614076565b6001600160401b039081169091526000858152602088815260409091208351815494909201518316600160c01b026001600160c01b039283166001600160c01b0319909516949094179091169290921790915560018087018054918601909216600160401b0267ffffffffffffffff60401b199091161790555050505050565b8061457757611c30565b6001600160a01b03831615801561459557506001600160a01b038216155b1561459c57fe5b6001600160a01b038316156145d05760006145c1826145bb8787614656565b906142ca565b90506145ce85858361438e565b505b6001600160a01b03821615611c305760006145ef8261412e8786614656565b90506111fd85848361438e565b6000600160c01b82106140ba576040805162461bcd60e51b815260206004820152601d60248201527f76616c756520646f65736e27742066697420696e203139322062697473000000604482015290519081900360640190fd5b6001600160a01b038116600090815260208390526040812061390e816001810154600090600160401b90046001600160401b03168061469957600091505061128a565b6000190160009081526020929092525060409020546001600160c01b031690565b50805460018160011615610100020316600290046000825580601f106146e05750611202565b601f0160209004906000526020600020908101906112029190614782565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282614734576000855561477a565b82601f1061474d57805160ff191683800117855561477a565b8280016001018555821561477a579182015b8281111561477a57825182559160200191906001019061475f565b506140ba9291505b5b808211156140ba576000815560010161478356fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373436c65616e757020626c6f636b206d75737420626520696e20746865207061737445524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365436c65616e757020626c6f636b206e756d626572206d757374206e65766572206465637265617365436865636b506f696e7461626c653a2072656164696e672066726f6d20636c65616e65642d757020626c6f636b5650436f6e7472616374206e6f7420636f6e6669677572656420666f72207265706c6163656d656e7453616665436173743a2076616c756520646f65736e27742066697420696e203634206269747345524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365476f7665726e616e636520766f746520706f77657220636f6e747261637420646f6573206e6f742062656c6f6e6720746f207468697320746f6b656e2e45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373436865636b506f696e74486973746f72793a2072656164696e672066726f6d20636c65616e65642d757020626c6f636b45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f5650436f6e7472616374206e6f74206f776e6564206279207468697320746f6b656ea2646970667358221220169900470ec4242111e241ddbbedf77efc08bef376d654e72181f5edb582624d64736f6c63430007060033",
1261
- "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061038e5760003560e01c806392bfe6d8116101de578063d06dc3ad1161010f578063e64767aa116100ad578063f5f3d4f71161007c578063f5f3d4f714610e4b578063f62f8f3a14610e53578063f683776714610e70578063f6a494af14610e965761038e565b8063e64767aa14610db5578063ed475a7914610deb578063f0e292c914610e17578063f5a9838314610e435761038e565b8063dd62ed3e116100e9578063dd62ed3e14610d4b578063deea13e714610d79578063e17f212e14610d81578063e587497e14610d895761038e565b8063d06dc3ad14610bd6578063d6aa0b7714610c02578063dc4fcda714610c285761038e565b8063a457c2d71161017c578063bbd6fbf811610156578063bbd6fbf814610b57578063be0ca74714610b83578063c787a8fc14610bb1578063caeb942b14610bb95761038e565b8063a457c2d714610af7578063a9059cbb14610b23578063b302f39314610b4f5761038e565b80639b3baa0e116101b85780639b3baa0e14610a9b5780639ca20e4e14610aa35780639ca2231a14610aab5780639d6a890f14610ad15761038e565b806392bfe6d814610a4a57806395d89b4114610a76578063981b24d014610a7e5761038e565b806349e3c7e5116102c357806367fc4029116102615780637de5b8ed116102305780637de5b8ed146109235780637f4fcaa9146109f057806383035a8214610a165780638c2b8ae114610a425761038e565b806367fc40291461080a57806370a082311461083157806374e6310e14610857578063755d10a4146108fd5761038e565b80635aa6e6751161029d5780635aa6e675146107325780635d6d11eb1461073a5780635ff27079146107db57806362354e03146108025761038e565b806349e3c7e51461060b5780634eac870f146106fe5780634ee2cd7e146107065761038e565b80631fec092a1161033057806331d12a161161030a57806331d12a161461057f57806339509351146105a55780633e5aa26a146105d157806343ea370b146105ee5761038e565b80631fec092a1461050757806323b872dd1461052b578063313ce567146105615761038e565b8063095ea7b31161036c578063095ea7b31461047c57806313de97f5146104bc578063142d1018146104d957806318160ddd146104ff5761038e565b8063026e402b1461039357806304bb4e43146103c157806306fdde03146103ff575b600080fd5b6103bf600480360360408110156103a957600080fd5b506001600160a01b038135169060200135610ebc565b005b6103ed600480360360408110156103d757600080fd5b506001600160a01b038135169060200135610f57565b60408051918252519081900360200190f35b610407610fea565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610441578181015183820152602001610429565b50505050905090810190601f16801561046e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104a86004803603604081101561049257600080fd5b506001600160a01b038135169060200135610ff9565b604080519115158252519081900360200190f35b6103bf600480360360208110156104d257600080fd5b5035611016565b6103ed600480360360208110156104ef57600080fd5b50356001600160a01b0316611205565b6103ed61128f565b61050f611295565b604080516001600160a01b039092168252519081900360200190f35b6104a86004803603606081101561054157600080fd5b506001600160a01b038135811691602081013590911690604001356112a4565b61056961132c565b6040805160ff9092168252519081900360200190f35b6103bf6004803603602081101561059557600080fd5b50356001600160a01b0316611336565b6104a8600480360360408110156105bb57600080fd5b506001600160a01b038135169060200135611506565b6103ed600480360360208110156105e757600080fd5b5035611554565b6103ed6004803603602081101561060457600080fd5b503561155f565b6106ae6004803603604081101561062157600080fd5b810190602081018135600160201b81111561063b57600080fd5b82018360208201111561064d57600080fd5b803590602001918460208302840111600160201b8311171561066e57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550509135925061161a915050565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156106ea5781810151838201526020016106d2565b505050509050019250505060405180910390f35b61050f61177c565b6103ed6004803603604081101561071c57600080fd5b506001600160a01b03813516906020013561178b565b61050f611797565b6103ed6004803603602081101561075057600080fd5b810190602081018135600160201b81111561076a57600080fd5b82018360208201111561077c57600080fd5b803590602001918460208302840111600160201b8311171561079d57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061182d945050505050565b6103bf600480360360208110156107f157600080fd5b50356001600160e01b0319166118df565b61050f611c36565b6103bf6004803603602081101561082057600080fd5b50356001600160e01b031916611c41565b6103ed6004803603602081101561084757600080fd5b50356001600160a01b0316611d27565b61087e6004803603602081101561086d57600080fd5b50356001600160e01b031916611d42565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156108c15781810151838201526020016108a9565b50505050905090810190601f1680156108ee5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b6103bf6004803603602081101561091357600080fd5b50356001600160a01b0316611de9565b6109496004803603602081101561093957600080fd5b50356001600160a01b0316612076565b604051808060200180602001858152602001848152602001838103835287818151815260200191508051906020019060200280838360005b83811015610999578181015183820152602001610981565b50505050905001838103825286818151815260200191508051906020019060200280838360005b838110156109d85781810151838201526020016109c0565b50505050905001965050505050505060405180910390f35b6103bf60048036036020811015610a0657600080fd5b50356001600160a01b0316612239565b6103ed60048036036040811015610a2c57600080fd5b506001600160a01b038135169060200135612288565b61050f6122f7565b6103ed60048036036040811015610a6057600080fd5b506001600160a01b038135169060200135612306565b610407612364565b6103ed60048036036020811015610a9457600080fd5b503561236e565b61050f612379565b61050f612388565b6103bf60048036036020811015610ac157600080fd5b50356001600160a01b0316612397565b6103bf60048036036020811015610ae757600080fd5b50356001600160a01b03166124e7565b6104a860048036036040811015610b0d57600080fd5b506001600160a01b0381351690602001356125a0565b6104a860048036036040811015610b3957600080fd5b506001600160a01b038135169060200135612608565b6103bf61261c565b6103bf60048036036040811015610b6d57600080fd5b506001600160a01b038135169060200135612696565b6103ed60048036036040811015610b9957600080fd5b506001600160a01b0381358116916020013516612803565b6104a861287a565b6103ed60048036036020811015610bcf57600080fd5b503561288a565b6103bf60048036036040811015610bec57600080fd5b506001600160a01b038135169060200135612895565b6103ed60048036036020811015610c1857600080fd5b50356001600160a01b03166128b6565b6103bf60048036036040811015610c3e57600080fd5b810190602081018135600160201b811115610c5857600080fd5b820183602082011115610c6a57600080fd5b803590602001918460208302840111600160201b83111715610c8b57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b811115610cda57600080fd5b820183602082011115610cec57600080fd5b803590602001918460208302840111600160201b83111715610d0d57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061291c945050505050565b6103ed60048036036040811015610d6157600080fd5b506001600160a01b0381358116916020013516612ab8565b6103ed612ae3565b6104a8612aed565b6103ed60048036036040811015610d9f57600080fd5b506001600160a01b038135169060200135612afd565b6103ed60048036036060811015610dcb57600080fd5b506001600160a01b03813581169160208101359091169060400135612b71565b61094960048036036040811015610e0157600080fd5b506001600160a01b038135169060200135612c25565b6103ed60048036036040811015610e2d57600080fd5b506001600160a01b038135169060200135612df1565b6103bf612e5e565b6103ed612f18565b6103ed60048036036020811015610e6957600080fd5b5035612f22565b6103ed60048036036020811015610e8657600080fd5b50356001600160a01b0316612f8d565b6103bf60048036036020811015610eac57600080fd5b50356001600160a01b0316612fe3565b610ec46131a7565b6001600160a01b0316636230001a3384610edd33611d27565b856040518563ffffffff1660e01b815260040180856001600160a01b03168152602001846001600160a01b03168152602001838152602001828152602001945050505050600060405180830381600087803b158015610f3b57600080fd5b505af1158015610f4f573d6000803e3d6000fd5b505050505050565b6000610f61613208565b6001600160a01b03166304bb4e4384846040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b158015610fb557600080fd5b505afa158015610fc9573d6000803e3d6000fd5b505050506040513d6020811015610fdf57600080fd5b505190505b92915050565b6060610ff4613269565b905090565b600061100d6110066132ff565b8484613303565b50600192915050565b6011546001600160a01b03163314611075576040805162461bcd60e51b815260206004820152601a60248201527f6f6e6c7920636c65616e757020626c6f636b206d616e61676572000000000000604482015290519081900360640190fd5b61107e816133ef565b600e546001600160a01b0316156110f557600e54604080516313de97f560e01b81526004810184905290516001600160a01b03909216916313de97f59160248082019260009290919082900301818387803b1580156110dc57600080fd5b505af11580156110f0573d6000803e3d6000fd5b505050505b600f546001600160a01b0316158015906111205750600e54600f546001600160a01b03908116911614155b1561118b57600f54604080516313de97f560e01b81526004810184905290516001600160a01b03909216916313de97f59160248082019260009290919082900301818387803b15801561117257600080fd5b505af1158015611186573d6000803e3d6000fd5b505050505b6010546001600160a01b03161561120257601054604080516313de97f560e01b81526004810184905290516001600160a01b03909216916313de97f59160248082019260009290919082900301818387803b1580156111e957600080fd5b505af11580156111fd573d6000803e3d6000fd5b505050505b50565b600061120f613208565b6001600160a01b031663142d1018836040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561125b57600080fd5b505afa15801561126f573d6000803e3d6000fd5b505050506040513d602081101561128557600080fd5b505190505b919050565b60025490565b600f546001600160a01b031690565b60006112b1848484613473565b611321846112bd6132ff565b61131c856040518060600160405280602881526020016148c8602891396001600160a01b038a166000908152600160205260408120906112fb6132ff565b6001600160a01b0316815260208101919091526040016000205491906135ce565b613303565b5060015b9392505050565b6000610ff4613665565b600c54600160b01b900460ff16806113585750600c54600160a81b900460ff16155b156114fb5761136561366e565b6001600160a01b0381161561148e57306001600160a01b0316816001600160a01b031663653718836040518163ffffffff1660e01b815260040160206040518083038186803b1580156113b757600080fd5b505afa1580156113cb573d6000803e3d6000fd5b505050506040513d60208110156113e157600080fd5b50516001600160a01b0316146114285760405162461bcd60e51b81526004018080602001828103825260228152602001806149cb6022913960400191505060405180910390fd5b806001600160a01b03166313de97f561143f6136a5565b6040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561147557600080fd5b505af1158015611489573d6000803e3d6000fd5b505050505b600e5460408051600081526001600160a01b03928316602082015291831682820152517fbec98a6c0f609cda6b9f23b95824ba6ac733cb57edd17d344f2f2796844007399181900360600190a1600e80546001600160a01b0319166001600160a01b038316179055611202565b6112026000366136ab565b600061100d6115136132ff565b8461131c85600160006115246132ff565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490613830565b6000610fe48261236e565b600b546000906001600160a01b031633146115b9576040805162461bcd60e51b815260206004820152601560248201527413db9b1e4818db19585b995c8818dbdb9d1c9858dd605a1b604482015290519081900360640190fd5b600a54821061160f576040805162461bcd60e51b815260206004820152601e60248201527f4e6f20636c65616e757020616674657220636c65616e757020626c6f636b0000604482015290519081900360640190fd5b610fe460098361388a565b6060611624613208565b6001600160a01b03166349e3c7e584846040518363ffffffff1660e01b81526004018080602001838152602001828103825284818151815260200191508051906020019060200280838360005b83811015611689578181015183820152602001611671565b50505050905001935050505060006040518083038186803b1580156116ad57600080fd5b505afa1580156116c1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156116ea57600080fd5b8101908080516040519392919084600160201b82111561170957600080fd5b90830190602082018581111561171e57600080fd5b82518660208202830111600160201b8211171561173a57600080fd5b82525081516020918201928201910280838360005b8381101561176757818101518382015260200161174f565b50505050905001604052505050905092915050565b6011546001600160a01b031681565b600061132583836138be565b600c54600090600160a81b900460ff166117bc57600c546001600160a01b0316610ff4565b60076001609c1b016001600160a01b031663732524946040518163ffffffff1660e01b815260040160206040518083038186803b1580156117fc57600080fd5b505afa158015611810573d6000803e3d6000fd5b505050506040513d602081101561182657600080fd5b5051905090565b60006118376131a7565b6001600160a01b0316630f8b8af733846040518363ffffffff1660e01b815260040180836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019060200280838360005b838110156118a557818101518382015260200161188d565b505050509050019350505050602060405180830381600087803b1580156118cb57600080fd5b505af115801561126f573d6000803e3d6000fd5b60408051630debfda360e41b8152336004820152905160076001609c1b019163debfda30916024808301926020929190829003018186803b15801561192357600080fd5b505afa158015611937573d6000803e3d6000fd5b505050506040513d602081101561194d57600080fd5b5051611990576040805162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b604482015290519081900360640190fd5b6001600160e01b031981166000908152600d6020526040902080546119fc576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b8054421015611a52576040805162461bcd60e51b815260206004820152601960248201527f74696d656c6f636b3a206e6f7420616c6c6f7765642079657400000000000000604482015290519081900360640190fd5b6000816001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aec5780601f10611ac157610100808354040283529160200191611aec565b820191906000526020600020905b815481529060010190602001808311611acf57829003601f168201915b505050506001600160e01b031985166000908152600d602052604081208181559293509050611b1e60018301826146ba565b5050600c805460ff60b01b1916600160b01b17905560405181516000913091849190819060208401908083835b60208310611b6a5780518252601f199092019160209182019101611b4b565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611bcc576040519150601f19603f3d011682016040523d82523d6000602084013e611bd1565b606091505b5050600c805460ff60b01b19169055604080516001600160e01b03198716815242602082015281519293507fa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438929081900390910190a1611c3081613916565b50505050565b60076001609c1b0181565b611c49613933565b6001600160e01b031981166000908152600d6020526040902054611cb4576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b604080516001600160e01b03198316815242602082015281517f7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8929181900390910190a16001600160e01b031981166000908152600d6020526040812081815590611d2260018301826146ba565b505050565b6001600160a01b031660009081526020819052604090205490565b600d602090815260009182526040918290208054600180830180548651600293821615610100026000190190911692909204601f810186900486028301860190965285825291949293909290830182828015611ddf5780601f10611db457610100808354040283529160200191611ddf565b820191906000526020600020905b815481529060010190602001808311611dc257829003601f168201915b5050505050905082565b600c54600160b01b900460ff1680611e0b5750600c54600160a81b900460ff16155b156114fb57611e1861366e565b6001600160a01b0381161561200957306001600160a01b0316816001600160a01b031663653718836040518163ffffffff1660e01b815260040160206040518083038186803b158015611e6a57600080fd5b505afa158015611e7e573d6000803e3d6000fd5b505050506040513d6020811015611e9457600080fd5b50516001600160a01b031614611edb5760405162461bcd60e51b81526004018080602001828103825260228152602001806149cb6022913960400191505060405180910390fd5b601154600160a01b900460ff161580611f555750806001600160a01b031663aa94d3f26040518163ffffffff1660e01b815260040160206040518083038186803b158015611f2857600080fd5b505afa158015611f3c573d6000803e3d6000fd5b505050506040513d6020811015611f5257600080fd5b50515b611f905760405162461bcd60e51b81526004018080602001828103825260298152602001806148796029913960400191505060405180910390fd5b806001600160a01b03166313de97f5611fa76136a5565b6040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611fdd57600080fd5b505af1158015611ff1573d6000803e3d6000fd5b50506011805460ff60a01b1916600160a01b17905550505b600f5460408051600181526001600160a01b03928316602082015291831682820152517fbec98a6c0f609cda6b9f23b95824ba6ac733cb57edd17d344f2f2796844007399181900360600190a1600f80546001600160a01b0319166001600160a01b038316179055611202565b606080600080612084613208565b6001600160a01b0316637de5b8ed866040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060006040518083038186803b1580156120d057600080fd5b505afa1580156120e4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052608081101561210d57600080fd5b8101908080516040519392919084600160201b82111561212c57600080fd5b90830190602082018581111561214157600080fd5b82518660208202830111600160201b8211171561215d57600080fd5b82525081516020918201928201910280838360005b8381101561218a578181015183820152602001612172565b5050505090500160405260200180516040519392919084600160201b8211156121b257600080fd5b9083019060208201858111156121c757600080fd5b82518660208202830111600160201b821117156121e357600080fd5b82525081516020918201928201910280838360005b838110156122105781810151838201526020016121f8565b505050509190910160409081526020830151920151959b949a5090985093965091945050505050565b600c54600160b01b900460ff168061225b5750600c54600160a81b900460ff16155b156114fb5761226861366e565b601180546001600160a01b0319166001600160a01b038316179055611202565b6000612292613208565b6001600160a01b03166331503927846122ab868661178b565b856040518463ffffffff1660e01b815260040180846001600160a01b03168152602001838152602001828152602001935050505060206040518083038186803b158015610fb557600080fd5b6010546001600160a01b031690565b6000612310613208565b6001600160a01b03166392bfe6d884846040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b158015610fb557600080fd5b6060610ff4613992565b6000610fe4826139f3565b600e546001600160a01b031690565b600b546001600160a01b031681565b600c54600160b01b900460ff16806123b95750600c54600160a81b900460ff16155b156114fb576123c661366e565b306001600160a01b0316816001600160a01b031663653718836040518163ffffffff1660e01b815260040160206040518083038186803b15801561240957600080fd5b505afa15801561241d573d6000803e3d6000fd5b505050506040513d602081101561243357600080fd5b50516001600160a01b03161461247a5760405162461bcd60e51b815260040180806020018281038252603d8152602001806148f0603d913960400191505060405180910390fd5b60105460408051600281526001600160a01b03928316602082015291831682820152517fbec98a6c0f609cda6b9f23b95824ba6ac733cb57edd17d344f2f2796844007399181900360600190a1601080546001600160a01b0319166001600160a01b038316179055611202565b600c54600160a01b900460ff161561253d576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b600c8054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b600061100d6125ad6132ff565b8461131c856040518060600160405280602581526020016149a660259139600160006125d76132ff565b6001600160a01b03908116825260208083019390935260409182016000908120918d168152925290205491906135ce565b600061100d6126156132ff565b8484613473565b6126246131a7565b6001600160a01b03166305109ecf3361263c33611d27565b6040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561268257600080fd5b505af1158015611c30573d6000803e3d6000fd5b600f54600e546001600160a01b039182169116811561274157816001600160a01b031663c7c62fab33866126ca338861178b565b876040518563ffffffff1660e01b815260040180856001600160a01b03168152602001846001600160a01b03168152602001838152602001828152602001945050505050600060405180830381600087803b15801561272857600080fd5b505af115801561273c573d6000803e3d6000fd5b505050505b816001600160a01b0316816001600160a01b03161415801561276b57506001600160a01b03811615155b15611c3057806001600160a01b031663c7c62fab338661278b338861178b565b876040518563ffffffff1660e01b815260040180856001600160a01b03168152602001846001600160a01b03168152602001838152602001828152602001945050505050600060405180830381600087803b1580156127e957600080fd5b505af19250505080156127fa575060015b611c3057611c30565b600061280d613208565b6001600160a01b0316639dc6b9f2848461282687611d27565b6040518463ffffffff1660e01b815260040180846001600160a01b03168152602001836001600160a01b03168152602001828152602001935050505060206040518083038186803b158015610fb557600080fd5b601154600160a01b900460ff1681565b6000610fe482613a42565b61289d6131a7565b6001600160a01b031663404d9e823384610edd33611d27565b60006128c0613208565b6001600160a01b0316634a03d556836128d885611d27565b6040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b15801561125b57600080fd5b805182511461296a576040805162461bcd60e51b8152602060048201526015602482015274082e4e4c2f240d8cadccee8d040dad2e6dac2e8c6d605b1b604482015290519081900360640190fd5b60006129746131a7565b9050600061298133611d27565b9050816001600160a01b03166305109ecf33836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156129da57600080fd5b505af11580156129ee573d6000803e3d6000fd5b5050505060005b84518110156111fd57826001600160a01b0316636230001a33878481518110612a1a57fe5b602002602001015185888681518110612a2f57fe5b60200260200101516040518563ffffffff1660e01b815260040180856001600160a01b03168152602001846001600160a01b03168152602001838152602001828152602001945050505050600060405180830381600087803b158015612a9457600080fd5b505af1158015612aa8573d6000803e3d6000fd5b5050600190920191506129f59050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6000610ff46136a5565b600c54600160a81b900460ff1681565b6000612b07613208565b6001600160a01b031663e587497e84846040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015612b5d57600080fd5b505af1158015610fc9573d6000803e3d6000fd5b6000612b7b613208565b6001600160a01b031663833aca928585612b95888761178b565b866040518563ffffffff1660e01b815260040180856001600160a01b03168152602001846001600160a01b0316815260200183815260200182815260200194505050505060206040518083038186803b158015612bf157600080fd5b505afa158015612c05573d6000803e3d6000fd5b505050506040513d6020811015612c1b57600080fd5b5051949350505050565b606080600080612c33613208565b6001600160a01b031663ed475a7987876040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060006040518083038186803b158015612c8757600080fd5b505afa158015612c9b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526080811015612cc457600080fd5b8101908080516040519392919084600160201b821115612ce357600080fd5b908301906020820185811115612cf857600080fd5b82518660208202830111600160201b82111715612d1457600080fd5b82525081516020918201928201910280838360005b83811015612d41578181015183820152602001612d29565b5050505090500160405260200180516040519392919084600160201b821115612d6957600080fd5b908301906020820185811115612d7e57600080fd5b82518660208202830111600160201b82111715612d9a57600080fd5b82525081516020918201928201910280838360005b83811015612dc7578181015183820152602001612daf565b505050509190910160409081526020830151920151959c949b509099509397509195505050505050565b600b546000906001600160a01b03163314612e4b576040805162461bcd60e51b815260206004820152601560248201527413db9b1e4818db19585b995c8818dbdb9d1c9858dd605a1b604482015290519081900360640190fd5b600a546113259060069085908590613b30565b612e66613933565b600c54600160a81b900460ff1615612ec5576040805162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2070726f64756374696f6e206d6f6465000000000000604482015290519081900360640190fd5b600c8054600161ff0160a01b031916600160a81b1790556040805160076001609c1b01815290517f83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c9181900360200190a1565b6000610ff461128f565b600b546000906001600160a01b03163314612f7c576040805162461bcd60e51b815260206004820152601560248201527413db9b1e4818db19585b995c8818dbdb9d1c9858dd605a1b604482015290519081900360640190fd5b600a54610fe4906007908490613b76565b6000612f97613208565b6001600160a01b031663f6837767836040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561125b57600080fd5b600c54600160b01b900460ff16806130055750600c54600160a81b900460ff16155b156114fb5761301261366e565b61301b81613c63565b600e546001600160a01b03161561309357600e546040805163f6a494af60e01b81526001600160a01b0384811660048301529151919092169163f6a494af91602480830192600092919082900301818387803b15801561307a57600080fd5b505af115801561308e573d6000803e3d6000fd5b505050505b600f546001600160a01b0316158015906130be5750600e54600f546001600160a01b03908116911614155b1561312a57600f546040805163f6a494af60e01b81526001600160a01b0384811660048301529151919092169163f6a494af91602480830192600092919082900301818387803b15801561311157600080fd5b505af1158015613125573d6000803e3d6000fd5b505050505b6010546001600160a01b0316156131a2576010546040805163f6a494af60e01b81526001600160a01b0384811660048301529151919092169163f6a494af91602480830192600092919082900301818387803b15801561318957600080fd5b505af115801561319d573d6000803e3d6000fd5b505050505b611202565b600f546000906001600160a01b031680610ff4576040805162461bcd60e51b815260206004820152601e60248201527f546f6b656e206d697373696e67207772697465205650436f6e74726163740000604482015290519081900360640190fd5b600e546000906001600160a01b031680610ff4576040805162461bcd60e51b815260206004820152601d60248201527f546f6b656e206d697373696e672072656164205650436f6e7472616374000000604482015290519081900360640190fd5b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156132f55780601f106132ca576101008083540402835291602001916132f5565b820191906000526020600020905b8154815290600101906020018083116132d857829003601f168201915b5050505050905090565b3390565b6001600160a01b0383166133485760405162461bcd60e51b81526004018080602001828103825260248152602001806149526024913960400191505060405180910390fd5b6001600160a01b03821661338d5760405162461bcd60e51b81526004018080602001828103825260228152602001806147dc6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600a548110156134305760405162461bcd60e51b81526004018080602001828103825260288152602001806148246028913960400191505060405180910390fd5b43811061346e5760405162461bcd60e51b81526004018080602001828103825260218152602001806147bb6021913960400191505060405180910390fd5b600a55565b6001600160a01b0383166134b85760405162461bcd60e51b815260040180806020018281038252602581526020018061492d6025913960400191505060405180910390fd5b6001600160a01b0382166134fd5760405162461bcd60e51b81526004018080602001828103825260238152602001806147986023913960400191505060405180910390fd5b613508838383613c85565b613545816040518060600160405280602681526020016147fe602691396001600160a01b03861660009081526020819052604090205491906135ce565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546135749082613830565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000818484111561365d5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561362257818101518382015260200161360a565b50505050905090810190601f16801561364f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60055460ff1690565b600c54600160b01b900460ff161561369b5733301461368957fe5b600c805460ff60b01b191690556136a3565b6136a3613933565b565b600a5490565b6136b3613933565b600082359050600060076001609c1b016001600160a01b0316636221a54b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156136fb57600080fd5b505afa15801561370f573d6000803e3d6000fd5b505050506040513d602081101561372557600080fd5b505160408051808201825242830180825282516020601f89018190048102820181019094528781529394509290918281019190889088908190840183828082843760009201829052509390945250506001600160e01b031986168152600d60209081526040909120835181558382015180519193506137ab9260018501929101906146fe565b509050507fed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b68382878760405180856001600160e01b0319168152602001848152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f191690920182900397509095505050505050a15050505050565b600082820183811015611325576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600081815260208390526040812054156138b557506000818152602083905260408120556001610fe4565b50600092915050565b600081600a548110156139025760405162461bcd60e51b815260040180806020018281038252602d81526020018061484c602d913960400191505060405180910390fd5b61390e60068585613e94565b949350505050565b3d604051818101604052816000823e821561392f578181f35b8181fd5b61393b611797565b6001600160a01b0316336001600160a01b0316146136a3576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156132f55780601f106132ca576101008083540402835291602001916132f5565b600081600a54811015613a375760405162461bcd60e51b815260040180806020018281038252602d81526020018061484c602d913960400191505060405180910390fd5b611325600784613ebf565b600081600a54811015613a865760405162461bcd60e51b815260040180806020018281038252602d81526020018061484c602d913960400191505060405180910390fd5b438310613ada576040805162461bcd60e51b815260206004820181905260248201527f43616e206f6e6c79206265207573656420666f72207061737420626c6f636b73604482015290519081900360640190fd5b600080613aea6009600787614002565b915091508015613b28576040805186815290517ffec477a10b4fcdfdf1114eb32b3caf6118b2d76d20e1fcb70007274bb4b616be9181900360200190a15b509392505050565b60006001600160a01b03841615613b6b576001600160a01b0384166000908152602086905260409020613b64908484613b76565b905061390e565b506000949350505050565b600081613b8557506000611325565b6001840154600160401b90046001600160401b031680613ba9576000915050611325565b60018501546001600160401b03166000613bcf613bc68388613830565b60018503614060565b9050815b8181108015613c04575060018101600090815260208990526040902054600160c01b90046001600160401b03168610155b15613c2057600081815260208990526040812055600101613bd3565b82811115613c5557613c3181614076565b60018901805467ffffffffffffffff19166001600160401b03929092169190911790555b919091039695505050505050565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b816001600160a01b0316836001600160a01b03161415613cec576040805162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015290519081900360640190fd5b60006001600160a01b038416613d03576000613d0c565b613d0c84611d27565b905060006001600160a01b038416613d25576000613d2e565b613d2e84611d27565b600f549091506001600160a01b03168015613dc8576040805163756da1b160e11b81526001600160a01b038881166004830152878116602483015260448201869052606482018590526084820187905291519183169163eadb43629160a48082019260009290919082900301818387803b158015613dab57600080fd5b505af1158015613dbf573d6000803e3d6000fd5b50505050613ded565b601154600160a01b900460ff16613ded576011805460ff60a01b1916600160a01b1790555b6010546001600160a01b03168015613e80576040805163756da1b160e11b81526001600160a01b038981166004830152888116602483015260448201879052606482018690526084820188905291519183169163eadb43629160a48082019260009290919082900301818387803b158015613e6757600080fd5b505af1158015613e7b573d6000803e3d6000fd5b505050505b613e8b8787876140be565b50505050505050565b6001600160a01b0382166000908152602084905260408120613eb68184613ebf565b95945050505050565b6001820154600090600160401b90046001600160401b031680613ee6576000915050610fe4565b4383101580613f1857506000198101600090815260208590526040902054600160c01b90046001600160401b03168310155b15613f4057600019016000908152602084905260409020546001600160c01b03169050610fe4565b60018401546001600160401b039081166000818152602087905260409020549091600160c01b90910416841015613fb9578015613fae5760405162461bcd60e51b81526004018080602001828103825260308152602001806149766030913960400191505060405180910390fd5b600092505050610fe4565b6001850154600090613fdf9087908490600160401b90046001600160401b0316886140fe565b6000908152602087905260409020546001600160c01b0316935050505092915050565b600081815260208490526040812054819080156140285760001901915060009050614058565b60006140348686613ebf565b9050614041816001613830565b600086815260208990526040902055925060019150505b935093915050565b600081831061406f5781611325565b5090919050565b6000600160401b82106140ba5760405162461bcd60e51b81526004018080602001828103825260268152602001806148a26026913960400191505060405180910390fd5b5090565b6001600160a01b0383166140db576140d68282614188565b611d22565b6001600160a01b0382166140f3576140d683826141e5565b611d22838383614294565b6000838161410d8560016142ca565b90505b8181111561417e57600061413a6002614134600161412e8688613830565b90613830565b90614327565b600081815260208a90526040902054909150600160c01b90046001600160401b0316851061416a57809250614178565b6141758160016142ca565b91505b50614110565b5095945050505050565b60006141988261412e854361178b565b90506141a66006848361438e565b600a546141ba906006908590600290613b30565b506141d36141cb8361412e4361236e565b6007906143ac565b600a54611c3090600790600290613b76565b600061422b8260405180604001604052806016815260200175213ab937103a37b7903134b3903337b91037bbb732b960511b815250614224864361178b565b91906135ce565b90506142396006848361438e565b600a5461424d906006908590600290613b30565b506141d36141cb836040518060400160405280601d81526020017f4275726e20746f6f2062696720666f7220746f74616c20737570706c790000008152506142244361236e565b6142a1600684848461456d565b600a546142b5906006908590600290613b30565b50600a54611c30906006908490600290613b30565b600082821115614321576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600080821161437d576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161438657fe5b049392505050565b6001600160a01b0382166000908152602084905260409020611c3081835b6001820154600160401b90046001600160401b0316806144635760405180604001604052806143da846145fc565b6001600160c01b031681526020016143f143614076565b6001600160401b03908116909152600080805260208681526040909120835181549490920151909216600160c01b026001600160c01b039182166001600160c01b0319909416939093171691909117905560018301805467ffffffffffffffff60401b1916600160401b179055611d22565b600019810160009081526020849052604090208054600160c01b90046001600160401b0316438114156144b957614499846145fc565b82546001600160c01b0319166001600160c01b03919091161782556111fd565b8043116144c257fe5b60405180604001604052806144d6866145fc565b6001600160c01b031681526020016144ed43614076565b6001600160401b039081169091526000858152602088815260409091208351815494909201518316600160c01b026001600160c01b039283166001600160c01b0319909516949094179091169290921790915560018087018054918601909216600160401b0267ffffffffffffffff60401b199091161790555050505050565b8061457757611c30565b6001600160a01b03831615801561459557506001600160a01b038216155b1561459c57fe5b6001600160a01b038316156145d05760006145c1826145bb8787614656565b906142ca565b90506145ce85858361438e565b505b6001600160a01b03821615611c305760006145ef8261412e8786614656565b90506111fd85848361438e565b6000600160c01b82106140ba576040805162461bcd60e51b815260206004820152601d60248201527f76616c756520646f65736e27742066697420696e203139322062697473000000604482015290519081900360640190fd5b6001600160a01b038116600090815260208390526040812061390e816001810154600090600160401b90046001600160401b03168061469957600091505061128a565b6000190160009081526020929092525060409020546001600160c01b031690565b50805460018160011615610100020316600290046000825580601f106146e05750611202565b601f0160209004906000526020600020908101906112029190614782565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282614734576000855561477a565b82601f1061474d57805160ff191683800117855561477a565b8280016001018555821561477a579182015b8281111561477a57825182559160200191906001019061475f565b506140ba9291505b5b808211156140ba576000815560010161478356fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373436c65616e757020626c6f636b206d75737420626520696e20746865207061737445524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365436c65616e757020626c6f636b206e756d626572206d757374206e65766572206465637265617365436865636b506f696e7461626c653a2072656164696e672066726f6d20636c65616e65642d757020626c6f636b5650436f6e7472616374206e6f7420636f6e6669677572656420666f72207265706c6163656d656e7453616665436173743a2076616c756520646f65736e27742066697420696e203634206269747345524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365476f7665726e616e636520766f746520706f77657220636f6e747261637420646f6573206e6f742062656c6f6e6720746f207468697320746f6b656e2e45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373436865636b506f696e74486973746f72793a2072656164696e672066726f6d20636c65616e65642d757020626c6f636b45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f5650436f6e7472616374206e6f74206f776e6564206279207468697320746f6b656ea2646970667358221220169900470ec4242111e241ddbbedf77efc08bef376d654e72181f5edb582624d64736f6c63430007060033",
1260
+ "bytecode": "0x60806040526011805460ff60a01b191690553480156200001e57600080fd5b5060405162004e0b38038062004e0b833981810160405260608110156200004457600080fd5b8151602083018051604051929492938301929190846401000000008211156200006c57600080fd5b9083019060208201858111156200008257600080fd5b82516401000000008111828201881017156200009d57600080fd5b82525081516020918201929091019080838360005b83811015620000cc578181015183820152602001620000b2565b50505050905090810190601f168015620000fa5780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200011e57600080fd5b9083019060208201858111156200013457600080fd5b82516401000000008111828201881017156200014f57600080fd5b82525081516020918201929091019080838360005b838110156200017e57818101518382015260200162000164565b50505050905090810190601f168015620001ac5780820380516001836020036101000a031916815260200191505b50604052505050828083838160039080519060200190620001cf9291906200032d565b508051620001e59060049060208401906200032d565b50506005805460ff19166012179055506001600160a01b03811615620002105762000210816200026a565b506001600160a01b03811662000260576040805162461bcd60e51b815260206004820152601060248201526f5f676f7665726e616e6365207a65726f60801b604482015290519081900360640190fd5b50505050620003d9565b600c54600160a01b900460ff1615620002ca576040805162461bcd60e51b815260206004820152601460248201527f696e697469616c6973656420213d2066616c7365000000000000000000000000604482015290519081900360640190fd5b600c8054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282620003655760008555620003b0565b82601f106200038057805160ff1916838001178555620003b0565b82800160010185558215620003b0579182015b82811115620003b057825182559160200191906001019062000393565b50620003be929150620003c2565b5090565b5b80821115620003be5760008155600101620003c3565b614a2280620003e96000396000f3fe608060405234801561001057600080fd5b506004361061038e5760003560e01c806392bfe6d8116101de578063d06dc3ad1161010f578063e64767aa116100ad578063f5f3d4f71161007c578063f5f3d4f714610e4b578063f62f8f3a14610e53578063f683776714610e70578063f6a494af14610e965761038e565b8063e64767aa14610db5578063ed475a7914610deb578063f0e292c914610e17578063f5a9838314610e435761038e565b8063dd62ed3e116100e9578063dd62ed3e14610d4b578063deea13e714610d79578063e17f212e14610d81578063e587497e14610d895761038e565b8063d06dc3ad14610bd6578063d6aa0b7714610c02578063dc4fcda714610c285761038e565b8063a457c2d71161017c578063bbd6fbf811610156578063bbd6fbf814610b57578063be0ca74714610b83578063c787a8fc14610bb1578063caeb942b14610bb95761038e565b8063a457c2d714610af7578063a9059cbb14610b23578063b302f39314610b4f5761038e565b80639b3baa0e116101b85780639b3baa0e14610a9b5780639ca20e4e14610aa35780639ca2231a14610aab5780639d6a890f14610ad15761038e565b806392bfe6d814610a4a57806395d89b4114610a76578063981b24d014610a7e5761038e565b806349e3c7e5116102c357806367fc4029116102615780637de5b8ed116102305780637de5b8ed146109235780637f4fcaa9146109f057806383035a8214610a165780638c2b8ae114610a425761038e565b806367fc40291461080a57806370a082311461083157806374e6310e14610857578063755d10a4146108fd5761038e565b80635aa6e6751161029d5780635aa6e675146107325780635d6d11eb1461073a5780635ff27079146107db57806362354e03146108025761038e565b806349e3c7e51461060b5780634eac870f146106fe5780634ee2cd7e146107065761038e565b80631fec092a1161033057806331d12a161161030a57806331d12a161461057f57806339509351146105a55780633e5aa26a146105d157806343ea370b146105ee5761038e565b80631fec092a1461050757806323b872dd1461052b578063313ce567146105615761038e565b8063095ea7b31161036c578063095ea7b31461047c57806313de97f5146104bc578063142d1018146104d957806318160ddd146104ff5761038e565b8063026e402b1461039357806304bb4e43146103c157806306fdde03146103ff575b600080fd5b6103bf600480360360408110156103a957600080fd5b506001600160a01b038135169060200135610ebc565b005b6103ed600480360360408110156103d757600080fd5b506001600160a01b038135169060200135610f57565b60408051918252519081900360200190f35b610407610fea565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610441578181015183820152602001610429565b50505050905090810190601f16801561046e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104a86004803603604081101561049257600080fd5b506001600160a01b038135169060200135610ff9565b604080519115158252519081900360200190f35b6103bf600480360360208110156104d257600080fd5b5035611016565b6103ed600480360360208110156104ef57600080fd5b50356001600160a01b0316611205565b6103ed61128f565b61050f611295565b604080516001600160a01b039092168252519081900360200190f35b6104a86004803603606081101561054157600080fd5b506001600160a01b038135811691602081013590911690604001356112a4565b61056961132c565b6040805160ff9092168252519081900360200190f35b6103bf6004803603602081101561059557600080fd5b50356001600160a01b0316611336565b6104a8600480360360408110156105bb57600080fd5b506001600160a01b038135169060200135611506565b6103ed600480360360208110156105e757600080fd5b5035611554565b6103ed6004803603602081101561060457600080fd5b503561155f565b6106ae6004803603604081101561062157600080fd5b810190602081018135600160201b81111561063b57600080fd5b82018360208201111561064d57600080fd5b803590602001918460208302840111600160201b8311171561066e57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550509135925061161a915050565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156106ea5781810151838201526020016106d2565b505050509050019250505060405180910390f35b61050f61177c565b6103ed6004803603604081101561071c57600080fd5b506001600160a01b03813516906020013561178b565b61050f611797565b6103ed6004803603602081101561075057600080fd5b810190602081018135600160201b81111561076a57600080fd5b82018360208201111561077c57600080fd5b803590602001918460208302840111600160201b8311171561079d57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061182d945050505050565b6103bf600480360360208110156107f157600080fd5b50356001600160e01b0319166118df565b61050f611c36565b6103bf6004803603602081101561082057600080fd5b50356001600160e01b031916611c41565b6103ed6004803603602081101561084757600080fd5b50356001600160a01b0316611d27565b61087e6004803603602081101561086d57600080fd5b50356001600160e01b031916611d42565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156108c15781810151838201526020016108a9565b50505050905090810190601f1680156108ee5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b6103bf6004803603602081101561091357600080fd5b50356001600160a01b0316611de9565b6109496004803603602081101561093957600080fd5b50356001600160a01b0316612076565b604051808060200180602001858152602001848152602001838103835287818151815260200191508051906020019060200280838360005b83811015610999578181015183820152602001610981565b50505050905001838103825286818151815260200191508051906020019060200280838360005b838110156109d85781810151838201526020016109c0565b50505050905001965050505050505060405180910390f35b6103bf60048036036020811015610a0657600080fd5b50356001600160a01b0316612239565b6103ed60048036036040811015610a2c57600080fd5b506001600160a01b038135169060200135612288565b61050f6122f7565b6103ed60048036036040811015610a6057600080fd5b506001600160a01b038135169060200135612306565b610407612364565b6103ed60048036036020811015610a9457600080fd5b503561236e565b61050f612379565b61050f612388565b6103bf60048036036020811015610ac157600080fd5b50356001600160a01b0316612397565b6103bf60048036036020811015610ae757600080fd5b50356001600160a01b03166124e7565b6104a860048036036040811015610b0d57600080fd5b506001600160a01b0381351690602001356125a0565b6104a860048036036040811015610b3957600080fd5b506001600160a01b038135169060200135612608565b6103bf61261c565b6103bf60048036036040811015610b6d57600080fd5b506001600160a01b038135169060200135612696565b6103ed60048036036040811015610b9957600080fd5b506001600160a01b0381358116916020013516612803565b6104a861287a565b6103ed60048036036020811015610bcf57600080fd5b503561288a565b6103bf60048036036040811015610bec57600080fd5b506001600160a01b038135169060200135612895565b6103ed60048036036020811015610c1857600080fd5b50356001600160a01b03166128b6565b6103bf60048036036040811015610c3e57600080fd5b810190602081018135600160201b811115610c5857600080fd5b820183602082011115610c6a57600080fd5b803590602001918460208302840111600160201b83111715610c8b57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b811115610cda57600080fd5b820183602082011115610cec57600080fd5b803590602001918460208302840111600160201b83111715610d0d57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061291c945050505050565b6103ed60048036036040811015610d6157600080fd5b506001600160a01b0381358116916020013516612ab8565b6103ed612ae3565b6104a8612aed565b6103ed60048036036040811015610d9f57600080fd5b506001600160a01b038135169060200135612afd565b6103ed60048036036060811015610dcb57600080fd5b506001600160a01b03813581169160208101359091169060400135612b71565b61094960048036036040811015610e0157600080fd5b506001600160a01b038135169060200135612c25565b6103ed60048036036040811015610e2d57600080fd5b506001600160a01b038135169060200135612df1565b6103bf612e5e565b6103ed612f18565b6103ed60048036036020811015610e6957600080fd5b5035612f22565b6103ed60048036036020811015610e8657600080fd5b50356001600160a01b0316612f8d565b6103bf60048036036020811015610eac57600080fd5b50356001600160a01b0316612fe3565b610ec46131a7565b6001600160a01b0316636230001a3384610edd33611d27565b856040518563ffffffff1660e01b815260040180856001600160a01b03168152602001846001600160a01b03168152602001838152602001828152602001945050505050600060405180830381600087803b158015610f3b57600080fd5b505af1158015610f4f573d6000803e3d6000fd5b505050505050565b6000610f61613208565b6001600160a01b03166304bb4e4384846040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b158015610fb557600080fd5b505afa158015610fc9573d6000803e3d6000fd5b505050506040513d6020811015610fdf57600080fd5b505190505b92915050565b6060610ff4613269565b905090565b600061100d6110066132ff565b8484613303565b50600192915050565b6011546001600160a01b03163314611075576040805162461bcd60e51b815260206004820152601a60248201527f6f6e6c7920636c65616e757020626c6f636b206d616e61676572000000000000604482015290519081900360640190fd5b61107e816133ef565b600e546001600160a01b0316156110f557600e54604080516313de97f560e01b81526004810184905290516001600160a01b03909216916313de97f59160248082019260009290919082900301818387803b1580156110dc57600080fd5b505af11580156110f0573d6000803e3d6000fd5b505050505b600f546001600160a01b0316158015906111205750600e54600f546001600160a01b03908116911614155b1561118b57600f54604080516313de97f560e01b81526004810184905290516001600160a01b03909216916313de97f59160248082019260009290919082900301818387803b15801561117257600080fd5b505af1158015611186573d6000803e3d6000fd5b505050505b6010546001600160a01b03161561120257601054604080516313de97f560e01b81526004810184905290516001600160a01b03909216916313de97f59160248082019260009290919082900301818387803b1580156111e957600080fd5b505af11580156111fd573d6000803e3d6000fd5b505050505b50565b600061120f613208565b6001600160a01b031663142d1018836040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561125b57600080fd5b505afa15801561126f573d6000803e3d6000fd5b505050506040513d602081101561128557600080fd5b505190505b919050565b60025490565b600f546001600160a01b031690565b60006112b1848484613473565b611321846112bd6132ff565b61131c856040518060600160405280602881526020016148c8602891396001600160a01b038a166000908152600160205260408120906112fb6132ff565b6001600160a01b0316815260208101919091526040016000205491906135ce565b613303565b5060015b9392505050565b6000610ff4613665565b600c54600160b01b900460ff16806113585750600c54600160a81b900460ff16155b156114fb5761136561366e565b6001600160a01b0381161561148e57306001600160a01b0316816001600160a01b031663653718836040518163ffffffff1660e01b815260040160206040518083038186803b1580156113b757600080fd5b505afa1580156113cb573d6000803e3d6000fd5b505050506040513d60208110156113e157600080fd5b50516001600160a01b0316146114285760405162461bcd60e51b81526004018080602001828103825260228152602001806149cb6022913960400191505060405180910390fd5b806001600160a01b03166313de97f561143f6136a5565b6040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561147557600080fd5b505af1158015611489573d6000803e3d6000fd5b505050505b600e5460408051600081526001600160a01b03928316602082015291831682820152517fbec98a6c0f609cda6b9f23b95824ba6ac733cb57edd17d344f2f2796844007399181900360600190a1600e80546001600160a01b0319166001600160a01b038316179055611202565b6112026000366136ab565b600061100d6115136132ff565b8461131c85600160006115246132ff565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490613830565b6000610fe48261236e565b600b546000906001600160a01b031633146115b9576040805162461bcd60e51b815260206004820152601560248201527413db9b1e4818db19585b995c8818dbdb9d1c9858dd605a1b604482015290519081900360640190fd5b600a54821061160f576040805162461bcd60e51b815260206004820152601e60248201527f4e6f20636c65616e757020616674657220636c65616e757020626c6f636b0000604482015290519081900360640190fd5b610fe460098361388a565b6060611624613208565b6001600160a01b03166349e3c7e584846040518363ffffffff1660e01b81526004018080602001838152602001828103825284818151815260200191508051906020019060200280838360005b83811015611689578181015183820152602001611671565b50505050905001935050505060006040518083038186803b1580156116ad57600080fd5b505afa1580156116c1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156116ea57600080fd5b8101908080516040519392919084600160201b82111561170957600080fd5b90830190602082018581111561171e57600080fd5b82518660208202830111600160201b8211171561173a57600080fd5b82525081516020918201928201910280838360005b8381101561176757818101518382015260200161174f565b50505050905001604052505050905092915050565b6011546001600160a01b031681565b600061132583836138be565b600c54600090600160a81b900460ff166117bc57600c546001600160a01b0316610ff4565b60076001609c1b016001600160a01b031663732524946040518163ffffffff1660e01b815260040160206040518083038186803b1580156117fc57600080fd5b505afa158015611810573d6000803e3d6000fd5b505050506040513d602081101561182657600080fd5b5051905090565b60006118376131a7565b6001600160a01b0316630f8b8af733846040518363ffffffff1660e01b815260040180836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019060200280838360005b838110156118a557818101518382015260200161188d565b505050509050019350505050602060405180830381600087803b1580156118cb57600080fd5b505af115801561126f573d6000803e3d6000fd5b60408051630debfda360e41b8152336004820152905160076001609c1b019163debfda30916024808301926020929190829003018186803b15801561192357600080fd5b505afa158015611937573d6000803e3d6000fd5b505050506040513d602081101561194d57600080fd5b5051611990576040805162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b604482015290519081900360640190fd5b6001600160e01b031981166000908152600d6020526040902080546119fc576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b8054421015611a52576040805162461bcd60e51b815260206004820152601960248201527f74696d656c6f636b3a206e6f7420616c6c6f7765642079657400000000000000604482015290519081900360640190fd5b6000816001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aec5780601f10611ac157610100808354040283529160200191611aec565b820191906000526020600020905b815481529060010190602001808311611acf57829003601f168201915b505050506001600160e01b031985166000908152600d602052604081208181559293509050611b1e60018301826146ba565b5050600c805460ff60b01b1916600160b01b17905560405181516000913091849190819060208401908083835b60208310611b6a5780518252601f199092019160209182019101611b4b565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611bcc576040519150601f19603f3d011682016040523d82523d6000602084013e611bd1565b606091505b5050600c805460ff60b01b19169055604080516001600160e01b03198716815242602082015281519293507fa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438929081900390910190a1611c3081613916565b50505050565b60076001609c1b0181565b611c49613933565b6001600160e01b031981166000908152600d6020526040902054611cb4576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b604080516001600160e01b03198316815242602082015281517f7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8929181900390910190a16001600160e01b031981166000908152600d6020526040812081815590611d2260018301826146ba565b505050565b6001600160a01b031660009081526020819052604090205490565b600d602090815260009182526040918290208054600180830180548651600293821615610100026000190190911692909204601f810186900486028301860190965285825291949293909290830182828015611ddf5780601f10611db457610100808354040283529160200191611ddf565b820191906000526020600020905b815481529060010190602001808311611dc257829003601f168201915b5050505050905082565b600c54600160b01b900460ff1680611e0b5750600c54600160a81b900460ff16155b156114fb57611e1861366e565b6001600160a01b0381161561200957306001600160a01b0316816001600160a01b031663653718836040518163ffffffff1660e01b815260040160206040518083038186803b158015611e6a57600080fd5b505afa158015611e7e573d6000803e3d6000fd5b505050506040513d6020811015611e9457600080fd5b50516001600160a01b031614611edb5760405162461bcd60e51b81526004018080602001828103825260228152602001806149cb6022913960400191505060405180910390fd5b601154600160a01b900460ff161580611f555750806001600160a01b031663aa94d3f26040518163ffffffff1660e01b815260040160206040518083038186803b158015611f2857600080fd5b505afa158015611f3c573d6000803e3d6000fd5b505050506040513d6020811015611f5257600080fd5b50515b611f905760405162461bcd60e51b81526004018080602001828103825260298152602001806148796029913960400191505060405180910390fd5b806001600160a01b03166313de97f5611fa76136a5565b6040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611fdd57600080fd5b505af1158015611ff1573d6000803e3d6000fd5b50506011805460ff60a01b1916600160a01b17905550505b600f5460408051600181526001600160a01b03928316602082015291831682820152517fbec98a6c0f609cda6b9f23b95824ba6ac733cb57edd17d344f2f2796844007399181900360600190a1600f80546001600160a01b0319166001600160a01b038316179055611202565b606080600080612084613208565b6001600160a01b0316637de5b8ed866040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060006040518083038186803b1580156120d057600080fd5b505afa1580156120e4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052608081101561210d57600080fd5b8101908080516040519392919084600160201b82111561212c57600080fd5b90830190602082018581111561214157600080fd5b82518660208202830111600160201b8211171561215d57600080fd5b82525081516020918201928201910280838360005b8381101561218a578181015183820152602001612172565b5050505090500160405260200180516040519392919084600160201b8211156121b257600080fd5b9083019060208201858111156121c757600080fd5b82518660208202830111600160201b821117156121e357600080fd5b82525081516020918201928201910280838360005b838110156122105781810151838201526020016121f8565b505050509190910160409081526020830151920151959b949a5090985093965091945050505050565b600c54600160b01b900460ff168061225b5750600c54600160a81b900460ff16155b156114fb5761226861366e565b601180546001600160a01b0319166001600160a01b038316179055611202565b6000612292613208565b6001600160a01b03166331503927846122ab868661178b565b856040518463ffffffff1660e01b815260040180846001600160a01b03168152602001838152602001828152602001935050505060206040518083038186803b158015610fb557600080fd5b6010546001600160a01b031690565b6000612310613208565b6001600160a01b03166392bfe6d884846040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b158015610fb557600080fd5b6060610ff4613992565b6000610fe4826139f3565b600e546001600160a01b031690565b600b546001600160a01b031681565b600c54600160b01b900460ff16806123b95750600c54600160a81b900460ff16155b156114fb576123c661366e565b306001600160a01b0316816001600160a01b031663653718836040518163ffffffff1660e01b815260040160206040518083038186803b15801561240957600080fd5b505afa15801561241d573d6000803e3d6000fd5b505050506040513d602081101561243357600080fd5b50516001600160a01b03161461247a5760405162461bcd60e51b815260040180806020018281038252603d8152602001806148f0603d913960400191505060405180910390fd5b60105460408051600281526001600160a01b03928316602082015291831682820152517fbec98a6c0f609cda6b9f23b95824ba6ac733cb57edd17d344f2f2796844007399181900360600190a1601080546001600160a01b0319166001600160a01b038316179055611202565b600c54600160a01b900460ff161561253d576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b600c8054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b600061100d6125ad6132ff565b8461131c856040518060600160405280602581526020016149a660259139600160006125d76132ff565b6001600160a01b03908116825260208083019390935260409182016000908120918d168152925290205491906135ce565b600061100d6126156132ff565b8484613473565b6126246131a7565b6001600160a01b03166305109ecf3361263c33611d27565b6040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561268257600080fd5b505af1158015611c30573d6000803e3d6000fd5b600f54600e546001600160a01b039182169116811561274157816001600160a01b031663c7c62fab33866126ca338861178b565b876040518563ffffffff1660e01b815260040180856001600160a01b03168152602001846001600160a01b03168152602001838152602001828152602001945050505050600060405180830381600087803b15801561272857600080fd5b505af115801561273c573d6000803e3d6000fd5b505050505b816001600160a01b0316816001600160a01b03161415801561276b57506001600160a01b03811615155b15611c3057806001600160a01b031663c7c62fab338661278b338861178b565b876040518563ffffffff1660e01b815260040180856001600160a01b03168152602001846001600160a01b03168152602001838152602001828152602001945050505050600060405180830381600087803b1580156127e957600080fd5b505af19250505080156127fa575060015b611c3057611c30565b600061280d613208565b6001600160a01b0316639dc6b9f2848461282687611d27565b6040518463ffffffff1660e01b815260040180846001600160a01b03168152602001836001600160a01b03168152602001828152602001935050505060206040518083038186803b158015610fb557600080fd5b601154600160a01b900460ff1681565b6000610fe482613a42565b61289d6131a7565b6001600160a01b031663404d9e823384610edd33611d27565b60006128c0613208565b6001600160a01b0316634a03d556836128d885611d27565b6040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b15801561125b57600080fd5b805182511461296a576040805162461bcd60e51b8152602060048201526015602482015274082e4e4c2f240d8cadccee8d040dad2e6dac2e8c6d605b1b604482015290519081900360640190fd5b60006129746131a7565b9050600061298133611d27565b9050816001600160a01b03166305109ecf33836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156129da57600080fd5b505af11580156129ee573d6000803e3d6000fd5b5050505060005b84518110156111fd57826001600160a01b0316636230001a33878481518110612a1a57fe5b602002602001015185888681518110612a2f57fe5b60200260200101516040518563ffffffff1660e01b815260040180856001600160a01b03168152602001846001600160a01b03168152602001838152602001828152602001945050505050600060405180830381600087803b158015612a9457600080fd5b505af1158015612aa8573d6000803e3d6000fd5b5050600190920191506129f59050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6000610ff46136a5565b600c54600160a81b900460ff1681565b6000612b07613208565b6001600160a01b031663e587497e84846040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015612b5d57600080fd5b505af1158015610fc9573d6000803e3d6000fd5b6000612b7b613208565b6001600160a01b031663833aca928585612b95888761178b565b866040518563ffffffff1660e01b815260040180856001600160a01b03168152602001846001600160a01b0316815260200183815260200182815260200194505050505060206040518083038186803b158015612bf157600080fd5b505afa158015612c05573d6000803e3d6000fd5b505050506040513d6020811015612c1b57600080fd5b5051949350505050565b606080600080612c33613208565b6001600160a01b031663ed475a7987876040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060006040518083038186803b158015612c8757600080fd5b505afa158015612c9b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526080811015612cc457600080fd5b8101908080516040519392919084600160201b821115612ce357600080fd5b908301906020820185811115612cf857600080fd5b82518660208202830111600160201b82111715612d1457600080fd5b82525081516020918201928201910280838360005b83811015612d41578181015183820152602001612d29565b5050505090500160405260200180516040519392919084600160201b821115612d6957600080fd5b908301906020820185811115612d7e57600080fd5b82518660208202830111600160201b82111715612d9a57600080fd5b82525081516020918201928201910280838360005b83811015612dc7578181015183820152602001612daf565b505050509190910160409081526020830151920151959c949b509099509397509195505050505050565b600b546000906001600160a01b03163314612e4b576040805162461bcd60e51b815260206004820152601560248201527413db9b1e4818db19585b995c8818dbdb9d1c9858dd605a1b604482015290519081900360640190fd5b600a546113259060069085908590613b30565b612e66613933565b600c54600160a81b900460ff1615612ec5576040805162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2070726f64756374696f6e206d6f6465000000000000604482015290519081900360640190fd5b600c8054600161ff0160a01b031916600160a81b1790556040805160076001609c1b01815290517f83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c9181900360200190a1565b6000610ff461128f565b600b546000906001600160a01b03163314612f7c576040805162461bcd60e51b815260206004820152601560248201527413db9b1e4818db19585b995c8818dbdb9d1c9858dd605a1b604482015290519081900360640190fd5b600a54610fe4906007908490613b76565b6000612f97613208565b6001600160a01b031663f6837767836040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561125b57600080fd5b600c54600160b01b900460ff16806130055750600c54600160a81b900460ff16155b156114fb5761301261366e565b61301b81613c63565b600e546001600160a01b03161561309357600e546040805163f6a494af60e01b81526001600160a01b0384811660048301529151919092169163f6a494af91602480830192600092919082900301818387803b15801561307a57600080fd5b505af115801561308e573d6000803e3d6000fd5b505050505b600f546001600160a01b0316158015906130be5750600e54600f546001600160a01b03908116911614155b1561312a57600f546040805163f6a494af60e01b81526001600160a01b0384811660048301529151919092169163f6a494af91602480830192600092919082900301818387803b15801561311157600080fd5b505af1158015613125573d6000803e3d6000fd5b505050505b6010546001600160a01b0316156131a2576010546040805163f6a494af60e01b81526001600160a01b0384811660048301529151919092169163f6a494af91602480830192600092919082900301818387803b15801561318957600080fd5b505af115801561319d573d6000803e3d6000fd5b505050505b611202565b600f546000906001600160a01b031680610ff4576040805162461bcd60e51b815260206004820152601e60248201527f546f6b656e206d697373696e67207772697465205650436f6e74726163740000604482015290519081900360640190fd5b600e546000906001600160a01b031680610ff4576040805162461bcd60e51b815260206004820152601d60248201527f546f6b656e206d697373696e672072656164205650436f6e7472616374000000604482015290519081900360640190fd5b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156132f55780601f106132ca576101008083540402835291602001916132f5565b820191906000526020600020905b8154815290600101906020018083116132d857829003601f168201915b5050505050905090565b3390565b6001600160a01b0383166133485760405162461bcd60e51b81526004018080602001828103825260248152602001806149526024913960400191505060405180910390fd5b6001600160a01b03821661338d5760405162461bcd60e51b81526004018080602001828103825260228152602001806147dc6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600a548110156134305760405162461bcd60e51b81526004018080602001828103825260288152602001806148246028913960400191505060405180910390fd5b43811061346e5760405162461bcd60e51b81526004018080602001828103825260218152602001806147bb6021913960400191505060405180910390fd5b600a55565b6001600160a01b0383166134b85760405162461bcd60e51b815260040180806020018281038252602581526020018061492d6025913960400191505060405180910390fd5b6001600160a01b0382166134fd5760405162461bcd60e51b81526004018080602001828103825260238152602001806147986023913960400191505060405180910390fd5b613508838383613c85565b613545816040518060600160405280602681526020016147fe602691396001600160a01b03861660009081526020819052604090205491906135ce565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546135749082613830565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000818484111561365d5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561362257818101518382015260200161360a565b50505050905090810190601f16801561364f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60055460ff1690565b600c54600160b01b900460ff161561369b5733301461368957fe5b600c805460ff60b01b191690556136a3565b6136a3613933565b565b600a5490565b6136b3613933565b600082359050600060076001609c1b016001600160a01b0316636221a54b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156136fb57600080fd5b505afa15801561370f573d6000803e3d6000fd5b505050506040513d602081101561372557600080fd5b505160408051808201825242830180825282516020601f89018190048102820181019094528781529394509290918281019190889088908190840183828082843760009201829052509390945250506001600160e01b031986168152600d60209081526040909120835181558382015180519193506137ab9260018501929101906146fe565b509050507fed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b68382878760405180856001600160e01b0319168152602001848152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f191690920182900397509095505050505050a15050505050565b600082820183811015611325576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600081815260208390526040812054156138b557506000818152602083905260408120556001610fe4565b50600092915050565b600081600a548110156139025760405162461bcd60e51b815260040180806020018281038252602d81526020018061484c602d913960400191505060405180910390fd5b61390e60068585613e94565b949350505050565b3d604051818101604052816000823e821561392f578181f35b8181fd5b61393b611797565b6001600160a01b0316336001600160a01b0316146136a3576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156132f55780601f106132ca576101008083540402835291602001916132f5565b600081600a54811015613a375760405162461bcd60e51b815260040180806020018281038252602d81526020018061484c602d913960400191505060405180910390fd5b611325600784613ebf565b600081600a54811015613a865760405162461bcd60e51b815260040180806020018281038252602d81526020018061484c602d913960400191505060405180910390fd5b438310613ada576040805162461bcd60e51b815260206004820181905260248201527f43616e206f6e6c79206265207573656420666f72207061737420626c6f636b73604482015290519081900360640190fd5b600080613aea6009600787614002565b915091508015613b28576040805186815290517ffec477a10b4fcdfdf1114eb32b3caf6118b2d76d20e1fcb70007274bb4b616be9181900360200190a15b509392505050565b60006001600160a01b03841615613b6b576001600160a01b0384166000908152602086905260409020613b64908484613b76565b905061390e565b506000949350505050565b600081613b8557506000611325565b6001840154600160401b90046001600160401b031680613ba9576000915050611325565b60018501546001600160401b03166000613bcf613bc68388613830565b60018503614060565b9050815b8181108015613c04575060018101600090815260208990526040902054600160c01b90046001600160401b03168610155b15613c2057600081815260208990526040812055600101613bd3565b82811115613c5557613c3181614076565b60018901805467ffffffffffffffff19166001600160401b03929092169190911790555b919091039695505050505050565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b816001600160a01b0316836001600160a01b03161415613cec576040805162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015290519081900360640190fd5b60006001600160a01b038416613d03576000613d0c565b613d0c84611d27565b905060006001600160a01b038416613d25576000613d2e565b613d2e84611d27565b600f549091506001600160a01b03168015613dc8576040805163756da1b160e11b81526001600160a01b038881166004830152878116602483015260448201869052606482018590526084820187905291519183169163eadb43629160a48082019260009290919082900301818387803b158015613dab57600080fd5b505af1158015613dbf573d6000803e3d6000fd5b50505050613ded565b601154600160a01b900460ff16613ded576011805460ff60a01b1916600160a01b1790555b6010546001600160a01b03168015613e80576040805163756da1b160e11b81526001600160a01b038981166004830152888116602483015260448201879052606482018690526084820188905291519183169163eadb43629160a48082019260009290919082900301818387803b158015613e6757600080fd5b505af1158015613e7b573d6000803e3d6000fd5b505050505b613e8b8787876140be565b50505050505050565b6001600160a01b0382166000908152602084905260408120613eb68184613ebf565b95945050505050565b6001820154600090600160401b90046001600160401b031680613ee6576000915050610fe4565b4383101580613f1857506000198101600090815260208590526040902054600160c01b90046001600160401b03168310155b15613f4057600019016000908152602084905260409020546001600160c01b03169050610fe4565b60018401546001600160401b039081166000818152602087905260409020549091600160c01b90910416841015613fb9578015613fae5760405162461bcd60e51b81526004018080602001828103825260308152602001806149766030913960400191505060405180910390fd5b600092505050610fe4565b6001850154600090613fdf9087908490600160401b90046001600160401b0316886140fe565b6000908152602087905260409020546001600160c01b0316935050505092915050565b600081815260208490526040812054819080156140285760001901915060009050614058565b60006140348686613ebf565b9050614041816001613830565b600086815260208990526040902055925060019150505b935093915050565b600081831061406f5781611325565b5090919050565b6000600160401b82106140ba5760405162461bcd60e51b81526004018080602001828103825260268152602001806148a26026913960400191505060405180910390fd5b5090565b6001600160a01b0383166140db576140d68282614188565b611d22565b6001600160a01b0382166140f3576140d683826141e5565b611d22838383614294565b6000838161410d8560016142ca565b90505b8181111561417e57600061413a6002614134600161412e8688613830565b90613830565b90614327565b600081815260208a90526040902054909150600160c01b90046001600160401b0316851061416a57809250614178565b6141758160016142ca565b91505b50614110565b5095945050505050565b60006141988261412e854361178b565b90506141a66006848361438e565b600a546141ba906006908590600290613b30565b506141d36141cb8361412e4361236e565b6007906143ac565b600a54611c3090600790600290613b76565b600061422b8260405180604001604052806016815260200175213ab937103a37b7903134b3903337b91037bbb732b960511b815250614224864361178b565b91906135ce565b90506142396006848361438e565b600a5461424d906006908590600290613b30565b506141d36141cb836040518060400160405280601d81526020017f4275726e20746f6f2062696720666f7220746f74616c20737570706c790000008152506142244361236e565b6142a1600684848461456d565b600a546142b5906006908590600290613b30565b50600a54611c30906006908490600290613b30565b600082821115614321576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600080821161437d576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161438657fe5b049392505050565b6001600160a01b0382166000908152602084905260409020611c3081835b6001820154600160401b90046001600160401b0316806144635760405180604001604052806143da846145fc565b6001600160c01b031681526020016143f143614076565b6001600160401b03908116909152600080805260208681526040909120835181549490920151909216600160c01b026001600160c01b039182166001600160c01b0319909416939093171691909117905560018301805467ffffffffffffffff60401b1916600160401b179055611d22565b600019810160009081526020849052604090208054600160c01b90046001600160401b0316438114156144b957614499846145fc565b82546001600160c01b0319166001600160c01b03919091161782556111fd565b8043116144c257fe5b60405180604001604052806144d6866145fc565b6001600160c01b031681526020016144ed43614076565b6001600160401b039081169091526000858152602088815260409091208351815494909201518316600160c01b026001600160c01b039283166001600160c01b0319909516949094179091169290921790915560018087018054918601909216600160401b0267ffffffffffffffff60401b199091161790555050505050565b8061457757611c30565b6001600160a01b03831615801561459557506001600160a01b038216155b1561459c57fe5b6001600160a01b038316156145d05760006145c1826145bb8787614656565b906142ca565b90506145ce85858361438e565b505b6001600160a01b03821615611c305760006145ef8261412e8786614656565b90506111fd85848361438e565b6000600160c01b82106140ba576040805162461bcd60e51b815260206004820152601d60248201527f76616c756520646f65736e27742066697420696e203139322062697473000000604482015290519081900360640190fd5b6001600160a01b038116600090815260208390526040812061390e816001810154600090600160401b90046001600160401b03168061469957600091505061128a565b6000190160009081526020929092525060409020546001600160c01b031690565b50805460018160011615610100020316600290046000825580601f106146e05750611202565b601f0160209004906000526020600020908101906112029190614782565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282614734576000855561477a565b82601f1061474d57805160ff191683800117855561477a565b8280016001018555821561477a579182015b8281111561477a57825182559160200191906001019061475f565b506140ba9291505b5b808211156140ba576000815560010161478356fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373436c65616e757020626c6f636b206d75737420626520696e20746865207061737445524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365436c65616e757020626c6f636b206e756d626572206d757374206e65766572206465637265617365436865636b506f696e7461626c653a2072656164696e672066726f6d20636c65616e65642d757020626c6f636b5650436f6e7472616374206e6f7420636f6e6669677572656420666f72207265706c6163656d656e7453616665436173743a2076616c756520646f65736e27742066697420696e203634206269747345524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365476f7665726e616e636520766f746520706f77657220636f6e747261637420646f6573206e6f742062656c6f6e6720746f207468697320746f6b656e2e45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373436865636b506f696e74486973746f72793a2072656164696e672066726f6d20636c65616e65642d757020626c6f636b45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f5650436f6e7472616374206e6f74206f776e6564206279207468697320746f6b656ea26469706673582212207cd602982d43c96494463e4fa88923de3382a7398bdca1bd0c7a637b5840060b64736f6c63430007060033",
1261
+ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061038e5760003560e01c806392bfe6d8116101de578063d06dc3ad1161010f578063e64767aa116100ad578063f5f3d4f71161007c578063f5f3d4f714610e4b578063f62f8f3a14610e53578063f683776714610e70578063f6a494af14610e965761038e565b8063e64767aa14610db5578063ed475a7914610deb578063f0e292c914610e17578063f5a9838314610e435761038e565b8063dd62ed3e116100e9578063dd62ed3e14610d4b578063deea13e714610d79578063e17f212e14610d81578063e587497e14610d895761038e565b8063d06dc3ad14610bd6578063d6aa0b7714610c02578063dc4fcda714610c285761038e565b8063a457c2d71161017c578063bbd6fbf811610156578063bbd6fbf814610b57578063be0ca74714610b83578063c787a8fc14610bb1578063caeb942b14610bb95761038e565b8063a457c2d714610af7578063a9059cbb14610b23578063b302f39314610b4f5761038e565b80639b3baa0e116101b85780639b3baa0e14610a9b5780639ca20e4e14610aa35780639ca2231a14610aab5780639d6a890f14610ad15761038e565b806392bfe6d814610a4a57806395d89b4114610a76578063981b24d014610a7e5761038e565b806349e3c7e5116102c357806367fc4029116102615780637de5b8ed116102305780637de5b8ed146109235780637f4fcaa9146109f057806383035a8214610a165780638c2b8ae114610a425761038e565b806367fc40291461080a57806370a082311461083157806374e6310e14610857578063755d10a4146108fd5761038e565b80635aa6e6751161029d5780635aa6e675146107325780635d6d11eb1461073a5780635ff27079146107db57806362354e03146108025761038e565b806349e3c7e51461060b5780634eac870f146106fe5780634ee2cd7e146107065761038e565b80631fec092a1161033057806331d12a161161030a57806331d12a161461057f57806339509351146105a55780633e5aa26a146105d157806343ea370b146105ee5761038e565b80631fec092a1461050757806323b872dd1461052b578063313ce567146105615761038e565b8063095ea7b31161036c578063095ea7b31461047c57806313de97f5146104bc578063142d1018146104d957806318160ddd146104ff5761038e565b8063026e402b1461039357806304bb4e43146103c157806306fdde03146103ff575b600080fd5b6103bf600480360360408110156103a957600080fd5b506001600160a01b038135169060200135610ebc565b005b6103ed600480360360408110156103d757600080fd5b506001600160a01b038135169060200135610f57565b60408051918252519081900360200190f35b610407610fea565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610441578181015183820152602001610429565b50505050905090810190601f16801561046e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104a86004803603604081101561049257600080fd5b506001600160a01b038135169060200135610ff9565b604080519115158252519081900360200190f35b6103bf600480360360208110156104d257600080fd5b5035611016565b6103ed600480360360208110156104ef57600080fd5b50356001600160a01b0316611205565b6103ed61128f565b61050f611295565b604080516001600160a01b039092168252519081900360200190f35b6104a86004803603606081101561054157600080fd5b506001600160a01b038135811691602081013590911690604001356112a4565b61056961132c565b6040805160ff9092168252519081900360200190f35b6103bf6004803603602081101561059557600080fd5b50356001600160a01b0316611336565b6104a8600480360360408110156105bb57600080fd5b506001600160a01b038135169060200135611506565b6103ed600480360360208110156105e757600080fd5b5035611554565b6103ed6004803603602081101561060457600080fd5b503561155f565b6106ae6004803603604081101561062157600080fd5b810190602081018135600160201b81111561063b57600080fd5b82018360208201111561064d57600080fd5b803590602001918460208302840111600160201b8311171561066e57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550509135925061161a915050565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156106ea5781810151838201526020016106d2565b505050509050019250505060405180910390f35b61050f61177c565b6103ed6004803603604081101561071c57600080fd5b506001600160a01b03813516906020013561178b565b61050f611797565b6103ed6004803603602081101561075057600080fd5b810190602081018135600160201b81111561076a57600080fd5b82018360208201111561077c57600080fd5b803590602001918460208302840111600160201b8311171561079d57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061182d945050505050565b6103bf600480360360208110156107f157600080fd5b50356001600160e01b0319166118df565b61050f611c36565b6103bf6004803603602081101561082057600080fd5b50356001600160e01b031916611c41565b6103ed6004803603602081101561084757600080fd5b50356001600160a01b0316611d27565b61087e6004803603602081101561086d57600080fd5b50356001600160e01b031916611d42565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156108c15781810151838201526020016108a9565b50505050905090810190601f1680156108ee5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b6103bf6004803603602081101561091357600080fd5b50356001600160a01b0316611de9565b6109496004803603602081101561093957600080fd5b50356001600160a01b0316612076565b604051808060200180602001858152602001848152602001838103835287818151815260200191508051906020019060200280838360005b83811015610999578181015183820152602001610981565b50505050905001838103825286818151815260200191508051906020019060200280838360005b838110156109d85781810151838201526020016109c0565b50505050905001965050505050505060405180910390f35b6103bf60048036036020811015610a0657600080fd5b50356001600160a01b0316612239565b6103ed60048036036040811015610a2c57600080fd5b506001600160a01b038135169060200135612288565b61050f6122f7565b6103ed60048036036040811015610a6057600080fd5b506001600160a01b038135169060200135612306565b610407612364565b6103ed60048036036020811015610a9457600080fd5b503561236e565b61050f612379565b61050f612388565b6103bf60048036036020811015610ac157600080fd5b50356001600160a01b0316612397565b6103bf60048036036020811015610ae757600080fd5b50356001600160a01b03166124e7565b6104a860048036036040811015610b0d57600080fd5b506001600160a01b0381351690602001356125a0565b6104a860048036036040811015610b3957600080fd5b506001600160a01b038135169060200135612608565b6103bf61261c565b6103bf60048036036040811015610b6d57600080fd5b506001600160a01b038135169060200135612696565b6103ed60048036036040811015610b9957600080fd5b506001600160a01b0381358116916020013516612803565b6104a861287a565b6103ed60048036036020811015610bcf57600080fd5b503561288a565b6103bf60048036036040811015610bec57600080fd5b506001600160a01b038135169060200135612895565b6103ed60048036036020811015610c1857600080fd5b50356001600160a01b03166128b6565b6103bf60048036036040811015610c3e57600080fd5b810190602081018135600160201b811115610c5857600080fd5b820183602082011115610c6a57600080fd5b803590602001918460208302840111600160201b83111715610c8b57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b811115610cda57600080fd5b820183602082011115610cec57600080fd5b803590602001918460208302840111600160201b83111715610d0d57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061291c945050505050565b6103ed60048036036040811015610d6157600080fd5b506001600160a01b0381358116916020013516612ab8565b6103ed612ae3565b6104a8612aed565b6103ed60048036036040811015610d9f57600080fd5b506001600160a01b038135169060200135612afd565b6103ed60048036036060811015610dcb57600080fd5b506001600160a01b03813581169160208101359091169060400135612b71565b61094960048036036040811015610e0157600080fd5b506001600160a01b038135169060200135612c25565b6103ed60048036036040811015610e2d57600080fd5b506001600160a01b038135169060200135612df1565b6103bf612e5e565b6103ed612f18565b6103ed60048036036020811015610e6957600080fd5b5035612f22565b6103ed60048036036020811015610e8657600080fd5b50356001600160a01b0316612f8d565b6103bf60048036036020811015610eac57600080fd5b50356001600160a01b0316612fe3565b610ec46131a7565b6001600160a01b0316636230001a3384610edd33611d27565b856040518563ffffffff1660e01b815260040180856001600160a01b03168152602001846001600160a01b03168152602001838152602001828152602001945050505050600060405180830381600087803b158015610f3b57600080fd5b505af1158015610f4f573d6000803e3d6000fd5b505050505050565b6000610f61613208565b6001600160a01b03166304bb4e4384846040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b158015610fb557600080fd5b505afa158015610fc9573d6000803e3d6000fd5b505050506040513d6020811015610fdf57600080fd5b505190505b92915050565b6060610ff4613269565b905090565b600061100d6110066132ff565b8484613303565b50600192915050565b6011546001600160a01b03163314611075576040805162461bcd60e51b815260206004820152601a60248201527f6f6e6c7920636c65616e757020626c6f636b206d616e61676572000000000000604482015290519081900360640190fd5b61107e816133ef565b600e546001600160a01b0316156110f557600e54604080516313de97f560e01b81526004810184905290516001600160a01b03909216916313de97f59160248082019260009290919082900301818387803b1580156110dc57600080fd5b505af11580156110f0573d6000803e3d6000fd5b505050505b600f546001600160a01b0316158015906111205750600e54600f546001600160a01b03908116911614155b1561118b57600f54604080516313de97f560e01b81526004810184905290516001600160a01b03909216916313de97f59160248082019260009290919082900301818387803b15801561117257600080fd5b505af1158015611186573d6000803e3d6000fd5b505050505b6010546001600160a01b03161561120257601054604080516313de97f560e01b81526004810184905290516001600160a01b03909216916313de97f59160248082019260009290919082900301818387803b1580156111e957600080fd5b505af11580156111fd573d6000803e3d6000fd5b505050505b50565b600061120f613208565b6001600160a01b031663142d1018836040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561125b57600080fd5b505afa15801561126f573d6000803e3d6000fd5b505050506040513d602081101561128557600080fd5b505190505b919050565b60025490565b600f546001600160a01b031690565b60006112b1848484613473565b611321846112bd6132ff565b61131c856040518060600160405280602881526020016148c8602891396001600160a01b038a166000908152600160205260408120906112fb6132ff565b6001600160a01b0316815260208101919091526040016000205491906135ce565b613303565b5060015b9392505050565b6000610ff4613665565b600c54600160b01b900460ff16806113585750600c54600160a81b900460ff16155b156114fb5761136561366e565b6001600160a01b0381161561148e57306001600160a01b0316816001600160a01b031663653718836040518163ffffffff1660e01b815260040160206040518083038186803b1580156113b757600080fd5b505afa1580156113cb573d6000803e3d6000fd5b505050506040513d60208110156113e157600080fd5b50516001600160a01b0316146114285760405162461bcd60e51b81526004018080602001828103825260228152602001806149cb6022913960400191505060405180910390fd5b806001600160a01b03166313de97f561143f6136a5565b6040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561147557600080fd5b505af1158015611489573d6000803e3d6000fd5b505050505b600e5460408051600081526001600160a01b03928316602082015291831682820152517fbec98a6c0f609cda6b9f23b95824ba6ac733cb57edd17d344f2f2796844007399181900360600190a1600e80546001600160a01b0319166001600160a01b038316179055611202565b6112026000366136ab565b600061100d6115136132ff565b8461131c85600160006115246132ff565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490613830565b6000610fe48261236e565b600b546000906001600160a01b031633146115b9576040805162461bcd60e51b815260206004820152601560248201527413db9b1e4818db19585b995c8818dbdb9d1c9858dd605a1b604482015290519081900360640190fd5b600a54821061160f576040805162461bcd60e51b815260206004820152601e60248201527f4e6f20636c65616e757020616674657220636c65616e757020626c6f636b0000604482015290519081900360640190fd5b610fe460098361388a565b6060611624613208565b6001600160a01b03166349e3c7e584846040518363ffffffff1660e01b81526004018080602001838152602001828103825284818151815260200191508051906020019060200280838360005b83811015611689578181015183820152602001611671565b50505050905001935050505060006040518083038186803b1580156116ad57600080fd5b505afa1580156116c1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156116ea57600080fd5b8101908080516040519392919084600160201b82111561170957600080fd5b90830190602082018581111561171e57600080fd5b82518660208202830111600160201b8211171561173a57600080fd5b82525081516020918201928201910280838360005b8381101561176757818101518382015260200161174f565b50505050905001604052505050905092915050565b6011546001600160a01b031681565b600061132583836138be565b600c54600090600160a81b900460ff166117bc57600c546001600160a01b0316610ff4565b60076001609c1b016001600160a01b031663732524946040518163ffffffff1660e01b815260040160206040518083038186803b1580156117fc57600080fd5b505afa158015611810573d6000803e3d6000fd5b505050506040513d602081101561182657600080fd5b5051905090565b60006118376131a7565b6001600160a01b0316630f8b8af733846040518363ffffffff1660e01b815260040180836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019060200280838360005b838110156118a557818101518382015260200161188d565b505050509050019350505050602060405180830381600087803b1580156118cb57600080fd5b505af115801561126f573d6000803e3d6000fd5b60408051630debfda360e41b8152336004820152905160076001609c1b019163debfda30916024808301926020929190829003018186803b15801561192357600080fd5b505afa158015611937573d6000803e3d6000fd5b505050506040513d602081101561194d57600080fd5b5051611990576040805162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b604482015290519081900360640190fd5b6001600160e01b031981166000908152600d6020526040902080546119fc576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b8054421015611a52576040805162461bcd60e51b815260206004820152601960248201527f74696d656c6f636b3a206e6f7420616c6c6f7765642079657400000000000000604482015290519081900360640190fd5b6000816001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aec5780601f10611ac157610100808354040283529160200191611aec565b820191906000526020600020905b815481529060010190602001808311611acf57829003601f168201915b505050506001600160e01b031985166000908152600d602052604081208181559293509050611b1e60018301826146ba565b5050600c805460ff60b01b1916600160b01b17905560405181516000913091849190819060208401908083835b60208310611b6a5780518252601f199092019160209182019101611b4b565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611bcc576040519150601f19603f3d011682016040523d82523d6000602084013e611bd1565b606091505b5050600c805460ff60b01b19169055604080516001600160e01b03198716815242602082015281519293507fa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438929081900390910190a1611c3081613916565b50505050565b60076001609c1b0181565b611c49613933565b6001600160e01b031981166000908152600d6020526040902054611cb4576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b604080516001600160e01b03198316815242602082015281517f7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8929181900390910190a16001600160e01b031981166000908152600d6020526040812081815590611d2260018301826146ba565b505050565b6001600160a01b031660009081526020819052604090205490565b600d602090815260009182526040918290208054600180830180548651600293821615610100026000190190911692909204601f810186900486028301860190965285825291949293909290830182828015611ddf5780601f10611db457610100808354040283529160200191611ddf565b820191906000526020600020905b815481529060010190602001808311611dc257829003601f168201915b5050505050905082565b600c54600160b01b900460ff1680611e0b5750600c54600160a81b900460ff16155b156114fb57611e1861366e565b6001600160a01b0381161561200957306001600160a01b0316816001600160a01b031663653718836040518163ffffffff1660e01b815260040160206040518083038186803b158015611e6a57600080fd5b505afa158015611e7e573d6000803e3d6000fd5b505050506040513d6020811015611e9457600080fd5b50516001600160a01b031614611edb5760405162461bcd60e51b81526004018080602001828103825260228152602001806149cb6022913960400191505060405180910390fd5b601154600160a01b900460ff161580611f555750806001600160a01b031663aa94d3f26040518163ffffffff1660e01b815260040160206040518083038186803b158015611f2857600080fd5b505afa158015611f3c573d6000803e3d6000fd5b505050506040513d6020811015611f5257600080fd5b50515b611f905760405162461bcd60e51b81526004018080602001828103825260298152602001806148796029913960400191505060405180910390fd5b806001600160a01b03166313de97f5611fa76136a5565b6040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611fdd57600080fd5b505af1158015611ff1573d6000803e3d6000fd5b50506011805460ff60a01b1916600160a01b17905550505b600f5460408051600181526001600160a01b03928316602082015291831682820152517fbec98a6c0f609cda6b9f23b95824ba6ac733cb57edd17d344f2f2796844007399181900360600190a1600f80546001600160a01b0319166001600160a01b038316179055611202565b606080600080612084613208565b6001600160a01b0316637de5b8ed866040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060006040518083038186803b1580156120d057600080fd5b505afa1580156120e4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052608081101561210d57600080fd5b8101908080516040519392919084600160201b82111561212c57600080fd5b90830190602082018581111561214157600080fd5b82518660208202830111600160201b8211171561215d57600080fd5b82525081516020918201928201910280838360005b8381101561218a578181015183820152602001612172565b5050505090500160405260200180516040519392919084600160201b8211156121b257600080fd5b9083019060208201858111156121c757600080fd5b82518660208202830111600160201b821117156121e357600080fd5b82525081516020918201928201910280838360005b838110156122105781810151838201526020016121f8565b505050509190910160409081526020830151920151959b949a5090985093965091945050505050565b600c54600160b01b900460ff168061225b5750600c54600160a81b900460ff16155b156114fb5761226861366e565b601180546001600160a01b0319166001600160a01b038316179055611202565b6000612292613208565b6001600160a01b03166331503927846122ab868661178b565b856040518463ffffffff1660e01b815260040180846001600160a01b03168152602001838152602001828152602001935050505060206040518083038186803b158015610fb557600080fd5b6010546001600160a01b031690565b6000612310613208565b6001600160a01b03166392bfe6d884846040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b158015610fb557600080fd5b6060610ff4613992565b6000610fe4826139f3565b600e546001600160a01b031690565b600b546001600160a01b031681565b600c54600160b01b900460ff16806123b95750600c54600160a81b900460ff16155b156114fb576123c661366e565b306001600160a01b0316816001600160a01b031663653718836040518163ffffffff1660e01b815260040160206040518083038186803b15801561240957600080fd5b505afa15801561241d573d6000803e3d6000fd5b505050506040513d602081101561243357600080fd5b50516001600160a01b03161461247a5760405162461bcd60e51b815260040180806020018281038252603d8152602001806148f0603d913960400191505060405180910390fd5b60105460408051600281526001600160a01b03928316602082015291831682820152517fbec98a6c0f609cda6b9f23b95824ba6ac733cb57edd17d344f2f2796844007399181900360600190a1601080546001600160a01b0319166001600160a01b038316179055611202565b600c54600160a01b900460ff161561253d576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b600c8054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b600061100d6125ad6132ff565b8461131c856040518060600160405280602581526020016149a660259139600160006125d76132ff565b6001600160a01b03908116825260208083019390935260409182016000908120918d168152925290205491906135ce565b600061100d6126156132ff565b8484613473565b6126246131a7565b6001600160a01b03166305109ecf3361263c33611d27565b6040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561268257600080fd5b505af1158015611c30573d6000803e3d6000fd5b600f54600e546001600160a01b039182169116811561274157816001600160a01b031663c7c62fab33866126ca338861178b565b876040518563ffffffff1660e01b815260040180856001600160a01b03168152602001846001600160a01b03168152602001838152602001828152602001945050505050600060405180830381600087803b15801561272857600080fd5b505af115801561273c573d6000803e3d6000fd5b505050505b816001600160a01b0316816001600160a01b03161415801561276b57506001600160a01b03811615155b15611c3057806001600160a01b031663c7c62fab338661278b338861178b565b876040518563ffffffff1660e01b815260040180856001600160a01b03168152602001846001600160a01b03168152602001838152602001828152602001945050505050600060405180830381600087803b1580156127e957600080fd5b505af19250505080156127fa575060015b611c3057611c30565b600061280d613208565b6001600160a01b0316639dc6b9f2848461282687611d27565b6040518463ffffffff1660e01b815260040180846001600160a01b03168152602001836001600160a01b03168152602001828152602001935050505060206040518083038186803b158015610fb557600080fd5b601154600160a01b900460ff1681565b6000610fe482613a42565b61289d6131a7565b6001600160a01b031663404d9e823384610edd33611d27565b60006128c0613208565b6001600160a01b0316634a03d556836128d885611d27565b6040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b15801561125b57600080fd5b805182511461296a576040805162461bcd60e51b8152602060048201526015602482015274082e4e4c2f240d8cadccee8d040dad2e6dac2e8c6d605b1b604482015290519081900360640190fd5b60006129746131a7565b9050600061298133611d27565b9050816001600160a01b03166305109ecf33836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156129da57600080fd5b505af11580156129ee573d6000803e3d6000fd5b5050505060005b84518110156111fd57826001600160a01b0316636230001a33878481518110612a1a57fe5b602002602001015185888681518110612a2f57fe5b60200260200101516040518563ffffffff1660e01b815260040180856001600160a01b03168152602001846001600160a01b03168152602001838152602001828152602001945050505050600060405180830381600087803b158015612a9457600080fd5b505af1158015612aa8573d6000803e3d6000fd5b5050600190920191506129f59050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6000610ff46136a5565b600c54600160a81b900460ff1681565b6000612b07613208565b6001600160a01b031663e587497e84846040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015612b5d57600080fd5b505af1158015610fc9573d6000803e3d6000fd5b6000612b7b613208565b6001600160a01b031663833aca928585612b95888761178b565b866040518563ffffffff1660e01b815260040180856001600160a01b03168152602001846001600160a01b0316815260200183815260200182815260200194505050505060206040518083038186803b158015612bf157600080fd5b505afa158015612c05573d6000803e3d6000fd5b505050506040513d6020811015612c1b57600080fd5b5051949350505050565b606080600080612c33613208565b6001600160a01b031663ed475a7987876040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060006040518083038186803b158015612c8757600080fd5b505afa158015612c9b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526080811015612cc457600080fd5b8101908080516040519392919084600160201b821115612ce357600080fd5b908301906020820185811115612cf857600080fd5b82518660208202830111600160201b82111715612d1457600080fd5b82525081516020918201928201910280838360005b83811015612d41578181015183820152602001612d29565b5050505090500160405260200180516040519392919084600160201b821115612d6957600080fd5b908301906020820185811115612d7e57600080fd5b82518660208202830111600160201b82111715612d9a57600080fd5b82525081516020918201928201910280838360005b83811015612dc7578181015183820152602001612daf565b505050509190910160409081526020830151920151959c949b509099509397509195505050505050565b600b546000906001600160a01b03163314612e4b576040805162461bcd60e51b815260206004820152601560248201527413db9b1e4818db19585b995c8818dbdb9d1c9858dd605a1b604482015290519081900360640190fd5b600a546113259060069085908590613b30565b612e66613933565b600c54600160a81b900460ff1615612ec5576040805162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2070726f64756374696f6e206d6f6465000000000000604482015290519081900360640190fd5b600c8054600161ff0160a01b031916600160a81b1790556040805160076001609c1b01815290517f83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c9181900360200190a1565b6000610ff461128f565b600b546000906001600160a01b03163314612f7c576040805162461bcd60e51b815260206004820152601560248201527413db9b1e4818db19585b995c8818dbdb9d1c9858dd605a1b604482015290519081900360640190fd5b600a54610fe4906007908490613b76565b6000612f97613208565b6001600160a01b031663f6837767836040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561125b57600080fd5b600c54600160b01b900460ff16806130055750600c54600160a81b900460ff16155b156114fb5761301261366e565b61301b81613c63565b600e546001600160a01b03161561309357600e546040805163f6a494af60e01b81526001600160a01b0384811660048301529151919092169163f6a494af91602480830192600092919082900301818387803b15801561307a57600080fd5b505af115801561308e573d6000803e3d6000fd5b505050505b600f546001600160a01b0316158015906130be5750600e54600f546001600160a01b03908116911614155b1561312a57600f546040805163f6a494af60e01b81526001600160a01b0384811660048301529151919092169163f6a494af91602480830192600092919082900301818387803b15801561311157600080fd5b505af1158015613125573d6000803e3d6000fd5b505050505b6010546001600160a01b0316156131a2576010546040805163f6a494af60e01b81526001600160a01b0384811660048301529151919092169163f6a494af91602480830192600092919082900301818387803b15801561318957600080fd5b505af115801561319d573d6000803e3d6000fd5b505050505b611202565b600f546000906001600160a01b031680610ff4576040805162461bcd60e51b815260206004820152601e60248201527f546f6b656e206d697373696e67207772697465205650436f6e74726163740000604482015290519081900360640190fd5b600e546000906001600160a01b031680610ff4576040805162461bcd60e51b815260206004820152601d60248201527f546f6b656e206d697373696e672072656164205650436f6e7472616374000000604482015290519081900360640190fd5b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156132f55780601f106132ca576101008083540402835291602001916132f5565b820191906000526020600020905b8154815290600101906020018083116132d857829003601f168201915b5050505050905090565b3390565b6001600160a01b0383166133485760405162461bcd60e51b81526004018080602001828103825260248152602001806149526024913960400191505060405180910390fd5b6001600160a01b03821661338d5760405162461bcd60e51b81526004018080602001828103825260228152602001806147dc6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600a548110156134305760405162461bcd60e51b81526004018080602001828103825260288152602001806148246028913960400191505060405180910390fd5b43811061346e5760405162461bcd60e51b81526004018080602001828103825260218152602001806147bb6021913960400191505060405180910390fd5b600a55565b6001600160a01b0383166134b85760405162461bcd60e51b815260040180806020018281038252602581526020018061492d6025913960400191505060405180910390fd5b6001600160a01b0382166134fd5760405162461bcd60e51b81526004018080602001828103825260238152602001806147986023913960400191505060405180910390fd5b613508838383613c85565b613545816040518060600160405280602681526020016147fe602691396001600160a01b03861660009081526020819052604090205491906135ce565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546135749082613830565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000818484111561365d5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561362257818101518382015260200161360a565b50505050905090810190601f16801561364f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60055460ff1690565b600c54600160b01b900460ff161561369b5733301461368957fe5b600c805460ff60b01b191690556136a3565b6136a3613933565b565b600a5490565b6136b3613933565b600082359050600060076001609c1b016001600160a01b0316636221a54b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156136fb57600080fd5b505afa15801561370f573d6000803e3d6000fd5b505050506040513d602081101561372557600080fd5b505160408051808201825242830180825282516020601f89018190048102820181019094528781529394509290918281019190889088908190840183828082843760009201829052509390945250506001600160e01b031986168152600d60209081526040909120835181558382015180519193506137ab9260018501929101906146fe565b509050507fed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b68382878760405180856001600160e01b0319168152602001848152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f191690920182900397509095505050505050a15050505050565b600082820183811015611325576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600081815260208390526040812054156138b557506000818152602083905260408120556001610fe4565b50600092915050565b600081600a548110156139025760405162461bcd60e51b815260040180806020018281038252602d81526020018061484c602d913960400191505060405180910390fd5b61390e60068585613e94565b949350505050565b3d604051818101604052816000823e821561392f578181f35b8181fd5b61393b611797565b6001600160a01b0316336001600160a01b0316146136a3576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156132f55780601f106132ca576101008083540402835291602001916132f5565b600081600a54811015613a375760405162461bcd60e51b815260040180806020018281038252602d81526020018061484c602d913960400191505060405180910390fd5b611325600784613ebf565b600081600a54811015613a865760405162461bcd60e51b815260040180806020018281038252602d81526020018061484c602d913960400191505060405180910390fd5b438310613ada576040805162461bcd60e51b815260206004820181905260248201527f43616e206f6e6c79206265207573656420666f72207061737420626c6f636b73604482015290519081900360640190fd5b600080613aea6009600787614002565b915091508015613b28576040805186815290517ffec477a10b4fcdfdf1114eb32b3caf6118b2d76d20e1fcb70007274bb4b616be9181900360200190a15b509392505050565b60006001600160a01b03841615613b6b576001600160a01b0384166000908152602086905260409020613b64908484613b76565b905061390e565b506000949350505050565b600081613b8557506000611325565b6001840154600160401b90046001600160401b031680613ba9576000915050611325565b60018501546001600160401b03166000613bcf613bc68388613830565b60018503614060565b9050815b8181108015613c04575060018101600090815260208990526040902054600160c01b90046001600160401b03168610155b15613c2057600081815260208990526040812055600101613bd3565b82811115613c5557613c3181614076565b60018901805467ffffffffffffffff19166001600160401b03929092169190911790555b919091039695505050505050565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b816001600160a01b0316836001600160a01b03161415613cec576040805162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015290519081900360640190fd5b60006001600160a01b038416613d03576000613d0c565b613d0c84611d27565b905060006001600160a01b038416613d25576000613d2e565b613d2e84611d27565b600f549091506001600160a01b03168015613dc8576040805163756da1b160e11b81526001600160a01b038881166004830152878116602483015260448201869052606482018590526084820187905291519183169163eadb43629160a48082019260009290919082900301818387803b158015613dab57600080fd5b505af1158015613dbf573d6000803e3d6000fd5b50505050613ded565b601154600160a01b900460ff16613ded576011805460ff60a01b1916600160a01b1790555b6010546001600160a01b03168015613e80576040805163756da1b160e11b81526001600160a01b038981166004830152888116602483015260448201879052606482018690526084820188905291519183169163eadb43629160a48082019260009290919082900301818387803b158015613e6757600080fd5b505af1158015613e7b573d6000803e3d6000fd5b505050505b613e8b8787876140be565b50505050505050565b6001600160a01b0382166000908152602084905260408120613eb68184613ebf565b95945050505050565b6001820154600090600160401b90046001600160401b031680613ee6576000915050610fe4565b4383101580613f1857506000198101600090815260208590526040902054600160c01b90046001600160401b03168310155b15613f4057600019016000908152602084905260409020546001600160c01b03169050610fe4565b60018401546001600160401b039081166000818152602087905260409020549091600160c01b90910416841015613fb9578015613fae5760405162461bcd60e51b81526004018080602001828103825260308152602001806149766030913960400191505060405180910390fd5b600092505050610fe4565b6001850154600090613fdf9087908490600160401b90046001600160401b0316886140fe565b6000908152602087905260409020546001600160c01b0316935050505092915050565b600081815260208490526040812054819080156140285760001901915060009050614058565b60006140348686613ebf565b9050614041816001613830565b600086815260208990526040902055925060019150505b935093915050565b600081831061406f5781611325565b5090919050565b6000600160401b82106140ba5760405162461bcd60e51b81526004018080602001828103825260268152602001806148a26026913960400191505060405180910390fd5b5090565b6001600160a01b0383166140db576140d68282614188565b611d22565b6001600160a01b0382166140f3576140d683826141e5565b611d22838383614294565b6000838161410d8560016142ca565b90505b8181111561417e57600061413a6002614134600161412e8688613830565b90613830565b90614327565b600081815260208a90526040902054909150600160c01b90046001600160401b0316851061416a57809250614178565b6141758160016142ca565b91505b50614110565b5095945050505050565b60006141988261412e854361178b565b90506141a66006848361438e565b600a546141ba906006908590600290613b30565b506141d36141cb8361412e4361236e565b6007906143ac565b600a54611c3090600790600290613b76565b600061422b8260405180604001604052806016815260200175213ab937103a37b7903134b3903337b91037bbb732b960511b815250614224864361178b565b91906135ce565b90506142396006848361438e565b600a5461424d906006908590600290613b30565b506141d36141cb836040518060400160405280601d81526020017f4275726e20746f6f2062696720666f7220746f74616c20737570706c790000008152506142244361236e565b6142a1600684848461456d565b600a546142b5906006908590600290613b30565b50600a54611c30906006908490600290613b30565b600082821115614321576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600080821161437d576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161438657fe5b049392505050565b6001600160a01b0382166000908152602084905260409020611c3081835b6001820154600160401b90046001600160401b0316806144635760405180604001604052806143da846145fc565b6001600160c01b031681526020016143f143614076565b6001600160401b03908116909152600080805260208681526040909120835181549490920151909216600160c01b026001600160c01b039182166001600160c01b0319909416939093171691909117905560018301805467ffffffffffffffff60401b1916600160401b179055611d22565b600019810160009081526020849052604090208054600160c01b90046001600160401b0316438114156144b957614499846145fc565b82546001600160c01b0319166001600160c01b03919091161782556111fd565b8043116144c257fe5b60405180604001604052806144d6866145fc565b6001600160c01b031681526020016144ed43614076565b6001600160401b039081169091526000858152602088815260409091208351815494909201518316600160c01b026001600160c01b039283166001600160c01b0319909516949094179091169290921790915560018087018054918601909216600160401b0267ffffffffffffffff60401b199091161790555050505050565b8061457757611c30565b6001600160a01b03831615801561459557506001600160a01b038216155b1561459c57fe5b6001600160a01b038316156145d05760006145c1826145bb8787614656565b906142ca565b90506145ce85858361438e565b505b6001600160a01b03821615611c305760006145ef8261412e8786614656565b90506111fd85848361438e565b6000600160c01b82106140ba576040805162461bcd60e51b815260206004820152601d60248201527f76616c756520646f65736e27742066697420696e203139322062697473000000604482015290519081900360640190fd5b6001600160a01b038116600090815260208390526040812061390e816001810154600090600160401b90046001600160401b03168061469957600091505061128a565b6000190160009081526020929092525060409020546001600160c01b031690565b50805460018160011615610100020316600290046000825580601f106146e05750611202565b601f0160209004906000526020600020908101906112029190614782565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282614734576000855561477a565b82601f1061474d57805160ff191683800117855561477a565b8280016001018555821561477a579182015b8281111561477a57825182559160200191906001019061475f565b506140ba9291505b5b808211156140ba576000815560010161478356fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373436c65616e757020626c6f636b206d75737420626520696e20746865207061737445524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365436c65616e757020626c6f636b206e756d626572206d757374206e65766572206465637265617365436865636b506f696e7461626c653a2072656164696e672066726f6d20636c65616e65642d757020626c6f636b5650436f6e7472616374206e6f7420636f6e6669677572656420666f72207265706c6163656d656e7453616665436173743a2076616c756520646f65736e27742066697420696e203634206269747345524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365476f7665726e616e636520766f746520706f77657220636f6e747261637420646f6573206e6f742062656c6f6e6720746f207468697320746f6b656e2e45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373436865636b506f696e74486973746f72793a2072656164696e672066726f6d20636c65616e65642d757020626c6f636b45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f5650436f6e7472616374206e6f74206f776e6564206279207468697320746f6b656ea26469706673582212207cd602982d43c96494463e4fa88923de3382a7398bdca1bd0c7a637b5840060b64736f6c63430007060033",
1262
1262
  "linkReferences": {},
1263
1263
  "deployedLinkReferences": {}
1264
1264
  }