Address Details
contract

0x86aAD62D1C36f4f92C8219D5C3ff97c3EF471bb8

Contract Name
Multicall2
Creator
0xdfd9ed–2e4d8d at 0x6f3a18–0c745c
Balance
0 CELO ( )
Locked CELO Balance
0.00 CELO
Voting CELO Balance
0.00 CELO
Pending Unlocked Gold
0.00 CELO
Tokens
Fetching tokens...
Transactions
0 Transactions
Transfers
0 Transfers
Gas Used
Fetching gas used...
Last Balance Update
8217441
This contract has been verified via Sourcify. View contract in Sourcify repository
Contract name:
Multicall2




Optimization enabled
false
Compiler version
v0.8.4+commit.c7e474f2




EVM Version
istanbul




Verified at
2021-08-11T06:43:13.648113Z

Contract source code

pragma solidity >=0.8.0;
pragma experimental ABIEncoderV2;


/// @title Multicall2 - Aggregate results from multiple read-only function calls
/// @author Michael Elliot <mike@makerdao.com>
/// @author Joshua Levine <joshua@makerdao.com>
/// @author Nick Johnson <arachnid@notdot.net>

contract Multicall2 {
    struct Call {
        address target;
        bytes callData;
    }
    struct Result {
        bool success;
        bytes returnData;
    }

    function aggregate(Call[] memory calls) public returns (uint256 blockNumber, bytes[] memory returnData) {
        blockNumber = block.number;
        returnData = new bytes[](calls.length);
        for(uint256 i = 0; i < calls.length; i++) {
            (bool success, bytes memory ret) = calls[i].target.call(calls[i].callData);
            require(success, "Multicall aggregate: call failed");
            returnData[i] = ret;
        }
    }
    function blockAndAggregate(Call[] memory calls) public returns (uint256 blockNumber, bytes32 blockHash, Result[] memory returnData) {
        (blockNumber, blockHash, returnData) = tryBlockAndAggregate(true, calls);
    }
    function getBlockHash(uint256 blockNumber) public view returns (bytes32 blockHash) {
        blockHash = blockhash(blockNumber);
    }
    function getBlockNumber() public view returns (uint256 blockNumber) {
        blockNumber = block.number;
    }
    function getCurrentBlockCoinbase() public view returns (address coinbase) {
        coinbase = block.coinbase;
    }
    function getCurrentBlockDifficulty() public view returns (uint256 difficulty) {
        difficulty = block.difficulty;
    }
    function getCurrentBlockGasLimit() public view returns (uint256 gaslimit) {
        gaslimit = block.gaslimit;
    }
    function getCurrentBlockTimestamp() public view returns (uint256 timestamp) {
        timestamp = block.timestamp;
    }
    function getEthBalance(address addr) public view returns (uint256 balance) {
        balance = addr.balance;
    }
    function getLastBlockHash() public view returns (bytes32 blockHash) {
        blockHash = blockhash(block.number - 1);
    }
    function tryAggregate(bool requireSuccess, Call[] memory calls) public returns (Result[] memory returnData) {
        returnData = new Result[](calls.length);
        for(uint256 i = 0; i < calls.length; i++) {
            (bool success, bytes memory ret) = calls[i].target.call(calls[i].callData);

            if (requireSuccess) {
                require(success, "Multicall2 aggregate: call failed");
            }

            returnData[i] = Result(success, ret);
        }
    }
    function tryBlockAndAggregate(bool requireSuccess, Call[] memory calls) public returns (uint256 blockNumber, bytes32 blockHash, Result[] memory returnData) {
        blockNumber = block.number;
        blockHash = blockhash(block.number);
        returnData = tryAggregate(requireSuccess, calls);
    }
}
        

Contract ABI

[{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"uint256","name":"blockNumber","internalType":"uint256"},{"type":"bytes[]","name":"returnData","internalType":"bytes[]"}],"name":"aggregate","inputs":[{"type":"tuple[]","name":"calls","internalType":"struct Multicall2.Call[]","components":[{"type":"address","name":"target","internalType":"address"},{"type":"bytes","name":"callData","internalType":"bytes"}]}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"uint256","name":"blockNumber","internalType":"uint256"},{"type":"bytes32","name":"blockHash","internalType":"bytes32"},{"type":"tuple[]","name":"returnData","internalType":"struct Multicall2.Result[]","components":[{"type":"bool","name":"success","internalType":"bool"},{"type":"bytes","name":"returnData","internalType":"bytes"}]}],"name":"blockAndAggregate","inputs":[{"type":"tuple[]","name":"calls","internalType":"struct Multicall2.Call[]","components":[{"type":"address","name":"target","internalType":"address"},{"type":"bytes","name":"callData","internalType":"bytes"}]}]},{"type":"function","stateMutability":"view","outputs":[{"type":"bytes32","name":"blockHash","internalType":"bytes32"}],"name":"getBlockHash","inputs":[{"type":"uint256","name":"blockNumber","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"blockNumber","internalType":"uint256"}],"name":"getBlockNumber","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"coinbase","internalType":"address"}],"name":"getCurrentBlockCoinbase","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"difficulty","internalType":"uint256"}],"name":"getCurrentBlockDifficulty","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"gaslimit","internalType":"uint256"}],"name":"getCurrentBlockGasLimit","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"timestamp","internalType":"uint256"}],"name":"getCurrentBlockTimestamp","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"balance","internalType":"uint256"}],"name":"getEthBalance","inputs":[{"type":"address","name":"addr","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"bytes32","name":"blockHash","internalType":"bytes32"}],"name":"getLastBlockHash","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"tuple[]","name":"returnData","internalType":"struct Multicall2.Result[]","components":[{"type":"bool","name":"success","internalType":"bool"},{"type":"bytes","name":"returnData","internalType":"bytes"}]}],"name":"tryAggregate","inputs":[{"type":"bool","name":"requireSuccess","internalType":"bool"},{"type":"tuple[]","name":"calls","internalType":"struct Multicall2.Call[]","components":[{"type":"address","name":"target","internalType":"address"},{"type":"bytes","name":"callData","internalType":"bytes"}]}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"uint256","name":"blockNumber","internalType":"uint256"},{"type":"bytes32","name":"blockHash","internalType":"bytes32"},{"type":"tuple[]","name":"returnData","internalType":"struct Multicall2.Result[]","components":[{"type":"bool","name":"success","internalType":"bool"},{"type":"bytes","name":"returnData","internalType":"bytes"}]}],"name":"tryBlockAndAggregate","inputs":[{"type":"bool","name":"requireSuccess","internalType":"bool"},{"type":"tuple[]","name":"calls","internalType":"struct Multicall2.Call[]","components":[{"type":"address","name":"target","internalType":"address"},{"type":"bytes","name":"callData","internalType":"bytes"}]}]}]
              

Contract Creation Code

0x608060405234801561001057600080fd5b5061119f806100206000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806372425d9d1161007157806372425d9d146101a657806386d516e8146101c4578063a8b0574e146101e2578063bce38bd714610200578063c3077fa914610230578063ee82ac5e14610262576100b4565b80630f28c97d146100b9578063252dba42146100d757806327e86d6e14610108578063399542e91461012657806342cbb15c146101585780634d2301cc14610176575b600080fd5b6100c1610292565b6040516100ce9190610d46565b60405180910390f35b6100f160048036038101906100ec919061099e565b61029a565b6040516100ff929190610d61565b60405180910390f35b6101106104bb565b60405161011d9190610ceb565b60405180910390f35b610140600480360381019061013b91906109df565b6104d0565b60405161014f93929190610d91565b60405180910390f35b6101606104ef565b60405161016d9190610d46565b60405180910390f35b610190600480360381019061018b9190610975565b6104f7565b60405161019d9190610d46565b60405180910390f35b6101ae610518565b6040516101bb9190610d46565b60405180910390f35b6101cc610520565b6040516101d99190610d46565b60405180910390f35b6101ea610528565b6040516101f79190610cae565b60405180910390f35b61021a600480360381019061021591906109df565b610530565b6040516102279190610cc9565b60405180910390f35b61024a6004803603810190610245919061099e565b610770565b60405161025993929190610d91565b60405180910390f35b61027c60048036038101906102779190610a33565b610793565b6040516102899190610ceb565b60405180910390f35b600042905090565b60006060439150825167ffffffffffffffff8111156102e2577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561031557816020015b60608152602001906001900390816103005790505b50905060005b83518110156104b557600080858381518110610360577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff168684815181106103bb577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151602001516040516103d49190610c97565b6000604051808303816000865af19150503d8060008114610411576040519150601f19603f3d011682016040523d82523d6000602084013e610416565b606091505b50915091508161045b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161045290610d26565b60405180910390fd5b80848481518110610495577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010181905250505080806104ad90610ff4565b91505061031b565b50915091565b60006001436104ca9190610efb565b40905090565b6000806060439250434091506104e68585610530565b90509250925092565b600043905090565b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b600044905090565b600045905090565b600041905090565b6060815167ffffffffffffffff811115610573577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156105ac57816020015b61059961079e565b8152602001906001900390816105915790505b50905060005b8251811015610769576000808483815181106105f7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff16858481518110610652577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101516020015160405161066b9190610c97565b6000604051808303816000865af19150503d80600081146106a8576040519150601f19603f3d011682016040523d82523d6000602084013e6106ad565b606091505b509150915085156106f957816106f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ef90610d06565b60405180910390fd5b5b6040518060400160405280831515815260200182815250848481518110610749577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101819052505050808061076190610ff4565b9150506105b2565b5092915050565b60008060606107806001856104d0565b8093508194508295505050509193909250565b600081409050919050565b6040518060400160405280600015158152602001606081525090565b60006107cd6107c884610df4565b610dcf565b905080838252602082019050828560208602820111156107ec57600080fd5b60005b8581101561083657813567ffffffffffffffff81111561080e57600080fd5b80860161081b89826108fc565b855260208501945060208401935050506001810190506107ef565b5050509392505050565b600061085361084e84610e20565b610dcf565b90508281526020810184848401111561086b57600080fd5b610876848285610f81565b509392505050565b60008135905061088d81611124565b92915050565b600082601f8301126108a457600080fd5b81356108b48482602086016107ba565b91505092915050565b6000813590506108cc8161113b565b92915050565b600082601f8301126108e357600080fd5b81356108f3848260208601610840565b91505092915050565b60006040828403121561090e57600080fd5b6109186040610dcf565b905060006109288482850161087e565b600083015250602082013567ffffffffffffffff81111561094857600080fd5b610954848285016108d2565b60208301525092915050565b60008135905061096f81611152565b92915050565b60006020828403121561098757600080fd5b60006109958482850161087e565b91505092915050565b6000602082840312156109b057600080fd5b600082013567ffffffffffffffff8111156109ca57600080fd5b6109d684828501610893565b91505092915050565b600080604083850312156109f257600080fd5b6000610a00858286016108bd565b925050602083013567ffffffffffffffff811115610a1d57600080fd5b610a2985828601610893565b9150509250929050565b600060208284031215610a4557600080fd5b6000610a5384828501610960565b91505092915050565b6000610a688383610b9b565b905092915050565b6000610a7c8383610c4b565b905092915050565b610a8d81610f2f565b82525050565b6000610a9e82610e71565b610aa88185610eac565b935083602082028501610aba85610e51565b8060005b85811015610af65784840389528151610ad78582610a5c565b9450610ae283610e92565b925060208a01995050600181019050610abe565b50829750879550505050505092915050565b6000610b1382610e7c565b610b1d8185610ebd565b935083602082028501610b2f85610e61565b8060005b85811015610b6b5784840389528151610b4c8582610a70565b9450610b5783610e9f565b925060208a01995050600181019050610b33565b50829750879550505050505092915050565b610b8681610f41565b82525050565b610b9581610f4d565b82525050565b6000610ba682610e87565b610bb08185610ece565b9350610bc0818560208601610f90565b610bc98161109b565b840191505092915050565b6000610bdf82610e87565b610be98185610edf565b9350610bf9818560208601610f90565b80840191505092915050565b6000610c12602183610eea565b9150610c1d826110ac565b604082019050919050565b6000610c35602083610eea565b9150610c40826110fb565b602082019050919050565b6000604083016000830151610c636000860182610b7d565b5060208301518482036020860152610c7b8282610b9b565b9150508091505092915050565b610c9181610f77565b82525050565b6000610ca38284610bd4565b915081905092915050565b6000602082019050610cc36000830184610a84565b92915050565b60006020820190508181036000830152610ce38184610b08565b905092915050565b6000602082019050610d006000830184610b8c565b92915050565b60006020820190508181036000830152610d1f81610c05565b9050919050565b60006020820190508181036000830152610d3f81610c28565b9050919050565b6000602082019050610d5b6000830184610c88565b92915050565b6000604082019050610d766000830185610c88565b8181036020830152610d888184610a93565b90509392505050565b6000606082019050610da66000830186610c88565b610db36020830185610b8c565b8181036040830152610dc58184610b08565b9050949350505050565b6000610dd9610dea565b9050610de58282610fc3565b919050565b6000604051905090565b600067ffffffffffffffff821115610e0f57610e0e61106c565b5b602082029050602081019050919050565b600067ffffffffffffffff821115610e3b57610e3a61106c565b5b610e448261109b565b9050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000610f0682610f77565b9150610f1183610f77565b925082821015610f2457610f2361103d565b5b828203905092915050565b6000610f3a82610f57565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015610fae578082015181840152602081019050610f93565b83811115610fbd576000848401525b50505050565b610fcc8261109b565b810181811067ffffffffffffffff82111715610feb57610fea61106c565b5b80604052505050565b6000610fff82610f77565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156110325761103161103d565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4d756c746963616c6c32206167677265676174653a2063616c6c206661696c6560008201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b7f4d756c746963616c6c206167677265676174653a2063616c6c206661696c6564600082015250565b61112d81610f2f565b811461113857600080fd5b50565b61114481610f41565b811461114f57600080fd5b50565b61115b81610f77565b811461116657600080fd5b5056fea264697066735822122079fd202f82f5a156ca186cdf4f3ab47890d3b09caa23ea3d747ed35a842869de64736f6c63430008040033

Deployed ByteCode

0x608060405234801561001057600080fd5b50600436106100b45760003560e01c806372425d9d1161007157806372425d9d146101a657806386d516e8146101c4578063a8b0574e146101e2578063bce38bd714610200578063c3077fa914610230578063ee82ac5e14610262576100b4565b80630f28c97d146100b9578063252dba42146100d757806327e86d6e14610108578063399542e91461012657806342cbb15c146101585780634d2301cc14610176575b600080fd5b6100c1610292565b6040516100ce9190610d46565b60405180910390f35b6100f160048036038101906100ec919061099e565b61029a565b6040516100ff929190610d61565b60405180910390f35b6101106104bb565b60405161011d9190610ceb565b60405180910390f35b610140600480360381019061013b91906109df565b6104d0565b60405161014f93929190610d91565b60405180910390f35b6101606104ef565b60405161016d9190610d46565b60405180910390f35b610190600480360381019061018b9190610975565b6104f7565b60405161019d9190610d46565b60405180910390f35b6101ae610518565b6040516101bb9190610d46565b60405180910390f35b6101cc610520565b6040516101d99190610d46565b60405180910390f35b6101ea610528565b6040516101f79190610cae565b60405180910390f35b61021a600480360381019061021591906109df565b610530565b6040516102279190610cc9565b60405180910390f35b61024a6004803603810190610245919061099e565b610770565b60405161025993929190610d91565b60405180910390f35b61027c60048036038101906102779190610a33565b610793565b6040516102899190610ceb565b60405180910390f35b600042905090565b60006060439150825167ffffffffffffffff8111156102e2577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561031557816020015b60608152602001906001900390816103005790505b50905060005b83518110156104b557600080858381518110610360577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff168684815181106103bb577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151602001516040516103d49190610c97565b6000604051808303816000865af19150503d8060008114610411576040519150601f19603f3d011682016040523d82523d6000602084013e610416565b606091505b50915091508161045b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161045290610d26565b60405180910390fd5b80848481518110610495577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010181905250505080806104ad90610ff4565b91505061031b565b50915091565b60006001436104ca9190610efb565b40905090565b6000806060439250434091506104e68585610530565b90509250925092565b600043905090565b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b600044905090565b600045905090565b600041905090565b6060815167ffffffffffffffff811115610573577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156105ac57816020015b61059961079e565b8152602001906001900390816105915790505b50905060005b8251811015610769576000808483815181106105f7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff16858481518110610652577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101516020015160405161066b9190610c97565b6000604051808303816000865af19150503d80600081146106a8576040519150601f19603f3d011682016040523d82523d6000602084013e6106ad565b606091505b509150915085156106f957816106f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ef90610d06565b60405180910390fd5b5b6040518060400160405280831515815260200182815250848481518110610749577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101819052505050808061076190610ff4565b9150506105b2565b5092915050565b60008060606107806001856104d0565b8093508194508295505050509193909250565b600081409050919050565b6040518060400160405280600015158152602001606081525090565b60006107cd6107c884610df4565b610dcf565b905080838252602082019050828560208602820111156107ec57600080fd5b60005b8581101561083657813567ffffffffffffffff81111561080e57600080fd5b80860161081b89826108fc565b855260208501945060208401935050506001810190506107ef565b5050509392505050565b600061085361084e84610e20565b610dcf565b90508281526020810184848401111561086b57600080fd5b610876848285610f81565b509392505050565b60008135905061088d81611124565b92915050565b600082601f8301126108a457600080fd5b81356108b48482602086016107ba565b91505092915050565b6000813590506108cc8161113b565b92915050565b600082601f8301126108e357600080fd5b81356108f3848260208601610840565b91505092915050565b60006040828403121561090e57600080fd5b6109186040610dcf565b905060006109288482850161087e565b600083015250602082013567ffffffffffffffff81111561094857600080fd5b610954848285016108d2565b60208301525092915050565b60008135905061096f81611152565b92915050565b60006020828403121561098757600080fd5b60006109958482850161087e565b91505092915050565b6000602082840312156109b057600080fd5b600082013567ffffffffffffffff8111156109ca57600080fd5b6109d684828501610893565b91505092915050565b600080604083850312156109f257600080fd5b6000610a00858286016108bd565b925050602083013567ffffffffffffffff811115610a1d57600080fd5b610a2985828601610893565b9150509250929050565b600060208284031215610a4557600080fd5b6000610a5384828501610960565b91505092915050565b6000610a688383610b9b565b905092915050565b6000610a7c8383610c4b565b905092915050565b610a8d81610f2f565b82525050565b6000610a9e82610e71565b610aa88185610eac565b935083602082028501610aba85610e51565b8060005b85811015610af65784840389528151610ad78582610a5c565b9450610ae283610e92565b925060208a01995050600181019050610abe565b50829750879550505050505092915050565b6000610b1382610e7c565b610b1d8185610ebd565b935083602082028501610b2f85610e61565b8060005b85811015610b6b5784840389528151610b4c8582610a70565b9450610b5783610e9f565b925060208a01995050600181019050610b33565b50829750879550505050505092915050565b610b8681610f41565b82525050565b610b9581610f4d565b82525050565b6000610ba682610e87565b610bb08185610ece565b9350610bc0818560208601610f90565b610bc98161109b565b840191505092915050565b6000610bdf82610e87565b610be98185610edf565b9350610bf9818560208601610f90565b80840191505092915050565b6000610c12602183610eea565b9150610c1d826110ac565b604082019050919050565b6000610c35602083610eea565b9150610c40826110fb565b602082019050919050565b6000604083016000830151610c636000860182610b7d565b5060208301518482036020860152610c7b8282610b9b565b9150508091505092915050565b610c9181610f77565b82525050565b6000610ca38284610bd4565b915081905092915050565b6000602082019050610cc36000830184610a84565b92915050565b60006020820190508181036000830152610ce38184610b08565b905092915050565b6000602082019050610d006000830184610b8c565b92915050565b60006020820190508181036000830152610d1f81610c05565b9050919050565b60006020820190508181036000830152610d3f81610c28565b9050919050565b6000602082019050610d5b6000830184610c88565b92915050565b6000604082019050610d766000830185610c88565b8181036020830152610d888184610a93565b90509392505050565b6000606082019050610da66000830186610c88565b610db36020830185610b8c565b8181036040830152610dc58184610b08565b9050949350505050565b6000610dd9610dea565b9050610de58282610fc3565b919050565b6000604051905090565b600067ffffffffffffffff821115610e0f57610e0e61106c565b5b602082029050602081019050919050565b600067ffffffffffffffff821115610e3b57610e3a61106c565b5b610e448261109b565b9050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000610f0682610f77565b9150610f1183610f77565b925082821015610f2457610f2361103d565b5b828203905092915050565b6000610f3a82610f57565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015610fae578082015181840152602081019050610f93565b83811115610fbd576000848401525b50505050565b610fcc8261109b565b810181811067ffffffffffffffff82111715610feb57610fea61106c565b5b80604052505050565b6000610fff82610f77565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156110325761103161103d565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4d756c746963616c6c32206167677265676174653a2063616c6c206661696c6560008201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b7f4d756c746963616c6c206167677265676174653a2063616c6c206661696c6564600082015250565b61112d81610f2f565b811461113857600080fd5b50565b61114481610f41565b811461114f57600080fd5b50565b61115b81610f77565b811461116657600080fd5b5056fea264697066735822122079fd202f82f5a156ca186cdf4f3ab47890d3b09caa23ea3d747ed35a842869de64736f6c63430008040033