[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "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": 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": "DEFAULT_ADMIN_ROLE", "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": [], "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": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "getRoleMember", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleMemberCount", "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": [], "name": "pause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "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" } ]
60806040523480156200001157600080fd5b506040518060400160405280600581526020017f42696f46690000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f42696f466900000000000000000000000000000000000000000000000000000081525081818160059080519060200190620000989291906200066b565b508060069080519060200190620000b19291906200066b565b5050506000600760006101000a81548160ff021916908315150217905550620000f36000801b620000e7620001ad60201b60201c565b620001b560201b60201c565b620001347f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a662000128620001ad60201b60201c565b620001b560201b60201c565b620001757f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a62000169620001ad60201b60201c565b620001b560201b60201c565b505060006402540be4009050620f42408162000192919062000754565b9050620001a63382620001cb60201b60201c565b50620009c0565b600033905090565b620001c782826200034560201b60201c565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200023e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002359062000816565b60405180910390fd5b62000252600083836200038d60201b60201c565b806004600082825462000266919062000838565b9250508190555080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620002be919062000838565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620003259190620008a6565b60405180910390a36200034160008383620003aa60201b60201c565b5050565b6200035c8282620003af60201b62000dfc1760201c565b620003888160016000858152602001908152602001600020620004a060201b62000edc1790919060201c565b505050565b620003a5838383620004d860201b62000f0c1760201c565b505050565b505050565b620003c182826200054860201b60201c565b6200049c57600160008084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000441620001ad60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000620004d0836000018373ffffffffffffffffffffffffffffffffffffffff1660001b620005b260201b60201c565b905092915050565b620004f08383836200062c60201b62000f641760201c565b620005006200063160201b60201c565b1562000543576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200053a9062000939565b60405180910390fd5b505050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000620005c683836200064860201b60201c565b6200062157826000018290806001815401808255809150506001900390600052602060002001600090919091909150558260000180549050836001016000848152602001908152602001600020819055506001905062000626565b600090505b92915050565b505050565b6000600760009054906101000a900460ff16905090565b600080836001016000848152602001908152602001600020541415905092915050565b82805462000679906200098a565b90600052602060002090601f0160209004810192826200069d5760008555620006e9565b82601f10620006b857805160ff1916838001178555620006e9565b82800160010185558215620006e9579182015b82811115620006e8578251825591602001919060010190620006cb565b5b509050620006f89190620006fc565b5090565b5b8082111562000717576000816000905550600101620006fd565b5090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000761826200071b565b91506200076e836200071b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620007aa57620007a962000725565b5b828202905092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620007fe601f83620007b5565b91506200080b82620007c6565b602082019050919050565b600060208201905081810360008301526200083181620007ef565b9050919050565b600062000845826200071b565b915062000852836200071b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200088a576200088962000725565b5b828201905092915050565b620008a0816200071b565b82525050565b6000602082019050620008bd600083018462000895565b92915050565b7f45524332305061757361626c653a20746f6b656e207472616e7366657220776860008201527f696c652070617573656400000000000000000000000000000000000000000000602082015250565b600062000921602a83620007b5565b91506200092e82620008c3565b604082019050919050565b60006020820190508181036000830152620009548162000912565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620009a357607f821691505b60208210811415620009ba57620009b96200095b565b5b50919050565b6131f180620009d06000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c806370a08231116100f9578063a457c2d711610097578063d539139311610071578063d53913931461052d578063d547741f1461054b578063dd62ed3e14610567578063e63ab1e914610597576101c4565b8063a457c2d71461049d578063a9059cbb146104cd578063ca15c873146104fd576101c4565b80639010d07c116100d35780639010d07c1461040157806391d148541461043157806395d89b4114610461578063a217fddf1461047f576101c4565b806370a08231146103ab57806379cc6790146103db5780638456cb59146103f7576101c4565b8063313ce567116101665780633f4ba83a116101405780633f4ba83a1461034b57806340c10f191461035557806342966c68146103715780635c975abb1461038d576101c4565b8063313ce567146102e157806336568abe146102ff578063395093511461031b576101c4565b806318160ddd116101a257806318160ddd1461024757806323b872dd14610265578063248a9ca3146102955780632f2ff15d146102c5576101c4565b806301ffc9a7146101c957806306fdde03146101f9578063095ea7b314610217575b600080fd5b6101e360048036038101906101de9190612085565b6105b5565b6040516101f091906120cd565b60405180910390f35b61020161062f565b60405161020e9190612181565b60405180910390f35b610231600480360381019061022c9190612237565b6106c1565b60405161023e91906120cd565b60405180910390f35b61024f6106e4565b60405161025c9190612286565b60405180910390f35b61027f600480360381019061027a91906122a1565b6106ee565b60405161028c91906120cd565b60405180910390f35b6102af60048036038101906102aa919061232a565b61071d565b6040516102bc9190612366565b60405180910390f35b6102df60048036038101906102da9190612381565b61073c565b005b6102e9610765565b6040516102f691906123dd565b60405180910390f35b61031960048036038101906103149190612381565b61076e565b005b61033560048036038101906103309190612237565b6107f1565b60405161034291906120cd565b60405180910390f35b61035361089b565b005b61036f600480360381019061036a9190612237565b610915565b005b61038b600480360381019061038691906123f8565b610993565b005b6103956109a7565b6040516103a291906120cd565b60405180910390f35b6103c560048036038101906103c09190612425565b6109be565b6040516103d29190612286565b60405180910390f35b6103f560048036038101906103f09190612237565b610a07565b005b6103ff610a27565b005b61041b60048036038101906104169190612452565b610aa1565b60405161042891906124a1565b60405180910390f35b61044b60048036038101906104469190612381565b610ad0565b60405161045891906120cd565b60405180910390f35b610469610b3a565b6040516104769190612181565b60405180910390f35b610487610bcc565b6040516104949190612366565b60405180910390f35b6104b760048036038101906104b29190612237565b610bd3565b6040516104c491906120cd565b60405180910390f35b6104e760048036038101906104e29190612237565b610cbd565b6040516104f491906120cd565b60405180910390f35b6105176004803603810190610512919061232a565b610ce0565b6040516105249190612286565b60405180910390f35b610535610d04565b6040516105429190612366565b60405180910390f35b61056560048036038101906105609190612381565b610d28565b005b610581600480360381019061057c91906124bc565b610d51565b60405161058e9190612286565b60405180910390f35b61059f610dd8565b6040516105ac9190612366565b60405180910390f35b60007f5a05180f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610628575061062782610f69565b5b9050919050565b60606005805461063e9061252b565b80601f016020809104026020016040519081016040528092919081815260200182805461066a9061252b565b80156106b75780601f1061068c576101008083540402835291602001916106b7565b820191906000526020600020905b81548152906001019060200180831161069a57829003601f168201915b5050505050905090565b6000806106cc610fe3565b90506106d9818585610feb565b600191505092915050565b6000600454905090565b6000806106f9610fe3565b90506107068582856111b6565b610711858585611242565b60019150509392505050565b6000806000838152602001908152602001600020600101549050919050565b6107458261071d565b61075681610751610fe3565b6114c6565b6107608383611563565b505050565b60006006905090565b610776610fe3565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146107e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107da906125cf565b60405180910390fd5b6107ed8282611597565b5050565b6000806107fc610fe3565b9050610890818585600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461088b919061261e565b610feb565b600191505092915050565b6108cc7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6108c7610fe3565b610ad0565b61090b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610902906126e6565b60405180910390fd5b6109136115cb565b565b6109467f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610941610fe3565b610ad0565b610985576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097c90612778565b60405180910390fd5b61098f828261166d565b5050565b6109a461099e610fe3565b826117ce565b50565b6000600760009054906101000a900460ff16905090565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a1982610a13610fe3565b836111b6565b610a2382826117ce565b5050565b610a587f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610a53610fe3565b610ad0565b610a97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8e9061280a565b60405180910390fd5b610a9f6119a7565b565b6000610ac88260016000868152602001908152602001600020611a4a90919063ffffffff16565b905092915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b606060068054610b499061252b565b80601f0160208091040260200160405190810160405280929190818152602001828054610b759061252b565b8015610bc25780601f10610b9757610100808354040283529160200191610bc2565b820191906000526020600020905b815481529060010190602001808311610ba557829003601f168201915b5050505050905090565b6000801b81565b600080610bde610fe3565b90506000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905083811015610ca4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9b9061289c565b60405180910390fd5b610cb18286868403610feb565b60019250505092915050565b600080610cc8610fe3565b9050610cd5818585611242565b600191505092915050565b6000610cfd60016000848152602001908152602001600020611a64565b9050919050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b610d318261071d565b610d4281610d3d610fe3565b6114c6565b610d4c8383611597565b505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b610e068282610ad0565b610ed857600160008084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610e7d610fe3565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000610f04836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611a79565b905092915050565b610f17838383610f64565b610f1f6109a7565b15610f5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f569061292e565b60405180910390fd5b505050565b505050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610fdc5750610fdb82611ae9565b5b9050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561105b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611052906129c0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c290612a52565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111a99190612286565b60405180910390a3505050565b60006111c28484610d51565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461123c578181101561122e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122590612abe565b60405180910390fd5b61123b8484848403610feb565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a990612b50565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611322576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131990612be2565b60405180910390fd5b61132d838383611b53565b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156113b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ab90612c74565b60405180910390fd5b818103600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611449919061261e565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516114ad9190612286565b60405180910390a36114c0848484611b63565b50505050565b6114d08282610ad0565b61155f576114f58173ffffffffffffffffffffffffffffffffffffffff166014611b68565b6115038360001c6020611b68565b604051602001611514929190612d68565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115569190612181565b60405180910390fd5b5050565b61156d8282610dfc565b6115928160016000858152602001908152602001600020610edc90919063ffffffff16565b505050565b6115a18282611da4565b6115c68160016000858152602001908152602001600020611e8590919063ffffffff16565b505050565b6115d36109a7565b611612576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160990612dee565b60405180910390fd5b6000600760006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611656610fe3565b60405161166391906124a1565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d490612e5a565b60405180910390fd5b6116e960008383611b53565b80600460008282546116fb919061261e565b9250508190555080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611751919061261e565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516117b69190612286565b60405180910390a36117ca60008383611b63565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561183e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183590612eec565b60405180910390fd5b61184a82600083611b53565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156118d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c890612f7e565b60405180910390fd5b818103600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600460008282546119299190612f9e565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161198e9190612286565b60405180910390a36119a283600084611b63565b505050565b6119af6109a7565b156119ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e69061301e565b60405180910390fd5b6001600760006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611a33610fe3565b604051611a4091906124a1565b60405180910390a1565b6000611a598360000183611eb5565b60001c905092915050565b6000611a7282600001611ee0565b9050919050565b6000611a858383611ef1565b611ade578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050611ae3565b600090505b92915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b611b5e838383610f0c565b505050565b505050565b606060006002836002611b7b919061303e565b611b85919061261e565b67ffffffffffffffff811115611b9e57611b9d613098565b5b6040519080825280601f01601f191660200182016040528015611bd05781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110611c0857611c076130c7565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611c6c57611c6b6130c7565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006001846002611cac919061303e565b611cb6919061261e565b90505b6001811115611d56577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110611cf857611cf76130c7565b5b1a60f81b828281518110611d0f57611d0e6130c7565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c945080611d4f906130f6565b9050611cb9565b5060008414611d9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d919061316c565b60405180910390fd5b8091505092915050565b611dae8282610ad0565b15611e8157600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611e26610fe3565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b6000611ead836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611f14565b905092915050565b6000826000018281548110611ecd57611ecc6130c7565b5b9060005260206000200154905092915050565b600081600001805490509050919050565b600080836001016000848152602001908152602001600020541415905092915050565b6000808360010160008481526020019081526020016000205490506000811461201c576000600182611f469190612f9e565b9050600060018660000180549050611f5e9190612f9e565b9050818114611fcd576000866000018281548110611f7f57611f7e6130c7565b5b9060005260206000200154905080876000018481548110611fa357611fa26130c7565b5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b85600001805480611fe157611fe061318c565b5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050612022565b60009150505b92915050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6120628161202d565b811461206d57600080fd5b50565b60008135905061207f81612059565b92915050565b60006020828403121561209b5761209a612028565b5b60006120a984828501612070565b91505092915050565b60008115159050919050565b6120c7816120b2565b82525050565b60006020820190506120e260008301846120be565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612122578082015181840152602081019050612107565b83811115612131576000848401525b50505050565b6000601f19601f8301169050919050565b6000612153826120e8565b61215d81856120f3565b935061216d818560208601612104565b61217681612137565b840191505092915050565b6000602082019050818103600083015261219b8184612148565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121ce826121a3565b9050919050565b6121de816121c3565b81146121e957600080fd5b50565b6000813590506121fb816121d5565b92915050565b6000819050919050565b61221481612201565b811461221f57600080fd5b50565b6000813590506122318161220b565b92915050565b6000806040838503121561224e5761224d612028565b5b600061225c858286016121ec565b925050602061226d85828601612222565b9150509250929050565b61228081612201565b82525050565b600060208201905061229b6000830184612277565b92915050565b6000806000606084860312156122ba576122b9612028565b5b60006122c8868287016121ec565b93505060206122d9868287016121ec565b92505060406122ea86828701612222565b9150509250925092565b6000819050919050565b612307816122f4565b811461231257600080fd5b50565b600081359050612324816122fe565b92915050565b6000602082840312156123405761233f612028565b5b600061234e84828501612315565b91505092915050565b612360816122f4565b82525050565b600060208201905061237b6000830184612357565b92915050565b6000806040838503121561239857612397612028565b5b60006123a685828601612315565b92505060206123b7858286016121ec565b9150509250929050565b600060ff82169050919050565b6123d7816123c1565b82525050565b60006020820190506123f260008301846123ce565b92915050565b60006020828403121561240e5761240d612028565b5b600061241c84828501612222565b91505092915050565b60006020828403121561243b5761243a612028565b5b6000612449848285016121ec565b91505092915050565b6000806040838503121561246957612468612028565b5b600061247785828601612315565b925050602061248885828601612222565b9150509250929050565b61249b816121c3565b82525050565b60006020820190506124b66000830184612492565b92915050565b600080604083850312156124d3576124d2612028565b5b60006124e1858286016121ec565b92505060206124f2858286016121ec565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061254357607f821691505b60208210811415612557576125566124fc565b5b50919050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b60006125b9602f836120f3565b91506125c48261255d565b604082019050919050565b600060208201905081810360008301526125e8816125ac565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061262982612201565b915061263483612201565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612669576126686125ef565b5b828201905092915050565b7f45524332305072657365744d696e7465725061757365723a206d75737420686160008201527f76652070617573657220726f6c6520746f20756e706175736500000000000000602082015250565b60006126d06039836120f3565b91506126db82612674565b604082019050919050565b600060208201905081810360008301526126ff816126c3565b9050919050565b7f45524332305072657365744d696e7465725061757365723a206d75737420686160008201527f7665206d696e74657220726f6c6520746f206d696e7400000000000000000000602082015250565b60006127626036836120f3565b915061276d82612706565b604082019050919050565b6000602082019050818103600083015261279181612755565b9050919050565b7f45524332305072657365744d696e7465725061757365723a206d75737420686160008201527f76652070617573657220726f6c6520746f207061757365000000000000000000602082015250565b60006127f46037836120f3565b91506127ff82612798565b604082019050919050565b60006020820190508181036000830152612823816127e7565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006128866025836120f3565b91506128918261282a565b604082019050919050565b600060208201905081810360008301526128b581612879565b9050919050565b7f45524332305061757361626c653a20746f6b656e207472616e7366657220776860008201527f696c652070617573656400000000000000000000000000000000000000000000602082015250565b6000612918602a836120f3565b9150612923826128bc565b604082019050919050565b600060208201905081810360008301526129478161290b565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006129aa6024836120f3565b91506129b58261294e565b604082019050919050565b600060208201905081810360008301526129d98161299d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a3c6022836120f3565b9150612a47826129e0565b604082019050919050565b60006020820190508181036000830152612a6b81612a2f565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000612aa8601d836120f3565b9150612ab382612a72565b602082019050919050565b60006020820190508181036000830152612ad781612a9b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612b3a6025836120f3565b9150612b4582612ade565b604082019050919050565b60006020820190508181036000830152612b6981612b2d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612bcc6023836120f3565b9150612bd782612b70565b604082019050919050565b60006020820190508181036000830152612bfb81612bbf565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612c5e6026836120f3565b9150612c6982612c02565b604082019050919050565b60006020820190508181036000830152612c8d81612c51565b9050919050565b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b6000612cd5601783612c94565b9150612ce082612c9f565b601782019050919050565b6000612cf6826120e8565b612d008185612c94565b9350612d10818560208601612104565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b6000612d52601183612c94565b9150612d5d82612d1c565b601182019050919050565b6000612d7382612cc8565b9150612d7f8285612ceb565b9150612d8a82612d45565b9150612d968284612ceb565b91508190509392505050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b6000612dd86014836120f3565b9150612de382612da2565b602082019050919050565b60006020820190508181036000830152612e0781612dcb565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000612e44601f836120f3565b9150612e4f82612e0e565b602082019050919050565b60006020820190508181036000830152612e7381612e37565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000612ed66021836120f3565b9150612ee182612e7a565b604082019050919050565b60006020820190508181036000830152612f0581612ec9565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f686022836120f3565b9150612f7382612f0c565b604082019050919050565b60006020820190508181036000830152612f9781612f5b565b9050919050565b6000612fa982612201565b9150612fb483612201565b925082821015612fc757612fc66125ef565b5b828203905092915050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b60006130086010836120f3565b915061301382612fd2565b602082019050919050565b6000602082019050818103600083015261303781612ffb565b9050919050565b600061304982612201565b915061305483612201565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561308d5761308c6125ef565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061310182612201565b91506000821415613115576131146125ef565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b60006131566020836120f3565b915061316182613120565b602082019050919050565b6000602082019050818103600083015261318581613149565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea264697066735822122033cd2a9034227b4729a004ee9bf6d61e3e82c773adfbbbda37e09a9ecd7a362864736f6c634300080b0033