@gooddollar/goodprotocol 1.0.29-beta.4 → 1.0.29-beta.5

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 (338) hide show
  1. package/artifacts/abis/ERC20PresetMinterPauserUpgradeable.min.json +1 -0
  2. package/artifacts/abis/ERC677.min.json +1 -0
  3. package/artifacts/abis/ERC677Receiver.min.json +1 -0
  4. package/artifacts/abis/GoodDollar.min.json +1 -0
  5. package/artifacts/abis/IFeesFormula.min.json +1 -0
  6. package/artifacts/abis/IIdentity.min.json +1 -1
  7. package/artifacts/abis/IIdentityV2.min.json +1 -1
  8. package/artifacts/abis/IdentityV2.min.json +1 -1
  9. package/artifacts/abis/InvitesV2.min.json +1 -1
  10. package/artifacts/contracts/DAOStackInterfaces.sol/Avatar.dbg.json +1 -1
  11. package/artifacts/contracts/DAOStackInterfaces.sol/Controller.dbg.json +1 -1
  12. package/artifacts/contracts/DAOStackInterfaces.sol/GlobalConstraintInterface.dbg.json +1 -1
  13. package/artifacts/contracts/DAOStackInterfaces.sol/IntVoteInterface.dbg.json +1 -1
  14. package/artifacts/contracts/DAOStackInterfaces.sol/ReputationInterface.dbg.json +1 -1
  15. package/artifacts/contracts/DAOStackInterfaces.sol/SchemeRegistrar.dbg.json +1 -1
  16. package/artifacts/contracts/Interfaces.sol/AggregatorV3Interface.dbg.json +1 -1
  17. package/artifacts/contracts/Interfaces.sol/ERC20.dbg.json +1 -1
  18. package/artifacts/contracts/Interfaces.sol/IAaveIncentivesController.dbg.json +1 -1
  19. package/artifacts/contracts/Interfaces.sol/IAdminWallet.dbg.json +1 -1
  20. package/artifacts/contracts/Interfaces.sol/IDonationStaking.dbg.json +1 -1
  21. package/artifacts/contracts/Interfaces.sol/IERC2917.dbg.json +1 -1
  22. package/artifacts/contracts/Interfaces.sol/IFirstClaimPool.dbg.json +1 -1
  23. package/artifacts/contracts/Interfaces.sol/IGoodDollar.dbg.json +1 -1
  24. package/artifacts/contracts/Interfaces.sol/IGoodStaking.dbg.json +1 -1
  25. package/artifacts/contracts/Interfaces.sol/IHasRouter.dbg.json +1 -1
  26. package/artifacts/contracts/Interfaces.sol/IIdentity.dbg.json +1 -1
  27. package/artifacts/contracts/Interfaces.sol/IIdentity.json +19 -0
  28. package/artifacts/contracts/Interfaces.sol/IIdentityV2.dbg.json +1 -1
  29. package/artifacts/contracts/Interfaces.sol/IIdentityV2.json +19 -0
  30. package/artifacts/contracts/Interfaces.sol/ILendingPool.dbg.json +1 -1
  31. package/artifacts/contracts/Interfaces.sol/IMultichainRouter.dbg.json +1 -1
  32. package/artifacts/contracts/Interfaces.sol/INameService.dbg.json +1 -1
  33. package/artifacts/contracts/Interfaces.sol/IUBIScheme.dbg.json +1 -1
  34. package/artifacts/contracts/Interfaces.sol/ProxyAdmin.dbg.json +1 -1
  35. package/artifacts/contracts/Interfaces.sol/Reserve.dbg.json +1 -1
  36. package/artifacts/contracts/Interfaces.sol/Staking.dbg.json +1 -1
  37. package/artifacts/contracts/Interfaces.sol/Uniswap.dbg.json +1 -1
  38. package/artifacts/contracts/Interfaces.sol/UniswapFactory.dbg.json +1 -1
  39. package/artifacts/contracts/Interfaces.sol/UniswapPair.dbg.json +1 -1
  40. package/artifacts/contracts/Interfaces.sol/cERC20.dbg.json +1 -1
  41. package/artifacts/contracts/fuseFaucet/Faucet.sol/Faucet.dbg.json +1 -1
  42. package/artifacts/contracts/fuseFaucet/Faucet.sol/Faucet.json +2 -2
  43. package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.dbg.json +1 -1
  44. package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.json +2 -2
  45. package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.dbg.json +1 -1
  46. package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.json +2 -2
  47. package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.dbg.json +1 -1
  48. package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.json +2 -2
  49. package/artifacts/contracts/governance/GReputation.sol/GReputation.dbg.json +1 -1
  50. package/artifacts/contracts/governance/GReputation.sol/GReputation.json +2 -2
  51. package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.dbg.json +1 -1
  52. package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.json +2 -2
  53. package/artifacts/contracts/governance/GoodDollarStaking.sol/IGovernanceStaking.dbg.json +1 -1
  54. package/artifacts/contracts/governance/GoodDollarStaking.sol/RewardsMinter.dbg.json +1 -1
  55. package/artifacts/contracts/governance/GovernanceStaking.sol/GovernanceStaking.dbg.json +1 -1
  56. package/artifacts/contracts/governance/GovernanceStaking.sol/GovernanceStaking.json +2 -2
  57. package/artifacts/contracts/governance/MultiBaseGovernanceShareField.sol/MultiBaseGovernanceShareField.dbg.json +1 -1
  58. package/artifacts/contracts/governance/Reputation.sol/Reputation.dbg.json +1 -1
  59. package/artifacts/contracts/governance/Reputation.sol/Reputation.json +2 -2
  60. package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.dbg.json +1 -1
  61. package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.json +2 -2
  62. package/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.dbg.json +1 -1
  63. package/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.json +33 -2
  64. package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.dbg.json +1 -1
  65. package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.json +2 -2
  66. package/artifacts/contracts/invite/InvitesV2.sol/InvitesV2.dbg.json +1 -1
  67. package/artifacts/contracts/invite/InvitesV2.sol/InvitesV2.json +38 -10
  68. package/artifacts/contracts/mocks/AaveMock.sol/AaveMock.dbg.json +1 -1
  69. package/artifacts/contracts/mocks/DAIMock.sol/DAIMock.dbg.json +1 -1
  70. package/artifacts/contracts/mocks/DecimalsMock.sol/DecimalsMock.dbg.json +1 -1
  71. package/artifacts/contracts/mocks/DistributionBridgeMock.sol/DistributionBridgeMock.dbg.json +1 -1
  72. package/artifacts/contracts/mocks/DistributionBridgeMock.sol/DistributionBridgeMock.json +2 -2
  73. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest.dbg.json +1 -1
  74. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest.json +2 -2
  75. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.dbg.json +1 -1
  76. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.json +2 -2
  77. package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.dbg.json +1 -1
  78. package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.json +2 -2
  79. package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.dbg.json +1 -1
  80. package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.json +2 -2
  81. package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.dbg.json +1 -1
  82. package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.json +2 -2
  83. package/artifacts/contracts/mocks/IncentiveControllerMock.sol/IncentiveControllerMock.dbg.json +1 -1
  84. package/artifacts/contracts/mocks/LendingPoolMock.sol/LendingPoolMock.dbg.json +1 -1
  85. package/artifacts/contracts/mocks/MultichainRouterMock.sol/IWrapper.dbg.json +1 -1
  86. package/artifacts/contracts/mocks/MultichainRouterMock.sol/MultichainRouterMock.dbg.json +1 -1
  87. package/artifacts/contracts/mocks/MultichainRouterMock.sol/MultichainRouterMock.json +2 -2
  88. package/artifacts/contracts/mocks/OverMintTester.sol/IGoodDollarStakingTest.dbg.json +1 -1
  89. package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.dbg.json +1 -1
  90. package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.json +2 -2
  91. package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.dbg.json +1 -1
  92. package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.json +2 -2
  93. package/artifacts/contracts/mocks/SixteenDecimalsTokenMock.sol/SixteenDecimalsTokenMock.dbg.json +1 -1
  94. package/artifacts/contracts/mocks/StakingMockFixedAPY.sol/StakingMockFixedAPY.dbg.json +1 -1
  95. package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.dbg.json +1 -1
  96. package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.json +2 -2
  97. package/artifacts/contracts/mocks/TwentyDecimalsTokenMock.sol/TwentyDecimalsTokenMock.dbg.json +1 -1
  98. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.dbg.json +1 -1
  99. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.json +2 -2
  100. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.dbg.json +1 -1
  101. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.json +2 -2
  102. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.dbg.json +1 -1
  103. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.json +2 -2
  104. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.dbg.json +1 -1
  105. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.json +2 -2
  106. package/artifacts/contracts/mocks/UsdcMock.sol/USDCMock.dbg.json +1 -1
  107. package/artifacts/contracts/mocks/cBATMock.sol/cBATMock.dbg.json +1 -1
  108. package/artifacts/contracts/mocks/cDAILowWorthMock.sol/cDAILowWorthMock.dbg.json +1 -1
  109. package/artifacts/contracts/mocks/cDAIMock.sol/cDAIMock.dbg.json +1 -1
  110. package/artifacts/contracts/mocks/cDAINonMintableMock.sol/cDAINonMintableMock.dbg.json +1 -1
  111. package/artifacts/contracts/mocks/cDecimalsMock.sol/cDecimalsMock.dbg.json +1 -1
  112. package/artifacts/contracts/mocks/cSDTMock.sol/cSDTMock.dbg.json +1 -1
  113. package/artifacts/contracts/mocks/cUSDCMock.sol/cUSDCMock.dbg.json +1 -1
  114. package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.dbg.json +1 -1
  115. package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.json +2 -2
  116. package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.dbg.json +1 -1
  117. package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.json +2 -2
  118. package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.dbg.json +1 -1
  119. package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.json +2 -2
  120. package/artifacts/contracts/reserve/GoodReserveCDai.sol/ContributionCalc.dbg.json +1 -1
  121. package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.dbg.json +1 -1
  122. package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.json +2 -2
  123. package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.dbg.json +1 -1
  124. package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.json +2 -2
  125. package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.dbg.json +1 -1
  126. package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.json +2 -2
  127. package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.dbg.json +1 -1
  128. package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.json +2 -2
  129. package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.dbg.json +1 -1
  130. package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.json +2 -2
  131. package/artifacts/contracts/staking/FuseStakingV3.sol/IConsensus.dbg.json +1 -1
  132. package/artifacts/contracts/staking/FuseStakingV3.sol/PegSwap.dbg.json +1 -1
  133. package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.dbg.json +1 -1
  134. package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.json +2 -2
  135. package/artifacts/contracts/staking/SimpleStaking.sol/SimpleStaking.dbg.json +1 -1
  136. package/artifacts/contracts/staking/SimpleStakingV2.sol/SimpleStakingV2.dbg.json +1 -1
  137. package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.dbg.json +1 -1
  138. package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.json +2 -2
  139. package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.dbg.json +1 -1
  140. package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.json +2 -2
  141. package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.dbg.json +1 -1
  142. package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.json +2 -2
  143. package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.dbg.json +1 -1
  144. package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.json +2 -2
  145. package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.dbg.json +1 -1
  146. package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.json +2 -2
  147. package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.dbg.json +1 -1
  148. package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.json +2 -2
  149. package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.dbg.json +1 -1
  150. package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.json +2 -2
  151. package/artifacts/contracts/staking/utils/Math64X64.sol/Math64x64.dbg.json +1 -1
  152. package/artifacts/contracts/staking/utils/StakingRewardsFixedAPY.sol/StakingRewardsFixedAPY.dbg.json +1 -1
  153. package/artifacts/contracts/token/ERC20PresetMinterPauserUpgradeable.sol/ERC20PresetMinterPauserUpgradeable.dbg.json +4 -0
  154. package/artifacts/contracts/token/ERC20PresetMinterPauserUpgradeable.sol/ERC20PresetMinterPauserUpgradeable.json +755 -0
  155. package/artifacts/contracts/token/ERC677.sol/ERC677.dbg.json +4 -0
  156. package/artifacts/contracts/token/ERC677.sol/ERC677.json +66 -0
  157. package/artifacts/contracts/token/ERC677.sol/ERC677Receiver.dbg.json +4 -0
  158. package/artifacts/contracts/token/ERC677.sol/ERC677Receiver.json +40 -0
  159. package/artifacts/contracts/token/FeesFormula.sol/IFeesFormula.dbg.json +4 -0
  160. package/artifacts/contracts/token/FeesFormula.sol/IFeesFormula.json +45 -0
  161. package/artifacts/contracts/token/GoodDollar.sol/GoodDollar.dbg.json +4 -0
  162. package/artifacts/contracts/token/GoodDollar.sol/GoodDollar.json +1180 -0
  163. package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.dbg.json +1 -1
  164. package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.json +2 -2
  165. package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.dbg.json +1 -1
  166. package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.json +2 -2
  167. package/artifacts/contracts/utils/BancorFormula.sol/BancorFormula.dbg.json +1 -1
  168. package/artifacts/contracts/utils/BulkProof.sol/BulkProof.dbg.json +1 -1
  169. package/artifacts/contracts/utils/BulkProof.sol/BulkProof.json +2 -2
  170. package/artifacts/contracts/utils/DAOContract.sol/DAOContract.dbg.json +1 -1
  171. package/artifacts/contracts/utils/DAOContract.sol/DAOContract.json +2 -2
  172. package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.dbg.json +1 -1
  173. package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.json +2 -2
  174. package/artifacts/contracts/utils/DSMath.sol/DSMath.dbg.json +1 -1
  175. package/artifacts/contracts/utils/DataTypes.sol/DataTypes.dbg.json +1 -1
  176. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.dbg.json +1 -1
  177. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.json +2 -2
  178. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/IRouter.dbg.json +1 -1
  179. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/PausableControl.dbg.json +1 -1
  180. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/TokenOperation.dbg.json +1 -1
  181. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/TokenOperation.json +2 -2
  182. package/artifacts/contracts/utils/MultichainBridgeHelper.sol/MultichainBridgeHelper.dbg.json +1 -1
  183. package/artifacts/contracts/utils/MultichainBridgeHelper.sol/MultichainBridgeHelper.json +2 -2
  184. package/artifacts/contracts/utils/NameService.sol/NameService.dbg.json +1 -1
  185. package/artifacts/contracts/utils/ProtocolUpgrade.sol/OldMarketMaker.dbg.json +1 -1
  186. package/artifacts/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade.dbg.json +1 -1
  187. package/artifacts/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade.json +2 -2
  188. package/artifacts/contracts/utils/ProtocolUpgradeFuse.sol/ProtocolUpgradeFuse.dbg.json +1 -1
  189. package/artifacts/contracts/utils/ProtocolUpgradeFuse.sol/ProtocolUpgradeFuse.json +2 -2
  190. package/artifacts/contracts/utils/ProtocolUpgradeFuseRecover.sol/ProtocolUpgradeFuseRecover.dbg.json +1 -1
  191. package/artifacts/contracts/utils/ProtocolUpgradeFuseRecover.sol/ProtocolUpgradeFuseRecover.json +2 -2
  192. package/artifacts/contracts/utils/ProtocolUpgradeRecover.sol/ProtocolUpgradeRecover.dbg.json +1 -1
  193. package/artifacts/contracts/utils/ProtocolUpgradeRecover.sol/ProtocolUpgradeRecover.json +2 -2
  194. package/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.dbg.json +1 -1
  195. package/artifacts/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967.dbg.json +1 -1
  196. package/artifacts/contracts/utils/ReputationTestHelper.sol/ReputationTestHelper.dbg.json +1 -1
  197. package/artifacts/contracts/utils/ReputationTestHelper.sol/ReputationTestHelper.json +2 -2
  198. package/contracts/Interfaces.sol +2 -0
  199. package/contracts/fuseFaucet/Faucet.sol +3 -3
  200. package/contracts/fuseFaucet/FuseFaucet.sol +1 -2
  201. package/contracts/governance/GReputation.sol +5 -4
  202. package/contracts/identity/IdentityV2.sol +79 -28
  203. package/contracts/invite/InvitesV1.sol +5 -24
  204. package/contracts/invite/InvitesV2.sol +8 -15
  205. package/contracts/mocks/UpgradableMocks.sol +5 -3
  206. package/contracts/token/ERC20PresetMinterPauserUpgradeable.sol +140 -0
  207. package/contracts/token/ERC677.sol +74 -0
  208. package/contracts/token/FeesFormula.sol +10 -0
  209. package/contracts/token/GoodDollar.sol +234 -0
  210. package/hardhat.config.ts +5 -5
  211. package/package.json +3 -2
  212. package/releases/deployment.json +1 -1
  213. package/scripts/multichain-deploy/1_basicdao-deploy.ts +45 -28
  214. package/scripts/multichain-deploy/2_helpers-deploy.ts +1 -7
  215. package/test/faucet/Faucet.test.ts +184 -0
  216. package/test/{FuseFaucet.test.ts → faucet/FuseFaucet.test.ts} +4 -3
  217. package/test/governance/ClaimersDistribution.test.ts +3 -2
  218. package/test/governance/CompoundVotingMachine.castvote.test.ts +3 -2
  219. package/test/governance/CompoundVotingMachine.crossblockchain.ts +3 -2
  220. package/test/governance/CompoundVotingMachine.daoscheme.ts +3 -2
  221. package/test/governance/CompoundVotingMachine.delegate.test.ts +3 -2
  222. package/test/governance/CompoundVotingMachine.guardian.test.ts +3 -2
  223. package/test/governance/CompoundVotingMachine.propose.test.ts +3 -2
  224. package/test/governance/CompoundVotingMachine.state.test.ts +3 -2
  225. package/test/governance/GReputation.test.ts +22 -14
  226. package/test/governance/GoodDollarStaking.gd.test.ts +2 -1
  227. package/test/governance/GoodDollarStaking.good.test.ts +2 -1
  228. package/test/governance/GovernanceStaking.test.ts +4 -3
  229. package/test/governance/Reputation.test.ts +2 -1
  230. package/test/governance/StakersDistribution.test.ts +26 -12
  231. package/test/helpers.ts +61 -29
  232. package/test/identity/IdentityV2.test.ts +481 -0
  233. package/test/{InvitesV1.test.ts → invite/InvitesV1.test.ts} +4 -3
  234. package/test/invite/InvitesV2.test.ts +355 -0
  235. package/test/reserve/DistributionHelper.test.ts +2 -1
  236. package/test/reserve/GoodMarketMaker.test.ts +15 -8
  237. package/test/reserve/GoodReserveCDai.cap.test.ts +8 -1
  238. package/test/reserve/GoodReserveCDai.distribution.test.ts +2 -1
  239. package/test/reserve/GoodReserveCDai.gdx.test.ts +2 -1
  240. package/test/reserve/GoodReserveCDai.pause.test.ts +2 -1
  241. package/test/reserve/GoodReserveCDai.test.ts +11 -28
  242. package/test/reserve/GoodReserveCDai.uniswap.test.ts +20 -18
  243. package/test/staking/CompoundStakingFactory.test.ts +8 -4
  244. package/test/staking/DifferentStakingTokens.test.ts +3 -2
  245. package/test/staking/DonationsStaking.test.ts +33 -24
  246. package/test/staking/FuseStaking.test.ts +2 -2
  247. package/test/staking/GoodAaveStakingFactory.test.ts +36 -30
  248. package/test/staking/SimpleDAIStaking.test.ts +12 -16
  249. package/test/staking/StakingRewards.test.ts +22 -18
  250. package/test/staking/StakingRewardsFixedAPY.test.ts +2 -1
  251. package/test/staking/SwapHelper.test.ts +20 -17
  252. package/test/staking/UsdcAaveStaking.test.ts +36 -33
  253. package/test/token/GoodDollar.test.ts +277 -0
  254. package/test/ubi/UBIScheme.e2e.test.ts +4 -3
  255. package/test/ubi/UBIScheme.test.ts +3 -2
  256. package/test/ubi/UBISchemeCycle.test.ts +2 -1
  257. package/test/utils/AdminWallet.test.ts +2 -1
  258. package/test/utils/DAOUpgradeableContract.test.ts +3 -2
  259. package/test/utils/GoodDollarMintBurnWrapper.test.ts +2 -1
  260. package/test/utils/NameService.test.ts +37 -21
  261. package/test/utils/ProtocolUpgrade.test.ts +1 -0
  262. package/test/utils/ProxyFactory.test.ts +1 -0
  263. package/types/ERC20PermitUpgradeable.ts +522 -0
  264. package/types/ERC20PresetMinterPauserUpgradeable.ts +105 -1
  265. package/types/ERC677.ts +131 -0
  266. package/types/ERC677Receiver.ts +115 -0
  267. package/types/GoodDollar.ts +1705 -0
  268. package/types/IERC20PermitUpgradeable.ts +176 -0
  269. package/types/IFeesFormula.ts +111 -0
  270. package/types/IIdentity.ts +31 -0
  271. package/types/IIdentityV2.ts +31 -0
  272. package/types/IdentityV2.ts +69 -5
  273. package/types/InvitesV2.ts +61 -7
  274. package/types/factories/AaveStakingFactory__factory.ts +1 -1
  275. package/types/factories/AdminWallet__factory.ts +1 -1
  276. package/types/factories/BaseShareFieldV2__factory.ts +1 -1
  277. package/types/factories/BaseShareField__factory.ts +1 -1
  278. package/types/factories/ClaimersDistribution__factory.ts +1 -1
  279. package/types/factories/CompoundStakingFactory__factory.ts +1 -1
  280. package/types/factories/CompoundVotingMachine__factory.ts +1 -1
  281. package/types/factories/DAOContract__factory.ts +1 -1
  282. package/types/factories/DAOUpgradeableContract__factory.ts +1 -1
  283. package/types/factories/DistributionBridgeMock__factory.ts +1 -1
  284. package/types/factories/DistributionHelperTestHelper__factory.ts +1 -1
  285. package/types/factories/DistributionHelperTest__factory.ts +1 -1
  286. package/types/factories/DistributionHelper__factory.ts +1 -1
  287. package/types/factories/DonationsStaking__factory.ts +1 -1
  288. package/types/factories/ERC20PermitUpgradeable__factory.ts +375 -0
  289. package/types/factories/ERC20PresetMinterPauserUpgradeable__factory.ts +83 -2
  290. package/types/factories/ERC677Receiver__factory.ts +55 -0
  291. package/types/factories/ERC677__factory.ts +75 -0
  292. package/types/factories/ExchangeHelper__factory.ts +1 -1
  293. package/types/factories/Faucet__factory.ts +1 -1
  294. package/types/factories/FuseFaucet__factory.ts +1 -1
  295. package/types/factories/FuseStakingV3__factory.ts +1 -1
  296. package/types/factories/GReputation__factory.ts +1 -1
  297. package/types/factories/GoodAaveStakingV2__factory.ts +1 -1
  298. package/types/factories/GoodAaveStaking__factory.ts +1 -1
  299. package/types/factories/GoodCompoundStakingTest__factory.ts +1 -1
  300. package/types/factories/GoodCompoundStakingV2__factory.ts +1 -1
  301. package/types/factories/GoodCompoundStaking__factory.ts +1 -1
  302. package/types/factories/GoodDollarMintBurnWrapper__factory.ts +1 -1
  303. package/types/factories/GoodDollarStakingMock__factory.ts +1 -1
  304. package/types/factories/GoodDollarStaking__factory.ts +1 -1
  305. package/types/factories/GoodDollar__factory.ts +1228 -0
  306. package/types/factories/GoodFundManagerTest__factory.ts +1 -1
  307. package/types/factories/GoodFundManager__factory.ts +1 -1
  308. package/types/factories/GoodMarketMaker__factory.ts +1 -1
  309. package/types/factories/GoodReserveCDai__factory.ts +1 -1
  310. package/types/factories/GovernanceStaking__factory.ts +1 -1
  311. package/types/factories/IERC20PermitUpgradeable__factory.ts +105 -0
  312. package/types/factories/IFeesFormula__factory.ts +57 -0
  313. package/types/factories/IIdentityV2__factory.ts +19 -0
  314. package/types/factories/IIdentity__factory.ts +19 -0
  315. package/types/factories/IdentityV2__factory.ts +32 -1
  316. package/types/factories/InvitesV1__factory.ts +1 -1
  317. package/types/factories/InvitesV2__factory.ts +37 -9
  318. package/types/factories/MultichainBridgeHelper__factory.ts +1 -1
  319. package/types/factories/MultichainRouterMock__factory.ts +1 -1
  320. package/types/factories/OverMintTesterRegularStake__factory.ts +1 -1
  321. package/types/factories/OverMintTester__factory.ts +1 -1
  322. package/types/factories/ProtocolUpgradeFuseRecover__factory.ts +1 -1
  323. package/types/factories/ProtocolUpgradeFuse__factory.ts +1 -1
  324. package/types/factories/ProtocolUpgradeRecover__factory.ts +1 -1
  325. package/types/factories/ProtocolUpgrade__factory.ts +1 -1
  326. package/types/factories/ReputationTestHelper__factory.ts +1 -1
  327. package/types/factories/Reputation__factory.ts +1 -1
  328. package/types/factories/StakersDistribution__factory.ts +1 -1
  329. package/types/factories/SwapHelperTest__factory.ts +1 -1
  330. package/types/factories/UBIScheme__factory.ts +1 -1
  331. package/types/factories/UniswapV2SwapHelper__factory.ts +1 -1
  332. package/types/factories/UpgradableMock2__factory.ts +1 -1
  333. package/types/factories/UpgradableMock3__factory.ts +1 -1
  334. package/types/factories/UpgradableMock4__factory.ts +1 -1
  335. package/types/factories/UpgradableMock__factory.ts +1 -1
  336. package/types/hardhat.d.ts +63 -0
  337. package/types/index.ts +12 -0
  338. package/yarn.lock +11 -29
@@ -0,0 +1,1180 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "GoodDollar",
4
+ "sourceName": "contracts/token/GoodDollar.sol",
5
+ "abi": [
6
+ {
7
+ "anonymous": false,
8
+ "inputs": [
9
+ {
10
+ "indexed": false,
11
+ "internalType": "address",
12
+ "name": "previousAdmin",
13
+ "type": "address"
14
+ },
15
+ {
16
+ "indexed": false,
17
+ "internalType": "address",
18
+ "name": "newAdmin",
19
+ "type": "address"
20
+ }
21
+ ],
22
+ "name": "AdminChanged",
23
+ "type": "event"
24
+ },
25
+ {
26
+ "anonymous": false,
27
+ "inputs": [
28
+ {
29
+ "indexed": true,
30
+ "internalType": "address",
31
+ "name": "owner",
32
+ "type": "address"
33
+ },
34
+ {
35
+ "indexed": true,
36
+ "internalType": "address",
37
+ "name": "spender",
38
+ "type": "address"
39
+ },
40
+ {
41
+ "indexed": false,
42
+ "internalType": "uint256",
43
+ "name": "value",
44
+ "type": "uint256"
45
+ }
46
+ ],
47
+ "name": "Approval",
48
+ "type": "event"
49
+ },
50
+ {
51
+ "anonymous": false,
52
+ "inputs": [
53
+ {
54
+ "indexed": true,
55
+ "internalType": "address",
56
+ "name": "beacon",
57
+ "type": "address"
58
+ }
59
+ ],
60
+ "name": "BeaconUpgraded",
61
+ "type": "event"
62
+ },
63
+ {
64
+ "anonymous": false,
65
+ "inputs": [
66
+ {
67
+ "indexed": false,
68
+ "internalType": "address",
69
+ "name": "account",
70
+ "type": "address"
71
+ }
72
+ ],
73
+ "name": "Paused",
74
+ "type": "event"
75
+ },
76
+ {
77
+ "anonymous": false,
78
+ "inputs": [
79
+ {
80
+ "indexed": true,
81
+ "internalType": "bytes32",
82
+ "name": "role",
83
+ "type": "bytes32"
84
+ },
85
+ {
86
+ "indexed": true,
87
+ "internalType": "bytes32",
88
+ "name": "previousAdminRole",
89
+ "type": "bytes32"
90
+ },
91
+ {
92
+ "indexed": true,
93
+ "internalType": "bytes32",
94
+ "name": "newAdminRole",
95
+ "type": "bytes32"
96
+ }
97
+ ],
98
+ "name": "RoleAdminChanged",
99
+ "type": "event"
100
+ },
101
+ {
102
+ "anonymous": false,
103
+ "inputs": [
104
+ {
105
+ "indexed": true,
106
+ "internalType": "bytes32",
107
+ "name": "role",
108
+ "type": "bytes32"
109
+ },
110
+ {
111
+ "indexed": true,
112
+ "internalType": "address",
113
+ "name": "account",
114
+ "type": "address"
115
+ },
116
+ {
117
+ "indexed": true,
118
+ "internalType": "address",
119
+ "name": "sender",
120
+ "type": "address"
121
+ }
122
+ ],
123
+ "name": "RoleGranted",
124
+ "type": "event"
125
+ },
126
+ {
127
+ "anonymous": false,
128
+ "inputs": [
129
+ {
130
+ "indexed": true,
131
+ "internalType": "bytes32",
132
+ "name": "role",
133
+ "type": "bytes32"
134
+ },
135
+ {
136
+ "indexed": true,
137
+ "internalType": "address",
138
+ "name": "account",
139
+ "type": "address"
140
+ },
141
+ {
142
+ "indexed": true,
143
+ "internalType": "address",
144
+ "name": "sender",
145
+ "type": "address"
146
+ }
147
+ ],
148
+ "name": "RoleRevoked",
149
+ "type": "event"
150
+ },
151
+ {
152
+ "anonymous": false,
153
+ "inputs": [
154
+ {
155
+ "indexed": true,
156
+ "internalType": "address",
157
+ "name": "from",
158
+ "type": "address"
159
+ },
160
+ {
161
+ "indexed": true,
162
+ "internalType": "address",
163
+ "name": "to",
164
+ "type": "address"
165
+ },
166
+ {
167
+ "indexed": false,
168
+ "internalType": "uint256",
169
+ "name": "value",
170
+ "type": "uint256"
171
+ }
172
+ ],
173
+ "name": "Transfer",
174
+ "type": "event"
175
+ },
176
+ {
177
+ "anonymous": false,
178
+ "inputs": [
179
+ {
180
+ "indexed": true,
181
+ "internalType": "address",
182
+ "name": "from",
183
+ "type": "address"
184
+ },
185
+ {
186
+ "indexed": true,
187
+ "internalType": "address",
188
+ "name": "to",
189
+ "type": "address"
190
+ },
191
+ {
192
+ "indexed": false,
193
+ "internalType": "uint256",
194
+ "name": "value",
195
+ "type": "uint256"
196
+ },
197
+ {
198
+ "indexed": false,
199
+ "internalType": "bytes",
200
+ "name": "data",
201
+ "type": "bytes"
202
+ }
203
+ ],
204
+ "name": "Transfer",
205
+ "type": "event"
206
+ },
207
+ {
208
+ "anonymous": false,
209
+ "inputs": [
210
+ {
211
+ "indexed": false,
212
+ "internalType": "address",
213
+ "name": "account",
214
+ "type": "address"
215
+ }
216
+ ],
217
+ "name": "Unpaused",
218
+ "type": "event"
219
+ },
220
+ {
221
+ "anonymous": false,
222
+ "inputs": [
223
+ {
224
+ "indexed": true,
225
+ "internalType": "address",
226
+ "name": "implementation",
227
+ "type": "address"
228
+ }
229
+ ],
230
+ "name": "Upgraded",
231
+ "type": "event"
232
+ },
233
+ {
234
+ "inputs": [],
235
+ "name": "DEFAULT_ADMIN_ROLE",
236
+ "outputs": [
237
+ {
238
+ "internalType": "bytes32",
239
+ "name": "",
240
+ "type": "bytes32"
241
+ }
242
+ ],
243
+ "stateMutability": "view",
244
+ "type": "function"
245
+ },
246
+ {
247
+ "inputs": [],
248
+ "name": "DOMAIN_SEPARATOR",
249
+ "outputs": [
250
+ {
251
+ "internalType": "bytes32",
252
+ "name": "",
253
+ "type": "bytes32"
254
+ }
255
+ ],
256
+ "stateMutability": "view",
257
+ "type": "function"
258
+ },
259
+ {
260
+ "inputs": [],
261
+ "name": "MINTER_ROLE",
262
+ "outputs": [
263
+ {
264
+ "internalType": "bytes32",
265
+ "name": "",
266
+ "type": "bytes32"
267
+ }
268
+ ],
269
+ "stateMutability": "view",
270
+ "type": "function"
271
+ },
272
+ {
273
+ "inputs": [],
274
+ "name": "PAUSER_ROLE",
275
+ "outputs": [
276
+ {
277
+ "internalType": "bytes32",
278
+ "name": "",
279
+ "type": "bytes32"
280
+ }
281
+ ],
282
+ "stateMutability": "view",
283
+ "type": "function"
284
+ },
285
+ {
286
+ "inputs": [
287
+ {
288
+ "internalType": "address",
289
+ "name": "_minter",
290
+ "type": "address"
291
+ }
292
+ ],
293
+ "name": "addMinter",
294
+ "outputs": [],
295
+ "stateMutability": "nonpayable",
296
+ "type": "function"
297
+ },
298
+ {
299
+ "inputs": [
300
+ {
301
+ "internalType": "address",
302
+ "name": "_pauser",
303
+ "type": "address"
304
+ }
305
+ ],
306
+ "name": "addPauser",
307
+ "outputs": [],
308
+ "stateMutability": "nonpayable",
309
+ "type": "function"
310
+ },
311
+ {
312
+ "inputs": [
313
+ {
314
+ "internalType": "address",
315
+ "name": "owner",
316
+ "type": "address"
317
+ },
318
+ {
319
+ "internalType": "address",
320
+ "name": "spender",
321
+ "type": "address"
322
+ }
323
+ ],
324
+ "name": "allowance",
325
+ "outputs": [
326
+ {
327
+ "internalType": "uint256",
328
+ "name": "",
329
+ "type": "uint256"
330
+ }
331
+ ],
332
+ "stateMutability": "view",
333
+ "type": "function"
334
+ },
335
+ {
336
+ "inputs": [
337
+ {
338
+ "internalType": "address",
339
+ "name": "spender",
340
+ "type": "address"
341
+ },
342
+ {
343
+ "internalType": "uint256",
344
+ "name": "amount",
345
+ "type": "uint256"
346
+ }
347
+ ],
348
+ "name": "approve",
349
+ "outputs": [
350
+ {
351
+ "internalType": "bool",
352
+ "name": "",
353
+ "type": "bool"
354
+ }
355
+ ],
356
+ "stateMutability": "nonpayable",
357
+ "type": "function"
358
+ },
359
+ {
360
+ "inputs": [
361
+ {
362
+ "internalType": "address",
363
+ "name": "account",
364
+ "type": "address"
365
+ }
366
+ ],
367
+ "name": "balanceOf",
368
+ "outputs": [
369
+ {
370
+ "internalType": "uint256",
371
+ "name": "",
372
+ "type": "uint256"
373
+ }
374
+ ],
375
+ "stateMutability": "view",
376
+ "type": "function"
377
+ },
378
+ {
379
+ "inputs": [
380
+ {
381
+ "internalType": "uint256",
382
+ "name": "amount",
383
+ "type": "uint256"
384
+ }
385
+ ],
386
+ "name": "burn",
387
+ "outputs": [],
388
+ "stateMutability": "nonpayable",
389
+ "type": "function"
390
+ },
391
+ {
392
+ "inputs": [
393
+ {
394
+ "internalType": "address",
395
+ "name": "account",
396
+ "type": "address"
397
+ },
398
+ {
399
+ "internalType": "uint256",
400
+ "name": "amount",
401
+ "type": "uint256"
402
+ }
403
+ ],
404
+ "name": "burnFrom",
405
+ "outputs": [],
406
+ "stateMutability": "nonpayable",
407
+ "type": "function"
408
+ },
409
+ {
410
+ "inputs": [],
411
+ "name": "cap",
412
+ "outputs": [
413
+ {
414
+ "internalType": "uint256",
415
+ "name": "",
416
+ "type": "uint256"
417
+ }
418
+ ],
419
+ "stateMutability": "view",
420
+ "type": "function"
421
+ },
422
+ {
423
+ "inputs": [],
424
+ "name": "decimals",
425
+ "outputs": [
426
+ {
427
+ "internalType": "uint8",
428
+ "name": "",
429
+ "type": "uint8"
430
+ }
431
+ ],
432
+ "stateMutability": "view",
433
+ "type": "function"
434
+ },
435
+ {
436
+ "inputs": [
437
+ {
438
+ "internalType": "address",
439
+ "name": "spender",
440
+ "type": "address"
441
+ },
442
+ {
443
+ "internalType": "uint256",
444
+ "name": "subtractedValue",
445
+ "type": "uint256"
446
+ }
447
+ ],
448
+ "name": "decreaseAllowance",
449
+ "outputs": [
450
+ {
451
+ "internalType": "bool",
452
+ "name": "",
453
+ "type": "bool"
454
+ }
455
+ ],
456
+ "stateMutability": "nonpayable",
457
+ "type": "function"
458
+ },
459
+ {
460
+ "inputs": [],
461
+ "name": "feeRecipient",
462
+ "outputs": [
463
+ {
464
+ "internalType": "address",
465
+ "name": "",
466
+ "type": "address"
467
+ }
468
+ ],
469
+ "stateMutability": "view",
470
+ "type": "function"
471
+ },
472
+ {
473
+ "inputs": [],
474
+ "name": "formula",
475
+ "outputs": [
476
+ {
477
+ "internalType": "contract IFeesFormula",
478
+ "name": "",
479
+ "type": "address"
480
+ }
481
+ ],
482
+ "stateMutability": "view",
483
+ "type": "function"
484
+ },
485
+ {
486
+ "inputs": [
487
+ {
488
+ "internalType": "uint256",
489
+ "name": "value",
490
+ "type": "uint256"
491
+ },
492
+ {
493
+ "internalType": "address",
494
+ "name": "sender",
495
+ "type": "address"
496
+ },
497
+ {
498
+ "internalType": "address",
499
+ "name": "recipient",
500
+ "type": "address"
501
+ }
502
+ ],
503
+ "name": "getFees",
504
+ "outputs": [
505
+ {
506
+ "internalType": "uint256",
507
+ "name": "fee",
508
+ "type": "uint256"
509
+ },
510
+ {
511
+ "internalType": "bool",
512
+ "name": "senderPays",
513
+ "type": "bool"
514
+ }
515
+ ],
516
+ "stateMutability": "view",
517
+ "type": "function"
518
+ },
519
+ {
520
+ "inputs": [
521
+ {
522
+ "internalType": "uint256",
523
+ "name": "value",
524
+ "type": "uint256"
525
+ }
526
+ ],
527
+ "name": "getFees",
528
+ "outputs": [
529
+ {
530
+ "internalType": "uint256",
531
+ "name": "fee",
532
+ "type": "uint256"
533
+ },
534
+ {
535
+ "internalType": "bool",
536
+ "name": "senderPays",
537
+ "type": "bool"
538
+ }
539
+ ],
540
+ "stateMutability": "view",
541
+ "type": "function"
542
+ },
543
+ {
544
+ "inputs": [
545
+ {
546
+ "internalType": "bytes32",
547
+ "name": "role",
548
+ "type": "bytes32"
549
+ }
550
+ ],
551
+ "name": "getRoleAdmin",
552
+ "outputs": [
553
+ {
554
+ "internalType": "bytes32",
555
+ "name": "",
556
+ "type": "bytes32"
557
+ }
558
+ ],
559
+ "stateMutability": "view",
560
+ "type": "function"
561
+ },
562
+ {
563
+ "inputs": [
564
+ {
565
+ "internalType": "bytes32",
566
+ "name": "role",
567
+ "type": "bytes32"
568
+ },
569
+ {
570
+ "internalType": "uint256",
571
+ "name": "index",
572
+ "type": "uint256"
573
+ }
574
+ ],
575
+ "name": "getRoleMember",
576
+ "outputs": [
577
+ {
578
+ "internalType": "address",
579
+ "name": "",
580
+ "type": "address"
581
+ }
582
+ ],
583
+ "stateMutability": "view",
584
+ "type": "function"
585
+ },
586
+ {
587
+ "inputs": [
588
+ {
589
+ "internalType": "bytes32",
590
+ "name": "role",
591
+ "type": "bytes32"
592
+ }
593
+ ],
594
+ "name": "getRoleMemberCount",
595
+ "outputs": [
596
+ {
597
+ "internalType": "uint256",
598
+ "name": "",
599
+ "type": "uint256"
600
+ }
601
+ ],
602
+ "stateMutability": "view",
603
+ "type": "function"
604
+ },
605
+ {
606
+ "inputs": [
607
+ {
608
+ "internalType": "bytes32",
609
+ "name": "role",
610
+ "type": "bytes32"
611
+ },
612
+ {
613
+ "internalType": "address",
614
+ "name": "account",
615
+ "type": "address"
616
+ }
617
+ ],
618
+ "name": "grantRole",
619
+ "outputs": [],
620
+ "stateMutability": "nonpayable",
621
+ "type": "function"
622
+ },
623
+ {
624
+ "inputs": [
625
+ {
626
+ "internalType": "bytes32",
627
+ "name": "role",
628
+ "type": "bytes32"
629
+ },
630
+ {
631
+ "internalType": "address",
632
+ "name": "account",
633
+ "type": "address"
634
+ }
635
+ ],
636
+ "name": "hasRole",
637
+ "outputs": [
638
+ {
639
+ "internalType": "bool",
640
+ "name": "",
641
+ "type": "bool"
642
+ }
643
+ ],
644
+ "stateMutability": "view",
645
+ "type": "function"
646
+ },
647
+ {
648
+ "inputs": [],
649
+ "name": "identity",
650
+ "outputs": [
651
+ {
652
+ "internalType": "contract IIdentity",
653
+ "name": "",
654
+ "type": "address"
655
+ }
656
+ ],
657
+ "stateMutability": "view",
658
+ "type": "function"
659
+ },
660
+ {
661
+ "inputs": [
662
+ {
663
+ "internalType": "address",
664
+ "name": "spender",
665
+ "type": "address"
666
+ },
667
+ {
668
+ "internalType": "uint256",
669
+ "name": "addedValue",
670
+ "type": "uint256"
671
+ }
672
+ ],
673
+ "name": "increaseAllowance",
674
+ "outputs": [
675
+ {
676
+ "internalType": "bool",
677
+ "name": "",
678
+ "type": "bool"
679
+ }
680
+ ],
681
+ "stateMutability": "nonpayable",
682
+ "type": "function"
683
+ },
684
+ {
685
+ "inputs": [
686
+ {
687
+ "internalType": "string",
688
+ "name": "name",
689
+ "type": "string"
690
+ },
691
+ {
692
+ "internalType": "string",
693
+ "name": "symbol",
694
+ "type": "string"
695
+ }
696
+ ],
697
+ "name": "initialize",
698
+ "outputs": [],
699
+ "stateMutability": "nonpayable",
700
+ "type": "function"
701
+ },
702
+ {
703
+ "inputs": [
704
+ {
705
+ "internalType": "string",
706
+ "name": "_name",
707
+ "type": "string"
708
+ },
709
+ {
710
+ "internalType": "string",
711
+ "name": "_symbol",
712
+ "type": "string"
713
+ },
714
+ {
715
+ "internalType": "uint256",
716
+ "name": "_cap",
717
+ "type": "uint256"
718
+ },
719
+ {
720
+ "internalType": "contract IFeesFormula",
721
+ "name": "_formula",
722
+ "type": "address"
723
+ },
724
+ {
725
+ "internalType": "contract IIdentity",
726
+ "name": "_identity",
727
+ "type": "address"
728
+ },
729
+ {
730
+ "internalType": "address",
731
+ "name": "_feeRecipient",
732
+ "type": "address"
733
+ },
734
+ {
735
+ "internalType": "address",
736
+ "name": "_owner",
737
+ "type": "address"
738
+ }
739
+ ],
740
+ "name": "initialize",
741
+ "outputs": [],
742
+ "stateMutability": "nonpayable",
743
+ "type": "function"
744
+ },
745
+ {
746
+ "inputs": [
747
+ {
748
+ "internalType": "address",
749
+ "name": "_minter",
750
+ "type": "address"
751
+ }
752
+ ],
753
+ "name": "isMinter",
754
+ "outputs": [
755
+ {
756
+ "internalType": "bool",
757
+ "name": "",
758
+ "type": "bool"
759
+ }
760
+ ],
761
+ "stateMutability": "view",
762
+ "type": "function"
763
+ },
764
+ {
765
+ "inputs": [
766
+ {
767
+ "internalType": "address",
768
+ "name": "_pauser",
769
+ "type": "address"
770
+ }
771
+ ],
772
+ "name": "isPauser",
773
+ "outputs": [
774
+ {
775
+ "internalType": "bool",
776
+ "name": "",
777
+ "type": "bool"
778
+ }
779
+ ],
780
+ "stateMutability": "view",
781
+ "type": "function"
782
+ },
783
+ {
784
+ "inputs": [
785
+ {
786
+ "internalType": "address",
787
+ "name": "to",
788
+ "type": "address"
789
+ },
790
+ {
791
+ "internalType": "uint256",
792
+ "name": "value",
793
+ "type": "uint256"
794
+ }
795
+ ],
796
+ "name": "mint",
797
+ "outputs": [
798
+ {
799
+ "internalType": "bool",
800
+ "name": "",
801
+ "type": "bool"
802
+ }
803
+ ],
804
+ "stateMutability": "nonpayable",
805
+ "type": "function"
806
+ },
807
+ {
808
+ "inputs": [],
809
+ "name": "name",
810
+ "outputs": [
811
+ {
812
+ "internalType": "string",
813
+ "name": "",
814
+ "type": "string"
815
+ }
816
+ ],
817
+ "stateMutability": "view",
818
+ "type": "function"
819
+ },
820
+ {
821
+ "inputs": [
822
+ {
823
+ "internalType": "address",
824
+ "name": "owner",
825
+ "type": "address"
826
+ }
827
+ ],
828
+ "name": "nonces",
829
+ "outputs": [
830
+ {
831
+ "internalType": "uint256",
832
+ "name": "",
833
+ "type": "uint256"
834
+ }
835
+ ],
836
+ "stateMutability": "view",
837
+ "type": "function"
838
+ },
839
+ {
840
+ "inputs": [],
841
+ "name": "owner",
842
+ "outputs": [
843
+ {
844
+ "internalType": "address",
845
+ "name": "",
846
+ "type": "address"
847
+ }
848
+ ],
849
+ "stateMutability": "view",
850
+ "type": "function"
851
+ },
852
+ {
853
+ "inputs": [],
854
+ "name": "pause",
855
+ "outputs": [],
856
+ "stateMutability": "nonpayable",
857
+ "type": "function"
858
+ },
859
+ {
860
+ "inputs": [],
861
+ "name": "paused",
862
+ "outputs": [
863
+ {
864
+ "internalType": "bool",
865
+ "name": "",
866
+ "type": "bool"
867
+ }
868
+ ],
869
+ "stateMutability": "view",
870
+ "type": "function"
871
+ },
872
+ {
873
+ "inputs": [
874
+ {
875
+ "internalType": "address",
876
+ "name": "owner",
877
+ "type": "address"
878
+ },
879
+ {
880
+ "internalType": "address",
881
+ "name": "spender",
882
+ "type": "address"
883
+ },
884
+ {
885
+ "internalType": "uint256",
886
+ "name": "value",
887
+ "type": "uint256"
888
+ },
889
+ {
890
+ "internalType": "uint256",
891
+ "name": "deadline",
892
+ "type": "uint256"
893
+ },
894
+ {
895
+ "internalType": "uint8",
896
+ "name": "v",
897
+ "type": "uint8"
898
+ },
899
+ {
900
+ "internalType": "bytes32",
901
+ "name": "r",
902
+ "type": "bytes32"
903
+ },
904
+ {
905
+ "internalType": "bytes32",
906
+ "name": "s",
907
+ "type": "bytes32"
908
+ }
909
+ ],
910
+ "name": "permit",
911
+ "outputs": [],
912
+ "stateMutability": "nonpayable",
913
+ "type": "function"
914
+ },
915
+ {
916
+ "inputs": [],
917
+ "name": "renounceMinter",
918
+ "outputs": [],
919
+ "stateMutability": "nonpayable",
920
+ "type": "function"
921
+ },
922
+ {
923
+ "inputs": [
924
+ {
925
+ "internalType": "bytes32",
926
+ "name": "role",
927
+ "type": "bytes32"
928
+ },
929
+ {
930
+ "internalType": "address",
931
+ "name": "account",
932
+ "type": "address"
933
+ }
934
+ ],
935
+ "name": "renounceRole",
936
+ "outputs": [],
937
+ "stateMutability": "nonpayable",
938
+ "type": "function"
939
+ },
940
+ {
941
+ "inputs": [
942
+ {
943
+ "internalType": "bytes32",
944
+ "name": "role",
945
+ "type": "bytes32"
946
+ },
947
+ {
948
+ "internalType": "address",
949
+ "name": "account",
950
+ "type": "address"
951
+ }
952
+ ],
953
+ "name": "revokeRole",
954
+ "outputs": [],
955
+ "stateMutability": "nonpayable",
956
+ "type": "function"
957
+ },
958
+ {
959
+ "inputs": [
960
+ {
961
+ "internalType": "address",
962
+ "name": "_feeRecipient",
963
+ "type": "address"
964
+ }
965
+ ],
966
+ "name": "setFeeRecipient",
967
+ "outputs": [],
968
+ "stateMutability": "nonpayable",
969
+ "type": "function"
970
+ },
971
+ {
972
+ "inputs": [
973
+ {
974
+ "internalType": "contract IFeesFormula",
975
+ "name": "_formula",
976
+ "type": "address"
977
+ }
978
+ ],
979
+ "name": "setFormula",
980
+ "outputs": [],
981
+ "stateMutability": "nonpayable",
982
+ "type": "function"
983
+ },
984
+ {
985
+ "inputs": [
986
+ {
987
+ "internalType": "contract IIdentityV2",
988
+ "name": "_identity",
989
+ "type": "address"
990
+ }
991
+ ],
992
+ "name": "setIdentity",
993
+ "outputs": [],
994
+ "stateMutability": "nonpayable",
995
+ "type": "function"
996
+ },
997
+ {
998
+ "inputs": [
999
+ {
1000
+ "internalType": "bytes4",
1001
+ "name": "interfaceId",
1002
+ "type": "bytes4"
1003
+ }
1004
+ ],
1005
+ "name": "supportsInterface",
1006
+ "outputs": [
1007
+ {
1008
+ "internalType": "bool",
1009
+ "name": "",
1010
+ "type": "bool"
1011
+ }
1012
+ ],
1013
+ "stateMutability": "view",
1014
+ "type": "function"
1015
+ },
1016
+ {
1017
+ "inputs": [],
1018
+ "name": "symbol",
1019
+ "outputs": [
1020
+ {
1021
+ "internalType": "string",
1022
+ "name": "",
1023
+ "type": "string"
1024
+ }
1025
+ ],
1026
+ "stateMutability": "view",
1027
+ "type": "function"
1028
+ },
1029
+ {
1030
+ "inputs": [],
1031
+ "name": "totalSupply",
1032
+ "outputs": [
1033
+ {
1034
+ "internalType": "uint256",
1035
+ "name": "",
1036
+ "type": "uint256"
1037
+ }
1038
+ ],
1039
+ "stateMutability": "view",
1040
+ "type": "function"
1041
+ },
1042
+ {
1043
+ "inputs": [
1044
+ {
1045
+ "internalType": "address",
1046
+ "name": "to",
1047
+ "type": "address"
1048
+ },
1049
+ {
1050
+ "internalType": "uint256",
1051
+ "name": "value",
1052
+ "type": "uint256"
1053
+ }
1054
+ ],
1055
+ "name": "transfer",
1056
+ "outputs": [
1057
+ {
1058
+ "internalType": "bool",
1059
+ "name": "",
1060
+ "type": "bool"
1061
+ }
1062
+ ],
1063
+ "stateMutability": "nonpayable",
1064
+ "type": "function"
1065
+ },
1066
+ {
1067
+ "inputs": [
1068
+ {
1069
+ "internalType": "address",
1070
+ "name": "to",
1071
+ "type": "address"
1072
+ },
1073
+ {
1074
+ "internalType": "uint256",
1075
+ "name": "value",
1076
+ "type": "uint256"
1077
+ },
1078
+ {
1079
+ "internalType": "bytes",
1080
+ "name": "data",
1081
+ "type": "bytes"
1082
+ }
1083
+ ],
1084
+ "name": "transferAndCall",
1085
+ "outputs": [
1086
+ {
1087
+ "internalType": "bool",
1088
+ "name": "",
1089
+ "type": "bool"
1090
+ }
1091
+ ],
1092
+ "stateMutability": "nonpayable",
1093
+ "type": "function"
1094
+ },
1095
+ {
1096
+ "inputs": [
1097
+ {
1098
+ "internalType": "address",
1099
+ "name": "from",
1100
+ "type": "address"
1101
+ },
1102
+ {
1103
+ "internalType": "address",
1104
+ "name": "to",
1105
+ "type": "address"
1106
+ },
1107
+ {
1108
+ "internalType": "uint256",
1109
+ "name": "value",
1110
+ "type": "uint256"
1111
+ }
1112
+ ],
1113
+ "name": "transferFrom",
1114
+ "outputs": [
1115
+ {
1116
+ "internalType": "bool",
1117
+ "name": "",
1118
+ "type": "bool"
1119
+ }
1120
+ ],
1121
+ "stateMutability": "nonpayable",
1122
+ "type": "function"
1123
+ },
1124
+ {
1125
+ "inputs": [
1126
+ {
1127
+ "internalType": "address",
1128
+ "name": "_owner",
1129
+ "type": "address"
1130
+ }
1131
+ ],
1132
+ "name": "transferOwnership",
1133
+ "outputs": [],
1134
+ "stateMutability": "nonpayable",
1135
+ "type": "function"
1136
+ },
1137
+ {
1138
+ "inputs": [],
1139
+ "name": "unpause",
1140
+ "outputs": [],
1141
+ "stateMutability": "nonpayable",
1142
+ "type": "function"
1143
+ },
1144
+ {
1145
+ "inputs": [
1146
+ {
1147
+ "internalType": "address",
1148
+ "name": "newImplementation",
1149
+ "type": "address"
1150
+ }
1151
+ ],
1152
+ "name": "upgradeTo",
1153
+ "outputs": [],
1154
+ "stateMutability": "nonpayable",
1155
+ "type": "function"
1156
+ },
1157
+ {
1158
+ "inputs": [
1159
+ {
1160
+ "internalType": "address",
1161
+ "name": "newImplementation",
1162
+ "type": "address"
1163
+ },
1164
+ {
1165
+ "internalType": "bytes",
1166
+ "name": "data",
1167
+ "type": "bytes"
1168
+ }
1169
+ ],
1170
+ "name": "upgradeToAndCall",
1171
+ "outputs": [],
1172
+ "stateMutability": "payable",
1173
+ "type": "function"
1174
+ }
1175
+ ],
1176
+ "bytecode": "0x60a06040523060601b60805234801561001757600080fd5b5060805160601c613a5f61004b60003960008181610a4101528181610a8a01528181610de00152610e200152613a5f6000f3fe60806040526004361061024f5760003560e01c806301ffc9a71461025457806306fdde0314610289578063095ea7b3146102ab57806318160ddd146102cb57806323b872dd146102eb578063248a9ca31461030b5780632c159a1a1461032b5780632f2ff15d14610359578063313ce5671461037b578063355274ea146103975780633644e515146103ae57806336568abe146103c35780633659cfe6146103e357806339364fd71461040357806339509351146104385780633f4ba83a146104585780634000aea01461046d57806340c10f191461048d57806342966c68146104ad57806346904840146104cd57806346fbf68e146104ee5780634b75f54f1461050e5780634cd88b761461052f5780634f1ef2861461054f5780635c975abb146105625780635d5bf1781461057b57806370a082311461059b57806379cc6790146105bb5780637ecebe00146105db57806382dc1ec4146105fb5780638456cb591461061b5780638da5cb5b146106305780639010d07c1461064557806391d148541461066557806395d89b4114610685578063983b2d561461069a57806398650275146106ba578063a217fddf146106cf578063a457c2d7146106e4578063a9059cbb14610704578063aa271e1a14610724578063ca15c87314610744578063d505accf14610764578063d539139314610784578063d547741f146107a6578063d5a06d4c146107c6578063dd62ed3e146107e6578063dea7f1121461082d578063e63ab1e91461084d578063e74b981b1461086f578063ecc06c761461088f578063f2fde38b146108af575b600080fd5b34801561026057600080fd5b5061027461026f3660046130e3565b6108cf565b60405190151581526020015b60405180910390f35b34801561029557600080fd5b5061029e6108fa565b6040516102809190613165565b3480156102b757600080fd5b506102746102c636600461318d565b61098d565b3480156102d757600080fd5b5061012f545b604051908152602001610280565b3480156102f757600080fd5b506102746103063660046131b9565b6109a3565b34801561031757600080fd5b506102dd6103263660046131fa565b6109c9565b34801561033757600080fd5b506102905461034c906001600160a01b031681565b6040516102809190613213565b34801561036557600080fd5b50610379610374366004613227565b6109de565b005b34801561038757600080fd5b5060405160028152602001610280565b3480156103a357600080fd5b506102dd6102915481565b3480156103ba57600080fd5b506102dd610a05565b3480156103cf57600080fd5b506103796103de366004613227565b610a14565b3480156103ef57600080fd5b506103796103fe366004613257565b610a36565b34801561040f57600080fd5b5061042361041e366004613274565b610b08565b60408051928352901515602083015201610280565b34801561044457600080fd5b5061027461045336600461318d565b610b9d565b34801561046457600080fd5b50610379610bda565b34801561047957600080fd5b506102746104883660046132b6565b610c58565b34801561049957600080fd5b506102746104a836600461318d565b610cb3565b3480156104b957600080fd5b506103796104c83660046131fa565b610d3a565b3480156104d957600080fd5b5061028e5461034c906001600160a01b031681565b3480156104fa57600080fd5b50610274610509366004613257565b610d44565b34801561051a57600080fd5b5061028f5461034c906001600160a01b031681565b34801561053b57600080fd5b5061037961054a3660046133e9565b610d5e565b61037961055d36600461344c565b610dd5565b34801561056e57600080fd5b506101f85460ff16610274565b34801561058757600080fd5b50610379610596366004613257565b610e8f565b3480156105a757600080fd5b506102dd6105b6366004613257565b610ed9565b3480156105c757600080fd5b506103796105d636600461318d565b610ef5565b3480156105e757600080fd5b506102dd6105f6366004613257565b610f76565b34801561060757600080fd5b50610379610616366004613257565b610f95565b34801561062757600080fd5b50610379610fad565b34801561063c57600080fd5b5061034c611027565b34801561065157600080fd5b5061034c6106603660046134a5565b61102f565b34801561067157600080fd5b50610274610680366004613227565b611047565b34801561069157600080fd5b5061029e611072565b3480156106a657600080fd5b506103796106b5366004613257565b611082565b3480156106c657600080fd5b5061037961109a565b3480156106db57600080fd5b506102dd600081565b3480156106f057600080fd5b506102746106ff36600461318d565b6110b2565b34801561071057600080fd5b5061027461071f36600461318d565b61114c565b34801561073057600080fd5b5061027461073f366004613257565b61116e565b34801561075057600080fd5b506102dd61075f3660046131fa565b611188565b34801561077057600080fd5b5061037961077f3660046134c7565b61119f565b34801561079057600080fd5b506102dd6000805160206139ea83398151915281565b3480156107b257600080fd5b506103796107c1366004613227565b6112e6565b3480156107d257600080fd5b506104236107e13660046131fa565b6112f0565b3480156107f257600080fd5b506102dd61080136600461353e565b6001600160a01b03918216600090815261012e6020908152604080832093909416825291909152205490565b34801561083957600080fd5b5061037961084836600461356c565b611382565b34801561085957600080fd5b506102dd6000805160206139a383398151915281565b34801561087b57600080fd5b5061037961088a366004613257565b61149d565b34801561089b57600080fd5b506103796108aa366004613257565b6114e7565b3480156108bb57600080fd5b506103796108ca366004613257565b611531565b60006001600160e01b03198216635a05180f60e01b14806108f457506108f48261156e565b92915050565b6060610130805461090a90613625565b80601f016020809104026020016040519081016040528092919081815260200182805461093690613625565b80156109835780601f1061095857610100808354040283529160200191610983565b820191906000526020600020905b81548152906001019060200180831161096657829003601f168201915b5050505050905090565b600061099a3384846115a3565b50600192915050565b6000806109b18585856116c8565b90506109be85858361184b565b9150505b9392505050565b600090815260c9602052604090206001015490565b6109e882826118f6565b600082815260fb60205260409020610a009082611913565b505050565b6000610a0f611928565b905090565b610a1e82826119a5565b600082815260fb60205260409020610a009082611a1f565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610a885760405162461bcd60e51b8152600401610a7f9061365a565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610aba611a34565b6001600160a01b031614610ae05760405162461bcd60e51b8152600401610a7f90613694565b610ae981611a50565b60408051600080825260208201909252610b0591839190611a77565b50565b61028f54604051631eed540360e11b815260009182916001600160a01b0390911690633ddaa80690610b42908890889088906004016136ce565b604080518083038186803b158015610b5957600080fd5b505afa158015610b6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b919190613702565b91509150935093915050565b33600081815261012e602090815260408083206001600160a01b0387168452909152812054909161099a918590610bd5908690613744565b6115a3565b610bf26000805160206139a383398151915233611047565b610c4e5760405162461bcd60e51b8152602060048201526039602482015260008051602061394383398151915260448201527876652070617573657220726f6c6520746f20756e706175736560381b6064820152608401610a7f565b610c56611bbe565b565b600080610c663387876116c8565b9050610ca9868286868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c4d92505050565b9695505050505050565b6102915460009015610d30576102915482610cce61012f5490565b610cd89190613744565b1115610d305760405162461bcd60e51b815260206004820152602160248201527f43616e6e6f7420696e63726561736520737570706c79206265796f6e642063616044820152600760fc1b6064820152608401610a7f565b6109c28383611d02565b610b053382611d7f565b60006108f46000805160206139a383398151915283611047565b600054610100900460ff1680610d77575060005460ff16155b610d935760405162461bcd60e51b8152600401610a7f9061375c565b600054610100900460ff16158015610db5576000805461ffff19166101011790555b610dbf8383611eca565b8015610a00576000805461ff0019169055505050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610e1e5760405162461bcd60e51b8152600401610a7f9061365a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610e50611a34565b6001600160a01b031614610e765760405162461bcd60e51b8152600401610a7f90613694565b610e7f82611a50565b610e8b82826001611a77565b5050565b610e9a600033611047565b610eb65760405162461bcd60e51b8152600401610a7f906137aa565b61029080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0316600090815261012d602052604090205490565b6000610f018333610801565b905081811015610f5f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77604482015263616e636560e01b6064820152608401610a7f565b610f6c83338484036115a3565b610a008383611d7f565b6001600160a01b038116600090815261019360205260408120546108f4565b610b056000805160206139a3833981519152826109de565b610fc56000805160206139a383398151915233611047565b61101f5760405162461bcd60e51b8152602060048201526037602482015260008051602061394383398151915260448201527676652070617573657220726f6c6520746f20706175736560481b6064820152608401610a7f565b610c56611f76565b6000610a0f81805b600082815260fb602052604081206109c29083611ff3565b600091825260c9602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6060610131805461090a90613625565b610b056000805160206139ea833981519152826109de565b610c566000805160206139ea83398151915233610a14565b33600090815261012e602090815260408083206001600160a01b0386168452909152812054828110156111355760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a7f565b61114233858584036115a3565b5060019392505050565b60008061115a3385856116c8565b90506111668482611fff565b949350505050565b60006108f46000805160206139ea83398151915283611047565b600081815260fb602052604081206108f49061200c565b834211156111ef5760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606401610a7f565b6000610194548888886112018c612016565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e001604051602081830303815290604052805190602001209050600061125c8261203f565b9050600061126c8287878761208d565b9050896001600160a01b0316816001600160a01b0316146112cf5760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606401610a7f565b6112da8a8a8a6115a3565b50505050505050505050565b610a1e82826120b5565b61028f54604051631eed540360e11b815260009182916001600160a01b0390911690633ddaa8069061132a908690859081906004016136ce565b604080518083038186803b15801561134157600080fd5b505afa158015611355573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113799190613702565b91509150915091565b600054610100900460ff168061139b575060005460ff16155b6113b75760405162461bcd60e51b8152600401610a7f9061375c565b600054610100900460ff161580156113d9576000805461ffff19166101011790555b6113e38888611eca565b61028e80546001600160a01b038086166001600160a01b031992831617909255610290805487841690831617905561028f8054928816929091169190911790556102918690556114303390565b6001600160a01b0316826001600160a01b0316146114815761145182611531565b6114696000805160206139ea83398151915233610a14565b6114816000805160206139a383398151915233610a14565b8015611493576000805461ff00191690555b5050505050505050565b6114a8600033611047565b6114c45760405162461bcd60e51b8152600401610a7f906137aa565b61028e80546001600160a01b0319166001600160a01b0392909216919091179055565b6114f2600033611047565b61150e5760405162461bcd60e51b8152600401610a7f906137aa565b61028f80546001600160a01b0319166001600160a01b0392909216919091179055565b61153c600033611047565b6115585760405162461bcd60e51b8152600401610a7f906137aa565b6115636000826109de565b610b05600033610a14565b60006001600160e01b03198216637965db0b60e01b14806108f457506301ffc9a760e01b6001600160e01b03198316146108f4565b6001600160a01b0383166116055760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a7f565b6001600160a01b0382166116665760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a7f565b6001600160a01b03838116600081815261012e602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60008060006116d8848787610b08565b9150915060008211801561176a57506102905460405163639e625760e11b81526001600160a01b039091169063c73cc4ae90611718903390600401613213565b60206040518083038186803b15801561173057600080fd5b505afa158015611744573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176891906137cd565b155b156118415780158061178d575061178086610ed9565b61178a8386613744565b11155b6117d95760405162461bcd60e51b815260206004820181905260248201527f4e6f7420656e6f7567682062616c616e636520746f20706179205458206665656044820152606401610a7f565b6001600160a01b0386163314156118075761028e54611801906001600160a01b031683611fff565b50611822565b61028e546118209087906001600160a01b03168461184b565b505b806118365761183182856137e8565b611838565b835b925050506109c2565b5091949350505050565b60006118588484846120d2565b6001600160a01b038416600090815261012e60209081526040808320338452909152902054828110156118de5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610a7f565b6118eb85338584036115a3565b506001949350505050565b6118ff826109c9565b611909813361229d565b610a008383612301565b60006109c2836001600160a01b038416612387565b6000610a0f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61195861015f5490565b610160546040805160208101859052908101839052606081018290524660808201523060a082015260009060c0016040516020818303038152906040528051906020012090509392505050565b6001600160a01b0381163314611a155760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610a7f565b610e8b82826123d6565b60006109c2836001600160a01b03841661243d565b600080516020613983833981519152546001600160a01b031690565b611a5b600033611047565b610b055760405162461bcd60e51b8152600401610a7f906137aa565b6000611a81611a34565b9050611a8c84612530565b600083511180611a995750815b15611aaa57611aa884846125c3565b505b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143805460ff16611bb757805460ff19166001178155604051611b25908690611af6908590602401613213565b60408051601f198184030181529190526020810180516001600160e01b0316631b2ce7f360e11b1790526125c3565b50805460ff19168155611b36611a34565b6001600160a01b0316826001600160a01b031614611bae5760405162461bcd60e51b815260206004820152602f60248201527f45524331393637557067726164653a207570677261646520627265616b73206660448201526e75727468657220757067726164657360881b6064820152608401610a7f565b611bb7856126ae565b5050505050565b6101f85460ff16611c085760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610a7f565b6101f8805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b604051611c439190613213565b60405180910390a1565b600080611c5a858561114c565b9050846001600160a01b0316336001600160a01b03167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c168686604051611ca19291906137ff565b60405180910390a3843b1561116657611cbb8585856126ee565b6111665760405162461bcd60e51b815260206004820152601860248201527710dbdb9d1c9858dd0819985b1b189858dac819985a5b195960421b6044820152606401610a7f565b6000611d1c6000805160206139ea83398151915233611047565b611d755760405162461bcd60e51b815260206004820152603660248201526000805160206139438339815191526044820152751d99481b5a5b9d195c881c9bdb19481d1bc81b5a5b9d60521b6064820152608401610a7f565b61099a83836127bc565b6001600160a01b038216611ddf5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610a7f565b611deb82600083612897565b6001600160a01b038216600090815261012d602052604090205481811015611e605760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610a7f565b6001600160a01b038316600090815261012d60205260408120838303905561012f8054849290611e919084906137e8565b90915550506040518281526000906001600160a01b03851690600080516020613a0a8339815191529060200160405180910390a3505050565b600054610100900460ff1680611ee3575060005460ff16155b611eff5760405162461bcd60e51b8152600401610a7f9061375c565b600054610100900460ff16158015611f21576000805461ffff19166101011790555b611f296128a2565b611f316128a2565b611f396128a2565b611f416128a2565b611f4b838361290d565b611f536128a2565b611f5b6129a4565b611f636128a2565b611f6d8383612a1a565b610dbf83612aac565b6101f85460ff1615611fbd5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610a7f565b6101f8805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611c363390565b60006109c28383612b3d565b600061099a3384846120d2565b60006108f4825490565b6001600160a01b0381166000908152610193602052604090208054600181018255905b50919050565b60006108f461204c611928565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b600080600061209e87878787612b67565b915091506120ab81612c4a565b5095945050505050565b6120be826109c9565b6120c8813361229d565b610a0083836123d6565b6001600160a01b0383166121365760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a7f565b6001600160a01b0382166121985760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a7f565b6121a3838383612897565b6001600160a01b038316600090815261012d60205260409020548181101561221c5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a7f565b6001600160a01b03808516600090815261012d6020526040808220858503905591851681529081208054849290612254908490613744565b92505081905550826001600160a01b0316846001600160a01b0316600080516020613a0a8339815191528460405161228e91815260200190565b60405180910390a35b50505050565b6122a78282611047565b610e8b576122bf816001600160a01b03166014612e00565b6122ca836020612e00565b6040516020016122db929190613818565b60408051601f198184030181529082905262461bcd60e51b8252610a7f91600401613165565b61230b8282611047565b610e8b57600082815260c9602090815260408083206001600160a01b03851684529091529020805460ff191660011790556123433390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008181526001830160205260408120546123ce575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556108f4565b5060006108f4565b6123e08282611047565b15610e8b57600082815260c9602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600081815260018301602052604081205480156125265760006124616001836137e8565b8554909150600090612475906001906137e8565b90508181146124da57600086600001828154811061249557612495613887565b90600052602060002001549050808760000184815481106124b8576124b8613887565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806124eb576124eb61389d565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506108f4565b60009150506108f4565b803b6125945760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610a7f565b60008051602061398383398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060823b6126225760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610a7f565b600080846001600160a01b03168460405161263d91906138b3565b600060405180830381855af49150503d8060008114612678576040519150601f19603f3d011682016040523d82523d6000602084013e61267d565b606091505b50915091506126a582826040518060600160405280602781526020016139c360279139612f9b565b95945050505050565b6126b781612530565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b604051635260769b60e11b815260009084906001600160a01b0382169063a4c0ed3690612723903390889088906004016138cf565b602060405180830381600087803b15801561273d57600080fd5b505af1158015612751573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061277591906137cd565b6118eb5760405162461bcd60e51b815260206004820152601860248201527710dbdb9d1c9858dd0811985b1b189858dac819985a5b195960421b6044820152606401610a7f565b6001600160a01b0382166128125760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610a7f565b61281e60008383612897565b8061012f60008282546128319190613744565b90915550506001600160a01b038216600090815261012d60205260408120805483929061285f908490613744565b90915550506040518181526001600160a01b03831690600090600080516020613a0a8339815191529060200160405180910390a35050565b610a00838383612fd4565b600054610100900460ff16806128bb575060005460ff16155b6128d75760405162461bcd60e51b8152600401610a7f9061375c565b600054610100900460ff161580156128f9576000805461ffff19166101011790555b8015610b05576000805461ff001916905550565b600054610100900460ff1680612926575060005460ff16155b6129425760405162461bcd60e51b8152600401610a7f9061375c565b600054610100900460ff16158015612964576000805461ffff19166101011790555b82516129789061013090602086019061304a565b50815161298d9061013190602085019061304a565b508015610a00576000805461ff0019169055505050565b600054610100900460ff16806129bd575060005460ff16155b6129d95760405162461bcd60e51b8152600401610a7f9061375c565b600054610100900460ff161580156129fb576000805461ffff19166101011790555b6101f8805460ff191690558015610b05576000805461ff001916905550565b600054610100900460ff1680612a33575060005460ff16155b612a4f5760405162461bcd60e51b8152600401610a7f9061375c565b600054610100900460ff16158015612a71576000805461ffff19166101011790555b612a7c60003361303b565b612a946000805160206139ea8339815191523361303b565b610dbf6000805160206139a38339815191523361303b565b600054610100900460ff1680612ac5575060005460ff16155b612ae15760405162461bcd60e51b8152600401610a7f9061375c565b600054610100900460ff16158015612b03576000805461ffff19166101011790555b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9610194558015610e8b576000805461ff00191690555050565b6000826000018281548110612b5457612b54613887565b9060005260206000200154905092915050565b6000806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03831115612b945750600090506003612c41565b8460ff16601b14158015612bac57508460ff16601c14155b15612bbd5750600090506004612c41565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612c11573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612c3a57600060019250925050612c41565b9150600090505b94509492505050565b6000816004811115612c5e57612c5e6138f6565b1415612c675750565b6001816004811115612c7b57612c7b6138f6565b1415612cc45760405162461bcd60e51b815260206004820152601860248201527745434453413a20696e76616c6964207369676e617475726560401b6044820152606401610a7f565b6002816004811115612cd857612cd86138f6565b1415612d265760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610a7f565b6003816004811115612d3a57612d3a6138f6565b1415612d935760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610a7f565b6004816004811115612da757612da76138f6565b1415610b055760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610a7f565b60606000612e0f83600261390c565b612e1a906002613744565b6001600160401b03811115612e3157612e3161333e565b6040519080825280601f01601f191660200182016040528015612e5b576020820181803683370190505b509050600360fc1b81600081518110612e7657612e76613887565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110612ea557612ea5613887565b60200101906001600160f81b031916908160001a9053506000612ec984600261390c565b612ed4906001613744565b90505b6001811115612f4c576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110612f0857612f08613887565b1a60f81b828281518110612f1e57612f1e613887565b60200101906001600160f81b031916908160001a90535060049490941c93612f458161392b565b9050612ed7565b5083156109c25760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610a7f565b60608315612faa5750816109c2565b825115612fba5782518084602001fd5b8160405162461bcd60e51b8152600401610a7f9190613165565b6101f85460ff1615610a005760405162461bcd60e51b815260206004820152602a60248201527f45524332305061757361626c653a20746f6b656e207472616e736665722077686044820152691a5b19481c185d5cd95960b21b6064820152608401610a7f565b6109e88282610e8b8282612301565b82805461305690613625565b90600052602060002090601f01602090048101928261307857600085556130be565b82601f1061309157805160ff19168380011785556130be565b828001600101855582156130be579182015b828111156130be5782518255916020019190600101906130a3565b506130ca9291506130ce565b5090565b5b808211156130ca57600081556001016130cf565b6000602082840312156130f557600080fd5b81356001600160e01b0319811681146109c257600080fd5b60005b83811015613128578181015183820152602001613110565b838111156122975750506000910152565b6000815180845261315181602086016020860161310d565b601f01601f19169290920160200192915050565b6020815260006109c26020830184613139565b6001600160a01b0381168114610b0557600080fd5b600080604083850312156131a057600080fd5b82356131ab81613178565b946020939093013593505050565b6000806000606084860312156131ce57600080fd5b83356131d981613178565b925060208401356131e981613178565b929592945050506040919091013590565b60006020828403121561320c57600080fd5b5035919050565b6001600160a01b0391909116815260200190565b6000806040838503121561323a57600080fd5b82359150602083013561324c81613178565b809150509250929050565b60006020828403121561326957600080fd5b81356109c281613178565b60008060006060848603121561328957600080fd5b83359250602084013561329b81613178565b915060408401356132ab81613178565b809150509250925092565b600080600080606085870312156132cc57600080fd5b84356132d781613178565b93506020850135925060408501356001600160401b03808211156132fa57600080fd5b818701915087601f83011261330e57600080fd5b81358181111561331d57600080fd5b88602082850101111561332f57600080fd5b95989497505060200194505050565b634e487b7160e01b600052604160045260246000fd5b60006001600160401b038084111561336e5761336e61333e565b604051601f8501601f19908116603f011681019082821181831017156133965761339661333e565b816040528093508581528686860111156133af57600080fd5b858560208301376000602087830101525050509392505050565b600082601f8301126133da57600080fd5b6109c283833560208501613354565b600080604083850312156133fc57600080fd5b82356001600160401b038082111561341357600080fd5b61341f868387016133c9565b9350602085013591508082111561343557600080fd5b50613442858286016133c9565b9150509250929050565b6000806040838503121561345f57600080fd5b823561346a81613178565b915060208301356001600160401b0381111561348557600080fd5b8301601f8101851361349657600080fd5b61344285823560208401613354565b600080604083850312156134b857600080fd5b50508035926020909101359150565b600080600080600080600060e0888a0312156134e257600080fd5b87356134ed81613178565b965060208801356134fd81613178565b95506040880135945060608801359350608088013560ff8116811461352157600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561355157600080fd5b823561355c81613178565b9150602083013561324c81613178565b600080600080600080600060e0888a03121561358757600080fd5b87356001600160401b038082111561359e57600080fd5b6135aa8b838c016133c9565b985060208a01359150808211156135c057600080fd5b506135cd8a828b016133c9565b9650506040880135945060608801356135e581613178565b935060808801356135f581613178565b925060a088013561360581613178565b915060c088013561361581613178565b8091505092959891949750929550565b600181811c9082168061363957607f821691505b6020821081141561203957634e487b7160e01b600052602260045260246000fd5b6020808252602c9082015260008051602061396383398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c9082015260008051602061396383398151915260408201526b6163746976652070726f787960a01b606082015260800190565b9283526001600160a01b03918216602084015216604082015260600190565b805180151581146136fd57600080fd5b919050565b6000806040838503121561371557600080fd5b82519150613725602084016136ed565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b600082198211156137575761375761372e565b500190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252600990820152683737ba1037bbb732b960b91b604082015260600190565b6000602082840312156137df57600080fd5b6109c2826136ed565b6000828210156137fa576137fa61372e565b500390565b8281526040602082015260006111666040830184613139565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b81526000835161384a81601785016020880161310d565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161387b81602884016020880161310d565b01602801949350505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b600082516138c581846020870161310d565b9190910192915050565b60018060a01b03841681528260208201526060604082015260006126a56060830184613139565b634e487b7160e01b600052602160045260246000fd5b60008160001904831182151516156139265761392661372e565b500290565b60008161393a5761393a61372e565b50600019019056fe45524332305072657365744d696e7465725061757365723a206d75737420686146756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65649f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212207b564060e48b454cc2ccc25f9928559624430e62cea50066cf2e3e722928a1f264736f6c63430008080033",
1177
+ "deployedBytecode": "0x60806040526004361061024f5760003560e01c806301ffc9a71461025457806306fdde0314610289578063095ea7b3146102ab57806318160ddd146102cb57806323b872dd146102eb578063248a9ca31461030b5780632c159a1a1461032b5780632f2ff15d14610359578063313ce5671461037b578063355274ea146103975780633644e515146103ae57806336568abe146103c35780633659cfe6146103e357806339364fd71461040357806339509351146104385780633f4ba83a146104585780634000aea01461046d57806340c10f191461048d57806342966c68146104ad57806346904840146104cd57806346fbf68e146104ee5780634b75f54f1461050e5780634cd88b761461052f5780634f1ef2861461054f5780635c975abb146105625780635d5bf1781461057b57806370a082311461059b57806379cc6790146105bb5780637ecebe00146105db57806382dc1ec4146105fb5780638456cb591461061b5780638da5cb5b146106305780639010d07c1461064557806391d148541461066557806395d89b4114610685578063983b2d561461069a57806398650275146106ba578063a217fddf146106cf578063a457c2d7146106e4578063a9059cbb14610704578063aa271e1a14610724578063ca15c87314610744578063d505accf14610764578063d539139314610784578063d547741f146107a6578063d5a06d4c146107c6578063dd62ed3e146107e6578063dea7f1121461082d578063e63ab1e91461084d578063e74b981b1461086f578063ecc06c761461088f578063f2fde38b146108af575b600080fd5b34801561026057600080fd5b5061027461026f3660046130e3565b6108cf565b60405190151581526020015b60405180910390f35b34801561029557600080fd5b5061029e6108fa565b6040516102809190613165565b3480156102b757600080fd5b506102746102c636600461318d565b61098d565b3480156102d757600080fd5b5061012f545b604051908152602001610280565b3480156102f757600080fd5b506102746103063660046131b9565b6109a3565b34801561031757600080fd5b506102dd6103263660046131fa565b6109c9565b34801561033757600080fd5b506102905461034c906001600160a01b031681565b6040516102809190613213565b34801561036557600080fd5b50610379610374366004613227565b6109de565b005b34801561038757600080fd5b5060405160028152602001610280565b3480156103a357600080fd5b506102dd6102915481565b3480156103ba57600080fd5b506102dd610a05565b3480156103cf57600080fd5b506103796103de366004613227565b610a14565b3480156103ef57600080fd5b506103796103fe366004613257565b610a36565b34801561040f57600080fd5b5061042361041e366004613274565b610b08565b60408051928352901515602083015201610280565b34801561044457600080fd5b5061027461045336600461318d565b610b9d565b34801561046457600080fd5b50610379610bda565b34801561047957600080fd5b506102746104883660046132b6565b610c58565b34801561049957600080fd5b506102746104a836600461318d565b610cb3565b3480156104b957600080fd5b506103796104c83660046131fa565b610d3a565b3480156104d957600080fd5b5061028e5461034c906001600160a01b031681565b3480156104fa57600080fd5b50610274610509366004613257565b610d44565b34801561051a57600080fd5b5061028f5461034c906001600160a01b031681565b34801561053b57600080fd5b5061037961054a3660046133e9565b610d5e565b61037961055d36600461344c565b610dd5565b34801561056e57600080fd5b506101f85460ff16610274565b34801561058757600080fd5b50610379610596366004613257565b610e8f565b3480156105a757600080fd5b506102dd6105b6366004613257565b610ed9565b3480156105c757600080fd5b506103796105d636600461318d565b610ef5565b3480156105e757600080fd5b506102dd6105f6366004613257565b610f76565b34801561060757600080fd5b50610379610616366004613257565b610f95565b34801561062757600080fd5b50610379610fad565b34801561063c57600080fd5b5061034c611027565b34801561065157600080fd5b5061034c6106603660046134a5565b61102f565b34801561067157600080fd5b50610274610680366004613227565b611047565b34801561069157600080fd5b5061029e611072565b3480156106a657600080fd5b506103796106b5366004613257565b611082565b3480156106c657600080fd5b5061037961109a565b3480156106db57600080fd5b506102dd600081565b3480156106f057600080fd5b506102746106ff36600461318d565b6110b2565b34801561071057600080fd5b5061027461071f36600461318d565b61114c565b34801561073057600080fd5b5061027461073f366004613257565b61116e565b34801561075057600080fd5b506102dd61075f3660046131fa565b611188565b34801561077057600080fd5b5061037961077f3660046134c7565b61119f565b34801561079057600080fd5b506102dd6000805160206139ea83398151915281565b3480156107b257600080fd5b506103796107c1366004613227565b6112e6565b3480156107d257600080fd5b506104236107e13660046131fa565b6112f0565b3480156107f257600080fd5b506102dd61080136600461353e565b6001600160a01b03918216600090815261012e6020908152604080832093909416825291909152205490565b34801561083957600080fd5b5061037961084836600461356c565b611382565b34801561085957600080fd5b506102dd6000805160206139a383398151915281565b34801561087b57600080fd5b5061037961088a366004613257565b61149d565b34801561089b57600080fd5b506103796108aa366004613257565b6114e7565b3480156108bb57600080fd5b506103796108ca366004613257565b611531565b60006001600160e01b03198216635a05180f60e01b14806108f457506108f48261156e565b92915050565b6060610130805461090a90613625565b80601f016020809104026020016040519081016040528092919081815260200182805461093690613625565b80156109835780601f1061095857610100808354040283529160200191610983565b820191906000526020600020905b81548152906001019060200180831161096657829003601f168201915b5050505050905090565b600061099a3384846115a3565b50600192915050565b6000806109b18585856116c8565b90506109be85858361184b565b9150505b9392505050565b600090815260c9602052604090206001015490565b6109e882826118f6565b600082815260fb60205260409020610a009082611913565b505050565b6000610a0f611928565b905090565b610a1e82826119a5565b600082815260fb60205260409020610a009082611a1f565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610a885760405162461bcd60e51b8152600401610a7f9061365a565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610aba611a34565b6001600160a01b031614610ae05760405162461bcd60e51b8152600401610a7f90613694565b610ae981611a50565b60408051600080825260208201909252610b0591839190611a77565b50565b61028f54604051631eed540360e11b815260009182916001600160a01b0390911690633ddaa80690610b42908890889088906004016136ce565b604080518083038186803b158015610b5957600080fd5b505afa158015610b6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b919190613702565b91509150935093915050565b33600081815261012e602090815260408083206001600160a01b0387168452909152812054909161099a918590610bd5908690613744565b6115a3565b610bf26000805160206139a383398151915233611047565b610c4e5760405162461bcd60e51b8152602060048201526039602482015260008051602061394383398151915260448201527876652070617573657220726f6c6520746f20756e706175736560381b6064820152608401610a7f565b610c56611bbe565b565b600080610c663387876116c8565b9050610ca9868286868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c4d92505050565b9695505050505050565b6102915460009015610d30576102915482610cce61012f5490565b610cd89190613744565b1115610d305760405162461bcd60e51b815260206004820152602160248201527f43616e6e6f7420696e63726561736520737570706c79206265796f6e642063616044820152600760fc1b6064820152608401610a7f565b6109c28383611d02565b610b053382611d7f565b60006108f46000805160206139a383398151915283611047565b600054610100900460ff1680610d77575060005460ff16155b610d935760405162461bcd60e51b8152600401610a7f9061375c565b600054610100900460ff16158015610db5576000805461ffff19166101011790555b610dbf8383611eca565b8015610a00576000805461ff0019169055505050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610e1e5760405162461bcd60e51b8152600401610a7f9061365a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610e50611a34565b6001600160a01b031614610e765760405162461bcd60e51b8152600401610a7f90613694565b610e7f82611a50565b610e8b82826001611a77565b5050565b610e9a600033611047565b610eb65760405162461bcd60e51b8152600401610a7f906137aa565b61029080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0316600090815261012d602052604090205490565b6000610f018333610801565b905081811015610f5f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77604482015263616e636560e01b6064820152608401610a7f565b610f6c83338484036115a3565b610a008383611d7f565b6001600160a01b038116600090815261019360205260408120546108f4565b610b056000805160206139a3833981519152826109de565b610fc56000805160206139a383398151915233611047565b61101f5760405162461bcd60e51b8152602060048201526037602482015260008051602061394383398151915260448201527676652070617573657220726f6c6520746f20706175736560481b6064820152608401610a7f565b610c56611f76565b6000610a0f81805b600082815260fb602052604081206109c29083611ff3565b600091825260c9602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6060610131805461090a90613625565b610b056000805160206139ea833981519152826109de565b610c566000805160206139ea83398151915233610a14565b33600090815261012e602090815260408083206001600160a01b0386168452909152812054828110156111355760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a7f565b61114233858584036115a3565b5060019392505050565b60008061115a3385856116c8565b90506111668482611fff565b949350505050565b60006108f46000805160206139ea83398151915283611047565b600081815260fb602052604081206108f49061200c565b834211156111ef5760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606401610a7f565b6000610194548888886112018c612016565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e001604051602081830303815290604052805190602001209050600061125c8261203f565b9050600061126c8287878761208d565b9050896001600160a01b0316816001600160a01b0316146112cf5760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606401610a7f565b6112da8a8a8a6115a3565b50505050505050505050565b610a1e82826120b5565b61028f54604051631eed540360e11b815260009182916001600160a01b0390911690633ddaa8069061132a908690859081906004016136ce565b604080518083038186803b15801561134157600080fd5b505afa158015611355573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113799190613702565b91509150915091565b600054610100900460ff168061139b575060005460ff16155b6113b75760405162461bcd60e51b8152600401610a7f9061375c565b600054610100900460ff161580156113d9576000805461ffff19166101011790555b6113e38888611eca565b61028e80546001600160a01b038086166001600160a01b031992831617909255610290805487841690831617905561028f8054928816929091169190911790556102918690556114303390565b6001600160a01b0316826001600160a01b0316146114815761145182611531565b6114696000805160206139ea83398151915233610a14565b6114816000805160206139a383398151915233610a14565b8015611493576000805461ff00191690555b5050505050505050565b6114a8600033611047565b6114c45760405162461bcd60e51b8152600401610a7f906137aa565b61028e80546001600160a01b0319166001600160a01b0392909216919091179055565b6114f2600033611047565b61150e5760405162461bcd60e51b8152600401610a7f906137aa565b61028f80546001600160a01b0319166001600160a01b0392909216919091179055565b61153c600033611047565b6115585760405162461bcd60e51b8152600401610a7f906137aa565b6115636000826109de565b610b05600033610a14565b60006001600160e01b03198216637965db0b60e01b14806108f457506301ffc9a760e01b6001600160e01b03198316146108f4565b6001600160a01b0383166116055760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a7f565b6001600160a01b0382166116665760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a7f565b6001600160a01b03838116600081815261012e602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60008060006116d8848787610b08565b9150915060008211801561176a57506102905460405163639e625760e11b81526001600160a01b039091169063c73cc4ae90611718903390600401613213565b60206040518083038186803b15801561173057600080fd5b505afa158015611744573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176891906137cd565b155b156118415780158061178d575061178086610ed9565b61178a8386613744565b11155b6117d95760405162461bcd60e51b815260206004820181905260248201527f4e6f7420656e6f7567682062616c616e636520746f20706179205458206665656044820152606401610a7f565b6001600160a01b0386163314156118075761028e54611801906001600160a01b031683611fff565b50611822565b61028e546118209087906001600160a01b03168461184b565b505b806118365761183182856137e8565b611838565b835b925050506109c2565b5091949350505050565b60006118588484846120d2565b6001600160a01b038416600090815261012e60209081526040808320338452909152902054828110156118de5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610a7f565b6118eb85338584036115a3565b506001949350505050565b6118ff826109c9565b611909813361229d565b610a008383612301565b60006109c2836001600160a01b038416612387565b6000610a0f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61195861015f5490565b610160546040805160208101859052908101839052606081018290524660808201523060a082015260009060c0016040516020818303038152906040528051906020012090509392505050565b6001600160a01b0381163314611a155760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610a7f565b610e8b82826123d6565b60006109c2836001600160a01b03841661243d565b600080516020613983833981519152546001600160a01b031690565b611a5b600033611047565b610b055760405162461bcd60e51b8152600401610a7f906137aa565b6000611a81611a34565b9050611a8c84612530565b600083511180611a995750815b15611aaa57611aa884846125c3565b505b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143805460ff16611bb757805460ff19166001178155604051611b25908690611af6908590602401613213565b60408051601f198184030181529190526020810180516001600160e01b0316631b2ce7f360e11b1790526125c3565b50805460ff19168155611b36611a34565b6001600160a01b0316826001600160a01b031614611bae5760405162461bcd60e51b815260206004820152602f60248201527f45524331393637557067726164653a207570677261646520627265616b73206660448201526e75727468657220757067726164657360881b6064820152608401610a7f565b611bb7856126ae565b5050505050565b6101f85460ff16611c085760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610a7f565b6101f8805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b604051611c439190613213565b60405180910390a1565b600080611c5a858561114c565b9050846001600160a01b0316336001600160a01b03167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c168686604051611ca19291906137ff565b60405180910390a3843b1561116657611cbb8585856126ee565b6111665760405162461bcd60e51b815260206004820152601860248201527710dbdb9d1c9858dd0819985b1b189858dac819985a5b195960421b6044820152606401610a7f565b6000611d1c6000805160206139ea83398151915233611047565b611d755760405162461bcd60e51b815260206004820152603660248201526000805160206139438339815191526044820152751d99481b5a5b9d195c881c9bdb19481d1bc81b5a5b9d60521b6064820152608401610a7f565b61099a83836127bc565b6001600160a01b038216611ddf5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610a7f565b611deb82600083612897565b6001600160a01b038216600090815261012d602052604090205481811015611e605760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610a7f565b6001600160a01b038316600090815261012d60205260408120838303905561012f8054849290611e919084906137e8565b90915550506040518281526000906001600160a01b03851690600080516020613a0a8339815191529060200160405180910390a3505050565b600054610100900460ff1680611ee3575060005460ff16155b611eff5760405162461bcd60e51b8152600401610a7f9061375c565b600054610100900460ff16158015611f21576000805461ffff19166101011790555b611f296128a2565b611f316128a2565b611f396128a2565b611f416128a2565b611f4b838361290d565b611f536128a2565b611f5b6129a4565b611f636128a2565b611f6d8383612a1a565b610dbf83612aac565b6101f85460ff1615611fbd5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610a7f565b6101f8805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611c363390565b60006109c28383612b3d565b600061099a3384846120d2565b60006108f4825490565b6001600160a01b0381166000908152610193602052604090208054600181018255905b50919050565b60006108f461204c611928565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b600080600061209e87878787612b67565b915091506120ab81612c4a565b5095945050505050565b6120be826109c9565b6120c8813361229d565b610a0083836123d6565b6001600160a01b0383166121365760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a7f565b6001600160a01b0382166121985760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a7f565b6121a3838383612897565b6001600160a01b038316600090815261012d60205260409020548181101561221c5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a7f565b6001600160a01b03808516600090815261012d6020526040808220858503905591851681529081208054849290612254908490613744565b92505081905550826001600160a01b0316846001600160a01b0316600080516020613a0a8339815191528460405161228e91815260200190565b60405180910390a35b50505050565b6122a78282611047565b610e8b576122bf816001600160a01b03166014612e00565b6122ca836020612e00565b6040516020016122db929190613818565b60408051601f198184030181529082905262461bcd60e51b8252610a7f91600401613165565b61230b8282611047565b610e8b57600082815260c9602090815260408083206001600160a01b03851684529091529020805460ff191660011790556123433390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008181526001830160205260408120546123ce575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556108f4565b5060006108f4565b6123e08282611047565b15610e8b57600082815260c9602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600081815260018301602052604081205480156125265760006124616001836137e8565b8554909150600090612475906001906137e8565b90508181146124da57600086600001828154811061249557612495613887565b90600052602060002001549050808760000184815481106124b8576124b8613887565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806124eb576124eb61389d565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506108f4565b60009150506108f4565b803b6125945760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610a7f565b60008051602061398383398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060823b6126225760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610a7f565b600080846001600160a01b03168460405161263d91906138b3565b600060405180830381855af49150503d8060008114612678576040519150601f19603f3d011682016040523d82523d6000602084013e61267d565b606091505b50915091506126a582826040518060600160405280602781526020016139c360279139612f9b565b95945050505050565b6126b781612530565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b604051635260769b60e11b815260009084906001600160a01b0382169063a4c0ed3690612723903390889088906004016138cf565b602060405180830381600087803b15801561273d57600080fd5b505af1158015612751573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061277591906137cd565b6118eb5760405162461bcd60e51b815260206004820152601860248201527710dbdb9d1c9858dd0811985b1b189858dac819985a5b195960421b6044820152606401610a7f565b6001600160a01b0382166128125760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610a7f565b61281e60008383612897565b8061012f60008282546128319190613744565b90915550506001600160a01b038216600090815261012d60205260408120805483929061285f908490613744565b90915550506040518181526001600160a01b03831690600090600080516020613a0a8339815191529060200160405180910390a35050565b610a00838383612fd4565b600054610100900460ff16806128bb575060005460ff16155b6128d75760405162461bcd60e51b8152600401610a7f9061375c565b600054610100900460ff161580156128f9576000805461ffff19166101011790555b8015610b05576000805461ff001916905550565b600054610100900460ff1680612926575060005460ff16155b6129425760405162461bcd60e51b8152600401610a7f9061375c565b600054610100900460ff16158015612964576000805461ffff19166101011790555b82516129789061013090602086019061304a565b50815161298d9061013190602085019061304a565b508015610a00576000805461ff0019169055505050565b600054610100900460ff16806129bd575060005460ff16155b6129d95760405162461bcd60e51b8152600401610a7f9061375c565b600054610100900460ff161580156129fb576000805461ffff19166101011790555b6101f8805460ff191690558015610b05576000805461ff001916905550565b600054610100900460ff1680612a33575060005460ff16155b612a4f5760405162461bcd60e51b8152600401610a7f9061375c565b600054610100900460ff16158015612a71576000805461ffff19166101011790555b612a7c60003361303b565b612a946000805160206139ea8339815191523361303b565b610dbf6000805160206139a38339815191523361303b565b600054610100900460ff1680612ac5575060005460ff16155b612ae15760405162461bcd60e51b8152600401610a7f9061375c565b600054610100900460ff16158015612b03576000805461ffff19166101011790555b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9610194558015610e8b576000805461ff00191690555050565b6000826000018281548110612b5457612b54613887565b9060005260206000200154905092915050565b6000806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03831115612b945750600090506003612c41565b8460ff16601b14158015612bac57508460ff16601c14155b15612bbd5750600090506004612c41565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612c11573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612c3a57600060019250925050612c41565b9150600090505b94509492505050565b6000816004811115612c5e57612c5e6138f6565b1415612c675750565b6001816004811115612c7b57612c7b6138f6565b1415612cc45760405162461bcd60e51b815260206004820152601860248201527745434453413a20696e76616c6964207369676e617475726560401b6044820152606401610a7f565b6002816004811115612cd857612cd86138f6565b1415612d265760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610a7f565b6003816004811115612d3a57612d3a6138f6565b1415612d935760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610a7f565b6004816004811115612da757612da76138f6565b1415610b055760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610a7f565b60606000612e0f83600261390c565b612e1a906002613744565b6001600160401b03811115612e3157612e3161333e565b6040519080825280601f01601f191660200182016040528015612e5b576020820181803683370190505b509050600360fc1b81600081518110612e7657612e76613887565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110612ea557612ea5613887565b60200101906001600160f81b031916908160001a9053506000612ec984600261390c565b612ed4906001613744565b90505b6001811115612f4c576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110612f0857612f08613887565b1a60f81b828281518110612f1e57612f1e613887565b60200101906001600160f81b031916908160001a90535060049490941c93612f458161392b565b9050612ed7565b5083156109c25760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610a7f565b60608315612faa5750816109c2565b825115612fba5782518084602001fd5b8160405162461bcd60e51b8152600401610a7f9190613165565b6101f85460ff1615610a005760405162461bcd60e51b815260206004820152602a60248201527f45524332305061757361626c653a20746f6b656e207472616e736665722077686044820152691a5b19481c185d5cd95960b21b6064820152608401610a7f565b6109e88282610e8b8282612301565b82805461305690613625565b90600052602060002090601f01602090048101928261307857600085556130be565b82601f1061309157805160ff19168380011785556130be565b828001600101855582156130be579182015b828111156130be5782518255916020019190600101906130a3565b506130ca9291506130ce565b5090565b5b808211156130ca57600081556001016130cf565b6000602082840312156130f557600080fd5b81356001600160e01b0319811681146109c257600080fd5b60005b83811015613128578181015183820152602001613110565b838111156122975750506000910152565b6000815180845261315181602086016020860161310d565b601f01601f19169290920160200192915050565b6020815260006109c26020830184613139565b6001600160a01b0381168114610b0557600080fd5b600080604083850312156131a057600080fd5b82356131ab81613178565b946020939093013593505050565b6000806000606084860312156131ce57600080fd5b83356131d981613178565b925060208401356131e981613178565b929592945050506040919091013590565b60006020828403121561320c57600080fd5b5035919050565b6001600160a01b0391909116815260200190565b6000806040838503121561323a57600080fd5b82359150602083013561324c81613178565b809150509250929050565b60006020828403121561326957600080fd5b81356109c281613178565b60008060006060848603121561328957600080fd5b83359250602084013561329b81613178565b915060408401356132ab81613178565b809150509250925092565b600080600080606085870312156132cc57600080fd5b84356132d781613178565b93506020850135925060408501356001600160401b03808211156132fa57600080fd5b818701915087601f83011261330e57600080fd5b81358181111561331d57600080fd5b88602082850101111561332f57600080fd5b95989497505060200194505050565b634e487b7160e01b600052604160045260246000fd5b60006001600160401b038084111561336e5761336e61333e565b604051601f8501601f19908116603f011681019082821181831017156133965761339661333e565b816040528093508581528686860111156133af57600080fd5b858560208301376000602087830101525050509392505050565b600082601f8301126133da57600080fd5b6109c283833560208501613354565b600080604083850312156133fc57600080fd5b82356001600160401b038082111561341357600080fd5b61341f868387016133c9565b9350602085013591508082111561343557600080fd5b50613442858286016133c9565b9150509250929050565b6000806040838503121561345f57600080fd5b823561346a81613178565b915060208301356001600160401b0381111561348557600080fd5b8301601f8101851361349657600080fd5b61344285823560208401613354565b600080604083850312156134b857600080fd5b50508035926020909101359150565b600080600080600080600060e0888a0312156134e257600080fd5b87356134ed81613178565b965060208801356134fd81613178565b95506040880135945060608801359350608088013560ff8116811461352157600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561355157600080fd5b823561355c81613178565b9150602083013561324c81613178565b600080600080600080600060e0888a03121561358757600080fd5b87356001600160401b038082111561359e57600080fd5b6135aa8b838c016133c9565b985060208a01359150808211156135c057600080fd5b506135cd8a828b016133c9565b9650506040880135945060608801356135e581613178565b935060808801356135f581613178565b925060a088013561360581613178565b915060c088013561361581613178565b8091505092959891949750929550565b600181811c9082168061363957607f821691505b6020821081141561203957634e487b7160e01b600052602260045260246000fd5b6020808252602c9082015260008051602061396383398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c9082015260008051602061396383398151915260408201526b6163746976652070726f787960a01b606082015260800190565b9283526001600160a01b03918216602084015216604082015260600190565b805180151581146136fd57600080fd5b919050565b6000806040838503121561371557600080fd5b82519150613725602084016136ed565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b600082198211156137575761375761372e565b500190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252600990820152683737ba1037bbb732b960b91b604082015260600190565b6000602082840312156137df57600080fd5b6109c2826136ed565b6000828210156137fa576137fa61372e565b500390565b8281526040602082015260006111666040830184613139565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b81526000835161384a81601785016020880161310d565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161387b81602884016020880161310d565b01602801949350505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b600082516138c581846020870161310d565b9190910192915050565b60018060a01b03841681528260208201526060604082015260006126a56060830184613139565b634e487b7160e01b600052602160045260246000fd5b60008160001904831182151516156139265761392661372e565b500290565b60008161393a5761393a61372e565b50600019019056fe45524332305072657365744d696e7465725061757365723a206d75737420686146756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65649f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212207b564060e48b454cc2ccc25f9928559624430e62cea50066cf2e3e722928a1f264736f6c63430008080033",
1178
+ "linkReferences": {},
1179
+ "deployedLinkReferences": {}
1180
+ }