[ { "inputs": [ { "internalType": "address", "name": "initialOwner", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "CheckpointUnorderedInsertion", "type": "error" }, { "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": "uint256", "name": "increasedSupply", "type": "uint256" }, { "internalType": "uint256", "name": "cap", "type": "uint256" } ], "name": "ERC20ExceededSafeSupply", "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": "uint256", "name": "timepoint", "type": "uint256" }, { "internalType": "uint48", "name": "clock", "type": "uint48" } ], "name": "ERC5805FutureLookup", "type": "error" }, { "inputs": [], "name": "ERC6372InconsistentClock", "type": "error" }, { "inputs": [], "name": "EnforcedPause", "type": "error" }, { "inputs": [], "name": "ExpectedPause", "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": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "inputs": [ { "internalType": "uint8", "name": "bits", "type": "uint8" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "SafeCastOverflowedUintDowncast", "type": "error" }, { "inputs": [ { "internalType": "string", "name": "str", "type": "string" } ], "name": "StringTooLong", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "expiry", "type": "uint256" } ], "name": "VotesExpiredSignature", "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": "delegator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "fromDelegate", "type": "address" }, { "indexed": true, "internalType": "address", "name": "toDelegate", "type": "address" } ], "name": "DelegateChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "delegate", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "previousVotes", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newVotes", "type": "uint256" } ], "name": "DelegateVotesChanged", "type": "event" }, { "anonymous": false, "inputs": [], "name": "EIP712DomainChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "LockupReleased", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "expiration", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "LockupSet", "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": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "inputs": [], "name": "CLOCK_MODE", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "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": "uint256", "name": "value", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "burnFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint32", "name": "pos", "type": "uint32" } ], "name": "checkpoints", "outputs": [ { "components": [ { "internalType": "uint48", "name": "_key", "type": "uint48" }, { "internalType": "uint208", "name": "_value", "type": "uint208" } ], "internalType": "struct Checkpoints.Checkpoint208", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "clock", "outputs": [ { "internalType": "uint48", "name": "", "type": "uint48" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "delegatee", "type": "address" } ], "name": "delegate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "delegatee", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "uint256", "name": "expiry", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "delegateBySig", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "delegates", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "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": [ { "internalType": "uint256", "name": "timepoint", "type": "uint256" } ], "name": "getPastTotalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "timepoint", "type": "uint256" } ], "name": "getPastVotes", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "getVotes", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isLocked", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "lockedBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "lockedInfo", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_accounts", "type": "address[]" }, { "internalType": "uint256[]", "name": "_amounts", "type": "uint256[]" } ], "name": "mintMulti", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "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": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "numCheckpoints", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "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": "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": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "releaseLockup", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "lockupTimeInMinutes", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "setLockup", "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" }, { "inputs": [ { "internalType": "address[]", "name": "_accounts", "type": "address[]" }, { "internalType": "uint256[]", "name": "_amounts", "type": "uint256[]" } ], "name": "transferMulti", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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" } ]
61016060405234801562000011575f80fd5b5060405162006a0b38038062006a0b833981810160405281019062000037919062001400565b6040518060400160405280600a81526020017f417a7a6920546f6b656e00000000000000000000000000000000000000000000815250806040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250836040518060400160405280600a81526020017f417a7a6920546f6b656e000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f415a5a4900000000000000000000000000000000000000000000000000000000815250816003908162000122919062001694565b50806004908162000134919062001694565b5050505f60055f6101000a81548160ff0219169083151502179055505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620001c3575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620001ba919062001789565b60405180910390fd5b620001d481620002ac60201b60201c565b50620001eb6006836200037160201b90919060201c565b6101208181525050620002096007826200037160201b90919060201c565b6101408181525050818051906020012060e08181525050808051906020012061010081815250504660a0818152505062000248620003c660201b60201c565b608081815250503073ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff1681525050505050620002a5816cfc6f7c40458122964d000000006200042260201b60201c565b5062001c6f565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f60208351101562000396576200038e83620004ac60201b60201c565b9050620003c0565b82620003a8836200051660201b60201c565b5f019081620003b8919062001694565b5060ff5f1b90505b92915050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60e05161010051463060405160200162000407959493929190620017cf565b60405160208183030381529060405280519060200120905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000495575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016200048c919062001789565b60405180910390fd5b620004a85f83836200051f60201b60201c565b5050565b5f80829050601f81511115620004fb57826040517f305a27a9000000000000000000000000000000000000000000000000000000008152600401620004f29190620018b4565b60405180910390fd5b805181620005099062001905565b5f1c175f1b915050919050565b5f819050919050565b6200053083620005f160201b60201c565b158062000597575080600d5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205462000588856200068260201b60201c565b620005949190620019a1565b10155b620005d9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005d09062001a4f565b60405180910390fd5b620005ec838383620006c760201b60201c565b505050565b5f600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054421080156200067b57505f600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054115b9050919050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b620006da8383836200079960201b60201c565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000781575f6200071f620007c160201b60201c565b90505f62000732620007ca60201b60201c565b9050808211156200077e5781816040517f1cb15d260000000000000000000000000000000000000000000000000000000081526004016200077592919062001a6f565b60405180910390fd5b50505b62000794838383620007ed60201b60201c565b505050565b620007a9620008f160201b60201c565b620007bc8383836200093b60201b60201c565b505050565b5f600254905090565b5f79ffffffffffffffffffffffffffffffffffffffffffffffffffff8016905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620008535762000850600b62000b5f60201b6200189817620008448462000b7660201b60201c565b62000be660201b60201c565b50505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620008b957620008b6600b62000c3560201b620018ad17620008aa8462000b7660201b60201c565b62000be660201b60201c565b50505b620008ec620008ce8462000c4c60201b60201c565b620008df8462000c4c60201b60201c565b8362000cb160201b60201c565b505050565b6200090162000f5b60201b60201c565b1562000939576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036200098f578060025f82825462000982919062001a9a565b9250508190555062000a60565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101562000a1b578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040162000a129392919062001ad4565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000aa9578060025f828254039250508190555062000af3565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000b52919062001b0f565b60405180910390a3505050565b5f818362000b6e919062001b4f565b905092915050565b5f79ffffffffffffffffffffffffffffffffffffffffffffffffffff801682111562000bde5760d0826040517f6dfcc65000000000000000000000000000000000000000000000000000000000815260040162000bd592919062001bf0565b60405180910390fd5b819050919050565b5f8062000c2962000bfc62000f7060201b60201c565b62000c1862000c118862000f7760201b60201c565b868860201c565b8762000fe560201b9092919060201c565b91509150935093915050565b5f818362000c44919062001c1b565b905092915050565b5f60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801562000ced57505f81115b1562000f56575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161462000e24575f8062000d93600a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2062000c3560201b620018ad1762000d878662000b7660201b60201c565b62000be660201b60201c565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff16915079ffffffffffffffffffffffffffffffffffffffffffffffffffff1691508473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405162000e1992919062001a6f565b60405180910390a250505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161462000f55575f8062000ec4600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2062000b5f60201b620018981762000eb88662000b7660201b60201c565b62000be660201b60201c565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff16915079ffffffffffffffffffffffffffffffffffffffffffffffffffff1691508373ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405162000f4a92919062001a6f565b60405180910390a250505b5b505050565b5f60055f9054906101000a900460ff16905090565b5f42905090565b5f80825f018054905090505f811462000fdb5762000fac835f0160018362000fa09190620019a1565b6200100860201b60201c565b5f0160069054906101000a900479ffffffffffffffffffffffffffffffffffffffffffffffffffff1662000fdd565b5f5b915050919050565b5f8062000ffc855f0185856200101a60201b60201c565b91509150935093915050565b5f825f528160205f2001905092915050565b5f805f858054905090505f811115620012b3575f6200104e87600184620010429190620019a1565b6200100860201b60201c565b6040518060400160405290815f82015f9054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020015f820160069054906101000a900479ffffffffffffffffffffffffffffffffffffffffffffffffffff1679ffffffffffffffffffffffffffffffffffffffffffffffffffff1679ffffffffffffffffffffffffffffffffffffffffffffffffffff168152505090508565ffffffffffff16815f015165ffffffffffff1611156200113a576040517f2520601d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8565ffffffffffff16815f015165ffffffffffff1603620011c8578462001176886001856200116a9190620019a1565b6200100860201b60201c565b5f0160066101000a81548179ffffffffffffffffffffffffffffffffffffffffffffffffffff021916908379ffffffffffffffffffffffffffffffffffffffffffffffffffff160217905550620012a1565b8660405180604001604052808865ffffffffffff1681526020018779ffffffffffffffffffffffffffffffffffffffffffffffffffff16815250908060018154018082558091505060019003905f5260205f20015f909190919091505f820151815f015f6101000a81548165ffffffffffff021916908365ffffffffffff1602179055506020820151815f0160066101000a81548179ffffffffffffffffffffffffffffffffffffffffffffffffffff021916908379ffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555050505b80602001518593509350505062001393565b8560405180604001604052808765ffffffffffff1681526020018679ffffffffffffffffffffffffffffffffffffffffffffffffffff16815250908060018154018082558091505060019003905f5260205f20015f909190919091505f820151815f015f6101000a81548165ffffffffffff021916908365ffffffffffff1602179055506020820151815f0160066101000a81548179ffffffffffffffffffffffffffffffffffffffffffffffffffff021916908379ffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555050505f8492509250505b935093915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620013ca826200139f565b9050919050565b620013dc81620013be565b8114620013e7575f80fd5b50565b5f81519050620013fa81620013d1565b92915050565b5f602082840312156200141857620014176200139b565b5b5f6200142784828501620013ea565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620014ac57607f821691505b602082108103620014c257620014c162001467565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620015267fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620014e9565b620015328683620014e9565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6200157c6200157662001570846200154a565b62001553565b6200154a565b9050919050565b5f819050919050565b62001597836200155c565b620015af620015a68262001583565b848454620014f5565b825550505050565b5f90565b620015c5620015b7565b620015d28184846200158c565b505050565b5b81811015620015f957620015ed5f82620015bb565b600181019050620015d8565b5050565b601f82111562001648576200161281620014c8565b6200161d84620014da565b810160208510156200162d578190505b620016456200163c85620014da565b830182620015d7565b50505b505050565b5f82821c905092915050565b5f6200166a5f19846008026200164d565b1980831691505092915050565b5f62001684838362001659565b9150826002028217905092915050565b6200169f8262001430565b67ffffffffffffffff811115620016bb57620016ba6200143a565b5b620016c7825462001494565b620016d4828285620015fd565b5f60209050601f8311600181146200170a575f8415620016f5578287015190505b62001701858262001677565b86555062001770565b601f1984166200171a86620014c8565b5f5b8281101562001743578489015182556001820191506020850194506020810190506200171c565b868310156200176357848901516200175f601f89168262001659565b8355505b6001600288020188555050505b505050505050565b6200178381620013be565b82525050565b5f6020820190506200179e5f83018462001778565b92915050565b5f819050919050565b620017b881620017a4565b82525050565b620017c9816200154a565b82525050565b5f60a082019050620017e45f830188620017ad565b620017f36020830187620017ad565b620018026040830186620017ad565b620018116060830185620017be565b62001820608083018462001778565b9695505050505050565b5f82825260208201905092915050565b5f5b83811015620018595780820151818401526020810190506200183c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f620018808262001430565b6200188c81856200182a565b93506200189e8185602086016200183a565b620018a98162001864565b840191505092915050565b5f6020820190508181035f830152620018ce818462001874565b905092915050565b5f81519050919050565b5f819050602082019050919050565b5f620018fc8251620017a4565b80915050919050565b5f6200191182620018d6565b826200191d84620018e0565b90506200192a81620018ef565b925060208210156200196d57620019687fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83602003600802620014e9565b831692505b5050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f620019ad826200154a565b9150620019ba836200154a565b9250828203905081811115620019d557620019d462001974565b5b92915050565b7f546f6b656e207472616e73666572206973206c6f636b6564206f7220696e73755f8201527f6666696369656e7420756e6c6f636b65642062616c616e636500000000000000602082015250565b5f62001a376039836200182a565b915062001a4482620019db565b604082019050919050565b5f6020820190508181035f83015262001a688162001a29565b9050919050565b5f60408201905062001a845f830185620017be565b62001a936020830184620017be565b9392505050565b5f62001aa6826200154a565b915062001ab3836200154a565b925082820190508082111562001ace5762001acd62001974565b5b92915050565b5f60608201905062001ae95f83018662001778565b62001af86020830185620017be565b62001b076040830184620017be565b949350505050565b5f60208201905062001b245f830184620017be565b92915050565b5f79ffffffffffffffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62001b5b8262001b2a565b915062001b688362001b2a565b9250828201905079ffffffffffffffffffffffffffffffffffffffffffffffffffff81111562001b9d5762001b9c62001974565b5b92915050565b5f819050919050565b5f60ff82169050919050565b5f62001bd862001bd262001bcc8462001ba3565b62001553565b62001bac565b9050919050565b62001bea8162001bb8565b82525050565b5f60408201905062001c055f83018562001bdf565b62001c146020830184620017be565b9392505050565b5f62001c278262001b2a565b915062001c348362001b2a565b9250828203905079ffffffffffffffffffffffffffffffffffffffffffffffffffff81111562001c695762001c6862001974565b5b92915050565b60805160a05160c05160e051610100516101205161014051614d4a62001cc15f395f61212001525f6120e501525f6125cc01525f6125ab01525f611a6001525f611ab601525f611adf0152614d4a5ff3fe608060405234801561000f575f80fd5b506004361061023b575f3560e01c8063715018a6116101395780639ae697bf116100b6578063dd62ed3e1161007a578063dd62ed3e146106f3578063ef6a610f14610723578063f1127ed814610754578063f2fde38b14610784578063f326f0d7146107a05761023b565b80639ae697bf1461063f578063a9059cbb1461066f578063b9d88cbf1461069f578063c3cda520146106bb578063d505accf146106d75761023b565b80638da5cb5b116100fd5780638da5cb5b146105855780638e539e8c146105a357806391ddadf4146105d357806395d89b41146105f15780639ab24eb01461060f5761023b565b8063715018a61461050157806379cc67901461050b5780637ecebe00146105275780638456cb591461055757806384b0196e146105615761023b565b806340c10f19116101c7578063587cde1e1161018b578063587cde1e146104375780635c19a95c146104675780635c975abb146104835780636fcfff45146104a157806370a08231146104d15761023b565b806340c10f191461038157806342966c681461039d57806346e4959d146103b95780634a4fbeec146103e95780634bf5d7e9146104195761023b565b8063313ce5671161020e578063313ce567146102db57806335bce6e4146102f95780633644e515146103295780633a46b1a8146103475780633f4ba83a146103775761023b565b806306fdde031461023f578063095ea7b31461025d57806318160ddd1461028d57806323b872dd146102ab575b5f80fd5b6102476107bc565b60405161025491906139cf565b60405180910390f35b61027760048036038101906102729190613a8d565b61084c565b6040516102849190613ae5565b60405180910390f35b61029561086e565b6040516102a29190613b0d565b60405180910390f35b6102c560048036038101906102c09190613b26565b610877565b6040516102d29190613ae5565b60405180910390f35b6102e36108a5565b6040516102f09190613b91565b60405180910390f35b610313600480360381019061030e9190613daa565b6108ad565b6040516103209190613ae5565b60405180910390f35b6103316109bd565b60405161033e9190613e38565b60405180910390f35b610361600480360381019061035c9190613a8d565b6109cb565b60405161036e9190613b0d565b60405180910390f35b61037f610aa1565b005b61039b60048036038101906103969190613a8d565b610ab3565b005b6103b760048036038101906103b29190613e51565b610ac9565b005b6103d360048036038101906103ce9190613daa565b610add565b6040516103e09190613ae5565b60405180910390f35b61040360048036038101906103fe9190613e7c565b610bed565b6040516104109190613ae5565b60405180910390f35b610421610c7d565b60405161042e91906139cf565b60405180910390f35b610451600480360381019061044c9190613e7c565b610cba565b60405161045e9190613eb6565b60405180910390f35b610481600480360381019061047c9190613e7c565b610d1f565b005b61048b610d38565b6040516104989190613ae5565b60405180910390f35b6104bb60048036038101906104b69190613e7c565b610d4d565b6040516104c89190613eed565b60405180910390f35b6104eb60048036038101906104e69190613e7c565b610d5e565b6040516104f89190613b0d565b60405180910390f35b610509610da3565b005b61052560048036038101906105209190613a8d565b610db6565b005b610541600480360381019061053c9190613e7c565b610dd6565b60405161054e9190613b0d565b60405180910390f35b61055f610de7565b005b610569610df9565b60405161057c9796959493929190613ff7565b60405180910390f35b61058d610e9e565b60405161059a9190613eb6565b60405180910390f35b6105bd60048036038101906105b89190613e51565b610ec7565b6040516105ca9190613b0d565b60405180910390f35b6105db610f61565b6040516105e89190614099565b60405180910390f35b6105f9610f68565b60405161060691906139cf565b60405180910390f35b61062960048036038101906106249190613e7c565b610ff8565b6040516106369190613b0d565b60405180910390f35b61065960048036038101906106549190613e7c565b611061565b6040516106669190613b0d565b60405180910390f35b61068960048036038101906106849190613a8d565b6110a7565b6040516106969190613ae5565b60405180910390f35b6106b960048036038101906106b49190613a8d565b6110c9565b005b6106d560048036038101906106d09190614106565b6112c5565b005b6106f160048036038101906106ec919061418f565b61138a565b005b61070d6004803603810190610708919061422c565b6114cf565b60405161071a9190613b0d565b60405180910390f35b61073d60048036038101906107389190613e7c565b611551565b60405161074b92919061426a565b60405180910390f35b61076e600480360381019061076991906142bb565b611633565b60405161077b9190614369565b60405180910390f35b61079e60048036038101906107999190613e7c565b61164d565b005b6107ba60048036038101906107b59190614382565b6116d1565b005b6060600380546107cb906143ff565b80601f01602080910402602001604051908101604052809291908181526020018280546107f7906143ff565b80156108425780601f1061081957610100808354040283529160200191610842565b820191905f5260205f20905b81548152906001019060200180831161082557829003601f168201915b5050505050905090565b5f806108566118c2565b90506108638185856118c9565b600191505092915050565b5f600254905090565b5f806108816118c2565b905061088e8582856118db565b61089985858561196d565b60019150509392505050565b5f6012905090565b5f81518351146108f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e990614479565b60405180910390fd5b5f5b83518110156109b2575f83828151811061091157610910614497565b5b602002602001015111610959576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109509061450e565b60405180910390fd5b61099f6109646118c2565b85838151811061097757610976614497565b5b602002602001015185848151811061099257610991614497565b5b602002602001015161196d565b80806109aa90614559565b9150506108f4565b506001905092915050565b5f6109c6611a5d565b905090565b5f806109d5610f61565b90508065ffffffffffff168310610a255782816040517fecd3f81e000000000000000000000000000000000000000000000000000000008152600401610a1c9291906145a0565b60405180910390fd5b610a7c610a3184611b13565b600a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20611b6c90919063ffffffff16565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff1691505092915050565b610aa9611c59565b610ab1611ce0565b565b610abb611c59565b610ac58282611d41565b5050565b610ada610ad46118c2565b82611dc0565b50565b5f610ae6611c59565b8151835114610b2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2190614479565b60405180910390fd5b5f5b8351811015610be2575f838281518110610b4957610b48614497565b5b602002602001015111610b91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b889061450e565b60405180910390fd5b610bcf848281518110610ba757610ba6614497565b5b6020026020010151848381518110610bc257610bc1614497565b5b6020026020010151611d41565b8080610bda90614559565b915050610b2c565b506001905092915050565b5f600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205442108015610c7657505f600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054115b9050919050565b60606040518060400160405280600e81526020017f6d6f64653d74696d657374616d70000000000000000000000000000000000000815250905090565b5f60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f610d286118c2565b9050610d348183611e3f565b5050565b5f60055f9054906101000a900460ff16905090565b5f610d5782611f4f565b9050919050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610dab611c59565b610db45f611fa4565b565b610dc882610dc26118c2565b836118db565b610dd28282611dc0565b5050565b5f610de082612069565b9050919050565b610def611c59565b610df761207a565b565b5f6060805f805f6060610e0a6120dc565b610e12612117565b46305f801b5f67ffffffffffffffff811115610e3157610e30613bae565b5b604051908082528060200260200182016040528015610e5f5781602001602082028036833780820191505090505b507f0f00000000000000000000000000000000000000000000000000000000000000959493929190965096509650965096509650965090919293949596565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f80610ed1610f61565b90508065ffffffffffff168310610f215782816040517fecd3f81e000000000000000000000000000000000000000000000000000000008152600401610f189291906145a0565b60405180910390fd5b610f3d610f2d84611b13565b600b611b6c90919063ffffffff16565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff16915050919050565b5f42905090565b606060048054610f77906143ff565b80601f0160208091040260200160405190810160405280929190818152602001828054610fa3906143ff565b8015610fee5780601f10610fc557610100808354040283529160200191610fee565b820191905f5260205f20905b815481529060010190602001808311610fd157829003601f168201915b5050505050905090565b5f61103e600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20612152565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff169050919050565b5f600d5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f806110b16118c2565b90506110be81858561196d565b600191505092915050565b6110d1611c59565b6110da82610bed565b611119576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111090614611565b60405180910390fd5b600d5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054811115611199576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111909061469f565b60405180910390fd5b80600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546111e591906146bd565b925050819055505f600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205403611273575f600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b8173ffffffffffffffffffffffffffffffffffffffff167fb0c715c0c11d60097909f29f581b2dd96b3797d6803e72dce93cb0784921a67f826040516112b99190613b0d565b60405180910390a25050565b8342111561130a57836040517f4683af0e0000000000000000000000000000000000000000000000000000000081526004016113019190613b0d565b60405180910390fd5b5f61136b6113637fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf89898960405160200161134894939291906146f0565b604051602081830303815290604052805190602001206121b4565b8585856121cd565b905061137781876121fb565b6113818188611e3f565b50505050505050565b834211156113cf57836040517f627913020000000000000000000000000000000000000000000000000000000081526004016113c69190613b0d565b60405180910390fd5b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886113fd8c612252565b8960405160200161141396959493929190614733565b6040516020818303038152906040528051906020012090505f611435826121b4565b90505f611444828787876121cd565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146114b857808a6040517f4b800e460000000000000000000000000000000000000000000000000000000081526004016114af929190614792565b60405180910390fd5b6114c38a8a8a6118c9565b50505050505050505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f805f42600c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541161159e575f6115e8565b42600c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546115e791906146bd565b5b9050600d5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054819250925050915091565b61163b613909565b61164583836122a5565b905092915050565b611655611c59565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116c5575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016116bc9190613eb6565b60405180910390fd5b6116ce81611fa4565b50565b6116d9611c59565b5f821161171b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171290614829565b60405180910390fd5b61172483610d5e565b811115611766576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175d906148b7565b60405180910390fd5b5f603c8361177491906148d5565b905080426117829190614916565b600c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555081600d5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff167f86f2e10d5622d896b3f56e66c1a60639ca21a4674480f054bec2cb9ba62f40cb600c5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548460405161188a92919061426a565b60405180910390a250505050565b5f81836118a59190614949565b905092915050565b5f81836118ba9190614996565b905092915050565b5f33905090565b6118d68383836001612304565b505050565b5f6118e684846114cf565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146119675781811015611958578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161194f939291906149e3565b60405180910390fd5b61196684848484035f612304565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119dd575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016119d49190613eb6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a4d575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401611a449190613eb6565b60405180910390fd5b611a588383836124d3565b505050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff16148015611ad857507f000000000000000000000000000000000000000000000000000000000000000046145b15611b05577f00000000000000000000000000000000000000000000000000000000000000009050611b10565b611b0d612587565b90505b90565b5f65ffffffffffff8016821115611b64576030826040517f6dfcc650000000000000000000000000000000000000000000000000000000008152600401611b5b929190614a5a565b60405180910390fd5b819050919050565b5f80835f018054905090505f808290506005831115611bed575f611b8f8461261c565b84611b9a91906146bd565b9050611ba8875f0182612712565b5f015f9054906101000a900465ffffffffffff1665ffffffffffff168665ffffffffffff161015611bdb57809150611beb565b600181611be89190614916565b92505b505b5f611bfc875f01878585612724565b90505f8114611c4b57611c1d875f01600183611c1891906146bd565b612712565b5f0160069054906101000a900479ffffffffffffffffffffffffffffffffffffffffffffffffffff16611c4d565b5f5b94505050505092915050565b611c616118c2565b73ffffffffffffffffffffffffffffffffffffffff16611c7f610e9e565b73ffffffffffffffffffffffffffffffffffffffff1614611cde57611ca26118c2565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401611cd59190613eb6565b60405180910390fd5b565b611ce8612799565b5f60055f6101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611d2a6118c2565b604051611d379190613eb6565b60405180910390a1565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611db1575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401611da89190613eb6565b60405180910390fd5b611dbc5f83836124d3565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e30575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401611e279190613eb6565b60405180910390fd5b611e3b825f836124d3565b5050565b5f611e4983610cba565b90508160095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a4611f4a8183611f45866127d9565b6127ea565b505050565b5f611f9d611f98600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20612a5a565b612a69565b9050919050565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f61207382612ac0565b9050919050565b612082612b06565b600160055f6101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586120c56118c2565b6040516120d29190613eb6565b60405180910390a1565b606061211260067f0000000000000000000000000000000000000000000000000000000000000000612b4790919063ffffffff16565b905090565b606061214d60077f0000000000000000000000000000000000000000000000000000000000000000612b4790919063ffffffff16565b905090565b5f80825f018054905090505f81146121aa5761217c835f0160018361217791906146bd565b612712565b5f0160069054906101000a900479ffffffffffffffffffffffffffffffffffffffffffffffffffff166121ac565b5f5b915050919050565b5f6121c66121c0611a5d565b83612bf4565b9050919050565b5f805f806121dd88888888612c34565b9250925092506121ed8282612d1b565b829350505050949350505050565b5f61220583612252565b905080821461224d5782816040517f752d88c0000000000000000000000000000000000000000000000000000000008152600401612244929190614a81565b60405180910390fd5b505050565b5f60085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f815480929190600101919050559050919050565b6122ad613909565b6122fc82600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20612e7d90919063ffffffff16565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612374575f6040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161236b9190613eb6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036123e4575f6040517f94280d620000000000000000000000000000000000000000000000000000000081526004016123db9190613eb6565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080156124cd578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516124c49190613b0d565b60405180910390a35b50505050565b6124dc83610bed565b1580612538575080600d5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461252b85610d5e565b61253591906146bd565b10155b612577576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256e90614b18565b60405180910390fd5b612582838383612f4c565b505050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000004630604051602001612601959493929190614b36565b60405160208183030381529060405280519060200120905090565b5f80820361262c575f905061270d565b5f600161263884612ffa565b901c6001901b9050600181848161265257612651614b87565b5b048201901c9050600181848161266b5761266a614b87565b5b048201901c9050600181848161268457612683614b87565b5b048201901c9050600181848161269d5761269c614b87565b5b048201901c905060018184816126b6576126b5614b87565b5b048201901c905060018184816126cf576126ce614b87565b5b048201901c905060018184816126e8576126e7614b87565b5b048201901c90506127098182858161270357612702614b87565b5b046130d1565b9150505b919050565b5f825f528160205f2001905092915050565b5f5b8183101561278e575f61273984846130e9565b90508465ffffffffffff1661274e8783612712565b5f015f9054906101000a900465ffffffffffff1665ffffffffffff16111561277857809250612788565b6001816127859190614916565b93505b50612726565b819050949350505050565b6127a1610d38565b6127d7576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b5f6127e382610d5e565b9050919050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561282557505f81115b15612a55575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461293f575f806128b0600a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206118ad6128ab8661310e565b61317b565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff16915079ffffffffffffffffffffffffffffffffffffffffffffffffffff1691508473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405161293492919061426a565b60405180910390a250505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612a54575f806129c5600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206118986129c08661310e565b61317b565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff16915079ffffffffffffffffffffffffffffffffffffffffffffffffffff1691508373ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051612a4992919061426a565b60405180910390a250505b5b505050565b5f815f01805490509050919050565b5f63ffffffff8016821115612ab8576020826040517f6dfcc650000000000000000000000000000000000000000000000000000000008152600401612aaf929190614bed565b60405180910390fd5b819050919050565b5f60085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b612b0e610d38565b15612b45576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b606060ff5f1b8314612b6357612b5c836131ba565b9050612bee565b818054612b6f906143ff565b80601f0160208091040260200160405190810160405280929190818152602001828054612b9b906143ff565b8015612be65780601f10612bbd57610100808354040283529160200191612be6565b820191905f5260205f20905b815481529060010190602001808311612bc957829003601f168201915b505050505090505b92915050565b5f6040517f190100000000000000000000000000000000000000000000000000000000000081528360028201528260228201526042812091505092915050565b5f805f7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0845f1c1115612c70575f600385925092509250612d11565b5f6001888888886040515f8152602001604052604051612c939493929190614c14565b6020604051602081039080840390855afa158015612cb3573d5f803e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612d04575f60015f801b93509350935050612d11565b805f805f1b935093509350505b9450945094915050565b5f6003811115612d2e57612d2d614c57565b5b826003811115612d4157612d40614c57565b5b0315612e795760016003811115612d5b57612d5a614c57565b5b826003811115612d6e57612d6d614c57565b5b03612da5576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60026003811115612db957612db8614c57565b5b826003811115612dcc57612dcb614c57565b5b03612e1057805f1c6040517ffce698f7000000000000000000000000000000000000000000000000000000008152600401612e079190613b0d565b60405180910390fd5b600380811115612e2357612e22614c57565b5b826003811115612e3657612e35614c57565b5b03612e7857806040517fd78bce0c000000000000000000000000000000000000000000000000000000008152600401612e6f9190613e38565b60405180910390fd5b5b5050565b612e85613909565b825f018263ffffffff1681548110612ea057612e9f614497565b5b905f5260205f20016040518060400160405290815f82015f9054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020015f820160069054906101000a900479ffffffffffffffffffffffffffffffffffffffffffffffffffff1679ffffffffffffffffffffffffffffffffffffffffffffffffffff1679ffffffffffffffffffffffffffffffffffffffffffffffffffff1681525050905092915050565b612f5783838361322c565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612fea575f612f9361086e565b90505f612f9e613244565b905080821115612fe75781816040517f1cb15d26000000000000000000000000000000000000000000000000000000008152600401612fde92919061426a565b60405180910390fd5b50505b612ff5838383613267565b505050565b5f805f90505f608084901c111561301957608083901c92506080810190505b5f604084901c111561303357604083901c92506040810190505b5f602084901c111561304d57602083901c92506020810190505b5f601084901c111561306757601083901c92506010810190505b5f600884901c111561308157600883901c92506008810190505b5f600484901c111561309b57600483901c92506004810190505b5f600284901c11156130b557600283901c92506002810190505b5f600184901c11156130c8576001810190505b80915050919050565b5f8183106130df57816130e1565b825b905092915050565b5f60028284186130f99190614c84565b8284166131069190614916565b905092915050565b5f79ffffffffffffffffffffffffffffffffffffffffffffffffffff80168211156131735760d0826040517f6dfcc65000000000000000000000000000000000000000000000000000000000815260040161316a929190614ced565b60405180910390fd5b819050919050565b5f806131ae613188610f61565b61319e61319488612152565b868863ffffffff16565b8761331f9092919063ffffffff16565b91509150935093915050565b60605f6131c68361333a565b90505f602067ffffffffffffffff8111156131e4576131e3613bae565b5b6040519080825280601f01601f1916602001820160405280156132165781602001600182028036833780820191505090505b5090508181528360208201528092505050919050565b613234612b06565b61323f838383613388565b505050565b5f79ffffffffffffffffffffffffffffffffffffffffffffffffffff8016905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036132b3576132b0600b6118986132ab8461310e565b61317b565b50505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036132ff576132fc600b6118ad6132f78461310e565b61317b565b50505b61331a61330b84610cba565b61331484610cba565b836127ea565b505050565b5f8061332e855f0185856135a1565b91509150935093915050565b5f8060ff835f1c169050601f81111561337f576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80915050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036133d8578060025f8282546133cc9190614916565b925050819055506134a6565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015613461578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401613458939291906149e3565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036134ed578060025f8282540392505081905550613537565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516135949190613b0d565b60405180910390a3505050565b5f805f858054905090505f811115613821575f6135ca876001846135c591906146bd565b612712565b6040518060400160405290815f82015f9054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020015f820160069054906101000a900479ffffffffffffffffffffffffffffffffffffffffffffffffffff1679ffffffffffffffffffffffffffffffffffffffffffffffffffff1679ffffffffffffffffffffffffffffffffffffffffffffffffffff168152505090508565ffffffffffff16815f015165ffffffffffff1611156136b5576040517f2520601d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8565ffffffffffff16815f015165ffffffffffff160361373757846136e6886001856136e191906146bd565b612712565b5f0160066101000a81548179ffffffffffffffffffffffffffffffffffffffffffffffffffff021916908379ffffffffffffffffffffffffffffffffffffffffffffffffffff160217905550613810565b8660405180604001604052808865ffffffffffff1681526020018779ffffffffffffffffffffffffffffffffffffffffffffffffffff16815250908060018154018082558091505060019003905f5260205f20015f909190919091505f820151815f015f6101000a81548165ffffffffffff021916908365ffffffffffff1602179055506020820151815f0160066101000a81548179ffffffffffffffffffffffffffffffffffffffffffffffffffff021916908379ffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555050505b806020015185935093505050613901565b8560405180604001604052808765ffffffffffff1681526020018679ffffffffffffffffffffffffffffffffffffffffffffffffffff16815250908060018154018082558091505060019003905f5260205f20015f909190919091505f820151815f015f6101000a81548165ffffffffffff021916908365ffffffffffff1602179055506020820151815f0160066101000a81548179ffffffffffffffffffffffffffffffffffffffffffffffffffff021916908379ffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555050505f8492509250505b935093915050565b60405180604001604052805f65ffffffffffff1681526020015f79ffffffffffffffffffffffffffffffffffffffffffffffffffff1681525090565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561397c578082015181840152602081019050613961565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6139a182613945565b6139ab818561394f565b93506139bb81856020860161395f565b6139c481613987565b840191505092915050565b5f6020820190508181035f8301526139e78184613997565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613a2982613a00565b9050919050565b613a3981613a1f565b8114613a43575f80fd5b50565b5f81359050613a5481613a30565b92915050565b5f819050919050565b613a6c81613a5a565b8114613a76575f80fd5b50565b5f81359050613a8781613a63565b92915050565b5f8060408385031215613aa357613aa26139f8565b5b5f613ab085828601613a46565b9250506020613ac185828601613a79565b9150509250929050565b5f8115159050919050565b613adf81613acb565b82525050565b5f602082019050613af85f830184613ad6565b92915050565b613b0781613a5a565b82525050565b5f602082019050613b205f830184613afe565b92915050565b5f805f60608486031215613b3d57613b3c6139f8565b5b5f613b4a86828701613a46565b9350506020613b5b86828701613a46565b9250506040613b6c86828701613a79565b9150509250925092565b5f60ff82169050919050565b613b8b81613b76565b82525050565b5f602082019050613ba45f830184613b82565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b613be482613987565b810181811067ffffffffffffffff82111715613c0357613c02613bae565b5b80604052505050565b5f613c156139ef565b9050613c218282613bdb565b919050565b5f67ffffffffffffffff821115613c4057613c3f613bae565b5b602082029050602081019050919050565b5f80fd5b5f613c67613c6284613c26565b613c0c565b90508083825260208201905060208402830185811115613c8a57613c89613c51565b5b835b81811015613cb35780613c9f8882613a46565b845260208401935050602081019050613c8c565b5050509392505050565b5f82601f830112613cd157613cd0613baa565b5b8135613ce1848260208601613c55565b91505092915050565b5f67ffffffffffffffff821115613d0457613d03613bae565b5b602082029050602081019050919050565b5f613d27613d2284613cea565b613c0c565b90508083825260208201905060208402830185811115613d4a57613d49613c51565b5b835b81811015613d735780613d5f8882613a79565b845260208401935050602081019050613d4c565b5050509392505050565b5f82601f830112613d9157613d90613baa565b5b8135613da1848260208601613d15565b91505092915050565b5f8060408385031215613dc057613dbf6139f8565b5b5f83013567ffffffffffffffff811115613ddd57613ddc6139fc565b5b613de985828601613cbd565b925050602083013567ffffffffffffffff811115613e0a57613e096139fc565b5b613e1685828601613d7d565b9150509250929050565b5f819050919050565b613e3281613e20565b82525050565b5f602082019050613e4b5f830184613e29565b92915050565b5f60208284031215613e6657613e656139f8565b5b5f613e7384828501613a79565b91505092915050565b5f60208284031215613e9157613e906139f8565b5b5f613e9e84828501613a46565b91505092915050565b613eb081613a1f565b82525050565b5f602082019050613ec95f830184613ea7565b92915050565b5f63ffffffff82169050919050565b613ee781613ecf565b82525050565b5f602082019050613f005f830184613ede565b92915050565b5f7fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b613f3a81613f06565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613f7281613a5a565b82525050565b5f613f838383613f69565b60208301905092915050565b5f602082019050919050565b5f613fa582613f40565b613faf8185613f4a565b9350613fba83613f5a565b805f5b83811015613fea578151613fd18882613f78565b9750613fdc83613f8f565b925050600181019050613fbd565b5085935050505092915050565b5f60e08201905061400a5f83018a613f31565b818103602083015261401c8189613997565b905081810360408301526140308188613997565b905061403f6060830187613afe565b61404c6080830186613ea7565b61405960a0830185613e29565b81810360c083015261406b8184613f9b565b905098975050505050505050565b5f65ffffffffffff82169050919050565b61409381614079565b82525050565b5f6020820190506140ac5f83018461408a565b92915050565b6140bb81613b76565b81146140c5575f80fd5b50565b5f813590506140d6816140b2565b92915050565b6140e581613e20565b81146140ef575f80fd5b50565b5f81359050614100816140dc565b92915050565b5f805f805f8060c087890312156141205761411f6139f8565b5b5f61412d89828a01613a46565b965050602061413e89828a01613a79565b955050604061414f89828a01613a79565b945050606061416089828a016140c8565b935050608061417189828a016140f2565b92505060a061418289828a016140f2565b9150509295509295509295565b5f805f805f805f60e0888a0312156141aa576141a96139f8565b5b5f6141b78a828b01613a46565b97505060206141c88a828b01613a46565b96505060406141d98a828b01613a79565b95505060606141ea8a828b01613a79565b94505060806141fb8a828b016140c8565b93505060a061420c8a828b016140f2565b92505060c061421d8a828b016140f2565b91505092959891949750929550565b5f8060408385031215614242576142416139f8565b5b5f61424f85828601613a46565b925050602061426085828601613a46565b9150509250929050565b5f60408201905061427d5f830185613afe565b61428a6020830184613afe565b9392505050565b61429a81613ecf565b81146142a4575f80fd5b50565b5f813590506142b581614291565b92915050565b5f80604083850312156142d1576142d06139f8565b5b5f6142de85828601613a46565b92505060206142ef858286016142a7565b9150509250929050565b61430281614079565b82525050565b5f79ffffffffffffffffffffffffffffffffffffffffffffffffffff82169050919050565b61433681614308565b82525050565b604082015f8201516143505f8501826142f9565b506020820151614363602085018261432d565b50505050565b5f60408201905061437c5f83018461433c565b92915050565b5f805f60608486031215614399576143986139f8565b5b5f6143a686828701613a46565b93505060206143b786828701613a79565b92505060406143c886828701613a79565b9150509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061441657607f821691505b602082108103614429576144286143d2565b5b50919050565b7f617272617973206d75737420686176652073616d65206c656e677468000000005f82015250565b5f614463601c8361394f565b915061446e8261442f565b602082019050919050565b5f6020820190508181035f83015261449081614457565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f616d6f756e74206d7573742062652067726561746572207468616e20300000005f82015250565b5f6144f8601d8361394f565b9150614503826144c4565b602082019050919050565b5f6020820190508181035f830152614525816144ec565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61456382613a5a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036145955761459461452c565b5b600182019050919050565b5f6040820190506145b35f830185613afe565b6145c0602083018461408a565b9392505050565b7f4163636f756e74206973206e6f74206c6f636b656400000000000000000000005f82015250565b5f6145fb60158361394f565b9150614606826145c7565b602082019050919050565b5f6020820190508181035f830152614628816145ef565b9050919050565b7f52656c6561736520616d6f756e742065786365656473206c6f636b65642062615f8201527f6c616e6365000000000000000000000000000000000000000000000000000000602082015250565b5f61468960258361394f565b91506146948261462f565b604082019050919050565b5f6020820190508181035f8301526146b68161467d565b9050919050565b5f6146c782613a5a565b91506146d283613a5a565b92508282039050818111156146ea576146e961452c565b5b92915050565b5f6080820190506147035f830187613e29565b6147106020830186613ea7565b61471d6040830185613afe565b61472a6060830184613afe565b95945050505050565b5f60c0820190506147465f830189613e29565b6147536020830188613ea7565b6147606040830187613ea7565b61476d6060830186613afe565b61477a6080830185613afe565b61478760a0830184613afe565b979650505050505050565b5f6040820190506147a55f830185613ea7565b6147b26020830184613ea7565b9392505050565b7f4c6f636b75702074696d652073686f756c6420626520677265617465722074685f8201527f616e207a65726f00000000000000000000000000000000000000000000000000602082015250565b5f61481360278361394f565b915061481e826147b9565b604082019050919050565b5f6020820190508181035f83015261484081614807565b9050919050565b7f4c6f636b757020616d6f756e742065786365656473206163636f756e742062615f8201527f6c616e6365000000000000000000000000000000000000000000000000000000602082015250565b5f6148a160258361394f565b91506148ac82614847565b604082019050919050565b5f6020820190508181035f8301526148ce81614895565b9050919050565b5f6148df82613a5a565b91506148ea83613a5a565b92508282026148f881613a5a565b9150828204841483151761490f5761490e61452c565b5b5092915050565b5f61492082613a5a565b915061492b83613a5a565b92508282019050808211156149435761494261452c565b5b92915050565b5f61495382614308565b915061495e83614308565b9250828201905079ffffffffffffffffffffffffffffffffffffffffffffffffffff8111156149905761498f61452c565b5b92915050565b5f6149a082614308565b91506149ab83614308565b9250828203905079ffffffffffffffffffffffffffffffffffffffffffffffffffff8111156149dd576149dc61452c565b5b92915050565b5f6060820190506149f65f830186613ea7565b614a036020830185613afe565b614a106040830184613afe565b949350505050565b5f819050919050565b5f819050919050565b5f614a44614a3f614a3a84614a18565b614a21565b613b76565b9050919050565b614a5481614a2a565b82525050565b5f604082019050614a6d5f830185614a4b565b614a7a6020830184613afe565b9392505050565b5f604082019050614a945f830185613ea7565b614aa16020830184613afe565b9392505050565b7f546f6b656e207472616e73666572206973206c6f636b6564206f7220696e73755f8201527f6666696369656e7420756e6c6f636b65642062616c616e636500000000000000602082015250565b5f614b0260398361394f565b9150614b0d82614aa8565b604082019050919050565b5f6020820190508181035f830152614b2f81614af6565b9050919050565b5f60a082019050614b495f830188613e29565b614b566020830187613e29565b614b636040830186613e29565b614b706060830185613afe565b614b7d6080830184613ea7565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f819050919050565b5f614bd7614bd2614bcd84614bb4565b614a21565b613b76565b9050919050565b614be781614bbd565b82525050565b5f604082019050614c005f830185614bde565b614c0d6020830184613afe565b9392505050565b5f608082019050614c275f830187613e29565b614c346020830186613b82565b614c416040830185613e29565b614c4e6060830184613e29565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f614c8e82613a5a565b9150614c9983613a5a565b925082614ca957614ca8614b87565b5b828204905092915050565b5f819050919050565b5f614cd7614cd2614ccd84614cb4565b614a21565b613b76565b9050919050565b614ce781614cbd565b82525050565b5f604082019050614d005f830185614cde565b614d0d6020830184613afe565b939250505056fea264697066735822122062dd0b6e1f0122a6bfe0bb5ca3889d5848b8cf0a912cefa7984b567bd41b7d9764736f6c63430008140033000000000000000000000000dbe5022424bb742e1dfd94646797b66e58298624