[ { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" }, { "internalType": "uint256", "name": "_fee", "type": "uint256" }, { "internalType": "uint256", "name": "_supply", "type": "uint256" }, { "internalType": "string", "name": "_newBaseURI", "type": "string" }, { "internalType": "address", "name": "_initialOwner", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "ApprovalCallerNotOwnerNorApproved", "type": "error" }, { "inputs": [], "name": "ApprovalQueryForNonexistentToken", "type": "error" }, { "inputs": [], "name": "BalanceQueryForZeroAddress", "type": "error" }, { "inputs": [], "name": "MintERC2309QuantityExceedsLimit", "type": "error" }, { "inputs": [], "name": "MintToZeroAddress", "type": "error" }, { "inputs": [], "name": "MintZeroQuantity", "type": "error" }, { "inputs": [], "name": "NotCompatibleWithSpotMints", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "inputs": [], "name": "OwnerQueryForNonexistentToken", "type": "error" }, { "inputs": [], "name": "OwnershipNotInitializedForExtraData", "type": "error" }, { "inputs": [], "name": "SequentialMintExceedsLimit", "type": "error" }, { "inputs": [], "name": "SequentialUpToTooSmall", "type": "error" }, { "inputs": [], "name": "SpotMintTokenIdTooSmall", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "length", "type": "uint256" } ], "name": "StringsInsufficientHexLength", "type": "error" }, { "inputs": [], "name": "TokenAlreadyExists", "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": "_addresses", "type": "address[]" } ], "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": "fee", "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": "quantity", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_receiver", "type": "address" }, { "internalType": "uint256", "name": "_quantity", "type": "uint256" } ], "name": "mintTo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "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": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "supply", "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": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "result", "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" } ]
608060405273ed59d863310d387455b5077de2d08055d7e39c61600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200006657600080fd5b50604051620033cf380380620033cf83398181016040528101906200008c9190620004f2565b8086868160029081620000a091906200082c565b508060039081620000b291906200082c565b50620000c3620001be60201b60201c565b600081905550620000d9620001be60201b60201c565b620000e9620001c760201b60201c565b101562000109576200010863fed8210f60e01b620001ef60201b60201c565b5b5050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620001805760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040162000177919062000924565b60405180910390fd5b6200019181620001f960201b60201c565b5083600a8190555082600b8190555081600c9081620001b191906200082c565b5050505050505062000941565b60006001905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905090565b8060005260046000fd5b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200032882620002dd565b810181811067ffffffffffffffff821117156200034a5762000349620002ee565b5b80604052505050565b60006200035f620002bf565b90506200036d82826200031d565b919050565b600067ffffffffffffffff82111562000390576200038f620002ee565b5b6200039b82620002dd565b9050602081019050919050565b60005b83811015620003c8578082015181840152602081019050620003ab565b60008484015250505050565b6000620003eb620003e58462000372565b62000353565b9050828152602081018484840111156200040a5762000409620002d8565b5b62000417848285620003a8565b509392505050565b600082601f830112620004375762000436620002d3565b5b815162000449848260208601620003d4565b91505092915050565b6000819050919050565b620004678162000452565b81146200047357600080fd5b50565b60008151905062000487816200045c565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620004ba826200048d565b9050919050565b620004cc81620004ad565b8114620004d857600080fd5b50565b600081519050620004ec81620004c1565b92915050565b60008060008060008060c08789031215620005125762000511620002c9565b5b600087015167ffffffffffffffff811115620005335762000532620002ce565b5b6200054189828a016200041f565b965050602087015167ffffffffffffffff811115620005655762000564620002ce565b5b6200057389828a016200041f565b95505060406200058689828a0162000476565b94505060606200059989828a0162000476565b935050608087015167ffffffffffffffff811115620005bd57620005bc620002ce565b5b620005cb89828a016200041f565b92505060a0620005de89828a01620004db565b9150509295509295509295565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200063e57607f821691505b602082108103620006545762000653620005f6565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620006be7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200067f565b620006ca86836200067f565b95508019841693508086168417925050509392505050565b6000819050919050565b60006200070d62000707620007018462000452565b620006e2565b62000452565b9050919050565b6000819050919050565b6200072983620006ec565b62000741620007388262000714565b8484546200068c565b825550505050565b600090565b6200075862000749565b620007658184846200071e565b505050565b5b818110156200078d57620007816000826200074e565b6001810190506200076b565b5050565b601f821115620007dc57620007a6816200065a565b620007b1846200066f565b81016020851015620007c1578190505b620007d9620007d0856200066f565b8301826200076a565b50505b505050565b600082821c905092915050565b60006200080160001984600802620007e1565b1980831691505092915050565b60006200081c8383620007ee565b9150826002028217905092915050565b6200083782620005eb565b67ffffffffffffffff811115620008535762000852620002ee565b5b6200085f825462000625565b6200086c82828562000791565b600060209050601f831160018114620008a457600084156200088f578287015190505b6200089b85826200080e565b8655506200090b565b601f198416620008b4866200065a565b60005b82811015620008de57848901518255600182019150602085019450602081019050620008b7565b86831015620008fe5784890151620008fa601f891682620007ee565b8355505b6001600288020188555050505b505050505050565b6200091e81620004ad565b82525050565b60006020820190506200093b600083018462000913565b92915050565b612a7e80620009516000396000f3fe60806040526004361061014b5760003560e01c806370a08231116100b6578063a22cb4651161006f578063a22cb46514610436578063b88d4fde1461045f578063c87b56dd1461047b578063ddca3f43146104b8578063e985e9c5146104e3578063f2fde38b146105205761014b565b806370a0823114610347578063715018a614610384578063729ad39e1461039b5780638da5cb5b146103c457806395d89b41146103ef578063a0712d681461041a5761014b565b806323b872dd1161010857806323b872dd146102675780633ccfd60b1461028357806342842e0e1461029a578063449a52f8146102b65780636352211e146102df5780636c0360eb1461031c5761014b565b806301ffc9a714610150578063047fc9aa1461018d57806306fdde03146101b8578063081812fc146101e3578063095ea7b31461022057806318160ddd1461023c575b600080fd5b34801561015c57600080fd5b5061017760048036038101906101729190611dc3565b610549565b6040516101849190611e0b565b60405180910390f35b34801561019957600080fd5b506101a26105db565b6040516101af9190611e3f565b60405180910390f35b3480156101c457600080fd5b506101cd6105e1565b6040516101da9190611eea565b60405180910390f35b3480156101ef57600080fd5b5061020a60048036038101906102059190611f38565b610673565b6040516102179190611fa6565b60405180910390f35b61023a60048036038101906102359190611fed565b6106d1565b005b34801561024857600080fd5b506102516106e1565b60405161025e9190611e3f565b60405180910390f35b610281600480360381019061027c919061202d565b61072e565b005b34801561028f57600080fd5b506102986109ef565b005b6102b460048036038101906102af919061202d565b610b28565b005b3480156102c257600080fd5b506102dd60048036038101906102d89190611fed565b610b48565b005b3480156102eb57600080fd5b5061030660048036038101906103019190611f38565b610bb5565b6040516103139190611fa6565b60405180910390f35b34801561032857600080fd5b50610331610bc7565b60405161033e9190611eea565b60405180910390f35b34801561035357600080fd5b5061036e60048036038101906103699190612080565b610c55565b60405161037b9190611e3f565b60405180910390f35b34801561039057600080fd5b50610399610cec565b005b3480156103a757600080fd5b506103c260048036038101906103bd91906121f5565b610d00565b005b3480156103d057600080fd5b506103d9610da8565b6040516103e69190611fa6565b60405180910390f35b3480156103fb57600080fd5b50610404610dd2565b6040516104119190611eea565b60405180910390f35b610434600480360381019061042f9190611f38565b610e64565b005b34801561044257600080fd5b5061045d6004803603810190610458919061226a565b610f18565b005b6104796004803603810190610474919061235f565b611023565b005b34801561048757600080fd5b506104a2600480360381019061049d9190611f38565b611075565b6040516104af9190611eea565b60405180910390f35b3480156104c457600080fd5b506104cd6110f2565b6040516104da9190611e3f565b60405180910390f35b3480156104ef57600080fd5b5061050a600480360381019061050591906123e2565b6110f8565b6040516105179190611e0b565b60405180910390f35b34801561052c57600080fd5b5061054760048036038101906105429190612080565b61118c565b005b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806105a457506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806105d45750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b600b5481565b6060600280546105f090612451565b80601f016020809104026020016040519081016040528092919081815260200182805461061c90612451565b80156106695780601f1061063e57610100808354040283529160200191610669565b820191906000526020600020905b81548152906001019060200180831161064c57829003601f168201915b5050505050905090565b600061067e82611212565b6106935761069263cf4700e460e01b6112be565b5b6006600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6106dd828260016112c8565b5050565b60006106eb6113f7565b600154600054030390507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61071e611400565b1461072b57600854810190505b90565b600061073982611428565b905073ffffffffffffffffffffffffffffffffffffffff8473ffffffffffffffffffffffffffffffffffffffff161693508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146107ae576107ad63a114810060e01b6112be565b5b6000806107ba84611541565b915091506107d081876107cb611568565b611570565b6107fb576107e5866107e0611568565b6110f8565b6107fa576107f96359c896be60e01b6112be565b5b5b61080886868660016115b4565b801561081357600082555b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154600101919050819055506108e1856108bd8888876115ba565b7c0200000000000000000000000000000000000000000000000000000000176115e2565b600460008681526020019081526020016000208190555060007c02000000000000000000000000000000000000000000000000000000008416036109675760006001850190506000600460008381526020019081526020016000205403610965576000548114610964578360046000838152602001908152602001600020819055505b5b505b600073ffffffffffffffffffffffffffffffffffffffff8673ffffffffffffffffffffffffffffffffffffffff161690508481887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600081036109d9576109d863ea553b3460e01b6112be565b5b6109e6878787600161160d565b50505050505050565b6109f7611613565b600047905060008111610a3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a36906124ce565b60405180910390fd5b60006064600583610a50919061251d565b610a5a919061258e565b905060008183610a6a91906125bf565b9050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015610ad4573d6000803e3d6000fd5b50610add610da8565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610b22573d6000803e3d6000fd5b50505050565b610b4383838360405180602001604052806000815250611023565b505050565b610b50611613565b600b5481610b5c6106e1565b610b6691906125f3565b1115610ba7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9e90612699565b60405180910390fd5b610bb1828261169a565b5050565b6000610bc082611428565b9050919050565b600c8054610bd490612451565b80601f0160208091040260200160405190810160405280929190818152602001828054610c0090612451565b8015610c4d5780601f10610c2257610100808354040283529160200191610c4d565b820191906000526020600020905b815481529060010190602001808311610c3057829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c9b57610c9a638f4eb60460e01b6112be565b5b67ffffffffffffffff600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b610cf4611613565b610cfe6000611820565b565b610d08611613565b600b548151610d156106e1565b610d1f91906125f3565b1115610d60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5790612699565b60405180910390fd5b60005b8151811015610da457610d91828281518110610d8257610d816126b9565b5b6020026020010151600161169a565b8080610d9c906126e8565b915050610d63565b5050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060038054610de190612451565b80601f0160208091040260200160405190810160405280929190818152602001828054610e0d90612451565b8015610e5a5780601f10610e2f57610100808354040283529160200191610e5a565b820191906000526020600020905b815481529060010190602001808311610e3d57829003601f168201915b5050505050905090565b600b5481610e706106e1565b610e7a91906125f3565b1115610ebb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb290612699565b60405180910390fd5b3481600a54610eca919061251d565b1115610f0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f02906127a2565b60405180910390fd5b610f15338261169a565b50565b8060076000610f25611568565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610fd2611568565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516110179190611e0b565b60405180910390a35050565b61102e84848461072e565b60008373ffffffffffffffffffffffffffffffffffffffff163b1461106f57611059848484846118e6565b61106e5761106d63d1a57ed660e01b6112be565b5b5b50505050565b606061108082611212565b6110955761109463a14c4b5060e01b6112be565b5b600061109f611a15565b905060008151036110bf57604051806020016040528060008152506110ea565b806110c984611a5f565b6040516020016110da9291906127fe565b6040516020818303038152906040525b915050919050565b600a5481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611194611613565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036112065760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016111fd9190611fa6565b60405180910390fd5b61120f81611820565b50565b60008161121d6113f7565b116112b85761122a611400565b8211156112545761124d6004600084815260200190815260200160002054611aaf565b90506112b9565b6000548210156112b75760005b6000600460008581526020019081526020016000205491508103611290578261128990612822565b9250611261565b60007c01000000000000000000000000000000000000000000000000000000008216149150505b5b5b919050565b8060005260046000fd5b60006112d383610bb5565b905081801561131557508073ffffffffffffffffffffffffffffffffffffffff166112fc611568565b73ffffffffffffffffffffffffffffffffffffffff1614155b156113415761132b81611326611568565b6110f8565b6113405761133f63cfb3b94260e01b6112be565b5b5b836006600085815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550828473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a450505050565b60006001905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905090565b6000816114336113f7565b1161152b5760046000838152602001908152602001600020549050611456611400565b82111561147b5761146681611aaf565b61153c5761147a63df2d9b4260e01b6112be565b5b6000810361150257600054821061149d5761149c63df2d9b4260e01b6112be565b5b5b600460008360019003935083815260200190815260200160002054905060008103156114fd5760007c01000000000000000000000000000000000000000000000000000000008216031561153c576114fc63df2d9b4260e01b6112be565b5b61149e565b60007c01000000000000000000000000000000000000000000000000000000008216031561153c575b61153b63df2d9b4260e01b6112be565b5b919050565b60008060006006600085815260200190815260200160002090508092508254915050915091565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b60008060e883901c905060e86115d1868684611af0565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b61161b611af9565b73ffffffffffffffffffffffffffffffffffffffff16611639610da8565b73ffffffffffffffffffffffffffffffffffffffff16146116985761165c611af9565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161168f9190611fa6565b60405180910390fd5b565b600080549050600082036116b9576116b863b562e8dd60e01b6112be565b5b6116c660008483856115b4565b6116e6836116d760008660006115ba565b6116e085611b01565b176115e2565b6004600083815260200190815260200160002081905550600160406001901b178202600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600073ffffffffffffffffffffffffffffffffffffffff8473ffffffffffffffffffffffffffffffffffffffff161690506000810361179e5761179d632e07630060e01b6112be565b5b6000838301905060008390506117b2611400565b6001830311156117cd576117cc6381647e3a60e01b6112be565b5b5b808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a48181600101915081036117ce578160008190555050505061181b600084838561160d565b505050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a0261190c611568565b8786866040518563ffffffff1660e01b815260040161192e94939291906128a0565b6020604051808303816000875af192505050801561196a57506040513d601f19601f820116820180604052508101906119679190612901565b60015b6119c2573d806000811461199a576040519150601f19603f3d011682016040523d82523d6000602084013e61199f565b606091505b5060008151036119ba576119b963d1a57ed660e01b6112be565b5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b6060600c611a3a3073ffffffffffffffffffffffffffffffffffffffff166014611b11565b604051602001611a4b9291906129ec565b604051602081830303815290604052905090565b606060a060405101806040526020810391506000825281835b600115611a9a57600184039350600a81066030018453600a8104905080611a78575b50828103602084039350808452505050919050565b60007c0100000000000000000000000000000000000000000000000000000000821673ffffffffffffffffffffffffffffffffffffffff8316119050919050565b60009392505050565b600033905090565b60006001821460e11b9050919050565b6060600083905060006002846002611b29919061251d565b611b3391906125f3565b67ffffffffffffffff811115611b4c57611b4b6120b2565b5b6040519080825280601f01601f191660200182016040528015611b7e5781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110611bb657611bb56126b9565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611c1a57611c196126b9565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006001856002611c5a919061251d565b611c6491906125f3565b90505b6001811115611d04577f3031323334353637383961626364656600000000000000000000000000000000600f841660108110611ca657611ca56126b9565b5b1a60f81b828281518110611cbd57611cbc6126b9565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600483901c925080611cfd90612822565b9050611c67565b5060008214611d4c5784846040517fe22e27eb000000000000000000000000000000000000000000000000000000008152600401611d43929190612a1f565b60405180910390fd5b809250505092915050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611da081611d6b565b8114611dab57600080fd5b50565b600081359050611dbd81611d97565b92915050565b600060208284031215611dd957611dd8611d61565b5b6000611de784828501611dae565b91505092915050565b60008115159050919050565b611e0581611df0565b82525050565b6000602082019050611e206000830184611dfc565b92915050565b6000819050919050565b611e3981611e26565b82525050565b6000602082019050611e546000830184611e30565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611e94578082015181840152602081019050611e79565b60008484015250505050565b6000601f19601f8301169050919050565b6000611ebc82611e5a565b611ec68185611e65565b9350611ed6818560208601611e76565b611edf81611ea0565b840191505092915050565b60006020820190508181036000830152611f048184611eb1565b905092915050565b611f1581611e26565b8114611f2057600080fd5b50565b600081359050611f3281611f0c565b92915050565b600060208284031215611f4e57611f4d611d61565b5b6000611f5c84828501611f23565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611f9082611f65565b9050919050565b611fa081611f85565b82525050565b6000602082019050611fbb6000830184611f97565b92915050565b611fca81611f85565b8114611fd557600080fd5b50565b600081359050611fe781611fc1565b92915050565b6000806040838503121561200457612003611d61565b5b600061201285828601611fd8565b925050602061202385828601611f23565b9150509250929050565b60008060006060848603121561204657612045611d61565b5b600061205486828701611fd8565b935050602061206586828701611fd8565b925050604061207686828701611f23565b9150509250925092565b60006020828403121561209657612095611d61565b5b60006120a484828501611fd8565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6120ea82611ea0565b810181811067ffffffffffffffff82111715612109576121086120b2565b5b80604052505050565b600061211c611d57565b905061212882826120e1565b919050565b600067ffffffffffffffff821115612148576121476120b2565b5b602082029050602081019050919050565b600080fd5b600061217161216c8461212d565b612112565b9050808382526020820190506020840283018581111561219457612193612159565b5b835b818110156121bd57806121a98882611fd8565b845260208401935050602081019050612196565b5050509392505050565b600082601f8301126121dc576121db6120ad565b5b81356121ec84826020860161215e565b91505092915050565b60006020828403121561220b5761220a611d61565b5b600082013567ffffffffffffffff81111561222957612228611d66565b5b612235848285016121c7565b91505092915050565b61224781611df0565b811461225257600080fd5b50565b6000813590506122648161223e565b92915050565b6000806040838503121561228157612280611d61565b5b600061228f85828601611fd8565b92505060206122a085828601612255565b9150509250929050565b600080fd5b600067ffffffffffffffff8211156122ca576122c96120b2565b5b6122d382611ea0565b9050602081019050919050565b82818337600083830152505050565b60006123026122fd846122af565b612112565b90508281526020810184848401111561231e5761231d6122aa565b5b6123298482856122e0565b509392505050565b600082601f830112612346576123456120ad565b5b81356123568482602086016122ef565b91505092915050565b6000806000806080858703121561237957612378611d61565b5b600061238787828801611fd8565b945050602061239887828801611fd8565b93505060406123a987828801611f23565b925050606085013567ffffffffffffffff8111156123ca576123c9611d66565b5b6123d687828801612331565b91505092959194509250565b600080604083850312156123f9576123f8611d61565b5b600061240785828601611fd8565b925050602061241885828601611fd8565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061246957607f821691505b60208210810361247c5761247b612422565b5b50919050565b7f496e73756666696369656e742062616c616e63652e0000000000000000000000600082015250565b60006124b8601583611e65565b91506124c382612482565b602082019050919050565b600060208201905081810360008301526124e7816124ab565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061252882611e26565b915061253383611e26565b925082820261254181611e26565b91508282048414831517612558576125576124ee565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061259982611e26565b91506125a483611e26565b9250826125b4576125b361255f565b5b828204905092915050565b60006125ca82611e26565b91506125d583611e26565b92508282039050818111156125ed576125ec6124ee565b5b92915050565b60006125fe82611e26565b915061260983611e26565b9250828201905080821115612621576126206124ee565b5b92915050565b7f54686520726571756573746564206d696e74207175616e74697479206578636560008201527f6564732074686520737570706c792e0000000000000000000000000000000000602082015250565b6000612683602f83611e65565b915061268e82612627565b604082019050919050565b600060208201905081810360008301526126b281612676565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006126f382611e26565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612725576127246124ee565b5b600182019050919050565b7f4e6f7420656e6f7567682076616c756520666f72206d696e74207472616e736160008201527f6374696f6e2e0000000000000000000000000000000000000000000000000000602082015250565b600061278c602683611e65565b915061279782612730565b604082019050919050565b600060208201905081810360008301526127bb8161277f565b9050919050565b600081905092915050565b60006127d882611e5a565b6127e281856127c2565b93506127f2818560208601611e76565b80840191505092915050565b600061280a82856127cd565b915061281682846127cd565b91508190509392505050565b600061282d82611e26565b9150600082036128405761283f6124ee565b5b600182039050919050565b600081519050919050565b600082825260208201905092915050565b60006128728261284b565b61287c8185612856565b935061288c818560208601611e76565b61289581611ea0565b840191505092915050565b60006080820190506128b56000830187611f97565b6128c26020830186611f97565b6128cf6040830185611e30565b81810360608301526128e18184612867565b905095945050505050565b6000815190506128fb81611d97565b92915050565b60006020828403121561291757612916611d61565b5b6000612925848285016128ec565b91505092915050565b60008190508160005260206000209050919050565b6000815461295081612451565b61295a81866127c2565b94506001821660008114612975576001811461298a576129bd565b60ff19831686528115158202860193506129bd565b6129938561292e565b60005b838110156129b557815481890152600182019150602081019050612996565b838801955050505b50505092915050565b7f2f00000000000000000000000000000000000000000000000000000000000000815250565b60006129f88285612943565b9150612a0482846127cd565b9150612a0f826129c6565b6001820191508190509392505050565b6000604082019050612a346000830185611e30565b612a416020830184611e30565b939250505056fea2646970667358221220f1b496c79886e869d4276115f0f4f709118f73e297f562436357a60935dda2b864736f6c6343000814003300000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000048c2739500000000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000000001400000000000000000000000001b771683c4dab24fbb6d1c8c1eccbf10a623c325000000000000000000000000000000000000000000000000000000000000000d424c415354204655524e414345000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008424c535446524e43000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003568747470733a2f2f6170692d6c61756e63687061642e6f6d6e696875622e78797a2f6170692f6d657461646174612f626c6173742f0000000000000000000000