UNPKG

@animoca/ethereum-contracts-assets

Version:
752 lines 64.6 kB
{ "_format": "hh-sol-artifact-1", "contractName": "ERC721PausableMock", "sourceName": "contracts/token/ERC721/mocks/ERC721PausableMock.sol", "abi": [ { "inputs": [ { "internalType": "contract IForwarderRegistry", "name": "forwarderRegistry", "type": "address" }, { "internalType": "address", "name": "universalForwarder", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "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": [ { "indexed": false, "internalType": "string", "name": "baseMetadataURI", "type": "string" } ], "name": "BaseMetadataURISet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" } ], "name": "MinterAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" } ], "name": "MinterRemoved", "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", "name": "account", "type": "address" } ], "name": "Paused", "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": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "addMinter", "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": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseMetadataURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" } ], "name": "batchBurnFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256[]", "name": "nftIds", "type": "uint256[]" } ], "name": "batchMint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" } ], "name": "batchTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "burnFrom", "outputs": [], "stateMutability": "nonpayable", "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": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isMinter", "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": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "nftId", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "msgData", "outputs": [ { "internalType": "bytes", "name": "ret", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "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": "pause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "accounts", "type": "address[]" }, { "internalType": "address[]", "name": "tokens", "type": "address[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" } ], "name": "recoverERC20s", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "accounts", "type": "address[]" }, { "internalType": "address[]", "name": "contracts", "type": "address[]" }, { "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" } ], "name": "recoverERC721s", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceMinter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "nftId", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeMint", "outputs": [], "stateMutability": "nonpayable", "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": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "baseMetadataURI_", "type": "string" } ], "name": "setBaseMetadataURI", "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": "nftId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "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" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "unpause", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x60c06040523480156200001157600080fd5b506040516200310338038062003103833981810160405260408110156200003757600080fd5b50805160209182015160408051808201825260128152714552433732314275726e61626c654d6f636b60701b81860152815180830183526005815264229b9918a160d91b95810195909552600080546001600160a81b03191633610100810291909117825592519495939486948694939290918391839188918891889182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506001600160601b0319606091821b811660a05291901b1660805281516200010b9060019060208501906200018e565b508051620001219060029060208401906200018e565b505050505062000137816200014260201b60201c565b50505050506200023a565b6001600160a01b038116600081815260086020526040808220805460ff19166001179055517f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f69190a250565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282620001c6576000855562000211565b82601f10620001e157805160ff191683800117855562000211565b8280016001018555821562000211579182015b8281111562000211578251825591602001919060010190620001f4565b506200021f92915062000223565b5090565b5b808211156200021f576000815560010162000224565b60805160601c60a05160601c612e816200028260003980610fe452806121ab52806129af52508061101f5280612170528061220352806129855280612a105250612e816000f3fe608060405234801561001057600080fd5b506004361061020b5760003560e01c80637e518ec81161012a578063aa271e1a116100bd578063c87b56dd1161008c578063f247296511610071578063f247296514610a3f578063f2fde38b14610af2578063f3993d1114610b185761020b565b8063c87b56dd146109f4578063e985e9c514610a115761020b565b8063aa271e1a146107ec578063b88d4fde14610812578063c3666c36146108d8578063c4c2bfdc146109ec5761020b565b806395d89b41116100f957806395d89b4114610788578063983b2d561461079057806398650275146107b6578063a22cb465146107be5761020b565b80637e518ec81461064d5780638456cb59146106bd5780638832e6e3146106c55780638da5cb5b146107805761020b565b80634684d7e9116101a25780636352211e116101715780636352211e146104b857806370a08231146104d557806373c8a9581461050d57806379cc6790146106215761020b565b80634684d7e9146103cf578063572b6c05146104825780635b2bd79e146104a85780635c975abb146104b05761020b565b806323b872dd116101de57806323b872dd1461032f5780633f4ba83a1461036557806340c10f191461036d57806342842e0e146103995761020b565b806301ffc9a71461021057806306fdde031461024b578063081812fc146102c8578063095ea7b314610301575b600080fd5b6102376004803603602081101561022657600080fd5b50356001600160e01b031916610bd4565b604080519115158252519081900360200190f35b610253610c1a565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561028d578181015183820152602001610275565b50505050905090810190601f1680156102ba5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102e5600480360360208110156102de57600080fd5b5035610cb0565b604080516001600160a01b039092168252519081900360200190f35b61032d6004803603604081101561031757600080fd5b506001600160a01b038135169060200135610d4f565b005b61032d6004803603606081101561034557600080fd5b506001600160a01b03813581169160208101359091169060400135610f56565b61032d610f6e565b61032d6004803603604081101561038357600080fd5b506001600160a01b038135169060200135610f88565b61032d600480360360608110156103af57600080fd5b506001600160a01b03813581169160208101359091169060400135610fb8565b61032d600480360360408110156103e557600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561041057600080fd5b82018360208201111561042257600080fd5b8035906020019184602083028401116401000000008311171561044457600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610fcb945050505050565b6102376004803603602081101561049857600080fd5b50356001600160a01b0316610fe0565b610253611059565b6102376110e7565b6102e5600480360360208110156104ce57600080fd5b50356110f0565b6104fb600480360360208110156104eb57600080fd5b50356001600160a01b031661115a565b60408051918252519081900360200190f35b61032d6004803603606081101561052357600080fd5b81019060208101813564010000000081111561053e57600080fd5b82018360208201111561055057600080fd5b8035906020019184602083028401116401000000008311171561057257600080fd5b91939092909160208101903564010000000081111561059057600080fd5b8201836020820111156105a257600080fd5b803590602001918460208302840111640100000000831117156105c457600080fd5b9193909290916020810190356401000000008111156105e257600080fd5b8201836020820111156105f457600080fd5b8035906020019184602083028401116401000000008311171561061657600080fd5b5090925090506111d3565b61032d6004803603604081101561063757600080fd5b506001600160a01b0381351690602001356112c0565b61032d6004803603602081101561066357600080fd5b81019060208101813564010000000081111561067e57600080fd5b82018360208201111561069057600080fd5b803590602001918460018302840111640100000000831117156106b257600080fd5b5090925090506112d2565b61032d61134e565b61032d600480360360608110156106db57600080fd5b6001600160a01b038235169160208101359181019060608101604082013564010000000081111561070b57600080fd5b82018360208201111561071d57600080fd5b8035906020019184600183028401116401000000008311171561073f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611361945050505050565b6102e5611379565b61025361138d565b61032d600480360360208110156107a657600080fd5b50356001600160a01b03166113eb565b61032d611402565b61032d600480360360408110156107d457600080fd5b506001600160a01b0381351690602001351515611460565b6102376004803603602081101561080257600080fd5b50356001600160a01b0316611541565b61032d6004803603608081101561082857600080fd5b6001600160a01b0382358116926020810135909116916040820135919081019060808101606082013564010000000081111561086357600080fd5b82018360208201111561087557600080fd5b8035906020019184600183028401116401000000008311171561089757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611556945050505050565b61032d600480360360608110156108ee57600080fd5b81019060208101813564010000000081111561090957600080fd5b82018360208201111561091b57600080fd5b8035906020019184602083028401116401000000008311171561093d57600080fd5b91939092909160208101903564010000000081111561095b57600080fd5b82018360208201111561096d57600080fd5b8035906020019184602083028401116401000000008311171561098f57600080fd5b9193909290916020810190356401000000008111156109ad57600080fd5b8201836020820111156109bf57600080fd5b803590602001918460208302840111640100000000831117156109e157600080fd5b509092509050611570565b6102536116b8565b61025360048036036020811015610a0a57600080fd5b50356116c7565b61023760048036036040811015610a2757600080fd5b506001600160a01b038135811691602001351661173c565b61032d60048036036040811015610a5557600080fd5b6001600160a01b038235169190810190604081016020820135640100000000811115610a8057600080fd5b820183602082011115610a9257600080fd5b80359060200191846020830284011164010000000083111715610ab457600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061176a945050505050565b61032d60048036036020811015610b0857600080fd5b50356001600160a01b031661177c565b61032d60048036036060811015610b2e57600080fd5b6001600160a01b038235811692602081013590911691810190606081016040820135640100000000811115610b6257600080fd5b820183602082011115610b7457600080fd5b80359060200191846020830284011164010000000083111715610b9657600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506117f6945050505050565b60006001600160e01b031982167f8b8b4ef5000000000000000000000000000000000000000000000000000000001480610c125750610c1282611809565b90505b919050565b60018054604080516020601f60026000196101008789161502019095169490940493840181900481028201810190925282815260609390929091830182828015610ca55780601f10610c7a57610100808354040283529160200191610ca5565b820191906000526020600020905b815481529060010190602001808311610c8857829003601f168201915b505050505090505b90565b6000818152600460205260408120546001600160a01b038116610d1a576040805162461bcd60e51b815260206004820152601860248201527f4552433732313a206e6f6e2d6578697374696e67204e46540000000000000000604482015290519081900360640190fd5b600160a01b811615610d455750506000818152600660205260409020546001600160a01b0316610c15565b6000915050610c15565b60008181526004602052604090205480610db0576040805162461bcd60e51b815260206004820152601860248201527f4552433732313a206e6f6e2d6578697374696e67204e46540000000000000000604482015290519081900360640190fd5b806001600160a01b038481169082161415610e12576040805162461bcd60e51b815260206004820152601560248201527f4552433732313a2073656c662d617070726f76616c0000000000000000000000604482015290519081900360640190fd5b610e2381610e1e6118d6565b6118e0565b610e74576040805162461bcd60e51b815260206004820152601b60248201527f4552433732313a206e6f6e2d617070726f7665642073656e6465720000000000604482015290519081900360640190fd5b6001600160a01b038416610eae57600160a01b821615610ea95760008381526004602052604090206001600160a01b03821690555b610f0f565b600160a01b8217808314610ece5760008481526004602052604090208190555b50600083815260066020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0386161790555b82846001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a450505050565b610f5e61192e565b610f69838383611986565b505050565b610f7e610f796118d6565b6119a3565b610f86611a67565b565b610f98610f936118d6565b611abf565b610fb48282604051806020016040528060008152506000611b2c565b5050565b610fc061192e565b610f69838383611bf7565b610fd6610f936118d6565b610fb48282611c14565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161480610c1257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316149050919050565b6007805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156110df5780601f106110b4576101008083540402835291602001916110df565b820191906000526020600020905b8154815290600101906020018083116110c257829003601f168201915b505050505081565b60005460ff1681565b6000818152600460205260408120546001600160a01b038116610c12576040805162461bcd60e51b815260206004820152601860248201527f4552433732313a206e6f6e2d6578697374696e67204e46540000000000000000604482015290519081900360640190fd5b60006001600160a01b0382166111b7576040805162461bcd60e51b815260206004820152601460248201527f4552433732313a207a65726f2061646472657373000000000000000000000000604482015290519081900360640190fd5b506001600160a01b031660009081526005602052604090205490565b6111de610f796118d6565b8483811480156111ed57508082145b61123e576040805162461bcd60e51b815260206004820152601a60248201527f5265636f763a20696e636f6e73697374656e7420617272617973000000000000604482015290519081900360640190fd5b60005b8181146112b6576112ae88888381811061125757fe5b905060200201356001600160a01b031685858481811061127357fe5b9050602002013588888581811061128657fe5b905060200201356001600160a01b03166001600160a01b0316611d059092919063ffffffff16565b600101611241565b5050505050505050565b6112c861192e565b610fb48282611d85565b6112dd610f796118d6565b6112e960078383612d82565b507f04b1dc5c136a3ce9fded8db0ce3d3366c58764ec3a8e4c2b9e52e4ddfe5ebbf7828260405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a15050565b611359610f796118d6565b610f86611dea565b61136c610f936118d6565b610f698383836001611b2c565b60005461010090046001600160a01b031690565b60028054604080516020601f6000196101006001871615020190941685900493840181900481028201810190925282815260609390929091830182828015610ca55780601f10610c7a57610100808354040283529160200191610ca5565b6113f6610f796118d6565b6113ff81611e28565b50565b600061140c6118d6565b905061141781611abf565b6001600160a01b038116600081815260086020526040808220805460ff19169055517fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb666929190a250565b600061146a6118d6565b9050806001600160a01b0316836001600160a01b031614156114d3576040805162461bcd60e51b815260206004820152601560248201527f4552433732313a2073656c662d617070726f76616c0000000000000000000000604482015290519081900360640190fd5b6001600160a01b03818116600081815260036020908152604080832094881680845294825291829020805460ff1916871515908117909155825190815291517f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319281900390910190a3505050565b60086020526000908152604090205460ff1681565b61155e61192e565b61156a84848484611e74565b50505050565b61157b610f796118d6565b84838114801561158a57508082145b6115db576040805162461bcd60e51b815260206004820152601a60248201527f5265636f763a20696e636f6e73697374656e7420617272617973000000000000604482015290519081900360640190fd5b60005b8181146112b6578585828181106115f157fe5b905060200201356001600160a01b03166001600160a01b03166323b872dd308a8a8581811061161c57fe5b905060200201356001600160a01b031687878681811061163857fe5b905060200201356040518463ffffffff1660e01b815260040180846001600160a01b03168152602001836001600160a01b031681526020018281526020019350505050600060405180830381600087803b15801561169557600080fd5b505af11580156116a9573d6000803e3d6000fd5b505050508060010190506115de565b60606116c2611e82565b905090565b6000818152600460205260409020546060906001600160a01b0316611733576040805162461bcd60e51b815260206004820152601860248201527f4552433732313a206e6f6e2d6578697374696e67204e46540000000000000000604482015290519081900360640190fd5b610c1282611ec6565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205460ff1690565b61177261192e565b610fb48282611f99565b611787610f796118d6565b600080547fffffffffffffffffffffff0000000000000000000000000000000000000000ff166101006001600160a01b0384811682810293909317808555604051939492900416917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6117fe61192e565b610f69838383612054565b60006001600160e01b031982167f01ffc9a700000000000000000000000000000000000000000000000000000000148061186c57506001600160e01b031982167f80ac58cd00000000000000000000000000000000000000000000000000000000145b806118a057506001600160e01b031982167f5b5e139f00000000000000000000000000000000000000000000000000000000145b80610c125750506001600160e01b0319167ff3993d11000000000000000000000000000000000000000000000000000000001490565b60006116c2612160565b6000816001600160a01b0316836001600160a01b0316148061192757506001600160a01b0380841660009081526003602090815260408083209386168352929052205460ff165b9392505050565b60005460ff1615610f86576040805162461bcd60e51b815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b610f698383836040518060200160405280600081525060006122c0565b306001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156119dc57600080fd5b505afa1580156119f0573d6000803e3d6000fd5b505050506040513d6020811015611a0657600080fd5b50516001600160a01b038281169116146113ff576040805162461bcd60e51b815260206004820152601660248201527f4f776e61626c653a206e6f7420746865206f776e657200000000000000000000604482015290519081900360640190fd5b611a6f6123b8565b6000805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611aa26118d6565b604080516001600160a01b039092168252519081900360200190a1565b6001600160a01b03811660009081526008602052604090205460ff166113ff576040805162461bcd60e51b815260206004820152601860248201527f4d696e746572526f6c653a206e6f742061204d696e7465720000000000000000604482015290519081900360640190fd5b6001600160a01b038416611b87576040805162461bcd60e51b815260206004820152601460248201527f4552433732313a206d696e7420746f207a65726f000000000000000000000000604482015290519081900360640190fd5b611b938484600061240f565b60405183906001600160a01b038616906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a4808015611be55750611be5846001600160a01b03166124b1565b1561156a5761156a60008585856124b7565b610f698383836040518060200160405280600081525060016122c0565b6001600160a01b038216611c6f576040805162461bcd60e51b815260206004820152601460248201527f4552433732313a206d696e7420746f207a65726f000000000000000000000000604482015290519081900360640190fd5b805160005b818114611ce0576000838281518110611c8957fe5b60200260200101519050611c9f8582600161240f565b60405181906001600160a01b038716906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a450600101611c74565b506001600160a01b039092166000908152600560205260409020805490920190915550565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052610f69908490612639565b6000611d8f6118d6565b90506000611d9d84836118e0565b9050611dac848483600061281c565b60405183906000906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a450505050565b611df261192e565b6000805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611aa26118d6565b6001600160a01b038116600081815260086020526040808220805460ff19166001179055517f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f69190a250565b61156a8484848460016122c0565b6060611e8c612977565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092935050505090565b60606007611ed383612ada565b6040516020018083805460018160011615610100020316600290048015611f315780601f10611f0f576101008083540402835291820191611f31565b820191906000526020600020905b815481529060010190602001808311611f1d575b5050825160208401908083835b60208310611f5d5780518252601f199092019160209182019101611f3e565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040529050919050565b6000611fa36118d6565b90506000611fb184836118e0565b835190915060005b818114612026576000858281518110611fce57fe5b60200260200101519050611fe5878286600161281c565b60405181906000906001600160a01b038a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a450600101611fb9565b50801561204d576001600160a01b0385166000908152600560205260409020805482900390555b5050505050565b6001600160a01b0382166120af576040805162461bcd60e51b815260206004820152601860248201527f4552433732313a207472616e7366657220746f207a65726f0000000000000000604482015290519081900360640190fd5b60006120b96118d6565b905060006120c785836118e0565b835190915060005b8181146121465760008582815181106120e457fe5b602002602001015190506120fc888883876001612be9565b80876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4506001016120cf565b50801561215857612158868683612d10565b505050505050565b6000338161216c612d5b565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614806121df57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316145b156121ed579150610cad9050565b6001600160a01b03821632148015906122ac57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e60125d682846040518363ffffffff1660e01b815260040180836001600160a01b03168152602001826001600160a01b031681526020019250505060206040518083038186803b15801561227f57600080fd5b505afa158015612293573d6000803e3d6000fd5b505050506040513d60208110156122a957600080fd5b50515b156122ba579150610cad9050565b50905090565b6001600160a01b03841661231b576040805162461bcd60e51b815260206004820152601860248201527f4552433732313a207472616e7366657220746f207a65726f0000000000000000604482015290519081900360640190fd5b60006123256118d6565b9050600061233387836118e0565b9050612343878787846000612be9565b84866001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a482801561239e575061239e866001600160a01b03166124b1565b156123af576123af878787876124b7565b50505050505050565b60005460ff16610f86576040805162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f7420706175736564000000000000000000000000604482015290519081900360640190fd5b60008281526004602052604090205415612470576040805162461bcd60e51b815260206004820152601a60248201527f4552433732313a206578697374696e672f6275726e74204e4654000000000000604482015290519081900360640190fd5b60008281526004602052604090206001600160a01b038416905580610f695750506001600160a01b0316600090815260056020526040902080546001019055565b3b151590565b7f150b7a02000000000000000000000000000000000000000000000000000000006001600160a01b03841663150b7a026124ef6118d6565b8786866040518563ffffffff1660e01b815260040180856001600160a01b03168152602001846001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561256257818101518382015260200161254a565b50505050905090810190601f16801561258f5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1580156125b157600080fd5b505af11580156125c5573d6000803e3d6000fd5b505050506040513d60208110156125db57600080fd5b50516001600160e01b0319161461156a576040805162461bcd60e51b815260206004820152601860248201527f4552433732313a207472616e7366657220726566757365640000000000000000604482015290519081900360640190fd5b8161264c6001600160a01b0382166124b1565b61269d576040805162461bcd60e51b815260206004820152601a60248201527f4552433230577261707065723a206e6f6e2d636f6e7472616374000000000000604482015290519081900360640190fd5b600080826001600160a01b0316846040518082805190602001908083835b602083106126da5780518252601f1990920191602091820191016126bb565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461273c576040519150601f19603f3d011682016040523d82523d6000602084013e612741565b606091505b509150915081156127c0578051156127bb5780806020019051602081101561276857600080fd5b50516127bb576040805162461bcd60e51b815260206004820152601e60248201527f4552433230577261707065723a206f7065726174696f6e206661696c65640000604482015290519081900360640190fd5b61204d565b8051612813576040805162461bcd60e51b815260206004820152601e60248201527f4552433230577261707065723a206f7065726174696f6e206661696c65640000604482015290519081900360640190fd5b80518082602001fd5b6000838152600460205260409020546001600160a01b038581169082161461288b576040805162461bcd60e51b815260206004820152601560248201527f4552433732313a206e6f6e2d6f776e6564204e46540000000000000000000000604482015290519081900360640190fd5b8261291c57600160a01b8116158015906128cb57506000848152600660205260409020546001600160a01b03166128c06118d6565b6001600160a01b0316145b61291c576040805162461bcd60e51b815260206004820152601b60248201527f4552433732313a206e6f6e2d617070726f7665642073656e6465720000000000604482015290519081900360640190fd5b60008481526004602052604090207fdead00000000000000000000000000000000000000000000000000000000000090558161204d57505050506001600160a01b031660009081526005602052604090208054600019019055565b366000336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168114806129e357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316145b156129fa576129f0612d67565b9250925050612ad6565b6001600160a01b0381163214801590612ac057507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e60125d6612a45612d5b565b836040518363ffffffff1660e01b815260040180836001600160a01b03168152602001826001600160a01b031681526020019250505060206040518083038186803b158015612a9357600080fd5b505afa158015612aa7573d6000803e3d6000fd5b505050506040513d6020811015612abd57600080fd5b50515b15612acd576129f0612d67565b60003692509250505b9091565b606081612b1b575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610c15565b8160005b8115612b3357600101600a82049150612b1f565b60008167ffffffffffffffff81118015612b4c57600080fd5b506040519080825280601f01601f191660200182016040528015612b77576020820181803683370190505b50859350905060001982015b8315612be057600a840660300160f81b82828060019003935081518110612ba657fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350612b83565b50949350505050565b6000838152600460205260409020546001600160a01b0386811690821614612c58576040805162461bcd60e51b815260206004820152601560248201527f4552433732313a206e6f6e2d6f776e6564204e46540000000000000000000000604482015290519081900360640190fd5b82612ce957600160a01b811615801590612c9857506000848152600660205260409020546001600160a01b0316612c8d6118d6565b6001600160a01b0316145b612ce9576040805162461bcd60e51b815260206004820152601b60248201527f4552433732313a206e6f6e2d617070726f7665642073656e6465720000000000604482015290519081900360640190fd5b60008481526004602052604090206001600160a01b03861690558161215857612158868660015b816001600160a01b0316836001600160a01b031614610f69576001600160a01b0380841660009081526005602052604080822080548590039055918416815220805482019055505050565b60131936013560601c90565b366000612d7a6013198301828481612e23565b915091509091565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282612db85760008555612dfe565b82601f10612dd15782800160ff19823516178555612dfe565b82800160010185558215612dfe579182015b82811115612dfe578235825591602001919060010190612de3565b50612e0a929150612e0e565b5090565b5b80821115612e0a5760008155600101612e0f565b60008085851115612e32578182fd5b83861115612e3e578182fd5b505082019391909203915056fea2646970667358221220935a86cf157d7f8c1c7dedb32dffe669f6df39d8c3319a7f1ded02fbf63a4e3064736f6c63430007060033", "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061020b5760003560e01c80637e518ec81161012a578063aa271e1a116100bd578063c87b56dd1161008c578063f247296511610071578063f247296514610a3f578063f2fde38b14610af2578063f3993d1114610b185761020b565b8063c87b56dd146109f4578063e985e9c514610a115761020b565b8063aa271e1a146107ec578063b88d4fde14610812578063c3666c36146108d8578063c4c2bfdc146109ec5761020b565b806395d89b41116100f957806395d89b4114610788578063983b2d561461079057806398650275146107b6578063a22cb465146107be5761020b565b80637e518ec81461064d5780638456cb59146106bd5780638832e6e3146106c55780638da5cb5b146107805761020b565b80634684d7e9116101a25780636352211e116101715780636352211e146104b857806370a08231146104d557806373c8a9581461050d57806379cc6790146106215761020b565b80634684d7e9146103cf578063572b6c05146104825780635b2bd79e146104a85780635c975abb146104b05761020b565b806323b872dd116101de57806323b872dd1461032f5780633f4ba83a1461036557806340c10f191461036d57806342842e0e146103995761020b565b806301ffc9a71461021057806306fdde031461024b578063081812fc146102c8578063095ea7b314610301575b600080fd5b6102376004803603602081101561022657600080fd5b50356001600160e01b031916610bd4565b604080519115158252519081900360200190f35b610253610c1a565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561028d578181015183820152602001610275565b50505050905090810190601f1680156102ba5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102e5600480360360208110156102de57600080fd5b5035610cb0565b604080516001600160a01b039092168252519081900360200190f35b61032d6004803603604081101561031757600080fd5b506001600160a01b038135169060200135610d4f565b005b61032d6004803603606081101561034557600080fd5b506001600160a01b03813581169160208101359091169060400135610f56565b61032d610f6e565b61032d6004803603604081101561038357600080fd5b506001600160a01b038135169060200135610f88565b61032d600480360360608110156103af57600080fd5b506001600160a01b03813581169160208101359091169060400135610fb8565b61032d600480360360408110156103e557600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561041057600080fd5b82018360208201111561042257600080fd5b8035906020019184602083028401116401000000008311171561044457600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610fcb945050505050565b6102376004803603602081101561049857600080fd5b50356001600160a01b0316610fe0565b610253611059565b6102376110e7565b6102e5600480360360208110156104ce57600080fd5b50356110f0565b6104fb600480360360208110156104eb57600080fd5b50356001600160a01b031661115a565b60408051918252519081900360200190f35b61032d6004803603606081101561052357600080fd5b81019060208101813564010000000081111561053e57600080fd5b82018360208201111561055057600080fd5b8035906020019184602083028401116401000000008311171561057257600080fd5b91939092909160208101903564010000000081111561059057600080fd5b8201836020820111156105a257600080fd5b803590602001918460208302840111640100000000831117156105c457600080fd5b9193909290916020810190356401000000008111156105e257600080fd5b8201836020820111156105f457600080fd5b8035906020019184602083028401116401000000008311171561061657600080fd5b5090925090506111d3565b61032d6004803603604081101561063757600080fd5b506001600160a01b0381351690602001356112c0565b61032d6004803603602081101561066357600080fd5b81019060208101813564010000000081111561067e57600080fd5b82018360208201111561069057600080fd5b803590602001918460018302840111640100000000831117156106b257600080fd5b5090925090506112d2565b61032d61134e565b61032d600480360360608110156106db57600080fd5b6001600160a01b038235169160208101359181019060608101604082013564010000000081111561070b57600080fd5b82018360208201111561071d57600080fd5b8035906020019184600183028401116401000000008311171561073f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611361945050505050565b6102e5611379565b61025361138d565b61032d600480360360208110156107a657600080fd5b50356001600160a01b03166113eb565b61032d611402565b61032d600480360360408110156107d457600080fd5b506001600160a01b0381351690602001351515611460565b6102376004803603602081101561080257600080fd5b50356001600160a01b0316611541565b61032d6004803603608081101561082857600080fd5b6001600160a01b0382358116926020810135909116916040820135919081019060808101606082013564010000000081111561086357600080fd5b82018360208201111561087557600080fd5b8035906020019184600183028401116401000000008311171561089757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611556945050505050565b61032d600480360360608110156108ee57600080fd5b81019060208101813564010000000081111561090957600080fd5b82018360208201111561091b57600080fd5b8035906020019184602083028401116401000000008311171561093d57600080fd5b91939092909160208101903564010000000081111561095b57600080fd5b82018360208201111561096d57600080fd5b8035906020019184602083028401116401000000008311171561098f57600080fd5b9193909290916020810190356401000000008111156109ad57600080fd5b8201836020820111156109bf57600080fd5b803590602001918460208302840111640100000000831117156109e157600080fd5b509092509050611570565b6102536116b8565b61025360048036036020811015610a0a57600080fd5b50356116c7565b61023760048036036040811015610a2757600080fd5b506001600160a01b038135811691602001351661173c565b61032d60048036036040811015610a5557600080fd5b6001600160a01b038235169190810190604081016020820135640100000000811115610a8057600080fd5b820183602082011115610a9257600080fd5b80359060200191846020830284011164010000000083111715610ab457600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061176a945050505050565b61032d60048036036020811015610b0857600080fd5b50356001600160a01b031661177c565b61032d60048036036060811015610b2e57600080fd5b6001600160a01b038235811692602081013590911691810190606081016040820135640100000000811115610b6257600080fd5b820183602082011115610b7457600080fd5b80359060200191846020830284011164010000000083111715610b9657600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506117f6945050505050565b60006001600160e01b031982167f8b8b4ef5000000000000000000000000000000000000000000000000000000001480610c125750610c1282611809565b90505b919050565b60018054604080516020601f60026000196101008789161502019095169490940493840181900481028201810190925282815260609390929091830182828015610ca55780601f10610c7a57610100808354040283529160200191610ca5565b820191906000526020600020905b815481529060010190602001808311610c8857829003601f168201915b505050505090505b90565b6000818152600460205260408120546001600160a01b038116610d1a576040805162461bcd60e51b815260206004820152601860248201527f4552433732313a206e6f6e2d6578697374696e67204e46540000000000000000604482015290519081900360640190fd5b600160a01b811615610d455750506000818152600660205260409020546001600160a01b0316610c15565b6000915050610c15565b60008181526004602052604090205480610db0576040805162461bcd60e51b815260206004820152601860248201527f4552433732313a206e6f6e2d6578697374696e67204e46540000000000000000604482015290519081900360640190fd5b806001600160a01b038481169082161415610e12576040805162461bcd60e51b815260206004820152601560248201527f4552433732313a2073656c662d617070726f76616c0000000000000000000000604482015290519081900360640190fd5b610e2381610e1e6118d6565b6118e0565b610e74576040805162461bcd60e51b815260206004820152601b60248201527f4552433732313a206e6f6e2d617070726f7665642073656e6465720000000000604482015290519081900360640190fd5b6001600160a01b038416610eae57600160a01b821615610ea95760008381526004602052604090206001600160a01b03821690555b610f0f565b600160a01b8217808314610ece5760008481526004602052604090208190555b50600083815260066020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0386161790555b82846001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a450505050565b610f5e61192e565b610f69838383611986565b505050565b610f7e610f796118d6565b6119a3565b610f86611a67565b565b610f98610f936118d6565b611abf565b610fb48282604051806020016040528060008152506000611b2c565b5050565b610fc061192e565b610f69838383611bf7565b610fd6610f936118d6565b610fb48282611c14565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161480610c1257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316149050919050565b6007805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156110df5780601f106110b4576101008083540402835291602001916110df565b820191906000526020600020905b8154815290600101906020018083116110c257829003601f168201915b505050505081565b60005460ff1681565b6000818152600460205260408120546001600160a01b038116610c12576040805162461bcd60e51b815260206004820152601860248201527f4552433732313a206e6f6e2d6578697374696e67204e46540000000000000000604482015290519081900360640190fd5b60006001600160a01b0382166111b7576040805162461bcd60e51b815260206004820152601460248201527f4552433732313a207a65726f2061646472657373000000000000000000000000604482015290519081900360640190fd5b506001600160a01b031660009081526005602052604090205490565b6111de610f796118d6565b8483811480156111ed57508082145b61123e576040805162461bcd60e51b815260206004820152601a60248201527f5265636f763a20696e636f6e736