@etherisc/gif-next 0.0.2-f13c010-035 → 0.0.2-f13d67f-541
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +90 -317
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +810 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +729 -287
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +2008 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +438 -35
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +560 -220
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +191 -21
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +256 -16
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +426 -27
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +132 -300
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +427 -53
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +64 -173
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +585 -231
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +190 -78
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +44 -135
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +401 -78
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +160 -224
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +426 -52
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +308 -337
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +426 -52
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +408 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1198 -0
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +849 -0
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1466 -0
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +844 -0
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2185 -0
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +844 -0
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +376 -0
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +215 -257
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +844 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +95 -165
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +278 -233
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +844 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +946 -466
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +844 -0
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
- package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +51 -229
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +551 -50
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +417 -17
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +615 -105
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1121 -374
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +379 -68
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1127 -557
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +434 -81
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +119 -49
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1286 -1925
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +83 -175
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +425 -54
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +48 -74
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +56 -3
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +67 -111
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +157 -81
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +154 -46
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +106 -173
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +426 -52
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +317 -344
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +144 -92
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +219 -146
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +63 -128
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +380 -214
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +76 -159
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +621 -413
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +186 -66
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +327 -62
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +143 -43
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +199 -223
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +426 -52
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +294 -189
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +151 -83
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +268 -10
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +181 -19
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +167 -56
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +77 -3
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +175 -181
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +258 -22
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +296 -194
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +169 -77
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +139 -114
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +131 -59
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +193 -217
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +338 -87
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +141 -41
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +78 -19
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +56 -3
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +116 -57
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +848 -479
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1137 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +89 -37
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +119 -39
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2271 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +398 -64
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +459 -26
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +120 -60
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +66 -96
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +308 -542
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +155 -83
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +544 -4
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +48 -60
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +171 -356
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +48 -74
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +139 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +56 -3
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +66 -110
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +21 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +137 -62
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +51 -11
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +289 -112
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +70 -30
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1446 -164
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +214 -110
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1583 -296
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +160 -69
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +294 -177
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +257 -162
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +122 -46
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1632 -818
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +160 -88
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +11 -11
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +64 -19
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +94 -38
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +49 -50
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +23 -4
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +4 -0
- package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +33 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +69 -7
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +64 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +69 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +37 -5
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +61 -37
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +95 -25
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
- package/contracts/accounting/AccountingService.sol +274 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +47 -0
- package/contracts/authorization/AccessAdmin.sol +389 -306
- package/contracts/authorization/AccessAdminLib.sol +678 -0
- package/contracts/authorization/AccessManagerCloneable.sol +128 -4
- package/contracts/authorization/Authorization.sol +161 -260
- package/contracts/authorization/IAccess.sol +29 -12
- package/contracts/authorization/IAccessAdmin.sol +89 -84
- package/contracts/authorization/IAuthorization.sol +9 -43
- package/contracts/authorization/IServiceAuthorization.sol +55 -17
- package/contracts/authorization/ServiceAuthorization.sol +228 -34
- package/contracts/distribution/BasicDistribution.sol +19 -18
- package/contracts/distribution/BasicDistributionAuthorization.sol +30 -10
- package/contracts/distribution/Distribution.sol +45 -85
- package/contracts/distribution/DistributionService.sol +192 -99
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionComponent.sol +3 -10
- package/contracts/distribution/IDistributionService.sol +38 -24
- package/contracts/examples/fire/FirePool.sol +21 -8
- package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
- package/contracts/examples/fire/FireProduct.sol +38 -20
- package/contracts/examples/fire/FireProductAuthorization.sol +2 -1
- package/contracts/examples/flight/FlightLib.sol +279 -0
- package/contracts/examples/flight/FlightOracle.sol +168 -0
- package/contracts/examples/flight/FlightOracleAuthorization.sol +34 -0
- package/contracts/examples/flight/FlightPool.sol +89 -0
- package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
- package/contracts/examples/flight/FlightProduct.sol +470 -0
- package/contracts/examples/flight/FlightProductAuthorization.sol +44 -0
- package/contracts/examples/flight/FlightUSD.sol +26 -0
- package/contracts/examples/flight/originalV1.sol +396 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +39 -8
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
- package/contracts/examples/unpermissioned/SimplePool.sol +32 -6
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +132 -46
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BaseStore.sol +93 -0
- package/contracts/instance/BundleSet.sol +42 -38
- package/contracts/instance/IBaseStore.sol +37 -0
- package/contracts/instance/IInstance.sol +109 -19
- package/contracts/instance/IInstanceService.sol +61 -14
- package/contracts/instance/Instance.sol +184 -65
- package/contracts/instance/InstanceAdmin.sol +221 -193
- package/contracts/instance/InstanceAuthorizationV3.sol +153 -72
- package/contracts/instance/InstanceReader.sol +447 -314
- package/contracts/instance/InstanceService.sol +315 -214
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +152 -116
- package/contracts/instance/ProductStore.sol +290 -0
- package/contracts/instance/RiskSet.sol +126 -0
- package/contracts/instance/TargetNames.sol +10 -0
- package/contracts/instance/base/BalanceStore.sol +4 -6
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +6 -8
- package/contracts/instance/base/ObjectSet.sol +31 -33
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +19 -10
- package/contracts/instance/module/IDistribution.sol +21 -8
- package/contracts/instance/module/IPolicy.sol +28 -7
- package/contracts/instance/module/IRisk.sol +5 -0
- package/contracts/oracle/BasicOracle.sol +3 -6
- package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/IOracleService.sol +12 -12
- package/contracts/oracle/Oracle.sol +5 -9
- package/contracts/oracle/OracleService.sol +98 -79
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPool.sol +26 -19
- package/contracts/pool/BasicPoolAuthorization.sol +34 -10
- package/contracts/pool/BundleService.sol +75 -182
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +28 -55
- package/contracts/pool/IPoolComponent.sol +1 -7
- package/contracts/pool/IPoolService.sol +65 -62
- package/contracts/pool/Pool.sol +111 -115
- package/contracts/pool/PoolLib.sol +341 -0
- package/contracts/pool/PoolService.sol +299 -229
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +93 -25
- package/contracts/product/ApplicationServiceManager.sol +1 -1
- package/contracts/product/BasicProduct.sol +10 -15
- package/contracts/product/BasicProductAuthorization.sol +33 -11
- package/contracts/product/ClaimService.sol +221 -207
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IApplicationService.sol +28 -3
- package/contracts/product/IClaimService.sol +18 -5
- package/contracts/product/IPolicyService.sol +34 -12
- package/contracts/product/IPricingService.sol +1 -0
- package/contracts/product/IProductComponent.sol +4 -1
- package/contracts/product/IRiskService.sol +25 -10
- package/contracts/product/PolicyService.sol +260 -306
- package/contracts/product/PolicyServiceLib.sol +139 -0
- package/contracts/product/PolicyServiceManager.sol +1 -1
- package/contracts/product/PricingService.sol +52 -46
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +106 -70
- package/contracts/product/RiskService.sol +130 -37
- package/contracts/product/RiskServiceManager.sol +1 -1
- package/contracts/registry/ChainNft.sol +4 -2
- package/contracts/registry/IRegistry.sol +25 -24
- package/contracts/registry/IRelease.sol +29 -0
- package/contracts/registry/Registry.sol +31 -12
- package/contracts/registry/RegistryAdmin.sol +94 -369
- package/contracts/registry/RegistryAuthorization.sol +337 -0
- package/contracts/registry/RegistryService.sol +4 -4
- package/contracts/registry/RegistryServiceManager.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +199 -0
- package/contracts/registry/ReleaseLifecycle.sol +2 -0
- package/contracts/registry/ReleaseRegistry.sol +158 -134
- package/contracts/registry/ServiceAuthorizationV3.sol +200 -52
- package/contracts/registry/TokenRegistry.sol +61 -59
- package/contracts/shared/Component.sol +58 -119
- package/contracts/shared/ComponentService.sol +400 -395
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ContractLib.sol +277 -3
- package/contracts/shared/IComponent.sol +2 -18
- package/contracts/shared/IComponentService.sol +28 -38
- package/contracts/shared/IInstanceLinkedComponent.sol +0 -11
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +15 -5
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InitializableERC165.sol +9 -1
- package/contracts/shared/InstanceLinkedComponent.sol +63 -44
- package/contracts/shared/NftOwnable.sol +8 -6
- package/contracts/shared/PolicyHolder.sol +4 -3
- package/contracts/shared/Registerable.sol +41 -20
- package/contracts/shared/RegistryLinked.sol +7 -13
- package/contracts/shared/Service.sol +13 -30
- package/contracts/shared/TokenHandler.sol +264 -105
- package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
- package/contracts/staking/IStaking.sol +270 -72
- package/contracts/staking/IStakingService.sol +45 -75
- package/contracts/staking/ITargetLimitHandler.sol +17 -0
- package/contracts/staking/Staking.sol +522 -222
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +55 -84
- package/contracts/staking/StakingManager.sol +4 -3
- package/contracts/staking/StakingReader.sol +58 -77
- package/contracts/staking/StakingService.sol +62 -148
- package/contracts/staking/StakingServiceManager.sol +6 -4
- package/contracts/staking/StakingStore.sol +1093 -330
- package/contracts/staking/TargetHandler.sol +132 -0
- package/contracts/staking/TargetManagerLib.sol +69 -46
- package/contracts/type/Amount.sol +4 -0
- package/contracts/type/Blocknumber.sol +17 -22
- package/contracts/type/ChainId.sol +101 -0
- package/contracts/type/Fee.sol +8 -8
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +6 -0
- package/contracts/type/ObjectType.sol +70 -68
- package/contracts/type/Referral.sol +6 -0
- package/contracts/type/RequestIdSet.sol +62 -0
- package/contracts/type/RiskId.sol +26 -8
- package/contracts/type/RoleId.sol +63 -45
- package/contracts/type/Seconds.sol +23 -0
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/String.sol +42 -0
- package/contracts/type/Timestamp.sol +14 -8
- package/contracts/type/UFixed.sol +35 -127
- package/contracts/type/Version.sol +54 -5
- package/contracts/upgradeability/IVersionable.sol +3 -0
- package/contracts/upgradeability/ProxyManager.sol +27 -13
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
- package/contracts/upgradeability/Versionable.sol +6 -3
- package/package.json +4 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
- package/artifacts/contracts/shared/ComponentServiceHelperLib.sol/ComponentServiceHelperLib.dbg.json +0 -4
- package/artifacts/contracts/shared/ComponentServiceHelperLib.sol/ComponentServiceHelperLib.json +0 -206
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -474
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +0 -538
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
- package/contracts/authorization/ReleaseAccessManager.sol +0 -38
- package/contracts/instance/module/IAccess.sol +0 -46
- package/contracts/shared/ComponentServiceHelperLib.sol +0 -118
- package/contracts/shared/ComponentVerifyingService.sol +0 -126
- package/contracts/shared/IKeyValueStore.sol +0 -54
- package/contracts/shared/KeyValueStore.sol +0 -131
- package/contracts/staking/StakingLifecycle.sol +0 -23
| @@ -60,129 +60,108 @@ | |
| 60 60 | 
             
                {
         | 
| 61 61 | 
             
                  "inputs": [
         | 
| 62 62 | 
             
                    {
         | 
| 63 | 
            -
                      "internalType": " | 
| 64 | 
            -
                      "name": " | 
| 65 | 
            -
                      "type": " | 
| 66 | 
            -
                    },
         | 
| 67 | 
            -
                    {
         | 
| 68 | 
            -
                      "internalType": "ObjectType",
         | 
| 69 | 
            -
                      "name": "objectType",
         | 
| 70 | 
            -
                      "type": "uint8"
         | 
| 71 | 
            -
                    },
         | 
| 72 | 
            -
                    {
         | 
| 73 | 
            -
                      "internalType": "StateId",
         | 
| 74 | 
            -
                      "name": "actual",
         | 
| 75 | 
            -
                      "type": "uint8"
         | 
| 63 | 
            +
                      "internalType": "Seconds",
         | 
| 64 | 
            +
                      "name": "minLockingPeriod",
         | 
| 65 | 
            +
                      "type": "uint40"
         | 
| 76 66 | 
             
                    },
         | 
| 77 67 | 
             
                    {
         | 
| 78 | 
            -
                      "internalType": " | 
| 79 | 
            -
                      "name": " | 
| 80 | 
            -
                      "type": " | 
| 68 | 
            +
                      "internalType": "Seconds",
         | 
| 69 | 
            +
                      "name": "maxLockingPeriod",
         | 
| 70 | 
            +
                      "type": "uint40"
         | 
| 81 71 | 
             
                    }
         | 
| 82 72 | 
             
                  ],
         | 
| 83 | 
            -
                  "name": " | 
| 73 | 
            +
                  "name": "ErrorStakingLockingPeriodsInvalid",
         | 
| 84 74 | 
             
                  "type": "error"
         | 
| 85 75 | 
             
                },
         | 
| 86 76 | 
             
                {
         | 
| 87 77 | 
             
                  "inputs": [
         | 
| 88 78 | 
             
                    {
         | 
| 89 | 
            -
                      "internalType": " | 
| 90 | 
            -
                      "name": " | 
| 91 | 
            -
                      "type": " | 
| 92 | 
            -
                    },
         | 
| 93 | 
            -
                    {
         | 
| 94 | 
            -
                      "internalType": "ObjectType",
         | 
| 95 | 
            -
                      "name": "objectType",
         | 
| 96 | 
            -
                      "type": "uint8"
         | 
| 97 | 
            -
                    },
         | 
| 98 | 
            -
                    {
         | 
| 99 | 
            -
                      "internalType": "StateId",
         | 
| 100 | 
            -
                      "name": "fromStateId",
         | 
| 101 | 
            -
                      "type": "uint8"
         | 
| 79 | 
            +
                      "internalType": "UFixed",
         | 
| 80 | 
            +
                      "name": "minRewardRate",
         | 
| 81 | 
            +
                      "type": "uint160"
         | 
| 102 82 | 
             
                    },
         | 
| 103 83 | 
             
                    {
         | 
| 104 | 
            -
                      "internalType": " | 
| 105 | 
            -
                      "name": " | 
| 106 | 
            -
                      "type": " | 
| 84 | 
            +
                      "internalType": "UFixed",
         | 
| 85 | 
            +
                      "name": "maxRewardRate",
         | 
| 86 | 
            +
                      "type": "uint160"
         | 
| 107 87 | 
             
                    }
         | 
| 108 88 | 
             
                  ],
         | 
| 109 | 
            -
                  "name": " | 
| 89 | 
            +
                  "name": "ErrorStakingRewardRatesInvalid",
         | 
| 110 90 | 
             
                  "type": "error"
         | 
| 111 91 | 
             
                },
         | 
| 112 92 | 
             
                {
         | 
| 113 93 | 
             
                  "inputs": [
         | 
| 114 94 | 
             
                    {
         | 
| 115 | 
            -
                      "internalType": " | 
| 116 | 
            -
                      "name": " | 
| 117 | 
            -
                      "type": " | 
| 95 | 
            +
                      "internalType": "NftId",
         | 
| 96 | 
            +
                      "name": "stakeNftId",
         | 
| 97 | 
            +
                      "type": "uint96"
         | 
| 118 98 | 
             
                    },
         | 
| 119 99 | 
             
                    {
         | 
| 120 | 
            -
                      "internalType": " | 
| 121 | 
            -
                      "name": " | 
| 122 | 
            -
                      "type": " | 
| 100 | 
            +
                      "internalType": "Timestamp",
         | 
| 101 | 
            +
                      "name": "lockedUntil",
         | 
| 102 | 
            +
                      "type": "uint40"
         | 
| 123 103 | 
             
                    }
         | 
| 124 104 | 
             
                  ],
         | 
| 125 | 
            -
                  "name": " | 
| 105 | 
            +
                  "name": "ErrorStakingStakeLocked",
         | 
| 126 106 | 
             
                  "type": "error"
         | 
| 127 107 | 
             
                },
         | 
| 128 108 | 
             
                {
         | 
| 129 109 | 
             
                  "inputs": [
         | 
| 130 110 | 
             
                    {
         | 
| 131 | 
            -
                      "internalType": " | 
| 132 | 
            -
                      "name": " | 
| 133 | 
            -
                      "type": " | 
| 134 | 
            -
                    }
         | 
| 135 | 
            -
                  ],
         | 
| 136 | 
            -
                  "name": "ErrorKeyValueStoreNoLifecycle",
         | 
| 137 | 
            -
                  "type": "error"
         | 
| 138 | 
            -
                },
         | 
| 139 | 
            -
                {
         | 
| 140 | 
            -
                  "inputs": [
         | 
| 111 | 
            +
                      "internalType": "Amount",
         | 
| 112 | 
            +
                      "name": "minStakingAmount",
         | 
| 113 | 
            +
                      "type": "uint96"
         | 
| 114 | 
            +
                    },
         | 
| 141 115 | 
             
                    {
         | 
| 142 | 
            -
                      "internalType": " | 
| 143 | 
            -
                      "name": " | 
| 144 | 
            -
                      "type": " | 
| 116 | 
            +
                      "internalType": "Amount",
         | 
| 117 | 
            +
                      "name": "maxStakingAmount",
         | 
| 118 | 
            +
                      "type": "uint96"
         | 
| 145 119 | 
             
                    }
         | 
| 146 120 | 
             
                  ],
         | 
| 147 | 
            -
                  "name": " | 
| 121 | 
            +
                  "name": "ErrorStakingStakingAmountsInvalid",
         | 
| 148 122 | 
             
                  "type": "error"
         | 
| 149 123 | 
             
                },
         | 
| 150 124 | 
             
                {
         | 
| 151 125 | 
             
                  "inputs": [
         | 
| 152 126 | 
             
                    {
         | 
| 153 | 
            -
                      "internalType": " | 
| 154 | 
            -
                      "name": " | 
| 155 | 
            -
                      "type": " | 
| 127 | 
            +
                      "internalType": "NftId",
         | 
| 128 | 
            +
                      "name": "targetNftId",
         | 
| 129 | 
            +
                      "type": "uint96"
         | 
| 156 130 | 
             
                    }
         | 
| 157 131 | 
             
                  ],
         | 
| 158 | 
            -
                  "name": " | 
| 132 | 
            +
                  "name": "ErrorStakingStoreLimitNotInitialized",
         | 
| 159 133 | 
             
                  "type": "error"
         | 
| 160 134 | 
             
                },
         | 
| 161 135 | 
             
                {
         | 
| 162 136 | 
             
                  "inputs": [
         | 
| 163 137 | 
             
                    {
         | 
| 164 | 
            -
                      "internalType": " | 
| 165 | 
            -
                      "name": " | 
| 166 | 
            -
                      "type": " | 
| 138 | 
            +
                      "internalType": "NftId",
         | 
| 139 | 
            +
                      "name": "targetNftId",
         | 
| 140 | 
            +
                      "type": "uint96"
         | 
| 167 141 | 
             
                    }
         | 
| 168 142 | 
             
                  ],
         | 
| 169 | 
            -
                  "name": " | 
| 143 | 
            +
                  "name": "ErrorStakingStoreNotTarget",
         | 
| 170 144 | 
             
                  "type": "error"
         | 
| 171 145 | 
             
                },
         | 
| 172 146 | 
             
                {
         | 
| 173 147 | 
             
                  "inputs": [
         | 
| 174 148 | 
             
                    {
         | 
| 175 | 
            -
                      "internalType": " | 
| 176 | 
            -
                      "name": " | 
| 177 | 
            -
                      "type": " | 
| 149 | 
            +
                      "internalType": "NftId",
         | 
| 150 | 
            +
                      "name": "targetNftId",
         | 
| 151 | 
            +
                      "type": "uint96"
         | 
| 178 152 | 
             
                    },
         | 
| 179 153 | 
             
                    {
         | 
| 180 | 
            -
                      "internalType": " | 
| 181 | 
            -
                      "name": " | 
| 182 | 
            -
                      "type": " | 
| 154 | 
            +
                      "internalType": "Amount",
         | 
| 155 | 
            +
                      "name": "reserveAmount",
         | 
| 156 | 
            +
                      "type": "uint96"
         | 
| 157 | 
            +
                    },
         | 
| 158 | 
            +
                    {
         | 
| 159 | 
            +
                      "internalType": "Amount",
         | 
| 160 | 
            +
                      "name": "claimedAmount",
         | 
| 161 | 
            +
                      "type": "uint96"
         | 
| 183 162 | 
             
                    }
         | 
| 184 163 | 
             
                  ],
         | 
| 185 | 
            -
                  "name": " | 
| 164 | 
            +
                  "name": "ErrorStakingStoreRewardReservesInsufficient",
         | 
| 186 165 | 
             
                  "type": "error"
         | 
| 187 166 | 
             
                },
         | 
| 188 167 | 
             
                {
         | 
| @@ -193,29 +172,29 @@ | |
| 193 172 | 
             
                      "type": "uint96"
         | 
| 194 173 | 
             
                    }
         | 
| 195 174 | 
             
                  ],
         | 
| 196 | 
            -
                  "name": " | 
| 175 | 
            +
                  "name": "ErrorStakingStoreStakeBalanceAlreadyInitialized",
         | 
| 197 176 | 
             
                  "type": "error"
         | 
| 198 177 | 
             
                },
         | 
| 199 178 | 
             
                {
         | 
| 200 179 | 
             
                  "inputs": [
         | 
| 201 180 | 
             
                    {
         | 
| 202 181 | 
             
                      "internalType": "NftId",
         | 
| 203 | 
            -
                      "name": " | 
| 182 | 
            +
                      "name": "nftI",
         | 
| 204 183 | 
             
                      "type": "uint96"
         | 
| 205 184 | 
             
                    }
         | 
| 206 185 | 
             
                  ],
         | 
| 207 | 
            -
                  "name": " | 
| 186 | 
            +
                  "name": "ErrorStakingStoreStakeBalanceNotInitialized",
         | 
| 208 187 | 
             
                  "type": "error"
         | 
| 209 188 | 
             
                },
         | 
| 210 189 | 
             
                {
         | 
| 211 190 | 
             
                  "inputs": [
         | 
| 212 191 | 
             
                    {
         | 
| 213 192 | 
             
                      "internalType": "NftId",
         | 
| 214 | 
            -
                      "name": " | 
| 193 | 
            +
                      "name": "nftId",
         | 
| 215 194 | 
             
                      "type": "uint96"
         | 
| 216 195 | 
             
                    }
         | 
| 217 196 | 
             
                  ],
         | 
| 218 | 
            -
                  "name": " | 
| 197 | 
            +
                  "name": "ErrorStakingStoreStakeNotInitialized",
         | 
| 219 198 | 
             
                  "type": "error"
         | 
| 220 199 | 
             
                },
         | 
| 221 200 | 
             
                {
         | 
| @@ -227,125 +206,175 @@ | |
| 227 206 | 
             
                    },
         | 
| 228 207 | 
             
                    {
         | 
| 229 208 | 
             
                      "internalType": "Amount",
         | 
| 230 | 
            -
                      "name": " | 
| 209 | 
            +
                      "name": "stakeLimitAmount",
         | 
| 231 210 | 
             
                      "type": "uint96"
         | 
| 232 211 | 
             
                    },
         | 
| 233 212 | 
             
                    {
         | 
| 234 213 | 
             
                      "internalType": "Amount",
         | 
| 235 | 
            -
                      "name": " | 
| 214 | 
            +
                      "name": "newIStaking",
         | 
| 236 215 | 
             
                      "type": "uint96"
         | 
| 237 216 | 
             
                    }
         | 
| 238 217 | 
             
                  ],
         | 
| 239 | 
            -
                  "name": " | 
| 218 | 
            +
                  "name": "ErrorStakingStoreStakesExceedingTargetMaxAmount",
         | 
| 240 219 | 
             
                  "type": "error"
         | 
| 241 220 | 
             
                },
         | 
| 242 221 | 
             
                {
         | 
| 243 222 | 
             
                  "inputs": [
         | 
| 244 223 | 
             
                    {
         | 
| 245 224 | 
             
                      "internalType": "NftId",
         | 
| 246 | 
            -
                      "name": " | 
| 225 | 
            +
                      "name": "targetNftId",
         | 
| 247 226 | 
             
                      "type": "uint96"
         | 
| 248 227 | 
             
                    }
         | 
| 249 228 | 
             
                  ],
         | 
| 250 | 
            -
                  "name": " | 
| 229 | 
            +
                  "name": "ErrorStakingStoreTargetNotInitialized",
         | 
| 251 230 | 
             
                  "type": "error"
         | 
| 252 231 | 
             
                },
         | 
| 253 232 | 
             
                {
         | 
| 254 | 
            -
                  "inputs": [ | 
| 255 | 
            -
             | 
| 233 | 
            +
                  "inputs": [
         | 
| 234 | 
            +
                    {
         | 
| 235 | 
            +
                      "internalType": "ChainId",
         | 
| 236 | 
            +
                      "name": "chainId",
         | 
| 237 | 
            +
                      "type": "uint96"
         | 
| 238 | 
            +
                    },
         | 
| 239 | 
            +
                    {
         | 
| 240 | 
            +
                      "internalType": "address",
         | 
| 241 | 
            +
                      "name": "token",
         | 
| 242 | 
            +
                      "type": "address"
         | 
| 243 | 
            +
                    }
         | 
| 244 | 
            +
                  ],
         | 
| 245 | 
            +
                  "name": "ErrorStakingStoreTokenAlreadyAdded",
         | 
| 256 246 | 
             
                  "type": "error"
         | 
| 257 247 | 
             
                },
         | 
| 258 248 | 
             
                {
         | 
| 259 | 
            -
                  "anonymous": false,
         | 
| 260 249 | 
             
                  "inputs": [
         | 
| 261 250 | 
             
                    {
         | 
| 262 | 
            -
                      " | 
| 251 | 
            +
                      "internalType": "ChainId",
         | 
| 252 | 
            +
                      "name": "chainId",
         | 
| 253 | 
            +
                      "type": "uint96"
         | 
| 254 | 
            +
                    },
         | 
| 255 | 
            +
                    {
         | 
| 263 256 | 
             
                      "internalType": "address",
         | 
| 264 | 
            -
                      "name": " | 
| 257 | 
            +
                      "name": "token",
         | 
| 265 258 | 
             
                      "type": "address"
         | 
| 266 259 | 
             
                    }
         | 
| 267 260 | 
             
                  ],
         | 
| 268 | 
            -
                  "name": " | 
| 269 | 
            -
                  "type": " | 
| 261 | 
            +
                  "name": "ErrorStakingStoreTokenNotRegistered",
         | 
| 262 | 
            +
                  "type": "error"
         | 
| 270 263 | 
             
                },
         | 
| 271 264 | 
             
                {
         | 
| 272 | 
            -
                  "anonymous": false,
         | 
| 273 265 | 
             
                  "inputs": [
         | 
| 274 266 | 
             
                    {
         | 
| 275 | 
            -
                      " | 
| 276 | 
            -
                      " | 
| 277 | 
            -
                      " | 
| 278 | 
            -
                      "type": "uint8"
         | 
| 267 | 
            +
                      "internalType": "ChainId",
         | 
| 268 | 
            +
                      "name": "chainId",
         | 
| 269 | 
            +
                      "type": "uint96"
         | 
| 279 270 | 
             
                    },
         | 
| 280 271 | 
             
                    {
         | 
| 281 | 
            -
                      " | 
| 282 | 
            -
                      " | 
| 283 | 
            -
                      " | 
| 284 | 
            -
             | 
| 285 | 
            -
             | 
| 272 | 
            +
                      "internalType": "address",
         | 
| 273 | 
            +
                      "name": "token",
         | 
| 274 | 
            +
                      "type": "address"
         | 
| 275 | 
            +
                    }
         | 
| 276 | 
            +
                  ],
         | 
| 277 | 
            +
                  "name": "ErrorStakingStoreTokenUnknown",
         | 
| 278 | 
            +
                  "type": "error"
         | 
| 279 | 
            +
                },
         | 
| 280 | 
            +
                {
         | 
| 281 | 
            +
                  "inputs": [
         | 
| 286 282 | 
             
                    {
         | 
| 287 | 
            -
                      " | 
| 288 | 
            -
                      " | 
| 289 | 
            -
                      " | 
| 290 | 
            -
                      "type": "uint8"
         | 
| 283 | 
            +
                      "internalType": "NftId",
         | 
| 284 | 
            +
                      "name": "nftId",
         | 
| 285 | 
            +
                      "type": "uint96"
         | 
| 291 286 | 
             
                    },
         | 
| 292 287 | 
             
                    {
         | 
| 293 | 
            -
                      "indexed": false,
         | 
| 294 288 | 
             
                      "internalType": "address",
         | 
| 295 | 
            -
                      "name": " | 
| 289 | 
            +
                      "name": "token",
         | 
| 296 290 | 
             
                      "type": "address"
         | 
| 291 | 
            +
                    }
         | 
| 292 | 
            +
                  ],
         | 
| 293 | 
            +
                  "name": "ErrorStakingStoreTvlBalanceAlreadyInitialized",
         | 
| 294 | 
            +
                  "type": "error"
         | 
| 295 | 
            +
                },
         | 
| 296 | 
            +
                {
         | 
| 297 | 
            +
                  "inputs": [
         | 
| 298 | 
            +
                    {
         | 
| 299 | 
            +
                      "internalType": "NftId",
         | 
| 300 | 
            +
                      "name": "nftId",
         | 
| 301 | 
            +
                      "type": "uint96"
         | 
| 297 302 | 
             
                    },
         | 
| 298 303 | 
             
                    {
         | 
| 299 | 
            -
                      "indexed": false,
         | 
| 300 304 | 
             
                      "internalType": "address",
         | 
| 301 | 
            -
                      "name": " | 
| 305 | 
            +
                      "name": "token",
         | 
| 302 306 | 
             
                      "type": "address"
         | 
| 303 307 | 
             
                    }
         | 
| 304 308 | 
             
                  ],
         | 
| 305 | 
            -
                  "name": " | 
| 306 | 
            -
                  "type": " | 
| 309 | 
            +
                  "name": "ErrorStakingStoreTvlBalanceNotInitialized",
         | 
| 310 | 
            +
                  "type": "error"
         | 
| 307 311 | 
             
                },
         | 
| 308 312 | 
             
                {
         | 
| 309 | 
            -
                  "anonymous": false,
         | 
| 310 313 | 
             
                  "inputs": [
         | 
| 311 314 | 
             
                    {
         | 
| 312 | 
            -
                      "indexed": false,
         | 
| 313 315 | 
             
                      "internalType": "ObjectType",
         | 
| 314 | 
            -
                      "name": " | 
| 316 | 
            +
                      "name": "targetType",
         | 
| 315 317 | 
             
                      "type": "uint8"
         | 
| 316 | 
            -
                    } | 
| 318 | 
            +
                    }
         | 
| 319 | 
            +
                  ],
         | 
| 320 | 
            +
                  "name": "ErrorStakingSupportTypeInvalid",
         | 
| 321 | 
            +
                  "type": "error"
         | 
| 322 | 
            +
                },
         | 
| 323 | 
            +
                {
         | 
| 324 | 
            +
                  "inputs": [
         | 
| 317 325 | 
             
                    {
         | 
| 318 | 
            -
                      " | 
| 319 | 
            -
                      " | 
| 320 | 
            -
                      " | 
| 321 | 
            -
                      "type": "bytes31"
         | 
| 326 | 
            +
                      "internalType": "NftId",
         | 
| 327 | 
            +
                      "name": "targetNftId",
         | 
| 328 | 
            +
                      "type": "uint96"
         | 
| 322 329 | 
             
                    },
         | 
| 323 330 | 
             
                    {
         | 
| 324 | 
            -
                      " | 
| 325 | 
            -
                      " | 
| 326 | 
            -
                      " | 
| 327 | 
            -
                      "type": "uint8"
         | 
| 331 | 
            +
                      "internalType": "Amount",
         | 
| 332 | 
            +
                      "name": "stakeLimitAmount",
         | 
| 333 | 
            +
                      "type": "uint96"
         | 
| 328 334 | 
             
                    },
         | 
| 329 335 | 
             
                    {
         | 
| 330 | 
            -
                      " | 
| 331 | 
            -
                      " | 
| 332 | 
            -
                      " | 
| 333 | 
            -
             | 
| 334 | 
            -
             | 
| 336 | 
            +
                      "internalType": "Amount",
         | 
| 337 | 
            +
                      "name": "stakedAmount",
         | 
| 338 | 
            +
                      "type": "uint96"
         | 
| 339 | 
            +
                    }
         | 
| 340 | 
            +
                  ],
         | 
| 341 | 
            +
                  "name": "ErrorStakingTargetMaxStakedAmountExceeded",
         | 
| 342 | 
            +
                  "type": "error"
         | 
| 343 | 
            +
                },
         | 
| 344 | 
            +
                {
         | 
| 345 | 
            +
                  "inputs": [],
         | 
| 346 | 
            +
                  "name": "InvalidInitialization",
         | 
| 347 | 
            +
                  "type": "error"
         | 
| 348 | 
            +
                },
         | 
| 349 | 
            +
                {
         | 
| 350 | 
            +
                  "inputs": [],
         | 
| 351 | 
            +
                  "name": "NotInitializing",
         | 
| 352 | 
            +
                  "type": "error"
         | 
| 353 | 
            +
                },
         | 
| 354 | 
            +
                {
         | 
| 355 | 
            +
                  "anonymous": false,
         | 
| 356 | 
            +
                  "inputs": [
         | 
| 335 357 | 
             
                    {
         | 
| 336 358 | 
             
                      "indexed": false,
         | 
| 337 359 | 
             
                      "internalType": "address",
         | 
| 338 | 
            -
                      "name": " | 
| 360 | 
            +
                      "name": "authority",
         | 
| 339 361 | 
             
                      "type": "address"
         | 
| 340 | 
            -
                    } | 
| 362 | 
            +
                    }
         | 
| 363 | 
            +
                  ],
         | 
| 364 | 
            +
                  "name": "AuthorityUpdated",
         | 
| 365 | 
            +
                  "type": "event"
         | 
| 366 | 
            +
                },
         | 
| 367 | 
            +
                {
         | 
| 368 | 
            +
                  "anonymous": false,
         | 
| 369 | 
            +
                  "inputs": [
         | 
| 341 370 | 
             
                    {
         | 
| 342 371 | 
             
                      "indexed": false,
         | 
| 343 | 
            -
                      "internalType": " | 
| 344 | 
            -
                      "name": " | 
| 345 | 
            -
                      "type": " | 
| 372 | 
            +
                      "internalType": "uint64",
         | 
| 373 | 
            +
                      "name": "version",
         | 
| 374 | 
            +
                      "type": "uint64"
         | 
| 346 375 | 
             
                    }
         | 
| 347 376 | 
             
                  ],
         | 
| 348 | 
            -
                  "name": " | 
| 377 | 
            +
                  "name": "Initialized",
         | 
| 349 378 | 
             
                  "type": "event"
         | 
| 350 379 | 
             
                },
         | 
| 351 380 | 
             
                {
         | 
| @@ -360,23 +389,23 @@ | |
| 360 389 | 
             
                    {
         | 
| 361 390 | 
             
                      "indexed": false,
         | 
| 362 391 | 
             
                      "internalType": "Amount",
         | 
| 363 | 
            -
                      "name": " | 
| 392 | 
            +
                      "name": "marginAmount",
         | 
| 364 393 | 
             
                      "type": "uint96"
         | 
| 365 394 | 
             
                    },
         | 
| 366 395 | 
             
                    {
         | 
| 367 396 | 
             
                      "indexed": false,
         | 
| 368 397 | 
             
                      "internalType": "Amount",
         | 
| 369 | 
            -
                      "name": " | 
| 398 | 
            +
                      "name": "hardLimitAmount",
         | 
| 370 399 | 
             
                      "type": "uint96"
         | 
| 371 400 | 
             
                    },
         | 
| 372 401 | 
             
                    {
         | 
| 373 402 | 
             
                      "indexed": false,
         | 
| 374 403 | 
             
                      "internalType": "Blocknumber",
         | 
| 375 | 
            -
                      "name": " | 
| 376 | 
            -
                      "type": " | 
| 404 | 
            +
                      "name": "lastUpdateIn",
         | 
| 405 | 
            +
                      "type": "uint40"
         | 
| 377 406 | 
             
                    }
         | 
| 378 407 | 
             
                  ],
         | 
| 379 | 
            -
                  "name": " | 
| 408 | 
            +
                  "name": "LogStakingLimitsSet",
         | 
| 380 409 | 
             
                  "type": "event"
         | 
| 381 410 | 
             
                },
         | 
| 382 411 | 
             
                {
         | 
| @@ -394,6 +423,12 @@ | |
| 394 423 | 
             
                      "name": "dipAmount",
         | 
| 395 424 | 
             
                      "type": "uint96"
         | 
| 396 425 | 
             
                    },
         | 
| 426 | 
            +
                    {
         | 
| 427 | 
            +
                      "indexed": false,
         | 
| 428 | 
            +
                      "internalType": "address",
         | 
| 429 | 
            +
                      "name": "targetOwner",
         | 
| 430 | 
            +
                      "type": "address"
         | 
| 431 | 
            +
                    },
         | 
| 397 432 | 
             
                    {
         | 
| 398 433 | 
             
                      "indexed": false,
         | 
| 399 434 | 
             
                      "internalType": "Amount",
         | 
| @@ -403,11 +438,11 @@ | |
| 403 438 | 
             
                    {
         | 
| 404 439 | 
             
                      "indexed": false,
         | 
| 405 440 | 
             
                      "internalType": "Blocknumber",
         | 
| 406 | 
            -
                      "name": " | 
| 407 | 
            -
                      "type": " | 
| 441 | 
            +
                      "name": "lastUpdateIn",
         | 
| 442 | 
            +
                      "type": "uint40"
         | 
| 408 443 | 
             
                    }
         | 
| 409 444 | 
             
                  ],
         | 
| 410 | 
            -
                  "name": " | 
| 445 | 
            +
                  "name": "LogStakingRewardReservesRefilled",
         | 
| 411 446 | 
             
                  "type": "event"
         | 
| 412 447 | 
             
                },
         | 
| 413 448 | 
             
                {
         | 
| @@ -416,29 +451,29 @@ | |
| 416 451 | 
             
                    {
         | 
| 417 452 | 
             
                      "indexed": false,
         | 
| 418 453 | 
             
                      "internalType": "NftId",
         | 
| 419 | 
            -
                      "name": " | 
| 454 | 
            +
                      "name": "targetNftId",
         | 
| 420 455 | 
             
                      "type": "uint96"
         | 
| 421 456 | 
             
                    },
         | 
| 422 457 | 
             
                    {
         | 
| 423 458 | 
             
                      "indexed": false,
         | 
| 424 459 | 
             
                      "internalType": "Amount",
         | 
| 425 | 
            -
                      "name": " | 
| 460 | 
            +
                      "name": "dipAmount",
         | 
| 426 461 | 
             
                      "type": "uint96"
         | 
| 427 462 | 
             
                    },
         | 
| 428 463 | 
             
                    {
         | 
| 429 464 | 
             
                      "indexed": false,
         | 
| 430 465 | 
             
                      "internalType": "Amount",
         | 
| 431 | 
            -
                      "name": " | 
| 466 | 
            +
                      "name": "reserveBalance",
         | 
| 432 467 | 
             
                      "type": "uint96"
         | 
| 433 468 | 
             
                    },
         | 
| 434 469 | 
             
                    {
         | 
| 435 470 | 
             
                      "indexed": false,
         | 
| 436 471 | 
             
                      "internalType": "Blocknumber",
         | 
| 437 | 
            -
                      "name": " | 
| 438 | 
            -
                      "type": " | 
| 472 | 
            +
                      "name": "lastUpdateIn",
         | 
| 473 | 
            +
                      "type": "uint40"
         | 
| 439 474 | 
             
                    }
         | 
| 440 475 | 
             
                  ],
         | 
| 441 | 
            -
                  "name": " | 
| 476 | 
            +
                  "name": "LogStakingRewardReservesSpent",
         | 
| 442 477 | 
             
                  "type": "event"
         | 
| 443 478 | 
             
                },
         | 
| 444 479 | 
             
                {
         | 
| @@ -447,29 +482,35 @@ | |
| 447 482 | 
             
                    {
         | 
| 448 483 | 
             
                      "indexed": false,
         | 
| 449 484 | 
             
                      "internalType": "NftId",
         | 
| 450 | 
            -
                      "name": " | 
| 485 | 
            +
                      "name": "targetNftId",
         | 
| 451 486 | 
             
                      "type": "uint96"
         | 
| 452 487 | 
             
                    },
         | 
| 453 488 | 
             
                    {
         | 
| 454 489 | 
             
                      "indexed": false,
         | 
| 455 490 | 
             
                      "internalType": "Amount",
         | 
| 456 | 
            -
                      "name": " | 
| 491 | 
            +
                      "name": "dipAmount",
         | 
| 457 492 | 
             
                      "type": "uint96"
         | 
| 458 493 | 
             
                    },
         | 
| 494 | 
            +
                    {
         | 
| 495 | 
            +
                      "indexed": false,
         | 
| 496 | 
            +
                      "internalType": "address",
         | 
| 497 | 
            +
                      "name": "targetOwner",
         | 
| 498 | 
            +
                      "type": "address"
         | 
| 499 | 
            +
                    },
         | 
| 459 500 | 
             
                    {
         | 
| 460 501 | 
             
                      "indexed": false,
         | 
| 461 502 | 
             
                      "internalType": "Amount",
         | 
| 462 | 
            -
                      "name": " | 
| 503 | 
            +
                      "name": "reserveBalance",
         | 
| 463 504 | 
             
                      "type": "uint96"
         | 
| 464 505 | 
             
                    },
         | 
| 465 506 | 
             
                    {
         | 
| 466 507 | 
             
                      "indexed": false,
         | 
| 467 508 | 
             
                      "internalType": "Blocknumber",
         | 
| 468 | 
            -
                      "name": " | 
| 469 | 
            -
                      "type": " | 
| 509 | 
            +
                      "name": "lastUpdateIn",
         | 
| 510 | 
            +
                      "type": "uint40"
         | 
| 470 511 | 
             
                    }
         | 
| 471 512 | 
             
                  ],
         | 
| 472 | 
            -
                  "name": " | 
| 513 | 
            +
                  "name": "LogStakingRewardReservesWithdrawn",
         | 
| 473 514 | 
             
                  "type": "event"
         | 
| 474 515 | 
             
                },
         | 
| 475 516 | 
             
                {
         | 
| @@ -478,41 +519,41 @@ | |
| 478 519 | 
             
                    {
         | 
| 479 520 | 
             
                      "indexed": false,
         | 
| 480 521 | 
             
                      "internalType": "NftId",
         | 
| 481 | 
            -
                      "name": " | 
| 522 | 
            +
                      "name": "stakeNftId",
         | 
| 482 523 | 
             
                      "type": "uint96"
         | 
| 483 524 | 
             
                    },
         | 
| 484 525 | 
             
                    {
         | 
| 485 526 | 
             
                      "indexed": false,
         | 
| 486 527 | 
             
                      "internalType": "Amount",
         | 
| 487 | 
            -
                      "name": " | 
| 528 | 
            +
                      "name": "claimedAmount",
         | 
| 488 529 | 
             
                      "type": "uint96"
         | 
| 489 530 | 
             
                    },
         | 
| 490 531 | 
             
                    {
         | 
| 491 532 | 
             
                      "indexed": false,
         | 
| 492 533 | 
             
                      "internalType": "Amount",
         | 
| 493 | 
            -
                      "name": " | 
| 534 | 
            +
                      "name": "stakeBalance",
         | 
| 494 535 | 
             
                      "type": "uint96"
         | 
| 495 536 | 
             
                    },
         | 
| 496 537 | 
             
                    {
         | 
| 497 538 | 
             
                      "indexed": false,
         | 
| 498 539 | 
             
                      "internalType": "Amount",
         | 
| 499 | 
            -
                      "name": " | 
| 540 | 
            +
                      "name": "rewardBalance",
         | 
| 500 541 | 
             
                      "type": "uint96"
         | 
| 501 542 | 
             
                    },
         | 
| 502 543 | 
             
                    {
         | 
| 503 544 | 
             
                      "indexed": false,
         | 
| 504 | 
            -
                      "internalType": " | 
| 505 | 
            -
                      "name": " | 
| 506 | 
            -
                      "type": " | 
| 545 | 
            +
                      "internalType": "Timestamp",
         | 
| 546 | 
            +
                      "name": "lockedUntil",
         | 
| 547 | 
            +
                      "type": "uint40"
         | 
| 507 548 | 
             
                    },
         | 
| 508 549 | 
             
                    {
         | 
| 509 550 | 
             
                      "indexed": false,
         | 
| 510 551 | 
             
                      "internalType": "Blocknumber",
         | 
| 511 | 
            -
                      "name": " | 
| 512 | 
            -
                      "type": " | 
| 552 | 
            +
                      "name": "lastUpdateIn",
         | 
| 553 | 
            +
                      "type": "uint40"
         | 
| 513 554 | 
             
                    }
         | 
| 514 555 | 
             
                  ],
         | 
| 515 | 
            -
                  "name": " | 
| 556 | 
            +
                  "name": "LogStakingRewardsClaimed",
         | 
| 516 557 | 
             
                  "type": "event"
         | 
| 517 558 | 
             
                },
         | 
| 518 559 | 
             
                {
         | 
| @@ -521,29 +562,41 @@ | |
| 521 562 | 
             
                    {
         | 
| 522 563 | 
             
                      "indexed": false,
         | 
| 523 564 | 
             
                      "internalType": "NftId",
         | 
| 524 | 
            -
                      "name": " | 
| 565 | 
            +
                      "name": "stakeNftId",
         | 
| 525 566 | 
             
                      "type": "uint96"
         | 
| 526 567 | 
             
                    },
         | 
| 527 568 | 
             
                    {
         | 
| 528 569 | 
             
                      "indexed": false,
         | 
| 529 570 | 
             
                      "internalType": "Amount",
         | 
| 530 | 
            -
                      "name": " | 
| 571 | 
            +
                      "name": "restakedAmount",
         | 
| 531 572 | 
             
                      "type": "uint96"
         | 
| 532 573 | 
             
                    },
         | 
| 533 574 | 
             
                    {
         | 
| 534 575 | 
             
                      "indexed": false,
         | 
| 535 576 | 
             
                      "internalType": "Amount",
         | 
| 536 | 
            -
                      "name": " | 
| 577 | 
            +
                      "name": "stakeBalance",
         | 
| 537 578 | 
             
                      "type": "uint96"
         | 
| 538 579 | 
             
                    },
         | 
| 539 580 | 
             
                    {
         | 
| 540 581 | 
             
                      "indexed": false,
         | 
| 541 | 
            -
                      "internalType": " | 
| 542 | 
            -
                      "name": " | 
| 543 | 
            -
                      "type": " | 
| 544 | 
            -
                    }
         | 
| 545 | 
            -
             | 
| 546 | 
            -
             | 
| 582 | 
            +
                      "internalType": "Amount",
         | 
| 583 | 
            +
                      "name": "rewardBalance",
         | 
| 584 | 
            +
                      "type": "uint96"
         | 
| 585 | 
            +
                    },
         | 
| 586 | 
            +
                    {
         | 
| 587 | 
            +
                      "indexed": false,
         | 
| 588 | 
            +
                      "internalType": "Timestamp",
         | 
| 589 | 
            +
                      "name": "lockedUntil",
         | 
| 590 | 
            +
                      "type": "uint40"
         | 
| 591 | 
            +
                    },
         | 
| 592 | 
            +
                    {
         | 
| 593 | 
            +
                      "indexed": false,
         | 
| 594 | 
            +
                      "internalType": "Blocknumber",
         | 
| 595 | 
            +
                      "name": "lastUpdateIn",
         | 
| 596 | 
            +
                      "type": "uint40"
         | 
| 597 | 
            +
                    }
         | 
| 598 | 
            +
                  ],
         | 
| 599 | 
            +
                  "name": "LogStakingRewardsRestaked",
         | 
| 547 600 | 
             
                  "type": "event"
         | 
| 548 601 | 
             
                },
         | 
| 549 602 | 
             
                {
         | 
| @@ -552,29 +605,35 @@ | |
| 552 605 | 
             
                    {
         | 
| 553 606 | 
             
                      "indexed": false,
         | 
| 554 607 | 
             
                      "internalType": "NftId",
         | 
| 555 | 
            -
                      "name": " | 
| 608 | 
            +
                      "name": "stakeNftId",
         | 
| 556 609 | 
             
                      "type": "uint96"
         | 
| 557 610 | 
             
                    },
         | 
| 558 611 | 
             
                    {
         | 
| 559 612 | 
             
                      "indexed": false,
         | 
| 560 | 
            -
                      "internalType": " | 
| 561 | 
            -
                      "name": " | 
| 613 | 
            +
                      "internalType": "NftId",
         | 
| 614 | 
            +
                      "name": "targetNftId",
         | 
| 562 615 | 
             
                      "type": "uint96"
         | 
| 563 616 | 
             
                    },
         | 
| 564 617 | 
             
                    {
         | 
| 565 618 | 
             
                      "indexed": false,
         | 
| 566 619 | 
             
                      "internalType": "Amount",
         | 
| 567 | 
            -
                      "name": " | 
| 620 | 
            +
                      "name": "stakeAmount",
         | 
| 568 621 | 
             
                      "type": "uint96"
         | 
| 569 622 | 
             
                    },
         | 
| 570 623 | 
             
                    {
         | 
| 571 624 | 
             
                      "indexed": false,
         | 
| 572 | 
            -
                      "internalType": " | 
| 573 | 
            -
                      "name": " | 
| 574 | 
            -
                      "type": " | 
| 625 | 
            +
                      "internalType": "Timestamp",
         | 
| 626 | 
            +
                      "name": "lockedUntil",
         | 
| 627 | 
            +
                      "type": "uint40"
         | 
| 628 | 
            +
                    },
         | 
| 629 | 
            +
                    {
         | 
| 630 | 
            +
                      "indexed": false,
         | 
| 631 | 
            +
                      "internalType": "address",
         | 
| 632 | 
            +
                      "name": "stakeOwner",
         | 
| 633 | 
            +
                      "type": "address"
         | 
| 575 634 | 
             
                    }
         | 
| 576 635 | 
             
                  ],
         | 
| 577 | 
            -
                  "name": " | 
| 636 | 
            +
                  "name": "LogStakingStakeCreated",
         | 
| 578 637 | 
             
                  "type": "event"
         | 
| 579 638 | 
             
                },
         | 
| 580 639 | 
             
                {
         | 
| @@ -583,35 +642,41 @@ | |
| 583 642 | 
             
                    {
         | 
| 584 643 | 
             
                      "indexed": false,
         | 
| 585 644 | 
             
                      "internalType": "NftId",
         | 
| 586 | 
            -
                      "name": " | 
| 645 | 
            +
                      "name": "stakeNftId",
         | 
| 587 646 | 
             
                      "type": "uint96"
         | 
| 588 647 | 
             
                    },
         | 
| 589 648 | 
             
                    {
         | 
| 590 649 | 
             
                      "indexed": false,
         | 
| 591 | 
            -
                      "internalType": " | 
| 592 | 
            -
                      "name": " | 
| 593 | 
            -
                      "type": " | 
| 650 | 
            +
                      "internalType": "Amount",
         | 
| 651 | 
            +
                      "name": "rewardIncrementAmount",
         | 
| 652 | 
            +
                      "type": "uint96"
         | 
| 594 653 | 
             
                    },
         | 
| 595 654 | 
             
                    {
         | 
| 596 655 | 
             
                      "indexed": false,
         | 
| 597 656 | 
             
                      "internalType": "Amount",
         | 
| 598 | 
            -
                      "name": " | 
| 657 | 
            +
                      "name": "stakeBalance",
         | 
| 599 658 | 
             
                      "type": "uint96"
         | 
| 600 659 | 
             
                    },
         | 
| 601 660 | 
             
                    {
         | 
| 602 661 | 
             
                      "indexed": false,
         | 
| 603 662 | 
             
                      "internalType": "Amount",
         | 
| 604 | 
            -
                      "name": " | 
| 663 | 
            +
                      "name": "rewardBalance",
         | 
| 605 664 | 
             
                      "type": "uint96"
         | 
| 606 665 | 
             
                    },
         | 
| 666 | 
            +
                    {
         | 
| 667 | 
            +
                      "indexed": false,
         | 
| 668 | 
            +
                      "internalType": "Timestamp",
         | 
| 669 | 
            +
                      "name": "lockedUntil",
         | 
| 670 | 
            +
                      "type": "uint40"
         | 
| 671 | 
            +
                    },
         | 
| 607 672 | 
             
                    {
         | 
| 608 673 | 
             
                      "indexed": false,
         | 
| 609 674 | 
             
                      "internalType": "Blocknumber",
         | 
| 610 | 
            -
                      "name": " | 
| 611 | 
            -
                      "type": " | 
| 675 | 
            +
                      "name": "lastUpdateIn",
         | 
| 676 | 
            +
                      "type": "uint40"
         | 
| 612 677 | 
             
                    }
         | 
| 613 678 | 
             
                  ],
         | 
| 614 | 
            -
                  "name": " | 
| 679 | 
            +
                  "name": "LogStakingStakeRewardsUpdated",
         | 
| 615 680 | 
             
                  "type": "event"
         | 
| 616 681 | 
             
                },
         | 
| 617 682 | 
             
                {
         | 
| @@ -620,35 +685,60 @@ | |
| 620 685 | 
             
                    {
         | 
| 621 686 | 
             
                      "indexed": false,
         | 
| 622 687 | 
             
                      "internalType": "NftId",
         | 
| 623 | 
            -
                      "name": " | 
| 688 | 
            +
                      "name": "stakeNftId",
         | 
| 624 689 | 
             
                      "type": "uint96"
         | 
| 625 690 | 
             
                    },
         | 
| 626 691 | 
             
                    {
         | 
| 627 692 | 
             
                      "indexed": false,
         | 
| 628 | 
            -
                      "internalType": " | 
| 629 | 
            -
                      "name": " | 
| 630 | 
            -
                      "type": " | 
| 693 | 
            +
                      "internalType": "Amount",
         | 
| 694 | 
            +
                      "name": "stakedAmount",
         | 
| 695 | 
            +
                      "type": "uint96"
         | 
| 631 696 | 
             
                    },
         | 
| 632 697 | 
             
                    {
         | 
| 633 698 | 
             
                      "indexed": false,
         | 
| 634 699 | 
             
                      "internalType": "Amount",
         | 
| 635 | 
            -
                      "name": " | 
| 700 | 
            +
                      "name": "stakeBalance",
         | 
| 636 701 | 
             
                      "type": "uint96"
         | 
| 637 702 | 
             
                    },
         | 
| 638 703 | 
             
                    {
         | 
| 639 704 | 
             
                      "indexed": false,
         | 
| 640 705 | 
             
                      "internalType": "Amount",
         | 
| 641 | 
            -
                      "name": " | 
| 706 | 
            +
                      "name": "rewardBalance",
         | 
| 642 707 | 
             
                      "type": "uint96"
         | 
| 643 708 | 
             
                    },
         | 
| 709 | 
            +
                    {
         | 
| 710 | 
            +
                      "indexed": false,
         | 
| 711 | 
            +
                      "internalType": "Timestamp",
         | 
| 712 | 
            +
                      "name": "lockedUntil",
         | 
| 713 | 
            +
                      "type": "uint40"
         | 
| 714 | 
            +
                    },
         | 
| 644 715 | 
             
                    {
         | 
| 645 716 | 
             
                      "indexed": false,
         | 
| 646 717 | 
             
                      "internalType": "Blocknumber",
         | 
| 647 | 
            -
                      "name": " | 
| 648 | 
            -
                      "type": " | 
| 718 | 
            +
                      "name": "lastUpdateIn",
         | 
| 719 | 
            +
                      "type": "uint40"
         | 
| 720 | 
            +
                    }
         | 
| 721 | 
            +
                  ],
         | 
| 722 | 
            +
                  "name": "LogStakingStaked",
         | 
| 723 | 
            +
                  "type": "event"
         | 
| 724 | 
            +
                },
         | 
| 725 | 
            +
                {
         | 
| 726 | 
            +
                  "anonymous": false,
         | 
| 727 | 
            +
                  "inputs": [
         | 
| 728 | 
            +
                    {
         | 
| 729 | 
            +
                      "indexed": false,
         | 
| 730 | 
            +
                      "internalType": "address",
         | 
| 731 | 
            +
                      "name": "stakingReader",
         | 
| 732 | 
            +
                      "type": "address"
         | 
| 733 | 
            +
                    },
         | 
| 734 | 
            +
                    {
         | 
| 735 | 
            +
                      "indexed": false,
         | 
| 736 | 
            +
                      "internalType": "address",
         | 
| 737 | 
            +
                      "name": "oldStakingReader",
         | 
| 738 | 
            +
                      "type": "address"
         | 
| 649 739 | 
             
                    }
         | 
| 650 740 | 
             
                  ],
         | 
| 651 | 
            -
                  "name": " | 
| 741 | 
            +
                  "name": "LogStakingStakingReaderSet",
         | 
| 652 742 | 
             
                  "type": "event"
         | 
| 653 743 | 
             
                },
         | 
| 654 744 | 
             
                {
         | 
| @@ -662,251 +752,459 @@ | |
| 662 752 | 
             
                    },
         | 
| 663 753 | 
             
                    {
         | 
| 664 754 | 
             
                      "indexed": false,
         | 
| 665 | 
            -
                      "internalType": " | 
| 666 | 
            -
                      "name": " | 
| 667 | 
            -
                      "type": " | 
| 755 | 
            +
                      "internalType": "bool",
         | 
| 756 | 
            +
                      "name": "isSupported",
         | 
| 757 | 
            +
                      "type": "bool"
         | 
| 668 758 | 
             
                    },
         | 
| 669 759 | 
             
                    {
         | 
| 670 760 | 
             
                      "indexed": false,
         | 
| 671 | 
            -
                      "internalType": " | 
| 672 | 
            -
                      "name": " | 
| 673 | 
            -
                      "type": " | 
| 761 | 
            +
                      "internalType": "bool",
         | 
| 762 | 
            +
                      "name": "allowNewTargets",
         | 
| 763 | 
            +
                      "type": "bool"
         | 
| 674 764 | 
             
                    },
         | 
| 675 765 | 
             
                    {
         | 
| 676 766 | 
             
                      "indexed": false,
         | 
| 677 | 
            -
                      "internalType": " | 
| 678 | 
            -
                      "name": " | 
| 679 | 
            -
                      "type": " | 
| 767 | 
            +
                      "internalType": "bool",
         | 
| 768 | 
            +
                      "name": "allowCrossChain",
         | 
| 769 | 
            +
                      "type": "bool"
         | 
| 680 770 | 
             
                    },
         | 
| 681 771 | 
             
                    {
         | 
| 682 772 | 
             
                      "indexed": false,
         | 
| 683 | 
            -
                      "internalType": " | 
| 684 | 
            -
                      "name": " | 
| 685 | 
            -
                      "type": " | 
| 773 | 
            +
                      "internalType": "Amount",
         | 
| 774 | 
            +
                      "name": "minStakingAmount",
         | 
| 775 | 
            +
                      "type": "uint96"
         | 
| 686 776 | 
             
                    },
         | 
| 687 777 | 
             
                    {
         | 
| 688 778 | 
             
                      "indexed": false,
         | 
| 689 | 
            -
                      "internalType": " | 
| 690 | 
            -
                      "name": " | 
| 691 | 
            -
                      "type": " | 
| 779 | 
            +
                      "internalType": "Amount",
         | 
| 780 | 
            +
                      "name": "maxStakingAmount",
         | 
| 781 | 
            +
                      "type": "uint96"
         | 
| 782 | 
            +
                    },
         | 
| 783 | 
            +
                    {
         | 
| 784 | 
            +
                      "indexed": false,
         | 
| 785 | 
            +
                      "internalType": "Seconds",
         | 
| 786 | 
            +
                      "name": "minLockingPeriod",
         | 
| 787 | 
            +
                      "type": "uint40"
         | 
| 788 | 
            +
                    },
         | 
| 789 | 
            +
                    {
         | 
| 790 | 
            +
                      "indexed": false,
         | 
| 791 | 
            +
                      "internalType": "Seconds",
         | 
| 792 | 
            +
                      "name": "maxLockingPeriod",
         | 
| 793 | 
            +
                      "type": "uint40"
         | 
| 794 | 
            +
                    },
         | 
| 795 | 
            +
                    {
         | 
| 796 | 
            +
                      "indexed": false,
         | 
| 797 | 
            +
                      "internalType": "UFixed",
         | 
| 798 | 
            +
                      "name": "minRewardRate",
         | 
| 799 | 
            +
                      "type": "uint160"
         | 
| 800 | 
            +
                    },
         | 
| 801 | 
            +
                    {
         | 
| 802 | 
            +
                      "indexed": false,
         | 
| 803 | 
            +
                      "internalType": "UFixed",
         | 
| 804 | 
            +
                      "name": "maxRewardRate",
         | 
| 805 | 
            +
                      "type": "uint160"
         | 
| 692 806 | 
             
                    },
         | 
| 693 807 | 
             
                    {
         | 
| 694 808 | 
             
                      "indexed": false,
         | 
| 695 809 | 
             
                      "internalType": "Blocknumber",
         | 
| 696 | 
            -
                      "name": " | 
| 697 | 
            -
                      "type": " | 
| 810 | 
            +
                      "name": "lastUpdateIn",
         | 
| 811 | 
            +
                      "type": "uint40"
         | 
| 698 812 | 
             
                    }
         | 
| 699 813 | 
             
                  ],
         | 
| 700 | 
            -
                  "name": " | 
| 814 | 
            +
                  "name": "LogStakingSupportInfoSet",
         | 
| 701 815 | 
             
                  "type": "event"
         | 
| 702 816 | 
             
                },
         | 
| 703 817 | 
             
                {
         | 
| 704 | 
            -
                  " | 
| 705 | 
            -
                  "name": "authority",
         | 
| 706 | 
            -
                  "outputs": [
         | 
| 707 | 
            -
                    {
         | 
| 708 | 
            -
                      "internalType": "address",
         | 
| 709 | 
            -
                      "name": "",
         | 
| 710 | 
            -
                      "type": "address"
         | 
| 711 | 
            -
                    }
         | 
| 712 | 
            -
                  ],
         | 
| 713 | 
            -
                  "stateMutability": "view",
         | 
| 714 | 
            -
                  "type": "function"
         | 
| 715 | 
            -
                },
         | 
| 716 | 
            -
                {
         | 
| 818 | 
            +
                  "anonymous": false,
         | 
| 717 819 | 
             
                  "inputs": [
         | 
| 718 820 | 
             
                    {
         | 
| 719 | 
            -
                      " | 
| 720 | 
            -
                      " | 
| 721 | 
            -
                      " | 
| 821 | 
            +
                      "indexed": false,
         | 
| 822 | 
            +
                      "internalType": "NftId",
         | 
| 823 | 
            +
                      "name": "targetNftId",
         | 
| 824 | 
            +
                      "type": "uint96"
         | 
| 722 825 | 
             
                    },
         | 
| 723 826 | 
             
                    {
         | 
| 827 | 
            +
                      "indexed": false,
         | 
| 724 828 | 
             
                      "internalType": "ObjectType",
         | 
| 725 829 | 
             
                      "name": "objectType",
         | 
| 726 830 | 
             
                      "type": "uint8"
         | 
| 727 831 | 
             
                    },
         | 
| 728 832 | 
             
                    {
         | 
| 729 | 
            -
                      " | 
| 730 | 
            -
                      " | 
| 731 | 
            -
                      " | 
| 833 | 
            +
                      "indexed": false,
         | 
| 834 | 
            +
                      "internalType": "Seconds",
         | 
| 835 | 
            +
                      "name": "lockingPeriod",
         | 
| 836 | 
            +
                      "type": "uint40"
         | 
| 732 837 | 
             
                    },
         | 
| 733 838 | 
             
                    {
         | 
| 734 | 
            -
                      " | 
| 735 | 
            -
                      " | 
| 736 | 
            -
                      " | 
| 839 | 
            +
                      "indexed": false,
         | 
| 840 | 
            +
                      "internalType": "UFixed",
         | 
| 841 | 
            +
                      "name": "rewardRate",
         | 
| 842 | 
            +
                      "type": "uint160"
         | 
| 737 843 | 
             
                    }
         | 
| 738 844 | 
             
                  ],
         | 
| 739 | 
            -
                  "name": " | 
| 740 | 
            -
                  " | 
| 741 | 
            -
                  "stateMutability": "view",
         | 
| 742 | 
            -
                  "type": "function"
         | 
| 845 | 
            +
                  "name": "LogStakingTargetCreated",
         | 
| 846 | 
            +
                  "type": "event"
         | 
| 743 847 | 
             
                },
         | 
| 744 848 | 
             
                {
         | 
| 849 | 
            +
                  "anonymous": false,
         | 
| 745 850 | 
             
                  "inputs": [
         | 
| 746 851 | 
             
                    {
         | 
| 747 | 
            -
                      " | 
| 748 | 
            -
                      " | 
| 749 | 
            -
                      " | 
| 852 | 
            +
                      "indexed": false,
         | 
| 853 | 
            +
                      "internalType": "address",
         | 
| 854 | 
            +
                      "name": "targetManager",
         | 
| 855 | 
            +
                      "type": "address"
         | 
| 750 856 | 
             
                    },
         | 
| 751 857 | 
             
                    {
         | 
| 858 | 
            +
                      "indexed": false,
         | 
| 859 | 
            +
                      "internalType": "address",
         | 
| 860 | 
            +
                      "name": "oldTargetHandler",
         | 
| 861 | 
            +
                      "type": "address"
         | 
| 862 | 
            +
                    }
         | 
| 863 | 
            +
                  ],
         | 
| 864 | 
            +
                  "name": "LogStakingTargetHandlerSet",
         | 
| 865 | 
            +
                  "type": "event"
         | 
| 866 | 
            +
                },
         | 
| 867 | 
            +
                {
         | 
| 868 | 
            +
                  "anonymous": false,
         | 
| 869 | 
            +
                  "inputs": [
         | 
| 870 | 
            +
                    {
         | 
| 871 | 
            +
                      "indexed": false,
         | 
| 752 872 | 
             
                      "internalType": "NftId",
         | 
| 753 873 | 
             
                      "name": "targetNftId",
         | 
| 754 874 | 
             
                      "type": "uint96"
         | 
| 755 875 | 
             
                    },
         | 
| 756 876 | 
             
                    {
         | 
| 877 | 
            +
                      "indexed": false,
         | 
| 757 878 | 
             
                      "internalType": "Amount",
         | 
| 758 | 
            -
                      "name": " | 
| 879 | 
            +
                      "name": "limitAmount",
         | 
| 759 880 | 
             
                      "type": "uint96"
         | 
| 760 | 
            -
                    }
         | 
| 761 | 
            -
                  ],
         | 
| 762 | 
            -
                  "name": "claimUpTo",
         | 
| 763 | 
            -
                  "outputs": [
         | 
| 881 | 
            +
                    },
         | 
| 764 882 | 
             
                    {
         | 
| 883 | 
            +
                      "indexed": false,
         | 
| 765 884 | 
             
                      "internalType": "Amount",
         | 
| 766 | 
            -
                      "name": " | 
| 885 | 
            +
                      "name": "hardLimitAmount",
         | 
| 767 886 | 
             
                      "type": "uint96"
         | 
| 768 | 
            -
                    }
         | 
| 769 | 
            -
                  ],
         | 
| 770 | 
            -
                  "stateMutability": "nonpayable",
         | 
| 771 | 
            -
                  "type": "function"
         | 
| 772 | 
            -
                },
         | 
| 773 | 
            -
                {
         | 
| 774 | 
            -
                  "inputs": [
         | 
| 887 | 
            +
                    },
         | 
| 775 888 | 
             
                    {
         | 
| 776 | 
            -
                      " | 
| 777 | 
            -
                      " | 
| 889 | 
            +
                      "indexed": false,
         | 
| 890 | 
            +
                      "internalType": "Amount",
         | 
| 891 | 
            +
                      "name": "requiredStakeAmount",
         | 
| 778 892 | 
             
                      "type": "uint96"
         | 
| 779 893 | 
             
                    },
         | 
| 780 894 | 
             
                    {
         | 
| 781 | 
            -
                      " | 
| 782 | 
            -
             | 
| 783 | 
            -
             | 
| 784 | 
            -
                          "name": "lockedUntil",
         | 
| 785 | 
            -
                          "type": "uint40"
         | 
| 786 | 
            -
                        }
         | 
| 787 | 
            -
                      ],
         | 
| 788 | 
            -
                      "internalType": "struct IStaking.StakeInfo",
         | 
| 789 | 
            -
                      "name": "stakeInfo",
         | 
| 790 | 
            -
                      "type": "tuple"
         | 
| 791 | 
            -
                    }
         | 
| 792 | 
            -
                  ],
         | 
| 793 | 
            -
                  "name": "create",
         | 
| 794 | 
            -
                  "outputs": [],
         | 
| 795 | 
            -
                  "stateMutability": "nonpayable",
         | 
| 796 | 
            -
                  "type": "function"
         | 
| 797 | 
            -
                },
         | 
| 798 | 
            -
                {
         | 
| 799 | 
            -
                  "inputs": [
         | 
| 800 | 
            -
                    {
         | 
| 801 | 
            -
                      "internalType": "NftId",
         | 
| 802 | 
            -
                      "name": "targetNftId",
         | 
| 895 | 
            +
                      "indexed": false,
         | 
| 896 | 
            +
                      "internalType": "Amount",
         | 
| 897 | 
            +
                      "name": "actualStakeAmount",
         | 
| 803 898 | 
             
                      "type": "uint96"
         | 
| 804 899 | 
             
                    },
         | 
| 805 900 | 
             
                    {
         | 
| 806 | 
            -
                      " | 
| 807 | 
            -
             | 
| 808 | 
            -
             | 
| 809 | 
            -
             | 
| 810 | 
            -
                          "type": "uint8"
         | 
| 811 | 
            -
                        },
         | 
| 812 | 
            -
                        {
         | 
| 813 | 
            -
                          "internalType": "uint256",
         | 
| 814 | 
            -
                          "name": "chainId",
         | 
| 815 | 
            -
                          "type": "uint256"
         | 
| 816 | 
            -
                        },
         | 
| 817 | 
            -
                        {
         | 
| 818 | 
            -
                          "internalType": "Seconds",
         | 
| 819 | 
            -
                          "name": "lockingPeriod",
         | 
| 820 | 
            -
                          "type": "uint40"
         | 
| 821 | 
            -
                        },
         | 
| 822 | 
            -
                        {
         | 
| 823 | 
            -
                          "internalType": "UFixed",
         | 
| 824 | 
            -
                          "name": "rewardRate",
         | 
| 825 | 
            -
                          "type": "uint256"
         | 
| 826 | 
            -
                        }
         | 
| 827 | 
            -
                      ],
         | 
| 828 | 
            -
                      "internalType": "struct IStaking.TargetInfo",
         | 
| 829 | 
            -
                      "name": "targetInfo",
         | 
| 830 | 
            -
                      "type": "tuple"
         | 
| 901 | 
            +
                      "indexed": false,
         | 
| 902 | 
            +
                      "internalType": "Blocknumber",
         | 
| 903 | 
            +
                      "name": "lastUpdateIn",
         | 
| 904 | 
            +
                      "type": "uint40"
         | 
| 831 905 | 
             
                    }
         | 
| 832 906 | 
             
                  ],
         | 
| 833 | 
            -
                  "name": " | 
| 834 | 
            -
                  " | 
| 835 | 
            -
                  "stateMutability": "nonpayable",
         | 
| 836 | 
            -
                  "type": "function"
         | 
| 907 | 
            +
                  "name": "LogStakingTargetLimitUpdated",
         | 
| 908 | 
            +
                  "type": "event"
         | 
| 837 909 | 
             
                },
         | 
| 838 910 | 
             
                {
         | 
| 911 | 
            +
                  "anonymous": false,
         | 
| 839 912 | 
             
                  "inputs": [
         | 
| 840 913 | 
             
                    {
         | 
| 914 | 
            +
                      "indexed": false,
         | 
| 841 915 | 
             
                      "internalType": "NftId",
         | 
| 842 916 | 
             
                      "name": "targetNftId",
         | 
| 843 917 | 
             
                      "type": "uint96"
         | 
| 844 918 | 
             
                    },
         | 
| 845 919 | 
             
                    {
         | 
| 920 | 
            +
                      "indexed": false,
         | 
| 846 921 | 
             
                      "internalType": "Amount",
         | 
| 847 | 
            -
                      "name": " | 
| 922 | 
            +
                      "name": "marginAmount",
         | 
| 848 923 | 
             
                      "type": "uint96"
         | 
| 849 | 
            -
                    }
         | 
| 850 | 
            -
                  ],
         | 
| 851 | 
            -
                  "name": "decreaseReserves",
         | 
| 852 | 
            -
                  "outputs": [
         | 
| 924 | 
            +
                    },
         | 
| 853 925 | 
             
                    {
         | 
| 926 | 
            +
                      "indexed": false,
         | 
| 854 927 | 
             
                      "internalType": "Amount",
         | 
| 855 | 
            -
                      "name": " | 
| 928 | 
            +
                      "name": "hardLimitAmount",
         | 
| 856 929 | 
             
                      "type": "uint96"
         | 
| 857 | 
            -
                    }
         | 
| 858 | 
            -
             | 
| 859 | 
            -
             | 
| 860 | 
            -
             | 
| 930 | 
            +
                    },
         | 
| 931 | 
            +
                    {
         | 
| 932 | 
            +
                      "indexed": false,
         | 
| 933 | 
            +
                      "internalType": "Blocknumber",
         | 
| 934 | 
            +
                      "name": "lastUpdateIn",
         | 
| 935 | 
            +
                      "type": "uint40"
         | 
| 936 | 
            +
                    }
         | 
| 937 | 
            +
                  ],
         | 
| 938 | 
            +
                  "name": "LogStakingTargetLimitsUpdated",
         | 
| 939 | 
            +
                  "type": "event"
         | 
| 940 | 
            +
                },
         | 
| 941 | 
            +
                {
         | 
| 942 | 
            +
                  "anonymous": false,
         | 
| 943 | 
            +
                  "inputs": [
         | 
| 944 | 
            +
                    {
         | 
| 945 | 
            +
                      "indexed": false,
         | 
| 946 | 
            +
                      "internalType": "NftId",
         | 
| 947 | 
            +
                      "name": "targetNftId",
         | 
| 948 | 
            +
                      "type": "uint96"
         | 
| 949 | 
            +
                    },
         | 
| 950 | 
            +
                    {
         | 
| 951 | 
            +
                      "indexed": false,
         | 
| 952 | 
            +
                      "internalType": "Seconds",
         | 
| 953 | 
            +
                      "name": "oldLockingPeriod",
         | 
| 954 | 
            +
                      "type": "uint40"
         | 
| 955 | 
            +
                    },
         | 
| 956 | 
            +
                    {
         | 
| 957 | 
            +
                      "indexed": false,
         | 
| 958 | 
            +
                      "internalType": "Seconds",
         | 
| 959 | 
            +
                      "name": "lockingPeriod",
         | 
| 960 | 
            +
                      "type": "uint40"
         | 
| 961 | 
            +
                    },
         | 
| 962 | 
            +
                    {
         | 
| 963 | 
            +
                      "indexed": false,
         | 
| 964 | 
            +
                      "internalType": "Blocknumber",
         | 
| 965 | 
            +
                      "name": "lastUpdateIn",
         | 
| 966 | 
            +
                      "type": "uint40"
         | 
| 967 | 
            +
                    }
         | 
| 968 | 
            +
                  ],
         | 
| 969 | 
            +
                  "name": "LogStakingTargetLockingPeriodSet",
         | 
| 970 | 
            +
                  "type": "event"
         | 
| 971 | 
            +
                },
         | 
| 972 | 
            +
                {
         | 
| 973 | 
            +
                  "anonymous": false,
         | 
| 974 | 
            +
                  "inputs": [
         | 
| 975 | 
            +
                    {
         | 
| 976 | 
            +
                      "indexed": false,
         | 
| 977 | 
            +
                      "internalType": "NftId",
         | 
| 978 | 
            +
                      "name": "targetNftId",
         | 
| 979 | 
            +
                      "type": "uint96"
         | 
| 980 | 
            +
                    },
         | 
| 981 | 
            +
                    {
         | 
| 982 | 
            +
                      "indexed": false,
         | 
| 983 | 
            +
                      "internalType": "Amount",
         | 
| 984 | 
            +
                      "name": "stakeLimitAmount",
         | 
| 985 | 
            +
                      "type": "uint96"
         | 
| 986 | 
            +
                    },
         | 
| 987 | 
            +
                    {
         | 
| 988 | 
            +
                      "indexed": false,
         | 
| 989 | 
            +
                      "internalType": "Blocknumber",
         | 
| 990 | 
            +
                      "name": "lastUpdateIn",
         | 
| 991 | 
            +
                      "type": "uint40"
         | 
| 992 | 
            +
                    }
         | 
| 993 | 
            +
                  ],
         | 
| 994 | 
            +
                  "name": "LogStakingTargetMaxStakedAmountSet",
         | 
| 995 | 
            +
                  "type": "event"
         | 
| 861 996 | 
             
                },
         | 
| 862 997 | 
             
                {
         | 
| 998 | 
            +
                  "anonymous": false,
         | 
| 863 999 | 
             
                  "inputs": [
         | 
| 864 1000 | 
             
                    {
         | 
| 1001 | 
            +
                      "indexed": false,
         | 
| 865 1002 | 
             
                      "internalType": "NftId",
         | 
| 866 1003 | 
             
                      "name": "targetNftId",
         | 
| 867 1004 | 
             
                      "type": "uint96"
         | 
| 868 1005 | 
             
                    },
         | 
| 869 1006 | 
             
                    {
         | 
| 1007 | 
            +
                      "indexed": false,
         | 
| 870 1008 | 
             
                      "internalType": "UFixed",
         | 
| 871 | 
            -
                      "name": " | 
| 872 | 
            -
                      "type": " | 
| 1009 | 
            +
                      "name": "rewardRate",
         | 
| 1010 | 
            +
                      "type": "uint160"
         | 
| 1011 | 
            +
                    },
         | 
| 1012 | 
            +
                    {
         | 
| 1013 | 
            +
                      "indexed": false,
         | 
| 1014 | 
            +
                      "internalType": "UFixed",
         | 
| 1015 | 
            +
                      "name": "oldRewardRate",
         | 
| 1016 | 
            +
                      "type": "uint160"
         | 
| 1017 | 
            +
                    },
         | 
| 1018 | 
            +
                    {
         | 
| 1019 | 
            +
                      "indexed": false,
         | 
| 1020 | 
            +
                      "internalType": "Blocknumber",
         | 
| 1021 | 
            +
                      "name": "lastUpdateIn",
         | 
| 1022 | 
            +
                      "type": "uint40"
         | 
| 1023 | 
            +
                    }
         | 
| 1024 | 
            +
                  ],
         | 
| 1025 | 
            +
                  "name": "LogStakingTargetRewardRateSet",
         | 
| 1026 | 
            +
                  "type": "event"
         | 
| 1027 | 
            +
                },
         | 
| 1028 | 
            +
                {
         | 
| 1029 | 
            +
                  "anonymous": false,
         | 
| 1030 | 
            +
                  "inputs": [
         | 
| 1031 | 
            +
                    {
         | 
| 1032 | 
            +
                      "indexed": false,
         | 
| 1033 | 
            +
                      "internalType": "ChainId",
         | 
| 1034 | 
            +
                      "name": "chainId",
         | 
| 1035 | 
            +
                      "type": "uint96"
         | 
| 1036 | 
            +
                    },
         | 
| 1037 | 
            +
                    {
         | 
| 1038 | 
            +
                      "indexed": false,
         | 
| 1039 | 
            +
                      "internalType": "address",
         | 
| 1040 | 
            +
                      "name": "token",
         | 
| 1041 | 
            +
                      "type": "address"
         | 
| 1042 | 
            +
                    }
         | 
| 1043 | 
            +
                  ],
         | 
| 1044 | 
            +
                  "name": "LogStakingTokenAdded",
         | 
| 1045 | 
            +
                  "type": "event"
         | 
| 1046 | 
            +
                },
         | 
| 1047 | 
            +
                {
         | 
| 1048 | 
            +
                  "anonymous": false,
         | 
| 1049 | 
            +
                  "inputs": [
         | 
| 1050 | 
            +
                    {
         | 
| 1051 | 
            +
                      "indexed": false,
         | 
| 1052 | 
            +
                      "internalType": "NftId",
         | 
| 1053 | 
            +
                      "name": "targetNftId",
         | 
| 1054 | 
            +
                      "type": "uint96"
         | 
| 873 1055 | 
             
                    },
         | 
| 874 1056 | 
             
                    {
         | 
| 1057 | 
            +
                      "indexed": false,
         | 
| 875 1058 | 
             
                      "internalType": "address",
         | 
| 876 1059 | 
             
                      "name": "token",
         | 
| 877 1060 | 
             
                      "type": "address"
         | 
| 878 1061 | 
             
                    },
         | 
| 879 1062 | 
             
                    {
         | 
| 1063 | 
            +
                      "indexed": false,
         | 
| 880 1064 | 
             
                      "internalType": "Amount",
         | 
| 881 1065 | 
             
                      "name": "amount",
         | 
| 882 1066 | 
             
                      "type": "uint96"
         | 
| 1067 | 
            +
                    },
         | 
| 1068 | 
            +
                    {
         | 
| 1069 | 
            +
                      "indexed": false,
         | 
| 1070 | 
            +
                      "internalType": "Amount",
         | 
| 1071 | 
            +
                      "name": "newBalance",
         | 
| 1072 | 
            +
                      "type": "uint96"
         | 
| 1073 | 
            +
                    },
         | 
| 1074 | 
            +
                    {
         | 
| 1075 | 
            +
                      "indexed": false,
         | 
| 1076 | 
            +
                      "internalType": "Blocknumber",
         | 
| 1077 | 
            +
                      "name": "lastUpdateIn",
         | 
| 1078 | 
            +
                      "type": "uint40"
         | 
| 883 1079 | 
             
                    }
         | 
| 884 1080 | 
             
                  ],
         | 
| 885 | 
            -
                  "name": " | 
| 886 | 
            -
                  " | 
| 1081 | 
            +
                  "name": "LogStakingTvlDecreased",
         | 
| 1082 | 
            +
                  "type": "event"
         | 
| 1083 | 
            +
                },
         | 
| 1084 | 
            +
                {
         | 
| 1085 | 
            +
                  "anonymous": false,
         | 
| 1086 | 
            +
                  "inputs": [
         | 
| 1087 | 
            +
                    {
         | 
| 1088 | 
            +
                      "indexed": false,
         | 
| 1089 | 
            +
                      "internalType": "NftId",
         | 
| 1090 | 
            +
                      "name": "targetNftId",
         | 
| 1091 | 
            +
                      "type": "uint96"
         | 
| 1092 | 
            +
                    },
         | 
| 1093 | 
            +
                    {
         | 
| 1094 | 
            +
                      "indexed": false,
         | 
| 1095 | 
            +
                      "internalType": "address",
         | 
| 1096 | 
            +
                      "name": "token",
         | 
| 1097 | 
            +
                      "type": "address"
         | 
| 1098 | 
            +
                    },
         | 
| 887 1099 | 
             
                    {
         | 
| 1100 | 
            +
                      "indexed": false,
         | 
| 1101 | 
            +
                      "internalType": "Amount",
         | 
| 1102 | 
            +
                      "name": "amount",
         | 
| 1103 | 
            +
                      "type": "uint96"
         | 
| 1104 | 
            +
                    },
         | 
| 1105 | 
            +
                    {
         | 
| 1106 | 
            +
                      "indexed": false,
         | 
| 888 1107 | 
             
                      "internalType": "Amount",
         | 
| 889 1108 | 
             
                      "name": "newBalance",
         | 
| 890 1109 | 
             
                      "type": "uint96"
         | 
| 1110 | 
            +
                    },
         | 
| 1111 | 
            +
                    {
         | 
| 1112 | 
            +
                      "indexed": false,
         | 
| 1113 | 
            +
                      "internalType": "Blocknumber",
         | 
| 1114 | 
            +
                      "name": "lastUpdateIn",
         | 
| 1115 | 
            +
                      "type": "uint40"
         | 
| 1116 | 
            +
                    }
         | 
| 1117 | 
            +
                  ],
         | 
| 1118 | 
            +
                  "name": "LogStakingTvlIncreased",
         | 
| 1119 | 
            +
                  "type": "event"
         | 
| 1120 | 
            +
                },
         | 
| 1121 | 
            +
                {
         | 
| 1122 | 
            +
                  "anonymous": false,
         | 
| 1123 | 
            +
                  "inputs": [
         | 
| 1124 | 
            +
                    {
         | 
| 1125 | 
            +
                      "indexed": false,
         | 
| 1126 | 
            +
                      "internalType": "NftId",
         | 
| 1127 | 
            +
                      "name": "stakeNftId",
         | 
| 1128 | 
            +
                      "type": "uint96"
         | 
| 1129 | 
            +
                    },
         | 
| 1130 | 
            +
                    {
         | 
| 1131 | 
            +
                      "indexed": false,
         | 
| 1132 | 
            +
                      "internalType": "Amount",
         | 
| 1133 | 
            +
                      "name": "unstakedAmount",
         | 
| 1134 | 
            +
                      "type": "uint96"
         | 
| 1135 | 
            +
                    },
         | 
| 1136 | 
            +
                    {
         | 
| 1137 | 
            +
                      "indexed": false,
         | 
| 1138 | 
            +
                      "internalType": "Amount",
         | 
| 1139 | 
            +
                      "name": "stakeBalance",
         | 
| 1140 | 
            +
                      "type": "uint96"
         | 
| 1141 | 
            +
                    },
         | 
| 1142 | 
            +
                    {
         | 
| 1143 | 
            +
                      "indexed": false,
         | 
| 1144 | 
            +
                      "internalType": "Amount",
         | 
| 1145 | 
            +
                      "name": "rewardBalance",
         | 
| 1146 | 
            +
                      "type": "uint96"
         | 
| 1147 | 
            +
                    },
         | 
| 1148 | 
            +
                    {
         | 
| 1149 | 
            +
                      "indexed": false,
         | 
| 1150 | 
            +
                      "internalType": "Timestamp",
         | 
| 1151 | 
            +
                      "name": "lockedUntil",
         | 
| 1152 | 
            +
                      "type": "uint40"
         | 
| 1153 | 
            +
                    },
         | 
| 1154 | 
            +
                    {
         | 
| 1155 | 
            +
                      "indexed": false,
         | 
| 1156 | 
            +
                      "internalType": "Blocknumber",
         | 
| 1157 | 
            +
                      "name": "lastUpdateIn",
         | 
| 1158 | 
            +
                      "type": "uint40"
         | 
| 1159 | 
            +
                    }
         | 
| 1160 | 
            +
                  ],
         | 
| 1161 | 
            +
                  "name": "LogStakingUnstaked",
         | 
| 1162 | 
            +
                  "type": "event"
         | 
| 1163 | 
            +
                },
         | 
| 1164 | 
            +
                {
         | 
| 1165 | 
            +
                  "inputs": [
         | 
| 1166 | 
            +
                    {
         | 
| 1167 | 
            +
                      "internalType": "NftId",
         | 
| 1168 | 
            +
                      "name": "targetNftId",
         | 
| 1169 | 
            +
                      "type": "uint96"
         | 
| 1170 | 
            +
                    },
         | 
| 1171 | 
            +
                    {
         | 
| 1172 | 
            +
                      "internalType": "address",
         | 
| 1173 | 
            +
                      "name": "token",
         | 
| 1174 | 
            +
                      "type": "address"
         | 
| 891 1175 | 
             
                    }
         | 
| 892 1176 | 
             
                  ],
         | 
| 1177 | 
            +
                  "name": "addTargetToken",
         | 
| 1178 | 
            +
                  "outputs": [],
         | 
| 893 1179 | 
             
                  "stateMutability": "nonpayable",
         | 
| 894 1180 | 
             
                  "type": "function"
         | 
| 895 1181 | 
             
                },
         | 
| 896 1182 | 
             
                {
         | 
| 897 1183 | 
             
                  "inputs": [
         | 
| 898 1184 | 
             
                    {
         | 
| 899 | 
            -
                      "internalType": " | 
| 900 | 
            -
                      "name": " | 
| 901 | 
            -
                      "type": " | 
| 1185 | 
            +
                      "internalType": "ChainId",
         | 
| 1186 | 
            +
                      "name": "chainId",
         | 
| 1187 | 
            +
                      "type": "uint96"
         | 
| 1188 | 
            +
                    },
         | 
| 1189 | 
            +
                    {
         | 
| 1190 | 
            +
                      "internalType": "address",
         | 
| 1191 | 
            +
                      "name": "token",
         | 
| 1192 | 
            +
                      "type": "address"
         | 
| 902 1193 | 
             
                    }
         | 
| 903 1194 | 
             
                  ],
         | 
| 904 | 
            -
                  "name": " | 
| 1195 | 
            +
                  "name": "addToken",
         | 
| 1196 | 
            +
                  "outputs": [],
         | 
| 1197 | 
            +
                  "stateMutability": "nonpayable",
         | 
| 1198 | 
            +
                  "type": "function"
         | 
| 1199 | 
            +
                },
         | 
| 1200 | 
            +
                {
         | 
| 1201 | 
            +
                  "inputs": [],
         | 
| 1202 | 
            +
                  "name": "authority",
         | 
| 905 1203 | 
             
                  "outputs": [
         | 
| 906 1204 | 
             
                    {
         | 
| 907 | 
            -
                      "internalType": " | 
| 1205 | 
            +
                      "internalType": "address",
         | 
| 908 1206 | 
             
                      "name": "",
         | 
| 909 | 
            -
                      "type": " | 
| 1207 | 
            +
                      "type": "address"
         | 
| 910 1208 | 
             
                    }
         | 
| 911 1209 | 
             
                  ],
         | 
| 912 1210 | 
             
                  "stateMutability": "view",
         | 
| @@ -918,105 +1216,134 @@ | |
| 918 1216 | 
             
                      "internalType": "NftId",
         | 
| 919 1217 | 
             
                      "name": "stakeNftId",
         | 
| 920 1218 | 
             
                      "type": "uint96"
         | 
| 1219 | 
            +
                    },
         | 
| 1220 | 
            +
                    {
         | 
| 1221 | 
            +
                      "internalType": "bool",
         | 
| 1222 | 
            +
                      "name": "updateRewards",
         | 
| 1223 | 
            +
                      "type": "bool"
         | 
| 1224 | 
            +
                    },
         | 
| 1225 | 
            +
                    {
         | 
| 1226 | 
            +
                      "internalType": "Amount",
         | 
| 1227 | 
            +
                      "name": "maxClaimAmount",
         | 
| 1228 | 
            +
                      "type": "uint96"
         | 
| 921 1229 | 
             
                    }
         | 
| 922 1230 | 
             
                  ],
         | 
| 923 | 
            -
                  "name": " | 
| 1231 | 
            +
                  "name": "claimRewards",
         | 
| 924 1232 | 
             
                  "outputs": [
         | 
| 925 1233 | 
             
                    {
         | 
| 926 | 
            -
                      "internalType": " | 
| 927 | 
            -
                      "name": "",
         | 
| 928 | 
            -
                      "type": " | 
| 1234 | 
            +
                      "internalType": "Amount",
         | 
| 1235 | 
            +
                      "name": "claimedAmount",
         | 
| 1236 | 
            +
                      "type": "uint96"
         | 
| 929 1237 | 
             
                    }
         | 
| 930 1238 | 
             
                  ],
         | 
| 931 | 
            -
                  "stateMutability": " | 
| 1239 | 
            +
                  "stateMutability": "nonpayable",
         | 
| 932 1240 | 
             
                  "type": "function"
         | 
| 933 1241 | 
             
                },
         | 
| 934 1242 | 
             
                {
         | 
| 935 1243 | 
             
                  "inputs": [
         | 
| 936 1244 | 
             
                    {
         | 
| 937 | 
            -
                      "internalType": " | 
| 938 | 
            -
                      "name": " | 
| 939 | 
            -
                      "type": " | 
| 1245 | 
            +
                      "internalType": "NftId",
         | 
| 1246 | 
            +
                      "name": "stakeNftId",
         | 
| 1247 | 
            +
                      "type": "uint96"
         | 
| 1248 | 
            +
                    },
         | 
| 1249 | 
            +
                    {
         | 
| 1250 | 
            +
                      "internalType": "NftId",
         | 
| 1251 | 
            +
                      "name": "targetNftId",
         | 
| 1252 | 
            +
                      "type": "uint96"
         | 
| 1253 | 
            +
                    },
         | 
| 1254 | 
            +
                    {
         | 
| 1255 | 
            +
                      "internalType": "address",
         | 
| 1256 | 
            +
                      "name": "stakeOwner",
         | 
| 1257 | 
            +
                      "type": "address"
         | 
| 1258 | 
            +
                    },
         | 
| 1259 | 
            +
                    {
         | 
| 1260 | 
            +
                      "internalType": "Amount",
         | 
| 1261 | 
            +
                      "name": "stakeAmount",
         | 
| 1262 | 
            +
                      "type": "uint96"
         | 
| 940 1263 | 
             
                    }
         | 
| 941 1264 | 
             
                  ],
         | 
| 942 | 
            -
                  "name": " | 
| 1265 | 
            +
                  "name": "createStake",
         | 
| 943 1266 | 
             
                  "outputs": [
         | 
| 944 1267 | 
             
                    {
         | 
| 945 | 
            -
                      " | 
| 946 | 
            -
             | 
| 947 | 
            -
             | 
| 948 | 
            -
                            {
         | 
| 949 | 
            -
                              "internalType": "ObjectType",
         | 
| 950 | 
            -
                              "name": "objectType",
         | 
| 951 | 
            -
                              "type": "uint8"
         | 
| 952 | 
            -
                            },
         | 
| 953 | 
            -
                            {
         | 
| 954 | 
            -
                              "internalType": "StateId",
         | 
| 955 | 
            -
                              "name": "state",
         | 
| 956 | 
            -
                              "type": "uint8"
         | 
| 957 | 
            -
                            },
         | 
| 958 | 
            -
                            {
         | 
| 959 | 
            -
                              "internalType": "Blocknumber",
         | 
| 960 | 
            -
                              "name": "updatedIn",
         | 
| 961 | 
            -
                              "type": "uint32"
         | 
| 962 | 
            -
                            },
         | 
| 963 | 
            -
                            {
         | 
| 964 | 
            -
                              "internalType": "Blocknumber",
         | 
| 965 | 
            -
                              "name": "createdIn",
         | 
| 966 | 
            -
                              "type": "uint32"
         | 
| 967 | 
            -
                            }
         | 
| 968 | 
            -
                          ],
         | 
| 969 | 
            -
                          "internalType": "struct IKeyValueStore.Metadata",
         | 
| 970 | 
            -
                          "name": "metadata",
         | 
| 971 | 
            -
                          "type": "tuple"
         | 
| 972 | 
            -
                        },
         | 
| 973 | 
            -
                        {
         | 
| 974 | 
            -
                          "internalType": "bytes",
         | 
| 975 | 
            -
                          "name": "data",
         | 
| 976 | 
            -
                          "type": "bytes"
         | 
| 977 | 
            -
                        }
         | 
| 978 | 
            -
                      ],
         | 
| 979 | 
            -
                      "internalType": "struct IKeyValueStore.Value",
         | 
| 980 | 
            -
                      "name": "value",
         | 
| 981 | 
            -
                      "type": "tuple"
         | 
| 1268 | 
            +
                      "internalType": "Timestamp",
         | 
| 1269 | 
            +
                      "name": "lockedUntil",
         | 
| 1270 | 
            +
                      "type": "uint40"
         | 
| 982 1271 | 
             
                    }
         | 
| 983 1272 | 
             
                  ],
         | 
| 984 | 
            -
                  "stateMutability": " | 
| 1273 | 
            +
                  "stateMutability": "nonpayable",
         | 
| 985 1274 | 
             
                  "type": "function"
         | 
| 986 1275 | 
             
                },
         | 
| 987 1276 | 
             
                {
         | 
| 988 1277 | 
             
                  "inputs": [
         | 
| 989 1278 | 
             
                    {
         | 
| 990 1279 | 
             
                      "internalType": "NftId",
         | 
| 991 | 
            -
                      "name": " | 
| 1280 | 
            +
                      "name": "targetNftId",
         | 
| 1281 | 
            +
                      "type": "uint96"
         | 
| 1282 | 
            +
                    },
         | 
| 1283 | 
            +
                    {
         | 
| 1284 | 
            +
                      "internalType": "ObjectType",
         | 
| 1285 | 
            +
                      "name": "objectType",
         | 
| 1286 | 
            +
                      "type": "uint8"
         | 
| 1287 | 
            +
                    },
         | 
| 1288 | 
            +
                    {
         | 
| 1289 | 
            +
                      "internalType": "Seconds",
         | 
| 1290 | 
            +
                      "name": "lockingPeriod",
         | 
| 1291 | 
            +
                      "type": "uint40"
         | 
| 1292 | 
            +
                    },
         | 
| 1293 | 
            +
                    {
         | 
| 1294 | 
            +
                      "internalType": "UFixed",
         | 
| 1295 | 
            +
                      "name": "rewardRate",
         | 
| 1296 | 
            +
                      "type": "uint160"
         | 
| 1297 | 
            +
                    }
         | 
| 1298 | 
            +
                  ],
         | 
| 1299 | 
            +
                  "name": "createTarget",
         | 
| 1300 | 
            +
                  "outputs": [],
         | 
| 1301 | 
            +
                  "stateMutability": "nonpayable",
         | 
| 1302 | 
            +
                  "type": "function"
         | 
| 1303 | 
            +
                },
         | 
| 1304 | 
            +
                {
         | 
| 1305 | 
            +
                  "inputs": [
         | 
| 1306 | 
            +
                    {
         | 
| 1307 | 
            +
                      "internalType": "NftId",
         | 
| 1308 | 
            +
                      "name": "targetNftId",
         | 
| 1309 | 
            +
                      "type": "uint96"
         | 
| 1310 | 
            +
                    },
         | 
| 1311 | 
            +
                    {
         | 
| 1312 | 
            +
                      "internalType": "address",
         | 
| 1313 | 
            +
                      "name": "token",
         | 
| 1314 | 
            +
                      "type": "address"
         | 
| 1315 | 
            +
                    },
         | 
| 1316 | 
            +
                    {
         | 
| 1317 | 
            +
                      "internalType": "Amount",
         | 
| 1318 | 
            +
                      "name": "amount",
         | 
| 992 1319 | 
             
                      "type": "uint96"
         | 
| 993 1320 | 
             
                    }
         | 
| 994 1321 | 
             
                  ],
         | 
| 995 | 
            -
                  "name": " | 
| 1322 | 
            +
                  "name": "decreaseTotalValueLocked",
         | 
| 996 1323 | 
             
                  "outputs": [
         | 
| 997 1324 | 
             
                    {
         | 
| 998 | 
            -
                      "internalType": " | 
| 999 | 
            -
                      "name": " | 
| 1000 | 
            -
                      "type": " | 
| 1325 | 
            +
                      "internalType": "Amount",
         | 
| 1326 | 
            +
                      "name": "newBalance",
         | 
| 1327 | 
            +
                      "type": "uint96"
         | 
| 1001 1328 | 
             
                    }
         | 
| 1002 1329 | 
             
                  ],
         | 
| 1003 | 
            -
                  "stateMutability": " | 
| 1330 | 
            +
                  "stateMutability": "nonpayable",
         | 
| 1004 1331 | 
             
                  "type": "function"
         | 
| 1005 1332 | 
             
                },
         | 
| 1006 1333 | 
             
                {
         | 
| 1007 1334 | 
             
                  "inputs": [
         | 
| 1008 1335 | 
             
                    {
         | 
| 1009 1336 | 
             
                      "internalType": "NftId",
         | 
| 1010 | 
            -
                      "name": " | 
| 1337 | 
            +
                      "name": "stakeNftId",
         | 
| 1011 1338 | 
             
                      "type": "uint96"
         | 
| 1012 1339 | 
             
                    }
         | 
| 1013 1340 | 
             
                  ],
         | 
| 1014 | 
            -
                  "name": " | 
| 1341 | 
            +
                  "name": "exists",
         | 
| 1015 1342 | 
             
                  "outputs": [
         | 
| 1016 1343 | 
             
                    {
         | 
| 1017 | 
            -
                      "internalType": " | 
| 1018 | 
            -
                      "name": " | 
| 1019 | 
            -
                      "type": " | 
| 1344 | 
            +
                      "internalType": "bool",
         | 
| 1345 | 
            +
                      "name": "",
         | 
| 1346 | 
            +
                      "type": "bool"
         | 
| 1020 1347 | 
             
                    }
         | 
| 1021 1348 | 
             
                  ],
         | 
| 1022 1349 | 
             
                  "stateMutability": "view",
         | 
| @@ -1025,17 +1352,34 @@ | |
| 1025 1352 | 
             
                {
         | 
| 1026 1353 | 
             
                  "inputs": [
         | 
| 1027 1354 | 
             
                    {
         | 
| 1028 | 
            -
                      "internalType": " | 
| 1029 | 
            -
                      "name": " | 
| 1030 | 
            -
                      "type": " | 
| 1355 | 
            +
                      "internalType": "NftId",
         | 
| 1356 | 
            +
                      "name": "targetNftId",
         | 
| 1357 | 
            +
                      "type": "uint96"
         | 
| 1031 1358 | 
             
                    }
         | 
| 1032 1359 | 
             
                  ],
         | 
| 1033 | 
            -
                  "name": " | 
| 1360 | 
            +
                  "name": "getLimitInfo",
         | 
| 1034 1361 | 
             
                  "outputs": [
         | 
| 1035 1362 | 
             
                    {
         | 
| 1036 | 
            -
                      " | 
| 1037 | 
            -
             | 
| 1038 | 
            -
             | 
| 1363 | 
            +
                      "components": [
         | 
| 1364 | 
            +
                        {
         | 
| 1365 | 
            +
                          "internalType": "Amount",
         | 
| 1366 | 
            +
                          "name": "marginAmount",
         | 
| 1367 | 
            +
                          "type": "uint96"
         | 
| 1368 | 
            +
                        },
         | 
| 1369 | 
            +
                        {
         | 
| 1370 | 
            +
                          "internalType": "Amount",
         | 
| 1371 | 
            +
                          "name": "hardLimitAmount",
         | 
| 1372 | 
            +
                          "type": "uint96"
         | 
| 1373 | 
            +
                        },
         | 
| 1374 | 
            +
                        {
         | 
| 1375 | 
            +
                          "internalType": "Blocknumber",
         | 
| 1376 | 
            +
                          "name": "lastUpdateIn",
         | 
| 1377 | 
            +
                          "type": "uint40"
         | 
| 1378 | 
            +
                        }
         | 
| 1379 | 
            +
                      ],
         | 
| 1380 | 
            +
                      "internalType": "struct IStaking.LimitInfo",
         | 
| 1381 | 
            +
                      "name": "limitInfo",
         | 
| 1382 | 
            +
                      "type": "tuple"
         | 
| 1039 1383 | 
             
                    }
         | 
| 1040 1384 | 
             
                  ],
         | 
| 1041 1385 | 
             
                  "stateMutability": "view",
         | 
| @@ -1044,17 +1388,22 @@ | |
| 1044 1388 | 
             
                {
         | 
| 1045 1389 | 
             
                  "inputs": [
         | 
| 1046 1390 | 
             
                    {
         | 
| 1047 | 
            -
                      "internalType": " | 
| 1048 | 
            -
                      "name": " | 
| 1049 | 
            -
                      "type": " | 
| 1391 | 
            +
                      "internalType": "NftId",
         | 
| 1392 | 
            +
                      "name": "targetNftId",
         | 
| 1393 | 
            +
                      "type": "uint96"
         | 
| 1394 | 
            +
                    },
         | 
| 1395 | 
            +
                    {
         | 
| 1396 | 
            +
                      "internalType": "bool",
         | 
| 1397 | 
            +
                      "name": "includeTargetTypeRequirements",
         | 
| 1398 | 
            +
                      "type": "bool"
         | 
| 1050 1399 | 
             
                    }
         | 
| 1051 1400 | 
             
                  ],
         | 
| 1052 | 
            -
                  "name": " | 
| 1401 | 
            +
                  "name": "getRequiredStakeBalance",
         | 
| 1053 1402 | 
             
                  "outputs": [
         | 
| 1054 1403 | 
             
                    {
         | 
| 1055 | 
            -
                      "internalType": " | 
| 1056 | 
            -
                      "name": "",
         | 
| 1057 | 
            -
                      "type": " | 
| 1404 | 
            +
                      "internalType": "Amount",
         | 
| 1405 | 
            +
                      "name": "requiredStakeAmount",
         | 
| 1406 | 
            +
                      "type": "uint96"
         | 
| 1058 1407 | 
             
                    }
         | 
| 1059 1408 | 
             
                  ],
         | 
| 1060 1409 | 
             
                  "stateMutability": "view",
         | 
| @@ -1063,38 +1412,48 @@ | |
| 1063 1412 | 
             
                {
         | 
| 1064 1413 | 
             
                  "inputs": [
         | 
| 1065 1414 | 
             
                    {
         | 
| 1066 | 
            -
                      "internalType": " | 
| 1067 | 
            -
                      "name": " | 
| 1068 | 
            -
                      "type": " | 
| 1415 | 
            +
                      "internalType": "NftId",
         | 
| 1416 | 
            +
                      "name": "stakeNftId",
         | 
| 1417 | 
            +
                      "type": "uint96"
         | 
| 1069 1418 | 
             
                    }
         | 
| 1070 1419 | 
             
                  ],
         | 
| 1071 | 
            -
                  "name": " | 
| 1420 | 
            +
                  "name": "getStakeInfo",
         | 
| 1072 1421 | 
             
                  "outputs": [
         | 
| 1073 1422 | 
             
                    {
         | 
| 1074 1423 | 
             
                      "components": [
         | 
| 1075 1424 | 
             
                        {
         | 
| 1076 | 
            -
                          "internalType": " | 
| 1077 | 
            -
                          "name": " | 
| 1078 | 
            -
                          "type": " | 
| 1425 | 
            +
                          "internalType": "Amount",
         | 
| 1426 | 
            +
                          "name": "stakedAmount",
         | 
| 1427 | 
            +
                          "type": "uint96"
         | 
| 1079 1428 | 
             
                        },
         | 
| 1080 1429 | 
             
                        {
         | 
| 1081 | 
            -
                          "internalType": " | 
| 1082 | 
            -
                          "name": " | 
| 1083 | 
            -
                          "type": " | 
| 1430 | 
            +
                          "internalType": "Amount",
         | 
| 1431 | 
            +
                          "name": "rewardAmount",
         | 
| 1432 | 
            +
                          "type": "uint96"
         | 
| 1084 1433 | 
             
                        },
         | 
| 1085 1434 | 
             
                        {
         | 
| 1086 | 
            -
                          "internalType": " | 
| 1087 | 
            -
                          "name": " | 
| 1088 | 
            -
                          "type": " | 
| 1435 | 
            +
                          "internalType": "Timestamp",
         | 
| 1436 | 
            +
                          "name": "lockedUntil",
         | 
| 1437 | 
            +
                          "type": "uint40"
         | 
| 1438 | 
            +
                        },
         | 
| 1439 | 
            +
                        {
         | 
| 1440 | 
            +
                          "internalType": "NftId",
         | 
| 1441 | 
            +
                          "name": "targetNftId",
         | 
| 1442 | 
            +
                          "type": "uint96"
         | 
| 1443 | 
            +
                        },
         | 
| 1444 | 
            +
                        {
         | 
| 1445 | 
            +
                          "internalType": "Timestamp",
         | 
| 1446 | 
            +
                          "name": "lastUpdateAt",
         | 
| 1447 | 
            +
                          "type": "uint40"
         | 
| 1089 1448 | 
             
                        },
         | 
| 1090 1449 | 
             
                        {
         | 
| 1091 1450 | 
             
                          "internalType": "Blocknumber",
         | 
| 1092 | 
            -
                          "name": " | 
| 1093 | 
            -
                          "type": " | 
| 1451 | 
            +
                          "name": "lastUpdateIn",
         | 
| 1452 | 
            +
                          "type": "uint40"
         | 
| 1094 1453 | 
             
                        }
         | 
| 1095 1454 | 
             
                      ],
         | 
| 1096 | 
            -
                      "internalType": "struct  | 
| 1097 | 
            -
                      "name": " | 
| 1455 | 
            +
                      "internalType": "struct IStaking.StakeInfo",
         | 
| 1456 | 
            +
                      "name": "stakeInfo",
         | 
| 1098 1457 | 
             
                      "type": "tuple"
         | 
| 1099 1458 | 
             
                    }
         | 
| 1100 1459 | 
             
                  ],
         | 
| @@ -1105,15 +1464,15 @@ | |
| 1105 1464 | 
             
                  "inputs": [
         | 
| 1106 1465 | 
             
                    {
         | 
| 1107 1466 | 
             
                      "internalType": "NftId",
         | 
| 1108 | 
            -
                      "name": " | 
| 1467 | 
            +
                      "name": "stakeNftId",
         | 
| 1109 1468 | 
             
                      "type": "uint96"
         | 
| 1110 1469 | 
             
                    }
         | 
| 1111 1470 | 
             
                  ],
         | 
| 1112 | 
            -
                  "name": " | 
| 1471 | 
            +
                  "name": "getStakeTarget",
         | 
| 1113 1472 | 
             
                  "outputs": [
         | 
| 1114 1473 | 
             
                    {
         | 
| 1115 | 
            -
                      "internalType": " | 
| 1116 | 
            -
                      "name": " | 
| 1474 | 
            +
                      "internalType": "NftId",
         | 
| 1475 | 
            +
                      "name": "targetNftId",
         | 
| 1117 1476 | 
             
                      "type": "uint96"
         | 
| 1118 1477 | 
             
                    }
         | 
| 1119 1478 | 
             
                  ],
         | 
| @@ -1121,19 +1480,13 @@ | |
| 1121 1480 | 
             
                  "type": "function"
         | 
| 1122 1481 | 
             
                },
         | 
| 1123 1482 | 
             
                {
         | 
| 1124 | 
            -
                  "inputs": [
         | 
| 1125 | 
            -
             | 
| 1126 | 
            -
                      "internalType": "NftId",
         | 
| 1127 | 
            -
                      "name": "nftId",
         | 
| 1128 | 
            -
                      "type": "uint96"
         | 
| 1129 | 
            -
                    }
         | 
| 1130 | 
            -
                  ],
         | 
| 1131 | 
            -
                  "name": "getReserveBalance",
         | 
| 1483 | 
            +
                  "inputs": [],
         | 
| 1484 | 
            +
                  "name": "getStakingReader",
         | 
| 1132 1485 | 
             
                  "outputs": [
         | 
| 1133 1486 | 
             
                    {
         | 
| 1134 | 
            -
                      "internalType": " | 
| 1135 | 
            -
                      "name": " | 
| 1136 | 
            -
                      "type": " | 
| 1487 | 
            +
                      "internalType": "contract StakingReader",
         | 
| 1488 | 
            +
                      "name": "stakingReader",
         | 
| 1489 | 
            +
                      "type": "address"
         | 
| 1137 1490 | 
             
                    }
         | 
| 1138 1491 | 
             
                  ],
         | 
| 1139 1492 | 
             
                  "stateMutability": "view",
         | 
| @@ -1142,17 +1495,69 @@ | |
| 1142 1495 | 
             
                {
         | 
| 1143 1496 | 
             
                  "inputs": [
         | 
| 1144 1497 | 
             
                    {
         | 
| 1145 | 
            -
                      "internalType": " | 
| 1146 | 
            -
                      "name": " | 
| 1147 | 
            -
                      "type": " | 
| 1498 | 
            +
                      "internalType": "ObjectType",
         | 
| 1499 | 
            +
                      "name": "targetType",
         | 
| 1500 | 
            +
                      "type": "uint8"
         | 
| 1148 1501 | 
             
                    }
         | 
| 1149 1502 | 
             
                  ],
         | 
| 1150 | 
            -
                  "name": " | 
| 1503 | 
            +
                  "name": "getSupportInfo",
         | 
| 1151 1504 | 
             
                  "outputs": [
         | 
| 1152 1505 | 
             
                    {
         | 
| 1153 | 
            -
                      " | 
| 1154 | 
            -
             | 
| 1155 | 
            -
             | 
| 1506 | 
            +
                      "components": [
         | 
| 1507 | 
            +
                        {
         | 
| 1508 | 
            +
                          "internalType": "bool",
         | 
| 1509 | 
            +
                          "name": "isSupported",
         | 
| 1510 | 
            +
                          "type": "bool"
         | 
| 1511 | 
            +
                        },
         | 
| 1512 | 
            +
                        {
         | 
| 1513 | 
            +
                          "internalType": "bool",
         | 
| 1514 | 
            +
                          "name": "allowNewTargets",
         | 
| 1515 | 
            +
                          "type": "bool"
         | 
| 1516 | 
            +
                        },
         | 
| 1517 | 
            +
                        {
         | 
| 1518 | 
            +
                          "internalType": "bool",
         | 
| 1519 | 
            +
                          "name": "allowCrossChain",
         | 
| 1520 | 
            +
                          "type": "bool"
         | 
| 1521 | 
            +
                        },
         | 
| 1522 | 
            +
                        {
         | 
| 1523 | 
            +
                          "internalType": "Amount",
         | 
| 1524 | 
            +
                          "name": "minStakingAmount",
         | 
| 1525 | 
            +
                          "type": "uint96"
         | 
| 1526 | 
            +
                        },
         | 
| 1527 | 
            +
                        {
         | 
| 1528 | 
            +
                          "internalType": "Amount",
         | 
| 1529 | 
            +
                          "name": "maxStakingAmount",
         | 
| 1530 | 
            +
                          "type": "uint96"
         | 
| 1531 | 
            +
                        },
         | 
| 1532 | 
            +
                        {
         | 
| 1533 | 
            +
                          "internalType": "Seconds",
         | 
| 1534 | 
            +
                          "name": "minLockingPeriod",
         | 
| 1535 | 
            +
                          "type": "uint40"
         | 
| 1536 | 
            +
                        },
         | 
| 1537 | 
            +
                        {
         | 
| 1538 | 
            +
                          "internalType": "Seconds",
         | 
| 1539 | 
            +
                          "name": "maxLockingPeriod",
         | 
| 1540 | 
            +
                          "type": "uint40"
         | 
| 1541 | 
            +
                        },
         | 
| 1542 | 
            +
                        {
         | 
| 1543 | 
            +
                          "internalType": "UFixed",
         | 
| 1544 | 
            +
                          "name": "minRewardRate",
         | 
| 1545 | 
            +
                          "type": "uint160"
         | 
| 1546 | 
            +
                        },
         | 
| 1547 | 
            +
                        {
         | 
| 1548 | 
            +
                          "internalType": "UFixed",
         | 
| 1549 | 
            +
                          "name": "maxRewardRate",
         | 
| 1550 | 
            +
                          "type": "uint160"
         | 
| 1551 | 
            +
                        },
         | 
| 1552 | 
            +
                        {
         | 
| 1553 | 
            +
                          "internalType": "Blocknumber",
         | 
| 1554 | 
            +
                          "name": "lastUpdateIn",
         | 
| 1555 | 
            +
                          "type": "uint40"
         | 
| 1556 | 
            +
                        }
         | 
| 1557 | 
            +
                      ],
         | 
| 1558 | 
            +
                      "internalType": "struct IStaking.SupportInfo",
         | 
| 1559 | 
            +
                      "name": "supportInfo",
         | 
| 1560 | 
            +
                      "type": "tuple"
         | 
| 1156 1561 | 
             
                    }
         | 
| 1157 1562 | 
             
                  ],
         | 
| 1158 1563 | 
             
                  "stateMutability": "view",
         | 
| @@ -1162,45 +1567,89 @@ | |
| 1162 1567 | 
             
                  "inputs": [
         | 
| 1163 1568 | 
             
                    {
         | 
| 1164 1569 | 
             
                      "internalType": "NftId",
         | 
| 1165 | 
            -
                      "name": " | 
| 1570 | 
            +
                      "name": "targetNftId",
         | 
| 1166 1571 | 
             
                      "type": "uint96"
         | 
| 1167 1572 | 
             
                    }
         | 
| 1168 1573 | 
             
                  ],
         | 
| 1169 | 
            -
                  "name": " | 
| 1574 | 
            +
                  "name": "getTargetInfo",
         | 
| 1170 1575 | 
             
                  "outputs": [
         | 
| 1171 1576 | 
             
                    {
         | 
| 1172 | 
            -
                      " | 
| 1173 | 
            -
             | 
| 1174 | 
            -
             | 
| 1577 | 
            +
                      "components": [
         | 
| 1578 | 
            +
                        {
         | 
| 1579 | 
            +
                          "internalType": "Amount",
         | 
| 1580 | 
            +
                          "name": "stakedAmount",
         | 
| 1581 | 
            +
                          "type": "uint96"
         | 
| 1582 | 
            +
                        },
         | 
| 1583 | 
            +
                        {
         | 
| 1584 | 
            +
                          "internalType": "Amount",
         | 
| 1585 | 
            +
                          "name": "rewardAmount",
         | 
| 1586 | 
            +
                          "type": "uint96"
         | 
| 1587 | 
            +
                        },
         | 
| 1588 | 
            +
                        {
         | 
| 1589 | 
            +
                          "internalType": "Blocknumber",
         | 
| 1590 | 
            +
                          "name": "lastUpdateIn",
         | 
| 1591 | 
            +
                          "type": "uint40"
         | 
| 1592 | 
            +
                        },
         | 
| 1593 | 
            +
                        {
         | 
| 1594 | 
            +
                          "internalType": "Amount",
         | 
| 1595 | 
            +
                          "name": "reserveAmount",
         | 
| 1596 | 
            +
                          "type": "uint96"
         | 
| 1597 | 
            +
                        },
         | 
| 1598 | 
            +
                        {
         | 
| 1599 | 
            +
                          "internalType": "Amount",
         | 
| 1600 | 
            +
                          "name": "limitAmount",
         | 
| 1601 | 
            +
                          "type": "uint96"
         | 
| 1602 | 
            +
                        },
         | 
| 1603 | 
            +
                        {
         | 
| 1604 | 
            +
                          "internalType": "Seconds",
         | 
| 1605 | 
            +
                          "name": "lockingPeriod",
         | 
| 1606 | 
            +
                          "type": "uint40"
         | 
| 1607 | 
            +
                        },
         | 
| 1608 | 
            +
                        {
         | 
| 1609 | 
            +
                          "internalType": "ObjectType",
         | 
| 1610 | 
            +
                          "name": "objectType",
         | 
| 1611 | 
            +
                          "type": "uint8"
         | 
| 1612 | 
            +
                        },
         | 
| 1613 | 
            +
                        {
         | 
| 1614 | 
            +
                          "internalType": "UFixed",
         | 
| 1615 | 
            +
                          "name": "rewardRate",
         | 
| 1616 | 
            +
                          "type": "uint160"
         | 
| 1617 | 
            +
                        },
         | 
| 1618 | 
            +
                        {
         | 
| 1619 | 
            +
                          "internalType": "ChainId",
         | 
| 1620 | 
            +
                          "name": "chainId",
         | 
| 1621 | 
            +
                          "type": "uint96"
         | 
| 1622 | 
            +
                        }
         | 
| 1623 | 
            +
                      ],
         | 
| 1624 | 
            +
                      "internalType": "struct IStaking.TargetInfo",
         | 
| 1625 | 
            +
                      "name": "targetInfo",
         | 
| 1626 | 
            +
                      "type": "tuple"
         | 
| 1175 1627 | 
             
                    }
         | 
| 1176 1628 | 
             
                  ],
         | 
| 1177 1629 | 
             
                  "stateMutability": "view",
         | 
| 1178 1630 | 
             
                  "type": "function"
         | 
| 1179 1631 | 
             
                },
         | 
| 1180 1632 | 
             
                {
         | 
| 1181 | 
            -
                  "inputs": [
         | 
| 1633 | 
            +
                  "inputs": [],
         | 
| 1634 | 
            +
                  "name": "getTargetManager",
         | 
| 1635 | 
            +
                  "outputs": [
         | 
| 1182 1636 | 
             
                    {
         | 
| 1183 | 
            -
                      "internalType": " | 
| 1184 | 
            -
                      "name": " | 
| 1185 | 
            -
                      "type": " | 
| 1637 | 
            +
                      "internalType": "contract ITargetLimitHandler",
         | 
| 1638 | 
            +
                      "name": "targetLimitHandler",
         | 
| 1639 | 
            +
                      "type": "address"
         | 
| 1186 1640 | 
             
                    }
         | 
| 1187 1641 | 
             
                  ],
         | 
| 1188 | 
            -
                  " | 
| 1642 | 
            +
                  "stateMutability": "view",
         | 
| 1643 | 
            +
                  "type": "function"
         | 
| 1644 | 
            +
                },
         | 
| 1645 | 
            +
                {
         | 
| 1646 | 
            +
                  "inputs": [],
         | 
| 1647 | 
            +
                  "name": "getTargetSet",
         | 
| 1189 1648 | 
             
                  "outputs": [
         | 
| 1190 1649 | 
             
                    {
         | 
| 1191 | 
            -
                      "internalType": " | 
| 1192 | 
            -
                      "name": " | 
| 1193 | 
            -
                      "type": " | 
| 1194 | 
            -
                    },
         | 
| 1195 | 
            -
                    {
         | 
| 1196 | 
            -
                      "internalType": "Amount",
         | 
| 1197 | 
            -
                      "name": "rewardBalance",
         | 
| 1198 | 
            -
                      "type": "uint96"
         | 
| 1199 | 
            -
                    },
         | 
| 1200 | 
            -
                    {
         | 
| 1201 | 
            -
                      "internalType": "Timestamp",
         | 
| 1202 | 
            -
                      "name": "lastUpdatedAt",
         | 
| 1203 | 
            -
                      "type": "uint40"
         | 
| 1650 | 
            +
                      "internalType": "contract NftIdSet",
         | 
| 1651 | 
            +
                      "name": "targetNftIdSet",
         | 
| 1652 | 
            +
                      "type": "address"
         | 
| 1204 1653 | 
             
                    }
         | 
| 1205 1654 | 
             
                  ],
         | 
| 1206 1655 | 
             
                  "stateMutability": "view",
         | 
| @@ -1209,9 +1658,9 @@ | |
| 1209 1658 | 
             
                {
         | 
| 1210 1659 | 
             
                  "inputs": [
         | 
| 1211 1660 | 
             
                    {
         | 
| 1212 | 
            -
                      "internalType": " | 
| 1661 | 
            +
                      "internalType": "ChainId",
         | 
| 1213 1662 | 
             
                      "name": "chainId",
         | 
| 1214 | 
            -
                      "type": " | 
| 1663 | 
            +
                      "type": "uint96"
         | 
| 1215 1664 | 
             
                    },
         | 
| 1216 1665 | 
             
                    {
         | 
| 1217 1666 | 
             
                      "internalType": "address",
         | 
| @@ -1219,44 +1668,94 @@ | |
| 1219 1668 | 
             
                      "type": "address"
         | 
| 1220 1669 | 
             
                    }
         | 
| 1221 1670 | 
             
                  ],
         | 
| 1222 | 
            -
                  "name": " | 
| 1671 | 
            +
                  "name": "getTokenInfo",
         | 
| 1223 1672 | 
             
                  "outputs": [
         | 
| 1224 1673 | 
             
                    {
         | 
| 1225 | 
            -
                      " | 
| 1226 | 
            -
             | 
| 1227 | 
            -
             | 
| 1674 | 
            +
                      "components": [
         | 
| 1675 | 
            +
                        {
         | 
| 1676 | 
            +
                          "internalType": "UFixed",
         | 
| 1677 | 
            +
                          "name": "stakingRate",
         | 
| 1678 | 
            +
                          "type": "uint160"
         | 
| 1679 | 
            +
                        },
         | 
| 1680 | 
            +
                        {
         | 
| 1681 | 
            +
                          "internalType": "Blocknumber",
         | 
| 1682 | 
            +
                          "name": "lastUpdateIn",
         | 
| 1683 | 
            +
                          "type": "uint40"
         | 
| 1684 | 
            +
                        }
         | 
| 1685 | 
            +
                      ],
         | 
| 1686 | 
            +
                      "internalType": "struct IStaking.TokenInfo",
         | 
| 1687 | 
            +
                      "name": "tokenInfo",
         | 
| 1688 | 
            +
                      "type": "tuple"
         | 
| 1228 1689 | 
             
                    }
         | 
| 1229 1690 | 
             
                  ],
         | 
| 1230 1691 | 
             
                  "stateMutability": "view",
         | 
| 1231 1692 | 
             
                  "type": "function"
         | 
| 1232 1693 | 
             
                },
         | 
| 1233 1694 | 
             
                {
         | 
| 1234 | 
            -
                  "inputs": [ | 
| 1235 | 
            -
                  "name": "getStakingReader",
         | 
| 1236 | 
            -
                  "outputs": [
         | 
| 1695 | 
            +
                  "inputs": [
         | 
| 1237 1696 | 
             
                    {
         | 
| 1238 | 
            -
                      "internalType": " | 
| 1239 | 
            -
                      "name": " | 
| 1697 | 
            +
                      "internalType": "NftId",
         | 
| 1698 | 
            +
                      "name": "targetNftId",
         | 
| 1699 | 
            +
                      "type": "uint96"
         | 
| 1700 | 
            +
                    },
         | 
| 1701 | 
            +
                    {
         | 
| 1702 | 
            +
                      "internalType": "address",
         | 
| 1703 | 
            +
                      "name": "token",
         | 
| 1240 1704 | 
             
                      "type": "address"
         | 
| 1241 1705 | 
             
                    }
         | 
| 1242 1706 | 
             
                  ],
         | 
| 1707 | 
            +
                  "name": "getTvlInfo",
         | 
| 1708 | 
            +
                  "outputs": [
         | 
| 1709 | 
            +
                    {
         | 
| 1710 | 
            +
                      "components": [
         | 
| 1711 | 
            +
                        {
         | 
| 1712 | 
            +
                          "internalType": "Amount",
         | 
| 1713 | 
            +
                          "name": "tvlAmount",
         | 
| 1714 | 
            +
                          "type": "uint96"
         | 
| 1715 | 
            +
                        },
         | 
| 1716 | 
            +
                        {
         | 
| 1717 | 
            +
                          "internalType": "Amount",
         | 
| 1718 | 
            +
                          "name": "tvlBaselineAmount",
         | 
| 1719 | 
            +
                          "type": "uint96"
         | 
| 1720 | 
            +
                        },
         | 
| 1721 | 
            +
                        {
         | 
| 1722 | 
            +
                          "internalType": "uint16",
         | 
| 1723 | 
            +
                          "name": "updatesCounter",
         | 
| 1724 | 
            +
                          "type": "uint16"
         | 
| 1725 | 
            +
                        },
         | 
| 1726 | 
            +
                        {
         | 
| 1727 | 
            +
                          "internalType": "Blocknumber",
         | 
| 1728 | 
            +
                          "name": "lastUpdateIn",
         | 
| 1729 | 
            +
                          "type": "uint40"
         | 
| 1730 | 
            +
                        }
         | 
| 1731 | 
            +
                      ],
         | 
| 1732 | 
            +
                      "internalType": "struct IStaking.TvlInfo",
         | 
| 1733 | 
            +
                      "name": "tvlInfo",
         | 
| 1734 | 
            +
                      "type": "tuple"
         | 
| 1735 | 
            +
                    }
         | 
| 1736 | 
            +
                  ],
         | 
| 1243 1737 | 
             
                  "stateMutability": "view",
         | 
| 1244 1738 | 
             
                  "type": "function"
         | 
| 1245 1739 | 
             
                },
         | 
| 1246 1740 | 
             
                {
         | 
| 1247 1741 | 
             
                  "inputs": [
         | 
| 1248 1742 | 
             
                    {
         | 
| 1249 | 
            -
                      "internalType": " | 
| 1250 | 
            -
                      "name": " | 
| 1251 | 
            -
                      "type": " | 
| 1743 | 
            +
                      "internalType": "ChainId",
         | 
| 1744 | 
            +
                      "name": "chainId",
         | 
| 1745 | 
            +
                      "type": "uint96"
         | 
| 1746 | 
            +
                    },
         | 
| 1747 | 
            +
                    {
         | 
| 1748 | 
            +
                      "internalType": "address",
         | 
| 1749 | 
            +
                      "name": "token",
         | 
| 1750 | 
            +
                      "type": "address"
         | 
| 1252 1751 | 
             
                    }
         | 
| 1253 1752 | 
             
                  ],
         | 
| 1254 | 
            -
                  "name": " | 
| 1753 | 
            +
                  "name": "hasTokenInfo",
         | 
| 1255 1754 | 
             
                  "outputs": [
         | 
| 1256 1755 | 
             
                    {
         | 
| 1257 | 
            -
                      "internalType": " | 
| 1258 | 
            -
                      "name": " | 
| 1259 | 
            -
                      "type": " | 
| 1756 | 
            +
                      "internalType": "bool",
         | 
| 1757 | 
            +
                      "name": "",
         | 
| 1758 | 
            +
                      "type": "bool"
         | 
| 1260 1759 | 
             
                    }
         | 
| 1261 1760 | 
             
                  ],
         | 
| 1262 1761 | 
             
                  "stateMutability": "view",
         | 
| @@ -1266,68 +1765,52 @@ | |
| 1266 1765 | 
             
                  "inputs": [
         | 
| 1267 1766 | 
             
                    {
         | 
| 1268 1767 | 
             
                      "internalType": "NftId",
         | 
| 1269 | 
            -
                      "name": " | 
| 1270 | 
            -
                      "type": "uint96"
         | 
| 1271 | 
            -
                    }
         | 
| 1272 | 
            -
                  ],
         | 
| 1273 | 
            -
                  "name": "getTargetBalances",
         | 
| 1274 | 
            -
                  "outputs": [
         | 
| 1275 | 
            -
                    {
         | 
| 1276 | 
            -
                      "internalType": "Amount",
         | 
| 1277 | 
            -
                      "name": "stakeBalance",
         | 
| 1768 | 
            +
                      "name": "targetNftId",
         | 
| 1278 1769 | 
             
                      "type": "uint96"
         | 
| 1279 1770 | 
             
                    },
         | 
| 1280 1771 | 
             
                    {
         | 
| 1281 | 
            -
                      "internalType": " | 
| 1282 | 
            -
                      "name": " | 
| 1283 | 
            -
                      "type": " | 
| 1772 | 
            +
                      "internalType": "address",
         | 
| 1773 | 
            +
                      "name": "token",
         | 
| 1774 | 
            +
                      "type": "address"
         | 
| 1284 1775 | 
             
                    },
         | 
| 1285 1776 | 
             
                    {
         | 
| 1286 1777 | 
             
                      "internalType": "Amount",
         | 
| 1287 | 
            -
                      "name": " | 
| 1778 | 
            +
                      "name": "amount",
         | 
| 1288 1779 | 
             
                      "type": "uint96"
         | 
| 1289 | 
            -
                    },
         | 
| 1290 | 
            -
                    {
         | 
| 1291 | 
            -
                      "internalType": "Blocknumber",
         | 
| 1292 | 
            -
                      "name": "lastUpdatedIn",
         | 
| 1293 | 
            -
                      "type": "uint32"
         | 
| 1294 1780 | 
             
                    }
         | 
| 1295 1781 | 
             
                  ],
         | 
| 1296 | 
            -
                  " | 
| 1297 | 
            -
                  "type": "function"
         | 
| 1298 | 
            -
                },
         | 
| 1299 | 
            -
                {
         | 
| 1300 | 
            -
                  "inputs": [],
         | 
| 1301 | 
            -
                  "name": "getTargetNftIdSet",
         | 
| 1782 | 
            +
                  "name": "increaseTotalValueLocked",
         | 
| 1302 1783 | 
             
                  "outputs": [
         | 
| 1303 1784 | 
             
                    {
         | 
| 1304 | 
            -
                      "internalType": " | 
| 1305 | 
            -
                      "name": " | 
| 1306 | 
            -
                      "type": " | 
| 1785 | 
            +
                      "internalType": "Amount",
         | 
| 1786 | 
            +
                      "name": "newBalance",
         | 
| 1787 | 
            +
                      "type": "uint96"
         | 
| 1307 1788 | 
             
                    }
         | 
| 1308 1789 | 
             
                  ],
         | 
| 1309 | 
            -
                  "stateMutability": " | 
| 1790 | 
            +
                  "stateMutability": "nonpayable",
         | 
| 1310 1791 | 
             
                  "type": "function"
         | 
| 1311 1792 | 
             
                },
         | 
| 1312 1793 | 
             
                {
         | 
| 1313 1794 | 
             
                  "inputs": [
         | 
| 1314 | 
            -
                    {
         | 
| 1315 | 
            -
                      "internalType": "NftId",
         | 
| 1316 | 
            -
                      "name": "nftId",
         | 
| 1317 | 
            -
                      "type": "uint96"
         | 
| 1318 | 
            -
                    },
         | 
| 1319 1795 | 
             
                    {
         | 
| 1320 1796 | 
             
                      "internalType": "address",
         | 
| 1321 | 
            -
                      "name": " | 
| 1797 | 
            +
                      "name": "targetLimitHandler",
         | 
| 1322 1798 | 
             
                      "type": "address"
         | 
| 1323 1799 | 
             
                    }
         | 
| 1324 1800 | 
             
                  ],
         | 
| 1325 | 
            -
                  "name": " | 
| 1801 | 
            +
                  "name": "initialize",
         | 
| 1802 | 
            +
                  "outputs": [],
         | 
| 1803 | 
            +
                  "stateMutability": "nonpayable",
         | 
| 1804 | 
            +
                  "type": "function"
         | 
| 1805 | 
            +
                },
         | 
| 1806 | 
            +
                {
         | 
| 1807 | 
            +
                  "inputs": [],
         | 
| 1808 | 
            +
                  "name": "isConsumingScheduledOp",
         | 
| 1326 1809 | 
             
                  "outputs": [
         | 
| 1327 1810 | 
             
                    {
         | 
| 1328 | 
            -
                      "internalType": " | 
| 1329 | 
            -
                      "name": " | 
| 1330 | 
            -
                      "type": " | 
| 1811 | 
            +
                      "internalType": "bytes4",
         | 
| 1812 | 
            +
                      "name": "",
         | 
| 1813 | 
            +
                      "type": "bytes4"
         | 
| 1331 1814 | 
             
                    }
         | 
| 1332 1815 | 
             
                  ],
         | 
| 1333 1816 | 
             
                  "stateMutability": "view",
         | 
| @@ -1336,12 +1819,12 @@ | |
| 1336 1819 | 
             
                {
         | 
| 1337 1820 | 
             
                  "inputs": [
         | 
| 1338 1821 | 
             
                    {
         | 
| 1339 | 
            -
                      "internalType": " | 
| 1340 | 
            -
                      "name": " | 
| 1341 | 
            -
                      "type": " | 
| 1822 | 
            +
                      "internalType": "NftId",
         | 
| 1823 | 
            +
                      "name": "stakeNftId",
         | 
| 1824 | 
            +
                      "type": "uint96"
         | 
| 1342 1825 | 
             
                    }
         | 
| 1343 1826 | 
             
                  ],
         | 
| 1344 | 
            -
                  "name": " | 
| 1827 | 
            +
                  "name": "isStakeLocked",
         | 
| 1345 1828 | 
             
                  "outputs": [
         | 
| 1346 1829 | 
             
                    {
         | 
| 1347 1830 | 
             
                      "internalType": "bool",
         | 
| @@ -1365,7 +1848,7 @@ | |
| 1365 1848 | 
             
                      "type": "uint96"
         | 
| 1366 1849 | 
             
                    }
         | 
| 1367 1850 | 
             
                  ],
         | 
| 1368 | 
            -
                  "name": " | 
| 1851 | 
            +
                  "name": "refillRewardReserves",
         | 
| 1369 1852 | 
             
                  "outputs": [
         | 
| 1370 1853 | 
             
                    {
         | 
| 1371 1854 | 
             
                      "internalType": "Amount",
         | 
| @@ -1380,21 +1863,47 @@ | |
| 1380 1863 | 
             
                  "inputs": [
         | 
| 1381 1864 | 
             
                    {
         | 
| 1382 1865 | 
             
                      "internalType": "NftId",
         | 
| 1383 | 
            -
                      "name": " | 
| 1866 | 
            +
                      "name": "stakeNftId",
         | 
| 1384 1867 | 
             
                      "type": "uint96"
         | 
| 1385 1868 | 
             
                    },
         | 
| 1869 | 
            +
                    {
         | 
| 1870 | 
            +
                      "internalType": "bool",
         | 
| 1871 | 
            +
                      "name": "updateRewards",
         | 
| 1872 | 
            +
                      "type": "bool"
         | 
| 1873 | 
            +
                    }
         | 
| 1874 | 
            +
                  ],
         | 
| 1875 | 
            +
                  "name": "restakeRewards",
         | 
| 1876 | 
            +
                  "outputs": [],
         | 
| 1877 | 
            +
                  "stateMutability": "nonpayable",
         | 
| 1878 | 
            +
                  "type": "function"
         | 
| 1879 | 
            +
                },
         | 
| 1880 | 
            +
                {
         | 
| 1881 | 
            +
                  "inputs": [
         | 
| 1882 | 
            +
                    {
         | 
| 1883 | 
            +
                      "internalType": "address",
         | 
| 1884 | 
            +
                      "name": "newAuthority",
         | 
| 1885 | 
            +
                      "type": "address"
         | 
| 1886 | 
            +
                    }
         | 
| 1887 | 
            +
                  ],
         | 
| 1888 | 
            +
                  "name": "setAuthority",
         | 
| 1889 | 
            +
                  "outputs": [],
         | 
| 1890 | 
            +
                  "stateMutability": "nonpayable",
         | 
| 1891 | 
            +
                  "type": "function"
         | 
| 1892 | 
            +
                },
         | 
| 1893 | 
            +
                {
         | 
| 1894 | 
            +
                  "inputs": [
         | 
| 1386 1895 | 
             
                    {
         | 
| 1387 1896 | 
             
                      "internalType": "NftId",
         | 
| 1388 1897 | 
             
                      "name": "targetNftId",
         | 
| 1389 1898 | 
             
                      "type": "uint96"
         | 
| 1390 1899 | 
             
                    },
         | 
| 1391 1900 | 
             
                    {
         | 
| 1392 | 
            -
                      "internalType": " | 
| 1393 | 
            -
                      "name": " | 
| 1394 | 
            -
                      "type": " | 
| 1901 | 
            +
                      "internalType": "Seconds",
         | 
| 1902 | 
            +
                      "name": "lockingPeriod",
         | 
| 1903 | 
            +
                      "type": "uint40"
         | 
| 1395 1904 | 
             
                    }
         | 
| 1396 1905 | 
             
                  ],
         | 
| 1397 | 
            -
                  "name": " | 
| 1906 | 
            +
                  "name": "setLockingPeriod",
         | 
| 1398 1907 | 
             
                  "outputs": [],
         | 
| 1399 1908 | 
             
                  "stateMutability": "nonpayable",
         | 
| 1400 1909 | 
             
                  "type": "function"
         | 
| @@ -1406,94 +1915,147 @@ | |
| 1406 1915 | 
             
                      "name": "targetNftId",
         | 
| 1407 1916 | 
             
                      "type": "uint96"
         | 
| 1408 1917 | 
             
                    },
         | 
| 1409 | 
            -
                    {
         | 
| 1410 | 
            -
                      "internalType": "UFixed",
         | 
| 1411 | 
            -
                      "name": "stakingRate",
         | 
| 1412 | 
            -
                      "type": "uint256"
         | 
| 1413 | 
            -
                    },
         | 
| 1414 | 
            -
                    {
         | 
| 1415 | 
            -
                      "internalType": "address",
         | 
| 1416 | 
            -
                      "name": "token",
         | 
| 1417 | 
            -
                      "type": "address"
         | 
| 1418 | 
            -
                    },
         | 
| 1419 1918 | 
             
                    {
         | 
| 1420 1919 | 
             
                      "internalType": "Amount",
         | 
| 1421 | 
            -
                      "name": " | 
| 1920 | 
            +
                      "name": "stakeLimitAmount",
         | 
| 1422 1921 | 
             
                      "type": "uint96"
         | 
| 1423 1922 | 
             
                    }
         | 
| 1424 1923 | 
             
                  ],
         | 
| 1425 | 
            -
                  "name": " | 
| 1924 | 
            +
                  "name": "setMaxStakedAmount",
         | 
| 1426 1925 | 
             
                  "outputs": [
         | 
| 1427 1926 | 
             
                    {
         | 
| 1428 1927 | 
             
                      "internalType": "Amount",
         | 
| 1429 | 
            -
                      "name": " | 
| 1928 | 
            +
                      "name": "oldLimitAmount",
         | 
| 1430 1929 | 
             
                      "type": "uint96"
         | 
| 1930 | 
            +
                    },
         | 
| 1931 | 
            +
                    {
         | 
| 1932 | 
            +
                      "internalType": "Blocknumber",
         | 
| 1933 | 
            +
                      "name": "lastUpdatedIn",
         | 
| 1934 | 
            +
                      "type": "uint40"
         | 
| 1431 1935 | 
             
                    }
         | 
| 1432 1936 | 
             
                  ],
         | 
| 1433 1937 | 
             
                  "stateMutability": "nonpayable",
         | 
| 1434 1938 | 
             
                  "type": "function"
         | 
| 1435 1939 | 
             
                },
         | 
| 1436 1940 | 
             
                {
         | 
| 1437 | 
            -
                  "inputs": [ | 
| 1438 | 
            -
                  "name": "isConsumingScheduledOp",
         | 
| 1439 | 
            -
                  "outputs": [
         | 
| 1941 | 
            +
                  "inputs": [
         | 
| 1440 1942 | 
             
                    {
         | 
| 1441 | 
            -
                      "internalType": " | 
| 1442 | 
            -
                      "name": "",
         | 
| 1443 | 
            -
                      "type": " | 
| 1943 | 
            +
                      "internalType": "NftId",
         | 
| 1944 | 
            +
                      "name": "targetNftId",
         | 
| 1945 | 
            +
                      "type": "uint96"
         | 
| 1946 | 
            +
                    },
         | 
| 1947 | 
            +
                    {
         | 
| 1948 | 
            +
                      "internalType": "UFixed",
         | 
| 1949 | 
            +
                      "name": "rewardRate",
         | 
| 1950 | 
            +
                      "type": "uint160"
         | 
| 1444 1951 | 
             
                    }
         | 
| 1445 1952 | 
             
                  ],
         | 
| 1446 | 
            -
                  " | 
| 1953 | 
            +
                  "name": "setRewardRate",
         | 
| 1954 | 
            +
                  "outputs": [],
         | 
| 1955 | 
            +
                  "stateMutability": "nonpayable",
         | 
| 1447 1956 | 
             
                  "type": "function"
         | 
| 1448 1957 | 
             
                },
         | 
| 1449 1958 | 
             
                {
         | 
| 1450 1959 | 
             
                  "inputs": [
         | 
| 1451 1960 | 
             
                    {
         | 
| 1452 | 
            -
                      "internalType": " | 
| 1453 | 
            -
                      "name": " | 
| 1454 | 
            -
                      "type": " | 
| 1961 | 
            +
                      "internalType": "ChainId",
         | 
| 1962 | 
            +
                      "name": "chainId",
         | 
| 1963 | 
            +
                      "type": "uint96"
         | 
| 1455 1964 | 
             
                    },
         | 
| 1456 1965 | 
             
                    {
         | 
| 1457 | 
            -
                      "internalType": " | 
| 1458 | 
            -
                      "name": " | 
| 1459 | 
            -
                      "type": " | 
| 1966 | 
            +
                      "internalType": "address",
         | 
| 1967 | 
            +
                      "name": "token",
         | 
| 1968 | 
            +
                      "type": "address"
         | 
| 1460 1969 | 
             
                    },
         | 
| 1461 1970 | 
             
                    {
         | 
| 1462 | 
            -
                      "internalType": " | 
| 1463 | 
            -
                      "name": " | 
| 1464 | 
            -
                      "type": " | 
| 1971 | 
            +
                      "internalType": "UFixed",
         | 
| 1972 | 
            +
                      "name": "stakingRate",
         | 
| 1973 | 
            +
                      "type": "uint160"
         | 
| 1465 1974 | 
             
                    }
         | 
| 1466 1975 | 
             
                  ],
         | 
| 1467 | 
            -
                  "name": " | 
| 1976 | 
            +
                  "name": "setStakingRate",
         | 
| 1468 1977 | 
             
                  "outputs": [
         | 
| 1469 1978 | 
             
                    {
         | 
| 1470 | 
            -
                      "internalType": " | 
| 1471 | 
            -
                      "name": "",
         | 
| 1472 | 
            -
                      "type": " | 
| 1979 | 
            +
                      "internalType": "UFixed",
         | 
| 1980 | 
            +
                      "name": "oldStakingRate",
         | 
| 1981 | 
            +
                      "type": "uint160"
         | 
| 1982 | 
            +
                    },
         | 
| 1983 | 
            +
                    {
         | 
| 1984 | 
            +
                      "internalType": "Blocknumber",
         | 
| 1985 | 
            +
                      "name": "lastUpdatedIn",
         | 
| 1986 | 
            +
                      "type": "uint40"
         | 
| 1473 1987 | 
             
                    }
         | 
| 1474 1988 | 
             
                  ],
         | 
| 1475 | 
            -
                  "stateMutability": " | 
| 1989 | 
            +
                  "stateMutability": "nonpayable",
         | 
| 1476 1990 | 
             
                  "type": "function"
         | 
| 1477 1991 | 
             
                },
         | 
| 1478 1992 | 
             
                {
         | 
| 1479 1993 | 
             
                  "inputs": [
         | 
| 1480 1994 | 
             
                    {
         | 
| 1481 | 
            -
                      "internalType": " | 
| 1482 | 
            -
                      "name": " | 
| 1483 | 
            -
                      "type": " | 
| 1995 | 
            +
                      "internalType": "address",
         | 
| 1996 | 
            +
                      "name": "reader",
         | 
| 1997 | 
            +
                      "type": "address"
         | 
| 1998 | 
            +
                    }
         | 
| 1999 | 
            +
                  ],
         | 
| 2000 | 
            +
                  "name": "setStakingReader",
         | 
| 2001 | 
            +
                  "outputs": [],
         | 
| 2002 | 
            +
                  "stateMutability": "nonpayable",
         | 
| 2003 | 
            +
                  "type": "function"
         | 
| 2004 | 
            +
                },
         | 
| 2005 | 
            +
                {
         | 
| 2006 | 
            +
                  "inputs": [
         | 
| 2007 | 
            +
                    {
         | 
| 2008 | 
            +
                      "internalType": "ObjectType",
         | 
| 2009 | 
            +
                      "name": "targetType",
         | 
| 2010 | 
            +
                      "type": "uint8"
         | 
| 1484 2011 | 
             
                    },
         | 
| 1485 2012 | 
             
                    {
         | 
| 1486 | 
            -
                      "internalType": " | 
| 1487 | 
            -
                      "name": " | 
| 2013 | 
            +
                      "internalType": "bool",
         | 
| 2014 | 
            +
                      "name": "isSupported",
         | 
| 2015 | 
            +
                      "type": "bool"
         | 
| 2016 | 
            +
                    },
         | 
| 2017 | 
            +
                    {
         | 
| 2018 | 
            +
                      "internalType": "bool",
         | 
| 2019 | 
            +
                      "name": "allowNewTargets",
         | 
| 2020 | 
            +
                      "type": "bool"
         | 
| 2021 | 
            +
                    },
         | 
| 2022 | 
            +
                    {
         | 
| 2023 | 
            +
                      "internalType": "bool",
         | 
| 2024 | 
            +
                      "name": "allowCrossChain",
         | 
| 2025 | 
            +
                      "type": "bool"
         | 
| 2026 | 
            +
                    },
         | 
| 2027 | 
            +
                    {
         | 
| 2028 | 
            +
                      "internalType": "Amount",
         | 
| 2029 | 
            +
                      "name": "minStakingAmount",
         | 
| 1488 2030 | 
             
                      "type": "uint96"
         | 
| 1489 2031 | 
             
                    },
         | 
| 1490 2032 | 
             
                    {
         | 
| 1491 2033 | 
             
                      "internalType": "Amount",
         | 
| 1492 | 
            -
                      "name": " | 
| 2034 | 
            +
                      "name": "maxStakingAmount",
         | 
| 1493 2035 | 
             
                      "type": "uint96"
         | 
| 2036 | 
            +
                    },
         | 
| 2037 | 
            +
                    {
         | 
| 2038 | 
            +
                      "internalType": "Seconds",
         | 
| 2039 | 
            +
                      "name": "minLockingPeriod",
         | 
| 2040 | 
            +
                      "type": "uint40"
         | 
| 2041 | 
            +
                    },
         | 
| 2042 | 
            +
                    {
         | 
| 2043 | 
            +
                      "internalType": "Seconds",
         | 
| 2044 | 
            +
                      "name": "maxLockingPeriod",
         | 
| 2045 | 
            +
                      "type": "uint40"
         | 
| 2046 | 
            +
                    },
         | 
| 2047 | 
            +
                    {
         | 
| 2048 | 
            +
                      "internalType": "UFixed",
         | 
| 2049 | 
            +
                      "name": "minRewardRate",
         | 
| 2050 | 
            +
                      "type": "uint160"
         | 
| 2051 | 
            +
                    },
         | 
| 2052 | 
            +
                    {
         | 
| 2053 | 
            +
                      "internalType": "UFixed",
         | 
| 2054 | 
            +
                      "name": "maxRewardRate",
         | 
| 2055 | 
            +
                      "type": "uint160"
         | 
| 1494 2056 | 
             
                    }
         | 
| 1495 2057 | 
             
                  ],
         | 
| 1496 | 
            -
                  "name": " | 
| 2058 | 
            +
                  "name": "setSupportInfo",
         | 
| 1497 2059 | 
             
                  "outputs": [],
         | 
| 1498 2060 | 
             
                  "stateMutability": "nonpayable",
         | 
| 1499 2061 | 
             
                  "type": "function"
         | 
| @@ -1502,11 +2064,11 @@ | |
| 1502 2064 | 
             
                  "inputs": [
         | 
| 1503 2065 | 
             
                    {
         | 
| 1504 2066 | 
             
                      "internalType": "address",
         | 
| 1505 | 
            -
                      "name": " | 
| 2067 | 
            +
                      "name": "targetLimitHandler",
         | 
| 1506 2068 | 
             
                      "type": "address"
         | 
| 1507 2069 | 
             
                    }
         | 
| 1508 2070 | 
             
                  ],
         | 
| 1509 | 
            -
                  "name": " | 
| 2071 | 
            +
                  "name": "setTargetLimitHandler",
         | 
| 1510 2072 | 
             
                  "outputs": [],
         | 
| 1511 2073 | 
             
                  "stateMutability": "nonpayable",
         | 
| 1512 2074 | 
             
                  "type": "function"
         | 
| @@ -1514,22 +2076,22 @@ | |
| 1514 2076 | 
             
                {
         | 
| 1515 2077 | 
             
                  "inputs": [
         | 
| 1516 2078 | 
             
                    {
         | 
| 1517 | 
            -
                      "internalType": " | 
| 1518 | 
            -
                      "name": " | 
| 1519 | 
            -
                      "type": " | 
| 2079 | 
            +
                      "internalType": "NftId",
         | 
| 2080 | 
            +
                      "name": "targetNftId",
         | 
| 2081 | 
            +
                      "type": "uint96"
         | 
| 1520 2082 | 
             
                    },
         | 
| 1521 2083 | 
             
                    {
         | 
| 1522 | 
            -
                      "internalType": " | 
| 1523 | 
            -
                      "name": " | 
| 1524 | 
            -
                      "type": " | 
| 2084 | 
            +
                      "internalType": "Amount",
         | 
| 2085 | 
            +
                      "name": "marginAmount",
         | 
| 2086 | 
            +
                      "type": "uint96"
         | 
| 1525 2087 | 
             
                    },
         | 
| 1526 2088 | 
             
                    {
         | 
| 1527 | 
            -
                      "internalType": " | 
| 1528 | 
            -
                      "name": " | 
| 1529 | 
            -
                      "type": " | 
| 2089 | 
            +
                      "internalType": "Amount",
         | 
| 2090 | 
            +
                      "name": "hardLimitAmount",
         | 
| 2091 | 
            +
                      "type": "uint96"
         | 
| 1530 2092 | 
             
                    }
         | 
| 1531 2093 | 
             
                  ],
         | 
| 1532 | 
            -
                  "name": " | 
| 2094 | 
            +
                  "name": "setTargetLimits",
         | 
| 1533 2095 | 
             
                  "outputs": [],
         | 
| 1534 2096 | 
             
                  "stateMutability": "nonpayable",
         | 
| 1535 2097 | 
             
                  "type": "function"
         | 
| @@ -1537,61 +2099,65 @@ | |
| 1537 2099 | 
             
                {
         | 
| 1538 2100 | 
             
                  "inputs": [
         | 
| 1539 2101 | 
             
                    {
         | 
| 1540 | 
            -
                      "internalType": " | 
| 1541 | 
            -
                      "name": " | 
| 1542 | 
            -
                      "type": " | 
| 2102 | 
            +
                      "internalType": "NftId",
         | 
| 2103 | 
            +
                      "name": "stakeNftId",
         | 
| 2104 | 
            +
                      "type": "uint96"
         | 
| 1543 2105 | 
             
                    },
         | 
| 1544 2106 | 
             
                    {
         | 
| 1545 | 
            -
                      "internalType": " | 
| 1546 | 
            -
                      "name": " | 
| 1547 | 
            -
                      "type": " | 
| 1548 | 
            -
                    }
         | 
| 1549 | 
            -
                  ],
         | 
| 1550 | 
            -
                  "name": "toKey32",
         | 
| 1551 | 
            -
                  "outputs": [
         | 
| 2107 | 
            +
                      "internalType": "bool",
         | 
| 2108 | 
            +
                      "name": "updateRewards",
         | 
| 2109 | 
            +
                      "type": "bool"
         | 
| 2110 | 
            +
                    },
         | 
| 1552 2111 | 
             
                    {
         | 
| 1553 | 
            -
                      "internalType": " | 
| 1554 | 
            -
                      "name": "",
         | 
| 1555 | 
            -
                      "type": " | 
| 2112 | 
            +
                      "internalType": "bool",
         | 
| 2113 | 
            +
                      "name": "restakeRewards",
         | 
| 2114 | 
            +
                      "type": "bool"
         | 
| 2115 | 
            +
                    },
         | 
| 2116 | 
            +
                    {
         | 
| 2117 | 
            +
                      "internalType": "Seconds",
         | 
| 2118 | 
            +
                      "name": "additionalLockingPeriod",
         | 
| 2119 | 
            +
                      "type": "uint40"
         | 
| 2120 | 
            +
                    },
         | 
| 2121 | 
            +
                    {
         | 
| 2122 | 
            +
                      "internalType": "Amount",
         | 
| 2123 | 
            +
                      "name": "stakeAmount",
         | 
| 2124 | 
            +
                      "type": "uint96"
         | 
| 1556 2125 | 
             
                    }
         | 
| 1557 2126 | 
             
                  ],
         | 
| 1558 | 
            -
                  " | 
| 2127 | 
            +
                  "name": "stake",
         | 
| 2128 | 
            +
                  "outputs": [],
         | 
| 2129 | 
            +
                  "stateMutability": "nonpayable",
         | 
| 1559 2130 | 
             
                  "type": "function"
         | 
| 1560 2131 | 
             
                },
         | 
| 1561 2132 | 
             
                {
         | 
| 1562 2133 | 
             
                  "inputs": [
         | 
| 1563 2134 | 
             
                    {
         | 
| 1564 2135 | 
             
                      "internalType": "NftId",
         | 
| 1565 | 
            -
                      "name": " | 
| 2136 | 
            +
                      "name": "stakeNftId",
         | 
| 1566 2137 | 
             
                      "type": "uint96"
         | 
| 1567 2138 | 
             
                    },
         | 
| 1568 2139 | 
             
                    {
         | 
| 1569 | 
            -
                      "internalType": " | 
| 1570 | 
            -
                      "name": " | 
| 1571 | 
            -
                      "type": " | 
| 2140 | 
            +
                      "internalType": "bool",
         | 
| 2141 | 
            +
                      "name": "updateRewards",
         | 
| 2142 | 
            +
                      "type": "bool"
         | 
| 1572 2143 | 
             
                    },
         | 
| 1573 2144 | 
             
                    {
         | 
| 1574 | 
            -
                      "internalType": " | 
| 1575 | 
            -
                      "name": " | 
| 1576 | 
            -
                      "type": " | 
| 2145 | 
            +
                      "internalType": "bool",
         | 
| 2146 | 
            +
                      "name": "restakeRewards",
         | 
| 2147 | 
            +
                      "type": "bool"
         | 
| 1577 2148 | 
             
                    },
         | 
| 1578 2149 | 
             
                    {
         | 
| 1579 2150 | 
             
                      "internalType": "Amount",
         | 
| 1580 | 
            -
                      "name": " | 
| 2151 | 
            +
                      "name": "maxUnstakeAmount",
         | 
| 1581 2152 | 
             
                      "type": "uint96"
         | 
| 1582 2153 | 
             
                    }
         | 
| 1583 2154 | 
             
                  ],
         | 
| 1584 | 
            -
                  "name": " | 
| 2155 | 
            +
                  "name": "unstake",
         | 
| 1585 2156 | 
             
                  "outputs": [
         | 
| 1586 2157 | 
             
                    {
         | 
| 1587 2158 | 
             
                      "internalType": "Amount",
         | 
| 1588 2159 | 
             
                      "name": "unstakedAmount",
         | 
| 1589 2160 | 
             
                      "type": "uint96"
         | 
| 1590 | 
            -
                    },
         | 
| 1591 | 
            -
                    {
         | 
| 1592 | 
            -
                      "internalType": "Amount",
         | 
| 1593 | 
            -
                      "name": "claimedAmount",
         | 
| 1594 | 
            -
                      "type": "uint96"
         | 
| 1595 2161 | 
             
                    }
         | 
| 1596 2162 | 
             
                  ],
         | 
| 1597 2163 | 
             
                  "stateMutability": "nonpayable",
         | 
| @@ -1603,45 +2169,29 @@ | |
| 1603 2169 | 
             
                      "internalType": "NftId",
         | 
| 1604 2170 | 
             
                      "name": "stakeNftId",
         | 
| 1605 2171 | 
             
                      "type": "uint96"
         | 
| 1606 | 
            -
                    },
         | 
| 1607 | 
            -
                    {
         | 
| 1608 | 
            -
                      "components": [
         | 
| 1609 | 
            -
                        {
         | 
| 1610 | 
            -
                          "internalType": "Timestamp",
         | 
| 1611 | 
            -
                          "name": "lockedUntil",
         | 
| 1612 | 
            -
                          "type": "uint40"
         | 
| 1613 | 
            -
                        }
         | 
| 1614 | 
            -
                      ],
         | 
| 1615 | 
            -
                      "internalType": "struct IStaking.StakeInfo",
         | 
| 1616 | 
            -
                      "name": "stakeInfo",
         | 
| 1617 | 
            -
                      "type": "tuple"
         | 
| 1618 2172 | 
             
                    }
         | 
| 1619 2173 | 
             
                  ],
         | 
| 1620 | 
            -
                  "name": " | 
| 2174 | 
            +
                  "name": "updateRewards",
         | 
| 1621 2175 | 
             
                  "outputs": [],
         | 
| 1622 2176 | 
             
                  "stateMutability": "nonpayable",
         | 
| 1623 2177 | 
             
                  "type": "function"
         | 
| 1624 2178 | 
             
                },
         | 
| 1625 2179 | 
             
                {
         | 
| 1626 2180 | 
             
                  "inputs": [
         | 
| 1627 | 
            -
                    {
         | 
| 1628 | 
            -
                      "internalType": "NftId",
         | 
| 1629 | 
            -
                      "name": "nftId",
         | 
| 1630 | 
            -
                      "type": "uint96"
         | 
| 1631 | 
            -
                    },
         | 
| 1632 2181 | 
             
                    {
         | 
| 1633 2182 | 
             
                      "internalType": "NftId",
         | 
| 1634 2183 | 
             
                      "name": "targetNftId",
         | 
| 1635 2184 | 
             
                      "type": "uint96"
         | 
| 1636 | 
            -
                    } | 
| 2185 | 
            +
                    }
         | 
| 2186 | 
            +
                  ],
         | 
| 2187 | 
            +
                  "name": "updateTargetLimit",
         | 
| 2188 | 
            +
                  "outputs": [
         | 
| 1637 2189 | 
             
                    {
         | 
| 1638 2190 | 
             
                      "internalType": "Amount",
         | 
| 1639 | 
            -
                      "name": " | 
| 2191 | 
            +
                      "name": "stakeLimitAmount",
         | 
| 1640 2192 | 
             
                      "type": "uint96"
         | 
| 1641 2193 | 
             
                    }
         | 
| 1642 2194 | 
             
                  ],
         | 
| 1643 | 
            -
                  "name": "updateRewards",
         | 
| 1644 | 
            -
                  "outputs": [],
         | 
| 1645 2195 | 
             
                  "stateMutability": "nonpayable",
         | 
| 1646 2196 | 
             
                  "type": "function"
         | 
| 1647 2197 | 
             
                },
         | 
| @@ -1653,51 +2203,59 @@ | |
| 1653 2203 | 
             
                      "type": "uint96"
         | 
| 1654 2204 | 
             
                    },
         | 
| 1655 2205 | 
             
                    {
         | 
| 1656 | 
            -
                      " | 
| 1657 | 
            -
             | 
| 1658 | 
            -
             | 
| 1659 | 
            -
             | 
| 1660 | 
            -
             | 
| 1661 | 
            -
             | 
| 1662 | 
            -
             | 
| 1663 | 
            -
             | 
| 1664 | 
            -
             | 
| 1665 | 
            -
             | 
| 1666 | 
            -
             | 
| 1667 | 
            -
                        {
         | 
| 1668 | 
            -
                          "internalType": "Seconds",
         | 
| 1669 | 
            -
                          "name": "lockingPeriod",
         | 
| 1670 | 
            -
                          "type": "uint40"
         | 
| 1671 | 
            -
                        },
         | 
| 1672 | 
            -
                        {
         | 
| 1673 | 
            -
                          "internalType": "UFixed",
         | 
| 1674 | 
            -
                          "name": "rewardRate",
         | 
| 1675 | 
            -
                          "type": "uint256"
         | 
| 1676 | 
            -
                        }
         | 
| 1677 | 
            -
                      ],
         | 
| 1678 | 
            -
                      "internalType": "struct IStaking.TargetInfo",
         | 
| 1679 | 
            -
                      "name": "targetInfo",
         | 
| 1680 | 
            -
                      "type": "tuple"
         | 
| 2206 | 
            +
                      "internalType": "Amount",
         | 
| 2207 | 
            +
                      "name": "dipAmount",
         | 
| 2208 | 
            +
                      "type": "uint96"
         | 
| 2209 | 
            +
                    }
         | 
| 2210 | 
            +
                  ],
         | 
| 2211 | 
            +
                  "name": "withdrawRewardReserves",
         | 
| 2212 | 
            +
                  "outputs": [
         | 
| 2213 | 
            +
                    {
         | 
| 2214 | 
            +
                      "internalType": "Amount",
         | 
| 2215 | 
            +
                      "name": "newReserveBalance",
         | 
| 2216 | 
            +
                      "type": "uint96"
         | 
| 1681 2217 | 
             
                    }
         | 
| 1682 2218 | 
             
                  ],
         | 
| 1683 | 
            -
                  "name": "updateTarget",
         | 
| 1684 | 
            -
                  "outputs": [],
         | 
| 1685 2219 | 
             
                  "stateMutability": "nonpayable",
         | 
| 1686 2220 | 
             
                  "type": "function"
         | 
| 1687 2221 | 
             
                }
         | 
| 1688 2222 | 
             
              ],
         | 
| 1689 | 
            -
              "bytecode": "0x608060405234801561000f575f80fd5b50604051615b2c380380615b2c83398101604081905261002e91610e15565b33610038816102ae565b50610041610301565b6100a9826001600160a01b031663e2b178a06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610080573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100a49190610e4d565b610324565b600480546001600160a01b038085166001600160a01b03199283161790925560068054928416929091169190911790556040516100e590610df1565b604051809103905ff0801580156100fe573d5f803e3d5ffd5b50600580546001600160a01b0319166001600160a01b039290921691909117905560405163efac97cf60e01b815261044d60048201526102a79073__$94a2c899be079b00d952d0d84fffaa5c34$__9063efac97cf90602401602060405180830381865af4158015610172573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101969190610e83565b60405180608001604052806101af6103a160201b60201c565b60ff1681526020016001815260200173__$fb6c7635e3c1acf7e7d82c7d43e7a24671$__63c6edc3dd6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610205573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102299190610e9e565b64ffffffffff16815260200173__$fb6c7635e3c1acf7e7d82c7d43e7a24671$__63f87bf3736040518163ffffffff1660e01b8152600401602060405180830381865af415801561027c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102a09190610ec2565b90526103a6565b50506110c2565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9060200160405180910390a150565b61030e60205b600161058a565b610318600b610307565b6103226021610307565b565b5f5433906001600160a01b0316811461035f5760405162d1953b60e31b81526001600160a01b03821660048201526024015b60405180910390fd5b816001600160a01b03163b5f03610394576040516361798f2f60e11b81526001600160a01b0383166004820152602401610356565b61039d826102ae565b5050565b600190565b60408051630711349960e31b81526001600160601b0384166004820152602060248201819052915161047d9273__$94a2c899be079b00d952d0d84fffaa5c34$__92633889a4c892604480830193928290030181865af415801561040c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104309190610ec2565b60408051845160ff16602080830191909152850151818301529084015164ffffffffff16606080830191909152840151608082015260a00160408051601f198184030181529190526105cc565b73__$f55ca14f1ddce1b88fe30d23ae45f595f4$__63e8b7afe36040518163ffffffff1660e01b8152600401602060405180830381865af41580156104c4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104e89190610ed9565b6001600160601b0383165f908152601060205260409020805463ffffffff191663ffffffff929092169190911790556105208261098f565b6005546040516346f0e8a760e11b81526001600160601b03841660048201526001600160a01b0390911690638de1d14e906024015f604051808303815f87803b15801561056b575f80fd5b505af115801561057d573d5f803e3d5ffd5b505050505050565b905090565b60ff8281165f9081526001602052604090205416156105ab576105ab610efc565b60ff9182165f908152600160205260409020805460ff191691909216179055565b604051634b00e98f60e11b8152600481018390525f9073__$4b9aaffa8d044614668dad578b824b8eee$__90639601d31e90602401602060405180830381865af415801561061c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106409190610f10565b60405163037c8cb160e51b815260ff8216600482015290915073__$0d958e68cba84670b8f4a3f2f2686b1c6b$__90636f91962090602401602060405180830381865af4158015610693573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b79190610f30565b156106da576040516307014a8d60e51b815260ff82166004820152602401610356565b5f83815260036020526040908190208054915163b2466acf60e01b815261010090920460ff1660048301529073__$2e1fcf62e7a1b3c2a33bdf2228c171b2be$__9063b2466acf90602401602060405180830381865af4158015610740573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107649190610f30565b1561078e57604051633f92eac960e21b81526004810185905260ff83166024820152604401610356565b61079782610cf9565b6107b957604051636cb0978b60e11b815260ff83166004820152602401610356565b5f6107c2610d85565b60ff8085165f908152600160205260408120549293509116835460ff86811661ffff1990921691909117610100918316919091021762010000600160501b0319166201000063ffffffff851690810263ffffffff60301b1916919091176601000000000000919091021784555f87815260036020526040902090915060010161084b8682610fe7565b50604051634b00e98f60e11b8152600481018790527ffcb75eb7b317145f986c763e1a3eab5f9b4dbaf7955504f70f986d799c3ab39d9073__$4b9aaffa8d044614668dad578b824b8eee$__90639601d31e90602401602060405180830381865af41580156108bc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108e09190610f10565b604051630713cfad60e31b81526004810189905273__$4b9aaffa8d044614668dad578b824b8eee$__9063389e7d6890602401602060405180830381865af415801561092e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061095291906110a1565b6040805160ff938416815260ff199290921660208301529184168183015233606082015232608082015290519081900360a00190a1505050505050565b6001600160601b0381165f908152600c60205260409081902054905163d15b589360e01b815263ffffffff909116600482015273__$f55ca14f1ddce1b88fe30d23ae45f595f4$__9063d15b589390602401602060405180830381865af41580156109fc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a209190610f30565b15610a49576040516366d785a360e11b81526001600160601b0382166004820152602401610356565b73__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610a90573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ab49190610e83565b60085f836001600160601b03166001600160601b031681526020019081526020015f205f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610b41573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b659190610e83565b60095f836001600160601b03166001600160601b031681526020019081526020015f205f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610bf2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c169190610e83565b600a5f836001600160601b03166001600160601b031681526020019081526020015f205f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__63e8b7afe36040518163ffffffff1660e01b8152600401602060405180830381865af4158015610ca3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cc79190610ed9565b6001600160601b03919091165f908152600c60205260409020805463ffffffff191663ffffffff909216919091179055565b60ff8181165f9081526001602052604080822054905163b2466acf60e01b8152921660048301529073__$2e1fcf62e7a1b3c2a33bdf2228c171b2be$__9063b2466acf90602401602060405180830381865af4158015610d5b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d7f9190610f30565b92915050565b5f73__$f55ca14f1ddce1b88fe30d23ae45f595f4$__63e8b7afe36040518163ffffffff1660e01b8152600401602060405180830381865af4158015610dcd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105859190610ed9565b61074c806153e083390190565b6001600160a01b0381168114610e12575f80fd5b50565b5f8060408385031215610e26575f80fd5b8251610e3181610dfe565b6020840151909250610e4281610dfe565b809150509250929050565b5f60208284031215610e5d575f80fd5b8151610e6881610dfe565b9392505050565b6001600160601b0381168114610e12575f80fd5b5f60208284031215610e93575f80fd5b8151610e6881610e6f565b5f60208284031215610eae575f80fd5b815164ffffffffff81168114610e68575f80fd5b5f60208284031215610ed2575f80fd5b5051919050565b5f60208284031215610ee9575f80fd5b815163ffffffff81168114610e68575f80fd5b634e487b7160e01b5f52600160045260245ffd5b5f60208284031215610f20575f80fd5b815160ff81168114610e68575f80fd5b5f60208284031215610f40575f80fd5b81518015158114610e68575f80fd5b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680610f7757607f821691505b602082108103610f9557634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610fe257805f5260205f20601f840160051c81016020851015610fc05750805b601f840160051c820191505b81811015610fdf575f8155600101610fcc565b50505b505050565b81516001600160401b0381111561100057611000610f4f565b6110148161100e8454610f63565b84610f9b565b6020601f821160018114611046575f831561102f5750848201515b5f19600385901b1c1916600184901b178455610fdf565b5f84815260208120601f198516915b828110156110755787850151825560209485019460019092019101611055565b508482101561109257868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f602082840312156110b1575f80fd5b815160ff1981168114610e68575f80fd5b614311806110cf5f395ff3fe608060405234801561000f575f80fd5b506004361061023f575f3560e01c80637b21556111610135578063bf7e214f116100b4578063eb98e8a011610079578063eb98e8a01461074f578063f48016ce14610782578063fb14543214610795578063fb39549c146107c0578063ff86054d146107d3575f80fd5b8063bf7e214f146106a9578063d7537c37146106b9578063dfb7e337146106cc578063e067350f14610711578063e9e96c701461073c575f80fd5b80639a726364116100fa5780639a72636414610562578063a5961b4c14610575578063b04fa50614610601578063beba11201461066b578063bf1db3f914610696575f80fd5b80637b2155611461045b578063828227de1461049e5780638eaa6ac0146104e15780638fb360371461050157806391a2059f14610522575f80fd5b80634b51da0c116101c157806362841be21161018657806362841be2146103e65780636291423a146103f9578063717f1b981461040a57806377f91851146104355780637a9e5e4b14610448575f80fd5b80634b51da0c146103685780634f9c1c091461037b57806354f1fa811461038e57806354f6127f146103a15780635cce3fa1146103c1575f80fd5b806330f441991161020757806330f44199146102f95780633861317f1461030c57806338a699a41461031f5780633fbdfe32146103425780634a2101d114610355575f80fd5b806309648a9d146102435780630d35818114610281578063136cfef7146102a65780631807a488146102d15780632df8be9b146102e6575b5f80fd5b61026a610251366004613a57565b5f90815260036020526040902054610100900460ff1690565b60405160ff90911681526020015b60405180910390f35b61026a61028f366004613a7f565b60ff9081165f908152600160205260409020541690565b6102b96102b4366004613aae565b61084d565b6040516001600160601b039091168152602001610278565b6102e46102df366004613b0b565b610934565b005b6102e46102f4366004613b0b565b610a20565b6102e4610307366004613ba2565b610a33565b6102e461031a366004613ba2565b610bd8565b61033261032d366004613a57565b610ce1565b6040519015158152602001610278565b6102b9610350366004613ba2565b610d6f565b6102e4610363366004613ba2565b610ef3565b6102e4610376366004613bea565b610fcf565b610332610389366004613c5c565b611087565b6102e461039c366004613c77565b61111f565b6103b46103af366004613a57565b611278565b6040516102789190613cfe565b6005546001600160a01b03165b6040516001600160a01b039091168152602001610278565b6102e46103f4366004613bea565b61131a565b6006546001600160a01b03166103ce565b6102b9610418366004613c5c565b6001600160601b039081165f908152600960205260409020541690565b6102b9610443366004613d26565b6113eb565b6102e4610456366004613d69565b611647565b610490610469366004613d82565b5f9182526007602090815260408084206001600160a01b0393909316845291905290205490565b604051908152602001610278565b6104cc6104ac366004613c5c565b6001600160601b03165f908152600c602052604090205463ffffffff1690565b60405163ffffffff9091168152602001610278565b6104f46104ef366004613a57565b6116bb565b6040516102789190613dac565b6105096117dc565b6040516001600160e01b03199091168152602001610278565b6102b9610530366004613e12565b6001600160601b039182165f908152600d602090815260408083206001600160a01b0394909416835292905220541690565b6102e4610570366004613e3c565b611800565b6105f4610583366004613a57565b60408051608080820183525f8083526020808401829052838501829052606093840182905294815260038552839020835191820184525460ff80821683526101008204169482019490945263ffffffff620100008504811693820193909352600160301b9093049091169082015290565b6040516102789190613e6f565b61065b61060f366004613c5c565b6001600160601b039081165f908152600860209081526040808320546009835281842054600a845282852054600c90945291909320549284169490841693919091169163ffffffff1690565b6040516102789493929190613eb0565b6102b9610679366004613c5c565b6001600160601b039081165f908152600f60205260409020541690565b6103326106a4366004613a7f565b61182e565b5f546001600160a01b03166103ce565b6102b96106c7366004613aae565b61187a565b6106fb6106da366004613c5c565b6001600160601b03165f908152600b602052604090205464ffffffffff1690565b60405164ffffffffff9091168152602001610278565b6102b961071f366004613c5c565b6001600160601b039081165f908152600a60205260409020541690565b61033261074a366004613edf565b6118fb565b61076261075d366004613f1c565b61192e565b604080516001600160601b03938416815292909116602083015201610278565b610490610790366004613f69565b611bd0565b6102b96107a3366004613c5c565b6001600160601b039081165f908152600860205260409020541690565b6102b96107ce366004613d26565b611c50565b6108206107e1366004613c5c565b6001600160601b039081165f908152600860209081526040808320546009835281842054600b9093529220549183169392169164ffffffffff90911690565b604080516001600160601b03948516815293909216602084015264ffffffffff1690820152606001610278565b5f61085a335b5f36611f6e565b6001600160601b038084165f908152600a60205260409020541661087e8382612064565b156108bc576040516301a4b29960e11b81526001600160601b0380861660048301528085166024830152821660448201526064015b60405180910390fd5b6001600160601b038085165f908152600a60205260409020546108e09116846120e8565b91505f6108ed858461216d565b90507fd3383e52279373b5cfb83f1b6d4bd83e415313626f418a63a24251420d4b96df858585846040516109249493929190613eb0565b60405180910390a1505092915050565b61093d33610853565b60408051630711349960e31b81526001600160601b03841660048201526020602482018190529151610a1c9273__$94a2c899be079b00d952d0d84fffaa5c34$__92633889a4c892604480830193928290030181865af41580156109a3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109c79190613f95565b60408051845160ff16602080830191909152850151818301529084015164ffffffffff16606080830191909152840151608082015260a0015b604051602081830303815290604052610a1760ff90565b61230d565b5050565b610a2933610853565b610a1c828261247c565b610a3c33610853565b5f610a468461264b565b6001600160601b038086165f9081526008602090815260408083205460099092529091205492935081169116610af986610a89610a83858561270d565b8761270d565b73__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610ad0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610af49190613fac565b612757565b6001600160601b038086165f90815260086020526040902054610b50918791610b2791610a8391168561270d565b6001600160601b038089165f90815260096020526040902054610b4b9116856120e8565b6128ed565b6001600160601b038681165f8181526008602090815260409182902054825193845286851691840191909152848416918301919091528683166060830152909116608082015263ffffffff841660a08201527ff3a6a30356c886f04fc20380e987b6e55a1e83a7926e1a21ee6001faced599c99060c0015b60405180910390a1505050505050565b610be133610853565b5f610beb8461264b565b6001600160601b038086165f90815260086020526040902054919250610c37918691610c1891168561270d565b6001600160601b038088165f9081526009602052604090205416612757565b6001600160601b038084165f90815260086020526040902054610c80918591610c6191168561270d565b6001600160601b038087165f90815260096020526040902054166128ed565b6001600160601b038085165f90815260086020526040908190205490517fa206257df4168139cff2e8dea9c50f2226429e81d904d5ee2b14e4f4656f30f592610cd3928892879291909116908690613eb0565b60405180910390a150505050565b5f8181526003602052604080822054905163b2466acf60e01b815261010090910460ff16600482015273__$2e1fcf62e7a1b3c2a33bdf2228c171b2be$__9063b2466acf906024015b602060405180830381865af4158015610d45573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d699190613fd6565b92915050565b5f610d7933610853565b5f610d838561264b565b6001600160601b038681165f9081526009602052604090819020549051637931c81160e01b815286831660048201529116602482015290915073__$3bac17678db7ae928afa209f2f44deec9c$__90637931c81190604401602060405180830381865af4158015610df6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e1a9190613fac565b6001600160601b038087165f90815260086020908152604080832054600990925290912054929450610e5792889291821691610af49116866120e8565b6001600160601b038085165f90815260086020908152604080832054600990925290912054610e90928792811691610b4b9116866120e8565b6001600160601b038086165f90815260096020526040908190205490517f18d78bbaea8f24a2aaa409f9f507204233a315575899fe3a802e20f15e81f5ef92610ee3928992879291909116908690613eb0565b60405180910390a1509392505050565b610efc33610853565b5f610f068461264b565b6001600160601b038086165f90815260086020908152604080832054600990925290912054929350610f4392879291821691610af491168661270d565b6001600160601b038084165f90815260086020908152604080832054600990925290912054610f7c928692811691610b4b91168661270d565b6001600160601b038085165f90815260096020526040908190205490517f9824c1941460e3f3dca0007309b88a95f4fb73bd9628ee7ad0a528b100983c7992610cd3928892879291909116908690613eb0565b610fd833610853565b610a1c73__$94a2c899be079b00d952d0d84fffaa5c34$__633889a4c86001600160601b03851660216040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff166024820152604401602060405180830381865af415801561104b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061106f9190613f95565b60408051845164ffffffffff16602082015201610a00565b5f610d6973__$94a2c899be079b00d952d0d84fffaa5c34$__633889a4c86001600160601b03851660216040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff166024820152604401602060405180830381865af41580156110fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061032d9190613f95565b60ff8381165f908152600160205260409081902054905163037c8cb160e51b81529116600482015273__$2e1fcf62e7a1b3c2a33bdf2228c171b2be$__90636f91962090602401602060405180830381865af4158015611181573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111a59190613fd6565b156111ce5760405163ea01ac1f60e01b815230600482015260ff841660248201526044016108b3565b60ff8085169083161461120f5760405163bae587e160e01b815230600482015260ff80851660248301528086166044830152831660648201526084016108b3565b60ff8084165f908152600260209081526040808320888516845282528083208585168452909152902054166112725760405163f33b49a360e01b815230600482015260ff80851660248301528086166044830152821660648201526084016108b3565b50505050565b5f81815260036020526040902060010180546060919061129790613fef565b80601f01602080910402602001604051908101604052809291908181526020018280546112c390613fef565b801561130e5780601f106112e55761010080835404028352916020019161130e565b820191905f5260205f20905b8154815290600101906020018083116112f157829003601f168201915b50505050509050919050565b61132333610853565b6113e273__$94a2c899be079b00d952d0d84fffaa5c34$__633889a4c86001600160601b03851660216040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff166024820152604401602060405180830381865af4158015611396573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113ba9190613f95565b60408051845164ffffffffff166020820152015b60405160208183030381529060405261297d565b610a1c82612d38565b5f6113f533610853565b5f805f611402888761309e565b925092509250611412828661270d565b604051632c34efe560e11b81526001600160601b0382166004820152602481018990529094505f9073__$3bac17678db7ae928afa209f2f44deec9c$__90635869dfca90604401602060405180830381865af4158015611474573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114989190613fac565b6001600160601b038a81165f818152600d602090815260408083206001600160a01b038e1680855290835281842080546001600160601b03199081168e891617909155858552600e84528285209185529083528184208054909116878716179055928252600f9052205491925061151a916115149116846120e8565b8261270d565b600f5f8b6001600160601b03166001600160601b031681526020019081526020015f205f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__63e8b7afe36040518163ffffffff1660e01b8152600401602060405180830381865af41580156115a7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115cb9190614038565b6001600160601b038a165f9081526010602052604090819020805463ffffffff191663ffffffff9390931692909217909155517f4bd4ee2e64e523eeed623045709eb9e7828b3b191c978feb362e5b600c7d4dd990611633908b908a908a908a908a90614053565b60405180910390a150505050949350505050565b5f5433906001600160a01b0316811461167d5760405162d1953b60e31b81526001600160a01b03821660048201526024016108b3565b816001600160a01b03163b5f036116b2576040516361798f2f60e11b81526001600160a01b03831660048201526024016108b3565b610a1c826131ae565b6040805160c0810182525f91810182815260608083018490526080830184905260a0830193909352815260208101919091525f82815260036020908152604091829020825160c081018452815460ff808216958301958652610100820416606083015263ffffffff62010000820481166080840152600160301b9091041660a0820152928352600181018054919284019161175590613fef565b80601f016020809104026020016040519081016040528092919081815260200182805461178190613fef565b80156117cc5780601f106117a3576101008083540402835291602001916117cc565b820191905f5260205f20905b8154815290600101906020018083116117af57829003601f168201915b5050505050815250509050919050565b5f8054600160a01b900460ff166117f257505f90565b638fb3603760e01b5b905090565b61180933610853565b5f9283526007602090815260408085206001600160a01b039094168552929052912055565b60ff8181165f9081526001602052604080822054905163b2466acf60e01b8152921660048301529073__$2e1fcf62e7a1b3c2a33bdf2228c171b2be$__9063b2466acf90602401610d2a565b5f61188433610853565b6001600160601b038084165f908152600a60205260409020546118a891168361270d565b90505f6118b5848361216d565b90507f15ce01bb869f4f5440b921c09a1c73e043269a1e29f44d11a7a899ed51fa67b8848484846040516118ec9493929190613eb0565b60405180910390a15092915050565b60ff8084165f908152600260209081526040808320868516845282528083208585168452909152902054165b9392505050565b5f8061193933610853565b5f6119438761264b565b6001600160601b038881165f9081526008602052604090819020549051637931c81160e01b815288831660048201529116602482015290915073__$3bac17678db7ae928afa209f2f44deec9c$__90637931c81190604401602060405180830381865af41580156119b6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119da9190613fac565b6001600160601b038881165f9081526009602052604090819020549051637931c81160e01b815287831660048201529116602482015290935073__$3bac17678db7ae928afa209f2f44deec9c$__90637931c81190604401602060405180830381865af4158015611a4d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a719190613fac565b6001600160601b038089165f90815260086020526040902054919350611ac2918991611a9e9116866120e8565b6001600160601b03808b165f90815260096020526040902054610af49116866120e8565b6001600160601b038087165f90815260086020526040902054611b10918891611aec9116866120e8565b6001600160601b03808a165f90815260096020526040902054610b4b9116866120e8565b6001600160601b038088165f90815260086020526040908190205490517f4d67c2532a3443dbc1612538256c1fb6566afcd9729bf99254b26aef3b953cdd92611b63928b92889291909116908690613eb0565b60405180910390a16001600160601b038088165f90815260096020526040908190205490517f18d78bbaea8f24a2aaa409f9f507204233a315575899fe3a802e20f15e81f5ef92611bbe928b92879291909116908690613eb0565b60405180910390a15094509492505050565b604051637a400b6760e11b815260ff8316600482015260ff19821660248201525f9073__$4b9aaffa8d044614668dad578b824b8eee$__9063f48016ce90604401602060405180830381865af4158015611c2c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119279190613f95565b5f611c5a33610853565b5f805f611c67888761309e565b925092509250611c7782866120e8565b6040516355205f0f60e01b81526001600160601b03821660048201529094505f9073__$3bac17678db7ae928afa209f2f44deec9c$__90634c41dd9690611d09908b9084906355205f0f90602401602060405180830381865af4158015611ce0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d049190613f95565b613201565b604051632255341b60e11b8152600481019190915273__$bf7bc340cbb9229ef1de2c568356e67902$__906344aa683690602401602060405180830381865af4158015611d58573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d7c9190613f95565b6040518263ffffffff1660e01b8152600401611d9a91815260200190565b602060405180830381865af4158015611db5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dd99190613fac565b6001600160601b038a81165f818152600d602090815260408083206001600160a01b038e1680855290835281842080546001600160601b03199081168e891617909155858552600e84528285209185529083528184208054909116878716179055928252600f90522054919250611e55916115149116846120e8565b600f5f8b6001600160601b03166001600160601b031681526020019081526020015f205f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__63e8b7afe36040518163ffffffff1660e01b8152600401602060405180830381865af4158015611ee2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f069190614038565b6001600160601b038a165f9081526010602052604090819020805463ffffffff191663ffffffff9390931692909217909155517ff9be485b3e2a5d1dc6dadfab8a9962c32cc55ac95a026b980452f8b13872378990611633908b908a908a908a908a90614053565b5f80611fa1611f845f546001600160a01b031690565b8630611f9360045f898b614094565b611f9c916140bb565b613215565b915091508161205d5763ffffffff81161561203a575f805460ff60a01b198116600160a01b17909155604051634a63ebf760e11b81526001600160a01b03909116906394c7d7ee90611ffb908890889088906004016140f3565b5f604051808303815f87803b158015612012575f80fd5b505af1158015612024573d5f803e3d5ffd5b50505f805460ff60a01b191690555061205d9050565b60405162d1953b60e31b81526001600160a01b03861660048201526024016108b3565b5050505050565b604051632601631360e21b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__906398058c4c90604401602060405180830381865af41580156120c4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119279190613fd6565b6040516363cf551160e11b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__9063c79eaa22906044015b602060405180830381865af4158015612149573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119279190613fac565b6001600160601b0382165f908152600c602052604080822054905163010bd26b60e61b815263ffffffff909116600482015273__$f55ca14f1ddce1b88fe30d23ae45f595f4$__906342f49ac090602401602060405180830381865af41580156121d9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121fd9190613fd6565b15612226576040516364692acf60e01b81526001600160601b03841660048201526024016108b3565b506001600160601b038281165f908152600c6020908152604080832054600a83529281902080546001600160601b03191694861694909417909355825163e8b7afe360e01b8152925163ffffffff9092169273__$f55ca14f1ddce1b88fe30d23ae45f595f4$__9263e8b7afe3926004808401939192918290030181865af41580156122b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122d89190614038565b6001600160601b03939093165f908152600c60205260409020805463ffffffff191663ffffffff909416939093179092555090565b5f612318848361331d565b5f858152600360205260409020909150600101612335848261417b565b50604051634b00e98f60e11b8152600481018590527f7bd0ab7f1746bd20a814d6705a46876c84f1aa2d35c80d8c173e268bd6d4b26c9073__$4b9aaffa8d044614668dad578b824b8eee$__90639601d31e90602401602060405180830381865af41580156123a6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123ca9190614236565b604051630713cfad60e31b81526004810187905273__$4b9aaffa8d044614668dad578b824b8eee$__9063389e7d6890602401602060405180830381865af4158015612418573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061243c9190614251565b6040805160ff938416815260ff1990921660208301529185169181019190915233606082015232608082015263ffffffff831660a082015260c001610cd3565b60408051630711349960e31b81526001600160601b038416600482015260206024820181905291516125439273__$94a2c899be079b00d952d0d84fffaa5c34$__92633889a4c892604480830193928290030181865af41580156124e2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125069190613f95565b60408051845160ff16602080830191909152850151818301529084015164ffffffffff16606080830191909152840151608082015260a0016113ce565b73__$f55ca14f1ddce1b88fe30d23ae45f595f4$__63e8b7afe36040518163ffffffff1660e01b8152600401602060405180830381865af415801561258a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125ae9190614038565b6001600160601b0383165f908152601060205260409020805463ffffffff191663ffffffff929092169190911790556125e68261361a565b6005546040516346f0e8a760e11b81526001600160601b03841660048201526001600160a01b0390911690638de1d14e906024015f604051808303815f87803b158015612631575f80fd5b505af1158015612643573d5f803e3d5ffd5b505050505050565b6001600160601b0381165f908152600c60205260409081902054905163010bd26b60e61b815263ffffffff909116600482018190529073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__906342f49ac090602401602060405180830381865af41580156126bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126df9190613fd6565b1561270857604051631f7e16df60e01b81526001600160601b03831660048201526024016108b3565b919050565b60405163274acb3560e01b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__9063274acb359060440161212e565b6001600160601b038381165f90815260086020908152604080832080546001600160601b031990811688871617909155600983529281902080549093169385169390931790915581516356db0c1960e11b8152915173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9263adb618329260048083019391928290030181865af41580156127e7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061280b919061426c565b600b5f856001600160601b03166001600160601b031681526020019081526020015f205f6101000a81548164ffffffffff021916908364ffffffffff16021790555073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__63e8b7afe36040518163ffffffff1660e01b8152600401602060405180830381865af4158015612894573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128b89190614038565b6001600160601b03939093165f908152600c60205260409020805463ffffffff191663ffffffff909416939093179092555050565b6001600160601b038381165f90815260086020908152604080832080546001600160601b0319908116888716179091556009835292819020805490931693851693909317909155815163e8b7afe360e01b8152915173__$f55ca14f1ddce1b88fe30d23ae45f595f4$__9263e8b7afe39260048083019391928290030181865af4158015612894573d5f803e3d5ffd5b604051634b00e98f60e11b8152600481018390525f9073__$4b9aaffa8d044614668dad578b824b8eee$__90639601d31e90602401602060405180830381865af41580156129cd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129f19190614236565b60405163037c8cb160e51b815260ff8216600482015290915073__$0d958e68cba84670b8f4a3f2f2686b1c6b$__90636f91962090602401602060405180830381865af4158015612a44573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a689190613fd6565b15612a8b576040516307014a8d60e51b815260ff821660048201526024016108b3565b5f83815260036020526040908190208054915163b2466acf60e01b815261010090920460ff1660048301529073__$2e1fcf62e7a1b3c2a33bdf2228c171b2be$__9063b2466acf90602401602060405180830381865af4158015612af1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b159190613fd6565b15612b3f57604051633f92eac960e21b81526004810185905260ff831660248201526044016108b3565b612b488261182e565b612b6a57604051636cb0978b60e11b815260ff831660048201526024016108b3565b5f612b7361392e565b60ff8085165f908152600160205260408120549293509116835460ff86811661ffff1990921691909117610100918316919091021769ffffffffffffffff000019166201000063ffffffff851690810269ffffffff000000000000191691909117600160301b919091021784555f878152600360205260409020909150600101612bfd868261417b565b50604051634b00e98f60e11b8152600481018790527ffcb75eb7b317145f986c763e1a3eab5f9b4dbaf7955504f70f986d799c3ab39d9073__$4b9aaffa8d044614668dad578b824b8eee$__90639601d31e90602401602060405180830381865af4158015612c6e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c929190614236565b604051630713cfad60e31b81526004810189905273__$4b9aaffa8d044614668dad578b824b8eee$__9063389e7d6890602401602060405180830381865af4158015612ce0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d049190614251565b6040805160ff938416815260ff1990921660208301529184169181019190915233606082015232608082015260a001610bc8565b6001600160601b0381165f908152600c60205260409081902054905163d15b589360e01b815263ffffffff909116600482015273__$f55ca14f1ddce1b88fe30d23ae45f595f4$__9063d15b589390602401602060405180830381865af4158015612da5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612dc99190613fd6565b15612df2576040516366d785a360e11b81526001600160601b03821660048201526024016108b3565b73__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015612e39573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e5d9190613fac565b60085f836001600160601b03166001600160601b031681526020019081526020015f205f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015612eea573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f0e9190613fac565b60095f836001600160601b03166001600160601b031681526020019081526020015f205f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015612f9b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612fbf919061426c565b600b5f836001600160601b03166001600160601b031681526020019081526020015f205f6101000a81548164ffffffffff021916908364ffffffffff16021790555073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__63e8b7afe36040518163ffffffff1660e01b8152600401602060405180830381865af4158015613048573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061306c9190614038565b6001600160601b03919091165f908152600c60205260409020805463ffffffff191663ffffffff909216919091179055565b6001600160601b0382165f9081526010602052604080822054905163010bd26b60e61b815263ffffffff909116600482018190529190819073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__906342f49ac090602401602060405180830381865af4158015613110573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131349190613fd6565b1561315d576040516362540e0360e11b81526001600160601b03861660048201526024016108b3565b50506001600160601b039283165f818152600d602090815260408083206001600160a01b0390961680845295825280832054938352600e825280832095835294905292909220549093918316921690565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9060200160405180910390a150565b5f6119278383670de0b6b3a764000061399a565b6040516001600160a01b03848116602483015283811660448301526001600160e01b0319831660648301525f9182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b179052516132839190614287565b5f60405180830381855afa9150503d805f81146132bb576040519150601f19603f3d011682016040523d82523d5f602084013e6132c0565b606091505b509150915081156133125760408151106132f257808060200190518101906132e8919061429d565b9094509250613312565b6020815110613312578080602001905181019061330f9190613fd6565b93505b505094509492505050565b60405163037c8cb160e51b815260ff821660048201525f9073__$2e1fcf62e7a1b3c2a33bdf2228c171b2be$__90636f91962090602401602060405180830381865af415801561336f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133939190613fd6565b156133b45760405163093b89e160e11b8152600481018490526024016108b3565b505f82815260036020526040908190208054915163037c8cb160e51b8152610100830460ff16600482018190526201000090930463ffffffff16929073__$2e1fcf62e7a1b3c2a33bdf2228c171b2be$__90636f91962090602401602060405180830381865af415801561342a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061344e9190613fd6565b1561346f5760405163566ebf7960e01b8152600481018690526024016108b3565b60ff808516146135ec57815461348b90829060ff16818761111f565b815461ff00191661010060ff861602178255604051634b00e98f60e11b8152600481018690527fe41a93c15e024a0b2371127599959a8e543dd6a8d820238e906c93a3004248fa9073__$4b9aaffa8d044614668dad578b824b8eee$__90639601d31e90602401602060405180830381865af415801561350d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906135319190614236565b604051630713cfad60e31b81526004810188905273__$4b9aaffa8d044614668dad578b824b8eee$__9063389e7d6890602401602060405180830381865af415801561357f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906135a39190614251565b6040805160ff938416815260ff1990921660208301528285169082015290861660608201523360808201523260a082015263ffffffff851660c082015260e00160405180910390a15b6135f461392e565b825463ffffffff91909116620100000265ffffffff000019909116179091555092915050565b6001600160601b0381165f908152600c60205260409081902054905163d15b589360e01b815263ffffffff909116600482015273__$f55ca14f1ddce1b88fe30d23ae45f595f4$__9063d15b589390602401602060405180830381865af4158015613687573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136ab9190613fd6565b156136d4576040516366d785a360e11b81526001600160601b03821660048201526024016108b3565b73__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af415801561371b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061373f9190613fac565b60085f836001600160601b03166001600160601b031681526020019081526020015f205f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af41580156137cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906137f09190613fac565b60095f836001600160601b03166001600160601b031681526020019081526020015f205f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af415801561387d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138a19190613fac565b600a5f836001600160601b03166001600160601b031681526020019081526020015f205f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__63e8b7afe36040518163ffffffff1660e01b8152600401602060405180830381865af4158015613048573d5f803e3d5ffd5b5f73__$f55ca14f1ddce1b88fe30d23ae45f595f4$__63e8b7afe36040518163ffffffff1660e01b8152600401602060405180830381865af4158015613976573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117fb9190614038565b5f80805f19858709858702925082811083820303915050805f036139d1578382816139c7576139c76142c7565b0492505050611927565b8084116139f057604051629540d960e61b815260040160405180910390fd5b5f8486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091025f889003889004909101858311909403939093029303949094049190911702949350505050565b5f60208284031215613a67575f80fd5b5035919050565b60ff81168114613a7c575f80fd5b50565b5f60208284031215613a8f575f80fd5b813561192781613a6e565b6001600160601b0381168114613a7c575f80fd5b5f8060408385031215613abf575f80fd5b8235613aca81613a9a565b91506020830135613ada81613a9a565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b64ffffffffff81168114613a7c575f80fd5b5f8082840360a0811215613b1d575f80fd5b8335613b2881613a9a565b92506080601f1982011215613b3b575f80fd5b506040516080810167ffffffffffffffff81118282101715613b5f57613b5f613ae5565b6040526020840135613b7081613a6e565b8152604084013560208201526060840135613b8a81613af9565b60408201526080939093013560608401525092909150565b5f805f60608486031215613bb4575f80fd5b8335613bbf81613a9a565b92506020840135613bcf81613a9a565b91506040840135613bdf81613a9a565b809150509250925092565b5f808284036040811215613bfc575f80fd5b8335613c0781613a9a565b92506020601f1982011215613c1a575f80fd5b506040516020810167ffffffffffffffff81118282101715613c3e57613c3e613ae5565b6040526020840135613c4f81613af9565b8152919491935090915050565b5f60208284031215613c6c575f80fd5b813561192781613a9a565b5f805f8060808587031215613c8a575f80fd5b8435613c9581613a6e565b93506020850135613ca581613a6e565b92506040850135613cb581613a6e565b91506060850135613cc581613a6e565b939692955090935050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6119276020830184613cd0565b80356001600160a01b0381168114612708575f80fd5b5f805f8060808587031215613d39575f80fd5b8435613d4481613a9a565b935060208501359250613d5960408601613d10565b91506060850135613cc581613a9a565b5f60208284031215613d79575f80fd5b61192782613d10565b5f8060408385031215613d93575f80fd5b82359150613da360208401613d10565b90509250929050565b60208152613df160208201835160ff815116825260ff602082015116602083015263ffffffff604082015116604083015263ffffffff60608201511660608301525050565b5f602083015160a080840152613e0a60c0840182613cd0565b949350505050565b5f8060408385031215613e23575f80fd5b8235613e2e81613a9a565b9150613da360208401613d10565b5f805f60608486031215613e4e575f80fd5b83359250613e5e60208501613d10565b929592945050506040919091013590565b60808101610d69828460ff815116825260ff602082015116602083015263ffffffff604082015116604083015263ffffffff60608201511660608301525050565b6001600160601b03948516815292841660208401529216604082015263ffffffff909116606082015260800190565b5f805f60608486031215613ef1575f80fd5b8335613efc81613a6e565b92506020840135613f0c81613a6e565b91506040840135613bdf81613a6e565b5f805f8060808587031215613f2f575f80fd5b8435613f3a81613a9a565b93506020850135613f4a81613a9a565b92506040850135613d5981613a9a565b60ff1981168114613a7c575f80fd5b5f8060408385031215613f7a575f80fd5b8235613f8581613a6e565b91506020830135613ada81613f5a565b5f60208284031215613fa5575f80fd5b5051919050565b5f60208284031215613fbc575f80fd5b815161192781613a9a565b80518015158114612708575f80fd5b5f60208284031215613fe6575f80fd5b61192782613fc7565b600181811c9082168061400357607f821691505b60208210810361402157634e487b7160e01b5f52602260045260245ffd5b50919050565b63ffffffff81168114613a7c575f80fd5b5f60208284031215614048575f80fd5b815161192781614027565b6001600160601b0395861681526001600160a01b039490941660208501529184166040840152909216606082015263ffffffff909116608082015260a00190565b5f80858511156140a2575f80fd5b838611156140ae575f80fd5b5050820193919092039150565b80356001600160e01b031981169060048410156140ec576001600160e01b0319600485900360031b81901b82161691505b5092915050565b6001600160a01b03841681526040602082018190528101829052818360608301375f818301606090810191909152601f909201601f1916010192915050565b601f82111561417657805f5260205f20601f840160051c810160208510156141575750805b601f840160051c820191505b8181101561205d575f8155600101614163565b505050565b815167ffffffffffffffff81111561419557614195613ae5565b6141a9816141a38454613fef565b84614132565b6020601f8211600181146141db575f83156141c45750848201515b5f19600385901b1c1916600184901b17845561205d565b5f84815260208120601f198516915b8281101561420a57878501518255602094850194600190920191016141ea565b508482101561422757868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f60208284031215614246575f80fd5b815161192781613a6e565b5f60208284031215614261575f80fd5b815161192781613f5a565b5f6020828403121561427c575f80fd5b815161192781613af9565b5f82518060208501845e5f920191825250919050565b5f80604083850312156142ae575f80fd5b6142b783613fc7565b91506020830151613ada81614027565b634e487b7160e01b5f52601260045260245ffdfea2646970667358221220bbb88e1aa62ea1bad502fbbcc154c6f4787415b3e9ae46852979230c1e5a8ea964736f6c634300081a00336080604052348015600e575f80fd5b50600480546001600160a01b0319163317905561071e8061002e5f395ff3fe608060405234801561000f575f80fd5b5060043610610090575f3560e01c80638de1d14e116100635780638de1d14e1461010f578063954a317214610122578063996f8d9114610135578063ddfe867f1461014b578063f2b2978114610153575f80fd5b8063042f9da3146100945780634f9c1c09146100a9578063706e9ba9146100d1578063777d1857146100fc575b5f80fd5b6100a76100a2366004610627565b610166565b005b6100bc6100b736600461065e565b610221565b60405190151581526020015b60405180910390f35b6100e46100df366004610680565b6102ab565b6040516001600160601b0390911681526020016100c8565b6100bc61010a36600461065e565b610327565b6100a761011d36600461065e565b610370565b6100a7610130366004610627565b610491565b61013d61051b565b6040519081526020016100c8565b61013d610595565b6100e4610161366004610680565b6105cf565b6004546001600160a01b031633146101ae5760048054604051631d1f01d960e31b81526001600160a01b03909116918101919091523360248201526044015b60405180910390fd5b604051631461054360e31b8152600260048201526001600160601b038216602482015273__$f7a7d9f32fdcd358419ed5ca3af4f3da33$__9063a3082a18906044015b5f6040518083038186803b158015610207575f80fd5b505af4158015610219573d5f803e3d5ffd5b505050505050565b604051632bfdd6b960e01b81525f600482018190526001600160601b03831660248301529073__$f7a7d9f32fdcd358419ed5ca3af4f3da33$__90632bfdd6b9906044015b602060405180830381865af4158015610281573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102a59190610697565b92915050565b60405163e797d89960e01b81525f60048201819052602482018390529073__$f7a7d9f32fdcd358419ed5ca3af4f3da33$__9063e797d899906044015b602060405180830381865af4158015610303573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102a591906106b6565b604051632bfdd6b960e01b8152600260048201526001600160601b03821660248201525f9073__$f7a7d9f32fdcd358419ed5ca3af4f3da33$__90632bfdd6b990604401610266565b6004546001600160a01b031633146103b35760048054604051631d1f01d960e31b81526001600160a01b03909116918101919091523360248201526044016101a5565b604051631461054360e31b81525f60048201526001600160601b038216602482015273__$f7a7d9f32fdcd358419ed5ca3af4f3da33$__9063a3082a18906044015f6040518083038186803b15801561040a575f80fd5b505af415801561041c573d5f803e3d5ffd5b5050604051631461054360e31b8152600260048201526001600160601b038416602482015273__$f7a7d9f32fdcd358419ed5ca3af4f3da33$__925063a3082a1891506044015f6040518083038186803b158015610478575f80fd5b505af415801561048a573d5f803e3d5ffd5b5050505050565b6004546001600160a01b031633146104d45760048054604051631d1f01d960e31b81526001600160a01b03909116918101919091523360248201526044016101a5565b60405163539eabab60e11b8152600260048201526001600160601b038216602482015273__$f7a7d9f32fdcd358419ed5ca3af4f3da33$__9063a73d5756906044016101f1565b604051638b6233dd60e01b8152600260048201525f9073__$f7a7d9f32fdcd358419ed5ca3af4f3da33$__90638b6233dd906024015b602060405180830381865af415801561056c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061059091906106d1565b905090565b604051638b6233dd60e01b81525f600482018190529073__$f7a7d9f32fdcd358419ed5ca3af4f3da33$__90638b6233dd90602401610551565b60405163e797d89960e01b815260026004820152602481018290525f9073__$f7a7d9f32fdcd358419ed5ca3af4f3da33$__9063e797d899906044016102e8565b6001600160601b0381168114610624575f80fd5b50565b5f8060408385031215610638575f80fd5b823561064381610610565b9150602083013561065381610610565b809150509250929050565b5f6020828403121561066e575f80fd5b813561067981610610565b9392505050565b5f60208284031215610690575f80fd5b5035919050565b5f602082840312156106a7575f80fd5b81518015158114610679575f80fd5b5f602082840312156106c6575f80fd5b815161067981610610565b5f602082840312156106e1575f80fd5b505191905056fea2646970667358221220180ab0edf068dd648eb55f664caa70d135bca97ab927f0921a4d83f026880bf464736f6c634300081a0033",
         | 
| 1690 | 
            -
              "deployedBytecode": "0x608060405234801561000f575f80fd5b506004361061023f575f3560e01c80637b21556111610135578063bf7e214f116100b4578063eb98e8a011610079578063eb98e8a01461074f578063f48016ce14610782578063fb14543214610795578063fb39549c146107c0578063ff86054d146107d3575f80fd5b8063bf7e214f146106a9578063d7537c37146106b9578063dfb7e337146106cc578063e067350f14610711578063e9e96c701461073c575f80fd5b80639a726364116100fa5780639a72636414610562578063a5961b4c14610575578063b04fa50614610601578063beba11201461066b578063bf1db3f914610696575f80fd5b80637b2155611461045b578063828227de1461049e5780638eaa6ac0146104e15780638fb360371461050157806391a2059f14610522575f80fd5b80634b51da0c116101c157806362841be21161018657806362841be2146103e65780636291423a146103f9578063717f1b981461040a57806377f91851146104355780637a9e5e4b14610448575f80fd5b80634b51da0c146103685780634f9c1c091461037b57806354f1fa811461038e57806354f6127f146103a15780635cce3fa1146103c1575f80fd5b806330f441991161020757806330f44199146102f95780633861317f1461030c57806338a699a41461031f5780633fbdfe32146103425780634a2101d114610355575f80fd5b806309648a9d146102435780630d35818114610281578063136cfef7146102a65780631807a488146102d15780632df8be9b146102e6575b5f80fd5b61026a610251366004613a57565b5f90815260036020526040902054610100900460ff1690565b60405160ff90911681526020015b60405180910390f35b61026a61028f366004613a7f565b60ff9081165f908152600160205260409020541690565b6102b96102b4366004613aae565b61084d565b6040516001600160601b039091168152602001610278565b6102e46102df366004613b0b565b610934565b005b6102e46102f4366004613b0b565b610a20565b6102e4610307366004613ba2565b610a33565b6102e461031a366004613ba2565b610bd8565b61033261032d366004613a57565b610ce1565b6040519015158152602001610278565b6102b9610350366004613ba2565b610d6f565b6102e4610363366004613ba2565b610ef3565b6102e4610376366004613bea565b610fcf565b610332610389366004613c5c565b611087565b6102e461039c366004613c77565b61111f565b6103b46103af366004613a57565b611278565b6040516102789190613cfe565b6005546001600160a01b03165b6040516001600160a01b039091168152602001610278565b6102e46103f4366004613bea565b61131a565b6006546001600160a01b03166103ce565b6102b9610418366004613c5c565b6001600160601b039081165f908152600960205260409020541690565b6102b9610443366004613d26565b6113eb565b6102e4610456366004613d69565b611647565b610490610469366004613d82565b5f9182526007602090815260408084206001600160a01b0393909316845291905290205490565b604051908152602001610278565b6104cc6104ac366004613c5c565b6001600160601b03165f908152600c602052604090205463ffffffff1690565b60405163ffffffff9091168152602001610278565b6104f46104ef366004613a57565b6116bb565b6040516102789190613dac565b6105096117dc565b6040516001600160e01b03199091168152602001610278565b6102b9610530366004613e12565b6001600160601b039182165f908152600d602090815260408083206001600160a01b0394909416835292905220541690565b6102e4610570366004613e3c565b611800565b6105f4610583366004613a57565b60408051608080820183525f8083526020808401829052838501829052606093840182905294815260038552839020835191820184525460ff80821683526101008204169482019490945263ffffffff620100008504811693820193909352600160301b9093049091169082015290565b6040516102789190613e6f565b61065b61060f366004613c5c565b6001600160601b039081165f908152600860209081526040808320546009835281842054600a845282852054600c90945291909320549284169490841693919091169163ffffffff1690565b6040516102789493929190613eb0565b6102b9610679366004613c5c565b6001600160601b039081165f908152600f60205260409020541690565b6103326106a4366004613a7f565b61182e565b5f546001600160a01b03166103ce565b6102b96106c7366004613aae565b61187a565b6106fb6106da366004613c5c565b6001600160601b03165f908152600b602052604090205464ffffffffff1690565b60405164ffffffffff9091168152602001610278565b6102b961071f366004613c5c565b6001600160601b039081165f908152600a60205260409020541690565b61033261074a366004613edf565b6118fb565b61076261075d366004613f1c565b61192e565b604080516001600160601b03938416815292909116602083015201610278565b610490610790366004613f69565b611bd0565b6102b96107a3366004613c5c565b6001600160601b039081165f908152600860205260409020541690565b6102b96107ce366004613d26565b611c50565b6108206107e1366004613c5c565b6001600160601b039081165f908152600860209081526040808320546009835281842054600b9093529220549183169392169164ffffffffff90911690565b604080516001600160601b03948516815293909216602084015264ffffffffff1690820152606001610278565b5f61085a335b5f36611f6e565b6001600160601b038084165f908152600a60205260409020541661087e8382612064565b156108bc576040516301a4b29960e11b81526001600160601b0380861660048301528085166024830152821660448201526064015b60405180910390fd5b6001600160601b038085165f908152600a60205260409020546108e09116846120e8565b91505f6108ed858461216d565b90507fd3383e52279373b5cfb83f1b6d4bd83e415313626f418a63a24251420d4b96df858585846040516109249493929190613eb0565b60405180910390a1505092915050565b61093d33610853565b60408051630711349960e31b81526001600160601b03841660048201526020602482018190529151610a1c9273__$94a2c899be079b00d952d0d84fffaa5c34$__92633889a4c892604480830193928290030181865af41580156109a3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109c79190613f95565b60408051845160ff16602080830191909152850151818301529084015164ffffffffff16606080830191909152840151608082015260a0015b604051602081830303815290604052610a1760ff90565b61230d565b5050565b610a2933610853565b610a1c828261247c565b610a3c33610853565b5f610a468461264b565b6001600160601b038086165f9081526008602090815260408083205460099092529091205492935081169116610af986610a89610a83858561270d565b8761270d565b73__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610ad0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610af49190613fac565b612757565b6001600160601b038086165f90815260086020526040902054610b50918791610b2791610a8391168561270d565b6001600160601b038089165f90815260096020526040902054610b4b9116856120e8565b6128ed565b6001600160601b038681165f8181526008602090815260409182902054825193845286851691840191909152848416918301919091528683166060830152909116608082015263ffffffff841660a08201527ff3a6a30356c886f04fc20380e987b6e55a1e83a7926e1a21ee6001faced599c99060c0015b60405180910390a1505050505050565b610be133610853565b5f610beb8461264b565b6001600160601b038086165f90815260086020526040902054919250610c37918691610c1891168561270d565b6001600160601b038088165f9081526009602052604090205416612757565b6001600160601b038084165f90815260086020526040902054610c80918591610c6191168561270d565b6001600160601b038087165f90815260096020526040902054166128ed565b6001600160601b038085165f90815260086020526040908190205490517fa206257df4168139cff2e8dea9c50f2226429e81d904d5ee2b14e4f4656f30f592610cd3928892879291909116908690613eb0565b60405180910390a150505050565b5f8181526003602052604080822054905163b2466acf60e01b815261010090910460ff16600482015273__$2e1fcf62e7a1b3c2a33bdf2228c171b2be$__9063b2466acf906024015b602060405180830381865af4158015610d45573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d699190613fd6565b92915050565b5f610d7933610853565b5f610d838561264b565b6001600160601b038681165f9081526009602052604090819020549051637931c81160e01b815286831660048201529116602482015290915073__$3bac17678db7ae928afa209f2f44deec9c$__90637931c81190604401602060405180830381865af4158015610df6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e1a9190613fac565b6001600160601b038087165f90815260086020908152604080832054600990925290912054929450610e5792889291821691610af49116866120e8565b6001600160601b038085165f90815260086020908152604080832054600990925290912054610e90928792811691610b4b9116866120e8565b6001600160601b038086165f90815260096020526040908190205490517f18d78bbaea8f24a2aaa409f9f507204233a315575899fe3a802e20f15e81f5ef92610ee3928992879291909116908690613eb0565b60405180910390a1509392505050565b610efc33610853565b5f610f068461264b565b6001600160601b038086165f90815260086020908152604080832054600990925290912054929350610f4392879291821691610af491168661270d565b6001600160601b038084165f90815260086020908152604080832054600990925290912054610f7c928692811691610b4b91168661270d565b6001600160601b038085165f90815260096020526040908190205490517f9824c1941460e3f3dca0007309b88a95f4fb73bd9628ee7ad0a528b100983c7992610cd3928892879291909116908690613eb0565b610fd833610853565b610a1c73__$94a2c899be079b00d952d0d84fffaa5c34$__633889a4c86001600160601b03851660216040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff166024820152604401602060405180830381865af415801561104b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061106f9190613f95565b60408051845164ffffffffff16602082015201610a00565b5f610d6973__$94a2c899be079b00d952d0d84fffaa5c34$__633889a4c86001600160601b03851660216040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff166024820152604401602060405180830381865af41580156110fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061032d9190613f95565b60ff8381165f908152600160205260409081902054905163037c8cb160e51b81529116600482015273__$2e1fcf62e7a1b3c2a33bdf2228c171b2be$__90636f91962090602401602060405180830381865af4158015611181573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111a59190613fd6565b156111ce5760405163ea01ac1f60e01b815230600482015260ff841660248201526044016108b3565b60ff8085169083161461120f5760405163bae587e160e01b815230600482015260ff80851660248301528086166044830152831660648201526084016108b3565b60ff8084165f908152600260209081526040808320888516845282528083208585168452909152902054166112725760405163f33b49a360e01b815230600482015260ff80851660248301528086166044830152821660648201526084016108b3565b50505050565b5f81815260036020526040902060010180546060919061129790613fef565b80601f01602080910402602001604051908101604052809291908181526020018280546112c390613fef565b801561130e5780601f106112e55761010080835404028352916020019161130e565b820191905f5260205f20905b8154815290600101906020018083116112f157829003601f168201915b50505050509050919050565b61132333610853565b6113e273__$94a2c899be079b00d952d0d84fffaa5c34$__633889a4c86001600160601b03851660216040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff166024820152604401602060405180830381865af4158015611396573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113ba9190613f95565b60408051845164ffffffffff166020820152015b60405160208183030381529060405261297d565b610a1c82612d38565b5f6113f533610853565b5f805f611402888761309e565b925092509250611412828661270d565b604051632c34efe560e11b81526001600160601b0382166004820152602481018990529094505f9073__$3bac17678db7ae928afa209f2f44deec9c$__90635869dfca90604401602060405180830381865af4158015611474573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114989190613fac565b6001600160601b038a81165f818152600d602090815260408083206001600160a01b038e1680855290835281842080546001600160601b03199081168e891617909155858552600e84528285209185529083528184208054909116878716179055928252600f9052205491925061151a916115149116846120e8565b8261270d565b600f5f8b6001600160601b03166001600160601b031681526020019081526020015f205f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__63e8b7afe36040518163ffffffff1660e01b8152600401602060405180830381865af41580156115a7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115cb9190614038565b6001600160601b038a165f9081526010602052604090819020805463ffffffff191663ffffffff9390931692909217909155517f4bd4ee2e64e523eeed623045709eb9e7828b3b191c978feb362e5b600c7d4dd990611633908b908a908a908a908a90614053565b60405180910390a150505050949350505050565b5f5433906001600160a01b0316811461167d5760405162d1953b60e31b81526001600160a01b03821660048201526024016108b3565b816001600160a01b03163b5f036116b2576040516361798f2f60e11b81526001600160a01b03831660048201526024016108b3565b610a1c826131ae565b6040805160c0810182525f91810182815260608083018490526080830184905260a0830193909352815260208101919091525f82815260036020908152604091829020825160c081018452815460ff808216958301958652610100820416606083015263ffffffff62010000820481166080840152600160301b9091041660a0820152928352600181018054919284019161175590613fef565b80601f016020809104026020016040519081016040528092919081815260200182805461178190613fef565b80156117cc5780601f106117a3576101008083540402835291602001916117cc565b820191905f5260205f20905b8154815290600101906020018083116117af57829003601f168201915b5050505050815250509050919050565b5f8054600160a01b900460ff166117f257505f90565b638fb3603760e01b5b905090565b61180933610853565b5f9283526007602090815260408085206001600160a01b039094168552929052912055565b60ff8181165f9081526001602052604080822054905163b2466acf60e01b8152921660048301529073__$2e1fcf62e7a1b3c2a33bdf2228c171b2be$__9063b2466acf90602401610d2a565b5f61188433610853565b6001600160601b038084165f908152600a60205260409020546118a891168361270d565b90505f6118b5848361216d565b90507f15ce01bb869f4f5440b921c09a1c73e043269a1e29f44d11a7a899ed51fa67b8848484846040516118ec9493929190613eb0565b60405180910390a15092915050565b60ff8084165f908152600260209081526040808320868516845282528083208585168452909152902054165b9392505050565b5f8061193933610853565b5f6119438761264b565b6001600160601b038881165f9081526008602052604090819020549051637931c81160e01b815288831660048201529116602482015290915073__$3bac17678db7ae928afa209f2f44deec9c$__90637931c81190604401602060405180830381865af41580156119b6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119da9190613fac565b6001600160601b038881165f9081526009602052604090819020549051637931c81160e01b815287831660048201529116602482015290935073__$3bac17678db7ae928afa209f2f44deec9c$__90637931c81190604401602060405180830381865af4158015611a4d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a719190613fac565b6001600160601b038089165f90815260086020526040902054919350611ac2918991611a9e9116866120e8565b6001600160601b03808b165f90815260096020526040902054610af49116866120e8565b6001600160601b038087165f90815260086020526040902054611b10918891611aec9116866120e8565b6001600160601b03808a165f90815260096020526040902054610b4b9116866120e8565b6001600160601b038088165f90815260086020526040908190205490517f4d67c2532a3443dbc1612538256c1fb6566afcd9729bf99254b26aef3b953cdd92611b63928b92889291909116908690613eb0565b60405180910390a16001600160601b038088165f90815260096020526040908190205490517f18d78bbaea8f24a2aaa409f9f507204233a315575899fe3a802e20f15e81f5ef92611bbe928b92879291909116908690613eb0565b60405180910390a15094509492505050565b604051637a400b6760e11b815260ff8316600482015260ff19821660248201525f9073__$4b9aaffa8d044614668dad578b824b8eee$__9063f48016ce90604401602060405180830381865af4158015611c2c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119279190613f95565b5f611c5a33610853565b5f805f611c67888761309e565b925092509250611c7782866120e8565b6040516355205f0f60e01b81526001600160601b03821660048201529094505f9073__$3bac17678db7ae928afa209f2f44deec9c$__90634c41dd9690611d09908b9084906355205f0f90602401602060405180830381865af4158015611ce0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d049190613f95565b613201565b604051632255341b60e11b8152600481019190915273__$bf7bc340cbb9229ef1de2c568356e67902$__906344aa683690602401602060405180830381865af4158015611d58573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d7c9190613f95565b6040518263ffffffff1660e01b8152600401611d9a91815260200190565b602060405180830381865af4158015611db5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dd99190613fac565b6001600160601b038a81165f818152600d602090815260408083206001600160a01b038e1680855290835281842080546001600160601b03199081168e891617909155858552600e84528285209185529083528184208054909116878716179055928252600f90522054919250611e55916115149116846120e8565b600f5f8b6001600160601b03166001600160601b031681526020019081526020015f205f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__63e8b7afe36040518163ffffffff1660e01b8152600401602060405180830381865af4158015611ee2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f069190614038565b6001600160601b038a165f9081526010602052604090819020805463ffffffff191663ffffffff9390931692909217909155517ff9be485b3e2a5d1dc6dadfab8a9962c32cc55ac95a026b980452f8b13872378990611633908b908a908a908a908a90614053565b5f80611fa1611f845f546001600160a01b031690565b8630611f9360045f898b614094565b611f9c916140bb565b613215565b915091508161205d5763ffffffff81161561203a575f805460ff60a01b198116600160a01b17909155604051634a63ebf760e11b81526001600160a01b03909116906394c7d7ee90611ffb908890889088906004016140f3565b5f604051808303815f87803b158015612012575f80fd5b505af1158015612024573d5f803e3d5ffd5b50505f805460ff60a01b191690555061205d9050565b60405162d1953b60e31b81526001600160a01b03861660048201526024016108b3565b5050505050565b604051632601631360e21b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__906398058c4c90604401602060405180830381865af41580156120c4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119279190613fd6565b6040516363cf551160e11b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__9063c79eaa22906044015b602060405180830381865af4158015612149573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119279190613fac565b6001600160601b0382165f908152600c602052604080822054905163010bd26b60e61b815263ffffffff909116600482015273__$f55ca14f1ddce1b88fe30d23ae45f595f4$__906342f49ac090602401602060405180830381865af41580156121d9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121fd9190613fd6565b15612226576040516364692acf60e01b81526001600160601b03841660048201526024016108b3565b506001600160601b038281165f908152600c6020908152604080832054600a83529281902080546001600160601b03191694861694909417909355825163e8b7afe360e01b8152925163ffffffff9092169273__$f55ca14f1ddce1b88fe30d23ae45f595f4$__9263e8b7afe3926004808401939192918290030181865af41580156122b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122d89190614038565b6001600160601b03939093165f908152600c60205260409020805463ffffffff191663ffffffff909416939093179092555090565b5f612318848361331d565b5f858152600360205260409020909150600101612335848261417b565b50604051634b00e98f60e11b8152600481018590527f7bd0ab7f1746bd20a814d6705a46876c84f1aa2d35c80d8c173e268bd6d4b26c9073__$4b9aaffa8d044614668dad578b824b8eee$__90639601d31e90602401602060405180830381865af41580156123a6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123ca9190614236565b604051630713cfad60e31b81526004810187905273__$4b9aaffa8d044614668dad578b824b8eee$__9063389e7d6890602401602060405180830381865af4158015612418573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061243c9190614251565b6040805160ff938416815260ff1990921660208301529185169181019190915233606082015232608082015263ffffffff831660a082015260c001610cd3565b60408051630711349960e31b81526001600160601b038416600482015260206024820181905291516125439273__$94a2c899be079b00d952d0d84fffaa5c34$__92633889a4c892604480830193928290030181865af41580156124e2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125069190613f95565b60408051845160ff16602080830191909152850151818301529084015164ffffffffff16606080830191909152840151608082015260a0016113ce565b73__$f55ca14f1ddce1b88fe30d23ae45f595f4$__63e8b7afe36040518163ffffffff1660e01b8152600401602060405180830381865af415801561258a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125ae9190614038565b6001600160601b0383165f908152601060205260409020805463ffffffff191663ffffffff929092169190911790556125e68261361a565b6005546040516346f0e8a760e11b81526001600160601b03841660048201526001600160a01b0390911690638de1d14e906024015f604051808303815f87803b158015612631575f80fd5b505af1158015612643573d5f803e3d5ffd5b505050505050565b6001600160601b0381165f908152600c60205260409081902054905163010bd26b60e61b815263ffffffff909116600482018190529073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__906342f49ac090602401602060405180830381865af41580156126bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126df9190613fd6565b1561270857604051631f7e16df60e01b81526001600160601b03831660048201526024016108b3565b919050565b60405163274acb3560e01b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__9063274acb359060440161212e565b6001600160601b038381165f90815260086020908152604080832080546001600160601b031990811688871617909155600983529281902080549093169385169390931790915581516356db0c1960e11b8152915173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9263adb618329260048083019391928290030181865af41580156127e7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061280b919061426c565b600b5f856001600160601b03166001600160601b031681526020019081526020015f205f6101000a81548164ffffffffff021916908364ffffffffff16021790555073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__63e8b7afe36040518163ffffffff1660e01b8152600401602060405180830381865af4158015612894573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128b89190614038565b6001600160601b03939093165f908152600c60205260409020805463ffffffff191663ffffffff909416939093179092555050565b6001600160601b038381165f90815260086020908152604080832080546001600160601b0319908116888716179091556009835292819020805490931693851693909317909155815163e8b7afe360e01b8152915173__$f55ca14f1ddce1b88fe30d23ae45f595f4$__9263e8b7afe39260048083019391928290030181865af4158015612894573d5f803e3d5ffd5b604051634b00e98f60e11b8152600481018390525f9073__$4b9aaffa8d044614668dad578b824b8eee$__90639601d31e90602401602060405180830381865af41580156129cd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129f19190614236565b60405163037c8cb160e51b815260ff8216600482015290915073__$0d958e68cba84670b8f4a3f2f2686b1c6b$__90636f91962090602401602060405180830381865af4158015612a44573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a689190613fd6565b15612a8b576040516307014a8d60e51b815260ff821660048201526024016108b3565b5f83815260036020526040908190208054915163b2466acf60e01b815261010090920460ff1660048301529073__$2e1fcf62e7a1b3c2a33bdf2228c171b2be$__9063b2466acf90602401602060405180830381865af4158015612af1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b159190613fd6565b15612b3f57604051633f92eac960e21b81526004810185905260ff831660248201526044016108b3565b612b488261182e565b612b6a57604051636cb0978b60e11b815260ff831660048201526024016108b3565b5f612b7361392e565b60ff8085165f908152600160205260408120549293509116835460ff86811661ffff1990921691909117610100918316919091021769ffffffffffffffff000019166201000063ffffffff851690810269ffffffff000000000000191691909117600160301b919091021784555f878152600360205260409020909150600101612bfd868261417b565b50604051634b00e98f60e11b8152600481018790527ffcb75eb7b317145f986c763e1a3eab5f9b4dbaf7955504f70f986d799c3ab39d9073__$4b9aaffa8d044614668dad578b824b8eee$__90639601d31e90602401602060405180830381865af4158015612c6e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c929190614236565b604051630713cfad60e31b81526004810189905273__$4b9aaffa8d044614668dad578b824b8eee$__9063389e7d6890602401602060405180830381865af4158015612ce0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d049190614251565b6040805160ff938416815260ff1990921660208301529184169181019190915233606082015232608082015260a001610bc8565b6001600160601b0381165f908152600c60205260409081902054905163d15b589360e01b815263ffffffff909116600482015273__$f55ca14f1ddce1b88fe30d23ae45f595f4$__9063d15b589390602401602060405180830381865af4158015612da5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612dc99190613fd6565b15612df2576040516366d785a360e11b81526001600160601b03821660048201526024016108b3565b73__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015612e39573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e5d9190613fac565b60085f836001600160601b03166001600160601b031681526020019081526020015f205f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015612eea573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f0e9190613fac565b60095f836001600160601b03166001600160601b031681526020019081526020015f205f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015612f9b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612fbf919061426c565b600b5f836001600160601b03166001600160601b031681526020019081526020015f205f6101000a81548164ffffffffff021916908364ffffffffff16021790555073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__63e8b7afe36040518163ffffffff1660e01b8152600401602060405180830381865af4158015613048573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061306c9190614038565b6001600160601b03919091165f908152600c60205260409020805463ffffffff191663ffffffff909216919091179055565b6001600160601b0382165f9081526010602052604080822054905163010bd26b60e61b815263ffffffff909116600482018190529190819073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__906342f49ac090602401602060405180830381865af4158015613110573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131349190613fd6565b1561315d576040516362540e0360e11b81526001600160601b03861660048201526024016108b3565b50506001600160601b039283165f818152600d602090815260408083206001600160a01b0390961680845295825280832054938352600e825280832095835294905292909220549093918316921690565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9060200160405180910390a150565b5f6119278383670de0b6b3a764000061399a565b6040516001600160a01b03848116602483015283811660448301526001600160e01b0319831660648301525f9182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b179052516132839190614287565b5f60405180830381855afa9150503d805f81146132bb576040519150601f19603f3d011682016040523d82523d5f602084013e6132c0565b606091505b509150915081156133125760408151106132f257808060200190518101906132e8919061429d565b9094509250613312565b6020815110613312578080602001905181019061330f9190613fd6565b93505b505094509492505050565b60405163037c8cb160e51b815260ff821660048201525f9073__$2e1fcf62e7a1b3c2a33bdf2228c171b2be$__90636f91962090602401602060405180830381865af415801561336f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133939190613fd6565b156133b45760405163093b89e160e11b8152600481018490526024016108b3565b505f82815260036020526040908190208054915163037c8cb160e51b8152610100830460ff16600482018190526201000090930463ffffffff16929073__$2e1fcf62e7a1b3c2a33bdf2228c171b2be$__90636f91962090602401602060405180830381865af415801561342a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061344e9190613fd6565b1561346f5760405163566ebf7960e01b8152600481018690526024016108b3565b60ff808516146135ec57815461348b90829060ff16818761111f565b815461ff00191661010060ff861602178255604051634b00e98f60e11b8152600481018690527fe41a93c15e024a0b2371127599959a8e543dd6a8d820238e906c93a3004248fa9073__$4b9aaffa8d044614668dad578b824b8eee$__90639601d31e90602401602060405180830381865af415801561350d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906135319190614236565b604051630713cfad60e31b81526004810188905273__$4b9aaffa8d044614668dad578b824b8eee$__9063389e7d6890602401602060405180830381865af415801561357f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906135a39190614251565b6040805160ff938416815260ff1990921660208301528285169082015290861660608201523360808201523260a082015263ffffffff851660c082015260e00160405180910390a15b6135f461392e565b825463ffffffff91909116620100000265ffffffff000019909116179091555092915050565b6001600160601b0381165f908152600c60205260409081902054905163d15b589360e01b815263ffffffff909116600482015273__$f55ca14f1ddce1b88fe30d23ae45f595f4$__9063d15b589390602401602060405180830381865af4158015613687573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136ab9190613fd6565b156136d4576040516366d785a360e11b81526001600160601b03821660048201526024016108b3565b73__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af415801561371b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061373f9190613fac565b60085f836001600160601b03166001600160601b031681526020019081526020015f205f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af41580156137cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906137f09190613fac565b60095f836001600160601b03166001600160601b031681526020019081526020015f205f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af415801561387d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138a19190613fac565b600a5f836001600160601b03166001600160601b031681526020019081526020015f205f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__63e8b7afe36040518163ffffffff1660e01b8152600401602060405180830381865af4158015613048573d5f803e3d5ffd5b5f73__$f55ca14f1ddce1b88fe30d23ae45f595f4$__63e8b7afe36040518163ffffffff1660e01b8152600401602060405180830381865af4158015613976573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117fb9190614038565b5f80805f19858709858702925082811083820303915050805f036139d1578382816139c7576139c76142c7565b0492505050611927565b8084116139f057604051629540d960e61b815260040160405180910390fd5b5f8486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091025f889003889004909101858311909403939093029303949094049190911702949350505050565b5f60208284031215613a67575f80fd5b5035919050565b60ff81168114613a7c575f80fd5b50565b5f60208284031215613a8f575f80fd5b813561192781613a6e565b6001600160601b0381168114613a7c575f80fd5b5f8060408385031215613abf575f80fd5b8235613aca81613a9a565b91506020830135613ada81613a9a565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b64ffffffffff81168114613a7c575f80fd5b5f8082840360a0811215613b1d575f80fd5b8335613b2881613a9a565b92506080601f1982011215613b3b575f80fd5b506040516080810167ffffffffffffffff81118282101715613b5f57613b5f613ae5565b6040526020840135613b7081613a6e565b8152604084013560208201526060840135613b8a81613af9565b60408201526080939093013560608401525092909150565b5f805f60608486031215613bb4575f80fd5b8335613bbf81613a9a565b92506020840135613bcf81613a9a565b91506040840135613bdf81613a9a565b809150509250925092565b5f808284036040811215613bfc575f80fd5b8335613c0781613a9a565b92506020601f1982011215613c1a575f80fd5b506040516020810167ffffffffffffffff81118282101715613c3e57613c3e613ae5565b6040526020840135613c4f81613af9565b8152919491935090915050565b5f60208284031215613c6c575f80fd5b813561192781613a9a565b5f805f8060808587031215613c8a575f80fd5b8435613c9581613a6e565b93506020850135613ca581613a6e565b92506040850135613cb581613a6e565b91506060850135613cc581613a6e565b939692955090935050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6119276020830184613cd0565b80356001600160a01b0381168114612708575f80fd5b5f805f8060808587031215613d39575f80fd5b8435613d4481613a9a565b935060208501359250613d5960408601613d10565b91506060850135613cc581613a9a565b5f60208284031215613d79575f80fd5b61192782613d10565b5f8060408385031215613d93575f80fd5b82359150613da360208401613d10565b90509250929050565b60208152613df160208201835160ff815116825260ff602082015116602083015263ffffffff604082015116604083015263ffffffff60608201511660608301525050565b5f602083015160a080840152613e0a60c0840182613cd0565b949350505050565b5f8060408385031215613e23575f80fd5b8235613e2e81613a9a565b9150613da360208401613d10565b5f805f60608486031215613e4e575f80fd5b83359250613e5e60208501613d10565b929592945050506040919091013590565b60808101610d69828460ff815116825260ff602082015116602083015263ffffffff604082015116604083015263ffffffff60608201511660608301525050565b6001600160601b03948516815292841660208401529216604082015263ffffffff909116606082015260800190565b5f805f60608486031215613ef1575f80fd5b8335613efc81613a6e565b92506020840135613f0c81613a6e565b91506040840135613bdf81613a6e565b5f805f8060808587031215613f2f575f80fd5b8435613f3a81613a9a565b93506020850135613f4a81613a9a565b92506040850135613d5981613a9a565b60ff1981168114613a7c575f80fd5b5f8060408385031215613f7a575f80fd5b8235613f8581613a6e565b91506020830135613ada81613f5a565b5f60208284031215613fa5575f80fd5b5051919050565b5f60208284031215613fbc575f80fd5b815161192781613a9a565b80518015158114612708575f80fd5b5f60208284031215613fe6575f80fd5b61192782613fc7565b600181811c9082168061400357607f821691505b60208210810361402157634e487b7160e01b5f52602260045260245ffd5b50919050565b63ffffffff81168114613a7c575f80fd5b5f60208284031215614048575f80fd5b815161192781614027565b6001600160601b0395861681526001600160a01b039490941660208501529184166040840152909216606082015263ffffffff909116608082015260a00190565b5f80858511156140a2575f80fd5b838611156140ae575f80fd5b5050820193919092039150565b80356001600160e01b031981169060048410156140ec576001600160e01b0319600485900360031b81901b82161691505b5092915050565b6001600160a01b03841681526040602082018190528101829052818360608301375f818301606090810191909152601f909201601f1916010192915050565b601f82111561417657805f5260205f20601f840160051c810160208510156141575750805b601f840160051c820191505b8181101561205d575f8155600101614163565b505050565b815167ffffffffffffffff81111561419557614195613ae5565b6141a9816141a38454613fef565b84614132565b6020601f8211600181146141db575f83156141c45750848201515b5f19600385901b1c1916600184901b17845561205d565b5f84815260208120601f198516915b8281101561420a57878501518255602094850194600190920191016141ea565b508482101561422757868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f60208284031215614246575f80fd5b815161192781613a6e565b5f60208284031215614261575f80fd5b815161192781613f5a565b5f6020828403121561427c575f80fd5b815161192781613af9565b5f82518060208501845e5f920191825250919050565b5f80604083850312156142ae575f80fd5b6142b783613fc7565b91506020830151613ada81614027565b634e487b7160e01b5f52601260045260245ffdfea2646970667358221220bbb88e1aa62ea1bad502fbbcc154c6f4787415b3e9ae46852979230c1e5a8ea964736f6c634300081a0033",
         | 
| 2223 | 
            +
              "bytecode": "0x608060405234801561000f575f80fd5b50604051617e47380380617e4783398101604081905261002e916116ae565b3361003881610126565b506100a1826001600160a01b031663e2b178a06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610078573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061009c91906116e6565b610179565b600180546001600160a01b038085166001600160a01b03199283161790925560038054928416929091169190911790556040516100dd9061168a565b604051809103905ff0801580156100f6573d5f803e3d5ffd5b50600480546001600160a01b0319166001600160a01b039290921691909117905561011f6101f6565b50506117b2565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9060200160405180910390a150565b5f5433906001600160a01b031681146101b45760405162d1953b60e31b81526001600160a01b03821660048201526024015b60405180910390fd5b816001600160a01b03163b5f036101e9576040516361798f2f60e11b81526001600160a01b03831660048201526024016101ab565b6101f282610126565b5050565b6104966001805f600173__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610246573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061026a9190611715565b73__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af41580156102b1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102d59190611715565b73__$71e292c09eace9601b3e21e68a1278917a$__634bd9351b6040518163ffffffff1660e01b8152600401602060405180830381865af415801561031c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103409190611742565b73__$71e292c09eace9601b3e21e68a1278917a$__63f27c3bf66040518163ffffffff1660e01b8152600401602060405180830381865af4158015610387573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ab9190611742565b73__$bf7bc340cbb9229ef1de2c568356e67902$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af41580156103f2573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061041691906116e6565b604051631488c84560e01b8152600f6004820152600119602482015273__$bf7bc340cbb9229ef1de2c568356e67902$__90631488c845906044015b602060405180830381865af415801561046d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061049191906116e6565b61085f565b60405163efac97cf60e01b815261044d60048201526105eb9073__$94a2c899be079b00d952d0d84fffaa5c34$__9063efac97cf90602401602060405180830381865af41580156104e9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061050d9190611715565b600173__$fb6c7635e3c1acf7e7d82c7d43e7a24671$__63c6edc3dd6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610556573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061057a9190611742565b73__$fb6c7635e3c1acf7e7d82c7d43e7a24671$__63f87bf3736040518163ffffffff1660e01b8152600401602060405180830381865af41580156105c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105e591906116e6565b5f610d18565b61085d600a604051632620eecb60e11b815269152d02c7e14af680000060048201526001908190819073__$3bac17678db7ae928afa209f2f44deec9c$__90634c41dd9690602401602060405180830381865af415801561064e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106729190611715565b73__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af41580156106b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106dd9190611715565b73__$71e292c09eace9601b3e21e68a1278917a$__634bd9351b6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610724573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107489190611742565b73__$71e292c09eace9601b3e21e68a1278917a$__63f27c3bf66040518163ffffffff1660e01b8152600401602060405180830381865af415801561078f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107b39190611742565b73__$bf7bc340cbb9229ef1de2c568356e67902$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af41580156107fa573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061081e91906116e6565b604051631488c84560e01b8152600360048201525f19602482015273__$bf7bc340cbb9229ef1de2c568356e67902$__90631488c84590604401610452565b565b60405163037c8cb160e51b815260ff8b16600482015273__$0d958e68cba84670b8f4a3f2f2686b1c6b$__90636f91962090602401602060405180830381865af41580156108af573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108d3919061175d565b156108f657604051633c00d02760e01b815260ff8b1660048201526024016101ab565b610900868661146d565b1561093057604051622a505160e91b81526001600160601b038088166004830152861660248201526044016101ab565b61093a84846114f9565b15610969576040516338157c8960e21b815264ffffffffff8086166004830152841660248201526044016101ab565b6001600160a01b0380821690831611156109a957604051638ae671e360e01b81526001600160a01b038084166004830152821660248201526044016101ab565b5f60055f8c60ff1660ff1681526020019081526020015f2060020160149054906101000a900464ffffffffff1690508960055f8d60ff1660ff1681526020019081526020015f205f015f6101000a81548160ff0219169083151502179055508860055f8d60ff1660ff1681526020019081526020015f205f0160016101000a81548160ff0219169083151502179055508760055f8d60ff1660ff1681526020019081526020015f205f0160026101000a81548160ff0219169083151502179055508660055f8d60ff1660ff1681526020019081526020015f205f0160036101000a8154816001600160601b0302191690836001600160601b031602179055508560055f8d60ff1660ff1681526020019081526020015f205f01600f6101000a8154816001600160601b0302191690836001600160601b031602179055508460055f8d60ff1660ff1681526020019081526020015f205f01601b6101000a81548164ffffffffff021916908364ffffffffff1602179055508360055f8d60ff1660ff1681526020019081526020015f206001015f6101000a81548164ffffffffff021916908364ffffffffff1602179055508260055f8d60ff1660ff1681526020019081526020015f2060010160056101000a8154816001600160a01b0302191690836001600160a01b031602179055508160055f8d60ff1660ff1681526020019081526020015f206002015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af4158015610c1e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c429190611742565b60ff8c165f81815260056020908152604091829020600201805464ffffffffff60a01b1916600160a01b64ffffffffff9687160217905581519283528d1515908301528b15159082015289151560608201526001600160601b03808a166080830152881660a082015286821660c082015285821660e08201526001600160a01b0380861661010083015284166101208201529082166101408201527fb24c8b320e3f99e0aef480e78c342643583880e3f5a1c392a85a4c51f76799f8906101600160405180910390a15050505050505050505050565b8015610dc25760015460035460405163647b8c2f60e01b81526001600160a01b03928316600482015290821660248201526001600160601b038716604482015260ff8616606482015264ffffffffff8516608482015290831660a482015273__$fb6c7635e3c1acf7e7d82c7d43e7a24671$__9063647b8c2f9060c4015f6040518083038186803b158015610dab575f80fd5b505af4158015610dbd573d5f803e3d5ffd5b505050505b6001600160601b0385165f90815260066020908152604091829020825163bc1b392d60e01b81529251909273__$3bac17678db7ae928afa209f2f44deec9c$__9263bc1b392d926004808401938290030181865af4158015610e26573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e4a9190611715565b81546001600160601b0319166001600160601b03919091161781556040805163bc1b392d60e01b8152905173__$3bac17678db7ae928afa209f2f44deec9c$__9163bc1b392d9160048083019260209291908290030181865af4158015610eb3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ed79190611715565b815f01600c6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610f45573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f699190611715565b816001015f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af4158015610fd7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ffb9190611715565b600182018054600160601b65ff000000000160c01b0319166c010000000000000000000000006001600160601b039384160260ff60e81b191617600160e81b60ff8916021764ffffffffff60c01b1916600160c01b64ffffffffff8816021790556002820180546001600160a01b0319166001600160a01b0386161790556040516301f8588560e51b8152908716600482015273__$dacf551d137a232f87fa09e79113e25430$__90633f0b10a090602401602060405180830381865af41580156110c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110ec9190611715565b8160020160146101000a8154816001600160601b0302191690836001600160601b0316021790555073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af415801561115b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061117f9190611742565b815f0160186101000a81548164ffffffffff021916908364ffffffffff1602179055506113a260075f886001600160601b03166001600160601b031681526020019081526020015f208773__$3bac17678db7ae928afa209f2f44deec9c$__634c41dd96600273__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af415801561122c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112509190611715565b60405163046e44af60e11b81526001600160601b03909116600482015273__$3bac17678db7ae928afa209f2f44deec9c$__906308dc895e90602401602060405180830381865af41580156112a7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112cb919061177c565b6112d59190611793565b6040518263ffffffff1660e01b81526004016112f391815260200190565b602060405180830381865af415801561130e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113329190611715565b73__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af4158015611379573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061139d9190611715565b611541565b600480546040516346f0e8a760e11b81526001600160601b038916928101929092526001600160a01b031690638de1d14e906024015f604051808303815f87803b1580156113ee575f80fd5b505af1158015611400573d5f803e3d5ffd5b5050604080516001600160601b038a16815260ff8916602082015264ffffffffff8816818301526001600160a01b038716606082015290517f086dbed771133d4ebbe0285c0df8231e94a664efbae4bd66c0e3e9f11c7fd0f09350908190036080019150a1505050505050565b604051632601631360e21b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__906398058c4c906044015b602060405180830381865af41580156114ce573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114f2919061175d565b9392505050565b6040516383ffcdef60e01b815264ffffffffff8084166004830152821660248201525f9073__$71e292c09eace9601b3e21e68a1278917a$__906383ffcdef906044016114b3565b83546001600160601b038381166001600160c01b03198316176c010000000000000000000000009184169190910217855560408051639fa6a6e360e01b81529051600160c01b90920464ffffffffff169173__$f55ca14f1ddce1b88fe30d23ae45f595f4$__91639fa6a6e39160048083019260209291908290030181865af41580156115d0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115f49190611742565b855464ffffffffff918216600160c01b0264ffffffffff60c01b1982168117808955604080516001600160601b038a811682529384169484169490941760208501526c010000000000000000000000009091049091169082015290821660608201527f05c35323706f609643b5b81348a27fedbbaf7ae364b4d43f69a8853c024f20479060800160405180910390a15050505050565b61074c806176fb83390190565b6001600160a01b03811681146116ab575f80fd5b50565b5f80604083850312156116bf575f80fd5b82516116ca81611697565b60208401519092506116db81611697565b809150509250929050565b5f602082840312156116f6575f80fd5b81516114f281611697565b6001600160601b03811681146116ab575f80fd5b5f60208284031215611725575f80fd5b81516114f281611701565b64ffffffffff811681146116ab575f80fd5b5f60208284031215611752575f80fd5b81516114f281611730565b5f6020828403121561176d575f80fd5b815180151581146114f2575f80fd5b5f6020828403121561178c575f80fd5b5051919050565b5f826117ad57634e487b7160e01b5f52601260045260245ffd5b500490565b615f3c806117bf5f395ff3fe608060405234801561000f575f80fd5b506004361061023f575f3560e01c80636291423a11610135578063b4485022116100b4578063d44f8a4b11610079578063d44f8a4b146109c9578063de0eb85f146109dc578063e8ce883d146109ef578063ea48ce9b14610a02578063f55a7d1e14610a15575f80fd5b8063b448502214610881578063b9a5c03014610980578063bac475b714610993578063bf7e214f146109a6578063c4d66de8146109b6575f80fd5b80638fb36037116100fa5780638fb36037146106f15780639a148b7f14610712578063a6bc7cb814610725578063a71bfbb71461075d578063a9ea092814610770575f80fd5b80636291423a1461067157806363fe327a146106825780636d387fe41461069357806377083813146106cb5780637a9e5e4b146106de575f80fd5b80634a923f0c116101c15780635809c85d116101865780635809c85d1461058857806359386f8e146106255780635b0ee099146106385780635ecf260f1461064b5780635fd1efec1461065e575f80fd5b80634a923f0c146105035780634f9c1c091461051657806351486e7d14610539578063517069d814610562578063553b210114610575575f80fd5b80631b50e10b116102075780631b50e10b146103fb57806322e164061461040e57806325c083cf146104215780633a208dc714610434578063493eaa1314610459575f80fd5b80630345861d1461024357806307ccf38c146102585780630ad044ce1461038f57806310a0638a146103ba57806319f47dfc146103cd575b5f80fd5b610256610251366004615648565b610b4d565b005b61030b61026636600461567f565b6040805160c080820183525f80835260208084018290528385018290526060808501839052608080860184905260a09586018490526001600160601b039788168452600b8352928690208651948501875280548089168652600160601b8082048a1694870194909452600160c01b900464ffffffffff9081169786019790975260010154968716908401528504841690820152600160881b9093049091169082015290565b60405161038691905f60c0820190506001600160601b0383511682526001600160601b03602084015116602083015264ffffffffff60408401511660408301526001600160601b03606084015116606083015264ffffffffff608084015116608083015264ffffffffff60a08401511660a083015292915050565b60405180910390f35b6103a261039d3660046156a7565b610d1d565b6040516001600160601b039091168152602001610386565b6102566103c836600461567f565b610d8e565b6103a26103db36600461567f565b6001600160601b039081165f908152600b60205260409020600101541690565b610256610409366004615700565b610dd0565b61025661041c366004615648565b610e39565b6103a261042f36600461567f565b611073565b6004546001600160a01b03165b6040516001600160a01b039091168152602001610386565b6104cc61046736600461567f565b60408051606080820183525f80835260208084018290529284018190526001600160601b0394851681526007835283902083519182018452548085168252600160601b810490941691810191909152600160c01b90920464ffffffffff169082015290565b6040805182516001600160601b039081168252602080850151909116908201529181015164ffffffffff1690820152606001610386565b6103a261051136600461571b565b61108e565b61052961052436600461567f565b6110e9565b6040519015158152602001610386565b61054c610547366004615763565b611183565b60405164ffffffffff9091168152602001610386565b610529610570366004615648565b6114f5565b6102566105833660046157a1565b6115aa565b6105fa610596366004615648565b6040805180820182525f80825260209182018190526001600160601b03949094168452600a81528184206001600160a01b0393841685528152928190208151808301909252549182168152600160a01b90910464ffffffffff169181019190915290565b6040805182516001600160a01b0316815260209283015164ffffffffff169281019290925201610386565b6102566106333660046157df565b611600565b61025661064636600461585c565b61166d565b610256610659366004615924565b611694565b61025661066c366004615700565b61185b565b6003546001600160a01b0316610441565b6002546001600160a01b0316610441565b6106a66106a1366004615950565b6118bc565b604080516001600160601b03909316835264ffffffffff909116602083015201610386565b6103a26106d93660046157a1565b61195b565b6102566106ec366004615700565b611d9c565b6106f9611e14565b6040516001600160e01b03199091168152602001610386565b61025661072036600461597c565b611e36565b6107386107333660046159c8565b611e4d565b604080516001600160a01b03909316835264ffffffffff909116602083015201610386565b61025661076b366004615648565b611ffa565b61087461077e36600461567f565b60408051610120810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810191909152506001600160601b039081165f9081526006602090815260409182902082516101208101845281548086168252600160601b808204871694830194909452600160c01b9081900464ffffffffff908116958301959095526001830154808716606084015293840486166080830152830490931660a0840152600160e81b90910460ff1660c0830152600201546001600160a01b03811660e0830152600160a01b900490911661010082015290565b6040516103869190615a05565b61092c61088f366004615648565b604080516080810182525f808252602082018190529181018290526060810191909152506001600160601b039182165f9081526008602090815260408083206001600160a01b0394909416835292815290829020825160808101845290548085168252600160601b810490941691810191909152600160c01b830461ffff1691810191909152600160d01b90910464ffffffffff16606082015290565b60405161038691905f6080820190506001600160601b0383511682526001600160601b03602084015116602083015261ffff604084015116604083015264ffffffffff606084015116606083015292915050565b61052961098e36600461567f565b612374565b6102566109a1366004615aee565b61241d565b5f546001600160a01b0316610441565b6102566109c4366004615700565b612535565b6103a26109d7366004615b1b565b612656565b6103a26109ea366004615950565b6127a0565b6103a26109fd366004615950565b612989565b6103a2610a10366004615b1b565b612a16565b610b40610a23366004615b48565b60408051610140810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810182905261010081018290526101208101919091525060ff9081165f9081526005602090815260409182902082516101408101845281548086161515825261010080820487161515948301949094526201000081049095161515938101939093526001600160601b036301000000850481166060850152600160781b850416608084015264ffffffffff600160d81b909404841660a0840152600181015480851660c08501526001600160a01b0365010000000000909104811660e085015260029091015490811691830191909152600160a01b900490911661012082015290565b6040516103869190615b61565b610b59335b5f36612b4f565b5f80610b6484612c3e565b6003546001830154604051631e74126560e21b81526001600160a01b0392831660048201526001600160601b0389166024820152600160e81b90910460ff1660448201529086166064820152919350915073__$fb6c7635e3c1acf7e7d82c7d43e7a24671$__906379d04994906084015f6040518083038186803b158015610bea575f80fd5b505af4158015610bfc573d5f803e3d5ffd5b5050506002830180546001600160a01b038681166001600160a01b031983161790925560408051639fa6a6e360e01b8152905192909116925073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__91639fa6a6e3916004808201926020929091908290030181865af4158015610c74573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c989190615c4e565b835464ffffffffff60c01b1916600160c01b64ffffffffff92831602178455604080516001600160601b03881681526001600160a01b03808816602083015284169181019190915290831660608201527fd0227ef9a17652cfa7e48ccd5c6f70bf4d13dfe2eb71df80aa62881a3240d773906080015b60405180910390a15050505050565b5f610d2733610b52565b5f610d3186612cf6565b60018101549091505f90610d4d906001600160601b0316612dbb565b90508515610d6257610d60878383612e7e565b505b8415610d7557610d7387838361328a565b505b610d8187838387613550565b925050505b949350505050565b610d9733610b52565b5f610da182612cf6565b60018101549091505f90610dbd906001600160601b0316612dbb565b9050610dca838383612e7e565b50505050565b610dd933610b52565b600280546001600160a01b038381166001600160a01b03198316811790935560408051938452911660208301819052917f960b8b5c264ebbae758850aa1b8e20d698fe852b7c686ee4ee8e991602c42cbe91015b60405180910390a15050565b610e4233610b52565b6001600160601b0382165f908152600a602090815260408083206001600160a01b03851684529091529081902080549151638d38cd4b60e01b8152600160a01b90920464ffffffffff1660048301529073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__90638d38cd4b90602401602060405180830381865af4158015610ecc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ef09190615c69565b15610f1b578282604051633cdee7f960e01b8152600401610f12929190615c84565b60405180910390fd5b73__$bf7bc340cbb9229ef1de2c568356e67902$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610f62573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f869190615ca6565b81546001600160a01b0319166001600160a01b039190911617815560408051639fa6a6e360e01b8152905173__$f55ca14f1ddce1b88fe30d23ae45f595f4$__91639fa6a6e39160048083019260209291908290030181865af4158015610fef573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110139190615c4e565b815464ffffffffff91909116600160a01b0264ffffffffff60a01b199091161781556040517e2713bc0b3137ab1236c169e5d41bf95db32cea0a163dc838d6842c6410b99a906110669085908590615c84565b60405180910390a1505050565b5f61107d33610b52565b61108682613772565b90505b919050565b5f61109833610b52565b5f6110a285612cf6565b60018101549091505f906110be906001600160601b0316612dbb565b905084156110d3576110d1868383612e7e565b505b6110df8683838761398b565b9695505050505050565b6001600160601b0381165f908152600b6020526040808220600101549051638d38cd4b60e01b8152600160881b90910464ffffffffff16600482015273__$f55ca14f1ddce1b88fe30d23ae45f595f4$__90638d38cd4b90602401602060405180830381865af415801561115f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110869190615c69565b5f61118d33610b52565b6001600160601b0385165f908152600b60205260409081902060018101549151638d38cd4b60e01b8152600160881b90920464ffffffffff1660048301529073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__90638d38cd4b90602401602060405180830381865af4158015611206573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061122a9190615c69565b1561125357604051630e5c323960e01b81526001600160601b0387166004820152602401610f12565b5f61125d86612dbb565b905061126a868286613b97565b6001820180546001600160601b0319166001600160601b0388161790556040805163bc1b392d60e01b8152905173__$3bac17678db7ae928afa209f2f44deec9c$__9163bc1b392d9160048083019260209291908290030181865af41580156112d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112f99190615cc1565b82546001600160601b0319166001600160601b03919091161782556040805163bc1b392d60e01b8152905173__$3bac17678db7ae928afa209f2f44deec9c$__9163bc1b392d9160048083019260209291908290030181865af4158015611362573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113869190615cc1565b825f01600c6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af41580156113f4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114189190615c4e565b825464ffffffffff91909116600160c01b0264ffffffffff60c01b1990911617825561144382613c30565b5060018201548254604080516001600160601b03808c168252938416602082015292821690830152600160c01b900464ffffffffff1660608201526001600160a01b03861660808201527fd3ee63d0421bec5f3bb2d1f810b978739c31bb1e1f31c7113739eca75026933b9060a00160405180910390a16114dc8783838460010160189054906101000a900464ffffffffff1688613d6c565b5054600160c01b900464ffffffffff1695945050505050565b6001600160601b0382165f908152600a602090815260408083206001600160a01b0385168452909152808220549051638d38cd4b60e01b8152600160a01b90910464ffffffffff16600482015273__$f55ca14f1ddce1b88fe30d23ae45f595f4$__90638d38cd4b906024015b602060405180830381865af415801561157d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115a19190615c69565b90505b92915050565b6115b333610b52565b5f6115bd83612cf6565b60018101549091505f906115d9906001600160601b0316612dbb565b905082156115ee576115ec848383612e7e565b505b6115f984838361328a565b5050505050565b61160933610b52565b5f61161386612cf6565b60018101549091505f9061162f906001600160601b0316612dbb565b9050851561164457611642878383612e7e565b505b84156116575761165587838361328a565b505b6116648783838787613d6c565b50505050505050565b61167633610b52565b6116888a8a8a8a8a8a8a8a8a8a614113565b50505050505050505050565b61169d33610b52565b5f806116a884612c3e565b6003546001830154604051632048909b60e21b81526001600160a01b0390921660048301526001600160601b0388166024830152600160e81b900460ff16604482015264ffffffffff86166064820152919350915073__$fb6c7635e3c1acf7e7d82c7d43e7a24671$__90638122426c906084015f6040518083038186803b158015611732575f80fd5b505af4158015611744573d5f803e3d5ffd5b50505060018301805464ffffffffff868116600160c01b90810264ffffffffff60c01b1984161790935560408051639fa6a6e360e01b815290519390920416925073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__91639fa6a6e3916004808201926020929091908290030181865af41580156117c4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117e89190615c4e565b835464ffffffffff60c01b1916600160c01b64ffffffffff92831602178455604080516001600160601b038816815286831660208201528383169181019190915290831660608201527f63545c71b15de59d1463d3e2577b64bc3c5510cd1dd0243eb030f9da55a65fe090608001610d0e565b61186433610b52565b600380546001600160a01b038381166001600160a01b03198316811790935560408051938452911660208301819052917f8414c1d6352c513484c229579bca3842a94d9c46e1dd28ec9b03c9b3d5a4ae429101610e2d565b5f806118c733610b52565b5f6118d185612c3e565b6001820180546001600160601b03888116600160601b818102600160601b600160c01b0319851617909455604080518c84168152602081019290925264ffffffffff861690820152929091041695509093509091507f74cf98e0b0178be4925e6447d2bdeea75507d176a76652c4b0eda5f06da689c39060600160405180910390a1509250929050565b6001600160601b0382165f908152600960209081526040808320805482518185028101850190935280835284938301828280156119bf57602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116119a1575b5050505050905080515f03611a415773__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015611a15573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a399190615cc1565b9150506115a4565b73__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015611a88573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611aac9190615cc1565b6001600160601b038086165f90815260066020526040812060020154929450600160a01b90920416908080805b8551811015611ce557858181518110611af457611af4615cdc565b6020908102919091018101516001600160601b038b81165f9081526008845260408082206001600160a01b0385168352909452839020549251630a4d29dd60e31b8152921660048301819052909550935073__$3bac17678db7ae928afa209f2f44deec9c$__906352694ee890602401602060405180830381865af4158015611b7f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ba39190615c69565b611cdd576001600160601b0385165f908152600a602090815260408083206001600160a01b038881168552925291829020549151636a88f0a760e11b8152911660048201819052925073__$bf7bc340cbb9229ef1de2c568356e67902$__9063d511e14e90602401602060405180830381865af4158015611c26573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c4a9190615c69565b611cdd57604051636e5912e760e01b8152611cda90889073__$3bac17678db7ae928afa209f2f44deec9c$__90636e5912e790611c96906001600160601b038916908890600401615c84565b602060405180830381865af4158015611cb1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cd59190615cc1565b6145cc565b96505b600101611ad9565b508615611d91576001600160601b038881165f90815260066020908152604080832060010154600160e81b900460ff168084526005909252909120805491929091611d39918a916301000000900416614651565b15611d57578054630100000090046001600160601b03169750611d8e565b8054611d74908990600160781b90046001600160601b031661469b565b15611d8e578054600160781b90046001600160601b031697505b50505b505050505092915050565b5f5433906001600160a01b03168114611dd25760405162d1953b60e31b81526001600160a01b0382166004820152602401610f12565b816001600160a01b03163b5f03611e07576040516361798f2f60e11b81526001600160a01b0383166004820152602401610f12565b611e10826146e5565b5050565b5f8054600160a01b900460ff16611e2a57505f90565b50638fb3603760e01b90565b611e3f33610b52565b610dca848484846001614738565b5f80611e5833610b52565b6001600160601b0385165f908152600a602090815260408083206001600160a01b0388168452909152908190208054915163790a38ad60e01b8152600160a01b90920464ffffffffff1660048301529073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__9063790a38ad90602401602060405180830381865af4158015611ee2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f069190615c69565b15611f2857858560405163020c3e0f60e31b8152600401610f12929190615c84565b80546001600160a01b038581166001600160a01b0319831617835560408051639fa6a6e360e01b81529051918316955064ffffffffff600160a01b90930492909216935073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__91639fa6a6e39160048083019260209291908290030181865af4158015611faa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fce9190615c4e565b815464ffffffffff91909116600160a01b0264ffffffffff60a01b199091161790559094909350915050565b61200333610b52565b6001600160601b0382165f9081526008602090815260408083206001600160a01b03851684529091529081902080549151638d38cd4b60e01b8152600160d01b90920464ffffffffff1660048301529073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__90638d38cd4b90602401602060405180830381865af415801561208d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120b19190615c69565b156120bb57505050565b6120c483612dbb565b506040516301f8588560e51b81526001600160601b03841660048201525f9073__$dacf551d137a232f87fa09e79113e25430$__90633f0b10a090602401602060405180830381865af415801561211d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121419190615cc1565b6001600160601b0381165f908152600a602090815260408083206001600160a01b03881684529091529081902054905163790a38ad60e01b8152600160a01b90910464ffffffffff16600482015290915073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__9063790a38ad90602401602060405180830381865af41580156121cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121f09190615c69565b1561221257808360405163020c3e0f60e31b8152600401610f12929190615c84565b73__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015612259573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061227d9190615cc1565b82546001600160601b0319166001600160601b039190911617825560408051639fa6a6e360e01b8152905173__$f55ca14f1ddce1b88fe30d23ae45f595f4$__91639fa6a6e39160048083019260209291908290030181865af41580156122e6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061230a9190615c4e565b825464ffffffffff91909116600160d01b0264ffffffffff60d01b1990911617909155506001600160601b0382165f9081526009602090815260408220805460018101825590835291200180546001600160a01b0383166001600160a01b03199091161790555050565b6001600160601b0381165f908152600b60209081526040808320548151639fa6a6e360e01b8152915161108693600160c01b90920464ffffffffff169273__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__92639fa6a6e3926004808401938290030181865af41580156123ea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061240e9190615c4e565b64ffffffffff90811691161190565b61242633610b52565b5f61243084614e83565b80546001600160601b038581166001600160c01b0319831617600160601b9186169190910217825560408051639fa6a6e360e01b81529051929350600160c01b90910464ffffffffff169173__$f55ca14f1ddce1b88fe30d23ae45f595f4$__91639fa6a6e39160048083019260209291908290030181865af41580156124b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124dd9190615c4e565b825464ffffffffff91909116600160c01b0264ffffffffff60c01b199091161782556040517ff247f9f8f9c455e0928cd8b5f34ef2567264cde4001db187c3e930c25e08fc1590610d0e908790879087908690615cf0565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff165f8115801561257a5750825b90505f8267ffffffffffffffff1660011480156125965750303b155b9050811580156125a4575080155b156125c25760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156125ec57845460ff60401b1916600160401b1785555b600280546001600160a01b0319166001600160a01b038816179055831561264e57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15b505050505050565b5f61266033610b52565b5f61266b8585614f46565b805490915064ffffffffff600160d01b82041690612692906001600160601b031685615016565b82546001600160601b0319166001600160601b03919091161782556126b8868684615060565b73__$f55ca14f1ddce1b88fe30d23ae45f595f4$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af41580156126ff573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127239190615c4e565b825464ffffffffff91909116600160d01b0264ffffffffff60d01b198216811784556040516001600160601b03918216919092161793507f6eea09d3401164101f559606e8c76aca972689ba8330a579bd6507b5889d153f9061278f9088908890889088908790615d20565b60405180910390a150509392505050565b5f6127aa33610b52565b5f6127b484612dbb565b80546001820154919250600160c01b900464ffffffffff16906127e0906001600160601b0316856145cc565b826001015f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af415801561284e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128729190615c4e565b825464ffffffffff91909116600160c01b0264ffffffffff60c01b199091161782556001808301549054604051631c5da14d60e11b81526001600160601b03888116600483015290921694507f317c91a4e8d5e9d4af7c5e856f79e6db430257dabe4a32a352ef58b9ba000f3d91879187916001600160a01b03909116906338bb429a906024015b602060405180830381865afa158015612915573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129399190615ca6565b604080516001600160601b03948516815292841660208401526001600160a01b0390911690820152908516606082015264ffffffffff8316608082015260a00160405180910390a1505092915050565b5f61299333610b52565b5f61299d84612dbb565b90505f6129ab85838661517d565b6001838101549054604051631c5da14d60e11b81526001600160601b03898116600483015290921695509192507fb144c2ad8fd690acb16f40becc8acde92c8694ef99952f875213f57ce1b7acef91879187916001600160a01b0316906338bb429a906024016128fa565b5f612a2033610b52565b5f612a2b8585614f46565b805490915064ffffffffff600160d01b82041690612a52906001600160601b0316856145cc565b82546001600160601b0319166001600160601b0391909116178255612a78868684615060565b73__$f55ca14f1ddce1b88fe30d23ae45f595f4$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af4158015612abf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ae39190615c4e565b825464ffffffffff91909116600160d01b0264ffffffffff60d01b198216811784556040516001600160601b03918216919092161793507f05e52d64c754f7a526cf0704e8cfe26c04e8b656e7b493f61fbda7109a326f429061278f9088908890889088908790615d20565b5f80612b82612b655f546001600160a01b031690565b8630612b7460045f898b615d62565b612b7d91615d89565b6152ba565b91509150816115f95763ffffffff811615612c1b575f805460ff60a01b198116600160a01b17909155604051634a63ebf760e11b81526001600160a01b03909116906394c7d7ee90612bdc90889088908890600401615dbf565b5f604051808303815f87803b158015612bf3575f80fd5b505af1158015612c05573d5f803e3d5ffd5b50505f805460ff60a01b19169055506115f99050565b60405162d1953b60e31b81526001600160a01b0386166004820152602401610f12565b5f80612c4983612dbb565b9150815f0160189054906101000a900464ffffffffff16905073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af4158015612ca9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ccd9190615c4e565b825464ffffffffff91909116600160c01b0264ffffffffff60c01b199091161782559092909150565b6001600160601b0381165f908152600b6020526040908190206001810154915163790a38ad60e01b8152600160881b90920464ffffffffff1660048301529073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__9063790a38ad90602401602060405180830381865af4158015612d6f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d939190615c69565b156110895760405162af6eb360e61b81526001600160601b0383166004820152602401610f12565b6001600160601b0381165f90815260066020526040908190208054915163790a38ad60e01b8152600160c01b90920464ffffffffff1660048301529073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__9063790a38ad90602401602060405180830381865af4158015612e31573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e559190615c69565b156110895760405163091c22d760e41b81526001600160601b0383166004820152602401610f12565b6002810154604051636a88f0a760e11b81526001600160a01b0390911660048201525f9073__$bf7bc340cbb9229ef1de2c568356e67902$__9063d511e14e90602401602060405180830381865af4158015612edc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f009190615c69565b613283576001830154604051633682752160e21b8152600160601b90910464ffffffffff1660048201525f9073__$71e292c09eace9601b3e21e68a1278917a$__90630c67422c9073__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9063da09d48490602401602060405180830381865af4158015612f82573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612fa69190615dfe565b612fb09042615e29565b6040518263ffffffff1660e01b8152600401612fce91815260200190565b602060405180830381865af4158015612fe9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061300d9190615c4e565b60405163790a38ad60e01b815264ffffffffff8216600482015290915073__$71e292c09eace9601b3e21e68a1278917a$__9063790a38ad90602401602060405180830381865af4158015613064573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130889190615c69565b156131005773__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af41580156130d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130f89190615cc1565b915050613283565b60028301548454604051635bdf11e360e11b81526001600160a01b03909216600483015264ffffffffff831660248301526001600160601b0316604482015273__$f048dbd5170c0ac319fa0222065b281d84$__9063b7be23c690606401602060405180830381865af4158015613179573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061319d9190615cc1565b83549092506131bc90600160601b90046001600160601b0316836145cc565b8354600160601b600160c01b031916600160601b6001600160601b03928316810291909117855585546131f39291900416836145cc565b84546001600160601b0391909116600160601b02600160601b600160c01b03199091161784555f61322485856153c2565b85546040519192507fed4853b0609e21bd14ba3f580ebca5d25c21bc024161fd250b6b33c768c1c8729161278f91899187916001600160601b0380821692600160601b830490911691600160c01b900464ffffffffff16908890615e3c565b9392505050565b8154604051630a4d29dd60e31b8152600160601b9091046001600160601b0316600482018190529073__$3bac17678db7ae928afa209f2f44deec9c$__906352694ee890602401602060405180830381865af41580156132ec573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133109190615c69565b61328357600183015461332d906001600160601b03168383613b97565b6001830154613346906001600160601b03168383615459565b815461335b906001600160601b0316826145cc565b82546001600160601b0319166001600160601b039182161780845561338991600160601b9091041682615016565b8254600160601b600160c01b031916600160601b6001600160601b039283160217835583546133b99116826145cc565b83546001600160601b0319166001600160601b03919091161783556040805163bc1b392d60e01b8152905173__$3bac17678db7ae928afa209f2f44deec9c$__9163bc1b392d9160048083019260209291908290030181865af4158015613422573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134469190615cc1565b83546001600160601b0391909116600160601b02600160601b600160c01b03199091161783555f61347784846153c2565b90507f38151af1adffdc3651d3f7917ea0e90417d40e286b11741dd01a3e3228d96c598583865f015f9054906101000a90046001600160601b031673__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af41580156134f9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061351d9190615cc1565b88546040516135409594939291600160c01b900464ffffffffff16908890615e3c565b60405180910390a1509392505050565b8254604051637931c81160e01b81526001600160601b03808416600483015290911660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__90637931c81190604401602060405180830381865af41580156135b3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906135d79190615cc1565b604051630a4d29dd60e31b81526001600160601b038216600482015290915073__$3bac17678db7ae928afa209f2f44deec9c$__906352694ee890602401602060405180830381865af4158015613630573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136549190615c69565b610d865761366185612374565b156136a057835460405163187bc0bd60e21b81526001600160601b0387166004820152600160c01b90910464ffffffffff166024820152604401610f12565b82546136b5906001600160601b031682615016565b83546001600160601b0319166001600160601b0391821617845584546136dc911682615016565b84546001600160601b0319166001600160601b03919091161784555f61370285856153c2565b85546040519192507fed7a6a5cb58253a85b06a414d4fb43855fc759e9f19af28b775bf2b47ec7bf709161376191899186916001600160601b0380821692600160601b830490911691600160c01b900464ffffffffff16908890615e3c565b60405180910390a150949350505050565b5f8061377d83612dbb565b90505f61378984614e83565b8054909150600160c01b900464ffffffffff165f6137a7868261195b565b83549091506137c09082906001600160601b03166145cc565b8354604051637931c81160e01b81526001600160601b038084166004830152600160601b909204909116602482015290955073__$3bac17678db7ae928afa209f2f44deec9c$__90637931c81190604401602060405180830381865af415801561382c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138509190615cc1565b94508484600101600c6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af41580156138c2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138e69190615c4e565b845464ffffffffff60c01b198116600160c01b64ffffffffff93841602908117875560018701548654604080516001600160601b03808e168252600160601b9485900481166020830152939092048316908201528582166060820152928116911617608082015290831660a08201527f816866bb29a0d245f04a0179c957b4495d86447de93a8a4962fd3528510991429060c00160405180910390a150505050919050565b8254604051637931c81160e01b81526001600160601b038084166004830152600160601b90920490911660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__90637931c81190604401602060405180830381865af41580156139f6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613a1a9190615cc1565b604051630a4d29dd60e31b81526001600160601b038216600482015290915073__$3bac17678db7ae928afa209f2f44deec9c$__906352694ee890602401602060405180830381865af4158015613a73573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613a979190615c69565b610d86576001840154613ab4906001600160601b03168483615459565b8254613ad090600160601b90046001600160601b031682615016565b8354600160601b600160c01b031916600160601b6001600160601b0392831681029190911785558554613b07929190041682615016565b84546001600160601b0391909116600160601b02600160601b600160c01b03199091161784555f613b3885856153c2565b85546040519192507f39ee77ec34c101210194f9f2c8be592bf5ef303db8e68adf58b4fbe747a134829161376191899186916001600160601b0380821692600160601b830490911691600160c01b900464ffffffffff16908890615e3c565b8154613bca90613bb0906001600160601b0316836145cc565b6001840154600160601b90046001600160601b031661469b565b15613c2b576001820154825484916001600160601b03600160601b909104811691613bf69116846145cc565b604051631946161f60e01b81526001600160601b03938416600482015291831660248301529091166044820152606401610f12565b505050565b5f8160010160119054906101000a900464ffffffffff16905073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af4158015613c90573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613cb49190615c4e565b8260010160116101000a81548164ffffffffff021916908364ffffffffff16021790555073__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af4158015613d1f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613d439190615c4e565b82600101600c6101000a81548164ffffffffff021916908364ffffffffff160217905550919050565b604051630a4d29dd60e31b81526001600160601b038216600482015273__$3bac17678db7ae928afa209f2f44deec9c$__906352694ee890602401602060405180830381865af4158015613dc2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613de69190615c69565b6115f9576001840154613e03906001600160601b03168483613b97565b8254613e18906001600160601b0316826145cc565b83546001600160601b0319166001600160601b039182161784558454613e3f9116826145cc565b84546001600160601b0319166001600160601b0391909116178455600183015460405163e83da7ad60e01b815264ffffffffff8085166004830152600160c01b90920490911660248201525f9073__$71e292c09eace9601b3e21e68a1278917a$__9063e83da7ad90604401602060405180830381865af4158015613ec6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613eea9190615c4e565b6040516330b8415f60e01b81526001600160601b038416600482015290915073__$3bac17678db7ae928afa209f2f44deec9c$__906330b8415f90602401602060405180830381865af4158015613f43573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f679190615c69565b8015613fe65750604051638d38cd4b60e01b815264ffffffffff8216600482015273__$71e292c09eace9601b3e21e68a1278917a$__90638d38cd4b90602401602060405180830381865af4158015613fc2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613fe69190615c69565b156140985784546040516352bcc5a760e11b8152600160c01b90910464ffffffffff90811660048301528216602482015273__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9063a5798b4e90604401602060405180830381865af4158015614051573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906140759190615c4e565b855464ffffffffff91909116600160c01b0264ffffffffff60c01b199091161785555b5f6140a386866153c2565b86546040519192507f15d4969bfd34a12fabf5d09d2615ffc4f81d206e7756d9e3c0919ba800d57e4191614102918a9187916001600160601b0380821692600160601b830490911691600160c01b900464ffffffffff16908890615e3c565b60405180910390a150505050505050565b60405163037c8cb160e51b815260ff8b16600482015273__$0d958e68cba84670b8f4a3f2f2686b1c6b$__90636f91962090602401602060405180830381865af4158015614163573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906141879190615c69565b156141aa57604051633c00d02760e01b815260ff8b166004820152602401610f12565b6141b4868661469b565b156141e457604051622a505160e91b81526001600160601b03808816600483015286166024820152604401610f12565b6141ee84846154b9565b1561421d576040516338157c8960e21b815264ffffffffff808616600483015284166024820152604401610f12565b6001600160a01b03808216908316111561425d57604051638ae671e360e01b81526001600160a01b03808416600483015282166024820152604401610f12565b5f60055f8c60ff1660ff1681526020019081526020015f2060020160149054906101000a900464ffffffffff1690508960055f8d60ff1660ff1681526020019081526020015f205f015f6101000a81548160ff0219169083151502179055508860055f8d60ff1660ff1681526020019081526020015f205f0160016101000a81548160ff0219169083151502179055508760055f8d60ff1660ff1681526020019081526020015f205f0160026101000a81548160ff0219169083151502179055508660055f8d60ff1660ff1681526020019081526020015f205f0160036101000a8154816001600160601b0302191690836001600160601b031602179055508560055f8d60ff1660ff1681526020019081526020015f205f01600f6101000a8154816001600160601b0302191690836001600160601b031602179055508460055f8d60ff1660ff1681526020019081526020015f205f01601b6101000a81548164ffffffffff021916908364ffffffffff1602179055508360055f8d60ff1660ff1681526020019081526020015f206001015f6101000a81548164ffffffffff021916908364ffffffffff1602179055508260055f8d60ff1660ff1681526020019081526020015f2060010160056101000a8154816001600160a01b0302191690836001600160a01b031602179055508160055f8d60ff1660ff1681526020019081526020015f206002015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af41580156144d2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906144f69190615c4e565b60ff8c165f81815260056020908152604091829020600201805464ffffffffff60a01b1916600160a01b64ffffffffff9687160217905581519283528d1515908301528b15159082015289151560608201526001600160601b03808a166080830152881660a082015286821660c082015285821660e08201526001600160a01b0380861661010083015284166101208201529082166101408201527fb24c8b320e3f99e0aef480e78c342643583880e3f5a1c392a85a4c51f76799f8906101600160405180910390a15050505050505050505050565b60405163274acb3560e01b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__9063274acb35906044015b602060405180830381865af415801561462d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115a19190615cc1565b6040516304d40eb160e11b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__906309a81d6290604401611562565b604051632601631360e21b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__906398058c4c90604401611562565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9060200160405180910390a150565b80156147e25760015460035460405163647b8c2f60e01b81526001600160a01b03928316600482015290821660248201526001600160601b038716604482015260ff8616606482015264ffffffffff8516608482015290831660a482015273__$fb6c7635e3c1acf7e7d82c7d43e7a24671$__9063647b8c2f9060c4015f6040518083038186803b1580156147cb575f80fd5b505af41580156147dd573d5f803e3d5ffd5b505050505b6001600160601b0385165f90815260066020908152604091829020825163bc1b392d60e01b81529251909273__$3bac17678db7ae928afa209f2f44deec9c$__9263bc1b392d926004808401938290030181865af4158015614846573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061486a9190615cc1565b81546001600160601b0319166001600160601b03919091161781556040805163bc1b392d60e01b8152905173__$3bac17678db7ae928afa209f2f44deec9c$__9163bc1b392d9160048083019260209291908290030181865af41580156148d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906148f79190615cc1565b815f01600c6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015614965573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906149899190615cc1565b816001015f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af41580156149f7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614a1b9190615cc1565b60018201805471ff0000000000ffffffffffffffffffffffff60601b1916600160601b6001600160601b039384160260ff60e81b191617600160e81b60ff8916021764ffffffffff60c01b1916600160c01b64ffffffffff8816021790556002820180546001600160a01b0319166001600160a01b0386161790556040516301f8588560e51b8152908716600482015273__$dacf551d137a232f87fa09e79113e25430$__90633f0b10a090602401602060405180830381865af4158015614ae5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614b099190615cc1565b8160020160146101000a8154816001600160601b0302191690836001600160601b0316021790555073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af4158015614b78573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614b9c9190615c4e565b815f0160186101000a81548164ffffffffff021916908364ffffffffff160217905550614dbf60075f886001600160601b03166001600160601b031681526020019081526020015f208773__$3bac17678db7ae928afa209f2f44deec9c$__634c41dd96600273__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af4158015614c49573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614c6d9190615cc1565b60405163046e44af60e11b81526001600160601b03909116600482015273__$3bac17678db7ae928afa209f2f44deec9c$__906308dc895e90602401602060405180830381865af4158015614cc4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614ce89190615dfe565b614cf29190615e7c565b6040518263ffffffff1660e01b8152600401614d1091815260200190565b602060405180830381865af4158015614d2b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614d4f9190615cc1565b73__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af4158015614d96573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614dba9190615cc1565b615501565b600480546040516346f0e8a760e11b81526001600160601b038916928101929092526001600160a01b031690638de1d14e906024015f604051808303815f87803b158015614e0b575f80fd5b505af1158015614e1d573d5f803e3d5ffd5b5050604080516001600160601b038a16815260ff8916602082015264ffffffffff8816918101919091526001600160a01b03861660608201527f086dbed771133d4ebbe0285c0df8231e94a664efbae4bd66c0e3e9f11c7fd0f092506080019050612645565b6001600160601b0381165f90815260076020526040908190208054915163790a38ad60e01b8152600160c01b90920464ffffffffff1660048301529073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__9063790a38ad90602401602060405180830381865af4158015614ef9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614f1d9190615c69565b15611089576040516384bdfa9560e01b81526001600160601b0383166004820152602401610f12565b6001600160601b0382165f9081526008602090815260408083206001600160a01b0385168452909152908190208054915163790a38ad60e01b8152600160d01b90920464ffffffffff1660048301529073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__9063790a38ad90602401602060405180830381865af4158015614fd0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614ff49190615c69565b156115a457828260405163688e635d60e11b8152600401610f12929190615c84565b6040516363cf551160e11b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__9063c79eaa2290604401614612565b8054600160c01b900461ffff1681601861507983615e9b565b82546101009290920a61ffff8181021990931691831602179091556002548354604051638755a73f60e01b81526001600160601b0380891660048301526001600160a01b038881166024840152600160c01b84049095166044830152600160601b83048116606483015290911660848201525f9350911690638755a73f9060a401602060405180830381865afa158015615115573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906151399190615c69565b90508015610dca57815461ffff60c01b19600160601b6001600160601b03831602166dffffffffffffffffffffffffffff60601b199091161782556115f984613772565b81546001830154600160c01b90910464ffffffffff16906151a89083906001600160601b031661469b565b156151e75760018301546040516301a4b29960e11b81526001600160601b03808716600483015291821660248201529083166044820152606401610f12565b60018301546151ff906001600160601b031683615016565b836001015f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af415801561526d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906152919190615c4e565b835464ffffffffff91909116600160c01b0264ffffffffff60c01b199091161790925550919050565b6040516001600160a01b03848116602483015283811660448301526001600160e01b0319831660648301525f9182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b179052516153289190615ebb565b5f60405180830381855afa9150503d805f8114615360576040519150601f19603f3d011682016040523d82523d5f602084013e615365565b606091505b509150915081156153b7576040815110615397578080602001905181019061538d9190615ed1565b90945092506153b7565b60208151106153b757808060200190518101906153b49190615c69565b93505b505094509492505050565b5f73__$f55ca14f1ddce1b88fe30d23ae45f595f4$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af415801561540a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061542e9190615c4e565b825464ffffffffff91909116600160c01b0264ffffffffff60c01b199091161782556115a183613c30565b5f61546584848461517d565b60018401546040519192507fc0f991fc396647cd10937655916d61916ae77295c1d6a67e335bc8f502417491916154ab91879186916001600160601b0316908690615cf0565b60405180910390a150505050565b6040516383ffcdef60e01b815264ffffffffff8084166004830152821660248201525f9073__$71e292c09eace9601b3e21e68a1278917a$__906383ffcdef90604401611562565b83546001600160601b038381166001600160c01b0319831617600160601b9184169190910217855560408051639fa6a6e360e01b81529051600160c01b90920464ffffffffff169173__$f55ca14f1ddce1b88fe30d23ae45f595f4$__91639fa6a6e39160048083019260209291908290030181865af4158015615587573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906155ab9190615c4e565b855464ffffffffff91909116600160c01b0264ffffffffff60c01b19821681178088556040517f05c35323706f609643b5b81348a27fedbbaf7ae364b4d43f69a8853c024f204793610d0e9389936001600160601b039182169282169290921792600160601b90920416908690615cf0565b6001600160601b0381168114615631575f80fd5b50565b6001600160a01b0381168114615631575f80fd5b5f8060408385031215615659575f80fd5b82356156648161561d565b9150602083013561567481615634565b809150509250929050565b5f6020828403121561568f575f80fd5b81356132838161561d565b8015158114615631575f80fd5b5f805f80608085870312156156ba575f80fd5b84356156c58161561d565b935060208501356156d58161569a565b925060408501356156e58161569a565b915060608501356156f58161561d565b939692955090935050565b5f60208284031215615710575f80fd5b813561328381615634565b5f805f6060848603121561572d575f80fd5b83356157388161561d565b925060208401356157488161569a565b915060408401356157588161561d565b809150509250925092565b5f805f8060808587031215615776575f80fd5b84356157818161561d565b935060208501356157918161561d565b925060408501356156e581615634565b5f80604083850312156157b2575f80fd5b82356157bd8161561d565b915060208301356156748161569a565b64ffffffffff81168114615631575f80fd5b5f805f805f60a086880312156157f3575f80fd5b85356157fe8161561d565b9450602086013561580e8161569a565b9350604086013561581e8161569a565b9250606086013561582e816157cd565b9150608086013561583e8161561d565b809150509295509295909350565b803560ff81168114611089575f80fd5b5f805f805f805f805f806101408b8d031215615876575f80fd5b61587f8b61584c565b995060208b013561588f8161569a565b985060408b013561589f8161569a565b975060608b01356158af8161569a565b965060808b01356158bf8161561d565b955060a08b01356158cf8161561d565b945060c08b01356158df816157cd565b935060e08b01356158ef816157cd565b92506101008b013561590081615634565b91506101208b013561591181615634565b809150509295989b9194979a5092959850565b5f8060408385031215615935575f80fd5b82356159408161561d565b91506020830135615674816157cd565b5f8060408385031215615961575f80fd5b823561596c8161561d565b915060208301356156748161561d565b5f805f806080858703121561598f575f80fd5b843561599a8161561d565b93506159a86020860161584c565b925060408501356159b8816157cd565b915060608501356156f581615634565b5f805f606084860312156159da575f80fd5b83356159e58161561d565b925060208401356159f581615634565b9150604084013561575881615634565b81516001600160601b03168152602080830151610120830191615a32908401826001600160601b03169052565b506040830151615a4b604084018264ffffffffff169052565b506060830151615a6660608401826001600160601b03169052565b506080830151615a8160808401826001600160601b03169052565b5060a0830151615a9a60a084018264ffffffffff169052565b5060c0830151615aaf60c084018260ff169052565b5060e0830151615aca60e08401826001600160a01b03169052565b50610100830151615ae76101008401826001600160601b03169052565b5092915050565b5f805f60608486031215615b00575f80fd5b8335615b0b8161561d565b925060208401356157488161561d565b5f805f60608486031215615b2d575f80fd5b8335615b388161561d565b9250602084013561574881615634565b5f60208284031215615b58575f80fd5b6115a18261584c565b81511515815261014081016020830151615b7f602084018215159052565b506040830151615b93604084018215159052565b506060830151615bae60608401826001600160601b03169052565b506080830151615bc960808401826001600160601b03169052565b5060a0830151615be260a084018264ffffffffff169052565b5060c0830151615bfb60c084018264ffffffffff169052565b5060e0830151615c1660e08401826001600160a01b03169052565b50610100830151615c336101008401826001600160a01b03169052565b50610120830151615ae761012084018264ffffffffff169052565b5f60208284031215615c5e575f80fd5b8151613283816157cd565b5f60208284031215615c79575f80fd5b81516132838161569a565b6001600160601b039290921682526001600160a01b0316602082015260400190565b5f60208284031215615cb6575f80fd5b815161328381615634565b5f60208284031215615cd1575f80fd5b81516132838161561d565b634e487b7160e01b5f52603260045260245ffd5b6001600160601b03948516815292841660208401529216604082015264ffffffffff909116606082015260800190565b6001600160601b0395861681526001600160a01b039490941660208501529184166040840152909216606082015264ffffffffff909116608082015260a00190565b5f8085851115615d70575f80fd5b83861115615d7c575f80fd5b5050820193919092039150565b80356001600160e01b03198116906004841015615ae7576001600160e01b031960049490940360031b84901b1690921692915050565b6001600160a01b03841681526040602082018190528101829052818360608301375f818301606090810191909152601f909201601f1916010192915050565b5f60208284031215615e0e575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156115a4576115a4615e15565b6001600160601b039687168152948616602086015292851660408501529316606083015264ffffffffff928316608083015290911660a082015260c00190565b5f82615e9657634e487b7160e01b5f52601260045260245ffd5b500490565b5f61ffff821661ffff8103615eb257615eb2615e15565b60010192915050565b5f82518060208501845e5f920191825250919050565b5f8060408385031215615ee2575f80fd5b8251615eed8161569a565b602084015190925063ffffffff81168114615674575f80fdfea2646970667358221220e310760562fc7db12c730b71f6c598d8b319272647235d1a7bf18a00969ea66e64736f6c634300081a00336080604052348015600e575f80fd5b50600480546001600160a01b0319163317905561071e8061002e5f395ff3fe608060405234801561000f575f80fd5b5060043610610090575f3560e01c80638de1d14e116100635780638de1d14e1461010f578063954a317214610122578063996f8d9114610135578063ddfe867f1461014b578063f2b2978114610153575f80fd5b8063042f9da3146100945780634f9c1c09146100a9578063706e9ba9146100d1578063777d1857146100fc575b5f80fd5b6100a76100a2366004610627565b610166565b005b6100bc6100b736600461065e565b610221565b60405190151581526020015b60405180910390f35b6100e46100df366004610680565b6102ab565b6040516001600160601b0390911681526020016100c8565b6100bc61010a36600461065e565b610327565b6100a761011d36600461065e565b610370565b6100a7610130366004610627565b610491565b61013d61051b565b6040519081526020016100c8565b61013d610595565b6100e4610161366004610680565b6105cf565b6004546001600160a01b031633146101ae5760048054604051631d1f01d960e31b81526001600160a01b03909116918101919091523360248201526044015b60405180910390fd5b604051631461054360e31b8152600260048201526001600160601b038216602482015273__$f7a7d9f32fdcd358419ed5ca3af4f3da33$__9063a3082a18906044015b5f6040518083038186803b158015610207575f80fd5b505af4158015610219573d5f803e3d5ffd5b505050505050565b604051632bfdd6b960e01b81525f600482018190526001600160601b03831660248301529073__$f7a7d9f32fdcd358419ed5ca3af4f3da33$__90632bfdd6b9906044015b602060405180830381865af4158015610281573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102a59190610697565b92915050565b60405163e797d89960e01b81525f60048201819052602482018390529073__$f7a7d9f32fdcd358419ed5ca3af4f3da33$__9063e797d899906044015b602060405180830381865af4158015610303573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102a591906106b6565b604051632bfdd6b960e01b8152600260048201526001600160601b03821660248201525f9073__$f7a7d9f32fdcd358419ed5ca3af4f3da33$__90632bfdd6b990604401610266565b6004546001600160a01b031633146103b35760048054604051631d1f01d960e31b81526001600160a01b03909116918101919091523360248201526044016101a5565b604051631461054360e31b81525f60048201526001600160601b038216602482015273__$f7a7d9f32fdcd358419ed5ca3af4f3da33$__9063a3082a18906044015f6040518083038186803b15801561040a575f80fd5b505af415801561041c573d5f803e3d5ffd5b5050604051631461054360e31b8152600260048201526001600160601b038416602482015273__$f7a7d9f32fdcd358419ed5ca3af4f3da33$__925063a3082a1891506044015f6040518083038186803b158015610478575f80fd5b505af415801561048a573d5f803e3d5ffd5b5050505050565b6004546001600160a01b031633146104d45760048054604051631d1f01d960e31b81526001600160a01b03909116918101919091523360248201526044016101a5565b60405163539eabab60e11b8152600260048201526001600160601b038216602482015273__$f7a7d9f32fdcd358419ed5ca3af4f3da33$__9063a73d5756906044016101f1565b604051638b6233dd60e01b8152600260048201525f9073__$f7a7d9f32fdcd358419ed5ca3af4f3da33$__90638b6233dd906024015b602060405180830381865af415801561056c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061059091906106d1565b905090565b604051638b6233dd60e01b81525f600482018190529073__$f7a7d9f32fdcd358419ed5ca3af4f3da33$__90638b6233dd90602401610551565b60405163e797d89960e01b815260026004820152602481018290525f9073__$f7a7d9f32fdcd358419ed5ca3af4f3da33$__9063e797d899906044016102e8565b6001600160601b0381168114610624575f80fd5b50565b5f8060408385031215610638575f80fd5b823561064381610610565b9150602083013561065381610610565b809150509250929050565b5f6020828403121561066e575f80fd5b813561067981610610565b9392505050565b5f60208284031215610690575f80fd5b5035919050565b5f602082840312156106a7575f80fd5b81518015158114610679575f80fd5b5f602082840312156106c6575f80fd5b815161067981610610565b5f602082840312156106e1575f80fd5b505191905056fea2646970667358221220f3d5f8084f5fa4cbc6d72f63070e313ebd3584c41e0490dc8321fabf78b9191b64736f6c634300081a0033",
         | 
| 2224 | 
            +
              "deployedBytecode": "0x608060405234801561000f575f80fd5b506004361061023f575f3560e01c80636291423a11610135578063b4485022116100b4578063d44f8a4b11610079578063d44f8a4b146109c9578063de0eb85f146109dc578063e8ce883d146109ef578063ea48ce9b14610a02578063f55a7d1e14610a15575f80fd5b8063b448502214610881578063b9a5c03014610980578063bac475b714610993578063bf7e214f146109a6578063c4d66de8146109b6575f80fd5b80638fb36037116100fa5780638fb36037146106f15780639a148b7f14610712578063a6bc7cb814610725578063a71bfbb71461075d578063a9ea092814610770575f80fd5b80636291423a1461067157806363fe327a146106825780636d387fe41461069357806377083813146106cb5780637a9e5e4b146106de575f80fd5b80634a923f0c116101c15780635809c85d116101865780635809c85d1461058857806359386f8e146106255780635b0ee099146106385780635ecf260f1461064b5780635fd1efec1461065e575f80fd5b80634a923f0c146105035780634f9c1c091461051657806351486e7d14610539578063517069d814610562578063553b210114610575575f80fd5b80631b50e10b116102075780631b50e10b146103fb57806322e164061461040e57806325c083cf146104215780633a208dc714610434578063493eaa1314610459575f80fd5b80630345861d1461024357806307ccf38c146102585780630ad044ce1461038f57806310a0638a146103ba57806319f47dfc146103cd575b5f80fd5b610256610251366004615648565b610b4d565b005b61030b61026636600461567f565b6040805160c080820183525f80835260208084018290528385018290526060808501839052608080860184905260a09586018490526001600160601b039788168452600b8352928690208651948501875280548089168652600160601b8082048a1694870194909452600160c01b900464ffffffffff9081169786019790975260010154968716908401528504841690820152600160881b9093049091169082015290565b60405161038691905f60c0820190506001600160601b0383511682526001600160601b03602084015116602083015264ffffffffff60408401511660408301526001600160601b03606084015116606083015264ffffffffff608084015116608083015264ffffffffff60a08401511660a083015292915050565b60405180910390f35b6103a261039d3660046156a7565b610d1d565b6040516001600160601b039091168152602001610386565b6102566103c836600461567f565b610d8e565b6103a26103db36600461567f565b6001600160601b039081165f908152600b60205260409020600101541690565b610256610409366004615700565b610dd0565b61025661041c366004615648565b610e39565b6103a261042f36600461567f565b611073565b6004546001600160a01b03165b6040516001600160a01b039091168152602001610386565b6104cc61046736600461567f565b60408051606080820183525f80835260208084018290529284018190526001600160601b0394851681526007835283902083519182018452548085168252600160601b810490941691810191909152600160c01b90920464ffffffffff169082015290565b6040805182516001600160601b039081168252602080850151909116908201529181015164ffffffffff1690820152606001610386565b6103a261051136600461571b565b61108e565b61052961052436600461567f565b6110e9565b6040519015158152602001610386565b61054c610547366004615763565b611183565b60405164ffffffffff9091168152602001610386565b610529610570366004615648565b6114f5565b6102566105833660046157a1565b6115aa565b6105fa610596366004615648565b6040805180820182525f80825260209182018190526001600160601b03949094168452600a81528184206001600160a01b0393841685528152928190208151808301909252549182168152600160a01b90910464ffffffffff169181019190915290565b6040805182516001600160a01b0316815260209283015164ffffffffff169281019290925201610386565b6102566106333660046157df565b611600565b61025661064636600461585c565b61166d565b610256610659366004615924565b611694565b61025661066c366004615700565b61185b565b6003546001600160a01b0316610441565b6002546001600160a01b0316610441565b6106a66106a1366004615950565b6118bc565b604080516001600160601b03909316835264ffffffffff909116602083015201610386565b6103a26106d93660046157a1565b61195b565b6102566106ec366004615700565b611d9c565b6106f9611e14565b6040516001600160e01b03199091168152602001610386565b61025661072036600461597c565b611e36565b6107386107333660046159c8565b611e4d565b604080516001600160a01b03909316835264ffffffffff909116602083015201610386565b61025661076b366004615648565b611ffa565b61087461077e36600461567f565b60408051610120810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810191909152506001600160601b039081165f9081526006602090815260409182902082516101208101845281548086168252600160601b808204871694830194909452600160c01b9081900464ffffffffff908116958301959095526001830154808716606084015293840486166080830152830490931660a0840152600160e81b90910460ff1660c0830152600201546001600160a01b03811660e0830152600160a01b900490911661010082015290565b6040516103869190615a05565b61092c61088f366004615648565b604080516080810182525f808252602082018190529181018290526060810191909152506001600160601b039182165f9081526008602090815260408083206001600160a01b0394909416835292815290829020825160808101845290548085168252600160601b810490941691810191909152600160c01b830461ffff1691810191909152600160d01b90910464ffffffffff16606082015290565b60405161038691905f6080820190506001600160601b0383511682526001600160601b03602084015116602083015261ffff604084015116604083015264ffffffffff606084015116606083015292915050565b61052961098e36600461567f565b612374565b6102566109a1366004615aee565b61241d565b5f546001600160a01b0316610441565b6102566109c4366004615700565b612535565b6103a26109d7366004615b1b565b612656565b6103a26109ea366004615950565b6127a0565b6103a26109fd366004615950565b612989565b6103a2610a10366004615b1b565b612a16565b610b40610a23366004615b48565b60408051610140810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810182905261010081018290526101208101919091525060ff9081165f9081526005602090815260409182902082516101408101845281548086161515825261010080820487161515948301949094526201000081049095161515938101939093526001600160601b036301000000850481166060850152600160781b850416608084015264ffffffffff600160d81b909404841660a0840152600181015480851660c08501526001600160a01b0365010000000000909104811660e085015260029091015490811691830191909152600160a01b900490911661012082015290565b6040516103869190615b61565b610b59335b5f36612b4f565b5f80610b6484612c3e565b6003546001830154604051631e74126560e21b81526001600160a01b0392831660048201526001600160601b0389166024820152600160e81b90910460ff1660448201529086166064820152919350915073__$fb6c7635e3c1acf7e7d82c7d43e7a24671$__906379d04994906084015f6040518083038186803b158015610bea575f80fd5b505af4158015610bfc573d5f803e3d5ffd5b5050506002830180546001600160a01b038681166001600160a01b031983161790925560408051639fa6a6e360e01b8152905192909116925073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__91639fa6a6e3916004808201926020929091908290030181865af4158015610c74573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c989190615c4e565b835464ffffffffff60c01b1916600160c01b64ffffffffff92831602178455604080516001600160601b03881681526001600160a01b03808816602083015284169181019190915290831660608201527fd0227ef9a17652cfa7e48ccd5c6f70bf4d13dfe2eb71df80aa62881a3240d773906080015b60405180910390a15050505050565b5f610d2733610b52565b5f610d3186612cf6565b60018101549091505f90610d4d906001600160601b0316612dbb565b90508515610d6257610d60878383612e7e565b505b8415610d7557610d7387838361328a565b505b610d8187838387613550565b925050505b949350505050565b610d9733610b52565b5f610da182612cf6565b60018101549091505f90610dbd906001600160601b0316612dbb565b9050610dca838383612e7e565b50505050565b610dd933610b52565b600280546001600160a01b038381166001600160a01b03198316811790935560408051938452911660208301819052917f960b8b5c264ebbae758850aa1b8e20d698fe852b7c686ee4ee8e991602c42cbe91015b60405180910390a15050565b610e4233610b52565b6001600160601b0382165f908152600a602090815260408083206001600160a01b03851684529091529081902080549151638d38cd4b60e01b8152600160a01b90920464ffffffffff1660048301529073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__90638d38cd4b90602401602060405180830381865af4158015610ecc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ef09190615c69565b15610f1b578282604051633cdee7f960e01b8152600401610f12929190615c84565b60405180910390fd5b73__$bf7bc340cbb9229ef1de2c568356e67902$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610f62573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f869190615ca6565b81546001600160a01b0319166001600160a01b039190911617815560408051639fa6a6e360e01b8152905173__$f55ca14f1ddce1b88fe30d23ae45f595f4$__91639fa6a6e39160048083019260209291908290030181865af4158015610fef573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110139190615c4e565b815464ffffffffff91909116600160a01b0264ffffffffff60a01b199091161781556040517e2713bc0b3137ab1236c169e5d41bf95db32cea0a163dc838d6842c6410b99a906110669085908590615c84565b60405180910390a1505050565b5f61107d33610b52565b61108682613772565b90505b919050565b5f61109833610b52565b5f6110a285612cf6565b60018101549091505f906110be906001600160601b0316612dbb565b905084156110d3576110d1868383612e7e565b505b6110df8683838761398b565b9695505050505050565b6001600160601b0381165f908152600b6020526040808220600101549051638d38cd4b60e01b8152600160881b90910464ffffffffff16600482015273__$f55ca14f1ddce1b88fe30d23ae45f595f4$__90638d38cd4b90602401602060405180830381865af415801561115f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110869190615c69565b5f61118d33610b52565b6001600160601b0385165f908152600b60205260409081902060018101549151638d38cd4b60e01b8152600160881b90920464ffffffffff1660048301529073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__90638d38cd4b90602401602060405180830381865af4158015611206573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061122a9190615c69565b1561125357604051630e5c323960e01b81526001600160601b0387166004820152602401610f12565b5f61125d86612dbb565b905061126a868286613b97565b6001820180546001600160601b0319166001600160601b0388161790556040805163bc1b392d60e01b8152905173__$3bac17678db7ae928afa209f2f44deec9c$__9163bc1b392d9160048083019260209291908290030181865af41580156112d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112f99190615cc1565b82546001600160601b0319166001600160601b03919091161782556040805163bc1b392d60e01b8152905173__$3bac17678db7ae928afa209f2f44deec9c$__9163bc1b392d9160048083019260209291908290030181865af4158015611362573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113869190615cc1565b825f01600c6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af41580156113f4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114189190615c4e565b825464ffffffffff91909116600160c01b0264ffffffffff60c01b1990911617825561144382613c30565b5060018201548254604080516001600160601b03808c168252938416602082015292821690830152600160c01b900464ffffffffff1660608201526001600160a01b03861660808201527fd3ee63d0421bec5f3bb2d1f810b978739c31bb1e1f31c7113739eca75026933b9060a00160405180910390a16114dc8783838460010160189054906101000a900464ffffffffff1688613d6c565b5054600160c01b900464ffffffffff1695945050505050565b6001600160601b0382165f908152600a602090815260408083206001600160a01b0385168452909152808220549051638d38cd4b60e01b8152600160a01b90910464ffffffffff16600482015273__$f55ca14f1ddce1b88fe30d23ae45f595f4$__90638d38cd4b906024015b602060405180830381865af415801561157d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115a19190615c69565b90505b92915050565b6115b333610b52565b5f6115bd83612cf6565b60018101549091505f906115d9906001600160601b0316612dbb565b905082156115ee576115ec848383612e7e565b505b6115f984838361328a565b5050505050565b61160933610b52565b5f61161386612cf6565b60018101549091505f9061162f906001600160601b0316612dbb565b9050851561164457611642878383612e7e565b505b84156116575761165587838361328a565b505b6116648783838787613d6c565b50505050505050565b61167633610b52565b6116888a8a8a8a8a8a8a8a8a8a614113565b50505050505050505050565b61169d33610b52565b5f806116a884612c3e565b6003546001830154604051632048909b60e21b81526001600160a01b0390921660048301526001600160601b0388166024830152600160e81b900460ff16604482015264ffffffffff86166064820152919350915073__$fb6c7635e3c1acf7e7d82c7d43e7a24671$__90638122426c906084015f6040518083038186803b158015611732575f80fd5b505af4158015611744573d5f803e3d5ffd5b50505060018301805464ffffffffff868116600160c01b90810264ffffffffff60c01b1984161790935560408051639fa6a6e360e01b815290519390920416925073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__91639fa6a6e3916004808201926020929091908290030181865af41580156117c4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117e89190615c4e565b835464ffffffffff60c01b1916600160c01b64ffffffffff92831602178455604080516001600160601b038816815286831660208201528383169181019190915290831660608201527f63545c71b15de59d1463d3e2577b64bc3c5510cd1dd0243eb030f9da55a65fe090608001610d0e565b61186433610b52565b600380546001600160a01b038381166001600160a01b03198316811790935560408051938452911660208301819052917f8414c1d6352c513484c229579bca3842a94d9c46e1dd28ec9b03c9b3d5a4ae429101610e2d565b5f806118c733610b52565b5f6118d185612c3e565b6001820180546001600160601b03888116600160601b818102600160601b600160c01b0319851617909455604080518c84168152602081019290925264ffffffffff861690820152929091041695509093509091507f74cf98e0b0178be4925e6447d2bdeea75507d176a76652c4b0eda5f06da689c39060600160405180910390a1509250929050565b6001600160601b0382165f908152600960209081526040808320805482518185028101850190935280835284938301828280156119bf57602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116119a1575b5050505050905080515f03611a415773__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015611a15573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a399190615cc1565b9150506115a4565b73__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015611a88573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611aac9190615cc1565b6001600160601b038086165f90815260066020526040812060020154929450600160a01b90920416908080805b8551811015611ce557858181518110611af457611af4615cdc565b6020908102919091018101516001600160601b038b81165f9081526008845260408082206001600160a01b0385168352909452839020549251630a4d29dd60e31b8152921660048301819052909550935073__$3bac17678db7ae928afa209f2f44deec9c$__906352694ee890602401602060405180830381865af4158015611b7f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ba39190615c69565b611cdd576001600160601b0385165f908152600a602090815260408083206001600160a01b038881168552925291829020549151636a88f0a760e11b8152911660048201819052925073__$bf7bc340cbb9229ef1de2c568356e67902$__9063d511e14e90602401602060405180830381865af4158015611c26573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c4a9190615c69565b611cdd57604051636e5912e760e01b8152611cda90889073__$3bac17678db7ae928afa209f2f44deec9c$__90636e5912e790611c96906001600160601b038916908890600401615c84565b602060405180830381865af4158015611cb1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cd59190615cc1565b6145cc565b96505b600101611ad9565b508615611d91576001600160601b038881165f90815260066020908152604080832060010154600160e81b900460ff168084526005909252909120805491929091611d39918a916301000000900416614651565b15611d57578054630100000090046001600160601b03169750611d8e565b8054611d74908990600160781b90046001600160601b031661469b565b15611d8e578054600160781b90046001600160601b031697505b50505b505050505092915050565b5f5433906001600160a01b03168114611dd25760405162d1953b60e31b81526001600160a01b0382166004820152602401610f12565b816001600160a01b03163b5f03611e07576040516361798f2f60e11b81526001600160a01b0383166004820152602401610f12565b611e10826146e5565b5050565b5f8054600160a01b900460ff16611e2a57505f90565b50638fb3603760e01b90565b611e3f33610b52565b610dca848484846001614738565b5f80611e5833610b52565b6001600160601b0385165f908152600a602090815260408083206001600160a01b0388168452909152908190208054915163790a38ad60e01b8152600160a01b90920464ffffffffff1660048301529073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__9063790a38ad90602401602060405180830381865af4158015611ee2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f069190615c69565b15611f2857858560405163020c3e0f60e31b8152600401610f12929190615c84565b80546001600160a01b038581166001600160a01b0319831617835560408051639fa6a6e360e01b81529051918316955064ffffffffff600160a01b90930492909216935073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__91639fa6a6e39160048083019260209291908290030181865af4158015611faa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fce9190615c4e565b815464ffffffffff91909116600160a01b0264ffffffffff60a01b199091161790559094909350915050565b61200333610b52565b6001600160601b0382165f9081526008602090815260408083206001600160a01b03851684529091529081902080549151638d38cd4b60e01b8152600160d01b90920464ffffffffff1660048301529073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__90638d38cd4b90602401602060405180830381865af415801561208d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120b19190615c69565b156120bb57505050565b6120c483612dbb565b506040516301f8588560e51b81526001600160601b03841660048201525f9073__$dacf551d137a232f87fa09e79113e25430$__90633f0b10a090602401602060405180830381865af415801561211d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121419190615cc1565b6001600160601b0381165f908152600a602090815260408083206001600160a01b03881684529091529081902054905163790a38ad60e01b8152600160a01b90910464ffffffffff16600482015290915073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__9063790a38ad90602401602060405180830381865af41580156121cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121f09190615c69565b1561221257808360405163020c3e0f60e31b8152600401610f12929190615c84565b73__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015612259573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061227d9190615cc1565b82546001600160601b0319166001600160601b039190911617825560408051639fa6a6e360e01b8152905173__$f55ca14f1ddce1b88fe30d23ae45f595f4$__91639fa6a6e39160048083019260209291908290030181865af41580156122e6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061230a9190615c4e565b825464ffffffffff91909116600160d01b0264ffffffffff60d01b1990911617909155506001600160601b0382165f9081526009602090815260408220805460018101825590835291200180546001600160a01b0383166001600160a01b03199091161790555050565b6001600160601b0381165f908152600b60209081526040808320548151639fa6a6e360e01b8152915161108693600160c01b90920464ffffffffff169273__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__92639fa6a6e3926004808401938290030181865af41580156123ea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061240e9190615c4e565b64ffffffffff90811691161190565b61242633610b52565b5f61243084614e83565b80546001600160601b038581166001600160c01b0319831617600160601b9186169190910217825560408051639fa6a6e360e01b81529051929350600160c01b90910464ffffffffff169173__$f55ca14f1ddce1b88fe30d23ae45f595f4$__91639fa6a6e39160048083019260209291908290030181865af41580156124b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124dd9190615c4e565b825464ffffffffff91909116600160c01b0264ffffffffff60c01b199091161782556040517ff247f9f8f9c455e0928cd8b5f34ef2567264cde4001db187c3e930c25e08fc1590610d0e908790879087908690615cf0565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff165f8115801561257a5750825b90505f8267ffffffffffffffff1660011480156125965750303b155b9050811580156125a4575080155b156125c25760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156125ec57845460ff60401b1916600160401b1785555b600280546001600160a01b0319166001600160a01b038816179055831561264e57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15b505050505050565b5f61266033610b52565b5f61266b8585614f46565b805490915064ffffffffff600160d01b82041690612692906001600160601b031685615016565b82546001600160601b0319166001600160601b03919091161782556126b8868684615060565b73__$f55ca14f1ddce1b88fe30d23ae45f595f4$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af41580156126ff573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127239190615c4e565b825464ffffffffff91909116600160d01b0264ffffffffff60d01b198216811784556040516001600160601b03918216919092161793507f6eea09d3401164101f559606e8c76aca972689ba8330a579bd6507b5889d153f9061278f9088908890889088908790615d20565b60405180910390a150509392505050565b5f6127aa33610b52565b5f6127b484612dbb565b80546001820154919250600160c01b900464ffffffffff16906127e0906001600160601b0316856145cc565b826001015f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af415801561284e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128729190615c4e565b825464ffffffffff91909116600160c01b0264ffffffffff60c01b199091161782556001808301549054604051631c5da14d60e11b81526001600160601b03888116600483015290921694507f317c91a4e8d5e9d4af7c5e856f79e6db430257dabe4a32a352ef58b9ba000f3d91879187916001600160a01b03909116906338bb429a906024015b602060405180830381865afa158015612915573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129399190615ca6565b604080516001600160601b03948516815292841660208401526001600160a01b0390911690820152908516606082015264ffffffffff8316608082015260a00160405180910390a1505092915050565b5f61299333610b52565b5f61299d84612dbb565b90505f6129ab85838661517d565b6001838101549054604051631c5da14d60e11b81526001600160601b03898116600483015290921695509192507fb144c2ad8fd690acb16f40becc8acde92c8694ef99952f875213f57ce1b7acef91879187916001600160a01b0316906338bb429a906024016128fa565b5f612a2033610b52565b5f612a2b8585614f46565b805490915064ffffffffff600160d01b82041690612a52906001600160601b0316856145cc565b82546001600160601b0319166001600160601b0391909116178255612a78868684615060565b73__$f55ca14f1ddce1b88fe30d23ae45f595f4$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af4158015612abf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ae39190615c4e565b825464ffffffffff91909116600160d01b0264ffffffffff60d01b198216811784556040516001600160601b03918216919092161793507f05e52d64c754f7a526cf0704e8cfe26c04e8b656e7b493f61fbda7109a326f429061278f9088908890889088908790615d20565b5f80612b82612b655f546001600160a01b031690565b8630612b7460045f898b615d62565b612b7d91615d89565b6152ba565b91509150816115f95763ffffffff811615612c1b575f805460ff60a01b198116600160a01b17909155604051634a63ebf760e11b81526001600160a01b03909116906394c7d7ee90612bdc90889088908890600401615dbf565b5f604051808303815f87803b158015612bf3575f80fd5b505af1158015612c05573d5f803e3d5ffd5b50505f805460ff60a01b19169055506115f99050565b60405162d1953b60e31b81526001600160a01b0386166004820152602401610f12565b5f80612c4983612dbb565b9150815f0160189054906101000a900464ffffffffff16905073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af4158015612ca9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ccd9190615c4e565b825464ffffffffff91909116600160c01b0264ffffffffff60c01b199091161782559092909150565b6001600160601b0381165f908152600b6020526040908190206001810154915163790a38ad60e01b8152600160881b90920464ffffffffff1660048301529073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__9063790a38ad90602401602060405180830381865af4158015612d6f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d939190615c69565b156110895760405162af6eb360e61b81526001600160601b0383166004820152602401610f12565b6001600160601b0381165f90815260066020526040908190208054915163790a38ad60e01b8152600160c01b90920464ffffffffff1660048301529073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__9063790a38ad90602401602060405180830381865af4158015612e31573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e559190615c69565b156110895760405163091c22d760e41b81526001600160601b0383166004820152602401610f12565b6002810154604051636a88f0a760e11b81526001600160a01b0390911660048201525f9073__$bf7bc340cbb9229ef1de2c568356e67902$__9063d511e14e90602401602060405180830381865af4158015612edc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f009190615c69565b613283576001830154604051633682752160e21b8152600160601b90910464ffffffffff1660048201525f9073__$71e292c09eace9601b3e21e68a1278917a$__90630c67422c9073__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9063da09d48490602401602060405180830381865af4158015612f82573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612fa69190615dfe565b612fb09042615e29565b6040518263ffffffff1660e01b8152600401612fce91815260200190565b602060405180830381865af4158015612fe9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061300d9190615c4e565b60405163790a38ad60e01b815264ffffffffff8216600482015290915073__$71e292c09eace9601b3e21e68a1278917a$__9063790a38ad90602401602060405180830381865af4158015613064573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130889190615c69565b156131005773__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af41580156130d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130f89190615cc1565b915050613283565b60028301548454604051635bdf11e360e11b81526001600160a01b03909216600483015264ffffffffff831660248301526001600160601b0316604482015273__$f048dbd5170c0ac319fa0222065b281d84$__9063b7be23c690606401602060405180830381865af4158015613179573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061319d9190615cc1565b83549092506131bc90600160601b90046001600160601b0316836145cc565b8354600160601b600160c01b031916600160601b6001600160601b03928316810291909117855585546131f39291900416836145cc565b84546001600160601b0391909116600160601b02600160601b600160c01b03199091161784555f61322485856153c2565b85546040519192507fed4853b0609e21bd14ba3f580ebca5d25c21bc024161fd250b6b33c768c1c8729161278f91899187916001600160601b0380821692600160601b830490911691600160c01b900464ffffffffff16908890615e3c565b9392505050565b8154604051630a4d29dd60e31b8152600160601b9091046001600160601b0316600482018190529073__$3bac17678db7ae928afa209f2f44deec9c$__906352694ee890602401602060405180830381865af41580156132ec573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133109190615c69565b61328357600183015461332d906001600160601b03168383613b97565b6001830154613346906001600160601b03168383615459565b815461335b906001600160601b0316826145cc565b82546001600160601b0319166001600160601b039182161780845561338991600160601b9091041682615016565b8254600160601b600160c01b031916600160601b6001600160601b039283160217835583546133b99116826145cc565b83546001600160601b0319166001600160601b03919091161783556040805163bc1b392d60e01b8152905173__$3bac17678db7ae928afa209f2f44deec9c$__9163bc1b392d9160048083019260209291908290030181865af4158015613422573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134469190615cc1565b83546001600160601b0391909116600160601b02600160601b600160c01b03199091161783555f61347784846153c2565b90507f38151af1adffdc3651d3f7917ea0e90417d40e286b11741dd01a3e3228d96c598583865f015f9054906101000a90046001600160601b031673__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af41580156134f9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061351d9190615cc1565b88546040516135409594939291600160c01b900464ffffffffff16908890615e3c565b60405180910390a1509392505050565b8254604051637931c81160e01b81526001600160601b03808416600483015290911660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__90637931c81190604401602060405180830381865af41580156135b3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906135d79190615cc1565b604051630a4d29dd60e31b81526001600160601b038216600482015290915073__$3bac17678db7ae928afa209f2f44deec9c$__906352694ee890602401602060405180830381865af4158015613630573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136549190615c69565b610d865761366185612374565b156136a057835460405163187bc0bd60e21b81526001600160601b0387166004820152600160c01b90910464ffffffffff166024820152604401610f12565b82546136b5906001600160601b031682615016565b83546001600160601b0319166001600160601b0391821617845584546136dc911682615016565b84546001600160601b0319166001600160601b03919091161784555f61370285856153c2565b85546040519192507fed7a6a5cb58253a85b06a414d4fb43855fc759e9f19af28b775bf2b47ec7bf709161376191899186916001600160601b0380821692600160601b830490911691600160c01b900464ffffffffff16908890615e3c565b60405180910390a150949350505050565b5f8061377d83612dbb565b90505f61378984614e83565b8054909150600160c01b900464ffffffffff165f6137a7868261195b565b83549091506137c09082906001600160601b03166145cc565b8354604051637931c81160e01b81526001600160601b038084166004830152600160601b909204909116602482015290955073__$3bac17678db7ae928afa209f2f44deec9c$__90637931c81190604401602060405180830381865af415801561382c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138509190615cc1565b94508484600101600c6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af41580156138c2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138e69190615c4e565b845464ffffffffff60c01b198116600160c01b64ffffffffff93841602908117875560018701548654604080516001600160601b03808e168252600160601b9485900481166020830152939092048316908201528582166060820152928116911617608082015290831660a08201527f816866bb29a0d245f04a0179c957b4495d86447de93a8a4962fd3528510991429060c00160405180910390a150505050919050565b8254604051637931c81160e01b81526001600160601b038084166004830152600160601b90920490911660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__90637931c81190604401602060405180830381865af41580156139f6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613a1a9190615cc1565b604051630a4d29dd60e31b81526001600160601b038216600482015290915073__$3bac17678db7ae928afa209f2f44deec9c$__906352694ee890602401602060405180830381865af4158015613a73573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613a979190615c69565b610d86576001840154613ab4906001600160601b03168483615459565b8254613ad090600160601b90046001600160601b031682615016565b8354600160601b600160c01b031916600160601b6001600160601b0392831681029190911785558554613b07929190041682615016565b84546001600160601b0391909116600160601b02600160601b600160c01b03199091161784555f613b3885856153c2565b85546040519192507f39ee77ec34c101210194f9f2c8be592bf5ef303db8e68adf58b4fbe747a134829161376191899186916001600160601b0380821692600160601b830490911691600160c01b900464ffffffffff16908890615e3c565b8154613bca90613bb0906001600160601b0316836145cc565b6001840154600160601b90046001600160601b031661469b565b15613c2b576001820154825484916001600160601b03600160601b909104811691613bf69116846145cc565b604051631946161f60e01b81526001600160601b03938416600482015291831660248301529091166044820152606401610f12565b505050565b5f8160010160119054906101000a900464ffffffffff16905073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af4158015613c90573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613cb49190615c4e565b8260010160116101000a81548164ffffffffff021916908364ffffffffff16021790555073__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af4158015613d1f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613d439190615c4e565b82600101600c6101000a81548164ffffffffff021916908364ffffffffff160217905550919050565b604051630a4d29dd60e31b81526001600160601b038216600482015273__$3bac17678db7ae928afa209f2f44deec9c$__906352694ee890602401602060405180830381865af4158015613dc2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613de69190615c69565b6115f9576001840154613e03906001600160601b03168483613b97565b8254613e18906001600160601b0316826145cc565b83546001600160601b0319166001600160601b039182161784558454613e3f9116826145cc565b84546001600160601b0319166001600160601b0391909116178455600183015460405163e83da7ad60e01b815264ffffffffff8085166004830152600160c01b90920490911660248201525f9073__$71e292c09eace9601b3e21e68a1278917a$__9063e83da7ad90604401602060405180830381865af4158015613ec6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613eea9190615c4e565b6040516330b8415f60e01b81526001600160601b038416600482015290915073__$3bac17678db7ae928afa209f2f44deec9c$__906330b8415f90602401602060405180830381865af4158015613f43573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f679190615c69565b8015613fe65750604051638d38cd4b60e01b815264ffffffffff8216600482015273__$71e292c09eace9601b3e21e68a1278917a$__90638d38cd4b90602401602060405180830381865af4158015613fc2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613fe69190615c69565b156140985784546040516352bcc5a760e11b8152600160c01b90910464ffffffffff90811660048301528216602482015273__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9063a5798b4e90604401602060405180830381865af4158015614051573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906140759190615c4e565b855464ffffffffff91909116600160c01b0264ffffffffff60c01b199091161785555b5f6140a386866153c2565b86546040519192507f15d4969bfd34a12fabf5d09d2615ffc4f81d206e7756d9e3c0919ba800d57e4191614102918a9187916001600160601b0380821692600160601b830490911691600160c01b900464ffffffffff16908890615e3c565b60405180910390a150505050505050565b60405163037c8cb160e51b815260ff8b16600482015273__$0d958e68cba84670b8f4a3f2f2686b1c6b$__90636f91962090602401602060405180830381865af4158015614163573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906141879190615c69565b156141aa57604051633c00d02760e01b815260ff8b166004820152602401610f12565b6141b4868661469b565b156141e457604051622a505160e91b81526001600160601b03808816600483015286166024820152604401610f12565b6141ee84846154b9565b1561421d576040516338157c8960e21b815264ffffffffff808616600483015284166024820152604401610f12565b6001600160a01b03808216908316111561425d57604051638ae671e360e01b81526001600160a01b03808416600483015282166024820152604401610f12565b5f60055f8c60ff1660ff1681526020019081526020015f2060020160149054906101000a900464ffffffffff1690508960055f8d60ff1660ff1681526020019081526020015f205f015f6101000a81548160ff0219169083151502179055508860055f8d60ff1660ff1681526020019081526020015f205f0160016101000a81548160ff0219169083151502179055508760055f8d60ff1660ff1681526020019081526020015f205f0160026101000a81548160ff0219169083151502179055508660055f8d60ff1660ff1681526020019081526020015f205f0160036101000a8154816001600160601b0302191690836001600160601b031602179055508560055f8d60ff1660ff1681526020019081526020015f205f01600f6101000a8154816001600160601b0302191690836001600160601b031602179055508460055f8d60ff1660ff1681526020019081526020015f205f01601b6101000a81548164ffffffffff021916908364ffffffffff1602179055508360055f8d60ff1660ff1681526020019081526020015f206001015f6101000a81548164ffffffffff021916908364ffffffffff1602179055508260055f8d60ff1660ff1681526020019081526020015f2060010160056101000a8154816001600160a01b0302191690836001600160a01b031602179055508160055f8d60ff1660ff1681526020019081526020015f206002015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af41580156144d2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906144f69190615c4e565b60ff8c165f81815260056020908152604091829020600201805464ffffffffff60a01b1916600160a01b64ffffffffff9687160217905581519283528d1515908301528b15159082015289151560608201526001600160601b03808a166080830152881660a082015286821660c082015285821660e08201526001600160a01b0380861661010083015284166101208201529082166101408201527fb24c8b320e3f99e0aef480e78c342643583880e3f5a1c392a85a4c51f76799f8906101600160405180910390a15050505050505050505050565b60405163274acb3560e01b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__9063274acb35906044015b602060405180830381865af415801561462d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115a19190615cc1565b6040516304d40eb160e11b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__906309a81d6290604401611562565b604051632601631360e21b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__906398058c4c90604401611562565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9060200160405180910390a150565b80156147e25760015460035460405163647b8c2f60e01b81526001600160a01b03928316600482015290821660248201526001600160601b038716604482015260ff8616606482015264ffffffffff8516608482015290831660a482015273__$fb6c7635e3c1acf7e7d82c7d43e7a24671$__9063647b8c2f9060c4015f6040518083038186803b1580156147cb575f80fd5b505af41580156147dd573d5f803e3d5ffd5b505050505b6001600160601b0385165f90815260066020908152604091829020825163bc1b392d60e01b81529251909273__$3bac17678db7ae928afa209f2f44deec9c$__9263bc1b392d926004808401938290030181865af4158015614846573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061486a9190615cc1565b81546001600160601b0319166001600160601b03919091161781556040805163bc1b392d60e01b8152905173__$3bac17678db7ae928afa209f2f44deec9c$__9163bc1b392d9160048083019260209291908290030181865af41580156148d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906148f79190615cc1565b815f01600c6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015614965573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906149899190615cc1565b816001015f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af41580156149f7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614a1b9190615cc1565b60018201805471ff0000000000ffffffffffffffffffffffff60601b1916600160601b6001600160601b039384160260ff60e81b191617600160e81b60ff8916021764ffffffffff60c01b1916600160c01b64ffffffffff8816021790556002820180546001600160a01b0319166001600160a01b0386161790556040516301f8588560e51b8152908716600482015273__$dacf551d137a232f87fa09e79113e25430$__90633f0b10a090602401602060405180830381865af4158015614ae5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614b099190615cc1565b8160020160146101000a8154816001600160601b0302191690836001600160601b0316021790555073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af4158015614b78573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614b9c9190615c4e565b815f0160186101000a81548164ffffffffff021916908364ffffffffff160217905550614dbf60075f886001600160601b03166001600160601b031681526020019081526020015f208773__$3bac17678db7ae928afa209f2f44deec9c$__634c41dd96600273__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af4158015614c49573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614c6d9190615cc1565b60405163046e44af60e11b81526001600160601b03909116600482015273__$3bac17678db7ae928afa209f2f44deec9c$__906308dc895e90602401602060405180830381865af4158015614cc4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614ce89190615dfe565b614cf29190615e7c565b6040518263ffffffff1660e01b8152600401614d1091815260200190565b602060405180830381865af4158015614d2b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614d4f9190615cc1565b73__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af4158015614d96573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614dba9190615cc1565b615501565b600480546040516346f0e8a760e11b81526001600160601b038916928101929092526001600160a01b031690638de1d14e906024015f604051808303815f87803b158015614e0b575f80fd5b505af1158015614e1d573d5f803e3d5ffd5b5050604080516001600160601b038a16815260ff8916602082015264ffffffffff8816918101919091526001600160a01b03861660608201527f086dbed771133d4ebbe0285c0df8231e94a664efbae4bd66c0e3e9f11c7fd0f092506080019050612645565b6001600160601b0381165f90815260076020526040908190208054915163790a38ad60e01b8152600160c01b90920464ffffffffff1660048301529073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__9063790a38ad90602401602060405180830381865af4158015614ef9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614f1d9190615c69565b15611089576040516384bdfa9560e01b81526001600160601b0383166004820152602401610f12565b6001600160601b0382165f9081526008602090815260408083206001600160a01b0385168452909152908190208054915163790a38ad60e01b8152600160d01b90920464ffffffffff1660048301529073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__9063790a38ad90602401602060405180830381865af4158015614fd0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614ff49190615c69565b156115a457828260405163688e635d60e11b8152600401610f12929190615c84565b6040516363cf551160e11b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__9063c79eaa2290604401614612565b8054600160c01b900461ffff1681601861507983615e9b565b82546101009290920a61ffff8181021990931691831602179091556002548354604051638755a73f60e01b81526001600160601b0380891660048301526001600160a01b038881166024840152600160c01b84049095166044830152600160601b83048116606483015290911660848201525f9350911690638755a73f9060a401602060405180830381865afa158015615115573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906151399190615c69565b90508015610dca57815461ffff60c01b19600160601b6001600160601b03831602166dffffffffffffffffffffffffffff60601b199091161782556115f984613772565b81546001830154600160c01b90910464ffffffffff16906151a89083906001600160601b031661469b565b156151e75760018301546040516301a4b29960e11b81526001600160601b03808716600483015291821660248201529083166044820152606401610f12565b60018301546151ff906001600160601b031683615016565b836001015f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af415801561526d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906152919190615c4e565b835464ffffffffff91909116600160c01b0264ffffffffff60c01b199091161790925550919050565b6040516001600160a01b03848116602483015283811660448301526001600160e01b0319831660648301525f9182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b179052516153289190615ebb565b5f60405180830381855afa9150503d805f8114615360576040519150601f19603f3d011682016040523d82523d5f602084013e615365565b606091505b509150915081156153b7576040815110615397578080602001905181019061538d9190615ed1565b90945092506153b7565b60208151106153b757808060200190518101906153b49190615c69565b93505b505094509492505050565b5f73__$f55ca14f1ddce1b88fe30d23ae45f595f4$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af415801561540a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061542e9190615c4e565b825464ffffffffff91909116600160c01b0264ffffffffff60c01b199091161782556115a183613c30565b5f61546584848461517d565b60018401546040519192507fc0f991fc396647cd10937655916d61916ae77295c1d6a67e335bc8f502417491916154ab91879186916001600160601b0316908690615cf0565b60405180910390a150505050565b6040516383ffcdef60e01b815264ffffffffff8084166004830152821660248201525f9073__$71e292c09eace9601b3e21e68a1278917a$__906383ffcdef90604401611562565b83546001600160601b038381166001600160c01b0319831617600160601b9184169190910217855560408051639fa6a6e360e01b81529051600160c01b90920464ffffffffff169173__$f55ca14f1ddce1b88fe30d23ae45f595f4$__91639fa6a6e39160048083019260209291908290030181865af4158015615587573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906155ab9190615c4e565b855464ffffffffff91909116600160c01b0264ffffffffff60c01b19821681178088556040517f05c35323706f609643b5b81348a27fedbbaf7ae364b4d43f69a8853c024f204793610d0e9389936001600160601b039182169282169290921792600160601b90920416908690615cf0565b6001600160601b0381168114615631575f80fd5b50565b6001600160a01b0381168114615631575f80fd5b5f8060408385031215615659575f80fd5b82356156648161561d565b9150602083013561567481615634565b809150509250929050565b5f6020828403121561568f575f80fd5b81356132838161561d565b8015158114615631575f80fd5b5f805f80608085870312156156ba575f80fd5b84356156c58161561d565b935060208501356156d58161569a565b925060408501356156e58161569a565b915060608501356156f58161561d565b939692955090935050565b5f60208284031215615710575f80fd5b813561328381615634565b5f805f6060848603121561572d575f80fd5b83356157388161561d565b925060208401356157488161569a565b915060408401356157588161561d565b809150509250925092565b5f805f8060808587031215615776575f80fd5b84356157818161561d565b935060208501356157918161561d565b925060408501356156e581615634565b5f80604083850312156157b2575f80fd5b82356157bd8161561d565b915060208301356156748161569a565b64ffffffffff81168114615631575f80fd5b5f805f805f60a086880312156157f3575f80fd5b85356157fe8161561d565b9450602086013561580e8161569a565b9350604086013561581e8161569a565b9250606086013561582e816157cd565b9150608086013561583e8161561d565b809150509295509295909350565b803560ff81168114611089575f80fd5b5f805f805f805f805f806101408b8d031215615876575f80fd5b61587f8b61584c565b995060208b013561588f8161569a565b985060408b013561589f8161569a565b975060608b01356158af8161569a565b965060808b01356158bf8161561d565b955060a08b01356158cf8161561d565b945060c08b01356158df816157cd565b935060e08b01356158ef816157cd565b92506101008b013561590081615634565b91506101208b013561591181615634565b809150509295989b9194979a5092959850565b5f8060408385031215615935575f80fd5b82356159408161561d565b91506020830135615674816157cd565b5f8060408385031215615961575f80fd5b823561596c8161561d565b915060208301356156748161561d565b5f805f806080858703121561598f575f80fd5b843561599a8161561d565b93506159a86020860161584c565b925060408501356159b8816157cd565b915060608501356156f581615634565b5f805f606084860312156159da575f80fd5b83356159e58161561d565b925060208401356159f581615634565b9150604084013561575881615634565b81516001600160601b03168152602080830151610120830191615a32908401826001600160601b03169052565b506040830151615a4b604084018264ffffffffff169052565b506060830151615a6660608401826001600160601b03169052565b506080830151615a8160808401826001600160601b03169052565b5060a0830151615a9a60a084018264ffffffffff169052565b5060c0830151615aaf60c084018260ff169052565b5060e0830151615aca60e08401826001600160a01b03169052565b50610100830151615ae76101008401826001600160601b03169052565b5092915050565b5f805f60608486031215615b00575f80fd5b8335615b0b8161561d565b925060208401356157488161561d565b5f805f60608486031215615b2d575f80fd5b8335615b388161561d565b9250602084013561574881615634565b5f60208284031215615b58575f80fd5b6115a18261584c565b81511515815261014081016020830151615b7f602084018215159052565b506040830151615b93604084018215159052565b506060830151615bae60608401826001600160601b03169052565b506080830151615bc960808401826001600160601b03169052565b5060a0830151615be260a084018264ffffffffff169052565b5060c0830151615bfb60c084018264ffffffffff169052565b5060e0830151615c1660e08401826001600160a01b03169052565b50610100830151615c336101008401826001600160a01b03169052565b50610120830151615ae761012084018264ffffffffff169052565b5f60208284031215615c5e575f80fd5b8151613283816157cd565b5f60208284031215615c79575f80fd5b81516132838161569a565b6001600160601b039290921682526001600160a01b0316602082015260400190565b5f60208284031215615cb6575f80fd5b815161328381615634565b5f60208284031215615cd1575f80fd5b81516132838161561d565b634e487b7160e01b5f52603260045260245ffd5b6001600160601b03948516815292841660208401529216604082015264ffffffffff909116606082015260800190565b6001600160601b0395861681526001600160a01b039490941660208501529184166040840152909216606082015264ffffffffff909116608082015260a00190565b5f8085851115615d70575f80fd5b83861115615d7c575f80fd5b5050820193919092039150565b80356001600160e01b03198116906004841015615ae7576001600160e01b031960049490940360031b84901b1690921692915050565b6001600160a01b03841681526040602082018190528101829052818360608301375f818301606090810191909152601f909201601f1916010192915050565b5f60208284031215615e0e575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156115a4576115a4615e15565b6001600160601b039687168152948616602086015292851660408501529316606083015264ffffffffff928316608083015290911660a082015260c00190565b5f82615e9657634e487b7160e01b5f52601260045260245ffd5b500490565b5f61ffff821661ffff8103615eb257615eb2615e15565b60010192915050565b5f82518060208501845e5f920191825250919050565b5f8060408385031215615ee2575f80fd5b8251615eed8161569a565b602084015190925063ffffffff81168114615674575f80fdfea2646970667358221220e310760562fc7db12c730b71f6c598d8b319272647235d1a7bf18a00969ea66e64736f6c634300081a0033",
         | 
| 1691 2225 | 
             
              "linkReferences": {
         | 
| 2226 | 
            +
                "contracts/staking/StakingLib.sol": {
         | 
| 2227 | 
            +
                  "StakingLib": [
         | 
| 2228 | 
            +
                    {
         | 
| 2229 | 
            +
                      "length": 20,
         | 
| 2230 | 
            +
                      "start": 18688
         | 
| 2231 | 
            +
                    }
         | 
| 2232 | 
            +
                  ]
         | 
| 2233 | 
            +
                },
         | 
| 1692 2234 | 
             
                "contracts/staking/TargetManagerLib.sol": {
         | 
| 1693 2235 | 
             
                  "TargetManagerLib": [
         | 
| 1694 2236 | 
             
                    {
         | 
| 1695 2237 | 
             
                      "length": 20,
         | 
| 1696 | 
            -
                      "start":  | 
| 2238 | 
            +
                      "start": 1297
         | 
| 2239 | 
            +
                    },
         | 
| 2240 | 
            +
                    {
         | 
| 2241 | 
            +
                      "length": 20,
         | 
| 2242 | 
            +
                      "start": 1404
         | 
| 2243 | 
            +
                    },
         | 
| 2244 | 
            +
                    {
         | 
| 2245 | 
            +
                      "length": 20,
         | 
| 2246 | 
            +
                      "start": 3448
         | 
| 2247 | 
            +
                    },
         | 
| 2248 | 
            +
                    {
         | 
| 2249 | 
            +
                      "length": 20,
         | 
| 2250 | 
            +
                      "start": 9078
         | 
| 2251 | 
            +
                    },
         | 
| 2252 | 
            +
                    {
         | 
| 2253 | 
            +
                      "length": 20,
         | 
| 2254 | 
            +
                      "start": 11966
         | 
| 1697 2255 | 
             
                    },
         | 
| 1698 2256 | 
             
                    {
         | 
| 1699 2257 | 
             
                      "length": 20,
         | 
| 1700 | 
            -
                      "start":  | 
| 2258 | 
            +
                      "start": 24407
         | 
| 1701 2259 | 
             
                    }
         | 
| 1702 2260 | 
             
                  ]
         | 
| 1703 2261 | 
             
                },
         | 
| @@ -1705,227 +2263,327 @@ | |
| 1705 2263 | 
             
                  "AmountLib": [
         | 
| 1706 2264 | 
             
                    {
         | 
| 1707 2265 | 
             
                      "length": 20,
         | 
| 1708 | 
            -
                      "start":  | 
| 2266 | 
            +
                      "start": 513
         | 
| 1709 2267 | 
             
                    },
         | 
| 1710 2268 | 
             
                    {
         | 
| 1711 2269 | 
             
                      "length": 20,
         | 
| 1712 | 
            -
                      "start":  | 
| 2270 | 
            +
                      "start": 620
         | 
| 1713 2271 | 
             
                    },
         | 
| 1714 2272 | 
             
                    {
         | 
| 1715 2273 | 
             
                      "length": 20,
         | 
| 1716 | 
            -
                      "start":  | 
| 2274 | 
            +
                      "start": 1558
         | 
| 1717 2275 | 
             
                    },
         | 
| 1718 2276 | 
             
                    {
         | 
| 1719 2277 | 
             
                      "length": 20,
         | 
| 1720 | 
            -
                      "start":  | 
| 2278 | 
            +
                      "start": 1652
         | 
| 1721 2279 | 
             
                    },
         | 
| 1722 2280 | 
             
                    {
         | 
| 1723 2281 | 
             
                      "length": 20,
         | 
| 1724 | 
            -
                      "start":  | 
| 2282 | 
            +
                      "start": 3567
         | 
| 1725 2283 | 
             
                    },
         | 
| 1726 2284 | 
             
                    {
         | 
| 1727 2285 | 
             
                      "length": 20,
         | 
| 1728 | 
            -
                      "start":  | 
| 2286 | 
            +
                      "start": 3703
         | 
| 1729 2287 | 
             
                    },
         | 
| 1730 2288 | 
             
                    {
         | 
| 1731 2289 | 
             
                      "length": 20,
         | 
| 1732 | 
            -
                      "start":  | 
| 2290 | 
            +
                      "start": 3840
         | 
| 1733 2291 | 
             
                    },
         | 
| 1734 2292 | 
             
                    {
         | 
| 1735 2293 | 
             
                      "length": 20,
         | 
| 1736 | 
            -
                      "start":  | 
| 2294 | 
            +
                      "start": 3986
         | 
| 1737 2295 | 
             
                    },
         | 
| 1738 2296 | 
             
                    {
         | 
| 1739 2297 | 
             
                      "length": 20,
         | 
| 1740 | 
            -
                      "start":  | 
| 2298 | 
            +
                      "start": 4555
         | 
| 1741 2299 | 
             
                    },
         | 
| 1742 2300 | 
             
                    {
         | 
| 1743 2301 | 
             
                      "length": 20,
         | 
| 1744 | 
            -
                      "start":  | 
| 2302 | 
            +
                      "start": 4583
         | 
| 1745 2303 | 
             
                    },
         | 
| 1746 2304 | 
             
                    {
         | 
| 1747 2305 | 
             
                      "length": 20,
         | 
| 1748 | 
            -
                      "start":  | 
| 2306 | 
            +
                      "start": 4719
         | 
| 1749 2307 | 
             
                    },
         | 
| 1750 2308 | 
             
                    {
         | 
| 1751 2309 | 
             
                      "length": 20,
         | 
| 1752 | 
            -
                      "start":  | 
| 2310 | 
            +
                      "start": 4916
         | 
| 1753 2311 | 
             
                    },
         | 
| 1754 2312 | 
             
                    {
         | 
| 1755 2313 | 
             
                      "length": 20,
         | 
| 1756 | 
            -
                      "start":  | 
| 2314 | 
            +
                      "start": 5269
         | 
| 1757 2315 | 
             
                    },
         | 
| 1758 2316 | 
             
                    {
         | 
| 1759 2317 | 
             
                      "length": 20,
         | 
| 1760 | 
            -
                      "start":  | 
| 2318 | 
            +
                      "start": 10840
         | 
| 1761 2319 | 
             
                    },
         | 
| 1762 2320 | 
             
                    {
         | 
| 1763 2321 | 
             
                      "length": 20,
         | 
| 1764 | 
            -
                      "start":  | 
| 2322 | 
            +
                      "start": 10981
         | 
| 1765 2323 | 
             
                    },
         | 
| 1766 2324 | 
             
                    {
         | 
| 1767 2325 | 
             
                      "length": 20,
         | 
| 1768 | 
            -
                      "start":  | 
| 2326 | 
            +
                      "start": 12687
         | 
| 1769 2327 | 
             
                    },
         | 
| 1770 2328 | 
             
                    {
         | 
| 1771 2329 | 
             
                      "length": 20,
         | 
| 1772 | 
            -
                      "start":  | 
| 1773 | 
            -
                    }
         | 
| 1774 | 
            -
             | 
| 1775 | 
            -
             | 
| 1776 | 
            -
             | 
| 1777 | 
            -
             | 
| 2330 | 
            +
                      "start": 12802
         | 
| 2331 | 
            +
                    },
         | 
| 2332 | 
            +
                    {
         | 
| 2333 | 
            +
                      "length": 20,
         | 
| 2334 | 
            +
                      "start": 13062
         | 
| 2335 | 
            +
                    },
         | 
| 2336 | 
            +
                    {
         | 
| 2337 | 
            +
                      "length": 20,
         | 
| 2338 | 
            +
                      "start": 13346
         | 
| 2339 | 
            +
                    },
         | 
| 2340 | 
            +
                    {
         | 
| 2341 | 
            +
                      "length": 20,
         | 
| 2342 | 
            +
                      "start": 14803
         | 
| 2343 | 
            +
                    },
         | 
| 2344 | 
            +
                    {
         | 
| 2345 | 
            +
                      "length": 20,
         | 
| 2346 | 
            +
                      "start": 18510
         | 
| 2347 | 
            +
                    },
         | 
| 2348 | 
            +
                    {
         | 
| 2349 | 
            +
                      "length": 20,
         | 
| 2350 | 
            +
                      "start": 19059
         | 
| 2351 | 
            +
                    },
         | 
| 2352 | 
            +
                    {
         | 
| 2353 | 
            +
                      "length": 20,
         | 
| 2354 | 
            +
                      "start": 19365
         | 
| 2355 | 
            +
                    },
         | 
| 2356 | 
            +
                    {
         | 
| 2357 | 
            +
                      "length": 20,
         | 
| 2358 | 
            +
                      "start": 19571
         | 
| 2359 | 
            +
                    },
         | 
| 1778 2360 | 
             
                    {
         | 
| 1779 2361 | 
             
                      "length": 20,
         | 
| 1780 | 
            -
                      "start":  | 
| 2362 | 
            +
                      "start": 19770
         | 
| 1781 2363 | 
             
                    },
         | 
| 1782 2364 | 
             
                    {
         | 
| 1783 2365 | 
             
                      "length": 20,
         | 
| 1784 | 
            -
                      "start":  | 
| 2366 | 
            +
                      "start": 19895
         | 
| 1785 2367 | 
             
                    },
         | 
| 1786 2368 | 
             
                    {
         | 
| 1787 2369 | 
             
                      "length": 20,
         | 
| 1788 | 
            -
                      "start":  | 
| 2370 | 
            +
                      "start": 20403
         | 
| 1789 2371 | 
             
                    },
         | 
| 1790 2372 | 
             
                    {
         | 
| 1791 2373 | 
             
                      "length": 20,
         | 
| 1792 | 
            -
                      "start":  | 
| 2374 | 
            +
                      "start": 20861
         | 
| 1793 2375 | 
             
                    },
         | 
| 1794 2376 | 
             
                    {
         | 
| 1795 2377 | 
             
                      "length": 20,
         | 
| 1796 | 
            -
                      "start":  | 
| 2378 | 
            +
                      "start": 20986
         | 
| 1797 2379 | 
             
                    },
         | 
| 1798 2380 | 
             
                    {
         | 
| 1799 2381 | 
             
                      "length": 20,
         | 
| 1800 | 
            -
                      "start":  | 
| 2382 | 
            +
                      "start": 21833
         | 
| 1801 2383 | 
             
                    },
         | 
| 1802 2384 | 
             
                    {
         | 
| 1803 2385 | 
             
                      "length": 20,
         | 
| 1804 | 
            -
                      "start":  | 
| 2386 | 
            +
                      "start": 22218
         | 
| 1805 2387 | 
             
                    },
         | 
| 1806 2388 | 
             
                    {
         | 
| 1807 2389 | 
             
                      "length": 20,
         | 
| 1808 | 
            -
                      "start":  | 
| 2390 | 
            +
                      "start": 23987
         | 
| 1809 2391 | 
             
                    },
         | 
| 1810 2392 | 
             
                    {
         | 
| 1811 2393 | 
             
                      "length": 20,
         | 
| 1812 | 
            -
                      "start":  | 
| 2394 | 
            +
                      "start": 24120
         | 
| 1813 2395 | 
             
                    },
         | 
| 1814 2396 | 
             
                    {
         | 
| 1815 2397 | 
             
                      "length": 20,
         | 
| 1816 | 
            -
                      "start":  | 
| 2398 | 
            +
                      "start": 24194
         | 
| 1817 2399 | 
             
                    },
         | 
| 1818 2400 | 
             
                    {
         | 
| 1819 2401 | 
             
                      "length": 20,
         | 
| 1820 | 
            -
                      "start":  | 
| 2402 | 
            +
                      "start": 24526
         | 
| 1821 2403 | 
             
                    },
         | 
| 1822 2404 | 
             
                    {
         | 
| 1823 2405 | 
             
                      "length": 20,
         | 
| 1824 | 
            -
                      "start":  | 
| 2406 | 
            +
                      "start": 24662
         | 
| 1825 2407 | 
             
                    },
         | 
| 1826 2408 | 
             
                    {
         | 
| 1827 2409 | 
             
                      "length": 20,
         | 
| 1828 | 
            -
                      "start":  | 
| 2410 | 
            +
                      "start": 24799
         | 
| 1829 2411 | 
             
                    },
         | 
| 1830 2412 | 
             
                    {
         | 
| 1831 2413 | 
             
                      "length": 20,
         | 
| 1832 | 
            -
                      "start":  | 
| 2414 | 
            +
                      "start": 24945
         | 
| 1833 2415 | 
             
                    },
         | 
| 1834 2416 | 
             
                    {
         | 
| 1835 2417 | 
             
                      "length": 20,
         | 
| 1836 | 
            -
                      "start":  | 
| 2418 | 
            +
                      "start": 25511
         | 
| 1837 2419 | 
             
                    },
         | 
| 1838 2420 | 
             
                    {
         | 
| 1839 2421 | 
             
                      "length": 20,
         | 
| 1840 | 
            -
                      "start":  | 
| 2422 | 
            +
                      "start": 25539
         | 
| 1841 2423 | 
             
                    },
         | 
| 1842 2424 | 
             
                    {
         | 
| 1843 2425 | 
             
                      "length": 20,
         | 
| 1844 | 
            -
                      "start":  | 
| 2426 | 
            +
                      "start": 25675
         | 
| 1845 2427 | 
             
                    },
         | 
| 1846 2428 | 
             
                    {
         | 
| 1847 2429 | 
             
                      "length": 20,
         | 
| 1848 | 
            -
                      "start":  | 
| 2430 | 
            +
                      "start": 25872
         | 
| 2431 | 
            +
                    },
         | 
| 2432 | 
            +
                    {
         | 
| 2433 | 
            +
                      "length": 20,
         | 
| 2434 | 
            +
                      "start": 26621
         | 
| 1849 2435 | 
             
                    }
         | 
| 1850 2436 | 
             
                  ]
         | 
| 1851 2437 | 
             
                },
         | 
| 1852 | 
            -
                "contracts/type/ | 
| 1853 | 
            -
                  " | 
| 2438 | 
            +
                "contracts/type/Blocknumber.sol": {
         | 
| 2439 | 
            +
                  "BlocknumberLib": [
         | 
| 1854 2440 | 
             
                    {
         | 
| 1855 2441 | 
             
                      "length": 20,
         | 
| 1856 | 
            -
                      "start":  | 
| 2442 | 
            +
                      "start": 3033
         | 
| 1857 2443 | 
             
                    },
         | 
| 1858 2444 | 
             
                    {
         | 
| 1859 2445 | 
             
                      "length": 20,
         | 
| 1860 | 
            -
                      "start":  | 
| 2446 | 
            +
                      "start": 4374
         | 
| 1861 2447 | 
             
                    },
         | 
| 1862 2448 | 
             
                    {
         | 
| 1863 2449 | 
             
                      "length": 20,
         | 
| 1864 | 
            -
                      "start":  | 
| 2450 | 
            +
                      "start": 5524
         | 
| 1865 2451 | 
             
                    },
         | 
| 1866 2452 | 
             
                    {
         | 
| 1867 2453 | 
             
                      "length": 20,
         | 
| 1868 | 
            -
                      "start":  | 
| 2454 | 
            +
                      "start": 9206
         | 
| 1869 2455 | 
             
                    },
         | 
| 1870 2456 | 
             
                    {
         | 
| 1871 2457 | 
             
                      "length": 20,
         | 
| 1872 | 
            -
                      "start":  | 
| 2458 | 
            +
                      "start": 9811
         | 
| 1873 2459 | 
             
                    },
         | 
| 1874 2460 | 
             
                    {
         | 
| 1875 2461 | 
             
                      "length": 20,
         | 
| 1876 | 
            -
                      "start":  | 
| 2462 | 
            +
                      "start": 10098
         | 
| 1877 2463 | 
             
                    },
         | 
| 1878 2464 | 
             
                    {
         | 
| 1879 2465 | 
             
                      "length": 20,
         | 
| 1880 | 
            -
                      "start":  | 
| 2466 | 
            +
                      "start": 10470
         | 
| 1881 2467 | 
             
                    },
         | 
| 1882 2468 | 
             
                    {
         | 
| 1883 2469 | 
             
                      "length": 20,
         | 
| 1884 | 
            -
                      "start":  | 
| 2470 | 
            +
                      "start": 10637
         | 
| 1885 2471 | 
             
                    },
         | 
| 1886 2472 | 
             
                    {
         | 
| 1887 2473 | 
             
                      "length": 20,
         | 
| 1888 | 
            -
                      "start":  | 
| 2474 | 
            +
                      "start": 11523
         | 
| 1889 2475 | 
             
                    },
         | 
| 1890 2476 | 
             
                    {
         | 
| 1891 2477 | 
             
                      "length": 20,
         | 
| 1892 | 
            -
                      "start":  | 
| 2478 | 
            +
                      "start": 12102
         | 
| 1893 2479 | 
             
                    },
         | 
| 1894 2480 | 
             
                    {
         | 
| 1895 2481 | 
             
                      "length": 20,
         | 
| 1896 | 
            -
                      "start":  | 
| 1897 | 
            -
                    }
         | 
| 1898 | 
            -
             | 
| 1899 | 
            -
             | 
| 1900 | 
            -
             | 
| 1901 | 
            -
             | 
| 2482 | 
            +
                      "start": 13929
         | 
| 2483 | 
            +
                    },
         | 
| 2484 | 
            +
                    {
         | 
| 2485 | 
            +
                      "length": 20,
         | 
| 2486 | 
            +
                      "start": 14125
         | 
| 2487 | 
            +
                    },
         | 
| 2488 | 
            +
                    {
         | 
| 2489 | 
            +
                      "length": 20,
         | 
| 2490 | 
            +
                      "start": 14356
         | 
| 2491 | 
            +
                    },
         | 
| 2492 | 
            +
                    {
         | 
| 2493 | 
            +
                      "length": 20,
         | 
| 2494 | 
            +
                      "start": 14675
         | 
| 2495 | 
            +
                    },
         | 
| 2496 | 
            +
                    {
         | 
| 2497 | 
            +
                      "length": 20,
         | 
| 2498 | 
            +
                      "start": 14953
         | 
| 2499 | 
            +
                    },
         | 
| 2500 | 
            +
                    {
         | 
| 2501 | 
            +
                      "length": 20,
         | 
| 2502 | 
            +
                      "start": 15420
         | 
| 2503 | 
            +
                    },
         | 
| 2504 | 
            +
                    {
         | 
| 2505 | 
            +
                      "length": 20,
         | 
| 2506 | 
            +
                      "start": 15993
         | 
| 2507 | 
            +
                    },
         | 
| 2508 | 
            +
                    {
         | 
| 2509 | 
            +
                      "length": 20,
         | 
| 2510 | 
            +
                      "start": 16328
         | 
| 2511 | 
            +
                    },
         | 
| 2512 | 
            +
                    {
         | 
| 2513 | 
            +
                      "length": 20,
         | 
| 2514 | 
            +
                      "start": 16953
         | 
| 2515 | 
            +
                    },
         | 
| 2516 | 
            +
                    {
         | 
| 2517 | 
            +
                      "length": 20,
         | 
| 2518 | 
            +
                      "start": 17443
         | 
| 2519 | 
            +
                    },
         | 
| 2520 | 
            +
                    {
         | 
| 2521 | 
            +
                      "length": 20,
         | 
| 2522 | 
            +
                      "start": 17654
         | 
| 2523 | 
            +
                    },
         | 
| 2524 | 
            +
                    {
         | 
| 2525 | 
            +
                      "length": 20,
         | 
| 2526 | 
            +
                      "start": 17848
         | 
| 2527 | 
            +
                    },
         | 
| 2528 | 
            +
                    {
         | 
| 2529 | 
            +
                      "length": 20,
         | 
| 2530 | 
            +
                      "start": 20540
         | 
| 2531 | 
            +
                    },
         | 
| 2532 | 
            +
                    {
         | 
| 2533 | 
            +
                      "length": 20,
         | 
| 2534 | 
            +
                      "start": 21514
         | 
| 2535 | 
            +
                    },
         | 
| 2536 | 
            +
                    {
         | 
| 2537 | 
            +
                      "length": 20,
         | 
| 2538 | 
            +
                      "start": 23628
         | 
| 2539 | 
            +
                    },
         | 
| 2540 | 
            +
                    {
         | 
| 2541 | 
            +
                      "length": 20,
         | 
| 2542 | 
            +
                      "start": 25330
         | 
| 2543 | 
            +
                    },
         | 
| 1902 2544 | 
             
                    {
         | 
| 1903 2545 | 
             
                      "length": 20,
         | 
| 1904 | 
            -
                      "start":  | 
| 2546 | 
            +
                      "start": 26240
         | 
| 1905 2547 | 
             
                    },
         | 
| 1906 2548 | 
             
                    {
         | 
| 1907 2549 | 
             
                      "length": 20,
         | 
| 1908 | 
            -
                      "start":  | 
| 2550 | 
            +
                      "start": 26455
         | 
| 1909 2551 | 
             
                    },
         | 
| 1910 2552 | 
             
                    {
         | 
| 1911 2553 | 
             
                      "length": 20,
         | 
| 1912 | 
            -
                      "start":  | 
| 2554 | 
            +
                      "start": 27111
         | 
| 1913 2555 | 
             
                    },
         | 
| 1914 2556 | 
             
                    {
         | 
| 1915 2557 | 
             
                      "length": 20,
         | 
| 1916 | 
            -
                      "start":  | 
| 2558 | 
            +
                      "start": 27524
         | 
| 1917 2559 | 
             
                    },
         | 
| 1918 2560 | 
             
                    {
         | 
| 1919 2561 | 
             
                      "length": 20,
         | 
| 1920 | 
            -
                      "start":  | 
| 2562 | 
            +
                      "start": 27914
         | 
| 2563 | 
            +
                    }
         | 
| 2564 | 
            +
                  ]
         | 
| 2565 | 
            +
                },
         | 
| 2566 | 
            +
                "contracts/type/ChainId.sol": {
         | 
| 2567 | 
            +
                  "ChainIdLib": [
         | 
| 2568 | 
            +
                    {
         | 
| 2569 | 
            +
                      "length": 20,
         | 
| 2570 | 
            +
                      "start": 4240
         | 
| 1921 2571 | 
             
                    },
         | 
| 1922 2572 | 
             
                    {
         | 
| 1923 2573 | 
             
                      "length": 20,
         | 
| 1924 | 
            -
                      "start":  | 
| 2574 | 
            +
                      "start": 14500
         | 
| 1925 2575 | 
             
                    },
         | 
| 1926 2576 | 
             
                    {
         | 
| 1927 2577 | 
             
                      "length": 20,
         | 
| 1928 | 
            -
                      "start":  | 
| 2578 | 
            +
                      "start": 25196
         | 
| 2579 | 
            +
                    }
         | 
| 2580 | 
            +
                  ]
         | 
| 2581 | 
            +
                },
         | 
| 2582 | 
            +
                "contracts/type/NftId.sol": {
         | 
| 2583 | 
            +
                  "NftIdLib": [
         | 
| 2584 | 
            +
                    {
         | 
| 2585 | 
            +
                      "length": 20,
         | 
| 2586 | 
            +
                      "start": 1201
         | 
| 1929 2587 | 
             
                    }
         | 
| 1930 2588 | 
             
                  ]
         | 
| 1931 2589 | 
             
                },
         | 
| @@ -1933,43 +2591,43 @@ | |
| 1933 2591 | 
             
                  "LibNftIdSet": [
         | 
| 1934 2592 | 
             
                    {
         | 
| 1935 2593 | 
             
                      "length": 20,
         | 
| 1936 | 
            -
                      "start":  | 
| 2594 | 
            +
                      "start": 30972
         | 
| 1937 2595 | 
             
                    },
         | 
| 1938 2596 | 
             
                    {
         | 
| 1939 2597 | 
             
                      "length": 20,
         | 
| 1940 | 
            -
                      "start":  | 
| 2598 | 
            +
                      "start": 31089
         | 
| 1941 2599 | 
             
                    },
         | 
| 1942 2600 | 
             
                    {
         | 
| 1943 2601 | 
             
                      "length": 20,
         | 
| 1944 | 
            -
                      "start":  | 
| 2602 | 
            +
                      "start": 31219
         | 
| 1945 2603 | 
             
                    },
         | 
| 1946 2604 | 
             
                    {
         | 
| 1947 2605 | 
             
                      "length": 20,
         | 
| 1948 | 
            -
                      "start":  | 
| 2606 | 
            +
                      "start": 31351
         | 
| 1949 2607 | 
             
                    },
         | 
| 1950 2608 | 
             
                    {
         | 
| 1951 2609 | 
             
                      "length": 20,
         | 
| 1952 | 
            -
                      "start":  | 
| 2610 | 
            +
                      "start": 31488
         | 
| 1953 2611 | 
             
                    },
         | 
| 1954 2612 | 
             
                    {
         | 
| 1955 2613 | 
             
                      "length": 20,
         | 
| 1956 | 
            -
                      "start":  | 
| 2614 | 
            +
                      "start": 31596
         | 
| 1957 2615 | 
             
                    },
         | 
| 1958 2616 | 
             
                    {
         | 
| 1959 2617 | 
             
                      "length": 20,
         | 
| 1960 | 
            -
                      "start":  | 
| 2618 | 
            +
                      "start": 31778
         | 
| 1961 2619 | 
             
                    },
         | 
| 1962 2620 | 
             
                    {
         | 
| 1963 2621 | 
             
                      "length": 20,
         | 
| 1964 | 
            -
                      "start":  | 
| 2622 | 
            +
                      "start": 31836
         | 
| 1965 2623 | 
             
                    },
         | 
| 1966 2624 | 
             
                    {
         | 
| 1967 2625 | 
             
                      "length": 20,
         | 
| 1968 | 
            -
                      "start":  | 
| 2626 | 
            +
                      "start": 31958
         | 
| 1969 2627 | 
             
                    },
         | 
| 1970 2628 | 
             
                    {
         | 
| 1971 2629 | 
             
                      "length": 20,
         | 
| 1972 | 
            -
                      "start":  | 
| 2630 | 
            +
                      "start": 32023
         | 
| 1973 2631 | 
             
                    }
         | 
| 1974 2632 | 
             
                  ]
         | 
| 1975 2633 | 
             
                },
         | 
| @@ -1977,47 +2635,55 @@ | |
| 1977 2635 | 
             
                  "ObjectTypeLib": [
         | 
| 1978 2636 | 
             
                    {
         | 
| 1979 2637 | 
             
                      "length": 20,
         | 
| 1980 | 
            -
                      "start":  | 
| 2638 | 
            +
                      "start": 2167
         | 
| 1981 2639 | 
             
                    },
         | 
| 1982 2640 | 
             
                    {
         | 
| 1983 2641 | 
             
                      "length": 20,
         | 
| 1984 | 
            -
                      "start":  | 
| 2642 | 
            +
                      "start": 22762
         | 
| 1985 2643 | 
             
                    }
         | 
| 1986 2644 | 
             
                  ]
         | 
| 1987 2645 | 
             
                },
         | 
| 1988 | 
            -
                "contracts/type/ | 
| 1989 | 
            -
                  " | 
| 2646 | 
            +
                "contracts/type/Seconds.sol": {
         | 
| 2647 | 
            +
                  "SecondsLib": [
         | 
| 2648 | 
            +
                    {
         | 
| 2649 | 
            +
                      "length": 20,
         | 
| 2650 | 
            +
                      "start": 727
         | 
| 2651 | 
            +
                    },
         | 
| 2652 | 
            +
                    {
         | 
| 2653 | 
            +
                      "length": 20,
         | 
| 2654 | 
            +
                      "start": 834
         | 
| 2655 | 
            +
                    },
         | 
| 1990 2656 | 
             
                    {
         | 
| 1991 2657 | 
             
                      "length": 20,
         | 
| 1992 | 
            -
                      "start":  | 
| 2658 | 
            +
                      "start": 1759
         | 
| 1993 2659 | 
             
                    },
         | 
| 1994 2660 | 
             
                    {
         | 
| 1995 2661 | 
             
                      "length": 20,
         | 
| 1996 | 
            -
                      "start":  | 
| 2662 | 
            +
                      "start": 1866
         | 
| 1997 2663 | 
             
                    },
         | 
| 1998 2664 | 
             
                    {
         | 
| 1999 2665 | 
             
                      "length": 20,
         | 
| 2000 | 
            -
                      "start":  | 
| 2666 | 
            +
                      "start": 5407
         | 
| 2001 2667 | 
             
                    },
         | 
| 2002 2668 | 
             
                    {
         | 
| 2003 2669 | 
             
                      "length": 20,
         | 
| 2004 | 
            -
                      "start":  | 
| 2670 | 
            +
                      "start": 18157
         | 
| 2005 2671 | 
             
                    },
         | 
| 2006 2672 | 
             
                    {
         | 
| 2007 2673 | 
             
                      "length": 20,
         | 
| 2008 | 
            -
                      "start":  | 
| 2674 | 
            +
                      "start": 18411
         | 
| 2009 2675 | 
             
                    },
         | 
| 2010 2676 | 
             
                    {
         | 
| 2011 2677 | 
             
                      "length": 20,
         | 
| 2012 | 
            -
                      "start":  | 
| 2678 | 
            +
                      "start": 22093
         | 
| 2013 2679 | 
             
                    },
         | 
| 2014 2680 | 
             
                    {
         | 
| 2015 2681 | 
             
                      "length": 20,
         | 
| 2016 | 
            -
                      "start":  | 
| 2682 | 
            +
                      "start": 22345
         | 
| 2017 2683 | 
             
                    },
         | 
| 2018 2684 | 
             
                    {
         | 
| 2019 2685 | 
             
                      "length": 20,
         | 
| 2020 | 
            -
                      "start":  | 
| 2686 | 
            +
                      "start": 27806
         | 
| 2021 2687 | 
             
                    }
         | 
| 2022 2688 | 
             
                  ]
         | 
| 2023 2689 | 
             
                },
         | 
| @@ -2025,11 +2691,23 @@ | |
| 2025 2691 | 
             
                  "TimestampLib": [
         | 
| 2026 2692 | 
             
                    {
         | 
| 2027 2693 | 
             
                      "length": 20,
         | 
| 2028 | 
            -
                      "start":  | 
| 2694 | 
            +
                      "start": 11118
         | 
| 2695 | 
            +
                    },
         | 
| 2696 | 
            +
                    {
         | 
| 2697 | 
            +
                      "length": 20,
         | 
| 2698 | 
            +
                      "start": 15218
         | 
| 2699 | 
            +
                    },
         | 
| 2700 | 
            +
                    {
         | 
| 2701 | 
            +
                      "length": 20,
         | 
| 2702 | 
            +
                      "start": 18185
         | 
| 2703 | 
            +
                    },
         | 
| 2704 | 
            +
                    {
         | 
| 2705 | 
            +
                      "length": 20,
         | 
| 2706 | 
            +
                      "start": 21657
         | 
| 2029 2707 | 
             
                    },
         | 
| 2030 2708 | 
             
                    {
         | 
| 2031 2709 | 
             
                      "length": 20,
         | 
| 2032 | 
            -
                      "start":  | 
| 2710 | 
            +
                      "start": 22488
         | 
| 2033 2711 | 
             
                    }
         | 
| 2034 2712 | 
             
                  ]
         | 
| 2035 2713 | 
             
                },
         | 
| @@ -2037,69 +2715,181 @@ | |
| 2037 2715 | 
             
                  "UFixedLib": [
         | 
| 2038 2716 | 
             
                    {
         | 
| 2039 2717 | 
             
                      "length": 20,
         | 
| 2040 | 
            -
                      "start":  | 
| 2718 | 
            +
                      "start": 941
         | 
| 2719 | 
            +
                    },
         | 
| 2720 | 
            +
                    {
         | 
| 2721 | 
            +
                      "length": 20,
         | 
| 2722 | 
            +
                      "start": 1076
         | 
| 2723 | 
            +
                    },
         | 
| 2724 | 
            +
                    {
         | 
| 2725 | 
            +
                      "length": 20,
         | 
| 2726 | 
            +
                      "start": 1973
         | 
| 2727 | 
            +
                    },
         | 
| 2728 | 
            +
                    {
         | 
| 2729 | 
            +
                      "length": 20,
         | 
| 2730 | 
            +
                      "start": 2107
         | 
| 2731 | 
            +
                    },
         | 
| 2732 | 
            +
                    {
         | 
| 2733 | 
            +
                      "length": 20,
         | 
| 2734 | 
            +
                      "start": 9948
         | 
| 2735 | 
            +
                    },
         | 
| 2736 | 
            +
                    {
         | 
| 2737 | 
            +
                      "length": 20,
         | 
| 2738 | 
            +
                      "start": 13229
         | 
| 2739 | 
            +
                    },
         | 
| 2740 | 
            +
                    {
         | 
| 2741 | 
            +
                      "length": 20,
         | 
| 2742 | 
            +
                      "start": 18019
         | 
| 2041 2743 | 
             
                    }
         | 
| 2042 2744 | 
             
                  ]
         | 
| 2043 2745 | 
             
                }
         | 
| 2044 2746 | 
             
              },
         | 
| 2045 2747 | 
             
              "deployedLinkReferences": {
         | 
| 2748 | 
            +
                "contracts/staking/StakingLib.sol": {
         | 
| 2749 | 
            +
                  "StakingLib": [
         | 
| 2750 | 
            +
                    {
         | 
| 2751 | 
            +
                      "length": 20,
         | 
| 2752 | 
            +
                      "start": 12609
         | 
| 2753 | 
            +
                    }
         | 
| 2754 | 
            +
                  ]
         | 
| 2755 | 
            +
                },
         | 
| 2756 | 
            +
                "contracts/staking/TargetManagerLib.sol": {
         | 
| 2757 | 
            +
                  "TargetManagerLib": [
         | 
| 2758 | 
            +
                    {
         | 
| 2759 | 
            +
                      "length": 20,
         | 
| 2760 | 
            +
                      "start": 2999
         | 
| 2761 | 
            +
                    },
         | 
| 2762 | 
            +
                    {
         | 
| 2763 | 
            +
                      "length": 20,
         | 
| 2764 | 
            +
                      "start": 5887
         | 
| 2765 | 
            +
                    },
         | 
| 2766 | 
            +
                    {
         | 
| 2767 | 
            +
                      "length": 20,
         | 
| 2768 | 
            +
                      "start": 18328
         | 
| 2769 | 
            +
                    }
         | 
| 2770 | 
            +
                  ]
         | 
| 2771 | 
            +
                },
         | 
| 2046 2772 | 
             
                "contracts/type/Amount.sol": {
         | 
| 2047 2773 | 
             
                  "AmountLib": [
         | 
| 2048 2774 | 
             
                    {
         | 
| 2049 2775 | 
             
                      "length": 20,
         | 
| 2050 | 
            -
                      "start":  | 
| 2776 | 
            +
                      "start": 4761
         | 
| 2777 | 
            +
                    },
         | 
| 2778 | 
            +
                    {
         | 
| 2779 | 
            +
                      "length": 20,
         | 
| 2780 | 
            +
                      "start": 4902
         | 
| 2781 | 
            +
                    },
         | 
| 2782 | 
            +
                    {
         | 
| 2783 | 
            +
                      "length": 20,
         | 
| 2784 | 
            +
                      "start": 6608
         | 
| 2785 | 
            +
                    },
         | 
| 2786 | 
            +
                    {
         | 
| 2787 | 
            +
                      "length": 20,
         | 
| 2788 | 
            +
                      "start": 6723
         | 
| 2789 | 
            +
                    },
         | 
| 2790 | 
            +
                    {
         | 
| 2791 | 
            +
                      "length": 20,
         | 
| 2792 | 
            +
                      "start": 6983
         | 
| 2793 | 
            +
                    },
         | 
| 2794 | 
            +
                    {
         | 
| 2795 | 
            +
                      "length": 20,
         | 
| 2796 | 
            +
                      "start": 7267
         | 
| 2797 | 
            +
                    },
         | 
| 2798 | 
            +
                    {
         | 
| 2799 | 
            +
                      "length": 20,
         | 
| 2800 | 
            +
                      "start": 8724
         | 
| 2801 | 
            +
                    },
         | 
| 2802 | 
            +
                    {
         | 
| 2803 | 
            +
                      "length": 20,
         | 
| 2804 | 
            +
                      "start": 12431
         | 
| 2805 | 
            +
                    },
         | 
| 2806 | 
            +
                    {
         | 
| 2807 | 
            +
                      "length": 20,
         | 
| 2808 | 
            +
                      "start": 12980
         | 
| 2051 2809 | 
             
                    },
         | 
| 2052 2810 | 
             
                    {
         | 
| 2053 2811 | 
             
                      "length": 20,
         | 
| 2054 | 
            -
                      "start":  | 
| 2812 | 
            +
                      "start": 13286
         | 
| 2055 2813 | 
             
                    },
         | 
| 2056 2814 | 
             
                    {
         | 
| 2057 2815 | 
             
                      "length": 20,
         | 
| 2058 | 
            -
                      "start":  | 
| 2816 | 
            +
                      "start": 13492
         | 
| 2059 2817 | 
             
                    },
         | 
| 2060 2818 | 
             
                    {
         | 
| 2061 2819 | 
             
                      "length": 20,
         | 
| 2062 | 
            -
                      "start":  | 
| 2820 | 
            +
                      "start": 13691
         | 
| 2063 2821 | 
             
                    },
         | 
| 2064 2822 | 
             
                    {
         | 
| 2065 2823 | 
             
                      "length": 20,
         | 
| 2066 | 
            -
                      "start":  | 
| 2824 | 
            +
                      "start": 13816
         | 
| 2067 2825 | 
             
                    },
         | 
| 2068 2826 | 
             
                    {
         | 
| 2069 2827 | 
             
                      "length": 20,
         | 
| 2070 | 
            -
                      "start":  | 
| 2828 | 
            +
                      "start": 14324
         | 
| 2071 2829 | 
             
                    },
         | 
| 2072 2830 | 
             
                    {
         | 
| 2073 2831 | 
             
                      "length": 20,
         | 
| 2074 | 
            -
                      "start":  | 
| 2832 | 
            +
                      "start": 14782
         | 
| 2075 2833 | 
             
                    },
         | 
| 2076 2834 | 
             
                    {
         | 
| 2077 2835 | 
             
                      "length": 20,
         | 
| 2078 | 
            -
                      "start":  | 
| 2836 | 
            +
                      "start": 14907
         | 
| 2079 2837 | 
             
                    },
         | 
| 2080 2838 | 
             
                    {
         | 
| 2081 2839 | 
             
                      "length": 20,
         | 
| 2082 | 
            -
                      "start":  | 
| 2840 | 
            +
                      "start": 15754
         | 
| 2083 2841 | 
             
                    },
         | 
| 2084 2842 | 
             
                    {
         | 
| 2085 2843 | 
             
                      "length": 20,
         | 
| 2086 | 
            -
                      "start":  | 
| 2844 | 
            +
                      "start": 16139
         | 
| 2087 2845 | 
             
                    },
         | 
| 2088 2846 | 
             
                    {
         | 
| 2089 2847 | 
             
                      "length": 20,
         | 
| 2090 | 
            -
                      "start":  | 
| 2848 | 
            +
                      "start": 17908
         | 
| 2091 2849 | 
             
                    },
         | 
| 2092 2850 | 
             
                    {
         | 
| 2093 2851 | 
             
                      "length": 20,
         | 
| 2094 | 
            -
                      "start":  | 
| 2852 | 
            +
                      "start": 18041
         | 
| 2095 2853 | 
             
                    },
         | 
| 2096 2854 | 
             
                    {
         | 
| 2097 2855 | 
             
                      "length": 20,
         | 
| 2098 | 
            -
                      "start":  | 
| 2856 | 
            +
                      "start": 18115
         | 
| 2099 2857 | 
             
                    },
         | 
| 2100 2858 | 
             
                    {
         | 
| 2101 2859 | 
             
                      "length": 20,
         | 
| 2102 | 
            -
                      "start":  | 
| 2860 | 
            +
                      "start": 18447
         | 
| 2861 | 
            +
                    },
         | 
| 2862 | 
            +
                    {
         | 
| 2863 | 
            +
                      "length": 20,
         | 
| 2864 | 
            +
                      "start": 18583
         | 
| 2865 | 
            +
                    },
         | 
| 2866 | 
            +
                    {
         | 
| 2867 | 
            +
                      "length": 20,
         | 
| 2868 | 
            +
                      "start": 18720
         | 
| 2869 | 
            +
                    },
         | 
| 2870 | 
            +
                    {
         | 
| 2871 | 
            +
                      "length": 20,
         | 
| 2872 | 
            +
                      "start": 18866
         | 
| 2873 | 
            +
                    },
         | 
| 2874 | 
            +
                    {
         | 
| 2875 | 
            +
                      "length": 20,
         | 
| 2876 | 
            +
                      "start": 19432
         | 
| 2877 | 
            +
                    },
         | 
| 2878 | 
            +
                    {
         | 
| 2879 | 
            +
                      "length": 20,
         | 
| 2880 | 
            +
                      "start": 19460
         | 
| 2881 | 
            +
                    },
         | 
| 2882 | 
            +
                    {
         | 
| 2883 | 
            +
                      "length": 20,
         | 
| 2884 | 
            +
                      "start": 19596
         | 
| 2885 | 
            +
                    },
         | 
| 2886 | 
            +
                    {
         | 
| 2887 | 
            +
                      "length": 20,
         | 
| 2888 | 
            +
                      "start": 19793
         | 
| 2889 | 
            +
                    },
         | 
| 2890 | 
            +
                    {
         | 
| 2891 | 
            +
                      "length": 20,
         | 
| 2892 | 
            +
                      "start": 20542
         | 
| 2103 2893 | 
             
                    }
         | 
| 2104 2894 | 
             
                  ]
         | 
| 2105 2895 | 
             
                },
         | 
| @@ -2107,155 +2897,159 @@ | |
| 2107 2897 | 
             
                  "BlocknumberLib": [
         | 
| 2108 2898 | 
             
                    {
         | 
| 2109 2899 | 
             
                      "length": 20,
         | 
| 2110 | 
            -
                      "start":  | 
| 2900 | 
            +
                      "start": 3127
         | 
| 2111 2901 | 
             
                    },
         | 
| 2112 2902 | 
             
                    {
         | 
| 2113 2903 | 
             
                      "length": 20,
         | 
| 2114 | 
            -
                      "start":  | 
| 2904 | 
            +
                      "start": 3732
         | 
| 2115 2905 | 
             
                    },
         | 
| 2116 2906 | 
             
                    {
         | 
| 2117 2907 | 
             
                      "length": 20,
         | 
| 2118 | 
            -
                      "start":  | 
| 2908 | 
            +
                      "start": 4019
         | 
| 2119 2909 | 
             
                    },
         | 
| 2120 2910 | 
             
                    {
         | 
| 2121 2911 | 
             
                      "length": 20,
         | 
| 2122 | 
            -
                      "start":  | 
| 2912 | 
            +
                      "start": 4391
         | 
| 2123 2913 | 
             
                    },
         | 
| 2124 2914 | 
             
                    {
         | 
| 2125 2915 | 
             
                      "length": 20,
         | 
| 2126 | 
            -
                      "start":  | 
| 2916 | 
            +
                      "start": 4558
         | 
| 2127 2917 | 
             
                    },
         | 
| 2128 2918 | 
             
                    {
         | 
| 2129 2919 | 
             
                      "length": 20,
         | 
| 2130 | 
            -
                      "start":  | 
| 2920 | 
            +
                      "start": 5444
         | 
| 2131 2921 | 
             
                    },
         | 
| 2132 2922 | 
             
                    {
         | 
| 2133 2923 | 
             
                      "length": 20,
         | 
| 2134 | 
            -
                      "start":  | 
| 2924 | 
            +
                      "start": 6023
         | 
| 2135 2925 | 
             
                    },
         | 
| 2136 2926 | 
             
                    {
         | 
| 2137 2927 | 
             
                      "length": 20,
         | 
| 2138 | 
            -
                      "start":  | 
| 2928 | 
            +
                      "start": 7850
         | 
| 2139 2929 | 
             
                    },
         | 
| 2140 2930 | 
             
                    {
         | 
| 2141 2931 | 
             
                      "length": 20,
         | 
| 2142 | 
            -
                      "start":  | 
| 2932 | 
            +
                      "start": 8046
         | 
| 2143 2933 | 
             
                    },
         | 
| 2144 2934 | 
             
                    {
         | 
| 2145 2935 | 
             
                      "length": 20,
         | 
| 2146 | 
            -
                      "start":  | 
| 2936 | 
            +
                      "start": 8277
         | 
| 2147 2937 | 
             
                    },
         | 
| 2148 2938 | 
             
                    {
         | 
| 2149 2939 | 
             
                      "length": 20,
         | 
| 2150 | 
            -
                      "start":  | 
| 2940 | 
            +
                      "start": 8596
         | 
| 2151 2941 | 
             
                    },
         | 
| 2152 2942 | 
             
                    {
         | 
| 2153 2943 | 
             
                      "length": 20,
         | 
| 2154 | 
            -
                      "start":  | 
| 2944 | 
            +
                      "start": 8874
         | 
| 2155 2945 | 
             
                    },
         | 
| 2156 2946 | 
             
                    {
         | 
| 2157 2947 | 
             
                      "length": 20,
         | 
| 2158 | 
            -
                      "start":  | 
| 2948 | 
            +
                      "start": 9341
         | 
| 2159 2949 | 
             
                    },
         | 
| 2160 2950 | 
             
                    {
         | 
| 2161 2951 | 
             
                      "length": 20,
         | 
| 2162 | 
            -
                      "start":  | 
| 2163 | 
            -
                    }
         | 
| 2164 | 
            -
                  ]
         | 
| 2165 | 
            -
                },
         | 
| 2166 | 
            -
                "contracts/type/Key32.sol": {
         | 
| 2167 | 
            -
                  "Key32Lib": [
         | 
| 2952 | 
            +
                      "start": 9914
         | 
| 2953 | 
            +
                    },
         | 
| 2168 2954 | 
             
                    {
         | 
| 2169 2955 | 
             
                      "length": 20,
         | 
| 2170 | 
            -
                      "start":  | 
| 2956 | 
            +
                      "start": 10249
         | 
| 2171 2957 | 
             
                    },
         | 
| 2172 2958 | 
             
                    {
         | 
| 2173 2959 | 
             
                      "length": 20,
         | 
| 2174 | 
            -
                      "start":  | 
| 2960 | 
            +
                      "start": 10874
         | 
| 2175 2961 | 
             
                    },
         | 
| 2176 2962 | 
             
                    {
         | 
| 2177 2963 | 
             
                      "length": 20,
         | 
| 2178 | 
            -
                      "start":  | 
| 2964 | 
            +
                      "start": 11364
         | 
| 2179 2965 | 
             
                    },
         | 
| 2180 2966 | 
             
                    {
         | 
| 2181 2967 | 
             
                      "length": 20,
         | 
| 2182 | 
            -
                      "start":  | 
| 2968 | 
            +
                      "start": 11575
         | 
| 2183 2969 | 
             
                    },
         | 
| 2184 2970 | 
             
                    {
         | 
| 2185 2971 | 
             
                      "length": 20,
         | 
| 2186 | 
            -
                      "start":  | 
| 2972 | 
            +
                      "start": 11769
         | 
| 2187 2973 | 
             
                    },
         | 
| 2188 2974 | 
             
                    {
         | 
| 2189 2975 | 
             
                      "length": 20,
         | 
| 2190 | 
            -
                      "start":  | 
| 2976 | 
            +
                      "start": 14461
         | 
| 2191 2977 | 
             
                    },
         | 
| 2192 2978 | 
             
                    {
         | 
| 2193 2979 | 
             
                      "length": 20,
         | 
| 2194 | 
            -
                      "start":  | 
| 2980 | 
            +
                      "start": 15435
         | 
| 2195 2981 | 
             
                    },
         | 
| 2196 2982 | 
             
                    {
         | 
| 2197 2983 | 
             
                      "length": 20,
         | 
| 2198 | 
            -
                      "start":  | 
| 2199 | 
            -
                    }
         | 
| 2200 | 
            -
             | 
| 2201 | 
            -
             | 
| 2202 | 
            -
             | 
| 2203 | 
            -
             | 
| 2984 | 
            +
                      "start": 17549
         | 
| 2985 | 
            +
                    },
         | 
| 2986 | 
            +
                    {
         | 
| 2987 | 
            +
                      "length": 20,
         | 
| 2988 | 
            +
                      "start": 19251
         | 
| 2989 | 
            +
                    },
         | 
| 2204 2990 | 
             
                    {
         | 
| 2205 2991 | 
             
                      "length": 20,
         | 
| 2206 | 
            -
                      "start":  | 
| 2992 | 
            +
                      "start": 20161
         | 
| 2207 2993 | 
             
                    },
         | 
| 2208 2994 | 
             
                    {
         | 
| 2209 2995 | 
             
                      "length": 20,
         | 
| 2210 | 
            -
                      "start":  | 
| 2996 | 
            +
                      "start": 20376
         | 
| 2211 2997 | 
             
                    },
         | 
| 2212 2998 | 
             
                    {
         | 
| 2213 2999 | 
             
                      "length": 20,
         | 
| 2214 | 
            -
                      "start":  | 
| 3000 | 
            +
                      "start": 21032
         | 
| 2215 3001 | 
             
                    },
         | 
| 2216 3002 | 
             
                    {
         | 
| 2217 3003 | 
             
                      "length": 20,
         | 
| 2218 | 
            -
                      "start":  | 
| 3004 | 
            +
                      "start": 21445
         | 
| 2219 3005 | 
             
                    },
         | 
| 2220 3006 | 
             
                    {
         | 
| 2221 3007 | 
             
                      "length": 20,
         | 
| 2222 | 
            -
                      "start":  | 
| 3008 | 
            +
                      "start": 21835
         | 
| 2223 3009 | 
             
                    }
         | 
| 2224 3010 | 
             
                  ]
         | 
| 2225 3011 | 
             
                },
         | 
| 2226 | 
            -
                "contracts/type/ | 
| 2227 | 
            -
                  " | 
| 3012 | 
            +
                "contracts/type/ChainId.sol": {
         | 
| 3013 | 
            +
                  "ChainIdLib": [
         | 
| 2228 3014 | 
             
                    {
         | 
| 2229 3015 | 
             
                      "length": 20,
         | 
| 2230 | 
            -
                      "start":  | 
| 3016 | 
            +
                      "start": 8421
         | 
| 3017 | 
            +
                    },
         | 
| 3018 | 
            +
                    {
         | 
| 3019 | 
            +
                      "length": 20,
         | 
| 3020 | 
            +
                      "start": 19117
         | 
| 2231 3021 | 
             
                    }
         | 
| 2232 3022 | 
             
                  ]
         | 
| 2233 3023 | 
             
                },
         | 
| 2234 | 
            -
                "contracts/type/ | 
| 2235 | 
            -
                  " | 
| 3024 | 
            +
                "contracts/type/ObjectType.sol": {
         | 
| 3025 | 
            +
                  "ObjectTypeLib": [
         | 
| 2236 3026 | 
             
                    {
         | 
| 2237 3027 | 
             
                      "length": 20,
         | 
| 2238 | 
            -
                      "start":  | 
| 2239 | 
            -
                    } | 
| 3028 | 
            +
                      "start": 16683
         | 
| 3029 | 
            +
                    }
         | 
| 3030 | 
            +
                  ]
         | 
| 3031 | 
            +
                },
         | 
| 3032 | 
            +
                "contracts/type/Seconds.sol": {
         | 
| 3033 | 
            +
                  "SecondsLib": [
         | 
| 2240 3034 | 
             
                    {
         | 
| 2241 3035 | 
             
                      "length": 20,
         | 
| 2242 | 
            -
                      "start":  | 
| 3036 | 
            +
                      "start": 12078
         | 
| 2243 3037 | 
             
                    },
         | 
| 2244 3038 | 
             
                    {
         | 
| 2245 3039 | 
             
                      "length": 20,
         | 
| 2246 | 
            -
                      "start":  | 
| 3040 | 
            +
                      "start": 12332
         | 
| 2247 3041 | 
             
                    },
         | 
| 2248 3042 | 
             
                    {
         | 
| 2249 3043 | 
             
                      "length": 20,
         | 
| 2250 | 
            -
                      "start":  | 
| 3044 | 
            +
                      "start": 16014
         | 
| 2251 3045 | 
             
                    },
         | 
| 2252 3046 | 
             
                    {
         | 
| 2253 3047 | 
             
                      "length": 20,
         | 
| 2254 | 
            -
                      "start":  | 
| 3048 | 
            +
                      "start": 16266
         | 
| 2255 3049 | 
             
                    },
         | 
| 2256 3050 | 
             
                    {
         | 
| 2257 3051 | 
             
                      "length": 20,
         | 
| 2258 | 
            -
                      "start":  | 
| 3052 | 
            +
                      "start": 21727
         | 
| 2259 3053 | 
             
                    }
         | 
| 2260 3054 | 
             
                  ]
         | 
| 2261 3055 | 
             
                },
         | 
| @@ -2263,11 +3057,23 @@ | |
| 2263 3057 | 
             
                  "TimestampLib": [
         | 
| 2264 3058 | 
             
                    {
         | 
| 2265 3059 | 
             
                      "length": 20,
         | 
| 2266 | 
            -
                      "start":  | 
| 3060 | 
            +
                      "start": 5039
         | 
| 3061 | 
            +
                    },
         | 
| 3062 | 
            +
                    {
         | 
| 3063 | 
            +
                      "length": 20,
         | 
| 3064 | 
            +
                      "start": 9139
         | 
| 3065 | 
            +
                    },
         | 
| 3066 | 
            +
                    {
         | 
| 3067 | 
            +
                      "length": 20,
         | 
| 3068 | 
            +
                      "start": 12106
         | 
| 3069 | 
            +
                    },
         | 
| 3070 | 
            +
                    {
         | 
| 3071 | 
            +
                      "length": 20,
         | 
| 3072 | 
            +
                      "start": 15578
         | 
| 2267 3073 | 
             
                    },
         | 
| 2268 3074 | 
             
                    {
         | 
| 2269 3075 | 
             
                      "length": 20,
         | 
| 2270 | 
            -
                      "start":  | 
| 3076 | 
            +
                      "start": 16409
         | 
| 2271 3077 | 
             
                    }
         | 
| 2272 3078 | 
             
                  ]
         | 
| 2273 3079 | 
             
                },
         | 
| @@ -2275,7 +3081,15 @@ | |
| 2275 3081 | 
             
                  "UFixedLib": [
         | 
| 2276 3082 | 
             
                    {
         | 
| 2277 3083 | 
             
                      "length": 20,
         | 
| 2278 | 
            -
                      "start":  | 
| 3084 | 
            +
                      "start": 3869
         | 
| 3085 | 
            +
                    },
         | 
| 3086 | 
            +
                    {
         | 
| 3087 | 
            +
                      "length": 20,
         | 
| 3088 | 
            +
                      "start": 7150
         | 
| 3089 | 
            +
                    },
         | 
| 3090 | 
            +
                    {
         | 
| 3091 | 
            +
                      "length": 20,
         | 
| 3092 | 
            +
                      "start": 11940
         | 
| 2279 3093 | 
             
                    }
         | 
| 2280 3094 | 
             
                  ]
         | 
| 2281 3095 | 
             
                }
         |