[ { "inputs": [ { "internalType": "string", "name": "_initURI", "type": "string" } ], "stateMutability": "payable", "type": "constructor" }, { "inputs": [], "name": "ApprovalCallerNotOwnerNorApproved", "type": "error" }, { "inputs": [], "name": "ApprovalQueryForNonexistentToken", "type": "error" }, { "inputs": [], "name": "BalanceQueryForZeroAddress", "type": "error" }, { "inputs": [], "name": "MaxPerTxReached", "type": "error" }, { "inputs": [], "name": "MaxSupplyReached", "type": "error" }, { "inputs": [], "name": "MintERC2309QuantityExceedsLimit", "type": "error" }, { "inputs": [], "name": "MintToZeroAddress", "type": "error" }, { "inputs": [], "name": "MintZeroQuantity", "type": "error" }, { "inputs": [], "name": "NotEnoughETH", "type": "error" }, { "inputs": [], "name": "OwnerQueryForNonexistentToken", "type": "error" }, { "inputs": [], "name": "OwnershipNotInitializedForExtraData", "type": "error" }, { "inputs": [], "name": "SaleNotActive", "type": "error" }, { "inputs": [], "name": "TransferCallerNotOwnerNorApproved", "type": "error" }, { "inputs": [], "name": "TransferFromIncorrectOwner", "type": "error" }, { "inputs": [], "name": "TransferToNonERC721ReceiverImplementer", "type": "error" }, { "inputs": [], "name": "TransferToZeroAddress", "type": "error" }, { "inputs": [], "name": "URIQueryForNonexistentToken", "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": "uint256", "name": "fromTokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "toTokenId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" } ], "name": "ConsecutiveTransfer", "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": "_amount", "type": "uint256" } ], "name": "airdrop", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "payable", "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": "cost", "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": [], "name": "maxMintsPerWallet", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxPerTx", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "mintedNFTs", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "payable", "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": "payable", "type": "function" }, { "inputs": [], "name": "sale", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "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": "_newURI", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_cost", "type": "uint256" } ], "name": "setCost", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_maxMintsPerWallet", "type": "uint256" } ], "name": "setMaxMintsPerWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_maxPerTx", "type": "uint256" } ], "name": "setMaxPerTx", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_maxSupply", "type": "uint256" } ], "name": "setSupply", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "startSale", "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": "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": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
6080604052610309600955660bb9551fc24000600a556003600b556003600c55604051620031983803806200319883398181016040528101906200004491906200037b565b6040518060400160405280600581526020017f53574545500000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f53575000000000000000000000000000000000000000000000000000000000008152508160029081620000c1919062000601565b508060039081620000d3919062000601565b50620000e46200012460201b60201c565b5f8190555050506200010b620000ff6200012c60201b60201c565b6200013360201b60201c565b80600e90816200011c919062000601565b5050620006e5565b5f6001905090565b5f33905090565b5f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b62000257826200020f565b810181811067ffffffffffffffff821117156200027957620002786200021f565b5b80604052505050565b5f6200028d620001f6565b90506200029b82826200024c565b919050565b5f67ffffffffffffffff821115620002bd57620002bc6200021f565b5b620002c8826200020f565b9050602081019050919050565b5f5b83811015620002f4578082015181840152602081019050620002d7565b5f8484015250505050565b5f620003156200030f84620002a0565b62000282565b9050828152602081018484840111156200033457620003336200020b565b5b62000341848285620002d5565b509392505050565b5f82601f83011262000360576200035f62000207565b5b815162000372848260208601620002ff565b91505092915050565b5f60208284031215620003935762000392620001ff565b5b5f82015167ffffffffffffffff811115620003b357620003b262000203565b5b620003c18482850162000349565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200041957607f821691505b6020821081036200042f576200042e620003d4565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620004937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000456565b6200049f868362000456565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620004e9620004e3620004dd84620004b7565b620004c0565b620004b7565b9050919050565b5f819050919050565b6200050483620004c9565b6200051c6200051382620004f0565b84845462000462565b825550505050565b5f90565b6200053262000524565b6200053f818484620004f9565b505050565b5b8181101562000566576200055a5f8262000528565b60018101905062000545565b5050565b601f821115620005b5576200057f8162000435565b6200058a8462000447565b810160208510156200059a578190505b620005b2620005a98562000447565b83018262000544565b50505b505050565b5f82821c905092915050565b5f620005d75f1984600802620005ba565b1980831691505092915050565b5f620005f18383620005c6565b9150826002028217905092915050565b6200060c82620003ca565b67ffffffffffffffff8111156200062857620006276200021f565b5b62000634825462000401565b620006418282856200056a565b5f60209050601f83116001811462000677575f841562000662578287015190505b6200066e8582620005e4565b865550620006dd565b601f198416620006878662000435565b5f5b82811015620006b05784890151825560018201915060208501945060208101905062000689565b86831015620006d05784890151620006cc601f891682620005c6565b8355505b6001600288020188555050505b505050505050565b612aa580620006f35f395ff3fe6080604052600436106101ed575f3560e01c8063715018a61161010c578063b88d4fde1161009f578063d5abeb011161006e578063d5abeb0114610665578063e985e9c51461068f578063f2fde38b146106cb578063f516a2e6146106f3578063f968adbe1461071d576101ed565b8063b88d4fde146105a9578063ba060bed146105c5578063c6f6f21614610601578063c87b56dd14610629576101ed565b8063963c3546116100db578063963c354614610527578063a0712d681461054f578063a22cb4651461056b578063b66a0e5d14610593576101ed565b8063715018a6146104955780638ba4cc3c146104ab5780638da5cb5b146104d357806395d89b41146104fd576101ed565b80633ccfd60b116101845780636352211e116101535780636352211e146103c95780636ad1fe02146104055780636c0360eb1461042f57806370a0823114610459576101ed565b80633ccfd60b1461034757806342842e0e1461035d57806344a0d68a1461037957806355f804b3146103a1576101ed565b806313faede6116101c057806313faede6146102af57806318160ddd146102d957806323b872dd146103035780633b4c4b251461031f576101ed565b806301ffc9a7146101f157806306fdde031461022d578063081812fc14610257578063095ea7b314610293575b5f80fd5b3480156101fc575f80fd5b5061021760048036038101906102129190611d26565b610747565b6040516102249190611d6b565b60405180910390f35b348015610238575f80fd5b506102416107d8565b60405161024e9190611e0e565b60405180910390f35b348015610262575f80fd5b5061027d60048036038101906102789190611e61565b610868565b60405161028a9190611ecb565b60405180910390f35b6102ad60048036038101906102a89190611f0e565b6108e2565b005b3480156102ba575f80fd5b506102c3610a21565b6040516102d09190611f5b565b60405180910390f35b3480156102e4575f80fd5b506102ed610a27565b6040516102fa9190611f5b565b60405180910390f35b61031d60048036038101906103189190611f74565b610a3c565b005b34801561032a575f80fd5b5061034560048036038101906103409190611e61565b610d4a565b005b348015610352575f80fd5b5061035b610d5c565b005b61037760048036038101906103729190611f74565b610e0f565b005b348015610384575f80fd5b5061039f600480360381019061039a9190611e61565b610e2e565b005b3480156103ac575f80fd5b506103c760048036038101906103c29190612025565b610e40565b005b3480156103d4575f80fd5b506103ef60048036038101906103ea9190611e61565b610e5e565b6040516103fc9190611ecb565b60405180910390f35b348015610410575f80fd5b50610419610e6f565b6040516104269190611d6b565b60405180910390f35b34801561043a575f80fd5b50610443610e81565b6040516104509190611e0e565b60405180910390f35b348015610464575f80fd5b5061047f600480360381019061047a9190612070565b610f0d565b60405161048c9190611f5b565b60405180910390f35b3480156104a0575f80fd5b506104a9610fc2565b005b3480156104b6575f80fd5b506104d160048036038101906104cc9190611f0e565b610fd5565b005b3480156104de575f80fd5b506104e7610feb565b6040516104f49190611ecb565b60405180910390f35b348015610508575f80fd5b50610511611013565b60405161051e9190611e0e565b60405180910390f35b348015610532575f80fd5b5061054d60048036038101906105489190611e61565b6110a3565b005b61056960048036038101906105649190611e61565b6110b5565b005b348015610576575f80fd5b50610591600480360381019061058c91906120c5565b6112b8565b005b34801561059e575f80fd5b506105a76113be565b005b6105c360048036038101906105be919061222b565b6113f0565b005b3480156105d0575f80fd5b506105eb60048036038101906105e69190612070565b611462565b6040516105f89190611f5b565b60405180910390f35b34801561060c575f80fd5b5061062760048036038101906106229190611e61565b611477565b005b348015610634575f80fd5b5061064f600480360381019061064a9190611e61565b611489565b60405161065c9190611e0e565b60405180910390f35b348015610670575f80fd5b506106796114fc565b6040516106869190611f5b565b60405180910390f35b34801561069a575f80fd5b506106b560048036038101906106b091906122ab565b611502565b6040516106c29190611d6b565b60405180910390f35b3480156106d6575f80fd5b506106f160048036038101906106ec9190612070565b611590565b005b3480156106fe575f80fd5b50610707611612565b6040516107149190611f5b565b60405180910390f35b348015610728575f80fd5b50610731611618565b60405161073e9190611f5b565b60405180910390f35b5f6301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806107a157506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806107d15750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b6060600280546107e790612316565b80601f016020809104026020016040519081016040528092919081815260200182805461081390612316565b801561085e5780601f106108355761010080835404028352916020019161085e565b820191905f5260205f20905b81548152906001019060200180831161084157829003601f168201915b5050505050905090565b5f6108728261161e565b6108a8576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60065f8381526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f6108ec82610e5e565b90508073ffffffffffffffffffffffffffffffffffffffff1661090d611678565b73ffffffffffffffffffffffffffffffffffffffff16146109705761093981610934611678565b611502565b61096f576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b8260065f8481526020019081526020015f205f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b600a5481565b5f610a3061167f565b6001545f540303905090565b5f610a4682611687565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610aad576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80610ab88461174a565b91509150610ace8187610ac9611678565b61176d565b610b1a57610ae386610ade611678565b611502565b610b19576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610b7f576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b8c86868660016117b0565b8015610b96575f82555b60055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8154600190039190508190555060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f815460010191905081905550610c5e85610c3a8888876117b6565b7c0200000000000000000000000000000000000000000000000000000000176117dd565b60045f8681526020019081526020015f20819055505f7c0200000000000000000000000000000000000000000000000000000000841603610cda575f6001850190505f60045f8381526020019081526020015f205403610cd8575f548114610cd7578360045f8381526020019081526020015f20819055505b5b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4610d428686866001611807565b505050505050565b610d5261180d565b8060098190555050565b610d6461180d565b5f3373ffffffffffffffffffffffffffffffffffffffff1647604051610d8990612373565b5f6040518083038185875af1925050503d805f8114610dc3576040519150601f19603f3d011682016040523d82523d5f602084013e610dc8565b606091505b5050905080610e0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e03906123d1565b60405180910390fd5b50565b610e2983838360405180602001604052805f8152506113f0565b505050565b610e3661180d565b80600a8190555050565b610e4861180d565b8181600e9182610e59929190612596565b505050565b5f610e6882611687565b9050919050565b600f5f9054906101000a900460ff1681565b600e8054610e8e90612316565b80601f0160208091040260200160405190810160405280929190818152602001828054610eba90612316565b8015610f055780601f10610edc57610100808354040283529160200191610f05565b820191905f5260205f20905b815481529060010190602001808311610ee857829003601f168201915b505050505081565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f73576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054169050919050565b610fca61180d565b610fd35f61188b565b565b610fdd61180d565b610fe7828261194e565b5050565b5f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606003805461102290612316565b80601f016020809104026020016040519081016040528092919081815260200182805461104e90612316565b80156110995780601f1061107057610100808354040283529160200191611099565b820191905f5260205f20905b81548152906001019060200180831161107c57829003601f168201915b5050505050905090565b6110ab61180d565b80600c8190555050565b600f5f9054906101000a900460ff166110fa576040517fb7b2409700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60095481611106611af7565b6111109190612690565b1115611148576040517fd05cb60900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600b54811115611184576040517f84eef40b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600a5461119291906126c3565b3410156111cb576040517f583aa02600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c5481600d5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546112179190612690565b1115611258576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124f9061274e565b60405180910390fd5b80600d5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546112a49190612690565b925050819055506112b5338261194e565b50565b8060075f6112c4611678565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff1661136d611678565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516113b29190611d6b565b60405180910390a35050565b6113c661180d565b600f5f9054906101000a900460ff1615600f5f6101000a81548160ff021916908315150217905550565b6113fb848484610a3c565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1461145c5761142584848484611b08565b61145b576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b600d602052805f5260405f205f915090505481565b61147f61180d565b80600b8190555050565b60606114948261161e565b6114ca576040517fa14c4b5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600e6114d583611c53565b6040516020016114e6929190612870565b6040516020818303038152906040529050919050565b60095481565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b61159861180d565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611606576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fd9061290e565b60405180910390fd5b61160f8161188b565b50565b600c5481565b600b5481565b5f8161162861167f565b1115801561163657505f5482105b801561167157505f7c010000000000000000000000000000000000000000000000000000000060045f8581526020019081526020015f205416145b9050919050565b5f33905090565b5f6001905090565b5f808290508061169561167f565b11611713575f54811015611712575f60045f8381526020019081526020015f205490505f7c0100000000000000000000000000000000000000000000000000000000821603611710575b5f81036117065760045f836001900393508381526020019081526020015f205490506116df565b8092505050611745565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b5f805f60065f8581526020019081526020015f2090508092508254915050915091565b5f73ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b5f8060e883901c905060e86117cc868684611ca2565b62ffffff16901b9150509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b611815611caa565b73ffffffffffffffffffffffffffffffffffffffff16611833610feb565b73ffffffffffffffffffffffffffffffffffffffff1614611889576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188090612976565b60405180910390fd5b565b5f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f805490505f820361198c576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6119985f8483856117b0565b600160406001901b17820260055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282540192505081905550611a0a836119fb5f865f6117b6565b611a0485611cb1565b176117dd565b60045f8381526020019081526020015f20819055505f80838301905073ffffffffffffffffffffffffffffffffffffffff8516915082825f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a4600183015b818114611aa45780835f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a4600181019050611a6b565b505f8203611ade576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805f819055505050611af25f848385611807565b505050565b5f611b0061167f565b5f5403905090565b5f8373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611b2d611678565b8786866040518563ffffffff1660e01b8152600401611b4f94939291906129e6565b6020604051808303815f875af1925050508015611b8a57506040513d601f19601f82011682018060405250810190611b879190612a44565b60015b611c00573d805f8114611bb8576040519150601f19603f3d011682016040523d82523d5f602084013e611bbd565b606091505b505f815103611bf8576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b606060a060405101806040526020810391505f825281835b600115611c8d57600184039350600a81066030018453600a8104905080611c6b575b50828103602084039350808452505050919050565b5f9392505050565b5f33905090565b5f6001821460e11b9050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611d0581611cd1565b8114611d0f575f80fd5b50565b5f81359050611d2081611cfc565b92915050565b5f60208284031215611d3b57611d3a611cc9565b5b5f611d4884828501611d12565b91505092915050565b5f8115159050919050565b611d6581611d51565b82525050565b5f602082019050611d7e5f830184611d5c565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611dbb578082015181840152602081019050611da0565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611de082611d84565b611dea8185611d8e565b9350611dfa818560208601611d9e565b611e0381611dc6565b840191505092915050565b5f6020820190508181035f830152611e268184611dd6565b905092915050565b5f819050919050565b611e4081611e2e565b8114611e4a575f80fd5b50565b5f81359050611e5b81611e37565b92915050565b5f60208284031215611e7657611e75611cc9565b5b5f611e8384828501611e4d565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611eb582611e8c565b9050919050565b611ec581611eab565b82525050565b5f602082019050611ede5f830184611ebc565b92915050565b611eed81611eab565b8114611ef7575f80fd5b50565b5f81359050611f0881611ee4565b92915050565b5f8060408385031215611f2457611f23611cc9565b5b5f611f3185828601611efa565b9250506020611f4285828601611e4d565b9150509250929050565b611f5581611e2e565b82525050565b5f602082019050611f6e5f830184611f4c565b92915050565b5f805f60608486031215611f8b57611f8a611cc9565b5b5f611f9886828701611efa565b9350506020611fa986828701611efa565b9250506040611fba86828701611e4d565b9150509250925092565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112611fe557611fe4611fc4565b5b8235905067ffffffffffffffff81111561200257612001611fc8565b5b60208301915083600182028301111561201e5761201d611fcc565b5b9250929050565b5f806020838503121561203b5761203a611cc9565b5b5f83013567ffffffffffffffff81111561205857612057611ccd565b5b61206485828601611fd0565b92509250509250929050565b5f6020828403121561208557612084611cc9565b5b5f61209284828501611efa565b91505092915050565b6120a481611d51565b81146120ae575f80fd5b50565b5f813590506120bf8161209b565b92915050565b5f80604083850312156120db576120da611cc9565b5b5f6120e885828601611efa565b92505060206120f9858286016120b1565b9150509250929050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61213d82611dc6565b810181811067ffffffffffffffff8211171561215c5761215b612107565b5b80604052505050565b5f61216e611cc0565b905061217a8282612134565b919050565b5f67ffffffffffffffff82111561219957612198612107565b5b6121a282611dc6565b9050602081019050919050565b828183375f83830152505050565b5f6121cf6121ca8461217f565b612165565b9050828152602081018484840111156121eb576121ea612103565b5b6121f68482856121af565b509392505050565b5f82601f83011261221257612211611fc4565b5b81356122228482602086016121bd565b91505092915050565b5f805f806080858703121561224357612242611cc9565b5b5f61225087828801611efa565b945050602061226187828801611efa565b935050604061227287828801611e4d565b925050606085013567ffffffffffffffff81111561229357612292611ccd565b5b61229f878288016121fe565b91505092959194509250565b5f80604083850312156122c1576122c0611cc9565b5b5f6122ce85828601611efa565b92505060206122df85828601611efa565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061232d57607f821691505b6020821081036123405761233f6122e9565b5b50919050565b5f81905092915050565b50565b5f61235e5f83612346565b915061236982612350565b5f82019050919050565b5f61237d82612353565b9150819050919050565b7f5472616e73666572206661696c656400000000000000000000000000000000005f82015250565b5f6123bb600f83611d8e565b91506123c682612387565b602082019050919050565b5f6020820190508181035f8301526123e8816123af565b9050919050565b5f82905092915050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026124557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261241a565b61245f868361241a565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61249a61249561249084611e2e565b612477565b611e2e565b9050919050565b5f819050919050565b6124b383612480565b6124c76124bf826124a1565b848454612426565b825550505050565b5f90565b6124db6124cf565b6124e68184846124aa565b505050565b5b81811015612509576124fe5f826124d3565b6001810190506124ec565b5050565b601f82111561254e5761251f816123f9565b6125288461240b565b81016020851015612537578190505b61254b6125438561240b565b8301826124eb565b50505b505050565b5f82821c905092915050565b5f61256e5f1984600802612553565b1980831691505092915050565b5f612586838361255f565b9150826002028217905092915050565b6125a083836123ef565b67ffffffffffffffff8111156125b9576125b8612107565b5b6125c38254612316565b6125ce82828561250d565b5f601f8311600181146125fb575f84156125e9578287013590505b6125f3858261257b565b86555061265a565b601f198416612609866123f9565b5f5b828110156126305784890135825560018201915060208501945060208101905061260b565b8683101561264d5784890135612649601f89168261255f565b8355505b6001600288020188555050505b50505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61269a82611e2e565b91506126a583611e2e565b92508282019050808211156126bd576126bc612663565b5b92915050565b5f6126cd82611e2e565b91506126d883611e2e565b92508282026126e681611e2e565b915082820484148315176126fd576126fc612663565b5b5092915050565b7f546f6f206d756368206d696e747320666f7220746869732077616c6c657421005f82015250565b5f612738601f83611d8e565b915061274382612704565b602082019050919050565b5f6020820190508181035f8301526127658161272c565b9050919050565b5f81905092915050565b5f815461278281612316565b61278c818661276c565b9450600182165f81146127a657600181146127bb576127ed565b60ff19831686528115158202860193506127ed565b6127c4856123f9565b5f5b838110156127e5578154818901526001820191506020810190506127c6565b838801955050505b50505092915050565b5f61280082611d84565b61280a818561276c565b935061281a818560208601611d9e565b80840191505092915050565b7f2e6a736f6e0000000000000000000000000000000000000000000000000000005f82015250565b5f61285a60058361276c565b915061286582612826565b600582019050919050565b5f61287b8285612776565b915061288782846127f6565b91506128928261284e565b91508190509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6128f8602683611d8e565b91506129038261289e565b604082019050919050565b5f6020820190508181035f830152612925816128ec565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612960602083611d8e565b915061296b8261292c565b602082019050919050565b5f6020820190508181035f83015261298d81612954565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f6129b882612994565b6129c2818561299e565b93506129d2818560208601611d9e565b6129db81611dc6565b840191505092915050565b5f6080820190506129f95f830187611ebc565b612a066020830186611ebc565b612a136040830185611f4c565b8181036060830152612a2581846129ae565b905095945050505050565b5f81519050612a3e81611cfc565b92915050565b5f60208284031215612a5957612a58611cc9565b5b5f612a6684828501612a30565b9150509291505056fea2646970667358221220b39d5bbc22bed372440bf0e9837a20603b8bb53064f8d5ded9d970a3152997f964736f6c63430008150033000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000046e6f706500000000000000000000000000000000000000000000000000000000
0xa2646970667358221220b39d5bbc22bed372440bf0e9837a20603b8bb53064f8d5ded9d970a3152997f964736f6c63430008150033000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000046e6f706500000000000000000000000000000000000000000000000000000000