@etherisc/gif-next 0.0.2-f18fb8b-243 → 0.0.2-f1f3b2c-994
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 +19 -2
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +81 -63
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +2 -2
- 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 +48 -30
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +21 -2
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +2 -2
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +72 -9
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +106 -248
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +16 -16
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +64 -222
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +228 -217
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +93 -101
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +64 -37
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +120 -31
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1512 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +410 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1999 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +414 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1432 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1192 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1566 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2001 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +6 -6
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +5 -5
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +17 -106
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +146 -112
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +31 -31
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +437 -129
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +44 -151
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +61 -81
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +285 -228
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- 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 +45 -4
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/{ObjectManager.sol/ObjectManager.json → ObjectSet.sol/ObjectSet.json} +6 -6
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- 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/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +74 -229
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +18 -18
- 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 +45 -31
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +42 -213
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +37 -144
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +60 -80
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +94 -274
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +16 -16
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +458 -161
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +154 -86
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +229 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +87 -88
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +360 -171
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +84 -270
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +492 -333
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +98 -82
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +36 -162
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +57 -89
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +62 -242
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +16 -16
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +263 -181
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +104 -100
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +5 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +147 -6
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +295 -119
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +43 -43
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +62 -57
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +2 -2
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +406 -321
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +104 -100
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +118 -265
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +80 -120
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +62 -242
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +588 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +682 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +274 -22
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +0 -183
- 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 +493 -80
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +263 -145
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +23 -313
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +52 -72
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +46 -5
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1061 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +70 -12
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +15 -205
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +247 -161
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +105 -95
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +5 -112
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +15 -20
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +153 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +34 -31
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -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/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +34 -216
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +41 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +41 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/{NftIdSetManager.sol/NftIdSetManager.json → NftIdSet.sol/NftIdSet.json} +4 -4
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -57
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -97
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +5 -112
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +330 -11
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +42 -21
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +73 -93
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +100 -256
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +45 -4
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +77 -88
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -11
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +31 -138
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +56 -76
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +176 -130
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +59 -23
- 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 +61 -8
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
- 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 +7 -2
- 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/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
- 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 +2 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- 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/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +60 -4
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +50 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +52 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +586 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +3 -3
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
- package/contracts/authorization/AccessAdmin.sol +31 -24
- package/contracts/authorization/Authorization.sol +5 -2
- package/contracts/authorization/IAccessAdmin.sol +3 -2
- package/contracts/authorization/IServiceAuthorization.sol +4 -2
- package/contracts/authorization/ServiceAuthorization.sol +27 -11
- package/contracts/distribution/BasicDistribution.sol +4 -15
- package/contracts/distribution/BasicDistributionAuthorization.sol +5 -1
- package/contracts/distribution/Distribution.sol +23 -11
- package/contracts/distribution/DistributionService.sol +76 -42
- package/contracts/distribution/DistributionServiceManager.sol +8 -11
- package/contracts/distribution/IDistributionComponent.sol +8 -4
- package/contracts/distribution/IDistributionService.sol +18 -2
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +75 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
- package/contracts/examples/fire/FireProduct.sol +411 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
- package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
- package/contracts/instance/IInstance.sol +11 -34
- package/contracts/instance/IInstanceService.sol +5 -5
- package/contracts/instance/Instance.sol +13 -38
- package/contracts/instance/InstanceAdmin.sol +31 -9
- package/contracts/instance/InstanceAuthorizationV3.sol +16 -14
- package/contracts/instance/InstanceReader.sol +115 -25
- package/contracts/instance/InstanceService.sol +71 -49
- package/contracts/instance/InstanceServiceManager.sol +8 -13
- package/contracts/instance/InstanceStore.sol +12 -1
- package/contracts/instance/base/ObjectLifecycle.sol +9 -4
- package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +5 -5
- package/contracts/instance/module/IBundle.sol +1 -1
- package/contracts/instance/module/IComponents.sol +4 -8
- package/contracts/instance/module/IDistribution.sol +0 -1
- package/contracts/instance/module/IPolicy.sol +24 -24
- package/contracts/mock/Dip.sol +1 -1
- package/contracts/oracle/IOracleComponent.sol +2 -1
- package/contracts/oracle/Oracle.sol +17 -7
- package/contracts/oracle/OracleService.sol +11 -8
- package/contracts/oracle/OracleServiceManager.sol +8 -11
- package/contracts/pool/BasicPool.sol +7 -5
- package/contracts/pool/BasicPoolAuthorization.sol +11 -2
- package/contracts/pool/BundleService.sol +221 -56
- package/contracts/pool/BundleServiceManager.sol +8 -11
- package/contracts/pool/IBundleService.sol +42 -5
- package/contracts/pool/IPoolComponent.sol +24 -8
- package/contracts/pool/IPoolService.sol +57 -36
- package/contracts/pool/Pool.sol +72 -30
- package/contracts/pool/PoolService.sol +240 -129
- package/contracts/pool/PoolServiceManager.sol +6 -9
- package/contracts/product/ApplicationService.sol +62 -65
- package/contracts/product/ApplicationServiceManager.sol +6 -6
- package/contracts/product/BasicProduct.sol +3 -32
- package/contracts/product/BasicProductAuthorization.sol +3 -0
- package/contracts/product/ClaimService.sol +254 -115
- package/contracts/product/ClaimServiceManager.sol +6 -6
- package/contracts/product/IApplicationService.sol +1 -0
- package/contracts/product/IClaimService.sol +31 -7
- package/contracts/product/IPolicyService.sol +34 -32
- package/contracts/product/IPricingService.sol +7 -7
- package/contracts/product/IProductComponent.sol +18 -4
- package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
- package/contracts/product/PolicyService.sol +404 -193
- package/contracts/product/PolicyServiceManager.sol +6 -9
- package/contracts/product/PricingService.sol +46 -46
- package/contracts/product/PricingServiceManager.sol +5 -8
- package/contracts/product/Product.sol +90 -50
- package/contracts/product/{ProductService.sol → RiskService.sol} +13 -41
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +65 -32
- package/contracts/registry/IRegistry.sol +65 -19
- package/contracts/registry/IRegistryService.sol +0 -9
- package/contracts/registry/Registry.sol +340 -211
- package/contracts/registry/RegistryAdmin.sol +155 -72
- package/contracts/registry/RegistryService.sol +59 -66
- package/contracts/registry/RegistryServiceManager.sol +4 -4
- package/contracts/registry/ReleaseLifecycle.sol +6 -3
- package/contracts/registry/ReleaseRegistry.sol +496 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +13 -15
- package/contracts/registry/TokenRegistry.sol +2 -2
- package/contracts/shared/Component.sol +38 -43
- package/contracts/shared/ComponentService.sol +88 -28
- package/contracts/shared/ComponentServiceManager.sol +10 -7
- package/contracts/shared/ComponentVerifyingService.sol +2 -3
- package/contracts/shared/ContractLib.sol +38 -0
- package/contracts/shared/IComponent.sol +7 -4
- package/contracts/shared/IComponentService.sol +15 -9
- package/contracts/shared/IInstanceLinkedComponent.sol +9 -10
- package/contracts/shared/ILifecycle.sol +3 -1
- package/contracts/shared/IPolicyHolder.sol +12 -22
- package/contracts/shared/IService.sol +1 -1
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +3 -3
- package/contracts/shared/InstanceLinkedComponent.sol +26 -6
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +13 -2
- package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
- package/contracts/shared/NftOwnable.sol +7 -7
- package/contracts/shared/PolicyHolder.sol +17 -57
- package/contracts/shared/Registerable.sol +4 -4
- package/contracts/shared/RegistryLinked.sol +3 -2
- package/contracts/shared/Service.sol +19 -15
- package/contracts/shared/TokenHandler.sol +100 -19
- package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
- package/contracts/staking/IStaking.sol +3 -3
- package/contracts/staking/IStakingService.sol +12 -5
- package/contracts/staking/StakeManagerLib.sol +18 -25
- package/contracts/staking/Staking.sol +27 -42
- package/contracts/staking/StakingManager.sol +10 -12
- package/contracts/staking/StakingReader.sol +23 -20
- package/contracts/staking/StakingService.sol +10 -14
- package/contracts/staking/StakingServiceManager.sol +4 -4
- package/contracts/staking/StakingStore.sol +12 -22
- package/contracts/staking/TargetManagerLib.sol +7 -3
- package/contracts/type/Amount.sol +27 -5
- package/contracts/type/Blocknumber.sol +7 -1
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/NftId.sol +1 -0
- package/contracts/type/ObjectType.sol +19 -18
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/Referral.sol +1 -0
- package/contracts/type/RiskId.sol +15 -1
- package/contracts/type/Seconds.sol +21 -1
- package/contracts/type/StateId.sol +15 -1
- package/contracts/type/Timestamp.sol +11 -1
- package/contracts/type/UFixed.sol +33 -10
- package/contracts/type/Version.sol +3 -1
- package/contracts/{shared → upgradeability}/ProxyManager.sol +70 -38
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
- package/package.json +2 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -703
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1159
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/contracts/product/ProductServiceManager.sol +0 -42
- package/contracts/registry/ReleaseManager.sol +0 -487
- package/contracts/shared/InitializableCustom.sol +0 -177
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
| @@ -9,19 +9,116 @@ | |
| 9 9 | 
             
                      "internalType": "contract RegistryAdmin",
         | 
| 10 10 | 
             
                      "name": "admin",
         | 
| 11 11 | 
             
                      "type": "address"
         | 
| 12 | 
            +
                    },
         | 
| 13 | 
            +
                    {
         | 
| 14 | 
            +
                      "internalType": "address",
         | 
| 15 | 
            +
                      "name": "globalRegistry",
         | 
| 16 | 
            +
                      "type": "address"
         | 
| 12 17 | 
             
                    }
         | 
| 13 18 | 
             
                  ],
         | 
| 14 19 | 
             
                  "stateMutability": "nonpayable",
         | 
| 15 20 | 
             
                  "type": "constructor"
         | 
| 16 21 | 
             
                },
         | 
| 17 22 | 
             
                {
         | 
| 18 | 
            -
                  "inputs": [ | 
| 19 | 
            -
             | 
| 23 | 
            +
                  "inputs": [
         | 
| 24 | 
            +
                    {
         | 
| 25 | 
            +
                      "internalType": "address",
         | 
| 26 | 
            +
                      "name": "authority",
         | 
| 27 | 
            +
                      "type": "address"
         | 
| 28 | 
            +
                    }
         | 
| 29 | 
            +
                  ],
         | 
| 30 | 
            +
                  "name": "AccessManagedInvalidAuthority",
         | 
| 31 | 
            +
                  "type": "error"
         | 
| 32 | 
            +
                },
         | 
| 33 | 
            +
                {
         | 
| 34 | 
            +
                  "inputs": [
         | 
| 35 | 
            +
                    {
         | 
| 36 | 
            +
                      "internalType": "address",
         | 
| 37 | 
            +
                      "name": "caller",
         | 
| 38 | 
            +
                      "type": "address"
         | 
| 39 | 
            +
                    },
         | 
| 40 | 
            +
                    {
         | 
| 41 | 
            +
                      "internalType": "uint32",
         | 
| 42 | 
            +
                      "name": "delay",
         | 
| 43 | 
            +
                      "type": "uint32"
         | 
| 44 | 
            +
                    }
         | 
| 45 | 
            +
                  ],
         | 
| 46 | 
            +
                  "name": "AccessManagedRequiredDelay",
         | 
| 47 | 
            +
                  "type": "error"
         | 
| 48 | 
            +
                },
         | 
| 49 | 
            +
                {
         | 
| 50 | 
            +
                  "inputs": [
         | 
| 51 | 
            +
                    {
         | 
| 52 | 
            +
                      "internalType": "address",
         | 
| 53 | 
            +
                      "name": "caller",
         | 
| 54 | 
            +
                      "type": "address"
         | 
| 55 | 
            +
                    }
         | 
| 56 | 
            +
                  ],
         | 
| 57 | 
            +
                  "name": "AccessManagedUnauthorized",
         | 
| 20 58 | 
             
                  "type": "error"
         | 
| 21 59 | 
             
                },
         | 
| 22 60 | 
             
                {
         | 
| 23 61 | 
             
                  "inputs": [],
         | 
| 24 | 
            -
                  "name": " | 
| 62 | 
            +
                  "name": "ErrorRegistryCallerNotDeployer",
         | 
| 63 | 
            +
                  "type": "error"
         | 
| 64 | 
            +
                },
         | 
| 65 | 
            +
                {
         | 
| 66 | 
            +
                  "inputs": [
         | 
| 67 | 
            +
                    {
         | 
| 68 | 
            +
                      "internalType": "NftId",
         | 
| 69 | 
            +
                      "name": "nftId",
         | 
| 70 | 
            +
                      "type": "uint96"
         | 
| 71 | 
            +
                    },
         | 
| 72 | 
            +
                    {
         | 
| 73 | 
            +
                      "internalType": "uint256",
         | 
| 74 | 
            +
                      "name": "chainId",
         | 
| 75 | 
            +
                      "type": "uint256"
         | 
| 76 | 
            +
                    }
         | 
| 77 | 
            +
                  ],
         | 
| 78 | 
            +
                  "name": "ErrorRegistryChainRegistryAddressZero",
         | 
| 79 | 
            +
                  "type": "error"
         | 
| 80 | 
            +
                },
         | 
| 81 | 
            +
                {
         | 
| 82 | 
            +
                  "inputs": [
         | 
| 83 | 
            +
                    {
         | 
| 84 | 
            +
                      "internalType": "NftId",
         | 
| 85 | 
            +
                      "name": "nftId",
         | 
| 86 | 
            +
                      "type": "uint96"
         | 
| 87 | 
            +
                    },
         | 
| 88 | 
            +
                    {
         | 
| 89 | 
            +
                      "internalType": "uint256",
         | 
| 90 | 
            +
                      "name": "chainId",
         | 
| 91 | 
            +
                      "type": "uint256"
         | 
| 92 | 
            +
                    }
         | 
| 93 | 
            +
                  ],
         | 
| 94 | 
            +
                  "name": "ErrorRegistryChainRegistryAlreadyRegistered",
         | 
| 95 | 
            +
                  "type": "error"
         | 
| 96 | 
            +
                },
         | 
| 97 | 
            +
                {
         | 
| 98 | 
            +
                  "inputs": [
         | 
| 99 | 
            +
                    {
         | 
| 100 | 
            +
                      "internalType": "NftId",
         | 
| 101 | 
            +
                      "name": "nftId",
         | 
| 102 | 
            +
                      "type": "uint96"
         | 
| 103 | 
            +
                    }
         | 
| 104 | 
            +
                  ],
         | 
| 105 | 
            +
                  "name": "ErrorRegistryChainRegistryChainIdZero",
         | 
| 106 | 
            +
                  "type": "error"
         | 
| 107 | 
            +
                },
         | 
| 108 | 
            +
                {
         | 
| 109 | 
            +
                  "inputs": [
         | 
| 110 | 
            +
                    {
         | 
| 111 | 
            +
                      "internalType": "NftId",
         | 
| 112 | 
            +
                      "name": "nftId",
         | 
| 113 | 
            +
                      "type": "uint96"
         | 
| 114 | 
            +
                    },
         | 
| 115 | 
            +
                    {
         | 
| 116 | 
            +
                      "internalType": "uint256",
         | 
| 117 | 
            +
                      "name": "chainId",
         | 
| 118 | 
            +
                      "type": "uint256"
         | 
| 119 | 
            +
                    }
         | 
| 120 | 
            +
                  ],
         | 
| 121 | 
            +
                  "name": "ErrorRegistryChainRegistryNftIdInvalid",
         | 
| 25 122 | 
             
                  "type": "error"
         | 
| 26 123 | 
             
                },
         | 
| 27 124 | 
             
                {
         | 
| @@ -40,6 +137,54 @@ | |
| 40 137 | 
             
                  "name": "ErrorRegistryCoreTypeRegistration",
         | 
| 41 138 | 
             
                  "type": "error"
         | 
| 42 139 | 
             
                },
         | 
| 140 | 
            +
                {
         | 
| 141 | 
            +
                  "inputs": [
         | 
| 142 | 
            +
                    {
         | 
| 143 | 
            +
                      "internalType": "address",
         | 
| 144 | 
            +
                      "name": "objectAddress",
         | 
| 145 | 
            +
                      "type": "address"
         | 
| 146 | 
            +
                    },
         | 
| 147 | 
            +
                    {
         | 
| 148 | 
            +
                      "internalType": "ObjectType",
         | 
| 149 | 
            +
                      "name": "objectType",
         | 
| 150 | 
            +
                      "type": "uint8"
         | 
| 151 | 
            +
                    }
         | 
| 152 | 
            +
                  ],
         | 
| 153 | 
            +
                  "name": "ErrorRegistryGlobalRegistryAsParent",
         | 
| 154 | 
            +
                  "type": "error"
         | 
| 155 | 
            +
                },
         | 
| 156 | 
            +
                {
         | 
| 157 | 
            +
                  "inputs": [
         | 
| 158 | 
            +
                    {
         | 
| 159 | 
            +
                      "internalType": "uint256",
         | 
| 160 | 
            +
                      "name": "chainId",
         | 
| 161 | 
            +
                      "type": "uint256"
         | 
| 162 | 
            +
                    }
         | 
| 163 | 
            +
                  ],
         | 
| 164 | 
            +
                  "name": "ErrorRegistryNotOnMainnet",
         | 
| 165 | 
            +
                  "type": "error"
         | 
| 166 | 
            +
                },
         | 
| 167 | 
            +
                {
         | 
| 168 | 
            +
                  "inputs": [
         | 
| 169 | 
            +
                    {
         | 
| 170 | 
            +
                      "internalType": "address",
         | 
| 171 | 
            +
                      "name": "service",
         | 
| 172 | 
            +
                      "type": "address"
         | 
| 173 | 
            +
                    },
         | 
| 174 | 
            +
                    {
         | 
| 175 | 
            +
                      "internalType": "ObjectType",
         | 
| 176 | 
            +
                      "name": "objectType",
         | 
| 177 | 
            +
                      "type": "uint8"
         | 
| 178 | 
            +
                    }
         | 
| 179 | 
            +
                  ],
         | 
| 180 | 
            +
                  "name": "ErrorRegistryNotService",
         | 
| 181 | 
            +
                  "type": "error"
         | 
| 182 | 
            +
                },
         | 
| 183 | 
            +
                {
         | 
| 184 | 
            +
                  "inputs": [],
         | 
| 185 | 
            +
                  "name": "ErrorRegistryServiceAddressZero",
         | 
| 186 | 
            +
                  "type": "error"
         | 
| 187 | 
            +
                },
         | 
| 43 188 | 
             
                {
         | 
| 44 189 | 
             
                  "inputs": [
         | 
| 45 190 | 
             
                    {
         | 
| @@ -58,7 +203,23 @@ | |
| 58 203 | 
             
                      "type": "uint8"
         | 
| 59 204 | 
             
                    }
         | 
| 60 205 | 
             
                  ],
         | 
| 61 | 
            -
                  "name": " | 
| 206 | 
            +
                  "name": "ErrorRegistryServiceDomainAlreadyRegistered",
         | 
| 207 | 
            +
                  "type": "error"
         | 
| 208 | 
            +
                },
         | 
| 209 | 
            +
                {
         | 
| 210 | 
            +
                  "inputs": [
         | 
| 211 | 
            +
                    {
         | 
| 212 | 
            +
                      "internalType": "address",
         | 
| 213 | 
            +
                      "name": "service",
         | 
| 214 | 
            +
                      "type": "address"
         | 
| 215 | 
            +
                    },
         | 
| 216 | 
            +
                    {
         | 
| 217 | 
            +
                      "internalType": "VersionPart",
         | 
| 218 | 
            +
                      "name": "version",
         | 
| 219 | 
            +
                      "type": "uint8"
         | 
| 220 | 
            +
                    }
         | 
| 221 | 
            +
                  ],
         | 
| 222 | 
            +
                  "name": "ErrorRegistryServiceDomainZero",
         | 
| 62 223 | 
             
                  "type": "error"
         | 
| 63 224 | 
             
                },
         | 
| 64 225 | 
             
                {
         | 
| @@ -67,18 +228,39 @@ | |
| 67 228 | 
             
                      "internalType": "address",
         | 
| 68 229 | 
             
                      "name": "service",
         | 
| 69 230 | 
             
                      "type": "address"
         | 
| 231 | 
            +
                    },
         | 
| 232 | 
            +
                    {
         | 
| 233 | 
            +
                      "internalType": "VersionPart",
         | 
| 234 | 
            +
                      "name": "version",
         | 
| 235 | 
            +
                      "type": "uint8"
         | 
| 236 | 
            +
                    },
         | 
| 237 | 
            +
                    {
         | 
| 238 | 
            +
                      "internalType": "NftId",
         | 
| 239 | 
            +
                      "name": "parentNftId",
         | 
| 240 | 
            +
                      "type": "uint96"
         | 
| 70 241 | 
             
                    }
         | 
| 71 242 | 
             
                  ],
         | 
| 72 | 
            -
                  "name": " | 
| 243 | 
            +
                  "name": "ErrorRegistryServiceParentNotRegistry",
         | 
| 73 244 | 
             
                  "type": "error"
         | 
| 74 245 | 
             
                },
         | 
| 75 246 | 
             
                {
         | 
| 76 | 
            -
                  "inputs": [ | 
| 77 | 
            -
             | 
| 247 | 
            +
                  "inputs": [
         | 
| 248 | 
            +
                    {
         | 
| 249 | 
            +
                      "internalType": "address",
         | 
| 250 | 
            +
                      "name": "service",
         | 
| 251 | 
            +
                      "type": "address"
         | 
| 252 | 
            +
                    }
         | 
| 253 | 
            +
                  ],
         | 
| 254 | 
            +
                  "name": "ErrorRegistryServiceVersionZero",
         | 
| 78 255 | 
             
                  "type": "error"
         | 
| 79 256 | 
             
                },
         | 
| 80 257 | 
             
                {
         | 
| 81 258 | 
             
                  "inputs": [
         | 
| 259 | 
            +
                    {
         | 
| 260 | 
            +
                      "internalType": "address",
         | 
| 261 | 
            +
                      "name": "objectAddress",
         | 
| 262 | 
            +
                      "type": "address"
         | 
| 263 | 
            +
                    },
         | 
| 82 264 | 
             
                    {
         | 
| 83 265 | 
             
                      "internalType": "ObjectType",
         | 
| 84 266 | 
             
                      "name": "objectType",
         | 
| @@ -100,13 +282,21 @@ | |
| 100 282 | 
             
                },
         | 
| 101 283 | 
             
                {
         | 
| 102 284 | 
             
                  "inputs": [],
         | 
| 103 | 
            -
                  "name": " | 
| 285 | 
            +
                  "name": "NotInitializing",
         | 
| 104 286 | 
             
                  "type": "error"
         | 
| 105 287 | 
             
                },
         | 
| 106 288 | 
             
                {
         | 
| 107 | 
            -
                  " | 
| 108 | 
            -
                  " | 
| 109 | 
            -
             | 
| 289 | 
            +
                  "anonymous": false,
         | 
| 290 | 
            +
                  "inputs": [
         | 
| 291 | 
            +
                    {
         | 
| 292 | 
            +
                      "indexed": false,
         | 
| 293 | 
            +
                      "internalType": "address",
         | 
| 294 | 
            +
                      "name": "authority",
         | 
| 295 | 
            +
                      "type": "address"
         | 
| 296 | 
            +
                    }
         | 
| 297 | 
            +
                  ],
         | 
| 298 | 
            +
                  "name": "AuthorityUpdated",
         | 
| 299 | 
            +
                  "type": "event"
         | 
| 110 300 | 
             
                },
         | 
| 111 301 | 
             
                {
         | 
| 112 302 | 
             
                  "anonymous": false,
         | 
| @@ -121,6 +311,31 @@ | |
| 121 311 | 
             
                  "name": "Initialized",
         | 
| 122 312 | 
             
                  "type": "event"
         | 
| 123 313 | 
             
                },
         | 
| 314 | 
            +
                {
         | 
| 315 | 
            +
                  "anonymous": false,
         | 
| 316 | 
            +
                  "inputs": [
         | 
| 317 | 
            +
                    {
         | 
| 318 | 
            +
                      "indexed": false,
         | 
| 319 | 
            +
                      "internalType": "NftId",
         | 
| 320 | 
            +
                      "name": "nftId",
         | 
| 321 | 
            +
                      "type": "uint96"
         | 
| 322 | 
            +
                    },
         | 
| 323 | 
            +
                    {
         | 
| 324 | 
            +
                      "indexed": false,
         | 
| 325 | 
            +
                      "internalType": "uint256",
         | 
| 326 | 
            +
                      "name": "chainId",
         | 
| 327 | 
            +
                      "type": "uint256"
         | 
| 328 | 
            +
                    },
         | 
| 329 | 
            +
                    {
         | 
| 330 | 
            +
                      "indexed": false,
         | 
| 331 | 
            +
                      "internalType": "address",
         | 
| 332 | 
            +
                      "name": "chainRegistryAddress",
         | 
| 333 | 
            +
                      "type": "address"
         | 
| 334 | 
            +
                    }
         | 
| 335 | 
            +
                  ],
         | 
| 336 | 
            +
                  "name": "LogChainRegistryRegistration",
         | 
| 337 | 
            +
                  "type": "event"
         | 
| 338 | 
            +
                },
         | 
| 124 339 | 
             
                {
         | 
| 125 340 | 
             
                  "anonymous": false,
         | 
| 126 341 | 
             
                  "inputs": [
         | 
| @@ -185,12 +400,12 @@ | |
| 185 400 | 
             
                },
         | 
| 186 401 | 
             
                {
         | 
| 187 402 | 
             
                  "inputs": [],
         | 
| 188 | 
            -
                  "name": " | 
| 403 | 
            +
                  "name": "ADMIN",
         | 
| 189 404 | 
             
                  "outputs": [
         | 
| 190 405 | 
             
                    {
         | 
| 191 | 
            -
                      "internalType": " | 
| 406 | 
            +
                      "internalType": "contract RegistryAdmin",
         | 
| 192 407 | 
             
                      "name": "",
         | 
| 193 | 
            -
                      "type": " | 
| 408 | 
            +
                      "type": "address"
         | 
| 194 409 | 
             
                    }
         | 
| 195 410 | 
             
                  ],
         | 
| 196 411 | 
             
                  "stateMutability": "view",
         | 
| @@ -198,10 +413,10 @@ | |
| 198 413 | 
             
                },
         | 
| 199 414 | 
             
                {
         | 
| 200 415 | 
             
                  "inputs": [],
         | 
| 201 | 
            -
                  "name": " | 
| 416 | 
            +
                  "name": "CHAIN_NFT",
         | 
| 202 417 | 
             
                  "outputs": [
         | 
| 203 418 | 
             
                    {
         | 
| 204 | 
            -
                      "internalType": " | 
| 419 | 
            +
                      "internalType": "contract ChainNft",
         | 
| 205 420 | 
             
                      "name": "",
         | 
| 206 421 | 
             
                      "type": "address"
         | 
| 207 422 | 
             
                    }
         | 
| @@ -211,12 +426,12 @@ | |
| 211 426 | 
             
                },
         | 
| 212 427 | 
             
                {
         | 
| 213 428 | 
             
                  "inputs": [],
         | 
| 214 | 
            -
                  "name": " | 
| 429 | 
            +
                  "name": "DEPLOYER",
         | 
| 215 430 | 
             
                  "outputs": [
         | 
| 216 431 | 
             
                    {
         | 
| 217 | 
            -
                      "internalType": " | 
| 432 | 
            +
                      "internalType": "address",
         | 
| 218 433 | 
             
                      "name": "",
         | 
| 219 | 
            -
                      "type": " | 
| 434 | 
            +
                      "type": "address"
         | 
| 220 435 | 
             
                    }
         | 
| 221 436 | 
             
                  ],
         | 
| 222 437 | 
             
                  "stateMutability": "view",
         | 
| @@ -224,12 +439,12 @@ | |
| 224 439 | 
             
                },
         | 
| 225 440 | 
             
                {
         | 
| 226 441 | 
             
                  "inputs": [],
         | 
| 227 | 
            -
                  "name": " | 
| 442 | 
            +
                  "name": "EMPTY_URI",
         | 
| 228 443 | 
             
                  "outputs": [
         | 
| 229 444 | 
             
                    {
         | 
| 230 | 
            -
                      "internalType": " | 
| 445 | 
            +
                      "internalType": "string",
         | 
| 231 446 | 
             
                      "name": "",
         | 
| 232 | 
            -
                      "type": " | 
| 447 | 
            +
                      "type": "string"
         | 
| 233 448 | 
             
                    }
         | 
| 234 449 | 
             
                  ],
         | 
| 235 450 | 
             
                  "stateMutability": "view",
         | 
| @@ -237,10 +452,10 @@ | |
| 237 452 | 
             
                },
         | 
| 238 453 | 
             
                {
         | 
| 239 454 | 
             
                  "inputs": [],
         | 
| 240 | 
            -
                  "name": " | 
| 455 | 
            +
                  "name": "GLOBAL_REGISTRY_ADDRESS",
         | 
| 241 456 | 
             
                  "outputs": [
         | 
| 242 457 | 
             
                    {
         | 
| 243 | 
            -
                      "internalType": " | 
| 458 | 
            +
                      "internalType": "address",
         | 
| 244 459 | 
             
                      "name": "",
         | 
| 245 460 | 
             
                      "type": "address"
         | 
| 246 461 | 
             
                    }
         | 
| @@ -250,10 +465,23 @@ | |
| 250 465 | 
             
                },
         | 
| 251 466 | 
             
                {
         | 
| 252 467 | 
             
                  "inputs": [],
         | 
| 253 | 
            -
                  "name": " | 
| 468 | 
            +
                  "name": "GLOBAL_REGISTRY_NFT_ID",
         | 
| 254 469 | 
             
                  "outputs": [
         | 
| 255 470 | 
             
                    {
         | 
| 256 | 
            -
                      "internalType": " | 
| 471 | 
            +
                      "internalType": "NftId",
         | 
| 472 | 
            +
                      "name": "",
         | 
| 473 | 
            +
                      "type": "uint96"
         | 
| 474 | 
            +
                    }
         | 
| 475 | 
            +
                  ],
         | 
| 476 | 
            +
                  "stateMutability": "view",
         | 
| 477 | 
            +
                  "type": "function"
         | 
| 478 | 
            +
                },
         | 
| 479 | 
            +
                {
         | 
| 480 | 
            +
                  "inputs": [],
         | 
| 481 | 
            +
                  "name": "NFT_LOCK_ADDRESS",
         | 
| 482 | 
            +
                  "outputs": [
         | 
| 483 | 
            +
                    {
         | 
| 484 | 
            +
                      "internalType": "address",
         | 
| 257 485 | 
             
                      "name": "",
         | 
| 258 486 | 
             
                      "type": "address"
         | 
| 259 487 | 
             
                    }
         | 
| @@ -263,7 +491,7 @@ | |
| 263 491 | 
             
                },
         | 
| 264 492 | 
             
                {
         | 
| 265 493 | 
             
                  "inputs": [],
         | 
| 266 | 
            -
                  "name": " | 
| 494 | 
            +
                  "name": "PROTOCOL_NFT_ID",
         | 
| 267 495 | 
             
                  "outputs": [
         | 
| 268 496 | 
             
                    {
         | 
| 269 497 | 
             
                      "internalType": "NftId",
         | 
| @@ -276,7 +504,7 @@ | |
| 276 504 | 
             
                },
         | 
| 277 505 | 
             
                {
         | 
| 278 506 | 
             
                  "inputs": [],
         | 
| 279 | 
            -
                  "name": " | 
| 507 | 
            +
                  "name": "REGISTRY_NFT_ID",
         | 
| 280 508 | 
             
                  "outputs": [
         | 
| 281 509 | 
             
                    {
         | 
| 282 510 | 
             
                      "internalType": "NftId",
         | 
| @@ -289,12 +517,12 @@ | |
| 289 517 | 
             
                },
         | 
| 290 518 | 
             
                {
         | 
| 291 519 | 
             
                  "inputs": [],
         | 
| 292 | 
            -
                  "name": " | 
| 520 | 
            +
                  "name": "REGISTRY_TOKEN_SEQUENCE_ID",
         | 
| 293 521 | 
             
                  "outputs": [
         | 
| 294 522 | 
             
                    {
         | 
| 295 | 
            -
                      "internalType": " | 
| 523 | 
            +
                      "internalType": "uint256",
         | 
| 296 524 | 
             
                      "name": "",
         | 
| 297 | 
            -
                      "type": " | 
| 525 | 
            +
                      "type": "uint256"
         | 
| 298 526 | 
             
                    }
         | 
| 299 527 | 
             
                  ],
         | 
| 300 528 | 
             
                  "stateMutability": "view",
         | 
| @@ -302,12 +530,12 @@ | |
| 302 530 | 
             
                },
         | 
| 303 531 | 
             
                {
         | 
| 304 532 | 
             
                  "inputs": [],
         | 
| 305 | 
            -
                  "name": " | 
| 533 | 
            +
                  "name": "STAKING_TOKEN_SEQUENCE_ID",
         | 
| 306 534 | 
             
                  "outputs": [
         | 
| 307 535 | 
             
                    {
         | 
| 308 | 
            -
                      "internalType": " | 
| 536 | 
            +
                      "internalType": "uint256",
         | 
| 309 537 | 
             
                      "name": "",
         | 
| 310 | 
            -
                      "type": " | 
| 538 | 
            +
                      "type": "uint256"
         | 
| 311 539 | 
             
                    }
         | 
| 312 540 | 
             
                  ],
         | 
| 313 541 | 
             
                  "stateMutability": "view",
         | 
| @@ -315,12 +543,12 @@ | |
| 315 543 | 
             
                },
         | 
| 316 544 | 
             
                {
         | 
| 317 545 | 
             
                  "inputs": [],
         | 
| 318 | 
            -
                  "name": " | 
| 546 | 
            +
                  "name": "authority",
         | 
| 319 547 | 
             
                  "outputs": [
         | 
| 320 548 | 
             
                    {
         | 
| 321 | 
            -
                      "internalType": " | 
| 549 | 
            +
                      "internalType": "address",
         | 
| 322 550 | 
             
                      "name": "",
         | 
| 323 | 
            -
                      "type": " | 
| 551 | 
            +
                      "type": "address"
         | 
| 324 552 | 
             
                    }
         | 
| 325 553 | 
             
                  ],
         | 
| 326 554 | 
             
                  "stateMutability": "view",
         | 
| @@ -328,12 +556,12 @@ | |
| 328 556 | 
             
                },
         | 
| 329 557 | 
             
                {
         | 
| 330 558 | 
             
                  "inputs": [],
         | 
| 331 | 
            -
                  "name": " | 
| 559 | 
            +
                  "name": "chainIds",
         | 
| 332 560 | 
             
                  "outputs": [
         | 
| 333 561 | 
             
                    {
         | 
| 334 | 
            -
                      "internalType": " | 
| 562 | 
            +
                      "internalType": "uint256",
         | 
| 335 563 | 
             
                      "name": "",
         | 
| 336 | 
            -
                      "type": " | 
| 564 | 
            +
                      "type": "uint256"
         | 
| 337 565 | 
             
                    }
         | 
| 338 566 | 
             
                  ],
         | 
| 339 567 | 
             
                  "stateMutability": "view",
         | 
| @@ -352,6 +580,25 @@ | |
| 352 580 | 
             
                  "stateMutability": "view",
         | 
| 353 581 | 
             
                  "type": "function"
         | 
| 354 582 | 
             
                },
         | 
| 583 | 
            +
                {
         | 
| 584 | 
            +
                  "inputs": [
         | 
| 585 | 
            +
                    {
         | 
| 586 | 
            +
                      "internalType": "uint256",
         | 
| 587 | 
            +
                      "name": "idx",
         | 
| 588 | 
            +
                      "type": "uint256"
         | 
| 589 | 
            +
                    }
         | 
| 590 | 
            +
                  ],
         | 
| 591 | 
            +
                  "name": "getChainId",
         | 
| 592 | 
            +
                  "outputs": [
         | 
| 593 | 
            +
                    {
         | 
| 594 | 
            +
                      "internalType": "uint256",
         | 
| 595 | 
            +
                      "name": "",
         | 
| 596 | 
            +
                      "type": "uint256"
         | 
| 597 | 
            +
                    }
         | 
| 598 | 
            +
                  ],
         | 
| 599 | 
            +
                  "stateMutability": "view",
         | 
| 600 | 
            +
                  "type": "function"
         | 
| 601 | 
            +
                },
         | 
| 355 602 | 
             
                {
         | 
| 356 603 | 
             
                  "inputs": [],
         | 
| 357 604 | 
             
                  "name": "getChainNftAddress",
         | 
| @@ -425,7 +672,7 @@ | |
| 425 672 | 
             
                      "type": "address"
         | 
| 426 673 | 
             
                    }
         | 
| 427 674 | 
             
                  ],
         | 
| 428 | 
            -
                  "name": " | 
| 675 | 
            +
                  "name": "getNftIdForAddress",
         | 
| 429 676 | 
             
                  "outputs": [
         | 
| 430 677 | 
             
                    {
         | 
| 431 678 | 
             
                      "internalType": "NftId",
         | 
| @@ -436,6 +683,25 @@ | |
| 436 683 | 
             
                  "stateMutability": "view",
         | 
| 437 684 | 
             
                  "type": "function"
         | 
| 438 685 | 
             
                },
         | 
| 686 | 
            +
                {
         | 
| 687 | 
            +
                  "inputs": [
         | 
| 688 | 
            +
                    {
         | 
| 689 | 
            +
                      "internalType": "NftId",
         | 
| 690 | 
            +
                      "name": "nftId",
         | 
| 691 | 
            +
                      "type": "uint96"
         | 
| 692 | 
            +
                    }
         | 
| 693 | 
            +
                  ],
         | 
| 694 | 
            +
                  "name": "getObjectAddress",
         | 
| 695 | 
            +
                  "outputs": [
         | 
| 696 | 
            +
                    {
         | 
| 697 | 
            +
                      "internalType": "address",
         | 
| 698 | 
            +
                      "name": "",
         | 
| 699 | 
            +
                      "type": "address"
         | 
| 700 | 
            +
                    }
         | 
| 701 | 
            +
                  ],
         | 
| 702 | 
            +
                  "stateMutability": "view",
         | 
| 703 | 
            +
                  "type": "function"
         | 
| 704 | 
            +
                },
         | 
| 439 705 | 
             
                {
         | 
| 440 706 | 
             
                  "inputs": [],
         | 
| 441 707 | 
             
                  "name": "getObjectCount",
         | 
| @@ -600,6 +866,25 @@ | |
| 600 866 | 
             
                  "stateMutability": "view",
         | 
| 601 867 | 
             
                  "type": "function"
         | 
| 602 868 | 
             
                },
         | 
| 869 | 
            +
                {
         | 
| 870 | 
            +
                  "inputs": [
         | 
| 871 | 
            +
                    {
         | 
| 872 | 
            +
                      "internalType": "uint256",
         | 
| 873 | 
            +
                      "name": "chainId",
         | 
| 874 | 
            +
                      "type": "uint256"
         | 
| 875 | 
            +
                    }
         | 
| 876 | 
            +
                  ],
         | 
| 877 | 
            +
                  "name": "getRegistryNftId",
         | 
| 878 | 
            +
                  "outputs": [
         | 
| 879 | 
            +
                    {
         | 
| 880 | 
            +
                      "internalType": "NftId",
         | 
| 881 | 
            +
                      "name": "nftId",
         | 
| 882 | 
            +
                      "type": "uint96"
         | 
| 883 | 
            +
                    }
         | 
| 884 | 
            +
                  ],
         | 
| 885 | 
            +
                  "stateMutability": "view",
         | 
| 886 | 
            +
                  "type": "function"
         | 
| 887 | 
            +
                },
         | 
| 603 888 | 
             
                {
         | 
| 604 889 | 
             
                  "inputs": [
         | 
| 605 890 | 
             
                    {
         | 
| @@ -612,6 +897,11 @@ | |
| 612 897 | 
             
                  "outputs": [
         | 
| 613 898 | 
             
                    {
         | 
| 614 899 | 
             
                      "components": [
         | 
| 900 | 
            +
                        {
         | 
| 901 | 
            +
                          "internalType": "StateId",
         | 
| 902 | 
            +
                          "name": "state",
         | 
| 903 | 
            +
                          "type": "uint8"
         | 
| 904 | 
            +
                        },
         | 
| 615 905 | 
             
                        {
         | 
| 616 906 | 
             
                          "internalType": "VersionPart",
         | 
| 617 907 | 
             
                          "name": "version",
         | 
| @@ -623,19 +913,9 @@ | |
| 623 913 | 
             
                          "type": "bytes32"
         | 
| 624 914 | 
             
                        },
         | 
| 625 915 | 
             
                        {
         | 
| 626 | 
            -
                          "internalType": " | 
| 627 | 
            -
                          "name": " | 
| 628 | 
            -
                          "type": "address | 
| 629 | 
            -
                        },
         | 
| 630 | 
            -
                        {
         | 
| 631 | 
            -
                          "internalType": "string[]",
         | 
| 632 | 
            -
                          "name": "names",
         | 
| 633 | 
            -
                          "type": "string[]"
         | 
| 634 | 
            -
                        },
         | 
| 635 | 
            -
                        {
         | 
| 636 | 
            -
                          "internalType": "ObjectType[]",
         | 
| 637 | 
            -
                          "name": "domains",
         | 
| 638 | 
            -
                          "type": "uint8[]"
         | 
| 916 | 
            +
                          "internalType": "contract IServiceAuthorization",
         | 
| 917 | 
            +
                          "name": "auth",
         | 
| 918 | 
            +
                          "type": "address"
         | 
| 639 919 | 
             
                        },
         | 
| 640 920 | 
             
                        {
         | 
| 641 921 | 
             
                          "internalType": "Timestamp",
         | 
| @@ -658,7 +938,7 @@ | |
| 658 938 | 
             
                },
         | 
| 659 939 | 
             
                {
         | 
| 660 940 | 
             
                  "inputs": [],
         | 
| 661 | 
            -
                  "name": " | 
| 941 | 
            +
                  "name": "getReleaseRegistryAddress",
         | 
| 662 942 | 
             
                  "outputs": [
         | 
| 663 943 | 
             
                    {
         | 
| 664 944 | 
             
                      "internalType": "address",
         | 
| @@ -723,7 +1003,7 @@ | |
| 723 1003 | 
             
                  "inputs": [
         | 
| 724 1004 | 
             
                    {
         | 
| 725 1005 | 
             
                      "internalType": "address",
         | 
| 726 | 
            -
                      "name": " | 
| 1006 | 
            +
                      "name": "releaseRegistry",
         | 
| 727 1007 | 
             
                      "type": "address"
         | 
| 728 1008 | 
             
                    },
         | 
| 729 1009 | 
             
                    {
         | 
| @@ -761,6 +1041,19 @@ | |
| 761 1041 | 
             
                  "stateMutability": "view",
         | 
| 762 1042 | 
             
                  "type": "function"
         | 
| 763 1043 | 
             
                },
         | 
| 1044 | 
            +
                {
         | 
| 1045 | 
            +
                  "inputs": [],
         | 
| 1046 | 
            +
                  "name": "isConsumingScheduledOp",
         | 
| 1047 | 
            +
                  "outputs": [
         | 
| 1048 | 
            +
                    {
         | 
| 1049 | 
            +
                      "internalType": "bytes4",
         | 
| 1050 | 
            +
                      "name": "",
         | 
| 1051 | 
            +
                      "type": "bytes4"
         | 
| 1052 | 
            +
                    }
         | 
| 1053 | 
            +
                  ],
         | 
| 1054 | 
            +
                  "stateMutability": "view",
         | 
| 1055 | 
            +
                  "type": "function"
         | 
| 1056 | 
            +
                },
         | 
| 764 1057 | 
             
                {
         | 
| 765 1058 | 
             
                  "inputs": [
         | 
| 766 1059 | 
             
                    {
         | 
| @@ -931,6 +1224,29 @@ | |
| 931 1224 | 
             
                  "stateMutability": "nonpayable",
         | 
| 932 1225 | 
             
                  "type": "function"
         | 
| 933 1226 | 
             
                },
         | 
| 1227 | 
            +
                {
         | 
| 1228 | 
            +
                  "inputs": [
         | 
| 1229 | 
            +
                    {
         | 
| 1230 | 
            +
                      "internalType": "NftId",
         | 
| 1231 | 
            +
                      "name": "nftId",
         | 
| 1232 | 
            +
                      "type": "uint96"
         | 
| 1233 | 
            +
                    },
         | 
| 1234 | 
            +
                    {
         | 
| 1235 | 
            +
                      "internalType": "uint256",
         | 
| 1236 | 
            +
                      "name": "chainId",
         | 
| 1237 | 
            +
                      "type": "uint256"
         | 
| 1238 | 
            +
                    },
         | 
| 1239 | 
            +
                    {
         | 
| 1240 | 
            +
                      "internalType": "address",
         | 
| 1241 | 
            +
                      "name": "registryAddress",
         | 
| 1242 | 
            +
                      "type": "address"
         | 
| 1243 | 
            +
                    }
         | 
| 1244 | 
            +
                  ],
         | 
| 1245 | 
            +
                  "name": "registerRegistry",
         | 
| 1246 | 
            +
                  "outputs": [],
         | 
| 1247 | 
            +
                  "stateMutability": "nonpayable",
         | 
| 1248 | 
            +
                  "type": "function"
         | 
| 1249 | 
            +
                },
         | 
| 934 1250 | 
             
                {
         | 
| 935 1251 | 
             
                  "inputs": [
         | 
| 936 1252 | 
             
                    {
         | 
| @@ -1053,6 +1369,19 @@ | |
| 1053 1369 | 
             
                  "stateMutability": "nonpayable",
         | 
| 1054 1370 | 
             
                  "type": "function"
         | 
| 1055 1371 | 
             
                },
         | 
| 1372 | 
            +
                {
         | 
| 1373 | 
            +
                  "inputs": [
         | 
| 1374 | 
            +
                    {
         | 
| 1375 | 
            +
                      "internalType": "address",
         | 
| 1376 | 
            +
                      "name": "newAuthority",
         | 
| 1377 | 
            +
                      "type": "address"
         | 
| 1378 | 
            +
                    }
         | 
| 1379 | 
            +
                  ],
         | 
| 1380 | 
            +
                  "name": "setAuthority",
         | 
| 1381 | 
            +
                  "outputs": [],
         | 
| 1382 | 
            +
                  "stateMutability": "nonpayable",
         | 
| 1383 | 
            +
                  "type": "function"
         | 
| 1384 | 
            +
                },
         | 
| 1056 1385 | 
             
                {
         | 
| 1057 1386 | 
             
                  "inputs": [
         | 
| 1058 1387 | 
             
                    {
         | 
| @@ -1073,58 +1402,82 @@ | |
| 1073 1402 | 
             
                  "type": "function"
         | 
| 1074 1403 | 
             
                }
         | 
| 1075 1404 | 
             
              ],
         | 
| 1076 | 
            -
              "bytecode": "0x6101006040525f80546001600160a01b0319166001179055348015610022575f80fd5b50604051615c3e380380615c3e83398101604081905261004191611263565b5f7f46cd1d813423aaf613c34c7f348d15b2b5e71215e9145b09467e257ea2805a008054600160481b600160e81b03191633690100000000000000000002179055506001600160a01b038116608052604051309061009e90611256565b6001600160a01b039091168152602001604051809103905ff0801580156100c7573d5f803e3d5ffd5b506001600160a01b031660a0526100dc61010a565b6001600160601b031660c0526100f06103e6565b6001600160601b031660e0526101046107c5565b5061141f565b5f8060a0516001600160a01b031663598e28926040518163ffffffff1660e01b8152600401602060405180830381865afa15801561014a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061016e9190611290565b60405163efac97cf60e01b81526004810182905290915073__$94a2c899be079b00d952d0d84fffaa5c34$__9063efac97cf90602401602060405180830381865af41580156101bf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e391906112a7565b91506040518060e00160405280836001600160601b0316815260200173__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610246573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061026a91906112a7565b6001600160601b03168152602001600160ff90811682525f6020808401829052604080850183905282546001600160a01b03908116606080880191909152825180850184528581526080978801526001600160601b03808b16865260018086529584902089518154968b0151958b0151938b01511515600160c81b0260ff60c81b1994909916600160c01b029390931661ffff60c01b199583166c01000000000000000000000000026001600160c01b031990971693909216929092179490941792909216929092179390931783559284015190820180549184166001600160a01b031992831617905560a08401516002830180549190941691161790915560c0820151600382019061037d9082611365565b505060a0515f546040516340c10f1960e01b81526001600160a01b03918216600482015260248101859052911691506340c10f19906044015f604051808303815f87803b1580156103cc575f80fd5b505af11580156103de573d5f803e3d5ffd5b505050505090565b5f8060a0516001600160a01b0316630559ea4760026040518263ffffffff1660e01b815260040161041991815260200190565b602060405180830381865afa158015610434573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104589190611290565b60405163efac97cf60e01b81526004810182905290915073__$94a2c899be079b00d952d0d84fffaa5c34$__9063efac97cf90602401602060405180830381865af41580156104a9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104cd91906112a7565b91505f60a0516001600160a01b0316632e85b1f36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561050e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105329190611290565b821461062057610540610ef2565b73__$94a2c899be079b00d952d0d84fffaa5c34$__63efac97cf60a0516001600160a01b0316632e85b1f36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610598573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105bc9190611290565b6040518263ffffffff1660e01b81526004016105da91815260200190565b602060405180830381865af41580156105f5573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061061991906112a7565b9050610625565b5060c0515b6040805160e0810182526001600160601b03858116808352848216602080850191825260028587018181525f606088018181523060808a0190815282546001600160a01b0390811660a08c019081528c518089018e5285815260c08d019081529985526001978890529b9093208a5181549851955193511515600160c81b0260ff60c81b1960ff909516600160c01b029490941661ffff60c01b19968c166c01000000000000000000000000026001600160c01b0319909a1691909b16179790971793909316979097179690961784555191830180549286166001600160a01b031993841617905595519582018054969094169516949094179091555190919060038201906107349082611365565b5050305f9081526002602052604080822080546001600160601b0319166001600160601b03881617905560a051915490516340c10f1960e01b81526001600160a01b03918216600482015260248101869052911691506340c10f19906044015f604051808303815f87803b1580156107aa575f80fd5b505af11580156107bc573d5f803e3d5ffd5b50505050505090565b600460208181527f91da3fd0782e51c6b3986e9e672fd566868e71f3dbc2d6c2cd6fbb3e361af2a78054600160ff1991821681179092557f4ad5a04d53b5856f318545bb721f67d3f6d0a5a999f25eec7e20eaeb4c47b93380548216831790557fc59312466997bb42aaaf719ece141047820e6b34531e1670dc1852a453648f0f80548216831790557f5c6b02db8b672415ffad906d7ccee10bd53dbad7d0b29e2bc0e50c93d5f3109380548216831790557f140aabff1a85df08546c9a350c79ae18341bde4a2cef5d2fd460885c0128ce2680548216831790557f66b61daf77b854ca6ba000a8d4b340eafcdb71b6583753b4af89fceb54988fff80548216831790557feb3e677499e881fe1bdbc344a49c412138038a9f40883b6dc68f713aab48352380548216831790557f69bc8c08a6b955aec2072ca430bac7123bc3539264a736d1a23621b0f0c62f3180548216831790557fa5022b2bfd144bf9103d80168549b5df7c72ab60bd51bf71a02a08d844853b4a80548216831790557f1bb30a1647f6f6723cb3a88838ce0319afabe51263fc466f2f669a7a24ad88c680548216831790557f9041ee6632bd2142b9cc58f348e0761559f8d964fe48ac6d87dc2b689213e3bb80548216831790557f2e174c10e159ea99b867ce3205125c24a42d128804e4070ed6fcc8cc98166aa080548216831790555f8381527f96648185182926add89ee4d5c354d3f3e8383a8966d4d875bd8575e13aa27a968054909216909217905560a05160408051630559ea4760e01b81526002958101959095525191936001600160a01b0390911692630559ea47926024808401938290030181865afa158015610a3a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a5e9190611290565b905060a0516001600160a01b0316632e85b1f36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a9e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ac29190611290565b8103610b1d5760025f527f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a6020527fc3872fadc793fb0bb284ae601a7003728d4f91ef813a9c52151175538e74d8e9805460ff191660011790555b7f1d7f3ebad127f83afc6959705ce470ae52e5f79897ae3b7e721e0b1308897459805460ff1916600190811790915560065f90815260056020527f069400f22b28c6c362558d92f66163cec5671cba50b61abd2eecfcd0eaeac51890610b81600290565b60ff16815260208101919091526040015f908120805460ff191692151592909217909155600190600590610bb3600a90565b60ff1660ff1681526020019081526020015f205f610bd561123d60201b60201c565b60ff16815260208101919091526040015f908120805460ff191692151592909217909155600190600590610c07600c90565b60ff1660ff1681526020019081526020015f205f610c2961124260201b60201c565b60ff16815260208101919091526040015f908120805460ff191692151592909217909155600190600590610c5b600e90565b60ff1660ff1681526020019081526020015f205f610c7d61124260201b60201c565b60ff16815260208101919091526040015f908120805460ff191692151592909217909155600190600590610caf600d90565b60ff1660ff1681526020019081526020015f205f610cd161124260201b60201c565b60ff16815260208101919091526040015f908120805460ff191692151592909217909155600190600590610d03600f90565b60ff1660ff1681526020019081526020015f205f610d2561124260201b60201c565b60ff16815260208101919091526040015f908120805460ff191692151592909217909155600190600690610d57601c90565b60ff1660ff1681526020019081526020015f205f610d7961125160201b60201c565b60ff16815260208101919091526040015f908120805460ff191692151592909217909155600190600690610dab601590565b60ff1660ff1681526020019081526020015f205f610dcd61124760201b60201c565b60ff16815260208101919091526040015f908120805460ff191692151592909217909155600190600690610dff601e90565b60ff1660ff1681526020019081526020015f205f610e2161124c60201b60201c565b60ff16815260208101919091526040015f908120805460ff191692151592909217909155600190600690610e53602090565b60ff1660ff1681526020019081526020015f205f610e75610eed60201b60201c565b60ff16815260208101919091526040015f908120805460ff191692151592909217909155600190600690610ea7602090565b60ff1660ff1681526020019081526020015f205f610ec961124260201b60201c565b60ff16815260208101919091526040015f20805460ff191691151591909117905550565b600190565b5f60a0516001600160a01b0316632e85b1f36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f31573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f559190611290565b60405163efac97cf60e01b8152600481018290529091505f9073__$94a2c899be079b00d952d0d84fffaa5c34$__9063efac97cf90602401602060405180830381865af4158015610fa8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fcc91906112a7565b90506040518060e00160405280826001600160601b0316815260200173__$94a2c899be079b00d952d0d84fffaa5c34$__63efac97cf60a0516001600160a01b031663598e28926040518163ffffffff1660e01b8152600401602060405180830381865afa158015611040573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110649190611290565b6040518263ffffffff1660e01b815260040161108291815260200190565b602060405180830381865af415801561109d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110c191906112a7565b6001600160601b03168152602001600260ff90811682525f6020808401829052604080850183905282546001600160a01b03908116606080880191909152825180850184528581526080978801526001600160601b03808a16865260018086529584902089518154968b0151958b0151938b01511515600160c81b0260ff60c81b1994909916600160c01b029390931661ffff60c01b199583166c01000000000000000000000000026001600160c01b031990971693909216929092179490941792909216929092179390931783559284015190820180549184166001600160a01b031992831617905560a08401516002830180549190941691161790915560c082015160038201906111d49082611365565b505060a0515f546040516340c10f1960e01b81526001600160a01b03918216600482015260248101869052911691506340c10f19906044015f604051808303815f87803b158015611223575f80fd5b505af1158015611235573d5f803e3d5ffd5b505050505050565b600290565b600a90565b600c90565b600f90565b600e90565b611db080613e8e83390190565b5f60208284031215611273575f80fd5b81516001600160a01b0381168114611289575f80fd5b9392505050565b5f602082840312156112a0575f80fd5b5051919050565b5f602082840312156112b7575f80fd5b81516001600160601b0381168114611289575f80fd5b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806112f557607f821691505b60208210810361131357634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561136057805f5260205f20601f840160051c8101602085101561133e5750805b601f840160051c820191505b8181101561135d575f815560010161134a565b50505b505050565b81516001600160401b0381111561137e5761137e6112cd565b6113928161138c84546112e1565b84611319565b6020601f8211600181146113c4575f83156113ad5750848201515b5f19600385901b1c1916600184901b17845561135d565b5f84815260208120601f198516915b828110156113f357878501518255602094850194600190920191016113d3565b508482101561141057868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b60805160a05160c05160e0516129e16114ad5f395f81816102c50152818161043e0152611ce801525f81816103e5015261067501525f818161034701528181610467015281816108410152818161098701528181610a65015281816116f301528181611aba01528181611bec0152611e6f01525f818161025e015281816103bc015261143c01526129e15ff3fe608060405234801561000f575f80fd5b5060043610610255575f3560e01c8063a48f42e011610140578063caed9897116100bf578063e285c9c411610084578063e285c9c41461062d578063e2b178a01461063f578063e74d052f14610647578063f40d7c301461065a578063fee11aaf14610662578063fff74f6c14610673575f80fd5b8063caed989714610575578063d1982d881461058d578063d2213b5b146105a0578063d272ac1e146105c0578063d39e6043146105f1575f80fd5b8063b5c51acf11610105578063b5c51acf1461050d578063b5ee0ded14610527578063c0c53b8b1461053a578063c3c5a5471461054f578063c59d394b14610562575f80fd5b8063a48f42e0146104b9578063a5df9e4e146104cc578063a7050a56146104df578063ac9848ee146104f2578063ae8dfb7914610505575f80fd5b80631a848cfb116101d75780633fe9300e1161019c5780633fe9300e1461041a578063644c45e01461043c5780637e2cd82d14610462578063839f700c14610489578063893d20e8146104915780638b09a5f014610499575f80fd5b80631a848cfb146103915780632b91e0a9146103a75780632de837e0146103ba57806331e7d702146103e057806338bb429a14610407575f80fd5b80630e9ed68b1161021d5780630e9ed68b1461032157806311edceaa14610332578063120726c31461034557806314afd79e1461036b57806317dc5e2a1461037e575f80fd5b806301bc45c91461025957806301ffc9a71461029d57806306851fba146102c05780630e41142e146102ff5780630e6d1de914610319575b5f80fd5b6102807f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6102b06102ab366004611f1c565b610699565b6040519015158152602001610294565b6102e77f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160601b039091168152602001610294565b6103076106dd565b60405160ff9091168152602001610294565b61030761074d565b6008546001600160a01b0316610280565b6102b0610340366004611f64565b610794565b7f0000000000000000000000000000000000000000000000000000000000000000610280565b610280610379366004611f9e565b610807565b6102b061038c366004611f9e565b61092d565b610399610984565b604051908152602001610294565b6102b06103b5366004611f9e565b610a05565b7f0000000000000000000000000000000000000000000000000000000000000000610280565b6102e77f000000000000000000000000000000000000000000000000000000000000000081565b610280610415366004611fd8565b610a45565b61042f60405180602001604052805f81525081565b6040516102949190612021565b7f00000000000000000000000000000000000000000000000000000000000000006102e7565b6102807f000000000000000000000000000000000000000000000000000000000000000081565b610399600381565b610280610ab8565b6104ac6104a7366004611f9e565b610ac2565b6040516102949190612033565b6104ac6104c7366004611fd8565b610c25565b6102e76104da366004612265565b610cf5565b6102e76104ed366004612296565b610e7a565b6007546102e7906001600160601b031681565b610399600281565b60075461028090600160601b90046001600160a01b031681565b600854610280906001600160a01b031681565b61054d6105483660046122f5565b611032565b005b6102b061055d366004611f9e565b6111e5565b600954610280906001600160a01b031681565b600754600160601b90046001600160a01b0316610280565b6102e761059b366004612265565b611255565b6105b36105ae366004611f64565b611397565b60405161029491906123c9565b6102e76105ce366004611f9e565b6001600160a01b03165f908152600260205260409020546001600160601b031690565b6102806105ff3660046124a8565b60ff9081165f908152600360209081526040808320949093168252929092529020546001600160a01b031690565b5f54610280906001600160a01b031681565b610280611439565b6102b0610655366004611fd8565b6114ba565b610307611513565b6009546001600160a01b0316610280565b7f00000000000000000000000000000000000000000000000000000000000000006102e7565b5f6001600160e01b031982166301ffc9a760e01b14806106c957506001600160e01b031982166311da029b60e01b145b156106d657506001919050565b505f919050565b600954604080516307208a1760e11b815290515f926001600160a01b031691630e41142e9160048083019260209291908290030181865afa158015610724573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061074891906124ea565b905090565b60095460408051630e6d1de960e01b815290515f926001600160a01b031691630e6d1de99160048083019260209291908290030181865afa158015610724573d5f803e3d5ffd5b6009546040516308f6e75560e11b815260ff831660048201525f916001600160a01b0316906311edceaa90602401602060405180830381865afa1580156107dd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108019190612505565b92915050565b6001600160a01b038181165f9081526002602052604080822054905163046e44af60e11b81526001600160601b03909116600482015290917f00000000000000000000000000000000000000000000000000000000000000001690636352211e9073__$94a2c899be079b00d952d0d84fffaa5c34$__906308dc895e906024015b602060405180830381865af41580156108a3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108c79190612520565b6040516001600160e01b031960e084901b1681526001600160601b039091166004820152602401602060405180830381865afa158015610909573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610801919061253b565b6001600160a01b0381165f908152600260209081526040808320546001600160601b039081168452600190925280832054600160601b900490911680835290822054600160c01b900460ff16600a145b9392505050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109e1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107489190612556565b6001600160a01b0381165f908152600260209081526040808320546001600160601b031683526001909152812054600160c01b900460ff16600914610801565b60405163046e44af60e11b81526001600160601b03821660048201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636352211e9073__$94a2c899be079b00d952d0d84fffaa5c34$__906308dc895e90602401610888565b5f61074830610807565b6040805160e0810182525f8082526020820181905291810182905260608082018390526080820183905260a082019290925260c08101919091526001600160a01b038083165f908152600260208181526040808420546001600160601b039081168552600180845294829020825160e08101845281548084168252600160601b81049093169481019490945260ff600160c01b8304811693850193909352600160c81b9091049091161515606083015292830154841660808201529082015490921660a083015260038101805460c084019190610b9e9061256d565b80601f0160208091040260200160405190810160405280929190818152602001828054610bca9061256d565b8015610c155780601f10610bec57610100808354040283529160200191610c15565b820191905f5260205f20905b815481529060010190602001808311610bf857829003601f168201915b5050505050815250509050919050565b6040805160e0810182525f8082526020820181905291810182905260608082018390526080820183905260a082019290925260c08101919091526001600160601b038083165f90815260016020818152604092839020835160e08101855281548087168252600160601b81049096169281019290925260ff600160c01b8604811694830194909452600160c81b909404909216151560608301528201546001600160a01b03908116608083015260028301541660a082015260038201805491929160c084019190610b9e9061256d565b600954604051639ef6ddc960e01b81523360048201525f916001600160a01b031690639ef6ddc990602401602060405180830381865afa158015610d3b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d5f9190612505565b610d7c57604051639404710360e01b815260040160405180910390fd5b6040828101516020808501516001600160601b03165f908152600190915291909120546080840151600160c01b90910460ff16906001600160a01b0316610e185760ff8083165f908152600660209081526040808320858516845290915281205490911615159003610e135760405163347a1f9760e21b815260ff8084166004830152821660248201526044015b60405180910390fd5b610e69565b60ff8083165f908152600560209081526040808320858516845290915281205490911615159003610e695760405163347a1f9760e21b815260ff808416600483015282166024820152604401610e0a565b610e728461155a565b949350505050565b6009545f906001600160a01b03163314610ea65760405162783d2b60e21b815260040160405180910390fd5b608084015160405163037c8cb160e51b815260ff8416600482015273__$0d958e68cba84670b8f4a3f2f2686b1c6b$__90636f91962090602401602060405180830381865af4158015610efb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f1f9190612505565b15610f485760405163b580d22160e01b81526001600160a01b0382166004820152602401610e0a565b60ff8085165f908152600360209081526040808320938716835292905220546001600160a01b031615610faa57604051632a16d08d60e01b81526001600160a01b038216600482015260ff808616602483015284166044820152606401610e0a565b60ff8481165f90815260036020908152604080832093871683529290522080546001600160a01b0319166001600160a01b038316179055610fea8561155a565b6040805160ff8088168252861660208201529193507fc4761a4fab07f2d3f242a458f91e31e4ea6128fe5edc599e3436f5f66317e0da910160405180910390a1509392505050565b5f7f46cd1d813423aaf613c34c7f348d15b2b5e71215e9145b09467e257ea2805a008054909150690100000000000000000090046001600160a01b0316331461108e5760405163ce4d158160e01b815260040160405180910390fd5b805460ff600160401b82041615906001600160401b03165f811580156110b15750825b90505f826001600160401b031660011480156110cc5750303b155b9050811580156110da575080155b156110f85760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561112257845460ff60401b1916600160401b1785555b600980546001600160a01b03808b166001600160a01b031992831617909255600780548a8416600160601b026001600160601b039091161790556008805492891692909116919091179055611175611b53565b600780546001600160601b0319166001600160601b039290921691909117905583156111db57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b6001600160a01b0381165f908152600260205260408082205490516330b8415f60e01b81526001600160601b03909116600482015273__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f906024015b602060405180830381865af41580156107dd573d5f803e3d5ffd5b600954604051639ef6ddc960e01b81523360048201525f916001600160a01b031690639ef6ddc990602401602060405180830381865afa15801561129b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112bf9190612505565b6112dc57604051639404710360e01b815260040160405180910390fd5b6040808301516020808501516001600160601b03165f908152600182528381205460ff80851683526004909352939020549192600160c01b90048116911615611338576040516368f27c4360e11b815260040160405180910390fd5b60ff81166001148061134d575060ff81166002145b8061135b575060ff81166009145b156113865760405163347a1f9760e21b815260ff808416600483015282166024820152604401610e0a565b61138f8461155a565b505050919050565b6040805160e0810182525f808252602082018190526060828401819052808301819052608083015260a0820181905260c0820152600954915163d2213b5b60e01b815260ff8416600482015290916001600160a01b03169063d2213b5b906024015f60405180830381865afa158015611412573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610801919081019061276b565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611496573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610748919061253b565b6001600160601b0381165f9081526001602052604080822054905163b2466acf60e01b8152600160c01b90910460ff16600482015273__$0d958e68cba84670b8f4a3f2f2686b1c6b$__9063b2466acf9060240161123a565b60095460408051630f40d7c360e41b815290515f926001600160a01b03169163f40d7c309160048083019260209291908290030181865afa158015610724573d5f803e3d5ffd5b60408082015160608084015160808086015160a0808801516020808a01516001600160601b038082165f90815260018085528c82208d5160e081018f5281548086168252600160601b81049095169681019690965260ff600160c01b850481169e87019e909e52600160c81b909304909c16151599840199909952998a01546001600160a01b039081169683019690965260028a0154909516928101929092526003880180549698959693959194938993929160c084019161161b9061256d565b80601f01602080910402602001604051908101604052809291908181526020018280546116479061256d565b80156116925780601f1061166957610100808354040283529160200191611692565b820191905f5260205f20905b81548152906001019060200180831161167557829003601f168201915b50505091909252505050604081015160808201519192509060ff88166020146116dc576001600160a01b0381166116dc57604051630bdad98960e11b815260040160405180910390fd5b5f6116ee888a89876060015186611ece565b90505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663caa0f92a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561174d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117719190612556565b60405163efac97cf60e01b81526004810182905290915073__$94a2c899be079b00d952d0d84fffaa5c34$__9063efac97cf90602401602060405180830381865af41580156117c2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117e69190612520565b9a508a8c5f01906001600160601b031690816001600160601b0316815250508b60015f8d6001600160601b03166001600160601b031681526020019081526020015f205f820151815f015f6101000a8154816001600160601b0302191690836001600160601b031602179055506020820151815f01600c6101000a8154816001600160601b0302191690836001600160601b031602179055506040820151815f0160186101000a81548160ff021916908360ff1602179055506060820151815f0160196101000a81548160ff0219169083151502179055506080820151816001015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555060a0820151816002015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555060c082015181600301908161192b91906128b2565b5050506001600160a01b03881615611a2b576001600160a01b0388165f90815260026020526040908190205490516330b8415f60e01b81526001600160601b03909116600482015273__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af41580156119ad573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119d19190612505565b156119fa57604051633fa3dceb60e21b81526001600160a01b0389166004820152602401610e0a565b6001600160a01b0388165f90815260026020526040902080546001600160601b0319166001600160601b038d161790555b604080516001600160601b038d811682528816602082015260ff8c16818301528a151560608201526001600160a01b038a81166080830152891660a082015290517f378868470b980e00aaf3e534a055e641e5fe9dfd8da44b4250edc6ad96e983879181900360c00190a1604080516020810182525f8082529151631109bad360e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163221375a691611af2918c9188919060040161296c565b6020604051808303815f875af1158015611b0e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b329190612556565b9050818114611b4357611b43612997565b5050505050505050505050919050565b5f8060085f9054906101000a90046001600160a01b03166001600160a01b031663893d20e86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ba5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bc9919061253b565b604051630559ea4760e01b8152600360048201529091505f906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690630559ea4790602401602060405180830381865afa158015611c31573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c559190612556565b60405163efac97cf60e01b81526004810182905290915073__$94a2c899be079b00d952d0d84fffaa5c34$__9063efac97cf90602401602060405180830381865af4158015611ca6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cca9190612520565b92506040518060e00160405280846001600160601b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160601b03168152602001611d1d600390565b60ff90811682525f60208084018290526008546001600160a01b03908116604080870191909152888216606080880191909152815180850183528581526080978801526001600160601b03808c16865260018086529583902089518154968b0151948b0151938b01511515600160c81b0260ff60c81b1994909916600160c01b029390931661ffff60c01b19948316600160601b026001600160c01b031990971693909216929092179490941791909116929092179390931781559284015190830180549183166001600160a01b031992831617905560a084015160028401805491909316911617905560c08201516003820190611e1b90826128b2565b50506008546001600160a01b039081165f908152600260205260409081902080546001600160601b0319166001600160601b038816179055516340c10f1960e01b81528482166004820152602481018490527f000000000000000000000000000000000000000000000000000000000000000090911691506340c10f19906044015f604051808303815f87803b158015611eb3575f80fd5b505af1158015611ec5573d5f803e3d5ffd5b50505050505090565b5f60ff8516602003611ee157505f611f13565b6001600160a01b038416611f03578215611efc575080611f13565b505f611f13565b8515611f10575082611f13565b505f5b95945050505050565b5f60208284031215611f2c575f80fd5b81356001600160e01b03198116811461097d575f80fd5b60ff81168114611f51575f80fd5b50565b8035611f5f81611f43565b919050565b5f60208284031215611f74575f80fd5b813561097d81611f43565b6001600160a01b0381168114611f51575f80fd5b8035611f5f81611f7f565b5f60208284031215611fae575f80fd5b813561097d81611f7f565b6001600160601b0381168114611f51575f80fd5b8035611f5f81611fb9565b5f60208284031215611fe8575f80fd5b813561097d81611fb9565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f61097d6020830184611ff3565b602081526001600160601b0382511660208201526001600160601b03602083015116604082015260ff60408301511660608201525f606083015161207b608084018215159052565b5060808301516001600160a01b03811660a08401525060a08301516001600160a01b03811660c08401525060c083015160e080840152610e72610100840182611ff3565b634e487b7160e01b5f52604160045260245ffd5b60405160e081016001600160401b03811182821017156120f5576120f56120bf565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612123576121236120bf565b604052919050565b8015158114611f51575f80fd5b8035611f5f8161212b565b5f6001600160401b0382111561215b5761215b6120bf565b50601f01601f191660200190565b5f82601f830112612178575f80fd5b813561218b61218682612143565b6120fb565b81815284602083860101111561219f575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60e082840312156121cb575f80fd5b6121d36120d3565b90506121de82611fcd565b81526121ec60208301611fcd565b60208201526121fd60408301611f54565b604082015261220e60608301612138565b606082015261221f60808301611f93565b608082015261223060a08301611f93565b60a082015260c08201356001600160401b0381111561224d575f80fd5b61225984828501612169565b60c08301525092915050565b5f60208284031215612275575f80fd5b81356001600160401b0381111561228a575f80fd5b610e72848285016121bb565b5f805f606084860312156122a8575f80fd5b83356001600160401b038111156122bd575f80fd5b6122c9868287016121bb565b93505060208401356122da81611f43565b915060408401356122ea81611f43565b809150509250925092565b5f805f60608486031215612307575f80fd5b833561231281611f7f565b9250602084013561232281611f7f565b915060408401356122ea81611f7f565b5f82825180855260208501945060208160051b830101602085015f5b8381101561238057601f1985840301885261236a838351611ff3565b602098890198909350919091019060010161234e565b50909695505050505050565b5f8151808452602084019350602083015f5b828110156123bf57815160ff1686526020958601959091019060010161239e565b5093949350505050565b602081525f610100820160ff845116602084015260208401516040840152604084015160e06060850152818151808452610120860191506020830193505f92505b808310156124355783516001600160a01b03168252602093840193600193909301929091019061240a565b506060860151858203601f1901608087015292506124538184612332565b925050506080840151601f198483030160a0850152612472828261238c565b91505060a084015161248d60c085018264ffffffffff169052565b5060c084015164ffffffffff811660e0850152509392505050565b5f80604083850312156124b9575f80fd5b82356124c481611f43565b915060208301356124d481611f43565b809150509250929050565b8051611f5f81611f43565b5f602082840312156124fa575f80fd5b815161097d81611f43565b5f60208284031215612515575f80fd5b815161097d8161212b565b5f60208284031215612530575f80fd5b815161097d81611fb9565b5f6020828403121561254b575f80fd5b815161097d81611f7f565b5f60208284031215612566575f80fd5b5051919050565b600181811c9082168061258157607f821691505b60208210810361259f57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6001600160401b038211156125bd576125bd6120bf565b5060051b60200190565b5f82601f8301126125d6575f80fd5b81516125e4612186826125a5565b8082825260208201915060208360051b860101925085831115612605575f80fd5b602085015b8381101561262b57805161261d81611f7f565b83526020928301920161260a565b5095945050505050565b5f82601f830112612644575f80fd5b8151612652612186826125a5565b8082825260208201915060208360051b860101925085831115612673575f80fd5b602085015b8381101561262b5780516001600160401b03811115612695575f80fd5b8601603f810188136126a5575f80fd5b60208101516126b661218682612143565b8181526040838301018a10156126ca575f80fd5b8160408401602083015e5f60208383010152808652505050602083019250602081019050612678565b5f82601f830112612702575f80fd5b8151612710612186826125a5565b8082825260208201915060208360051b860101925085831115612731575f80fd5b602085015b8381101561262b57805161274981611f43565b835260209283019201612736565b805164ffffffffff81168114611f5f575f80fd5b5f6020828403121561277b575f80fd5b81516001600160401b03811115612790575f80fd5b820160e081850312156127a1575f80fd5b6127a96120d3565b6127b2826124df565b81526020828101519082015260408201516001600160401b038111156127d6575f80fd5b6127e2868285016125c7565b60408301525060608201516001600160401b03811115612800575f80fd5b61280c86828501612635565b60608301525060808201516001600160401b0381111561282a575f80fd5b612836868285016126f3565b60808301525061284860a08301612757565b60a082015261285960c08301612757565b60c0820152949350505050565b601f8211156128ad57805f5260205f20601f840160051c8101602085101561288b5750805b601f840160051c820191505b818110156128aa575f8155600101612897565b50505b505050565b81516001600160401b038111156128cb576128cb6120bf565b6128df816128d9845461256d565b84612866565b6020601f821160018114612911575f83156128fa5750848201515b5f19600385901b1c1916600184901b1784556128aa565b5f84815260208120601f198516915b828110156129405787850151825560209485019460019092019101612920565b508482101561295d57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b6001600160a01b038481168252831660208201526060604082018190525f90611f1390830184611ff3565b634e487b7160e01b5f52600160045260245ffdfea26469706673582212208ac2761477400e678f1e15d9a3735e8bcda41730f5e26637ac8545ad0e529bad64736f6c634300081a0033608060405234801561000f575f80fd5b50604051611db0380380611db083398101604081905261002e91610116565b604051806060016040528060248152602001611d8c6024913960408051808201909152600681526511125413919560d21b60208201525f61006f83826101db565b50600161007c82826101db565b5050506001600160a01b0381166100a657604051630ae1413f60e11b815260040160405180910390fd5b600c80546001600160a01b0319166001600160a01b03831617905546600d8190555f600e555b80156100f957600e8054905f6100e1836102a9565b909155506100f29050600a826102c1565b90506100cc565b600e5461010790600a6103c5565b600f55505060046010556103d0565b5f60208284031215610126575f80fd5b81516001600160a01b038116811461013c575f80fd5b9392505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061016b57607f821691505b60208210810361018957634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156101d657805f5260205f20601f840160051c810160208510156101b45750805b601f840160051c820191505b818110156101d3575f81556001016101c0565b50505b505050565b81516001600160401b038111156101f4576101f4610143565b610208816102028454610157565b8461018f565b6020601f82116001811461023a575f83156102235750848201515b5f19600385901b1c1916600184901b1784556101d3565b5f84815260208120601f198516915b828110156102695787850151825560209485019460019092019101610249565b508482101561028657868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b5f600182016102ba576102ba610295565b5060010190565b5f826102db57634e487b7160e01b5f52601260045260245ffd5b500490565b6001815b600184111561031b578085048111156102ff576102ff610295565b600184161561030d57908102905b60019390931c9280026102e4565b935093915050565b5f82610331575060016103bf565b8161033d57505f6103bf565b8160018114610353576002811461035d57610379565b60019150506103bf565b60ff84111561036e5761036e610295565b50506001821b6103bf565b5060208310610133831016604e8410600b841016171561039c575081810a6103bf565b6103a85f1984846102e0565b805f19048211156103bb576103bb610295565b0290505b92915050565b5f61013c8383610323565b6119af806103dd5f395ff3fe608060405234801561000f575f80fd5b50600436106101d1575f3560e01c80634f6ccce7116100fe578063a2309ff81161009e578063caa0f92a1161006e578063caa0f92a146103ee578063e985e9c5146103f6578063f21de1e814610409578063f76f8d781461041a575f80fd5b8063a2309ff8146103b8578063a3f4df7e146103c0578063b88d4fde146103c8578063c87b56dd146103db575f80fd5b806370a08231116100d957806370a0823114610377578063862440e21461038a57806395d89b411461039d578063a22cb465146103a5575f80fd5b80634f6ccce714610348578063598e28921461035b5780636352211e14610364575f80fd5b806323b872dd1161017457806340c10f191161014457806340c10f19146102e557806342842e0e146102f857806342966c681461030b5780634f558e791461031e575f80fd5b806323b872dd1461028e5780632e85b1f3146102a15780632f745c59146102aa578063342ec443146102bd575f80fd5b8063081812fc116101af578063081812fc14610233578063095ea7b31461025e57806318160ddd14610273578063221375a61461027b575f80fd5b806301ffc9a7146101d55780630559ea47146101fd57806306fdde031461021e575b5f80fd5b6101e86101e3366004611406565b61043f565b60405190151581526020015b60405180910390f35b61021061020b366004611421565b610469565b6040519081526020016101f4565b61022661049d565b6040516101f49190611466565b610246610241366004611421565b61052c565b6040516001600160a01b0390911681526020016101f4565b61027161026c366004611493565b610553565b005b600854610210565b610210610289366004611564565b610562565b61027161029c3660046115be565b610688565b61021061083581565b6102106102b8366004611493565b61072a565b6102466102cb366004611421565b5f908152600a60205260409020546001600160a01b031690565b6102716102f3366004611493565b61078d565b6102716103063660046115be565b6107d8565b610271610319366004611421565b6107f2565b6101e861032c366004611421565b5f908152600260205260409020546001600160a01b0316151590565b610210610356366004611421565b61084b565b61021061044d81565b610246610372366004611421565b6108a0565b6102106103853660046115f8565b6108aa565b610271610398366004611611565b6108ef565b610226610997565b6102716103b3366004611655565b6109a6565b601154610210565b6102266109b1565b6102716103d636600461168e565b6109cd565b6102266103e9366004611421565b6109ea565b610210610a91565b6101e8610404366004611705565b610aa2565b600c546001600160a01b0316610246565b6102266040518060400160405280600681526020016511125413919560d21b81525081565b5f6001600160e01b0319821663780e9d6360e01b1480610463575061046382610acf565b92915050565b5f600e54600d54600f548461047e919061174a565b6104889190611761565b61049390606461174a565b6104639190611761565b60605f80546104ab90611774565b80601f01602080910402602001604051908101604052809291908181526020018280546104d790611774565b80156105225780601f106104f957610100808354040283529160200191610522565b820191905f5260205f20905b81548152906001019060200180831161050557829003601f168201915b5050505050905090565b5f61053682610b1e565b505f828152600460205260409020546001600160a01b0316610463565b61055e828233610b56565b5050565b600c545f906001600160a01b03163314610596576040516399c6cd7160e01b81523360048201526024015b60405180910390fd5b61059e610b63565b90506001600160a01b038316156105d6575f818152600a6020526040902080546001600160a01b0319166001600160a01b0385161790555b8151156105f6575f818152600b602052604090206105f483826117f0565b505b60118054905f610605836118ab565b91905055506106148482610b88565b6001600160a01b038316156106815760405163bb1e0e5960e01b81526001600160a01b0385811660048301526024820183905284169063bb1e0e59906044015f604051808303815f87803b15801561066a575f80fd5b505af115801561067c573d5f803e3d5ffd5b505050505b9392505050565b610693838383610ba1565b5f818152600a60205260409020546001600160a01b031615610725575f818152600a6020526040908190205490516373fbfdc360e11b81526001600160a01b0385811660048301528481166024830152604482018490529091169063e7f7fb86906064015f604051808303815f87803b15801561070e575f80fd5b505af1158015610720573d5f803e3d5ffd5b505050505b505050565b5f610734836108aa565b82106107655760405163295f44f760e21b81526001600160a01b03841660048201526024810183905260440161058d565b506001600160a01b03919091165f908152600660209081526040808320938352929052205490565b600c546001600160a01b031633146107ba576040516399c6cd7160e01b815233600482015260240161058d565b60118054905f6107c9836118ab565b919050555061055e8282610b88565b61072583838360405180602001604052805f8152506109cd565b600c546001600160a01b0316331461081f576040516399c6cd7160e01b815233600482015260240161058d565b61082881610b1e565b5061083281610c24565b5f818152600b60205260408120610848916113a7565b50565b5f61085560085490565b821061087d5760405163295f44f760e21b81525f60048201526024810183905260440161058d565b60088281548110610890576108906118c3565b905f5260205f2001549050919050565b5f61046382610b1e565b5f6001600160a01b0382166108d4576040516322718ad960e21b81525f600482015260240161058d565b506001600160a01b03165f9081526003602052604090205490565b600c546001600160a01b0316331461091c576040516399c6cd7160e01b815233600482015260240161058d565b80515f0361093d57604051638e45096160e01b815260040160405180910390fd5b5f828152600b60205260408120805461095590611774565b905011156109765760405163303822c760e21b815260040160405180910390fd5b61097f82610b1e565b505f828152600b6020526040902061072582826117f0565b6060600180546104ab90611774565b61055e338383610c5c565b6040518060600160405280602481526020016119566024913981565b6109d8848484610688565b6109e484848484610cfa565b50505050565b60606109f582610b1e565b505f828152600b602052604090208054610a0e90611774565b80601f0160208091040260200160405190810160405280929190818152602001828054610a3a90611774565b8015610a855780601f10610a5c57610100808354040283529160200191610a85565b820191905f5260205f20905b815481529060010190602001808311610a6857829003601f168201915b50505050509050919050565b5f610a9d601054610469565b905090565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205460ff1690565b5f6001600160e01b031982166380ac58cd60e01b1480610aff57506001600160e01b03198216635b5e139f60e01b145b8061046357506301ffc9a760e01b6001600160e01b0319831614610463565b5f818152600260205260408120546001600160a01b03168061046357604051637e27328960e01b81526004810184905260240161058d565b6107258383836001610e20565b5f610b6f601054610469565b601080549192505f610b80836118ab565b919050555090565b61055e828260405180602001604052805f815250610f24565b6001600160a01b038216610bca57604051633250574960e11b81525f600482015260240161058d565b5f610bd6838333610f3a565b9050836001600160a01b0316816001600160a01b0316146109e4576040516364283d7b60e01b81526001600160a01b038086166004830152602482018490528216604482015260640161058d565b5f610c305f835f610f3a565b90506001600160a01b03811661055e57604051637e27328960e01b81526004810183905260240161058d565b6001600160a01b038216610c8e57604051630b61174360e31b81526001600160a01b038316600482015260240161058d565b6001600160a01b038381165f81815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b156109e457604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290610d3c9033908890879087906004016118d7565b6020604051808303815f875af1925050508015610d76575060408051601f3d908101601f19168201909252610d7391810190611913565b60015b610ddd573d808015610da3576040519150601f19603f3d011682016040523d82523d5f602084013e610da8565b606091505b5080515f03610dd557604051633250574960e11b81526001600160a01b038516600482015260240161058d565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610e1957604051633250574960e11b81526001600160a01b038516600482015260240161058d565b5050505050565b8080610e3457506001600160a01b03821615155b15610ef5575f610e4384610b1e565b90506001600160a01b03831615801590610e6f5750826001600160a01b0316816001600160a01b031614155b8015610e825750610e808184610aa2565b155b15610eab5760405163a9fbf51f60e01b81526001600160a01b038416600482015260240161058d565b8115610ef35783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b50505f90815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610f2e838361100d565b6107255f848484610cfa565b5f80610f4785858561106e565b90506001600160a01b038116610fa357610f9e84600880545f838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b610fc6565b846001600160a01b0316816001600160a01b031614610fc657610fc68185611160565b6001600160a01b038516610fe257610fdd846111ed565b611005565b846001600160a01b0316816001600160a01b031614611005576110058585611294565b949350505050565b6001600160a01b03821661103657604051633250574960e11b81525f600482015260240161058d565b5f61104283835f610f3a565b90506001600160a01b03811615610725576040516339e3563760e11b81525f600482015260240161058d565b5f828152600260205260408120546001600160a01b039081169083161561109a5761109a8184866112e2565b6001600160a01b038116156110d4576110b55f855f80610e20565b6001600160a01b0381165f90815260036020526040902080545f190190555b6001600160a01b03851615611102576001600160a01b0385165f908152600360205260409020805460010190555b5f8481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b5f61116a836108aa565b5f838152600760205260409020549091508082146111bb576001600160a01b0384165f9081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b505f9182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b6008545f906111fe9060019061192e565b5f8381526009602052604081205460088054939450909284908110611225576112256118c3565b905f5260205f20015490508060088381548110611244576112446118c3565b5f91825260208083209091019290925582815260099091526040808220849055858252812055600880548061127b5761127b611941565b600190038181905f5260205f20015f9055905550505050565b5f60016112a0846108aa565b6112aa919061192e565b6001600160a01b039093165f908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b6112ed838383611346565b610725576001600160a01b03831661131b57604051637e27328960e01b81526004810182905260240161058d565b60405163177e802f60e01b81526001600160a01b03831660048201526024810182905260440161058d565b5f6001600160a01b038316158015906110055750826001600160a01b0316846001600160a01b0316148061137f575061137f8484610aa2565b806110055750505f908152600460205260409020546001600160a01b03908116911614919050565b5080546113b390611774565b5f825580601f106113c2575050565b601f0160209004905f5260205f209081019061084891905b808211156113ed575f81556001016113da565b5090565b6001600160e01b031981168114610848575f80fd5b5f60208284031215611416575f80fd5b8135610681816113f1565b5f60208284031215611431575f80fd5b5035919050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6106816020830184611438565b80356001600160a01b038116811461148e575f80fd5b919050565b5f80604083850312156114a4575f80fd5b6114ad83611478565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b5f8067ffffffffffffffff8411156114e9576114e96114bb565b50604051601f19601f85018116603f0116810181811067ffffffffffffffff82111715611518576115186114bb565b60405283815290508082840185101561152f575f80fd5b838360208301375f60208583010152509392505050565b5f82601f830112611555575f80fd5b610681838335602085016114cf565b5f805f60608486031215611576575f80fd5b61157f84611478565b925061158d60208501611478565b9150604084013567ffffffffffffffff8111156115a8575f80fd5b6115b486828701611546565b9150509250925092565b5f805f606084860312156115d0575f80fd5b6115d984611478565b92506115e760208501611478565b929592945050506040919091013590565b5f60208284031215611608575f80fd5b61068182611478565b5f8060408385031215611622575f80fd5b82359150602083013567ffffffffffffffff81111561163f575f80fd5b61164b85828601611546565b9150509250929050565b5f8060408385031215611666575f80fd5b61166f83611478565b915060208301358015158114611683575f80fd5b809150509250929050565b5f805f80608085870312156116a1575f80fd5b6116aa85611478565b93506116b860208601611478565b925060408501359150606085013567ffffffffffffffff8111156116da575f80fd5b8501601f810187136116ea575f80fd5b6116f9878235602084016114cf565b91505092959194509250565b5f8060408385031215611716575f80fd5b61171f83611478565b915061172d60208401611478565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761046357610463611736565b8082018082111561046357610463611736565b600181811c9082168061178857607f821691505b6020821081036117a657634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561072557805f5260205f20601f840160051c810160208510156117d15750805b601f840160051c820191505b81811015610e19575f81556001016117dd565b815167ffffffffffffffff81111561180a5761180a6114bb565b61181e816118188454611774565b846117ac565b6020601f821160018114611850575f83156118395750848201515b5f19600385901b1c1916600184901b178455610e19565b5f84815260208120601f198516915b8281101561187f578785015182556020948501946001909201910161185f565b508482101561189c57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f600182016118bc576118bc611736565b5060010190565b634e487b7160e01b5f52603260045260245ffd5b6001600160a01b03858116825284166020820152604081018390526080606082018190525f9061190990830184611438565b9695505050505050565b5f60208284031215611923575f80fd5b8151610681816113f1565b8181038181111561046357610463611736565b634e487b7160e01b5f52603160045260245ffdfe44657a656e7472616c697a656420496e737572616e63652050726f746f636f6c204e4654a264697066735822122004a922245b1bed8bccde694db4642e2237211ca39de1d735a565465655a2822664736f6c634300081a003344657a656e7472616c697a656420496e737572616e63652050726f746f636f6c204e4654",
         | 
| 1077 | 
            -
              "deployedBytecode": "0x608060405234801561000f575f80fd5b5060043610610255575f3560e01c8063a48f42e011610140578063caed9897116100bf578063e285c9c411610084578063e285c9c41461062d578063e2b178a01461063f578063e74d052f14610647578063f40d7c301461065a578063fee11aaf14610662578063fff74f6c14610673575f80fd5b8063caed989714610575578063d1982d881461058d578063d2213b5b146105a0578063d272ac1e146105c0578063d39e6043146105f1575f80fd5b8063b5c51acf11610105578063b5c51acf1461050d578063b5ee0ded14610527578063c0c53b8b1461053a578063c3c5a5471461054f578063c59d394b14610562575f80fd5b8063a48f42e0146104b9578063a5df9e4e146104cc578063a7050a56146104df578063ac9848ee146104f2578063ae8dfb7914610505575f80fd5b80631a848cfb116101d75780633fe9300e1161019c5780633fe9300e1461041a578063644c45e01461043c5780637e2cd82d14610462578063839f700c14610489578063893d20e8146104915780638b09a5f014610499575f80fd5b80631a848cfb146103915780632b91e0a9146103a75780632de837e0146103ba57806331e7d702146103e057806338bb429a14610407575f80fd5b80630e9ed68b1161021d5780630e9ed68b1461032157806311edceaa14610332578063120726c31461034557806314afd79e1461036b57806317dc5e2a1461037e575f80fd5b806301bc45c91461025957806301ffc9a71461029d57806306851fba146102c05780630e41142e146102ff5780630e6d1de914610319575b5f80fd5b6102807f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6102b06102ab366004611f1c565b610699565b6040519015158152602001610294565b6102e77f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160601b039091168152602001610294565b6103076106dd565b60405160ff9091168152602001610294565b61030761074d565b6008546001600160a01b0316610280565b6102b0610340366004611f64565b610794565b7f0000000000000000000000000000000000000000000000000000000000000000610280565b610280610379366004611f9e565b610807565b6102b061038c366004611f9e565b61092d565b610399610984565b604051908152602001610294565b6102b06103b5366004611f9e565b610a05565b7f0000000000000000000000000000000000000000000000000000000000000000610280565b6102e77f000000000000000000000000000000000000000000000000000000000000000081565b610280610415366004611fd8565b610a45565b61042f60405180602001604052805f81525081565b6040516102949190612021565b7f00000000000000000000000000000000000000000000000000000000000000006102e7565b6102807f000000000000000000000000000000000000000000000000000000000000000081565b610399600381565b610280610ab8565b6104ac6104a7366004611f9e565b610ac2565b6040516102949190612033565b6104ac6104c7366004611fd8565b610c25565b6102e76104da366004612265565b610cf5565b6102e76104ed366004612296565b610e7a565b6007546102e7906001600160601b031681565b610399600281565b60075461028090600160601b90046001600160a01b031681565b600854610280906001600160a01b031681565b61054d6105483660046122f5565b611032565b005b6102b061055d366004611f9e565b6111e5565b600954610280906001600160a01b031681565b600754600160601b90046001600160a01b0316610280565b6102e761059b366004612265565b611255565b6105b36105ae366004611f64565b611397565b60405161029491906123c9565b6102e76105ce366004611f9e565b6001600160a01b03165f908152600260205260409020546001600160601b031690565b6102806105ff3660046124a8565b60ff9081165f908152600360209081526040808320949093168252929092529020546001600160a01b031690565b5f54610280906001600160a01b031681565b610280611439565b6102b0610655366004611fd8565b6114ba565b610307611513565b6009546001600160a01b0316610280565b7f00000000000000000000000000000000000000000000000000000000000000006102e7565b5f6001600160e01b031982166301ffc9a760e01b14806106c957506001600160e01b031982166311da029b60e01b145b156106d657506001919050565b505f919050565b600954604080516307208a1760e11b815290515f926001600160a01b031691630e41142e9160048083019260209291908290030181865afa158015610724573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061074891906124ea565b905090565b60095460408051630e6d1de960e01b815290515f926001600160a01b031691630e6d1de99160048083019260209291908290030181865afa158015610724573d5f803e3d5ffd5b6009546040516308f6e75560e11b815260ff831660048201525f916001600160a01b0316906311edceaa90602401602060405180830381865afa1580156107dd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108019190612505565b92915050565b6001600160a01b038181165f9081526002602052604080822054905163046e44af60e11b81526001600160601b03909116600482015290917f00000000000000000000000000000000000000000000000000000000000000001690636352211e9073__$94a2c899be079b00d952d0d84fffaa5c34$__906308dc895e906024015b602060405180830381865af41580156108a3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108c79190612520565b6040516001600160e01b031960e084901b1681526001600160601b039091166004820152602401602060405180830381865afa158015610909573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610801919061253b565b6001600160a01b0381165f908152600260209081526040808320546001600160601b039081168452600190925280832054600160601b900490911680835290822054600160c01b900460ff16600a145b9392505050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109e1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107489190612556565b6001600160a01b0381165f908152600260209081526040808320546001600160601b031683526001909152812054600160c01b900460ff16600914610801565b60405163046e44af60e11b81526001600160601b03821660048201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636352211e9073__$94a2c899be079b00d952d0d84fffaa5c34$__906308dc895e90602401610888565b5f61074830610807565b6040805160e0810182525f8082526020820181905291810182905260608082018390526080820183905260a082019290925260c08101919091526001600160a01b038083165f908152600260208181526040808420546001600160601b039081168552600180845294829020825160e08101845281548084168252600160601b81049093169481019490945260ff600160c01b8304811693850193909352600160c81b9091049091161515606083015292830154841660808201529082015490921660a083015260038101805460c084019190610b9e9061256d565b80601f0160208091040260200160405190810160405280929190818152602001828054610bca9061256d565b8015610c155780601f10610bec57610100808354040283529160200191610c15565b820191905f5260205f20905b815481529060010190602001808311610bf857829003601f168201915b5050505050815250509050919050565b6040805160e0810182525f8082526020820181905291810182905260608082018390526080820183905260a082019290925260c08101919091526001600160601b038083165f90815260016020818152604092839020835160e08101855281548087168252600160601b81049096169281019290925260ff600160c01b8604811694830194909452600160c81b909404909216151560608301528201546001600160a01b03908116608083015260028301541660a082015260038201805491929160c084019190610b9e9061256d565b600954604051639ef6ddc960e01b81523360048201525f916001600160a01b031690639ef6ddc990602401602060405180830381865afa158015610d3b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d5f9190612505565b610d7c57604051639404710360e01b815260040160405180910390fd5b6040828101516020808501516001600160601b03165f908152600190915291909120546080840151600160c01b90910460ff16906001600160a01b0316610e185760ff8083165f908152600660209081526040808320858516845290915281205490911615159003610e135760405163347a1f9760e21b815260ff8084166004830152821660248201526044015b60405180910390fd5b610e69565b60ff8083165f908152600560209081526040808320858516845290915281205490911615159003610e695760405163347a1f9760e21b815260ff808416600483015282166024820152604401610e0a565b610e728461155a565b949350505050565b6009545f906001600160a01b03163314610ea65760405162783d2b60e21b815260040160405180910390fd5b608084015160405163037c8cb160e51b815260ff8416600482015273__$0d958e68cba84670b8f4a3f2f2686b1c6b$__90636f91962090602401602060405180830381865af4158015610efb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f1f9190612505565b15610f485760405163b580d22160e01b81526001600160a01b0382166004820152602401610e0a565b60ff8085165f908152600360209081526040808320938716835292905220546001600160a01b031615610faa57604051632a16d08d60e01b81526001600160a01b038216600482015260ff808616602483015284166044820152606401610e0a565b60ff8481165f90815260036020908152604080832093871683529290522080546001600160a01b0319166001600160a01b038316179055610fea8561155a565b6040805160ff8088168252861660208201529193507fc4761a4fab07f2d3f242a458f91e31e4ea6128fe5edc599e3436f5f66317e0da910160405180910390a1509392505050565b5f7f46cd1d813423aaf613c34c7f348d15b2b5e71215e9145b09467e257ea2805a008054909150690100000000000000000090046001600160a01b0316331461108e5760405163ce4d158160e01b815260040160405180910390fd5b805460ff600160401b82041615906001600160401b03165f811580156110b15750825b90505f826001600160401b031660011480156110cc5750303b155b9050811580156110da575080155b156110f85760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561112257845460ff60401b1916600160401b1785555b600980546001600160a01b03808b166001600160a01b031992831617909255600780548a8416600160601b026001600160601b039091161790556008805492891692909116919091179055611175611b53565b600780546001600160601b0319166001600160601b039290921691909117905583156111db57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b6001600160a01b0381165f908152600260205260408082205490516330b8415f60e01b81526001600160601b03909116600482015273__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f906024015b602060405180830381865af41580156107dd573d5f803e3d5ffd5b600954604051639ef6ddc960e01b81523360048201525f916001600160a01b031690639ef6ddc990602401602060405180830381865afa15801561129b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112bf9190612505565b6112dc57604051639404710360e01b815260040160405180910390fd5b6040808301516020808501516001600160601b03165f908152600182528381205460ff80851683526004909352939020549192600160c01b90048116911615611338576040516368f27c4360e11b815260040160405180910390fd5b60ff81166001148061134d575060ff81166002145b8061135b575060ff81166009145b156113865760405163347a1f9760e21b815260ff808416600483015282166024820152604401610e0a565b61138f8461155a565b505050919050565b6040805160e0810182525f808252602082018190526060828401819052808301819052608083015260a0820181905260c0820152600954915163d2213b5b60e01b815260ff8416600482015290916001600160a01b03169063d2213b5b906024015f60405180830381865afa158015611412573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610801919081019061276b565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611496573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610748919061253b565b6001600160601b0381165f9081526001602052604080822054905163b2466acf60e01b8152600160c01b90910460ff16600482015273__$0d958e68cba84670b8f4a3f2f2686b1c6b$__9063b2466acf9060240161123a565b60095460408051630f40d7c360e41b815290515f926001600160a01b03169163f40d7c309160048083019260209291908290030181865afa158015610724573d5f803e3d5ffd5b60408082015160608084015160808086015160a0808801516020808a01516001600160601b038082165f90815260018085528c82208d5160e081018f5281548086168252600160601b81049095169681019690965260ff600160c01b850481169e87019e909e52600160c81b909304909c16151599840199909952998a01546001600160a01b039081169683019690965260028a0154909516928101929092526003880180549698959693959194938993929160c084019161161b9061256d565b80601f01602080910402602001604051908101604052809291908181526020018280546116479061256d565b80156116925780601f1061166957610100808354040283529160200191611692565b820191905f5260205f20905b81548152906001019060200180831161167557829003601f168201915b50505091909252505050604081015160808201519192509060ff88166020146116dc576001600160a01b0381166116dc57604051630bdad98960e11b815260040160405180910390fd5b5f6116ee888a89876060015186611ece565b90505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663caa0f92a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561174d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117719190612556565b60405163efac97cf60e01b81526004810182905290915073__$94a2c899be079b00d952d0d84fffaa5c34$__9063efac97cf90602401602060405180830381865af41580156117c2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117e69190612520565b9a508a8c5f01906001600160601b031690816001600160601b0316815250508b60015f8d6001600160601b03166001600160601b031681526020019081526020015f205f820151815f015f6101000a8154816001600160601b0302191690836001600160601b031602179055506020820151815f01600c6101000a8154816001600160601b0302191690836001600160601b031602179055506040820151815f0160186101000a81548160ff021916908360ff1602179055506060820151815f0160196101000a81548160ff0219169083151502179055506080820151816001015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555060a0820151816002015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555060c082015181600301908161192b91906128b2565b5050506001600160a01b03881615611a2b576001600160a01b0388165f90815260026020526040908190205490516330b8415f60e01b81526001600160601b03909116600482015273__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af41580156119ad573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119d19190612505565b156119fa57604051633fa3dceb60e21b81526001600160a01b0389166004820152602401610e0a565b6001600160a01b0388165f90815260026020526040902080546001600160601b0319166001600160601b038d161790555b604080516001600160601b038d811682528816602082015260ff8c16818301528a151560608201526001600160a01b038a81166080830152891660a082015290517f378868470b980e00aaf3e534a055e641e5fe9dfd8da44b4250edc6ad96e983879181900360c00190a1604080516020810182525f8082529151631109bad360e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163221375a691611af2918c9188919060040161296c565b6020604051808303815f875af1158015611b0e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b329190612556565b9050818114611b4357611b43612997565b5050505050505050505050919050565b5f8060085f9054906101000a90046001600160a01b03166001600160a01b031663893d20e86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ba5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bc9919061253b565b604051630559ea4760e01b8152600360048201529091505f906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690630559ea4790602401602060405180830381865afa158015611c31573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c559190612556565b60405163efac97cf60e01b81526004810182905290915073__$94a2c899be079b00d952d0d84fffaa5c34$__9063efac97cf90602401602060405180830381865af4158015611ca6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cca9190612520565b92506040518060e00160405280846001600160601b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160601b03168152602001611d1d600390565b60ff90811682525f60208084018290526008546001600160a01b03908116604080870191909152888216606080880191909152815180850183528581526080978801526001600160601b03808c16865260018086529583902089518154968b0151948b0151938b01511515600160c81b0260ff60c81b1994909916600160c01b029390931661ffff60c01b19948316600160601b026001600160c01b031990971693909216929092179490941791909116929092179390931781559284015190830180549183166001600160a01b031992831617905560a084015160028401805491909316911617905560c08201516003820190611e1b90826128b2565b50506008546001600160a01b039081165f908152600260205260409081902080546001600160601b0319166001600160601b038816179055516340c10f1960e01b81528482166004820152602481018490527f000000000000000000000000000000000000000000000000000000000000000090911691506340c10f19906044015f604051808303815f87803b158015611eb3575f80fd5b505af1158015611ec5573d5f803e3d5ffd5b50505050505090565b5f60ff8516602003611ee157505f611f13565b6001600160a01b038416611f03578215611efc575080611f13565b505f611f13565b8515611f10575082611f13565b505f5b95945050505050565b5f60208284031215611f2c575f80fd5b81356001600160e01b03198116811461097d575f80fd5b60ff81168114611f51575f80fd5b50565b8035611f5f81611f43565b919050565b5f60208284031215611f74575f80fd5b813561097d81611f43565b6001600160a01b0381168114611f51575f80fd5b8035611f5f81611f7f565b5f60208284031215611fae575f80fd5b813561097d81611f7f565b6001600160601b0381168114611f51575f80fd5b8035611f5f81611fb9565b5f60208284031215611fe8575f80fd5b813561097d81611fb9565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f61097d6020830184611ff3565b602081526001600160601b0382511660208201526001600160601b03602083015116604082015260ff60408301511660608201525f606083015161207b608084018215159052565b5060808301516001600160a01b03811660a08401525060a08301516001600160a01b03811660c08401525060c083015160e080840152610e72610100840182611ff3565b634e487b7160e01b5f52604160045260245ffd5b60405160e081016001600160401b03811182821017156120f5576120f56120bf565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612123576121236120bf565b604052919050565b8015158114611f51575f80fd5b8035611f5f8161212b565b5f6001600160401b0382111561215b5761215b6120bf565b50601f01601f191660200190565b5f82601f830112612178575f80fd5b813561218b61218682612143565b6120fb565b81815284602083860101111561219f575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60e082840312156121cb575f80fd5b6121d36120d3565b90506121de82611fcd565b81526121ec60208301611fcd565b60208201526121fd60408301611f54565b604082015261220e60608301612138565b606082015261221f60808301611f93565b608082015261223060a08301611f93565b60a082015260c08201356001600160401b0381111561224d575f80fd5b61225984828501612169565b60c08301525092915050565b5f60208284031215612275575f80fd5b81356001600160401b0381111561228a575f80fd5b610e72848285016121bb565b5f805f606084860312156122a8575f80fd5b83356001600160401b038111156122bd575f80fd5b6122c9868287016121bb565b93505060208401356122da81611f43565b915060408401356122ea81611f43565b809150509250925092565b5f805f60608486031215612307575f80fd5b833561231281611f7f565b9250602084013561232281611f7f565b915060408401356122ea81611f7f565b5f82825180855260208501945060208160051b830101602085015f5b8381101561238057601f1985840301885261236a838351611ff3565b602098890198909350919091019060010161234e565b50909695505050505050565b5f8151808452602084019350602083015f5b828110156123bf57815160ff1686526020958601959091019060010161239e565b5093949350505050565b602081525f610100820160ff845116602084015260208401516040840152604084015160e06060850152818151808452610120860191506020830193505f92505b808310156124355783516001600160a01b03168252602093840193600193909301929091019061240a565b506060860151858203601f1901608087015292506124538184612332565b925050506080840151601f198483030160a0850152612472828261238c565b91505060a084015161248d60c085018264ffffffffff169052565b5060c084015164ffffffffff811660e0850152509392505050565b5f80604083850312156124b9575f80fd5b82356124c481611f43565b915060208301356124d481611f43565b809150509250929050565b8051611f5f81611f43565b5f602082840312156124fa575f80fd5b815161097d81611f43565b5f60208284031215612515575f80fd5b815161097d8161212b565b5f60208284031215612530575f80fd5b815161097d81611fb9565b5f6020828403121561254b575f80fd5b815161097d81611f7f565b5f60208284031215612566575f80fd5b5051919050565b600181811c9082168061258157607f821691505b60208210810361259f57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6001600160401b038211156125bd576125bd6120bf565b5060051b60200190565b5f82601f8301126125d6575f80fd5b81516125e4612186826125a5565b8082825260208201915060208360051b860101925085831115612605575f80fd5b602085015b8381101561262b57805161261d81611f7f565b83526020928301920161260a565b5095945050505050565b5f82601f830112612644575f80fd5b8151612652612186826125a5565b8082825260208201915060208360051b860101925085831115612673575f80fd5b602085015b8381101561262b5780516001600160401b03811115612695575f80fd5b8601603f810188136126a5575f80fd5b60208101516126b661218682612143565b8181526040838301018a10156126ca575f80fd5b8160408401602083015e5f60208383010152808652505050602083019250602081019050612678565b5f82601f830112612702575f80fd5b8151612710612186826125a5565b8082825260208201915060208360051b860101925085831115612731575f80fd5b602085015b8381101561262b57805161274981611f43565b835260209283019201612736565b805164ffffffffff81168114611f5f575f80fd5b5f6020828403121561277b575f80fd5b81516001600160401b03811115612790575f80fd5b820160e081850312156127a1575f80fd5b6127a96120d3565b6127b2826124df565b81526020828101519082015260408201516001600160401b038111156127d6575f80fd5b6127e2868285016125c7565b60408301525060608201516001600160401b03811115612800575f80fd5b61280c86828501612635565b60608301525060808201516001600160401b0381111561282a575f80fd5b612836868285016126f3565b60808301525061284860a08301612757565b60a082015261285960c08301612757565b60c0820152949350505050565b601f8211156128ad57805f5260205f20601f840160051c8101602085101561288b5750805b601f840160051c820191505b818110156128aa575f8155600101612897565b50505b505050565b81516001600160401b038111156128cb576128cb6120bf565b6128df816128d9845461256d565b84612866565b6020601f821160018114612911575f83156128fa5750848201515b5f19600385901b1c1916600184901b1784556128aa565b5f84815260208120601f198516915b828110156129405787850151825560209485019460019092019101612920565b508482101561295d57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b6001600160a01b038481168252831660208201526060604082018190525f90611f1390830184611ff3565b634e487b7160e01b5f52600160045260245ffdfea26469706673582212208ac2761477400e678f1e15d9a3735e8bcda41730f5e26637ac8545ad0e529bad64736f6c634300081a0033",
         | 
| 1405 | 
            +
              "bytecode": "0x610160604052348015610010575f80fd5b5060405161668838038061668883398101604081905261002f9161100e565b816001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561006b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061008f9190611046565b61009881610230565b5033610100526001600160a01b038216610120526100b581610283565b6001600160a01b031660c05260405130906100cf90610fea565b6001600160a01b039091168152602001604051809103905ff0801580156100f8573d5f803e3d5ffd5b506001600160a01b0316610140816001600160a01b03168152505073__$94a2c899be079b00d952d0d84fffaa5c34$__63efac97cf610140516001600160a01b0316632e85b1f36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561016c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101909190611068565b6040518263ffffffff1660e01b81526004016101ae91815260200190565b602060405180830381865af41580156101c9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101ed9190611093565b6001600160601b031660a052610201610297565b6001600160601b031660805261021561043e565b6001600160601b031660e05261022961063f565b505061121e565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9060200160405180910390a150565b5f46600103610293575030919050565b5090565b5f80610140516001600160a01b031663598e28926040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102d8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102fc9190611068565b60405163efac97cf60e01b81526004810182905290915073__$94a2c899be079b00d952d0d84fffaa5c34$__9063efac97cf90602401602060405180830381865af415801561034d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103719190611093565b91506102936040518060e00160405280846001600160601b0316815260200173__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af41580156103d7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103fb9190611093565b6001600160601b03168152600160208083018290525f6040808501829052606085018290526080850184905280519283019052815260a090920191909152610bad565b60a0516040805160e0810182526001600160601b0380841682526080511660208201526104bf91600191908101600260ff1681526020015f1515815260200160c0516001600160a01b0316815260200160016001600160a01b0316815260200160405180602001604052805f81525081525046600114610da560201b60201c565b4660011461063c5773__$94a2c899be079b00d952d0d84fffaa5c34$__63efac97cf610140516001600160a01b0316630559ea4760026040518263ffffffff1660e01b815260040161051391815260200190565b602060405180830381865afa15801561052e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105529190611068565b6040518263ffffffff1660e01b815260040161057091815260200190565b602060405180830381865af415801561058b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105af9190611093565b905061063c466040518060e00160405280846001600160601b0316815260200160a0516001600160601b031681526020016105ee610da060201b60201c565b60ff1681526020015f15158152602001306001600160a01b0316815260200160016001600160a01b0316815260200160405180602001604052805f8152508152506001610da560201b60201c565b90565b7f3e5fec24aa4dc4e5aee2e025e51e1392c72a2500577559fae9665c6d52bd6a318054600160ff1991821681179092557f8819ef417987f8ae7a81f42cdfb18815282fe989326fbff903d13cf0e03ace2980548216831790557fb8d683c9d414f481826f3e7fe14b3ac6ae8c73450778287390c4bb8cb9f2e80b80548216831790557f4da38fc8e544afc56a4c2a17752b8ddb67d8e23ac4583c9029d2e2d1dbe6c98880548216831790557f0b94fa1b86997cc1f1148bfbe25b674e8cefc7cc6f976aa8d7c7966bd4cca34780548216831790557ff130046d53bc87538ab17e4752ba5f5082985eecc06ccb932c5a55e8242dd50280548216831790557faca6cdb4b5fe0ec50731a73f714dd191dc1911bfeb3f9eeb9e94ed0f6065ef8d80548216831790557fc695a062ea1c0f75fd266ccc34c407f7d5229534fc96b1932c122008903fa35380548216831790557f248457bacb20e239ae314d8db91c0f270e453c28ee138c84f97aea6cfcf9a49980548216831790557feda6feebfb4ffb7de2d0dc45a13b92dc953c2ed6ee96fa7fe8179e7c4266747f80548216831790557fe0f48684da2738819afc60049d8a627ffa250d5e1c7f8a7fedb1ce999915baf680548216831790557f75f96ab15d697e93042dc45b5c896c4b27e89bb6eaf39475c5c371cb2513f7d280548216831790557fc40cabba85bacae2b367d452524fc3c64d193b81d8e5f9a9b5e87d78b45816ea805490911682179055600a5f90815260076020527f3ed157e83ab1bb1f6b7b3760b3368106283d4e15d1f1b08e20d06576445a999490610891600290565b60ff16815260208101919091526040015f908120805460ff1916921515929092179091556001906007906108c3600c90565b60ff1660ff1681526020019081526020015f205f6108e5610ed460201b60201c565b60ff16815260208101919091526040015f908120805460ff191692151592909217909155600190600790610917600e90565b60ff1660ff1681526020019081526020015f205f610939610ed460201b60201c565b60ff16815260208101919091526040015f908120805460ff19169215159290921790915560019060079061096b600d90565b60ff1660ff1681526020019081526020015f205f61098d610ed460201b60201c565b60ff16815260208101919091526040015f908120805460ff1916921515929092179091556001906007906109bf600f90565b60ff1660ff1681526020019081526020015f205f6109e1610ed460201b60201c565b60ff16815260208101919091526040015f908120805460ff191692151592909217909155600190600890610a13601d90565b60ff1660ff1681526020019081526020015f205f610a35610ee360201b60201c565b60ff16815260208101919091526040015f908120805460ff191692151592909217909155600190600890610a67601590565b60ff1660ff1681526020019081526020015f205f610a89610ed960201b60201c565b60ff16815260208101919091526040015f908120805460ff191692151592909217909155600190600890610abb601f90565b60ff1660ff1681526020019081526020015f205f610add610ede60201b60201c565b60ff16815260208101919091526040015f908120805460ff191692151592909217909155600190600890610b0f602190565b60ff1660ff1681526020019081526020015f205f610b31610ba860201b60201c565b60ff16815260208101919091526040015f908120805460ff191692151592909217909155600190600890610b63602190565b60ff1660ff1681526020019081526020015f205f610b85610ed460201b60201c565b60ff16815260208101919091526040015f20805460ff1916911515919091179055565b600190565b81516001600160601b039081165f9081526003602081815260409283902086518154928801519488015160608901511515600160c81b0260ff60c81b1960ff909216600160c01b029190911661ffff60c01b199688166c01000000000000000000000000026001600160c01b0319909516929097169190911792909217939093169390931792909217815560808401516001820180546001600160a01b039283166001600160a01b03199182161790915560a086015160028401805491909316911617905560c08401518492820190610c869082611145565b509050508015610ca15781516080830151610ca19190610ee8565b6101405160a0830151835160405163046e44af60e11b81526001600160601b0390911660048201526001600160a01b03909216916340c10f19919073__$94a2c899be079b00d952d0d84fffaa5c34$__906308dc895e90602401602060405180830381865af4158015610d16573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d3a9190611093565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526001600160601b031660248201526044015f604051808303815f87803b158015610d86575f80fd5b505af1158015610d98573d5f803e3d5ffd5b505050505050565b600290565b5f8381526001602052604090819020549051630a4d29dd60e31b81526001600160601b03909116600482015273__$94a2c899be079b00d952d0d84fffaa5c34$__906352694ee890602401602060405180830381865af4158015610e0b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e2f91906111ff565b610e66578151604051631832397b60e21b81526001600160601b039091166004820152602481018490526044015b60405180910390fd5b81515f848152600160208190526040822080546001600160601b0319166001600160601b039094169390931790925560028054928301815590527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01839055610ecf8282610bad565b505050565b600a90565b600c90565b600f90565b600e90565b6001600160a01b03811615610fe6576001600160a01b0381165f908152600460208190526040918290205491516330b8415f60e01b81526001600160601b039092169082015273__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015610f68573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f8c91906111ff565b15610fb557604051633fa3dceb60e21b81526001600160a01b0382166004820152602401610e5d565b6001600160a01b0381165f90815260046020526040902080546001600160601b0319166001600160601b0384161790555b5050565b611fe2806146a683390190565b6001600160a01b038116811461100b575f80fd5b50565b5f806040838503121561101f575f80fd5b825161102a81610ff7565b602084015190925061103b81610ff7565b809150509250929050565b5f60208284031215611056575f80fd5b815161106181610ff7565b9392505050565b5f60208284031215611078575f80fd5b5051919050565b6001600160601b038116811461100b575f80fd5b5f602082840312156110a3575f80fd5b81516110618161107f565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806110d657607f821691505b6020821081036110f457634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610ecf57805f5260205f20601f840160051c8101602085101561111f5750805b601f840160051c820191505b8181101561113e575f815560010161112b565b5050505050565b81516001600160401b0381111561115e5761115e6110ae565b6111728161116c84546110c2565b846110fa565b6020601f8211600181146111a4575f831561118d5750848201515b5f19600385901b1c1916600184901b17845561113e565b5f84815260208120601f198516915b828110156111d357878501518255602094850194600190920191016111b3565b50848210156111f057868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f6020828403121561120f575f80fd5b81518015158114611061575f80fd5b60805160a05160c05160e0516101005161012051610140516133b96112ed5f395f818161035a015281816107b601528181610a9501528181610be901528181610cca015281816114ac01528181611f5b01528181612230015281816125100152612a4501525f81816103b1015281816103e80152611b2401525f8181610662015261178501525f81816104b3015281816105c9015281816112cc01528181611641015261260f01525f61052101525f81816105690152611eee01525f8181610446015261080d01526133b95ff3fe608060405234801561000f575f80fd5b50600436106102b1575f3560e01c806396f4b69e1161017b578063caed9897116100e4578063e278c9241161009e578063e74d052f11610079578063e74d052f146107e8578063f40d7c30146107fb578063fbe4b7c014610803578063fff74f6c1461080b575f80fd5b8063e278c924146107b1578063e285c9c4146107d8578063e2b178a0146107e0575f80fd5b8063caed989714610697578063d1982d88146106a8578063d2213b5b146106bb578063d39e604314610735578063d924714914610771578063dfca014214610799575f80fd5b8063b08c0b5411610135578063b08c0b54146105f3578063bf7e214f14610606578063bf8e179714610616578063c0c53b8b1461064a578063c1b8411a1461065d578063c3c5a54714610684575f80fd5b806396f4b69e14610564578063a48f42e01461058b578063a5df9e4e1461059e578063a7050a56146105b1578063abbbbd0c146105c4578063ae8dfb79146105eb575f80fd5b80632de837e01161021d5780637a9e5e4b116101d75780637a9e5e4b146104d7578063839f700c146104ec578063893d20e8146104f45780638b09a5f0146104fc5780638e7b39271461051c5780638fb3603714610543575f80fd5b80632de837e0146103e657806338bb429a1461040c5780633fe9300e1461041f578063598e2892146104415780635e546bee14610480578063644c45e0146104b1575f80fd5b8063120726c31161026e578063120726c31461035857806314afd79e1461037e57806317dc5e2a146103915780631a848cfb146103a45780632a0acc6a146103ac5780632b91e0a9146103d3575f80fd5b806301f6b5a2146102b557806301ffc9a7146102db5780630e41142e146102fe5780630e6d1de9146103185780630e9ed68b1461032057806311edceaa14610345575b5f80fd5b6102c86102c3366004612b38565b610831565b6040519081526020015b60405180910390f35b6102ee6102e9366004612b4f565b610855565b60405190151581526020016102d2565b610306610899565b60405160ff90911681526020016102d2565b61030661098b565b600b546001600160a01b03165b6040516001600160a01b0390911681526020016102d2565b6102ee610353366004612b97565b6109dd565b7f000000000000000000000000000000000000000000000000000000000000000061032d565b61032d61038c366004612bd1565b610a57565b6102ee61039f366004612bd1565b610b81565b6102c8610be6565b61032d7f000000000000000000000000000000000000000000000000000000000000000081565b6102ee6103e1366004612bd1565b610c67565b7f000000000000000000000000000000000000000000000000000000000000000061032d565b61032d61041a366004612c0b565b610caa565b61043460405180602001604052805f81525081565b6040516102d29190612c54565b6104687f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160601b0390911681526020016102d2565b61046861048e366004612bd1565b6001600160a01b03165f908152600460205260409020546001600160601b031690565b7f0000000000000000000000000000000000000000000000000000000000000000610468565b6104ea6104e5366004612bd1565b610d1d565b005b6102c8600381565b61032d610d9a565b61050f61050a366004612bd1565b610da4565b6040516102d29190612c66565b61032d7f000000000000000000000000000000000000000000000000000000000000000081565b61054b610f0b565b6040516001600160e01b031990911681526020016102d2565b6104687f000000000000000000000000000000000000000000000000000000000000000081565b61050f610599366004612c0b565b610f2d565b6104686105ac366004612e7d565b610ffd565b6104686105bf366004612eaf565b6110f5565b6104687f000000000000000000000000000000000000000000000000000000000000000081565b6102c8600281565b6104ea610601366004612f0f565b6113fd565b5f546001600160a01b031661032d565b61032d610624366004612c0b565b6001600160601b03165f908152600360205260409020600101546001600160a01b031690565b6104ea610658366004612f43565b6116c3565b61032d7f000000000000000000000000000000000000000000000000000000000000000081565b6102ee610692366004612bd1565b61188a565b600a546001600160a01b031661032d565b6104686106b6366004612e7d565b6118fe565b6106ce6106c9366004612b97565b611a7f565b6040516102d291905f60c08201905060ff835116825260ff60208401511660208301526040830151604083015260018060a01b03606084015116606083015264ffffffffff608084015116608083015264ffffffffff60a08401511660a083015292915050565b61032d610743366004612f80565b60ff9081165f908152600560209081526040808320949093168252929092529020546001600160a01b031690565b61046861077f366004612b38565b5f908152600160205260409020546001600160601b031690565b600954600160601b90046001600160a01b031661032d565b61032d7f000000000000000000000000000000000000000000000000000000000000000081565b61032d600181565b61032d611b21565b6102ee6107f6366004612c0b565b611ba2565b610306611bfb565b6002546102c8565b7f0000000000000000000000000000000000000000000000000000000000000000610468565b5f6002828154811061084557610845612fb7565b905f5260205f2001549050919050565b5f6001600160e01b031982166301ffc9a760e01b148061088557506001600160e01b03198216634871d8b760e11b145b1561089257506001919050565b505f919050565b5f73__$b659da7d8a6d2d32aa6c1e17da23dc2174$__638e4ad86c6009600c9054906101000a90046001600160a01b03166001600160a01b03166399a228e56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610905573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109299190612fcb565b6040518263ffffffff1660e01b815260040161094791815260200190565b602060405180830381865af4158015610962573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109869190612fe2565b905090565b5f6009600c9054906101000a90046001600160a01b03166001600160a01b0316630e6d1de96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610962573d5f803e3d5ffd5b6009546040516308f6e75560e11b815260ff831660048201525f91600160601b90046001600160a01b0316906311edceaa90602401602060405180830381865afa158015610a2d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a519190612ffd565b92915050565b6001600160a01b038181165f90815260046020819052604080832054905163046e44af60e11b81526001600160601b039091169181019190915290917f00000000000000000000000000000000000000000000000000000000000000001690636352211e9073__$94a2c899be079b00d952d0d84fffaa5c34$__906308dc895e906024015b602060405180830381865af4158015610af7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b1b9190613018565b6040516001600160e01b031960e084901b1681526001600160601b039091166004820152602401602060405180830381865afa158015610b5d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a519190613033565b6001600160a01b0381165f908152600460209081526040808320546001600160601b039081168452600390925280832054600160601b900490911680835290822054610bdf90600160c01b900460ff16600a5b60ff90811691161490565b9392505050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c43573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109869190612fcb565b6001600160a01b0381165f908152600460209081526040808320546001600160601b031683526003909152812054610a5190600160c01b900460ff166008610bd4565b60405163046e44af60e11b81526001600160601b03821660048201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636352211e9073__$94a2c899be079b00d952d0d84fffaa5c34$__906308dc895e90602401610adc565b5f5433906001600160a01b03168114610d585760405162d1953b60e31b81526001600160a01b03821660048201526024015b60405180910390fd5b816001600160a01b03163b5f03610d8d576040516361798f2f60e11b81526001600160a01b0383166004820152602401610d4f565b610d9682611c4d565b5050565b5f61098630610a57565b6040805160e0810182525f8082526020820181905291810182905260608082018390526080820183905260a082019290925260c08101919091526001600160a01b038083165f908152600460209081526040808320546001600160601b039081168452600380845293829020825160e08101845281548084168252600160601b81049093169481019490945260ff600160c01b8304811693850193909352600160c81b90910490911615156060830152600181015484166080830152600281015490931660a0820152908201805491929160c084019190610e849061304e565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb09061304e565b8015610efb5780601f10610ed257610100808354040283529160200191610efb565b820191905f5260205f20905b815481529060010190602001808311610ede57829003601f168201915b5050505050815250509050919050565b5f8054600160a01b900460ff16610f2157505f90565b50638fb3603760e01b90565b6040805160e0810182525f8082526020820181905291810182905260608082018390526080820183905260a082019290925260c08101919091526001600160601b038083165f90815260036020818152604092839020835160e08101855281548087168252600160601b81049096169281019290925260ff600160c01b8604811694830194909452600160c81b9094049092161515606083015260018301546001600160a01b03908116608084015260028401541660a08301528201805491929160c084019190610e849061304e565b5f61100a335b5f36611ca0565b60808201516040808401516020808601516001600160601b03165f90815260039091529190912054600160c01b900460ff166001600160a01b0383166110995760ff8083165f90815260086020908152604080832085851684529091528120549091161515900361109457828282604051639c52edaf60e01b8152600401610d4f93929190613086565b6110e3565b60ff8083165f9081526007602090815260408083208585168452909152812054909116151590036110e357828282604051639c52edaf60e01b8152600401610d4f93929190613086565b6110ec85611d96565b95945050505050565b5f6110ff33611003565b60808401516001600160a01b03811661112b57604051633eebb91d60e21b815260040160405180910390fd5b60405163037c8cb160e51b815260ff8516600482015273__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90636f91962090602401602060405180830381865af415801561117b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061119f9190612ffd565b156111c85760405163ed0967fb60e01b81526001600160a01b0382166004820152602401610d4f565b60405163037c8cb160e51b815260ff8416600482015273__$0d958e68cba84670b8f4a3f2f2686b1c6b$__90636f91962090602401602060405180830381865af4158015611218573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061123c9190612ffd565b1561126e5760405163e3d112c960e01b81526001600160a01b038216600482015260ff85166024820152604401610d4f565b61128a856040015161127e600890565b60ff9081169116141590565b156112c25760408086015190516369be9a4f60e01b81526001600160a01b038316600482015260ff9091166024820152604401610d4f565b6112f085602001517f00000000000000000000000000000000000000000000000000000000000000006122c8565b15611337576020850151604051635b3eb3df60e11b81526001600160a01b038316600482015260ff861660248201526001600160601b039091166044820152606401610d4f565b60ff8085165f908152600560209081526040808320938716835292905220546001600160a01b0316156113835780848460405163ed45a40f60e01b8152600401610d4f93929190613086565b60ff8481165f8181526005602090815260408083209488168084529482529182902080546001600160a01b0319166001600160a01b03871617905581519283528201929092527fc4761a4fab07f2d3f242a458f91e31e4ea6128fe5edc599e3436f5f66317e0da910160405180910390a16110ec85611d96565b61140633611003565b466001146114295760405163e657d2e760e01b8152466004820152602401610d4f565b815f03611454576040516391b6b54560e01b81526001600160601b0384166004820152602401610d4f565b6001600160a01b03811661148d5760405163d608eeb560e01b81526001600160601b038416600482015260248101839052604401610d4f565b60405163c2c7583960e01b815260026004820152602481018390525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063c2c7583990604401602060405180830381865afa1580156114f9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061151d9190612fcb565b90506115a08473__$94a2c899be079b00d952d0d84fffaa5c34$__63efac97cf846040518263ffffffff1660e01b815260040161155c91815260200190565b602060405180830381865af4158015611577573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061159b9190613018565b6122c8565b156115d057604051636a5a213360e01b81526001600160601b038516600482015260248101849052604401610d4f565b604080516001600160601b0386168152602081018590526001600160a01b0384168183015290517fd0d9fccd0d257e9ea3515cef639e01478a9c16c8c046bd7216820ca8b26359529181900360600190a16116bd836040518060e00160405280876001600160601b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160601b03168152602001611676600290565b60ff1681526020015f15158152602001856001600160a01b0316815260200160016001600160a01b0316815260200160405180602001604052805f8152508152505f61234d565b50505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff165f811580156117085750825b90505f8267ffffffffffffffff1660011480156117245750303b155b905081158015611732575080155b156117505760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561177a57845460ff60401b1916600160401b1785555b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146117c3576040516348fa508b60e01b815260040160405180910390fd5b600980546001600160a01b03808b16600160601b026001600160601b0390921691909117909155600a80548983166001600160a01b031991821617909155600b80549289169290911691909117905561181a612477565b600980546001600160601b0319166001600160601b0392909216919091179055831561188057845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b6001600160a01b0381165f9081526004602081905260408083205490516330b8415f60e01b81526001600160601b039091169181019190915273__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f906024015b602060405180830381865af4158015610a2d573d5f803e3d5ffd5b5f61190833611003565b6040808301516020808501516001600160601b03165f908152600382528381205460ff80851683526006909352939020549192600160c01b90048116911615611964576040516368f27c4360e11b815260040160405180910390fd5b6119d38273__$0d958e68cba84670b8f4a3f2f2686b1c6b$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af41580156119af573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bd49190612fe2565b80611a245750611a248173__$0d958e68cba84670b8f4a3f2f2686b1c6b$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af41580156119af573d5f803e3d5ffd5b80611a355750611a35816001610bd4565b80611a465750611a46816008610bd4565b15611a6e5783608001518282604051639c52edaf60e01b8152600401610d4f93929190613086565b611a7784611d96565b949350505050565b6040805160c0810182525f80825260208201819052818301819052606082018190526080820181905260a0820152600954915163d2213b5b60e01b815260ff8416600482015290916001600160a01b03600160601b909104169063d2213b5b9060240160c060405180830381865afa158015611afd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a5191906130be565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b7e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109869190613033565b6001600160601b0381165f9081526003602052604080822054905163b2466acf60e01b8152600160c01b90910460ff16600482015273__$0d958e68cba84670b8f4a3f2f2686b1c6b$__9063b2466acf906024016118e3565b5f6009600c9054906101000a90046001600160a01b03166001600160a01b031663f40d7c306040518163ffffffff1660e01b8152600401602060405180830381865afa158015610962573d5f803e3d5ffd5b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9060200160405180910390a150565b5f80611cd3611cb65f546001600160a01b031690565b8630611cc560045f898b61315c565b611cce91613183565b61268d565b9150915081611d8f5763ffffffff811615611d6c575f805460ff60a01b198116600160a01b17909155604051634a63ebf760e11b81526001600160a01b03909116906394c7d7ee90611d2d908890889088906004016131bb565b5f604051808303815f87803b158015611d44575f80fd5b505af1158015611d56573d5f803e3d5ffd5b50505f805460ff60a01b1916905550611d8f9050565b60405162d1953b60e31b81526001600160a01b0386166004820152602401610d4f565b5050505050565b60408082015160608084015160808086015160a0808801516020808a01516001600160601b038082165f90815260038085528c82208d5160e081018f5281548086168252600160601b81049095169681019690965260ff600160c01b850481169e87019e909e52600160c81b909304909c1615159984019990995260018101546001600160a01b039081169784019790975260028101549096169382019390935297840180549698959693959194929389939160c0840191611e579061304e565b80601f0160208091040260200160405190810160405280929190818152602001828054611e839061304e565b8015611ece5780601f10611ea557610100808354040283529160200191611ece565b820191905f5260205f20905b815481529060010190602001808311611eb157829003601f168201915b50505091909252505050608081015190915060014614611f4457611f12837f0000000000000000000000000000000000000000000000000000000000000000612795565b15611f4457604051633bf96e3760e01b81526001600160a01b038616600482015260ff88166024820152604401610d4f565b5f611f568789888660600151866127df565b90505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663caa0f92a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fb5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fd99190612fcb565b60405163efac97cf60e01b81526004810182905290915073__$94a2c899be079b00d952d0d84fffaa5c34$__9063efac97cf90602401602060405180830381865af415801561202a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061204e9190613018565b9950898b5f01906001600160601b031690816001600160601b0316815250508a60035f8c6001600160601b03166001600160601b031681526020019081526020015f205f820151815f015f6101000a8154816001600160601b0302191690836001600160601b031602179055506020820151815f01600c6101000a8154816001600160601b0302191690836001600160601b031602179055506040820151815f0160186101000a81548160ff021916908360ff1602179055506060820151815f0160196101000a81548160ff0219169083151502179055506080820151816001015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555060a0820151816002015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555060c0820151816003019081612193919061323e565b509050506121a18a88612831565b604080516001600160601b038c811682528716602082015260ff8b168183015289151560608201526001600160a01b038981166080830152881660a082015290517f378868470b980e00aaf3e534a055e641e5fe9dfd8da44b4250edc6ad96e983879181900360c00190a1604080516020810182525f8082529151631109bad360e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163221375a691612268918b918891906004016132f9565b6020604051808303815f875af1158015612284573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122a89190612fcb565b90508181146122b9576122b9613324565b50505050505050505050919050565b6040516399009c5160e01b81526001600160601b038084166004830152821660248201525f9073__$94a2c899be079b00d952d0d84fffaa5c34$__906399009c51906044015b602060405180830381865af4158015612329573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bdf9190612ffd565b5f8381526001602052604090819020549051630a4d29dd60e31b81526001600160601b03909116600482015273__$94a2c899be079b00d952d0d84fffaa5c34$__906352694ee890602401602060405180830381865af41580156123b3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123d79190612ffd565b612409578151604051631832397b60e21b81526001600160601b03909116600482015260248101849052604401610d4f565b81515f848152600160208190526040822080546001600160601b0319166001600160601b039094169390931790925560028054928301815590527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace018390556124728282612934565b505050565b5f80600b5f9054906101000a90046001600160a01b03166001600160a01b031663893d20e86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124c9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124ed9190613033565b604051630559ea4760e01b8152600360048201529091505f906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690630559ea4790602401602060405180830381865afa158015612555573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125799190612fcb565b60405163efac97cf60e01b81526004810182905290915073__$94a2c899be079b00d952d0d84fffaa5c34$__9063efac97cf90602401602060405180830381865af41580156125ca573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125ee9190613018565b92506126886040518060e00160405280856001600160601b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160601b03168152602001612644600390565b60ff1681525f6020808301829052600b546001600160a01b039081166040808601919091529088166060850152805191820190529081526080909101526001612934565b505090565b6040516001600160a01b03848116602483015283811660448301526001600160e01b0319831660648301525f9182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b179052516126fb9190613338565b5f60405180830381855afa9150503d805f8114612733576040519150601f19603f3d011682016040523d82523d5f602084013e612738565b606091505b5091509150811561278a57604081511061276a5780806020019051810190612760919061334e565b909450925061278a565b602081511061278a57808060200190518101906127879190612ffd565b93505b505094509492505050565b60405163c4cade9d60e01b81526001600160601b038084166004830152821660248201525f9073__$94a2c899be079b00d952d0d84fffaa5c34$__9063c4cade9d9060440161230e565b5f6127eb856021610bd4565b156127f757505f6110ec565b6001600160a01b0384166128195782156128125750806110ec565b505f6110ec565b85156128265750826110ec565b505f95945050505050565b6001600160a01b03811615610d96576001600160a01b0381165f908152600460208190526040918290205491516330b8415f60e01b81526001600160601b039092169082015273__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af41580156128b1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128d59190612ffd565b156128fe57604051633fa3dceb60e21b81526001600160a01b0382166004820152602401610d4f565b6001600160a01b0381165f90815260046020526040902080546001600160601b0384166001600160601b03199091161790555050565b81516001600160601b039081165f9081526003602081815260409283902086518154928801519488015160608901511515600160c81b0260ff60c81b1960ff909216600160c01b029190911661ffff60c01b19968816600160601b026001600160c01b0319909516929097169190911792909217939093169390931792909217815560808401516001820180546001600160a01b039283166001600160a01b03199182161790915560a086015160028401805491909316911617905560c08401518492820190612a04908261323e565b509050508015612a1f57612a1f825f01518360800151612831565b60a0820151825160405163046e44af60e11b81526001600160601b0390911660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316916340c10f199173__$94a2c899be079b00d952d0d84fffaa5c34$__906308dc895e90602401602060405180830381865af4158015612aae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ad29190613018565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526001600160601b031660248201526044015f604051808303815f87803b158015612b1e575f80fd5b505af1158015612b30573d5f803e3d5ffd5b505050505050565b5f60208284031215612b48575f80fd5b5035919050565b5f60208284031215612b5f575f80fd5b81356001600160e01b031981168114610bdf575f80fd5b60ff81168114612b84575f80fd5b50565b8035612b9281612b76565b919050565b5f60208284031215612ba7575f80fd5b8135610bdf81612b76565b6001600160a01b0381168114612b84575f80fd5b8035612b9281612bb2565b5f60208284031215612be1575f80fd5b8135610bdf81612bb2565b6001600160601b0381168114612b84575f80fd5b8035612b9281612bec565b5f60208284031215612c1b575f80fd5b8135610bdf81612bec565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610bdf6020830184612c26565b602081526001600160601b0382511660208201526001600160601b03602083015116604082015260ff60408301511660608201525f6060830151612cae608084018215159052565b5060808301516001600160a01b03811660a08401525060a08301516001600160a01b03811660c08401525060c083015160e080840152611a77610100840182612c26565b634e487b7160e01b5f52604160045260245ffd5b60405160e0810167ffffffffffffffff81118282101715612d2957612d29612cf2565b60405290565b8015158114612b84575f80fd5b8035612b9281612d2f565b5f82601f830112612d56575f80fd5b813567ffffffffffffffff811115612d7057612d70612cf2565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715612d9f57612d9f612cf2565b604052818152838201602001851015612db6575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60e08284031215612de2575f80fd5b612dea612d06565b9050612df582612c00565b8152612e0360208301612c00565b6020820152612e1460408301612b87565b6040820152612e2560608301612d3c565b6060820152612e3660808301612bc6565b6080820152612e4760a08301612bc6565b60a082015260c082013567ffffffffffffffff811115612e65575f80fd5b612e7184828501612d47565b60c08301525092915050565b5f60208284031215612e8d575f80fd5b813567ffffffffffffffff811115612ea3575f80fd5b611a7784828501612dd2565b5f805f60608486031215612ec1575f80fd5b833567ffffffffffffffff811115612ed7575f80fd5b612ee386828701612dd2565b9350506020840135612ef481612b76565b91506040840135612f0481612b76565b809150509250925092565b5f805f60608486031215612f21575f80fd5b8335612f2c81612bec565b9250602084013591506040840135612f0481612bb2565b5f805f60608486031215612f55575f80fd5b8335612f6081612bb2565b92506020840135612f7081612bb2565b91506040840135612f0481612bb2565b5f8060408385031215612f91575f80fd5b8235612f9c81612b76565b91506020830135612fac81612b76565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612fdb575f80fd5b5051919050565b5f60208284031215612ff2575f80fd5b8151610bdf81612b76565b5f6020828403121561300d575f80fd5b8151610bdf81612d2f565b5f60208284031215613028575f80fd5b8151610bdf81612bec565b5f60208284031215613043575f80fd5b8151610bdf81612bb2565b600181811c9082168061306257607f821691505b60208210810361308057634e487b7160e01b5f52602260045260245ffd5b50919050565b6001600160a01b0393909316835260ff918216602084015216604082015260600190565b805164ffffffffff81168114612b92575f80fd5b5f60c08284031280156130cf575f80fd5b5060405160c0810167ffffffffffffffff811182821017156130f3576130f3612cf2565b604052825161310181612b76565b8152602083015161311181612b76565b602082015260408381015190820152606083015161312e81612bb2565b606082015261313f608084016130aa565b608082015261315060a084016130aa565b60a08201529392505050565b5f808585111561316a575f80fd5b83861115613176575f80fd5b5050820193919092039150565b80356001600160e01b031981169060048410156131b4576001600160e01b0319600485900360031b81901b82161691505b5092915050565b6001600160a01b03841681526040602082018190528101829052818360608301375f818301606090810191909152601f909201601f1916010192915050565b601f82111561247257805f5260205f20601f840160051c8101602085101561321f5750805b601f840160051c820191505b81811015611d8f575f815560010161322b565b815167ffffffffffffffff81111561325857613258612cf2565b61326c81613266845461304e565b846131fa565b6020601f82116001811461329e575f83156132875750848201515b5f19600385901b1c1916600184901b178455611d8f565b5f84815260208120601f198516915b828110156132cd57878501518255602094850194600190920191016132ad565b50848210156132ea57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b6001600160a01b038481168252831660208201526060604082018190525f906110ec90830184612c26565b634e487b7160e01b5f52600160045260245ffd5b5f82518060208501845e5f920191825250919050565b5f806040838503121561335f575f80fd5b825161336a81612d2f565b602084015190925063ffffffff81168114612fac575f80fdfea2646970667358221220794403906a0d93de37671b613210bb9c9e24b55a2e1e3130596802c9754ba88764736f6c634300081a0033608060405234801561000f575f80fd5b50604051611fe2380380611fe283398101604081905261002e91610119565b604051806060016040528060248152602001611fbe6024913960408051808201909152600681526511125413919560d21b60208201525f61006f83826101d7565b50600161007c82826101d7565b5050506001600160a01b0381166100a65760405163019aebf560e41b815260040160405180910390fd5b600c80546001600160a01b0319166001600160a01b0383161790556100ca466100e8565b600d8190556100da90600a61038a565b600e55506004600f556103cc565b5f81815b811561011257806100fc81610395565b915061010b9050600a836103ad565b91506100ec565b9392505050565b5f60208284031215610129575f80fd5b81516001600160a01b0381168114610112575f80fd5b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061016757607f821691505b60208210810361018557634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156101d257805f5260205f20601f840160051c810160208510156101b05750805b601f840160051c820191505b818110156101cf575f81556001016101bc565b50505b505050565b81516001600160401b038111156101f0576101f061013f565b610204816101fe8454610153565b8461018b565b6020601f821160018114610236575f831561021f5750848201515b5f19600385901b1c1916600184901b1784556101cf565b5f84815260208120601f198516915b828110156102655787850151825560209485019460019092019101610245565b508482101561028257868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156102e0578085048111156102c4576102c4610291565b60018416156102d257908102905b60019390931c9280026102a9565b935093915050565b5f826102f657506001610384565b8161030257505f610384565b816001811461031857600281146103225761033e565b6001915050610384565b60ff84111561033357610333610291565b50506001821b610384565b5060208310610133831016604e8410600b8410161715610361575081810a610384565b61036d5f1984846102a5565b805f190482111561038057610380610291565b0290505b92915050565b5f61011283836102e8565b5f600182016103a6576103a6610291565b5060010190565b5f826103c757634e487b7160e01b5f52601260045260245ffd5b500490565b611be5806103d95f395ff3fe608060405234801561000f575f80fd5b50600436106101dc575f3560e01c80634f6ccce711610109578063a3f4df7e1161009e578063caa0f92a1161006e578063caa0f92a1461040c578063e985e9c514610414578063f21de1e814610427578063f76f8d7814610438575f80fd5b8063a3f4df7e146103cb578063b88d4fde146103d3578063c2c75839146103e6578063c87b56dd146103f9575f80fd5b8063862440e2116100d9578063862440e21461039557806395d89b41146103a8578063a22cb465146103b0578063a2309ff8146103c3575f80fd5b80634f6ccce714610353578063598e2892146103665780636352211e1461036f57806370a0823114610382575f80fd5b806323b872dd1161017f57806340c10f191161014f57806340c10f19146102f057806342842e0e1461030357806342966c68146103165780634f558e7914610329575f80fd5b806323b872dd146102995780632e85b1f3146102ac5780632f745c59146102b5578063342ec443146102c8575f80fd5b8063081812fc116101ba578063081812fc1461023e578063095ea7b31461026957806318160ddd1461027e578063221375a614610286575f80fd5b806301ffc9a7146101e05780630559ea471461020857806306fdde0314610229575b5f80fd5b6101f36101ee36600461150f565b61045d565b60405190151581526020015b60405180910390f35b61021b61021636600461152a565b610487565b6040519081526020016101ff565b6102316104b9565b6040516101ff919061156f565b61025161024c36600461152a565b610548565b6040516001600160a01b0390911681526020016101ff565b61027c61027736600461159c565b61056f565b005b60085461021b565b61021b61029436600461166d565b61057e565b61027c6102a73660046116c7565b610691565b61021b61083581565b61021b6102c336600461159c565b610733565b6102516102d636600461152a565b5f908152600a60205260409020546001600160a01b031690565b61027c6102fe36600461159c565b610796565b61027c6103113660046116c7565b6107ce565b61027c61032436600461152a565b6107e8565b6101f361033736600461152a565b5f908152600260205260409020546001600160a01b0316151590565b61021b61036136600461152a565b610841565b61021b61044d81565b61025161037d36600461152a565b610896565b61021b610390366004611701565b6108a0565b61027c6103a336600461171a565b6108e5565b61023161098d565b61027c6103be36600461175e565b61099c565b60105461021b565b6102316109a7565b61027c6103e1366004611797565b6109c3565b61021b6103f436600461180e565b6109e0565b61023161040736600461152a565b610a6a565b61021b610b11565b6101f361042236600461182e565b610b22565b600c546001600160a01b0316610251565b6102316040518060400160405280600681526020016511125413919560d21b81525081565b5f6001600160e01b0319821663780e9d6360e01b1480610481575061048182610b4f565b92915050565b5f600d5446600e548461049a9190611873565b6104a4919061188a565b6104af906064611873565b610481919061188a565b60605f80546104c79061189d565b80601f01602080910402602001604051908101604052809291908181526020018280546104f39061189d565b801561053e5780601f106105155761010080835404028352916020019161053e565b820191905f5260205f20905b81548152906001019060200180831161052157829003601f168201915b5050505050905090565b5f61055282610b9e565b505f828152600460205260409020546001600160a01b0316610481565b61057a828233610bd6565b5050565b600c545f906001600160a01b031633146105b257604051636db0231160e11b81523360048201526024015b60405180910390fd5b6105ba610be3565b90506001600160a01b038316156105f2575f818152600a6020526040902080546001600160a01b0319166001600160a01b0385161790555b815115610612575f818152600b602052604090206106108382611919565b505b61061d848285610c08565b6001600160a01b0383161561068a5760405163bb1e0e5960e01b81526001600160a01b0385811660048301526024820183905284169063bb1e0e59906044015f604051808303815f87803b158015610673575f80fd5b505af1158015610685573d5f803e3d5ffd5b505050505b9392505050565b61069c838383610c67565b5f818152600a60205260409020546001600160a01b03161561072e575f818152600a6020526040908190205490516373fbfdc360e11b81526001600160a01b0385811660048301528481166024830152604482018490529091169063e7f7fb86906064015f604051808303815f87803b158015610717575f80fd5b505af1158015610729573d5f803e3d5ffd5b505050505b505050565b5f61073d836108a0565b821061076e5760405163295f44f760e21b81526001600160a01b0384166004820152602481018390526044016105a9565b506001600160a01b03919091165f908152600660209081526040808320938352929052205490565b600c546001600160a01b031633146107c357604051636db0231160e11b81523360048201526024016105a9565b61057a82825f610c08565b61072e83838360405180602001604052805f8152506109c3565b600c546001600160a01b0316331461081557604051636db0231160e11b81523360048201526024016105a9565b61081e81610b9e565b5061082881610cea565b5f818152600b6020526040812061083e916114b0565b50565b5f61084b60085490565b82106108735760405163295f44f760e21b81525f6004820152602481018390526044016105a9565b60088281548110610886576108866119d4565b905f5260205f2001549050919050565b5f61048182610b9e565b5f6001600160a01b0382166108ca576040516322718ad960e21b81525f60048201526024016105a9565b506001600160a01b03165f9081526003602052604090205490565b600c546001600160a01b0316331461091257604051636db0231160e11b81523360048201526024016105a9565b80515f0361093357604051639827d56160e01b815260040160405180910390fd5b5f828152600b60205260408120805461094b9061189d565b9050111561096c576040516310500e0d60e11b815260040160405180910390fd5b61097582610b9e565b505f828152600b6020526040902061072e8282611919565b6060600180546104c79061189d565b61057a338383610d22565b604051806060016040528060248152602001611b8c6024913981565b6109ce848484610691565b6109da84848484610dc0565b50505050565b5f468203610a2057600d5482600e54856109fa9190611873565b610a04919061188a565b610a0f906064611873565b610a19919061188a565b9050610481565b5f610a2a83610ee6565b90508083610a3982600a611acb565b610a439087611873565b610a4d919061188a565b610a58906064611873565b610a62919061188a565b915050610481565b6060610a7582610b9e565b505f828152600b602052604090208054610a8e9061189d565b80601f0160208091040260200160405190810160405280929190818152602001828054610aba9061189d565b8015610b055780601f10610adc57610100808354040283529160200191610b05565b820191905f5260205f20905b815481529060010190602001808311610ae857829003601f168201915b50505050509050919050565b5f610b1d600f54610487565b905090565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205460ff1690565b5f6001600160e01b031982166380ac58cd60e01b1480610b7f57506001600160e01b03198216635b5e139f60e01b145b8061048157506301ffc9a760e01b6001600160e01b0319831614610481565b5f818152600260205260408120546001600160a01b03168061048157604051637e27328960e01b8152600481018490526024016105a9565b61072e8383836001610f10565b5f610bef600f54610487565b600f80549192505f610c0083611ad6565b919050555090565b604080518381526001600160a01b03831660208201527f453826441818dd705229212b6345c5fbc2094ee234f134ae2cb2bdf74dc1ccfe910160405180910390a160108054905f610c5883611ad6565b919050555061072e8383611014565b6001600160a01b038216610c9057604051633250574960e11b81525f60048201526024016105a9565b5f610c9c83833361102d565b9050836001600160a01b0316816001600160a01b0316146109da576040516364283d7b60e01b81526001600160a01b03808616600483015260248201849052821660448201526064016105a9565b5f610cf65f835f61102d565b90506001600160a01b03811661057a57604051637e27328960e01b8152600481018390526024016105a9565b6001600160a01b038216610d5457604051630b61174360e31b81526001600160a01b03831660048201526024016105a9565b6001600160a01b038381165f81815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b156109da57604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290610e02903390889087908790600401611aee565b6020604051808303815f875af1925050508015610e3c575060408051601f3d908101601f19168201909252610e3991810190611b2a565b60015b610ea3573d808015610e69576040519150601f19603f3d011682016040523d82523d5f602084013e610e6e565b606091505b5080515f03610e9b57604051633250574960e11b81526001600160a01b03851660048201526024016105a9565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610edf57604051633250574960e11b81526001600160a01b03851660048201526024016105a9565b5050505050565b5f81815b811561068a5780610efa81611ad6565b9150610f099050600a83611b45565b9150610eea565b8080610f2457506001600160a01b03821615155b15610fe5575f610f3384610b9e565b90506001600160a01b03831615801590610f5f5750826001600160a01b0316816001600160a01b031614155b8015610f725750610f708184610b22565b155b15610f9b5760405163a9fbf51f60e01b81526001600160a01b03841660048201526024016105a9565b8115610fe35783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b50505f90815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b61057a828260405180602001604052805f815250611100565b5f8061103a858585611116565b90506001600160a01b0381166110965761109184600880545f838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b6110b9565b846001600160a01b0316816001600160a01b0316146110b9576110b98185611208565b6001600160a01b0385166110d5576110d084611295565b6110f8565b846001600160a01b0316816001600160a01b0316146110f8576110f8858561133c565b949350505050565b61110a838361138a565b61072e5f848484610dc0565b5f828152600260205260408120546001600160a01b0390811690831615611142576111428184866113eb565b6001600160a01b0381161561117c5761115d5f855f80610f10565b6001600160a01b0381165f90815260036020526040902080545f190190555b6001600160a01b038516156111aa576001600160a01b0385165f908152600360205260409020805460010190555b5f8481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b5f611212836108a0565b5f83815260076020526040902054909150808214611263576001600160a01b0384165f9081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b505f9182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b6008545f906112a690600190611b64565b5f83815260096020526040812054600880549394509092849081106112cd576112cd6119d4565b905f5260205f200154905080600883815481106112ec576112ec6119d4565b5f91825260208083209091019290925582815260099091526040808220849055858252812055600880548061132357611323611b77565b600190038181905f5260205f20015f9055905550505050565b5f6001611348846108a0565b6113529190611b64565b6001600160a01b039093165f908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b6001600160a01b0382166113b357604051633250574960e11b81525f60048201526024016105a9565b5f6113bf83835f61102d565b90506001600160a01b0381161561072e576040516339e3563760e11b81525f60048201526024016105a9565b6113f683838361144f565b61072e576001600160a01b03831661142457604051637e27328960e01b8152600481018290526024016105a9565b60405163177e802f60e01b81526001600160a01b0383166004820152602481018290526044016105a9565b5f6001600160a01b038316158015906110f85750826001600160a01b0316846001600160a01b0316148061148857506114888484610b22565b806110f85750505f908152600460205260409020546001600160a01b03908116911614919050565b5080546114bc9061189d565b5f825580601f106114cb575050565b601f0160209004905f5260205f209081019061083e91905b808211156114f6575f81556001016114e3565b5090565b6001600160e01b03198116811461083e575f80fd5b5f6020828403121561151f575f80fd5b813561068a816114fa565b5f6020828403121561153a575f80fd5b5035919050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f61068a6020830184611541565b80356001600160a01b0381168114611597575f80fd5b919050565b5f80604083850312156115ad575f80fd5b6115b683611581565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b5f8067ffffffffffffffff8411156115f2576115f26115c4565b50604051601f19601f85018116603f0116810181811067ffffffffffffffff82111715611621576116216115c4565b604052838152905080828401851015611638575f80fd5b838360208301375f60208583010152509392505050565b5f82601f83011261165e575f80fd5b61068a838335602085016115d8565b5f805f6060848603121561167f575f80fd5b61168884611581565b925061169660208501611581565b9150604084013567ffffffffffffffff8111156116b1575f80fd5b6116bd8682870161164f565b9150509250925092565b5f805f606084860312156116d9575f80fd5b6116e284611581565b92506116f060208501611581565b929592945050506040919091013590565b5f60208284031215611711575f80fd5b61068a82611581565b5f806040838503121561172b575f80fd5b82359150602083013567ffffffffffffffff811115611748575f80fd5b6117548582860161164f565b9150509250929050565b5f806040838503121561176f575f80fd5b61177883611581565b91506020830135801515811461178c575f80fd5b809150509250929050565b5f805f80608085870312156117aa575f80fd5b6117b385611581565b93506117c160208601611581565b925060408501359150606085013567ffffffffffffffff8111156117e3575f80fd5b8501601f810187136117f3575f80fd5b611802878235602084016115d8565b91505092959194509250565b5f806040838503121561181f575f80fd5b50508035926020909101359150565b5f806040838503121561183f575f80fd5b61184883611581565b915061185660208401611581565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176104815761048161185f565b808201808211156104815761048161185f565b600181811c908216806118b157607f821691505b6020821081036118cf57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561072e57805f5260205f20601f840160051c810160208510156118fa5750805b601f840160051c820191505b81811015610edf575f8155600101611906565b815167ffffffffffffffff811115611933576119336115c4565b61194781611941845461189d565b846118d5565b6020601f821160018114611979575f83156119625750848201515b5f19600385901b1c1916600184901b178455610edf565b5f84815260208120601f198516915b828110156119a85787850151825560209485019460019092019101611988565b50848210156119c557868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b5f52603260045260245ffd5b6001815b6001841115611a2357808504811115611a0757611a0761185f565b6001841615611a1557908102905b60019390931c9280026119ec565b935093915050565b5f82611a3957506001610481565b81611a4557505f610481565b8160018114611a5b5760028114611a6557611a81565b6001915050610481565b60ff841115611a7657611a7661185f565b50506001821b610481565b5060208310610133831016604e8410600b8410161715611aa4575081810a610481565b611ab05f1984846119e8565b805f1904821115611ac357611ac361185f565b029392505050565b5f61068a8383611a2b565b5f60018201611ae757611ae761185f565b5060010190565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f90611b2090830184611541565b9695505050505050565b5f60208284031215611b3a575f80fd5b815161068a816114fa565b5f82611b5f57634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156104815761048161185f565b634e487b7160e01b5f52603160045260245ffdfe44657a656e7472616c697a656420496e737572616e63652050726f746f636f6c204e4654a2646970667358221220088a8a12ef78b7fb1df8cf7c80e97359552c2e07b9c34afcb9f37b994bbea67764736f6c634300081a003344657a656e7472616c697a656420496e737572616e63652050726f746f636f6c204e4654",
         | 
| 1406 | 
            +
              "deployedBytecode": "0x608060405234801561000f575f80fd5b50600436106102b1575f3560e01c806396f4b69e1161017b578063caed9897116100e4578063e278c9241161009e578063e74d052f11610079578063e74d052f146107e8578063f40d7c30146107fb578063fbe4b7c014610803578063fff74f6c1461080b575f80fd5b8063e278c924146107b1578063e285c9c4146107d8578063e2b178a0146107e0575f80fd5b8063caed989714610697578063d1982d88146106a8578063d2213b5b146106bb578063d39e604314610735578063d924714914610771578063dfca014214610799575f80fd5b8063b08c0b5411610135578063b08c0b54146105f3578063bf7e214f14610606578063bf8e179714610616578063c0c53b8b1461064a578063c1b8411a1461065d578063c3c5a54714610684575f80fd5b806396f4b69e14610564578063a48f42e01461058b578063a5df9e4e1461059e578063a7050a56146105b1578063abbbbd0c146105c4578063ae8dfb79146105eb575f80fd5b80632de837e01161021d5780637a9e5e4b116101d75780637a9e5e4b146104d7578063839f700c146104ec578063893d20e8146104f45780638b09a5f0146104fc5780638e7b39271461051c5780638fb3603714610543575f80fd5b80632de837e0146103e657806338bb429a1461040c5780633fe9300e1461041f578063598e2892146104415780635e546bee14610480578063644c45e0146104b1575f80fd5b8063120726c31161026e578063120726c31461035857806314afd79e1461037e57806317dc5e2a146103915780631a848cfb146103a45780632a0acc6a146103ac5780632b91e0a9146103d3575f80fd5b806301f6b5a2146102b557806301ffc9a7146102db5780630e41142e146102fe5780630e6d1de9146103185780630e9ed68b1461032057806311edceaa14610345575b5f80fd5b6102c86102c3366004612b38565b610831565b6040519081526020015b60405180910390f35b6102ee6102e9366004612b4f565b610855565b60405190151581526020016102d2565b610306610899565b60405160ff90911681526020016102d2565b61030661098b565b600b546001600160a01b03165b6040516001600160a01b0390911681526020016102d2565b6102ee610353366004612b97565b6109dd565b7f000000000000000000000000000000000000000000000000000000000000000061032d565b61032d61038c366004612bd1565b610a57565b6102ee61039f366004612bd1565b610b81565b6102c8610be6565b61032d7f000000000000000000000000000000000000000000000000000000000000000081565b6102ee6103e1366004612bd1565b610c67565b7f000000000000000000000000000000000000000000000000000000000000000061032d565b61032d61041a366004612c0b565b610caa565b61043460405180602001604052805f81525081565b6040516102d29190612c54565b6104687f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160601b0390911681526020016102d2565b61046861048e366004612bd1565b6001600160a01b03165f908152600460205260409020546001600160601b031690565b7f0000000000000000000000000000000000000000000000000000000000000000610468565b6104ea6104e5366004612bd1565b610d1d565b005b6102c8600381565b61032d610d9a565b61050f61050a366004612bd1565b610da4565b6040516102d29190612c66565b61032d7f000000000000000000000000000000000000000000000000000000000000000081565b61054b610f0b565b6040516001600160e01b031990911681526020016102d2565b6104687f000000000000000000000000000000000000000000000000000000000000000081565b61050f610599366004612c0b565b610f2d565b6104686105ac366004612e7d565b610ffd565b6104686105bf366004612eaf565b6110f5565b6104687f000000000000000000000000000000000000000000000000000000000000000081565b6102c8600281565b6104ea610601366004612f0f565b6113fd565b5f546001600160a01b031661032d565b61032d610624366004612c0b565b6001600160601b03165f908152600360205260409020600101546001600160a01b031690565b6104ea610658366004612f43565b6116c3565b61032d7f000000000000000000000000000000000000000000000000000000000000000081565b6102ee610692366004612bd1565b61188a565b600a546001600160a01b031661032d565b6104686106b6366004612e7d565b6118fe565b6106ce6106c9366004612b97565b611a7f565b6040516102d291905f60c08201905060ff835116825260ff60208401511660208301526040830151604083015260018060a01b03606084015116606083015264ffffffffff608084015116608083015264ffffffffff60a08401511660a083015292915050565b61032d610743366004612f80565b60ff9081165f908152600560209081526040808320949093168252929092529020546001600160a01b031690565b61046861077f366004612b38565b5f908152600160205260409020546001600160601b031690565b600954600160601b90046001600160a01b031661032d565b61032d7f000000000000000000000000000000000000000000000000000000000000000081565b61032d600181565b61032d611b21565b6102ee6107f6366004612c0b565b611ba2565b610306611bfb565b6002546102c8565b7f0000000000000000000000000000000000000000000000000000000000000000610468565b5f6002828154811061084557610845612fb7565b905f5260205f2001549050919050565b5f6001600160e01b031982166301ffc9a760e01b148061088557506001600160e01b03198216634871d8b760e11b145b1561089257506001919050565b505f919050565b5f73__$b659da7d8a6d2d32aa6c1e17da23dc2174$__638e4ad86c6009600c9054906101000a90046001600160a01b03166001600160a01b03166399a228e56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610905573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109299190612fcb565b6040518263ffffffff1660e01b815260040161094791815260200190565b602060405180830381865af4158015610962573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109869190612fe2565b905090565b5f6009600c9054906101000a90046001600160a01b03166001600160a01b0316630e6d1de96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610962573d5f803e3d5ffd5b6009546040516308f6e75560e11b815260ff831660048201525f91600160601b90046001600160a01b0316906311edceaa90602401602060405180830381865afa158015610a2d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a519190612ffd565b92915050565b6001600160a01b038181165f90815260046020819052604080832054905163046e44af60e11b81526001600160601b039091169181019190915290917f00000000000000000000000000000000000000000000000000000000000000001690636352211e9073__$94a2c899be079b00d952d0d84fffaa5c34$__906308dc895e906024015b602060405180830381865af4158015610af7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b1b9190613018565b6040516001600160e01b031960e084901b1681526001600160601b039091166004820152602401602060405180830381865afa158015610b5d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a519190613033565b6001600160a01b0381165f908152600460209081526040808320546001600160601b039081168452600390925280832054600160601b900490911680835290822054610bdf90600160c01b900460ff16600a5b60ff90811691161490565b9392505050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c43573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109869190612fcb565b6001600160a01b0381165f908152600460209081526040808320546001600160601b031683526003909152812054610a5190600160c01b900460ff166008610bd4565b60405163046e44af60e11b81526001600160601b03821660048201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636352211e9073__$94a2c899be079b00d952d0d84fffaa5c34$__906308dc895e90602401610adc565b5f5433906001600160a01b03168114610d585760405162d1953b60e31b81526001600160a01b03821660048201526024015b60405180910390fd5b816001600160a01b03163b5f03610d8d576040516361798f2f60e11b81526001600160a01b0383166004820152602401610d4f565b610d9682611c4d565b5050565b5f61098630610a57565b6040805160e0810182525f8082526020820181905291810182905260608082018390526080820183905260a082019290925260c08101919091526001600160a01b038083165f908152600460209081526040808320546001600160601b039081168452600380845293829020825160e08101845281548084168252600160601b81049093169481019490945260ff600160c01b8304811693850193909352600160c81b90910490911615156060830152600181015484166080830152600281015490931660a0820152908201805491929160c084019190610e849061304e565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb09061304e565b8015610efb5780601f10610ed257610100808354040283529160200191610efb565b820191905f5260205f20905b815481529060010190602001808311610ede57829003601f168201915b5050505050815250509050919050565b5f8054600160a01b900460ff16610f2157505f90565b50638fb3603760e01b90565b6040805160e0810182525f8082526020820181905291810182905260608082018390526080820183905260a082019290925260c08101919091526001600160601b038083165f90815260036020818152604092839020835160e08101855281548087168252600160601b81049096169281019290925260ff600160c01b8604811694830194909452600160c81b9094049092161515606083015260018301546001600160a01b03908116608084015260028401541660a08301528201805491929160c084019190610e849061304e565b5f61100a335b5f36611ca0565b60808201516040808401516020808601516001600160601b03165f90815260039091529190912054600160c01b900460ff166001600160a01b0383166110995760ff8083165f90815260086020908152604080832085851684529091528120549091161515900361109457828282604051639c52edaf60e01b8152600401610d4f93929190613086565b6110e3565b60ff8083165f9081526007602090815260408083208585168452909152812054909116151590036110e357828282604051639c52edaf60e01b8152600401610d4f93929190613086565b6110ec85611d96565b95945050505050565b5f6110ff33611003565b60808401516001600160a01b03811661112b57604051633eebb91d60e21b815260040160405180910390fd5b60405163037c8cb160e51b815260ff8516600482015273__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90636f91962090602401602060405180830381865af415801561117b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061119f9190612ffd565b156111c85760405163ed0967fb60e01b81526001600160a01b0382166004820152602401610d4f565b60405163037c8cb160e51b815260ff8416600482015273__$0d958e68cba84670b8f4a3f2f2686b1c6b$__90636f91962090602401602060405180830381865af4158015611218573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061123c9190612ffd565b1561126e5760405163e3d112c960e01b81526001600160a01b038216600482015260ff85166024820152604401610d4f565b61128a856040015161127e600890565b60ff9081169116141590565b156112c25760408086015190516369be9a4f60e01b81526001600160a01b038316600482015260ff9091166024820152604401610d4f565b6112f085602001517f00000000000000000000000000000000000000000000000000000000000000006122c8565b15611337576020850151604051635b3eb3df60e11b81526001600160a01b038316600482015260ff861660248201526001600160601b039091166044820152606401610d4f565b60ff8085165f908152600560209081526040808320938716835292905220546001600160a01b0316156113835780848460405163ed45a40f60e01b8152600401610d4f93929190613086565b60ff8481165f8181526005602090815260408083209488168084529482529182902080546001600160a01b0319166001600160a01b03871617905581519283528201929092527fc4761a4fab07f2d3f242a458f91e31e4ea6128fe5edc599e3436f5f66317e0da910160405180910390a16110ec85611d96565b61140633611003565b466001146114295760405163e657d2e760e01b8152466004820152602401610d4f565b815f03611454576040516391b6b54560e01b81526001600160601b0384166004820152602401610d4f565b6001600160a01b03811661148d5760405163d608eeb560e01b81526001600160601b038416600482015260248101839052604401610d4f565b60405163c2c7583960e01b815260026004820152602481018390525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063c2c7583990604401602060405180830381865afa1580156114f9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061151d9190612fcb565b90506115a08473__$94a2c899be079b00d952d0d84fffaa5c34$__63efac97cf846040518263ffffffff1660e01b815260040161155c91815260200190565b602060405180830381865af4158015611577573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061159b9190613018565b6122c8565b156115d057604051636a5a213360e01b81526001600160601b038516600482015260248101849052604401610d4f565b604080516001600160601b0386168152602081018590526001600160a01b0384168183015290517fd0d9fccd0d257e9ea3515cef639e01478a9c16c8c046bd7216820ca8b26359529181900360600190a16116bd836040518060e00160405280876001600160601b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160601b03168152602001611676600290565b60ff1681526020015f15158152602001856001600160a01b0316815260200160016001600160a01b0316815260200160405180602001604052805f8152508152505f61234d565b50505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff165f811580156117085750825b90505f8267ffffffffffffffff1660011480156117245750303b155b905081158015611732575080155b156117505760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561177a57845460ff60401b1916600160401b1785555b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146117c3576040516348fa508b60e01b815260040160405180910390fd5b600980546001600160a01b03808b16600160601b026001600160601b0390921691909117909155600a80548983166001600160a01b031991821617909155600b80549289169290911691909117905561181a612477565b600980546001600160601b0319166001600160601b0392909216919091179055831561188057845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b6001600160a01b0381165f9081526004602081905260408083205490516330b8415f60e01b81526001600160601b039091169181019190915273__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f906024015b602060405180830381865af4158015610a2d573d5f803e3d5ffd5b5f61190833611003565b6040808301516020808501516001600160601b03165f908152600382528381205460ff80851683526006909352939020549192600160c01b90048116911615611964576040516368f27c4360e11b815260040160405180910390fd5b6119d38273__$0d958e68cba84670b8f4a3f2f2686b1c6b$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af41580156119af573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bd49190612fe2565b80611a245750611a248173__$0d958e68cba84670b8f4a3f2f2686b1c6b$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af41580156119af573d5f803e3d5ffd5b80611a355750611a35816001610bd4565b80611a465750611a46816008610bd4565b15611a6e5783608001518282604051639c52edaf60e01b8152600401610d4f93929190613086565b611a7784611d96565b949350505050565b6040805160c0810182525f80825260208201819052818301819052606082018190526080820181905260a0820152600954915163d2213b5b60e01b815260ff8416600482015290916001600160a01b03600160601b909104169063d2213b5b9060240160c060405180830381865afa158015611afd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a5191906130be565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b7e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109869190613033565b6001600160601b0381165f9081526003602052604080822054905163b2466acf60e01b8152600160c01b90910460ff16600482015273__$0d958e68cba84670b8f4a3f2f2686b1c6b$__9063b2466acf906024016118e3565b5f6009600c9054906101000a90046001600160a01b03166001600160a01b031663f40d7c306040518163ffffffff1660e01b8152600401602060405180830381865afa158015610962573d5f803e3d5ffd5b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9060200160405180910390a150565b5f80611cd3611cb65f546001600160a01b031690565b8630611cc560045f898b61315c565b611cce91613183565b61268d565b9150915081611d8f5763ffffffff811615611d6c575f805460ff60a01b198116600160a01b17909155604051634a63ebf760e11b81526001600160a01b03909116906394c7d7ee90611d2d908890889088906004016131bb565b5f604051808303815f87803b158015611d44575f80fd5b505af1158015611d56573d5f803e3d5ffd5b50505f805460ff60a01b1916905550611d8f9050565b60405162d1953b60e31b81526001600160a01b0386166004820152602401610d4f565b5050505050565b60408082015160608084015160808086015160a0808801516020808a01516001600160601b038082165f90815260038085528c82208d5160e081018f5281548086168252600160601b81049095169681019690965260ff600160c01b850481169e87019e909e52600160c81b909304909c1615159984019990995260018101546001600160a01b039081169784019790975260028101549096169382019390935297840180549698959693959194929389939160c0840191611e579061304e565b80601f0160208091040260200160405190810160405280929190818152602001828054611e839061304e565b8015611ece5780601f10611ea557610100808354040283529160200191611ece565b820191905f5260205f20905b815481529060010190602001808311611eb157829003601f168201915b50505091909252505050608081015190915060014614611f4457611f12837f0000000000000000000000000000000000000000000000000000000000000000612795565b15611f4457604051633bf96e3760e01b81526001600160a01b038616600482015260ff88166024820152604401610d4f565b5f611f568789888660600151866127df565b90505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663caa0f92a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fb5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fd99190612fcb565b60405163efac97cf60e01b81526004810182905290915073__$94a2c899be079b00d952d0d84fffaa5c34$__9063efac97cf90602401602060405180830381865af415801561202a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061204e9190613018565b9950898b5f01906001600160601b031690816001600160601b0316815250508a60035f8c6001600160601b03166001600160601b031681526020019081526020015f205f820151815f015f6101000a8154816001600160601b0302191690836001600160601b031602179055506020820151815f01600c6101000a8154816001600160601b0302191690836001600160601b031602179055506040820151815f0160186101000a81548160ff021916908360ff1602179055506060820151815f0160196101000a81548160ff0219169083151502179055506080820151816001015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555060a0820151816002015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555060c0820151816003019081612193919061323e565b509050506121a18a88612831565b604080516001600160601b038c811682528716602082015260ff8b168183015289151560608201526001600160a01b038981166080830152881660a082015290517f378868470b980e00aaf3e534a055e641e5fe9dfd8da44b4250edc6ad96e983879181900360c00190a1604080516020810182525f8082529151631109bad360e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163221375a691612268918b918891906004016132f9565b6020604051808303815f875af1158015612284573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122a89190612fcb565b90508181146122b9576122b9613324565b50505050505050505050919050565b6040516399009c5160e01b81526001600160601b038084166004830152821660248201525f9073__$94a2c899be079b00d952d0d84fffaa5c34$__906399009c51906044015b602060405180830381865af4158015612329573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bdf9190612ffd565b5f8381526001602052604090819020549051630a4d29dd60e31b81526001600160601b03909116600482015273__$94a2c899be079b00d952d0d84fffaa5c34$__906352694ee890602401602060405180830381865af41580156123b3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123d79190612ffd565b612409578151604051631832397b60e21b81526001600160601b03909116600482015260248101849052604401610d4f565b81515f848152600160208190526040822080546001600160601b0319166001600160601b039094169390931790925560028054928301815590527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace018390556124728282612934565b505050565b5f80600b5f9054906101000a90046001600160a01b03166001600160a01b031663893d20e86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124c9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124ed9190613033565b604051630559ea4760e01b8152600360048201529091505f906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690630559ea4790602401602060405180830381865afa158015612555573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125799190612fcb565b60405163efac97cf60e01b81526004810182905290915073__$94a2c899be079b00d952d0d84fffaa5c34$__9063efac97cf90602401602060405180830381865af41580156125ca573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125ee9190613018565b92506126886040518060e00160405280856001600160601b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160601b03168152602001612644600390565b60ff1681525f6020808301829052600b546001600160a01b039081166040808601919091529088166060850152805191820190529081526080909101526001612934565b505090565b6040516001600160a01b03848116602483015283811660448301526001600160e01b0319831660648301525f9182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b179052516126fb9190613338565b5f60405180830381855afa9150503d805f8114612733576040519150601f19603f3d011682016040523d82523d5f602084013e612738565b606091505b5091509150811561278a57604081511061276a5780806020019051810190612760919061334e565b909450925061278a565b602081511061278a57808060200190518101906127879190612ffd565b93505b505094509492505050565b60405163c4cade9d60e01b81526001600160601b038084166004830152821660248201525f9073__$94a2c899be079b00d952d0d84fffaa5c34$__9063c4cade9d9060440161230e565b5f6127eb856021610bd4565b156127f757505f6110ec565b6001600160a01b0384166128195782156128125750806110ec565b505f6110ec565b85156128265750826110ec565b505f95945050505050565b6001600160a01b03811615610d96576001600160a01b0381165f908152600460208190526040918290205491516330b8415f60e01b81526001600160601b039092169082015273__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af41580156128b1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128d59190612ffd565b156128fe57604051633fa3dceb60e21b81526001600160a01b0382166004820152602401610d4f565b6001600160a01b0381165f90815260046020526040902080546001600160601b0384166001600160601b03199091161790555050565b81516001600160601b039081165f9081526003602081815260409283902086518154928801519488015160608901511515600160c81b0260ff60c81b1960ff909216600160c01b029190911661ffff60c01b19968816600160601b026001600160c01b0319909516929097169190911792909217939093169390931792909217815560808401516001820180546001600160a01b039283166001600160a01b03199182161790915560a086015160028401805491909316911617905560c08401518492820190612a04908261323e565b509050508015612a1f57612a1f825f01518360800151612831565b60a0820151825160405163046e44af60e11b81526001600160601b0390911660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316916340c10f199173__$94a2c899be079b00d952d0d84fffaa5c34$__906308dc895e90602401602060405180830381865af4158015612aae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ad29190613018565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526001600160601b031660248201526044015f604051808303815f87803b158015612b1e575f80fd5b505af1158015612b30573d5f803e3d5ffd5b505050505050565b5f60208284031215612b48575f80fd5b5035919050565b5f60208284031215612b5f575f80fd5b81356001600160e01b031981168114610bdf575f80fd5b60ff81168114612b84575f80fd5b50565b8035612b9281612b76565b919050565b5f60208284031215612ba7575f80fd5b8135610bdf81612b76565b6001600160a01b0381168114612b84575f80fd5b8035612b9281612bb2565b5f60208284031215612be1575f80fd5b8135610bdf81612bb2565b6001600160601b0381168114612b84575f80fd5b8035612b9281612bec565b5f60208284031215612c1b575f80fd5b8135610bdf81612bec565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610bdf6020830184612c26565b602081526001600160601b0382511660208201526001600160601b03602083015116604082015260ff60408301511660608201525f6060830151612cae608084018215159052565b5060808301516001600160a01b03811660a08401525060a08301516001600160a01b03811660c08401525060c083015160e080840152611a77610100840182612c26565b634e487b7160e01b5f52604160045260245ffd5b60405160e0810167ffffffffffffffff81118282101715612d2957612d29612cf2565b60405290565b8015158114612b84575f80fd5b8035612b9281612d2f565b5f82601f830112612d56575f80fd5b813567ffffffffffffffff811115612d7057612d70612cf2565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715612d9f57612d9f612cf2565b604052818152838201602001851015612db6575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60e08284031215612de2575f80fd5b612dea612d06565b9050612df582612c00565b8152612e0360208301612c00565b6020820152612e1460408301612b87565b6040820152612e2560608301612d3c565b6060820152612e3660808301612bc6565b6080820152612e4760a08301612bc6565b60a082015260c082013567ffffffffffffffff811115612e65575f80fd5b612e7184828501612d47565b60c08301525092915050565b5f60208284031215612e8d575f80fd5b813567ffffffffffffffff811115612ea3575f80fd5b611a7784828501612dd2565b5f805f60608486031215612ec1575f80fd5b833567ffffffffffffffff811115612ed7575f80fd5b612ee386828701612dd2565b9350506020840135612ef481612b76565b91506040840135612f0481612b76565b809150509250925092565b5f805f60608486031215612f21575f80fd5b8335612f2c81612bec565b9250602084013591506040840135612f0481612bb2565b5f805f60608486031215612f55575f80fd5b8335612f6081612bb2565b92506020840135612f7081612bb2565b91506040840135612f0481612bb2565b5f8060408385031215612f91575f80fd5b8235612f9c81612b76565b91506020830135612fac81612b76565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612fdb575f80fd5b5051919050565b5f60208284031215612ff2575f80fd5b8151610bdf81612b76565b5f6020828403121561300d575f80fd5b8151610bdf81612d2f565b5f60208284031215613028575f80fd5b8151610bdf81612bec565b5f60208284031215613043575f80fd5b8151610bdf81612bb2565b600181811c9082168061306257607f821691505b60208210810361308057634e487b7160e01b5f52602260045260245ffd5b50919050565b6001600160a01b0393909316835260ff918216602084015216604082015260600190565b805164ffffffffff81168114612b92575f80fd5b5f60c08284031280156130cf575f80fd5b5060405160c0810167ffffffffffffffff811182821017156130f3576130f3612cf2565b604052825161310181612b76565b8152602083015161311181612b76565b602082015260408381015190820152606083015161312e81612bb2565b606082015261313f608084016130aa565b608082015261315060a084016130aa565b60a08201529392505050565b5f808585111561316a575f80fd5b83861115613176575f80fd5b5050820193919092039150565b80356001600160e01b031981169060048410156131b4576001600160e01b0319600485900360031b81901b82161691505b5092915050565b6001600160a01b03841681526040602082018190528101829052818360608301375f818301606090810191909152601f909201601f1916010192915050565b601f82111561247257805f5260205f20601f840160051c8101602085101561321f5750805b601f840160051c820191505b81811015611d8f575f815560010161322b565b815167ffffffffffffffff81111561325857613258612cf2565b61326c81613266845461304e565b846131fa565b6020601f82116001811461329e575f83156132875750848201515b5f19600385901b1c1916600184901b178455611d8f565b5f84815260208120601f198516915b828110156132cd57878501518255602094850194600190920191016132ad565b50848210156132ea57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b6001600160a01b038481168252831660208201526060604082018190525f906110ec90830184612c26565b634e487b7160e01b5f52600160045260245ffd5b5f82518060208501845e5f920191825250919050565b5f806040838503121561335f575f80fd5b825161336a81612d2f565b602084015190925063ffffffff81168114612fac575f80fdfea2646970667358221220794403906a0d93de37671b613210bb9c9e24b55a2e1e3130596802c9754ba88764736f6c634300081a0033",
         | 
| 1078 1407 | 
             
              "linkReferences": {
         | 
| 1079 1408 | 
             
                "contracts/type/NftId.sol": {
         | 
| 1080 1409 | 
             
                  "NftIdLib": [
         | 
| 1081 1410 | 
             
                    {
         | 
| 1082 1411 | 
             
                      "length": 20,
         | 
| 1083 | 
            -
                      "start":  | 
| 1412 | 
            +
                      "start": 277
         | 
| 1413 | 
            +
                    },
         | 
| 1414 | 
            +
                    {
         | 
| 1415 | 
            +
                      "length": 20,
         | 
| 1416 | 
            +
                      "start": 789
         | 
| 1417 | 
            +
                    },
         | 
| 1418 | 
            +
                    {
         | 
| 1419 | 
            +
                      "length": 20,
         | 
| 1420 | 
            +
                      "start": 914
         | 
| 1421 | 
            +
                    },
         | 
| 1422 | 
            +
                    {
         | 
| 1423 | 
            +
                      "length": 20,
         | 
| 1424 | 
            +
                      "start": 1225
         | 
| 1084 1425 | 
             
                    },
         | 
| 1085 1426 | 
             
                    {
         | 
| 1086 1427 | 
             
                      "length": 20,
         | 
| 1087 | 
            -
                      "start":  | 
| 1428 | 
            +
                      "start": 3294
         | 
| 1088 1429 | 
             
                    },
         | 
| 1089 1430 | 
             
                    {
         | 
| 1090 1431 | 
             
                      "length": 20,
         | 
| 1091 | 
            -
                      "start":  | 
| 1432 | 
            +
                      "start": 3539
         | 
| 1092 1433 | 
             
                    },
         | 
| 1093 1434 | 
             
                    {
         | 
| 1094 1435 | 
             
                      "length": 20,
         | 
| 1095 | 
            -
                      "start":  | 
| 1436 | 
            +
                      "start": 3888
         | 
| 1096 1437 | 
             
                    },
         | 
| 1097 1438 | 
             
                    {
         | 
| 1098 1439 | 
             
                      "length": 20,
         | 
| 1099 | 
            -
                      "start":  | 
| 1440 | 
            +
                      "start": 7595
         | 
| 1100 1441 | 
             
                    },
         | 
| 1101 1442 | 
             
                    {
         | 
| 1102 1443 | 
             
                      "length": 20,
         | 
| 1103 | 
            -
                      "start":  | 
| 1444 | 
            +
                      "start": 8168
         | 
| 1104 1445 | 
             
                    },
         | 
| 1105 1446 | 
             
                    {
         | 
| 1106 1447 | 
             
                      "length": 20,
         | 
| 1107 | 
            -
                      "start":  | 
| 1448 | 
            +
                      "start": 10258
         | 
| 1108 1449 | 
             
                    },
         | 
| 1109 1450 | 
             
                    {
         | 
| 1110 1451 | 
             
                      "length": 20,
         | 
| 1111 | 
            -
                      "start":  | 
| 1452 | 
            +
                      "start": 11186
         | 
| 1112 1453 | 
             
                    },
         | 
| 1113 1454 | 
             
                    {
         | 
| 1114 1455 | 
             
                      "length": 20,
         | 
| 1115 | 
            -
                      "start":  | 
| 1456 | 
            +
                      "start": 13023
         | 
| 1116 1457 | 
             
                    },
         | 
| 1117 1458 | 
             
                    {
         | 
| 1118 1459 | 
             
                      "length": 20,
         | 
| 1119 | 
            -
                      "start":  | 
| 1460 | 
            +
                      "start": 13789
         | 
| 1120 1461 | 
             
                    },
         | 
| 1121 1462 | 
             
                    {
         | 
| 1122 1463 | 
             
                      "length": 20,
         | 
| 1123 | 
            -
                      "start":  | 
| 1464 | 
            +
                      "start": 13928
         | 
| 1124 1465 | 
             
                    },
         | 
| 1125 1466 | 
             
                    {
         | 
| 1126 1467 | 
             
                      "length": 20,
         | 
| 1127 | 
            -
                      "start":  | 
| 1468 | 
            +
                      "start": 14463
         | 
| 1469 | 
            +
                    },
         | 
| 1470 | 
            +
                    {
         | 
| 1471 | 
            +
                      "length": 20,
         | 
| 1472 | 
            +
                      "start": 15018
         | 
| 1473 | 
            +
                    },
         | 
| 1474 | 
            +
                    {
         | 
| 1475 | 
            +
                      "length": 20,
         | 
| 1476 | 
            +
                      "start": 15206
         | 
| 1477 | 
            +
                    },
         | 
| 1478 | 
            +
                    {
         | 
| 1479 | 
            +
                      "length": 20,
         | 
| 1480 | 
            +
                      "start": 15715
         | 
| 1128 1481 | 
             
                    }
         | 
| 1129 1482 | 
             
                  ]
         | 
| 1130 1483 | 
             
                },
         | 
| @@ -1132,11 +1485,31 @@ | |
| 1132 1485 | 
             
                  "ObjectTypeLib": [
         | 
| 1133 1486 | 
             
                    {
         | 
| 1134 1487 | 
             
                      "length": 20,
         | 
| 1135 | 
            -
                      "start":  | 
| 1488 | 
            +
                      "start": 9421
         | 
| 1489 | 
            +
                    },
         | 
| 1490 | 
            +
                    {
         | 
| 1491 | 
            +
                      "length": 20,
         | 
| 1492 | 
            +
                      "start": 11351
         | 
| 1493 | 
            +
                    },
         | 
| 1494 | 
            +
                    {
         | 
| 1495 | 
            +
                      "length": 20,
         | 
| 1496 | 
            +
                      "start": 11468
         | 
| 1136 1497 | 
             
                    },
         | 
| 1137 1498 | 
             
                    {
         | 
| 1138 1499 | 
             
                      "length": 20,
         | 
| 1139 | 
            -
                      "start":  | 
| 1500 | 
            +
                      "start": 11974
         | 
| 1501 | 
            +
                    }
         | 
| 1502 | 
            +
                  ]
         | 
| 1503 | 
            +
                },
         | 
| 1504 | 
            +
                "contracts/type/Version.sol": {
         | 
| 1505 | 
            +
                  "VersionPartLib": [
         | 
| 1506 | 
            +
                    {
         | 
| 1507 | 
            +
                      "length": 20,
         | 
| 1508 | 
            +
                      "start": 7049
         | 
| 1509 | 
            +
                    },
         | 
| 1510 | 
            +
                    {
         | 
| 1511 | 
            +
                      "length": 20,
         | 
| 1512 | 
            +
                      "start": 9264
         | 
| 1140 1513 | 
             
                    }
         | 
| 1141 1514 | 
             
                  ]
         | 
| 1142 1515 | 
             
                }
         | 
| @@ -1146,27 +1519,47 @@ | |
| 1146 1519 | 
             
                  "NftIdLib": [
         | 
| 1147 1520 | 
             
                    {
         | 
| 1148 1521 | 
             
                      "length": 20,
         | 
| 1149 | 
            -
                      "start":  | 
| 1522 | 
            +
                      "start": 2750
         | 
| 1523 | 
            +
                    },
         | 
| 1524 | 
            +
                    {
         | 
| 1525 | 
            +
                      "length": 20,
         | 
| 1526 | 
            +
                      "start": 3323
         | 
| 1150 1527 | 
             
                    },
         | 
| 1151 1528 | 
             
                    {
         | 
| 1152 1529 | 
             
                      "length": 20,
         | 
| 1153 | 
            -
                      "start":  | 
| 1530 | 
            +
                      "start": 5413
         | 
| 1154 1531 | 
             
                    },
         | 
| 1155 1532 | 
             
                    {
         | 
| 1156 1533 | 
             
                      "length": 20,
         | 
| 1157 | 
            -
                      "start":  | 
| 1534 | 
            +
                      "start": 6341
         | 
| 1158 1535 | 
             
                    },
         | 
| 1159 1536 | 
             
                    {
         | 
| 1160 1537 | 
             
                      "length": 20,
         | 
| 1161 | 
            -
                      "start":  | 
| 1538 | 
            +
                      "start": 8178
         | 
| 1162 1539 | 
             
                    },
         | 
| 1163 1540 | 
             
                    {
         | 
| 1164 1541 | 
             
                      "length": 20,
         | 
| 1165 | 
            -
                      "start":  | 
| 1542 | 
            +
                      "start": 8944
         | 
| 1166 1543 | 
             
                    },
         | 
| 1167 1544 | 
             
                    {
         | 
| 1168 1545 | 
             
                      "length": 20,
         | 
| 1169 | 
            -
                      "start":  | 
| 1546 | 
            +
                      "start": 9083
         | 
| 1547 | 
            +
                    },
         | 
| 1548 | 
            +
                    {
         | 
| 1549 | 
            +
                      "length": 20,
         | 
| 1550 | 
            +
                      "start": 9618
         | 
| 1551 | 
            +
                    },
         | 
| 1552 | 
            +
                    {
         | 
| 1553 | 
            +
                      "length": 20,
         | 
| 1554 | 
            +
                      "start": 10173
         | 
| 1555 | 
            +
                    },
         | 
| 1556 | 
            +
                    {
         | 
| 1557 | 
            +
                      "length": 20,
         | 
| 1558 | 
            +
                      "start": 10361
         | 
| 1559 | 
            +
                    },
         | 
| 1560 | 
            +
                    {
         | 
| 1561 | 
            +
                      "length": 20,
         | 
| 1562 | 
            +
                      "start": 10870
         | 
| 1170 1563 | 
             
                    }
         | 
| 1171 1564 | 
             
                  ]
         | 
| 1172 1565 | 
             
                },
         | 
| @@ -1174,11 +1567,31 @@ | |
| 1174 1567 | 
             
                  "ObjectTypeLib": [
         | 
| 1175 1568 | 
             
                    {
         | 
| 1176 1569 | 
             
                      "length": 20,
         | 
| 1177 | 
            -
                      "start":  | 
| 1570 | 
            +
                      "start": 4576
         | 
| 1571 | 
            +
                    },
         | 
| 1572 | 
            +
                    {
         | 
| 1573 | 
            +
                      "length": 20,
         | 
| 1574 | 
            +
                      "start": 6506
         | 
| 1575 | 
            +
                    },
         | 
| 1576 | 
            +
                    {
         | 
| 1577 | 
            +
                      "length": 20,
         | 
| 1578 | 
            +
                      "start": 6623
         | 
| 1579 | 
            +
                    },
         | 
| 1580 | 
            +
                    {
         | 
| 1581 | 
            +
                      "length": 20,
         | 
| 1582 | 
            +
                      "start": 7129
         | 
| 1583 | 
            +
                    }
         | 
| 1584 | 
            +
                  ]
         | 
| 1585 | 
            +
                },
         | 
| 1586 | 
            +
                "contracts/type/Version.sol": {
         | 
| 1587 | 
            +
                  "VersionPartLib": [
         | 
| 1588 | 
            +
                    {
         | 
| 1589 | 
            +
                      "length": 20,
         | 
| 1590 | 
            +
                      "start": 2204
         | 
| 1178 1591 | 
             
                    },
         | 
| 1179 1592 | 
             
                    {
         | 
| 1180 1593 | 
             
                      "length": 20,
         | 
| 1181 | 
            -
                      "start":  | 
| 1594 | 
            +
                      "start": 4419
         | 
| 1182 1595 | 
             
                    }
         | 
| 1183 1596 | 
             
                  ]
         | 
| 1184 1597 | 
             
                }
         |