[ { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "components": [ { "internalType": "enum IStatController.MagicAttackType", "name": "attackType", "type": "uint8" }, { "components": [ { "internalType": "uint256", "name": "strength", "type": "uint256" }, { "internalType": "uint256", "name": "dexterity", "type": "uint256" }, { "internalType": "uint256", "name": "vitality", "type": "uint256" }, { "internalType": "uint256", "name": "energy", "type": "uint256" } ], "internalType": "struct IStatController.CoreAttributes", "name": "attributeFactors", "type": "tuple" }, { "internalType": "uint256", "name": "damageMin", "type": "uint256" }, { "internalType": "uint256", "name": "damageMax", "type": "uint256" }, { "internalType": "uint256", "name": "manaConsumeMin", "type": "uint256" }, { "internalType": "uint256", "name": "manaConsumeMax", "type": "uint256" } ], "indexed": false, "internalType": "struct IAttackItem.GenerateAttackInfo", "name": "attackInfo", "type": "tuple" } ], "name": "AttackInfoChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "consumedId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "augmentationLevel", "type": "uint256" } ], "name": "Augmented", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "BaseDurabilityChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "uri", "type": "string" } ], "name": "BaseUriChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "controller", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "ts", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "block", "type": "uint256" } ], "name": "ContractInitialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "Destroyed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "heroToken", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "heroTokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "itemSlot", "type": "uint256" } ], "name": "Equipped", "type": "event" }, { "anonymous": false, "inputs": [ { "components": [ { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "mins", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "maxs", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "chances", "type": "uint256[]" }, { "internalType": "uint256", "name": "minRandomAttributes", "type": "uint256" }, { "internalType": "uint256", "name": "maxRandomAttributes", "type": "uint256" } ], "indexed": false, "internalType": "struct IItem.GenerateInfo", "name": "info", "type": "tuple" }, { "components": [ { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "mins", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "maxs", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "chances", "type": "uint256[]" }, { "internalType": "uint256", "name": "minRandomAttributes", "type": "uint256" }, { "internalType": "uint256", "name": "maxRandomAttributes", "type": "uint256" } ], "indexed": false, "internalType": "struct IItem.GenerateInfo", "name": "negativeInfo", "type": "tuple" } ], "name": "GenInfoChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "consumedItemId", "type": "uint256" } ], "name": "ItemRepaired", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "rarity", "type": "uint256" } ], "name": "Minted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "consumedId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "augmentationLevel", "type": "uint256" } ], "name": "NotAugmented", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newDurability", "type": "uint256" } ], "name": "ReduceDurability", "type": "event" }, { "anonymous": false, "inputs": [ { "components": [ { "internalType": "uint256", "name": "strength", "type": "uint256" }, { "internalType": "uint256", "name": "dexterity", "type": "uint256" }, { "internalType": "uint256", "name": "vitality", "type": "uint256" }, { "internalType": "uint256", "name": "energy", "type": "uint256" } ], "indexed": false, "internalType": "struct IStatController.CoreAttributes", "name": "requirements", "type": "tuple" } ], "name": "RequirementsChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "oldLogic", "type": "address" } ], "name": "RevisionIncreased", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "heroToken", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "heroTokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "itemSlot", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "destination", "type": "address" } ], "name": "TakenOff", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "string", "name": "uri", "type": "string" } ], "name": "UniqueUriChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "uri", "type": "string" }, { "indexed": false, "internalType": "uint256", "name": "rarity", "type": "uint256" } ], "name": "UriByRarityChanged", "type": "event" }, { "inputs": [], "name": "ATTACK_ITEM_BASE_VERSION", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "CONTROLLABLE_VERSION", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ITEM_BASE_VERSION", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "NFT_BASE_VERSION", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "VERSION", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "controller_", "type": "address" } ], "name": "__Controllable_init", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "attackAttributes", "outputs": [ { "components": [ { "internalType": "enum IStatController.MagicAttackType", "name": "aType", "type": "uint8" }, { "internalType": "uint256", "name": "min", "type": "uint256" }, { "internalType": "uint256", "name": "max", "type": "uint256" }, { "components": [ { "internalType": "uint256", "name": "strength", "type": "uint256" }, { "internalType": "uint256", "name": "dexterity", "type": "uint256" }, { "internalType": "uint256", "name": "vitality", "type": "uint256" }, { "internalType": "uint256", "name": "energy", "type": "uint256" } ], "internalType": "struct IStatController.CoreAttributes", "name": "attributeFactors", "type": "tuple" }, { "internalType": "uint256", "name": "manaConsume", "type": "uint256" } ], "internalType": "struct IStatController.MagicAttack", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "consumedItemId", "type": "uint256" } ], "name": "augment", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "augmentToken", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "augmentTokenAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "augmentationLevel", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseDurability", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "controller", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "created", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "createdBlock", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "destroy", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "heroToken", "type": "address" }, { "internalType": "uint256", "name": "heroTokenId", "type": "uint256" }, { "internalType": "uint256", "name": "itemSlot", "type": "uint256" } ], "name": "equip", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "equipped", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "equippedOn", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "exists", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "oldLogic", "type": "address" } ], "name": "increaseRevision", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "controller_", "type": "address" }, { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" }, { "internalType": "string", "name": "uri_", "type": "string" }, { "internalType": "address", "name": "augmentToken_", "type": "address" }, { "internalType": "uint256", "name": "augmentTokenAmount_", "type": "uint256" }, { "internalType": "uint256", "name": "itemLevel_", "type": "uint256" }, { "internalType": "enum IItem.ItemType", "name": "itemType_", "type": "uint8" }, { "internalType": "uint256", "name": "baseDurability_", "type": "uint256" } ], "name": "initItem", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isAttackItem", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "isBuffItem", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "isConsumableItem", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_value", "type": "address" } ], "name": "isController", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_value", "type": "address" } ], "name": "isGovernance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isItem", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "isOwner", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "forwarder", "type": "address" } ], "name": "isTrustedForwarder", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "itemAttributes", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "itemDurability", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "itemLevel", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "itemMetaType", "outputs": [ { "internalType": "enum IItem.ItemMetaType", "name": "", "type": "uint8" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "itemRarity", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "itemType", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mint", "outputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "negativeItemAttributes", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "previousImplementation", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "dungeonBiomeLevel", "type": "uint256" } ], "name": "reduceDurability", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "consumedItemId", "type": "uint256" } ], "name": "repairDurability", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "requirementAttributes", "outputs": [ { "components": [ { "internalType": "uint256", "name": "strength", "type": "uint256" }, { "internalType": "uint256", "name": "dexterity", "type": "uint256" }, { "internalType": "uint256", "name": "vitality", "type": "uint256" }, { "internalType": "uint256", "name": "energy", "type": "uint256" } ], "internalType": "struct IStatController.CoreAttributes", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "revision", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "score", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "enum IStatController.MagicAttackType", "name": "attackType", "type": "uint8" }, { "components": [ { "internalType": "uint256", "name": "strength", "type": "uint256" }, { "internalType": "uint256", "name": "dexterity", "type": "uint256" }, { "internalType": "uint256", "name": "vitality", "type": "uint256" }, { "internalType": "uint256", "name": "energy", "type": "uint256" } ], "internalType": "struct IStatController.CoreAttributes", "name": "attributeFactors", "type": "tuple" }, { "internalType": "uint256", "name": "damageMin", "type": "uint256" }, { "internalType": "uint256", "name": "damageMax", "type": "uint256" }, { "internalType": "uint256", "name": "manaConsumeMin", "type": "uint256" }, { "internalType": "uint256", "name": "manaConsumeMax", "type": "uint256" } ], "internalType": "struct IAttackItem.GenerateAttackInfo", "name": "_attackInfo", "type": "tuple" } ], "name": "setAttackInfo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "setBaseDurability", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "value", "type": "string" } ], "name": "setBaseUri", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "mins", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "maxs", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "chances", "type": "uint256[]" }, { "internalType": "uint256", "name": "minRandomAttributes", "type": "uint256" }, { "internalType": "uint256", "name": "maxRandomAttributes", "type": "uint256" } ], "internalType": "struct IItem.GenerateInfo", "name": "_info", "type": "tuple" }, { "components": [ { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "mins", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "maxs", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "chances", "type": "uint256[]" }, { "internalType": "uint256", "name": "minRandomAttributes", "type": "uint256" }, { "internalType": "uint256", "name": "maxRandomAttributes", "type": "uint256" } ], "internalType": "struct IItem.GenerateInfo", "name": "_negativeInfo", "type": "tuple" }, { "internalType": "uint256", "name": "strengthReq", "type": "uint256" }, { "internalType": "uint256", "name": "dexterityReq", "type": "uint256" }, { "internalType": "uint256", "name": "vitalityReq", "type": "uint256" }, { "internalType": "uint256", "name": "energyReq", "type": "uint256" }, { "internalType": "uint256", "name": "defaultRarity_", "type": "uint256" } ], "name": "setItemMeta", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "uri", "type": "string" }, { "internalType": "uint256", "name": "rarity", "type": "uint256" } ], "name": "setItemUriByRarity", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "string", "name": "uri", "type": "string" } ], "name": "setUniqueUri", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "heroToken", "type": "address" }, { "internalType": "uint256", "name": "heroTokenId", "type": "uint256" }, { "internalType": "uint256", "name": "itemSlot", "type": "uint256" }, { "internalType": "address", "name": "destination", "type": "address" }, { "internalType": "bool", "name": "broken", "type": "bool" } ], "name": "takeOff", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenOfOwnerByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
608060405260016065553480156200001657600080fd5b50600054610100900460ff16620000345760005460ff161562000038565b303b155b620000a05760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840160405180910390fd5b600054610100900460ff16158015620000c3576000805461ffff19166101011790555b8015620000d6576000805461ff00191690555b5060978054600160ff19918216811790925560d98054909116909117905561526c80620001046000396000f3fe608060405234801561001057600080fd5b50600436106103fc5760003560e01c806366679a0611610215578063b423799e11610125578063d909ea5f116100b8578063f020c59411610087578063f020c594146105aa578063f5470d7b146108d3578063f77c4791146108dc578063fcc78fa5146108e4578063ffa1ad741461072e57600080fd5b8063d909ea5f146105b1578063dee1f0e41461089a578063e327a6af146108ad578063e985e9c5146108c057600080fd5b8063bc0d396b116100f4578063bc0d396b1461084e578063c87b56dd14610861578063d1089f3314610874578063d1730f1f1461088757600080fd5b8063b423799e146107ff578063b429afeb1461081f578063b75f4d8f14610832578063b88d4fde1461083b57600080fd5b806395d89b41116101a8578063a0bcfc7f11610177578063a0bcfc7f14610788578063a0fe0f511461079b578063a22cb465146107ae578063a5d3bafb146107c1578063a60138a7146107ec57600080fd5b806395d89b41146107525780639d0bcca01461075a5780639d118770146107625780639e2cfb0f1461077557600080fd5b8063718df8fa116101e4578063718df8fa146106f35780637cc96380146107135780638e776f9c1461071b578063936725ec1461072e57600080fd5b806366679a06146106b257806368164138146106c55780636c0360eb146106d857806370a08231146106e057600080fd5b806335320ba21161031057806342842e0e116102a35780634fac6ccd116102725780634fac6ccd14610644578063572b6c0514610657578063583eab451461066a5780636352211e1461068a57806364f2d7531461069d57600080fd5b806342842e0e146106035780634593144c146106165780634f558e791461061e5780634f6ccce71461063157600080fd5b80633c97cf60116102df5780633c97cf60146105de5780633d54e23b146105e75780633e3008b6146105f05780634204db241461058657600080fd5b806335320ba2146105aa57806335798ed0146105b157806336c94485146105b85780633710c70a146105cb57600080fd5b80631c001d77116103935780632930ea69116103625780632930ea69146105495780632e2da5171461055c5780632f745c591461056b578063325a19f11461057e57806332d671a11461058657600080fd5b80631c001d77146104df5780631f2a5ace146104ff578063203e597c1461052357806323b872dd1461053657600080fd5b806311f53bac116103cf57806311f53bac1461047e5780631249c58b1461049e57806318160ddd146104b45780631a8abe9a146104bc57600080fd5b806301ffc9a71461040157806306fdde0314610429578063081812fc1461043e578063095ea7b314610469575b600080fd5b61041461040f366004614016565b6108fc565b60405190151581526020015b60405180910390f35b610431610927565b6040516104209190614079565b61045161044c36600461408c565b6109b9565b6040516001600160a01b039091168152602001610420565b61047c6104773660046140ca565b610a46565b005b61049161048c36600461408c565b610b68565b6040516104209190614142565b6104a6610d18565b604051908152602001610420565b6035546104a6565b6104146104ca36600461408c565b609f6020526000908152604090205460ff1681565b6104f26104ed36600461408c565b610d2f565b60405161042091906141ca565b61043160405180604001604052806005815260200164312e302e3360d81b81525081565b61047c6105313660046141dd565b610d49565b61047c6105443660046141ff565b610f3c565b61047c6105573660046142ff565b610f74565b600260405161042091906143a3565b6104a66105793660046140ca565b611045565b6104a66110db565b61043160405180604001604052806005815260200164312e302e3160d81b81525081565b6000610414565b6001610414565b61047c6105c6366004614501565b61110f565b6104f26105d936600461408c565b611334565b6104a660985481565b6104a660995481565b61047c6105fe366004614590565b61134e565b61047c6106113660046141ff565b6116a9565b6104a66116c4565b61041461062c36600461408c565b6116f4565b6104a661063f36600461408c565b6116ff565b61047c6106523660046145cd565b611792565b6104146106653660046145cd565b6118c5565b6104a661067836600461408c565b609e6020526000908152604090205481565b61045161069836600461408c565b6118e7565b6106a5611902565b60405161042091906145ea565b61047c6106c036600461467e565b61195a565b61047c6106d3366004614755565b6119c5565b610431611a17565b6104a66106ee3660046145cd565b611a21565b6104a661070136600461408c565b60a26020526000908152604090205481565b6104a6611aa8565b61047c6107293660046147a7565b611ad8565b610431604051806040016040528060058152602001640312e302e360dc1b81525081565b610431611ead565b610451611ebc565b61047c61077036600461408c565b611eec565b61047c61078336600461408c565b6120b4565b61047c61079636600461480e565b6120f1565b61047c6107a93660046145cd565b612135565b61047c6107bc366004614842565b61225a565b6104a66107cf36600461487b565b60b460209081526000928352604080842090915290825290205481565b61047c6107fa3660046148a0565b61226c565b6104a661080d36600461408c565b60a06020526000908152604090205481565b61041461082d3660046145cd565b6122be565b6104a6609b5481565b61047c6108493660046148e6565b6122e3565b6104a661085c3660046141dd565b61231c565b61043161086f36600461408c565b612484565b61047c6108823660046141dd565b612595565b6104a661089536600461408c565b6127e8565b6104146108a83660046145cd565b6128dd565b6104146108bb3660046140ca565b612962565b6104146108ce366004614965565b612988565b6104a6609a5481565b6104516129b6565b6097546104519061010090046001600160a01b031681565b60006001600160e01b0319821663780e9d6360e01b14806109215750610921826129e6565b92915050565b60606001805461093690614993565b80601f016020809104026020016040519081016040528092919081815260200182805461096290614993565b80156109af5780601f10610984576101008083540402835291602001916109af565b820191906000526020600020905b81548152906001019060200180831161099257829003601f168201915b5050505050905090565b60006109c482612a36565b610a2a5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600560205260409020546001600160a01b031690565b6000610a51826118e7565b9050806001600160a01b0316836001600160a01b031603610abe5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610a21565b806001600160a01b0316610ad0612a53565b6001600160a01b03161480610aec5750610aec816108ce612a53565b610b595760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776044820152771b995c881b9bdc88185c1c1c9bdd995908199bdc88185b1b60421b6064820152608401610a21565b610b638383612a75565b505050565b610b70613f47565b81600003610c71576040805160c0810190915260db80546000929190829060ff166004811115610ba257610ba26140f6565b6004811115610bb357610bb36140f6565b815260200160018201604051806080016040529081600082015481526020016001820154815260200160028201548152602001600382015481525050815260200160058201548152602001600682015481526020016007820154815260200160088201548152505090506040518060a0016040528082600001516004811115610c3e57610c3e6140f6565b81526020018260400151815260200182606001518152602001826020015181526020018260a00151815250915050919050565b600082815260da602052604090819020815160a081019092528054829060ff166004811115610ca257610ca26140f6565b6004811115610cb357610cb36140f6565b815260200160018201548152602001600282015481526020016003820160405180608001604052908160008201548152602001600182015481526020016002820154815260200160038201548152505081526020016007820154815250509050919050565b6000610d22612ae3565b610d2a612b8e565b905090565b6000818152609c6020526040902060609061092190612da1565b610d51612e30565b610d6d5760405162461bcd60e51b8152600401610a21906149cd565b610d7682612e48565b610d7f81612e48565b610d8881612e8b565b6000807300379dd90b2a337c4652e286e4fbceadef940a216369ca2d5e610dad612a53565b609754609854600089815260a060205260409020546101009092046001600160a01b03169189908990610dde6129b6565b60405160e089901b6001600160e01b03191681526001600160a01b039788166004820152958716602487015260448601949094526064850192909252608484015260a483015290911660c4820152609f60e4820152609c610104820152610124016040805180830381865af4158015610e5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7f91906149ea565b915091508115610eea57610e9284612ec4565b600084815260a0602090815260409182902083905581518681529081018590529081018290527fd55aac0040c04810cb218cbd1b59aef28215d8f9557e7702d1cbf0d5daa44f779060600160405180910390a1610f36565b610ef384612e8b565b60408051858152602081018590529081018290527fc615b3e0fef450345f6ebe89f0bc5157d76ea65d94dfbe440ace7ca70c6a3a83906060015b60405180910390a15b50505050565b610f4d610f47612a53565b8261302a565b610f695760405162461bcd60e51b8152600401610a2190614a18565b610b638383836130ec565b610f7c613293565b805160db8054839290829060ff19166001836004811115610f9f57610f9f6140f6565b02179055506020828101518051600180850191909155918101516002840155604080820151600385015560609182015160048501558085015160058501559084015160068401556080840151600784015560a09093015160089092019190915560d9805460ff19169091179055517f48c5058b18d5869b6ad32c7e65a120b4e9ecbc4a1e71498b69f0691273280f289061103a908390614a69565b60405180910390a150565b600061105083611a21565b82106110b25760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608401610a21565b506001600160a01b03919091166000908152603360209081526040808320938352929052205490565b6000610d2a61110b60017f6f55f470bdc9cb5f04223fd822021061668e4dccb43e8727b295106dc9769c8b614ad6565b5490565b611117613293565b60028760800151106111575760405162461bcd60e51b81526020600482015260096024820152683bb937b7339036b4b760b91b6044820152606401610a21565b86518051889160a391611171918391602090910190613fa0565b50602082810151805161118a9260018501920190613fa0565b50604082015180516111a6916002840191602090910190613fa0565b50606082015180516111c2916003840191602090910190613fa0565b506080820151600482015560a09091015160059091015585518051879160a9916111f3918391602090910190613fa0565b50602082810151805161120c9260018501920190613fa0565b5060408201518051611228916002840191602090910190613fa0565b5060608201518051611244916003840191602090910190613fa0565b50608082810151600483015560a0909201516005909101556040805180830182528781526020808201889052818301879052606091820186905260af89905560b088905560b187905560b286905560b38590556097805460ff191660011790558251938401835288845283018790528282018690528201849052517f602b6148a680b6852202136cd0ed63398bb67e9b54ab8248ddcf8cc87928c249916112ea916145ea565b60405180910390a17f7dc32c0d4744428a5321dfa2ba3882a2f7506b6484e465132ecabd335cdb29798787604051611323929190614b6c565b60405180910390a150505050505050565b6000818152609d6020526040902060609061092190612da1565b60006113586129b6565b905061136385612e48565b61136b612e30565b6113875760405162461bcd60e51b8152600401610a21906149cd565b6000858152609f602052604090205460ff16156113b65760405162461bcd60e51b8152600401610a2190614b9a565b806001600160a01b03166318d928316040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114189190614bbc565b1561144e5760405162461bcd60e51b81526020600482015260066024820152651c185d5cd95960d21b6044820152606401610a21565b60006001600160a01b0316846001600160a01b03166396336b306040518163ffffffff1660e01b8152600401602060405180830381865afa158015611497573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114bb9190614bd9565b6001600160a01b0316036114e15760405162461bcd60e51b8152600401610a2190614bf6565b7300379dd90b2a337c4652e286e4fbceadef940a21634c5ab701609c609d604051806101400160405280611513612a53565b6001600160a01b03168152602001866001600160a01b031681526020018a8152602001896001600160a01b03168152602001888152602001878152602001609a548152602001609b54815260200160a260008c815260200190815260200160002054815260200160af6040518060800160405290816000820154815260200160018201548152602001600282015481526020016003820154815250508152506040518463ffffffff1660e01b81526004016115d093929190614c19565b60006040518083038186803b1580156115e857600080fd5b505af41580156115fc573d6000803e3d6000fd5b5050505061162261160b612a53565b85876040518060200160405280600081525061333d565b6000858152609f60209081526040808320805460ff1916600117905560b482528083206001600160a01b03881680855290835292819020869055805188815291820192909252908101849052606081018390527f3be07f3d969f411bb95cc5b5af0235965db26ca648e7df2d84a0424d0086aabf9060800160405180910390a15050505050565b610b63838383604051806020016040528060008152506122e3565b6000610d2a61110b60017f812a673dfca07956350df10f8a654925f561d7a0da09bdbe79e653939a14d9f1614ad6565b600061092182612a36565b600061170a60355490565b821061176d5760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608401610a21565b6035828154811061178057611780614cc5565b90600052602060002001549050919050565b3330146117e15760405162461bcd60e51b815260206004820152601b60248201527f496e637265617365207265766973696f6e20666f7262696464656e00000000006044820152606401610a21565b600061181161110b60017f22573091f17911fb166032a3d9e0554aa73d31b7b7ddea4a4dd2995650af84bd614ad6565b61181c906001614cdb565b90506118508161184d60017f22573091f17911fb166032a3d9e0554aa73d31b7b7ddea4a4dd2995650af84bd614ad6565b55565b61187f8261184d60017fbfaaa2fb63266ff27c2da975f5894955056f50419af651a81f6c5060581857e4614ad6565b604080518281526001600160a01b03841660208201527ff27e2ef832a4eb8ed8ec553b875eecd44764cda95b1c24170e281539e0a869c891015b60405180910390a15050565b6001600160a01b031673d8253782c45a12053594b9deb72d8e8ab2fca54c1490565b6000908152600360205260409020546001600160a01b031690565b61192d6040518060800160405280600081526020016000815260200160008152602001600081525090565b506040805160808101825260af54815260b054602082015260b1549181019190915260b254606082015290565b611962613370565b61196e88888b896133e9565b60978054610100600160a81b0319166101006001600160a01b038816021790556098849055609983905581600b8111156119aa576119aa6140f6565b609a55609b8190556119ba613445565b505050505050505050565b6119cd613293565b600081815260a1602052604090206119e58382614d3e565b507f29f443087b03c724ded11254c74c7211dcb5e505b280d10747d67f3a0227879082826040516118b9929190614dfd565b6060610d2a613461565b60006001600160a01b038216611a8c5760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610a21565b506001600160a01b031660009081526004602052604090205490565b6000610d2a61110b60017f22573091f17911fb166032a3d9e0554aa73d31b7b7ddea4a4dd2995650af84bd614ad6565b6000611ae26129b6565b9050611aed81613470565b6000878152609f602052604090205460ff168015611b2c5750600087815260b4602090815260408083206001600160a01b038a16845290915290205485145b611b645760405162461bcd60e51b815260206004820152600960248201526808595c5d5a5c1c195960ba1b6044820152606401610a21565b609a546000819003611ba55760405162461bcd60e51b815260206004820152600a602482015269636f6e73756d61626c6560b01b6044820152606401610a21565b6000826001600160a01b0316628e96916040518163ffffffff1660e01b8152600401602060405180830381865afa158015611be4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c089190614bd9565b604051630c6222cb60e01b81526001600160a01b038a81166004830152602482018a9052604482018590526064820189905230608483015260a482018c9052600060c483015291925090821690630c6222cb9060e401600060405180830381600087803b158015611c7857600080fd5b505af1158015611c8c573d6000803e3d6000fd5b505050508315611ca657600089815260a260205260408120555b806001600160a01b03166324a0b0356040518060a001604052808b6001600160a01b031681526020018a8152602001611cf0609c60008f8152602001908152602001600020612da1565b8152600060208201819052604091820152516001600160e01b031960e084901b168152611d209190600401614e1f565b600060405180830381600087803b158015611d3a57600080fd5b505af1158015611d4e573d6000803e3d6000fd5b50505050806001600160a01b03166324a0b0356040518060a001604052808b6001600160a01b031681526020018a8152602001611d9c609d60008f8152602001908152602001600020612da1565b8152600160208201526000604091820152516001600160e01b031960e084901b168152611dcc9190600401614e1f565b600060405180830381600087803b158015611de657600080fd5b505af1158015611dfa573d6000803e3d6000fd5b50505060008a8152609f60209081526040808320805460ff1916905560b482528083206001600160a01b038d168452825280832083905580519182019052908152611e4b9150899087908c9061333d565b604080518a81526001600160a01b038a811660208301528183018a9052606082018990528716608082015290517fc64e9512c33531b1b4767eb306c4690a87eb36bc541a383fa538499648e9a9f49181900360a00190a1505050505050505050565b60606002805461093690614993565b6000610d2a61110b60017fbfaaa2fb63266ff27c2da975f5894955056f50419af651a81f6c5060581857e4614ad6565b6000611ef66129b6565b9050806001600160a01b03166325a6c51d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f5a9190614bd9565b60405163f2f4a8af60e01b81523360048201526001600160a01b03919091169063f2f4a8af90602401602060405180830381865afa158015611fa0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fc49190614bbc565b806120415750336001600160a01b0316816001600160a01b031663524a562f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612012573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120369190614bd9565b6001600160a01b0316145b8061205c575033612051836118e7565b6001600160a01b0316145b6120785760405162461bcd60e51b8152600401610a2190614bf6565b6000828152609f602052604090205460ff16156120a75760405162461bcd60e51b8152600401610a2190614b9a565b6120b082612e8b565b5050565b6120bc613293565b609b8190556040518181527f7ef6d608ec96a3c1d48de6ceb0c0bd19618f4b93f0095308c79cd6ca4b51b1879060200161103a565b6120f9613293565b60666121058282614d3e565b507f87cdeaffd8e70903d6ce7cc983fac3b09ca79e83818124c98e47a1d70f8027d68160405161103a9190614079565b61213d613566565b6001600160a01b0381166121855760405162461bcd60e51b815260206004820152600f60248201526e2d32b9379031b7b73a3937b63632b960891b6044820152606401610a21565b6121b48161184d60017f5165972ef41194f06c5007493031d0b927c20741adcb74403b954009fd2c3618614ad6565b6121e34261184d60017f6f55f470bdc9cb5f04223fd822021061668e4dccb43e8727b295106dc9769c8b614ad6565b6122124361184d60017f812a673dfca07956350df10f8a654925f561d7a0da09bdbe79e653939a14d9f1614ad6565b604080516001600160a01b038316815242602082015243918101919091527f1a2dd071001ebf6e03174e3df5b305795a4ad5d41d8fdb9ba41dbbe2367134269060600161103a565b6120b0612265612a53565b83836135ac565b612274613293565b600082815260676020526040902061228c8282614d3e565b507ff32b5bcd021361ac825fde09ff2121b0e5783f9f993196194fab9471799e54dd82826040516118b9929190614e7b565b60006122c86129b6565b6001600160a01b0316826001600160a01b0316149050919050565b6122f46122ee612a53565b8361302a565b6123105760405162461bcd60e51b8152600401610a2190614a18565b610f368484848461333d565b6000806123276129b6565b905061233281613470565b6000816001600160a01b031663fcad8c786040518163ffffffff1660e01b8152600401602060405180830381865afa158015612372573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123969190614bd9565b600086815260a2602052604080822054609954609a54925163b3e13ad160e01b8152600481018a9052602481019290925260448201526064810191909152919250906001600160a01b0383169063b3e13ad190608401602060405180830381865afa158015612409573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061242d9190614e94565b600087815260a2602090815260409182902083905581518981529081018390529192507feb46efb0c7198679c79853a979eb80da18892986f9942ca8873ed7c4cefb5975910160405180910390a195945050505050565b60606065548211156124c15760405162461bcd60e51b815260206004820152600660248201526508595e1a5cdd60d21b6044820152606401610a21565b600082815260676020526040812080546124da90614993565b80601f016020809104026020016040519081016040528092919081815260200182805461250690614993565b80156125535780601f1061252857610100808354040283529160200191612553565b820191906000526020600020905b81548152906001019060200180831161253657829003601f168201915b5050505050905080516000146125695792915050565b60006125748461367a565b805190915015612585579392505050565b61258d613461565b949350505050565b600061259f6129b6565b90506125a9612e30565b6125c55760405162461bcd60e51b8152600401610a21906149cd565b6125ce83612e48565b6125d782612e48565b609b5460008190036126195760405162461bcd60e51b815260206004820152600b60248201526a216475726162696c69747960a81b6044820152606401610a21565b6000848152609f602052604090205460ff1615801561264757506000838152609f602052604090205460ff16155b6126635760405162461bcd60e51b8152600401610a2190614b9a565b816001600160a01b03166318d928316040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126c59190614bbc565b156126fb5760405162461bcd60e51b81526020600482015260066024820152651c185d5cd95960d21b6044820152606401610a21565b61270483612e8b565b7300379dd90b2a337c4652e286e4fbceadef940a2163806f099d6127266129b6565b60975461010090046001600160a01b03166001612741612a53565b600a6098546127509190614ead565b6040518663ffffffff1660e01b8152600401612770959493929190614ecf565b60006040518083038186803b15801561278857600080fd5b505af415801561279c573d6000803e3d6000fd5b505050600085815260a2602090815260409182902084905581518781529081018690527ffc4ee3fbea4df52f867d98cb796e03a5ae97157fa0c2372c6f61d4336543a7ee925001610f2d565b60006127f26129b6565b6001600160a01b031663fcad8c786040518163ffffffff1660e01b8152600401602060405180830381865afa15801561282f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128539190614bd9565b6001600160a01b03166351c9120d61287c609c6000868152602001908152602001600020612da1565b609b546040518363ffffffff1660e01b815260040161289c929190614f18565b602060405180830381865afa1580156128b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109219190614e94565b6000816001600160a01b03166128f16129b6565b6001600160a01b0316635aa6e6756040518163ffffffff1660e01b8152600401602060405180830381865afa15801561292e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129529190614bd9565b6001600160a01b03161492915050565b6000826001600160a01b0316612977836118e7565b6001600160a01b0316149392505050565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205460ff1690565b6000610d2a61110b60017f5165972ef41194f06c5007493031d0b927c20741adcb74403b954009fd2c3618614ad6565b60006001600160e01b031982166380ac58cd60e01b1480612a1757506001600160e01b03198216635b5e139f60e01b145b8061092157506301ffc9a760e01b6001600160e01b0319831614610921565b6000908152600360205260409020546001600160a01b0316151590565b6000612a5e336118c5565b15612a70575060131936013560601c90565b503390565b600081815260056020526040902080546001600160a01b0319166001600160a01b0384169081179091558190612aaa826118e7565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b612aeb6129b6565b604051633ec963c960e01b81523360048201526001600160a01b039190911690633ec963c990602401602060405180830381865afa158015612b31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b559190614bbc565b612b8c5760405162461bcd60e51b815260206004820152600860248201526710b23ab733b2b7b760c11b6044820152606401610a21565b565b6000612b98613729565b9050612bab612ba5612a53565b82613742565b6000612bb56129b6565b6001600160a01b031663fcad8c786040518163ffffffff1660e01b8152600401602060405180830381865afa158015612bf2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c169190614bd9565b6000838152609c602052604080822060b354915163fe1a90f160e01b815293945091927300379dd90b2a337c4652e286e4fbceadef940a219263fe1a90f192612c679287929160a391600401614fd6565b602060405180830381865af4158015612c84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ca89190614e94565b6000848152609d602052604090819020905163fe1a90f160e01b81529192507300379dd90b2a337c4652e286e4fbceadef940a219163fe1a90f191612cf89186919060a990600190600401614fd6565b602060405180830381865af4158015612d15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d399190614e94565b506000838152609e60209081526040808320849055609b5460a290925290912055612d638361375c565b60408051848152602081018390527f8a9dcf4e150b1153011b29fec302d5be0c13e84fa8f56ab78587f778a32a90dd910160405180910390a1505090565b60606000612dae836137e0565b60408051602b808252610580820190925291925060009190602082016105608036833701905050905060005b82811015612e2857600080612def87846137eb565b915091506000811215612e00575060005b80848381518110612e1357612e13614cc5565b60209081029190910101525050600101612dda565b509392505050565b6000612e3b336118c5565b80610d2a57505032331490565b612e50612a53565b6001600160a01b0316612e62826118e7565b6001600160a01b031614612e885760405162461bcd60e51b8152600401610a2190614bf6565b50565b612e9481613807565b6040518181527ff15a2816d9b33bd70f4b57d8cfbd7ee75d3231d8c52a030fef8a86fb4adfe9479060200161103a565b6000612ece6129b6565b6001600160a01b031663fcad8c786040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f2f9190614bd9565b600083815260da60205260409081902090516303078fb560e41b81529192506001600160a01b03831691633078fb5091612f6b9160040161500e565b61010060405180830381865afa158015612f89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fad919061506f565b600083815260da6020526040902081518154829060ff19166001836004811115612fd957612fd96140f6565b02179055506020828101516001830155604080840151600284015560608085015180516003860155928301516004850155908201516005840155015160068201556080909101516007909101555050565b600061303582612a36565b6130965760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610a21565b60006130a1836118e7565b9050806001600160a01b0316846001600160a01b031614806130dc5750836001600160a01b03166130d1846109b9565b6001600160a01b0316145b8061258d575061258d8185612988565b826001600160a01b03166130ff826118e7565b6001600160a01b0316146131635760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608401610a21565b6001600160a01b0382166131c55760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610a21565b6131d08383836138ae565b6131db600082612a75565b6001600160a01b0383166000908152600460205260408120805460019290613204908490614ad6565b90915550506001600160a01b0382166000908152600460205260408120805460019290613232908490614cdb565b909155505060008181526003602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b61329b6129b6565b604051631430d62960e21b81523360048201526001600160a01b0391909116906350c358a490602401602060405180830381865afa1580156132e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133059190614bbc565b612b8c5760405162461bcd60e51b815260206004820152600960248201526810b232b83637bcb2b960b91b6044820152606401610a21565b6133488484846130ec565b613354848484846138e8565b610f365760405162461bcd60e51b8152600401610a2190615108565b600054610100900460ff1661338b5760005460ff161561338f565b303b155b6133c95760405162461bcd60e51b815260206004820152600b60248201526a1a5b9a5d1a585b1a5e995960aa1b6044820152606401610a21565b600054610100900460ff16612b8c576000805461ffff1916610101179055565b6133f1613566565b6133fb84846139f0565b61340482612135565b600160655560666134158282614d3e565b507f87cdeaffd8e70903d6ce7cc983fac3b09ca79e83818124c98e47a1d70f8027d681604051610f2d9190614079565b600054610100900460ff16612b8c576000805461ff0019169055565b60606066805461093690614993565b60405163ba79bf5f60e01b81523360048201526001600160a01b0382169063ba79bf5f90602401602060405180830381865afa1580156134b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134d89190614bbc565b8061354a5750336001600160a01b0316816001600160a01b031663524a562f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613526573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e629190614bd9565b612e885760405162461bcd60e51b8152600401610a2190614bf6565b600054610100900460ff16612b8c5760405162461bcd60e51b815260206004820152600c60248201526b696e697469616c697a696e6760a01b6044820152606401610a21565b816001600160a01b0316836001600160a01b03160361360d5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610a21565b6001600160a01b03838116600081815260066020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6000818152609e6020908152604080832054835260a190915290208054606091906136a490614993565b80601f01602080910402602001604051908101604052809291908181526020018280546136d090614993565b801561371d5780601f106136f25761010080835404028352916020019161371d565b820191906000526020600020905b81548152906001019060200180831161370057829003601f168201915b50505050509050919050565b60655460009061373a816001614cdb565b606555919050565b6120b0828260405180602001604052806000815250613a02565b613764613a35565b600082815260da6020526040902081518154829060ff19166001836004811115613790576137906140f6565b021790555060208281015160018301556040808401516002840155606080850151805160038601559283015160048501559082015160058401550151600682015560809091015160079091015550565b600061092182613b22565b60008080806137fa8686613b2d565b9097909650945050505050565b6000613812826118e7565b9050613820816000846138ae565b61382b600083612a75565b6001600160a01b0381166000908152600460205260408120805460019290613854908490614ad6565b909155505060008281526003602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6000818152609f602052604090205460ff16156138dd5760405162461bcd60e51b8152600401610a2190614b9a565b610b63838383613b58565b60006001600160a01b0384163b156139e557836001600160a01b031663150b7a02613911612a53565b8786866040518563ffffffff1660e01b8152600401613933949392919061515a565b6020604051808303816000875af192505050801561396e575060408051601f3d908101601f1916820190925261396b91810190615197565b60015b6139cb573d80801561399c576040519150601f19603f3d011682016040523d82523d6000602084013e6139a1565b606091505b5080516000036139c35760405162461bcd60e51b8152600401610a2190615108565b805181602001fd5b6001600160e01b031916630a85bd0160e11b14905061258d565b506001949350505050565b6139f8613566565b6120b08282613c10565b613a0c8383613c31565b613a1960008484846138e8565b610b635760405162461bcd60e51b8152600401610a2190615108565b613a3d613f47565b6000613a476129b6565b6001600160a01b031663fcad8c786040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613aa89190614bd9565b60405163ac17922160e01b81529091506001600160a01b0382169063ac17922190613ad89060db906004016151b4565b610100604051808303816000875af1158015613af8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b1c919061506f565b91505090565b600061092182613d70565b60008080613b3b8585613d7a565b600081815260029690960160205260409095205494959350505050565b6001600160a01b038316613bb357613bae81603580546000838152603660205260408120829055600182018355919091527fcfa4bec1d3298408bb5afcfcd9c430549c5b31f8aa5c5848151c0a55f473c34d0155565b613bd6565b816001600160a01b0316836001600160a01b031614613bd657613bd68382613d8d565b6001600160a01b038216613bed57610b6381613e2a565b826001600160a01b0316826001600160a01b031614610b6357610b638282613ed9565b613c18613566565b6001613c248382614d3e565b506002610b638282614d3e565b6001600160a01b038216613c875760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610a21565b613c9081612a36565b15613cdd5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610a21565b613ce9600083836138ae565b6001600160a01b0382166000908152600460205260408120805460019290613d12908490614cdb565b909155505060008181526003602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6000610921825490565b6000613d868383613f1d565b9392505050565b60006001613d9a84611a21565b613da49190614ad6565b600083815260346020526040902054909150808214613df7576001600160a01b03841660009081526033602090815260408083208584528252808320548484528184208190558352603490915290208190555b5060009182526034602090815260408084208490556001600160a01b039094168352603381528383209183525290812055565b603554600090613e3c90600190614ad6565b60008381526036602052604081205460358054939450909284908110613e6457613e64614cc5565b906000526020600020015490508060358381548110613e8557613e85614cc5565b6000918252602080832090910192909255828152603690915260408082208490558582528120556035805480613ebd57613ebd615220565b6001900381819060005260206000200160009055905550505050565b6000613ee483611a21565b6001600160a01b039093166000908152603360209081526040808320868452825280832085905593825260349052919091209190915550565b6000826000018281548110613f3457613f34614cc5565b9060005260206000200154905092915050565b6040805160a0810190915280600081526020016000815260200160008152602001613f936040518060800160405280600081526020016000815260200160008152602001600081525090565b8152602001600081525090565b828054828255906000526020600020908101928215613fdb579160200282015b82811115613fdb578251825591602001919060010190613fc0565b50613fe7929150613feb565b5090565b5b80821115613fe75760008155600101613fec565b6001600160e01b031981168114612e8857600080fd5b60006020828403121561402857600080fd5b8135613d8681614000565b6000815180845260005b818110156140595760208185018101518683018201520161403d565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000613d866020830184614033565b60006020828403121561409e57600080fd5b5035919050565b6001600160a01b0381168114612e8857600080fd5b80356140c5816140a5565b919050565b600080604083850312156140dd57600080fd5b82356140e8816140a5565b946020939093013593505050565b634e487b7160e01b600052602160045260246000fd5b60058110612e8857612e886140f6565b805182526020810151602083015260408101516040830152606081015160608301525050565b81516101008201906141538161410c565b808352506020830151602083015260408301516040830152606083015161417d606084018261411c565b50608083015160e083015292915050565b60008151808452602080850194506020840160005b838110156141bf578151875295820195908201906001016141a3565b509495945050505050565b602081526000613d86602083018461418e565b600080604083850312156141f057600080fd5b50508035926020909101359150565b60008060006060848603121561421457600080fd5b833561421f816140a5565b9250602084013561422f816140a5565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b60405160c081016001600160401b038111828210171561427857614278614240565b60405290565b604051608081016001600160401b038111828210171561427857614278614240565b60405160a081016001600160401b038111828210171561427857614278614240565b604051601f8201601f191681016001600160401b03811182821017156142ea576142ea614240565b604052919050565b60058110612e8857600080fd5b600081830361012081121561431357600080fd5b61431b614256565b8335614326816142f2565b81526080601f198301121561433a57600080fd5b61434261427e565b91506020840135825260408401356020830152606084013560408301526080840135606083015281602082015260a0840135604082015260c0840135606082015260e0840135608082015261010084013560a0820152809250505092915050565b602081016143b08361410c565b91905290565b600082601f8301126143c757600080fd5b813560206001600160401b038211156143e2576143e2614240565b8160051b6143f18282016142c2565b928352848101820192828101908785111561440b57600080fd5b83870192505b8483101561442a57823582529183019190830190614411565b979650505050505050565b600060c0828403121561444757600080fd5b61444f614256565b905081356001600160401b038082111561446857600080fd5b614474858386016143b6565b8352602084013591508082111561448a57600080fd5b614496858386016143b6565b602084015260408401359150808211156144af57600080fd5b6144bb858386016143b6565b604084015260608401359150808211156144d457600080fd5b506144e1848285016143b6565b6060830152506080820135608082015260a082013560a082015292915050565b600080600080600080600060e0888a03121561451c57600080fd5b87356001600160401b038082111561453357600080fd5b61453f8b838c01614435565b985060208a013591508082111561455557600080fd5b506145628a828b01614435565b979a9799505050506040860135956060810135956080820135955060a0820135945060c09091013592509050565b600080600080608085870312156145a657600080fd5b8435935060208501356145b8816140a5565b93969395505050506040820135916060013590565b6000602082840312156145df57600080fd5b8135613d86816140a5565b60808101610921828461411c565b60006001600160401b0383111561461157614611614240565b614624601f8401601f19166020016142c2565b905082815283838301111561463857600080fd5b828260208301376000602084830101529392505050565b600082601f83011261466057600080fd5b613d86838335602085016145f8565b8035600c81106140c557600080fd5b60008060008060008060008060006101208a8c03121561469d57600080fd5b6146a68a6140ba565b985060208a01356001600160401b03808211156146c257600080fd5b6146ce8d838e0161464f565b995060408c01359150808211156146e457600080fd5b6146f08d838e0161464f565b985060608c013591508082111561470657600080fd5b506147138c828d0161464f565b96505061472260808b016140ba565b945060a08a0135935060c08a0135925061473e60e08b0161466f565b91506101008a013590509295985092959850929598565b6000806040838503121561476857600080fd5b82356001600160401b0381111561477e57600080fd5b61478a8582860161464f565b95602094909401359450505050565b8015158114612e8857600080fd5b60008060008060008060c087890312156147c057600080fd5b8635955060208701356147d2816140a5565b9450604087013593506060870135925060808701356147f0816140a5565b915060a087013561480081614799565b809150509295509295509295565b60006020828403121561482057600080fd5b81356001600160401b0381111561483657600080fd5b61258d8482850161464f565b6000806040838503121561485557600080fd5b8235614860816140a5565b9150602083013561487081614799565b809150509250929050565b6000806040838503121561488e57600080fd5b823591506020830135614870816140a5565b600080604083850312156148b357600080fd5b8235915060208301356001600160401b038111156148d057600080fd5b6148dc8582860161464f565b9150509250929050565b600080600080608085870312156148fc57600080fd5b8435614907816140a5565b93506020850135614917816140a5565b92506040850135915060608501356001600160401b0381111561493957600080fd5b8501601f8101871361494a57600080fd5b614959878235602084016145f8565b91505092959194509250565b6000806040838503121561497857600080fd5b8235614983816140a5565b91506020830135614870816140a5565b600181811c908216806149a757607f821691505b6020821081036149c757634e487b7160e01b600052602260045260246000fd5b50919050565b602080825260039082015262454f4160e81b604082015260600190565b600080604083850312156149fd57600080fd5b8251614a0881614799565b6020939093015192949293505050565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b8151610120820190614a7a8161410c565b808352506020830151614a90602084018261411c565b50604083015160a0830152606083015160c0830152608083015160e083015260a083015161010083015292915050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561092157610921614ac0565b6000815160c08452614afe60c085018261418e565b905060208301518482036020860152614b17828261418e565b91505060408301518482036040860152614b31828261418e565b91505060608301518482036060860152614b4b828261418e565b9150506080830151608085015260a083015160a08501528091505092915050565b604081526000614b7f6040830185614ae9565b8281036020840152614b918185614ae9565b95945050505050565b602080825260089082015267195c5d5a5c1c195960c21b604082015260600190565b600060208284031215614bce57600080fd5b8151613d8681614799565b600060208284031215614beb57600080fd5b8151613d86816140a5565b6020808252600990820152683337b93134b23232b760b91b604082015260600190565b8381526020810183905281516001600160a01b031660408201526101e0810160208301516001600160a01b0381166060840152506040830151608083015260608301516001600160a01b03811660a084015250608083015160c083015260a083015160e083015260c0830151610100818185015260e085015191506101208281860152818601516101408601528086015192505050614cbc61016084018261411c565b50949350505050565b634e487b7160e01b600052603260045260246000fd5b8082018082111561092157610921614ac0565b601f821115610b63576000816000526020600020601f850160051c81016020861015614d175750805b601f850160051c820191505b81811015614d3657828155600101614d23565b505050505050565b81516001600160401b03811115614d5757614d57614240565b614d6b81614d658454614993565b84614cee565b602080601f831160018114614da05760008415614d885750858301515b600019600386901b1c1916600185901b178555614d36565b600085815260208120601f198616915b82811015614dcf57888601518255948401946001909101908401614db0565b5085821015614ded5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b604081526000614e106040830185614033565b90508260208301529392505050565b6020815260018060a01b038251166020820152602082015160408201526000604083015160a06060840152614e5760c084018261418e565b90506060840151151560808401526080840151151560a08401528091505092915050565b82815260406020820152600061258d6040830184614033565b600060208284031215614ea657600080fd5b5051919050565b600082614eca57634e487b7160e01b600052601260045260246000fd5b500490565b6001600160a01b038681168252858116602083015260a082019060038610614ef957614ef96140f6565b8560408401528085166060840152508260808301529695505050505050565b604081526000614e10604083018561418e565b600081548084526020808501945083600052602060002060005b838110156141bf57815487529582019560019182019101614f45565b60c082526000614f7460c0840183614f2b565b8381036020850152614f898160018501614f2b565b90508381036040850152614fa08160028501614f2b565b90508381036060850152614fb78160038501614f2b565b6004840154608086015260059093015460a09094019390935250919050565b60018060a01b0385168152836020820152608060408201526000614ffd6080830185614f61565b905082606083015295945050505050565b815461010082019060ff166150228161410c565b825260018301546020830152600283015460408301526003830154606083015260048301546080830152600583015460a0830152600683015460c083015260079092015460e09091015290565b600081830361010081121561508357600080fd5b61508b6142a0565b8351615096816142f2565b815260208481015190820152604080850151908201526080605f19830112156150be57600080fd5b6150c661427e565b9150606084015182526080840151602083015260a0840151604083015260c0840151606083015281606082015260e08401516080820152809250505092915050565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061518d90830184614033565b9695505050505050565b6000602082840312156151a957600080fd5b8151613d8681614000565b815461012082019060ff166151c88161410c565b825260018301546020830152600283015460408301526003830154606083015260048301546080830152600583015460a0830152600683015460c0830152600783015460e08301526008909201546101009091015290565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220181d87dedbb81f9a40b78cf3f893a3a64207ced9018b929529f251d6ee9f3d5264736f6c63430008170033