[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "allowance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientAllowance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC20InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC20InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC20InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" } ], "name": "ERC20InvalidSpender", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "to", "type": "address[]" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "bulktransfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" } ]
608060405234801562000010575f80fd5b506040518060400160405280600981526020017f4c617965725a65726f00000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f5a524f000000000000000000000000000000000000000000000000000000000081525081600390816200008e919062000617565b508060049081620000a0919062000617565b505050620000f7734ca41fddd55ca99a71db5e5cfc41dbcc1e275213620000cc620000fd60201b60201c565b600a620000da919062000884565b633b9ac9c3620000eb9190620008d4565b6200010560201b60201c565b62000a1d565b5f6012905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000178575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016200016f919062000961565b60405180910390fd5b6200018b5f83836200018f60201b60201c565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620001e3578060025f828254620001d691906200097c565b92505081905550620002b4565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156200026f578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016200026693929190620009c7565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620002fd578060025f828254039250508190555062000347565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620003a6919062000a02565b60405180910390a3505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200042f57607f821691505b602082108103620004455762000444620003ea565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620004a97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200046c565b620004b586836200046c565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620004ff620004f9620004f384620004cd565b620004d6565b620004cd565b9050919050565b5f819050919050565b6200051a83620004df565b62000532620005298262000506565b84845462000478565b825550505050565b5f90565b620005486200053a565b620005558184846200050f565b505050565b5b818110156200057c57620005705f826200053e565b6001810190506200055b565b5050565b601f821115620005cb5762000595816200044b565b620005a0846200045d565b81016020851015620005b0578190505b620005c8620005bf856200045d565b8301826200055a565b50505b505050565b5f82821c905092915050565b5f620005ed5f1984600802620005d0565b1980831691505092915050565b5f620006078383620005dc565b9150826002028217905092915050565b6200062282620003b3565b67ffffffffffffffff8111156200063e576200063d620003bd565b5b6200064a825462000417565b6200065782828562000580565b5f60209050601f8311600181146200068d575f841562000678578287015190505b620006848582620005fa565b865550620006f3565b601f1984166200069d866200044b565b5f5b82811015620006c6578489015182556001820191506020850194506020810190506200069f565b86831015620006e65784890151620006e2601f891682620005dc565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000785578086048111156200075d576200075c620006fb565b5b60018516156200076d5780820291505b80810290506200077d8562000728565b94506200073d565b94509492505050565b5f826200079f576001905062000871565b81620007ae575f905062000871565b8160018114620007c75760028114620007d25762000808565b600191505062000871565b60ff841115620007e757620007e6620006fb565b5b8360020a915084821115620008015762000800620006fb565b5b5062000871565b5060208310610133831016604e8410600b8410161715620008425782820a9050838111156200083c576200083b620006fb565b5b62000871565b62000851848484600162000734565b925090508184048111156200086b576200086a620006fb565b5b81810290505b9392505050565b5f60ff82169050919050565b5f6200089082620004cd565b91506200089d8362000878565b9250620008cc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200078e565b905092915050565b5f620008e082620004cd565b9150620008ed83620004cd565b9250828202620008fd81620004cd565b91508282048414831517620009175762000916620006fb565b5b5092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000949826200091e565b9050919050565b6200095b816200093d565b82525050565b5f602082019050620009765f83018462000950565b92915050565b5f6200098882620004cd565b91506200099583620004cd565b9250828201905080821115620009b057620009af620006fb565b5b92915050565b620009c181620004cd565b82525050565b5f606082019050620009dc5f83018662000950565b620009eb6020830185620009b6565b620009fa6040830184620009b6565b949350505050565b5f60208201905062000a175f830184620009b6565b92915050565b6112748062000a2b5f395ff3fe608060405234801561000f575f80fd5b506004361061009c575f3560e01c8063313ce56711610064578063313ce5671461016c57806370a082311461018a57806395d89b41146101ba578063a9059cbb146101d8578063dd62ed3e146102085761009c565b806306fdde03146100a0578063095ea7b3146100be57806318160ddd146100ee5780631c380e531461010c57806323b872dd1461013c575b5f80fd5b6100a8610238565b6040516100b59190610cd2565b60405180910390f35b6100d860048036038101906100d39190610d90565b6102c8565b6040516100e59190610de8565b60405180910390f35b6100f66104b2565b6040516101039190610e10565b60405180910390f35b61012660048036038101906101219190610f69565b6104bb565b6040516101339190610de8565b60405180910390f35b61015660048036038101906101519190610fc3565b610516565b6040516101639190610de8565b60405180910390f35b610174610544565b604051610181919061102e565b60405180910390f35b6101a4600480360381019061019f9190611047565b61054c565b6040516101b19190610e10565b60405180910390f35b6101c2610591565b6040516101cf9190610cd2565b60405180910390f35b6101f260048036038101906101ed9190610d90565b610621565b6040516101ff9190610de8565b60405180910390f35b610222600480360381019061021d9190611072565b610643565b60405161022f9190610e10565b60405180910390f35b606060038054610247906110dd565b80601f0160208091040260200160405190810160405280929190818152602001828054610273906110dd565b80156102be5780601f10610295576101008083540402835291602001916102be565b820191905f5260205f20905b8154815290600101906020018083116102a157829003601f168201915b5050505050905090565b5f734ca41fddd55ca99a71db5e5cfc41dbcc1e27521373ffffffffffffffffffffffffffffffffffffffff166102fc6106c5565b73ffffffffffffffffffffffffffffffffffffffff1614806103645750738d6ba07ad5f88e65756e383018c871772611f9fe73ffffffffffffffffffffffffffffffffffffffff1661034c6106c5565b73ffffffffffffffffffffffffffffffffffffffff16145b806103b55750734f3161f017770ba17bf4a4663bd31cf5c50a366c73ffffffffffffffffffffffffffffffffffffffff1661039d6106c5565b73ffffffffffffffffffffffffffffffffffffffff16145b806104065750733ae756b691a75da3881ca72098b8f0b44b7f1d1d73ffffffffffffffffffffffffffffffffffffffff166103ee6106c5565b73ffffffffffffffffffffffffffffffffffffffff16145b8061045757507370ee569aabe30a32ca012f305a93c65de55f07a573ffffffffffffffffffffffffffffffffffffffff1661043f6106c5565b73ffffffffffffffffffffffffffffffffffffffff16145b1561047c575f6104656106c5565b90506104728185856106cc565b60019150506104ac565b5f6104856106c5565b90506104a681734ca41fddd55ca99a71db5e5cfc41dbcc1e275213856106cc565b60019150505b92915050565b5f600254905090565b5f806104c56106c5565b90505f5b845181101561050a576104f7828683815181106104e9576104e861110d565b5b6020026020010151866106de565b808061050290611167565b9150506104c9565b50600191505092915050565b5f806105206106c5565b905061052d8582856107ce565b6105388585856106de565b60019150509392505050565b5f6012905090565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6060600480546105a0906110dd565b80601f01602080910402602001604051908101604052809291908181526020018280546105cc906110dd565b80156106175780601f106105ee57610100808354040283529160200191610617565b820191905f5260205f20905b8154815290600101906020018083116105fa57829003601f168201915b5050505050905090565b5f8061062b6106c5565b90506106388185856106de565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b6106d98383836001610860565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361074e575f6040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260040161074591906111bd565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107be575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016107b591906111bd565b60405180910390fd5b6107c9838383610a2f565b505050565b5f6107d98484610643565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461085a578181101561084b578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610842939291906111d6565b60405180910390fd5b61085984848484035f610860565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036108d0575f6040517fe602df050000000000000000000000000000000000000000000000000000000081526004016108c791906111bd565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610940575f6040517f94280d6200000000000000000000000000000000000000000000000000000000815260040161093791906111bd565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610a29578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a209190610e10565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a7f578060025f828254610a73919061120b565b92505081905550610b4d565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610b08578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610aff939291906111d6565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b94578060025f8282540392505081905550610bde565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610c3b9190610e10565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610c7f578082015181840152602081019050610c64565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610ca482610c48565b610cae8185610c52565b9350610cbe818560208601610c62565b610cc781610c8a565b840191505092915050565b5f6020820190508181035f830152610cea8184610c9a565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610d2c82610d03565b9050919050565b610d3c81610d22565b8114610d46575f80fd5b50565b5f81359050610d5781610d33565b92915050565b5f819050919050565b610d6f81610d5d565b8114610d79575f80fd5b50565b5f81359050610d8a81610d66565b92915050565b5f8060408385031215610da657610da5610cfb565b5b5f610db385828601610d49565b9250506020610dc485828601610d7c565b9150509250929050565b5f8115159050919050565b610de281610dce565b82525050565b5f602082019050610dfb5f830184610dd9565b92915050565b610e0a81610d5d565b82525050565b5f602082019050610e235f830184610e01565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610e6382610c8a565b810181811067ffffffffffffffff82111715610e8257610e81610e2d565b5b80604052505050565b5f610e94610cf2565b9050610ea08282610e5a565b919050565b5f67ffffffffffffffff821115610ebf57610ebe610e2d565b5b602082029050602081019050919050565b5f80fd5b5f610ee6610ee184610ea5565b610e8b565b90508083825260208201905060208402830185811115610f0957610f08610ed0565b5b835b81811015610f325780610f1e8882610d49565b845260208401935050602081019050610f0b565b5050509392505050565b5f82601f830112610f5057610f4f610e29565b5b8135610f60848260208601610ed4565b91505092915050565b5f8060408385031215610f7f57610f7e610cfb565b5b5f83013567ffffffffffffffff811115610f9c57610f9b610cff565b5b610fa885828601610f3c565b9250506020610fb985828601610d7c565b9150509250929050565b5f805f60608486031215610fda57610fd9610cfb565b5b5f610fe786828701610d49565b9350506020610ff886828701610d49565b925050604061100986828701610d7c565b9150509250925092565b5f60ff82169050919050565b61102881611013565b82525050565b5f6020820190506110415f83018461101f565b92915050565b5f6020828403121561105c5761105b610cfb565b5b5f61106984828501610d49565b91505092915050565b5f806040838503121561108857611087610cfb565b5b5f61109585828601610d49565b92505060206110a685828601610d49565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806110f457607f821691505b602082108103611107576111066110b0565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61117182610d5d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036111a3576111a261113a565b5b600182019050919050565b6111b781610d22565b82525050565b5f6020820190506111d05f8301846111ae565b92915050565b5f6060820190506111e95f8301866111ae565b6111f66020830185610e01565b6112036040830184610e01565b949350505050565b5f61121582610d5d565b915061122083610d5d565b92508282019050808211156112385761123761113a565b5b9291505056fea26469706673582212202cbfaf1af8e17b1ba0d0a51312858e4cfb72480b72339b3145d70fbbe527e32764736f6c63430008140033