[ { "inputs": [ { "internalType": "string", "name": "_metadataURI", "type": "string" }, { "internalType": "address", "name": "_ERC20CGODS", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "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": [ { "indexed": false, "internalType": "string", "name": "battleName", "type": "string" }, { "indexed": true, "internalType": "address", "name": "winner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "loser", "type": "address" } ], "name": "BattleEnded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "string", "name": "battleName", "type": "string" }, { "indexed": true, "internalType": "bool", "name": "isFirstMove", "type": "bool" } ], "name": "BattleMove", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "battleName", "type": "string" }, { "indexed": true, "internalType": "address", "name": "player1", "type": "address" }, { "indexed": true, "internalType": "address", "name": "player2", "type": "address" } ], "name": "NewBattle", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "attackStrength", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "defenseStrength", "type": "uint256" } ], "name": "NewGameToken", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": false, "internalType": "string", "name": "name", "type": "string" } ], "name": "NewPlayer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address[2]", "name": "damagedPlayers", "type": "address[2]" } ], "name": "RoundEnded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "indexed": false, "internalType": "uint256[]", "name": "values", "type": "uint256[]" } ], "name": "TransferBatch", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "TransferSingle", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "value", "type": "string" }, { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "URI", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "player", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "rewardTransferred", "type": "event" }, { "inputs": [], "name": "CELESTION", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DEVIL", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "FIREBIRD", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "GRIFFIN", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "KAMO", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "KUKULKAN", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_ATTACK_DEFEND_STRENGTH", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint8", "name": "_choice", "type": "uint8" }, { "internalType": "string", "name": "_battleName", "type": "string" } ], "name": "attackOrDefendChoice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "accounts", "type": "address[]" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" } ], "name": "balanceOfBatch", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "", "type": "string" } ], "name": "battleBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "", "type": "string" } ], "name": "battleInfo", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "battles", "outputs": [ { "internalType": "enum CrossTheGods.BattleStatus", "name": "battleStatus", "type": "uint8" }, { "internalType": "bytes32", "name": "battleHash", "type": "bytes32" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "uint256", "name": "entryFee", "type": "uint256" }, { "internalType": "address", "name": "winner", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "commission", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "uint256", "name": "_entryFee", "type": "uint256" } ], "name": "createBattle", "outputs": [ { "components": [ { "internalType": "enum CrossTheGods.BattleStatus", "name": "battleStatus", "type": "uint8" }, { "internalType": "bytes32", "name": "battleHash", "type": "bytes32" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "uint256", "name": "entryFee", "type": "uint256" }, { "internalType": "address[2]", "name": "players", "type": "address[2]" }, { "internalType": "uint8[2]", "name": "moves", "type": "uint8[2]" }, { "internalType": "address", "name": "winner", "type": "address" } ], "internalType": "struct CrossTheGods.Battle", "name": "", "type": "tuple" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" } ], "name": "createRandomGameToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "exists", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "gameTokens", "outputs": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "attackStrength", "type": "uint256" }, { "internalType": "uint256", "name": "defenseStrength", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getAllBattles", "outputs": [ { "components": [ { "internalType": "enum CrossTheGods.BattleStatus", "name": "battleStatus", "type": "uint8" }, { "internalType": "bytes32", "name": "battleHash", "type": "bytes32" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "uint256", "name": "entryFee", "type": "uint256" }, { "internalType": "address[2]", "name": "players", "type": "address[2]" }, { "internalType": "uint8[2]", "name": "moves", "type": "uint8[2]" }, { "internalType": "address", "name": "winner", "type": "address" } ], "internalType": "struct CrossTheGods.Battle[]", "name": "", "type": "tuple[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getAllPlayerTokens", "outputs": [ { "components": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "attackStrength", "type": "uint256" }, { "internalType": "uint256", "name": "defenseStrength", "type": "uint256" } ], "internalType": "struct CrossTheGods.GameToken[]", "name": "", "type": "tuple[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getAllPlayers", "outputs": [ { "components": [ { "internalType": "address", "name": "playerAddress", "type": "address" }, { "internalType": "string", "name": "playerName", "type": "string" }, { "internalType": "uint256", "name": "playerMana", "type": "uint256" }, { "internalType": "uint256", "name": "playerHealth", "type": "uint256" }, { "internalType": "bool", "name": "inBattle", "type": "bool" } ], "internalType": "struct CrossTheGods.Player[]", "name": "", "type": "tuple[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" } ], "name": "getBattle", "outputs": [ { "components": [ { "internalType": "enum CrossTheGods.BattleStatus", "name": "battleStatus", "type": "uint8" }, { "internalType": "bytes32", "name": "battleHash", "type": "bytes32" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "uint256", "name": "entryFee", "type": "uint256" }, { "internalType": "address[2]", "name": "players", "type": "address[2]" }, { "internalType": "uint8[2]", "name": "moves", "type": "uint8[2]" }, { "internalType": "address", "name": "winner", "type": "address" } ], "internalType": "struct CrossTheGods.Battle", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_battleName", "type": "string" } ], "name": "getBattleMoves", "outputs": [ { "internalType": "uint256", "name": "P1Move", "type": "uint256" }, { "internalType": "uint256", "name": "P2Move", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "addr", "type": "address" } ], "name": "getPlayer", "outputs": [ { "components": [ { "internalType": "address", "name": "playerAddress", "type": "address" }, { "internalType": "string", "name": "playerName", "type": "string" }, { "internalType": "uint256", "name": "playerMana", "type": "uint256" }, { "internalType": "uint256", "name": "playerHealth", "type": "uint256" }, { "internalType": "bool", "name": "inBattle", "type": "bool" } ], "internalType": "struct CrossTheGods.Player", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "addr", "type": "address" } ], "name": "getPlayerToken", "outputs": [ { "components": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "attackStrength", "type": "uint256" }, { "internalType": "uint256", "name": "defenseStrength", "type": "uint256" } ], "internalType": "struct CrossTheGods.GameToken", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getTotalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" } ], "name": "isBattle", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "addr", "type": "address" } ], "name": "isPlayer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "addr", "type": "address" } ], "name": "isPlayerToken", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" } ], "name": "joinBattle", "outputs": [ { "components": [ { "internalType": "enum CrossTheGods.BattleStatus", "name": "battleStatus", "type": "uint8" }, { "internalType": "bytes32", "name": "battleHash", "type": "bytes32" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "uint256", "name": "entryFee", "type": "uint256" }, { "internalType": "address[2]", "name": "players", "type": "address[2]" }, { "internalType": "uint8[2]", "name": "moves", "type": "uint8[2]" }, { "internalType": "address", "name": "winner", "type": "address" } ], "internalType": "struct CrossTheGods.Battle", "name": "", "type": "tuple" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "playerInfo", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "playerTokenInfo", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "players", "outputs": [ { "internalType": "address", "name": "playerAddress", "type": "address" }, { "internalType": "string", "name": "playerName", "type": "string" }, { "internalType": "uint256", "name": "playerMana", "type": "uint256" }, { "internalType": "uint256", "name": "playerHealth", "type": "uint256" }, { "internalType": "bool", "name": "inBattle", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_battleName", "type": "string" } ], "name": "quitBattle", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_gameTokenName", "type": "string" } ], "name": "registerPlayer", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "rewardAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "rewardBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "rewardEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeBatchTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "newuri", "type": "string" } ], "name": "setURI", "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": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "tokenWithdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "totalBattleBalances", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "uri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" } ]
60a06040526006805460ff19908116600117909155680821ab0d441498000060075560088054909116600a1790553480156200003a57600080fd5b5060405162006003380380620060038339810160408190526200005d91620004e7565b816200006981620000a3565b506200007533620000b5565b6001600160a01b03811660805260056200009083826200065e565b506200009b62000107565b505062000740565b6002620000b182826200065e565b5050565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040805160a08101825260006080820181815282526020820181905291810182905260608101829052601180546001810182559252805190916004027f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68019081906200017490826200065e565b506020828101516001838101919091556040808501516002850155606094850151600390940193909355825160a0810184526000808252845180850186528181529382019384529381018490529384018390526080840183905260108054918201815590925282517f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672600590930292830180546001600160a01b0319166001600160a01b03909216919091178155905190917f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae67301906200025590826200065e565b506040828101516002830155606083015160038301556080909201516004909101805460ff1916911515919091179055805160e081019091526012908060008152600060208083018290526040805180830182528381528185015260608401839052805180820182528381528083018490526080850152805180820190915282815280820183905260a084015260c09092018190528354600181810186559482529190208251600890920201805492939092839160ff19909116908360028111156200032557620003256200072a565b021790555060208201516001820155604082015160028201906200034a90826200065e565b506060820151600382015560808201516200036c9060048301906002620003b0565b5060a08201516200038490600683019060026200040d565b5060c09190910151600790910180546001600160a01b0319166001600160a01b03909216919091179055565b8260028101928215620003fb579160200282015b82811115620003fb57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190620003c4565b50620004099291506200049d565b5090565b600183019183908215620003fb5791602002820160005b838211156200046457835183826101000a81548160ff021916908360ff160217905550926020019260010160208160000104928301926001030262000424565b8015620004935782816101000a81549060ff021916905560010160208160000104928301926001030262000464565b5050620004099291505b5b808211156200040957600081556001016200049e565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b0381168114620004e257600080fd5b919050565b60008060408385031215620004fb57600080fd5b82516001600160401b03808211156200051357600080fd5b818501915085601f8301126200052857600080fd5b8151818111156200053d576200053d620004b4565b604051601f8201601f19908116603f01168101908382118183101715620005685762000568620004b4565b816040528281526020935088848487010111156200058557600080fd5b600091505b82821015620005a957848201840151818301850152908301906200058a565b6000848483010152809650505050620005c4818601620004ca565b925050509250929050565b600181811c90821680620005e457607f821691505b6020821081036200060557634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200065957600081815260208120601f850160051c81016020861015620006345750805b601f850160051c820191505b81811015620006555782815560010162000640565b5050505b505050565b81516001600160401b038111156200067a576200067a620004b4565b62000692816200068b8454620005cf565b846200060b565b602080601f831160018114620006ca5760008415620006b15750858301515b600019600386901b1c1916600185901b17855562000655565b600085815260208120601f198616915b82811015620006fb57888601518255948401946001909101908401620006da565b50858210156200071a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052602160045260246000fd5b60805161588b62000778600039600081816123450152818161242401528181612bae01528181612ca90152613139015261588b6000f3fe608060405234801561001057600080fd5b50600436106103615760003560e01c8063845f433b116101c8578063bf103a4d11610104578063e985e9c5116100a2578063f242432a1161007c578063f242432a146107e6578063f2fde38b146107f9578063f71d96cb1461080c578063f7b2a7be1461083057600080fd5b8063e985e9c51461078d578063efa1c482146107c9578063f1da7339146107de57600080fd5b8063d2198cc5116100de578063d2198cc51461074b578063d7e751ff14610753578063de96cefc14610766578063e14891911461076e57600080fd5b8063bf103a4d1461071d578063c4e41b2214610730578063c87b56dd1461073857600080fd5b80639ec40aa311610171578063a6e079001161014b578063a6e079001461069c578063ba274956146106c7578063bd85b039146106da578063bf034b69146106fa57600080fd5b80639ec40aa314610663578063a1b4f57c14610676578063a22cb4651461068957600080fd5b8063996d7bea116101a2578063996d7bea146106205780639b09cc87146106335780639e4ecd111461065b57600080fd5b8063845f433b146105df5780638bdb3b2f146105f25780638da5cb5b1461060557600080fd5b80632434a257116102a25780635c12cd4b1161024057806367b40cf71161021a57806367b40cf7146105a75780636c0360eb146105c7578063703730a5146105cf578063715018a6146105d757600080fd5b80635c12cd4b1461054e5780635c93fc3d1461056e578063606d2e961461058357600080fd5b80633835e2b51161027c5780633835e2b5146104c15780634b114691146104ec5780634e1273f41461050c5780634f558e791461052c57600080fd5b80632434a257146104855780632711162e1461048e5780632eb2c2d6146104ae57600080fd5b80630daea2cd1161030f5780631107ae3d116102e95780631107ae3d1461043c57806316801d171461044f57806317ee69951461046f57806318160ddd1461047c57600080fd5b80630daea2cd146103f45780630e89341c146103fc57806310898e4c1461041c57600080fd5b806302fe53051161034057806302fe5305146103c45780630677aa4e146103d957806309c95e10146103e157600080fd5b8062fdd58e14610366578063015a37921461038c57806301ffc9a7146103a1575b600080fd5b61037961037436600461497c565b610839565b6040519081526020015b60405180910390f35b6103946108e5565b6040516103839190614a35565b6103b46103af366004614aad565b6109f4565b6040519015158152602001610383565b6103d76103d2366004614b88565b610a8f565b005b610379600381565b6103b46103ef366004614bbd565b610aa3565b610379600a81565b61040f61040a366004614bd8565b610ad7565b6040516103839190614bf1565b61042f61042a366004614bbd565b610b6b565b6040516103839190614c04565b6103b461044a366004614b88565b610ce9565b61046261045d366004614b88565b610d19565b6040516103839190614d16565b6006546103b49060ff1681565b610379600a5481565b61037960095481565b61037961049c366004614bbd565b600d6020526000908152604090205481565b6103d76104bc366004614dbe565b610f45565b6103796104cf366004614b88565b8051602081830181018051600f8252928201919093012091525481565b6103796104fa366004614bbd565b600c6020526000908152604090205481565b61051f61051a366004614e68565b610fe7565b6040516103839190614f6e565b6103b461053a366004614bd8565b600090815260046020526040902054151590565b61056161055c366004614bbd565b611125565b6040516103839190614fd5565b6105766112d1565b6040516103839190614fe8565b610596610591366004614bd8565b6114a5565b60405161038395949392919061503d565b6103796105b5366004614bbd565b600b6020526000908152604090205481565b61040f61157e565b610379600281565b6103d761160c565b6103d76105ed366004615084565b611620565b6104626106003660046150de565b6117c2565b6003546040516001600160a01b039091168152602001610383565b6103d761062e366004614b88565b611a14565b610646610641366004614b88565b611ada565b60408051928352602083019190915201610383565b610379600581565b6103d7610671366004614b88565b611b04565b610462610684366004614b88565b611bbc565b6103d7610697366004615131565b611ea0565b6103796106aa366004614b88565b8051602081830181018051600e8252928201919093012091525481565b6103d76106d5366004615168565b611eab565b6103796106e8366004614bd8565b60009081526004602052604090205490565b61070d610708366004614bd8565b6121f7565b60405161038394939291906151b4565b6103b461072b366004614bbd565b6122bf565b600a54610379565b61040f610746366004614bd8565b6122e6565b610379600081565b6103d7610761366004614bd8565b61231a565b610379600181565b60085461077b9060ff1681565b60405160ff9091168152602001610383565b6103b461079b3660046151e3565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b6107d1612499565b6040516103839190615216565b610379600481565b6103d76107f436600461526b565b6125c0565b6103d7610807366004614bbd565b61265b565b61081f61081a366004614bd8565b6126e8565b6040516103839594939291906152d0565b61037960075481565b60006001600160a01b0383166108bc5760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201527f616c6964206f776e65720000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b506000818152602081815260408083206001600160a01b03861684529091529020545b92915050565b60606011805480602002602001604051908101604052809291908181526020016000905b828210156109eb578382906000526020600020906004020160405180608001604052908160008201805461093c90615311565b80601f016020809104026020016040519081016040528092919081815260200182805461096890615311565b80156109b55780601f1061098a576101008083540402835291602001916109b5565b820191906000526020600020905b81548152906001019060200180831161099857829003601f168201915b50505050508152602001600182015481526020016002820154815260200160038201548152505081526020019060010190610909565b50505050905090565b60006001600160e01b031982167fd9b67a26000000000000000000000000000000000000000000000000000000001480610a5757506001600160e01b031982167f0e89341c00000000000000000000000000000000000000000000000000000000145b806108df57507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316146108df565b610a976127c1565b610aa08161281b565b50565b6001600160a01b0381166000908152600c60205260408120548103610aca57506000919050565b506001919050565b919050565b606060028054610ae690615311565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1290615311565b8015610b5f5780601f10610b3457610100808354040283529160200191610b5f565b820191906000526020600020905b815481529060010190602001808311610b4257829003601f168201915b50505050509050919050565b610b966040518060800160405280606081526020016000815260200160008152602001600081525090565b610b9f826122bf565b610beb5760405162461bcd60e51b815260206004820152601960248201527f47616d6520746f6b656e20646f65736e2774206578697374210000000000000060448201526064016108b3565b6001600160a01b0382166000908152600d6020526040902054601180549091908110610c1957610c1961534b565b9060005260206000209060040201604051806080016040529081600082018054610c4290615311565b80601f0160208091040260200160405190810160405280929190818152602001828054610c6e90615311565b8015610cbb5780601f10610c9057610100808354040283529160200191610cbb565b820191906000526020600020905b815481529060010190602001808311610c9e57829003601f168201915b5050505050815260200160018201548152602001600282015481526020016003820154815250509050919050565b6000600f82604051610cfb9190615361565b908152602001604051809103902054600003610aca57506000919050565b610d21614802565b610d2a82610ce9565b610d765760405162461bcd60e51b815260206004820152601560248201527f426174746c6520646f65736e277420657869737421000000000000000000000060448201526064016108b3565b6012600f83604051610d889190615361565b90815260200160405180910390205481548110610da757610da761534b565b600091825260209091206040805160e081019091526008909202018054829060ff166002811115610dda57610dda614c17565b6002811115610deb57610deb614c17565b815260200160018201548152602001600282018054610e0990615311565b80601f0160208091040260200160405190810160405280929190818152602001828054610e3590615311565b8015610e825780601f10610e5757610100808354040283529160200191610e82565b820191906000526020600020905b815481529060010190602001808311610e6557829003601f168201915b5050509183525050600382015460208201526040805180820182529101906004830160028282826020028201915b81546001600160a01b03168152600190910190602001808311610eb05750505091835250506040805180820191829052602090920191906006840190600290826000855b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610ef457505050928452505050600791909101546001600160a01b031660209091015292915050565b6001600160a01b038516331480610f615750610f61853361079b565b610fd35760405162461bcd60e51b815260206004820152602f60248201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60448201527f6572206e6f7220617070726f766564000000000000000000000000000000000060648201526084016108b3565b610fe08585858585612827565b5050505050565b606081518351146110605760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e67746860448201527f206d69736d61746368000000000000000000000000000000000000000000000060648201526084016108b3565b6000835167ffffffffffffffff81111561107c5761107c614ad1565b6040519080825280602002602001820160405280156110a5578160200160208202803683370190505b50905060005b845181101561111d576110f08582815181106110c9576110c961534b565b60200260200101518583815181106110e3576110e361534b565b6020026020010151610839565b8282815181106111025761110261534b565b602090810291909101015261111681615393565b90506110ab565b509392505050565b6111626040518060a0016040528060006001600160a01b031681526020016060815260200160008152602001600081526020016000151581525090565b61116b82610aa3565b6111b75760405162461bcd60e51b815260206004820152601560248201527f506c6179657220646f65736e277420657869737421000000000000000000000060448201526064016108b3565b6001600160a01b0382166000908152600c60205260409020546010805490919081106111e5576111e561534b565b60009182526020918290206040805160a0810190915260059092020180546001600160a01b03168252600181018054929391929184019161122590615311565b80601f016020809104026020016040519081016040528092919081815260200182805461125190615311565b801561129e5780601f106112735761010080835404028352916020019161129e565b820191906000526020600020905b81548152906001019060200180831161128157829003601f168201915b5050509183525050600282015460208201526003820154604082015260049091015460ff16151560609091015292915050565b60606012805480602002602001604051908101604052809291908181526020016000905b828210156109eb576000848152602090206040805160e08101909152600884029091018054829060ff16600281111561133057611330614c17565b600281111561134157611341614c17565b81526020016001820154815260200160028201805461135f90615311565b80601f016020809104026020016040519081016040528092919081815260200182805461138b90615311565b80156113d85780601f106113ad576101008083540402835291602001916113d8565b820191906000526020600020905b8154815290600101906020018083116113bb57829003601f168201915b5050509183525050600382015460208201526040805180820182529101906004830160028282826020028201915b81546001600160a01b031681526001909101906020018083116114065750505091835250506040805180820191829052602090920191906006840190600290826000855b825461010083900a900460ff1681526020600192830181810494850194909303909202910180841161144a57505050928452505050600791909101546001600160a01b031660209182015290825260019290920191016112f5565b601281815481106114b557600080fd5b600091825260209091206008909102018054600182015460028301805460ff90931694509092916114e590615311565b80601f016020809104026020016040519081016040528092919081815260200182805461151190615311565b801561155e5780601f106115335761010080835404028352916020019161155e565b820191906000526020600020905b81548152906001019060200180831161154157829003601f168201915b5050505060038301546007909301549192916001600160a01b0316905085565b6005805461158b90615311565b80601f01602080910402602001604051908101604052809291908181526020018280546115b790615311565b80156116045780601f106115d957610100808354040283529160200191611604565b820191906000526020600020905b8154815290600101906020018083116115e757829003601f168201915b505050505081565b6116146127c1565b61161e6000612aa8565b565b61162933610aa3565b156116765760405162461bcd60e51b815260206004820152601960248201527f506c6179657220616c726561647920726567697374657265640000000000000060448201526064016108b3565b601080546040805160a08101825233815260208101868152600a92820192909252601960608201526000608082018190526001840185559390935282517f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6726005840290810180546001600160a01b0319166001600160a01b03909316929092178255915192939290917f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae673019061172c90826153f7565b506040828101516002830155606083015160038301556080909201516004909101805460ff1916911515919091179055336000908152600c6020522081905561177482611b04565b61177c612afa565b336001600160a01b03167f81ef79d1cda814a60c0fc60792e648a06d9c6bae67176346d1cc8b63030bfccd846040516117b59190614bf1565b60405180910390a2505050565b6117ca614802565b6117d333610aa3565b61181f5760405162461bcd60e51b815260206004820152601c60248201527f506c6561736520526567697374657220506c617965722046697273740000000060448201526064016108b3565b61182883610ce9565b156118755760405162461bcd60e51b815260206004820152601660248201527f426174746c6520616c726561647920657869737473210000000000000000000060448201526064016108b3565b61187f8383612b57565b6000836040516020016118929190614bf1565b60408051808303601f19018152828252805160209182012060e0840183526000808552828501829052848401899052606085018890528351808501855233815280840182905260808601528351808501855281815292830181905260a085019290925260c084019190915260125491519093508190600f90611915908990615361565b908152604051908190036020019020556012805460018181018355600092909252835160089091027fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec34440180548593919291839160ff19169083600281111561197f5761197f614c17565b021790555060208201516001820155604082015160028201906119a290826153f7565b506060820151600382015560808201516119c2906004830190600261484c565b5060a08201516119d890600683019060026148a4565b5060c09190910151600790910180546001600160a01b0319166001600160a01b03909216919091179055611a0b33612d70565b50949350505050565b6000611a1f82610d19565b6080810151519091506001600160a01b0316331480611a4e57506080810151602001516001600160a01b031633145b611a9a5760405162461bcd60e51b815260206004820152601b60248201527f596f7520617265206e6f7420696e207468697320626174746c6521000000000060448201526064016108b3565b6080810151516001600160a01b03163314611aca576080810151611ac69060005b602002015182612e1e565b5050565b6080810151611ac6906001611abb565b6000806000611ae884610d19565b60a00151805160209091015160ff918216969116945092505050565b611b0d33611125565b6080015115611b5e5760405162461bcd60e51b815260206004820152601560248201527f506c6179657220697320696e206120626174746c65000000000000000000000060448201526064016108b3565b611b6733610aa3565b611bb35760405162461bcd60e51b815260206004820152601c60248201527f506c6561736520526567697374657220506c617965722046697273740000000060448201526064016108b3565b611ac681613201565b611bc4614802565b611bcd33610aa3565b611c195760405162461bcd60e51b815260206004820152601c60248201527f506c6561736520526567697374657220506c617965722046697273740000000060448201526064016108b3565b6000611c2483610d19565b9050600081516002811115611c3b57611c3b614c17565b14611c885760405162461bcd60e51b815260206004820152601760248201527f426174746c6520616c726561647920737461727465642100000000000000000060448201526064016108b3565b608081015151336001600160a01b0390911603611cf15760405162461bcd60e51b815260206004820152602160248201527f4f6e6c7920706c617965722074776f2063616e206a6f696e206120626174746c6044820152606560f81b60648201526084016108b3565b611cfa33611125565b6080015115611d4b5760405162461bcd60e51b815260206004820152601160248201527f416c726561647920696e20626174746c6500000000000000000000000000000060448201526064016108b3565b611d59838260600151612b57565b60018152608081015133602090910152611d738382613427565b60016010600c60008460800151600060028110611d9257611d9261534b565b60200201516001600160a01b03166001600160a01b031681526020019081526020016000205481548110611dc857611dc861534b565b60009182526020808320600592909202909101600401805460ff19169315159390931790925560808301518201516001600160a01b03168152600c909152604090205460108054600192908110611e2157611e2161534b565b60009182526020909120600590910201600401805460ff1916911515919091179055611e4c33612d70565b608081015151604080830151905133926001600160a01b0316917f024187b16c217a79f8d8e6252b542ec6e278fa91304acd9cfd866f2bbf00bd0891611e929190614bf1565b60405180910390a392915050565b611ac6338383613566565b611eb481610ce9565b611f005760405162461bcd60e51b815260206004820152601460248201527f426174746c6520646f65736e277420657869737400000000000000000000000060448201526064016108b3565b6000611f0b82610d19565b9050600281516002811115611f2257611f22614c17565b03611f6f5760405162461bcd60e51b815260206004820152601860248201527f426174746c652068617320616c726561647920656e646564000000000000000060448201526064016108b3565b600181516002811115611f8457611f84614c17565b146120015760405162461bcd60e51b815260206004820152604160248201527f426174746c65206e6f7420737461727465642e20506c656173652074656c6c2060448201527f616e6f7468657220706c6179657220746f206a6f696e2074686520626174746c6064820152606560f81b608482015260a4016108b3565b6080810151516001600160a01b031633148061202d57506080810151602001516001600160a01b031633145b6120795760405162461bcd60e51b815260206004820152601a60248201527f596f7520617265206e6f7420696e207468697320626174746c6500000000000060448201526064016108b3565b60a08101516080820151516001600160a01b0316331461209a57600161209d565b60005b60ff16600281106120b0576120b061534b565b602002015160ff16156121055760405162461bcd60e51b815260206004820152601d60248201527f596f75206861766520616c7265616479206d6164652061206d6f76652100000060448201526064016108b3565b608081015151612132906001600160a01b03163314612125576001612128565b60005b60ff16848461365a565b61213b82610d19565b60a08101516020015190915060009060ff161561215957600161215c565b60005b60a08301515160ff1615612171576001612174565b60005b61217f9060026154b7565b61218991906154b7565b60ff1690508060011461219d5760006121a0565b60015b1515836040516121b09190615361565b604051908190038120907f54b82b77e7ae55a8e6c9e89deba70c7191dea2a3b08ae647b380e9f981d6a0f890600090a3806000036121f1576121f1826137ca565b50505050565b6011818154811061220757600080fd5b906000526020600020906004020160009150905080600001805461222a90615311565b80601f016020809104026020016040519081016040528092919081815260200182805461225690615311565b80156122a35780601f10612278576101008083540402835291602001916122a3565b820191906000526020600020905b81548152906001019060200180831161228657829003601f168201915b5050505050908060010154908060020154908060030154905084565b6001600160a01b0381166000908152600d60205260408120548103610aca57506000919050565b606060056122f383613eb7565b6040516020016123049291906154d0565b6040516020818303038152906040529050919050565b6123226127c1565b6009546040516370a0823160e01b81523060048201528291906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa15801561238c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123b091906155aa565b6123ba91906155c3565b10156124085760405162461bcd60e51b815260206004820152601d60248201527f496e73756666696369656e7420636c61696d61626c6520616d6f756e7400000060448201526064016108b3565b60405163a9059cbb60e01b8152336004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015612475573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ac691906155d6565b60606010805480602002602001604051908101604052809291908181526020016000905b828210156109eb5760008481526020908190206040805160a081019091526005850290910180546001600160a01b03168252600181018054929391929184019161250690615311565b80601f016020809104026020016040519081016040528092919081815260200182805461253290615311565b801561257f5780601f106125545761010080835404028352916020019161257f565b820191906000526020600020905b81548152906001019060200180831161256257829003601f168201915b505050918352505060028201546020808301919091526003830154604083015260049092015460ff16151560609091015290825260019290920191016124bd565b6001600160a01b0385163314806125dc57506125dc853361079b565b61264e5760405162461bcd60e51b815260206004820152602f60248201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60448201527f6572206e6f7220617070726f766564000000000000000000000000000000000060648201526084016108b3565b610fe0858585858561400e565b6126636127c1565b6001600160a01b0381166126df5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016108b3565b610aa081612aa8565b601081815481106126f857600080fd5b6000918252602090912060059091020180546001820180546001600160a01b0390921693509061272790615311565b80601f016020809104026020016040519081016040528092919081815260200182805461275390615311565b80156127a05780601f10612775576101008083540402835291602001916127a0565b820191906000526020600020905b81548152906001019060200180831161278357829003601f168201915b50505050600283015460038401546004909401549293909290915060ff1685565b6003546001600160a01b0316331461161e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108b3565b6002611ac682826153f7565b815183511461289e5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060448201527f6d69736d6174636800000000000000000000000000000000000000000000000060648201526084016108b3565b6001600160a01b0384166129025760405162461bcd60e51b815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b60648201526084016108b3565b336129118187878787876141c7565b60005b8451811015612a3a5760008582815181106129315761293161534b565b60200260200101519050600085838151811061294f5761294f61534b565b602090810291909101810151600084815280835260408082206001600160a01b038e1683529093529190912054909150818110156129e25760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60448201526939103a3930b739b332b960b11b60648201526084016108b3565b6000838152602081815260408083206001600160a01b038e8116855292528083208585039055908b16825281208054849290612a1f9084906155f3565b9250508190555050505080612a3390615393565b9050612914565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051612a8a929190615606565b60405180910390a4612aa08187878787876141d5565b505050505050565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60065460ff161561161e57600754336000818152600b6020526040908190208390555190917f2bed53d884f9657c5efa193ee10044a039d8ec3b6cade1b05785cc9162e6931691612b4d91815260200190565b60405180910390a2565b336000908152600b60205260409020548111612b9757336000908152600b602052604081208054839290612b8c9084906155c3565b90915550612d209050565b6040516370a0823160e01b815233600482015281907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015612bfd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c2191906155aa565b11612c6e5760405162461bcd60e51b815260206004820152601e60248201527f496e73756666696369656e742062616c616e636520666f7220656e747279000060448201526064016108b3565b6040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906323b872dd906064016020604051808303816000875af1158015612cfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d1e91906155d6565b505b80600e83604051612d319190615361565b90815260200160405180910390206000828254612d4e91906155f3565b925050819055508060096000828254612d6791906155f3565b90915550505050565b6000612d7d600a83614383565b9050806011600d6000856001600160a01b03166001600160a01b031681526020019081526020016000205481548110612db857612db861534b565b6000918252602090912060026004909202010155612dd781600a6155c3565b6001600160a01b0383166000908152600d6020526040902054601180549091908110612e0557612e0561534b565b9060005260206000209060040201600301819055505050565b600281516002811115612e3357612e33614c17565b03612e805760405162461bcd60e51b815260206004820152601460248201527f426174746c6520616c726561647920656e64656400000000000000000000000060448201526064016108b3565b600281526001600160a01b03821660c08201526040810151612ea29082613427565b6000600c60008360800151600060028110612ebf57612ebf61534b565b60200201516001600160a01b03166001600160a01b031681526020019081526020016000205490506000600c60008460800151600160028110612f0457612f0461534b565b60200201516001600160a01b03166001600160a01b03168152602001908152602001600020549050600060108381548110612f4157612f4161534b565b906000526020600020906005020160040160006101000a81548160ff021916908315150217905550601960108381548110612f7e57612f7e61534b565b906000526020600020906005020160030181905550601460108381548110612fa857612fa861534b565b906000526020600020906005020160020181905550600060108281548110612fd257612fd261534b565b906000526020600020906005020160040160006101000a81548160ff02191690831515021790555060196010828154811061300f5761300f61534b565b9060005260206000209060050201600301819055506014601082815481106130395761303961534b565b60009182526020822060059190910201600201919091556080840151516001600160a01b038681169116146130735760808401515161307d565b6080840151602001515b90506000600e85604001516040516130959190615361565b90815260200160405180910390205490506000600e86604001516040516130bc9190615361565b90815260200160405180910390208190555080600960008282546130e091906155c3565b90915550506008546000906064906130fc90849060ff16615634565b6131069190615661565b61311090836155c3565b60405163a9059cbb60e01b81526001600160a01b038981166004830152602482018390529192507f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303816000875af1158015613184573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131a891906155d6565b50826001600160a01b0316876001600160a01b03167fae6e5eafb6cd1cb4b139e7a0b9140aa182ee7d50e99f50d660156f79212acbc088604001516040516131f09190614bf1565b60405180910390a350505050505050565b61322c6040518060800160405280606081526020016000815260200160008152602001600081525090565b6000613239600a33614383565b9050600061324882600a6155c3565b905060006064423360405160200161327c92919091825260601b6bffffffffffffffffffffffff1916602082015260340190565b6040516020818303038152906040528051906020012060001c61329f9190615675565b90506132ac600682615689565b90508060ff166000036132c757806132c3816156ab565b9150505b6040805160808101825286815260ff8316602082015260009181018290526060810182905260118054600181018255925280519091908290600483027f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c680190819061333290826153f7565b50602082015181600101556040820151816002015560608201518160030155505080600d6000336001600160a01b03166001600160a01b03168152602001908152602001600020819055506133c2338460ff1660016040518060400160405280600381526020017f30783000000000000000000000000000000000000000000000000000000000008152506143f7565b600a80549060006133d283615393565b90915550506040805160ff851681526020810187905290810185905233907fca8ab07e9ed17d119729fc652dd24df9d8430ca862dda4631925b5b4b99da3629060600160405180910390a25095945050505050565b61343082610ce9565b61347c5760405162461bcd60e51b815260206004820152601460248201527f426174746c6520646f65736e277420657869737400000000000000000000000060448201526064016108b3565b806012600f8460405161348f9190615361565b908152602001604051809103902054815481106134ae576134ae61534b565b6000918252602090912082516008909202018054909190829060ff191660018360028111156134df576134df614c17565b0217905550602082015160018201556040820151600282019061350290826153f7565b50606082015160038201556080820151613522906004830190600261484c565b5060a082015161353890600683019060026148a4565b5060c09190910151600790910180546001600160a01b0319166001600160a01b039092169190911790555050565b816001600160a01b0316836001600160a01b0316036135ed5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c2073746174757360448201527f20666f722073656c66000000000000000000000000000000000000000000000060648201526084016108b3565b6001600160a01b03838116600081815260016020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b8160ff166001148061366f57508160ff166002145b6136bb5760405162461bcd60e51b815260206004820152601f60248201527f43686f6963652073686f756c64206265206569746865722031206f722032210060448201526064016108b3565b8160ff166001146136cd5760016136df565b60036136d833611125565b6040015110155b6137515760405162461bcd60e51b815260206004820152602260248201527f4d616e61206e6f742073756666696369656e7420666f722061747461636b696e60448201527f672100000000000000000000000000000000000000000000000000000000000060648201526084016108b3565b816012600f836040516137649190615361565b908152602001604051809103902054815481106137835761378361534b565b906000526020600020906008020160060184600281106137a5576137a561534b565b602091828204019190066101000a81548160ff021916908360ff160217905550505050565b60006040518060a00160405280600c600085608001516000600281106137f2576137f261534b565b60200201516001600160a01b03166001600160a01b031681526020019081526020016000205481526020018360a001516000600281106138345761383461534b565b602002015160ff168152602001613865846080015160006002811061385b5761385b61534b565b6020020151611125565b60600151815260200161389284608001516000600281106138885761388861534b565b6020020151610b6b565b6040015181526020016138b584608001516000600281106138885761388861534b565b60600151815250905060006040518060a00160405280600c600086608001516001600281106138e6576138e661534b565b60200201516001600160a01b03166001600160a01b031681526020019081526020016000205481526020018460a001516001600281106139285761392861534b565b602002015160ff16815260200161394f856080015160016002811061385b5761385b61534b565b60600151815260200161397285608001516001600281106138885761388861534b565b60400151815260200161399585608001516001600281106138885761388861534b565b6060015190526040805180820190915260008082526020808301919091528401519192509060011480156139cd575081602001516001145b15613b1e5781604001518360600151106139f85760808401516121f19060005b602002015185612e1e565b8260400151826060015110613a175760808401516121f19060016139ed565b81606001516010846000015181548110613a3357613a3361534b565b90600052602060002090600502016003016000828254613a5391906155c3565b909155505060608301518251601080549091908110613a7457613a7461534b565b90600052602060002090600502016003016000828254613a9491906155c3565b9091555050825160108054600392908110613ab157613ab161534b565b90600052602060002090600502016002016000828254613ad191906155c3565b9091555050815160108054600392908110613aee57613aee61534b565b90600052602060002090600502016002016000828254613b0e91906155c3565b9091555050506080830151613e33565b82602001516001148015613b36575081602001516002145b15613c6757600082608001518360400151613b5191906155f3565b905080846060015110613b75576080850151610fe09060005b602002015186612e1e565b6000846060015184608001511115613b9257506040830151613bb8565b6060850151613ba190836155c3565b6080870151602001516001600160a01b0316845290505b806010856000015181548110613bd057613bd061534b565b90600052602060002090600502016003018190555060036010866000015181548110613bfe57613bfe61534b565b90600052602060002090600502016002016000828254613c1e91906155c3565b9091555050835160108054600392908110613c3b57613c3b61534b565b90600052602060002090600502016002016000828254613c5b91906155f3565b90915550505050613e33565b82602001516002148015613c7f575081602001516001145b15613d9a57600083608001518460400151613c9a91906155f3565b905080836060015110613cb7576080850151610fe0906001613b6a565b6000836060015185608001511115613cd457506040840151613cf7565b6060840151613ce390836155c3565b6080870151516001600160a01b0316845290505b806010866000015181548110613d0f57613d0f61534b565b90600052602060002090600502016003018190555060036010866000015181548110613d3d57613d3d61534b565b90600052602060002090600502016002016000828254613d5d91906155f3565b9091555050835160108054600392908110613d7a57613d7a61534b565b90600052602060002090600502016002016000828254613c5b91906155c3565b82602001516002148015613db2575081602001516002145b15613e335760036010846000015181548110613dd057613dd061534b565b90600052602060002090600502016002016000828254613df091906155f3565b9091555050815160108054600392908110613e0d57613e0d61534b565b90600052602060002090600502016002016000828254613e2d91906155f3565b90915550505b60a0840180516000908190529051602001526040840151613e549085613427565b6080840151613e6a9060005b6020020151612d70565b6080840151613e7a906001613e60565b7fc6bf860cbc15f7020f73993a671f01bbb1831a8a7a12c126ca735eb632e7577581604051613ea991906156ca565b60405180910390a150505050565b606081600003613efa57505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115613f245780613f0e81615393565b9150613f1d9050600a83615661565b9150613efe565b60008167ffffffffffffffff811115613f3f57613f3f614ad1565b6040519080825280601f01601f191660200182016040528015613f69576020820181803683370190505b509050815b8515611a0b57613f7f6001826155c3565b90506000613f8e600a88615661565b613f9990600a615634565b613fa390886155c3565b613fae9060306156d8565b905060008160f81b905080848481518110613fcb57613fcb61534b565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350614005600a89615661565b97505050613f6e565b6001600160a01b0384166140725760405162461bcd60e51b815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b60648201526084016108b3565b33600061407e8561452d565b9050600061408b8561452d565b905061409b8389898585896141c7565b6000868152602081815260408083206001600160a01b038c1684529091529020548581101561411f5760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60448201526939103a3930b739b332b960b11b60648201526084016108b3565b6000878152602081815260408083206001600160a01b038d8116855292528083208985039055908a1682528120805488929061415c9084906155f3565b909155505060408051888152602081018890526001600160a01b03808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46141bc848a8a8a8a8a614578565b505050505050505050565b612aa0868686868686614674565b6001600160a01b0384163b15612aa05760405163bc197c8160e01b81526001600160a01b0385169063bc197c819061421990899089908890889088906004016156f1565b6020604051808303816000875af1925050508015614254575060408051601f3d908101601f191682019092526142519181019061574f565b60015b6143095761426061576c565b806308c379a0036142995750614274615788565b8061427f575061429b565b8060405162461bcd60e51b81526004016108b39190614bf1565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e204552433131353560448201527f526563656976657220696d706c656d656e74657200000000000000000000000060648201526084016108b3565b6001600160e01b0319811663bc197c8160e01b1461437a5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a656374656044820152676420746f6b656e7360c01b60648201526084016108b3565b50505050505050565b60008042836040516020016143b492919091825260601b6bffffffffffffffffffffffff1916602082015260340190565b60408051601f19818403018152919052805160209091012090506143d88482615675565b9150816000036143f0576143ed600285615661565b91505b5092915050565b6001600160a01b0384166144735760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016108b3565b33600061447f8561452d565b9050600061448c8561452d565b905061449d836000898585896141c7565b6000868152602081815260408083206001600160a01b038b168452909152812080548792906144cd9084906155f3565b909155505060408051878152602081018790526001600160a01b03808a1692600092918716917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a461437a83600089898989614578565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106145675761456761534b565b602090810291909101015292915050565b6001600160a01b0384163b15612aa05760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906145bc9089908990889088908890600401615812565b6020604051808303816000875af19250505080156145f7575060408051601f3d908101601f191682019092526145f49181019061574f565b60015b6146035761426061576c565b6001600160e01b0319811663f23a6e6160e01b1461437a5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a656374656044820152676420746f6b656e7360c01b60648201526084016108b3565b6001600160a01b0385166146fb5760005b83518110156146f9578281815181106146a0576146a061534b565b6020026020010151600460008684815181106146be576146be61534b565b6020026020010151815260200190815260200160002060008282546146e391906155f3565b909155506146f2905081615393565b9050614685565b505b6001600160a01b038416612aa05760005b835181101561437a5760008482815181106147295761472961534b565b6020026020010151905060008483815181106147475761474761534b565b60200260200101519050600060046000848152602001908152602001600020549050818110156147df5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a206275726e20616d6f756e74206578636565647320746f7460448201527f616c537570706c7900000000000000000000000000000000000000000000000060648201526084016108b3565b600092835260046020526040909220910390556147fb81615393565b905061470c565b6040805160e081019091528060008152600060208201819052606060408301819052820152608001614832614932565b815260200161483f614932565b8152600060209091015290565b8260028101928215614894579160200282015b8281111561489457825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019061485f565b506148a0929150614950565b5090565b6001830191839082156148945791602002820160005b838211156148f857835183826101000a81548160ff021916908360ff16021790555092602001926001016020816000010492830192600103026148ba565b80156149255782816101000a81549060ff02191690556001016020816000010492830192600103026148f8565b50506148a0929150614950565b60405180604001604052806002906020820280368337509192915050565b5b808211156148a05760008155600101614951565b80356001600160a01b0381168114610ad257600080fd5b6000806040838503121561498f57600080fd5b61499883614965565b946020939093013593505050565b60005b838110156149c15781810151838201526020016149a9565b50506000910152565b600081518084526149e28160208601602086016149a6565b601f01601f19169290920160200192915050565b6000815160808452614a0b60808501826149ca565b90506020830151602085015260408301516040850152606083015160608501528091505092915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015614a8a57603f19888603018452614a788583516149f6565b94509285019290850190600101614a5c565b5092979650505050505050565b6001600160e01b031981168114610aa057600080fd5b600060208284031215614abf57600080fd5b8135614aca81614a97565b9392505050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff81118282101715614b0d57614b0d614ad1565b6040525050565b600082601f830112614b2557600080fd5b813567ffffffffffffffff811115614b3f57614b3f614ad1565b604051614b56601f8301601f191660200182614ae7565b818152846020838601011115614b6b57600080fd5b816020850160208301376000918101602001919091529392505050565b600060208284031215614b9a57600080fd5b813567ffffffffffffffff811115614bb157600080fd5b6143ed84828501614b14565b600060208284031215614bcf57600080fd5b614aca82614965565b600060208284031215614bea57600080fd5b5035919050565b602081526000614aca60208301846149ca565b602081526000614aca60208301846149f6565b634e487b7160e01b600052602160045260246000fd5b60038110614c4b57634e487b7160e01b600052602160045260246000fd5b9052565b8060005b60028110156121f15781516001600160a01b0316845260209384019390910190600101614c53565b6000610120614c8b848451614c2d565b602080840151818601526040840151826040870152614cac838701826149ca565b925050606084015160608601526080840151614ccb6080870182614c4f565b5060a084015160c0860160005b6002811015614cf857825160ff1682529183019190830190600101614cd8565b5050505060c08301516001600160a01b03811661010086015261111d565b602081526000614aca6020830184614c7b565b600067ffffffffffffffff821115614d4357614d43614ad1565b5060051b60200190565b600082601f830112614d5e57600080fd5b81356020614d6b82614d29565b604051614d788282614ae7565b83815260059390931b8501820192828101915086841115614d9857600080fd5b8286015b84811015614db35780358352918301918301614d9c565b509695505050505050565b600080600080600060a08688031215614dd657600080fd5b614ddf86614965565b9450614ded60208701614965565b9350604086013567ffffffffffffffff80821115614e0a57600080fd5b614e1689838a01614d4d565b94506060880135915080821115614e2c57600080fd5b614e3889838a01614d4d565b93506080880135915080821115614e4e57600080fd5b50614e5b88828901614b14565b9150509295509295909350565b60008060408385031215614e7b57600080fd5b823567ffffffffffffffff80821115614e9357600080fd5b818501915085601f830112614ea757600080fd5b81356020614eb482614d29565b604051614ec18282614ae7565b83815260059390931b8501820192828101915089841115614ee157600080fd5b948201945b83861015614f0657614ef786614965565b82529482019490820190614ee6565b96505086013592505080821115614f1c57600080fd5b50614f2985828601614d4d565b9150509250929050565b600081518084526020808501945080840160005b83811015614f6357815187529582019590820190600101614f47565b509495945050505050565b602081526000614aca6020830184614f33565b6001600160a01b0381511682526000602082015160a06020850152614fa960a08501826149ca565b905060408301516040850152606083015160608501526080830151151560808501528091505092915050565b602081526000614aca6020830184614f81565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015614a8a57603f1988860301845261502b858351614c7b565b9450928501929085019060010161500f565b6150478187614c2d565b84602082015260a06040820152600061506360a08301866149ca565b90508360608301526001600160a01b03831660808301529695505050505050565b6000806040838503121561509757600080fd5b823567ffffffffffffffff808211156150af57600080fd5b6150bb86838701614b14565b935060208501359150808211156150d157600080fd5b50614f2985828601614b14565b600080604083850312156150f157600080fd5b823567ffffffffffffffff81111561510857600080fd5b61511485828601614b14565b95602094909401359450505050565b8015158114610aa057600080fd5b6000806040838503121561514457600080fd5b61514d83614965565b9150602083013561515d81615123565b809150509250929050565b6000806040838503121561517b57600080fd5b823560ff8116811461518c57600080fd5b9150602083013567ffffffffffffffff8111156151a857600080fd5b614f2985828601614b14565b6080815260006151c760808301876149ca565b6020830195909552506040810192909252606090910152919050565b600080604083850312156151f657600080fd5b6151ff83614965565b915061520d60208401614965565b90509250929050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015614a8a57603f19888603018452615259858351614f81565b9450928501929085019060010161523d565b600080600080600060a0868803121561528357600080fd5b61528c86614965565b945061529a60208701614965565b93506040860135925060608601359150608086013567ffffffffffffffff8111156152c457600080fd5b614e5b88828901614b14565b6001600160a01b038616815260a0602082015260006152f260a08301876149ca565b6040830195909552506060810192909252151560809091015292915050565b600181811c9082168061532557607f821691505b60208210810361534557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b600082516153738184602087016149a6565b9190910192915050565b634e487b7160e01b600052601160045260246000fd5b6000600182016153a5576153a561537d565b5060010190565b601f8211156153f257600081815260208120601f850160051c810160208610156153d35750805b601f850160051c820191505b81811015612aa0578281556001016153df565b505050565b815167ffffffffffffffff81111561541157615411614ad1565b6154258161541f8454615311565b846153ac565b602080601f83116001811461545a57600084156154425750858301515b600019600386901b1c1916600185901b178555612aa0565b600085815260208120601f198616915b828110156154895788860151825594840194600190910190840161546a565b50858210156154a75787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60ff82811682821603908111156108df576108df61537d565b60008084546154de81615311565b600182811680156154f6576001811461550b5761553a565b60ff198416875282151583028701945061553a565b8860005260208060002060005b858110156155315781548a820152908401908201615518565b50505082870194505b507f2f000000000000000000000000000000000000000000000000000000000000008452865192506155728382860160208a016149a6565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000939092019182019290925260060195945050505050565b6000602082840312156155bc57600080fd5b5051919050565b818103818111156108df576108df61537d565b6000602082840312156155e857600080fd5b8151614aca81615123565b808201808211156108df576108df61537d565b6040815260006156196040830185614f33565b828103602084015261562b8185614f33565b95945050505050565b80820281158282048414176108df576108df61537d565b634e487b7160e01b600052601260045260246000fd5b6000826156705761567061564b565b500490565b6000826156845761568461564b565b500690565b600060ff83168061569c5761569c61564b565b8060ff84160691505092915050565b600060ff821660ff81036156c1576156c161537d565b60010192915050565b604081016108df8284614c4f565b60ff81811683821601908111156108df576108df61537d565b60006001600160a01b03808816835280871660208401525060a0604083015261571d60a0830186614f33565b828103606084015261572f8186614f33565b9050828103608084015261574381856149ca565b98975050505050505050565b60006020828403121561576157600080fd5b8151614aca81614a97565b600060033d11156157855760046000803e5060005160e01c5b90565b600060443d10156157965790565b6040516003193d81016004833e81513d67ffffffffffffffff81602484011181841117156157c657505050505090565b82850191508151818111156157de5750505050505090565b843d87010160208285010111156157f85750505050505090565b61580760208286010187614ae7565b509095945050505050565b60006001600160a01b03808816835280871660208401525084604083015283606083015260a0608083015261584a60a08301846149ca565b97965050505050505056fea26469706673582212204e723a4a80675565368e182aa80136b2ea7f2cd68b3baa0ae57aa53670930ec364736f6c634300081400330000000000000000000000000000000000000000000000000000000000000040000000000000000000000000eb57d55873e5f42cc915ceaaa95b5b2c5e1a5f9a000000000000000000000000000000000000000000000000000000000000005168747470733a2f2f676174657761792e70696e6174612e636c6f75642f697066732f516d583275626874425074597737355772707636484c62316668624a7178726e6268446f3152566957336f566f692f000000000000000000000000000000
0x0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000eb57d55873e5f42cc915ceaaa95b5b2c5e1a5f9a000000000000000000000000000000000000000000000000000000000000005168747470733a2f2f676174657761792e70696e6174612e636c6f75642f697066732f516d583275626874425074597737355772707636484c62316668624a7178726e6268446f3152566957336f566f692f000000000000000000000000000000
----Decoded View------------Arg [0] : _metadataURI (string): https://gateway.pinata.cloud/ipfs/QmX2ubhtBPtYw75Wrpv6HLb1fhbJqxrnbhDo1RViW3oVoi/Arg [1] : _ERC20CGODS (address): 0xeb57D55873E5F42Cc915ceAAA95b5b2c5e1A5f9a
----Encoded View------------Arg [0] : 0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000005168747470733a2f2f676174657761792e70696e6174612e636c6f75642f697066732f516d583275626874425074597737355772707636484c62316668624a7178726e6268446f3152566957336f566f692f000000000000000000000000000000Arg [1] : 0x000000000000000000000000eb57d55873e5f42cc915ceaaa95b5b2c5e1a5f9a