@flarenetwork/flare-periphery-contract-artifacts 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (317) hide show
  1. package/coston/artifacts/contracts/ftso/implementation/FtsoManager.sol/FtsoManager.json +2 -2
  2. package/coston/artifacts/contracts/governance/implementation/PollingFtso.sol/PollingFtso.json +2 -2
  3. package/coston/artifacts/contracts/inflation/interface/IIInflationReceiverV1.sol/IIInflationReceiverV1.json +57 -0
  4. package/coston/artifacts/contracts/tokenPools/implementation/FtsoRewardManager.sol/FtsoRewardManager.json +6 -19
  5. package/coston/artifacts/contracts/tokenPools/interface/IIFtsoRewardManager.sol/IIFtsoRewardManager.json +0 -13
  6. package/coston/artifacts/contracts/utils/implementation/FtsoV2Upgrader.sol/FtsoV2Upgrader.json +2 -2
  7. package/coston2/artifacts/contracts/claiming/implementation/ClaimSetupManager.sol/ClaimSetupManager.json +2 -2
  8. package/coston2/artifacts/contracts/claiming/implementation/DelegationAccount.sol/DelegationAccount.json +2 -2
  9. package/coston2/artifacts/contracts/ftso/implementation/Ftso.sol/Ftso.json +2 -2
  10. package/coston2/artifacts/contracts/ftso/implementation/FtsoManager.sol/FtsoManager.json +2 -2
  11. package/coston2/artifacts/contracts/ftso/lib/FtsoEpoch.sol/FtsoEpoch.json +2 -2
  12. package/coston2/artifacts/contracts/ftso/lib/FtsoManagement.sol/FtsoManagement.json +2 -2
  13. package/coston2/artifacts/contracts/ftso/lib/FtsoManagerSettings.sol/FtsoManagerSettings.json +2 -2
  14. package/coston2/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockFtsoRegistry.json +2 -2
  15. package/coston2/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockPriceSubmitter.json +2 -2
  16. package/coston2/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockVoterWhitelister.json +2 -2
  17. package/coston2/artifacts/contracts/ftso/priceProviderMockContracts/priceProviderMockFtso.sol/MockNpmFtso.json +2 -2
  18. package/coston2/artifacts/contracts/governance/implementation/PollingFoundation.sol/PollingFoundation.json +2 -2
  19. package/coston2/artifacts/contracts/governance/implementation/PollingFtso.sol/PollingFtso.json +2 -2
  20. package/coston2/artifacts/contracts/staking/implementation/AddressBinder.sol/AddressBinder.json +121 -0
  21. package/coston2/artifacts/contracts/staking/implementation/PChainStake.sol/PChainStake.json +512 -0
  22. package/coston2/artifacts/contracts/staking/implementation/PChainStakeMirror.sol/PChainStakeMirror.json +1299 -0
  23. package/coston2/artifacts/contracts/staking/implementation/PChainStakeMirrorMultiSigVoting.sol/PChainStakeMirrorMultiSigVoting.json +579 -0
  24. package/coston2/artifacts/contracts/staking/implementation/PChainStakeMirrorVerifier.sol/PChainStakeMirrorVerifier.json +168 -0
  25. package/coston2/artifacts/contracts/staking/interface/IIPChainStakeMirrorVerifier.sol/IIPChainStakeMirrorVerifier.json +72 -0
  26. package/coston2/artifacts/contracts/staking/lib/PChainStakeHistory.sol/PChainStakeHistory.json +24 -0
  27. package/coston2/artifacts/contracts/token/implementation/CombinedNat.sol/CombinedNat.json +128 -0
  28. package/coston2/artifacts/contracts/token/implementation/GovernanceVotePower.sol/GovernanceVotePower.json +20 -2
  29. package/coston2/artifacts/contracts/token/implementation/VPContract.sol/VPContract.json +2 -2
  30. package/coston2/artifacts/contracts/token/implementation/VPToken.sol/VPToken.json +2 -2
  31. package/coston2/artifacts/contracts/token/implementation/WNat.sol/WNat.json +2 -2
  32. package/coston2/artifacts/contracts/token/{lib → interface}/IICombinedNatBalance.sol/IICombinedNatBalance.json +33 -1
  33. package/coston2/artifacts/contracts/token/interface/IIGovernanceVotePower.sol/IIGovernanceVotePower.json +14 -1
  34. package/coston2/artifacts/contracts/tokenPools/implementation/AttestationProviderRewardManager.sol/AttestationProviderRewardManager.json +2 -2
  35. package/coston2/artifacts/contracts/tokenPools/implementation/DistributionToDelegators.sol/DistributionToDelegators.json +2 -2
  36. package/coston2/artifacts/contracts/tokenPools/implementation/Escrow.sol/Escrow.json +2 -2
  37. package/coston2/artifacts/contracts/tokenPools/implementation/FtsoRewardManager.sol/FtsoRewardManager.json +2 -2
  38. package/coston2/artifacts/contracts/tokenPools/implementation/ValidatorRewardManager.sol/ValidatorRewardManager.json +2 -2
  39. package/coston2/artifacts/contracts/userInterfaces/IAddressBinder.sol/IAddressBinder.json +121 -0
  40. package/coston2/artifacts/contracts/userInterfaces/IGovernanceVotePower.sol/IGovernanceVotePower.json +1 -1
  41. package/coston2/artifacts/contracts/userInterfaces/IPChainStakeMirror.sol/IPChainStakeMirror.json +575 -0
  42. package/coston2/artifacts/contracts/userInterfaces/IPChainStakeMirrorMultiSigVoting.sol/IPChainStakeMirrorMultiSigVoting.json +311 -0
  43. package/coston2/artifacts/contracts/userInterfaces/IPChainStakeMirrorVerifier.sol/IPChainStakeMirrorVerifier.json +10 -0
  44. package/coston2/artifacts/contracts/userInterfaces/IPChainVotePower.sol/IPChainVotePower.json +309 -0
  45. package/coston2/artifacts/contracts/utils/implementation/BytesLib.sol/BytesLib.json +10 -0
  46. package/coston2/artifacts/contracts/utils/implementation/FtsoRegistry.sol/FtsoRegistry.json +2 -2
  47. package/coston2/artifacts/contracts/utils/implementation/FtsoV2Upgrader.sol/FtsoV2Upgrader.json +2 -2
  48. package/coston2/artifacts/contracts/utils/implementation/VoterWhitelister.sol/VoterWhitelister.json +2 -2
  49. package/coston2/deploys/contracts.json +23 -3
  50. package/dist/coston/StateConnector/libs/ts/AttestationDefinitionStore.d.ts +68 -0
  51. package/dist/coston/StateConnector/libs/ts/AttestationDefinitionStore.d.ts.map +1 -0
  52. package/dist/coston/StateConnector/libs/ts/AttestationDefinitionStore.js +164 -0
  53. package/dist/coston/StateConnector/libs/ts/AttestationDefinitionStore.js.map +1 -0
  54. package/dist/coston/StateConnector/libs/ts/AttestationResponse.d.ts +33 -0
  55. package/dist/coston/StateConnector/libs/ts/AttestationResponse.d.ts.map +1 -0
  56. package/dist/coston/StateConnector/libs/ts/AttestationResponse.js +30 -0
  57. package/dist/coston/StateConnector/libs/ts/AttestationResponse.js.map +1 -0
  58. package/dist/coston/StateConnector/libs/ts/MerkleTree.d.ts +103 -0
  59. package/dist/coston/StateConnector/libs/ts/MerkleTree.d.ts.map +1 -0
  60. package/dist/coston/StateConnector/libs/ts/MerkleTree.js +212 -0
  61. package/dist/coston/StateConnector/libs/ts/MerkleTree.js.map +1 -0
  62. package/dist/coston/StateConnector/libs/ts/config-types.d.ts +143 -0
  63. package/dist/coston/StateConnector/libs/ts/config-types.d.ts.map +1 -0
  64. package/dist/coston/StateConnector/libs/ts/config-types.js +3 -0
  65. package/dist/coston/StateConnector/libs/ts/config-types.js.map +1 -0
  66. package/dist/coston/StateConnector/libs/ts/interfaces.d.ts +32 -0
  67. package/dist/coston/StateConnector/libs/ts/interfaces.d.ts.map +1 -0
  68. package/dist/coston/StateConnector/libs/ts/interfaces.js +3 -0
  69. package/dist/coston/StateConnector/libs/ts/interfaces.js.map +1 -0
  70. package/dist/coston/StateConnector/libs/ts/random.d.ts +9 -0
  71. package/dist/coston/StateConnector/libs/ts/random.d.ts.map +1 -0
  72. package/dist/coston/StateConnector/libs/ts/random.js +70 -0
  73. package/dist/coston/StateConnector/libs/ts/random.js.map +1 -0
  74. package/dist/coston/StateConnector/libs/ts/utils.d.ts +73 -0
  75. package/dist/coston/StateConnector/libs/ts/utils.d.ts.map +1 -0
  76. package/dist/coston/StateConnector/libs/ts/utils.js +282 -0
  77. package/dist/coston/StateConnector/libs/ts/utils.js.map +1 -0
  78. package/dist/coston/StateConnector/typescript/AddressValidity.d.ts +91 -0
  79. package/dist/coston/StateConnector/typescript/AddressValidity.d.ts.map +1 -0
  80. package/dist/coston/StateConnector/typescript/AddressValidity.js +9 -0
  81. package/dist/coston/StateConnector/typescript/AddressValidity.js.map +1 -0
  82. package/dist/coston/StateConnector/typescript/BalanceDecreasingTransaction.d.ts +107 -0
  83. package/dist/coston/StateConnector/typescript/BalanceDecreasingTransaction.d.ts.map +1 -0
  84. package/dist/coston/StateConnector/typescript/BalanceDecreasingTransaction.js +9 -0
  85. package/dist/coston/StateConnector/typescript/BalanceDecreasingTransaction.js.map +1 -0
  86. package/dist/coston/StateConnector/typescript/ConfirmedBlockHeightExists.d.ts +103 -0
  87. package/dist/coston/StateConnector/typescript/ConfirmedBlockHeightExists.d.ts.map +1 -0
  88. package/dist/coston/StateConnector/typescript/ConfirmedBlockHeightExists.js +9 -0
  89. package/dist/coston/StateConnector/typescript/ConfirmedBlockHeightExists.js.map +1 -0
  90. package/dist/coston/StateConnector/typescript/EVMTransaction.d.ts +160 -0
  91. package/dist/coston/StateConnector/typescript/EVMTransaction.d.ts.map +1 -0
  92. package/dist/coston/StateConnector/typescript/EVMTransaction.js +9 -0
  93. package/dist/coston/StateConnector/typescript/EVMTransaction.js.map +1 -0
  94. package/dist/coston/StateConnector/typescript/Payment.d.ts +139 -0
  95. package/dist/coston/StateConnector/typescript/Payment.d.ts.map +1 -0
  96. package/dist/coston/StateConnector/typescript/Payment.js +9 -0
  97. package/dist/coston/StateConnector/typescript/Payment.js.map +1 -0
  98. package/dist/coston/StateConnector/typescript/ReferencedPaymentNonexistence.d.ts +115 -0
  99. package/dist/coston/StateConnector/typescript/ReferencedPaymentNonexistence.d.ts.map +1 -0
  100. package/dist/coston/StateConnector/typescript/ReferencedPaymentNonexistence.js +9 -0
  101. package/dist/coston/StateConnector/typescript/ReferencedPaymentNonexistence.js.map +1 -0
  102. package/dist/coston/StateConnector/typescript/TypeTemplate.d.ts +146 -0
  103. package/dist/coston/StateConnector/typescript/TypeTemplate.d.ts.map +1 -0
  104. package/dist/coston/StateConnector/typescript/TypeTemplate.js +9 -0
  105. package/dist/coston/StateConnector/typescript/TypeTemplate.js.map +1 -0
  106. package/dist/coston/StateConnector/typescript/data-sources/data-sources.d.ts +29 -0
  107. package/dist/coston/StateConnector/typescript/data-sources/data-sources.d.ts.map +1 -0
  108. package/dist/coston/StateConnector/typescript/data-sources/data-sources.js +33 -0
  109. package/dist/coston/StateConnector/typescript/data-sources/data-sources.js.map +1 -0
  110. package/dist/coston/StateConnector/typescript/index.d.ts +9 -0
  111. package/dist/coston/StateConnector/typescript/index.d.ts.map +1 -0
  112. package/dist/coston/StateConnector/typescript/index.js +25 -0
  113. package/dist/coston/StateConnector/typescript/index.js.map +1 -0
  114. package/dist/coston/abis.d.ts.map +1 -1
  115. package/dist/coston/abis.js +2 -0
  116. package/dist/coston/abis.js.map +1 -1
  117. package/dist/coston/artifacts/contracts/ftso/implementation/FtsoManager.sol/FtsoManager.json +2 -2
  118. package/dist/coston/artifacts/contracts/governance/implementation/PollingFtso.sol/PollingFtso.json +2 -2
  119. package/dist/coston/artifacts/contracts/inflation/interface/IIInflationReceiverV1.sol/IIInflationReceiverV1.json +57 -0
  120. package/dist/coston/artifacts/contracts/tokenPools/implementation/FtsoRewardManager.sol/FtsoRewardManager.json +6 -19
  121. package/dist/coston/artifacts/contracts/tokenPools/interface/IIFtsoRewardManager.sol/IIFtsoRewardManager.json +0 -13
  122. package/dist/coston/artifacts/contracts/utils/implementation/FtsoV2Upgrader.sol/FtsoV2Upgrader.json +2 -2
  123. package/dist/coston/deploys/mapper.js.map +1 -1
  124. package/dist/coston2/abis.d.ts.map +1 -1
  125. package/dist/coston2/abis.js +20 -2
  126. package/dist/coston2/abis.js.map +1 -1
  127. package/dist/coston2/artifacts/contracts/claiming/implementation/ClaimSetupManager.sol/ClaimSetupManager.json +2 -2
  128. package/dist/coston2/artifacts/contracts/claiming/implementation/DelegationAccount.sol/DelegationAccount.json +2 -2
  129. package/dist/coston2/artifacts/contracts/ftso/implementation/Ftso.sol/Ftso.json +2 -2
  130. package/dist/coston2/artifacts/contracts/ftso/implementation/FtsoManager.sol/FtsoManager.json +2 -2
  131. package/dist/coston2/artifacts/contracts/ftso/lib/FtsoEpoch.sol/FtsoEpoch.json +2 -2
  132. package/dist/coston2/artifacts/contracts/ftso/lib/FtsoManagement.sol/FtsoManagement.json +2 -2
  133. package/dist/coston2/artifacts/contracts/ftso/lib/FtsoManagerSettings.sol/FtsoManagerSettings.json +2 -2
  134. package/dist/coston2/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockFtsoRegistry.json +2 -2
  135. package/dist/coston2/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockPriceSubmitter.json +2 -2
  136. package/dist/coston2/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockVoterWhitelister.json +2 -2
  137. package/dist/coston2/artifacts/contracts/ftso/priceProviderMockContracts/priceProviderMockFtso.sol/MockNpmFtso.json +2 -2
  138. package/dist/coston2/artifacts/contracts/governance/implementation/PollingFoundation.sol/PollingFoundation.json +2 -2
  139. package/dist/coston2/artifacts/contracts/governance/implementation/PollingFtso.sol/PollingFtso.json +2 -2
  140. package/dist/coston2/artifacts/contracts/staking/implementation/AddressBinder.sol/AddressBinder.json +121 -0
  141. package/dist/coston2/artifacts/contracts/staking/implementation/PChainStake.sol/PChainStake.json +512 -0
  142. package/dist/coston2/artifacts/contracts/staking/implementation/PChainStakeMirror.sol/PChainStakeMirror.json +1299 -0
  143. package/dist/coston2/artifacts/contracts/staking/implementation/PChainStakeMirrorMultiSigVoting.sol/PChainStakeMirrorMultiSigVoting.json +579 -0
  144. package/dist/coston2/artifacts/contracts/staking/implementation/PChainStakeMirrorVerifier.sol/PChainStakeMirrorVerifier.json +168 -0
  145. package/dist/coston2/artifacts/contracts/staking/interface/IIPChainStakeMirrorVerifier.sol/IIPChainStakeMirrorVerifier.json +72 -0
  146. package/dist/coston2/artifacts/contracts/staking/lib/PChainStakeHistory.sol/PChainStakeHistory.json +24 -0
  147. package/dist/coston2/artifacts/contracts/token/implementation/CombinedNat.sol/CombinedNat.json +128 -0
  148. package/dist/coston2/artifacts/contracts/token/implementation/GovernanceVotePower.sol/GovernanceVotePower.json +20 -2
  149. package/dist/coston2/artifacts/contracts/token/implementation/VPContract.sol/VPContract.json +2 -2
  150. package/dist/coston2/artifacts/contracts/token/implementation/VPToken.sol/VPToken.json +2 -2
  151. package/dist/coston2/artifacts/contracts/token/implementation/WNat.sol/WNat.json +2 -2
  152. package/dist/coston2/artifacts/contracts/token/{lib → interface}/IICombinedNatBalance.sol/IICombinedNatBalance.json +33 -1
  153. package/dist/coston2/artifacts/contracts/token/interface/IIGovernanceVotePower.sol/IIGovernanceVotePower.json +14 -1
  154. package/dist/coston2/artifacts/contracts/tokenPools/implementation/AttestationProviderRewardManager.sol/AttestationProviderRewardManager.json +2 -2
  155. package/dist/coston2/artifacts/contracts/tokenPools/implementation/DistributionToDelegators.sol/DistributionToDelegators.json +2 -2
  156. package/dist/coston2/artifacts/contracts/tokenPools/implementation/Escrow.sol/Escrow.json +2 -2
  157. package/dist/coston2/artifacts/contracts/tokenPools/implementation/FtsoRewardManager.sol/FtsoRewardManager.json +2 -2
  158. package/dist/coston2/artifacts/contracts/tokenPools/implementation/ValidatorRewardManager.sol/ValidatorRewardManager.json +2 -2
  159. package/dist/coston2/artifacts/contracts/utils/implementation/BytesLib.sol/BytesLib.json +10 -0
  160. package/dist/coston2/artifacts/contracts/utils/implementation/FtsoRegistry.sol/FtsoRegistry.json +2 -2
  161. package/dist/coston2/artifacts/contracts/utils/implementation/FtsoV2Upgrader.sol/FtsoV2Upgrader.json +2 -2
  162. package/dist/coston2/artifacts/contracts/utils/implementation/VoterWhitelister.sol/VoterWhitelister.json +2 -2
  163. package/dist/coston2/deploys/addresses.d.ts +4 -0
  164. package/dist/coston2/deploys/addresses.d.ts.map +1 -1
  165. package/dist/coston2/deploys/addresses.js +6 -2
  166. package/dist/coston2/deploys/addresses.js.map +1 -1
  167. package/dist/coston2/deploys/contracts.json +23 -3
  168. package/dist/coston2/deploys/mapper.js.map +1 -1
  169. package/dist/flare/abis.d.ts.map +1 -1
  170. package/dist/flare/abis.js +20 -2
  171. package/dist/flare/abis.js.map +1 -1
  172. package/dist/flare/artifacts/contracts/claiming/implementation/ClaimSetupManager.sol/ClaimSetupManager.json +2 -2
  173. package/dist/flare/artifacts/contracts/claiming/implementation/DelegationAccount.sol/DelegationAccount.json +2 -2
  174. package/dist/flare/artifacts/contracts/ftso/implementation/Ftso.sol/Ftso.json +2 -2
  175. package/dist/flare/artifacts/contracts/ftso/implementation/FtsoManager.sol/FtsoManager.json +2 -2
  176. package/dist/flare/artifacts/contracts/ftso/lib/FtsoEpoch.sol/FtsoEpoch.json +2 -2
  177. package/dist/flare/artifacts/contracts/ftso/lib/FtsoManagement.sol/FtsoManagement.json +2 -2
  178. package/dist/flare/artifacts/contracts/ftso/lib/FtsoManagerSettings.sol/FtsoManagerSettings.json +2 -2
  179. package/dist/flare/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockFtsoRegistry.json +2 -2
  180. package/dist/flare/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockPriceSubmitter.json +2 -2
  181. package/dist/flare/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockVoterWhitelister.json +2 -2
  182. package/dist/flare/artifacts/contracts/ftso/priceProviderMockContracts/priceProviderMockFtso.sol/MockNpmFtso.json +2 -2
  183. package/dist/flare/artifacts/contracts/governance/implementation/PollingFoundation.sol/PollingFoundation.json +2 -2
  184. package/dist/flare/artifacts/contracts/governance/implementation/PollingFtso.sol/PollingFtso.json +2 -2
  185. package/dist/flare/artifacts/contracts/staking/implementation/AddressBinder.sol/AddressBinder.json +121 -0
  186. package/dist/flare/artifacts/contracts/staking/implementation/PChainStake.sol/PChainStake.json +512 -0
  187. package/dist/flare/artifacts/contracts/staking/implementation/PChainStakeMirror.sol/PChainStakeMirror.json +1299 -0
  188. package/dist/flare/artifacts/contracts/staking/implementation/PChainStakeMirrorMultiSigVoting.sol/PChainStakeMirrorMultiSigVoting.json +579 -0
  189. package/dist/flare/artifacts/contracts/staking/implementation/PChainStakeMirrorVerifier.sol/PChainStakeMirrorVerifier.json +168 -0
  190. package/dist/flare/artifacts/contracts/staking/interface/IIPChainStakeMirrorVerifier.sol/IIPChainStakeMirrorVerifier.json +72 -0
  191. package/dist/flare/artifacts/contracts/staking/lib/PChainStakeHistory.sol/PChainStakeHistory.json +24 -0
  192. package/dist/flare/artifacts/contracts/token/implementation/CombinedNat.sol/CombinedNat.json +128 -0
  193. package/dist/flare/artifacts/contracts/token/implementation/GovernanceVotePower.sol/GovernanceVotePower.json +20 -2
  194. package/dist/flare/artifacts/contracts/token/implementation/VPContract.sol/VPContract.json +2 -2
  195. package/dist/flare/artifacts/contracts/token/implementation/VPToken.sol/VPToken.json +2 -2
  196. package/dist/flare/artifacts/contracts/token/implementation/WNat.sol/WNat.json +2 -2
  197. package/dist/flare/artifacts/contracts/token/{lib → interface}/IICombinedNatBalance.sol/IICombinedNatBalance.json +33 -1
  198. package/dist/flare/artifacts/contracts/token/interface/IIGovernanceVotePower.sol/IIGovernanceVotePower.json +14 -1
  199. package/dist/flare/artifacts/contracts/tokenPools/implementation/AttestationProviderRewardManager.sol/AttestationProviderRewardManager.json +2 -2
  200. package/dist/flare/artifacts/contracts/tokenPools/implementation/DistributionToDelegators.sol/DistributionToDelegators.json +2 -2
  201. package/dist/flare/artifacts/contracts/tokenPools/implementation/Escrow.sol/Escrow.json +2 -2
  202. package/dist/flare/artifacts/contracts/tokenPools/implementation/FtsoRewardManager.sol/FtsoRewardManager.json +2 -2
  203. package/dist/flare/artifacts/contracts/tokenPools/implementation/ValidatorRewardManager.sol/ValidatorRewardManager.json +2 -2
  204. package/dist/flare/artifacts/contracts/utils/implementation/BytesLib.sol/BytesLib.json +10 -0
  205. package/dist/flare/artifacts/contracts/utils/implementation/FtsoRegistry.sol/FtsoRegistry.json +2 -2
  206. package/dist/flare/artifacts/contracts/utils/implementation/FtsoV2Upgrader.sol/FtsoV2Upgrader.json +2 -2
  207. package/dist/flare/artifacts/contracts/utils/implementation/VoterWhitelister.sol/VoterWhitelister.json +2 -2
  208. package/dist/flare/deploys/addresses.d.ts +4 -0
  209. package/dist/flare/deploys/addresses.d.ts.map +1 -1
  210. package/dist/flare/deploys/addresses.js +6 -2
  211. package/dist/flare/deploys/addresses.js.map +1 -1
  212. package/dist/flare/deploys/contracts.json +23 -3
  213. package/dist/flare/deploys/mapper.js.map +1 -1
  214. package/dist/songbird/abis.d.ts.map +1 -1
  215. package/dist/songbird/abis.js +20 -14
  216. package/dist/songbird/abis.js.map +1 -1
  217. package/dist/songbird/artifacts/contracts/claiming/implementation/ClaimSetupManager.sol/ClaimSetupManager.json +2 -2
  218. package/dist/songbird/artifacts/contracts/ftso/implementation/FtsoManager.sol/FtsoManager.json +2 -2
  219. package/dist/songbird/artifacts/contracts/governance/implementation/PollingFoundation.sol/PollingFoundation.json +2 -2
  220. package/dist/songbird/artifacts/contracts/governance/implementation/PollingFtso.sol/PollingFtso.json +2 -2
  221. package/dist/songbird/artifacts/contracts/inflation/implementation/Inflation.sol/Inflation.json +273 -298
  222. package/dist/songbird/artifacts/contracts/inflation/implementation/InflationAllocation.sol/InflationAllocation.json +463 -0
  223. package/dist/songbird/artifacts/contracts/inflation/implementation/SelfDestructBurner.sol/SelfDestructBurner.json +73 -0
  224. package/dist/songbird/artifacts/contracts/inflation/implementation/Supply.sol/Supply.json +290 -51
  225. package/dist/songbird/artifacts/contracts/inflation/interface/{IIInflationSharingPercentageProvider.sol/IIInflationSharingPercentageProvider.json → IIInflationAllocation.sol/IIInflationAllocation.json} +15 -2
  226. package/dist/songbird/artifacts/contracts/inflation/interface/IIInflationReceiver.sol/IIInflationReceiver.json +26 -0
  227. package/dist/songbird/artifacts/contracts/inflation/interface/IIInflationReceiverV1.sol/IIInflationReceiverV1.json +57 -0
  228. package/dist/songbird/artifacts/contracts/inflation/interface/IIInflationV1.sol/IIInflationV1.json +142 -0
  229. package/dist/songbird/artifacts/contracts/inflation/interface/IIPreInflationCalculation.sol/IIPreInflationCalculation.json +18 -0
  230. package/dist/songbird/artifacts/contracts/inflation/interface/IISupply.sol/IISupply.json +6 -12
  231. package/dist/songbird/artifacts/contracts/inflation/lib/{RewardServices.sol/RewardServices.json → InflationRewardServices.sol/InflationRewardServices.json} +25 -6
  232. package/dist/songbird/artifacts/contracts/inflation/lib/InflationTimeSlots.sol/InflationTimeSlots.json +10 -0
  233. package/dist/songbird/artifacts/contracts/tokenPools/implementation/FtsoRewardManager.sol/FtsoRewardManager.json +2 -2
  234. package/dist/songbird/artifacts/contracts/tokenPools/implementation/InflationReceiver.sol/InflationReceiver.json +127 -0
  235. package/dist/songbird/artifacts/contracts/tokenPools/implementation/TokenPoolBase.sol/TokenPoolBase.json +10 -0
  236. package/dist/songbird/artifacts/contracts/tokenPools/interface/IIFtsoRewardManager.sol/IIFtsoRewardManager.json +13 -0
  237. package/dist/songbird/artifacts/contracts/utils/implementation/FtsoV2Upgrader.sol/FtsoV2Upgrader.json +2 -2
  238. package/dist/songbird/deploys/addresses.js +3 -3
  239. package/dist/songbird/deploys/contracts.json +3 -3
  240. package/dist/songbird/deploys/mapper.js.map +1 -1
  241. package/flare/artifacts/contracts/claiming/implementation/ClaimSetupManager.sol/ClaimSetupManager.json +2 -2
  242. package/flare/artifacts/contracts/claiming/implementation/DelegationAccount.sol/DelegationAccount.json +2 -2
  243. package/flare/artifacts/contracts/ftso/implementation/Ftso.sol/Ftso.json +2 -2
  244. package/flare/artifacts/contracts/ftso/implementation/FtsoManager.sol/FtsoManager.json +2 -2
  245. package/flare/artifacts/contracts/ftso/lib/FtsoEpoch.sol/FtsoEpoch.json +2 -2
  246. package/flare/artifacts/contracts/ftso/lib/FtsoManagement.sol/FtsoManagement.json +2 -2
  247. package/flare/artifacts/contracts/ftso/lib/FtsoManagerSettings.sol/FtsoManagerSettings.json +2 -2
  248. package/flare/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockFtsoRegistry.json +2 -2
  249. package/flare/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockPriceSubmitter.json +2 -2
  250. package/flare/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockVoterWhitelister.json +2 -2
  251. package/flare/artifacts/contracts/ftso/priceProviderMockContracts/priceProviderMockFtso.sol/MockNpmFtso.json +2 -2
  252. package/flare/artifacts/contracts/governance/implementation/PollingFoundation.sol/PollingFoundation.json +2 -2
  253. package/flare/artifacts/contracts/governance/implementation/PollingFtso.sol/PollingFtso.json +2 -2
  254. package/flare/artifacts/contracts/staking/implementation/AddressBinder.sol/AddressBinder.json +121 -0
  255. package/flare/artifacts/contracts/staking/implementation/PChainStake.sol/PChainStake.json +512 -0
  256. package/flare/artifacts/contracts/staking/implementation/PChainStakeMirror.sol/PChainStakeMirror.json +1299 -0
  257. package/flare/artifacts/contracts/staking/implementation/PChainStakeMirrorMultiSigVoting.sol/PChainStakeMirrorMultiSigVoting.json +579 -0
  258. package/flare/artifacts/contracts/staking/implementation/PChainStakeMirrorVerifier.sol/PChainStakeMirrorVerifier.json +168 -0
  259. package/flare/artifacts/contracts/staking/interface/IIPChainStakeMirrorVerifier.sol/IIPChainStakeMirrorVerifier.json +72 -0
  260. package/flare/artifacts/contracts/staking/lib/PChainStakeHistory.sol/PChainStakeHistory.json +24 -0
  261. package/flare/artifacts/contracts/token/implementation/CombinedNat.sol/CombinedNat.json +128 -0
  262. package/flare/artifacts/contracts/token/implementation/GovernanceVotePower.sol/GovernanceVotePower.json +20 -2
  263. package/flare/artifacts/contracts/token/implementation/VPContract.sol/VPContract.json +2 -2
  264. package/flare/artifacts/contracts/token/implementation/VPToken.sol/VPToken.json +2 -2
  265. package/flare/artifacts/contracts/token/implementation/WNat.sol/WNat.json +2 -2
  266. package/flare/artifacts/contracts/token/{lib → interface}/IICombinedNatBalance.sol/IICombinedNatBalance.json +33 -1
  267. package/flare/artifacts/contracts/token/interface/IIGovernanceVotePower.sol/IIGovernanceVotePower.json +14 -1
  268. package/flare/artifacts/contracts/tokenPools/implementation/AttestationProviderRewardManager.sol/AttestationProviderRewardManager.json +2 -2
  269. package/flare/artifacts/contracts/tokenPools/implementation/DistributionToDelegators.sol/DistributionToDelegators.json +2 -2
  270. package/flare/artifacts/contracts/tokenPools/implementation/Escrow.sol/Escrow.json +2 -2
  271. package/flare/artifacts/contracts/tokenPools/implementation/FtsoRewardManager.sol/FtsoRewardManager.json +2 -2
  272. package/flare/artifacts/contracts/tokenPools/implementation/ValidatorRewardManager.sol/ValidatorRewardManager.json +2 -2
  273. package/flare/artifacts/contracts/userInterfaces/IAddressBinder.sol/IAddressBinder.json +121 -0
  274. package/flare/artifacts/contracts/userInterfaces/IGovernanceVotePower.sol/IGovernanceVotePower.json +1 -1
  275. package/flare/artifacts/contracts/userInterfaces/IPChainStakeMirror.sol/IPChainStakeMirror.json +575 -0
  276. package/flare/artifacts/contracts/userInterfaces/IPChainStakeMirrorMultiSigVoting.sol/IPChainStakeMirrorMultiSigVoting.json +311 -0
  277. package/flare/artifacts/contracts/userInterfaces/IPChainStakeMirrorVerifier.sol/IPChainStakeMirrorVerifier.json +10 -0
  278. package/flare/artifacts/contracts/userInterfaces/IPChainVotePower.sol/IPChainVotePower.json +309 -0
  279. package/flare/artifacts/contracts/utils/implementation/BytesLib.sol/BytesLib.json +10 -0
  280. package/flare/artifacts/contracts/utils/implementation/FtsoRegistry.sol/FtsoRegistry.json +2 -2
  281. package/flare/artifacts/contracts/utils/implementation/FtsoV2Upgrader.sol/FtsoV2Upgrader.json +2 -2
  282. package/flare/artifacts/contracts/utils/implementation/VoterWhitelister.sol/VoterWhitelister.json +2 -2
  283. package/flare/deploys/contracts.json +23 -3
  284. package/package.json +3 -2
  285. package/songbird/artifacts/contracts/claiming/implementation/ClaimSetupManager.sol/ClaimSetupManager.json +2 -2
  286. package/songbird/artifacts/contracts/ftso/implementation/FtsoManager.sol/FtsoManager.json +2 -2
  287. package/songbird/artifacts/contracts/governance/implementation/PollingFoundation.sol/PollingFoundation.json +2 -2
  288. package/songbird/artifacts/contracts/governance/implementation/PollingFtso.sol/PollingFtso.json +2 -2
  289. package/songbird/artifacts/contracts/inflation/implementation/Inflation.sol/Inflation.json +273 -298
  290. package/songbird/artifacts/contracts/inflation/implementation/InflationAllocation.sol/InflationAllocation.json +463 -0
  291. package/songbird/artifacts/contracts/inflation/implementation/SelfDestructBurner.sol/SelfDestructBurner.json +73 -0
  292. package/songbird/artifacts/contracts/inflation/implementation/Supply.sol/Supply.json +290 -51
  293. package/songbird/artifacts/contracts/inflation/interface/{IIInflationSharingPercentageProvider.sol/IIInflationSharingPercentageProvider.json → IIInflationAllocation.sol/IIInflationAllocation.json} +15 -2
  294. package/songbird/artifacts/contracts/inflation/interface/IIInflationReceiver.sol/IIInflationReceiver.json +26 -0
  295. package/songbird/artifacts/contracts/inflation/interface/IIInflationReceiverV1.sol/IIInflationReceiverV1.json +57 -0
  296. package/songbird/artifacts/contracts/inflation/interface/IIInflationV1.sol/IIInflationV1.json +142 -0
  297. package/songbird/artifacts/contracts/inflation/interface/IIPreInflationCalculation.sol/IIPreInflationCalculation.json +18 -0
  298. package/songbird/artifacts/contracts/inflation/interface/IISupply.sol/IISupply.json +6 -12
  299. package/songbird/artifacts/contracts/inflation/lib/{RewardServices.sol/RewardServices.json → InflationRewardServices.sol/InflationRewardServices.json} +25 -6
  300. package/songbird/artifacts/contracts/inflation/lib/InflationTimeSlots.sol/InflationTimeSlots.json +10 -0
  301. package/songbird/artifacts/contracts/tokenPools/implementation/FtsoRewardManager.sol/FtsoRewardManager.json +2 -2
  302. package/songbird/artifacts/contracts/tokenPools/implementation/InflationReceiver.sol/InflationReceiver.json +127 -0
  303. package/songbird/artifacts/contracts/tokenPools/implementation/TokenPoolBase.sol/TokenPoolBase.json +10 -0
  304. package/songbird/artifacts/contracts/tokenPools/interface/IIFtsoRewardManager.sol/IIFtsoRewardManager.json +13 -0
  305. package/songbird/artifacts/contracts/userInterfaces/IGenericRewardManager.sol/IGenericRewardManager.json +248 -0
  306. package/songbird/artifacts/contracts/utils/implementation/FtsoV2Upgrader.sol/FtsoV2Upgrader.json +2 -2
  307. package/songbird/deploys/contracts.json +3 -3
  308. package/dist/songbird/artifacts/contracts/governance/implementation/InflationAllocation.sol/InflationAllocation.json +0 -351
  309. package/dist/songbird/artifacts/contracts/inflation/interface/IIInflationPercentageProvider.sol/IIInflationPercentageProvider.json +0 -24
  310. package/dist/songbird/artifacts/contracts/inflation/lib/InflationAnnum.sol/InflationAnnum.json +0 -10
  311. package/dist/songbird/artifacts/contracts/inflation/lib/InflationAnnums.sol/InflationAnnums.json +0 -10
  312. package/dist/songbird/artifacts/contracts/inflation/lib/RewardService.sol/RewardService.json +0 -30
  313. package/songbird/artifacts/contracts/governance/implementation/InflationAllocation.sol/InflationAllocation.json +0 -351
  314. package/songbird/artifacts/contracts/inflation/interface/IIInflationPercentageProvider.sol/IIInflationPercentageProvider.json +0 -24
  315. package/songbird/artifacts/contracts/inflation/lib/InflationAnnum.sol/InflationAnnum.json +0 -10
  316. package/songbird/artifacts/contracts/inflation/lib/InflationAnnums.sol/InflationAnnums.json +0 -10
  317. package/songbird/artifacts/contracts/inflation/lib/RewardService.sol/RewardService.json +0 -30
@@ -646,8 +646,8 @@
646
646
  "type": "function"
647
647
  }
648
648
  ],
649
- "bytecode": "0x60c06040523480156200001157600080fd5b506040516200402b3803806200402b833981810160405260a08110156200003757600080fd5b508051602082015160408301516060840151608090940151929391929091908385806001600160a01b038116156200007457620000748162000120565b506001600160a01b038116620000c4576040805162461bcd60e51b815260206004820152601060248201526f5f676f7665726e616e6365207a65726f60801b604482015290519081900360640190fd5b50620000d081620001e3565b50606092831b6001600160601b03199081166080526002929092559182901b1660a0526007805460ff60a01b19166001600160a01b039092161515600160a01b0291909117905550620002079050565b600054600160a01b900460ff161562000180576040805162461bcd60e51b815260206004820152601460248201527f696e697469616c6973656420213d2066616c7365000000000000000000000000604482015290519081900360640190fd5b60008054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b60805160601c60a05160601c613ddc6200024f600039806108ea5280611aa55280611b645280611f5652508061255252806125b052806130e052806133e45250613ddc6000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c806374e6310e11610104578063aa89dfd4116100a2578063d873617111610071578063d87361711461089e578063e17f212e146108bb578063f5a98383146108c3578063f937d6ad146108cb576101da565b8063aa89dfd414610610578063ab674b22146106b4578063b00c0b76146106bc578063b06cbaf7146107df576101da565b806398dccfc2116100de57806398dccfc2146105855780639d6a890f146105a25780639dc950ab146105c8578063a5eb9c60146105f4576101da565b806374e6310e1461049f5780637ecfcfa3146105455780638e15c88314610568576101da565b80633de2cb1c1161017c5780635aa6e6751161014b5780635aa6e675146104415780635ff270791461044957806362354e031461047057806367fc402914610478576101da565b80633de2cb1c146103cd57806346538074146103f957806347ed51b1146104315780635267a15d14610439576101da565b80632ee96140116101b85780632ee9614014610381578063345705a4146103a057806338b5f869146103bd5780633a65d7b6146103c5576101da565b806309fcb400146101df57806311a7aaaa1461024c5780632b4faebb14610270575b600080fd5b6101fc600480360360208110156101f557600080fd5b50356108d3565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610238578181015183820152602001610220565b505050509050019250505060405180910390f35b610254610ae2565b604080516001600160a01b039092168252519081900360200190f35b6103266004803603606081101561028657600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b8111156102b557600080fd5b8201836020820111156102c757600080fd5b803590602001918460208302840111600160201b831117156102e857600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610af1945050505050565b6040518080602001838152602001828103825284818151815260200191508051906020019060200280838360005b8381101561036c578181015183820152602001610354565b50505050905001935050505060405180910390f35b61039e6004803603602081101561039757600080fd5b5035610d4c565b005b61039e600480360360208110156103b657600080fd5b5035610d93565b610254610ea7565b61039e610eb6565b61039e600480360360408110156103e357600080fd5b506001600160a01b038135169060200135610f1e565b61041f6004803603602081101561040f57600080fd5b50356001600160a01b03166110f4565b60408051918252519081900360200190f35b61041f611106565b61025461110c565b610254611131565b61039e6004803603602081101561045f57600080fd5b50356001600160e01b0319166111c6565b61025461151b565b61039e6004803603602081101561048e57600080fd5b50356001600160e01b031916611526565b6104c6600480360360208110156104b557600080fd5b50356001600160e01b03191661160e565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156105095781810151838201526020016104f1565b50505050905090810190601f1680156105365780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b61039e6004803603604081101561055b57600080fd5b50803590602001356116b4565b61039e6004803603602081101561057e57600080fd5b50356119f8565b61041f6004803603602081101561059b57600080fd5b5035611c94565b61039e600480360360208110156105b857600080fd5b50356001600160a01b0316611ca6565b61039e600480360360408110156105de57600080fd5b506001600160a01b038135169060200135611d5f565b6105fc611e55565b604080519115158252519081900360200190f35b6101fc6004803603602081101561062657600080fd5b810190602081018135600160201b81111561064057600080fd5b82018360208201111561065257600080fd5b803590602001918460018302840111600160201b8311171561067357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611e65945050505050565b610254611f54565b61039e600480360360408110156106d257600080fd5b810190602081018135600160201b8111156106ec57600080fd5b8201836020820111156106fe57600080fd5b803590602001918460208302840111600160201b8311171561071f57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561076e57600080fd5b82018360208201111561078057600080fd5b803590602001918460208302840111600160201b831117156107a157600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611f78945050505050565b610805600480360360208110156107f557600080fd5b50356001600160a01b031661201f565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610849578181015183820152602001610831565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610888578181015183820152602001610870565b5050505090500194505050505060405180910390f35b61039e600480360360208110156108b457600080fd5b5035612354565b6105fc612486565b61039e612496565b610254612550565b600754606090600160a01b900460ff1615610a1a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166309fcb400836040518263ffffffff1660e01b81526004018082815260200191505060006040518083038186803b15801561094c57600080fd5b505afa158015610960573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561098957600080fd5b8101908080516040519392919084600160201b8211156109a857600080fd5b9083019060208201858111156109bd57600080fd5b82518660208202830111600160201b821117156109d957600080fd5b82525081516020918201928201910280838360005b83811015610a065781810151838201526020016109ee565b505050509050016040525050509050610add565b60008281526003602052604090205480610a76576040805162461bcd60e51b8152602060048201526018602482015277119514d3c81a5b99195e081b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b60008381526005602090815260409182902080548351818402810184019094528084529091830182828015610ad457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ab6575b50505050509150505b919050565b6007546001600160a01b031681565b600754606090600090600160a01b900460ff1615610b42576040805162461bcd60e51b8152602060048201526009602482015268636f7079206d6f646560b81b604482015290519081900360640190fd5b600054600160b01b900460ff1680610b645750600054600160a81b900460ff16155b15610d3957610b71612574565b610b7a856125ab565b15610bbe576040805162461bcd60e51b815260206004820152600f60248201526e74727573746564206164647265737360881b604482015290519081900360640190fd5b610c4284600760009054906101000a90046001600160a01b03166001600160a01b031663e7c830d46040518163ffffffff1660e01b815260040160206040518083038186803b158015610c1057600080fd5b505afa158015610c24573d6000803e3d6000fd5b505050506040513d6020811015610c3a57600080fd5b505190612726565b6001600160a01b0386166000818152600460209081526040918290208490558151928352820183905280519293507f0c2fcef22ab22997ed46cd27f7f0aa308600145401a7a141065d61c5d87341d292918290030190a182518067ffffffffffffffff81118015610cb257600080fd5b50604051908082528060200260200182016040528015610cdc578160200160208202803683370190505b5092508415610d335760005b81811015610d3157610d0d87868381518110610d0057fe5b6020026020010151612789565b848281518110610d1957fe5b91151560209283029190910190910152600101610ce8565b505b50610d44565b610d4460003661290e565b935093915050565b600054600160b01b900460ff1680610d6e5750600054600160a81b900460ff16155b15610d8557610d7b612574565b6002819055610d90565b610d9060003661290e565b50565b600754600160a01b900460ff1615610dde576040805162461bcd60e51b8152602060048201526009602482015268636f7079206d6f646560b81b604482015290519081900360640190fd5b6007546001600160a01b03163314610e31576040805162461bcd60e51b815260206004820152601160248201527037b7363c90333a39b79036b0b730b3b2b960791b604482015290519081900360640190fd5b60008181526003602052604090205415610e92576040805162461bcd60e51b815260206004820152601760248201527f77686974656c69737420616c7265616479206578697374000000000000000000604482015290519081900360640190fd5b60025460009182526003602052604090912055565b6006546001600160a01b031681565b610ebe612a91565b600754600160a01b900460ff16610f0f576040805162461bcd60e51b815260206004820152601060248201526f6e6f7420696e20636f7079206d6f646560801b604482015290519081900360640190fd5b6007805460ff60a01b19169055565b600754600160a01b900460ff1615610f69576040805162461bcd60e51b8152602060048201526009602482015268636f7079206d6f646560b81b604482015290519081900360640190fd5b6001600160a01b038216600090815260046020526040902054829080158061100a5750600760009054906101000a90046001600160a01b03166001600160a01b031663e7c830d46040518163ffffffff1660e01b815260040160206040518083038186803b158015610fda57600080fd5b505afa158015610fee573d6000803e3d6000fd5b505050506040513d602081101561100457600080fd5b50518111155b61104b576040805162461bcd60e51b815260206004820152600d60248201526c1d9bdd195c8818da1a5b1b1959609a1b604482015290519081900360640190fd5b611054846125ab565b15611098576040805162461bcd60e51b815260206004820152600f60248201526e74727573746564206164647265737360881b604482015290519081900360640190fd5b60006110a48585612af0565b9050806110ed576040805162461bcd60e51b8152602060048201526012602482015271766f746520706f77657220746f6f206c6f7760701b604482015290519081900360640190fd5b5050505050565b60046020526000908152604090205481565b60025481565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e77195490565b60008054600160a81b900460ff16611154576000546001600160a01b03166111c1565b60076001609c1b016001600160a01b031663732524946040518163ffffffff1660e01b815260040160206040518083038186803b15801561119457600080fd5b505afa1580156111a8573d6000803e3d6000fd5b505050506040513d60208110156111be57600080fd5b50515b905090565b60408051630debfda360e41b8152336004820152905160076001609c1b019163debfda30916024808301926020929190829003018186803b15801561120a57600080fd5b505afa15801561121e573d6000803e3d6000fd5b505050506040513d602081101561123457600080fd5b5051611277576040805162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b604482015290519081900360640190fd5b6001600160e01b03198116600090815260016020526040902080546112e3576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b8054421015611339576040805162461bcd60e51b815260206004820152601960248201527f74696d656c6f636b3a206e6f7420616c6c6f7765642079657400000000000000604482015290519081900360640190fd5b6000816001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113d35780601f106113a8576101008083540402835291602001916113d3565b820191906000526020600020905b8154815290600101906020018083116113b657829003601f168201915b5050506001600160e01b03198616600090815260016020819052604082208281559495509092506114079150830182613c2d565b50506000805460ff60b01b1916600160b01b178155604051825130918491819060208401908083835b6020831061144f5780518252601f199092019160209182019101611430565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146114b1576040519150601f19603f3d011682016040523d82523d6000602084013e6114b6565b606091505b50506000805460ff60b01b19169055604080516001600160e01b03198716815242602082015281519293507fa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438929081900390910190a161151581612d7a565b50505050565b60076001609c1b0181565b61152e612a91565b6001600160e01b03198116600090815260016020526040902054611599576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b604080516001600160e01b03198316815242602082015281517f7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8929181900390910190a16001600160e01b0319811660009081526001602081905260408220828155919061160990830182613c2d565b505050565b600160208181526000928352604092839020805481840180548651600296821615610100026000190190911695909504601f810185900485028601850190965285855290949193929091908301828280156116aa5780601f1061167f576101008083540402835291602001916116aa565b820191906000526020600020905b81548152906001019060200180831161168d57829003601f168201915b5050505050905082565b600754600160a01b900460ff16156116ff576040805162461bcd60e51b8152602060048201526009602482015268636f7079206d6f646560b81b604482015290519081900360640190fd5b600054600160b01b900460ff16806117215750600054600160a81b900460ff16155b156119e95761172e612574565b6000828152600360209081526040808320849055600590915290208054821061175757506119e4565b6006546040805163d75f6d8160e01b81526004810186905290516000926001600160a01b03169163d75f6d81916024808301926020929190829003018186803b1580156117a357600080fd5b505afa1580156117b7573d6000803e3d6000fd5b505050506040513d60208110156117cd57600080fd5b505182546040805160208381028201810190925282815292935060009261183692859287919083018282801561182c57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161180e575b5050505050612d97565b805190915084810360008167ffffffffffffffff8111801561185757600080fd5b50604051908082528060200260200182016040528015611881578160200160208202803683370190505b50905060005b828110156119d257600061189b868661300a565b90508781815481106118a957fe5b9060005260206000200160009054906101000a90046001600160a01b03168383815181106118d357fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600185038110156119955787600186038154811061190d57fe5b9060005260206000200160009054906101000a90046001600160a01b031688828154811061193757fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555085600186038151811061197457fe5b602002602001015186828151811061198857fe5b6020026020010181815250505b8780548061199f57fe5b600082815260209020810160001990810180546001600160a01b0319169055908101909155949094019350600101611887565b506119dd818961306e565b5050505050505b6119f4565b6119f460003661290e565b5050565b611a00612a91565b600754600160a01b900460ff16611a51576040805162461bcd60e51b815260206004820152601060248201526f6e6f7420696e20636f7079206d6f646560801b604482015290519081900360640190fd5b60008181526003602052604090205415611aa3576040805162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e4818dbdc1a595960921b604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166398dccfc2826040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015611b0757600080fd5b505afa158015611b1b573d6000803e3d6000fd5b505050506040513d6020811015611b3157600080fd5b505160008281526003602052604080822092909255815162027f2d60ea1b81526004810184905291516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016926309fcb400926024808301939192829003018186803b158015611ba757600080fd5b505afa158015611bbb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015611be457600080fd5b8101908080516040519392919084600160201b821115611c0357600080fd5b908301906020820185811115611c1857600080fd5b82518660208202830111600160201b82111715611c3457600080fd5b82525081516020918201928201910280838360005b83811015611c61578181015183820152602001611c49565b505050509050016040525050506005600083815260200190815260200160002090805190602001906119f4929190613c71565b60036020526000908152604090205481565b600054600160a01b900460ff1615611cfc576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b60008054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b600754600160a01b900460ff1615611daa576040805162461bcd60e51b8152602060048201526009602482015268636f7079206d6f646560b81b604482015290519081900360640190fd5b611db3826125ab565b611dfa576040805162461bcd60e51b81526020600482015260136024820152726e6f742074727573746564206164647265737360681b604482015290519081900360640190fd5b611e048282612789565b6119f4576040805162461bcd60e51b815260206004820152601f60248201527f747275737465642061646472657373206e6f742077686974656c697374656400604482015290519081900360640190fd5b600754600160a01b900460ff1681565b600654604051630e848da360e41b81526020600482018181528451602484015284516060946000946001600160a01b039091169363e848da3093889390928392604490910191908501908083838b5b83811015611ecc578181015183820152602001611eb4565b50505050905090810190601f168015611ef95780820380516001836020036101000a031916815260200191505b509250505060206040518083038186803b158015611f1657600080fd5b505afa158015611f2a573d6000803e3d6000fd5b505050506040513d6020811015611f4057600080fd5b50519050611f4d816108d3565b9392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b611f8061110c565b6001600160a01b0316336001600160a01b031614611fdc576040805162461bcd60e51b815260206004820152601460248201527337b7363c9030b2323932b9b9903ab83230ba32b960611b604482015290519081900360640190fd5b61201561201083836040518060400160405280600e81526020016d20b2323932b9b9aab83230ba32b960911b8152506131a6565b6132d3565b6119f482826132f7565b6007546060908190600160a01b900460ff161561206f576040805162461bcd60e51b8152602060048201526009602482015268636f7079206d6f646560b81b604482015290519081900360640190fd5b6001600160a01b03831660009081526004602052604090205483908015806121105750600760009054906101000a90046001600160a01b03166001600160a01b031663e7c830d46040518163ffffffff1660e01b815260040160206040518083038186803b1580156120e057600080fd5b505afa1580156120f4573d6000803e3d6000fd5b505050506040513d602081101561210a57600080fd5b50518111155b612151576040805162461bcd60e51b815260206004820152600d60248201526c1d9bdd195c8818da1a5b1b1959609a1b604482015290519081900360640190fd5b61215a856125ab565b1561219e576040805162461bcd60e51b815260206004820152600f60248201526e74727573746564206164647265737360881b604482015290519081900360640190fd5b600660009054906101000a90046001600160a01b03166001600160a01b031663798aac5b6040518163ffffffff1660e01b815260040160006040518083038186803b1580156121ec57600080fd5b505afa158015612200573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561222957600080fd5b8101908080516040519392919084600160201b82111561224857600080fd5b90830190602082018581111561225d57600080fd5b82518660208202830111600160201b8211171561227957600080fd5b82525081516020918201928201910280838360005b838110156122a657818101518382015260200161228e565b5050505090500160405250505093506000845190508067ffffffffffffffff811180156122d257600080fd5b506040519080825280602002602001820160405280156122fc578160200160208202803683370190505b50935060005b8181101561234b576123278787838151811061231a57fe5b6020026020010151612af0565b85828151811061233357fe5b91151560209283029190910190910152600101612302565b50505050915091565b600754600160a01b900460ff161561239f576040805162461bcd60e51b8152602060048201526009602482015268636f7079206d6f646560b81b604482015290519081900360640190fd5b6007546001600160a01b031633146123f2576040805162461bcd60e51b815260206004820152601160248201527037b7363c90333a39b79036b0b730b3b2b960791b604482015290519081900360640190fd5b600081815260056020908152604091829020805483518184028101840190945280845261245e939283018282801561245357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612435575b50505050508261306e565b600081815260056020526040812061247591613cd6565b600090815260036020526040812055565b600054600160a81b900460ff1681565b61249e612a91565b600054600160a81b900460ff16156124fd576040805162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2070726f64756374696f6e206d6f6465000000000000604482015290519081900360640190fd5b60008054600161ff0160a01b031916600160a81b1790556040805160076001609c1b01815290517f83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c9181900360200190a1565b7f000000000000000000000000000000000000000000000000000000000000000081565b600054600160b01b900460ff16156125a15733301461258f57fe5b6000805460ff60b01b191690556125a9565b6125a9612a91565b565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ffacb84e6040518163ffffffff1660e01b815260040160006040518083038186803b15801561260757600080fd5b505afa15801561261b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561264457600080fd5b8101908080516040519392919084600160201b82111561266357600080fd5b90830190602082018581111561267857600080fd5b82518660208202830111600160201b8211171561269457600080fd5b82525081516020918201928201910280838360005b838110156126c15781810151838201526020016126a9565b50505050905001604052505050905060005b815181101561271c57836001600160a01b03168282815181106126f257fe5b60200260200101516001600160a01b0316141561271457600192505050610add565b6001016126d3565b5060009392505050565b600082820183811015612780576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b60008181526005602052604081208054825b818110156127e157856001600160a01b03168382815481106127b957fe5b6000918252602090912001546001600160a01b031614156127d9576127e1565b60010161279b565b818114156127f55760009350505050612783565b6040805160018082528183019092526000916020808301908036833701905050905083828154811061282357fe5b600091825260208220015482516001600160a01b0390911691839161284457fe5b60200260200101906001600160a01b031690816001600160a01b03168152505083600184038154811061287357fe5b9060005260206000200160009054906101000a90046001600160a01b031684838154811061289d57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550838054806128d557fe5b600082815260209020810160001990810180546001600160a01b0319169055019055612901818761306e565b5060019695505050505050565b612916612a91565b600082359050600060076001609c1b016001600160a01b0316636221a54b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561295e57600080fd5b505afa158015612972573d6000803e3d6000fd5b505050506040513d602081101561298857600080fd5b505160408051808201825242830180825282516020601f89018190048102820181019094528781529394509290918281019190889088908190840183828082843760009201829052509390945250506001600160e01b03198616815260016020818152604090922084518155848301518051919450612a0c93928501920190613cf4565b509050507fed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b68382878760405180856001600160e01b0319168152602001848152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f191690920182900397509095505050505050a15050505050565b612a99611131565b6001600160a01b0316336001600160a01b0316146125a9576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b60008181526003602052604081205480612b4c576040805162461bcd60e51b8152602060048201526018602482015277119514d3c81a5b99195e081b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b6000838152600560205260408120805490916001820167ffffffffffffffff81118015612b7857600080fd5b50604051908082528060200260200182016040528015612ba2578160200160208202803683370190505b50905060005b82811015612c1d576000848281548110612bbe57fe5b6000918252602090912001546001600160a01b0390811691508916811415612bef5760019650505050505050612783565b80838381518110612bfc57fe5b6001600160a01b039092166020928302919091019091015250600101612ba8565b5086818381518110612c2b57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505083821015612c955782546001810184556000848152602090200180546001600160a01b0319166001600160a01b038916179055612c88878761339e565b6001945050505050612783565b6000612ca18288613459565b905082811415612cb957600095505050505050612783565b60408051600180825281830190925260009160208083019080368337019050509050828281518110612ce757fe5b602002602001015181600081518110612cfc57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505088858381548110612d2957fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550612d61818961306e565b612d6b898961339e565b50600198975050505050505050565b3d604051818101604052816000823e8215612d93578181f35b8181fd5b6060806060600080600080886001600160a01b0316638357d08c6040518163ffffffff1660e01b815260040160006040518083038186803b158015612ddb57600080fd5b505afa158015612def573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c0811015612e1857600080fd5b8101908080516040519392919084600160201b821115612e3757600080fd5b908301906020820185811115612e4c57600080fd5b82518660208202830111600160201b82111715612e6857600080fd5b82525081516020918201928201910280838360005b83811015612e95578181015183820152602001612e7d565b5050505090500160405260200180516040519392919084600160201b821115612ebd57600080fd5b908301906020820185811115612ed257600080fd5b82518660208202830111600160201b82111715612eee57600080fd5b82525081516020918201928201910280838360005b83811015612f1b578181015183820152602001612f03565b5050505090500160405260200180519060200190929190805190602001909291908051906020019092919080519060200190929190505050809650819750829850839950849a50859b505050505050506000612fdd8a6001600160a01b0316639edbf0076040518163ffffffff1660e01b815260040160206040518083038186803b158015612fa957600080fd5b505afa158015612fbd573d6000803e3d6000fd5b505050506040513d6020811015612fd357600080fd5b5051868b856134f1565b90506000612fee8888878d8761356c565b9050612ffb8282866136df565b9b9a5050505050505050505050565b6000806000905060008460008151811061302057fe5b6020026020010151905060005b8481101561306457600086828151811061304357fe5b6020026020010151905082811161305b578193508092505b5060010161302d565b5090949350505050565b60005b82518110156130dd577f33359f2769756ca8d0da4683f25ee440744d6f18bfb166dbfb59315a8c62b0168382815181106130a757fe5b60200260200101518360405180836001600160a01b031681526020018281526020019250505060405180910390a1600101613071565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166376794efb83836040518363ffffffff1660e01b81526004018080602001838152602001828103825284818151815260200191508051906020019060200280838360005b8381101561316457818101518382015260200161314c565b505050509050019350505050600060405180830381600087803b15801561318a57600080fd5b505af115801561319e573d6000803e3d6000fd5b505050505050565b600080826040516020018080602001828103825283818151815260200191508051906020019080838360005b838110156131ea5781810151838201526020016131d2565b50505050905090810190601f1680156132175780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012090506000805b865181101561327f5786818151811061324d57fe5b60200260200101518314156132775785818151811061326857fe5b6020026020010151915061327f565b600101613238565b506001600160a01b0381166132ca576040805162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b604482015290519081900360640190fd5b95945050505050565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b61332682826040518060400160405280600c81526020016b4674736f526567697374727960a01b8152506131a6565b600660006101000a8154816001600160a01b0302191690836001600160a01b0316021790555061337a82826040518060400160405280600b81526020016a233a39b7a6b0b730b3b2b960a91b8152506131a6565b600780546001600160a01b0319166001600160a01b03929092169190911790555050565b604080516001600160a01b03841681526020810183905281517f66a8b13abe95391d1851f5bc319f3dde54ce8f2f40a5fe226aa3251d805832e3929181900390910190a17f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639d986f9183836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561318a57600080fd5b6006546040805163d75f6d8160e01b815260048101849052905160009283926001600160a01b039091169163d75f6d8191602480820192602092909190829003018186803b1580156134aa57600080fd5b505afa1580156134be573d6000803e3d6000fd5b505050506040513d60208110156134d457600080fd5b5051905060006134e48286612d97565b90506132ca81825161300a565b60606134fe858484613824565b90508361350a57613564565b60005b83518110156135625761354364e8d4a510008684848151811061352c57fe5b6020026020010151613a1c9092919063ffffffff16565b82828151811061354f57fe5b602090810291909101015260010161350d565b505b949350505050565b6060825167ffffffffffffffff8111801561358657600080fd5b506040519080825280602002602001820160405280156135b0578160200160208202803683370190505b50905060005b83518110156135e05760008282815181106135cd57fe5b60209081029190910101526001016135b6565b50836135eb576132ca565b60006135ff85670de0b6b3a7640000613b28565b905060005b87518110156136d457600088828151811061361b57fe5b6020026020010151905060006001600160a01b0316816001600160a01b0316146136cb57600061364c828888613824565b905060005b87518110156136c85760006136808b868151811061366b57fe5b60200260200101518785858151811061352c57fe5b90506136a88188848151811061369257fe5b602002602001015161272690919063ffffffff16565b8783815181106136b457fe5b602090810291909101015250600101613651565b50505b50600101613604565b505095945050505050565b606060006136ec84613b81565b905060006136f986613b81565b9050600080831161370b57600061370d565b845b9050600080831161371f576000613725565b81612710035b9050875167ffffffffffffffff8111801561373f57600080fd5b50604051908082528060200260200182016040528015613769578160200160208202803683370190505b50945060005b885181101561381857600082156137b6576137b38a838151811061378f57fe5b602002602001015164e8d4a5100002612710870285613a1c9092919063ffffffff16565b90505b600084156137f4576137f18a84815181106137cd57fe5b602002602001015164e8d4a5100002612710890287613a1c9092919063ffffffff16565b90505b80820188848151811061380357fe5b6020908102919091010152505060010161376f565b50505050509392505050565b6060836001600160a01b031663e587497e8460018651038151811061384557fe5b6020026020010151846040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561389457600080fd5b505af11580156138a8573d6000803e3d6000fd5b505050506040513d60208110156138be57600080fd5b5050604080516349e3c7e560e01b815260248101849052600481019182528451604482015284516001600160a01b038716926349e3c7e592879287929182916064909101906020868101910280838360005b83811015613928578181015183820152602001613910565b50505050905001935050505060006040518083038186803b15801561394c57600080fd5b505afa158015613960573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561398957600080fd5b8101908080516040519392919084600160201b8211156139a857600080fd5b9083019060208201858111156139bd57600080fd5b82518660208202830111600160201b821117156139d957600080fd5b82525081516020918201928201910280838360005b83811015613a065781810151838201526020016139ee565b5050505090500160405250505090509392505050565b6000808211613a65576040805162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b604482015290519081900360640190fd5b83613a7257506000611f4d565b83830283858281613a7f57fe5b041415613a9857828181613a8f57fe5b04915050611f4d565b6000838681613aa357fe5b0490506000848781613ab157fe5b0690506000858781613abf57fe5b0490506000868881613acd57fe5b069050613b1b613ae788613ae18685613b28565b90613bc6565b613b15613af48686613b28565b613b15613b018987613b28565b613b158d613b0f8c8b613b28565b90613b28565b90612726565b9998505050505050505050565b600082613b3757506000612783565b82820282848281613b4457fe5b04146127805760405162461bcd60e51b8152600401808060200182810382526021815260200180613d866021913960400191505060405180910390fd5b600080805b8351811015613bbf57613bb5848281518110613b9e57fe5b60200260200101518361272690919063ffffffff16565b9150600101613b86565b5092915050565b6000808211613c1c576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381613c2557fe5b049392505050565b50805460018160011615610100020316600290046000825580601f10613c535750610d90565b601f016020900490600052602060002090810190610d909190613d70565b828054828255906000526020600020908101928215613cc6579160200282015b82811115613cc657825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613c91565b50613cd2929150613d70565b5090565b5080546000825590600052602060002090810190610d909190613d70565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282613d2a5760008555613cc6565b82601f10613d4357805160ff1916838001178555613cc6565b82800160010185558215613cc6579182015b82811115613cc6578251825591602001919060010190613d55565b5b80821115613cd25760008155600101613d7156fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220a1a7062ef7daa770cd0d6093664282523d2e781c068252a3c2cac49f9e9f217a64736f6c63430007060033",
650
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101da5760003560e01c806374e6310e11610104578063aa89dfd4116100a2578063d873617111610071578063d87361711461089e578063e17f212e146108bb578063f5a98383146108c3578063f937d6ad146108cb576101da565b8063aa89dfd414610610578063ab674b22146106b4578063b00c0b76146106bc578063b06cbaf7146107df576101da565b806398dccfc2116100de57806398dccfc2146105855780639d6a890f146105a25780639dc950ab146105c8578063a5eb9c60146105f4576101da565b806374e6310e1461049f5780637ecfcfa3146105455780638e15c88314610568576101da565b80633de2cb1c1161017c5780635aa6e6751161014b5780635aa6e675146104415780635ff270791461044957806362354e031461047057806367fc402914610478576101da565b80633de2cb1c146103cd57806346538074146103f957806347ed51b1146104315780635267a15d14610439576101da565b80632ee96140116101b85780632ee9614014610381578063345705a4146103a057806338b5f869146103bd5780633a65d7b6146103c5576101da565b806309fcb400146101df57806311a7aaaa1461024c5780632b4faebb14610270575b600080fd5b6101fc600480360360208110156101f557600080fd5b50356108d3565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610238578181015183820152602001610220565b505050509050019250505060405180910390f35b610254610ae2565b604080516001600160a01b039092168252519081900360200190f35b6103266004803603606081101561028657600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b8111156102b557600080fd5b8201836020820111156102c757600080fd5b803590602001918460208302840111600160201b831117156102e857600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610af1945050505050565b6040518080602001838152602001828103825284818151815260200191508051906020019060200280838360005b8381101561036c578181015183820152602001610354565b50505050905001935050505060405180910390f35b61039e6004803603602081101561039757600080fd5b5035610d4c565b005b61039e600480360360208110156103b657600080fd5b5035610d93565b610254610ea7565b61039e610eb6565b61039e600480360360408110156103e357600080fd5b506001600160a01b038135169060200135610f1e565b61041f6004803603602081101561040f57600080fd5b50356001600160a01b03166110f4565b60408051918252519081900360200190f35b61041f611106565b61025461110c565b610254611131565b61039e6004803603602081101561045f57600080fd5b50356001600160e01b0319166111c6565b61025461151b565b61039e6004803603602081101561048e57600080fd5b50356001600160e01b031916611526565b6104c6600480360360208110156104b557600080fd5b50356001600160e01b03191661160e565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156105095781810151838201526020016104f1565b50505050905090810190601f1680156105365780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b61039e6004803603604081101561055b57600080fd5b50803590602001356116b4565b61039e6004803603602081101561057e57600080fd5b50356119f8565b61041f6004803603602081101561059b57600080fd5b5035611c94565b61039e600480360360208110156105b857600080fd5b50356001600160a01b0316611ca6565b61039e600480360360408110156105de57600080fd5b506001600160a01b038135169060200135611d5f565b6105fc611e55565b604080519115158252519081900360200190f35b6101fc6004803603602081101561062657600080fd5b810190602081018135600160201b81111561064057600080fd5b82018360208201111561065257600080fd5b803590602001918460018302840111600160201b8311171561067357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611e65945050505050565b610254611f54565b61039e600480360360408110156106d257600080fd5b810190602081018135600160201b8111156106ec57600080fd5b8201836020820111156106fe57600080fd5b803590602001918460208302840111600160201b8311171561071f57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561076e57600080fd5b82018360208201111561078057600080fd5b803590602001918460208302840111600160201b831117156107a157600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611f78945050505050565b610805600480360360208110156107f557600080fd5b50356001600160a01b031661201f565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610849578181015183820152602001610831565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610888578181015183820152602001610870565b5050505090500194505050505060405180910390f35b61039e600480360360208110156108b457600080fd5b5035612354565b6105fc612486565b61039e612496565b610254612550565b600754606090600160a01b900460ff1615610a1a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166309fcb400836040518263ffffffff1660e01b81526004018082815260200191505060006040518083038186803b15801561094c57600080fd5b505afa158015610960573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561098957600080fd5b8101908080516040519392919084600160201b8211156109a857600080fd5b9083019060208201858111156109bd57600080fd5b82518660208202830111600160201b821117156109d957600080fd5b82525081516020918201928201910280838360005b83811015610a065781810151838201526020016109ee565b505050509050016040525050509050610add565b60008281526003602052604090205480610a76576040805162461bcd60e51b8152602060048201526018602482015277119514d3c81a5b99195e081b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b60008381526005602090815260409182902080548351818402810184019094528084529091830182828015610ad457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ab6575b50505050509150505b919050565b6007546001600160a01b031681565b600754606090600090600160a01b900460ff1615610b42576040805162461bcd60e51b8152602060048201526009602482015268636f7079206d6f646560b81b604482015290519081900360640190fd5b600054600160b01b900460ff1680610b645750600054600160a81b900460ff16155b15610d3957610b71612574565b610b7a856125ab565b15610bbe576040805162461bcd60e51b815260206004820152600f60248201526e74727573746564206164647265737360881b604482015290519081900360640190fd5b610c4284600760009054906101000a90046001600160a01b03166001600160a01b031663e7c830d46040518163ffffffff1660e01b815260040160206040518083038186803b158015610c1057600080fd5b505afa158015610c24573d6000803e3d6000fd5b505050506040513d6020811015610c3a57600080fd5b505190612726565b6001600160a01b0386166000818152600460209081526040918290208490558151928352820183905280519293507f0c2fcef22ab22997ed46cd27f7f0aa308600145401a7a141065d61c5d87341d292918290030190a182518067ffffffffffffffff81118015610cb257600080fd5b50604051908082528060200260200182016040528015610cdc578160200160208202803683370190505b5092508415610d335760005b81811015610d3157610d0d87868381518110610d0057fe5b6020026020010151612789565b848281518110610d1957fe5b91151560209283029190910190910152600101610ce8565b505b50610d44565b610d4460003661290e565b935093915050565b600054600160b01b900460ff1680610d6e5750600054600160a81b900460ff16155b15610d8557610d7b612574565b6002819055610d90565b610d9060003661290e565b50565b600754600160a01b900460ff1615610dde576040805162461bcd60e51b8152602060048201526009602482015268636f7079206d6f646560b81b604482015290519081900360640190fd5b6007546001600160a01b03163314610e31576040805162461bcd60e51b815260206004820152601160248201527037b7363c90333a39b79036b0b730b3b2b960791b604482015290519081900360640190fd5b60008181526003602052604090205415610e92576040805162461bcd60e51b815260206004820152601760248201527f77686974656c69737420616c7265616479206578697374000000000000000000604482015290519081900360640190fd5b60025460009182526003602052604090912055565b6006546001600160a01b031681565b610ebe612a91565b600754600160a01b900460ff16610f0f576040805162461bcd60e51b815260206004820152601060248201526f6e6f7420696e20636f7079206d6f646560801b604482015290519081900360640190fd5b6007805460ff60a01b19169055565b600754600160a01b900460ff1615610f69576040805162461bcd60e51b8152602060048201526009602482015268636f7079206d6f646560b81b604482015290519081900360640190fd5b6001600160a01b038216600090815260046020526040902054829080158061100a5750600760009054906101000a90046001600160a01b03166001600160a01b031663e7c830d46040518163ffffffff1660e01b815260040160206040518083038186803b158015610fda57600080fd5b505afa158015610fee573d6000803e3d6000fd5b505050506040513d602081101561100457600080fd5b50518111155b61104b576040805162461bcd60e51b815260206004820152600d60248201526c1d9bdd195c8818da1a5b1b1959609a1b604482015290519081900360640190fd5b611054846125ab565b15611098576040805162461bcd60e51b815260206004820152600f60248201526e74727573746564206164647265737360881b604482015290519081900360640190fd5b60006110a48585612af0565b9050806110ed576040805162461bcd60e51b8152602060048201526012602482015271766f746520706f77657220746f6f206c6f7760701b604482015290519081900360640190fd5b5050505050565b60046020526000908152604090205481565b60025481565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e77195490565b60008054600160a81b900460ff16611154576000546001600160a01b03166111c1565b60076001609c1b016001600160a01b031663732524946040518163ffffffff1660e01b815260040160206040518083038186803b15801561119457600080fd5b505afa1580156111a8573d6000803e3d6000fd5b505050506040513d60208110156111be57600080fd5b50515b905090565b60408051630debfda360e41b8152336004820152905160076001609c1b019163debfda30916024808301926020929190829003018186803b15801561120a57600080fd5b505afa15801561121e573d6000803e3d6000fd5b505050506040513d602081101561123457600080fd5b5051611277576040805162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b604482015290519081900360640190fd5b6001600160e01b03198116600090815260016020526040902080546112e3576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b8054421015611339576040805162461bcd60e51b815260206004820152601960248201527f74696d656c6f636b3a206e6f7420616c6c6f7765642079657400000000000000604482015290519081900360640190fd5b6000816001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113d35780601f106113a8576101008083540402835291602001916113d3565b820191906000526020600020905b8154815290600101906020018083116113b657829003601f168201915b5050506001600160e01b03198616600090815260016020819052604082208281559495509092506114079150830182613c2d565b50506000805460ff60b01b1916600160b01b178155604051825130918491819060208401908083835b6020831061144f5780518252601f199092019160209182019101611430565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146114b1576040519150601f19603f3d011682016040523d82523d6000602084013e6114b6565b606091505b50506000805460ff60b01b19169055604080516001600160e01b03198716815242602082015281519293507fa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438929081900390910190a161151581612d7a565b50505050565b60076001609c1b0181565b61152e612a91565b6001600160e01b03198116600090815260016020526040902054611599576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b604080516001600160e01b03198316815242602082015281517f7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8929181900390910190a16001600160e01b0319811660009081526001602081905260408220828155919061160990830182613c2d565b505050565b600160208181526000928352604092839020805481840180548651600296821615610100026000190190911695909504601f810185900485028601850190965285855290949193929091908301828280156116aa5780601f1061167f576101008083540402835291602001916116aa565b820191906000526020600020905b81548152906001019060200180831161168d57829003601f168201915b5050505050905082565b600754600160a01b900460ff16156116ff576040805162461bcd60e51b8152602060048201526009602482015268636f7079206d6f646560b81b604482015290519081900360640190fd5b600054600160b01b900460ff16806117215750600054600160a81b900460ff16155b156119e95761172e612574565b6000828152600360209081526040808320849055600590915290208054821061175757506119e4565b6006546040805163d75f6d8160e01b81526004810186905290516000926001600160a01b03169163d75f6d81916024808301926020929190829003018186803b1580156117a357600080fd5b505afa1580156117b7573d6000803e3d6000fd5b505050506040513d60208110156117cd57600080fd5b505182546040805160208381028201810190925282815292935060009261183692859287919083018282801561182c57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161180e575b5050505050612d97565b805190915084810360008167ffffffffffffffff8111801561185757600080fd5b50604051908082528060200260200182016040528015611881578160200160208202803683370190505b50905060005b828110156119d257600061189b868661300a565b90508781815481106118a957fe5b9060005260206000200160009054906101000a90046001600160a01b03168383815181106118d357fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600185038110156119955787600186038154811061190d57fe5b9060005260206000200160009054906101000a90046001600160a01b031688828154811061193757fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555085600186038151811061197457fe5b602002602001015186828151811061198857fe5b6020026020010181815250505b8780548061199f57fe5b600082815260209020810160001990810180546001600160a01b0319169055908101909155949094019350600101611887565b506119dd818961306e565b5050505050505b6119f4565b6119f460003661290e565b5050565b611a00612a91565b600754600160a01b900460ff16611a51576040805162461bcd60e51b815260206004820152601060248201526f6e6f7420696e20636f7079206d6f646560801b604482015290519081900360640190fd5b60008181526003602052604090205415611aa3576040805162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e4818dbdc1a595960921b604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166398dccfc2826040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015611b0757600080fd5b505afa158015611b1b573d6000803e3d6000fd5b505050506040513d6020811015611b3157600080fd5b505160008281526003602052604080822092909255815162027f2d60ea1b81526004810184905291516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016926309fcb400926024808301939192829003018186803b158015611ba757600080fd5b505afa158015611bbb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015611be457600080fd5b8101908080516040519392919084600160201b821115611c0357600080fd5b908301906020820185811115611c1857600080fd5b82518660208202830111600160201b82111715611c3457600080fd5b82525081516020918201928201910280838360005b83811015611c61578181015183820152602001611c49565b505050509050016040525050506005600083815260200190815260200160002090805190602001906119f4929190613c71565b60036020526000908152604090205481565b600054600160a01b900460ff1615611cfc576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b60008054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b600754600160a01b900460ff1615611daa576040805162461bcd60e51b8152602060048201526009602482015268636f7079206d6f646560b81b604482015290519081900360640190fd5b611db3826125ab565b611dfa576040805162461bcd60e51b81526020600482015260136024820152726e6f742074727573746564206164647265737360681b604482015290519081900360640190fd5b611e048282612789565b6119f4576040805162461bcd60e51b815260206004820152601f60248201527f747275737465642061646472657373206e6f742077686974656c697374656400604482015290519081900360640190fd5b600754600160a01b900460ff1681565b600654604051630e848da360e41b81526020600482018181528451602484015284516060946000946001600160a01b039091169363e848da3093889390928392604490910191908501908083838b5b83811015611ecc578181015183820152602001611eb4565b50505050905090810190601f168015611ef95780820380516001836020036101000a031916815260200191505b509250505060206040518083038186803b158015611f1657600080fd5b505afa158015611f2a573d6000803e3d6000fd5b505050506040513d6020811015611f4057600080fd5b50519050611f4d816108d3565b9392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b611f8061110c565b6001600160a01b0316336001600160a01b031614611fdc576040805162461bcd60e51b815260206004820152601460248201527337b7363c9030b2323932b9b9903ab83230ba32b960611b604482015290519081900360640190fd5b61201561201083836040518060400160405280600e81526020016d20b2323932b9b9aab83230ba32b960911b8152506131a6565b6132d3565b6119f482826132f7565b6007546060908190600160a01b900460ff161561206f576040805162461bcd60e51b8152602060048201526009602482015268636f7079206d6f646560b81b604482015290519081900360640190fd5b6001600160a01b03831660009081526004602052604090205483908015806121105750600760009054906101000a90046001600160a01b03166001600160a01b031663e7c830d46040518163ffffffff1660e01b815260040160206040518083038186803b1580156120e057600080fd5b505afa1580156120f4573d6000803e3d6000fd5b505050506040513d602081101561210a57600080fd5b50518111155b612151576040805162461bcd60e51b815260206004820152600d60248201526c1d9bdd195c8818da1a5b1b1959609a1b604482015290519081900360640190fd5b61215a856125ab565b1561219e576040805162461bcd60e51b815260206004820152600f60248201526e74727573746564206164647265737360881b604482015290519081900360640190fd5b600660009054906101000a90046001600160a01b03166001600160a01b031663798aac5b6040518163ffffffff1660e01b815260040160006040518083038186803b1580156121ec57600080fd5b505afa158015612200573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561222957600080fd5b8101908080516040519392919084600160201b82111561224857600080fd5b90830190602082018581111561225d57600080fd5b82518660208202830111600160201b8211171561227957600080fd5b82525081516020918201928201910280838360005b838110156122a657818101518382015260200161228e565b5050505090500160405250505093506000845190508067ffffffffffffffff811180156122d257600080fd5b506040519080825280602002602001820160405280156122fc578160200160208202803683370190505b50935060005b8181101561234b576123278787838151811061231a57fe5b6020026020010151612af0565b85828151811061233357fe5b91151560209283029190910190910152600101612302565b50505050915091565b600754600160a01b900460ff161561239f576040805162461bcd60e51b8152602060048201526009602482015268636f7079206d6f646560b81b604482015290519081900360640190fd5b6007546001600160a01b031633146123f2576040805162461bcd60e51b815260206004820152601160248201527037b7363c90333a39b79036b0b730b3b2b960791b604482015290519081900360640190fd5b600081815260056020908152604091829020805483518184028101840190945280845261245e939283018282801561245357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612435575b50505050508261306e565b600081815260056020526040812061247591613cd6565b600090815260036020526040812055565b600054600160a81b900460ff1681565b61249e612a91565b600054600160a81b900460ff16156124fd576040805162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2070726f64756374696f6e206d6f6465000000000000604482015290519081900360640190fd5b60008054600161ff0160a01b031916600160a81b1790556040805160076001609c1b01815290517f83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c9181900360200190a1565b7f000000000000000000000000000000000000000000000000000000000000000081565b600054600160b01b900460ff16156125a15733301461258f57fe5b6000805460ff60b01b191690556125a9565b6125a9612a91565b565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ffacb84e6040518163ffffffff1660e01b815260040160006040518083038186803b15801561260757600080fd5b505afa15801561261b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561264457600080fd5b8101908080516040519392919084600160201b82111561266357600080fd5b90830190602082018581111561267857600080fd5b82518660208202830111600160201b8211171561269457600080fd5b82525081516020918201928201910280838360005b838110156126c15781810151838201526020016126a9565b50505050905001604052505050905060005b815181101561271c57836001600160a01b03168282815181106126f257fe5b60200260200101516001600160a01b0316141561271457600192505050610add565b6001016126d3565b5060009392505050565b600082820183811015612780576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b60008181526005602052604081208054825b818110156127e157856001600160a01b03168382815481106127b957fe5b6000918252602090912001546001600160a01b031614156127d9576127e1565b60010161279b565b818114156127f55760009350505050612783565b6040805160018082528183019092526000916020808301908036833701905050905083828154811061282357fe5b600091825260208220015482516001600160a01b0390911691839161284457fe5b60200260200101906001600160a01b031690816001600160a01b03168152505083600184038154811061287357fe5b9060005260206000200160009054906101000a90046001600160a01b031684838154811061289d57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550838054806128d557fe5b600082815260209020810160001990810180546001600160a01b0319169055019055612901818761306e565b5060019695505050505050565b612916612a91565b600082359050600060076001609c1b016001600160a01b0316636221a54b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561295e57600080fd5b505afa158015612972573d6000803e3d6000fd5b505050506040513d602081101561298857600080fd5b505160408051808201825242830180825282516020601f89018190048102820181019094528781529394509290918281019190889088908190840183828082843760009201829052509390945250506001600160e01b03198616815260016020818152604090922084518155848301518051919450612a0c93928501920190613cf4565b509050507fed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b68382878760405180856001600160e01b0319168152602001848152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f191690920182900397509095505050505050a15050505050565b612a99611131565b6001600160a01b0316336001600160a01b0316146125a9576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b60008181526003602052604081205480612b4c576040805162461bcd60e51b8152602060048201526018602482015277119514d3c81a5b99195e081b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b6000838152600560205260408120805490916001820167ffffffffffffffff81118015612b7857600080fd5b50604051908082528060200260200182016040528015612ba2578160200160208202803683370190505b50905060005b82811015612c1d576000848281548110612bbe57fe5b6000918252602090912001546001600160a01b0390811691508916811415612bef5760019650505050505050612783565b80838381518110612bfc57fe5b6001600160a01b039092166020928302919091019091015250600101612ba8565b5086818381518110612c2b57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505083821015612c955782546001810184556000848152602090200180546001600160a01b0319166001600160a01b038916179055612c88878761339e565b6001945050505050612783565b6000612ca18288613459565b905082811415612cb957600095505050505050612783565b60408051600180825281830190925260009160208083019080368337019050509050828281518110612ce757fe5b602002602001015181600081518110612cfc57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505088858381548110612d2957fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550612d61818961306e565b612d6b898961339e565b50600198975050505050505050565b3d604051818101604052816000823e8215612d93578181f35b8181fd5b6060806060600080600080886001600160a01b0316638357d08c6040518163ffffffff1660e01b815260040160006040518083038186803b158015612ddb57600080fd5b505afa158015612def573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c0811015612e1857600080fd5b8101908080516040519392919084600160201b821115612e3757600080fd5b908301906020820185811115612e4c57600080fd5b82518660208202830111600160201b82111715612e6857600080fd5b82525081516020918201928201910280838360005b83811015612e95578181015183820152602001612e7d565b5050505090500160405260200180516040519392919084600160201b821115612ebd57600080fd5b908301906020820185811115612ed257600080fd5b82518660208202830111600160201b82111715612eee57600080fd5b82525081516020918201928201910280838360005b83811015612f1b578181015183820152602001612f03565b5050505090500160405260200180519060200190929190805190602001909291908051906020019092919080519060200190929190505050809650819750829850839950849a50859b505050505050506000612fdd8a6001600160a01b0316639edbf0076040518163ffffffff1660e01b815260040160206040518083038186803b158015612fa957600080fd5b505afa158015612fbd573d6000803e3d6000fd5b505050506040513d6020811015612fd357600080fd5b5051868b856134f1565b90506000612fee8888878d8761356c565b9050612ffb8282866136df565b9b9a5050505050505050505050565b6000806000905060008460008151811061302057fe5b6020026020010151905060005b8481101561306457600086828151811061304357fe5b6020026020010151905082811161305b578193508092505b5060010161302d565b5090949350505050565b60005b82518110156130dd577f33359f2769756ca8d0da4683f25ee440744d6f18bfb166dbfb59315a8c62b0168382815181106130a757fe5b60200260200101518360405180836001600160a01b031681526020018281526020019250505060405180910390a1600101613071565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166376794efb83836040518363ffffffff1660e01b81526004018080602001838152602001828103825284818151815260200191508051906020019060200280838360005b8381101561316457818101518382015260200161314c565b505050509050019350505050600060405180830381600087803b15801561318a57600080fd5b505af115801561319e573d6000803e3d6000fd5b505050505050565b600080826040516020018080602001828103825283818151815260200191508051906020019080838360005b838110156131ea5781810151838201526020016131d2565b50505050905090810190601f1680156132175780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012090506000805b865181101561327f5786818151811061324d57fe5b60200260200101518314156132775785818151811061326857fe5b6020026020010151915061327f565b600101613238565b506001600160a01b0381166132ca576040805162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b604482015290519081900360640190fd5b95945050505050565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b61332682826040518060400160405280600c81526020016b4674736f526567697374727960a01b8152506131a6565b600660006101000a8154816001600160a01b0302191690836001600160a01b0316021790555061337a82826040518060400160405280600b81526020016a233a39b7a6b0b730b3b2b960a91b8152506131a6565b600780546001600160a01b0319166001600160a01b03929092169190911790555050565b604080516001600160a01b03841681526020810183905281517f66a8b13abe95391d1851f5bc319f3dde54ce8f2f40a5fe226aa3251d805832e3929181900390910190a17f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639d986f9183836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561318a57600080fd5b6006546040805163d75f6d8160e01b815260048101849052905160009283926001600160a01b039091169163d75f6d8191602480820192602092909190829003018186803b1580156134aa57600080fd5b505afa1580156134be573d6000803e3d6000fd5b505050506040513d60208110156134d457600080fd5b5051905060006134e48286612d97565b90506132ca81825161300a565b60606134fe858484613824565b90508361350a57613564565b60005b83518110156135625761354364e8d4a510008684848151811061352c57fe5b6020026020010151613a1c9092919063ffffffff16565b82828151811061354f57fe5b602090810291909101015260010161350d565b505b949350505050565b6060825167ffffffffffffffff8111801561358657600080fd5b506040519080825280602002602001820160405280156135b0578160200160208202803683370190505b50905060005b83518110156135e05760008282815181106135cd57fe5b60209081029190910101526001016135b6565b50836135eb576132ca565b60006135ff85670de0b6b3a7640000613b28565b905060005b87518110156136d457600088828151811061361b57fe5b6020026020010151905060006001600160a01b0316816001600160a01b0316146136cb57600061364c828888613824565b905060005b87518110156136c85760006136808b868151811061366b57fe5b60200260200101518785858151811061352c57fe5b90506136a88188848151811061369257fe5b602002602001015161272690919063ffffffff16565b8783815181106136b457fe5b602090810291909101015250600101613651565b50505b50600101613604565b505095945050505050565b606060006136ec84613b81565b905060006136f986613b81565b9050600080831161370b57600061370d565b845b9050600080831161371f576000613725565b81612710035b9050875167ffffffffffffffff8111801561373f57600080fd5b50604051908082528060200260200182016040528015613769578160200160208202803683370190505b50945060005b885181101561381857600082156137b6576137b38a838151811061378f57fe5b602002602001015164e8d4a5100002612710870285613a1c9092919063ffffffff16565b90505b600084156137f4576137f18a84815181106137cd57fe5b602002602001015164e8d4a5100002612710890287613a1c9092919063ffffffff16565b90505b80820188848151811061380357fe5b6020908102919091010152505060010161376f565b50505050509392505050565b6060836001600160a01b031663e587497e8460018651038151811061384557fe5b6020026020010151846040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561389457600080fd5b505af11580156138a8573d6000803e3d6000fd5b505050506040513d60208110156138be57600080fd5b5050604080516349e3c7e560e01b815260248101849052600481019182528451604482015284516001600160a01b038716926349e3c7e592879287929182916064909101906020868101910280838360005b83811015613928578181015183820152602001613910565b50505050905001935050505060006040518083038186803b15801561394c57600080fd5b505afa158015613960573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561398957600080fd5b8101908080516040519392919084600160201b8211156139a857600080fd5b9083019060208201858111156139bd57600080fd5b82518660208202830111600160201b821117156139d957600080fd5b82525081516020918201928201910280838360005b83811015613a065781810151838201526020016139ee565b5050505090500160405250505090509392505050565b6000808211613a65576040805162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b604482015290519081900360640190fd5b83613a7257506000611f4d565b83830283858281613a7f57fe5b041415613a9857828181613a8f57fe5b04915050611f4d565b6000838681613aa357fe5b0490506000848781613ab157fe5b0690506000858781613abf57fe5b0490506000868881613acd57fe5b069050613b1b613ae788613ae18685613b28565b90613bc6565b613b15613af48686613b28565b613b15613b018987613b28565b613b158d613b0f8c8b613b28565b90613b28565b90612726565b9998505050505050505050565b600082613b3757506000612783565b82820282848281613b4457fe5b04146127805760405162461bcd60e51b8152600401808060200182810382526021815260200180613d866021913960400191505060405180910390fd5b600080805b8351811015613bbf57613bb5848281518110613b9e57fe5b60200260200101518361272690919063ffffffff16565b9150600101613b86565b5092915050565b6000808211613c1c576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381613c2557fe5b049392505050565b50805460018160011615610100020316600290046000825580601f10613c535750610d90565b601f016020900490600052602060002090810190610d909190613d70565b828054828255906000526020600020908101928215613cc6579160200282015b82811115613cc657825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613c91565b50613cd2929150613d70565b5090565b5080546000825590600052602060002090810190610d909190613d70565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282613d2a5760008555613cc6565b82601f10613d4357805160ff1916838001178555613cc6565b82800160010185558215613cc6579182015b82811115613cc6578251825591602001919060010190613d55565b5b80821115613cd25760008155600101613d7156fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220a1a7062ef7daa770cd0d6093664282523d2e781c068252a3c2cac49f9e9f217a64736f6c63430007060033",
649
+ "bytecode": "0x60c06040523480156200001157600080fd5b506040516200402b3803806200402b833981810160405260a08110156200003757600080fd5b508051602082015160408301516060840151608090940151929391929091908385806001600160a01b038116156200007457620000748162000120565b506001600160a01b038116620000c4576040805162461bcd60e51b815260206004820152601060248201526f5f676f7665726e616e6365207a65726f60801b604482015290519081900360640190fd5b50620000d081620001e3565b50606092831b6001600160601b03199081166080526002929092559182901b1660a0526007805460ff60a01b19166001600160a01b039092161515600160a01b0291909117905550620002079050565b600054600160a01b900460ff161562000180576040805162461bcd60e51b815260206004820152601460248201527f696e697469616c6973656420213d2066616c7365000000000000000000000000604482015290519081900360640190fd5b60008054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b60805160601c60a05160601c613ddc6200024f600039806108ea5280611aa55280611b645280611f5652508061255252806125b052806130e052806133e45250613ddc6000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c806374e6310e11610104578063aa89dfd4116100a2578063d873617111610071578063d87361711461089e578063e17f212e146108bb578063f5a98383146108c3578063f937d6ad146108cb576101da565b8063aa89dfd414610610578063ab674b22146106b4578063b00c0b76146106bc578063b06cbaf7146107df576101da565b806398dccfc2116100de57806398dccfc2146105855780639d6a890f146105a25780639dc950ab146105c8578063a5eb9c60146105f4576101da565b806374e6310e1461049f5780637ecfcfa3146105455780638e15c88314610568576101da565b80633de2cb1c1161017c5780635aa6e6751161014b5780635aa6e675146104415780635ff270791461044957806362354e031461047057806367fc402914610478576101da565b80633de2cb1c146103cd57806346538074146103f957806347ed51b1146104315780635267a15d14610439576101da565b80632ee96140116101b85780632ee9614014610381578063345705a4146103a057806338b5f869146103bd5780633a65d7b6146103c5576101da565b806309fcb400146101df57806311a7aaaa1461024c5780632b4faebb14610270575b600080fd5b6101fc600480360360208110156101f557600080fd5b50356108d3565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610238578181015183820152602001610220565b505050509050019250505060405180910390f35b610254610ae2565b604080516001600160a01b039092168252519081900360200190f35b6103266004803603606081101561028657600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b8111156102b557600080fd5b8201836020820111156102c757600080fd5b803590602001918460208302840111600160201b831117156102e857600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610af1945050505050565b6040518080602001838152602001828103825284818151815260200191508051906020019060200280838360005b8381101561036c578181015183820152602001610354565b50505050905001935050505060405180910390f35b61039e6004803603602081101561039757600080fd5b5035610d4c565b005b61039e600480360360208110156103b657600080fd5b5035610d93565b610254610ea7565b61039e610eb6565b61039e600480360360408110156103e357600080fd5b506001600160a01b038135169060200135610f1e565b61041f6004803603602081101561040f57600080fd5b50356001600160a01b03166110f4565b60408051918252519081900360200190f35b61041f611106565b61025461110c565b610254611131565b61039e6004803603602081101561045f57600080fd5b50356001600160e01b0319166111c6565b61025461151b565b61039e6004803603602081101561048e57600080fd5b50356001600160e01b031916611526565b6104c6600480360360208110156104b557600080fd5b50356001600160e01b03191661160e565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156105095781810151838201526020016104f1565b50505050905090810190601f1680156105365780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b61039e6004803603604081101561055b57600080fd5b50803590602001356116b4565b61039e6004803603602081101561057e57600080fd5b50356119f8565b61041f6004803603602081101561059b57600080fd5b5035611c94565b61039e600480360360208110156105b857600080fd5b50356001600160a01b0316611ca6565b61039e600480360360408110156105de57600080fd5b506001600160a01b038135169060200135611d5f565b6105fc611e55565b604080519115158252519081900360200190f35b6101fc6004803603602081101561062657600080fd5b810190602081018135600160201b81111561064057600080fd5b82018360208201111561065257600080fd5b803590602001918460018302840111600160201b8311171561067357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611e65945050505050565b610254611f54565b61039e600480360360408110156106d257600080fd5b810190602081018135600160201b8111156106ec57600080fd5b8201836020820111156106fe57600080fd5b803590602001918460208302840111600160201b8311171561071f57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561076e57600080fd5b82018360208201111561078057600080fd5b803590602001918460208302840111600160201b831117156107a157600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611f78945050505050565b610805600480360360208110156107f557600080fd5b50356001600160a01b031661201f565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610849578181015183820152602001610831565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610888578181015183820152602001610870565b5050505090500194505050505060405180910390f35b61039e600480360360208110156108b457600080fd5b5035612354565b6105fc612486565b61039e612496565b610254612550565b600754606090600160a01b900460ff1615610a1a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166309fcb400836040518263ffffffff1660e01b81526004018082815260200191505060006040518083038186803b15801561094c57600080fd5b505afa158015610960573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561098957600080fd5b8101908080516040519392919084600160201b8211156109a857600080fd5b9083019060208201858111156109bd57600080fd5b82518660208202830111600160201b821117156109d957600080fd5b82525081516020918201928201910280838360005b83811015610a065781810151838201526020016109ee565b505050509050016040525050509050610add565b60008281526003602052604090205480610a76576040805162461bcd60e51b8152602060048201526018602482015277119514d3c81a5b99195e081b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b60008381526005602090815260409182902080548351818402810184019094528084529091830182828015610ad457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ab6575b50505050509150505b919050565b6007546001600160a01b031681565b600754606090600090600160a01b900460ff1615610b42576040805162461bcd60e51b8152602060048201526009602482015268636f7079206d6f646560b81b604482015290519081900360640190fd5b600054600160b01b900460ff1680610b645750600054600160a81b900460ff16155b15610d3957610b71612574565b610b7a856125ab565b15610bbe576040805162461bcd60e51b815260206004820152600f60248201526e74727573746564206164647265737360881b604482015290519081900360640190fd5b610c4284600760009054906101000a90046001600160a01b03166001600160a01b031663e7c830d46040518163ffffffff1660e01b815260040160206040518083038186803b158015610c1057600080fd5b505afa158015610c24573d6000803e3d6000fd5b505050506040513d6020811015610c3a57600080fd5b505190612726565b6001600160a01b0386166000818152600460209081526040918290208490558151928352820183905280519293507f0c2fcef22ab22997ed46cd27f7f0aa308600145401a7a141065d61c5d87341d292918290030190a182518067ffffffffffffffff81118015610cb257600080fd5b50604051908082528060200260200182016040528015610cdc578160200160208202803683370190505b5092508415610d335760005b81811015610d3157610d0d87868381518110610d0057fe5b6020026020010151612789565b848281518110610d1957fe5b91151560209283029190910190910152600101610ce8565b505b50610d44565b610d4460003661290e565b935093915050565b600054600160b01b900460ff1680610d6e5750600054600160a81b900460ff16155b15610d8557610d7b612574565b6002819055610d90565b610d9060003661290e565b50565b600754600160a01b900460ff1615610dde576040805162461bcd60e51b8152602060048201526009602482015268636f7079206d6f646560b81b604482015290519081900360640190fd5b6007546001600160a01b03163314610e31576040805162461bcd60e51b815260206004820152601160248201527037b7363c90333a39b79036b0b730b3b2b960791b604482015290519081900360640190fd5b60008181526003602052604090205415610e92576040805162461bcd60e51b815260206004820152601760248201527f77686974656c69737420616c7265616479206578697374000000000000000000604482015290519081900360640190fd5b60025460009182526003602052604090912055565b6006546001600160a01b031681565b610ebe612a91565b600754600160a01b900460ff16610f0f576040805162461bcd60e51b815260206004820152601060248201526f6e6f7420696e20636f7079206d6f646560801b604482015290519081900360640190fd5b6007805460ff60a01b19169055565b600754600160a01b900460ff1615610f69576040805162461bcd60e51b8152602060048201526009602482015268636f7079206d6f646560b81b604482015290519081900360640190fd5b6001600160a01b038216600090815260046020526040902054829080158061100a5750600760009054906101000a90046001600160a01b03166001600160a01b031663e7c830d46040518163ffffffff1660e01b815260040160206040518083038186803b158015610fda57600080fd5b505afa158015610fee573d6000803e3d6000fd5b505050506040513d602081101561100457600080fd5b50518111155b61104b576040805162461bcd60e51b815260206004820152600d60248201526c1d9bdd195c8818da1a5b1b1959609a1b604482015290519081900360640190fd5b611054846125ab565b15611098576040805162461bcd60e51b815260206004820152600f60248201526e74727573746564206164647265737360881b604482015290519081900360640190fd5b60006110a48585612af0565b9050806110ed576040805162461bcd60e51b8152602060048201526012602482015271766f746520706f77657220746f6f206c6f7760701b604482015290519081900360640190fd5b5050505050565b60046020526000908152604090205481565b60025481565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e77195490565b60008054600160a81b900460ff16611154576000546001600160a01b03166111c1565b60076001609c1b016001600160a01b031663732524946040518163ffffffff1660e01b815260040160206040518083038186803b15801561119457600080fd5b505afa1580156111a8573d6000803e3d6000fd5b505050506040513d60208110156111be57600080fd5b50515b905090565b60408051630debfda360e41b8152336004820152905160076001609c1b019163debfda30916024808301926020929190829003018186803b15801561120a57600080fd5b505afa15801561121e573d6000803e3d6000fd5b505050506040513d602081101561123457600080fd5b5051611277576040805162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b604482015290519081900360640190fd5b6001600160e01b03198116600090815260016020526040902080546112e3576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b8054421015611339576040805162461bcd60e51b815260206004820152601960248201527f74696d656c6f636b3a206e6f7420616c6c6f7765642079657400000000000000604482015290519081900360640190fd5b6000816001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113d35780601f106113a8576101008083540402835291602001916113d3565b820191906000526020600020905b8154815290600101906020018083116113b657829003601f168201915b5050506001600160e01b03198616600090815260016020819052604082208281559495509092506114079150830182613c2d565b50506000805460ff60b01b1916600160b01b178155604051825130918491819060208401908083835b6020831061144f5780518252601f199092019160209182019101611430565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146114b1576040519150601f19603f3d011682016040523d82523d6000602084013e6114b6565b606091505b50506000805460ff60b01b19169055604080516001600160e01b03198716815242602082015281519293507fa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438929081900390910190a161151581612d7a565b50505050565b60076001609c1b0181565b61152e612a91565b6001600160e01b03198116600090815260016020526040902054611599576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b604080516001600160e01b03198316815242602082015281517f7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8929181900390910190a16001600160e01b0319811660009081526001602081905260408220828155919061160990830182613c2d565b505050565b600160208181526000928352604092839020805481840180548651600296821615610100026000190190911695909504601f810185900485028601850190965285855290949193929091908301828280156116aa5780601f1061167f576101008083540402835291602001916116aa565b820191906000526020600020905b81548152906001019060200180831161168d57829003601f168201915b5050505050905082565b600754600160a01b900460ff16156116ff576040805162461bcd60e51b8152602060048201526009602482015268636f7079206d6f646560b81b604482015290519081900360640190fd5b600054600160b01b900460ff16806117215750600054600160a81b900460ff16155b156119e95761172e612574565b6000828152600360209081526040808320849055600590915290208054821061175757506119e4565b6006546040805163d75f6d8160e01b81526004810186905290516000926001600160a01b03169163d75f6d81916024808301926020929190829003018186803b1580156117a357600080fd5b505afa1580156117b7573d6000803e3d6000fd5b505050506040513d60208110156117cd57600080fd5b505182546040805160208381028201810190925282815292935060009261183692859287919083018282801561182c57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161180e575b5050505050612d97565b805190915084810360008167ffffffffffffffff8111801561185757600080fd5b50604051908082528060200260200182016040528015611881578160200160208202803683370190505b50905060005b828110156119d257600061189b868661300a565b90508781815481106118a957fe5b9060005260206000200160009054906101000a90046001600160a01b03168383815181106118d357fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600185038110156119955787600186038154811061190d57fe5b9060005260206000200160009054906101000a90046001600160a01b031688828154811061193757fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555085600186038151811061197457fe5b602002602001015186828151811061198857fe5b6020026020010181815250505b8780548061199f57fe5b600082815260209020810160001990810180546001600160a01b0319169055908101909155949094019350600101611887565b506119dd818961306e565b5050505050505b6119f4565b6119f460003661290e565b5050565b611a00612a91565b600754600160a01b900460ff16611a51576040805162461bcd60e51b815260206004820152601060248201526f6e6f7420696e20636f7079206d6f646560801b604482015290519081900360640190fd5b60008181526003602052604090205415611aa3576040805162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e4818dbdc1a595960921b604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166398dccfc2826040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015611b0757600080fd5b505afa158015611b1b573d6000803e3d6000fd5b505050506040513d6020811015611b3157600080fd5b505160008281526003602052604080822092909255815162027f2d60ea1b81526004810184905291516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016926309fcb400926024808301939192829003018186803b158015611ba757600080fd5b505afa158015611bbb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015611be457600080fd5b8101908080516040519392919084600160201b821115611c0357600080fd5b908301906020820185811115611c1857600080fd5b82518660208202830111600160201b82111715611c3457600080fd5b82525081516020918201928201910280838360005b83811015611c61578181015183820152602001611c49565b505050509050016040525050506005600083815260200190815260200160002090805190602001906119f4929190613c71565b60036020526000908152604090205481565b600054600160a01b900460ff1615611cfc576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b60008054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b600754600160a01b900460ff1615611daa576040805162461bcd60e51b8152602060048201526009602482015268636f7079206d6f646560b81b604482015290519081900360640190fd5b611db3826125ab565b611dfa576040805162461bcd60e51b81526020600482015260136024820152726e6f742074727573746564206164647265737360681b604482015290519081900360640190fd5b611e048282612789565b6119f4576040805162461bcd60e51b815260206004820152601f60248201527f747275737465642061646472657373206e6f742077686974656c697374656400604482015290519081900360640190fd5b600754600160a01b900460ff1681565b600654604051630e848da360e41b81526020600482018181528451602484015284516060946000946001600160a01b039091169363e848da3093889390928392604490910191908501908083838b5b83811015611ecc578181015183820152602001611eb4565b50505050905090810190601f168015611ef95780820380516001836020036101000a031916815260200191505b509250505060206040518083038186803b158015611f1657600080fd5b505afa158015611f2a573d6000803e3d6000fd5b505050506040513d6020811015611f4057600080fd5b50519050611f4d816108d3565b9392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b611f8061110c565b6001600160a01b0316336001600160a01b031614611fdc576040805162461bcd60e51b815260206004820152601460248201527337b7363c9030b2323932b9b9903ab83230ba32b960611b604482015290519081900360640190fd5b61201561201083836040518060400160405280600e81526020016d20b2323932b9b9aab83230ba32b960911b8152506131a6565b6132d3565b6119f482826132f7565b6007546060908190600160a01b900460ff161561206f576040805162461bcd60e51b8152602060048201526009602482015268636f7079206d6f646560b81b604482015290519081900360640190fd5b6001600160a01b03831660009081526004602052604090205483908015806121105750600760009054906101000a90046001600160a01b03166001600160a01b031663e7c830d46040518163ffffffff1660e01b815260040160206040518083038186803b1580156120e057600080fd5b505afa1580156120f4573d6000803e3d6000fd5b505050506040513d602081101561210a57600080fd5b50518111155b612151576040805162461bcd60e51b815260206004820152600d60248201526c1d9bdd195c8818da1a5b1b1959609a1b604482015290519081900360640190fd5b61215a856125ab565b1561219e576040805162461bcd60e51b815260206004820152600f60248201526e74727573746564206164647265737360881b604482015290519081900360640190fd5b600660009054906101000a90046001600160a01b03166001600160a01b031663798aac5b6040518163ffffffff1660e01b815260040160006040518083038186803b1580156121ec57600080fd5b505afa158015612200573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561222957600080fd5b8101908080516040519392919084600160201b82111561224857600080fd5b90830190602082018581111561225d57600080fd5b82518660208202830111600160201b8211171561227957600080fd5b82525081516020918201928201910280838360005b838110156122a657818101518382015260200161228e565b5050505090500160405250505093506000845190508067ffffffffffffffff811180156122d257600080fd5b506040519080825280602002602001820160405280156122fc578160200160208202803683370190505b50935060005b8181101561234b576123278787838151811061231a57fe5b6020026020010151612af0565b85828151811061233357fe5b91151560209283029190910190910152600101612302565b50505050915091565b600754600160a01b900460ff161561239f576040805162461bcd60e51b8152602060048201526009602482015268636f7079206d6f646560b81b604482015290519081900360640190fd5b6007546001600160a01b031633146123f2576040805162461bcd60e51b815260206004820152601160248201527037b7363c90333a39b79036b0b730b3b2b960791b604482015290519081900360640190fd5b600081815260056020908152604091829020805483518184028101840190945280845261245e939283018282801561245357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612435575b50505050508261306e565b600081815260056020526040812061247591613cd6565b600090815260036020526040812055565b600054600160a81b900460ff1681565b61249e612a91565b600054600160a81b900460ff16156124fd576040805162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2070726f64756374696f6e206d6f6465000000000000604482015290519081900360640190fd5b60008054600161ff0160a01b031916600160a81b1790556040805160076001609c1b01815290517f83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c9181900360200190a1565b7f000000000000000000000000000000000000000000000000000000000000000081565b600054600160b01b900460ff16156125a15733301461258f57fe5b6000805460ff60b01b191690556125a9565b6125a9612a91565b565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ffacb84e6040518163ffffffff1660e01b815260040160006040518083038186803b15801561260757600080fd5b505afa15801561261b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561264457600080fd5b8101908080516040519392919084600160201b82111561266357600080fd5b90830190602082018581111561267857600080fd5b82518660208202830111600160201b8211171561269457600080fd5b82525081516020918201928201910280838360005b838110156126c15781810151838201526020016126a9565b50505050905001604052505050905060005b815181101561271c57836001600160a01b03168282815181106126f257fe5b60200260200101516001600160a01b0316141561271457600192505050610add565b6001016126d3565b5060009392505050565b600082820183811015612780576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b60008181526005602052604081208054825b818110156127e157856001600160a01b03168382815481106127b957fe5b6000918252602090912001546001600160a01b031614156127d9576127e1565b60010161279b565b818114156127f55760009350505050612783565b6040805160018082528183019092526000916020808301908036833701905050905083828154811061282357fe5b600091825260208220015482516001600160a01b0390911691839161284457fe5b60200260200101906001600160a01b031690816001600160a01b03168152505083600184038154811061287357fe5b9060005260206000200160009054906101000a90046001600160a01b031684838154811061289d57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550838054806128d557fe5b600082815260209020810160001990810180546001600160a01b0319169055019055612901818761306e565b5060019695505050505050565b612916612a91565b600082359050600060076001609c1b016001600160a01b0316636221a54b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561295e57600080fd5b505afa158015612972573d6000803e3d6000fd5b505050506040513d602081101561298857600080fd5b505160408051808201825242830180825282516020601f89018190048102820181019094528781529394509290918281019190889088908190840183828082843760009201829052509390945250506001600160e01b03198616815260016020818152604090922084518155848301518051919450612a0c93928501920190613cf4565b509050507fed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b68382878760405180856001600160e01b0319168152602001848152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f191690920182900397509095505050505050a15050505050565b612a99611131565b6001600160a01b0316336001600160a01b0316146125a9576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b60008181526003602052604081205480612b4c576040805162461bcd60e51b8152602060048201526018602482015277119514d3c81a5b99195e081b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b6000838152600560205260408120805490916001820167ffffffffffffffff81118015612b7857600080fd5b50604051908082528060200260200182016040528015612ba2578160200160208202803683370190505b50905060005b82811015612c1d576000848281548110612bbe57fe5b6000918252602090912001546001600160a01b0390811691508916811415612bef5760019650505050505050612783565b80838381518110612bfc57fe5b6001600160a01b039092166020928302919091019091015250600101612ba8565b5086818381518110612c2b57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505083821015612c955782546001810184556000848152602090200180546001600160a01b0319166001600160a01b038916179055612c88878761339e565b6001945050505050612783565b6000612ca18288613459565b905082811415612cb957600095505050505050612783565b60408051600180825281830190925260009160208083019080368337019050509050828281518110612ce757fe5b602002602001015181600081518110612cfc57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505088858381548110612d2957fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550612d61818961306e565b612d6b898961339e565b50600198975050505050505050565b3d604051818101604052816000823e8215612d93578181f35b8181fd5b6060806060600080600080886001600160a01b0316638357d08c6040518163ffffffff1660e01b815260040160006040518083038186803b158015612ddb57600080fd5b505afa158015612def573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c0811015612e1857600080fd5b8101908080516040519392919084600160201b821115612e3757600080fd5b908301906020820185811115612e4c57600080fd5b82518660208202830111600160201b82111715612e6857600080fd5b82525081516020918201928201910280838360005b83811015612e95578181015183820152602001612e7d565b5050505090500160405260200180516040519392919084600160201b821115612ebd57600080fd5b908301906020820185811115612ed257600080fd5b82518660208202830111600160201b82111715612eee57600080fd5b82525081516020918201928201910280838360005b83811015612f1b578181015183820152602001612f03565b5050505090500160405260200180519060200190929190805190602001909291908051906020019092919080519060200190929190505050809650819750829850839950849a50859b505050505050506000612fdd8a6001600160a01b0316639edbf0076040518163ffffffff1660e01b815260040160206040518083038186803b158015612fa957600080fd5b505afa158015612fbd573d6000803e3d6000fd5b505050506040513d6020811015612fd357600080fd5b5051868b856134f1565b90506000612fee8888878d8761356c565b9050612ffb8282866136df565b9b9a5050505050505050505050565b6000806000905060008460008151811061302057fe5b6020026020010151905060005b8481101561306457600086828151811061304357fe5b6020026020010151905082811161305b578193508092505b5060010161302d565b5090949350505050565b60005b82518110156130dd577f33359f2769756ca8d0da4683f25ee440744d6f18bfb166dbfb59315a8c62b0168382815181106130a757fe5b60200260200101518360405180836001600160a01b031681526020018281526020019250505060405180910390a1600101613071565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166376794efb83836040518363ffffffff1660e01b81526004018080602001838152602001828103825284818151815260200191508051906020019060200280838360005b8381101561316457818101518382015260200161314c565b505050509050019350505050600060405180830381600087803b15801561318a57600080fd5b505af115801561319e573d6000803e3d6000fd5b505050505050565b600080826040516020018080602001828103825283818151815260200191508051906020019080838360005b838110156131ea5781810151838201526020016131d2565b50505050905090810190601f1680156132175780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012090506000805b865181101561327f5786818151811061324d57fe5b60200260200101518314156132775785818151811061326857fe5b6020026020010151915061327f565b600101613238565b506001600160a01b0381166132ca576040805162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b604482015290519081900360640190fd5b95945050505050565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b61332682826040518060400160405280600c81526020016b4674736f526567697374727960a01b8152506131a6565b600660006101000a8154816001600160a01b0302191690836001600160a01b0316021790555061337a82826040518060400160405280600b81526020016a233a39b7a6b0b730b3b2b960a91b8152506131a6565b600780546001600160a01b0319166001600160a01b03929092169190911790555050565b604080516001600160a01b03841681526020810183905281517f66a8b13abe95391d1851f5bc319f3dde54ce8f2f40a5fe226aa3251d805832e3929181900390910190a17f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639d986f9183836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561318a57600080fd5b6006546040805163d75f6d8160e01b815260048101849052905160009283926001600160a01b039091169163d75f6d8191602480820192602092909190829003018186803b1580156134aa57600080fd5b505afa1580156134be573d6000803e3d6000fd5b505050506040513d60208110156134d457600080fd5b5051905060006134e48286612d97565b90506132ca81825161300a565b60606134fe858484613824565b90508361350a57613564565b60005b83518110156135625761354364e8d4a510008684848151811061352c57fe5b6020026020010151613a1c9092919063ffffffff16565b82828151811061354f57fe5b602090810291909101015260010161350d565b505b949350505050565b6060825167ffffffffffffffff8111801561358657600080fd5b506040519080825280602002602001820160405280156135b0578160200160208202803683370190505b50905060005b83518110156135e05760008282815181106135cd57fe5b60209081029190910101526001016135b6565b50836135eb576132ca565b60006135ff85670de0b6b3a7640000613b28565b905060005b87518110156136d457600088828151811061361b57fe5b6020026020010151905060006001600160a01b0316816001600160a01b0316146136cb57600061364c828888613824565b905060005b87518110156136c85760006136808b868151811061366b57fe5b60200260200101518785858151811061352c57fe5b90506136a88188848151811061369257fe5b602002602001015161272690919063ffffffff16565b8783815181106136b457fe5b602090810291909101015250600101613651565b50505b50600101613604565b505095945050505050565b606060006136ec84613b81565b905060006136f986613b81565b9050600080831161370b57600061370d565b845b9050600080831161371f576000613725565b81612710035b9050875167ffffffffffffffff8111801561373f57600080fd5b50604051908082528060200260200182016040528015613769578160200160208202803683370190505b50945060005b885181101561381857600082156137b6576137b38a838151811061378f57fe5b602002602001015164e8d4a5100002612710870285613a1c9092919063ffffffff16565b90505b600084156137f4576137f18a84815181106137cd57fe5b602002602001015164e8d4a5100002612710890287613a1c9092919063ffffffff16565b90505b80820188848151811061380357fe5b6020908102919091010152505060010161376f565b50505050509392505050565b6060836001600160a01b031663e587497e8460018651038151811061384557fe5b6020026020010151846040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561389457600080fd5b505af11580156138a8573d6000803e3d6000fd5b505050506040513d60208110156138be57600080fd5b5050604080516349e3c7e560e01b815260248101849052600481019182528451604482015284516001600160a01b038716926349e3c7e592879287929182916064909101906020868101910280838360005b83811015613928578181015183820152602001613910565b50505050905001935050505060006040518083038186803b15801561394c57600080fd5b505afa158015613960573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561398957600080fd5b8101908080516040519392919084600160201b8211156139a857600080fd5b9083019060208201858111156139bd57600080fd5b82518660208202830111600160201b821117156139d957600080fd5b82525081516020918201928201910280838360005b83811015613a065781810151838201526020016139ee565b5050505090500160405250505090509392505050565b6000808211613a65576040805162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b604482015290519081900360640190fd5b83613a7257506000611f4d565b83830283858281613a7f57fe5b041415613a9857828181613a8f57fe5b04915050611f4d565b6000838681613aa357fe5b0490506000848781613ab157fe5b0690506000858781613abf57fe5b0490506000868881613acd57fe5b069050613b1b613ae788613ae18685613b28565b90613bc6565b613b15613af48686613b28565b613b15613b018987613b28565b613b158d613b0f8c8b613b28565b90613b28565b90612726565b9998505050505050505050565b600082613b3757506000612783565b82820282848281613b4457fe5b04146127805760405162461bcd60e51b8152600401808060200182810382526021815260200180613d866021913960400191505060405180910390fd5b600080805b8351811015613bbf57613bb5848281518110613b9e57fe5b60200260200101518361272690919063ffffffff16565b9150600101613b86565b5092915050565b6000808211613c1c576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381613c2557fe5b049392505050565b50805460018160011615610100020316600290046000825580601f10613c535750610d90565b601f016020900490600052602060002090810190610d909190613d70565b828054828255906000526020600020908101928215613cc6579160200282015b82811115613cc657825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613c91565b50613cd2929150613d70565b5090565b5080546000825590600052602060002090810190610d909190613d70565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282613d2a5760008555613cc6565b82601f10613d4357805160ff1916838001178555613cc6565b82800160010185558215613cc6579182015b82811115613cc6578251825591602001919060010190613d55565b5b80821115613cd25760008155600101613d7156fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a264697066735822122053051a93cced90894df5b5f28cbc29f988257728ff86ea14bb01f388e53648f664736f6c63430007060033",
650
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101da5760003560e01c806374e6310e11610104578063aa89dfd4116100a2578063d873617111610071578063d87361711461089e578063e17f212e146108bb578063f5a98383146108c3578063f937d6ad146108cb576101da565b8063aa89dfd414610610578063ab674b22146106b4578063b00c0b76146106bc578063b06cbaf7146107df576101da565b806398dccfc2116100de57806398dccfc2146105855780639d6a890f146105a25780639dc950ab146105c8578063a5eb9c60146105f4576101da565b806374e6310e1461049f5780637ecfcfa3146105455780638e15c88314610568576101da565b80633de2cb1c1161017c5780635aa6e6751161014b5780635aa6e675146104415780635ff270791461044957806362354e031461047057806367fc402914610478576101da565b80633de2cb1c146103cd57806346538074146103f957806347ed51b1146104315780635267a15d14610439576101da565b80632ee96140116101b85780632ee9614014610381578063345705a4146103a057806338b5f869146103bd5780633a65d7b6146103c5576101da565b806309fcb400146101df57806311a7aaaa1461024c5780632b4faebb14610270575b600080fd5b6101fc600480360360208110156101f557600080fd5b50356108d3565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610238578181015183820152602001610220565b505050509050019250505060405180910390f35b610254610ae2565b604080516001600160a01b039092168252519081900360200190f35b6103266004803603606081101561028657600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b8111156102b557600080fd5b8201836020820111156102c757600080fd5b803590602001918460208302840111600160201b831117156102e857600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610af1945050505050565b6040518080602001838152602001828103825284818151815260200191508051906020019060200280838360005b8381101561036c578181015183820152602001610354565b50505050905001935050505060405180910390f35b61039e6004803603602081101561039757600080fd5b5035610d4c565b005b61039e600480360360208110156103b657600080fd5b5035610d93565b610254610ea7565b61039e610eb6565b61039e600480360360408110156103e357600080fd5b506001600160a01b038135169060200135610f1e565b61041f6004803603602081101561040f57600080fd5b50356001600160a01b03166110f4565b60408051918252519081900360200190f35b61041f611106565b61025461110c565b610254611131565b61039e6004803603602081101561045f57600080fd5b50356001600160e01b0319166111c6565b61025461151b565b61039e6004803603602081101561048e57600080fd5b50356001600160e01b031916611526565b6104c6600480360360208110156104b557600080fd5b50356001600160e01b03191661160e565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156105095781810151838201526020016104f1565b50505050905090810190601f1680156105365780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b61039e6004803603604081101561055b57600080fd5b50803590602001356116b4565b61039e6004803603602081101561057e57600080fd5b50356119f8565b61041f6004803603602081101561059b57600080fd5b5035611c94565b61039e600480360360208110156105b857600080fd5b50356001600160a01b0316611ca6565b61039e600480360360408110156105de57600080fd5b506001600160a01b038135169060200135611d5f565b6105fc611e55565b604080519115158252519081900360200190f35b6101fc6004803603602081101561062657600080fd5b810190602081018135600160201b81111561064057600080fd5b82018360208201111561065257600080fd5b803590602001918460018302840111600160201b8311171561067357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611e65945050505050565b610254611f54565b61039e600480360360408110156106d257600080fd5b810190602081018135600160201b8111156106ec57600080fd5b8201836020820111156106fe57600080fd5b803590602001918460208302840111600160201b8311171561071f57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561076e57600080fd5b82018360208201111561078057600080fd5b803590602001918460208302840111600160201b831117156107a157600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611f78945050505050565b610805600480360360208110156107f557600080fd5b50356001600160a01b031661201f565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610849578181015183820152602001610831565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610888578181015183820152602001610870565b5050505090500194505050505060405180910390f35b61039e600480360360208110156108b457600080fd5b5035612354565b6105fc612486565b61039e612496565b610254612550565b600754606090600160a01b900460ff1615610a1a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166309fcb400836040518263ffffffff1660e01b81526004018082815260200191505060006040518083038186803b15801561094c57600080fd5b505afa158015610960573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561098957600080fd5b8101908080516040519392919084600160201b8211156109a857600080fd5b9083019060208201858111156109bd57600080fd5b82518660208202830111600160201b821117156109d957600080fd5b82525081516020918201928201910280838360005b83811015610a065781810151838201526020016109ee565b505050509050016040525050509050610add565b60008281526003602052604090205480610a76576040805162461bcd60e51b8152602060048201526018602482015277119514d3c81a5b99195e081b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b60008381526005602090815260409182902080548351818402810184019094528084529091830182828015610ad457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ab6575b50505050509150505b919050565b6007546001600160a01b031681565b600754606090600090600160a01b900460ff1615610b42576040805162461bcd60e51b8152602060048201526009602482015268636f7079206d6f646560b81b604482015290519081900360640190fd5b600054600160b01b900460ff1680610b645750600054600160a81b900460ff16155b15610d3957610b71612574565b610b7a856125ab565b15610bbe576040805162461bcd60e51b815260206004820152600f60248201526e74727573746564206164647265737360881b604482015290519081900360640190fd5b610c4284600760009054906101000a90046001600160a01b03166001600160a01b031663e7c830d46040518163ffffffff1660e01b815260040160206040518083038186803b158015610c1057600080fd5b505afa158015610c24573d6000803e3d6000fd5b505050506040513d6020811015610c3a57600080fd5b505190612726565b6001600160a01b0386166000818152600460209081526040918290208490558151928352820183905280519293507f0c2fcef22ab22997ed46cd27f7f0aa308600145401a7a141065d61c5d87341d292918290030190a182518067ffffffffffffffff81118015610cb257600080fd5b50604051908082528060200260200182016040528015610cdc578160200160208202803683370190505b5092508415610d335760005b81811015610d3157610d0d87868381518110610d0057fe5b6020026020010151612789565b848281518110610d1957fe5b91151560209283029190910190910152600101610ce8565b505b50610d44565b610d4460003661290e565b935093915050565b600054600160b01b900460ff1680610d6e5750600054600160a81b900460ff16155b15610d8557610d7b612574565b6002819055610d90565b610d9060003661290e565b50565b600754600160a01b900460ff1615610dde576040805162461bcd60e51b8152602060048201526009602482015268636f7079206d6f646560b81b604482015290519081900360640190fd5b6007546001600160a01b03163314610e31576040805162461bcd60e51b815260206004820152601160248201527037b7363c90333a39b79036b0b730b3b2b960791b604482015290519081900360640190fd5b60008181526003602052604090205415610e92576040805162461bcd60e51b815260206004820152601760248201527f77686974656c69737420616c7265616479206578697374000000000000000000604482015290519081900360640190fd5b60025460009182526003602052604090912055565b6006546001600160a01b031681565b610ebe612a91565b600754600160a01b900460ff16610f0f576040805162461bcd60e51b815260206004820152601060248201526f6e6f7420696e20636f7079206d6f646560801b604482015290519081900360640190fd5b6007805460ff60a01b19169055565b600754600160a01b900460ff1615610f69576040805162461bcd60e51b8152602060048201526009602482015268636f7079206d6f646560b81b604482015290519081900360640190fd5b6001600160a01b038216600090815260046020526040902054829080158061100a5750600760009054906101000a90046001600160a01b03166001600160a01b031663e7c830d46040518163ffffffff1660e01b815260040160206040518083038186803b158015610fda57600080fd5b505afa158015610fee573d6000803e3d6000fd5b505050506040513d602081101561100457600080fd5b50518111155b61104b576040805162461bcd60e51b815260206004820152600d60248201526c1d9bdd195c8818da1a5b1b1959609a1b604482015290519081900360640190fd5b611054846125ab565b15611098576040805162461bcd60e51b815260206004820152600f60248201526e74727573746564206164647265737360881b604482015290519081900360640190fd5b60006110a48585612af0565b9050806110ed576040805162461bcd60e51b8152602060048201526012602482015271766f746520706f77657220746f6f206c6f7760701b604482015290519081900360640190fd5b5050505050565b60046020526000908152604090205481565b60025481565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e77195490565b60008054600160a81b900460ff16611154576000546001600160a01b03166111c1565b60076001609c1b016001600160a01b031663732524946040518163ffffffff1660e01b815260040160206040518083038186803b15801561119457600080fd5b505afa1580156111a8573d6000803e3d6000fd5b505050506040513d60208110156111be57600080fd5b50515b905090565b60408051630debfda360e41b8152336004820152905160076001609c1b019163debfda30916024808301926020929190829003018186803b15801561120a57600080fd5b505afa15801561121e573d6000803e3d6000fd5b505050506040513d602081101561123457600080fd5b5051611277576040805162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b604482015290519081900360640190fd5b6001600160e01b03198116600090815260016020526040902080546112e3576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b8054421015611339576040805162461bcd60e51b815260206004820152601960248201527f74696d656c6f636b3a206e6f7420616c6c6f7765642079657400000000000000604482015290519081900360640190fd5b6000816001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113d35780601f106113a8576101008083540402835291602001916113d3565b820191906000526020600020905b8154815290600101906020018083116113b657829003601f168201915b5050506001600160e01b03198616600090815260016020819052604082208281559495509092506114079150830182613c2d565b50506000805460ff60b01b1916600160b01b178155604051825130918491819060208401908083835b6020831061144f5780518252601f199092019160209182019101611430565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146114b1576040519150601f19603f3d011682016040523d82523d6000602084013e6114b6565b606091505b50506000805460ff60b01b19169055604080516001600160e01b03198716815242602082015281519293507fa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438929081900390910190a161151581612d7a565b50505050565b60076001609c1b0181565b61152e612a91565b6001600160e01b03198116600090815260016020526040902054611599576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b604080516001600160e01b03198316815242602082015281517f7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8929181900390910190a16001600160e01b0319811660009081526001602081905260408220828155919061160990830182613c2d565b505050565b600160208181526000928352604092839020805481840180548651600296821615610100026000190190911695909504601f810185900485028601850190965285855290949193929091908301828280156116aa5780601f1061167f576101008083540402835291602001916116aa565b820191906000526020600020905b81548152906001019060200180831161168d57829003601f168201915b5050505050905082565b600754600160a01b900460ff16156116ff576040805162461bcd60e51b8152602060048201526009602482015268636f7079206d6f646560b81b604482015290519081900360640190fd5b600054600160b01b900460ff16806117215750600054600160a81b900460ff16155b156119e95761172e612574565b6000828152600360209081526040808320849055600590915290208054821061175757506119e4565b6006546040805163d75f6d8160e01b81526004810186905290516000926001600160a01b03169163d75f6d81916024808301926020929190829003018186803b1580156117a357600080fd5b505afa1580156117b7573d6000803e3d6000fd5b505050506040513d60208110156117cd57600080fd5b505182546040805160208381028201810190925282815292935060009261183692859287919083018282801561182c57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161180e575b5050505050612d97565b805190915084810360008167ffffffffffffffff8111801561185757600080fd5b50604051908082528060200260200182016040528015611881578160200160208202803683370190505b50905060005b828110156119d257600061189b868661300a565b90508781815481106118a957fe5b9060005260206000200160009054906101000a90046001600160a01b03168383815181106118d357fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600185038110156119955787600186038154811061190d57fe5b9060005260206000200160009054906101000a90046001600160a01b031688828154811061193757fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555085600186038151811061197457fe5b602002602001015186828151811061198857fe5b6020026020010181815250505b8780548061199f57fe5b600082815260209020810160001990810180546001600160a01b0319169055908101909155949094019350600101611887565b506119dd818961306e565b5050505050505b6119f4565b6119f460003661290e565b5050565b611a00612a91565b600754600160a01b900460ff16611a51576040805162461bcd60e51b815260206004820152601060248201526f6e6f7420696e20636f7079206d6f646560801b604482015290519081900360640190fd5b60008181526003602052604090205415611aa3576040805162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e4818dbdc1a595960921b604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166398dccfc2826040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015611b0757600080fd5b505afa158015611b1b573d6000803e3d6000fd5b505050506040513d6020811015611b3157600080fd5b505160008281526003602052604080822092909255815162027f2d60ea1b81526004810184905291516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016926309fcb400926024808301939192829003018186803b158015611ba757600080fd5b505afa158015611bbb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015611be457600080fd5b8101908080516040519392919084600160201b821115611c0357600080fd5b908301906020820185811115611c1857600080fd5b82518660208202830111600160201b82111715611c3457600080fd5b82525081516020918201928201910280838360005b83811015611c61578181015183820152602001611c49565b505050509050016040525050506005600083815260200190815260200160002090805190602001906119f4929190613c71565b60036020526000908152604090205481565b600054600160a01b900460ff1615611cfc576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b60008054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b600754600160a01b900460ff1615611daa576040805162461bcd60e51b8152602060048201526009602482015268636f7079206d6f646560b81b604482015290519081900360640190fd5b611db3826125ab565b611dfa576040805162461bcd60e51b81526020600482015260136024820152726e6f742074727573746564206164647265737360681b604482015290519081900360640190fd5b611e048282612789565b6119f4576040805162461bcd60e51b815260206004820152601f60248201527f747275737465642061646472657373206e6f742077686974656c697374656400604482015290519081900360640190fd5b600754600160a01b900460ff1681565b600654604051630e848da360e41b81526020600482018181528451602484015284516060946000946001600160a01b039091169363e848da3093889390928392604490910191908501908083838b5b83811015611ecc578181015183820152602001611eb4565b50505050905090810190601f168015611ef95780820380516001836020036101000a031916815260200191505b509250505060206040518083038186803b158015611f1657600080fd5b505afa158015611f2a573d6000803e3d6000fd5b505050506040513d6020811015611f4057600080fd5b50519050611f4d816108d3565b9392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b611f8061110c565b6001600160a01b0316336001600160a01b031614611fdc576040805162461bcd60e51b815260206004820152601460248201527337b7363c9030b2323932b9b9903ab83230ba32b960611b604482015290519081900360640190fd5b61201561201083836040518060400160405280600e81526020016d20b2323932b9b9aab83230ba32b960911b8152506131a6565b6132d3565b6119f482826132f7565b6007546060908190600160a01b900460ff161561206f576040805162461bcd60e51b8152602060048201526009602482015268636f7079206d6f646560b81b604482015290519081900360640190fd5b6001600160a01b03831660009081526004602052604090205483908015806121105750600760009054906101000a90046001600160a01b03166001600160a01b031663e7c830d46040518163ffffffff1660e01b815260040160206040518083038186803b1580156120e057600080fd5b505afa1580156120f4573d6000803e3d6000fd5b505050506040513d602081101561210a57600080fd5b50518111155b612151576040805162461bcd60e51b815260206004820152600d60248201526c1d9bdd195c8818da1a5b1b1959609a1b604482015290519081900360640190fd5b61215a856125ab565b1561219e576040805162461bcd60e51b815260206004820152600f60248201526e74727573746564206164647265737360881b604482015290519081900360640190fd5b600660009054906101000a90046001600160a01b03166001600160a01b031663798aac5b6040518163ffffffff1660e01b815260040160006040518083038186803b1580156121ec57600080fd5b505afa158015612200573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561222957600080fd5b8101908080516040519392919084600160201b82111561224857600080fd5b90830190602082018581111561225d57600080fd5b82518660208202830111600160201b8211171561227957600080fd5b82525081516020918201928201910280838360005b838110156122a657818101518382015260200161228e565b5050505090500160405250505093506000845190508067ffffffffffffffff811180156122d257600080fd5b506040519080825280602002602001820160405280156122fc578160200160208202803683370190505b50935060005b8181101561234b576123278787838151811061231a57fe5b6020026020010151612af0565b85828151811061233357fe5b91151560209283029190910190910152600101612302565b50505050915091565b600754600160a01b900460ff161561239f576040805162461bcd60e51b8152602060048201526009602482015268636f7079206d6f646560b81b604482015290519081900360640190fd5b6007546001600160a01b031633146123f2576040805162461bcd60e51b815260206004820152601160248201527037b7363c90333a39b79036b0b730b3b2b960791b604482015290519081900360640190fd5b600081815260056020908152604091829020805483518184028101840190945280845261245e939283018282801561245357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612435575b50505050508261306e565b600081815260056020526040812061247591613cd6565b600090815260036020526040812055565b600054600160a81b900460ff1681565b61249e612a91565b600054600160a81b900460ff16156124fd576040805162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2070726f64756374696f6e206d6f6465000000000000604482015290519081900360640190fd5b60008054600161ff0160a01b031916600160a81b1790556040805160076001609c1b01815290517f83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c9181900360200190a1565b7f000000000000000000000000000000000000000000000000000000000000000081565b600054600160b01b900460ff16156125a15733301461258f57fe5b6000805460ff60b01b191690556125a9565b6125a9612a91565b565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ffacb84e6040518163ffffffff1660e01b815260040160006040518083038186803b15801561260757600080fd5b505afa15801561261b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561264457600080fd5b8101908080516040519392919084600160201b82111561266357600080fd5b90830190602082018581111561267857600080fd5b82518660208202830111600160201b8211171561269457600080fd5b82525081516020918201928201910280838360005b838110156126c15781810151838201526020016126a9565b50505050905001604052505050905060005b815181101561271c57836001600160a01b03168282815181106126f257fe5b60200260200101516001600160a01b0316141561271457600192505050610add565b6001016126d3565b5060009392505050565b600082820183811015612780576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b60008181526005602052604081208054825b818110156127e157856001600160a01b03168382815481106127b957fe5b6000918252602090912001546001600160a01b031614156127d9576127e1565b60010161279b565b818114156127f55760009350505050612783565b6040805160018082528183019092526000916020808301908036833701905050905083828154811061282357fe5b600091825260208220015482516001600160a01b0390911691839161284457fe5b60200260200101906001600160a01b031690816001600160a01b03168152505083600184038154811061287357fe5b9060005260206000200160009054906101000a90046001600160a01b031684838154811061289d57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550838054806128d557fe5b600082815260209020810160001990810180546001600160a01b0319169055019055612901818761306e565b5060019695505050505050565b612916612a91565b600082359050600060076001609c1b016001600160a01b0316636221a54b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561295e57600080fd5b505afa158015612972573d6000803e3d6000fd5b505050506040513d602081101561298857600080fd5b505160408051808201825242830180825282516020601f89018190048102820181019094528781529394509290918281019190889088908190840183828082843760009201829052509390945250506001600160e01b03198616815260016020818152604090922084518155848301518051919450612a0c93928501920190613cf4565b509050507fed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b68382878760405180856001600160e01b0319168152602001848152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f191690920182900397509095505050505050a15050505050565b612a99611131565b6001600160a01b0316336001600160a01b0316146125a9576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b60008181526003602052604081205480612b4c576040805162461bcd60e51b8152602060048201526018602482015277119514d3c81a5b99195e081b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b6000838152600560205260408120805490916001820167ffffffffffffffff81118015612b7857600080fd5b50604051908082528060200260200182016040528015612ba2578160200160208202803683370190505b50905060005b82811015612c1d576000848281548110612bbe57fe5b6000918252602090912001546001600160a01b0390811691508916811415612bef5760019650505050505050612783565b80838381518110612bfc57fe5b6001600160a01b039092166020928302919091019091015250600101612ba8565b5086818381518110612c2b57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505083821015612c955782546001810184556000848152602090200180546001600160a01b0319166001600160a01b038916179055612c88878761339e565b6001945050505050612783565b6000612ca18288613459565b905082811415612cb957600095505050505050612783565b60408051600180825281830190925260009160208083019080368337019050509050828281518110612ce757fe5b602002602001015181600081518110612cfc57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505088858381548110612d2957fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550612d61818961306e565b612d6b898961339e565b50600198975050505050505050565b3d604051818101604052816000823e8215612d93578181f35b8181fd5b6060806060600080600080886001600160a01b0316638357d08c6040518163ffffffff1660e01b815260040160006040518083038186803b158015612ddb57600080fd5b505afa158015612def573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c0811015612e1857600080fd5b8101908080516040519392919084600160201b821115612e3757600080fd5b908301906020820185811115612e4c57600080fd5b82518660208202830111600160201b82111715612e6857600080fd5b82525081516020918201928201910280838360005b83811015612e95578181015183820152602001612e7d565b5050505090500160405260200180516040519392919084600160201b821115612ebd57600080fd5b908301906020820185811115612ed257600080fd5b82518660208202830111600160201b82111715612eee57600080fd5b82525081516020918201928201910280838360005b83811015612f1b578181015183820152602001612f03565b5050505090500160405260200180519060200190929190805190602001909291908051906020019092919080519060200190929190505050809650819750829850839950849a50859b505050505050506000612fdd8a6001600160a01b0316639edbf0076040518163ffffffff1660e01b815260040160206040518083038186803b158015612fa957600080fd5b505afa158015612fbd573d6000803e3d6000fd5b505050506040513d6020811015612fd357600080fd5b5051868b856134f1565b90506000612fee8888878d8761356c565b9050612ffb8282866136df565b9b9a5050505050505050505050565b6000806000905060008460008151811061302057fe5b6020026020010151905060005b8481101561306457600086828151811061304357fe5b6020026020010151905082811161305b578193508092505b5060010161302d565b5090949350505050565b60005b82518110156130dd577f33359f2769756ca8d0da4683f25ee440744d6f18bfb166dbfb59315a8c62b0168382815181106130a757fe5b60200260200101518360405180836001600160a01b031681526020018281526020019250505060405180910390a1600101613071565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166376794efb83836040518363ffffffff1660e01b81526004018080602001838152602001828103825284818151815260200191508051906020019060200280838360005b8381101561316457818101518382015260200161314c565b505050509050019350505050600060405180830381600087803b15801561318a57600080fd5b505af115801561319e573d6000803e3d6000fd5b505050505050565b600080826040516020018080602001828103825283818151815260200191508051906020019080838360005b838110156131ea5781810151838201526020016131d2565b50505050905090810190601f1680156132175780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012090506000805b865181101561327f5786818151811061324d57fe5b60200260200101518314156132775785818151811061326857fe5b6020026020010151915061327f565b600101613238565b506001600160a01b0381166132ca576040805162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b604482015290519081900360640190fd5b95945050505050565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b61332682826040518060400160405280600c81526020016b4674736f526567697374727960a01b8152506131a6565b600660006101000a8154816001600160a01b0302191690836001600160a01b0316021790555061337a82826040518060400160405280600b81526020016a233a39b7a6b0b730b3b2b960a91b8152506131a6565b600780546001600160a01b0319166001600160a01b03929092169190911790555050565b604080516001600160a01b03841681526020810183905281517f66a8b13abe95391d1851f5bc319f3dde54ce8f2f40a5fe226aa3251d805832e3929181900390910190a17f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639d986f9183836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561318a57600080fd5b6006546040805163d75f6d8160e01b815260048101849052905160009283926001600160a01b039091169163d75f6d8191602480820192602092909190829003018186803b1580156134aa57600080fd5b505afa1580156134be573d6000803e3d6000fd5b505050506040513d60208110156134d457600080fd5b5051905060006134e48286612d97565b90506132ca81825161300a565b60606134fe858484613824565b90508361350a57613564565b60005b83518110156135625761354364e8d4a510008684848151811061352c57fe5b6020026020010151613a1c9092919063ffffffff16565b82828151811061354f57fe5b602090810291909101015260010161350d565b505b949350505050565b6060825167ffffffffffffffff8111801561358657600080fd5b506040519080825280602002602001820160405280156135b0578160200160208202803683370190505b50905060005b83518110156135e05760008282815181106135cd57fe5b60209081029190910101526001016135b6565b50836135eb576132ca565b60006135ff85670de0b6b3a7640000613b28565b905060005b87518110156136d457600088828151811061361b57fe5b6020026020010151905060006001600160a01b0316816001600160a01b0316146136cb57600061364c828888613824565b905060005b87518110156136c85760006136808b868151811061366b57fe5b60200260200101518785858151811061352c57fe5b90506136a88188848151811061369257fe5b602002602001015161272690919063ffffffff16565b8783815181106136b457fe5b602090810291909101015250600101613651565b50505b50600101613604565b505095945050505050565b606060006136ec84613b81565b905060006136f986613b81565b9050600080831161370b57600061370d565b845b9050600080831161371f576000613725565b81612710035b9050875167ffffffffffffffff8111801561373f57600080fd5b50604051908082528060200260200182016040528015613769578160200160208202803683370190505b50945060005b885181101561381857600082156137b6576137b38a838151811061378f57fe5b602002602001015164e8d4a5100002612710870285613a1c9092919063ffffffff16565b90505b600084156137f4576137f18a84815181106137cd57fe5b602002602001015164e8d4a5100002612710890287613a1c9092919063ffffffff16565b90505b80820188848151811061380357fe5b6020908102919091010152505060010161376f565b50505050509392505050565b6060836001600160a01b031663e587497e8460018651038151811061384557fe5b6020026020010151846040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561389457600080fd5b505af11580156138a8573d6000803e3d6000fd5b505050506040513d60208110156138be57600080fd5b5050604080516349e3c7e560e01b815260248101849052600481019182528451604482015284516001600160a01b038716926349e3c7e592879287929182916064909101906020868101910280838360005b83811015613928578181015183820152602001613910565b50505050905001935050505060006040518083038186803b15801561394c57600080fd5b505afa158015613960573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561398957600080fd5b8101908080516040519392919084600160201b8211156139a857600080fd5b9083019060208201858111156139bd57600080fd5b82518660208202830111600160201b821117156139d957600080fd5b82525081516020918201928201910280838360005b83811015613a065781810151838201526020016139ee565b5050505090500160405250505090509392505050565b6000808211613a65576040805162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b604482015290519081900360640190fd5b83613a7257506000611f4d565b83830283858281613a7f57fe5b041415613a9857828181613a8f57fe5b04915050611f4d565b6000838681613aa357fe5b0490506000848781613ab157fe5b0690506000858781613abf57fe5b0490506000868881613acd57fe5b069050613b1b613ae788613ae18685613b28565b90613bc6565b613b15613af48686613b28565b613b15613b018987613b28565b613b158d613b0f8c8b613b28565b90613b28565b90612726565b9998505050505050505050565b600082613b3757506000612783565b82820282848281613b4457fe5b04146127805760405162461bcd60e51b8152600401808060200182810382526021815260200180613d866021913960400191505060405180910390fd5b600080805b8351811015613bbf57613bb5848281518110613b9e57fe5b60200260200101518361272690919063ffffffff16565b9150600101613b86565b5092915050565b6000808211613c1c576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381613c2557fe5b049392505050565b50805460018160011615610100020316600290046000825580601f10613c535750610d90565b601f016020900490600052602060002090810190610d909190613d70565b828054828255906000526020600020908101928215613cc6579160200282015b82811115613cc657825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613c91565b50613cd2929150613d70565b5090565b5080546000825590600052602060002090810190610d909190613d70565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282613d2a5760008555613cc6565b82601f10613d4357805160ff1916838001178555613cc6565b82800160010185558215613cc6579182015b82811115613cc6578251825591602001919060010190613d55565b5b80821115613cd25760008155600101613d7156fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a264697066735822122053051a93cced90894df5b5f28cbc29f988257728ff86ea14bb01f388e53648f664736f6c63430007060033",
651
651
  "linkReferences": {},
652
652
  "deployedLinkReferences": {}
653
653
  }
@@ -116,13 +116,13 @@
116
116
  },
117
117
  {
118
118
  "name": "CombinedNat",
119
- "contractName": "WNat.sol",
120
- "address": "0xC67DCE33D7A8efA5FfEB961899C73fe01bCe9273"
119
+ "contractName": "CombinedNat.sol",
120
+ "address": "0xa9ef58F5CFf9e282d759e36b249011729a74E7dd"
121
121
  },
122
122
  {
123
123
  "name": "GovernanceVotePower",
124
124
  "contractName": "GovernanceVotePower.sol",
125
- "address": "0xa821fDf6E157fdf52dDe6a1B6dEDaE28dC35053C"
125
+ "address": "0x8e4A2c063E1C82C9f5cb96489c0d2b6d78dF0538"
126
126
  },
127
127
  {
128
128
  "name": "FtsoWnat",
@@ -248,5 +248,25 @@
248
248
  "name": "PollingFtso",
249
249
  "contractName": "PollingFtso.sol",
250
250
  "address": "0x501A498e8FDA589038d6526C2153a9fdc9d8eDD2"
251
+ },
252
+ {
253
+ "name": "AddressBinder",
254
+ "contractName": "AddressBinder.sol",
255
+ "address": "0x332aa9e37D64CAAF70ae5dBe8EFC2FC7611934Ae"
256
+ },
257
+ {
258
+ "name": "PChainStakeMirrorMultiSigVoting",
259
+ "contractName": "PChainStakeMirrorMultiSigVoting.sol",
260
+ "address": "0x37c5d6DCCb4421A47E3931584B306fBc00288aE9"
261
+ },
262
+ {
263
+ "name": "PChainStakeMirrorVerifier",
264
+ "contractName": "PChainStakeMirrorVerifier.sol",
265
+ "address": "0xd61d6bEfB3B5C3e1D13b43C46CC1cebA3505a7aF"
266
+ },
267
+ {
268
+ "name": "PChainStakeMirror",
269
+ "contractName": "PChainStakeMirror.sol",
270
+ "address": "0xd2a1Bb23eB350814a30Dd6f9de78Bb2C8fdD9F1D"
251
271
  }
252
272
  ]
@@ -0,0 +1,68 @@
1
+ import { TypeRecord } from "./config-types";
2
+ import { ethers } from "ethers";
3
+ import { ARBase, ARESBase } from "./interfaces";
4
+ /**
5
+ * Attestation definition store. Contains all the attestation type definitions
6
+ * that are contained in the folder, from which the store was initialized.
7
+ */
8
+ export declare class AttestationDefinitionStore {
9
+ definitions: Map<string, TypeRecord>;
10
+ coder: ethers.AbiCoder;
11
+ constructor(configsPath?: string);
12
+ /**
13
+ * Initializes the store by reading the attestation type definition configs from the
14
+ * provided path.
15
+ * @param configsPath
16
+ */
17
+ private initialize;
18
+ /**
19
+ * Returns the attestation type definition for the provided attestation type id.
20
+ * @param attestationType
21
+ * @returns
22
+ */
23
+ getDefinitionForDecodedAttestationType(attestationType: string): TypeRecord | undefined;
24
+ getABIsForDecodedAttestationType(attestationTypeId: string): {
25
+ requestAbi: any;
26
+ responseAbi: any;
27
+ proofAbi: any;
28
+ };
29
+ /**
30
+ * Calculated usual or salted hash of the attestation response.
31
+ * The function throws an error if an attestation type is not supported or
32
+ * the response does not match the provided ABI definition.
33
+ * @param response
34
+ * @param salt
35
+ * @returns
36
+ */
37
+ attestationResponseHash<T extends ARESBase>(response: T, salt?: string): string;
38
+ /**
39
+ * Extracts the attestation type prefix from the provided attestation request.
40
+ * The prefix consists of 3 x 32 bytes: attestation type, source id and message integrity code.
41
+ * The rest of the bytes define ABI encoded request body.
42
+ * @param bytes
43
+ * @param decodeAttestationTypeName
44
+ * @returns
45
+ */
46
+ static extractPrefixFromRequest(bytes: string, decodeAttestationTypeName?: boolean): ARBase;
47
+ /**
48
+ * Encodes attestation request.
49
+ * The request must have the attestation type encoded into 32-byte 0x-prefixed string.
50
+ * @param request
51
+ * @returns
52
+ */
53
+ encodeRequest(request: ARBase): string;
54
+ /**
55
+ * Parses attestation request.
56
+ * @param bytes
57
+ * @returns
58
+ */
59
+ parseRequest<AR extends ARBase>(bytes: string, decodeAttestationTypeName?: boolean): AR;
60
+ /**
61
+ * Compares two attestation requests.
62
+ * @param request1
63
+ * @param request2
64
+ * @returns
65
+ */
66
+ equalsRequest(request1: ARBase, request2: ARBase): boolean;
67
+ }
68
+ //# sourceMappingURL=AttestationDefinitionStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AttestationDefinitionStore.d.ts","sourceRoot":"","sources":["../../../../../coston/StateConnector/libs/ts/AttestationDefinitionStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAYhD;;;GAGG;AACH,qBAAa,0BAA0B;IACnC,WAAW,EAAG,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACtC,KAAK,EAAG,MAAM,CAAC,QAAQ,CAAC;gBAEZ,WAAW,SAAwC;IAG/D;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAKlB;;;;OAIG;IACH,sCAAsC,CAAC,eAAe,EAAE,MAAM;IAI9D,gCAAgC,CAAC,iBAAiB,EAAE,MAAM;;;;;IAY1D;;;;;;;OAOG;IACH,uBAAuB,CAAC,CAAC,SAAS,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM;IAe/E;;;;;;;OAOG;IACH,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,yBAAyB,UAAQ,GAAG,MAAM;IAsBzF;;;;;OAKG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAoBtC;;;;OAIG;IACH,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,yBAAyB,UAAQ,GAAG,EAAE;IAqBrF;;;;;OAKG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;CAc7D"}
@@ -0,0 +1,164 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AttestationDefinitionStore = void 0;
4
+ const ethers_1 = require("ethers");
5
+ const utils_1 = require("./utils");
6
+ /**
7
+ * Attestation definition store. Contains all the attestation type definitions
8
+ * that are contained in the folder, from which the store was initialized.
9
+ */
10
+ class AttestationDefinitionStore {
11
+ constructor(configsPath = utils_1.DEFAULT_ATTESTATION_TYPE_CONFIGS_PATH) {
12
+ this.initialize(configsPath);
13
+ }
14
+ /**
15
+ * Initializes the store by reading the attestation type definition configs from the
16
+ * provided path.
17
+ * @param configsPath
18
+ */
19
+ initialize(configsPath) {
20
+ this.definitions = (0, utils_1.readAttestationTypeConfigs)(configsPath);
21
+ this.coder = ethers_1.ethers.AbiCoder.defaultAbiCoder();
22
+ }
23
+ /**
24
+ * Returns the attestation type definition for the provided attestation type id.
25
+ * @param attestationType
26
+ * @returns
27
+ */
28
+ getDefinitionForDecodedAttestationType(attestationType) {
29
+ return this.definitions.get(attestationType);
30
+ }
31
+ getABIsForDecodedAttestationType(attestationTypeId) {
32
+ const definition = this.getDefinitionForDecodedAttestationType(attestationTypeId);
33
+ if (!definition) {
34
+ throw new Error(`Unsupported attestation type id: '${attestationTypeId}'`);
35
+ }
36
+ return {
37
+ requestAbi: definition.requestAbi,
38
+ responseAbi: definition.responseAbi,
39
+ proofAbi: definition.proofAbi,
40
+ };
41
+ }
42
+ /**
43
+ * Calculated usual or salted hash of the attestation response.
44
+ * The function throws an error if an attestation type is not supported or
45
+ * the response does not match the provided ABI definition.
46
+ * @param response
47
+ * @param salt
48
+ * @returns
49
+ */
50
+ attestationResponseHash(response, salt) {
51
+ const attestationType = (0, utils_1.decodeAttestationName)(response.attestationType);
52
+ const definition = this.getDefinitionForDecodedAttestationType(attestationType);
53
+ if (!definition) {
54
+ throw new Error(`Unsupported attestation type id: '${attestationType}'`);
55
+ }
56
+ let abiEncoded;
57
+ if (salt) {
58
+ abiEncoded = this.coder.encode([definition.responseAbi, "string"], [response, salt]);
59
+ }
60
+ else {
61
+ abiEncoded = this.coder.encode([definition.responseAbi], [response]);
62
+ }
63
+ return ethers_1.ethers.keccak256(abiEncoded);
64
+ }
65
+ /**
66
+ * Extracts the attestation type prefix from the provided attestation request.
67
+ * The prefix consists of 3 x 32 bytes: attestation type, source id and message integrity code.
68
+ * The rest of the bytes define ABI encoded request body.
69
+ * @param bytes
70
+ * @param decodeAttestationTypeName
71
+ * @returns
72
+ */
73
+ static extractPrefixFromRequest(bytes, decodeAttestationTypeName = false) {
74
+ if (!bytes) {
75
+ throw new Error("Empty attestation request");
76
+ }
77
+ if (!bytes.match(/^0x[0-9a-fA-F]*$/)) {
78
+ throw new Error("Not a '0x'-prefixed hex string");
79
+ }
80
+ if (bytes.length < 3 * 64 + 2) {
81
+ throw new Error("Incorrectly formatted attestation request");
82
+ }
83
+ let attestationType = bytes.slice(0, 2 + 64);
84
+ if (decodeAttestationTypeName) {
85
+ attestationType = (0, utils_1.decodeAttestationName)(attestationType);
86
+ }
87
+ return {
88
+ attestationType,
89
+ sourceId: "0x" + bytes.slice(2 + 64, 2 + 2 * 64),
90
+ messageIntegrityCode: "0x" + bytes.slice(2 + 2 * 64, 2 + 3 * 64),
91
+ requestBody: "0x" + bytes.slice(2 + 3 * 64),
92
+ };
93
+ }
94
+ /**
95
+ * Encodes attestation request.
96
+ * The request must have the attestation type encoded into 32-byte 0x-prefixed string.
97
+ * @param request
98
+ * @returns
99
+ */
100
+ encodeRequest(request) {
101
+ const attestationType = (0, utils_1.decodeAttestationName)(request.attestationType);
102
+ const definition = this.getDefinitionForDecodedAttestationType(attestationType);
103
+ if (!definition) {
104
+ throw new Error(`Unsupported attestation type id: '${request.attestationType}'`);
105
+ }
106
+ // custom encoding for the prefix
107
+ const abiEncodePrefix = this.coder.encode(["bytes32", "bytes32", "bytes32"], [request.attestationType, request.sourceId, request.messageIntegrityCode || utils_1.ZERO_BYTES_32]);
108
+ // ABI encoding for the request body
109
+ const requestBodyAbi = definition.requestAbi.components.find((item) => item.name == "requestBody");
110
+ if (!requestBodyAbi) {
111
+ throw new Error(`Invalid request ABI for attestation type id: '${request.attestationType}'. No 'requestBody'.`);
112
+ }
113
+ const abiEncodeBody = this.coder.encode([requestBodyAbi], [request.requestBody]);
114
+ return ethers_1.ethers.concat([abiEncodePrefix, abiEncodeBody]);
115
+ }
116
+ /**
117
+ * Parses attestation request.
118
+ * @param bytes
119
+ * @returns
120
+ */
121
+ parseRequest(bytes, decodeAttestationTypeName = false) {
122
+ var _a;
123
+ const prefix = AttestationDefinitionStore.extractPrefixFromRequest(bytes);
124
+ const attestationType = (0, utils_1.decodeAttestationName)(prefix.attestationType);
125
+ const definition = this.getDefinitionForDecodedAttestationType(attestationType);
126
+ if (!definition) {
127
+ throw new Error(`Unsupported attestation type id: '${attestationType}'`);
128
+ }
129
+ const requestBodyAbi = (_a = definition.requestAbi) === null || _a === void 0 ? void 0 : _a.components.find((item) => item.name == "requestBody");
130
+ if (!requestBodyAbi) {
131
+ throw new Error(`Invalid request ABI for attestation type id: '${prefix.attestationType}'. No 'requestBody'.`);
132
+ }
133
+ const parsed = this.coder.decode([requestBodyAbi], "0x" + bytes.slice(2 + 3 * 64))[0];
134
+ return (0, utils_1.serializeBigInts)({
135
+ attestationType: decodeAttestationTypeName ? definition : prefix.attestationType,
136
+ sourceId: prefix.sourceId,
137
+ messageIntegrityCode: prefix.messageIntegrityCode,
138
+ requestBody: (0, utils_1.remapABIParsedToObjects)(parsed, requestBodyAbi),
139
+ });
140
+ }
141
+ /**
142
+ * Compares two attestation requests.
143
+ * @param request1
144
+ * @param request2
145
+ * @returns
146
+ */
147
+ equalsRequest(request1, request2) {
148
+ var _a;
149
+ if (request1.attestationType !== request2.attestationType) {
150
+ return false;
151
+ }
152
+ if (request1.sourceId != request2.sourceId) {
153
+ return false;
154
+ }
155
+ const attestationType = (0, utils_1.decodeAttestationName)(request1.attestationType);
156
+ const requestAbi = (_a = this.getDefinitionForDecodedAttestationType(attestationType)) === null || _a === void 0 ? void 0 : _a.requestAbi;
157
+ if (!requestAbi) {
158
+ throw new Error(`Unsupported attestation type id: '${attestationType}'`);
159
+ }
160
+ return (0, utils_1.structsDeepEqual)(request1, request2, requestAbi);
161
+ }
162
+ }
163
+ exports.AttestationDefinitionStore = AttestationDefinitionStore;
164
+ //# sourceMappingURL=AttestationDefinitionStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AttestationDefinitionStore.js","sourceRoot":"","sources":["../../../../../coston/StateConnector/libs/ts/AttestationDefinitionStore.ts"],"names":[],"mappings":";;;AACA,mCAAgC;AAEhC,mCASiB;AAEjB;;;GAGG;AACH,MAAa,0BAA0B;IAInC,YAAY,WAAW,GAAG,6CAAqC;QAC3D,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IACjC,CAAC;IACD;;;;OAIG;IACK,UAAU,CAAC,WAAmB;QAClC,IAAI,CAAC,WAAW,GAAG,IAAA,kCAA0B,EAAC,WAAW,CAAC,CAAC;QAC3D,IAAI,CAAC,KAAK,GAAG,eAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;IACnD,CAAC;IAED;;;;OAIG;IACH,sCAAsC,CAAC,eAAuB;QAC1D,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACjD,CAAC;IAED,gCAAgC,CAAC,iBAAyB;QACtD,MAAM,UAAU,GAAG,IAAI,CAAC,sCAAsC,CAAC,iBAAiB,CAAC,CAAC;QAClF,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,qCAAqC,iBAAiB,GAAG,CAAC,CAAC;QAC/E,CAAC;QACD,OAAO;YACH,UAAU,EAAE,UAAU,CAAC,UAAU;YACjC,WAAW,EAAE,UAAU,CAAC,WAAW;YACnC,QAAQ,EAAE,UAAU,CAAC,QAAQ;SAChC,CAAC;IACN,CAAC;IAED;;;;;;;OAOG;IACH,uBAAuB,CAAqB,QAAW,EAAE,IAAa;QAClE,MAAM,eAAe,GAAG,IAAA,6BAAqB,EAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QACxE,MAAM,UAAU,GAAG,IAAI,CAAC,sCAAsC,CAAC,eAAe,CAAC,CAAC;QAChF,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,qCAAqC,eAAe,GAAG,CAAC,CAAC;QAC7E,CAAC;QACD,IAAI,UAAU,CAAC;QACf,IAAI,IAAI,EAAE,CAAC;YACP,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;QACzF,CAAC;aAAM,CAAC;YACJ,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QACzE,CAAC;QACD,OAAO,eAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,wBAAwB,CAAC,KAAa,EAAE,yBAAyB,GAAG,KAAK;QAC5E,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;QAC7C,IAAI,yBAAyB,EAAE,CAAC;YAC5B,eAAe,GAAG,IAAA,6BAAqB,EAAC,eAAe,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO;YACH,eAAe;YACf,QAAQ,EAAE,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YAChD,oBAAoB,EAAE,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YAChE,WAAW,EAAE,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;SACpC,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACH,aAAa,CAAC,OAAe;QACzB,MAAM,eAAe,GAAG,IAAA,6BAAqB,EAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACvE,MAAM,UAAU,GAAG,IAAI,CAAC,sCAAsC,CAAC,eAAe,CAAC,CAAC;QAChF,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,qCAAqC,OAAO,CAAC,eAAe,GAAG,CAAC,CAAC;QACrF,CAAC;QACD,iCAAiC;QACjC,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CACrC,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,EACjC,CAAC,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,oBAAoB,IAAI,qBAAa,CAAC,CAC7F,CAAC;QACF,oCAAoC;QACpC,MAAM,cAAc,GAAG,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAiB,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,aAAa,CAAC,CAAC;QAChH,IAAI,CAAC,cAAc,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,iDAAiD,OAAO,CAAC,eAAe,sBAAsB,CAAC,CAAC;QACpH,CAAC;QACD,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QACjF,OAAO,eAAM,CAAC,MAAM,CAAC,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED;;;;OAIG;IACH,YAAY,CAAoB,KAAa,EAAE,yBAAyB,GAAG,KAAK;;QAC5E,MAAM,MAAM,GAAG,0BAA0B,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;QAC1E,MAAM,eAAe,GAAG,IAAA,6BAAqB,EAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACtE,MAAM,UAAU,GAAG,IAAI,CAAC,sCAAsC,CAAC,eAAe,CAAC,CAAC;QAChF,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,qCAAqC,eAAe,GAAG,CAAC,CAAC;QAC7E,CAAC;QACD,MAAM,cAAc,GAAG,MAAA,UAAU,CAAC,UAAU,0CAAE,UAAU,CAAC,IAAI,CAAC,CAAC,IAAiB,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,aAAa,CAAC,CAAC;QACjH,IAAI,CAAC,cAAc,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,iDAAiD,MAAM,CAAC,eAAe,sBAAsB,CAAC,CAAC;QACnH,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtF,OAAO,IAAA,wBAAgB,EAAC;YACpB,eAAe,EAAE,yBAAyB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe;YAChF,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;YACjD,WAAW,EAAE,IAAA,+BAAuB,EAAC,MAAM,EAAE,cAAc,CAAC;SAC/D,CAAO,CAAC;IACb,CAAC;IAED;;;;;OAKG;IACH,aAAa,CAAC,QAAgB,EAAE,QAAgB;;QAC5C,IAAI,QAAQ,CAAC,eAAe,KAAK,QAAQ,CAAC,eAAe,EAAE,CAAC;YACxD,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACzC,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,MAAM,eAAe,GAAG,IAAA,6BAAqB,EAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QACxE,MAAM,UAAU,GAAG,MAAA,IAAI,CAAC,sCAAsC,CAAC,eAAe,CAAC,0CAAE,UAAyB,CAAC;QAC3G,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,qCAAqC,eAAe,GAAG,CAAC,CAAC;QAC7E,CAAC;QACD,OAAO,IAAA,wBAAgB,EAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC5D,CAAC;CACJ;AAnKD,gEAmKC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Attestation status
3
+ */
4
+ export declare enum AttestationResponseStatus {
5
+ /**
6
+ * Attestation request is valid.
7
+ */
8
+ VALID = "VALID",
9
+ /**
10
+ * Attestation request is invalid.
11
+ */
12
+ INVALID = "INVALID",
13
+ /**
14
+ * Attestation request cannot be confirmed neither rejected by the verifier at the moment.
15
+ */
16
+ INDETERMINATE = "INDETERMINATE"
17
+ }
18
+ /**
19
+ * Object returned as a result of attestation.
20
+ * If status is 'VALID' then parameters @param response contains attestation response.
21
+ * Otherwise, @param response is undefined.
22
+ */
23
+ export declare class AttestationResponse<RES> {
24
+ /**
25
+ * Verification status.
26
+ */
27
+ status: AttestationResponseStatus;
28
+ /**
29
+ * Attestation response.
30
+ */
31
+ response?: RES;
32
+ }
33
+ //# sourceMappingURL=AttestationResponse.d.ts.map