@etherisc/gif-next 0.0.2-e769e2e-077 → 0.0.2-e802d97-713

Sign up to get free protection for your applications and to get access to all the features.
Files changed (378) hide show
  1. package/README.md +2 -1
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  3. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +19 -13
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  5. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +79 -73
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +114 -56
  8. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  9. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +11 -5
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  11. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +7 -1
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +2 -2
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +25 -6
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +12 -22
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +47 -20
  20. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +1 -1
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +126 -30
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +195 -64
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +77 -63
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +104 -34
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +246 -104
  32. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  33. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  34. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  35. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  36. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  37. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +1 -1
  38. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +2 -2
  39. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  40. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
  41. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  42. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  43. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  44. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  45. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  46. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  47. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  48. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  49. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +10 -0
  50. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  51. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +759 -0
  52. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  53. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +662 -0
  54. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  55. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1146 -0
  56. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  57. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
  58. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  59. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +718 -0
  60. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  61. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +55 -41
  62. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  63. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +102 -40
  64. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  65. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +7 -1
  66. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  67. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +11 -5
  68. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  69. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +22 -1
  70. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  71. package/artifacts/contracts/pool/Pool.sol/Pool.json +18 -12
  72. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  73. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +56 -35
  74. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  75. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +95 -37
  76. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  77. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +39 -25
  78. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  79. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +96 -34
  80. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  81. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +81 -67
  82. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  83. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +115 -53
  84. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  85. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +7 -1
  86. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  87. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +7 -1
  88. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  89. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +7 -1
  90. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  91. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +7 -1
  92. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  93. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +11 -5
  94. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
  95. package/artifacts/contracts/product/IProductService.sol/IProductService.json +7 -1
  96. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  97. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +59 -45
  98. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  99. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +104 -42
  100. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  101. package/artifacts/contracts/product/PricingService.sol/PricingService.json +69 -55
  102. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  103. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +109 -47
  104. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  105. package/artifacts/contracts/product/Product.sol/Product.json +18 -12
  106. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
  107. package/artifacts/contracts/product/ProductService.sol/ProductService.json +25 -19
  108. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  109. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +87 -29
  110. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  111. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  112. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  113. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +150 -53
  114. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  115. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +187 -67
  116. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  117. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  118. package/artifacts/contracts/registry/Registry.sol/Registry.json +328 -103
  119. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  120. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +407 -0
  121. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  122. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +197 -72
  123. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  124. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +87 -39
  125. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  126. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +752 -148
  127. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +1 -1
  128. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +2 -2
  129. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  130. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +185 -135
  131. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  132. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  133. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  134. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1715 -0
  135. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  136. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1728 -0
  137. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  138. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1806 -0
  139. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  140. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1824 -0
  141. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  142. package/artifacts/contracts/shared/Component.sol/Component.json +18 -12
  143. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  144. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +92 -63
  145. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  146. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +102 -46
  147. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  148. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +7 -1
  149. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  150. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  151. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  152. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  153. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  154. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  155. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  156. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +11 -5
  157. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  158. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +14 -1
  159. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  160. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +11 -5
  161. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  162. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +0 -10
  163. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  164. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  165. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +7 -1
  166. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  167. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +21 -3
  168. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  169. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +7 -1
  170. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  171. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  172. package/artifacts/contracts/shared/IService.sol/IService.json +7 -1
  173. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  174. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  175. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  176. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  177. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +18 -12
  178. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  179. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +10 -20
  180. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  181. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +6 -6
  182. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  183. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  184. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  185. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +13 -7
  186. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  187. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +31 -13
  188. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  189. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +64 -16
  190. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  191. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +15 -9
  192. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  193. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  194. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  195. package/artifacts/contracts/shared/Service.sol/Service.json +7 -1
  196. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  197. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
  198. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  199. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  200. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  201. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  202. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +424 -593
  203. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  204. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +497 -49
  205. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  206. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +444 -0
  207. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  208. package/artifacts/contracts/staking/Staking.sol/Staking.json +598 -627
  209. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  210. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +149 -48
  211. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  212. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  213. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  214. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +593 -74
  215. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  216. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +119 -29
  217. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  218. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2189 -0
  219. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  220. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  221. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  222. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  223. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  224. package/artifacts/contracts/type/Amount.sol/AmountLib.json +68 -4
  225. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  226. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +40 -2
  227. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  228. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  229. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  230. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  231. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  232. package/artifacts/contracts/type/Fee.sol/FeeLib.json +2 -2
  233. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  234. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  235. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  236. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +28 -4
  237. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  238. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  239. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  240. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +15 -2
  241. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  242. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  243. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  244. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  245. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  246. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  247. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  248. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  249. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  250. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
  251. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  252. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +76 -2
  253. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  254. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  255. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  256. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +17 -4
  257. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  258. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  259. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  260. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  261. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  262. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +2 -2
  263. package/contracts/distribution/Distribution.sol +2 -4
  264. package/contracts/distribution/DistributionService.sol +3 -2
  265. package/contracts/distribution/DistributionServiceManager.sol +9 -18
  266. package/contracts/distribution/IDistributionComponent.sol +1 -1
  267. package/contracts/distribution/IDistributionService.sol +1 -1
  268. package/contracts/instance/IInstance.sol +11 -6
  269. package/contracts/instance/IInstanceService.sol +3 -5
  270. package/contracts/instance/Instance.sol +29 -21
  271. package/contracts/instance/InstanceAdmin.sol +331 -0
  272. package/contracts/instance/InstanceAuthorizationsLib.sol +192 -151
  273. package/contracts/instance/InstanceReader.sol +30 -6
  274. package/contracts/instance/InstanceService.sol +69 -55
  275. package/contracts/instance/InstanceServiceManager.sol +10 -20
  276. package/contracts/instance/InstanceStore.sol +64 -42
  277. package/contracts/instance/base/BalanceStore.sol +1 -1
  278. package/contracts/instance/base/ObjectCounter.sol +21 -0
  279. package/contracts/instance/module/IAccess.sol +2 -10
  280. package/contracts/mock/Dip.sol +26 -0
  281. package/contracts/oracle/IOracle.sol +20 -0
  282. package/contracts/oracle/IOracleComponent.sol +32 -0
  283. package/contracts/oracle/IOracleService.sol +65 -0
  284. package/contracts/oracle/Oracle.sol +145 -0
  285. package/contracts/oracle/OracleService.sol +277 -0
  286. package/contracts/oracle/OracleServiceManager.sol +42 -0
  287. package/contracts/pool/BundleService.sol +6 -23
  288. package/contracts/pool/BundleServiceManager.sol +9 -18
  289. package/contracts/pool/IBundleService.sol +1 -1
  290. package/contracts/pool/IPoolService.sol +4 -1
  291. package/contracts/pool/PoolService.sol +45 -13
  292. package/contracts/pool/PoolServiceManager.sol +9 -18
  293. package/contracts/product/ApplicationService.sol +6 -5
  294. package/contracts/product/ApplicationServiceManager.sol +9 -6
  295. package/contracts/product/ClaimService.sol +13 -7
  296. package/contracts/product/ClaimServiceManager.sol +9 -6
  297. package/contracts/product/IApplicationService.sol +1 -1
  298. package/contracts/product/IClaimService.sol +7 -1
  299. package/contracts/product/IPolicyService.sol +1 -1
  300. package/contracts/product/IPricingService.sol +1 -1
  301. package/contracts/product/IProductService.sol +1 -1
  302. package/contracts/product/PolicyService.sol +10 -6
  303. package/contracts/product/PolicyServiceManager.sol +9 -21
  304. package/contracts/product/PricingService.sol +10 -9
  305. package/contracts/product/PricingServiceManager.sol +9 -18
  306. package/contracts/product/Product.sol +1 -1
  307. package/contracts/product/ProductService.sol +7 -5
  308. package/contracts/product/ProductServiceManager.sol +9 -21
  309. package/contracts/registry/ChainNft.sol +1 -0
  310. package/contracts/registry/IRegistry.sol +37 -24
  311. package/contracts/registry/IRegistryService.sol +26 -36
  312. package/contracts/registry/Registry.sol +164 -117
  313. package/contracts/registry/RegistryAdmin.sol +237 -0
  314. package/contracts/registry/RegistryService.sol +22 -83
  315. package/contracts/registry/RegistryServiceManager.sol +21 -23
  316. package/contracts/registry/ReleaseManager.sol +448 -223
  317. package/contracts/registry/TokenRegistry.sol +187 -59
  318. package/contracts/shared/AccessManagerCustom.sol +736 -0
  319. package/contracts/shared/AccessManagerExtended.sol +470 -0
  320. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  321. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  322. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  323. package/contracts/shared/Component.sol +8 -13
  324. package/contracts/shared/ComponentService.sol +35 -13
  325. package/contracts/shared/ComponentVerifyingService.sol +13 -7
  326. package/contracts/shared/ERC165.sol +1 -1
  327. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  328. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  329. package/contracts/shared/IComponent.sol +3 -7
  330. package/contracts/shared/IComponentService.sol +11 -0
  331. package/contracts/shared/IKeyValueStore.sol +1 -1
  332. package/contracts/shared/INftOwnable.sol +1 -1
  333. package/contracts/shared/IPolicyHolder.sol +6 -1
  334. package/contracts/shared/IService.sol +1 -1
  335. package/contracts/shared/InitializableCustom.sol +177 -0
  336. package/contracts/shared/InstanceLinkedComponent.sol +1 -2
  337. package/contracts/shared/KeyValueStore.sol +24 -66
  338. package/contracts/shared/Lifecycle.sol +11 -2
  339. package/contracts/shared/NftIdSetManager.sol +65 -0
  340. package/contracts/shared/NftOwnable.sol +2 -13
  341. package/contracts/shared/PolicyHolder.sol +21 -13
  342. package/contracts/shared/ProxyManager.sol +31 -1
  343. package/contracts/shared/Service.sol +1 -1
  344. package/contracts/staking/IStaking.sol +127 -36
  345. package/contracts/staking/IStakingService.sol +83 -39
  346. package/contracts/staking/StakeManagerLib.sol +179 -0
  347. package/contracts/staking/Staking.sol +432 -93
  348. package/contracts/staking/StakingManager.sol +22 -14
  349. package/contracts/staking/StakingReader.sol +187 -0
  350. package/contracts/staking/StakingService.sol +245 -39
  351. package/contracts/staking/StakingServiceManager.sol +8 -4
  352. package/contracts/staking/StakingStore.sol +572 -0
  353. package/contracts/staking/TargetManagerLib.sol +207 -0
  354. package/contracts/type/AddressSet.sol +1 -1
  355. package/contracts/type/Amount.sol +15 -1
  356. package/contracts/type/Blocknumber.sol +14 -2
  357. package/contracts/type/Fee.sol +1 -1
  358. package/contracts/type/NftId.sol +9 -4
  359. package/contracts/type/NftIdSet.sol +1 -1
  360. package/contracts/type/ObjectType.sol +12 -9
  361. package/contracts/type/Referral.sol +1 -1
  362. package/contracts/type/RequestId.sol +75 -0
  363. package/contracts/type/RiskId.sol +1 -1
  364. package/contracts/type/RoleId.sol +16 -8
  365. package/contracts/type/Seconds.sol +27 -0
  366. package/contracts/type/StateId.sol +27 -2
  367. package/contracts/type/Timestamp.sol +6 -2
  368. package/contracts/type/Version.sol +1 -1
  369. package/package.json +3 -3
  370. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  371. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
  372. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  373. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -308
  374. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  375. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  376. package/contracts/instance/InstanceAccessManager.sol +0 -543
  377. package/contracts/registry/RegistryAccessManager.sol +0 -213
  378. package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
@@ -128,116 +128,276 @@
128
128
  {
129
129
  "inputs": [
130
130
  {
131
- "internalType": "ObjectType",
132
- "name": "objectType",
133
- "type": "uint8"
131
+ "internalType": "NftId",
132
+ "name": "nftId",
133
+ "type": "uint96"
134
+ }
135
+ ],
136
+ "name": "ErrorNftOwnableAlreadyLinked",
137
+ "type": "error"
138
+ },
139
+ {
140
+ "inputs": [
141
+ {
142
+ "internalType": "address",
143
+ "name": "contractAddress",
144
+ "type": "address"
145
+ }
146
+ ],
147
+ "name": "ErrorNftOwnableContractNotRegistered",
148
+ "type": "error"
149
+ },
150
+ {
151
+ "inputs": [],
152
+ "name": "ErrorNftOwnableInitialOwnerZero",
153
+ "type": "error"
154
+ },
155
+ {
156
+ "inputs": [
157
+ {
158
+ "internalType": "address",
159
+ "name": "account",
160
+ "type": "address"
161
+ }
162
+ ],
163
+ "name": "ErrorNftOwnableNotOwner",
164
+ "type": "error"
165
+ },
166
+ {
167
+ "inputs": [
168
+ {
169
+ "internalType": "address",
170
+ "name": "registryAddress",
171
+ "type": "address"
172
+ }
173
+ ],
174
+ "name": "ErrorNotRegistry",
175
+ "type": "error"
176
+ },
177
+ {
178
+ "inputs": [
179
+ {
180
+ "internalType": "address",
181
+ "name": "owner",
182
+ "type": "address"
134
183
  },
135
184
  {
136
- "internalType": "StateId",
137
- "name": "fromStateId",
138
- "type": "uint8"
185
+ "internalType": "address",
186
+ "name": "tokenHandler",
187
+ "type": "address"
139
188
  },
140
189
  {
141
- "internalType": "StateId",
142
- "name": "toStateId",
143
- "type": "uint8"
190
+ "internalType": "uint256",
191
+ "name": "amount",
192
+ "type": "uint256"
193
+ },
194
+ {
195
+ "internalType": "uint256",
196
+ "name": "dipAllowance",
197
+ "type": "uint256"
144
198
  }
145
199
  ],
146
- "name": "ErrorInvalidStateTransition",
200
+ "name": "ErrorStakingDipAllowanceInsufficient",
147
201
  "type": "error"
148
202
  },
149
203
  {
150
204
  "inputs": [
151
205
  {
152
- "internalType": "Key32",
153
- "name": "key",
154
- "type": "bytes32"
206
+ "internalType": "address",
207
+ "name": "owner",
208
+ "type": "address"
155
209
  },
156
210
  {
157
- "internalType": "ObjectType",
158
- "name": "objectType",
159
- "type": "uint8"
211
+ "internalType": "uint256",
212
+ "name": "amount",
213
+ "type": "uint256"
214
+ },
215
+ {
216
+ "internalType": "uint256",
217
+ "name": "dipBalance",
218
+ "type": "uint256"
160
219
  }
161
220
  ],
162
- "name": "ErrorKeyValueStoreAlreadyCreated",
221
+ "name": "ErrorStakingDipBalanceInsufficient",
163
222
  "type": "error"
164
223
  },
165
224
  {
166
225
  "inputs": [
167
226
  {
168
- "internalType": "Key32",
169
- "name": "key",
170
- "type": "bytes32"
227
+ "internalType": "NftId",
228
+ "name": "targetNftId",
229
+ "type": "uint96"
230
+ },
231
+ {
232
+ "internalType": "Seconds",
233
+ "name": "maxLockingPeriod",
234
+ "type": "uint40"
235
+ },
236
+ {
237
+ "internalType": "Seconds",
238
+ "name": "lockingPeriod",
239
+ "type": "uint40"
171
240
  }
172
241
  ],
173
- "name": "ErrorKeyValueStoreNotExisting",
242
+ "name": "ErrorStakingLockingPeriodTooLong",
174
243
  "type": "error"
175
244
  },
176
245
  {
177
246
  "inputs": [
178
247
  {
179
- "internalType": "Key32",
180
- "name": "key",
181
- "type": "bytes32"
248
+ "internalType": "NftId",
249
+ "name": "targetNftId",
250
+ "type": "uint96"
182
251
  }
183
252
  ],
184
- "name": "ErrorKeyValueStoreStateZero",
253
+ "name": "ErrorStakingLockingPeriodZero",
185
254
  "type": "error"
186
255
  },
187
256
  {
188
257
  "inputs": [
189
258
  {
190
- "internalType": "ObjectType",
191
- "name": "objectType",
192
- "type": "uint8"
259
+ "internalType": "NftId",
260
+ "name": "nftId",
261
+ "type": "uint96"
193
262
  }
194
263
  ],
195
- "name": "ErrorKeyValueStoreTypeUndefined",
264
+ "name": "ErrorStakingNotNftOwner",
196
265
  "type": "error"
197
266
  },
198
267
  {
199
268
  "inputs": [
200
269
  {
201
270
  "internalType": "NftId",
202
- "name": "nftId",
271
+ "name": "stakeNftId",
203
272
  "type": "uint96"
204
273
  }
205
274
  ],
206
- "name": "ErrorNftOwnableAlreadyLinked",
275
+ "name": "ErrorStakingNotStake",
276
+ "type": "error"
277
+ },
278
+ {
279
+ "inputs": [],
280
+ "name": "ErrorStakingNotStakingOwner",
281
+ "type": "error"
282
+ },
283
+ {
284
+ "inputs": [
285
+ {
286
+ "internalType": "NftId",
287
+ "name": "targetNftId",
288
+ "type": "uint96"
289
+ }
290
+ ],
291
+ "name": "ErrorStakingNotTarget",
292
+ "type": "error"
293
+ },
294
+ {
295
+ "inputs": [
296
+ {
297
+ "internalType": "NftId",
298
+ "name": "targetNftId",
299
+ "type": "uint96"
300
+ },
301
+ {
302
+ "internalType": "UFixed",
303
+ "name": "maxRewardRate",
304
+ "type": "uint256"
305
+ },
306
+ {
307
+ "internalType": "UFixed",
308
+ "name": "rewardRate",
309
+ "type": "uint256"
310
+ }
311
+ ],
312
+ "name": "ErrorStakingRewardRateTooHigh",
313
+ "type": "error"
314
+ },
315
+ {
316
+ "inputs": [
317
+ {
318
+ "internalType": "NftId",
319
+ "name": "targetNftId",
320
+ "type": "uint96"
321
+ }
322
+ ],
323
+ "name": "ErrorStakingStakeAmountZero",
207
324
  "type": "error"
208
325
  },
209
326
  {
210
327
  "inputs": [
211
328
  {
212
329
  "internalType": "address",
213
- "name": "contractAddress",
330
+ "name": "stakingByStakingReader",
214
331
  "type": "address"
215
332
  }
216
333
  ],
217
- "name": "ErrorNftOwnableContractNotRegistered",
334
+ "name": "ErrorStakingStakingReaderStakingMismatch",
335
+ "type": "error"
336
+ },
337
+ {
338
+ "inputs": [
339
+ {
340
+ "internalType": "NftId",
341
+ "name": "targetNftId",
342
+ "type": "uint96"
343
+ }
344
+ ],
345
+ "name": "ErrorStakingTargetAlreadyRegistered",
218
346
  "type": "error"
219
347
  },
220
348
  {
221
349
  "inputs": [],
222
- "name": "ErrorNftOwnableInitialOwnerZero",
350
+ "name": "ErrorStakingTargetNftIdZero",
351
+ "type": "error"
352
+ },
353
+ {
354
+ "inputs": [
355
+ {
356
+ "internalType": "NftId",
357
+ "name": "targetNftId",
358
+ "type": "uint96"
359
+ }
360
+ ],
361
+ "name": "ErrorStakingTargetNotActive",
362
+ "type": "error"
363
+ },
364
+ {
365
+ "inputs": [
366
+ {
367
+ "internalType": "NftId",
368
+ "name": "targetNftId",
369
+ "type": "uint96"
370
+ }
371
+ ],
372
+ "name": "ErrorStakingTargetNotFound",
223
373
  "type": "error"
224
374
  },
225
375
  {
226
376
  "inputs": [
377
+ {
378
+ "internalType": "NftId",
379
+ "name": "targetNftId",
380
+ "type": "uint96"
381
+ },
382
+ {
383
+ "internalType": "uint256",
384
+ "name": "chainId",
385
+ "type": "uint256"
386
+ },
227
387
  {
228
388
  "internalType": "address",
229
- "name": "account",
389
+ "name": "token",
230
390
  "type": "address"
231
391
  }
232
392
  ],
233
- "name": "ErrorNftOwnableNotOwner",
393
+ "name": "ErrorStakingTargetTokenNotFound",
234
394
  "type": "error"
235
395
  },
236
396
  {
237
397
  "inputs": [
238
398
  {
239
399
  "internalType": "NftId",
240
- "name": "nftId",
400
+ "name": "targetNftId",
241
401
  "type": "uint96"
242
402
  },
243
403
  {
@@ -246,18 +406,44 @@
246
406
  "type": "uint8"
247
407
  }
248
408
  ],
249
- "name": "ErrorNoLifecycle",
409
+ "name": "ErrorStakingTargetTypeNotSupported",
250
410
  "type": "error"
251
411
  },
252
412
  {
253
413
  "inputs": [
414
+ {
415
+ "internalType": "NftId",
416
+ "name": "targetNftId",
417
+ "type": "uint96"
418
+ },
419
+ {
420
+ "internalType": "ObjectType",
421
+ "name": "expectedObjectType",
422
+ "type": "uint8"
423
+ },
424
+ {
425
+ "internalType": "ObjectType",
426
+ "name": "actualObjectType",
427
+ "type": "uint8"
428
+ }
429
+ ],
430
+ "name": "ErrorStakingTargetUnexpectedObjectType",
431
+ "type": "error"
432
+ },
433
+ {
434
+ "inputs": [
435
+ {
436
+ "internalType": "uint256",
437
+ "name": "chainId",
438
+ "type": "uint256"
439
+ },
254
440
  {
255
441
  "internalType": "address",
256
- "name": "registryAddress",
442
+ "name": "token",
257
443
  "type": "address"
258
444
  }
259
445
  ],
260
- "name": "ErrorNotRegistry",
446
+ "name": "ErrorStakingTokenNotRegistered",
261
447
  "type": "error"
262
448
  },
263
449
  {
@@ -323,9 +509,9 @@
323
509
  },
324
510
  {
325
511
  "indexed": false,
326
- "internalType": "uint256",
512
+ "internalType": "Amount",
327
513
  "name": "limit",
328
- "type": "uint256"
514
+ "type": "uint96"
329
515
  }
330
516
  ],
331
517
  "name": "LogComponentTokenHandlerApproved",
@@ -380,36 +566,24 @@
380
566
  "inputs": [
381
567
  {
382
568
  "indexed": false,
383
- "internalType": "ObjectType",
384
- "name": "objectType",
385
- "type": "uint8"
386
- },
387
- {
388
- "indexed": false,
389
- "internalType": "KeyId",
390
- "name": "keyId",
391
- "type": "bytes31"
392
- },
393
- {
394
- "indexed": false,
395
- "internalType": "StateId",
396
- "name": "state",
397
- "type": "uint8"
569
+ "internalType": "NftId",
570
+ "name": "targetNftId",
571
+ "type": "uint96"
398
572
  },
399
573
  {
400
574
  "indexed": false,
401
- "internalType": "address",
402
- "name": "createdBy",
403
- "type": "address"
575
+ "internalType": "Seconds",
576
+ "name": "oldLockingPeriod",
577
+ "type": "uint40"
404
578
  },
405
579
  {
406
580
  "indexed": false,
407
- "internalType": "address",
408
- "name": "txOrigin",
409
- "type": "address"
581
+ "internalType": "Seconds",
582
+ "name": "lockingPeriod",
583
+ "type": "uint40"
410
584
  }
411
585
  ],
412
- "name": "LogInfoCreated",
586
+ "name": "LogStakingLockingPeriodSet",
413
587
  "type": "event"
414
588
  },
415
589
  {
@@ -417,42 +591,24 @@
417
591
  "inputs": [
418
592
  {
419
593
  "indexed": false,
420
- "internalType": "ObjectType",
421
- "name": "objectType",
422
- "type": "uint8"
423
- },
424
- {
425
- "indexed": false,
426
- "internalType": "KeyId",
427
- "name": "keyId",
428
- "type": "bytes31"
429
- },
430
- {
431
- "indexed": false,
432
- "internalType": "StateId",
433
- "name": "state",
434
- "type": "uint8"
435
- },
436
- {
437
- "indexed": false,
438
- "internalType": "address",
439
- "name": "updatedBy",
440
- "type": "address"
594
+ "internalType": "NftId",
595
+ "name": "targetNftId",
596
+ "type": "uint96"
441
597
  },
442
598
  {
443
599
  "indexed": false,
444
- "internalType": "address",
445
- "name": "txOrigin",
446
- "type": "address"
600
+ "internalType": "UFixed",
601
+ "name": "oldRewardRate",
602
+ "type": "uint256"
447
603
  },
448
604
  {
449
605
  "indexed": false,
450
- "internalType": "Blocknumber",
451
- "name": "lastUpdatedIn",
452
- "type": "uint32"
606
+ "internalType": "UFixed",
607
+ "name": "rewardRate",
608
+ "type": "uint256"
453
609
  }
454
610
  ],
455
- "name": "LogInfoUpdated",
611
+ "name": "LogStakingRewardRateSet",
456
612
  "type": "event"
457
613
  },
458
614
  {
@@ -460,48 +616,30 @@
460
616
  "inputs": [
461
617
  {
462
618
  "indexed": false,
463
- "internalType": "ObjectType",
464
- "name": "objectType",
465
- "type": "uint8"
466
- },
467
- {
468
- "indexed": false,
469
- "internalType": "KeyId",
470
- "name": "keyId",
471
- "type": "bytes31"
472
- },
473
- {
474
- "indexed": false,
475
- "internalType": "StateId",
476
- "name": "stateOld",
477
- "type": "uint8"
478
- },
479
- {
480
- "indexed": false,
481
- "internalType": "StateId",
482
- "name": "stateNew",
483
- "type": "uint8"
619
+ "internalType": "uint256",
620
+ "name": "chainId",
621
+ "type": "uint256"
484
622
  },
485
623
  {
486
624
  "indexed": false,
487
625
  "internalType": "address",
488
- "name": "updatedBy",
626
+ "name": "token",
489
627
  "type": "address"
490
628
  },
491
629
  {
492
630
  "indexed": false,
493
- "internalType": "address",
494
- "name": "txOrigin",
495
- "type": "address"
631
+ "internalType": "UFixed",
632
+ "name": "oldStakingRate",
633
+ "type": "uint256"
496
634
  },
497
635
  {
498
636
  "indexed": false,
499
- "internalType": "Blocknumber",
500
- "name": "lastUpdatedIn",
501
- "type": "uint32"
637
+ "internalType": "UFixed",
638
+ "name": "newStakingRate",
639
+ "type": "uint256"
502
640
  }
503
641
  ],
504
- "name": "LogStateUpdated",
642
+ "name": "LogStakingStakingRateSet",
505
643
  "type": "event"
506
644
  },
507
645
  {
@@ -572,9 +710,14 @@
572
710
  {
573
711
  "inputs": [
574
712
  {
575
- "internalType": "uint256",
713
+ "internalType": "address",
714
+ "name": "token",
715
+ "type": "address"
716
+ },
717
+ {
718
+ "internalType": "Amount",
576
719
  "name": "spendingLimitAmount",
577
- "type": "uint256"
720
+ "type": "uint96"
578
721
  }
579
722
  ],
580
723
  "name": "approveTokenHandler",
@@ -585,14 +728,9 @@
585
728
  {
586
729
  "inputs": [
587
730
  {
588
- "internalType": "address",
589
- "name": "token",
590
- "type": "address"
591
- },
592
- {
593
- "internalType": "uint256",
731
+ "internalType": "Amount",
594
732
  "name": "spendingLimitAmount",
595
- "type": "uint256"
733
+ "type": "uint96"
596
734
  }
597
735
  ],
598
736
  "name": "approveTokenHandler",
@@ -617,184 +755,89 @@
617
755
  "inputs": [
618
756
  {
619
757
  "internalType": "NftId",
620
- "name": "targetNftId",
758
+ "name": "stakeNftId",
621
759
  "type": "uint96"
622
- },
623
- {
624
- "internalType": "Timestamp",
625
- "name": "rewardsLastUpdatedAt",
626
- "type": "uint40"
627
760
  }
628
761
  ],
629
- "name": "calculateRewardIncrementAmount",
762
+ "name": "claimRewards",
630
763
  "outputs": [
631
764
  {
632
765
  "internalType": "Amount",
633
- "name": "rewardIncrementAmount",
766
+ "name": "rewardsClaimedAmount",
634
767
  "type": "uint96"
635
768
  }
636
769
  ],
637
- "stateMutability": "view",
770
+ "stateMutability": "nonpayable",
638
771
  "type": "function"
639
772
  },
640
773
  {
641
774
  "inputs": [
642
775
  {
643
- "internalType": "ObjectType",
644
- "name": "objectType",
645
- "type": "uint8"
646
- },
647
- {
648
- "internalType": "StateId",
649
- "name": "fromId",
650
- "type": "uint8"
776
+ "internalType": "address",
777
+ "name": "from",
778
+ "type": "address"
651
779
  },
652
780
  {
653
- "internalType": "StateId",
654
- "name": "toId",
655
- "type": "uint8"
656
- }
657
- ],
658
- "name": "checkTransition",
659
- "outputs": [],
660
- "stateMutability": "view",
661
- "type": "function"
662
- },
663
- {
664
- "inputs": [
665
- {
666
- "internalType": "NftId",
667
- "name": "stakeNftId",
781
+ "internalType": "Amount",
782
+ "name": "dipAmount",
668
783
  "type": "uint96"
669
784
  }
670
785
  ],
671
- "name": "claimRewards",
786
+ "name": "collectDipAmount",
672
787
  "outputs": [],
673
788
  "stateMutability": "nonpayable",
674
789
  "type": "function"
675
790
  },
676
791
  {
677
792
  "inputs": [
678
- {
679
- "internalType": "NftId",
680
- "name": "targetNftId",
681
- "type": "uint96"
682
- },
683
- {
684
- "internalType": "Amount",
685
- "name": "dipAmount",
686
- "type": "uint96"
687
- }
688
- ],
689
- "name": "createStake",
690
- "outputs": [
691
793
  {
692
794
  "internalType": "NftId",
693
795
  "name": "stakeNftId",
694
796
  "type": "uint96"
695
- }
696
- ],
697
- "stateMutability": "nonpayable",
698
- "type": "function"
699
- },
700
- {
701
- "inputs": [
797
+ },
702
798
  {
703
799
  "internalType": "NftId",
704
800
  "name": "targetNftId",
705
801
  "type": "uint96"
706
802
  },
707
803
  {
708
- "internalType": "address",
709
- "name": "token",
710
- "type": "address"
711
- },
712
- {
713
- "internalType": "Amount",
714
- "name": "amount",
715
- "type": "uint96"
716
- }
717
- ],
718
- "name": "decreaseTvl",
719
- "outputs": [],
720
- "stateMutability": "nonpayable",
721
- "type": "function"
722
- },
723
- {
724
- "inputs": [
725
- {
726
- "internalType": "Key32",
727
- "name": "key32",
728
- "type": "bytes32"
729
- }
730
- ],
731
- "name": "exists",
732
- "outputs": [
733
- {
734
- "internalType": "bool",
735
- "name": "",
736
- "type": "bool"
804
+ "internalType": "Amount",
805
+ "name": "stakeAmount",
806
+ "type": "uint96"
737
807
  }
738
808
  ],
739
- "stateMutability": "view",
809
+ "name": "createStake",
810
+ "outputs": [],
811
+ "stateMutability": "nonpayable",
740
812
  "type": "function"
741
813
  },
742
814
  {
743
815
  "inputs": [
744
816
  {
745
- "internalType": "Key32",
746
- "name": "key32",
747
- "type": "bytes32"
817
+ "internalType": "NftId",
818
+ "name": "targetNftId",
819
+ "type": "uint96"
820
+ },
821
+ {
822
+ "internalType": "address",
823
+ "name": "token",
824
+ "type": "address"
825
+ },
826
+ {
827
+ "internalType": "Amount",
828
+ "name": "amount",
829
+ "type": "uint96"
748
830
  }
749
831
  ],
750
- "name": "get",
832
+ "name": "decreaseTotalValueLocked",
751
833
  "outputs": [
752
834
  {
753
- "components": [
754
- {
755
- "components": [
756
- {
757
- "internalType": "ObjectType",
758
- "name": "objectType",
759
- "type": "uint8"
760
- },
761
- {
762
- "internalType": "StateId",
763
- "name": "state",
764
- "type": "uint8"
765
- },
766
- {
767
- "internalType": "address",
768
- "name": "updatedBy",
769
- "type": "address"
770
- },
771
- {
772
- "internalType": "Blocknumber",
773
- "name": "updatedIn",
774
- "type": "uint32"
775
- },
776
- {
777
- "internalType": "Blocknumber",
778
- "name": "createdIn",
779
- "type": "uint32"
780
- }
781
- ],
782
- "internalType": "struct IKeyValueStore.Metadata",
783
- "name": "metadata",
784
- "type": "tuple"
785
- },
786
- {
787
- "internalType": "bytes",
788
- "name": "data",
789
- "type": "bytes"
790
- }
791
- ],
792
- "internalType": "struct IKeyValueStore.Value",
793
- "name": "value",
794
- "type": "tuple"
835
+ "internalType": "Amount",
836
+ "name": "newBalance",
837
+ "type": "uint96"
795
838
  }
796
839
  ],
797
- "stateMutability": "view",
840
+ "stateMutability": "nonpayable",
798
841
  "type": "function"
799
842
  },
800
843
  {
@@ -842,25 +885,6 @@
842
885
  "stateMutability": "view",
843
886
  "type": "function"
844
887
  },
845
- {
846
- "inputs": [
847
- {
848
- "internalType": "Key32",
849
- "name": "key32",
850
- "type": "bytes32"
851
- }
852
- ],
853
- "name": "getData",
854
- "outputs": [
855
- {
856
- "internalType": "bytes",
857
- "name": "data",
858
- "type": "bytes"
859
- }
860
- ],
861
- "stateMutability": "view",
862
- "type": "function"
863
- },
864
888
  {
865
889
  "inputs": [],
866
890
  "name": "getInitialComponentInfo",
@@ -956,71 +980,6 @@
956
980
  "stateMutability": "view",
957
981
  "type": "function"
958
982
  },
959
- {
960
- "inputs": [
961
- {
962
- "internalType": "ObjectType",
963
- "name": "objectType",
964
- "type": "uint8"
965
- }
966
- ],
967
- "name": "getInitialState",
968
- "outputs": [
969
- {
970
- "internalType": "StateId",
971
- "name": "",
972
- "type": "uint8"
973
- }
974
- ],
975
- "stateMutability": "view",
976
- "type": "function"
977
- },
978
- {
979
- "inputs": [
980
- {
981
- "internalType": "Key32",
982
- "name": "key32",
983
- "type": "bytes32"
984
- }
985
- ],
986
- "name": "getMetadata",
987
- "outputs": [
988
- {
989
- "components": [
990
- {
991
- "internalType": "ObjectType",
992
- "name": "objectType",
993
- "type": "uint8"
994
- },
995
- {
996
- "internalType": "StateId",
997
- "name": "state",
998
- "type": "uint8"
999
- },
1000
- {
1001
- "internalType": "address",
1002
- "name": "updatedBy",
1003
- "type": "address"
1004
- },
1005
- {
1006
- "internalType": "Blocknumber",
1007
- "name": "updatedIn",
1008
- "type": "uint32"
1009
- },
1010
- {
1011
- "internalType": "Blocknumber",
1012
- "name": "createdIn",
1013
- "type": "uint32"
1014
- }
1015
- ],
1016
- "internalType": "struct IKeyValueStore.Metadata",
1017
- "name": "metadata",
1018
- "type": "tuple"
1019
- }
1020
- ],
1021
- "stateMutability": "view",
1022
- "type": "function"
1023
- },
1024
983
  {
1025
984
  "inputs": [],
1026
985
  "name": "getName",
@@ -1073,127 +1032,27 @@
1073
1032
  "stateMutability": "view",
1074
1033
  "type": "function"
1075
1034
  },
1076
- {
1077
- "inputs": [
1078
- {
1079
- "internalType": "NftId",
1080
- "name": "targetNftId",
1081
- "type": "uint96"
1082
- }
1083
- ],
1084
- "name": "getRewardRate",
1085
- "outputs": [
1086
- {
1087
- "internalType": "UFixed",
1088
- "name": "rewardRate",
1089
- "type": "uint256"
1090
- }
1091
- ],
1092
- "stateMutability": "view",
1093
- "type": "function"
1094
- },
1095
- {
1096
- "inputs": [
1097
- {
1098
- "internalType": "NftId",
1099
- "name": "targetNftId",
1100
- "type": "uint96"
1101
- }
1102
- ],
1103
- "name": "getRewardReserves",
1104
- "outputs": [
1105
- {
1106
- "internalType": "Amount",
1107
- "name": "rewardReserveAmount",
1108
- "type": "uint96"
1109
- }
1110
- ],
1111
- "stateMutability": "view",
1112
- "type": "function"
1113
- },
1114
1035
  {
1115
1036
  "inputs": [],
1116
- "name": "getStakeInfo",
1117
- "outputs": [
1118
- {
1119
- "internalType": "NftId",
1120
- "name": "stakeNftId",
1121
- "type": "uint96"
1122
- }
1123
- ],
1124
- "stateMutability": "view",
1125
- "type": "function"
1126
- },
1127
- {
1128
- "inputs": [
1129
- {
1130
- "internalType": "NftId",
1131
- "name": "targetNftId",
1132
- "type": "uint96"
1133
- }
1134
- ],
1135
- "name": "getStakedAmount",
1037
+ "name": "getStakingReader",
1136
1038
  "outputs": [
1137
1039
  {
1138
- "internalType": "Amount",
1139
- "name": "stakeAmount",
1140
- "type": "uint96"
1141
- }
1142
- ],
1143
- "stateMutability": "view",
1144
- "type": "function"
1145
- },
1146
- {
1147
- "inputs": [
1148
- {
1149
- "internalType": "uint256",
1150
- "name": "chainId",
1151
- "type": "uint256"
1152
- },
1153
- {
1154
- "internalType": "address",
1155
- "name": "token",
1040
+ "internalType": "contract StakingReader",
1041
+ "name": "reader",
1156
1042
  "type": "address"
1157
1043
  }
1158
1044
  ],
1159
- "name": "getStakingRate",
1160
- "outputs": [
1161
- {
1162
- "internalType": "UFixed",
1163
- "name": "stakingRate",
1164
- "type": "uint256"
1165
- }
1166
- ],
1167
- "stateMutability": "view",
1168
- "type": "function"
1169
- },
1170
- {
1171
- "inputs": [
1172
- {
1173
- "internalType": "Key32",
1174
- "name": "key32",
1175
- "type": "bytes32"
1176
- }
1177
- ],
1178
- "name": "getState",
1179
- "outputs": [
1180
- {
1181
- "internalType": "StateId",
1182
- "name": "state",
1183
- "type": "uint8"
1184
- }
1185
- ],
1186
1045
  "stateMutability": "view",
1187
1046
  "type": "function"
1188
1047
  },
1189
1048
  {
1190
1049
  "inputs": [],
1191
- "name": "getTargetInfo",
1050
+ "name": "getStakingStore",
1192
1051
  "outputs": [
1193
1052
  {
1194
- "internalType": "NftId",
1195
- "name": "stakeNftId",
1196
- "type": "uint96"
1053
+ "internalType": "contract StakingStore",
1054
+ "name": "stakingStore",
1055
+ "type": "address"
1197
1056
  }
1198
1057
  ],
1199
1058
  "stateMutability": "view",
@@ -1226,26 +1085,15 @@
1226
1085
  "type": "function"
1227
1086
  },
1228
1087
  {
1229
- "inputs": [
1230
- {
1231
- "internalType": "NftId",
1232
- "name": "targetNftId",
1233
- "type": "uint96"
1234
- },
1088
+ "inputs": [],
1089
+ "name": "getTokenRegistryAddress",
1090
+ "outputs": [
1235
1091
  {
1236
1092
  "internalType": "address",
1237
- "name": "token",
1093
+ "name": "tokenRegistry",
1238
1094
  "type": "address"
1239
1095
  }
1240
1096
  ],
1241
- "name": "getTvlAmount",
1242
- "outputs": [
1243
- {
1244
- "internalType": "Amount",
1245
- "name": "tvlAmount",
1246
- "type": "uint96"
1247
- }
1248
- ],
1249
1097
  "stateMutability": "view",
1250
1098
  "type": "function"
1251
1099
  },
@@ -1275,25 +1123,6 @@
1275
1123
  "stateMutability": "view",
1276
1124
  "type": "function"
1277
1125
  },
1278
- {
1279
- "inputs": [
1280
- {
1281
- "internalType": "ObjectType",
1282
- "name": "objectType",
1283
- "type": "uint8"
1284
- }
1285
- ],
1286
- "name": "hasLifecycle",
1287
- "outputs": [
1288
- {
1289
- "internalType": "bool",
1290
- "name": "",
1291
- "type": "bool"
1292
- }
1293
- ],
1294
- "stateMutability": "view",
1295
- "type": "function"
1296
- },
1297
1126
  {
1298
1127
  "inputs": [
1299
1128
  {
@@ -1312,8 +1141,14 @@
1312
1141
  "type": "uint96"
1313
1142
  }
1314
1143
  ],
1315
- "name": "increaseTvl",
1316
- "outputs": [],
1144
+ "name": "increaseTotalValueLocked",
1145
+ "outputs": [
1146
+ {
1147
+ "internalType": "Amount",
1148
+ "name": "newBalance",
1149
+ "type": "uint96"
1150
+ }
1151
+ ],
1317
1152
  "stateMutability": "nonpayable",
1318
1153
  "type": "function"
1319
1154
  },
@@ -1382,13 +1217,6 @@
1382
1217
  "stateMutability": "nonpayable",
1383
1218
  "type": "function"
1384
1219
  },
1385
- {
1386
- "inputs": [],
1387
- "name": "initializeLifecycle",
1388
- "outputs": [],
1389
- "stateMutability": "nonpayable",
1390
- "type": "function"
1391
- },
1392
1220
  {
1393
1221
  "inputs": [
1394
1222
  {
@@ -1491,24 +1319,11 @@
1491
1319
  },
1492
1320
  {
1493
1321
  "inputs": [],
1494
- "name": "isNftInterceptor",
1495
- "outputs": [
1496
- {
1497
- "internalType": "bool",
1498
- "name": "isInterceptor",
1499
- "type": "bool"
1500
- }
1501
- ],
1502
- "stateMutability": "view",
1503
- "type": "function"
1504
- },
1505
- {
1506
- "inputs": [],
1507
- "name": "isRegistered",
1322
+ "name": "isNftInterceptor",
1508
1323
  "outputs": [
1509
1324
  {
1510
1325
  "internalType": "bool",
1511
- "name": "",
1326
+ "name": "isInterceptor",
1512
1327
  "type": "bool"
1513
1328
  }
1514
1329
  ],
@@ -1516,24 +1331,8 @@
1516
1331
  "type": "function"
1517
1332
  },
1518
1333
  {
1519
- "inputs": [
1520
- {
1521
- "internalType": "ObjectType",
1522
- "name": "objectType",
1523
- "type": "uint8"
1524
- },
1525
- {
1526
- "internalType": "StateId",
1527
- "name": "fromId",
1528
- "type": "uint8"
1529
- },
1530
- {
1531
- "internalType": "StateId",
1532
- "name": "toId",
1533
- "type": "uint8"
1534
- }
1535
- ],
1536
- "name": "isValidTransition",
1334
+ "inputs": [],
1335
+ "name": "isRegistered",
1537
1336
  "outputs": [
1538
1337
  {
1539
1338
  "internalType": "bool",
@@ -1547,7 +1346,13 @@
1547
1346
  {
1548
1347
  "inputs": [],
1549
1348
  "name": "linkToRegisteredNftId",
1550
- "outputs": [],
1349
+ "outputs": [
1350
+ {
1351
+ "internalType": "NftId",
1352
+ "name": "nftId",
1353
+ "type": "uint96"
1354
+ }
1355
+ ],
1551
1356
  "stateMutability": "nonpayable",
1552
1357
  "type": "function"
1553
1358
  },
@@ -1606,7 +1411,13 @@
1606
1411
  }
1607
1412
  ],
1608
1413
  "name": "refillRewardReserves",
1609
- "outputs": [],
1414
+ "outputs": [
1415
+ {
1416
+ "internalType": "Amount",
1417
+ "name": "newBalance",
1418
+ "type": "uint96"
1419
+ }
1420
+ ],
1610
1421
  "stateMutability": "nonpayable",
1611
1422
  "type": "function"
1612
1423
  },
@@ -1632,11 +1443,6 @@
1632
1443
  },
1633
1444
  {
1634
1445
  "components": [
1635
- {
1636
- "internalType": "NftId",
1637
- "name": "targetNftid",
1638
- "type": "uint96"
1639
- },
1640
1446
  {
1641
1447
  "internalType": "ObjectType",
1642
1448
  "name": "objectType",
@@ -1648,9 +1454,14 @@
1648
1454
  "type": "uint256"
1649
1455
  },
1650
1456
  {
1651
- "internalType": "address",
1652
- "name": "token",
1653
- "type": "address"
1457
+ "internalType": "Seconds",
1458
+ "name": "lockingPeriod",
1459
+ "type": "uint40"
1460
+ },
1461
+ {
1462
+ "internalType": "UFixed",
1463
+ "name": "rewardRate",
1464
+ "type": "uint256"
1654
1465
  }
1655
1466
  ],
1656
1467
  "internalType": "struct IStaking.TargetInfo",
@@ -1669,6 +1480,26 @@
1669
1480
  "internalType": "NftId",
1670
1481
  "name": "targetNftId",
1671
1482
  "type": "uint96"
1483
+ },
1484
+ {
1485
+ "internalType": "ObjectType",
1486
+ "name": "expectedObjectType",
1487
+ "type": "uint8"
1488
+ },
1489
+ {
1490
+ "internalType": "uint256",
1491
+ "name": "chainId",
1492
+ "type": "uint256"
1493
+ },
1494
+ {
1495
+ "internalType": "Seconds",
1496
+ "name": "initialLockingPeriod",
1497
+ "type": "uint40"
1498
+ },
1499
+ {
1500
+ "internalType": "UFixed",
1501
+ "name": "initialRewardRate",
1502
+ "type": "uint256"
1672
1503
  }
1673
1504
  ],
1674
1505
  "name": "registerTarget",
@@ -1682,28 +1513,21 @@
1682
1513
  "internalType": "NftId",
1683
1514
  "name": "stakeNftId",
1684
1515
  "type": "uint96"
1685
- }
1686
- ],
1687
- "name": "restakeRewards",
1688
- "outputs": [],
1689
- "stateMutability": "nonpayable",
1690
- "type": "function"
1691
- },
1692
- {
1693
- "inputs": [
1516
+ },
1694
1517
  {
1695
1518
  "internalType": "NftId",
1696
- "name": "stakeNftId",
1519
+ "name": "newTargetNftId",
1697
1520
  "type": "uint96"
1698
- },
1521
+ }
1522
+ ],
1523
+ "name": "restake",
1524
+ "outputs": [
1699
1525
  {
1700
1526
  "internalType": "NftId",
1701
- "name": "newTarget",
1527
+ "name": "newStakeNftId",
1702
1528
  "type": "uint96"
1703
1529
  }
1704
1530
  ],
1705
- "name": "restakeToNewTarget",
1706
- "outputs": [],
1707
1531
  "stateMutability": "nonpayable",
1708
1532
  "type": "function"
1709
1533
  },
@@ -1720,6 +1544,24 @@
1720
1544
  "stateMutability": "nonpayable",
1721
1545
  "type": "function"
1722
1546
  },
1547
+ {
1548
+ "inputs": [
1549
+ {
1550
+ "internalType": "NftId",
1551
+ "name": "targetNftId",
1552
+ "type": "uint96"
1553
+ },
1554
+ {
1555
+ "internalType": "Seconds",
1556
+ "name": "lockingPeriod",
1557
+ "type": "uint40"
1558
+ }
1559
+ ],
1560
+ "name": "setLockingPeriod",
1561
+ "outputs": [],
1562
+ "stateMutability": "nonpayable",
1563
+ "type": "function"
1564
+ },
1723
1565
  {
1724
1566
  "inputs": [
1725
1567
  {
@@ -1761,6 +1603,19 @@
1761
1603
  "stateMutability": "nonpayable",
1762
1604
  "type": "function"
1763
1605
  },
1606
+ {
1607
+ "inputs": [
1608
+ {
1609
+ "internalType": "contract StakingReader",
1610
+ "name": "stakingReader",
1611
+ "type": "address"
1612
+ }
1613
+ ],
1614
+ "name": "setStakingReader",
1615
+ "outputs": [],
1616
+ "stateMutability": "nonpayable",
1617
+ "type": "function"
1618
+ },
1764
1619
  {
1765
1620
  "inputs": [
1766
1621
  {
@@ -1783,12 +1638,18 @@
1783
1638
  },
1784
1639
  {
1785
1640
  "internalType": "Amount",
1786
- "name": "dipAmount",
1641
+ "name": "stakeAmount",
1787
1642
  "type": "uint96"
1788
1643
  }
1789
1644
  ],
1790
1645
  "name": "stake",
1791
- "outputs": [],
1646
+ "outputs": [
1647
+ {
1648
+ "internalType": "Amount",
1649
+ "name": "stakeBalance",
1650
+ "type": "uint96"
1651
+ }
1652
+ ],
1792
1653
  "stateMutability": "nonpayable",
1793
1654
  "type": "function"
1794
1655
  },
@@ -1814,33 +1675,9 @@
1814
1675
  {
1815
1676
  "inputs": [
1816
1677
  {
1817
- "internalType": "ObjectType",
1818
- "name": "objectType",
1819
- "type": "uint8"
1820
- },
1821
- {
1822
- "internalType": "KeyId",
1823
- "name": "id",
1824
- "type": "bytes31"
1825
- }
1826
- ],
1827
- "name": "toKey32",
1828
- "outputs": [
1829
- {
1830
- "internalType": "Key32",
1831
- "name": "",
1832
- "type": "bytes32"
1833
- }
1834
- ],
1835
- "stateMutability": "pure",
1836
- "type": "function"
1837
- },
1838
- {
1839
- "inputs": [
1840
- {
1841
- "internalType": "NftId",
1842
- "name": "stakeNftId",
1843
- "type": "uint96"
1678
+ "internalType": "address",
1679
+ "name": "to",
1680
+ "type": "address"
1844
1681
  },
1845
1682
  {
1846
1683
  "internalType": "Amount",
@@ -1848,7 +1685,7 @@
1848
1685
  "type": "uint96"
1849
1686
  }
1850
1687
  ],
1851
- "name": "unstake",
1688
+ "name": "transferDipAmount",
1852
1689
  "outputs": [],
1853
1690
  "stateMutability": "nonpayable",
1854
1691
  "type": "function"
@@ -1862,7 +1699,18 @@
1862
1699
  }
1863
1700
  ],
1864
1701
  "name": "unstake",
1865
- "outputs": [],
1702
+ "outputs": [
1703
+ {
1704
+ "internalType": "Amount",
1705
+ "name": "unstakedAmount",
1706
+ "type": "uint96"
1707
+ },
1708
+ {
1709
+ "internalType": "Amount",
1710
+ "name": "rewardsClaimedAmount",
1711
+ "type": "uint96"
1712
+ }
1713
+ ],
1866
1714
  "stateMutability": "nonpayable",
1867
1715
  "type": "function"
1868
1716
  },
@@ -1889,6 +1737,19 @@
1889
1737
  "stateMutability": "nonpayable",
1890
1738
  "type": "function"
1891
1739
  },
1740
+ {
1741
+ "inputs": [
1742
+ {
1743
+ "internalType": "NftId",
1744
+ "name": "stakeNftId",
1745
+ "type": "uint96"
1746
+ }
1747
+ ],
1748
+ "name": "updateRewards",
1749
+ "outputs": [],
1750
+ "stateMutability": "nonpayable",
1751
+ "type": "function"
1752
+ },
1892
1753
  {
1893
1754
  "inputs": [
1894
1755
  {
@@ -1916,71 +1777,129 @@
1916
1777
  }
1917
1778
  ],
1918
1779
  "name": "withdrawRewardReserves",
1919
- "outputs": [],
1780
+ "outputs": [
1781
+ {
1782
+ "internalType": "Amount",
1783
+ "name": "newBalance",
1784
+ "type": "uint96"
1785
+ }
1786
+ ],
1920
1787
  "stateMutability": "nonpayable",
1921
1788
  "type": "function"
1922
1789
  }
1923
1790
  ],
1924
- "bytecode": "0x60806040523480156200001157600080fd5b506200001c62000022565b620000d6565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000735760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d35780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b61474780620000e66000396000f3fe60806040523480156200001157600080fd5b5060043610620004755760003560e01c80636c0a81911162000259578063bb1e0e591162000149578063e9e96c7011620000c7578063f48016ce1162000092578063f48016ce1462000c01578063f57f4aaa1462000893578063f67fef6d1462000646578063f7c34ee01462000c18578063f8bf0d9f1462000c2f57600080fd5b8063e9e96c701462000b6e578063ea15869f1462000b85578063ecd6bf3c1462000b9c578063f43a39191462000bb357600080fd5b8063dea4ccf21162000114578063dea4ccf214620007f9578063deaa59df1462000b29578063e7f7fb861462000b40578063e8ce883d1462000646578063e904ec661462000b5757600080fd5b8063bb1e0e591462000adb578063bf1db3f91462000af2578063bf7e214f1462000b09578063de0eb85f146200064657600080fd5b80638eaa6ac011620001d75780639a72636411620001a25780639a72636414620009dc578063a5961b4c14620009ed578063a89896751462000aa3578063ada9652e1462000aba578063b423086c1462000ad157600080fd5b80638eaa6ac014620009625780638fb36037146200098857806390edbd3514620009ac578063958697a014620009c557600080fd5b806374a4030f116200022457806374a4030f14620008935780637a9e5e4b146200089b5780637b21556114620008b2578063806b5ece146200090a578063893d20e8146200095857600080fd5b80636c0a819114620007f95780636c1e9dff146200064657806370ed62c71462000882578063719f761a14620007f957600080fd5b80632a80f673116200037557806351d3417e11620002f35780635e0dacca11620002be5780635e0dacca14620007f9578063614d08f8146200080d578063644c45e01462000834578063675393bf146200085457806369aff9af146200086b57600080fd5b806351d3417e146200076357806354f6127f14620007c65780635741e5e914620007dd5780635ab1bd5314620007e757600080fd5b806338a699a4116200034057806338a699a414620006ef57806343d752d31462000706578063468bce06146200071057806349bb9e4b146200071a5780634dd84ff7146200073157600080fd5b80632a80f6731462000672578063329d6e741462000683578063346b1db4146200069a57806336fc697e14620006e557600080fd5b8063160e4b1f116200040357806321df0da711620003ce57806321df0da7146200063257806322366844146200063c57806326889b09146200064657806327415b7e14620005c457806327bb7a33146200065b57600080fd5b8063160e4b1f14620005c457806317d7de7c14620005da5780631eff4b2214620005f3578063214cdb80146200061b57600080fd5b80630d8e6e2c11620004445780630d8e6e2c146200055d5780630fec111c146200057c578063132996041462000595578063138461e014620005b857600080fd5b806301ffc9a7146200047a578063062c9cdf14620004bf57806309648a9d14620004f65780630d3581811462000534575b600080fd5b620004aa6200048b3660046200336b565b6001600160e01b03191660009081526003602052604090205460ff1690565b60405190151581526020015b60405180910390f35b620004e77fafe8d4462b2ed26a47154f4b8f6d1497d2f772496965791d25bd456e342b7f0081565b604051908152602001620004b6565b620005216200050736600462003397565b600090815260026020526040902054610100900460ff1690565b60405160ff9091168152602001620004b6565b6200052162000545366004620033d3565b60ff9081166000908152602081905260409020541690565b6200056762000c46565b60405162ffffff9091168152602001620004b6565b6200058662000cd3565b604051620004b6919062003447565b6200059f62000ea4565b6040516001600160a01b039091168152602001620004b6565b620005c262000eb9565b005b620005c2620005d53660046200351b565b505050565b620005e4620010ce565b604051620004b691906200356d565b620004e77f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b620005c26200062c3660046200336b565b620010e0565b6200059f6200110f565b620004aa62001124565b620005c26200065736600462003582565b5050565b620005c26200066c366004620036d6565b62001226565b620005c2620006573660046200377c565b620005c262000694366004620037ab565b620012d1565b620004e7620006ab366004620037e3565b6001600160601b031660009081527fafe8d4462b2ed26a47154f4b8f6d1497d2f772496965791d25bd456e342b7f01602052604090205490565b620005c262001429565b620004aa6200070036600462003397565b62001471565b6200059f62001505565b620005c26200151a565b620005c26200072b36600462003803565b62001558565b6200074a6200074236600462003858565b600092915050565b6040516001600160601b039091168152602001620004b6565b6200074a6200077436600462003894565b6001600160601b0391821660009081527fafe8d4462b2ed26a47154f4b8f6d1497d2f772496965791d25bd456e342b7f04602090815260408083206001600160a01b0394909416835292905220541690565b620005e4620007d736600462003397565b62001660565b620004aa6200170d565b6004546001600160a01b03166200059f565b620005c26200080a366004620037e3565b50565b620005e4604051806040016040528060078152602001665374616b696e6760c81b81525081565b60008051602062004692833981519152546001600160601b03166200074a565b620005c262000865366004620038c7565b620017cc565b620005c26200087c36600462003397565b620018e2565b6200074a6200074236600462003582565b60006200074a565b620005c2620008ac366004620038c7565b62001936565b620004e7620008c3366004620038e7565b60009182527fafe8d4462b2ed26a47154f4b8f6d1497d2f772496965791d25bd456e342b7f00602090815260408084206001600160a01b0393909316845291905290205490565b6200074a6200091b366004620037e3565b6001600160601b0390811660009081527fafe8d4462b2ed26a47154f4b8f6d1497d2f772496965791d25bd456e342b7f0360205260409020541690565b6200059f620019d8565b620009796200097336600462003397565b62001b17565b604051620004b6919062003959565b6200099262001c60565b6040516001600160e01b03199091168152602001620004b6565b620009b662001c9b565b604051620004b6919062003989565b620005c2620009d63660046200351b565b62001cc9565b620005c2620009d636600462003a10565b62000a94620009fe36600462003397565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915250600090815260026020908152604091829020825160a081018452905460ff8082168352610100820416928201929092526001600160a01b03620100008304169281019290925263ffffffff600160b01b820481166060840152600160d01b90910416608082015290565b604051620004b6919062003a4b565b620005c262000ab436600462003a5b565b62001d08565b620004e76000805160206200469283398151915281565b620009b662001dff565b620005c262000aec36600462003aa2565b62001e13565b620004aa62000b03366004620033d3565b62001eb7565b600080516020620046d2833981519152546001600160a01b03166200059f565b620005c262000b3a366004620038c7565b62001f05565b620005c262000b5136600462003ac3565b620021a3565b620005c262000b6836600462003aa2565b62002247565b620004aa62000b7f36600462003a5b565b62002398565b620004e7600080516020620046b283398151915281565b620005c262000bad36600462003af8565b620023cc565b6200074a62000bc4366004620037e3565b6001600160601b0390811660009081527fafe8d4462b2ed26a47154f4b8f6d1497d2f772496965791d25bd456e342b7f0260205260409020541690565b620004e762000c1236600462003ba9565b6200240b565b620005c262000c2936600462003be2565b62002491565b620005c262000c4036600462003c03565b62002510565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$8eede297b65ed5a56eb3f84d8232ae93f5$__90632efe011390606401602060405180830381865af415801562000ca8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000cce919062003d19565b905090565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915260007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e0016040528073__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af415801562000d88573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000dae919062003d4d565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a00162000df8620019d8565b6001600160a01b0316815260200182600101805462000e179062003d6d565b80601f016020809104026020016040519081016040528092919081815260200182805462000e459062003d6d565b801562000e965780601f1062000e6a5761010080835404028352916020019162000e96565b820191906000526020600020905b81548152906001019060200180831162000e7857829003601f168201915b505050505081525091505090565b600062000eb062001c9b565b60800151905090565b60006000805160206200469283398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af415801562000f2a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f50919062003db6565b1562000f825780546040516301ab8b6760e21b81526001600160601b0390911660048201526024015b60405180910390fd5b3062000f966004546001600160a01b031690565b60405163c3c5a54760e01b81526001600160a01b038381166004830152919091169063c3c5a54790602401602060405180830381865afa15801562000fdf573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001005919062003db6565b6200102f5760405163b9304b0d60e01b81526001600160a01b038216600482015260240162000f79565b6004546001600160a01b0316604051636939560f60e11b81526001600160a01b038381166004830152919091169063d272ac1e90602401602060405180830381865afa15801562001084573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620010aa919062003d4d565b82546bffffffffffffffffffffffff19166001600160601b03919091161790915550565b6060620010da62001c9b565b51919050565b620010ea62002630565b6001600160e01b0319166000908152600360205260409020805460ff19166001179055565b60006200111b62001c9b565b60400151905090565b6000620011396004546001600160a01b031690565b604051636939560f60e11b81523060048201526001600160a01b03919091169063d272ac1e90602401602060405180830381865afa15801562001180573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620011a6919062003d4d565b6040516330b8415f60e01b81526001600160601b03909116600482015273__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af415801562001200573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000cce919062003db6565b6200123062002630565b6200123c828762002491565b7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0387166cffffffffffffffffffffffffff1990911617600160601b60ff8716021760ff60681b1916600160681b851515021781557f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa301620012c7838262003e28565b5050505050505050565b73__$8eede297b65ed5a56eb3f84d8232ae93f5$__63a123b37c620012f562000c46565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af415801562001336573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200135c919062003ef4565b600080516020620046f28339815191528054600160401b900460ff168062001391575080546001600160401b03808416911610155b15620013b05760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b178155620013dc8362002669565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a1505050565b6200143362002630565b6301ffc9a760e01b60005260036020527f28b0ef64f7e82d3b26f3fd404bd0151552f792965f39c29ae82c0a78df67af9c805460ff19166001179055565b60008181526002602052604080822054905163b2466acf60e01b815261010090910460ff16600482015273__$2e1fcf62e7a1b3c2a33bdf2228c171b2be$__9063b2466acf906024015b602060405180830381865af4158015620014d9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620014ff919062003db6565b92915050565b60006200151162001c9b565b60600151905090565b6200152462002630565b6200152e62002673565b6200153862002797565b620015426200288b565b6200154c620029c3565b6200155662002af0565b565b600080516020620046f28339815191528054600160401b810460ff1615906001600160401b03166000811580156200158d5750825b90506000826001600160401b03166001148015620015aa5750303b155b905081158015620015b9575080155b15620015d85760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156200160357845460ff60401b1916600160401b1785555b6200160f878762002bac565b83156200165757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15b50505050505050565b6000818152600260205260409020600101805460609190620016829062003d6d565b80601f0160208091040260200160405190810160405280929190818152602001828054620016b09062003d6d565b8015620017015780601f10620016d55761010080835404028352916020019162001701565b820191906000526020600020905b815481529060010190602001808311620016e357829003601f168201915b50505050509050919050565b60006200171962001124565b156200179c576004546001600160a01b03166040516308b09a5f60e41b81523060048201526001600160a01b039190911690638b09a5f090602401600060405180830381865afa15801562001772573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262001511919081019062003f85565b507fffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f0354600160a01b900460ff1690565b620017d662002630565b806001600160a01b03163b6000036200180e5760405163fdeac91f60e01b81526001600160a01b038216600482015260240162000f79565b600480546001600160a01b0319166001600160a01b03831690811782556040516301ffc9a760e01b815263256dc24d60e21b92810192909252906301ffc9a790602401602060405180830381865afa9250505080156200188d575060408051601f3d908101601f191682019092526200188a9181019062003db6565b60015b620018b75760405163fdeac91f60e01b81526001600160a01b038216600482015260240162000f79565b80620006575760405163fdeac91f60e01b81526001600160a01b038316600482015260240162000f79565b620018ec620019d8565b6001600160a01b0316336001600160a01b031614620019215760405163086391f760e31b815233600482015260240162000f79565b6200080a6200192f6200110f565b8262002247565b3362001958600080516020620046d2833981519152546001600160a01b031690565b6001600160a01b0316816001600160a01b031614620019955760405162d1953b60e31b81526001600160a01b038216600482015260240162000f79565b816001600160a01b03163b600003620019cd576040516361798f2f60e11b81526001600160a01b038316600482015260240162000f79565b620006578262002d94565b6000806000805160206200469283398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af415801562001a4a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001a70919062003db6565b1562001b01576004546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa15801562001ad5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001afb91906200406b565b91505090565b54600160601b90046001600160a01b0316919050565b6040805160e081018252600091810182815260608083018490526080830184905260a0830184905260c083019390935281526020810191909152600082815260026020908152604091829020825160e081018452815460ff80821695830195865261010082041660608301526001600160a01b0362010000820416608083015263ffffffff600160b01b8204811660a0840152600160d01b9091041660c0820152928352600181018054919284019162001bd19062003d6d565b80601f016020809104026020016040519081016040528092919081815260200182805462001bff9062003d6d565b801562001c505780601f1062001c245761010080835404028352916020019162001c50565b820191906000526020600020905b81548152906001019060200180831162001c3257829003601f168201915b5050505050815250509050919050565b600080516020620046d2833981519152805460009190600160a01b900460ff1662001c8d57600062001afb565b638fb3603760e01b91505090565b62001ca562003303565b62001caf62001124565b1562001cbf5762000cce62002df0565b62000cce62001dff565b62001cd3620019d8565b6001600160a01b0316336001600160a01b031614620005d55760405163086391f760e31b815233600482015260240162000f79565b60ff8381166000908152602081905260409081902054905163037c8cb160e51b81529116600482015273__$2e1fcf62e7a1b3c2a33bdf2228c171b2be$__90636f91962090602401602060405180830381865af415801562001d6e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001d94919062003db6565b1562001d9f57505050565b60ff808416600090815260016020908152604080832086851684528252808320858516845290915290205416620005d557604051636bb20ea760e01b815260ff808516600483015280841660248301528216604482015260640162000f79565b62001e0962003303565b62000cce62002df0565b6004546001600160a01b03166001600160a01b031663120726c36040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001e5d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001e8391906200406b565b6001600160a01b0316336001600160a01b031614620006575760405162f0630960e01b815233600482015260240162000f79565b60ff81811660009081526020819052604080822054905163b2466acf60e01b8152921660048301529073__$2e1fcf62e7a1b3c2a33bdf2228c171b2be$__9063b2466acf90602401620014bb565b62001f0f620019d8565b6001600160a01b0316336001600160a01b03161462001f445760405163086391f760e31b815233600482015260240162000f79565b600062001f5062000ea4565b9050600062001f5e6200110f565b6040516370a0823160e01b81526001600160a01b0384811660048301529192506000918316906370a0823190602401602060405180830381865afa15801562001fab573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001fd191906200408b565b90508015620020aa576001600160a01b0383163014620020aa57604051636eb1769f60e11b81526001600160a01b0384811660048301523060248301526000919084169063dd62ed3e90604401602060405180830381865afa1580156200203c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200206291906200408b565b905081811015620020a8576040516372c963b360e11b81526001600160a01b03808616600483015286166024820152604481018290526064810183905260840162000f79565b505b620020b58462002f71565b80156200219d57306001600160a01b03841603620021435760405163095ea7b360e01b8152306004820152602481018290526001600160a01b0383169063095ea7b3906044016020604051808303816000875af11580156200211b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002141919062003db6565b505b62002151828486846200305e565b604080516001600160a01b038086168252861660208201529081018290527f8f925ed35e36754081a3353f30c5686c405280f94d1cfe322ee5707833d898679060600160405180910390a15b50505050565b6004546001600160a01b03166001600160a01b031663120726c36040518163ffffffff1660e01b8152600401602060405180830381865afa158015620021ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200221391906200406b565b6001600160a01b0316336001600160a01b031614620005d55760405162f0630960e01b815233600482015260240162000f79565b62002251620019d8565b6001600160a01b0316336001600160a01b031614620022865760405163086391f760e31b815233600482015260240162000f79565b306200229162000ea4565b6001600160a01b031614620022b95760405163b6d7537f60e01b815260040160405180910390fd5b816001600160a01b031663095ea7b3620022d262001505565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af115801562002320573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002346919062003db6565b507f2384a42fdaabc7c18091b047d32d817d2ead07cae899963c6bcf9ab42aff85d46200237262001505565b604080516001600160a01b03909216825260208201849052015b60405180910390a15050565b60ff8084166000908152600160209081526040808320868516845282528083208585168452909152902054165b9392505050565b620023d6620019d8565b6001600160a01b0316336001600160a01b031614620006575760405163086391f760e31b815233600482015260240162000f79565b604051637a400b6760e11b815260ff8316600482015260ff198216602482015260009073__$4b9aaffa8d044614668dad578b824b8eee$__9063f48016ce90604401602060405180830381865af41580156200246b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620023c591906200408b565b6200249b62002630565b620024a681620017cc565b620024b062001429565b6001600160a01b038216620024d85760405163f17ef42d60e01b815260040160405180910390fd5b506000805160206200469283398151915280546001600160601b0316600160601b6001600160a01b0390931692909202919091179055565b6200251a62002630565b6200252a89898787878762001226565b620025358a620030ba565b6001600160a01b0386166200255d576040516327eab2e360e11b815260040160405180910390fd5b8651600003620025805760405163591eebf360e11b815260040160405180910390fd5b600080516020620046b2833981519152806200259d898262003e28565b506001810180546001600160a01b03199081166001600160a01b038a161790915560028201805490911690556003810180546001600160a81b0319163060ff60a01b191617600160a01b8715150217905560048101620025fe838262003e28565b5062002611634a531f3360e01b620010e0565b6200262363100951f160e31b620010e0565b5050505050505050505050565b600080516020620046f283398151915254600160401b900460ff166200155657604051631afcd79f60e31b815260040160405180910390fd5b6200047562002630565b7f5bd290414b404036f9d63146803dd83b59a8e1905062a5bfed8b0154d20a390d8054606460ff19918216179091557f1578fb1f3721b6c33cae7dfcd025f5660361b090d8a17dcf8a744763f22d32ff8054821660019081179091557f47ebb928e225b2cdc8d8e0079f8da9b87d2bc15cc37a8c27842a5c925baa8b1e80548316821790557ffe60dc71e2c842ec11550e74a003d6f707c74c3b19b04c1b0700bc0fd9efd9508054909216811790915560dc600090815260208290527f81c2bf9f7c6e8ac9bd8bcd9d323e94b867d2f5054aff8759d884773c680ec1ec90606e5b60ff1660ff16815260200190815260200160002060006200277360c890565b60ff1681526020810191909152604001600020805460ff1916911515919091179055565b7f9db7038e59677010ca8f72fa448bad1b4f3c53346b666689163ccac31db467728054606460ff1991821681179092557f1a3062e9a24818c8281fcfb58ec4f3083a2f9a1314ac63f80d8d646661fdc50980548216600190811790915560008381527fc884cae9155e1829c27543e26ecbb72f79fe3a85ba4df2c4a97ad5806356754d6020527f2916767ac794614810c43d6c0837244e8b2c8d3f3c02376a214f465d6841db5680549093168217909255918291905b60ff1660ff16815260200190815260200160002060006200286c606e90565b60ff1660ff16815260200190815260200160002060006200277360d290565b7fa57aae0b1e878b4cf2d1f237d2c6d245fa2af12f527cffc45e0a81d7b3c46abe8054600a60ff19918216179091557f10d8f68d28031156bb5a2007a6e7fc1ff769776115bd307e1d3f2901ec220eef8054821660019081179091557f71e0ce7e96b0b9ecf53c20706f5891c8e9bb320060393406400136d7ab1db61e80548316821790557f3aa5c1a82b8afaca3213d4302f465dcc339ab680e61c71830f7d9c441c63328380548316821790557ff9240d619fae1c941eaa4888cff36b0b9489ef130bdb7c814fd3a0e301d8ad1f80548316821790557f59d2febd485ffaba948645e520694e9996f0c229c4a10430d07956b599b172538054909216811790915560d3600090815260208290527f7415b658af57d740454b01d91722f71a360db8fdd5ec2a068a92c37e2bc3b1d690606462002754565b7f41d63e1348ead7043feb8677b52ff813a7a3d573fdf99c917846a69e8e7b7e60805460ff199081166032179091557f378c5573ee3453f5c9f5c7aa83b807835ecb097b5151d641746b59340336b67d8054821660019081179091557f7f4fc20c9070f9c8378783c3022311e08af436d0fea4b913fe0bbde88023d12680548316821790557ff6e14778b29b20f68b5cc5186c105c44b748bec78fd85e0b2ec52bc8586d6a6b80548316821790557fb9ec96904d3ea9e7b01f30f8b9a841d70b77145e37a183ebdbba2b0733adc0ec8054603c93168317905560009182527f77835ececcc7e965708390fdc28b7c7141b063a8a849f3954f1d294d07730184602052907f5e9b6496c2ea16de03007cb0b49643b7231addd52c0cee66d8556b1dd66622a19060dc62002773565b7fc5f2c791ab4e0b1a0b6c600884b07e98575b00ebd7c3166c4272a53bebf714038054606460ff1991821681179092557f66482ac56acdda5113badf732cc46c284136d9d6378a671ac129cd298ff5f96780548216600190811790915560009283527f47d871bf8fdbdfc3d809d1454103f6ff238aad0f5cefde0353363b9e415ef6a76020527ff2de5750d5c9f412b7907640f68a5258fe3f903dfd0cd25c2ea235b23cc926958054909216811790915590819060c86200284d565b600080516020620046f28339815191528054600160401b810460ff1615906001600160401b031660008115801562002be15750825b90506000826001600160401b0316600114801562002bfe5750303b155b90508115801562002c0d575080155b1562002c2c5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831562002c5757845460ff60401b1916600160401b1785555b6000806000808980602001905181019062002c739190620040a5565b935093509350935062002d308484856001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa15801562002cc0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002ce6919062003d4d565b6040805180820190915260078152665374616b696e6760c81b602082015286602d600088604051806020016040528060008152506040518060200160405280600081525062002510565b62002d3a620030cf565b62002d4c6339dee94960e01b620010e0565b5050505083156200165757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020016200164e565b600080516020620046d283398151915280546001600160a01b0319166001600160a01b03831690811782556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad906020016200238c565b62002dfa62003303565b6000600080516020620046b283398151915290506040518060c0016040528082600001805462002e2a9062003d6d565b80601f016020809104026020016040519081016040528092919081815260200182805462002e589062003d6d565b801562002ea95780601f1062002e7d5761010080835404028352916020019162002ea9565b820191906000526020600020905b81548152906001019060200180831162002e8b57829003601f168201915b5050505050815260200173__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af415801562002efd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002f23919062003d4d565b6001600160601b0316815260018301546001600160a01b039081166020830152600284015481166040830152600384015416606082015260048301805460809092019162000e179062003d6d565b7fffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f0354600080516020620046b2833981519152906001600160a01b0390811690831662002fd05760405163185a690f60e11b815260040160405180910390fd5b806001600160a01b0316836001600160a01b031603620030035760405163ade4578160e01b815260040160405180910390fd5b6003820180546001600160a01b0319166001600160a01b0385811691821790925560408051928416835260208301919091527f610ad1290dceadae2c5ce18bae2eb495be595083a257fac7414e50686f7c265091016200141c565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526200219d9085906200316d565b620030c462002630565b6200080a81620031d7565b7fffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f0154604051600080516020620046b2833981519152916001600160a01b0316906200311a906200335d565b6001600160a01b039091168152602001604051809103906000f08015801562003147573d6000803e3d6000fd5b5060029190910180546001600160a01b0319166001600160a01b03909216919091179055565b6000620031846001600160a01b03841683620031ec565b90508051600014158015620031ac575080806020019051810190620031aa919062003db6565b155b15620005d557604051635274afe760e01b81526001600160a01b038416600482015260240162000f79565b620031e162002630565b6200080a8162002d94565b6060620023c58383600084600080856001600160a01b031684866040516200321591906200410d565b60006040518083038185875af1925050503d806000811462003254576040519150601f19603f3d011682016040523d82523d6000602084013e62003259565b606091505b50915091506200326b86838362003275565b9695505050505050565b6060826200328e576200328882620032d9565b620023c5565b8151158015620032a657506001600160a01b0384163b155b15620032d157604051639996b31560e01b81526001600160a01b038516600482015260240162000f79565b5080620023c5565b805115620032ea5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060c001604052806060815260200160006001600160601b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b03168152602001606081525090565b610566806200412c83390190565b6000602082840312156200337e57600080fd5b81356001600160e01b031981168114620023c557600080fd5b600060208284031215620033aa57600080fd5b5035919050565b60ff811681146200080a57600080fd5b8035620033ce81620033b1565b919050565b600060208284031215620033e657600080fd5b8135620023c581620033b1565b60005b8381101562003410578181015183820152602001620033f6565b50506000910152565b6000815180845262003433816020860160208601620033f3565b601f01601f19169290920160200192915050565b6020815260006001600160601b038084511660208401528060208501511660408401525060ff604084015116606083015260608301511515608083015260018060a01b0360808401511660a083015260a0830151620034b160c08401826001600160a01b03169052565b5060c083015160e080840152620034cd61010084018262003419565b949350505050565b6001600160601b03811681146200080a57600080fd5b8035620033ce81620034d5565b6001600160a01b03811681146200080a57600080fd5b8035620033ce81620034f8565b6000806000606084860312156200353157600080fd5b83356200353e81620034d5565b925060208401356200355081620034f8565b915060408401356200356281620034d5565b809150509250925092565b602081526000620023c5602083018462003419565b600080604083850312156200359657600080fd5b8235620035a381620034d5565b91506020830135620035b581620034d5565b809150509250929050565b80151581146200080a57600080fd5b8035620033ce81620035c0565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715620036175762003617620035dc565b60405290565b604051601f8201601f191681016001600160401b0381118282101715620036485762003648620035dc565b604052919050565b60006001600160401b038211156200366c576200366c620035dc565b50601f01601f191660200190565b600082601f8301126200368c57600080fd5b8135620036a36200369d8262003650565b6200361d565b818152846020838601011115620036b957600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060c08789031215620036f057600080fd5b8635620036fd81620034f8565b955060208701356200370f81620034d5565b945060408701356200372181620033b1565b935060608701356200373381620035c0565b925060808701356200374581620034f8565b915060a08701356001600160401b038111156200376157600080fd5b6200376f89828a016200367a565b9150509295509295509295565b600080604083850312156200379057600080fd5b82356200379d81620034d5565b946020939093013593505050565b600060208284031215620037be57600080fd5b81356001600160401b03811115620037d557600080fd5b620034cd848285016200367a565b600060208284031215620037f657600080fd5b8135620023c581620034d5565b600080604083850312156200381757600080fd5b82356200382481620034f8565b915060208301356001600160401b038111156200384057600080fd5b6200384e858286016200367a565b9150509250929050565b600080604083850312156200386c57600080fd5b82356200387981620034d5565b9150602083013564ffffffffff81168114620035b557600080fd5b60008060408385031215620038a857600080fd5b8235620038b581620034d5565b91506020830135620035b581620034f8565b600060208284031215620038da57600080fd5b8135620023c581620034f8565b60008060408385031215620038fb57600080fd5b823591506020830135620035b581620034f8565b60ff815116825260ff602082015116602083015260018060a01b036040820151166040830152606081015163ffffffff808216606085015280608084015116608085015250505050565b602081526200396d6020820183516200390f565b6000602083015160c080840152620034cd60e084018262003419565b602081526000825160c06020840152620039a760e084018262003419565b90506001600160601b036020850151166040840152604084015160018060a01b0380821660608601528060608701511660808601528060808701511660a0860152505060a0840151601f198483030160c085015262003a07828262003419565b95945050505050565b60008060006060848603121562003a2657600080fd5b83359250602084013562003a3a81620034f8565b929592945050506040919091013590565b60a08101620014ff82846200390f565b60008060006060848603121562003a7157600080fd5b833562003a7e81620033b1565b9250602084013562003a9081620033b1565b915060408401356200356281620033b1565b6000806040838503121562003ab657600080fd5b82356200379d81620034f8565b60008060006060848603121562003ad957600080fd5b833562003ae681620034f8565b9250602084013562003a3a81620034f8565b60008082840360a081121562003b0d57600080fd5b833562003b1a81620034d5565b92506080601f198201121562003b2f57600080fd5b50604051608081018181106001600160401b038211171562003b555762003b55620035dc565b604052602084013562003b6881620034d5565b8152604084013562003b7a81620033b1565b602082015260608401356040820152608084013562003b9981620034f8565b6060820152919491935090915050565b6000806040838503121562003bbd57600080fd5b823562003bca81620033b1565b9150602083013560ff1981168114620035b557600080fd5b6000806040838503121562003bf657600080fd5b8235620038b581620034f8565b6000806000806000806000806000806101408b8d03121562003c2457600080fd5b62003c2f8b6200350e565b995062003c3f60208c016200350e565b985062003c4f60408c01620034eb565b975060608b01356001600160401b038082111562003c6c57600080fd5b62003c7a8e838f016200367a565b985062003c8a60808e016200350e565b975062003c9a60a08e01620033c1565b965062003caa60c08e01620035cf565b955062003cba60e08e016200350e565b94506101008d013591508082111562003cd257600080fd5b62003ce08e838f016200367a565b93506101208d013591508082111562003cf857600080fd5b5062003d078d828e016200367a565b9150509295989b9194979a5092959850565b60006020828403121562003d2c57600080fd5b815162ffffff81168114620023c557600080fd5b8051620033ce81620034d5565b60006020828403121562003d6057600080fd5b8151620023c581620034d5565b600181811c9082168062003d8257607f821691505b60208210810362003da357634e487b7160e01b600052602260045260246000fd5b50919050565b8051620033ce81620035c0565b60006020828403121562003dc957600080fd5b8151620023c581620035c0565b601f821115620005d557600081815260208120601f850160051c8101602086101562003dff5750805b601f850160051c820191505b8181101562003e205782815560010162003e0b565b505050505050565b81516001600160401b0381111562003e445762003e44620035dc565b62003e5c8162003e55845462003d6d565b8462003dd6565b602080601f83116001811462003e94576000841562003e7b5750858301515b600019600386901b1c1916600185901b17855562003e20565b600085815260208120601f198616915b8281101562003ec55788860151825594840194600190910190840162003ea4565b508582101562003ee45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121562003f0757600080fd5b81516001600160401b0381168114620023c557600080fd5b8051620033ce81620033b1565b8051620033ce81620034f8565b600082601f83011262003f4b57600080fd5b815162003f5c6200369d8262003650565b81815284602083860101111562003f7257600080fd5b620034cd826020830160208701620033f3565b60006020828403121562003f9857600080fd5b81516001600160401b038082111562003fb057600080fd5b9083019060e0828603121562003fc557600080fd5b62003fcf620035f2565b62003fda8362003d40565b815262003fea6020840162003d40565b602082015262003ffd6040840162003f1f565b6040820152620040106060840162003da9565b6060820152620040236080840162003f2c565b60808201526200403660a0840162003f2c565b60a082015260c0830151828111156200404e57600080fd5b6200405c8782860162003f39565b60c08301525095945050505050565b6000602082840312156200407e57600080fd5b8151620023c581620034f8565b6000602082840312156200409e57600080fd5b5051919050565b60008060008060808587031215620040bc57600080fd5b8451620040c981620034f8565b6020860151909450620040dc81620034f8565b6040860151909350620040ef81620034f8565b60608601519092506200410281620034f8565b939692955090935050565b6000825162004121818460208701620033f3565b919091019291505056fe608060405234801561001057600080fd5b5060405161056638038061056683398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6104d3806100936000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806321df0da7146100465780638d7271c314610065578063c661667d1461007a575b600080fd5b600054604080516001600160a01b039092168252519081900360200190f35b61007861007336600461039c565b61008d565b005b6100786100883660046103f0565b61011f565b60405163046e44af60e11b81526001600160601b03821660048201526101199085908590859073__$3bac17678db7ae928afa209f2f44deec9c$__906308dc895e906024015b602060405180830381865af41580156100f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101149190610433565b610179565b50505050565b60005460405163046e44af60e11b81526001600160601b0383166004820152610174916001600160a01b0316908590859073__$3bac17678db7ae928afa209f2f44deec9c$__906308dc895e906024016100d3565b505050565b604080516001600160a01b038581166024830152848116604483015260648083018590528351808403909101815260849092019092526020810180516001600160e01b03166323b872dd60e01b179052610119918691906000906101df90841683610232565b90508051600014158015610204575080806020019051810190610202919061044c565b155b1561017457604051635274afe760e01b81526001600160a01b03841660048201526024015b60405180910390fd5b606061024083836000610247565b9392505050565b60608147101561026c5760405163cd78605960e01b8152306004820152602401610229565b600080856001600160a01b03168486604051610288919061046e565b60006040518083038185875af1925050503d80600081146102c5576040519150601f19603f3d011682016040523d82523d6000602084013e6102ca565b606091505b50915091506102da8683836102e4565b9695505050505050565b6060826102f9576102f482610340565b610240565b815115801561031057506001600160a01b0384163b155b1561033957604051639996b31560e01b81526001600160a01b0385166004820152602401610229565b5080610240565b8051156103505780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b038116811461038057600080fd5b919050565b80356001600160601b038116811461038057600080fd5b600080600080608085870312156103b257600080fd5b6103bb85610369565b93506103c960208601610369565b92506103d760408601610369565b91506103e560608601610385565b905092959194509250565b60008060006060848603121561040557600080fd5b61040e84610369565b925061041c60208501610369565b915061042a60408501610385565b90509250925092565b60006020828403121561044557600080fd5b5051919050565b60006020828403121561045e57600080fd5b8151801515811461024057600080fd5b6000825160005b8181101561048f5760208186018101518583015201610475565b50600092019182525091905056fea2646970667358221220cef169e5ebf6594361114297bdf3c5c071054018e8f028c23ba2f8f1536ea8ae64736f6c6343000814003307ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00ffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220496af537e5dc16917f0399ef7fb9452683f2bb2d3080e80aa686b501eb34c95264736f6c63430008140033",
1925
- "deployedBytecode": "0x60806040523480156200001157600080fd5b5060043610620004755760003560e01c80636c0a81911162000259578063bb1e0e591162000149578063e9e96c7011620000c7578063f48016ce1162000092578063f48016ce1462000c01578063f57f4aaa1462000893578063f67fef6d1462000646578063f7c34ee01462000c18578063f8bf0d9f1462000c2f57600080fd5b8063e9e96c701462000b6e578063ea15869f1462000b85578063ecd6bf3c1462000b9c578063f43a39191462000bb357600080fd5b8063dea4ccf21162000114578063dea4ccf214620007f9578063deaa59df1462000b29578063e7f7fb861462000b40578063e8ce883d1462000646578063e904ec661462000b5757600080fd5b8063bb1e0e591462000adb578063bf1db3f91462000af2578063bf7e214f1462000b09578063de0eb85f146200064657600080fd5b80638eaa6ac011620001d75780639a72636411620001a25780639a72636414620009dc578063a5961b4c14620009ed578063a89896751462000aa3578063ada9652e1462000aba578063b423086c1462000ad157600080fd5b80638eaa6ac014620009625780638fb36037146200098857806390edbd3514620009ac578063958697a014620009c557600080fd5b806374a4030f116200022457806374a4030f14620008935780637a9e5e4b146200089b5780637b21556114620008b2578063806b5ece146200090a578063893d20e8146200095857600080fd5b80636c0a819114620007f95780636c1e9dff146200064657806370ed62c71462000882578063719f761a14620007f957600080fd5b80632a80f673116200037557806351d3417e11620002f35780635e0dacca11620002be5780635e0dacca14620007f9578063614d08f8146200080d578063644c45e01462000834578063675393bf146200085457806369aff9af146200086b57600080fd5b806351d3417e146200076357806354f6127f14620007c65780635741e5e914620007dd5780635ab1bd5314620007e757600080fd5b806338a699a4116200034057806338a699a414620006ef57806343d752d31462000706578063468bce06146200071057806349bb9e4b146200071a5780634dd84ff7146200073157600080fd5b80632a80f6731462000672578063329d6e741462000683578063346b1db4146200069a57806336fc697e14620006e557600080fd5b8063160e4b1f116200040357806321df0da711620003ce57806321df0da7146200063257806322366844146200063c57806326889b09146200064657806327415b7e14620005c457806327bb7a33146200065b57600080fd5b8063160e4b1f14620005c457806317d7de7c14620005da5780631eff4b2214620005f3578063214cdb80146200061b57600080fd5b80630d8e6e2c11620004445780630d8e6e2c146200055d5780630fec111c146200057c578063132996041462000595578063138461e014620005b857600080fd5b806301ffc9a7146200047a578063062c9cdf14620004bf57806309648a9d14620004f65780630d3581811462000534575b600080fd5b620004aa6200048b3660046200336b565b6001600160e01b03191660009081526003602052604090205460ff1690565b60405190151581526020015b60405180910390f35b620004e77fafe8d4462b2ed26a47154f4b8f6d1497d2f772496965791d25bd456e342b7f0081565b604051908152602001620004b6565b620005216200050736600462003397565b600090815260026020526040902054610100900460ff1690565b60405160ff9091168152602001620004b6565b6200052162000545366004620033d3565b60ff9081166000908152602081905260409020541690565b6200056762000c46565b60405162ffffff9091168152602001620004b6565b6200058662000cd3565b604051620004b6919062003447565b6200059f62000ea4565b6040516001600160a01b039091168152602001620004b6565b620005c262000eb9565b005b620005c2620005d53660046200351b565b505050565b620005e4620010ce565b604051620004b691906200356d565b620004e77f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b620005c26200062c3660046200336b565b620010e0565b6200059f6200110f565b620004aa62001124565b620005c26200065736600462003582565b5050565b620005c26200066c366004620036d6565b62001226565b620005c2620006573660046200377c565b620005c262000694366004620037ab565b620012d1565b620004e7620006ab366004620037e3565b6001600160601b031660009081527fafe8d4462b2ed26a47154f4b8f6d1497d2f772496965791d25bd456e342b7f01602052604090205490565b620005c262001429565b620004aa6200070036600462003397565b62001471565b6200059f62001505565b620005c26200151a565b620005c26200072b36600462003803565b62001558565b6200074a6200074236600462003858565b600092915050565b6040516001600160601b039091168152602001620004b6565b6200074a6200077436600462003894565b6001600160601b0391821660009081527fafe8d4462b2ed26a47154f4b8f6d1497d2f772496965791d25bd456e342b7f04602090815260408083206001600160a01b0394909416835292905220541690565b620005e4620007d736600462003397565b62001660565b620004aa6200170d565b6004546001600160a01b03166200059f565b620005c26200080a366004620037e3565b50565b620005e4604051806040016040528060078152602001665374616b696e6760c81b81525081565b60008051602062004692833981519152546001600160601b03166200074a565b620005c262000865366004620038c7565b620017cc565b620005c26200087c36600462003397565b620018e2565b6200074a6200074236600462003582565b60006200074a565b620005c2620008ac366004620038c7565b62001936565b620004e7620008c3366004620038e7565b60009182527fafe8d4462b2ed26a47154f4b8f6d1497d2f772496965791d25bd456e342b7f00602090815260408084206001600160a01b0393909316845291905290205490565b6200074a6200091b366004620037e3565b6001600160601b0390811660009081527fafe8d4462b2ed26a47154f4b8f6d1497d2f772496965791d25bd456e342b7f0360205260409020541690565b6200059f620019d8565b620009796200097336600462003397565b62001b17565b604051620004b6919062003959565b6200099262001c60565b6040516001600160e01b03199091168152602001620004b6565b620009b662001c9b565b604051620004b6919062003989565b620005c2620009d63660046200351b565b62001cc9565b620005c2620009d636600462003a10565b62000a94620009fe36600462003397565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915250600090815260026020908152604091829020825160a081018452905460ff8082168352610100820416928201929092526001600160a01b03620100008304169281019290925263ffffffff600160b01b820481166060840152600160d01b90910416608082015290565b604051620004b6919062003a4b565b620005c262000ab436600462003a5b565b62001d08565b620004e76000805160206200469283398151915281565b620009b662001dff565b620005c262000aec36600462003aa2565b62001e13565b620004aa62000b03366004620033d3565b62001eb7565b600080516020620046d2833981519152546001600160a01b03166200059f565b620005c262000b3a366004620038c7565b62001f05565b620005c262000b5136600462003ac3565b620021a3565b620005c262000b6836600462003aa2565b62002247565b620004aa62000b7f36600462003a5b565b62002398565b620004e7600080516020620046b283398151915281565b620005c262000bad36600462003af8565b620023cc565b6200074a62000bc4366004620037e3565b6001600160601b0390811660009081527fafe8d4462b2ed26a47154f4b8f6d1497d2f772496965791d25bd456e342b7f0260205260409020541690565b620004e762000c1236600462003ba9565b6200240b565b620005c262000c2936600462003be2565b62002491565b620005c262000c4036600462003c03565b62002510565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$8eede297b65ed5a56eb3f84d8232ae93f5$__90632efe011390606401602060405180830381865af415801562000ca8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000cce919062003d19565b905090565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915260007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e0016040528073__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af415801562000d88573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000dae919062003d4d565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a00162000df8620019d8565b6001600160a01b0316815260200182600101805462000e179062003d6d565b80601f016020809104026020016040519081016040528092919081815260200182805462000e459062003d6d565b801562000e965780601f1062000e6a5761010080835404028352916020019162000e96565b820191906000526020600020905b81548152906001019060200180831162000e7857829003601f168201915b505050505081525091505090565b600062000eb062001c9b565b60800151905090565b60006000805160206200469283398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af415801562000f2a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f50919062003db6565b1562000f825780546040516301ab8b6760e21b81526001600160601b0390911660048201526024015b60405180910390fd5b3062000f966004546001600160a01b031690565b60405163c3c5a54760e01b81526001600160a01b038381166004830152919091169063c3c5a54790602401602060405180830381865afa15801562000fdf573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001005919062003db6565b6200102f5760405163b9304b0d60e01b81526001600160a01b038216600482015260240162000f79565b6004546001600160a01b0316604051636939560f60e11b81526001600160a01b038381166004830152919091169063d272ac1e90602401602060405180830381865afa15801562001084573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620010aa919062003d4d565b82546bffffffffffffffffffffffff19166001600160601b03919091161790915550565b6060620010da62001c9b565b51919050565b620010ea62002630565b6001600160e01b0319166000908152600360205260409020805460ff19166001179055565b60006200111b62001c9b565b60400151905090565b6000620011396004546001600160a01b031690565b604051636939560f60e11b81523060048201526001600160a01b03919091169063d272ac1e90602401602060405180830381865afa15801562001180573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620011a6919062003d4d565b6040516330b8415f60e01b81526001600160601b03909116600482015273__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af415801562001200573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000cce919062003db6565b6200123062002630565b6200123c828762002491565b7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0387166cffffffffffffffffffffffffff1990911617600160601b60ff8716021760ff60681b1916600160681b851515021781557f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa301620012c7838262003e28565b5050505050505050565b73__$8eede297b65ed5a56eb3f84d8232ae93f5$__63a123b37c620012f562000c46565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af415801562001336573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200135c919062003ef4565b600080516020620046f28339815191528054600160401b900460ff168062001391575080546001600160401b03808416911610155b15620013b05760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b178155620013dc8362002669565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a1505050565b6200143362002630565b6301ffc9a760e01b60005260036020527f28b0ef64f7e82d3b26f3fd404bd0151552f792965f39c29ae82c0a78df67af9c805460ff19166001179055565b60008181526002602052604080822054905163b2466acf60e01b815261010090910460ff16600482015273__$2e1fcf62e7a1b3c2a33bdf2228c171b2be$__9063b2466acf906024015b602060405180830381865af4158015620014d9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620014ff919062003db6565b92915050565b60006200151162001c9b565b60600151905090565b6200152462002630565b6200152e62002673565b6200153862002797565b620015426200288b565b6200154c620029c3565b6200155662002af0565b565b600080516020620046f28339815191528054600160401b810460ff1615906001600160401b03166000811580156200158d5750825b90506000826001600160401b03166001148015620015aa5750303b155b905081158015620015b9575080155b15620015d85760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156200160357845460ff60401b1916600160401b1785555b6200160f878762002bac565b83156200165757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15b50505050505050565b6000818152600260205260409020600101805460609190620016829062003d6d565b80601f0160208091040260200160405190810160405280929190818152602001828054620016b09062003d6d565b8015620017015780601f10620016d55761010080835404028352916020019162001701565b820191906000526020600020905b815481529060010190602001808311620016e357829003601f168201915b50505050509050919050565b60006200171962001124565b156200179c576004546001600160a01b03166040516308b09a5f60e41b81523060048201526001600160a01b039190911690638b09a5f090602401600060405180830381865afa15801562001772573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262001511919081019062003f85565b507fffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f0354600160a01b900460ff1690565b620017d662002630565b806001600160a01b03163b6000036200180e5760405163fdeac91f60e01b81526001600160a01b038216600482015260240162000f79565b600480546001600160a01b0319166001600160a01b03831690811782556040516301ffc9a760e01b815263256dc24d60e21b92810192909252906301ffc9a790602401602060405180830381865afa9250505080156200188d575060408051601f3d908101601f191682019092526200188a9181019062003db6565b60015b620018b75760405163fdeac91f60e01b81526001600160a01b038216600482015260240162000f79565b80620006575760405163fdeac91f60e01b81526001600160a01b038316600482015260240162000f79565b620018ec620019d8565b6001600160a01b0316336001600160a01b031614620019215760405163086391f760e31b815233600482015260240162000f79565b6200080a6200192f6200110f565b8262002247565b3362001958600080516020620046d2833981519152546001600160a01b031690565b6001600160a01b0316816001600160a01b031614620019955760405162d1953b60e31b81526001600160a01b038216600482015260240162000f79565b816001600160a01b03163b600003620019cd576040516361798f2f60e11b81526001600160a01b038316600482015260240162000f79565b620006578262002d94565b6000806000805160206200469283398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af415801562001a4a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001a70919062003db6565b1562001b01576004546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa15801562001ad5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001afb91906200406b565b91505090565b54600160601b90046001600160a01b0316919050565b6040805160e081018252600091810182815260608083018490526080830184905260a0830184905260c083019390935281526020810191909152600082815260026020908152604091829020825160e081018452815460ff80821695830195865261010082041660608301526001600160a01b0362010000820416608083015263ffffffff600160b01b8204811660a0840152600160d01b9091041660c0820152928352600181018054919284019162001bd19062003d6d565b80601f016020809104026020016040519081016040528092919081815260200182805462001bff9062003d6d565b801562001c505780601f1062001c245761010080835404028352916020019162001c50565b820191906000526020600020905b81548152906001019060200180831162001c3257829003601f168201915b5050505050815250509050919050565b600080516020620046d2833981519152805460009190600160a01b900460ff1662001c8d57600062001afb565b638fb3603760e01b91505090565b62001ca562003303565b62001caf62001124565b1562001cbf5762000cce62002df0565b62000cce62001dff565b62001cd3620019d8565b6001600160a01b0316336001600160a01b031614620005d55760405163086391f760e31b815233600482015260240162000f79565b60ff8381166000908152602081905260409081902054905163037c8cb160e51b81529116600482015273__$2e1fcf62e7a1b3c2a33bdf2228c171b2be$__90636f91962090602401602060405180830381865af415801562001d6e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001d94919062003db6565b1562001d9f57505050565b60ff808416600090815260016020908152604080832086851684528252808320858516845290915290205416620005d557604051636bb20ea760e01b815260ff808516600483015280841660248301528216604482015260640162000f79565b62001e0962003303565b62000cce62002df0565b6004546001600160a01b03166001600160a01b031663120726c36040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001e5d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001e8391906200406b565b6001600160a01b0316336001600160a01b031614620006575760405162f0630960e01b815233600482015260240162000f79565b60ff81811660009081526020819052604080822054905163b2466acf60e01b8152921660048301529073__$2e1fcf62e7a1b3c2a33bdf2228c171b2be$__9063b2466acf90602401620014bb565b62001f0f620019d8565b6001600160a01b0316336001600160a01b03161462001f445760405163086391f760e31b815233600482015260240162000f79565b600062001f5062000ea4565b9050600062001f5e6200110f565b6040516370a0823160e01b81526001600160a01b0384811660048301529192506000918316906370a0823190602401602060405180830381865afa15801562001fab573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001fd191906200408b565b90508015620020aa576001600160a01b0383163014620020aa57604051636eb1769f60e11b81526001600160a01b0384811660048301523060248301526000919084169063dd62ed3e90604401602060405180830381865afa1580156200203c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200206291906200408b565b905081811015620020a8576040516372c963b360e11b81526001600160a01b03808616600483015286166024820152604481018290526064810183905260840162000f79565b505b620020b58462002f71565b80156200219d57306001600160a01b03841603620021435760405163095ea7b360e01b8152306004820152602481018290526001600160a01b0383169063095ea7b3906044016020604051808303816000875af11580156200211b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002141919062003db6565b505b62002151828486846200305e565b604080516001600160a01b038086168252861660208201529081018290527f8f925ed35e36754081a3353f30c5686c405280f94d1cfe322ee5707833d898679060600160405180910390a15b50505050565b6004546001600160a01b03166001600160a01b031663120726c36040518163ffffffff1660e01b8152600401602060405180830381865afa158015620021ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200221391906200406b565b6001600160a01b0316336001600160a01b031614620005d55760405162f0630960e01b815233600482015260240162000f79565b62002251620019d8565b6001600160a01b0316336001600160a01b031614620022865760405163086391f760e31b815233600482015260240162000f79565b306200229162000ea4565b6001600160a01b031614620022b95760405163b6d7537f60e01b815260040160405180910390fd5b816001600160a01b031663095ea7b3620022d262001505565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af115801562002320573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002346919062003db6565b507f2384a42fdaabc7c18091b047d32d817d2ead07cae899963c6bcf9ab42aff85d46200237262001505565b604080516001600160a01b03909216825260208201849052015b60405180910390a15050565b60ff8084166000908152600160209081526040808320868516845282528083208585168452909152902054165b9392505050565b620023d6620019d8565b6001600160a01b0316336001600160a01b031614620006575760405163086391f760e31b815233600482015260240162000f79565b604051637a400b6760e11b815260ff8316600482015260ff198216602482015260009073__$4b9aaffa8d044614668dad578b824b8eee$__9063f48016ce90604401602060405180830381865af41580156200246b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620023c591906200408b565b6200249b62002630565b620024a681620017cc565b620024b062001429565b6001600160a01b038216620024d85760405163f17ef42d60e01b815260040160405180910390fd5b506000805160206200469283398151915280546001600160601b0316600160601b6001600160a01b0390931692909202919091179055565b6200251a62002630565b6200252a89898787878762001226565b620025358a620030ba565b6001600160a01b0386166200255d576040516327eab2e360e11b815260040160405180910390fd5b8651600003620025805760405163591eebf360e11b815260040160405180910390fd5b600080516020620046b2833981519152806200259d898262003e28565b506001810180546001600160a01b03199081166001600160a01b038a161790915560028201805490911690556003810180546001600160a81b0319163060ff60a01b191617600160a01b8715150217905560048101620025fe838262003e28565b5062002611634a531f3360e01b620010e0565b6200262363100951f160e31b620010e0565b5050505050505050505050565b600080516020620046f283398151915254600160401b900460ff166200155657604051631afcd79f60e31b815260040160405180910390fd5b6200047562002630565b7f5bd290414b404036f9d63146803dd83b59a8e1905062a5bfed8b0154d20a390d8054606460ff19918216179091557f1578fb1f3721b6c33cae7dfcd025f5660361b090d8a17dcf8a744763f22d32ff8054821660019081179091557f47ebb928e225b2cdc8d8e0079f8da9b87d2bc15cc37a8c27842a5c925baa8b1e80548316821790557ffe60dc71e2c842ec11550e74a003d6f707c74c3b19b04c1b0700bc0fd9efd9508054909216811790915560dc600090815260208290527f81c2bf9f7c6e8ac9bd8bcd9d323e94b867d2f5054aff8759d884773c680ec1ec90606e5b60ff1660ff16815260200190815260200160002060006200277360c890565b60ff1681526020810191909152604001600020805460ff1916911515919091179055565b7f9db7038e59677010ca8f72fa448bad1b4f3c53346b666689163ccac31db467728054606460ff1991821681179092557f1a3062e9a24818c8281fcfb58ec4f3083a2f9a1314ac63f80d8d646661fdc50980548216600190811790915560008381527fc884cae9155e1829c27543e26ecbb72f79fe3a85ba4df2c4a97ad5806356754d6020527f2916767ac794614810c43d6c0837244e8b2c8d3f3c02376a214f465d6841db5680549093168217909255918291905b60ff1660ff16815260200190815260200160002060006200286c606e90565b60ff1660ff16815260200190815260200160002060006200277360d290565b7fa57aae0b1e878b4cf2d1f237d2c6d245fa2af12f527cffc45e0a81d7b3c46abe8054600a60ff19918216179091557f10d8f68d28031156bb5a2007a6e7fc1ff769776115bd307e1d3f2901ec220eef8054821660019081179091557f71e0ce7e96b0b9ecf53c20706f5891c8e9bb320060393406400136d7ab1db61e80548316821790557f3aa5c1a82b8afaca3213d4302f465dcc339ab680e61c71830f7d9c441c63328380548316821790557ff9240d619fae1c941eaa4888cff36b0b9489ef130bdb7c814fd3a0e301d8ad1f80548316821790557f59d2febd485ffaba948645e520694e9996f0c229c4a10430d07956b599b172538054909216811790915560d3600090815260208290527f7415b658af57d740454b01d91722f71a360db8fdd5ec2a068a92c37e2bc3b1d690606462002754565b7f41d63e1348ead7043feb8677b52ff813a7a3d573fdf99c917846a69e8e7b7e60805460ff199081166032179091557f378c5573ee3453f5c9f5c7aa83b807835ecb097b5151d641746b59340336b67d8054821660019081179091557f7f4fc20c9070f9c8378783c3022311e08af436d0fea4b913fe0bbde88023d12680548316821790557ff6e14778b29b20f68b5cc5186c105c44b748bec78fd85e0b2ec52bc8586d6a6b80548316821790557fb9ec96904d3ea9e7b01f30f8b9a841d70b77145e37a183ebdbba2b0733adc0ec8054603c93168317905560009182527f77835ececcc7e965708390fdc28b7c7141b063a8a849f3954f1d294d07730184602052907f5e9b6496c2ea16de03007cb0b49643b7231addd52c0cee66d8556b1dd66622a19060dc62002773565b7fc5f2c791ab4e0b1a0b6c600884b07e98575b00ebd7c3166c4272a53bebf714038054606460ff1991821681179092557f66482ac56acdda5113badf732cc46c284136d9d6378a671ac129cd298ff5f96780548216600190811790915560009283527f47d871bf8fdbdfc3d809d1454103f6ff238aad0f5cefde0353363b9e415ef6a76020527ff2de5750d5c9f412b7907640f68a5258fe3f903dfd0cd25c2ea235b23cc926958054909216811790915590819060c86200284d565b600080516020620046f28339815191528054600160401b810460ff1615906001600160401b031660008115801562002be15750825b90506000826001600160401b0316600114801562002bfe5750303b155b90508115801562002c0d575080155b1562002c2c5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831562002c5757845460ff60401b1916600160401b1785555b6000806000808980602001905181019062002c739190620040a5565b935093509350935062002d308484856001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa15801562002cc0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002ce6919062003d4d565b6040805180820190915260078152665374616b696e6760c81b602082015286602d600088604051806020016040528060008152506040518060200160405280600081525062002510565b62002d3a620030cf565b62002d4c6339dee94960e01b620010e0565b5050505083156200165757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020016200164e565b600080516020620046d283398151915280546001600160a01b0319166001600160a01b03831690811782556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad906020016200238c565b62002dfa62003303565b6000600080516020620046b283398151915290506040518060c0016040528082600001805462002e2a9062003d6d565b80601f016020809104026020016040519081016040528092919081815260200182805462002e589062003d6d565b801562002ea95780601f1062002e7d5761010080835404028352916020019162002ea9565b820191906000526020600020905b81548152906001019060200180831162002e8b57829003601f168201915b5050505050815260200173__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af415801562002efd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002f23919062003d4d565b6001600160601b0316815260018301546001600160a01b039081166020830152600284015481166040830152600384015416606082015260048301805460809092019162000e179062003d6d565b7fffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f0354600080516020620046b2833981519152906001600160a01b0390811690831662002fd05760405163185a690f60e11b815260040160405180910390fd5b806001600160a01b0316836001600160a01b031603620030035760405163ade4578160e01b815260040160405180910390fd5b6003820180546001600160a01b0319166001600160a01b0385811691821790925560408051928416835260208301919091527f610ad1290dceadae2c5ce18bae2eb495be595083a257fac7414e50686f7c265091016200141c565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526200219d9085906200316d565b620030c462002630565b6200080a81620031d7565b7fffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f0154604051600080516020620046b2833981519152916001600160a01b0316906200311a906200335d565b6001600160a01b039091168152602001604051809103906000f08015801562003147573d6000803e3d6000fd5b5060029190910180546001600160a01b0319166001600160a01b03909216919091179055565b6000620031846001600160a01b03841683620031ec565b90508051600014158015620031ac575080806020019051810190620031aa919062003db6565b155b15620005d557604051635274afe760e01b81526001600160a01b038416600482015260240162000f79565b620031e162002630565b6200080a8162002d94565b6060620023c58383600084600080856001600160a01b031684866040516200321591906200410d565b60006040518083038185875af1925050503d806000811462003254576040519150601f19603f3d011682016040523d82523d6000602084013e62003259565b606091505b50915091506200326b86838362003275565b9695505050505050565b6060826200328e576200328882620032d9565b620023c5565b8151158015620032a657506001600160a01b0384163b155b15620032d157604051639996b31560e01b81526001600160a01b038516600482015260240162000f79565b5080620023c5565b805115620032ea5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060c001604052806060815260200160006001600160601b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b03168152602001606081525090565b610566806200412c83390190565b6000602082840312156200337e57600080fd5b81356001600160e01b031981168114620023c557600080fd5b600060208284031215620033aa57600080fd5b5035919050565b60ff811681146200080a57600080fd5b8035620033ce81620033b1565b919050565b600060208284031215620033e657600080fd5b8135620023c581620033b1565b60005b8381101562003410578181015183820152602001620033f6565b50506000910152565b6000815180845262003433816020860160208601620033f3565b601f01601f19169290920160200192915050565b6020815260006001600160601b038084511660208401528060208501511660408401525060ff604084015116606083015260608301511515608083015260018060a01b0360808401511660a083015260a0830151620034b160c08401826001600160a01b03169052565b5060c083015160e080840152620034cd61010084018262003419565b949350505050565b6001600160601b03811681146200080a57600080fd5b8035620033ce81620034d5565b6001600160a01b03811681146200080a57600080fd5b8035620033ce81620034f8565b6000806000606084860312156200353157600080fd5b83356200353e81620034d5565b925060208401356200355081620034f8565b915060408401356200356281620034d5565b809150509250925092565b602081526000620023c5602083018462003419565b600080604083850312156200359657600080fd5b8235620035a381620034d5565b91506020830135620035b581620034d5565b809150509250929050565b80151581146200080a57600080fd5b8035620033ce81620035c0565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715620036175762003617620035dc565b60405290565b604051601f8201601f191681016001600160401b0381118282101715620036485762003648620035dc565b604052919050565b60006001600160401b038211156200366c576200366c620035dc565b50601f01601f191660200190565b600082601f8301126200368c57600080fd5b8135620036a36200369d8262003650565b6200361d565b818152846020838601011115620036b957600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060c08789031215620036f057600080fd5b8635620036fd81620034f8565b955060208701356200370f81620034d5565b945060408701356200372181620033b1565b935060608701356200373381620035c0565b925060808701356200374581620034f8565b915060a08701356001600160401b038111156200376157600080fd5b6200376f89828a016200367a565b9150509295509295509295565b600080604083850312156200379057600080fd5b82356200379d81620034d5565b946020939093013593505050565b600060208284031215620037be57600080fd5b81356001600160401b03811115620037d557600080fd5b620034cd848285016200367a565b600060208284031215620037f657600080fd5b8135620023c581620034d5565b600080604083850312156200381757600080fd5b82356200382481620034f8565b915060208301356001600160401b038111156200384057600080fd5b6200384e858286016200367a565b9150509250929050565b600080604083850312156200386c57600080fd5b82356200387981620034d5565b9150602083013564ffffffffff81168114620035b557600080fd5b60008060408385031215620038a857600080fd5b8235620038b581620034d5565b91506020830135620035b581620034f8565b600060208284031215620038da57600080fd5b8135620023c581620034f8565b60008060408385031215620038fb57600080fd5b823591506020830135620035b581620034f8565b60ff815116825260ff602082015116602083015260018060a01b036040820151166040830152606081015163ffffffff808216606085015280608084015116608085015250505050565b602081526200396d6020820183516200390f565b6000602083015160c080840152620034cd60e084018262003419565b602081526000825160c06020840152620039a760e084018262003419565b90506001600160601b036020850151166040840152604084015160018060a01b0380821660608601528060608701511660808601528060808701511660a0860152505060a0840151601f198483030160c085015262003a07828262003419565b95945050505050565b60008060006060848603121562003a2657600080fd5b83359250602084013562003a3a81620034f8565b929592945050506040919091013590565b60a08101620014ff82846200390f565b60008060006060848603121562003a7157600080fd5b833562003a7e81620033b1565b9250602084013562003a9081620033b1565b915060408401356200356281620033b1565b6000806040838503121562003ab657600080fd5b82356200379d81620034f8565b60008060006060848603121562003ad957600080fd5b833562003ae681620034f8565b9250602084013562003a3a81620034f8565b60008082840360a081121562003b0d57600080fd5b833562003b1a81620034d5565b92506080601f198201121562003b2f57600080fd5b50604051608081018181106001600160401b038211171562003b555762003b55620035dc565b604052602084013562003b6881620034d5565b8152604084013562003b7a81620033b1565b602082015260608401356040820152608084013562003b9981620034f8565b6060820152919491935090915050565b6000806040838503121562003bbd57600080fd5b823562003bca81620033b1565b9150602083013560ff1981168114620035b557600080fd5b6000806040838503121562003bf657600080fd5b8235620038b581620034f8565b6000806000806000806000806000806101408b8d03121562003c2457600080fd5b62003c2f8b6200350e565b995062003c3f60208c016200350e565b985062003c4f60408c01620034eb565b975060608b01356001600160401b038082111562003c6c57600080fd5b62003c7a8e838f016200367a565b985062003c8a60808e016200350e565b975062003c9a60a08e01620033c1565b965062003caa60c08e01620035cf565b955062003cba60e08e016200350e565b94506101008d013591508082111562003cd257600080fd5b62003ce08e838f016200367a565b93506101208d013591508082111562003cf857600080fd5b5062003d078d828e016200367a565b9150509295989b9194979a5092959850565b60006020828403121562003d2c57600080fd5b815162ffffff81168114620023c557600080fd5b8051620033ce81620034d5565b60006020828403121562003d6057600080fd5b8151620023c581620034d5565b600181811c9082168062003d8257607f821691505b60208210810362003da357634e487b7160e01b600052602260045260246000fd5b50919050565b8051620033ce81620035c0565b60006020828403121562003dc957600080fd5b8151620023c581620035c0565b601f821115620005d557600081815260208120601f850160051c8101602086101562003dff5750805b601f850160051c820191505b8181101562003e205782815560010162003e0b565b505050505050565b81516001600160401b0381111562003e445762003e44620035dc565b62003e5c8162003e55845462003d6d565b8462003dd6565b602080601f83116001811462003e94576000841562003e7b5750858301515b600019600386901b1c1916600185901b17855562003e20565b600085815260208120601f198616915b8281101562003ec55788860151825594840194600190910190840162003ea4565b508582101562003ee45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121562003f0757600080fd5b81516001600160401b0381168114620023c557600080fd5b8051620033ce81620033b1565b8051620033ce81620034f8565b600082601f83011262003f4b57600080fd5b815162003f5c6200369d8262003650565b81815284602083860101111562003f7257600080fd5b620034cd826020830160208701620033f3565b60006020828403121562003f9857600080fd5b81516001600160401b038082111562003fb057600080fd5b9083019060e0828603121562003fc557600080fd5b62003fcf620035f2565b62003fda8362003d40565b815262003fea6020840162003d40565b602082015262003ffd6040840162003f1f565b6040820152620040106060840162003da9565b6060820152620040236080840162003f2c565b60808201526200403660a0840162003f2c565b60a082015260c0830151828111156200404e57600080fd5b6200405c8782860162003f39565b60c08301525095945050505050565b6000602082840312156200407e57600080fd5b8151620023c581620034f8565b6000602082840312156200409e57600080fd5b5051919050565b60008060008060808587031215620040bc57600080fd5b8451620040c981620034f8565b6020860151909450620040dc81620034f8565b6040860151909350620040ef81620034f8565b60608601519092506200410281620034f8565b939692955090935050565b6000825162004121818460208701620033f3565b919091019291505056fe608060405234801561001057600080fd5b5060405161056638038061056683398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6104d3806100936000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806321df0da7146100465780638d7271c314610065578063c661667d1461007a575b600080fd5b600054604080516001600160a01b039092168252519081900360200190f35b61007861007336600461039c565b61008d565b005b6100786100883660046103f0565b61011f565b60405163046e44af60e11b81526001600160601b03821660048201526101199085908590859073__$3bac17678db7ae928afa209f2f44deec9c$__906308dc895e906024015b602060405180830381865af41580156100f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101149190610433565b610179565b50505050565b60005460405163046e44af60e11b81526001600160601b0383166004820152610174916001600160a01b0316908590859073__$3bac17678db7ae928afa209f2f44deec9c$__906308dc895e906024016100d3565b505050565b604080516001600160a01b038581166024830152848116604483015260648083018590528351808403909101815260849092019092526020810180516001600160e01b03166323b872dd60e01b179052610119918691906000906101df90841683610232565b90508051600014158015610204575080806020019051810190610202919061044c565b155b1561017457604051635274afe760e01b81526001600160a01b03841660048201526024015b60405180910390fd5b606061024083836000610247565b9392505050565b60608147101561026c5760405163cd78605960e01b8152306004820152602401610229565b600080856001600160a01b03168486604051610288919061046e565b60006040518083038185875af1925050503d80600081146102c5576040519150601f19603f3d011682016040523d82523d6000602084013e6102ca565b606091505b50915091506102da8683836102e4565b9695505050505050565b6060826102f9576102f482610340565b610240565b815115801561031057506001600160a01b0384163b155b1561033957604051639996b31560e01b81526001600160a01b0385166004820152602401610229565b5080610240565b8051156103505780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b038116811461038057600080fd5b919050565b80356001600160601b038116811461038057600080fd5b600080600080608085870312156103b257600080fd5b6103bb85610369565b93506103c960208601610369565b92506103d760408601610369565b91506103e560608601610385565b905092959194509250565b60008060006060848603121561040557600080fd5b61040e84610369565b925061041c60208501610369565b915061042a60408501610385565b90509250925092565b60006020828403121561044557600080fd5b5051919050565b60006020828403121561045e57600080fd5b8151801515811461024057600080fd5b6000825160005b8181101561048f5760208186018101518583015201610475565b50600092019182525091905056fea2646970667358221220cef169e5ebf6594361114297bdf3c5c071054018e8f028c23ba2f8f1536ea8ae64736f6c6343000814003307ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00ffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220496af537e5dc16917f0399ef7fb9452683f2bb2d3080e80aa686b501eb34c95264736f6c63430008140033",
1791
+ "bytecode": "0x60806040523480156200001157600080fd5b506200001c62000022565b620000d6565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000735760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d35780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b615f0b80620000e66000396000f3fe60806040523480156200001157600080fd5b5060043610620003d95760003560e01c80636291423a1162000205578063bae99c991162000125578063deaa59df11620000bb578063ea15869f1162000086578063ea15869f1462000908578063ea48ce9b146200091f578063f7c34ee01462000936578063f8bf0d9f146200094d57600080fd5b8063deaa59df14620008ac578063e3a817cd14620008c3578063e7f7fb8614620008da578063e8ce883d14620008f157600080fd5b8063caed989711620000fc578063caed9897146200083c578063d44f8a4b1462000846578063de0eb85f146200085d578063dea4ccf2146200087457600080fd5b8063bae99c9914620007ee578063bb1e0e591462000805578063bf7e214f146200081c57600080fd5b8063893d20e8116200019b578063958697a01162000172578063958697a0146200079f5780639a72636414620007b6578063ada9652e14620007cd578063b423086c14620007e457600080fd5b8063893d20e814620007585780638fb36037146200076257806390edbd35146200078657600080fd5b80636c1e9dff11620001dc5780636c1e9dff1462000709578063719f761a14620007205780637a9e5e4b146200073757806386c75754146200074e57600080fd5b80636291423a14620006c8578063644c45e014620006d2578063675393bf14620006f257600080fd5b806331ecc5cc11620002fd578063562119ee11620002935780635ecf260f116200025e5780635ecf260f146200065c5780635fd1efec1462000673578063614d08f8146200068a578063628937d214620006b157600080fd5b8063562119ee14620006125780635741e5e914620006295780635ab1bd5314620006335780635cbb7d85146200064557600080fd5b806336fc697e11620002d457806336fc697e14620005d0578063419197fe14620005da57806343d752d314620005f157806349bb9e4b14620005fb57600080fd5b806331ecc5cc146200058b578063329d6e7414620005a257806336644da614620005b957600080fd5b806317d7de7c116200037357806321df0da7116200034a57806321df0da7146200054957806322366844146200055357806327bb7a33146200055d5780632a80f673146200057457600080fd5b806317d7de7c14620004f15780631eff4b22146200050a578063214cdb80146200053257600080fd5b80630fec111c11620003b45780630fec111c146200047957806310a0638a14620004925780631329960414620004ab578063138461e014620004ce57600080fd5b806301ffc9a714620003de578063062c9cdf14620004235780630d8e6e2c146200045a575b600080fd5b6200040e620003ef366004620049a0565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b6200044b7fafe8d4462b2ed26a47154f4b8f6d1497d2f772496965791d25bd456e342b7f0081565b6040519081526020016200041a565b6200046462000964565b60405162ffffff90911681526020016200041a565b62000483620009f1565b6040516200041a919062004a20565b620004a9620004a336600462004ace565b62000bc2565b005b620004b562000cac565b6040516001600160a01b0390911681526020016200041a565b620004d862000cc1565b6040516001600160601b0390911681526020016200041a565b620004fb62000cce565b6040516200041a919062004aee565b6200044b7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b620004a962000543366004620049a0565b62000ce0565b620004b562000d0f565b6200040e62000d24565b620004a96200056e36600462004c7e565b62000e26565b620004a96200058536600462004d24565b62000ed1565b620004a96200059c36600462004d53565b62001145565b620004a9620005b336600462004da5565b620012fe565b620004a9620005ca36600462004df1565b62001456565b620004a962001499565b620004a9620005eb36600462004e77565b620014e1565b620004b5620016b7565b620004a96200060c36600462004eb5565b620016cc565b620004a96200062336600462004f0a565b620017d4565b6200040e62001902565b6001546001600160a01b0316620004b5565b620004d86200065636600462004f6c565b620019c1565b620004a96200066d36600462004f8d565b62001a87565b620004a96200068436600462004fc0565b62001d0e565b620004fb604051806040016040528060078152602001665374616b696e6760c81b81525081565b620004a9620006c236600462004e77565b62001e85565b620004b562001f8c565b60008051602062005e56833981519152546001600160601b0316620004d8565b620004a96200070336600462004fc0565b62001faa565b620004d86200071a36600462004f6c565b620020c1565b620004d86200073136600462004ace565b620025f0565b620004a96200074836600462004fc0565b6200287a565b620004b56200291c565b620004b56200293a565b6200076c62002a79565b6040516001600160e01b031990911681526020016200041a565b6200079062002ab4565b6040516200041a919062004fe0565b620004a9620007b036600462005067565b62002ae2565b620004a9620007c73660046200509c565b62002b26565b6200044b60008051602062005e5683398151915281565b6200079062002d5b565b620004a9620007ff36600462004ace565b62002d6f565b620004a962000816366004620050d7565b62002dc3565b60008051602062005e96833981519152546001600160a01b0316620004b5565b620004b562002e67565b620004d86200085736600462005067565b62002e85565b620004d86200086e36600462004f6c565b62003022565b6200088b6200088536600462004ace565b620030bd565b604080516001600160601b039384168152929091166020830152016200041a565b620004a9620008bd36600462004fc0565b620033c2565b620004a9620008d436600462004e77565b6200365f565b620004a9620008eb366004620050f8565b6200373b565b620004d86200090236600462004f6c565b620037df565b6200044b60008051602062005e7683398151915281565b620004d86200093036600462005067565b62003831565b620004a9620009473660046200512d565b6200397d565b620004a96200095e36600462005160565b620039fc565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$8eede297b65ed5a56eb3f84d8232ae93f5$__90632efe011390606401602060405180830381865af4158015620009c6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620009ec919062005276565b905090565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915260007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e0016040528073__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af415801562000aa6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000acc9190620052aa565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a00162000b166200293a565b6001600160a01b0316815260200182600101805462000b3590620052ca565b80601f016020809104026020016040519081016040528092919081815260200182805462000b6390620052ca565b801562000bb45780601f1062000b885761010080835404028352916020019162000bb4565b820191906000526020600020905b81548152906001019060200180831162000b9657829003601f168201915b505050505081525091505090565b8062000bcd62003b1c565b60020154604051634f9c1c0960e01b81526001600160601b03831660048201526001600160a01b0390911690634f9c1c0990602401602060405180830381865afa15801562000c20573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000c46919062005313565b62000c7457604051632ab4595b60e11b81526001600160601b03821660048201526024015b60405180910390fd5b600062000c8062003b1c565b6003810154600282015491925062000ca6916001600160a01b0391821691168562003b40565b50505050565b600062000cb862002ab4565b60800151905090565b6000620009ec3062003cc1565b606062000cda62002ab4565b51919050565b62000cea62003ed0565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b600062000d1b62002ab4565b60400151905090565b600062000d396001546001600160a01b031690565b604051636939560f60e11b81523060048201526001600160a01b03919091169063d272ac1e90602401602060405180830381865afa15801562000d80573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000da69190620052aa565b6040516330b8415f60e01b81526001600160601b03909116600482015273__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af415801562000e00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620009ec919062005313565b62000e3062003ed0565b62000e3c82876200397d565b7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0387166cffffffffffffffffffffffffff1990911617600160601b60ff8716021760ff60681b1916600160681b851515021781557f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30162000ec7838262005385565b5050505050505050565b8162000edc62003b1c565b60020160009054906101000a90046001600160a01b03166001600160a01b03166363fe327a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000f31573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f57919062005451565b604051634f9c1c0960e01b81526001600160601b03831660048201526001600160a01b039190911690634f9c1c0990602401602060405180830381865afa15801562000fa7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000fcd919062005313565b62000ff7576040516396cff01560e01b81526001600160601b038216600482015260240162000c6b565b60008073__$fb6c7635e3c1acf7e7d82c7d43e7a24671$__63e8e7a2b43087876040518463ffffffff1660e01b8152600401620010379392919062005471565b60a060405180830381865af415801562001055573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200107b919062005507565b915091506200108962003b1c565b60020154604051630300f49160e31b81526001600160a01b0390911690631807a48890620010be908890859060040162005537565b600060405180830381600087803b158015620010d957600080fd5b505af1158015620010ee573d6000803e3d6000fd5b5050604080516001600160601b0389168152602081018690529081018790527f3e76c26439d1ec3386e26dfeebf955ea11f5f5f30459052b70e061ade8c9554f925060600190505b60405180910390a15050505050565b60006200115162003b1c565b6003810154604051630e8d845760e31b81526001600160a01b0390911660048201526001600160601b0380861660248301528416604482015290915060009073__$dbe4bf03c942dc0574f54ee579c90d56ef$__9063746c22b890606401602060405180830381865af4158015620011cd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620011f3919062005581565b60028301546040805160208101825264ffffffffff848116825291516331420df160e11b81526001600160601b038a166004820152905190911660248201529192506001600160a01b0316906362841be290604401600060405180830381600087803b1580156200126357600080fd5b505af115801562001278573d6000803e3d6000fd5b505050506002820154604051633861317f60e01b81526001600160601b0380881660048301528087166024830152851660448201526001600160a01b0390911690633861317f906064015b600060405180830381600087803b158015620012de57600080fd5b505af1158015620012f3573d6000803e3d6000fd5b505050505050505050565b73__$8eede297b65ed5a56eb3f84d8232ae93f5$__63a123b37c6200132262000964565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af415801562001363573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620013899190620055a1565b60008051602062005eb68339815191528054600160401b900460ff1680620013be575080546001600160401b03808416911610155b15620013dd5760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b178155620014098362003f0b565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a1505050565b620014606200293a565b6001600160a01b0316336001600160a01b031614620014955760405163086391f760e31b815233600482015260240162000c6b565b5050565b620014a362003ed0565b6301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b620014eb6200293a565b6001600160a01b0316336001600160a01b031614620015205760405163086391f760e31b815233600482015260240162000c6b565b306200152b62000cac565b6001600160a01b031614620015535760405163b6d7537f60e01b815260040160405180910390fd5b816001600160a01b031663095ea7b36200156c620016b7565b60405163046e44af60e11b81526001600160601b038516600482015273__$3bac17678db7ae928afa209f2f44deec9c$__906308dc895e90602401602060405180830381865af4158015620015c5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620015eb9190620055cc565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af115801562001637573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200165d919062005313565b507ff1220014fdb8b69aee438722b1fe13ee4a807811a472467cee162f7b866e704e62001689620016b7565b604080516001600160a01b0390921682526001600160601b0384166020830152015b60405180910390a15050565b6000620016c362002ab4565b60600151905090565b60008051602062005eb68339815191528054600160401b810460ff1615906001600160401b0316600081158015620017015750825b90506000826001600160401b031660011480156200171e5750303b155b9050811580156200172d575080155b156200174c5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156200177757845460ff60401b1916600160401b1785555b62001783878762003f15565b8315620017cb57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15b50505050505050565b73__$fb6c7635e3c1acf7e7d82c7d43e7a24671$__639ed616cd620018016001546001600160a01b031690565b6200180b62003b1c565b6003015460405160e084901b6001600160e01b03191681526001600160a01b039283166004820152911660248201526001600160601b038816604482015260ff8716606482015264ffffffffff8516608482015260a4810184905260c40160006040518083038186803b1580156200188257600080fd5b505af415801562001897573d6000803e3d6000fd5b50505050620018a562003b1c565b600201546040805160808101825260ff871681526020810186905264ffffffffff851681830152606081018490529051632df8be9b60e01b81526001600160a01b0390921691632df8be9b91620012c39189919060040162005537565b60006200190e62000d24565b1562001991576001546001600160a01b03166040516308b09a5f60e41b81523060048201526001600160a01b039190911690638b09a5f090602401600060405180830381865afa15801562001967573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620016c391908101906200563f565b507fffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f0354600160a01b900460ff1690565b600082620019ce62003b1c565b60020154604051634f9c1c0960e01b81526001600160601b03831660048201526001600160a01b0390911690634f9c1c0990602401602060405180830381865afa15801562001a21573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001a47919062005313565b62001a7157604051632ab4595b60e11b81526001600160601b038216600482015260240162000c6b565b600062001a7d62003b1c565b9050505092915050565b8162001a9262003b1c565b60020160009054906101000a90046001600160a01b03166001600160a01b03166363fe327a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001ae7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001b0d919062005451565b604051634f9c1c0960e01b81526001600160601b03831660048201526001600160a01b039190911690634f9c1c0990602401602060405180830381865afa15801562001b5d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001b83919062005313565b62001bad576040516396cff01560e01b81526001600160601b038216600482015260240162000c6b565b604051635f9c0df360e11b81523060048201526001600160601b038416602482015264ffffffffff83166044820152600090819073__$fb6c7635e3c1acf7e7d82c7d43e7a24671$__9063bf381be69060640160a060405180830381865af415801562001c1e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001c44919062005725565b9150915062001c5262003b1c565b60020154604051630300f49160e31b81526001600160a01b0390911690631807a4889062001c87908890859060040162005537565b600060405180830381600087803b15801562001ca257600080fd5b505af115801562001cb7573d6000803e3d6000fd5b5050604080516001600160601b038916815264ffffffffff80871660208301528816918101919091527fb847665302c1d8b6f507e07b17145514cea04af84e1665d629d82246992311e79250606001905062001136565b62001d186200293a565b6001600160a01b0316336001600160a01b03161462001d4d5760405163086391f760e31b815233600482015260240162000c6b565b306001600160a01b0316816001600160a01b0316637b1391a66040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001d96573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001dbc919062005451565b6001600160a01b03161462001e5657806001600160a01b0316637b1391a66040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001e0a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001e30919062005451565b604051631641c88f60e11b81526001600160a01b03909116600482015260240162000c6b565b8062001e6162003b1c565b60030180546001600160a01b0319166001600160a01b039290921691909117905550565b600062001e91620016b7565b9050600062001e9f62000cac565b905073__$dbe4bf03c942dc0574f54ee579c90d56ef$__6382aaf2e762001ec562000d0f565b8385876040518563ffffffff1660e01b815260040162001ee9949392919062005757565b60006040518083038186803b15801562001f0257600080fd5b505af415801562001f17573d6000803e3d6000fd5b505060405163c661667d60e01b81526001600160a01b03848116600483015287811660248301526001600160601b03871660448301528516925063c661667d91506064015b600060405180830381600087803b15801562001f7757600080fd5b505af115801562000ec7573d6000803e3d6000fd5b600062001f9862003b1c565b600301546001600160a01b0316919050565b62001fb462003ed0565b806001600160a01b03163b60000362001fec5760405163fdeac91f60e01b81526001600160a01b038216600482015260240162000c6b565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b815263e607072160e01b60048201526301ffc9a790602401602060405180830381865afa92505050801562002069575060408051601f3d908101601f19168201909252620020669181019062005313565b60015b620020935760405163fdeac91f60e01b81526001600160a01b038216600482015260240162000c6b565b80620014955760405163fdeac91f60e01b81526001600160a01b038316600482015260240162000c6b565b50565b600082620020ce62003b1c565b60020154604051634f9c1c0960e01b81526001600160601b03831660048201526001600160a01b0390911690634f9c1c0990602401602060405180830381865afa15801562002121573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002147919062005313565b6200217157604051632ab4595b60e11b81526001600160601b038216600482015260240162000c6b565b60006200217d62003b1c565b600381015460405163d6b40e6160e01b81526001600160a01b0390911660048201526001600160601b0387166024820152909150600090819073__$dbe4bf03c942dc0574f54ee579c90d56ef$__9063d6b40e61906044016040805180830381865af4158015620021f2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002218919062005789565b600385015460405163e048754d60e01b8152929450909250600091829173__$dbe4bf03c942dc0574f54ee579c90d56ef$__9163e048754d916200226f916001600160a01b03909116908d90899060040162005471565b6040805180830381865af41580156200228c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620022b29190620057b1565b91509150620022c2818962004338565b96506000620022d96001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b038c1660048201526001600160a01b03919091169063a48f42e090602401600060405180830381865afa15801562002329573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200235391908101906200563f565b6020015160028701546040516330f4419960e01b81526001600160601b03808e1660048301528084166024830152861660448201529192506001600160a01b0316906330f4419990606401600060405180830381600087803b158015620023b957600080fd5b505af1158015620023ce573d6000803e3d6000fd5b505050506002860154604051633861317f60e01b81526001600160601b03808d16600483015280841660248301528b1660448201526001600160a01b0390911690633861317f90606401600060405180830381600087803b1580156200243357600080fd5b505af115801562002448573d6000803e3d6000fd5b505050508560020160009054906101000a90046001600160a01b03166001600160a01b0316634b51da0c8b604051806020016040528073__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015620024c8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620024ee919062005581565b6040516352bcc5a760e11b815264ffffffffff9182166004820152908a16602482015273__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9063a5798b4e90604401602060405180830381865af41580156200254e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002574919062005581565b64ffffffffff9081169091526040516001600160e01b031960e086901b1681526001600160601b0390931660048401529051166024820152604401600060405180830381600087803b158015620025ca57600080fd5b505af1158015620025df573d6000803e3d6000fd5b505050505050505050505092915050565b600081620025fd62003b1c565b60020154604051634f9c1c0960e01b81526001600160601b03831660048201526001600160a01b0390911690634f9c1c0990602401602060405180830381865afa15801562002650573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002676919062005313565b620026a057604051632ab4595b60e11b81526001600160601b038216600482015260240162000c6b565b6000620026ac62003b1c565b60038101546002820154919250600091620026d5916001600160a01b0390811691168762003b40565b90508160020160009054906101000a90046001600160a01b03166001600160a01b0316633fbdfe32868373__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af415801562002749573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200276f9190620052aa565b60405160e085901b6001600160e01b03191681526001600160601b039384166004820152918316602483015290911660448201526064016020604051808303816000875af1158015620027c6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620027ec9190620052aa565b600283015460405163136cfef760e01b81526001600160601b038085166004830152831660248201529195506001600160a01b03169063136cfef7906044016020604051808303816000875af11580156200284b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620028719190620052aa565b50505050919050565b336200289c60008051602062005e96833981519152546001600160a01b031690565b6001600160a01b0316816001600160a01b031614620028d95760405162d1953b60e31b81526001600160a01b038216600482015260240162000c6b565b816001600160a01b03163b60000362002911576040516361798f2f60e11b81526001600160a01b038316600482015260240162000c6b565b6200149582620043c9565b60006200292862003b1c565b600201546001600160a01b0316919050565b60008060008051602062005e5683398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015620029ac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620029d2919062005313565b1562002a63576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa15801562002a37573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002a5d919062005451565b91505090565b54600160601b90046001600160a01b0316919050565b60008051602062005e96833981519152805460009190600160a01b900460ff1662002aa657600062002a5d565b638fb3603760e01b91505090565b62002abe62004938565b62002ac862000d24565b1562002ad857620009ec62004425565b620009ec62002d5b565b62002aec6200293a565b6001600160a01b0316336001600160a01b03161462002b215760405163086391f760e31b815233600482015260240162000c6b565b505050565b62002b306200293a565b6001600160a01b0316336001600160a01b03161462002b655760405163086391f760e31b815233600482015260240162000c6b565b600062002b7162003b1c565b6001810154604051631703edc360e31b8152600481018790526001600160a01b03868116602483015292935091169063b81f6e1890604401602060405180830381865afa15801562002bc7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002bed919062005313565b62002c1e576040516374ddbd6960e01b8152600481018590526001600160a01b038416602482015260440162000c6b565b6002810154604051637b21556160e01b8152600481018690526001600160a01b0385811660248301526000921690637b21556190604401602060405180830381865afa15801562002c73573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002c999190620055cc565b600283015460405163269c98d960e21b8152600481018890526001600160a01b03878116602483015260448201879052929350911690639a72636490606401600060405180830381600087803b15801562002cf357600080fd5b505af115801562002d08573d6000803e3d6000fd5b5050604080518881526001600160a01b0388166020820152908101849052606081018690527f8075f599388073d04550222731e9c7e00c284a4f858d8a0ffc0657164981c76e9250608001905062001136565b62002d6562004938565b620009ec62004425565b62002d796200293a565b6001600160a01b0316336001600160a01b03161462002dae5760405163086391f760e31b815233600482015260240162000c6b565b620020be62002dbc62000d0f565b82620014e1565b6001546001600160a01b03166001600160a01b031663120726c36040518163ffffffff1660e01b8152600401602060405180830381865afa15801562002e0d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002e33919062005451565b6001600160a01b0316336001600160a01b031614620014955760405162f0630960e01b815233600482015260240162000c6b565b600062002e7362003b1c565b600101546001600160a01b0316919050565b60008062002e9262003b1c565b600381015460405163153d412560e31b81526001600160601b03881660048201529192506000916001600160a01b039091169063a9ea092890602401608060405180830381865afa15801562002eec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002f129190620057e5565b602001516003830154604051637b21556160e01b8152600481018390526001600160a01b03888116602483015292935060009290911690637b21556190604401602060405180830381865afa15801562002f70573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002f969190620055cc565b6002840154604051633ece552760e21b81529192506001600160a01b03169063fb39549c9062002fd1908a9085908b908b9060040162005804565b6020604051808303816000875af115801562002ff1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620030179190620052aa565b979650505050505050565b6000806200302f62003b1c565b600281015460405163d7537c3760e01b81526001600160601b038088166004830152861660248201529192506001600160a01b03169063d7537c37906044015b6020604051808303816000875af11580156200308f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620030b59190620052aa565b949350505050565b60008082620030cb62003b1c565b60020154604051634f9c1c0960e01b81526001600160601b03831660048201526001600160a01b0390911690634f9c1c0990602401602060405180830381865afa1580156200311e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003144919062005313565b6200316e57604051632ab4595b60e11b81526001600160601b038216600482015260240162000c6b565b60006200317a62003b1c565b60038101546002820154919250600091620031a3916001600160a01b0390811691168862003b40565b90508160020160009054906101000a90046001600160a01b03166001600160a01b031663eb98e8a0878373__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af415801562003217573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200323d9190620052aa565b73__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af415801562003287573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620032ad9190620052aa565b60405160e086901b6001600160e01b03191681526001600160601b03948516600482015292841660248401529083166044830152909116606482015260840160408051808303816000875af11580156200330b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620033319190620057b1565b600284015460405163136cfef760e01b81526001600160601b038086166004830152831660248201529297509095506001600160a01b03169063136cfef7906044016020604051808303816000875af115801562003393573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620033b99190620052aa565b50505050915091565b620033cc6200293a565b6001600160a01b0316336001600160a01b031614620034015760405163086391f760e31b815233600482015260240162000c6b565b60006200340d62000cac565b905060006200341b62000d0f565b6040516370a0823160e01b81526001600160a01b0384811660048301529192506000918316906370a0823190602401602060405180830381865afa15801562003468573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200348e9190620055cc565b9050801562003567576001600160a01b03831630146200356757604051636eb1769f60e11b81526001600160a01b0384811660048301523060248301526000919084169063dd62ed3e90604401602060405180830381865afa158015620034f9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200351f9190620055cc565b90508181101562003565576040516372c963b360e11b81526001600160a01b03808616600483015286166024820152604481018290526064810183905260840162000c6b565b505b6200357284620045a6565b801562000ca657306001600160a01b03841603620036005760405163095ea7b360e01b8152306004820152602481018290526001600160a01b0383169063095ea7b3906044016020604051808303816000875af1158015620035d8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620035fe919062005313565b505b6200360e8284868462004693565b604080516001600160a01b038086168252861660208201529081018290527f8f925ed35e36754081a3353f30c5686c405280f94d1cfe322ee5707833d898679060600160405180910390a150505050565b60006200366b620016b7565b905060006200367962000cac565b905073__$dbe4bf03c942dc0574f54ee579c90d56ef$__6382aaf2e76200369f62000d0f565b8685876040518563ffffffff1660e01b8152600401620036c3949392919062005757565b60006040518083038186803b158015620036dc57600080fd5b505af4158015620036f1573d6000803e3d6000fd5b505060405163c661667d60e01b81526001600160a01b03878116600483015284811660248301526001600160601b03871660448301528516925063c661667d915060640162001f5c565b6001546001600160a01b03166001600160a01b031663120726c36040518163ffffffff1660e01b8152600401602060405180830381865afa15801562003785573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620037ab919062005451565b6001600160a01b0316336001600160a01b03161462002b215760405162f0630960e01b815233600482015260240162000c6b565b600080620037ec62003b1c565b600281015460405163136cfef760e01b81526001600160601b038088166004830152861660248201529192506001600160a01b03169063136cfef7906044016200306f565b6000806200383e62003b1c565b600381015460405163153d412560e31b81526001600160601b03881660048201529192506000916001600160a01b039091169063a9ea092890602401608060405180830381865afa15801562003898573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620038be9190620057e5565b602001516003830154604051637b21556160e01b8152600481018390526001600160a01b03888116602483015292935060009290911690637b21556190604401602060405180830381865afa1580156200391c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620039429190620055cc565b60028401546040516377f9185160e01b81529192506001600160a01b0316906377f918519062002fd1908a9085908b908b9060040162005804565b6200398762003ed0565b620039928162001faa565b6200399c62001499565b6001600160a01b038216620039c45760405163f17ef42d60e01b815260040160405180910390fd5b5060008051602062005e5683398151915280546001600160601b0316600160601b6001600160a01b0390931692909202919091179055565b62003a0662003ed0565b62003a1689898787878762000e26565b62003a218a620046ef565b6001600160a01b03861662003a49576040516327eab2e360e11b815260040160405180910390fd5b865160000362003a6c5760405163591eebf360e11b815260040160405180910390fd5b60008051602062005e768339815191528062003a89898262005385565b506001810180546001600160a01b03199081166001600160a01b038a161790915560028201805490911690556003810180546001600160a81b0319163060ff60a01b191617600160a01b871515021790556004810162003aea838262005385565b5062003afd634a531f3360e01b62000ce0565b62003b0f632986755f60e11b62000ce0565b5050505050505050505050565b7fafe8d4462b2ed26a47154f4b8f6d1497d2f772496965791d25bd456e342b7f0090565b6040516312b9a5c960e01b81526001600160601b038216600482015260009081906001600160a01b038616906312b9a5c9906024016040805180830381865afa15801562003b92573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003bb8919062005838565b60405163e048754d60e01b8152919350915060009073__$dbe4bf03c942dc0574f54ee579c90d56ef$__9063e048754d9062003bfd9089908890879060040162005471565b6040805180830381865af415801562003c1a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003c409190620057b1565b50604051634a2101d160e01b81526001600160601b0380871660048301528086166024830152821660448201529091506001600160a01b03861690634a2101d190606401600060405180830381600087803b15801562003c9f57600080fd5b505af115801562003cb4573d6000803e3d6000fd5b5050505050509392505050565b60008060008051602062005e5683398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af415801562003d33573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003d59919062005313565b1562003d875780546040516301ab8b6760e21b81526001600160601b03909116600482015260240162000c6b565b6001546001600160a01b031660405163c3c5a54760e01b81526001600160a01b038581166004830152919091169063c3c5a54790602401602060405180830381865afa15801562003ddc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003e02919062005313565b62003e2c5760405163b9304b0d60e01b81526001600160a01b038416600482015260240162000c6b565b6001546001600160a01b0316604051636939560f60e11b81526001600160a01b038581166004830152919091169063d272ac1e90602401602060405180830381865afa15801562003e81573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003ea79190620052aa565b81546bffffffffffffffffffffffff19166001600160601b039190911690811790915592915050565b60008051602062005eb683398151915254600160401b900460ff1662003f0957604051631afcd79f60e31b815260040160405180910390fd5b565b620003d962003ed0565b60008051602062005eb68339815191528054600160401b810460ff1615906001600160401b031660008115801562003f4a5750825b90506000826001600160401b0316600114801562003f675750303b155b90508115801562003f76575080155b1562003f955760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831562003fc057845460ff60401b1916600160401b1785555b6000806000808980602001905181019062003fdc919062005869565b935093509350935060008490506000816001600160a01b031663e2b178a06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200402a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004050919062005451565b905060008590506000816001600160a01b031663b201f7096040518163ffffffff1660e01b8152600401602060405180830381865afa15801562004098573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620040be919062005451565b9050620041758389866001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa15801562004105573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200412b9190620052aa565b6040805180820190915260078152665374616b696e6760c81b602082015285602d60008c6040518060200160405280600081525060405180602001604052806000815250620039fc565b6200417f62004704565b60006200418b62003b1c565b9050620041a06001546001600160a01b031690565b6001600160a01b031663fff74f6c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620041de573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620042049190620052aa565b6003820180546001600160601b0392909216600160a01b026001600160a01b039283161790556002820180549189166001600160a01b0319929092168217905560408051633148a11d60e11b81529051636291423a916004808201926020929091908290030181865afa15801562004280573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620042a6919062005451565b6003820180546001600160a01b03199081166001600160a01b0393841617909155600183018054909116918a16919091179055620042eb63fef8804160e01b62000ce0565b5050505050505050508315620017cb57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602001620017c2565b60405163274acb3560e01b81526001600160601b0380841660048301528216602482015260009073__$3bac17678db7ae928afa209f2f44deec9c$__9063274acb3590604401602060405180830381865af41580156200439c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620043c29190620052aa565b9392505050565b60008051602062005e9683398151915280546001600160a01b0319166001600160a01b03831690811782556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad90602001620016ab565b6200442f62004938565b600060008051602062005e7683398151915290506040518060c001604052808260000180546200445f90620052ca565b80601f01602080910402602001604051908101604052809291908181526020018280546200448d90620052ca565b8015620044de5780601f10620044b257610100808354040283529160200191620044de565b820191906000526020600020905b815481529060010190602001808311620044c057829003601f168201915b5050505050815260200173__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af415801562004532573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620045589190620052aa565b6001600160601b0316815260018301546001600160a01b039081166020830152600284015481166040830152600384015416606082015260048301805460809092019162000b3590620052ca565b7fffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f035460008051602062005e76833981519152906001600160a01b03908116908316620046055760405163185a690f60e11b815260040160405180910390fd5b806001600160a01b0316836001600160a01b031603620046385760405163ade4578160e01b815260040160405180910390fd5b6003820180546001600160a01b0319166001600160a01b0385811691821790925560408051928416835260208301919091527f610ad1290dceadae2c5ce18bae2eb495be595083a257fac7414e50686f7c2650910162001449565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b17905262000ca6908590620047a2565b620046f962003ed0565b620020be816200480c565b7fffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f015460405160008051602062005e76833981519152916001600160a01b0316906200474f9062004992565b6001600160a01b039091168152602001604051809103906000f0801580156200477c573d6000803e3d6000fd5b5060029190910180546001600160a01b0319166001600160a01b03909216919091179055565b6000620047b96001600160a01b0384168362004821565b90508051600014158015620047e1575080806020019051810190620047df919062005313565b155b1562002b2157604051635274afe760e01b81526001600160a01b038416600482015260240162000c6b565b6200481662003ed0565b620020be81620043c9565b6060620043c28383600084600080856001600160a01b031684866040516200484a9190620058d1565b60006040518083038185875af1925050503d806000811462004889576040519150601f19603f3d011682016040523d82523d6000602084013e6200488e565b606091505b5091509150620048a0868383620048aa565b9695505050505050565b606082620048c357620048bd826200490e565b620043c2565b8151158015620048db57506001600160a01b0384163b155b156200490657604051639996b31560e01b81526001600160a01b038516600482015260240162000c6b565b5080620043c2565b8051156200491f5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060c001604052806060815260200160006001600160601b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b03168152602001606081525090565b61056680620058f083390190565b600060208284031215620049b357600080fd5b81356001600160e01b031981168114620043c257600080fd5b60005b83811015620049e9578181015183820152602001620049cf565b50506000910152565b6000815180845262004a0c816020860160208601620049cc565b601f01601f19169290920160200192915050565b6020815260006001600160601b038084511660208401528060208501511660408401525060ff604084015116606083015260608301511515608083015260018060a01b0360808401511660a083015260a083015162004a8a60c08401826001600160a01b03169052565b5060c083015160e080840152620030b5610100840182620049f2565b6001600160601b0381168114620020be57600080fd5b803562004ac98162004aa6565b919050565b60006020828403121562004ae157600080fd5b8135620043c28162004aa6565b602081526000620043c26020830184620049f2565b6001600160a01b0381168114620020be57600080fd5b803562004ac98162004b03565b60ff81168114620020be57600080fd5b803562004ac98162004b26565b8015158114620020be57600080fd5b803562004ac98162004b43565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b038111828210171562004b9a5762004b9a62004b5f565b60405290565b60405160e081016001600160401b038111828210171562004b9a5762004b9a62004b5f565b604051601f8201601f191681016001600160401b038111828210171562004bf05762004bf062004b5f565b604052919050565b60006001600160401b0382111562004c145762004c1462004b5f565b50601f01601f191660200190565b600082601f83011262004c3457600080fd5b813562004c4b62004c458262004bf8565b62004bc5565b81815284602083860101111562004c6157600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060c0878903121562004c9857600080fd5b863562004ca58162004b03565b9550602087013562004cb78162004aa6565b9450604087013562004cc98162004b26565b9350606087013562004cdb8162004b43565b9250608087013562004ced8162004b03565b915060a08701356001600160401b0381111562004d0957600080fd5b62004d1789828a0162004c22565b9150509295509295509295565b6000806040838503121562004d3857600080fd5b823562004d458162004aa6565b946020939093013593505050565b60008060006060848603121562004d6957600080fd5b833562004d768162004aa6565b9250602084013562004d888162004aa6565b9150604084013562004d9a8162004aa6565b809150509250925092565b60006020828403121562004db857600080fd5b81356001600160401b0381111562004dcf57600080fd5b620030b58482850162004c22565b64ffffffffff81168114620020be57600080fd5b60008082840360a081121562004e0657600080fd5b833562004e138162004aa6565b92506080601f198201121562004e2857600080fd5b5062004e3362004b75565b602084013562004e438162004b26565b815260408401356020820152606084013562004e5f8162004ddd565b60408201526080939093013560608401525092909150565b6000806040838503121562004e8b57600080fd5b823562004e988162004b03565b9150602083013562004eaa8162004aa6565b809150509250929050565b6000806040838503121562004ec957600080fd5b823562004ed68162004b03565b915060208301356001600160401b0381111562004ef257600080fd5b62004f008582860162004c22565b9150509250929050565b600080600080600060a0868803121562004f2357600080fd5b853562004f308162004aa6565b9450602086013562004f428162004b26565b935060408601359250606086013562004f5b8162004ddd565b949793965091946080013592915050565b6000806040838503121562004f8057600080fd5b823562004e988162004aa6565b6000806040838503121562004fa157600080fd5b823562004fae8162004aa6565b9150602083013562004eaa8162004ddd565b60006020828403121562004fd357600080fd5b8135620043c28162004b03565b602081526000825160c0602084015262004ffe60e0840182620049f2565b90506001600160601b036020850151166040840152604084015160018060a01b0380821660608601528060608701511660808601528060808701511660a0860152505060a0840151601f198483030160c08501526200505e8282620049f2565b95945050505050565b6000806000606084860312156200507d57600080fd5b83356200508a8162004aa6565b9250602084013562004d888162004b03565b600080600060608486031215620050b257600080fd5b833592506020840135620050c68162004b03565b929592945050506040919091013590565b60008060408385031215620050eb57600080fd5b823562004d458162004b03565b6000806000606084860312156200510e57600080fd5b83356200511b8162004b03565b92506020840135620050c68162004b03565b600080604083850312156200514157600080fd5b82356200514e8162004b03565b9150602083013562004eaa8162004b03565b6000806000806000806000806000806101408b8d0312156200518157600080fd5b6200518c8b62004b19565b99506200519c60208c0162004b19565b9850620051ac60408c0162004abc565b975060608b01356001600160401b0380821115620051c957600080fd5b620051d78e838f0162004c22565b9850620051e760808e0162004b19565b9750620051f760a08e0162004b36565b96506200520760c08e0162004b52565b95506200521760e08e0162004b19565b94506101008d01359150808211156200522f57600080fd5b6200523d8e838f0162004c22565b93506101208d01359150808211156200525557600080fd5b50620052648d828e0162004c22565b9150509295989b9194979a5092959850565b6000602082840312156200528957600080fd5b815162ffffff81168114620043c257600080fd5b805162004ac98162004aa6565b600060208284031215620052bd57600080fd5b8151620043c28162004aa6565b600181811c90821680620052df57607f821691505b6020821081036200530057634e487b7160e01b600052602260045260246000fd5b50919050565b805162004ac98162004b43565b6000602082840312156200532657600080fd5b8151620043c28162004b43565b601f82111562002b2157600081815260208120601f850160051c810160208610156200535c5750805b601f850160051c820191505b818110156200537d5782815560010162005368565b505050505050565b81516001600160401b03811115620053a157620053a162004b5f565b620053b981620053b28454620052ca565b8462005333565b602080601f831160018114620053f15760008415620053d85750858301515b600019600386901b1c1916600185901b1785556200537d565b600085815260208120601f198616915b82811015620054225788860151825594840194600190910190840162005401565b5085821015620054415787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200546457600080fd5b8151620043c28162004b03565b6001600160a01b039390931683526001600160601b03919091166020830152604082015260600190565b805162004ac98162004b26565b600060808284031215620054bb57600080fd5b620054c562004b75565b90508151620054d48162004b26565b8152602082810151908201526040820151620054f08162004ddd565b806040830152506060820151606082015292915050565b60008060a083850312156200551b57600080fd5b825191506200552e8460208501620054a8565b90509250929050565b600060a0820190506001600160601b038416825260ff83511660208301526020830151604083015264ffffffffff6040840151166060830152606083015160808301529392505050565b6000602082840312156200559457600080fd5b8151620043c28162004ddd565b600060208284031215620055b457600080fd5b81516001600160401b0381168114620043c257600080fd5b600060208284031215620055df57600080fd5b5051919050565b805162004ac98162004b03565b600082601f8301126200560557600080fd5b81516200561662004c458262004bf8565b8181528460208386010111156200562c57600080fd5b620030b5826020830160208701620049cc565b6000602082840312156200565257600080fd5b81516001600160401b03808211156200566a57600080fd5b9083019060e082860312156200567f57600080fd5b6200568962004ba0565b62005694836200529d565b8152620056a4602084016200529d565b6020820152620056b7604084016200549b565b6040820152620056ca6060840162005306565b6060820152620056dd60808401620055e6565b6080820152620056f060a08401620055e6565b60a082015260c0830151828111156200570857600080fd5b6200571687828601620055f3565b60c08301525095945050505050565b60008060a083850312156200573957600080fd5b8251620057468162004ddd565b91506200552e8460208501620054a8565b6001600160a01b0394851681529284166020840152921660408201526001600160601b03909116606082015260800190565b600080604083850312156200579d57600080fd5b82519150602083015162004eaa8162004ddd565b60008060408385031215620057c557600080fd5b8251620057d28162004aa6565b602084015190925062004eaa8162004aa6565b600060808284031215620057f857600080fd5b620043c28383620054a8565b6001600160601b03948516815260208101939093526001600160a01b03919091166040830152909116606082015260800190565b600080604083850312156200584c57600080fd5b8251620058598162004aa6565b6020939093015192949293505050565b600080600080608085870312156200588057600080fd5b84516200588d8162004b03565b6020860151909450620058a08162004b03565b6040860151909350620058b38162004b03565b6060860151909250620058c68162004b03565b939692955090935050565b60008251620058e5818460208701620049cc565b919091019291505056fe608060405234801561001057600080fd5b5060405161056638038061056683398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6104d3806100936000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806321df0da7146100465780638d7271c314610065578063c661667d1461007a575b600080fd5b600054604080516001600160a01b039092168252519081900360200190f35b61007861007336600461039c565b61008d565b005b6100786100883660046103f0565b61011f565b60405163046e44af60e11b81526001600160601b03821660048201526101199085908590859073__$3bac17678db7ae928afa209f2f44deec9c$__906308dc895e906024015b602060405180830381865af41580156100f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101149190610433565b610179565b50505050565b60005460405163046e44af60e11b81526001600160601b0383166004820152610174916001600160a01b0316908590859073__$3bac17678db7ae928afa209f2f44deec9c$__906308dc895e906024016100d3565b505050565b604080516001600160a01b038581166024830152848116604483015260648083018590528351808403909101815260849092019092526020810180516001600160e01b03166323b872dd60e01b179052610119918691906000906101df90841683610232565b90508051600014158015610204575080806020019051810190610202919061044c565b155b1561017457604051635274afe760e01b81526001600160a01b03841660048201526024015b60405180910390fd5b606061024083836000610247565b9392505050565b60608147101561026c5760405163cd78605960e01b8152306004820152602401610229565b600080856001600160a01b03168486604051610288919061046e565b60006040518083038185875af1925050503d80600081146102c5576040519150601f19603f3d011682016040523d82523d6000602084013e6102ca565b606091505b50915091506102da8683836102e4565b9695505050505050565b6060826102f9576102f482610340565b610240565b815115801561031057506001600160a01b0384163b155b1561033957604051639996b31560e01b81526001600160a01b0385166004820152602401610229565b5080610240565b8051156103505780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b038116811461038057600080fd5b919050565b80356001600160601b038116811461038057600080fd5b600080600080608085870312156103b257600080fd5b6103bb85610369565b93506103c960208601610369565b92506103d760408601610369565b91506103e560608601610385565b905092959194509250565b60008060006060848603121561040557600080fd5b61040e84610369565b925061041c60208501610369565b915061042a60408501610385565b90509250925092565b60006020828403121561044557600080fd5b5051919050565b60006020828403121561045e57600080fd5b8151801515811461024057600080fd5b6000825160005b8181101561048f5760208186018101518583015201610475565b50600092019182525091905056fea26469706673582212209807ba37f960191da7fc92045bb7e0c4e727926f77e78d1cce4b3e3395aa9c6864736f6c6343000814003307ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00ffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212201e08eb20bf1d0d025abe18d8486bb749a013733cbb9b73d1948c899a28d8104a64736f6c63430008140033",
1792
+ "deployedBytecode": "0x60806040523480156200001157600080fd5b5060043610620003d95760003560e01c80636291423a1162000205578063bae99c991162000125578063deaa59df11620000bb578063ea15869f1162000086578063ea15869f1462000908578063ea48ce9b146200091f578063f7c34ee01462000936578063f8bf0d9f146200094d57600080fd5b8063deaa59df14620008ac578063e3a817cd14620008c3578063e7f7fb8614620008da578063e8ce883d14620008f157600080fd5b8063caed989711620000fc578063caed9897146200083c578063d44f8a4b1462000846578063de0eb85f146200085d578063dea4ccf2146200087457600080fd5b8063bae99c9914620007ee578063bb1e0e591462000805578063bf7e214f146200081c57600080fd5b8063893d20e8116200019b578063958697a01162000172578063958697a0146200079f5780639a72636414620007b6578063ada9652e14620007cd578063b423086c14620007e457600080fd5b8063893d20e814620007585780638fb36037146200076257806390edbd35146200078657600080fd5b80636c1e9dff11620001dc5780636c1e9dff1462000709578063719f761a14620007205780637a9e5e4b146200073757806386c75754146200074e57600080fd5b80636291423a14620006c8578063644c45e014620006d2578063675393bf14620006f257600080fd5b806331ecc5cc11620002fd578063562119ee11620002935780635ecf260f116200025e5780635ecf260f146200065c5780635fd1efec1462000673578063614d08f8146200068a578063628937d214620006b157600080fd5b8063562119ee14620006125780635741e5e914620006295780635ab1bd5314620006335780635cbb7d85146200064557600080fd5b806336fc697e11620002d457806336fc697e14620005d0578063419197fe14620005da57806343d752d314620005f157806349bb9e4b14620005fb57600080fd5b806331ecc5cc146200058b578063329d6e7414620005a257806336644da614620005b957600080fd5b806317d7de7c116200037357806321df0da7116200034a57806321df0da7146200054957806322366844146200055357806327bb7a33146200055d5780632a80f673146200057457600080fd5b806317d7de7c14620004f15780631eff4b22146200050a578063214cdb80146200053257600080fd5b80630fec111c11620003b45780630fec111c146200047957806310a0638a14620004925780631329960414620004ab578063138461e014620004ce57600080fd5b806301ffc9a714620003de578063062c9cdf14620004235780630d8e6e2c146200045a575b600080fd5b6200040e620003ef366004620049a0565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b6200044b7fafe8d4462b2ed26a47154f4b8f6d1497d2f772496965791d25bd456e342b7f0081565b6040519081526020016200041a565b6200046462000964565b60405162ffffff90911681526020016200041a565b62000483620009f1565b6040516200041a919062004a20565b620004a9620004a336600462004ace565b62000bc2565b005b620004b562000cac565b6040516001600160a01b0390911681526020016200041a565b620004d862000cc1565b6040516001600160601b0390911681526020016200041a565b620004fb62000cce565b6040516200041a919062004aee565b6200044b7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b620004a962000543366004620049a0565b62000ce0565b620004b562000d0f565b6200040e62000d24565b620004a96200056e36600462004c7e565b62000e26565b620004a96200058536600462004d24565b62000ed1565b620004a96200059c36600462004d53565b62001145565b620004a9620005b336600462004da5565b620012fe565b620004a9620005ca36600462004df1565b62001456565b620004a962001499565b620004a9620005eb36600462004e77565b620014e1565b620004b5620016b7565b620004a96200060c36600462004eb5565b620016cc565b620004a96200062336600462004f0a565b620017d4565b6200040e62001902565b6001546001600160a01b0316620004b5565b620004d86200065636600462004f6c565b620019c1565b620004a96200066d36600462004f8d565b62001a87565b620004a96200068436600462004fc0565b62001d0e565b620004fb604051806040016040528060078152602001665374616b696e6760c81b81525081565b620004a9620006c236600462004e77565b62001e85565b620004b562001f8c565b60008051602062005e56833981519152546001600160601b0316620004d8565b620004a96200070336600462004fc0565b62001faa565b620004d86200071a36600462004f6c565b620020c1565b620004d86200073136600462004ace565b620025f0565b620004a96200074836600462004fc0565b6200287a565b620004b56200291c565b620004b56200293a565b6200076c62002a79565b6040516001600160e01b031990911681526020016200041a565b6200079062002ab4565b6040516200041a919062004fe0565b620004a9620007b036600462005067565b62002ae2565b620004a9620007c73660046200509c565b62002b26565b6200044b60008051602062005e5683398151915281565b6200079062002d5b565b620004a9620007ff36600462004ace565b62002d6f565b620004a962000816366004620050d7565b62002dc3565b60008051602062005e96833981519152546001600160a01b0316620004b5565b620004b562002e67565b620004d86200085736600462005067565b62002e85565b620004d86200086e36600462004f6c565b62003022565b6200088b6200088536600462004ace565b620030bd565b604080516001600160601b039384168152929091166020830152016200041a565b620004a9620008bd36600462004fc0565b620033c2565b620004a9620008d436600462004e77565b6200365f565b620004a9620008eb366004620050f8565b6200373b565b620004d86200090236600462004f6c565b620037df565b6200044b60008051602062005e7683398151915281565b620004d86200093036600462005067565b62003831565b620004a9620009473660046200512d565b6200397d565b620004a96200095e36600462005160565b620039fc565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$8eede297b65ed5a56eb3f84d8232ae93f5$__90632efe011390606401602060405180830381865af4158015620009c6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620009ec919062005276565b905090565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915260007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e0016040528073__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af415801562000aa6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000acc9190620052aa565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a00162000b166200293a565b6001600160a01b0316815260200182600101805462000b3590620052ca565b80601f016020809104026020016040519081016040528092919081815260200182805462000b6390620052ca565b801562000bb45780601f1062000b885761010080835404028352916020019162000bb4565b820191906000526020600020905b81548152906001019060200180831162000b9657829003601f168201915b505050505081525091505090565b8062000bcd62003b1c565b60020154604051634f9c1c0960e01b81526001600160601b03831660048201526001600160a01b0390911690634f9c1c0990602401602060405180830381865afa15801562000c20573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000c46919062005313565b62000c7457604051632ab4595b60e11b81526001600160601b03821660048201526024015b60405180910390fd5b600062000c8062003b1c565b6003810154600282015491925062000ca6916001600160a01b0391821691168562003b40565b50505050565b600062000cb862002ab4565b60800151905090565b6000620009ec3062003cc1565b606062000cda62002ab4565b51919050565b62000cea62003ed0565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b600062000d1b62002ab4565b60400151905090565b600062000d396001546001600160a01b031690565b604051636939560f60e11b81523060048201526001600160a01b03919091169063d272ac1e90602401602060405180830381865afa15801562000d80573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000da69190620052aa565b6040516330b8415f60e01b81526001600160601b03909116600482015273__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af415801562000e00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620009ec919062005313565b62000e3062003ed0565b62000e3c82876200397d565b7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0387166cffffffffffffffffffffffffff1990911617600160601b60ff8716021760ff60681b1916600160681b851515021781557f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30162000ec7838262005385565b5050505050505050565b8162000edc62003b1c565b60020160009054906101000a90046001600160a01b03166001600160a01b03166363fe327a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000f31573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f57919062005451565b604051634f9c1c0960e01b81526001600160601b03831660048201526001600160a01b039190911690634f9c1c0990602401602060405180830381865afa15801562000fa7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000fcd919062005313565b62000ff7576040516396cff01560e01b81526001600160601b038216600482015260240162000c6b565b60008073__$fb6c7635e3c1acf7e7d82c7d43e7a24671$__63e8e7a2b43087876040518463ffffffff1660e01b8152600401620010379392919062005471565b60a060405180830381865af415801562001055573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200107b919062005507565b915091506200108962003b1c565b60020154604051630300f49160e31b81526001600160a01b0390911690631807a48890620010be908890859060040162005537565b600060405180830381600087803b158015620010d957600080fd5b505af1158015620010ee573d6000803e3d6000fd5b5050604080516001600160601b0389168152602081018690529081018790527f3e76c26439d1ec3386e26dfeebf955ea11f5f5f30459052b70e061ade8c9554f925060600190505b60405180910390a15050505050565b60006200115162003b1c565b6003810154604051630e8d845760e31b81526001600160a01b0390911660048201526001600160601b0380861660248301528416604482015290915060009073__$dbe4bf03c942dc0574f54ee579c90d56ef$__9063746c22b890606401602060405180830381865af4158015620011cd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620011f3919062005581565b60028301546040805160208101825264ffffffffff848116825291516331420df160e11b81526001600160601b038a166004820152905190911660248201529192506001600160a01b0316906362841be290604401600060405180830381600087803b1580156200126357600080fd5b505af115801562001278573d6000803e3d6000fd5b505050506002820154604051633861317f60e01b81526001600160601b0380881660048301528087166024830152851660448201526001600160a01b0390911690633861317f906064015b600060405180830381600087803b158015620012de57600080fd5b505af1158015620012f3573d6000803e3d6000fd5b505050505050505050565b73__$8eede297b65ed5a56eb3f84d8232ae93f5$__63a123b37c6200132262000964565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af415801562001363573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620013899190620055a1565b60008051602062005eb68339815191528054600160401b900460ff1680620013be575080546001600160401b03808416911610155b15620013dd5760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b178155620014098362003f0b565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a1505050565b620014606200293a565b6001600160a01b0316336001600160a01b031614620014955760405163086391f760e31b815233600482015260240162000c6b565b5050565b620014a362003ed0565b6301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b620014eb6200293a565b6001600160a01b0316336001600160a01b031614620015205760405163086391f760e31b815233600482015260240162000c6b565b306200152b62000cac565b6001600160a01b031614620015535760405163b6d7537f60e01b815260040160405180910390fd5b816001600160a01b031663095ea7b36200156c620016b7565b60405163046e44af60e11b81526001600160601b038516600482015273__$3bac17678db7ae928afa209f2f44deec9c$__906308dc895e90602401602060405180830381865af4158015620015c5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620015eb9190620055cc565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af115801562001637573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200165d919062005313565b507ff1220014fdb8b69aee438722b1fe13ee4a807811a472467cee162f7b866e704e62001689620016b7565b604080516001600160a01b0390921682526001600160601b0384166020830152015b60405180910390a15050565b6000620016c362002ab4565b60600151905090565b60008051602062005eb68339815191528054600160401b810460ff1615906001600160401b0316600081158015620017015750825b90506000826001600160401b031660011480156200171e5750303b155b9050811580156200172d575080155b156200174c5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156200177757845460ff60401b1916600160401b1785555b62001783878762003f15565b8315620017cb57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15b50505050505050565b73__$fb6c7635e3c1acf7e7d82c7d43e7a24671$__639ed616cd620018016001546001600160a01b031690565b6200180b62003b1c565b6003015460405160e084901b6001600160e01b03191681526001600160a01b039283166004820152911660248201526001600160601b038816604482015260ff8716606482015264ffffffffff8516608482015260a4810184905260c40160006040518083038186803b1580156200188257600080fd5b505af415801562001897573d6000803e3d6000fd5b50505050620018a562003b1c565b600201546040805160808101825260ff871681526020810186905264ffffffffff851681830152606081018490529051632df8be9b60e01b81526001600160a01b0390921691632df8be9b91620012c39189919060040162005537565b60006200190e62000d24565b1562001991576001546001600160a01b03166040516308b09a5f60e41b81523060048201526001600160a01b039190911690638b09a5f090602401600060405180830381865afa15801562001967573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620016c391908101906200563f565b507fffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f0354600160a01b900460ff1690565b600082620019ce62003b1c565b60020154604051634f9c1c0960e01b81526001600160601b03831660048201526001600160a01b0390911690634f9c1c0990602401602060405180830381865afa15801562001a21573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001a47919062005313565b62001a7157604051632ab4595b60e11b81526001600160601b038216600482015260240162000c6b565b600062001a7d62003b1c565b9050505092915050565b8162001a9262003b1c565b60020160009054906101000a90046001600160a01b03166001600160a01b03166363fe327a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001ae7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001b0d919062005451565b604051634f9c1c0960e01b81526001600160601b03831660048201526001600160a01b039190911690634f9c1c0990602401602060405180830381865afa15801562001b5d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001b83919062005313565b62001bad576040516396cff01560e01b81526001600160601b038216600482015260240162000c6b565b604051635f9c0df360e11b81523060048201526001600160601b038416602482015264ffffffffff83166044820152600090819073__$fb6c7635e3c1acf7e7d82c7d43e7a24671$__9063bf381be69060640160a060405180830381865af415801562001c1e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001c44919062005725565b9150915062001c5262003b1c565b60020154604051630300f49160e31b81526001600160a01b0390911690631807a4889062001c87908890859060040162005537565b600060405180830381600087803b15801562001ca257600080fd5b505af115801562001cb7573d6000803e3d6000fd5b5050604080516001600160601b038916815264ffffffffff80871660208301528816918101919091527fb847665302c1d8b6f507e07b17145514cea04af84e1665d629d82246992311e79250606001905062001136565b62001d186200293a565b6001600160a01b0316336001600160a01b03161462001d4d5760405163086391f760e31b815233600482015260240162000c6b565b306001600160a01b0316816001600160a01b0316637b1391a66040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001d96573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001dbc919062005451565b6001600160a01b03161462001e5657806001600160a01b0316637b1391a66040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001e0a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001e30919062005451565b604051631641c88f60e11b81526001600160a01b03909116600482015260240162000c6b565b8062001e6162003b1c565b60030180546001600160a01b0319166001600160a01b039290921691909117905550565b600062001e91620016b7565b9050600062001e9f62000cac565b905073__$dbe4bf03c942dc0574f54ee579c90d56ef$__6382aaf2e762001ec562000d0f565b8385876040518563ffffffff1660e01b815260040162001ee9949392919062005757565b60006040518083038186803b15801562001f0257600080fd5b505af415801562001f17573d6000803e3d6000fd5b505060405163c661667d60e01b81526001600160a01b03848116600483015287811660248301526001600160601b03871660448301528516925063c661667d91506064015b600060405180830381600087803b15801562001f7757600080fd5b505af115801562000ec7573d6000803e3d6000fd5b600062001f9862003b1c565b600301546001600160a01b0316919050565b62001fb462003ed0565b806001600160a01b03163b60000362001fec5760405163fdeac91f60e01b81526001600160a01b038216600482015260240162000c6b565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b815263e607072160e01b60048201526301ffc9a790602401602060405180830381865afa92505050801562002069575060408051601f3d908101601f19168201909252620020669181019062005313565b60015b620020935760405163fdeac91f60e01b81526001600160a01b038216600482015260240162000c6b565b80620014955760405163fdeac91f60e01b81526001600160a01b038316600482015260240162000c6b565b50565b600082620020ce62003b1c565b60020154604051634f9c1c0960e01b81526001600160601b03831660048201526001600160a01b0390911690634f9c1c0990602401602060405180830381865afa15801562002121573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002147919062005313565b6200217157604051632ab4595b60e11b81526001600160601b038216600482015260240162000c6b565b60006200217d62003b1c565b600381015460405163d6b40e6160e01b81526001600160a01b0390911660048201526001600160601b0387166024820152909150600090819073__$dbe4bf03c942dc0574f54ee579c90d56ef$__9063d6b40e61906044016040805180830381865af4158015620021f2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002218919062005789565b600385015460405163e048754d60e01b8152929450909250600091829173__$dbe4bf03c942dc0574f54ee579c90d56ef$__9163e048754d916200226f916001600160a01b03909116908d90899060040162005471565b6040805180830381865af41580156200228c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620022b29190620057b1565b91509150620022c2818962004338565b96506000620022d96001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b038c1660048201526001600160a01b03919091169063a48f42e090602401600060405180830381865afa15801562002329573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200235391908101906200563f565b6020015160028701546040516330f4419960e01b81526001600160601b03808e1660048301528084166024830152861660448201529192506001600160a01b0316906330f4419990606401600060405180830381600087803b158015620023b957600080fd5b505af1158015620023ce573d6000803e3d6000fd5b505050506002860154604051633861317f60e01b81526001600160601b03808d16600483015280841660248301528b1660448201526001600160a01b0390911690633861317f90606401600060405180830381600087803b1580156200243357600080fd5b505af115801562002448573d6000803e3d6000fd5b505050508560020160009054906101000a90046001600160a01b03166001600160a01b0316634b51da0c8b604051806020016040528073__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015620024c8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620024ee919062005581565b6040516352bcc5a760e11b815264ffffffffff9182166004820152908a16602482015273__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9063a5798b4e90604401602060405180830381865af41580156200254e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002574919062005581565b64ffffffffff9081169091526040516001600160e01b031960e086901b1681526001600160601b0390931660048401529051166024820152604401600060405180830381600087803b158015620025ca57600080fd5b505af1158015620025df573d6000803e3d6000fd5b505050505050505050505092915050565b600081620025fd62003b1c565b60020154604051634f9c1c0960e01b81526001600160601b03831660048201526001600160a01b0390911690634f9c1c0990602401602060405180830381865afa15801562002650573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002676919062005313565b620026a057604051632ab4595b60e11b81526001600160601b038216600482015260240162000c6b565b6000620026ac62003b1c565b60038101546002820154919250600091620026d5916001600160a01b0390811691168762003b40565b90508160020160009054906101000a90046001600160a01b03166001600160a01b0316633fbdfe32868373__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af415801562002749573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200276f9190620052aa565b60405160e085901b6001600160e01b03191681526001600160601b039384166004820152918316602483015290911660448201526064016020604051808303816000875af1158015620027c6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620027ec9190620052aa565b600283015460405163136cfef760e01b81526001600160601b038085166004830152831660248201529195506001600160a01b03169063136cfef7906044016020604051808303816000875af11580156200284b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620028719190620052aa565b50505050919050565b336200289c60008051602062005e96833981519152546001600160a01b031690565b6001600160a01b0316816001600160a01b031614620028d95760405162d1953b60e31b81526001600160a01b038216600482015260240162000c6b565b816001600160a01b03163b60000362002911576040516361798f2f60e11b81526001600160a01b038316600482015260240162000c6b565b6200149582620043c9565b60006200292862003b1c565b600201546001600160a01b0316919050565b60008060008051602062005e5683398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015620029ac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620029d2919062005313565b1562002a63576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa15801562002a37573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002a5d919062005451565b91505090565b54600160601b90046001600160a01b0316919050565b60008051602062005e96833981519152805460009190600160a01b900460ff1662002aa657600062002a5d565b638fb3603760e01b91505090565b62002abe62004938565b62002ac862000d24565b1562002ad857620009ec62004425565b620009ec62002d5b565b62002aec6200293a565b6001600160a01b0316336001600160a01b03161462002b215760405163086391f760e31b815233600482015260240162000c6b565b505050565b62002b306200293a565b6001600160a01b0316336001600160a01b03161462002b655760405163086391f760e31b815233600482015260240162000c6b565b600062002b7162003b1c565b6001810154604051631703edc360e31b8152600481018790526001600160a01b03868116602483015292935091169063b81f6e1890604401602060405180830381865afa15801562002bc7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002bed919062005313565b62002c1e576040516374ddbd6960e01b8152600481018590526001600160a01b038416602482015260440162000c6b565b6002810154604051637b21556160e01b8152600481018690526001600160a01b0385811660248301526000921690637b21556190604401602060405180830381865afa15801562002c73573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002c999190620055cc565b600283015460405163269c98d960e21b8152600481018890526001600160a01b03878116602483015260448201879052929350911690639a72636490606401600060405180830381600087803b15801562002cf357600080fd5b505af115801562002d08573d6000803e3d6000fd5b5050604080518881526001600160a01b0388166020820152908101849052606081018690527f8075f599388073d04550222731e9c7e00c284a4f858d8a0ffc0657164981c76e9250608001905062001136565b62002d6562004938565b620009ec62004425565b62002d796200293a565b6001600160a01b0316336001600160a01b03161462002dae5760405163086391f760e31b815233600482015260240162000c6b565b620020be62002dbc62000d0f565b82620014e1565b6001546001600160a01b03166001600160a01b031663120726c36040518163ffffffff1660e01b8152600401602060405180830381865afa15801562002e0d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002e33919062005451565b6001600160a01b0316336001600160a01b031614620014955760405162f0630960e01b815233600482015260240162000c6b565b600062002e7362003b1c565b600101546001600160a01b0316919050565b60008062002e9262003b1c565b600381015460405163153d412560e31b81526001600160601b03881660048201529192506000916001600160a01b039091169063a9ea092890602401608060405180830381865afa15801562002eec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002f129190620057e5565b602001516003830154604051637b21556160e01b8152600481018390526001600160a01b03888116602483015292935060009290911690637b21556190604401602060405180830381865afa15801562002f70573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002f969190620055cc565b6002840154604051633ece552760e21b81529192506001600160a01b03169063fb39549c9062002fd1908a9085908b908b9060040162005804565b6020604051808303816000875af115801562002ff1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620030179190620052aa565b979650505050505050565b6000806200302f62003b1c565b600281015460405163d7537c3760e01b81526001600160601b038088166004830152861660248201529192506001600160a01b03169063d7537c37906044015b6020604051808303816000875af11580156200308f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620030b59190620052aa565b949350505050565b60008082620030cb62003b1c565b60020154604051634f9c1c0960e01b81526001600160601b03831660048201526001600160a01b0390911690634f9c1c0990602401602060405180830381865afa1580156200311e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003144919062005313565b6200316e57604051632ab4595b60e11b81526001600160601b038216600482015260240162000c6b565b60006200317a62003b1c565b60038101546002820154919250600091620031a3916001600160a01b0390811691168862003b40565b90508160020160009054906101000a90046001600160a01b03166001600160a01b031663eb98e8a0878373__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af415801562003217573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200323d9190620052aa565b73__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af415801562003287573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620032ad9190620052aa565b60405160e086901b6001600160e01b03191681526001600160601b03948516600482015292841660248401529083166044830152909116606482015260840160408051808303816000875af11580156200330b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620033319190620057b1565b600284015460405163136cfef760e01b81526001600160601b038086166004830152831660248201529297509095506001600160a01b03169063136cfef7906044016020604051808303816000875af115801562003393573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620033b99190620052aa565b50505050915091565b620033cc6200293a565b6001600160a01b0316336001600160a01b031614620034015760405163086391f760e31b815233600482015260240162000c6b565b60006200340d62000cac565b905060006200341b62000d0f565b6040516370a0823160e01b81526001600160a01b0384811660048301529192506000918316906370a0823190602401602060405180830381865afa15801562003468573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200348e9190620055cc565b9050801562003567576001600160a01b03831630146200356757604051636eb1769f60e11b81526001600160a01b0384811660048301523060248301526000919084169063dd62ed3e90604401602060405180830381865afa158015620034f9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200351f9190620055cc565b90508181101562003565576040516372c963b360e11b81526001600160a01b03808616600483015286166024820152604481018290526064810183905260840162000c6b565b505b6200357284620045a6565b801562000ca657306001600160a01b03841603620036005760405163095ea7b360e01b8152306004820152602481018290526001600160a01b0383169063095ea7b3906044016020604051808303816000875af1158015620035d8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620035fe919062005313565b505b6200360e8284868462004693565b604080516001600160a01b038086168252861660208201529081018290527f8f925ed35e36754081a3353f30c5686c405280f94d1cfe322ee5707833d898679060600160405180910390a150505050565b60006200366b620016b7565b905060006200367962000cac565b905073__$dbe4bf03c942dc0574f54ee579c90d56ef$__6382aaf2e76200369f62000d0f565b8685876040518563ffffffff1660e01b8152600401620036c3949392919062005757565b60006040518083038186803b158015620036dc57600080fd5b505af4158015620036f1573d6000803e3d6000fd5b505060405163c661667d60e01b81526001600160a01b03878116600483015284811660248301526001600160601b03871660448301528516925063c661667d915060640162001f5c565b6001546001600160a01b03166001600160a01b031663120726c36040518163ffffffff1660e01b8152600401602060405180830381865afa15801562003785573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620037ab919062005451565b6001600160a01b0316336001600160a01b03161462002b215760405162f0630960e01b815233600482015260240162000c6b565b600080620037ec62003b1c565b600281015460405163136cfef760e01b81526001600160601b038088166004830152861660248201529192506001600160a01b03169063136cfef7906044016200306f565b6000806200383e62003b1c565b600381015460405163153d412560e31b81526001600160601b03881660048201529192506000916001600160a01b039091169063a9ea092890602401608060405180830381865afa15801562003898573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620038be9190620057e5565b602001516003830154604051637b21556160e01b8152600481018390526001600160a01b03888116602483015292935060009290911690637b21556190604401602060405180830381865afa1580156200391c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620039429190620055cc565b60028401546040516377f9185160e01b81529192506001600160a01b0316906377f918519062002fd1908a9085908b908b9060040162005804565b6200398762003ed0565b620039928162001faa565b6200399c62001499565b6001600160a01b038216620039c45760405163f17ef42d60e01b815260040160405180910390fd5b5060008051602062005e5683398151915280546001600160601b0316600160601b6001600160a01b0390931692909202919091179055565b62003a0662003ed0565b62003a1689898787878762000e26565b62003a218a620046ef565b6001600160a01b03861662003a49576040516327eab2e360e11b815260040160405180910390fd5b865160000362003a6c5760405163591eebf360e11b815260040160405180910390fd5b60008051602062005e768339815191528062003a89898262005385565b506001810180546001600160a01b03199081166001600160a01b038a161790915560028201805490911690556003810180546001600160a81b0319163060ff60a01b191617600160a01b871515021790556004810162003aea838262005385565b5062003afd634a531f3360e01b62000ce0565b62003b0f632986755f60e11b62000ce0565b5050505050505050505050565b7fafe8d4462b2ed26a47154f4b8f6d1497d2f772496965791d25bd456e342b7f0090565b6040516312b9a5c960e01b81526001600160601b038216600482015260009081906001600160a01b038616906312b9a5c9906024016040805180830381865afa15801562003b92573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003bb8919062005838565b60405163e048754d60e01b8152919350915060009073__$dbe4bf03c942dc0574f54ee579c90d56ef$__9063e048754d9062003bfd9089908890879060040162005471565b6040805180830381865af415801562003c1a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003c409190620057b1565b50604051634a2101d160e01b81526001600160601b0380871660048301528086166024830152821660448201529091506001600160a01b03861690634a2101d190606401600060405180830381600087803b15801562003c9f57600080fd5b505af115801562003cb4573d6000803e3d6000fd5b5050505050509392505050565b60008060008051602062005e5683398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af415801562003d33573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003d59919062005313565b1562003d875780546040516301ab8b6760e21b81526001600160601b03909116600482015260240162000c6b565b6001546001600160a01b031660405163c3c5a54760e01b81526001600160a01b038581166004830152919091169063c3c5a54790602401602060405180830381865afa15801562003ddc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003e02919062005313565b62003e2c5760405163b9304b0d60e01b81526001600160a01b038416600482015260240162000c6b565b6001546001600160a01b0316604051636939560f60e11b81526001600160a01b038581166004830152919091169063d272ac1e90602401602060405180830381865afa15801562003e81573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003ea79190620052aa565b81546bffffffffffffffffffffffff19166001600160601b039190911690811790915592915050565b60008051602062005eb683398151915254600160401b900460ff1662003f0957604051631afcd79f60e31b815260040160405180910390fd5b565b620003d962003ed0565b60008051602062005eb68339815191528054600160401b810460ff1615906001600160401b031660008115801562003f4a5750825b90506000826001600160401b0316600114801562003f675750303b155b90508115801562003f76575080155b1562003f955760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831562003fc057845460ff60401b1916600160401b1785555b6000806000808980602001905181019062003fdc919062005869565b935093509350935060008490506000816001600160a01b031663e2b178a06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200402a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004050919062005451565b905060008590506000816001600160a01b031663b201f7096040518163ffffffff1660e01b8152600401602060405180830381865afa15801562004098573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620040be919062005451565b9050620041758389866001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa15801562004105573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200412b9190620052aa565b6040805180820190915260078152665374616b696e6760c81b602082015285602d60008c6040518060200160405280600081525060405180602001604052806000815250620039fc565b6200417f62004704565b60006200418b62003b1c565b9050620041a06001546001600160a01b031690565b6001600160a01b031663fff74f6c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620041de573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620042049190620052aa565b6003820180546001600160601b0392909216600160a01b026001600160a01b039283161790556002820180549189166001600160a01b0319929092168217905560408051633148a11d60e11b81529051636291423a916004808201926020929091908290030181865afa15801562004280573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620042a6919062005451565b6003820180546001600160a01b03199081166001600160a01b0393841617909155600183018054909116918a16919091179055620042eb63fef8804160e01b62000ce0565b5050505050505050508315620017cb57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602001620017c2565b60405163274acb3560e01b81526001600160601b0380841660048301528216602482015260009073__$3bac17678db7ae928afa209f2f44deec9c$__9063274acb3590604401602060405180830381865af41580156200439c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620043c29190620052aa565b9392505050565b60008051602062005e9683398151915280546001600160a01b0319166001600160a01b03831690811782556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad90602001620016ab565b6200442f62004938565b600060008051602062005e7683398151915290506040518060c001604052808260000180546200445f90620052ca565b80601f01602080910402602001604051908101604052809291908181526020018280546200448d90620052ca565b8015620044de5780601f10620044b257610100808354040283529160200191620044de565b820191906000526020600020905b815481529060010190602001808311620044c057829003601f168201915b5050505050815260200173__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af415801562004532573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620045589190620052aa565b6001600160601b0316815260018301546001600160a01b039081166020830152600284015481166040830152600384015416606082015260048301805460809092019162000b3590620052ca565b7fffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f035460008051602062005e76833981519152906001600160a01b03908116908316620046055760405163185a690f60e11b815260040160405180910390fd5b806001600160a01b0316836001600160a01b031603620046385760405163ade4578160e01b815260040160405180910390fd5b6003820180546001600160a01b0319166001600160a01b0385811691821790925560408051928416835260208301919091527f610ad1290dceadae2c5ce18bae2eb495be595083a257fac7414e50686f7c2650910162001449565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b17905262000ca6908590620047a2565b620046f962003ed0565b620020be816200480c565b7fffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f015460405160008051602062005e76833981519152916001600160a01b0316906200474f9062004992565b6001600160a01b039091168152602001604051809103906000f0801580156200477c573d6000803e3d6000fd5b5060029190910180546001600160a01b0319166001600160a01b03909216919091179055565b6000620047b96001600160a01b0384168362004821565b90508051600014158015620047e1575080806020019051810190620047df919062005313565b155b1562002b2157604051635274afe760e01b81526001600160a01b038416600482015260240162000c6b565b6200481662003ed0565b620020be81620043c9565b6060620043c28383600084600080856001600160a01b031684866040516200484a9190620058d1565b60006040518083038185875af1925050503d806000811462004889576040519150601f19603f3d011682016040523d82523d6000602084013e6200488e565b606091505b5091509150620048a0868383620048aa565b9695505050505050565b606082620048c357620048bd826200490e565b620043c2565b8151158015620048db57506001600160a01b0384163b155b156200490657604051639996b31560e01b81526001600160a01b038516600482015260240162000c6b565b5080620043c2565b8051156200491f5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060c001604052806060815260200160006001600160601b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b03168152602001606081525090565b61056680620058f083390190565b600060208284031215620049b357600080fd5b81356001600160e01b031981168114620043c257600080fd5b60005b83811015620049e9578181015183820152602001620049cf565b50506000910152565b6000815180845262004a0c816020860160208601620049cc565b601f01601f19169290920160200192915050565b6020815260006001600160601b038084511660208401528060208501511660408401525060ff604084015116606083015260608301511515608083015260018060a01b0360808401511660a083015260a083015162004a8a60c08401826001600160a01b03169052565b5060c083015160e080840152620030b5610100840182620049f2565b6001600160601b0381168114620020be57600080fd5b803562004ac98162004aa6565b919050565b60006020828403121562004ae157600080fd5b8135620043c28162004aa6565b602081526000620043c26020830184620049f2565b6001600160a01b0381168114620020be57600080fd5b803562004ac98162004b03565b60ff81168114620020be57600080fd5b803562004ac98162004b26565b8015158114620020be57600080fd5b803562004ac98162004b43565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b038111828210171562004b9a5762004b9a62004b5f565b60405290565b60405160e081016001600160401b038111828210171562004b9a5762004b9a62004b5f565b604051601f8201601f191681016001600160401b038111828210171562004bf05762004bf062004b5f565b604052919050565b60006001600160401b0382111562004c145762004c1462004b5f565b50601f01601f191660200190565b600082601f83011262004c3457600080fd5b813562004c4b62004c458262004bf8565b62004bc5565b81815284602083860101111562004c6157600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060c0878903121562004c9857600080fd5b863562004ca58162004b03565b9550602087013562004cb78162004aa6565b9450604087013562004cc98162004b26565b9350606087013562004cdb8162004b43565b9250608087013562004ced8162004b03565b915060a08701356001600160401b0381111562004d0957600080fd5b62004d1789828a0162004c22565b9150509295509295509295565b6000806040838503121562004d3857600080fd5b823562004d458162004aa6565b946020939093013593505050565b60008060006060848603121562004d6957600080fd5b833562004d768162004aa6565b9250602084013562004d888162004aa6565b9150604084013562004d9a8162004aa6565b809150509250925092565b60006020828403121562004db857600080fd5b81356001600160401b0381111562004dcf57600080fd5b620030b58482850162004c22565b64ffffffffff81168114620020be57600080fd5b60008082840360a081121562004e0657600080fd5b833562004e138162004aa6565b92506080601f198201121562004e2857600080fd5b5062004e3362004b75565b602084013562004e438162004b26565b815260408401356020820152606084013562004e5f8162004ddd565b60408201526080939093013560608401525092909150565b6000806040838503121562004e8b57600080fd5b823562004e988162004b03565b9150602083013562004eaa8162004aa6565b809150509250929050565b6000806040838503121562004ec957600080fd5b823562004ed68162004b03565b915060208301356001600160401b0381111562004ef257600080fd5b62004f008582860162004c22565b9150509250929050565b600080600080600060a0868803121562004f2357600080fd5b853562004f308162004aa6565b9450602086013562004f428162004b26565b935060408601359250606086013562004f5b8162004ddd565b949793965091946080013592915050565b6000806040838503121562004f8057600080fd5b823562004e988162004aa6565b6000806040838503121562004fa157600080fd5b823562004fae8162004aa6565b9150602083013562004eaa8162004ddd565b60006020828403121562004fd357600080fd5b8135620043c28162004b03565b602081526000825160c0602084015262004ffe60e0840182620049f2565b90506001600160601b036020850151166040840152604084015160018060a01b0380821660608601528060608701511660808601528060808701511660a0860152505060a0840151601f198483030160c08501526200505e8282620049f2565b95945050505050565b6000806000606084860312156200507d57600080fd5b83356200508a8162004aa6565b9250602084013562004d888162004b03565b600080600060608486031215620050b257600080fd5b833592506020840135620050c68162004b03565b929592945050506040919091013590565b60008060408385031215620050eb57600080fd5b823562004d458162004b03565b6000806000606084860312156200510e57600080fd5b83356200511b8162004b03565b92506020840135620050c68162004b03565b600080604083850312156200514157600080fd5b82356200514e8162004b03565b9150602083013562004eaa8162004b03565b6000806000806000806000806000806101408b8d0312156200518157600080fd5b6200518c8b62004b19565b99506200519c60208c0162004b19565b9850620051ac60408c0162004abc565b975060608b01356001600160401b0380821115620051c957600080fd5b620051d78e838f0162004c22565b9850620051e760808e0162004b19565b9750620051f760a08e0162004b36565b96506200520760c08e0162004b52565b95506200521760e08e0162004b19565b94506101008d01359150808211156200522f57600080fd5b6200523d8e838f0162004c22565b93506101208d01359150808211156200525557600080fd5b50620052648d828e0162004c22565b9150509295989b9194979a5092959850565b6000602082840312156200528957600080fd5b815162ffffff81168114620043c257600080fd5b805162004ac98162004aa6565b600060208284031215620052bd57600080fd5b8151620043c28162004aa6565b600181811c90821680620052df57607f821691505b6020821081036200530057634e487b7160e01b600052602260045260246000fd5b50919050565b805162004ac98162004b43565b6000602082840312156200532657600080fd5b8151620043c28162004b43565b601f82111562002b2157600081815260208120601f850160051c810160208610156200535c5750805b601f850160051c820191505b818110156200537d5782815560010162005368565b505050505050565b81516001600160401b03811115620053a157620053a162004b5f565b620053b981620053b28454620052ca565b8462005333565b602080601f831160018114620053f15760008415620053d85750858301515b600019600386901b1c1916600185901b1785556200537d565b600085815260208120601f198616915b82811015620054225788860151825594840194600190910190840162005401565b5085821015620054415787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200546457600080fd5b8151620043c28162004b03565b6001600160a01b039390931683526001600160601b03919091166020830152604082015260600190565b805162004ac98162004b26565b600060808284031215620054bb57600080fd5b620054c562004b75565b90508151620054d48162004b26565b8152602082810151908201526040820151620054f08162004ddd565b806040830152506060820151606082015292915050565b60008060a083850312156200551b57600080fd5b825191506200552e8460208501620054a8565b90509250929050565b600060a0820190506001600160601b038416825260ff83511660208301526020830151604083015264ffffffffff6040840151166060830152606083015160808301529392505050565b6000602082840312156200559457600080fd5b8151620043c28162004ddd565b600060208284031215620055b457600080fd5b81516001600160401b0381168114620043c257600080fd5b600060208284031215620055df57600080fd5b5051919050565b805162004ac98162004b03565b600082601f8301126200560557600080fd5b81516200561662004c458262004bf8565b8181528460208386010111156200562c57600080fd5b620030b5826020830160208701620049cc565b6000602082840312156200565257600080fd5b81516001600160401b03808211156200566a57600080fd5b9083019060e082860312156200567f57600080fd5b6200568962004ba0565b62005694836200529d565b8152620056a4602084016200529d565b6020820152620056b7604084016200549b565b6040820152620056ca6060840162005306565b6060820152620056dd60808401620055e6565b6080820152620056f060a08401620055e6565b60a082015260c0830151828111156200570857600080fd5b6200571687828601620055f3565b60c08301525095945050505050565b60008060a083850312156200573957600080fd5b8251620057468162004ddd565b91506200552e8460208501620054a8565b6001600160a01b0394851681529284166020840152921660408201526001600160601b03909116606082015260800190565b600080604083850312156200579d57600080fd5b82519150602083015162004eaa8162004ddd565b60008060408385031215620057c557600080fd5b8251620057d28162004aa6565b602084015190925062004eaa8162004aa6565b600060808284031215620057f857600080fd5b620043c28383620054a8565b6001600160601b03948516815260208101939093526001600160a01b03919091166040830152909116606082015260800190565b600080604083850312156200584c57600080fd5b8251620058598162004aa6565b6020939093015192949293505050565b600080600080608085870312156200588057600080fd5b84516200588d8162004b03565b6020860151909450620058a08162004b03565b6040860151909350620058b38162004b03565b6060860151909250620058c68162004b03565b939692955090935050565b60008251620058e5818460208701620049cc565b919091019291505056fe608060405234801561001057600080fd5b5060405161056638038061056683398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6104d3806100936000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806321df0da7146100465780638d7271c314610065578063c661667d1461007a575b600080fd5b600054604080516001600160a01b039092168252519081900360200190f35b61007861007336600461039c565b61008d565b005b6100786100883660046103f0565b61011f565b60405163046e44af60e11b81526001600160601b03821660048201526101199085908590859073__$3bac17678db7ae928afa209f2f44deec9c$__906308dc895e906024015b602060405180830381865af41580156100f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101149190610433565b610179565b50505050565b60005460405163046e44af60e11b81526001600160601b0383166004820152610174916001600160a01b0316908590859073__$3bac17678db7ae928afa209f2f44deec9c$__906308dc895e906024016100d3565b505050565b604080516001600160a01b038581166024830152848116604483015260648083018590528351808403909101815260849092019092526020810180516001600160e01b03166323b872dd60e01b179052610119918691906000906101df90841683610232565b90508051600014158015610204575080806020019051810190610202919061044c565b155b1561017457604051635274afe760e01b81526001600160a01b03841660048201526024015b60405180910390fd5b606061024083836000610247565b9392505050565b60608147101561026c5760405163cd78605960e01b8152306004820152602401610229565b600080856001600160a01b03168486604051610288919061046e565b60006040518083038185875af1925050503d80600081146102c5576040519150601f19603f3d011682016040523d82523d6000602084013e6102ca565b606091505b50915091506102da8683836102e4565b9695505050505050565b6060826102f9576102f482610340565b610240565b815115801561031057506001600160a01b0384163b155b1561033957604051639996b31560e01b81526001600160a01b0385166004820152602401610229565b5080610240565b8051156103505780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b038116811461038057600080fd5b919050565b80356001600160601b038116811461038057600080fd5b600080600080608085870312156103b257600080fd5b6103bb85610369565b93506103c960208601610369565b92506103d760408601610369565b91506103e560608601610385565b905092959194509250565b60008060006060848603121561040557600080fd5b61040e84610369565b925061041c60208501610369565b915061042a60408501610385565b90509250925092565b60006020828403121561044557600080fd5b5051919050565b60006020828403121561045e57600080fd5b8151801515811461024057600080fd5b6000825160005b8181101561048f5760208186018101518583015201610475565b50600092019182525091905056fea26469706673582212209807ba37f960191da7fc92045bb7e0c4e727926f77e78d1cce4b3e3395aa9c6864736f6c6343000814003307ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00ffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212201e08eb20bf1d0d025abe18d8486bb749a013733cbb9b73d1948c899a28d8104a64736f6c63430008140033",
1926
1793
  "linkReferences": {
1927
- "contracts/type/Amount.sol": {
1928
- "AmountLib": [
1794
+ "contracts/staking/StakeManagerLib.sol": {
1795
+ "StakeManagerLib": [
1796
+ {
1797
+ "length": 20,
1798
+ "start": 4728
1799
+ },
1800
+ {
1801
+ "length": 20,
1802
+ "start": 8073
1803
+ },
1804
+ {
1805
+ "length": 20,
1806
+ "start": 8862
1807
+ },
1808
+ {
1809
+ "length": 20,
1810
+ "start": 8989
1811
+ },
1929
1812
  {
1930
1813
  "length": 20,
1931
- "start": 17242
1814
+ "start": 14179
1932
1815
  },
1933
1816
  {
1934
1817
  "length": 20,
1935
- "start": 17399
1818
+ "start": 15541
1936
1819
  }
1937
1820
  ]
1938
1821
  },
1939
- "contracts/type/Key32.sol": {
1940
- "Key32Lib": [
1822
+ "contracts/staking/TargetManagerLib.sol": {
1823
+ "TargetManagerLib": [
1824
+ {
1825
+ "length": 20,
1826
+ "start": 4322
1827
+ },
1828
+ {
1829
+ "length": 20,
1830
+ "start": 6332
1831
+ },
1941
1832
  {
1942
1833
  "length": 20,
1943
- "start": 9494
1834
+ "start": 7369
1944
1835
  }
1945
1836
  ]
1946
1837
  },
1947
- "contracts/type/NftId.sol": {
1948
- "NftIdLib": [
1838
+ "contracts/type/Amount.sol": {
1839
+ "AmountLib": [
1840
+ {
1841
+ "length": 20,
1842
+ "start": 5744
1843
+ },
1844
+ {
1845
+ "length": 20,
1846
+ "start": 10215
1847
+ },
1949
1848
  {
1950
1849
  "length": 20,
1951
- "start": 3622
1850
+ "start": 12981
1952
1851
  },
1953
1852
  {
1954
1853
  "length": 20,
1955
- "start": 4053
1854
+ "start": 13093
1956
1855
  },
1957
1856
  {
1958
1857
  "length": 20,
1959
- "start": 4779
1858
+ "start": 17479
1960
1859
  },
1961
1860
  {
1962
1861
  "length": 20,
1963
- "start": 6901
1862
+ "start": 23326
1964
1863
  },
1965
1864
  {
1966
1865
  "length": 20,
1967
- "start": 12187
1866
+ "start": 23483
1968
1867
  }
1969
1868
  ]
1970
1869
  },
1971
- "contracts/type/StateId.sol": {
1972
- "StateIdLib": [
1870
+ "contracts/type/NftId.sol": {
1871
+ "NftIdLib": [
1872
+ {
1873
+ "length": 20,
1874
+ "start": 2884
1875
+ },
1876
+ {
1877
+ "length": 20,
1878
+ "start": 3755
1879
+ },
1880
+ {
1881
+ "length": 20,
1882
+ "start": 10839
1883
+ },
1973
1884
  {
1974
1885
  "length": 20,
1975
- "start": 5507
1886
+ "start": 15838
1976
1887
  },
1977
1888
  {
1978
1889
  "length": 20,
1979
- "start": 7705
1890
+ "start": 17872
1891
+ }
1892
+ ]
1893
+ },
1894
+ "contracts/type/Timestamp.sol": {
1895
+ "TimestampLib": [
1896
+ {
1897
+ "length": 20,
1898
+ "start": 9574
1980
1899
  },
1981
1900
  {
1982
1901
  "length": 20,
1983
- "start": 8136
1902
+ "start": 9721
1984
1903
  }
1985
1904
  ]
1986
1905
  },
@@ -1988,73 +1907,125 @@
1988
1907
  "VersionLib": [
1989
1908
  {
1990
1909
  "length": 20,
1991
- "start": 3411
1910
+ "start": 2673
1992
1911
  },
1993
1912
  {
1994
1913
  "length": 20,
1995
- "start": 5049
1914
+ "start": 5094
1996
1915
  }
1997
1916
  ]
1998
1917
  }
1999
1918
  },
2000
1919
  "deployedLinkReferences": {
2001
- "contracts/type/Amount.sol": {
2002
- "AmountLib": [
1920
+ "contracts/staking/StakeManagerLib.sol": {
1921
+ "StakeManagerLib": [
1922
+ {
1923
+ "length": 20,
1924
+ "start": 4498
1925
+ },
1926
+ {
1927
+ "length": 20,
1928
+ "start": 7843
1929
+ },
1930
+ {
1931
+ "length": 20,
1932
+ "start": 8632
1933
+ },
1934
+ {
1935
+ "length": 20,
1936
+ "start": 8759
1937
+ },
2003
1938
  {
2004
1939
  "length": 20,
2005
- "start": 17012
1940
+ "start": 13949
2006
1941
  },
2007
1942
  {
2008
1943
  "length": 20,
2009
- "start": 17169
1944
+ "start": 15311
2010
1945
  }
2011
1946
  ]
2012
1947
  },
2013
- "contracts/type/Key32.sol": {
2014
- "Key32Lib": [
1948
+ "contracts/staking/TargetManagerLib.sol": {
1949
+ "TargetManagerLib": [
2015
1950
  {
2016
1951
  "length": 20,
2017
- "start": 9264
1952
+ "start": 4092
1953
+ },
1954
+ {
1955
+ "length": 20,
1956
+ "start": 6102
1957
+ },
1958
+ {
1959
+ "length": 20,
1960
+ "start": 7139
2018
1961
  }
2019
1962
  ]
2020
1963
  },
2021
- "contracts/type/NftId.sol": {
2022
- "NftIdLib": [
1964
+ "contracts/type/Amount.sol": {
1965
+ "AmountLib": [
1966
+ {
1967
+ "length": 20,
1968
+ "start": 5514
1969
+ },
1970
+ {
1971
+ "length": 20,
1972
+ "start": 9985
1973
+ },
2023
1974
  {
2024
1975
  "length": 20,
2025
- "start": 3392
1976
+ "start": 12751
2026
1977
  },
2027
1978
  {
2028
1979
  "length": 20,
2029
- "start": 3823
1980
+ "start": 12863
2030
1981
  },
2031
1982
  {
2032
1983
  "length": 20,
2033
- "start": 4549
1984
+ "start": 17249
2034
1985
  },
2035
1986
  {
2036
1987
  "length": 20,
2037
- "start": 6671
1988
+ "start": 23096
2038
1989
  },
2039
1990
  {
2040
1991
  "length": 20,
2041
- "start": 11957
1992
+ "start": 23253
2042
1993
  }
2043
1994
  ]
2044
1995
  },
2045
- "contracts/type/StateId.sol": {
2046
- "StateIdLib": [
1996
+ "contracts/type/NftId.sol": {
1997
+ "NftIdLib": [
1998
+ {
1999
+ "length": 20,
2000
+ "start": 2654
2001
+ },
2002
+ {
2003
+ "length": 20,
2004
+ "start": 3525
2005
+ },
2047
2006
  {
2048
2007
  "length": 20,
2049
- "start": 5277
2008
+ "start": 10609
2050
2009
  },
2051
2010
  {
2052
2011
  "length": 20,
2053
- "start": 7475
2012
+ "start": 15608
2013
+ },
2014
+ {
2015
+ "length": 20,
2016
+ "start": 17642
2017
+ }
2018
+ ]
2019
+ },
2020
+ "contracts/type/Timestamp.sol": {
2021
+ "TimestampLib": [
2022
+ {
2023
+ "length": 20,
2024
+ "start": 9344
2054
2025
  },
2055
2026
  {
2056
2027
  "length": 20,
2057
- "start": 7906
2028
+ "start": 9491
2058
2029
  }
2059
2030
  ]
2060
2031
  },
@@ -2062,11 +2033,11 @@
2062
2033
  "VersionLib": [
2063
2034
  {
2064
2035
  "length": 20,
2065
- "start": 3181
2036
+ "start": 2443
2066
2037
  },
2067
2038
  {
2068
2039
  "length": 20,
2069
- "start": 4819
2040
+ "start": 4864
2070
2041
  }
2071
2042
  ]
2072
2043
  }