[ { "inputs": [ { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "ECDSAInvalidSignature", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "length", "type": "uint256" } ], "name": "ECDSAInvalidSignatureLength", "type": "error" }, { "inputs": [ { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "ECDSAInvalidSignatureS", "type": "error" }, { "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" }, { "inputs": [ { "internalType": "uint256", "name": "deadline", "type": "uint256" } ], "name": "ERC2612ExpiredSignature", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "signer", "type": "address" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC2612InvalidSigner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "currentNonce", "type": "uint256" } ], "name": "InvalidAccountNonce", "type": "error" }, { "inputs": [], "name": "InvalidShortString", "type": "error" }, { "inputs": [ { "internalType": "string", "name": "str", "type": "string" } ], "name": "StringTooLong", "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": [], "name": "EIP712DomainChanged", "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": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "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": "recipients", "type": "address[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" } ], "name": "batchMint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "eip712Domain", "outputs": [ { "internalType": "bytes1", "name": "fields", "type": "bytes1" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "version", "type": "string" }, { "internalType": "uint256", "name": "chainId", "type": "uint256" }, { "internalType": "address", "name": "verifyingContract", "type": "address" }, { "internalType": "bytes32", "name": "salt", "type": "bytes32" }, { "internalType": "uint256[]", "name": "extensions", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "permit", "outputs": [], "stateMutability": "nonpayable", "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" } ]
61016060405234801562000011575f80fd5b5060405162002a3838038062002a38833981810160405281019062000037919062000439565b81806040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525084848160039081620000829190620006f3565b508060049081620000949190620006f3565b505050620000ad6005836200019060201b90919060201c565b6101208181525050620000cb6006826200019060201b90919060201c565b6101408181525050818051906020012060e08181525050808051906020012061010081815250504660a081815250506200010a620001e560201b60201c565b608081815250503073ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff16815250505050503360085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050620009b0565b5f602083511015620001b557620001ad836200024160201b60201c565b9050620001df565b82620001c783620002ab60201b60201c565b5f019081620001d79190620006f3565b5060ff5f1b90505b92915050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60e0516101005146306040516020016200022695949392919062000845565b60405160208183030381529060405280519060200120905090565b5f80829050601f815111156200029057826040517f305a27a9000000000000000000000000000000000000000000000000000000008152600401620002879190620008f0565b60405180910390fd5b8051816200029e9062000941565b5f1c175f1b915050919050565b5f819050919050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6200031582620002cd565b810181811067ffffffffffffffff82111715620003375762000336620002dd565b5b80604052505050565b5f6200034b620002b4565b90506200035982826200030a565b919050565b5f67ffffffffffffffff8211156200037b576200037a620002dd565b5b6200038682620002cd565b9050602081019050919050565b5f5b83811015620003b257808201518184015260208101905062000395565b5f8484015250505050565b5f620003d3620003cd846200035e565b62000340565b905082815260208101848484011115620003f257620003f1620002c9565b5b620003ff84828562000393565b509392505050565b5f82601f8301126200041e576200041d620002c5565b5b815162000430848260208601620003bd565b91505092915050565b5f8060408385031215620004525762000451620002bd565b5b5f83015167ffffffffffffffff811115620004725762000471620002c1565b5b620004808582860162000407565b925050602083015167ffffffffffffffff811115620004a457620004a3620002c1565b5b620004b28582860162000407565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200050b57607f821691505b602082108103620005215762000520620004c6565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620005857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000548565b62000591868362000548565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620005db620005d5620005cf84620005a9565b620005b2565b620005a9565b9050919050565b5f819050919050565b620005f683620005bb565b6200060e6200060582620005e2565b84845462000554565b825550505050565b5f90565b6200062462000616565b62000631818484620005eb565b505050565b5b8181101562000658576200064c5f826200061a565b60018101905062000637565b5050565b601f821115620006a757620006718162000527565b6200067c8462000539565b810160208510156200068c578190505b620006a46200069b8562000539565b83018262000636565b50505b505050565b5f82821c905092915050565b5f620006c95f1984600802620006ac565b1980831691505092915050565b5f620006e38383620006b8565b9150826002028217905092915050565b620006fe82620004bc565b67ffffffffffffffff8111156200071a5762000719620002dd565b5b620007268254620004f3565b620007338282856200065c565b5f60209050601f83116001811462000769575f841562000754578287015190505b620007608582620006d6565b865550620007cf565b601f198416620007798662000527565b5f5b82811015620007a2578489015182556001820191506020850194506020810190506200077b565b86831015620007c25784890151620007be601f891682620006b8565b8355505b6001600288020188555050505b505050505050565b5f819050919050565b620007eb81620007d7565b82525050565b620007fc81620005a9565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200082d8262000802565b9050919050565b6200083f8162000821565b82525050565b5f60a0820190506200085a5f830188620007e0565b620008696020830187620007e0565b620008786040830186620007e0565b620008876060830185620007f1565b62000896608083018462000834565b9695505050505050565b5f82825260208201905092915050565b5f620008bc82620004bc565b620008c88185620008a0565b9350620008da81856020860162000393565b620008e581620002cd565b840191505092915050565b5f6020820190508181035f8301526200090a8184620008b0565b905092915050565b5f81519050919050565b5f819050602082019050919050565b5f620009388251620007d7565b80915050919050565b5f6200094d8262000912565b8262000959846200091c565b905062000966816200092b565b92506020821015620009a957620009a47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8360200360080262000548565b831692505b5050919050565b60805160a05160c05160e05161010051610120516101405161203662000a025f395f610c6101525f610c2601525f61115a01525f61113901525f610aa501525f610afb01525f610b2401526120365ff3fe608060405234801561000f575f80fd5b50600436106100f3575f3560e01c806370a082311161009557806395d89b411161006457806395d89b411461028d578063a9059cbb146102ab578063d505accf146102db578063dd62ed3e146102f7576100f3565b806370a08231146101eb5780637ecebe001461021b57806384b0196e1461024b5780638da5cb5b1461026f576100f3565b806323b872dd116100d157806323b872dd14610163578063313ce567146101935780633644e515146101b157806368573107146101cf576100f3565b806306fdde03146100f7578063095ea7b31461011557806318160ddd14610145575b5f80fd5b6100ff610327565b60405161010c919061162a565b60405180910390f35b61012f600480360381019061012a91906116df565b6103b7565b60405161013c9190611737565b60405180910390f35b61014d6103d9565b60405161015a919061175f565b60405180910390f35b61017d60048036038101906101789190611778565b6103e2565b60405161018a9190611737565b60405180910390f35b61019b610410565b6040516101a891906117e3565b60405180910390f35b6101b9610418565b6040516101c69190611814565b60405180910390f35b6101e960048036038101906101e491906118e3565b610426565b005b61020560048036038101906102009190611961565b61056e565b604051610212919061175f565b60405180910390f35b61023560048036038101906102309190611961565b6105b3565b604051610242919061175f565b60405180910390f35b6102536105c4565b6040516102669796959493929190611a8c565b60405180910390f35b610277610669565b6040516102849190611b0e565b60405180910390f35b61029561068e565b6040516102a2919061162a565b60405180910390f35b6102c560048036038101906102c091906116df565b61071e565b6040516102d29190611737565b60405180910390f35b6102f560048036038101906102f09190611b7b565b610740565b005b610311600480360381019061030c9190611c18565b610885565b60405161031e919061175f565b60405180910390f35b60606003805461033690611c83565b80601f016020809104026020016040519081016040528092919081815260200182805461036290611c83565b80156103ad5780601f10610384576101008083540402835291602001916103ad565b820191905f5260205f20905b81548152906001019060200180831161039057829003601f168201915b5050505050905090565b5f806103c1610907565b90506103ce81858561090e565b600191505092915050565b5f600254905090565b5f806103ec610907565b90506103f9858285610920565b6104048585856109b2565b60019150509392505050565b5f6012905090565b5f610421610aa2565b905090565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104ac90611cfd565b60405180910390fd5b8181905084849050146104fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f490611d65565b60405180910390fd5b5f5b84849050811015610567576105548585838181106105205761051f611d83565b5b90506020020160208101906105359190611961565b84848481811061054857610547611d83565b5b90506020020135610b58565b808061055f90611ddd565b9150506104ff565b5050505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f6105bd82610bd7565b9050919050565b5f6060805f805f60606105d5610c1d565b6105dd610c58565b46305f801b5f67ffffffffffffffff8111156105fc576105fb611e24565b5b60405190808252806020026020018201604052801561062a5781602001602082028036833780820191505090505b507f0f00000000000000000000000000000000000000000000000000000000000000959493929190965096509650965096509650965090919293949596565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606004805461069d90611c83565b80601f01602080910402602001604051908101604052809291908181526020018280546106c990611c83565b80156107145780601f106106eb57610100808354040283529160200191610714565b820191905f5260205f20905b8154815290600101906020018083116106f757829003601f168201915b5050505050905090565b5f80610728610907565b90506107358185856109b2565b600191505092915050565b8342111561078557836040517f6279130200000000000000000000000000000000000000000000000000000000815260040161077c919061175f565b60405180910390fd5b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886107b38c610c93565b896040516020016107c996959493929190611e51565b6040516020818303038152906040528051906020012090505f6107eb82610ce6565b90505f6107fa82878787610cff565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461086e57808a6040517f4b800e46000000000000000000000000000000000000000000000000000000008152600401610865929190611eb0565b60405180910390fd5b6108798a8a8a61090e565b50505050505050505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b61091b8383836001610d2d565b505050565b5f61092b8484610885565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146109ac578181101561099d578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161099493929190611ed7565b60405180910390fd5b6109ab84848484035f610d2d565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a22575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610a199190611b0e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a92575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610a899190611b0e565b60405180910390fd5b610a9d838383610efc565b505050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff16148015610b1d57507f000000000000000000000000000000000000000000000000000000000000000046145b15610b4a577f00000000000000000000000000000000000000000000000000000000000000009050610b55565b610b52611115565b90505b90565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bc8575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610bbf9190611b0e565b60405180910390fd5b610bd35f8383610efc565b5050565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6060610c5360057f00000000000000000000000000000000000000000000000000000000000000006111aa90919063ffffffff16565b905090565b6060610c8e60067f00000000000000000000000000000000000000000000000000000000000000006111aa90919063ffffffff16565b905090565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f815480929190600101919050559050919050565b5f610cf8610cf2610aa2565b83611257565b9050919050565b5f805f80610d0f88888888611297565b925092509250610d1f828261137e565b829350505050949350505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610d9d575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610d949190611b0e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e0d575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610e049190611b0e565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610ef6578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610eed919061175f565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f4c578060025f828254610f409190611f0c565b9250508190555061101a565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610fd5578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610fcc93929190611ed7565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611061578060025f82825403925050819055506110ab565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611108919061175f565b60405180910390a3505050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000463060405160200161118f959493929190611f3f565b60405160208183030381529060405280519060200120905090565b606060ff5f1b83146111c6576111bf836114e0565b9050611251565b8180546111d290611c83565b80601f01602080910402602001604051908101604052809291908181526020018280546111fe90611c83565b80156112495780601f1061122057610100808354040283529160200191611249565b820191905f5260205f20905b81548152906001019060200180831161122c57829003601f168201915b505050505090505b92915050565b5f6040517f190100000000000000000000000000000000000000000000000000000000000081528360028201528260228201526042812091505092915050565b5f805f7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0845f1c11156112d3575f600385925092509250611374565b5f6001888888886040515f81526020016040526040516112f69493929190611f90565b6020604051602081039080840390855afa158015611316573d5f803e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611367575f60015f801b93509350935050611374565b805f805f1b935093509350505b9450945094915050565b5f600381111561139157611390611fd3565b5b8260038111156113a4576113a3611fd3565b5b03156114dc57600160038111156113be576113bd611fd3565b5b8260038111156113d1576113d0611fd3565b5b03611408576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600381111561141c5761141b611fd3565b5b82600381111561142f5761142e611fd3565b5b0361147357805f1c6040517ffce698f700000000000000000000000000000000000000000000000000000000815260040161146a919061175f565b60405180910390fd5b60038081111561148657611485611fd3565b5b82600381111561149957611498611fd3565b5b036114db57806040517fd78bce0c0000000000000000000000000000000000000000000000000000000081526004016114d29190611814565b60405180910390fd5b5b5050565b60605f6114ec83611552565b90505f602067ffffffffffffffff81111561150a57611509611e24565b5b6040519080825280601f01601f19166020018201604052801561153c5781602001600182028036833780820191505090505b5090508181528360208201528092505050919050565b5f8060ff835f1c169050601f811115611597576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80915050919050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156115d75780820151818401526020810190506115bc565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6115fc826115a0565b61160681856115aa565b93506116168185602086016115ba565b61161f816115e2565b840191505092915050565b5f6020820190508181035f83015261164281846115f2565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61167b82611652565b9050919050565b61168b81611671565b8114611695575f80fd5b50565b5f813590506116a681611682565b92915050565b5f819050919050565b6116be816116ac565b81146116c8575f80fd5b50565b5f813590506116d9816116b5565b92915050565b5f80604083850312156116f5576116f461164a565b5b5f61170285828601611698565b9250506020611713858286016116cb565b9150509250929050565b5f8115159050919050565b6117318161171d565b82525050565b5f60208201905061174a5f830184611728565b92915050565b611759816116ac565b82525050565b5f6020820190506117725f830184611750565b92915050565b5f805f6060848603121561178f5761178e61164a565b5b5f61179c86828701611698565b93505060206117ad86828701611698565b92505060406117be868287016116cb565b9150509250925092565b5f60ff82169050919050565b6117dd816117c8565b82525050565b5f6020820190506117f65f8301846117d4565b92915050565b5f819050919050565b61180e816117fc565b82525050565b5f6020820190506118275f830184611805565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261184e5761184d61182d565b5b8235905067ffffffffffffffff81111561186b5761186a611831565b5b60208301915083602082028301111561188757611886611835565b5b9250929050565b5f8083601f8401126118a3576118a261182d565b5b8235905067ffffffffffffffff8111156118c0576118bf611831565b5b6020830191508360208202830111156118dc576118db611835565b5b9250929050565b5f805f80604085870312156118fb576118fa61164a565b5b5f85013567ffffffffffffffff8111156119185761191761164e565b5b61192487828801611839565b9450945050602085013567ffffffffffffffff8111156119475761194661164e565b5b6119538782880161188e565b925092505092959194509250565b5f602082840312156119765761197561164a565b5b5f61198384828501611698565b91505092915050565b5f7fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6119c08161198c565b82525050565b6119cf81611671565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b611a07816116ac565b82525050565b5f611a1883836119fe565b60208301905092915050565b5f602082019050919050565b5f611a3a826119d5565b611a4481856119df565b9350611a4f836119ef565b805f5b83811015611a7f578151611a668882611a0d565b9750611a7183611a24565b925050600181019050611a52565b5085935050505092915050565b5f60e082019050611a9f5f83018a6119b7565b8181036020830152611ab181896115f2565b90508181036040830152611ac581886115f2565b9050611ad46060830187611750565b611ae160808301866119c6565b611aee60a0830185611805565b81810360c0830152611b008184611a30565b905098975050505050505050565b5f602082019050611b215f8301846119c6565b92915050565b611b30816117c8565b8114611b3a575f80fd5b50565b5f81359050611b4b81611b27565b92915050565b611b5a816117fc565b8114611b64575f80fd5b50565b5f81359050611b7581611b51565b92915050565b5f805f805f805f60e0888a031215611b9657611b9561164a565b5b5f611ba38a828b01611698565b9750506020611bb48a828b01611698565b9650506040611bc58a828b016116cb565b9550506060611bd68a828b016116cb565b9450506080611be78a828b01611b3d565b93505060a0611bf88a828b01611b67565b92505060c0611c098a828b01611b67565b91505092959891949750929550565b5f8060408385031215611c2e57611c2d61164a565b5b5f611c3b85828601611698565b9250506020611c4c85828601611698565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611c9a57607f821691505b602082108103611cad57611cac611c56565b5b50919050565b7f4f6e6c79206f776e65722063616e206d696e7420746f6b656e730000000000005f82015250565b5f611ce7601a836115aa565b9150611cf282611cb3565b602082019050919050565b5f6020820190508181035f830152611d1481611cdb565b9050919050565b7f4d69736d617463686564206c656e6774687300000000000000000000000000005f82015250565b5f611d4f6012836115aa565b9150611d5a82611d1b565b602082019050919050565b5f6020820190508181035f830152611d7c81611d43565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611de7826116ac565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611e1957611e18611db0565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f60c082019050611e645f830189611805565b611e7160208301886119c6565b611e7e60408301876119c6565b611e8b6060830186611750565b611e986080830185611750565b611ea560a0830184611750565b979650505050505050565b5f604082019050611ec35f8301856119c6565b611ed060208301846119c6565b9392505050565b5f606082019050611eea5f8301866119c6565b611ef76020830185611750565b611f046040830184611750565b949350505050565b5f611f16826116ac565b9150611f21836116ac565b9250828201905080821115611f3957611f38611db0565b5b92915050565b5f60a082019050611f525f830188611805565b611f5f6020830187611805565b611f6c6040830186611805565b611f796060830185611750565b611f8660808301846119c6565b9695505050505050565b5f608082019050611fa35f830187611805565b611fb060208301866117d4565b611fbd6040830185611805565b611fca6060830184611805565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffdfea2646970667358221220a4476f4555facee822e7aa4aace20296c1b66d6b0c2157d93e8837efab6d614664736f6c6343000814003300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000974657374546f6b656e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025454000000000000000000000000000000000000000000000000000000000000