[ { "inputs": [ { "internalType": "address", "name": "admin", "type": "address" }, { "internalType": "address", "name": "beneficiary", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AccessControlBadConfirmation", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bytes32", "name": "neededRole", "type": "bytes32" } ], "name": "AccessControlUnauthorizedAccount", "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": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "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" }, { "inputs": [], "name": "DEFAULT_ADMIN_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": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": "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": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "callerConfirmation", "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": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
608060405234801562000010575f80fd5b5060405162002a9f38038062002a9f833981810160405281019062000036919062000434565b5f620000476200026960201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506040518060400160405280600681526020017f5469636b6572000000000000000000000000000000000000000000000000000081525060079081620001299190620006dd565b506040518060400160405280600381526020017f544b51000000000000000000000000000000000000000000000000000000000081525060069081620001709190620006dd565b50601260055f6101000a81548160ff021916908360ff1602179055506b033b2e3c9fd0803ce800000060048190555060045460025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550620001f75f801b836200027060201b60201c565b508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600454604051620002599190620007d2565b60405180910390a35050620007ed565b5f33905090565b5f6200028383836200036b60201b60201c565b62000361576001805f8581526020019081526020015f205f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620002fd6200026960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001905062000365565b5f90505b92915050565b5f60015f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620003fe82620003d3565b9050919050565b6200041081620003f2565b81146200041b575f80fd5b50565b5f815190506200042e8162000405565b92915050565b5f80604083850312156200044d576200044c620003cf565b5b5f6200045c858286016200041e565b92505060206200046f858286016200041e565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620004f557607f821691505b6020821081036200050b576200050a620004b0565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200056f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000532565b6200057b868362000532565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620005c5620005bf620005b98462000593565b6200059c565b62000593565b9050919050565b5f819050919050565b620005e083620005a5565b620005f8620005ef82620005cc565b8484546200053e565b825550505050565b5f90565b6200060e62000600565b6200061b818484620005d5565b505050565b5b818110156200064257620006365f8262000604565b60018101905062000621565b5050565b601f82111562000691576200065b8162000511565b620006668462000523565b8101602085101562000676578190505b6200068e620006858562000523565b83018262000620565b50505b505050565b5f82821c905092915050565b5f620006b35f198460080262000696565b1980831691505092915050565b5f620006cd8383620006a2565b9150826002028217905092915050565b620006e88262000479565b67ffffffffffffffff81111562000704576200070362000483565b5b620007108254620004dd565b6200071d82828562000646565b5f60209050601f83116001811462000753575f84156200073e578287015190505b6200074a8582620006c0565b865550620007b9565b601f198416620007638662000511565b5f5b828110156200078c5784890151825560018201915060208501945060208101905062000765565b86831015620007ac5784890151620007a8601f891682620006a2565b8355505b6001600288020188555050505b505050505050565b620007cc8162000593565b82525050565b5f602082019050620007e75f830184620007c1565b92915050565b6122a480620007fb5f395ff3fe608060405234801561000f575f80fd5b506004361061014b575f3560e01c806342966c68116100c1578063a217fddf1161007a578063a217fddf146103c3578063a457c2d7146103e1578063a9059cbb14610411578063d547741f14610441578063dd62ed3e1461045d578063f2fde38b1461048d5761014b565b806342966c68146102ed57806370a082311461031d578063715018a61461034d5780638da5cb5b1461035757806391d148541461037557806395d89b41146103a55761014b565b8063248a9ca311610113578063248a9ca31461021b5780632f2ff15d1461024b578063313ce5671461026757806336568abe1461028557806339509351146102a157806340c10f19146102d15761014b565b806301ffc9a71461014f57806306fdde031461017f578063095ea7b31461019d57806318160ddd146101cd57806323b872dd146101eb575b5f80fd5b61016960048036038101906101649190611818565b6104a9565b604051610176919061185d565b60405180910390f35b610187610522565b6040516101949190611900565b60405180910390f35b6101b760048036038101906101b291906119ad565b6105b2565b6040516101c4919061185d565b60405180910390f35b6101d56105cf565b6040516101e291906119fa565b60405180910390f35b61020560048036038101906102009190611a13565b6105d8565b604051610212919061185d565b60405180910390f35b61023560048036038101906102309190611a96565b61068b565b6040516102429190611ad0565b60405180910390f35b61026560048036038101906102609190611ae9565b6106a8565b005b61026f6106ca565b60405161027c9190611b42565b60405180910390f35b61029f600480360381019061029a9190611ae9565b6106df565b005b6102bb60048036038101906102b691906119ad565b61075a565b6040516102c8919061185d565b60405180910390f35b6102eb60048036038101906102e691906119ad565b610801565b005b61030760048036038101906103029190611b5b565b61081c565b604051610314919061185d565b60405180910390f35b61033760048036038101906103329190611b86565b610837565b60405161034491906119fa565b60405180910390f35b61035561087d565b005b61035f6109cb565b60405161036c9190611bc0565b60405180910390f35b61038f600480360381019061038a9190611ae9565b6109f2565b60405161039c919061185d565b60405180910390f35b6103ad610a56565b6040516103ba9190611900565b60405180910390f35b6103cb610ae6565b6040516103d89190611ad0565b60405180910390f35b6103fb60048036038101906103f691906119ad565b610aec565b604051610408919061185d565b60405180910390f35b61042b600480360381019061042691906119ad565b610bdb565b604051610438919061185d565b60405180910390f35b61045b60048036038101906104569190611ae9565b610bf8565b005b61047760048036038101906104729190611bd9565b610c1a565b60405161048491906119fa565b60405180910390f35b6104a760048036038101906104a29190611b86565b610c9c565b005b5f7f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061051b575061051a82610d3c565b5b9050919050565b60606007805461053190611c44565b80601f016020809104026020016040519081016040528092919081815260200182805461055d90611c44565b80156105a85780601f1061057f576101008083540402835291602001916105a8565b820191905f5260205f20905b81548152906001019060200180831161058b57829003601f168201915b5050505050905090565b5f6105c56105be610da5565b8484610dac565b6001905092915050565b5f600454905090565b5f6105e4848484610f6f565b610680846105f0610da5565b8460035f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610637610da5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461067b9190611ca1565b610dac565b600190509392505050565b5f60015f8381526020019081526020015f20600101549050919050565b6106b18261068b565b6106ba8161115b565b6106c4838361116f565b50505050565b5f60055f9054906101000a900460ff16905090565b6106e7610da5565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461074b576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107558282611258565b505050565b5f6107f7610766610da5565b848460035f610773610da5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546107f29190611cd4565b610dac565b6001905092915050565b5f801b61080d8161115b565b6108178383611342565b505050565b5f61082e610828610da5565b83611484565b60019050919050565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610885610da5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610911576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090890611d51565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f60015f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b606060068054610a6590611c44565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9190611c44565b8015610adc5780601f10610ab357610100808354040283529160200191610adc565b820191905f5260205f20905b815481529060010190602001808311610abf57829003601f168201915b5050505050905090565b5f801b81565b5f8060035f610af9610da5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610bb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610baa90611ddf565b60405180910390fd5b610bd0610bbe610da5565b858584610bcb9190611ca1565b610dac565b600191505092915050565b5f610bee610be7610da5565b8484610f6f565b6001905092915050565b610c018261068b565b610c0a8161115b565b610c148383611258565b50505050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610ca4610da5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2790611d51565b60405180910390fd5b610d3981611645565b50565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1190611e6d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7f90611efb565b60405180910390fd5b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f6291906119fa565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610fdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd490611f89565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361104b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104290612017565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546110979190611ca1565b925050819055508060025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546110ea9190611cd4565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161114e91906119fa565b60405180910390a3505050565b61116c81611167610da5565b61176e565b50565b5f61117a83836109f2565b61124e576001805f8581526020019081526020015f205f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506111eb610da5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050611252565b5f90505b92915050565b5f61126383836109f2565b15611338575f60015f8581526020019081526020015f205f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506112d5610da5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a46001905061133c565b5f90505b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a79061207f565b60405180910390fd5b8060045f8282546113c19190611cd4565b925050819055508060025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546114149190611cd4565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161147891906119fa565b60405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e99061210d565b60405180910390fd5b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611576576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156d9061219b565b60405180910390fd5b81816115829190611ca1565b60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160045f8282546115d49190611ca1565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161163891906119fa565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116aa90612229565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61177882826109f2565b6117bb5780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016117b2929190612247565b60405180910390fd5b5050565b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6117f7816117c3565b8114611801575f80fd5b50565b5f81359050611812816117ee565b92915050565b5f6020828403121561182d5761182c6117bf565b5b5f61183a84828501611804565b91505092915050565b5f8115159050919050565b61185781611843565b82525050565b5f6020820190506118705f83018461184e565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156118ad578082015181840152602081019050611892565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6118d282611876565b6118dc8185611880565b93506118ec818560208601611890565b6118f5816118b8565b840191505092915050565b5f6020820190508181035f83015261191881846118c8565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61194982611920565b9050919050565b6119598161193f565b8114611963575f80fd5b50565b5f8135905061197481611950565b92915050565b5f819050919050565b61198c8161197a565b8114611996575f80fd5b50565b5f813590506119a781611983565b92915050565b5f80604083850312156119c3576119c26117bf565b5b5f6119d085828601611966565b92505060206119e185828601611999565b9150509250929050565b6119f48161197a565b82525050565b5f602082019050611a0d5f8301846119eb565b92915050565b5f805f60608486031215611a2a57611a296117bf565b5b5f611a3786828701611966565b9350506020611a4886828701611966565b9250506040611a5986828701611999565b9150509250925092565b5f819050919050565b611a7581611a63565b8114611a7f575f80fd5b50565b5f81359050611a9081611a6c565b92915050565b5f60208284031215611aab57611aaa6117bf565b5b5f611ab884828501611a82565b91505092915050565b611aca81611a63565b82525050565b5f602082019050611ae35f830184611ac1565b92915050565b5f8060408385031215611aff57611afe6117bf565b5b5f611b0c85828601611a82565b9250506020611b1d85828601611966565b9150509250929050565b5f60ff82169050919050565b611b3c81611b27565b82525050565b5f602082019050611b555f830184611b33565b92915050565b5f60208284031215611b7057611b6f6117bf565b5b5f611b7d84828501611999565b91505092915050565b5f60208284031215611b9b57611b9a6117bf565b5b5f611ba884828501611966565b91505092915050565b611bba8161193f565b82525050565b5f602082019050611bd35f830184611bb1565b92915050565b5f8060408385031215611bef57611bee6117bf565b5b5f611bfc85828601611966565b9250506020611c0d85828601611966565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611c5b57607f821691505b602082108103611c6e57611c6d611c17565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611cab8261197a565b9150611cb68361197a565b9250828203905081811115611cce57611ccd611c74565b5b92915050565b5f611cde8261197a565b9150611ce98361197a565b9250828201905080821115611d0157611d00611c74565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611d3b602083611880565b9150611d4682611d07565b602082019050919050565b5f6020820190508181035f830152611d6881611d2f565b9050919050565b7f42455032303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f611dc9602583611880565b9150611dd482611d6f565b604082019050919050565b5f6020820190508181035f830152611df681611dbd565b9050919050565b7f42455032303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f611e57602483611880565b9150611e6282611dfd565b604082019050919050565b5f6020820190508181035f830152611e8481611e4b565b9050919050565b7f42455032303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f611ee5602283611880565b9150611ef082611e8b565b604082019050919050565b5f6020820190508181035f830152611f1281611ed9565b9050919050565b7f42455032303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f611f73602583611880565b9150611f7e82611f19565b604082019050919050565b5f6020820190508181035f830152611fa081611f67565b9050919050565b7f42455032303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612001602383611880565b915061200c82611fa7565b604082019050919050565b5f6020820190508181035f83015261202e81611ff5565b9050919050565b7f42455032303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f612069601f83611880565b915061207482612035565b602082019050919050565b5f6020820190508181035f8301526120968161205d565b9050919050565b7f42455032303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f6120f7602183611880565b91506121028261209d565b604082019050919050565b5f6020820190508181035f830152612124816120eb565b9050919050565b7f42455032303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f612185602283611880565b91506121908261212b565b604082019050919050565b5f6020820190508181035f8301526121b281612179565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612213602683611880565b915061221e826121b9565b604082019050919050565b5f6020820190508181035f83015261224081612207565b9050919050565b5f60408201905061225a5f830185611bb1565b6122676020830184611ac1565b939250505056fea26469706673582212206d93e0711f2d2fdc4c99a3902e5e4da7389508b37a4ea5636793563ce5db0bc164736f6c63430008180033000000000000000000000000efdb9727c6ab05ff81d01220b4d3c8a8f536fa03000000000000000000000000559ed54ae372b4284431134be7eaa6f6b7b44002