@gooddollar/goodprotocol 2.1.3 → 2.2.0-beta.1

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 (318) hide show
  1. package/README.md +0 -2
  2. package/artifacts/abis/IdentityV4.min.json +1 -0
  3. package/artifacts/contracts/DAOStackInterfaces.sol/Avatar.dbg.json +1 -1
  4. package/artifacts/contracts/DAOStackInterfaces.sol/Controller.dbg.json +1 -1
  5. package/artifacts/contracts/DAOStackInterfaces.sol/GlobalConstraintInterface.dbg.json +1 -1
  6. package/artifacts/contracts/DAOStackInterfaces.sol/IntVoteInterface.dbg.json +1 -1
  7. package/artifacts/contracts/DAOStackInterfaces.sol/ReputationInterface.dbg.json +1 -1
  8. package/artifacts/contracts/DAOStackInterfaces.sol/SchemeRegistrar.dbg.json +1 -1
  9. package/artifacts/contracts/IUniswapV3.sol/INonfungiblePositionManager.dbg.json +1 -1
  10. package/artifacts/contracts/IUniswapV3.sol/IUniswapV3Pool.dbg.json +1 -1
  11. package/artifacts/contracts/Interfaces.sol/AggregatorV3Interface.dbg.json +1 -1
  12. package/artifacts/contracts/Interfaces.sol/ERC20.dbg.json +1 -1
  13. package/artifacts/contracts/Interfaces.sol/IAaveIncentivesController.dbg.json +1 -1
  14. package/artifacts/contracts/Interfaces.sol/IAdminWallet.dbg.json +1 -1
  15. package/artifacts/contracts/Interfaces.sol/IDonationStaking.dbg.json +1 -1
  16. package/artifacts/contracts/Interfaces.sol/IERC2917.dbg.json +1 -1
  17. package/artifacts/contracts/Interfaces.sol/IFirstClaimPool.dbg.json +1 -1
  18. package/artifacts/contracts/Interfaces.sol/IGoodDollar.dbg.json +1 -1
  19. package/artifacts/contracts/Interfaces.sol/IGoodStaking.dbg.json +1 -1
  20. package/artifacts/contracts/Interfaces.sol/IHasRouter.dbg.json +1 -1
  21. package/artifacts/contracts/Interfaces.sol/IIdentity.dbg.json +1 -1
  22. package/artifacts/contracts/Interfaces.sol/IIdentityV2.dbg.json +1 -1
  23. package/artifacts/contracts/Interfaces.sol/ILendingPool.dbg.json +1 -1
  24. package/artifacts/contracts/Interfaces.sol/IMultichainRouter.dbg.json +1 -1
  25. package/artifacts/contracts/Interfaces.sol/INameService.dbg.json +1 -1
  26. package/artifacts/contracts/Interfaces.sol/IQuoterV2.dbg.json +1 -1
  27. package/artifacts/contracts/Interfaces.sol/ISwapRouter.dbg.json +1 -1
  28. package/artifacts/contracts/Interfaces.sol/IUBIScheme.dbg.json +1 -1
  29. package/artifacts/contracts/Interfaces.sol/ProxyAdmin.dbg.json +1 -1
  30. package/artifacts/contracts/Interfaces.sol/Reserve.dbg.json +1 -1
  31. package/artifacts/contracts/Interfaces.sol/Staking.dbg.json +1 -1
  32. package/artifacts/contracts/Interfaces.sol/Uniswap.dbg.json +1 -1
  33. package/artifacts/contracts/Interfaces.sol/UniswapFactory.dbg.json +1 -1
  34. package/artifacts/contracts/Interfaces.sol/UniswapPair.dbg.json +1 -1
  35. package/artifacts/contracts/Interfaces.sol/cERC20.dbg.json +1 -1
  36. package/artifacts/contracts/MentoInterfaces.sol/IBancorExchangeProvider.dbg.json +1 -1
  37. package/artifacts/contracts/MentoInterfaces.sol/IBroker.dbg.json +1 -1
  38. package/artifacts/contracts/MentoInterfaces.sol/IGoodDollarExchangeProvider.dbg.json +1 -1
  39. package/artifacts/contracts/MentoInterfaces.sol/IGoodDollarExpansionController.dbg.json +1 -1
  40. package/artifacts/contracts/MentoInterfaces.sol/IMentoReserve.dbg.json +1 -1
  41. package/artifacts/contracts/MentoInterfaces.sol/ITradingLimits.dbg.json +1 -1
  42. package/artifacts/contracts/fuseFaucet/Faucet.sol/Faucet.dbg.json +1 -1
  43. package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.dbg.json +1 -1
  44. package/artifacts/contracts/fuseFaucet/FuseFaucetV2.sol/FuseFaucetV2.dbg.json +1 -1
  45. package/artifacts/contracts/fuseFaucet/SuperfluidFacuet.sol/SuperfluidFaucet.dbg.json +1 -1
  46. package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.dbg.json +1 -1
  47. package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.dbg.json +1 -1
  48. package/artifacts/contracts/governance/GReputation.sol/GReputation.dbg.json +1 -1
  49. package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.dbg.json +1 -1
  50. package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.json +2 -2
  51. package/artifacts/contracts/governance/GoodDollarStaking.sol/IGovernanceStaking.dbg.json +1 -1
  52. package/artifacts/contracts/governance/GoodDollarStaking.sol/IStakingUpgrade.dbg.json +1 -1
  53. package/artifacts/contracts/governance/GoodDollarStaking.sol/RewardsMinter.dbg.json +1 -1
  54. package/artifacts/contracts/governance/GovernanceStaking.sol/GovernanceStaking.dbg.json +1 -1
  55. package/artifacts/contracts/governance/MultiBaseGovernanceShareField.sol/MultiBaseGovernanceShareField.dbg.json +1 -1
  56. package/artifacts/contracts/governance/Reputation.sol/Reputation.dbg.json +1 -1
  57. package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.dbg.json +1 -1
  58. package/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.dbg.json +1 -1
  59. package/artifacts/contracts/identity/IdentityV3.sol/IdentityV3.dbg.json +1 -1
  60. package/artifacts/contracts/identity/IdentityV3.sol/IdentityV3.json +2 -2
  61. package/artifacts/contracts/identity/IdentityV4.sol/IdentityV4.dbg.json +4 -0
  62. package/artifacts/contracts/identity/IdentityV4.sol/IdentityV4.json +1162 -0
  63. package/artifacts/contracts/invite/InvitesFuseV2.sol/InvitesFuseV2.dbg.json +1 -1
  64. package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.dbg.json +1 -1
  65. package/artifacts/contracts/invite/InvitesV2.sol/InvitesV2.dbg.json +1 -1
  66. package/artifacts/contracts/invite/OneTimeReward.sol/OneTimeReward.dbg.json +1 -1
  67. package/artifacts/contracts/mocks/AaveMock.sol/AaveMock.dbg.json +1 -1
  68. package/artifacts/contracts/mocks/AaveUSDMockOracle.sol/AaveUSDMockOracle.dbg.json +1 -1
  69. package/artifacts/contracts/mocks/BatUSDMockOracle.sol/BatUSDMockOracle.dbg.json +1 -1
  70. package/artifacts/contracts/mocks/CeloDistributionHelperTest.sol/CeloDistributionHelperTest.dbg.json +1 -1
  71. package/artifacts/contracts/mocks/CeloDistributionHelperTest.sol/CeloDistributionHelperTestHelper.dbg.json +1 -1
  72. package/artifacts/contracts/mocks/CompUsdMockOracle.sol/CompUSDMockOracle.dbg.json +1 -1
  73. package/artifacts/contracts/mocks/DAIMock.sol/DAIMock.dbg.json +1 -1
  74. package/artifacts/contracts/mocks/DaiEthPriceMockOracle.sol/DaiEthPriceMockOracle.dbg.json +1 -1
  75. package/artifacts/contracts/mocks/DecimalsMock.sol/DecimalsMock.dbg.json +1 -1
  76. package/artifacts/contracts/mocks/DistributionBridgeMock.sol/DistributionBridgeMock.dbg.json +1 -1
  77. package/artifacts/contracts/mocks/DistributionBridgeMock.sol/DistributionBridgeMock.json +2 -2
  78. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest.dbg.json +1 -1
  79. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.dbg.json +1 -1
  80. package/artifacts/contracts/mocks/EthUSDMockOracle.sol/EthUSDMockOracle.dbg.json +1 -1
  81. package/artifacts/contracts/mocks/FeesFormularMock.sol/FeesFormulaMock.dbg.json +1 -1
  82. package/artifacts/contracts/mocks/GasPriceMockOracle.sol/GasPriceMockOracle.dbg.json +1 -1
  83. package/artifacts/contracts/mocks/GenericDistributionHelperTest.sol/GenericDistributionHelperTest.dbg.json +1 -1
  84. package/artifacts/contracts/mocks/GenericDistributionHelperTest.sol/GenericDistributionHelperTestHelper.dbg.json +1 -1
  85. package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.dbg.json +1 -1
  86. package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.dbg.json +1 -1
  87. package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.json +2 -2
  88. package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.dbg.json +1 -1
  89. package/artifacts/contracts/mocks/IdentityMock.sol/IdentityMock.dbg.json +1 -1
  90. package/artifacts/contracts/mocks/IncentiveControllerMock.sol/IncentiveControllerMock.dbg.json +1 -1
  91. package/artifacts/contracts/mocks/LendingPoolMock.sol/LendingPoolMock.dbg.json +1 -1
  92. package/artifacts/contracts/mocks/MultichainRouterMock.sol/IWrapper.dbg.json +1 -1
  93. package/artifacts/contracts/mocks/MultichainRouterMock.sol/MultichainRouterMock.dbg.json +1 -1
  94. package/artifacts/contracts/mocks/MultichainRouterMock.sol/MultichainRouterMock.json +2 -2
  95. package/artifacts/contracts/mocks/OverMintTester.sol/IGoodDollarStakingTest.dbg.json +1 -1
  96. package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.dbg.json +1 -1
  97. package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.dbg.json +1 -1
  98. package/artifacts/contracts/mocks/PayableMock.sol/PayableMock.dbg.json +1 -1
  99. package/artifacts/contracts/mocks/SixteenDecimalsTokenMock.sol/SixteenDecimalsTokenMock.dbg.json +1 -1
  100. package/artifacts/contracts/mocks/StakingMockFixedAPY.sol/StakingMockFixedAPY.dbg.json +1 -1
  101. package/artifacts/contracts/mocks/StakingMockFixedAPY.sol/StakingMockFixedAPY.json +2 -2
  102. package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.dbg.json +1 -1
  103. package/artifacts/contracts/mocks/TwentyDecimalsTokenMock.sol/TwentyDecimalsTokenMock.dbg.json +1 -1
  104. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.dbg.json +1 -1
  105. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.dbg.json +1 -1
  106. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.dbg.json +1 -1
  107. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.dbg.json +1 -1
  108. package/artifacts/contracts/mocks/UsdcMock.sol/USDCMock.dbg.json +1 -1
  109. package/artifacts/contracts/mocks/cBATMock.sol/cBATMock.dbg.json +1 -1
  110. package/artifacts/contracts/mocks/cDAILowWorthMock.sol/cDAILowWorthMock.dbg.json +1 -1
  111. package/artifacts/contracts/mocks/cDAIMock.sol/cDAIMock.dbg.json +1 -1
  112. package/artifacts/contracts/mocks/cDAINonMintableMock.sol/cDAINonMintableMock.dbg.json +1 -1
  113. package/artifacts/contracts/mocks/cDecimalsMock.sol/cDecimalsMock.dbg.json +1 -1
  114. package/artifacts/contracts/mocks/cSDTMock.sol/cSDTMock.dbg.json +1 -1
  115. package/artifacts/contracts/mocks/cUSDCMock.sol/cUSDCMock.dbg.json +1 -1
  116. package/artifacts/contracts/reserve/CeloDistributionHelper.sol/CeloDistributionHelper.dbg.json +1 -1
  117. package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.dbg.json +1 -1
  118. package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.dbg.json +1 -1
  119. package/artifacts/contracts/reserve/GenericDistributionHelper.sol/GenericDistributionHelper.dbg.json +1 -1
  120. package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.dbg.json +1 -1
  121. package/artifacts/contracts/reserve/GoodReserveCDai.sol/ContributionCalc.dbg.json +1 -1
  122. package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.dbg.json +1 -1
  123. package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.dbg.json +1 -1
  124. package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.dbg.json +1 -1
  125. package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.dbg.json +1 -1
  126. package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.dbg.json +1 -1
  127. package/artifacts/contracts/staking/FuseStakingV3.sol/IConsensus.dbg.json +1 -1
  128. package/artifacts/contracts/staking/FuseStakingV3.sol/PegSwap.dbg.json +1 -1
  129. package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.dbg.json +1 -1
  130. package/artifacts/contracts/staking/SimpleStaking.sol/SimpleStaking.dbg.json +1 -1
  131. package/artifacts/contracts/staking/SimpleStakingV2.sol/SimpleStakingV2.dbg.json +1 -1
  132. package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.dbg.json +1 -1
  133. package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.dbg.json +1 -1
  134. package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.dbg.json +1 -1
  135. package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.dbg.json +1 -1
  136. package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.dbg.json +1 -1
  137. package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.dbg.json +1 -1
  138. package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.dbg.json +1 -1
  139. package/artifacts/contracts/staking/utils/Math64X64.sol/Math64x64.dbg.json +1 -1
  140. package/artifacts/contracts/staking/utils/StakingRewardsFixedAPY.sol/StakingRewardsFixedAPY.dbg.json +1 -1
  141. package/artifacts/contracts/token/ERC20PresetMinterPauserUpgradeable.sol/ERC20PresetMinterPauserUpgradeable.dbg.json +1 -1
  142. package/artifacts/contracts/token/ERC677.sol/ERC677.dbg.json +1 -1
  143. package/artifacts/contracts/token/ERC677.sol/ERC677Receiver.dbg.json +1 -1
  144. package/artifacts/contracts/token/GoodDollar.sol/GoodDollar.dbg.json +1 -1
  145. package/artifacts/contracts/token/GoodDollar2.sol/GoodDollar2.dbg.json +1 -1
  146. package/artifacts/contracts/token/IFeesFormula.sol/IFeesFormula.dbg.json +1 -1
  147. package/artifacts/contracts/token/MultichainFeeFormula.sol/MultichainFeeFormula.dbg.json +1 -1
  148. package/artifacts/contracts/token/superfluid/ERC20Permit.sol/ERC20Permit.dbg.json +1 -1
  149. package/artifacts/contracts/token/superfluid/ERC20Permit.sol/SelfApprove.dbg.json +1 -1
  150. package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/IGoodDollarCustom.dbg.json +1 -1
  151. package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/ISuperGoodDollar.dbg.json +1 -1
  152. package/artifacts/contracts/token/superfluid/ISuperToken.sol/ISuperToken.dbg.json +1 -1
  153. package/artifacts/contracts/token/superfluid/SuperGoodDollar.sol/SuperGoodDollar.dbg.json +1 -1
  154. package/artifacts/contracts/token/superfluid/SuperToken.sol/SuperToken.dbg.json +1 -1
  155. package/artifacts/contracts/token/superfluid/SuperfluidToken.sol/SuperfluidToken.dbg.json +1 -1
  156. package/artifacts/contracts/token/superfluid/UUPSProxiable.sol/UUPSProxiable.dbg.json +1 -1
  157. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/Proxy.dbg.json +1 -1
  158. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSProxy.dbg.json +1 -1
  159. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSUtils.dbg.json +1 -1
  160. package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.dbg.json +1 -1
  161. package/artifacts/contracts/ubi/UBISchemeV2.sol/UBISchemeV2.dbg.json +1 -1
  162. package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.dbg.json +1 -1
  163. package/artifacts/contracts/utils/AdminWalletFuse.sol/AdminWalletFuse.dbg.json +1 -1
  164. package/artifacts/contracts/utils/BancorFormula.sol/BancorFormula.dbg.json +1 -1
  165. package/artifacts/contracts/utils/BulkProof.sol/BulkProof.dbg.json +1 -1
  166. package/artifacts/contracts/utils/BulkWhitelist.sol/BulkWhitelist.dbg.json +1 -1
  167. package/artifacts/contracts/utils/BuyAndBridgeHelper.sol/BuyAndBridgeHelper.dbg.json +1 -1
  168. package/artifacts/contracts/utils/BuyFromReserveHelper.sol/BuyFromReserveHelper.dbg.json +1 -1
  169. package/artifacts/contracts/utils/BuyGDClone.sol/BuyGDClone.dbg.json +1 -1
  170. package/artifacts/contracts/utils/BuyGDClone.sol/BuyGDCloneFactory.dbg.json +1 -1
  171. package/artifacts/contracts/utils/BuyGDClone.sol/DonateGDClone.dbg.json +1 -1
  172. package/artifacts/contracts/utils/DAOContract.sol/DAOContract.dbg.json +1 -1
  173. package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.dbg.json +1 -1
  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/FuseOldBridgeKill.sol/EternalStorage.dbg.json +1 -1
  177. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/FuseOldBridgeKill.dbg.json +1 -1
  178. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/IUpgradeabilityOwnerStorage.dbg.json +1 -1
  179. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/Initializable.dbg.json +1 -1
  180. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/Ownable.dbg.json +1 -1
  181. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/Upgradeable.dbg.json +1 -1
  182. package/artifacts/contracts/utils/GDFaucet.sol/GDFaucet.dbg.json +1 -1
  183. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.dbg.json +1 -1
  184. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/IRouter.dbg.json +1 -1
  185. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/PausableControl.dbg.json +1 -1
  186. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/TokenOperation.dbg.json +1 -1
  187. package/artifacts/contracts/utils/IdentityFix.sol/IdentityFix.dbg.json +1 -1
  188. package/artifacts/contracts/utils/LastauthReduction.sol/LastauthReduction.dbg.json +1 -1
  189. package/artifacts/contracts/utils/LastauthReduction.sol/LastauthReduction.json +2 -2
  190. package/artifacts/contracts/utils/MultiCall.sol/Multicall.dbg.json +1 -1
  191. package/artifacts/contracts/utils/MultichainBridgeHelper.sol/MultichainBridgeHelper.dbg.json +1 -1
  192. package/artifacts/contracts/utils/NameService.sol/NameService.dbg.json +1 -1
  193. package/artifacts/contracts/utils/OneTimePayments.sol/OneTimePayments.dbg.json +1 -1
  194. package/artifacts/contracts/utils/OneTimePaymentsV2.sol/OneTimePaymentsV2.dbg.json +1 -1
  195. package/artifacts/contracts/utils/ProtoclUpgradeV4Mento.sol/MentoExchange.dbg.json +1 -1
  196. package/artifacts/contracts/utils/ProtoclUpgradeV4Mento.sol/ProtocolUpgradeV4Mento.dbg.json +1 -1
  197. package/artifacts/contracts/utils/ProtocolUpgrade.sol/OldMarketMaker.dbg.json +1 -1
  198. package/artifacts/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade.dbg.json +1 -1
  199. package/artifacts/contracts/utils/ProtocolUpgradeFuse.sol/ProtocolUpgradeFuse.dbg.json +1 -1
  200. package/artifacts/contracts/utils/ProtocolUpgradeFuseRecover.sol/ProtocolUpgradeFuseRecover.dbg.json +1 -1
  201. package/artifacts/contracts/utils/ProtocolUpgradeRecover.sol/ProtocolUpgradeRecover.dbg.json +1 -1
  202. package/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.dbg.json +1 -1
  203. package/artifacts/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967.dbg.json +1 -1
  204. package/artifacts/contracts/utils/ReputationTestHelper.sol/ReputationTestHelper.dbg.json +1 -1
  205. package/artifacts/contracts/utils/ReserveRestore.sol/ReserveRestore.dbg.json +1 -1
  206. package/artifacts/contracts/utils/ReserveRestore.sol/ReserveRestore.json +2 -2
  207. package/contracts/identity/IdentityV3.sol +0 -3
  208. package/contracts/identity/IdentityV4.sol +578 -0
  209. package/hardhat.config.ts +3 -4
  210. package/package.json +8 -4
  211. package/test/governance/ClaimersDistribution.test.ts +1 -1
  212. package/test/governance/CompoundVotingMachine.castvote.test.ts +30 -30
  213. package/test/helpers.ts +76 -195
  214. package/test/identity/IdentityV3.test.ts +53 -129
  215. package/test/identity/IdentityV4.test.ts +454 -0
  216. package/test/reserve/GenericDistributionHelper.e2e.test.ts +445 -0
  217. package/test/utils/AdminWallet.test.ts +14 -15
  218. package/types/contracts/identity/IdentityV4.ts +2001 -0
  219. package/types/contracts/identity/index.ts +1 -0
  220. package/types/contracts/utils/UpdateReserveRatio.sol/MentoExchange.ts +81 -0
  221. package/types/contracts/utils/UpdateReserveRatio.sol/UpdateReserveRatio.ts +134 -0
  222. package/types/contracts/utils/UpdateReserveRatio.sol/index.ts +5 -0
  223. package/types/contracts/utils/UpdateReserveRatioAfterXDC.sol/UpdateReserveRatioAfterXDC.ts +7 -2
  224. package/types/contracts/utils/index.ts +2 -2
  225. package/types/factories/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking__factory.ts +1 -1
  226. package/types/factories/contracts/identity/IdentityV3__factory.ts +1 -1
  227. package/types/factories/contracts/identity/IdentityV4__factory.ts +1213 -0
  228. package/types/factories/contracts/identity/index.ts +1 -0
  229. package/types/factories/contracts/mocks/DistributionBridgeMock__factory.ts +1 -1
  230. package/types/factories/contracts/mocks/GoodDollarStakingMock__factory.ts +1 -1
  231. package/types/factories/contracts/mocks/MultichainRouterMock.sol/MultichainRouterMock__factory.ts +1 -1
  232. package/types/factories/contracts/mocks/StakingMockFixedAPY__factory.ts +1 -1
  233. package/types/factories/contracts/utils/LastauthReduction__factory.ts +1 -1
  234. package/types/factories/contracts/utils/ReserveRestore__factory.ts +1 -1
  235. package/types/factories/contracts/utils/UpdateReserveRatio.sol/MentoExchange__factory.ts +39 -0
  236. package/types/factories/contracts/utils/UpdateReserveRatio.sol/UpdateReserveRatio__factory.ts +113 -0
  237. package/types/factories/contracts/utils/UpdateReserveRatio.sol/index.ts +5 -0
  238. package/types/factories/contracts/utils/UpdateReserveRatioAfterXDC.sol/UpdateReserveRatioAfterXDC__factory.ts +9 -15
  239. package/types/factories/contracts/utils/index.ts +1 -1
  240. package/types/hardhat.d.ts +13 -4
  241. package/types/index.ts +4 -2
  242. package/scripts/ProxyFactory.json +0 -4425
  243. package/scripts/analytics/activeGDStakers.ts +0 -188
  244. package/scripts/analytics/activeStakers.ts +0 -25
  245. package/scripts/analytics/activeUsersCount.ts +0 -156
  246. package/scripts/analytics/activeWalletsStats.ts +0 -301
  247. package/scripts/analytics/checkActiveWallets.ts +0 -60
  248. package/scripts/analytics/checkBridgeBalances.ts +0 -442
  249. package/scripts/analytics/claimIncidentStats.ts +0 -98
  250. package/scripts/analytics/faucetStats.ts +0 -130
  251. package/scripts/analytics/gdinflow.ts +0 -57
  252. package/scripts/analytics/goodHolders.ts +0 -46
  253. package/scripts/analytics/goodgiveback.ts +0 -64
  254. package/scripts/analytics/p2pTxs.ts +0 -564
  255. package/scripts/analytics/stuckgd.ts +0 -70
  256. package/scripts/analytics/tokenInOutStats.ts +0 -48
  257. package/scripts/analytics/whitelistsyncIssue.ts +0 -87
  258. package/scripts/bulkProof.ts +0 -202
  259. package/scripts/bulkWhitelist.ts +0 -31
  260. package/scripts/deployGnosisSafe.ts +0 -111
  261. package/scripts/fetchOrDeployProxyFactory.ts +0 -46
  262. package/scripts/fv.ts +0 -263
  263. package/scripts/gdx/gdxAirdropCalculation.ts +0 -479
  264. package/scripts/getFounders.ts +0 -32
  265. package/scripts/governance/README.md +0 -70
  266. package/scripts/governance/airdropCalculation.ts +0 -1119
  267. package/scripts/governance/airdropCalculationRecover.ts +0 -416
  268. package/scripts/governance/airdropCalculationSorted.ts +0 -438
  269. package/scripts/governance/goodCheckpointSorted.ts +0 -300
  270. package/scripts/keeper/fishInactive.ts +0 -47
  271. package/scripts/minimize.sh +0 -17
  272. package/scripts/multichain-deploy/0_proxyFactory-deploy.ts +0 -131
  273. package/scripts/multichain-deploy/1_basicdao-deploy.ts +0 -294
  274. package/scripts/multichain-deploy/2_helpers-deploy.ts +0 -152
  275. package/scripts/multichain-deploy/2b_otp-deploy.ts +0 -73
  276. package/scripts/multichain-deploy/3_gdSavings-deploy.ts +0 -190
  277. package/scripts/multichain-deploy/4_ubi-deploy.ts +0 -129
  278. package/scripts/multichain-deploy/5_gov-deploy.ts +0 -179
  279. package/scripts/multichain-deploy/6_testnetFaucet.ts +0 -85
  280. package/scripts/multichain-deploy/7_superfluidfaucet-deploy.ts +0 -123
  281. package/scripts/multichain-deploy/8_disthelper-deploy.ts +0 -152
  282. package/scripts/multichain-deploy/createUniswapTestPools.ts +0 -163
  283. package/scripts/multichain-deploy/flattened/Avatar.sol +0 -913
  284. package/scripts/multichain-deploy/flattened/Controller.sol +0 -1891
  285. package/scripts/multichain-deploy/flattened/FeeFormula.sol +0 -1290
  286. package/scripts/multichain-deploy/fulldeploy.sh +0 -26
  287. package/scripts/multichain-deploy/helpers.ts +0 -647
  288. package/scripts/multichain-deploy/multichainWrapper-deploy.ts +0 -59
  289. package/scripts/multichain-deploy/verifyEtherscan.ts +0 -177
  290. package/scripts/proposals/gip-14_1.ts +0 -251
  291. package/scripts/proposals/gip-15.ts +0 -427
  292. package/scripts/proposals/gip-25-xdc-upgrade-ubi.ts +0 -746
  293. package/scripts/proposals/gips-14_1.md +0 -29
  294. package/scripts/proposals/hack-ubi-recovery.ts +0 -414
  295. package/scripts/proposals/identityAuthPeriod.ts +0 -229
  296. package/scripts/proposals/reserveRestore.ts +0 -474
  297. package/scripts/proposals/updateDistHelper.ts +0 -180
  298. package/scripts/proposals/v4Upgrade.ts +0 -845
  299. package/scripts/releaser.js +0 -24
  300. package/scripts/staking/stakersGdRewardsCalculation.ts +0 -64
  301. package/scripts/upgradeScheme.ts +0 -97
  302. package/scripts/upgradeToV2/upgradeToV2.ts +0 -853
  303. package/scripts/upgradeToV2/upgradeToV2Recover.ts +0 -939
  304. package/scripts/upgradeToV3/v3-fix.ts +0 -120
  305. package/scripts/upgradeToV3/v3-fuse-multichain.ts +0 -117
  306. package/scripts/upgradeToV3/v3-upgrade.ts +0 -219
  307. package/scripts/upgrades/celo-defi-ubi-deploy.ts +0 -184
  308. package/scripts/upgrades/identity-upgrade.ts +0 -126
  309. package/scripts/upgrades/multichain-formula-upgrade.ts +0 -143
  310. package/scripts/upgrades/multichain-temp-fix.ts +0 -129
  311. package/scripts/upgrades/restoreFunds.ts +0 -91
  312. package/scripts/upgrades/superfluid-nft-celo-gas-token.ts +0 -159
  313. package/scripts/upgrades/transferDaoToGuardians.ts +0 -80
  314. package/scripts/upgrades/upgradeAdminWallet.ts +0 -29
  315. package/scripts/upgrades/upgradeFaucet.ts +0 -46
  316. package/scripts/utils.ts +0 -50
  317. package/scripts/verify.ts +0 -67
  318. package/scripts/voltageswaps.ts +0 -46
@@ -0,0 +1,1162 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "IdentityV4",
4
+ "sourceName": "contracts/identity/IdentityV4.sol",
5
+ "abi": [
6
+ {
7
+ "anonymous": false,
8
+ "inputs": [
9
+ {
10
+ "indexed": true,
11
+ "internalType": "address",
12
+ "name": "connected",
13
+ "type": "address"
14
+ },
15
+ {
16
+ "indexed": true,
17
+ "internalType": "address",
18
+ "name": "to",
19
+ "type": "address"
20
+ }
21
+ ],
22
+ "name": "AccountConnected",
23
+ "type": "event"
24
+ },
25
+ {
26
+ "anonymous": false,
27
+ "inputs": [
28
+ {
29
+ "indexed": true,
30
+ "internalType": "address",
31
+ "name": "disconnected",
32
+ "type": "address"
33
+ },
34
+ {
35
+ "indexed": true,
36
+ "internalType": "address",
37
+ "name": "from",
38
+ "type": "address"
39
+ }
40
+ ],
41
+ "name": "AccountDisconnected",
42
+ "type": "event"
43
+ },
44
+ {
45
+ "anonymous": false,
46
+ "inputs": [
47
+ {
48
+ "indexed": false,
49
+ "internalType": "address",
50
+ "name": "previousAdmin",
51
+ "type": "address"
52
+ },
53
+ {
54
+ "indexed": false,
55
+ "internalType": "address",
56
+ "name": "newAdmin",
57
+ "type": "address"
58
+ }
59
+ ],
60
+ "name": "AdminChanged",
61
+ "type": "event"
62
+ },
63
+ {
64
+ "anonymous": false,
65
+ "inputs": [
66
+ {
67
+ "indexed": true,
68
+ "internalType": "address",
69
+ "name": "beacon",
70
+ "type": "address"
71
+ }
72
+ ],
73
+ "name": "BeaconUpgraded",
74
+ "type": "event"
75
+ },
76
+ {
77
+ "anonymous": false,
78
+ "inputs": [
79
+ {
80
+ "indexed": true,
81
+ "internalType": "address",
82
+ "name": "account",
83
+ "type": "address"
84
+ }
85
+ ],
86
+ "name": "BlacklistAdded",
87
+ "type": "event"
88
+ },
89
+ {
90
+ "anonymous": false,
91
+ "inputs": [
92
+ {
93
+ "indexed": true,
94
+ "internalType": "address",
95
+ "name": "account",
96
+ "type": "address"
97
+ }
98
+ ],
99
+ "name": "BlacklistRemoved",
100
+ "type": "event"
101
+ },
102
+ {
103
+ "anonymous": false,
104
+ "inputs": [
105
+ {
106
+ "indexed": true,
107
+ "internalType": "address",
108
+ "name": "account",
109
+ "type": "address"
110
+ }
111
+ ],
112
+ "name": "ContractAdded",
113
+ "type": "event"
114
+ },
115
+ {
116
+ "anonymous": false,
117
+ "inputs": [
118
+ {
119
+ "indexed": true,
120
+ "internalType": "address",
121
+ "name": "account",
122
+ "type": "address"
123
+ }
124
+ ],
125
+ "name": "ContractRemoved",
126
+ "type": "event"
127
+ },
128
+ {
129
+ "anonymous": false,
130
+ "inputs": [
131
+ {
132
+ "indexed": false,
133
+ "internalType": "uint8",
134
+ "name": "version",
135
+ "type": "uint8"
136
+ }
137
+ ],
138
+ "name": "Initialized",
139
+ "type": "event"
140
+ },
141
+ {
142
+ "anonymous": false,
143
+ "inputs": [
144
+ {
145
+ "indexed": false,
146
+ "internalType": "address",
147
+ "name": "account",
148
+ "type": "address"
149
+ }
150
+ ],
151
+ "name": "Paused",
152
+ "type": "event"
153
+ },
154
+ {
155
+ "anonymous": false,
156
+ "inputs": [
157
+ {
158
+ "indexed": true,
159
+ "internalType": "bytes32",
160
+ "name": "role",
161
+ "type": "bytes32"
162
+ },
163
+ {
164
+ "indexed": true,
165
+ "internalType": "bytes32",
166
+ "name": "previousAdminRole",
167
+ "type": "bytes32"
168
+ },
169
+ {
170
+ "indexed": true,
171
+ "internalType": "bytes32",
172
+ "name": "newAdminRole",
173
+ "type": "bytes32"
174
+ }
175
+ ],
176
+ "name": "RoleAdminChanged",
177
+ "type": "event"
178
+ },
179
+ {
180
+ "anonymous": false,
181
+ "inputs": [
182
+ {
183
+ "indexed": true,
184
+ "internalType": "bytes32",
185
+ "name": "role",
186
+ "type": "bytes32"
187
+ },
188
+ {
189
+ "indexed": true,
190
+ "internalType": "address",
191
+ "name": "account",
192
+ "type": "address"
193
+ },
194
+ {
195
+ "indexed": true,
196
+ "internalType": "address",
197
+ "name": "sender",
198
+ "type": "address"
199
+ }
200
+ ],
201
+ "name": "RoleGranted",
202
+ "type": "event"
203
+ },
204
+ {
205
+ "anonymous": false,
206
+ "inputs": [
207
+ {
208
+ "indexed": true,
209
+ "internalType": "bytes32",
210
+ "name": "role",
211
+ "type": "bytes32"
212
+ },
213
+ {
214
+ "indexed": true,
215
+ "internalType": "address",
216
+ "name": "account",
217
+ "type": "address"
218
+ },
219
+ {
220
+ "indexed": true,
221
+ "internalType": "address",
222
+ "name": "sender",
223
+ "type": "address"
224
+ }
225
+ ],
226
+ "name": "RoleRevoked",
227
+ "type": "event"
228
+ },
229
+ {
230
+ "anonymous": false,
231
+ "inputs": [
232
+ {
233
+ "indexed": false,
234
+ "internalType": "address",
235
+ "name": "account",
236
+ "type": "address"
237
+ }
238
+ ],
239
+ "name": "Unpaused",
240
+ "type": "event"
241
+ },
242
+ {
243
+ "anonymous": false,
244
+ "inputs": [
245
+ {
246
+ "indexed": true,
247
+ "internalType": "address",
248
+ "name": "implementation",
249
+ "type": "address"
250
+ }
251
+ ],
252
+ "name": "Upgraded",
253
+ "type": "event"
254
+ },
255
+ {
256
+ "anonymous": false,
257
+ "inputs": [
258
+ {
259
+ "indexed": true,
260
+ "internalType": "address",
261
+ "name": "account",
262
+ "type": "address"
263
+ }
264
+ ],
265
+ "name": "WhitelistedAdded",
266
+ "type": "event"
267
+ },
268
+ {
269
+ "anonymous": false,
270
+ "inputs": [
271
+ {
272
+ "indexed": true,
273
+ "internalType": "address",
274
+ "name": "account",
275
+ "type": "address"
276
+ },
277
+ {
278
+ "indexed": false,
279
+ "internalType": "uint256",
280
+ "name": "timestamp",
281
+ "type": "uint256"
282
+ }
283
+ ],
284
+ "name": "WhitelistedAuthenticated",
285
+ "type": "event"
286
+ },
287
+ {
288
+ "anonymous": false,
289
+ "inputs": [
290
+ {
291
+ "indexed": true,
292
+ "internalType": "address",
293
+ "name": "account",
294
+ "type": "address"
295
+ }
296
+ ],
297
+ "name": "WhitelistedRemoved",
298
+ "type": "event"
299
+ },
300
+ {
301
+ "inputs": [],
302
+ "name": "DEFAULT_ADMIN_ROLE",
303
+ "outputs": [
304
+ {
305
+ "internalType": "bytes32",
306
+ "name": "",
307
+ "type": "bytes32"
308
+ }
309
+ ],
310
+ "stateMutability": "view",
311
+ "type": "function"
312
+ },
313
+ {
314
+ "inputs": [],
315
+ "name": "IDENTITY_ADMIN_ROLE",
316
+ "outputs": [
317
+ {
318
+ "internalType": "bytes32",
319
+ "name": "",
320
+ "type": "bytes32"
321
+ }
322
+ ],
323
+ "stateMutability": "view",
324
+ "type": "function"
325
+ },
326
+ {
327
+ "inputs": [],
328
+ "name": "PAUSER_ROLE",
329
+ "outputs": [
330
+ {
331
+ "internalType": "bytes32",
332
+ "name": "",
333
+ "type": "bytes32"
334
+ }
335
+ ],
336
+ "stateMutability": "view",
337
+ "type": "function"
338
+ },
339
+ {
340
+ "inputs": [],
341
+ "name": "TYPED_STRUCTURE",
342
+ "outputs": [
343
+ {
344
+ "internalType": "string",
345
+ "name": "",
346
+ "type": "string"
347
+ }
348
+ ],
349
+ "stateMutability": "view",
350
+ "type": "function"
351
+ },
352
+ {
353
+ "inputs": [
354
+ {
355
+ "internalType": "address",
356
+ "name": "account",
357
+ "type": "address"
358
+ }
359
+ ],
360
+ "name": "addBlacklisted",
361
+ "outputs": [],
362
+ "stateMutability": "nonpayable",
363
+ "type": "function"
364
+ },
365
+ {
366
+ "inputs": [
367
+ {
368
+ "internalType": "address",
369
+ "name": "account",
370
+ "type": "address"
371
+ }
372
+ ],
373
+ "name": "addContract",
374
+ "outputs": [],
375
+ "stateMutability": "nonpayable",
376
+ "type": "function"
377
+ },
378
+ {
379
+ "inputs": [
380
+ {
381
+ "internalType": "address",
382
+ "name": "account",
383
+ "type": "address"
384
+ }
385
+ ],
386
+ "name": "addWhitelisted",
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": "string",
400
+ "name": "did",
401
+ "type": "string"
402
+ }
403
+ ],
404
+ "name": "addWhitelistedWithDID",
405
+ "outputs": [],
406
+ "stateMutability": "nonpayable",
407
+ "type": "function"
408
+ },
409
+ {
410
+ "inputs": [
411
+ {
412
+ "internalType": "address",
413
+ "name": "account",
414
+ "type": "address"
415
+ },
416
+ {
417
+ "internalType": "string",
418
+ "name": "did",
419
+ "type": "string"
420
+ },
421
+ {
422
+ "internalType": "uint256",
423
+ "name": "orgChain",
424
+ "type": "uint256"
425
+ },
426
+ {
427
+ "internalType": "uint256",
428
+ "name": "dateAuthenticated",
429
+ "type": "uint256"
430
+ }
431
+ ],
432
+ "name": "addWhitelistedWithDIDAndChain",
433
+ "outputs": [],
434
+ "stateMutability": "nonpayable",
435
+ "type": "function"
436
+ },
437
+ {
438
+ "inputs": [
439
+ {
440
+ "internalType": "address",
441
+ "name": "account",
442
+ "type": "address"
443
+ }
444
+ ],
445
+ "name": "addrToDID",
446
+ "outputs": [
447
+ {
448
+ "internalType": "string",
449
+ "name": "did",
450
+ "type": "string"
451
+ }
452
+ ],
453
+ "stateMutability": "view",
454
+ "type": "function"
455
+ },
456
+ {
457
+ "inputs": [
458
+ {
459
+ "internalType": "address",
460
+ "name": "account",
461
+ "type": "address"
462
+ }
463
+ ],
464
+ "name": "authenticate",
465
+ "outputs": [],
466
+ "stateMutability": "nonpayable",
467
+ "type": "function"
468
+ },
469
+ {
470
+ "inputs": [
471
+ {
472
+ "internalType": "address",
473
+ "name": "account",
474
+ "type": "address"
475
+ },
476
+ {
477
+ "internalType": "uint256",
478
+ "name": "timestamp",
479
+ "type": "uint256"
480
+ }
481
+ ],
482
+ "name": "authenticateWithTimestamp",
483
+ "outputs": [],
484
+ "stateMutability": "nonpayable",
485
+ "type": "function"
486
+ },
487
+ {
488
+ "inputs": [],
489
+ "name": "avatar",
490
+ "outputs": [
491
+ {
492
+ "internalType": "address",
493
+ "name": "",
494
+ "type": "address"
495
+ }
496
+ ],
497
+ "stateMutability": "view",
498
+ "type": "function"
499
+ },
500
+ {
501
+ "inputs": [
502
+ {
503
+ "internalType": "address",
504
+ "name": "account",
505
+ "type": "address"
506
+ }
507
+ ],
508
+ "name": "connectAccount",
509
+ "outputs": [],
510
+ "stateMutability": "nonpayable",
511
+ "type": "function"
512
+ },
513
+ {
514
+ "inputs": [
515
+ {
516
+ "internalType": "address",
517
+ "name": "",
518
+ "type": "address"
519
+ }
520
+ ],
521
+ "name": "connectedAccounts",
522
+ "outputs": [
523
+ {
524
+ "internalType": "address",
525
+ "name": "",
526
+ "type": "address"
527
+ }
528
+ ],
529
+ "stateMutability": "view",
530
+ "type": "function"
531
+ },
532
+ {
533
+ "inputs": [],
534
+ "name": "dao",
535
+ "outputs": [
536
+ {
537
+ "internalType": "contract Controller",
538
+ "name": "",
539
+ "type": "address"
540
+ }
541
+ ],
542
+ "stateMutability": "view",
543
+ "type": "function"
544
+ },
545
+ {
546
+ "inputs": [
547
+ {
548
+ "internalType": "bytes32",
549
+ "name": "",
550
+ "type": "bytes32"
551
+ }
552
+ ],
553
+ "name": "didHashToAddress",
554
+ "outputs": [
555
+ {
556
+ "internalType": "address",
557
+ "name": "",
558
+ "type": "address"
559
+ }
560
+ ],
561
+ "stateMutability": "view",
562
+ "type": "function"
563
+ },
564
+ {
565
+ "inputs": [
566
+ {
567
+ "internalType": "address",
568
+ "name": "connected",
569
+ "type": "address"
570
+ }
571
+ ],
572
+ "name": "disconnectAccount",
573
+ "outputs": [],
574
+ "stateMutability": "nonpayable",
575
+ "type": "function"
576
+ },
577
+ {
578
+ "inputs": [
579
+ {
580
+ "internalType": "bytes32",
581
+ "name": "role",
582
+ "type": "bytes32"
583
+ }
584
+ ],
585
+ "name": "getRoleAdmin",
586
+ "outputs": [
587
+ {
588
+ "internalType": "bytes32",
589
+ "name": "",
590
+ "type": "bytes32"
591
+ }
592
+ ],
593
+ "stateMutability": "view",
594
+ "type": "function"
595
+ },
596
+ {
597
+ "inputs": [
598
+ {
599
+ "internalType": "address",
600
+ "name": "account",
601
+ "type": "address"
602
+ }
603
+ ],
604
+ "name": "getWhitelistedOnChainId",
605
+ "outputs": [
606
+ {
607
+ "internalType": "uint256",
608
+ "name": "chainId",
609
+ "type": "uint256"
610
+ }
611
+ ],
612
+ "stateMutability": "view",
613
+ "type": "function"
614
+ },
615
+ {
616
+ "inputs": [
617
+ {
618
+ "internalType": "address",
619
+ "name": "account",
620
+ "type": "address"
621
+ }
622
+ ],
623
+ "name": "getWhitelistedRoot",
624
+ "outputs": [
625
+ {
626
+ "internalType": "address",
627
+ "name": "whitelisted",
628
+ "type": "address"
629
+ }
630
+ ],
631
+ "stateMutability": "view",
632
+ "type": "function"
633
+ },
634
+ {
635
+ "inputs": [
636
+ {
637
+ "internalType": "bytes32",
638
+ "name": "role",
639
+ "type": "bytes32"
640
+ },
641
+ {
642
+ "internalType": "address",
643
+ "name": "account",
644
+ "type": "address"
645
+ }
646
+ ],
647
+ "name": "grantRole",
648
+ "outputs": [],
649
+ "stateMutability": "nonpayable",
650
+ "type": "function"
651
+ },
652
+ {
653
+ "inputs": [
654
+ {
655
+ "internalType": "bytes32",
656
+ "name": "role",
657
+ "type": "bytes32"
658
+ },
659
+ {
660
+ "internalType": "address",
661
+ "name": "account",
662
+ "type": "address"
663
+ }
664
+ ],
665
+ "name": "hasRole",
666
+ "outputs": [
667
+ {
668
+ "internalType": "bool",
669
+ "name": "",
670
+ "type": "bool"
671
+ }
672
+ ],
673
+ "stateMutability": "view",
674
+ "type": "function"
675
+ },
676
+ {
677
+ "inputs": [
678
+ {
679
+ "internalType": "address",
680
+ "name": "",
681
+ "type": "address"
682
+ }
683
+ ],
684
+ "name": "identities",
685
+ "outputs": [
686
+ {
687
+ "internalType": "uint256",
688
+ "name": "dateAuthenticated",
689
+ "type": "uint256"
690
+ },
691
+ {
692
+ "internalType": "uint256",
693
+ "name": "dateAdded",
694
+ "type": "uint256"
695
+ },
696
+ {
697
+ "internalType": "string",
698
+ "name": "did",
699
+ "type": "string"
700
+ },
701
+ {
702
+ "internalType": "uint256",
703
+ "name": "whitelistedOnChainId",
704
+ "type": "uint256"
705
+ },
706
+ {
707
+ "internalType": "uint8",
708
+ "name": "status",
709
+ "type": "uint8"
710
+ },
711
+ {
712
+ "internalType": "uint32",
713
+ "name": "authCount",
714
+ "type": "uint32"
715
+ }
716
+ ],
717
+ "stateMutability": "view",
718
+ "type": "function"
719
+ },
720
+ {
721
+ "inputs": [
722
+ {
723
+ "internalType": "address",
724
+ "name": "_ns",
725
+ "type": "address"
726
+ }
727
+ ],
728
+ "name": "initDAO",
729
+ "outputs": [],
730
+ "stateMutability": "nonpayable",
731
+ "type": "function"
732
+ },
733
+ {
734
+ "inputs": [
735
+ {
736
+ "internalType": "address",
737
+ "name": "_owner",
738
+ "type": "address"
739
+ },
740
+ {
741
+ "internalType": "contract IIdentity",
742
+ "name": "_oldIdentity",
743
+ "type": "address"
744
+ }
745
+ ],
746
+ "name": "initialize",
747
+ "outputs": [],
748
+ "stateMutability": "nonpayable",
749
+ "type": "function"
750
+ },
751
+ {
752
+ "inputs": [
753
+ {
754
+ "internalType": "address",
755
+ "name": "account",
756
+ "type": "address"
757
+ }
758
+ ],
759
+ "name": "isBlacklisted",
760
+ "outputs": [
761
+ {
762
+ "internalType": "bool",
763
+ "name": "",
764
+ "type": "bool"
765
+ }
766
+ ],
767
+ "stateMutability": "view",
768
+ "type": "function"
769
+ },
770
+ {
771
+ "inputs": [
772
+ {
773
+ "internalType": "address",
774
+ "name": "account",
775
+ "type": "address"
776
+ }
777
+ ],
778
+ "name": "isDAOContract",
779
+ "outputs": [
780
+ {
781
+ "internalType": "bool",
782
+ "name": "",
783
+ "type": "bool"
784
+ }
785
+ ],
786
+ "stateMutability": "view",
787
+ "type": "function"
788
+ },
789
+ {
790
+ "inputs": [],
791
+ "name": "isRegistered",
792
+ "outputs": [
793
+ {
794
+ "internalType": "bool",
795
+ "name": "",
796
+ "type": "bool"
797
+ }
798
+ ],
799
+ "stateMutability": "pure",
800
+ "type": "function"
801
+ },
802
+ {
803
+ "inputs": [
804
+ {
805
+ "internalType": "address",
806
+ "name": "account",
807
+ "type": "address"
808
+ }
809
+ ],
810
+ "name": "isWhitelisted",
811
+ "outputs": [
812
+ {
813
+ "internalType": "bool",
814
+ "name": "",
815
+ "type": "bool"
816
+ }
817
+ ],
818
+ "stateMutability": "view",
819
+ "type": "function"
820
+ },
821
+ {
822
+ "inputs": [
823
+ {
824
+ "internalType": "address",
825
+ "name": "account",
826
+ "type": "address"
827
+ }
828
+ ],
829
+ "name": "lastAuthenticated",
830
+ "outputs": [
831
+ {
832
+ "internalType": "uint256",
833
+ "name": "",
834
+ "type": "uint256"
835
+ }
836
+ ],
837
+ "stateMutability": "view",
838
+ "type": "function"
839
+ },
840
+ {
841
+ "inputs": [],
842
+ "name": "nameService",
843
+ "outputs": [
844
+ {
845
+ "internalType": "contract INameService",
846
+ "name": "",
847
+ "type": "address"
848
+ }
849
+ ],
850
+ "stateMutability": "view",
851
+ "type": "function"
852
+ },
853
+ {
854
+ "inputs": [],
855
+ "name": "nativeToken",
856
+ "outputs": [
857
+ {
858
+ "internalType": "contract IGoodDollar",
859
+ "name": "",
860
+ "type": "address"
861
+ }
862
+ ],
863
+ "stateMutability": "view",
864
+ "type": "function"
865
+ },
866
+ {
867
+ "inputs": [],
868
+ "name": "oldIdentity",
869
+ "outputs": [
870
+ {
871
+ "internalType": "contract IIdentity",
872
+ "name": "",
873
+ "type": "address"
874
+ }
875
+ ],
876
+ "stateMutability": "view",
877
+ "type": "function"
878
+ },
879
+ {
880
+ "inputs": [
881
+ {
882
+ "internalType": "bool",
883
+ "name": "toPause",
884
+ "type": "bool"
885
+ }
886
+ ],
887
+ "name": "pause",
888
+ "outputs": [],
889
+ "stateMutability": "nonpayable",
890
+ "type": "function"
891
+ },
892
+ {
893
+ "inputs": [],
894
+ "name": "paused",
895
+ "outputs": [
896
+ {
897
+ "internalType": "bool",
898
+ "name": "",
899
+ "type": "bool"
900
+ }
901
+ ],
902
+ "stateMutability": "view",
903
+ "type": "function"
904
+ },
905
+ {
906
+ "inputs": [],
907
+ "name": "proxiableUUID",
908
+ "outputs": [
909
+ {
910
+ "internalType": "bytes32",
911
+ "name": "",
912
+ "type": "bytes32"
913
+ }
914
+ ],
915
+ "stateMutability": "view",
916
+ "type": "function"
917
+ },
918
+ {
919
+ "inputs": [
920
+ {
921
+ "internalType": "address",
922
+ "name": "account",
923
+ "type": "address"
924
+ }
925
+ ],
926
+ "name": "removeBlacklisted",
927
+ "outputs": [],
928
+ "stateMutability": "nonpayable",
929
+ "type": "function"
930
+ },
931
+ {
932
+ "inputs": [
933
+ {
934
+ "internalType": "address",
935
+ "name": "account",
936
+ "type": "address"
937
+ }
938
+ ],
939
+ "name": "removeContract",
940
+ "outputs": [],
941
+ "stateMutability": "nonpayable",
942
+ "type": "function"
943
+ },
944
+ {
945
+ "inputs": [
946
+ {
947
+ "internalType": "address",
948
+ "name": "account",
949
+ "type": "address"
950
+ }
951
+ ],
952
+ "name": "removeWhitelisted",
953
+ "outputs": [],
954
+ "stateMutability": "nonpayable",
955
+ "type": "function"
956
+ },
957
+ {
958
+ "inputs": [
959
+ {
960
+ "internalType": "bytes32",
961
+ "name": "role",
962
+ "type": "bytes32"
963
+ },
964
+ {
965
+ "internalType": "address",
966
+ "name": "account",
967
+ "type": "address"
968
+ }
969
+ ],
970
+ "name": "renounceRole",
971
+ "outputs": [],
972
+ "stateMutability": "nonpayable",
973
+ "type": "function"
974
+ },
975
+ {
976
+ "inputs": [],
977
+ "name": "renounceWhitelisted",
978
+ "outputs": [],
979
+ "stateMutability": "nonpayable",
980
+ "type": "function"
981
+ },
982
+ {
983
+ "inputs": [
984
+ {
985
+ "internalType": "uint256",
986
+ "name": "",
987
+ "type": "uint256"
988
+ }
989
+ ],
990
+ "name": "reverifyDaysOptions",
991
+ "outputs": [
992
+ {
993
+ "internalType": "uint32",
994
+ "name": "",
995
+ "type": "uint32"
996
+ }
997
+ ],
998
+ "stateMutability": "view",
999
+ "type": "function"
1000
+ },
1001
+ {
1002
+ "inputs": [
1003
+ {
1004
+ "internalType": "bytes32",
1005
+ "name": "role",
1006
+ "type": "bytes32"
1007
+ },
1008
+ {
1009
+ "internalType": "address",
1010
+ "name": "account",
1011
+ "type": "address"
1012
+ }
1013
+ ],
1014
+ "name": "revokeRole",
1015
+ "outputs": [],
1016
+ "stateMutability": "nonpayable",
1017
+ "type": "function"
1018
+ },
1019
+ {
1020
+ "inputs": [
1021
+ {
1022
+ "internalType": "address",
1023
+ "name": "account",
1024
+ "type": "address"
1025
+ },
1026
+ {
1027
+ "internalType": "string",
1028
+ "name": "did",
1029
+ "type": "string"
1030
+ }
1031
+ ],
1032
+ "name": "setDID",
1033
+ "outputs": [],
1034
+ "stateMutability": "nonpayable",
1035
+ "type": "function"
1036
+ },
1037
+ {
1038
+ "inputs": [
1039
+ {
1040
+ "internalType": "uint8[]",
1041
+ "name": "options",
1042
+ "type": "uint8[]"
1043
+ }
1044
+ ],
1045
+ "name": "setReverifyDaysOptions",
1046
+ "outputs": [],
1047
+ "stateMutability": "nonpayable",
1048
+ "type": "function"
1049
+ },
1050
+ {
1051
+ "inputs": [
1052
+ {
1053
+ "internalType": "address",
1054
+ "name": "account",
1055
+ "type": "address"
1056
+ },
1057
+ {
1058
+ "internalType": "uint256",
1059
+ "name": "daysSinceAuth",
1060
+ "type": "uint256"
1061
+ }
1062
+ ],
1063
+ "name": "shouldReverify",
1064
+ "outputs": [
1065
+ {
1066
+ "internalType": "bool",
1067
+ "name": "",
1068
+ "type": "bool"
1069
+ }
1070
+ ],
1071
+ "stateMutability": "view",
1072
+ "type": "function"
1073
+ },
1074
+ {
1075
+ "inputs": [
1076
+ {
1077
+ "internalType": "bytes4",
1078
+ "name": "interfaceId",
1079
+ "type": "bytes4"
1080
+ }
1081
+ ],
1082
+ "name": "supportsInterface",
1083
+ "outputs": [
1084
+ {
1085
+ "internalType": "bool",
1086
+ "name": "",
1087
+ "type": "bool"
1088
+ }
1089
+ ],
1090
+ "stateMutability": "view",
1091
+ "type": "function"
1092
+ },
1093
+ {
1094
+ "inputs": [],
1095
+ "name": "updateAvatar",
1096
+ "outputs": [],
1097
+ "stateMutability": "nonpayable",
1098
+ "type": "function"
1099
+ },
1100
+ {
1101
+ "inputs": [
1102
+ {
1103
+ "internalType": "address",
1104
+ "name": "newImplementation",
1105
+ "type": "address"
1106
+ }
1107
+ ],
1108
+ "name": "upgradeTo",
1109
+ "outputs": [],
1110
+ "stateMutability": "nonpayable",
1111
+ "type": "function"
1112
+ },
1113
+ {
1114
+ "inputs": [
1115
+ {
1116
+ "internalType": "address",
1117
+ "name": "newImplementation",
1118
+ "type": "address"
1119
+ },
1120
+ {
1121
+ "internalType": "bytes",
1122
+ "name": "data",
1123
+ "type": "bytes"
1124
+ }
1125
+ ],
1126
+ "name": "upgradeToAndCall",
1127
+ "outputs": [],
1128
+ "stateMutability": "payable",
1129
+ "type": "function"
1130
+ },
1131
+ {
1132
+ "inputs": [],
1133
+ "name": "whitelistedContracts",
1134
+ "outputs": [
1135
+ {
1136
+ "internalType": "uint256",
1137
+ "name": "",
1138
+ "type": "uint256"
1139
+ }
1140
+ ],
1141
+ "stateMutability": "view",
1142
+ "type": "function"
1143
+ },
1144
+ {
1145
+ "inputs": [],
1146
+ "name": "whitelistedCount",
1147
+ "outputs": [
1148
+ {
1149
+ "internalType": "uint256",
1150
+ "name": "",
1151
+ "type": "uint256"
1152
+ }
1153
+ ],
1154
+ "stateMutability": "view",
1155
+ "type": "function"
1156
+ }
1157
+ ],
1158
+ "bytecode": "0x60a06040523060805234801561001457600080fd5b50608051613eba61004c60003960008181610dbf01528181610dff0152818161136f015281816113af01526114270152613eba6000f3fe60806040526004361061025a5760003560e01c806301ffc9a71461025f57806302329a291461029457806308e0d29d146102b657806310154bad146102d6578063188efc16146102f65780631aaff63c146103165780631b027099146103465780631b3c90a814610366578063223668441461037b578063248a9ca31461038f578063291d9549146103af5780632b14dda8146103cf5780632cec5330146103ef5780632d0e9b46146104115780632f2ff15d1461043e57806336568abe1461045e5780633659cfe61461047e57806337a1a9871461049e5780633af32abf146104be5780633e6326fc146104de5780634125f0f2146104fe5780634162169f1461051f578063485cc9551461053f5780634a03813f1461055f5780634f1ef2861461057f57806352d1902d1461059257806354f9f7a3146105a75780635aef7de6146105c75780635c975abb146105e75780635f539d6914610600578063613200401461062057806367c759371461065757806391d148541461068e578063925e8c1a146106ae57806396a1ef79146106ce578063a061922d146106ee578063a217fddf1461070e578063b2a1de2214610723578063b30f7e7f1461073a578063c375c2ef14610751578063c6a276c214610771578063c73cc4ae14610791578063cadef5ac146107b1578063d21685f4146107e6578063d326281614610806578063d547741f14610826578063d6cd947314610846578063e1758bd81461085b578063e1e360ba14610870578063e63ab1e914610890578063e737031a146108b2578063f653b81e146108d2578063fe575a8714610904575b600080fd5b34801561026b57600080fd5b5061027f61027a3660046133c3565b610924565b60405190151581526020015b60405180910390f35b3480156102a057600080fd5b506102b46102af3660046133fb565b61095b565b005b3480156102c257600080fd5b506102b46102d136600461342d565b61098d565b3480156102e257600080fd5b506102b46102f136600461342d565b61099a565b34801561030257600080fd5b506102b461031136600461342d565b6109c4565b34801561032257600080fd5b50610338600080516020613d9783398151915281565b60405190815260200161028b565b34801561035257600080fd5b506102b4610361366004613515565b610a3e565b34801561037257600080fd5b506102b4610a6e565b34801561038757600080fd5b50600161027f565b34801561039b57600080fd5b506103386103aa366004613564565b610b95565b3480156103bb57600080fd5b506102b46103ca36600461342d565b610baa565b3480156103db57600080fd5b506102b46103ea36600461342d565b610bd3565b3480156103fb57600080fd5b50610404610c9d565b60405161028b91906135cd565b34801561041d57600080fd5b5061043161042c36600461342d565b610cb9565b60405161028b91906135e0565b34801561044a57600080fd5b506102b46104593660046135f4565b610d1f565b34801561046a57600080fd5b506102b46104793660046135f4565b610d3b565b34801561048a57600080fd5b506102b461049936600461342d565b610db5565b3480156104aa57600080fd5b506102b46104b936600461342d565b610e7a565b3480156104ca57600080fd5b5061027f6104d936600461342d565b610f38565b3480156104ea57600080fd5b50606754610431906001600160a01b031681565b34801561050a57600080fd5b5061019c54610431906001600160a01b031681565b34801561052b57600080fd5b50606554610431906001600160a01b031681565b34801561054b57600080fd5b506102b461055a366004613624565b611042565b34801561056b57600080fd5b5061027f61057a366004613652565b6112aa565b6102b461058d36600461367e565b611365565b34801561059e57600080fd5b5061033861141a565b3480156105b357600080fd5b506104046105c236600461342d565b6114c8565b3480156105d357600080fd5b50606654610431906001600160a01b031681565b3480156105f357600080fd5b506101305460ff1661027f565b34801561060c57600080fd5b506102b461061b36600461342d565b61165c565b34801561062c57600080fd5b5061043161063b36600461342d565b61019b602052600090815260409020546001600160a01b031681565b34801561066357600080fd5b50610431610672366004613564565b61019a602052600090815260409020546001600160a01b031681565b34801561069a57600080fd5b5061027f6106a93660046135f4565b611725565b3480156106ba57600080fd5b506102b46106c93660046136d7565b611750565b3480156106da57600080fd5b506102b46106e9366004613652565b61183a565b3480156106fa57600080fd5b5061033861070936600461342d565b6119e9565b34801561071a57600080fd5b50610338600081565b34801561072f57600080fd5b506103386101965481565b34801561074657600080fd5b506103386101975481565b34801561075d57600080fd5b506102b461076c36600461342d565b611a16565b34801561077d57600080fd5b506102b461078c36600461342d565b611b68565b34801561079d57600080fd5b5061027f6107ac36600461342d565b611cc7565b3480156107bd57600080fd5b506107d16107cc366004613564565b611d7e565b60405163ffffffff909116815260200161028b565b3480156107f257600080fd5b506102b461080136600461342d565b611db9565b34801561081257600080fd5b506102b461082136600461374b565b611eed565b34801561083257600080fd5b506102b46108413660046135f4565b611f94565b34801561085257600080fd5b506102b4611fb0565b34801561086757600080fd5b50610431611fe8565b34801561087c57600080fd5b5061033861088b36600461342d565b612075565b34801561089c57600080fd5b50610338600080516020613dd783398151915281565b3480156108be57600080fd5b506102b46108cd3660046137cf565b61212a565b3480156108de57600080fd5b506108f26108ed36600461342d565b61217f565b60405161028b9695949392919061382e565b34801561091057600080fd5b5061027f61091f36600461342d565b612247565b60006001600160e01b03198216637965db0b60e01b148061095557506301ffc9a760e01b6001600160e01b03198316145b92915050565b600080516020613dd7833981519152610973816122ba565b8115610985576109816122c4565b5050565b610981612319565b610997814261183a565b50565b600080516020613d978339815191526109b2816122ba565b6109ba612353565b610981824661239a565b600080516020613d978339815191526109dc816122ba565b6109e4612353565b6109ed826124c7565b6001600160a01b03821660008181526101996020526040808220600401805460ff191660ff179055517f44d5fe68b00f68950fb9c1ff0a61ef7f747b1a36359a7e3a7f3324db4b8789679190a25050565b600080516020613d97833981519152610a56816122ba565b610a5e612353565b610a698383466127a0565b505050565b60675460405163bf40fac160e01b815260206004820152600a60248201526921a7a72a2927a62622a960b11b60448201526001600160a01b039091169063bf40fac190606401602060405180830381865afa158015610ad1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af59190613874565b606580546001600160a01b0319166001600160a01b0392909216918217905560408051632d77bef360e11b81529051635aef7de6916004808201926020929091908290030181865afa158015610b4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b739190613874565b606680546001600160a01b0319166001600160a01b0392909216919091179055565b600090815260fe602052604090206001015490565b600080516020613d97833981519152610bc2816122ba565b610bca612353565b610981826124c7565b6000610bde816122ba565b6067546001600160a01b031615610c325760405162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b60448201526064015b60405180910390fd5b610c3b8261283b565b606654610c53906000906001600160a01b031661285e565b606654610c7890600080516020613dd7833981519152906001600160a01b031661285e565b60665461098190600080516020613d97833981519152906001600160a01b031661285e565b604051806080016040528060478152602001613e176047913981565b6000610cc482610f38565b15610ccd575090565b6001600160a01b03808316600090815261019b6020526040902054610cf29116610f38565b15610d1757506001600160a01b03908116600090815261019b60205260409020541690565b506000919050565b610d2882610b95565b610d31816122ba565b610a698383612864565b6001600160a01b0381163314610dab5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610c29565b61098182826128ea565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610dfd5760405162461bcd60e51b8152600401610c2990613891565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610e2f612951565b6001600160a01b031614610e555760405162461bcd60e51b8152600401610c29906138cb565b610e5e8161296d565b6040805160008082526020820190925261099791839190612975565b6001600160a01b03818116600090815261019b602052604090205416331480610eab5750336001600160a01b038216145b610ee65760405162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5e995960a21b6044820152606401610c29565b6001600160a01b038116600081815261019b602052604080822080546001600160a01b0319169055513392917f7cdef5f9c5cb8ce728661ede956fef26cb91eb4d7d2180cc041b73f9fef568d291a350565b6001600160a01b0381166000908152610199602052604081205481906201518090610f63904261391b565b610f6d919061392e565b6001600160a01b0384166000908152610199602052604090206004015490915060ff16600103610fa957610fa183826112aa565b159392505050565b61019c546001600160a01b0316156110395761019c54604051633af32abf60e01b81526001600160a01b0390911690633af32abf90610fec9086906004016135e0565b602060405180830381865afa925050508015611025575060408051601f3d908101601f1916820190925261102291810190613950565b60015b6110325750600092915050565b9392505050565b50600092915050565b600054610100900460ff16158080156110625750600054600160ff909116105b80611083575061107130612ae0565b158015611083575060005460ff166001145b6110e65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610c29565b6000805460ff191660011790558015611109576000805461ff0019166101001790555b611111612aef565b611119612b16565b611160604051806040016040528060088152602001674964656e7469747960c01b815250604051806040016040528060058152602001640312e302e360dc1b815250612b4a565b61116b60008461285e565b611183600080516020613dd78339815191528461285e565b61119b600080516020613d978339815191528461285e565b61019c80546001600160a01b0384166001600160a01b031990911617905561019d805460018181018355600083905260088083047f71880bb8535eda3be1bc3614789b84ba72ab02d5ae26ba282fa1178bb7fea1e6908101805463ffffffff60046007978816810261010090810a8381021990941690931790935587548087018955858104850180549189168502840a808a0290840219909216919091179055875495860190975592840490910180549390941602900a60b48102930219169190911790558015610a69576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b61019d546001600160a01b03831660009081526101996020526040812060040154909161010090910463ffffffff16106112e657506000610955565b6001600160a01b0383166000908152610199602052604081206004015461019d80549091610100900463ffffffff169081106113245761132461396d565b6000918252602090912060088204015460079091166004026101000a900463ffffffff16905080831061135b576001915050610955565b5060009392505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036113ad5760405162461bcd60e51b8152600401610c2990613891565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166113df612951565b6001600160a01b0316146114055760405162461bcd60e51b8152600401610c29906138cb565b61140e8261296d565b61098182826001612975565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146114b55760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401610c29565b50600080516020613df783398151915290565b6001600160a01b0381166000908152610199602052604090206002018054606091906114f390613983565b80601f016020809104026020016040519081016040528092919081815260200182805461151f90613983565b801561156c5780601f106115415761010080835404028352916020019161156c565b820191906000526020600020905b81548152906001019060200180831161154f57829003601f168201915b50508351602080860191909120600081815261019a909252604090912054949550936001600160a01b0380881691160392506115ab9150505750919050565b61019c546001600160a01b0316156116465761019c546040516354f9f7a360e01b81526001600160a01b03909116906354f9f7a3906115ee9086906004016135e0565b600060405180830381865afa92505050801561162c57506040513d6000823e601f3d908101601f1916820160405261162991908101906139bd565b60015b611032575050604080516020810190915260008152919050565b5050604080516020810190915260008152919050565b600080516020613d97833981519152611674816122ba565b61167c612353565b813b6116ca5760405162461bcd60e51b815260206004820152601f60248201527f476976656e2061646472657373206973206e6f74206120636f6e7472616374006044820152606401610c29565b6116d4824661239a565b6001600160a01b03821660008181526101996020526040808220600401805460ff19166002179055517f89c66952b48f3e96bf1d8ba1b63189520fd988a6979b8b740bd5c5d8dc53e2059190a25050565b600091825260fe602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600080516020613d97833981519152611768816122ba565b816117a55760405162461bcd60e51b815260206004820152600d60248201526c656d707479206f7074696f6e7360981b6044820152606401610c29565b6117b261019d600061334f565b60005b828110156118345761019d8484838181106117d2576117d261396d565b90506020020160208101906117e79190613a2a565b8154600181018355600092835260209092206008830401805463ffffffff60079094166004026101000a938402191660ff929092169092021790558061182c81613a4d565b9150506117b5565b50505050565b600080516020613d97833981519152611852816122ba565b61185a612353565b6001600160a01b0383166000908152610199602052604090206004015460ff166001146118995760405162461bcd60e51b8152600401610c2990613a66565b6001600160a01b0383166000908152610199602052604081205462015180906118c2908561391b565b6118cc919061392e565b90506118d884826112aa565b1561198d576001600160a01b0384166000908152610199602052604090206004018054600191908290611917908290610100900463ffffffff16613a8f565b825463ffffffff91821661010093840a908102908302199091161790925561019d546001600160a01b038816600090815261019960205260409020600401549190910490911610905061198d576001600160a01b038416600090815261019960205260409020600401805464ffffffff00191690555b6001600160a01b0384166000818152610199602052604090819020859055517fb2a82fce6d8c7a633efe9579f77b4edb96bfdf171a49bfc2ce666dc543a1f500906119db9086815260200190565b60405180910390a250505050565b6001600160a01b0381166000908152610199602052604090206003015480611a115746610955565b919050565b600080516020613d97833981519152611a2e816122ba565b611a36612353565b61019c546001600160a01b031615801590611abe575061019c5460405163639e625760e11b81526001600160a01b039091169063c73cc4ae90611a7d9085906004016135e0565b602060405180830381865afa158015611a9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611abe9190613950565b15611b275761019c5460405163c375c2ef60e01b81526001600160a01b039091169063c375c2ef90611af49085906004016135e0565b600060405180830381600087803b158015611b0e57600080fd5b505af1158015611b22573d6000803e3d6000fd5b505050505b611b30826124c7565b6040516001600160a01b038316907f8d30d41865a0b811b9545d879520d2dde9f4cc49e4241f486ad9752bc904b56590600090a25050565b600080516020613d97833981519152611b80816122ba565b611b88612353565b61019c546001600160a01b031615801590611c10575061019c5460405163fe575a8760e01b81526001600160a01b039091169063fe575a8790611bcf9085906004016135e0565b602060405180830381865afa158015611bec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c109190613950565b15611c795761019c546040516363513b6160e11b81526001600160a01b039091169063c6a276c290611c469085906004016135e0565b600060405180830381600087803b158015611c6057600080fd5b505af1158015611c74573d6000803e3d6000fd5b505050505b6001600160a01b03821660008181526101996020526040808220600401805460ff19169055517f1747ca720b1a174a464b6513ace29b1d3190b5f632b9f34147017c81425bfde89190a25050565b6001600160a01b0381166000908152610199602052604081206004015460ff16600203611cf657506001919050565b61019c546001600160a01b031615610d175761019c5460405163639e625760e11b81526001600160a01b039091169063c73cc4ae90611d399085906004016135e0565b602060405180830381865afa925050508015611d72575060408051601f3d908101601f19168201909252611d6f91810190613950565b60015b61095557506000919050565b61019d8181548110611d8f57600080fd5b9060005260206000209060089182820401919006600402915054906101000a900463ffffffff1681565b611dc233610f38565b611dde5760405162461bcd60e51b8152600401610c2990613a66565b611de781610f38565b158015611dfa5750611df881612247565b155b611e385760405162461bcd60e51b815260206004820152600f60248201526e1a5b9d985b1a59081858d8dbdd5b9d608a1b6044820152606401610c29565b6001600160a01b03818116600090815261019b60205260409020541615611e955760405162461bcd60e51b8152602060048201526011602482015270185b1c9958591e4818dbdb9b9958dd1959607a1b6044820152606401610c29565b6001600160a01b038116600081815261019b602052604080822080546001600160a01b0319163390811790915590519092917f18f7736ef54539debd9afd3c9500b106e12ae7c70e685f5a5efd727b1ce1d54c91a350565b336001600160a01b0384161480611f175750611f17600080516020613d9783398151915233611725565b611f545760405162461bcd60e51b815260206004820152600e60248201526d1b9bdd08185d5d1a1bdc9a5e995960921b6044820152606401610c29565b610a698383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612b8d92505050565b611f9d82610b95565b611fa6816122ba565b610a6983836128ea565b611fb8612353565b611fc133610f38565b611fdd5760405162461bcd60e51b8152600401610c2990613a66565b611fe6336124c7565b565b60675460405163bf40fac160e01b815260206004820152600a60248201526923a7a7a22227a62620a960b11b60448201526000916001600160a01b03169063bf40fac190606401602060405180830381865afa15801561204c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120709190613874565b905090565b6001600160a01b03811660009081526101996020526040812054156120b157506001600160a01b03166000908152610199602052604090205490565b61019c546001600160a01b031615610d175761019c546040516370f1b05d60e11b81526001600160a01b039091169063e1e360ba906120f49085906004016135e0565b602060405180830381865afa925050508015611d72575060408051601f3d908101601f19168201909252611d6f91810190613ab3565b600080516020613d97833981519152612142816122ba565b61214a612353565b6121558585856127a0565b8115612178576001600160a01b0385166000908152610199602052604090208290555b5050505050565b61019960205260009081526040902080546001820154600283018054929391926121a890613983565b80601f01602080910402602001604051908101604052809291908181526020018280546121d490613983565b80156122215780601f106121f657610100808354040283529160200191612221565b820191906000526020600020905b81548152906001019060200180831161220457829003601f168201915b50505050600383015460049093015491929160ff81169150610100900463ffffffff1686565b6001600160a01b0381166000908152610199602052604081206004015460ff908116900361227757506001919050565b61019c546001600160a01b031615610d175761019c5460405163fe575a8760e01b81526001600160a01b039091169063fe575a8790611d399085906004016135e0565b6109978133612e0d565b6122cc612353565b610130805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586123023390565b60405161230f91906135e0565b60405180910390a1565b612321612e66565b610130805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612302565b6101305460ff1615611fe65760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610c29565b6001600160a01b0382166000908152610199602052604090206004015460ff16156123fc5760405162461bcd60e51b8152602060048201526012602482015271616c7265616479206861732073746174757360701b6044820152606401610c29565b600161019660008282546124109190613acc565b90915550506001600160a01b038216600090815261019960209081526040808320600481018054426001808501829055908455600390930187905564ffffffffff1916909117905561019b909152902080546001600160a01b0319169055813b1561248f57600161019760008282546124899190613acc565b90915550505b6040516001600160a01b038316907fee1504a83b6d4a361f4c1dc78ab59bfa30d6a3b6612c403e86bb01ef2984295f90600090a25050565b6001600160a01b0381166000908152610199602052604090206004015460ff166001148061251457506001600160a01b0381166000908152610199602052604090206004015460ff166002145b156126b4576001610196600082825461252d919061391b565b9091555050803b151580156125455750600061019754115b15612564576001610197600082825461255e919061391b565b90915550505b6001600160a01b038116600090815261019960205260408120600201805461258b90613983565b80601f01602080910402602001604051908101604052809291908181526020018280546125b790613983565b80156126045780601f106125d957610100808354040283529160200191612604565b820191906000526020600020905b8154815290600101906020018083116125e757829003601f168201915b505083516020808601919091206001600160a01b03881660009081526101999092526040822082815560018101839055959650949350915061264b90506002830182613374565b506000600382018190556004909101805464ffffffffff1916905581815261019a602052604080822080546001600160a01b0319169055516001600160a01b038516917f270d9b30cf5b0793bbfd54c9d5b94aeb49462b8148399000265144a8722da6b691a250505b61019c546001600160a01b03161580159061273c575061019c54604051633af32abf60e01b81526001600160a01b0390911690633af32abf906126fb9084906004016135e0565b602060405180830381865afa158015612718573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061273c9190613950565b156109975761019c5460405163291d954960e01b81526001600160a01b039091169063291d9549906127729084906004016135e0565b600060405180830381600087803b15801561278c57600080fd5b505af1158015612178573d6000803e3d6000fd5b8151602080840191909120600081815261019a9092526040909120546001600160a01b0316156127e25760405162461bcd60e51b8152600401610c2990613adf565b6001600160a01b0384166000908152610199602052604090206002016128088482613b5d565b50600081815261019a6020526040902080546001600160a01b0319166001600160a01b038616179055611834848361239a565b606780546001600160a01b0319166001600160a01b038316179055610997610a6e565b61098182825b61286e8282611725565b61098157600082815260fe602090815260408083206001600160a01b03851684529091529020805460ff191660011790556128a63390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6128f48282611725565b1561098157600082815260fe602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600080516020613df7833981519152546001600160a01b031690565b610997612eb0565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156129a857610a6983612f73565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612a02575060408051601f3d908101601f191682019092526129ff91810190613ab3565b60015b612a655760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610c29565b600080516020613df78339815191528114612ad45760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610c29565b50610a6983838361300d565b6001600160a01b03163b151590565b600054610100900460ff16611fe65760405162461bcd60e51b8152600401610c2990613c1c565b600054610100900460ff16612b3d5760405162461bcd60e51b8152600401610c2990613c1c565b610130805460ff19169055565b600054610100900460ff16612b715760405162461bcd60e51b8152600401610c2990613c1c565b8151602092830120815191909201206101629190915561016355565b612b9682610f38565b612bb25760405162461bcd60e51b8152600401610c2990613a66565b6000815111612bef5760405162461bcd60e51b815260206004820152600960248201526864696420656d70747960b81b6044820152606401610c29565b8051602080830191909120600081815261019a9092526040909120546001600160a01b031615612c315760405162461bcd60e51b8152600401610c2990613adf565b61019c546001600160a01b031615612d635761019c546040516367c7593760e01b8152600481018390526000916001600160a01b0316906367c7593790602401602060405180830381865afa925050508015612caa575060408051601f3d908101601f19168201909252612ca791810190613874565b60015b15612cb25790505b6001600160a01b0381161580612cd95750836001600160a01b0316816001600160a01b0316145b80612d0a57506001600160a01b0381166000908152610199602052604081206002018054612d0690613983565b9050115b612d615760405162461bcd60e51b815260206004820152602260248201527f44494420616c72656164792072656769737465726564206f6c644964656e7469604482015261747960f01b6064820152608401610c29565b505b6001600160a01b038316600090815261019960205260408082209051612d8c9160020190613c67565b6040805191829003909120600081815261019a602090815283822080546001600160a01b03191690556001600160a01b0388168252610199905291909120909150600201612dda8482613b5d565b5050600090815261019a6020526040902080546001600160a01b0319166001600160a01b03939093169290921790915550565b612e178282611725565b61098157612e2481613032565b612e2f836020613044565b604051602001612e40929190613cdd565b60408051601f198184030181529082905262461bcd60e51b8252610c29916004016135cd565b6101305460ff16611fe65760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610c29565b60655460408051632d77bef360e11b8152905133926001600160a01b031691635aef7de69160048083019260209291908290030181865afa158015612ef9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f1d9190613874565b6001600160a01b031614611fe65760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206176617461722063616e2063616c6c2074686973206d6574686f646044820152606401610c29565b612f7c81612ae0565b612fde5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610c29565b600080516020613df783398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b613016836131df565b6000825111806130235750805b15610a6957611834838361321f565b60606109556001600160a01b03831660145b60606000613053836002613d4c565b61305e906002613acc565b6001600160401b038111156130755761307561344a565b6040519080825280601f01601f19166020018201604052801561309f576020820181803683370190505b509050600360fc1b816000815181106130ba576130ba61396d565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106130e9576130e961396d565b60200101906001600160f81b031916908160001a905350600061310d846002613d4c565b613118906001613acc565b90505b6001811115613190576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061314c5761314c61396d565b1a60f81b8282815181106131625761316261396d565b60200101906001600160f81b031916908160001a90535060049490941c9361318981613d63565b905061311b565b5083156110325760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610c29565b6131e881612f73565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061322a83612ae0565b6132855760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610c29565b600080846001600160a01b0316846040516132a09190613d7a565b600060405180830381855af49150503d80600081146132db576040519150601f19603f3d011682016040523d82523d6000602084013e6132e0565b606091505b50915091506133088282604051806060016040528060278152602001613e5e60279139613311565b95945050505050565b60608315613320575081611032565b61103283838151156133355781518083602001fd5b8060405162461bcd60e51b8152600401610c2991906135cd565b50805460008255600701600890049060005260206000209081019061099791906133aa565b50805461338090613983565b6000825580601f10613390575050565b601f01602090049060005260206000209081019061099791905b5b808211156133bf57600081556001016133ab565b5090565b6000602082840312156133d557600080fd5b81356001600160e01b03198116811461103257600080fd5b801515811461099757600080fd5b60006020828403121561340d57600080fd5b8135611032816133ed565b6001600160a01b038116811461099757600080fd5b60006020828403121561343f57600080fd5b813561103281613418565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156134885761348861344a565b604052919050565b60006001600160401b038211156134a9576134a961344a565b50601f01601f191660200190565b60006134ca6134c584613490565b613460565b90508281528383830111156134de57600080fd5b828260208301376000602084830101529392505050565b600082601f83011261350657600080fd5b611032838335602085016134b7565b6000806040838503121561352857600080fd5b823561353381613418565b915060208301356001600160401b0381111561354e57600080fd5b61355a858286016134f5565b9150509250929050565b60006020828403121561357657600080fd5b5035919050565b60005b83811015613598578181015183820152602001613580565b50506000910152565b600081518084526135b981602086016020860161357d565b601f01601f19169290920160200192915050565b60208152600061103260208301846135a1565b6001600160a01b0391909116815260200190565b6000806040838503121561360757600080fd5b82359150602083013561361981613418565b809150509250929050565b6000806040838503121561363757600080fd5b823561364281613418565b9150602083013561361981613418565b6000806040838503121561366557600080fd5b823561367081613418565b946020939093013593505050565b6000806040838503121561369157600080fd5b823561369c81613418565b915060208301356001600160401b038111156136b757600080fd5b8301601f810185136136c857600080fd5b61355a858235602084016134b7565b600080602083850312156136ea57600080fd5b82356001600160401b038082111561370157600080fd5b818501915085601f83011261371557600080fd5b81358181111561372457600080fd5b8660208260051b850101111561373957600080fd5b60209290920196919550909350505050565b60008060006040848603121561376057600080fd5b833561376b81613418565b925060208401356001600160401b038082111561378757600080fd5b818601915086601f83011261379b57600080fd5b8135818111156137aa57600080fd5b8760208285010111156137bc57600080fd5b6020830194508093505050509250925092565b600080600080608085870312156137e557600080fd5b84356137f081613418565b935060208501356001600160401b0381111561380b57600080fd5b613817878288016134f5565b949794965050505060408301359260600135919050565b86815285602082015260c06040820152600061384d60c08301876135a1565b60608301959095525060ff92909216608083015263ffffffff1660a0909101529392505050565b60006020828403121561388657600080fd5b815161103281613418565b6020808252602c90820152600080516020613db783398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c90820152600080516020613db783398151915260408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b8181038181111561095557610955613905565b60008261394b57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561396257600080fd5b8151611032816133ed565b634e487b7160e01b600052603260045260246000fd5b600181811c9082168061399757607f821691505b6020821081036139b757634e487b7160e01b600052602260045260246000fd5b50919050565b6000602082840312156139cf57600080fd5b81516001600160401b038111156139e557600080fd5b8201601f810184136139f657600080fd5b8051613a046134c582613490565b818152856020838501011115613a1957600080fd5b61330882602083016020860161357d565b600060208284031215613a3c57600080fd5b813560ff8116811461103257600080fd5b600060018201613a5f57613a5f613905565b5060010190565b6020808252600f908201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b604082015260600190565b63ffffffff818116838216019080821115613aac57613aac613905565b5092915050565b600060208284031215613ac557600080fd5b5051919050565b8082018082111561095557610955613905565b60208082526016908201527511125108185b1c9958591e481c9959da5cdd195c995960521b604082015260600190565b601f821115610a6957600081815260208120601f850160051c81016020861015613b365750805b601f850160051c820191505b81811015613b5557828155600101613b42565b505050505050565b81516001600160401b03811115613b7657613b7661344a565b613b8a81613b848454613983565b84613b0f565b602080601f831160018114613bbf5760008415613ba75750858301515b600019600386901b1c1916600185901b178555613b55565b600085815260208120601f198616915b82811015613bee57888601518255948401946001909101908401613bcf565b5085821015613c0c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000808354613c7581613983565b60018281168015613c8d5760018114613ca257613cd1565b60ff1984168752821515830287019450613cd1565b8760005260208060002060005b85811015613cc85781548a820152908401908201613caf565b50505082870194505b50929695505050505050565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b815260008351613d0f81601785016020880161357d565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351613d4081602884016020880161357d565b01602801949350505050565b808202811582820484141761095557610955613905565b600081613d7257613d72613905565b506000190190565b60008251613d8c81846020870161357d565b919091019291505056fe091941537c453917ef5b0c67f46f29060aca926ebd752fe441d5625e85c3a57646756e6374696f6e206d7573742062652063616c6c6564207468726f756768200b0f1f48172a2124d5545a38711e7e9d2e7a6c0b46b85cf1c1788e7a11ba5bf2360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc436f6e6e6563744964656e7469747928616464726573732077686974656c69737465642c6164647265737320636f6e6e65637465642c75696e7432353620646561646c696e6529416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212205a6c8c6a4ae389e5596f7baa926bbf7092f41f3ccc63c590b9a2b7011247957064736f6c63430008130033",
1159
+ "deployedBytecode": "0x60806040526004361061025a5760003560e01c806301ffc9a71461025f57806302329a291461029457806308e0d29d146102b657806310154bad146102d6578063188efc16146102f65780631aaff63c146103165780631b027099146103465780631b3c90a814610366578063223668441461037b578063248a9ca31461038f578063291d9549146103af5780632b14dda8146103cf5780632cec5330146103ef5780632d0e9b46146104115780632f2ff15d1461043e57806336568abe1461045e5780633659cfe61461047e57806337a1a9871461049e5780633af32abf146104be5780633e6326fc146104de5780634125f0f2146104fe5780634162169f1461051f578063485cc9551461053f5780634a03813f1461055f5780634f1ef2861461057f57806352d1902d1461059257806354f9f7a3146105a75780635aef7de6146105c75780635c975abb146105e75780635f539d6914610600578063613200401461062057806367c759371461065757806391d148541461068e578063925e8c1a146106ae57806396a1ef79146106ce578063a061922d146106ee578063a217fddf1461070e578063b2a1de2214610723578063b30f7e7f1461073a578063c375c2ef14610751578063c6a276c214610771578063c73cc4ae14610791578063cadef5ac146107b1578063d21685f4146107e6578063d326281614610806578063d547741f14610826578063d6cd947314610846578063e1758bd81461085b578063e1e360ba14610870578063e63ab1e914610890578063e737031a146108b2578063f653b81e146108d2578063fe575a8714610904575b600080fd5b34801561026b57600080fd5b5061027f61027a3660046133c3565b610924565b60405190151581526020015b60405180910390f35b3480156102a057600080fd5b506102b46102af3660046133fb565b61095b565b005b3480156102c257600080fd5b506102b46102d136600461342d565b61098d565b3480156102e257600080fd5b506102b46102f136600461342d565b61099a565b34801561030257600080fd5b506102b461031136600461342d565b6109c4565b34801561032257600080fd5b50610338600080516020613d9783398151915281565b60405190815260200161028b565b34801561035257600080fd5b506102b4610361366004613515565b610a3e565b34801561037257600080fd5b506102b4610a6e565b34801561038757600080fd5b50600161027f565b34801561039b57600080fd5b506103386103aa366004613564565b610b95565b3480156103bb57600080fd5b506102b46103ca36600461342d565b610baa565b3480156103db57600080fd5b506102b46103ea36600461342d565b610bd3565b3480156103fb57600080fd5b50610404610c9d565b60405161028b91906135cd565b34801561041d57600080fd5b5061043161042c36600461342d565b610cb9565b60405161028b91906135e0565b34801561044a57600080fd5b506102b46104593660046135f4565b610d1f565b34801561046a57600080fd5b506102b46104793660046135f4565b610d3b565b34801561048a57600080fd5b506102b461049936600461342d565b610db5565b3480156104aa57600080fd5b506102b46104b936600461342d565b610e7a565b3480156104ca57600080fd5b5061027f6104d936600461342d565b610f38565b3480156104ea57600080fd5b50606754610431906001600160a01b031681565b34801561050a57600080fd5b5061019c54610431906001600160a01b031681565b34801561052b57600080fd5b50606554610431906001600160a01b031681565b34801561054b57600080fd5b506102b461055a366004613624565b611042565b34801561056b57600080fd5b5061027f61057a366004613652565b6112aa565b6102b461058d36600461367e565b611365565b34801561059e57600080fd5b5061033861141a565b3480156105b357600080fd5b506104046105c236600461342d565b6114c8565b3480156105d357600080fd5b50606654610431906001600160a01b031681565b3480156105f357600080fd5b506101305460ff1661027f565b34801561060c57600080fd5b506102b461061b36600461342d565b61165c565b34801561062c57600080fd5b5061043161063b36600461342d565b61019b602052600090815260409020546001600160a01b031681565b34801561066357600080fd5b50610431610672366004613564565b61019a602052600090815260409020546001600160a01b031681565b34801561069a57600080fd5b5061027f6106a93660046135f4565b611725565b3480156106ba57600080fd5b506102b46106c93660046136d7565b611750565b3480156106da57600080fd5b506102b46106e9366004613652565b61183a565b3480156106fa57600080fd5b5061033861070936600461342d565b6119e9565b34801561071a57600080fd5b50610338600081565b34801561072f57600080fd5b506103386101965481565b34801561074657600080fd5b506103386101975481565b34801561075d57600080fd5b506102b461076c36600461342d565b611a16565b34801561077d57600080fd5b506102b461078c36600461342d565b611b68565b34801561079d57600080fd5b5061027f6107ac36600461342d565b611cc7565b3480156107bd57600080fd5b506107d16107cc366004613564565b611d7e565b60405163ffffffff909116815260200161028b565b3480156107f257600080fd5b506102b461080136600461342d565b611db9565b34801561081257600080fd5b506102b461082136600461374b565b611eed565b34801561083257600080fd5b506102b46108413660046135f4565b611f94565b34801561085257600080fd5b506102b4611fb0565b34801561086757600080fd5b50610431611fe8565b34801561087c57600080fd5b5061033861088b36600461342d565b612075565b34801561089c57600080fd5b50610338600080516020613dd783398151915281565b3480156108be57600080fd5b506102b46108cd3660046137cf565b61212a565b3480156108de57600080fd5b506108f26108ed36600461342d565b61217f565b60405161028b9695949392919061382e565b34801561091057600080fd5b5061027f61091f36600461342d565b612247565b60006001600160e01b03198216637965db0b60e01b148061095557506301ffc9a760e01b6001600160e01b03198316145b92915050565b600080516020613dd7833981519152610973816122ba565b8115610985576109816122c4565b5050565b610981612319565b610997814261183a565b50565b600080516020613d978339815191526109b2816122ba565b6109ba612353565b610981824661239a565b600080516020613d978339815191526109dc816122ba565b6109e4612353565b6109ed826124c7565b6001600160a01b03821660008181526101996020526040808220600401805460ff191660ff179055517f44d5fe68b00f68950fb9c1ff0a61ef7f747b1a36359a7e3a7f3324db4b8789679190a25050565b600080516020613d97833981519152610a56816122ba565b610a5e612353565b610a698383466127a0565b505050565b60675460405163bf40fac160e01b815260206004820152600a60248201526921a7a72a2927a62622a960b11b60448201526001600160a01b039091169063bf40fac190606401602060405180830381865afa158015610ad1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af59190613874565b606580546001600160a01b0319166001600160a01b0392909216918217905560408051632d77bef360e11b81529051635aef7de6916004808201926020929091908290030181865afa158015610b4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b739190613874565b606680546001600160a01b0319166001600160a01b0392909216919091179055565b600090815260fe602052604090206001015490565b600080516020613d97833981519152610bc2816122ba565b610bca612353565b610981826124c7565b6000610bde816122ba565b6067546001600160a01b031615610c325760405162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b60448201526064015b60405180910390fd5b610c3b8261283b565b606654610c53906000906001600160a01b031661285e565b606654610c7890600080516020613dd7833981519152906001600160a01b031661285e565b60665461098190600080516020613d97833981519152906001600160a01b031661285e565b604051806080016040528060478152602001613e176047913981565b6000610cc482610f38565b15610ccd575090565b6001600160a01b03808316600090815261019b6020526040902054610cf29116610f38565b15610d1757506001600160a01b03908116600090815261019b60205260409020541690565b506000919050565b610d2882610b95565b610d31816122ba565b610a698383612864565b6001600160a01b0381163314610dab5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610c29565b61098182826128ea565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610dfd5760405162461bcd60e51b8152600401610c2990613891565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610e2f612951565b6001600160a01b031614610e555760405162461bcd60e51b8152600401610c29906138cb565b610e5e8161296d565b6040805160008082526020820190925261099791839190612975565b6001600160a01b03818116600090815261019b602052604090205416331480610eab5750336001600160a01b038216145b610ee65760405162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5e995960a21b6044820152606401610c29565b6001600160a01b038116600081815261019b602052604080822080546001600160a01b0319169055513392917f7cdef5f9c5cb8ce728661ede956fef26cb91eb4d7d2180cc041b73f9fef568d291a350565b6001600160a01b0381166000908152610199602052604081205481906201518090610f63904261391b565b610f6d919061392e565b6001600160a01b0384166000908152610199602052604090206004015490915060ff16600103610fa957610fa183826112aa565b159392505050565b61019c546001600160a01b0316156110395761019c54604051633af32abf60e01b81526001600160a01b0390911690633af32abf90610fec9086906004016135e0565b602060405180830381865afa925050508015611025575060408051601f3d908101601f1916820190925261102291810190613950565b60015b6110325750600092915050565b9392505050565b50600092915050565b600054610100900460ff16158080156110625750600054600160ff909116105b80611083575061107130612ae0565b158015611083575060005460ff166001145b6110e65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610c29565b6000805460ff191660011790558015611109576000805461ff0019166101001790555b611111612aef565b611119612b16565b611160604051806040016040528060088152602001674964656e7469747960c01b815250604051806040016040528060058152602001640312e302e360dc1b815250612b4a565b61116b60008461285e565b611183600080516020613dd78339815191528461285e565b61119b600080516020613d978339815191528461285e565b61019c80546001600160a01b0384166001600160a01b031990911617905561019d805460018181018355600083905260088083047f71880bb8535eda3be1bc3614789b84ba72ab02d5ae26ba282fa1178bb7fea1e6908101805463ffffffff60046007978816810261010090810a8381021990941690931790935587548087018955858104850180549189168502840a808a0290840219909216919091179055875495860190975592840490910180549390941602900a60b48102930219169190911790558015610a69576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b61019d546001600160a01b03831660009081526101996020526040812060040154909161010090910463ffffffff16106112e657506000610955565b6001600160a01b0383166000908152610199602052604081206004015461019d80549091610100900463ffffffff169081106113245761132461396d565b6000918252602090912060088204015460079091166004026101000a900463ffffffff16905080831061135b576001915050610955565b5060009392505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036113ad5760405162461bcd60e51b8152600401610c2990613891565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166113df612951565b6001600160a01b0316146114055760405162461bcd60e51b8152600401610c29906138cb565b61140e8261296d565b61098182826001612975565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146114b55760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401610c29565b50600080516020613df783398151915290565b6001600160a01b0381166000908152610199602052604090206002018054606091906114f390613983565b80601f016020809104026020016040519081016040528092919081815260200182805461151f90613983565b801561156c5780601f106115415761010080835404028352916020019161156c565b820191906000526020600020905b81548152906001019060200180831161154f57829003601f168201915b50508351602080860191909120600081815261019a909252604090912054949550936001600160a01b0380881691160392506115ab9150505750919050565b61019c546001600160a01b0316156116465761019c546040516354f9f7a360e01b81526001600160a01b03909116906354f9f7a3906115ee9086906004016135e0565b600060405180830381865afa92505050801561162c57506040513d6000823e601f3d908101601f1916820160405261162991908101906139bd565b60015b611032575050604080516020810190915260008152919050565b5050604080516020810190915260008152919050565b600080516020613d97833981519152611674816122ba565b61167c612353565b813b6116ca5760405162461bcd60e51b815260206004820152601f60248201527f476976656e2061646472657373206973206e6f74206120636f6e7472616374006044820152606401610c29565b6116d4824661239a565b6001600160a01b03821660008181526101996020526040808220600401805460ff19166002179055517f89c66952b48f3e96bf1d8ba1b63189520fd988a6979b8b740bd5c5d8dc53e2059190a25050565b600091825260fe602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600080516020613d97833981519152611768816122ba565b816117a55760405162461bcd60e51b815260206004820152600d60248201526c656d707479206f7074696f6e7360981b6044820152606401610c29565b6117b261019d600061334f565b60005b828110156118345761019d8484838181106117d2576117d261396d565b90506020020160208101906117e79190613a2a565b8154600181018355600092835260209092206008830401805463ffffffff60079094166004026101000a938402191660ff929092169092021790558061182c81613a4d565b9150506117b5565b50505050565b600080516020613d97833981519152611852816122ba565b61185a612353565b6001600160a01b0383166000908152610199602052604090206004015460ff166001146118995760405162461bcd60e51b8152600401610c2990613a66565b6001600160a01b0383166000908152610199602052604081205462015180906118c2908561391b565b6118cc919061392e565b90506118d884826112aa565b1561198d576001600160a01b0384166000908152610199602052604090206004018054600191908290611917908290610100900463ffffffff16613a8f565b825463ffffffff91821661010093840a908102908302199091161790925561019d546001600160a01b038816600090815261019960205260409020600401549190910490911610905061198d576001600160a01b038416600090815261019960205260409020600401805464ffffffff00191690555b6001600160a01b0384166000818152610199602052604090819020859055517fb2a82fce6d8c7a633efe9579f77b4edb96bfdf171a49bfc2ce666dc543a1f500906119db9086815260200190565b60405180910390a250505050565b6001600160a01b0381166000908152610199602052604090206003015480611a115746610955565b919050565b600080516020613d97833981519152611a2e816122ba565b611a36612353565b61019c546001600160a01b031615801590611abe575061019c5460405163639e625760e11b81526001600160a01b039091169063c73cc4ae90611a7d9085906004016135e0565b602060405180830381865afa158015611a9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611abe9190613950565b15611b275761019c5460405163c375c2ef60e01b81526001600160a01b039091169063c375c2ef90611af49085906004016135e0565b600060405180830381600087803b158015611b0e57600080fd5b505af1158015611b22573d6000803e3d6000fd5b505050505b611b30826124c7565b6040516001600160a01b038316907f8d30d41865a0b811b9545d879520d2dde9f4cc49e4241f486ad9752bc904b56590600090a25050565b600080516020613d97833981519152611b80816122ba565b611b88612353565b61019c546001600160a01b031615801590611c10575061019c5460405163fe575a8760e01b81526001600160a01b039091169063fe575a8790611bcf9085906004016135e0565b602060405180830381865afa158015611bec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c109190613950565b15611c795761019c546040516363513b6160e11b81526001600160a01b039091169063c6a276c290611c469085906004016135e0565b600060405180830381600087803b158015611c6057600080fd5b505af1158015611c74573d6000803e3d6000fd5b505050505b6001600160a01b03821660008181526101996020526040808220600401805460ff19169055517f1747ca720b1a174a464b6513ace29b1d3190b5f632b9f34147017c81425bfde89190a25050565b6001600160a01b0381166000908152610199602052604081206004015460ff16600203611cf657506001919050565b61019c546001600160a01b031615610d175761019c5460405163639e625760e11b81526001600160a01b039091169063c73cc4ae90611d399085906004016135e0565b602060405180830381865afa925050508015611d72575060408051601f3d908101601f19168201909252611d6f91810190613950565b60015b61095557506000919050565b61019d8181548110611d8f57600080fd5b9060005260206000209060089182820401919006600402915054906101000a900463ffffffff1681565b611dc233610f38565b611dde5760405162461bcd60e51b8152600401610c2990613a66565b611de781610f38565b158015611dfa5750611df881612247565b155b611e385760405162461bcd60e51b815260206004820152600f60248201526e1a5b9d985b1a59081858d8dbdd5b9d608a1b6044820152606401610c29565b6001600160a01b03818116600090815261019b60205260409020541615611e955760405162461bcd60e51b8152602060048201526011602482015270185b1c9958591e4818dbdb9b9958dd1959607a1b6044820152606401610c29565b6001600160a01b038116600081815261019b602052604080822080546001600160a01b0319163390811790915590519092917f18f7736ef54539debd9afd3c9500b106e12ae7c70e685f5a5efd727b1ce1d54c91a350565b336001600160a01b0384161480611f175750611f17600080516020613d9783398151915233611725565b611f545760405162461bcd60e51b815260206004820152600e60248201526d1b9bdd08185d5d1a1bdc9a5e995960921b6044820152606401610c29565b610a698383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612b8d92505050565b611f9d82610b95565b611fa6816122ba565b610a6983836128ea565b611fb8612353565b611fc133610f38565b611fdd5760405162461bcd60e51b8152600401610c2990613a66565b611fe6336124c7565b565b60675460405163bf40fac160e01b815260206004820152600a60248201526923a7a7a22227a62620a960b11b60448201526000916001600160a01b03169063bf40fac190606401602060405180830381865afa15801561204c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120709190613874565b905090565b6001600160a01b03811660009081526101996020526040812054156120b157506001600160a01b03166000908152610199602052604090205490565b61019c546001600160a01b031615610d175761019c546040516370f1b05d60e11b81526001600160a01b039091169063e1e360ba906120f49085906004016135e0565b602060405180830381865afa925050508015611d72575060408051601f3d908101601f19168201909252611d6f91810190613ab3565b600080516020613d97833981519152612142816122ba565b61214a612353565b6121558585856127a0565b8115612178576001600160a01b0385166000908152610199602052604090208290555b5050505050565b61019960205260009081526040902080546001820154600283018054929391926121a890613983565b80601f01602080910402602001604051908101604052809291908181526020018280546121d490613983565b80156122215780601f106121f657610100808354040283529160200191612221565b820191906000526020600020905b81548152906001019060200180831161220457829003601f168201915b50505050600383015460049093015491929160ff81169150610100900463ffffffff1686565b6001600160a01b0381166000908152610199602052604081206004015460ff908116900361227757506001919050565b61019c546001600160a01b031615610d175761019c5460405163fe575a8760e01b81526001600160a01b039091169063fe575a8790611d399085906004016135e0565b6109978133612e0d565b6122cc612353565b610130805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586123023390565b60405161230f91906135e0565b60405180910390a1565b612321612e66565b610130805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612302565b6101305460ff1615611fe65760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610c29565b6001600160a01b0382166000908152610199602052604090206004015460ff16156123fc5760405162461bcd60e51b8152602060048201526012602482015271616c7265616479206861732073746174757360701b6044820152606401610c29565b600161019660008282546124109190613acc565b90915550506001600160a01b038216600090815261019960209081526040808320600481018054426001808501829055908455600390930187905564ffffffffff1916909117905561019b909152902080546001600160a01b0319169055813b1561248f57600161019760008282546124899190613acc565b90915550505b6040516001600160a01b038316907fee1504a83b6d4a361f4c1dc78ab59bfa30d6a3b6612c403e86bb01ef2984295f90600090a25050565b6001600160a01b0381166000908152610199602052604090206004015460ff166001148061251457506001600160a01b0381166000908152610199602052604090206004015460ff166002145b156126b4576001610196600082825461252d919061391b565b9091555050803b151580156125455750600061019754115b15612564576001610197600082825461255e919061391b565b90915550505b6001600160a01b038116600090815261019960205260408120600201805461258b90613983565b80601f01602080910402602001604051908101604052809291908181526020018280546125b790613983565b80156126045780601f106125d957610100808354040283529160200191612604565b820191906000526020600020905b8154815290600101906020018083116125e757829003601f168201915b505083516020808601919091206001600160a01b03881660009081526101999092526040822082815560018101839055959650949350915061264b90506002830182613374565b506000600382018190556004909101805464ffffffffff1916905581815261019a602052604080822080546001600160a01b0319169055516001600160a01b038516917f270d9b30cf5b0793bbfd54c9d5b94aeb49462b8148399000265144a8722da6b691a250505b61019c546001600160a01b03161580159061273c575061019c54604051633af32abf60e01b81526001600160a01b0390911690633af32abf906126fb9084906004016135e0565b602060405180830381865afa158015612718573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061273c9190613950565b156109975761019c5460405163291d954960e01b81526001600160a01b039091169063291d9549906127729084906004016135e0565b600060405180830381600087803b15801561278c57600080fd5b505af1158015612178573d6000803e3d6000fd5b8151602080840191909120600081815261019a9092526040909120546001600160a01b0316156127e25760405162461bcd60e51b8152600401610c2990613adf565b6001600160a01b0384166000908152610199602052604090206002016128088482613b5d565b50600081815261019a6020526040902080546001600160a01b0319166001600160a01b038616179055611834848361239a565b606780546001600160a01b0319166001600160a01b038316179055610997610a6e565b61098182825b61286e8282611725565b61098157600082815260fe602090815260408083206001600160a01b03851684529091529020805460ff191660011790556128a63390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6128f48282611725565b1561098157600082815260fe602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600080516020613df7833981519152546001600160a01b031690565b610997612eb0565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156129a857610a6983612f73565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612a02575060408051601f3d908101601f191682019092526129ff91810190613ab3565b60015b612a655760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610c29565b600080516020613df78339815191528114612ad45760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610c29565b50610a6983838361300d565b6001600160a01b03163b151590565b600054610100900460ff16611fe65760405162461bcd60e51b8152600401610c2990613c1c565b600054610100900460ff16612b3d5760405162461bcd60e51b8152600401610c2990613c1c565b610130805460ff19169055565b600054610100900460ff16612b715760405162461bcd60e51b8152600401610c2990613c1c565b8151602092830120815191909201206101629190915561016355565b612b9682610f38565b612bb25760405162461bcd60e51b8152600401610c2990613a66565b6000815111612bef5760405162461bcd60e51b815260206004820152600960248201526864696420656d70747960b81b6044820152606401610c29565b8051602080830191909120600081815261019a9092526040909120546001600160a01b031615612c315760405162461bcd60e51b8152600401610c2990613adf565b61019c546001600160a01b031615612d635761019c546040516367c7593760e01b8152600481018390526000916001600160a01b0316906367c7593790602401602060405180830381865afa925050508015612caa575060408051601f3d908101601f19168201909252612ca791810190613874565b60015b15612cb25790505b6001600160a01b0381161580612cd95750836001600160a01b0316816001600160a01b0316145b80612d0a57506001600160a01b0381166000908152610199602052604081206002018054612d0690613983565b9050115b612d615760405162461bcd60e51b815260206004820152602260248201527f44494420616c72656164792072656769737465726564206f6c644964656e7469604482015261747960f01b6064820152608401610c29565b505b6001600160a01b038316600090815261019960205260408082209051612d8c9160020190613c67565b6040805191829003909120600081815261019a602090815283822080546001600160a01b03191690556001600160a01b0388168252610199905291909120909150600201612dda8482613b5d565b5050600090815261019a6020526040902080546001600160a01b0319166001600160a01b03939093169290921790915550565b612e178282611725565b61098157612e2481613032565b612e2f836020613044565b604051602001612e40929190613cdd565b60408051601f198184030181529082905262461bcd60e51b8252610c29916004016135cd565b6101305460ff16611fe65760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610c29565b60655460408051632d77bef360e11b8152905133926001600160a01b031691635aef7de69160048083019260209291908290030181865afa158015612ef9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f1d9190613874565b6001600160a01b031614611fe65760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206176617461722063616e2063616c6c2074686973206d6574686f646044820152606401610c29565b612f7c81612ae0565b612fde5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610c29565b600080516020613df783398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b613016836131df565b6000825111806130235750805b15610a6957611834838361321f565b60606109556001600160a01b03831660145b60606000613053836002613d4c565b61305e906002613acc565b6001600160401b038111156130755761307561344a565b6040519080825280601f01601f19166020018201604052801561309f576020820181803683370190505b509050600360fc1b816000815181106130ba576130ba61396d565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106130e9576130e961396d565b60200101906001600160f81b031916908160001a905350600061310d846002613d4c565b613118906001613acc565b90505b6001811115613190576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061314c5761314c61396d565b1a60f81b8282815181106131625761316261396d565b60200101906001600160f81b031916908160001a90535060049490941c9361318981613d63565b905061311b565b5083156110325760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610c29565b6131e881612f73565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061322a83612ae0565b6132855760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610c29565b600080846001600160a01b0316846040516132a09190613d7a565b600060405180830381855af49150503d80600081146132db576040519150601f19603f3d011682016040523d82523d6000602084013e6132e0565b606091505b50915091506133088282604051806060016040528060278152602001613e5e60279139613311565b95945050505050565b60608315613320575081611032565b61103283838151156133355781518083602001fd5b8060405162461bcd60e51b8152600401610c2991906135cd565b50805460008255600701600890049060005260206000209081019061099791906133aa565b50805461338090613983565b6000825580601f10613390575050565b601f01602090049060005260206000209081019061099791905b5b808211156133bf57600081556001016133ab565b5090565b6000602082840312156133d557600080fd5b81356001600160e01b03198116811461103257600080fd5b801515811461099757600080fd5b60006020828403121561340d57600080fd5b8135611032816133ed565b6001600160a01b038116811461099757600080fd5b60006020828403121561343f57600080fd5b813561103281613418565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156134885761348861344a565b604052919050565b60006001600160401b038211156134a9576134a961344a565b50601f01601f191660200190565b60006134ca6134c584613490565b613460565b90508281528383830111156134de57600080fd5b828260208301376000602084830101529392505050565b600082601f83011261350657600080fd5b611032838335602085016134b7565b6000806040838503121561352857600080fd5b823561353381613418565b915060208301356001600160401b0381111561354e57600080fd5b61355a858286016134f5565b9150509250929050565b60006020828403121561357657600080fd5b5035919050565b60005b83811015613598578181015183820152602001613580565b50506000910152565b600081518084526135b981602086016020860161357d565b601f01601f19169290920160200192915050565b60208152600061103260208301846135a1565b6001600160a01b0391909116815260200190565b6000806040838503121561360757600080fd5b82359150602083013561361981613418565b809150509250929050565b6000806040838503121561363757600080fd5b823561364281613418565b9150602083013561361981613418565b6000806040838503121561366557600080fd5b823561367081613418565b946020939093013593505050565b6000806040838503121561369157600080fd5b823561369c81613418565b915060208301356001600160401b038111156136b757600080fd5b8301601f810185136136c857600080fd5b61355a858235602084016134b7565b600080602083850312156136ea57600080fd5b82356001600160401b038082111561370157600080fd5b818501915085601f83011261371557600080fd5b81358181111561372457600080fd5b8660208260051b850101111561373957600080fd5b60209290920196919550909350505050565b60008060006040848603121561376057600080fd5b833561376b81613418565b925060208401356001600160401b038082111561378757600080fd5b818601915086601f83011261379b57600080fd5b8135818111156137aa57600080fd5b8760208285010111156137bc57600080fd5b6020830194508093505050509250925092565b600080600080608085870312156137e557600080fd5b84356137f081613418565b935060208501356001600160401b0381111561380b57600080fd5b613817878288016134f5565b949794965050505060408301359260600135919050565b86815285602082015260c06040820152600061384d60c08301876135a1565b60608301959095525060ff92909216608083015263ffffffff1660a0909101529392505050565b60006020828403121561388657600080fd5b815161103281613418565b6020808252602c90820152600080516020613db783398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c90820152600080516020613db783398151915260408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b8181038181111561095557610955613905565b60008261394b57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561396257600080fd5b8151611032816133ed565b634e487b7160e01b600052603260045260246000fd5b600181811c9082168061399757607f821691505b6020821081036139b757634e487b7160e01b600052602260045260246000fd5b50919050565b6000602082840312156139cf57600080fd5b81516001600160401b038111156139e557600080fd5b8201601f810184136139f657600080fd5b8051613a046134c582613490565b818152856020838501011115613a1957600080fd5b61330882602083016020860161357d565b600060208284031215613a3c57600080fd5b813560ff8116811461103257600080fd5b600060018201613a5f57613a5f613905565b5060010190565b6020808252600f908201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b604082015260600190565b63ffffffff818116838216019080821115613aac57613aac613905565b5092915050565b600060208284031215613ac557600080fd5b5051919050565b8082018082111561095557610955613905565b60208082526016908201527511125108185b1c9958591e481c9959da5cdd195c995960521b604082015260600190565b601f821115610a6957600081815260208120601f850160051c81016020861015613b365750805b601f850160051c820191505b81811015613b5557828155600101613b42565b505050505050565b81516001600160401b03811115613b7657613b7661344a565b613b8a81613b848454613983565b84613b0f565b602080601f831160018114613bbf5760008415613ba75750858301515b600019600386901b1c1916600185901b178555613b55565b600085815260208120601f198616915b82811015613bee57888601518255948401946001909101908401613bcf565b5085821015613c0c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000808354613c7581613983565b60018281168015613c8d5760018114613ca257613cd1565b60ff1984168752821515830287019450613cd1565b8760005260208060002060005b85811015613cc85781548a820152908401908201613caf565b50505082870194505b50929695505050505050565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b815260008351613d0f81601785016020880161357d565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351613d4081602884016020880161357d565b01602801949350505050565b808202811582820484141761095557610955613905565b600081613d7257613d72613905565b506000190190565b60008251613d8c81846020870161357d565b919091019291505056fe091941537c453917ef5b0c67f46f29060aca926ebd752fe441d5625e85c3a57646756e6374696f6e206d7573742062652063616c6c6564207468726f756768200b0f1f48172a2124d5545a38711e7e9d2e7a6c0b46b85cf1c1788e7a11ba5bf2360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc436f6e6e6563744964656e7469747928616464726573732077686974656c69737465642c6164647265737320636f6e6e65637465642c75696e7432353620646561646c696e6529416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212205a6c8c6a4ae389e5596f7baa926bbf7092f41f3ccc63c590b9a2b7011247957064736f6c63430008130033",
1160
+ "linkReferences": {},
1161
+ "deployedLinkReferences": {}
1162
+ }