[ { "inputs": [ { "internalType": "string", "name": "baseURI_", "type": "string" }, { "internalType": "address", "name": "initialOwner", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "ERC721EnumerableForbiddenBatchMint", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC721IncorrectOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC721InsufficientApproval", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC721InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "name": "ERC721InvalidOperator", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC721InvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC721InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC721InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC721NonexistentToken", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "ERC721OutOfBoundsIndex", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "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": 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": "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" }, { "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": [], "name": "baseURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "count", "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": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "mintPrice", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mintStart", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "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": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "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": "baseURI_", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "val", "type": "uint256" } ], "name": "setMintPrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "setMintStart", "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": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenOfOwnerByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "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": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" } ], "name": "walletOfOwner", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "withdraw", "outputs": [], "stateMutability": "payable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60806040525f600b555f600d556001600e5f6101000a81548160ff02191690831515021790555034801562000032575f80fd5b5060405162003d5438038062003d54833981810160405281019062000058919062000431565b6040518060400160405280600c81526020017f426c61737420574f4f4c465900000000000000000000000000000000000000008152506040518060400160405280600481526020017f574c465900000000000000000000000000000000000000000000000000000000815250825f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000138575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016200012f9190620004a6565b60405180910390fd5b62000149816200018a60201b60201c565b5081600190816200015b9190620006f8565b5080600290816200016d9190620006f8565b50505081600c9081620001819190620006f8565b505050620007dc565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620002ac8262000264565b810181811067ffffffffffffffff82111715620002ce57620002cd62000274565b5b80604052505050565b5f620002e26200024b565b9050620002f08282620002a1565b919050565b5f67ffffffffffffffff82111562000312576200031162000274565b5b6200031d8262000264565b9050602081019050919050565b5f5b83811015620003495780820151818401526020810190506200032c565b5f8484015250505050565b5f6200036a6200036484620002f5565b620002d7565b90508281526020810184848401111562000389576200038862000260565b5b620003968482856200032a565b509392505050565b5f82601f830112620003b557620003b46200025c565b5b8151620003c784826020860162000354565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620003fb82620003d0565b9050919050565b6200040d81620003ef565b811462000418575f80fd5b50565b5f815190506200042b8162000402565b92915050565b5f80604083850312156200044a576200044962000254565b5b5f83015167ffffffffffffffff8111156200046a576200046962000258565b5b62000478858286016200039e565b92505060206200048b858286016200041b565b9150509250929050565b620004a081620003ef565b82525050565b5f602082019050620004bb5f83018462000495565b92915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200051057607f821691505b602082108103620005265762000525620004cb565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200058a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200054d565b6200059686836200054d565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620005e0620005da620005d484620005ae565b620005b7565b620005ae565b9050919050565b5f819050919050565b620005fb83620005c0565b620006136200060a82620005e7565b84845462000559565b825550505050565b5f90565b620006296200061b565b62000636818484620005f0565b505050565b5b818110156200065d57620006515f826200061f565b6001810190506200063c565b5050565b601f821115620006ac5762000676816200052c565b62000681846200053e565b8101602085101562000691578190505b620006a9620006a0856200053e565b8301826200063b565b50505b505050565b5f82821c905092915050565b5f620006ce5f1984600802620006b1565b1980831691505092915050565b5f620006e88383620006bd565b9150826002028217905092915050565b6200070382620004c1565b67ffffffffffffffff8111156200071f576200071e62000274565b5b6200072b8254620004f8565b6200073882828562000661565b5f60209050601f8311600181146200076e575f841562000759578287015190505b620007658582620006db565b865550620007d4565b601f1984166200077e866200052c565b5f5b82811015620007a75784890151825560018201915060208501945060208101905062000780565b86831015620007c75784890151620007c3601f891682620006bd565b8355505b6001600288020188555050505b505050505050565b61356a80620007ea5f395ff3fe6080604052600436106101c5575f3560e01c80636352211e116100f6578063a0712d6811610094578063e985e9c511610063578063e985e9c51461062c578063f2fde38b14610668578063f4a0a52814610690578063f7eee29c146106b8576101cc565b8063a0712d6814610584578063a22cb465146105a0578063b88d4fde146105c8578063c87b56dd146105f0576101cc565b806370a08231116100d057806370a08231146104de578063715018a61461051a5780638da5cb5b1461053057806395d89b411461055a576101cc565b80636352211e1461044e5780636817c76c1461048a5780636c0360eb146104b4576101cc565b8063255e46851161016357806342842e0e1161013d57806342842e0e14610386578063438b6300146103ae5780634f6ccce7146103ea57806355f804b314610426576101cc565b8063255e4685146103165780632f745c59146103405780633ccfd60b1461037c576101cc565b8063081812fc1161019f578063081812fc14610260578063095ea7b31461029c57806318160ddd146102c457806323b872dd146102ee576101cc565b806301ffc9a7146101d057806306661abd1461020c57806306fdde0314610236576101cc565b366101cc57005b5f80fd5b3480156101db575f80fd5b506101f660048036038101906101f19190612602565b6106ce565b6040516102039190612647565b60405180910390f35b348015610217575f80fd5b50610220610747565b60405161022d9190612678565b60405180910390f35b348015610241575f80fd5b5061024a61074d565b604051610257919061271b565b60405180910390f35b34801561026b575f80fd5b5061028660048036038101906102819190612765565b6107dd565b60405161029391906127cf565b60405180910390f35b3480156102a7575f80fd5b506102c260048036038101906102bd9190612812565b6107f8565b005b3480156102cf575f80fd5b506102d861080e565b6040516102e59190612678565b60405180910390f35b3480156102f9575f80fd5b50610314600480360381019061030f9190612850565b61081a565b005b348015610321575f80fd5b5061032a610919565b6040516103379190612647565b60405180910390f35b34801561034b575f80fd5b5061036660048036038101906103619190612812565b61092b565b6040516103739190612678565b60405180910390f35b6103846109cf565b005b348015610391575f80fd5b506103ac60048036038101906103a79190612850565b610a52565b005b3480156103b9575f80fd5b506103d460048036038101906103cf91906128a0565b610a71565b6040516103e19190612982565b60405180910390f35b3480156103f5575f80fd5b50610410600480360381019061040b9190612765565b610b16565b60405161041d9190612678565b60405180910390f35b348015610431575f80fd5b5061044c60048036038101906104479190612ace565b610b88565b005b348015610459575f80fd5b50610474600480360381019061046f9190612765565b610ba3565b60405161048191906127cf565b60405180910390f35b348015610495575f80fd5b5061049e610bb4565b6040516104ab9190612678565b60405180910390f35b3480156104bf575f80fd5b506104c8610bba565b6040516104d5919061271b565b60405180910390f35b3480156104e9575f80fd5b5061050460048036038101906104ff91906128a0565b610c46565b6040516105119190612678565b60405180910390f35b348015610525575f80fd5b5061052e610cfc565b005b34801561053b575f80fd5b50610544610d0f565b60405161055191906127cf565b60405180910390f35b348015610565575f80fd5b5061056e610d36565b60405161057b919061271b565b60405180910390f35b61059e60048036038101906105999190612765565b610dc6565b005b3480156105ab575f80fd5b506105c660048036038101906105c19190612b3f565b610fbf565b005b3480156105d3575f80fd5b506105ee60048036038101906105e99190612c1b565b610fd5565b005b3480156105fb575f80fd5b5061061660048036038101906106119190612765565b610ff2565b604051610623919061271b565b60405180910390f35b348015610637575f80fd5b50610652600480360381019061064d9190612c9b565b61104e565b60405161065f9190612647565b60405180910390f35b348015610673575f80fd5b5061068e600480360381019061068991906128a0565b6110dc565b005b34801561069b575f80fd5b506106b660048036038101906106b19190612765565b611160565b005b3480156106c3575f80fd5b506106cc611172565b005b5f7f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610740575061073f826111cf565b5b9050919050565b600d5481565b60606001805461075c90612d06565b80601f016020809104026020016040519081016040528092919081815260200182805461078890612d06565b80156107d35780601f106107aa576101008083540402835291602001916107d3565b820191905f5260205f20905b8154815290600101906020018083116107b657829003601f168201915b5050505050905090565b5f6107e7826112b0565b506107f182611336565b9050919050565b61080a828261080561136f565b611376565b5050565b5f600980549050905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361088a575f6040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161088191906127cf565b60405180910390fd5b5f61089d838361089861136f565b611388565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610913578382826040517f64283d7b00000000000000000000000000000000000000000000000000000000815260040161090a93929190612d36565b60405180910390fd5b50505050565b600e5f9054906101000a900460ff1681565b5f61093583610c46565b821061097a5782826040517fa57d13dc000000000000000000000000000000000000000000000000000000008152600401610971929190612d6b565b60405180910390fd5b60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2054905092915050565b6109d76114a2565b5f6109e0610d0f565b73ffffffffffffffffffffffffffffffffffffffff1647604051610a0390612dbf565b5f6040518083038185875af1925050503d805f8114610a3d576040519150601f19603f3d011682016040523d82523d5f602084013e610a42565b606091505b5050905080610a4f575f80fd5b50565b610a6c83838360405180602001604052805f815250610fd5565b505050565b60605f610a7d83610c46565b90505f8167ffffffffffffffff811115610a9a57610a996129aa565b5b604051908082528060200260200182016040528015610ac85781602001602082028036833780820191505090505b5090505f5b82811015610b0b57610adf858261092b565b828281518110610af257610af1612dd3565b5b6020026020010181815250508080600101915050610acd565b508092505050919050565b5f610b1f61080e565b8210610b64575f826040517fa57d13dc000000000000000000000000000000000000000000000000000000008152600401610b5b929190612d6b565b60405180910390fd5b60098281548110610b7857610b77612dd3565b5b905f5260205f2001549050919050565b610b906114a2565b80600c9081610b9f9190612f9d565b5050565b5f610bad826112b0565b9050919050565b600b5481565b600c8054610bc790612d06565b80601f0160208091040260200160405190810160405280929190818152602001828054610bf390612d06565b8015610c3e5780601f10610c1557610100808354040283529160200191610c3e565b820191905f5260205f20905b815481529060010190602001808311610c2157829003601f168201915b505050505081565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610cb7575f6040517f89c62b64000000000000000000000000000000000000000000000000000000008152600401610cae91906127cf565b60405180910390fd5b60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610d046114a2565b610d0d5f611529565b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060028054610d4590612d06565b80601f0160208091040260200160405190810160405280929190818152602001828054610d7190612d06565b8015610dbc5780601f10610d9357610100808354040283529160200191610dbc565b820191905f5260205f20905b815481529060010190602001808311610d9f57829003601f168201915b5050505050905090565b60011515600e5f9054906101000a900460ff16151514610e1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e12906130b6565b60405180910390fd5b600b5481610e299190613101565b341015610e6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e629061318c565b60405180910390fd5b5f8111610e76575f80fd5b6103e8811115610ebb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb29061321a565b60405180910390fd5b620186a0600d5482610ecd9190613238565b1115610f0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f05906132b5565b60405180910390fd5b5f5b81811015610f4257610f3533600d5f8154610f2a906132d3565b9190508190556115ea565b8080600101915050610f10565b505f610f4c610d0f565b73ffffffffffffffffffffffffffffffffffffffff1634604051610f6f90612dbf565b5f6040518083038185875af1925050503d805f8114610fa9576040519150601f19603f3d011682016040523d82523d5f602084013e610fae565b606091505b5050905080610fbb575f80fd5b5050565b610fd1610fca61136f565b8383611607565b5050565b610fe084848461081a565b610fec84848484611770565b50505050565b60605f610ffd611922565b90505f81511161101b5760405180602001604052805f815250611046565b80611025846119b2565b60405160200161103692919061339e565b6040516020818303038152906040525b915050919050565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b6110e46114a2565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611154575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161114b91906127cf565b60405180910390fd5b61115d81611529565b50565b6111686114a2565b80600b8190555050565b61117a6114a2565b60011515600e5f9054906101000a900460ff161515036111b2575f600e5f6101000a81548160ff0219169083151502179055506111cd565b6001600e5f6101000a81548160ff0219169083151502179055505b565b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061129957507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806112a957506112a882611a7c565b5b9050919050565b5f806112bb83611ae5565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361132d57826040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016113249190612678565b60405180910390fd5b80915050919050565b5f60055f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f33905090565b6113838383836001611b1e565b505050565b5f80611395858585611cdd565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036113d8576113d384611ee8565b611417565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611416576114158185611f2c565b5b5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036114585761145384612076565b611497565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611496576114958585612136565b5b5b809150509392505050565b6114aa61136f565b73ffffffffffffffffffffffffffffffffffffffff166114c8610d0f565b73ffffffffffffffffffffffffffffffffffffffff1614611527576114eb61136f565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161151e91906127cf565b60405180910390fd5b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611603828260405180602001604052805f8152506121ba565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361167757816040517f5b08ba1800000000000000000000000000000000000000000000000000000000815260040161166e91906127cf565b60405180910390fd5b8060065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516117639190612647565b60405180910390a3505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b111561191c578273ffffffffffffffffffffffffffffffffffffffff1663150b7a026117b361136f565b8685856040518563ffffffff1660e01b81526004016117d5949392919061341e565b6020604051808303815f875af192505050801561181057506040513d601f19601f8201168201806040525081019061180d919061347c565b60015b611891573d805f811461183e576040519150601f19603f3d011682016040523d82523d5f602084013e611843565b606091505b505f81510361188957836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161188091906127cf565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461191a57836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161191191906127cf565b60405180910390fd5b505b50505050565b6060600c805461193190612d06565b80601f016020809104026020016040519081016040528092919081815260200182805461195d90612d06565b80156119a85780601f1061197f576101008083540402835291602001916119a8565b820191905f5260205f20905b81548152906001019060200180831161198b57829003601f168201915b5050505050905090565b60605f60016119c0846121d5565b0190505f8167ffffffffffffffff8111156119de576119dd6129aa565b5b6040519080825280601f01601f191660200182016040528015611a105781602001600182028036833780820191505090505b5090505f82602001820190505b600115611a71578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611a6657611a656134a7565b5b0494505f8503611a1d575b819350505050919050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f60035f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8080611b5657505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611c88575f611b65846112b0565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611bcf57508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611be25750611be0818461104e565b155b15611c2457826040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401611c1b91906127cf565b60405180910390fd5b8115611c8657838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360055f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b5f80611ce884611ae5565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611d2957611d28818486612326565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611db457611d685f855f80611b1e565b600160045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614611e3357600160045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460035f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b600980549050600a5f8381526020019081526020015f2081905550600981908060018154018082558091505060019003905f5260205f20015f909190919091505550565b5f611f3683610c46565b90505f60085f8481526020019081526020015f2054905081811461200d575f60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f205490508060075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f20819055508160085f8381526020019081526020015f2081905550505b60085f8481526020019081526020015f205f905560075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f205f905550505050565b5f600160098054905061208991906134d4565b90505f600a5f8481526020019081526020015f205490505f600983815481106120b5576120b4612dd3565b5b905f5260205f200154905080600983815481106120d5576120d4612dd3565b5b905f5260205f20018190555081600a5f8381526020019081526020015f2081905550600a5f8581526020019081526020015f205f9055600980548061211d5761211c613507565b5b600190038181905f5260205f20015f9055905550505050565b5f600161214284610c46565b61214c91906134d4565b90508160075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f20819055508060085f8481526020019081526020015f2081905550505050565b6121c483836123e9565b6121d05f848484611770565b505050565b5f805f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612231577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381612227576122266134a7565b5b0492506040810190505b6d04ee2d6d415b85acef8100000000831061226e576d04ee2d6d415b85acef81000000008381612264576122636134a7565b5b0492506020810190505b662386f26fc10000831061229d57662386f26fc100008381612293576122926134a7565b5b0492506010810190505b6305f5e10083106122c6576305f5e10083816122bc576122bb6134a7565b5b0492506008810190505b61271083106122eb5761271083816122e1576122e06134a7565b5b0492506004810190505b6064831061230e5760648381612304576123036134a7565b5b0492506002810190505b600a831061231d576001810190505b80915050919050565b6123318383836124dc565b6123e4575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036123a557806040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161239c9190612678565b60405180910390fd5b81816040517f177e802f0000000000000000000000000000000000000000000000000000000081526004016123db929190612d6b565b60405180910390fd5b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612459575f6040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161245091906127cf565b60405180910390fd5b5f61246583835f611388565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146124d7575f6040517f73c6ac6e0000000000000000000000000000000000000000000000000000000081526004016124ce91906127cf565b60405180910390fd5b505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561259357508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806125545750612553848461104e565b5b8061259257508273ffffffffffffffffffffffffffffffffffffffff1661257a83611336565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6125e1816125ad565b81146125eb575f80fd5b50565b5f813590506125fc816125d8565b92915050565b5f60208284031215612617576126166125a5565b5b5f612624848285016125ee565b91505092915050565b5f8115159050919050565b6126418161262d565b82525050565b5f60208201905061265a5f830184612638565b92915050565b5f819050919050565b61267281612660565b82525050565b5f60208201905061268b5f830184612669565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156126c85780820151818401526020810190506126ad565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6126ed82612691565b6126f7818561269b565b93506127078185602086016126ab565b612710816126d3565b840191505092915050565b5f6020820190508181035f83015261273381846126e3565b905092915050565b61274481612660565b811461274e575f80fd5b50565b5f8135905061275f8161273b565b92915050565b5f6020828403121561277a576127796125a5565b5b5f61278784828501612751565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6127b982612790565b9050919050565b6127c9816127af565b82525050565b5f6020820190506127e25f8301846127c0565b92915050565b6127f1816127af565b81146127fb575f80fd5b50565b5f8135905061280c816127e8565b92915050565b5f8060408385031215612828576128276125a5565b5b5f612835858286016127fe565b925050602061284685828601612751565b9150509250929050565b5f805f60608486031215612867576128666125a5565b5b5f612874868287016127fe565b9350506020612885868287016127fe565b925050604061289686828701612751565b9150509250925092565b5f602082840312156128b5576128b46125a5565b5b5f6128c2848285016127fe565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6128fd81612660565b82525050565b5f61290e83836128f4565b60208301905092915050565b5f602082019050919050565b5f612930826128cb565b61293a81856128d5565b9350612945836128e5565b805f5b8381101561297557815161295c8882612903565b97506129678361291a565b925050600181019050612948565b5085935050505092915050565b5f6020820190508181035f83015261299a8184612926565b905092915050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6129e0826126d3565b810181811067ffffffffffffffff821117156129ff576129fe6129aa565b5b80604052505050565b5f612a1161259c565b9050612a1d82826129d7565b919050565b5f67ffffffffffffffff821115612a3c57612a3b6129aa565b5b612a45826126d3565b9050602081019050919050565b828183375f83830152505050565b5f612a72612a6d84612a22565b612a08565b905082815260208101848484011115612a8e57612a8d6129a6565b5b612a99848285612a52565b509392505050565b5f82601f830112612ab557612ab46129a2565b5b8135612ac5848260208601612a60565b91505092915050565b5f60208284031215612ae357612ae26125a5565b5b5f82013567ffffffffffffffff811115612b0057612aff6125a9565b5b612b0c84828501612aa1565b91505092915050565b612b1e8161262d565b8114612b28575f80fd5b50565b5f81359050612b3981612b15565b92915050565b5f8060408385031215612b5557612b546125a5565b5b5f612b62858286016127fe565b9250506020612b7385828601612b2b565b9150509250929050565b5f67ffffffffffffffff821115612b9757612b966129aa565b5b612ba0826126d3565b9050602081019050919050565b5f612bbf612bba84612b7d565b612a08565b905082815260208101848484011115612bdb57612bda6129a6565b5b612be6848285612a52565b509392505050565b5f82601f830112612c0257612c016129a2565b5b8135612c12848260208601612bad565b91505092915050565b5f805f8060808587031215612c3357612c326125a5565b5b5f612c40878288016127fe565b9450506020612c51878288016127fe565b9350506040612c6287828801612751565b925050606085013567ffffffffffffffff811115612c8357612c826125a9565b5b612c8f87828801612bee565b91505092959194509250565b5f8060408385031215612cb157612cb06125a5565b5b5f612cbe858286016127fe565b9250506020612ccf858286016127fe565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612d1d57607f821691505b602082108103612d3057612d2f612cd9565b5b50919050565b5f606082019050612d495f8301866127c0565b612d566020830185612669565b612d6360408301846127c0565b949350505050565b5f604082019050612d7e5f8301856127c0565b612d8b6020830184612669565b9392505050565b5f81905092915050565b50565b5f612daa5f83612d92565b9150612db582612d9c565b5f82019050919050565b5f612dc982612d9f565b9150819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302612e5c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612e21565b612e668683612e21565b95508019841693508086168417925050509392505050565b5f819050919050565b5f612ea1612e9c612e9784612660565b612e7e565b612660565b9050919050565b5f819050919050565b612eba83612e87565b612ece612ec682612ea8565b848454612e2d565b825550505050565b5f90565b612ee2612ed6565b612eed818484612eb1565b505050565b5b81811015612f1057612f055f82612eda565b600181019050612ef3565b5050565b601f821115612f5557612f2681612e00565b612f2f84612e12565b81016020851015612f3e578190505b612f52612f4a85612e12565b830182612ef2565b50505b505050565b5f82821c905092915050565b5f612f755f1984600802612f5a565b1980831691505092915050565b5f612f8d8383612f66565b9150826002028217905092915050565b612fa682612691565b67ffffffffffffffff811115612fbf57612fbe6129aa565b5b612fc98254612d06565b612fd4828285612f14565b5f60209050601f831160018114613005575f8415612ff3578287015190505b612ffd8582612f82565b865550613064565b601f19841661301386612e00565b5f5b8281101561303a57848901518255600182019150602085019450602081019050613015565b868310156130575784890151613053601f891682612f66565b8355505b6001600288020188555050505b505050505050565b7f4d696e74206e6f742079657420737461727465642e00000000000000000000005f82015250565b5f6130a060158361269b565b91506130ab8261306c565b602082019050919050565b5f6020820190508181035f8301526130cd81613094565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61310b82612660565b915061311683612660565b925082820261312481612660565b9150828204841483151761313b5761313a6130d4565b5b5092915050565b7f4d696e74207072696365206572726f722e2023310000000000000000000000005f82015250565b5f61317660148361269b565b915061318182613142565b602082019050919050565b5f6020820190508181035f8301526131a38161316a565b9050919050565b7f596f752063616e206d616b652061206d6178696d756d206f66203230206d696e5f8201527f7420696e2065616368207472616e73616374696f6e2e00000000000000000000602082015250565b5f61320460368361269b565b915061320f826131aa565b604082019050919050565b5f6020820190508181035f830152613231816131f8565b9050919050565b5f61324282612660565b915061324d83612660565b9250828201905080821115613265576132646130d4565b5b92915050565b7f536f6c64206f75742e20233200000000000000000000000000000000000000005f82015250565b5f61329f600c8361269b565b91506132aa8261326b565b602082019050919050565b5f6020820190508181035f8301526132cc81613293565b9050919050565b5f6132dd82612660565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361330f5761330e6130d4565b5b600182019050919050565b5f81905092915050565b5f61332e82612691565b613338818561331a565b93506133488185602086016126ab565b80840191505092915050565b7f2e6a736f6e0000000000000000000000000000000000000000000000000000005f82015250565b5f61338860058361331a565b915061339382613354565b600582019050919050565b5f6133a98285613324565b91506133b58284613324565b91506133c08261337c565b91508190509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f6133f0826133cc565b6133fa81856133d6565b935061340a8185602086016126ab565b613413816126d3565b840191505092915050565b5f6080820190506134315f8301876127c0565b61343e60208301866127c0565b61344b6040830185612669565b818103606083015261345d81846133e6565b905095945050505050565b5f81519050613476816125d8565b92915050565b5f60208284031215613491576134906125a5565b5b5f61349e84828501613468565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6134de82612660565b91506134e983612660565b9250828203905081811115613501576135006130d4565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfea2646970667358221220b94e30a6b83bbbadbe6658d803c586f993da066ce58ef1774a734c5ee85076a464736f6c634300081700330000000000000000000000000000000000000000000000000000000000000040000000000000000000000000f0246c84bb2dcb2c68a17047480a669d59e2f41c0000000000000000000000000000000000000000000000000000000000000043697066733a2f2f626166796265696276706170756469376d336471766e6e796566327578686b7579356e6e6c336c6563733370796f7034726b666673623335686f342f0000000000000000000000000000000000000000000000000000000000