[ { "inputs": [ { "internalType": "uint256", "name": "initialSupply", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "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": [ { "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": "previousBalance", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newBalance", "type": "uint256" } ], "name": "DelegateVotesChanged", "type": "event" }, { "anonymous": false, "inputs": [], "name": "EIP712DomainChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "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": "view", "type": "function" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MINTER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PAUSER_ROLE", "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": "amount", "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": "amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "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": "uint32", "name": "fromBlock", "type": "uint32" }, { "internalType": "uint224", "name": "votes", "type": "uint224" } ], "internalType": "struct ERC20Votes.Checkpoint", "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": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "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": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "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": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [], "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": "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": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "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": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "unpause", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
6101606040523480156200001257600080fd5b5060405162006e3838038062006e3883398181016040528101906200003891906200104e565b6040518060400160405280600481526020017f4e756c6c00000000000000000000000000000000000000000000000000000000815250806040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4e756c6c000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4e554c4c000000000000000000000000000000000000000000000000000000008152508160039081620001229190620012f0565b508060049081620001349190620012f0565b5050506000600560006101000a81548160ff02191690831515021790555062000168600783620002aa60201b90919060201c565b610120818152505062000186600882620002aa60201b90919060201c565b6101408181525050818051906020012060e08181525050808051906020012061010081815250504660a08181525050620001c56200030260201b60201c565b608081815250503073ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff16815250505050506000620002156200035f60201b60201c565b90506200022c6000801b826200036760201b60201c565b6200025e7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a826200036760201b60201c565b620002907f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6826200036760201b60201c565b620002a281836200045960201b60201c565b505062001a53565b6000602083511015620002d057620002c8836200046f60201b60201c565b9050620002fc565b82620002e283620004dc60201b60201c565b6000019081620002f39190620012f0565b5060ff60001b90505b92915050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60e0516101005146306040516020016200034495949392919062001448565b60405160208183030381529060405280519060200120905090565b600033905090565b620003798282620004e660201b60201c565b620004555760016006600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003fa6200035f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6200046b82826200055160201b60201c565b5050565b600080829050601f81511115620004bf57826040517f305a27a9000000000000000000000000000000000000000000000000000000008152600401620004b6919062001534565b60405180910390fd5b805181620004cd906200158a565b60001c1760001b915050919050565b6000819050919050565b60006006600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6200056382826200060a60201b60201c565b620005736200077760201b60201c565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16620005a16200079b60201b60201c565b1115620005e5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005dc9062001670565b60405180910390fd5b62000604600d620007a560201b620016231783620007bd60201b60201c565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200067c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200067390620016e2565b60405180910390fd5b620006906000838362000ad360201b60201c565b8060026000828254620006a4919062001733565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200075791906200176e565b60405180910390a3620007736000838362000b3260201b60201c565b5050565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff905090565b6000600254905090565b60008183620007b5919062001733565b905092915050565b60008060008580549050905060008082146200088d57620007e8876001840362000b4a60201b60201c565b6040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a90047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1681525050620008c9565b6040518060400160405280600063ffffffff16815260200160007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff168152505b905080602001517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169350620008fc84868860201c565b92506000821180156200092f57506200091a62000b5f60201b60201c565b65ffffffffffff16816000015163ffffffff16145b15620009b257620009468362000b7760201b60201c565b6200095b886001850362000b4a60201b60201c565b60000160046101000a8154817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555062000ac9565b866040518060400160405280620009e6620009d262000b5f60201b60201c565b65ffffffffffff1662000be560201b60201c565b63ffffffff16815260200162000a028662000b7760201b60201c565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff168152509080600181540180825580915050600190039060005260206000200160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a8154817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555050505b5050935093915050565b62000b147f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a662000b086200035f60201b60201c565b620004e660201b60201c565b62000b2d5762000b2c83838362000c3b60201b60201c565b5b505050565b62000b4583838362000ca660201b60201c565b505050565b60008260005281602060002001905092915050565b600062000b724362000cf160201b60201c565b905090565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff801682111562000bdd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000bd49062001801565b60405180910390fd5b819050919050565b600063ffffffff801682111562000c33576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c2a9062001899565b60405180910390fd5b819050919050565b62000c4e83838362000d4960201b60201c565b62000c5e62000d4e60201b60201c565b1562000ca1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c989062001931565b60405180910390fd5b505050565b62000cb983838362000d6560201b60201c565b62000cec62000cce8462000d6a60201b60201c565b62000cdf8462000d6a60201b60201c565b8362000dd360201b60201c565b505050565b600065ffffffffffff801682111562000d41576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000d3890620019c9565b60405180910390fd5b819050919050565b505050565b6000600560009054906101000a900460ff16905090565b505050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801562000e105750600081115b1562000ff157600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161462000f035760008062000eaa600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002062000ff660201b620016391785620007bd60201b60201c565b915091508473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405162000ef8929190620019eb565b60405180910390a250505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161462000ff05760008062000f97600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020620007a560201b620016231785620007bd60201b60201c565b915091508373ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405162000fe5929190620019eb565b60405180910390a250505b5b505050565b6000818362001006919062001a18565b905092915050565b600080fd5b6000819050919050565b620010288162001013565b81146200103457600080fd5b50565b60008151905062001048816200101d565b92915050565b6000602082840312156200106757620010666200100e565b5b6000620010778482850162001037565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200110257607f821691505b602082108103620011185762001117620010ba565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620011827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262001143565b6200118e868362001143565b95508019841693508086168417925050509392505050565b6000819050919050565b6000620011d1620011cb620011c58462001013565b620011a6565b62001013565b9050919050565b6000819050919050565b620011ed83620011b0565b62001205620011fc82620011d8565b84845462001150565b825550505050565b600090565b6200121c6200120d565b62001229818484620011e2565b505050565b5b8181101562001251576200124560008262001212565b6001810190506200122f565b5050565b601f821115620012a0576200126a816200111e565b620012758462001133565b8101602085101562001285578190505b6200129d620012948562001133565b8301826200122e565b50505b505050565b600082821c905092915050565b6000620012c560001984600802620012a5565b1980831691505092915050565b6000620012e08383620012b2565b9150826002028217905092915050565b620012fb8262001080565b67ffffffffffffffff8111156200131757620013166200108b565b5b620013238254620010e9565b6200133082828562001255565b600060209050601f83116001811462001368576000841562001353578287015190505b6200135f8582620012d2565b865550620013cf565b601f19841662001378866200111e565b60005b82811015620013a2578489015182556001820191506020850194506020810190506200137b565b86831015620013c25784890151620013be601f891682620012b2565b8355505b6001600288020188555050505b505050505050565b6000819050919050565b620013ec81620013d7565b82525050565b620013fd8162001013565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620014308262001403565b9050919050565b620014428162001423565b82525050565b600060a0820190506200145f6000830188620013e1565b6200146e6020830187620013e1565b6200147d6040830186620013e1565b6200148c6060830185620013f2565b6200149b608083018462001437565b9695505050505050565b600082825260208201905092915050565b60005b83811015620014d6578082015181840152602081019050620014b9565b60008484015250505050565b6000601f19601f8301169050919050565b6000620015008262001080565b6200150c8185620014a5565b93506200151e818560208601620014b6565b6200152981620014e2565b840191505092915050565b60006020820190508181036000830152620015508184620014f3565b905092915050565b600081519050919050565b6000819050602082019050919050565b6000620015818251620013d7565b80915050919050565b6000620015978262001558565b82620015a38462001563565b9050620015b08162001573565b92506020821015620015f357620015ee7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8360200360080262001143565b831692505b5050919050565b7f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60008201527f766572666c6f77696e6720766f74657300000000000000000000000000000000602082015250565b600062001658603083620014a5565b91506200166582620015fa565b604082019050919050565b600060208201905081810360008301526200168b8162001649565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620016ca601f83620014a5565b9150620016d78262001692565b602082019050919050565b60006020820190508181036000830152620016fd81620016bb565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620017408262001013565b91506200174d8362001013565b925082820190508082111562001768576200176762001704565b5b92915050565b6000602082019050620017856000830184620013f2565b92915050565b7f53616665436173743a2076616c756520646f65736e27742066697420696e203260008201527f3234206269747300000000000000000000000000000000000000000000000000602082015250565b6000620017e9602783620014a5565b9150620017f6826200178b565b604082019050919050565b600060208201905081810360008301526200181c81620017da565b9050919050565b7f53616665436173743a2076616c756520646f65736e27742066697420696e203360008201527f3220626974730000000000000000000000000000000000000000000000000000602082015250565b600062001881602683620014a5565b91506200188e8262001823565b604082019050919050565b60006020820190508181036000830152620018b48162001872565b9050919050565b7f45524332305061757361626c653a20746f6b656e207472616e7366657220776860008201527f696c652070617573656400000000000000000000000000000000000000000000602082015250565b600062001919602a83620014a5565b91506200192682620018bb565b604082019050919050565b600060208201905081810360008301526200194c816200190a565b9050919050565b7f53616665436173743a2076616c756520646f65736e27742066697420696e203460008201527f3820626974730000000000000000000000000000000000000000000000000000602082015250565b6000620019b1602683620014a5565b9150620019be8262001953565b604082019050919050565b60006020820190508181036000830152620019e481620019a2565b9050919050565b600060408201905062001a026000830185620013f2565b62001a116020830184620013f2565b9392505050565b600062001a258262001013565b915062001a328362001013565b925082820390508181111562001a4d5762001a4c62001704565b5b92915050565b60805160a05160c05160e05161010051610120516101405161538a62001aae6000396000610e0701526000610dd3015260006124ca015260006124a901526000611c8501526000611cdb01526000611d04015261538a6000f3fe608060405234801561001057600080fd5b50600436106102485760003560e01c806370a082311161013b578063a217fddf116100b8578063d53913931161007c578063d539139314610743578063d547741f14610761578063dd62ed3e1461077d578063e63ab1e9146107ad578063f1127ed8146107cb57610248565b8063a217fddf1461068d578063a457c2d7146106ab578063a9059cbb146106db578063c3cda5201461070b578063d505accf1461072757610248565b80638e539e8c116100ff5780638e539e8c146105c157806391d14854146105f157806391ddadf41461062157806395d89b411461063f5780639ab24eb01461065d57610248565b806370a082311461051757806379cc6790146105475780637ecebe00146105635780638456cb591461059357806384b0196e1461059d57610248565b806339509351116101c95780634bf5d7e91161018d5780634bf5d7e91461045f578063587cde1e1461047d5780635c19a95c146104ad5780635c975abb146104c95780636fcfff45146104e757610248565b806339509351146103bd5780633a46b1a8146103ed5780633f4ba83a1461041d57806340c10f191461042757806342966c681461044357610248565b8063248a9ca311610210578063248a9ca3146103195780632f2ff15d14610349578063313ce567146103655780633644e5151461038357806336568abe146103a157610248565b806301ffc9a71461024d57806306fdde031461027d578063095ea7b31461029b57806318160ddd146102cb57806323b872dd146102e9575b600080fd5b6102676004803603810190610262919061380e565b6107fb565b6040516102749190613856565b60405180910390f35b610285610875565b6040516102929190613901565b60405180910390f35b6102b560048036038101906102b091906139b7565b610907565b6040516102c29190613856565b60405180910390f35b6102d361092a565b6040516102e09190613a06565b60405180910390f35b61030360048036038101906102fe9190613a21565b610934565b6040516103109190613856565b60405180910390f35b610333600480360381019061032e9190613aaa565b610963565b6040516103409190613ae6565b60405180910390f35b610363600480360381019061035e9190613b01565b610983565b005b61036d6109a4565b60405161037a9190613b5d565b60405180910390f35b61038b6109ad565b6040516103989190613ae6565b60405180910390f35b6103bb60048036038101906103b69190613b01565b6109bc565b005b6103d760048036038101906103d291906139b7565b610a3f565b6040516103e49190613856565b60405180910390f35b610407600480360381019061040291906139b7565b610a76565b6040516104149190613a06565b60405180910390f35b610425610b19565b005b610441600480360381019061043c91906139b7565b610b4e565b005b61045d60048036038101906104589190613b78565b610b87565b005b610467610b9b565b6040516104749190613901565b60405180910390f35b61049760048036038101906104929190613ba5565b610c29565b6040516104a49190613be1565b60405180910390f35b6104c760048036038101906104c29190613ba5565b610c92565b005b6104d1610ca6565b6040516104de9190613856565b60405180910390f35b61050160048036038101906104fc9190613ba5565b610cbd565b60405161050e9190613c1b565b60405180910390f35b610531600480360381019061052c9190613ba5565b610d11565b60405161053e9190613a06565b60405180910390f35b610561600480360381019061055c91906139b7565b610d59565b005b61057d60048036038101906105789190613ba5565b610d79565b60405161058a9190613a06565b60405180910390f35b61059b610d8b565b005b6105a5610dc0565b6040516105b89796959493929190613d2f565b60405180910390f35b6105db60048036038101906105d69190613b78565b610ec2565b6040516105e89190613a06565b60405180910390f35b61060b60048036038101906106069190613b01565b610f27565b6040516106189190613856565b60405180910390f35b610629610f92565b6040516106369190613dd4565b60405180910390f35b610647610fa2565b6040516106549190613901565b60405180910390f35b61067760048036038101906106729190613ba5565b611034565b6040516106849190613a06565b60405180910390f35b61069561113c565b6040516106a29190613ae6565b60405180910390f35b6106c560048036038101906106c091906139b7565b611143565b6040516106d29190613856565b60405180910390f35b6106f560048036038101906106f091906139b7565b6111ba565b6040516107029190613856565b60405180910390f35b61072560048036038101906107209190613e1b565b6111dd565b005b610741600480360381019061073c9190613ea8565b6112e1565b005b61074b611423565b6040516107589190613ae6565b60405180910390f35b61077b60048036038101906107769190613b01565b611447565b005b61079760048036038101906107929190613f4a565b611468565b6040516107a49190613a06565b60405180910390f35b6107b56114ef565b6040516107c29190613ae6565b60405180910390f35b6107e560048036038101906107e09190613fb6565b611513565b6040516107f2919061406b565b60405180910390f35b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061086e575061086d8261164f565b5b9050919050565b606060038054610884906140b5565b80601f01602080910402602001604051908101604052809291908181526020018280546108b0906140b5565b80156108fd5780601f106108d2576101008083540402835291602001916108fd565b820191906000526020600020905b8154815290600101906020018083116108e057829003601f168201915b5050505050905090565b6000806109126116b9565b905061091f8185856116c1565b600191505092915050565b6000600254905090565b60008061093f6116b9565b905061094c85828561188a565b610957858585611916565b60019150509392505050565b600060066000838152602001908152602001600020600101549050919050565b61098c82610963565b61099581611b8c565b61099f8383611ba0565b505050565b60006012905090565b60006109b7611c81565b905090565b6109c46116b9565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610a31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2890614158565b60405180910390fd5b610a3b8282611d38565b5050565b600080610a4a6116b9565b9050610a6b818585610a5c8589611468565b610a6691906141a7565b6116c1565b600191505092915050565b6000610a80610f92565b65ffffffffffff168210610ac9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac090614227565b60405180910390fd5b610b11600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083611e1a565b905092915050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610b4381611b8c565b610b4b611f62565b50565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610b7881611b8c565b610b828383611fc5565b505050565b610b98610b926116b9565b82611fd3565b50565b606043610ba6610f92565b65ffffffffffff1614610bee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be590614293565b60405180910390fd5b6040518060400160405280601d81526020017f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000815250905090565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b610ca3610c9d6116b9565b82611fe1565b50565b6000600560009054906101000a900460ff16905090565b6000610d0a600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490506120fb565b9050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d6b82610d656116b9565b8361188a565b610d758282611fd3565b5050565b6000610d848261214e565b9050919050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610db581611b8c565b610dbd61219e565b50565b600060608060008060006060610e0060077f000000000000000000000000000000000000000000000000000000000000000061220190919063ffffffff16565b610e3460087f000000000000000000000000000000000000000000000000000000000000000061220190919063ffffffff16565b46306000801b600067ffffffffffffffff811115610e5557610e546142b3565b5b604051908082528060200260200182016040528015610e835781602001602082028036833780820191505090505b507f0f00000000000000000000000000000000000000000000000000000000000000959493929190965096509650965096509650965090919293949596565b6000610ecc610f92565b65ffffffffffff168210610f15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0c90614227565b60405180910390fd5b610f20600d83611e1a565b9050919050565b60006006600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000610f9d436122b1565b905090565b606060048054610fb1906140b5565b80601f0160208091040260200160405190810160405280929190818152602001828054610fdd906140b5565b801561102a5780601f10610fff5761010080835404028352916020019161102a565b820191906000526020600020905b81548152906001019060200180831161100d57829003601f168201915b5050505050905090565b600080600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905090506000811461111357600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060018203815481106110d8576110d76142e2565b5b9060005260206000200160000160049054906101000a90047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16611116565b60005b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16915050919050565b6000801b81565b60008061114e6116b9565b9050600061115c8286611468565b9050838110156111a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119890614383565b60405180910390fd5b6111ae82868684036116c1565b60019250505092915050565b6000806111c56116b9565b90506111d2818585611916565b600191505092915050565b83421115611220576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611217906143ef565b60405180910390fd5b600061128261127a7fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf89898960405160200161125f949392919061440f565b60405160208183030381529060405280519060200120612306565b858585612320565b905061128d8161234b565b86146112ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c5906144a0565b60405180910390fd5b6112d88188611fe1565b50505050505050565b83421115611324576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131b9061450c565b60405180910390fd5b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886113538c61234b565b896040516020016113699695949392919061452c565b604051602081830303815290604052805190602001209050600061138c82612306565b9050600061139c82878787612320565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461140c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611403906145d9565b60405180910390fd5b6114178a8a8a6116c1565b50505050505050505050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b61145082610963565b61145981611b8c565b6114638383611d38565b505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b61151b613773565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208263ffffffff1681548110611572576115716142e2565b5b906000526020600020016040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a90047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1681525050905092915050565b6000818361163191906141a7565b905092915050565b6000818361164791906145f9565b905092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611730576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117279061469f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361179f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179690614731565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161187d9190613a06565b60405180910390a3505050565b60006118968484611468565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146119105781811015611902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f99061479d565b60405180910390fd5b61190f84848484036116c1565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611985576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197c9061482f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119eb906148c1565b60405180910390fd5b6119ff8383836123a9565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611a85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7c90614953565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b739190613a06565b60405180910390a3611b868484846123ef565b50505050565b611b9d81611b986116b9565b6123ff565b50565b611baa8282610f27565b611c7d5760016006600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611c226116b9565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff16148015611cfd57507f000000000000000000000000000000000000000000000000000000000000000046145b15611d2a577f00000000000000000000000000000000000000000000000000000000000000009050611d35565b611d32612484565b90505b90565b611d428282610f27565b15611e165760006006600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611dbb6116b9565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b600080838054905090506000808290506005831115611e90576000611e3e8461251a565b84611e4991906145f9565b905085611e568883612613565b60000160009054906101000a900463ffffffff1663ffffffff161115611e7e57809150611e8e565b600181611e8b91906141a7565b92505b505b5b80821015611ef0576000611ea58383612628565b905085611eb28883612613565b60000160009054906101000a900463ffffffff1663ffffffff161115611eda57809150611eea565b600181611ee791906141a7565b92505b50611e91565b60008114611f3657611f058660018303612613565b60000160049054906101000a90047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16611f39565b60005b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16935050505092915050565b611f6a61264e565b6000600560006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611fae6116b9565b604051611fbb9190613be1565b60405180910390a1565b611fcf8282612697565b5050565b611fdd8282612724565b5050565b6000611fec83610c29565b90506000611ff984610d11565b905082600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a46120f5828483612742565b50505050565b600063ffffffff8016821115612146576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213d906149e5565b60405180910390fd5b819050919050565b6000612197600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061293b565b9050919050565b6121a6612949565b6001600560006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586121ea6116b9565b6040516121f79190613be1565b60405180910390a1565b606060ff60001b831461221e5761221783612993565b90506122ab565b81805461222a906140b5565b80601f0160208091040260200160405190810160405280929190818152602001828054612256906140b5565b80156122a35780601f10612278576101008083540402835291602001916122a3565b820191906000526020600020905b81548152906001019060200180831161228657829003601f168201915b505050505090505b92915050565b600065ffffffffffff80168211156122fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f590614a77565b60405180910390fd5b819050919050565b6000612319612313611c81565b83612a07565b9050919050565b600080600061233187878787612a48565b9150915061233e81612b2a565b8192505050949350505050565b600080600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506123988161293b565b91506123a381612c90565b50919050565b6123da7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66123d56116b9565b610f27565b6123ea576123e9838383612ca6565b5b505050565b6123fa838383612cfe565b505050565b6124098282610f27565b6124805761241681612d29565b6124248360001c6020612d56565b604051602001612435929190614b6b565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124779190613901565b60405180910390fd5b5050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000046306040516020016124ff959493929190614ba5565b60405160208183030381529060405280519060200120905090565b600080820361252c576000905061260e565b6000600161253984612f92565b901c6001901b9050600181848161255357612552614bf8565b5b048201901c9050600181848161256c5761256b614bf8565b5b048201901c9050600181848161258557612584614bf8565b5b048201901c9050600181848161259e5761259d614bf8565b5b048201901c905060018184816125b7576125b6614bf8565b5b048201901c905060018184816125d0576125cf614bf8565b5b048201901c905060018184816125e9576125e8614bf8565b5b048201901c905061260a8182858161260457612603614bf8565b5b04613073565b9150505b919050565b60008260005281602060002001905092915050565b600060028284186126399190614c27565b82841661264691906141a7565b905092915050565b612656610ca6565b612695576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268c90614ca4565b60405180910390fd5b565b6126a1828261308c565b6126a96131e2565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166126cf61092a565b1115612710576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270790614d36565b60405180910390fd5b61271e600d61162383613206565b50505050565b61272e82826134e1565b61273c600d61163983613206565b50505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561277e5750600081115b1561293657600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461285c57600080612805600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061163985613206565b915091508473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051612851929190614d56565b60405180910390a250505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612935576000806128de600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061162385613206565b915091508373ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405161292a929190614d56565b60405180910390a250505b5b505050565b600081600001549050919050565b612951610ca6565b15612991576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161298890614dcb565b60405180910390fd5b565b606060006129a0836136ae565b90506000602067ffffffffffffffff8111156129bf576129be6142b3565b5b6040519080825280601f01601f1916602001820160405280156129f15781602001600182028036833780820191505090505b5090508181528360208201528092505050919050565b60006040517f190100000000000000000000000000000000000000000000000000000000000081528360028201528260228201526042812091505092915050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08360001c1115612a83576000600391509150612b21565b600060018787878760405160008152602001604052604051612aa89493929190614deb565b6020604051602081039080840390855afa158015612aca573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612b1857600060019250925050612b21565b80600092509250505b94509492505050565b60006004811115612b3e57612b3d614e30565b5b816004811115612b5157612b50614e30565b5b0315612c8d5760016004811115612b6b57612b6a614e30565b5b816004811115612b7e57612b7d614e30565b5b03612bbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bb590614eab565b60405180910390fd5b60026004811115612bd257612bd1614e30565b5b816004811115612be557612be4614e30565b5b03612c25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c1c90614f17565b60405180910390fd5b60036004811115612c3957612c38614e30565b5b816004811115612c4c57612c4b614e30565b5b03612c8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c8390614fa9565b60405180910390fd5b5b50565b6001816000016000828254019250508190555050565b612cb18383836136fe565b612cb9610ca6565b15612cf9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cf09061503b565b60405180910390fd5b505050565b612d09838383613703565b612d24612d1584610c29565b612d1e84610c29565b83612742565b505050565b6060612d4f8273ffffffffffffffffffffffffffffffffffffffff16601460ff16612d56565b9050919050565b606060006002836002612d69919061505b565b612d7391906141a7565b67ffffffffffffffff811115612d8c57612d8b6142b3565b5b6040519080825280601f01601f191660200182016040528015612dbe5781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110612df657612df56142e2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110612e5a57612e596142e2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006001846002612e9a919061505b565b612ea491906141a7565b90505b6001811115612f44577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110612ee657612ee56142e2565b5b1a60f81b828281518110612efd57612efc6142e2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c945080612f3d9061509d565b9050612ea7565b5060008414612f88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f7f90615112565b60405180910390fd5b8091505092915050565b600080600090506000608084901c1115612fb457608083901c92506080810190505b6000604084901c1115612fcf57604083901c92506040810190505b6000602084901c1115612fea57602083901c92506020810190505b6000601084901c111561300557601083901c92506010810190505b6000600884901c111561302057600883901c92506008810190505b6000600484901c111561303b57600483901c92506004810190505b6000600284901c111561305657600283901c92506002810190505b6000600184901c111561306a576001810190505b80915050919050565b60008183106130825781613084565b825b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036130fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130f29061517e565b60405180910390fd5b613107600083836123a9565b806002600082825461311991906141a7565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516131ca9190613a06565b60405180910390a36131de600083836123ef565b5050565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff905090565b60008060008580549050905060008082146132cc576132288760018403612613565b6040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a90047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1681525050613308565b6040518060400160405280600063ffffffff16815260200160007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff168152505b905080602001517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16935061333d84868863ffffffff16565b92506000821180156133675750613352610f92565b65ffffffffffff16816000015163ffffffff16145b156133d85761337583613708565b6133828860018503612613565b60000160046101000a8154817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1602179055506134d7565b8660405180604001604052806133fc6133ef610f92565b65ffffffffffff166120fb565b63ffffffff16815260200161341086613708565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff168152509080600181540180825580915050600190039060005260206000200160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a8154817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555050505b5050935093915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613550576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161354790615210565b60405180910390fd5b61355c826000836123a9565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156135e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135d9906152a2565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516136959190613a06565b60405180910390a36136a9836000846123ef565b505050565b60008060ff8360001c169050601f8111156136f5576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80915050919050565b505050565b505050565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff801682111561376b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161376290615334565b60405180910390fd5b819050919050565b6040518060400160405280600063ffffffff16815260200160007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1681525090565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6137eb816137b6565b81146137f657600080fd5b50565b600081359050613808816137e2565b92915050565b600060208284031215613824576138236137b1565b5b6000613832848285016137f9565b91505092915050565b60008115159050919050565b6138508161383b565b82525050565b600060208201905061386b6000830184613847565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156138ab578082015181840152602081019050613890565b60008484015250505050565b6000601f19601f8301169050919050565b60006138d382613871565b6138dd818561387c565b93506138ed81856020860161388d565b6138f6816138b7565b840191505092915050565b6000602082019050818103600083015261391b81846138c8565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061394e82613923565b9050919050565b61395e81613943565b811461396957600080fd5b50565b60008135905061397b81613955565b92915050565b6000819050919050565b61399481613981565b811461399f57600080fd5b50565b6000813590506139b18161398b565b92915050565b600080604083850312156139ce576139cd6137b1565b5b60006139dc8582860161396c565b92505060206139ed858286016139a2565b9150509250929050565b613a0081613981565b82525050565b6000602082019050613a1b60008301846139f7565b92915050565b600080600060608486031215613a3a57613a396137b1565b5b6000613a488682870161396c565b9350506020613a598682870161396c565b9250506040613a6a868287016139a2565b9150509250925092565b6000819050919050565b613a8781613a74565b8114613a9257600080fd5b50565b600081359050613aa481613a7e565b92915050565b600060208284031215613ac057613abf6137b1565b5b6000613ace84828501613a95565b91505092915050565b613ae081613a74565b82525050565b6000602082019050613afb6000830184613ad7565b92915050565b60008060408385031215613b1857613b176137b1565b5b6000613b2685828601613a95565b9250506020613b378582860161396c565b9150509250929050565b600060ff82169050919050565b613b5781613b41565b82525050565b6000602082019050613b726000830184613b4e565b92915050565b600060208284031215613b8e57613b8d6137b1565b5b6000613b9c848285016139a2565b91505092915050565b600060208284031215613bbb57613bba6137b1565b5b6000613bc98482850161396c565b91505092915050565b613bdb81613943565b82525050565b6000602082019050613bf66000830184613bd2565b92915050565b600063ffffffff82169050919050565b613c1581613bfc565b82525050565b6000602082019050613c306000830184613c0c565b92915050565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b613c6b81613c36565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613ca681613981565b82525050565b6000613cb88383613c9d565b60208301905092915050565b6000602082019050919050565b6000613cdc82613c71565b613ce68185613c7c565b9350613cf183613c8d565b8060005b83811015613d22578151613d098882613cac565b9750613d1483613cc4565b925050600181019050613cf5565b5085935050505092915050565b600060e082019050613d44600083018a613c62565b8181036020830152613d5681896138c8565b90508181036040830152613d6a81886138c8565b9050613d7960608301876139f7565b613d866080830186613bd2565b613d9360a0830185613ad7565b81810360c0830152613da58184613cd1565b905098975050505050505050565b600065ffffffffffff82169050919050565b613dce81613db3565b82525050565b6000602082019050613de96000830184613dc5565b92915050565b613df881613b41565b8114613e0357600080fd5b50565b600081359050613e1581613def565b92915050565b60008060008060008060c08789031215613e3857613e376137b1565b5b6000613e4689828a0161396c565b9650506020613e5789828a016139a2565b9550506040613e6889828a016139a2565b9450506060613e7989828a01613e06565b9350506080613e8a89828a01613a95565b92505060a0613e9b89828a01613a95565b9150509295509295509295565b600080600080600080600060e0888a031215613ec757613ec66137b1565b5b6000613ed58a828b0161396c565b9750506020613ee68a828b0161396c565b9650506040613ef78a828b016139a2565b9550506060613f088a828b016139a2565b9450506080613f198a828b01613e06565b93505060a0613f2a8a828b01613a95565b92505060c0613f3b8a828b01613a95565b91505092959891949750929550565b60008060408385031215613f6157613f606137b1565b5b6000613f6f8582860161396c565b9250506020613f808582860161396c565b9150509250929050565b613f9381613bfc565b8114613f9e57600080fd5b50565b600081359050613fb081613f8a565b92915050565b60008060408385031215613fcd57613fcc6137b1565b5b6000613fdb8582860161396c565b9250506020613fec85828601613fa1565b9150509250929050565b613fff81613bfc565b82525050565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff82169050919050565b61403681614005565b82525050565b6040820160008201516140526000850182613ff6565b506020820151614065602085018261402d565b50505050565b6000604082019050614080600083018461403c565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806140cd57607f821691505b6020821081036140e0576140df614086565b5b50919050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b6000614142602f8361387c565b915061414d826140e6565b604082019050919050565b6000602082019050818103600083015261417181614135565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006141b282613981565b91506141bd83613981565b92508282019050808211156141d5576141d4614178565b5b92915050565b7f4552433230566f7465733a20667574757265206c6f6f6b757000000000000000600082015250565b600061421160198361387c565b915061421c826141db565b602082019050919050565b6000602082019050818103600083015261424081614204565b9050919050565b7f4552433230566f7465733a2062726f6b656e20636c6f636b206d6f6465000000600082015250565b600061427d601d8361387c565b915061428882614247565b602082019050919050565b600060208201905081810360008301526142ac81614270565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061436d60258361387c565b915061437882614311565b604082019050919050565b6000602082019050818103600083015261439c81614360565b9050919050565b7f4552433230566f7465733a207369676e61747572652065787069726564000000600082015250565b60006143d9601d8361387c565b91506143e4826143a3565b602082019050919050565b60006020820190508181036000830152614408816143cc565b9050919050565b60006080820190506144246000830187613ad7565b6144316020830186613bd2565b61443e60408301856139f7565b61444b60608301846139f7565b95945050505050565b7f4552433230566f7465733a20696e76616c6964206e6f6e636500000000000000600082015250565b600061448a60198361387c565b915061449582614454565b602082019050919050565b600060208201905081810360008301526144b98161447d565b9050919050565b7f45524332305065726d69743a206578706972656420646561646c696e65000000600082015250565b60006144f6601d8361387c565b9150614501826144c0565b602082019050919050565b60006020820190508181036000830152614525816144e9565b9050919050565b600060c0820190506145416000830189613ad7565b61454e6020830188613bd2565b61455b6040830187613bd2565b61456860608301866139f7565b61457560808301856139f7565b61458260a08301846139f7565b979650505050505050565b7f45524332305065726d69743a20696e76616c6964207369676e61747572650000600082015250565b60006145c3601e8361387c565b91506145ce8261458d565b602082019050919050565b600060208201905081810360008301526145f2816145b6565b9050919050565b600061460482613981565b915061460f83613981565b925082820390508181111561462757614626614178565b5b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061468960248361387c565b91506146948261462d565b604082019050919050565b600060208201905081810360008301526146b88161467c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061471b60228361387c565b9150614726826146bf565b604082019050919050565b6000602082019050818103600083015261474a8161470e565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000614787601d8361387c565b915061479282614751565b602082019050919050565b600060208201905081810360008301526147b68161477a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061481960258361387c565b9150614824826147bd565b604082019050919050565b600060208201905081810360008301526148488161480c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006148ab60238361387c565b91506148b68261484f565b604082019050919050565b600060208201905081810360008301526148da8161489e565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061493d60268361387c565b9150614948826148e1565b604082019050919050565b6000602082019050818103600083015261496c81614930565b9050919050565b7f53616665436173743a2076616c756520646f65736e27742066697420696e203360008201527f3220626974730000000000000000000000000000000000000000000000000000602082015250565b60006149cf60268361387c565b91506149da82614973565b604082019050919050565b600060208201905081810360008301526149fe816149c2565b9050919050565b7f53616665436173743a2076616c756520646f65736e27742066697420696e203460008201527f3820626974730000000000000000000000000000000000000000000000000000602082015250565b6000614a6160268361387c565b9150614a6c82614a05565b604082019050919050565b60006020820190508181036000830152614a9081614a54565b9050919050565b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b6000614ad8601783614a97565b9150614ae382614aa2565b601782019050919050565b6000614af982613871565b614b038185614a97565b9350614b1381856020860161388d565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b6000614b55601183614a97565b9150614b6082614b1f565b601182019050919050565b6000614b7682614acb565b9150614b828285614aee565b9150614b8d82614b48565b9150614b998284614aee565b91508190509392505050565b600060a082019050614bba6000830188613ad7565b614bc76020830187613ad7565b614bd46040830186613ad7565b614be160608301856139f7565b614bee6080830184613bd2565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614c3282613981565b9150614c3d83613981565b925082614c4d57614c4c614bf8565b5b828204905092915050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b6000614c8e60148361387c565b9150614c9982614c58565b602082019050919050565b60006020820190508181036000830152614cbd81614c81565b9050919050565b7f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60008201527f766572666c6f77696e6720766f74657300000000000000000000000000000000602082015250565b6000614d2060308361387c565b9150614d2b82614cc4565b604082019050919050565b60006020820190508181036000830152614d4f81614d13565b9050919050565b6000604082019050614d6b60008301856139f7565b614d7860208301846139f7565b9392505050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000614db560108361387c565b9150614dc082614d7f565b602082019050919050565b60006020820190508181036000830152614de481614da8565b9050919050565b6000608082019050614e006000830187613ad7565b614e0d6020830186613b4e565b614e1a6040830185613ad7565b614e276060830184613ad7565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f45434453413a20696e76616c6964207369676e61747572650000000000000000600082015250565b6000614e9560188361387c565b9150614ea082614e5f565b602082019050919050565b60006020820190508181036000830152614ec481614e88565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265206c656e67746800600082015250565b6000614f01601f8361387c565b9150614f0c82614ecb565b602082019050919050565b60006020820190508181036000830152614f3081614ef4565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b6000614f9360228361387c565b9150614f9e82614f37565b604082019050919050565b60006020820190508181036000830152614fc281614f86565b9050919050565b7f45524332305061757361626c653a20746f6b656e207472616e7366657220776860008201527f696c652070617573656400000000000000000000000000000000000000000000602082015250565b6000615025602a8361387c565b915061503082614fc9565b604082019050919050565b6000602082019050818103600083015261505481615018565b9050919050565b600061506682613981565b915061507183613981565b925082820261507f81613981565b9150828204841483151761509657615095614178565b5b5092915050565b60006150a882613981565b9150600082036150bb576150ba614178565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b60006150fc60208361387c565b9150615107826150c6565b602082019050919050565b6000602082019050818103600083015261512b816150ef565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000615168601f8361387c565b915061517382615132565b602082019050919050565b600060208201905081810360008301526151978161515b565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006151fa60218361387c565b91506152058261519e565b604082019050919050565b60006020820190508181036000830152615229816151ed565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b600061528c60228361387c565b915061529782615230565b604082019050919050565b600060208201905081810360008301526152bb8161527f565b9050919050565b7f53616665436173743a2076616c756520646f65736e27742066697420696e203260008201527f3234206269747300000000000000000000000000000000000000000000000000602082015250565b600061531e60278361387c565b9150615329826152c2565b604082019050919050565b6000602082019050818103600083015261534d81615311565b905091905056fea26469706673582212204071365e1bbfc2eaef70dd0e78c9481414e0a5ae36b1c1c53cf43ad53ab242d164736f6c634300081400330000000000000000000000000000000000000000025391ee35a05c54d0000000
0xa26469706673582212204071365e1bbfc2eaef70dd0e78c9481414e0a5ae36b1c1c53cf43ad53ab242d164736f6c634300081400330000000000000000000000000000000000000000025391ee35a05c54d0000000
----Decoded View------------Arg [0] : initialSupply (uint256): 73452093890636736710135800681700828230452431491087827107423512815084977927857
----Encoded View------------Arg [0] : 0xa26469706673582212204071365e1bbfc2eaef70dd0e78c9481414e0a5ae36b1