Loading
[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "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": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "inputs": [], "name": "ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "BURNER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "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": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "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": "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": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "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": "address", "name": "to", "type": "address" } ], "name": "safeMint", "outputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_uri", "type": "string" } ], "name": "setUri", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "supplyLeft", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "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": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "unpause", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
6080604052610856600a5534801562000016575f80fd5b506040518060400160405280600e81526020017f4e465446657374456e74726965730000000000000000000000000000000000008152506040518060400160405280600781526020017f4e46544645535400000000000000000000000000000000000000000000000000815250815f908162000093919062000520565b508060019081620000a5919062000520565b5050505f60065f6101000a81548160ff021916908315150217905550620000d55f801b336200015160201b60201c565b620001077f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6336200015160201b60201c565b620001397fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775336200015160201b60201c565b6200014b60086200023d60201b60201c565b62000604565b6200016382826200025160201b60201c565b6200023957600160075f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620001de620002b560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6001815f015f828254019250508190555050565b5f60075f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f33905090565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200033857607f821691505b6020821081036200034e576200034d620002f3565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620003b27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000375565b620003be868362000375565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6200040862000402620003fc84620003d6565b620003df565b620003d6565b9050919050565b5f819050919050565b6200042383620003e8565b6200043b62000432826200040f565b84845462000381565b825550505050565b5f90565b6200045162000443565b6200045e81848462000418565b505050565b5b818110156200048557620004795f8262000447565b60018101905062000464565b5050565b601f821115620004d4576200049e8162000354565b620004a98462000366565b81016020851015620004b9578190505b620004d1620004c88562000366565b83018262000463565b50505b505050565b5f82821c905092915050565b5f620004f65f1984600802620004d9565b1980831691505092915050565b5f620005108383620004e5565b9150826002028217905092915050565b6200052b82620002bc565b67ffffffffffffffff811115620005475762000546620002c6565b5b62000553825462000320565b6200056082828562000489565b5f60209050601f83116001811462000596575f841562000581578287015190505b6200058d858262000503565b865550620005fc565b601f198416620005a68662000354565b5f5b82811015620005cf57848901518255600182019150602085019450602081019050620005a8565b86831015620005ef5784890151620005eb601f891682620004e5565b8355505b6001600288020188555050505b505050505050565b6138f380620006125f395ff3fe608060405234801561000f575f80fd5b50600436106101c2575f3560e01c806370a08231116100f7578063a22cb46511610095578063d53913931161006f578063d5391393146104ee578063d547741f1461050c578063e985e9c514610528578063fdcf9d0714610558576101c2565b8063a22cb46514610486578063b88d4fde146104a2578063c87b56dd146104be576101c2565b806391d14854116100d157806391d14854146103fe57806395d89b411461042e5780639b642de11461044c578063a217fddf14610468576101c2565b806370a08231146103a657806375b238fc146103d65780638456cb59146103f4576101c2565b80632f2ff15d1161016457806340d097c31161013e57806340d097c31461030c57806342842e0e1461033c5780635c975abb146103585780636352211e14610376576101c2565b80632f2ff15d146102ca57806336568abe146102e65780633f4ba83a14610302576101c2565b8063095ea7b3116101a0578063095ea7b31461024457806323b872dd14610260578063248a9ca31461027c578063282c51f3146102ac576101c2565b806301ffc9a7146101c657806306fdde03146101f6578063081812fc14610214575b5f80fd5b6101e060048036038101906101db9190612459565b610576565b6040516101ed919061249e565b60405180910390f35b6101fe610587565b60405161020b9190612541565b60405180910390f35b61022e60048036038101906102299190612594565b610616565b60405161023b91906125fe565b60405180910390f35b61025e60048036038101906102599190612641565b610658565b005b61027a6004803603810190610275919061267f565b61076e565b005b61029660048036038101906102919190612702565b6107ce565b6040516102a3919061273c565b60405180910390f35b6102b46107eb565b6040516102c1919061273c565b60405180910390f35b6102e460048036038101906102df9190612755565b61080f565b005b61030060048036038101906102fb9190612755565b610830565b005b61030a6108b3565b005b61032660048036038101906103219190612793565b6108e8565b60405161033391906127cd565b60405180910390f35b6103566004803603810190610351919061267f565b610994565b005b6103606109b3565b60405161036d919061249e565b60405180910390f35b610390600480360381019061038b9190612594565b6109c8565b60405161039d91906125fe565b60405180910390f35b6103c060048036038101906103bb9190612793565b610a4c565b6040516103cd91906127cd565b60405180910390f35b6103de610b00565b6040516103eb919061273c565b60405180910390f35b6103fc610b24565b005b61041860048036038101906104139190612755565b610b59565b604051610425919061249e565b60405180910390f35b610436610bbd565b6040516104439190612541565b60405180910390f35b61046660048036038101906104619190612912565b610c4d565b005b610470610c8b565b60405161047d919061273c565b60405180910390f35b6104a0600480360381019061049b9190612983565b610c91565b005b6104bc60048036038101906104b79190612a5f565b610ca7565b005b6104d860048036038101906104d39190612594565b610d09565b6040516104e59190612541565b60405180910390f35b6104f6610d6e565b604051610503919061273c565b60405180910390f35b61052660048036038101906105219190612755565b610d92565b005b610542600480360381019061053d9190612adf565b610db3565b60405161054f919061249e565b60405180910390f35b610560610e41565b60405161056d91906127cd565b60405180910390f35b5f61058082610e47565b9050919050565b60605f805461059590612b4a565b80601f01602080910402602001604051908101604052809291908181526020018280546105c190612b4a565b801561060c5780601f106105e35761010080835404028352916020019161060c565b820191905f5260205f20905b8154815290600101906020018083116105ef57829003601f168201915b5050505050905090565b5f61062082610ec0565b60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f610662826109c8565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036106d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c990612bea565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166106f1610f0b565b73ffffffffffffffffffffffffffffffffffffffff161480610720575061071f8161071a610f0b565b610db3565b5b61075f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075690612c78565b60405180910390fd5b6107698383610f12565b505050565b61077f610779610f0b565b82610fc8565b6107be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b590612d06565b60405180910390fd5b6107c983838361105c565b505050565b5f60075f8381526020019081526020015f20600101549050919050565b7f3c11d16cbaffd01df69ce1c404f6340ee057498f5f00246190ea54220576a84881565b610818826107ce565b61082181611348565b61082b838361135c565b505050565b610838610f0b565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146108a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089c90612d94565b60405180910390fd5b6108af8282611437565b5050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756108dd81611348565b6108e5611512565b50565b5f7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a661091381611348565b5f600a5411610957576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094e90612dfc565b60405180910390fd5b600a5f81548092919061096990612e47565b91905055506109786008611573565b9150610984600861157f565b61098e8383611593565b50919050565b6109ae83838360405180602001604052805f815250610ca7565b505050565b5f60065f9054906101000a900460ff16905090565b5f806109d3836115b0565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3a90612eb8565b60405180910390fd5b80915050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610abb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab290612f46565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610b4e81611348565b610b566115e9565b50565b5f60075f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b606060018054610bcc90612b4a565b80601f0160208091040260200160405190810160405280929190818152602001828054610bf890612b4a565b8015610c435780601f10610c1a57610100808354040283529160200191610c43565b820191905f5260205f20905b815481529060010190602001808311610c2657829003601f168201915b5050505050905090565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610c7781611348565b8160099081610c869190613101565b505050565b5f801b81565b610ca3610c9c610f0b565b838361164b565b5050565b610cb8610cb2610f0b565b83610fc8565b610cf7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cee90612d06565b60405180910390fd5b610d03848484846117b2565b50505050565b6060610d1482610ec0565b5f610d1d61180e565b90505f815111610d3b5760405180602001604052805f815250610d66565b80610d458461189e565b604051602001610d5692919061320a565b6040516020818303038152906040525b915050919050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b610d9b826107ce565b610da481611348565b610dae8383611437565b505050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b600a5481565b5f7f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610eb95750610eb882611968565b5b9050919050565b610ec981611a49565b610f08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eff90612eb8565b60405180910390fd5b50565b5f33905090565b8160045f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610f82836109c8565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b5f80610fd3836109c8565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061101557506110148185610db3565b5b8061105357508373ffffffffffffffffffffffffffffffffffffffff1661103b84610616565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661107c826109c8565b73ffffffffffffffffffffffffffffffffffffffff16146110d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c99061329d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611140576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111379061332b565b60405180910390fd5b61114d8383836001611a89565b8273ffffffffffffffffffffffffffffffffffffffff1661116d826109c8565b73ffffffffffffffffffffffffffffffffffffffff16146111c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ba9061329d565b60405180910390fd5b60045f8281526020019081526020015f205f6101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282540392505081905550600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46113438383836001611aa3565b505050565b61135981611354610f0b565b611aa9565b50565b6113668282610b59565b61143357600160075f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506113d8610f0b565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6114418282610b59565b1561150e575f60075f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506114b3610f0b565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b61151a611b2d565b5f60065f6101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61155c610f0b565b60405161156991906125fe565b60405180910390a1565b5f815f01549050919050565b6001815f015f828254019250508190555050565b6115ac828260405180602001604052805f815250611b76565b5050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6115f1611bd0565b600160065f6101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611634610f0b565b60405161164191906125fe565b60405180910390a1565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b090613393565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516117a5919061249e565b60405180910390a3505050565b6117bd84848461105c565b6117c984848484611c1a565b611808576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ff90613421565b60405180910390fd5b50505050565b60606009805461181d90612b4a565b80601f016020809104026020016040519081016040528092919081815260200182805461184990612b4a565b80156118945780601f1061186b57610100808354040283529160200191611894565b820191905f5260205f20905b81548152906001019060200180831161187757829003601f168201915b5050505050905090565b60605f60016118ac84611d9c565b0190505f8167ffffffffffffffff8111156118ca576118c96127ee565b5b6040519080825280601f01601f1916602001820160405280156118fc5781602001600182028036833780820191505090505b5090505f82602001820190505b60011561195d578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816119525761195161343f565b5b0494505f8503611909575b819350505050919050565b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611a3257507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611a425750611a4182611eed565b5b9050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff16611a6a836115b0565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b611a91611bd0565b611a9d84848484611f56565b50505050565b50505050565b611ab38282610b59565b611b2957611ac081611f5c565b611acd835f1c6020611f89565b604051602001611ade929190613500565b6040516020818303038152906040526040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b209190612541565b60405180910390fd5b5050565b611b356109b3565b611b74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6b90613583565b60405180910390fd5b565b611b8083836121be565b611b8c5f848484611c1a565b611bcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc290613421565b60405180910390fd5b505050565b611bd86109b3565b15611c18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0f906135eb565b60405180910390fd5b565b5f611c3a8473ffffffffffffffffffffffffffffffffffffffff166123d1565b15611d8f578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611c63610f0b565b8786866040518563ffffffff1660e01b8152600401611c85949392919061365b565b6020604051808303815f875af1925050508015611cc057506040513d601f19601f82011682018060405250810190611cbd91906136b9565b60015b611d3f573d805f8114611cee576040519150601f19603f3d011682016040523d82523d5f602084013e611cf3565b606091505b505f815103611d37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2e90613421565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611d94565b600190505b949350505050565b5f805f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611df8577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381611dee57611ded61343f565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611e35576d04ee2d6d415b85acef81000000008381611e2b57611e2a61343f565b5b0492506020810190505b662386f26fc100008310611e6457662386f26fc100008381611e5a57611e5961343f565b5b0492506010810190505b6305f5e1008310611e8d576305f5e1008381611e8357611e8261343f565b5b0492506008810190505b6127108310611eb2576127108381611ea857611ea761343f565b5b0492506004810190505b60648310611ed55760648381611ecb57611eca61343f565b5b0492506002810190505b600a8310611ee4576001810190505b80915050919050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b50505050565b6060611f828273ffffffffffffffffffffffffffffffffffffffff16601460ff16611f89565b9050919050565b60605f6002836002611f9b91906136e4565b611fa59190613725565b67ffffffffffffffff811115611fbe57611fbd6127ee565b5b6040519080825280601f01601f191660200182016040528015611ff05781602001600182028036833780820191505090505b5090507f3000000000000000000000000000000000000000000000000000000000000000815f8151811061202757612026613758565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061208a57612089613758565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053505f60018460026120c891906136e4565b6120d29190613725565b90505b6001811115612171577f3031323334353637383961626364656600000000000000000000000000000000600f86166010811061211457612113613758565b5b1a60f81b82828151811061212b5761212a613758565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600485901c94508061216a90612e47565b90506120d5565b505f84146121b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ab906137cf565b60405180910390fd5b8091505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361222c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222390613837565b60405180910390fd5b61223581611a49565b15612275576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226c9061389f565b60405180910390fd5b6122825f83836001611a89565b61228b81611a49565b156122cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c29061389f565b60405180910390fd5b600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46123cd5f83836001611aa3565b5050565b5f808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61243881612404565b8114612442575f80fd5b50565b5f813590506124538161242f565b92915050565b5f6020828403121561246e5761246d6123fc565b5b5f61247b84828501612445565b91505092915050565b5f8115159050919050565b61249881612484565b82525050565b5f6020820190506124b15f83018461248f565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156124ee5780820151818401526020810190506124d3565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612513826124b7565b61251d81856124c1565b935061252d8185602086016124d1565b612536816124f9565b840191505092915050565b5f6020820190508181035f8301526125598184612509565b905092915050565b5f819050919050565b61257381612561565b811461257d575f80fd5b50565b5f8135905061258e8161256a565b92915050565b5f602082840312156125a9576125a86123fc565b5b5f6125b684828501612580565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6125e8826125bf565b9050919050565b6125f8816125de565b82525050565b5f6020820190506126115f8301846125ef565b92915050565b612620816125de565b811461262a575f80fd5b50565b5f8135905061263b81612617565b92915050565b5f8060408385031215612657576126566123fc565b5b5f6126648582860161262d565b925050602061267585828601612580565b9150509250929050565b5f805f60608486031215612696576126956123fc565b5b5f6126a38682870161262d565b93505060206126b48682870161262d565b92505060406126c586828701612580565b9150509250925092565b5f819050919050565b6126e1816126cf565b81146126eb575f80fd5b50565b5f813590506126fc816126d8565b92915050565b5f60208284031215612717576127166123fc565b5b5f612724848285016126ee565b91505092915050565b612736816126cf565b82525050565b5f60208201905061274f5f83018461272d565b92915050565b5f806040838503121561276b5761276a6123fc565b5b5f612778858286016126ee565b92505060206127898582860161262d565b9150509250929050565b5f602082840312156127a8576127a76123fc565b5b5f6127b58482850161262d565b91505092915050565b6127c781612561565b82525050565b5f6020820190506127e05f8301846127be565b92915050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612824826124f9565b810181811067ffffffffffffffff82111715612843576128426127ee565b5b80604052505050565b5f6128556123f3565b9050612861828261281b565b919050565b5f67ffffffffffffffff8211156128805761287f6127ee565b5b612889826124f9565b9050602081019050919050565b828183375f83830152505050565b5f6128b66128b184612866565b61284c565b9050828152602081018484840111156128d2576128d16127ea565b5b6128dd848285612896565b509392505050565b5f82601f8301126128f9576128f86127e6565b5b81356129098482602086016128a4565b91505092915050565b5f60208284031215612927576129266123fc565b5b5f82013567ffffffffffffffff81111561294457612943612400565b5b612950848285016128e5565b91505092915050565b61296281612484565b811461296c575f80fd5b50565b5f8135905061297d81612959565b92915050565b5f8060408385031215612999576129986123fc565b5b5f6129a68582860161262d565b92505060206129b78582860161296f565b9150509250929050565b5f67ffffffffffffffff8211156129db576129da6127ee565b5b6129e4826124f9565b9050602081019050919050565b5f612a036129fe846129c1565b61284c565b905082815260208101848484011115612a1f57612a1e6127ea565b5b612a2a848285612896565b509392505050565b5f82601f830112612a4657612a456127e6565b5b8135612a568482602086016129f1565b91505092915050565b5f805f8060808587031215612a7757612a766123fc565b5b5f612a848782880161262d565b9450506020612a958782880161262d565b9350506040612aa687828801612580565b925050606085013567ffffffffffffffff811115612ac757612ac6612400565b5b612ad387828801612a32565b91505092959194509250565b5f8060408385031215612af557612af46123fc565b5b5f612b028582860161262d565b9250506020612b138582860161262d565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612b6157607f821691505b602082108103612b7457612b73612b1d565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e655f8201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b5f612bd46021836124c1565b9150612bdf82612b7a565b604082019050919050565b5f6020820190508181035f830152612c0181612bc8565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f5f8201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b5f612c62603d836124c1565b9150612c6d82612c08565b604082019050919050565b5f6020820190508181035f830152612c8f81612c56565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e655f8201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b5f612cf0602d836124c1565b9150612cfb82612c96565b604082019050919050565b5f6020820190508181035f830152612d1d81612ce4565b9050919050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e63655f8201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b5f612d7e602f836124c1565b9150612d8982612d24565b604082019050919050565b5f6020820190508181035f830152612dab81612d72565b9050919050565b7f6e6f20656e747279206c656674000000000000000000000000000000000000005f82015250565b5f612de6600d836124c1565b9150612df182612db2565b602082019050919050565b5f6020820190508181035f830152612e1381612dda565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612e5182612561565b91505f8203612e6357612e62612e1a565b5b600182039050919050565b7f4552433732313a20696e76616c696420746f6b656e20494400000000000000005f82015250565b5f612ea26018836124c1565b9150612ead82612e6e565b602082019050919050565b5f6020820190508181035f830152612ecf81612e96565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f7420612076615f8201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b5f612f306029836124c1565b9150612f3b82612ed6565b604082019050919050565b5f6020820190508181035f830152612f5d81612f24565b9050919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302612fc07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612f85565b612fca8683612f85565b95508019841693508086168417925050509392505050565b5f819050919050565b5f613005613000612ffb84612561565b612fe2565b612561565b9050919050565b5f819050919050565b61301e83612feb565b61303261302a8261300c565b848454612f91565b825550505050565b5f90565b61304661303a565b613051818484613015565b505050565b5b81811015613074576130695f8261303e565b600181019050613057565b5050565b601f8211156130b95761308a81612f64565b61309384612f76565b810160208510156130a2578190505b6130b66130ae85612f76565b830182613056565b50505b505050565b5f82821c905092915050565b5f6130d95f19846008026130be565b1980831691505092915050565b5f6130f183836130ca565b9150826002028217905092915050565b61310a826124b7565b67ffffffffffffffff811115613123576131226127ee565b5b61312d8254612b4a565b613138828285613078565b5f60209050601f831160018114613169575f8415613157578287015190505b61316185826130e6565b8655506131c8565b601f19841661317786612f64565b5f5b8281101561319e57848901518255600182019150602085019450602081019050613179565b868310156131bb57848901516131b7601f8916826130ca565b8355505b6001600288020188555050505b505050505050565b5f81905092915050565b5f6131e4826124b7565b6131ee81856131d0565b93506131fe8185602086016124d1565b80840191505092915050565b5f61321582856131da565b915061322182846131da565b91508190509392505050565b7f4552433732313a207472616e736665722066726f6d20696e636f7272656374205f8201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b5f6132876025836124c1565b91506132928261322d565b604082019050919050565b5f6020820190508181035f8301526132b48161327b565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6133156024836124c1565b9150613320826132bb565b604082019050919050565b5f6020820190508181035f83015261334281613309565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c6572000000000000005f82015250565b5f61337d6019836124c1565b915061338882613349565b602082019050919050565b5f6020820190508181035f8301526133aa81613371565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e2045524337323152655f8201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b5f61340b6032836124c1565b9150613416826133b1565b604082019050919050565b5f6020820190508181035f830152613438816133ff565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000005f82015250565b5f6134a06017836131d0565b91506134ab8261346c565b601782019050919050565b7f206973206d697373696e6720726f6c65200000000000000000000000000000005f82015250565b5f6134ea6011836131d0565b91506134f5826134b6565b601182019050919050565b5f61350a82613494565b915061351682856131da565b9150613521826134de565b915061352d82846131da565b91508190509392505050565b7f5061757361626c653a206e6f74207061757365640000000000000000000000005f82015250565b5f61356d6014836124c1565b915061357882613539565b602082019050919050565b5f6020820190508181035f83015261359a81613561565b9050919050565b7f5061757361626c653a20706175736564000000000000000000000000000000005f82015250565b5f6135d56010836124c1565b91506135e0826135a1565b602082019050919050565b5f6020820190508181035f830152613602816135c9565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f61362d82613609565b6136378185613613565b93506136478185602086016124d1565b613650816124f9565b840191505092915050565b5f60808201905061366e5f8301876125ef565b61367b60208301866125ef565b61368860408301856127be565b818103606083015261369a8184613623565b905095945050505050565b5f815190506136b38161242f565b92915050565b5f602082840312156136ce576136cd6123fc565b5b5f6136db848285016136a5565b91505092915050565b5f6136ee82612561565b91506136f983612561565b925082820261370781612561565b9150828204841483151761371e5761371d612e1a565b5b5092915050565b5f61372f82612561565b915061373a83612561565b925082820190508082111561375257613751612e1a565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f537472696e67733a20686578206c656e67746820696e73756666696369656e745f82015250565b5f6137b96020836124c1565b91506137c482613785565b602082019050919050565b5f6020820190508181035f8301526137e6816137ad565b9050919050565b7f4552433732313a206d696e7420746f20746865207a65726f20616464726573735f82015250565b5f6138216020836124c1565b915061382c826137ed565b602082019050919050565b5f6020820190508181035f83015261384e81613815565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e746564000000005f82015250565b5f613889601c836124c1565b915061389482613855565b602082019050919050565b5f6020820190508181035f8301526138b68161387d565b905091905056fea2646970667358221220414282836198f17733e4de7cef0c29cc5c1cac73525aa279f8f12536db6e64d164736f6c63430008140033