[ { "inputs": [], "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": "OwnerQueryForNonexistentToken", "type": "error" }, { "inputs": [], "name": "OwnershipNotInitializedForExtraData", "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": "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": [ { "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": "maxFreeMintPerWallet", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxMintPerTx", "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": "count", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "mintPrice", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mintStarted", "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": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_number", "type": "uint256" } ], "name": "ownerMint", "outputs": [], "stateMutability": "nonpayable", "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": [ { "internalType": "string", "name": "uri", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_maxFreeMintPerWallet", "type": "uint256" } ], "name": "setMaxFreeMintPerWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_newPrice", "type": "uint256" } ], "name": "setPrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_newSupply", "type": "uint256" } ], "name": "setSupply", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "toggleSaleState", "outputs": [], "stateMutability": "nonpayable", "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" } ]
60806040526102b26009556603e871b540c000600a55600a600b556001600c556000600d60006101000a81548160ff0219169083151502179055503480156200004757600080fd5b506040518060400160405280600381526020017f52656400000000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f52454400000000000000000000000000000000000000000000000000000000008152508160029081620000c5919062000467565b508060039081620000d7919062000467565b50620000e86200011660201b60201c565b600081905550505062000110620001046200011f60201b60201c565b6200012760201b60201c565b6200054e565b60006001905090565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200026f57607f821691505b60208210810362000285576200028462000227565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620002ef7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002b0565b620002fb8683620002b0565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000348620003426200033c8462000313565b6200031d565b62000313565b9050919050565b6000819050919050565b620003648362000327565b6200037c62000373826200034f565b848454620002bd565b825550505050565b600090565b6200039362000384565b620003a081848462000359565b505050565b5b81811015620003c857620003bc60008262000389565b600181019050620003a6565b5050565b601f8211156200041757620003e1816200028b565b620003ec84620002a0565b81016020851015620003fc578190505b620004146200040b85620002a0565b830182620003a5565b50505b505050565b600082821c905092915050565b60006200043c600019846008026200041c565b1980831691505092915050565b600062000457838362000429565b9150826002028217905092915050565b6200047282620001ed565b67ffffffffffffffff8111156200048e576200048d620001f8565b5b6200049a825462000256565b620004a7828285620003cc565b600060209050601f831160018114620004df5760008415620004ca578287015190505b620004d6858262000449565b86555062000546565b601f198416620004ef866200028b565b60005b828110156200051957848901518255600182019150602085019450602081019050620004f2565b8683101562000539578489015162000535601f89168262000429565b8355505b6001600288020188555050505b505050505050565b6130ba806200055e6000396000f3fe6080604052600436106101d85760003560e01c8063715018a611610102578063b88d4fde11610095578063de7fcb1d11610064578063de7fcb1d1461062f578063e985e9c51461065a578063f2fde38b14610697578063f77b1edd146106c0576101d8565b8063b88d4fde14610594578063c87b56dd146105b0578063d5abeb01146105ed578063daaeec8614610618576101d8565b806395d89b41116100d157806395d89b41146104f9578063a0712d6814610524578063a22cb46514610540578063a9722cf314610569576101d8565b8063715018a614610463578063845bb3bb1461047a5780638da5cb5b146104a557806391b7f5ed146104d0576101d8565b80633ccfd60b1161017a5780636352211e116101495780636352211e146103935780636817c76c146103d05780636c0360eb146103fb57806370a0823114610426576101d8565b80633ccfd60b1461030e57806342842e0e14610325578063484b973c1461034157806355f804b31461036a576101d8565b8063095ea7b3116101b6578063095ea7b31461028257806318160ddd1461029e57806323b872dd146102c95780633b4c4b25146102e5576101d8565b806301ffc9a7146101dd57806306fdde031461021a578063081812fc14610245575b600080fd5b3480156101e957600080fd5b5061020460048036038101906101ff919061201f565b6106e9565b6040516102119190612067565b60405180910390f35b34801561022657600080fd5b5061022f61077b565b60405161023c9190612112565b60405180910390f35b34801561025157600080fd5b5061026c6004803603810190610267919061216a565b61080d565b60405161027991906121d8565b60405180910390f35b61029c6004803603810190610297919061221f565b61088c565b005b3480156102aa57600080fd5b506102b36109d0565b6040516102c0919061226e565b60405180910390f35b6102e360048036038101906102de9190612289565b6109e7565b005b3480156102f157600080fd5b5061030c6004803603810190610307919061216a565b610d09565b005b34801561031a57600080fd5b50610323610d1b565b005b61033f600480360381019061033a9190612289565b610dd2565b005b34801561034d57600080fd5b506103686004803603810190610363919061221f565b610df2565b005b34801561037657600080fd5b50610391600480360381019061038c9190612411565b610e08565b005b34801561039f57600080fd5b506103ba60048036038101906103b5919061216a565b610e23565b6040516103c791906121d8565b60405180910390f35b3480156103dc57600080fd5b506103e5610e35565b6040516103f2919061226e565b60405180910390f35b34801561040757600080fd5b50610410610e3b565b60405161041d9190612112565b60405180910390f35b34801561043257600080fd5b5061044d6004803603810190610448919061245a565b610ec9565b60405161045a919061226e565b60405180910390f35b34801561046f57600080fd5b50610478610f81565b005b34801561048657600080fd5b5061048f610f95565b60405161049c919061226e565b60405180910390f35b3480156104b157600080fd5b506104ba610f9b565b6040516104c791906121d8565b60405180910390f35b3480156104dc57600080fd5b506104f760048036038101906104f2919061216a565b610fc5565b005b34801561050557600080fd5b5061050e610fd7565b60405161051b9190612112565b60405180910390f35b61053e6004803603810190610539919061216a565b611069565b005b34801561054c57600080fd5b50610567600480360381019061056291906124b3565b6112eb565b005b34801561057557600080fd5b5061057e6113f6565b60405161058b9190612067565b60405180910390f35b6105ae60048036038101906105a99190612594565b611409565b005b3480156105bc57600080fd5b506105d760048036038101906105d2919061216a565b61147c565b6040516105e49190612112565b60405180910390f35b3480156105f957600080fd5b506106026114f8565b60405161060f919061226e565b60405180910390f35b34801561062457600080fd5b5061062d6114fe565b005b34801561063b57600080fd5b50610644611532565b604051610651919061226e565b60405180910390f35b34801561066657600080fd5b50610681600480360381019061067c9190612617565b611538565b60405161068e9190612067565b60405180910390f35b3480156106a357600080fd5b506106be60048036038101906106b9919061245a565b6115cc565b005b3480156106cc57600080fd5b506106e760048036038101906106e2919061216a565b61164f565b005b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061074457506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806107745750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b60606002805461078a90612686565b80601f01602080910402602001604051908101604052809291908181526020018280546107b690612686565b80156108035780601f106107d857610100808354040283529160200191610803565b820191906000526020600020905b8154815290600101906020018083116107e657829003601f168201915b5050505050905090565b600061081882611661565b61084e576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061089782610e23565b90508073ffffffffffffffffffffffffffffffffffffffff166108b86116c0565b73ffffffffffffffffffffffffffffffffffffffff161461091b576108e4816108df6116c0565b611538565b61091a576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826006600084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b60006109da6116c8565b6001546000540303905090565b60006109f2826116d1565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610a59576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080610a658461179d565b91509150610a7b8187610a766116c0565b6117c4565b610ac757610a9086610a8b6116c0565b611538565b610ac6576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610b2d576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b3a8686866001611808565b8015610b4557600082555b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815460010191905081905550610c1385610bef88888761180e565b7c020000000000000000000000000000000000000000000000000000000017611836565b600460008681526020019081526020016000208190555060007c0200000000000000000000000000000000000000000000000000000000841603610c995760006001850190506000600460008381526020019081526020016000205403610c97576000548114610c96578360046000838152602001908152602001600020819055505b5b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4610d018686866001611861565b505050505050565b610d11611867565b8060098190555050565b610d23611867565b60003373ffffffffffffffffffffffffffffffffffffffff1647604051610d49906126e8565b60006040518083038185875af1925050503d8060008114610d86576040519150601f19603f3d011682016040523d82523d6000602084013e610d8b565b606091505b5050905080610dcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc690612749565b60405180910390fd5b50565b610ded83838360405180602001604052806000815250611409565b505050565b610dfa611867565b610e0482826118e5565b5050565b610e10611867565b80600e9081610e1f9190612915565b5050565b6000610e2e826116d1565b9050919050565b600a5481565b600e8054610e4890612686565b80601f0160208091040260200160405190810160405280929190818152602001828054610e7490612686565b8015610ec15780601f10610e9657610100808354040283529160200191610ec1565b820191906000526020600020905b815481529060010190602001808311610ea457829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f30576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b610f89611867565b610f936000611903565b565b600c5481565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610fcd611867565b80600a8190555050565b606060038054610fe690612686565b80601f016020809104026020016040519081016040528092919081815260200182805461101290612686565b801561105f5780601f106110345761010080835404028352916020019161105f565b820191906000526020600020905b81548152906001019060200180831161104257829003601f168201915b5050505050905090565b600d60009054906101000a900460ff166110b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110af90612a33565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614611126576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111d90612a9f565b60405180910390fd5b600080341480156111835750600c5482600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111809190612aee565b11155b61118f57600a54611192565b60005b905080826111a09190612b22565b3410156111e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d990612bb0565b60405180910390fd5b600954826111ee6109d0565b6111f89190612aee565b1115611239576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123090612c1c565b60405180910390fd5b600b5482111561127e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127590612c88565b60405180910390fd5b600081036112dd5781600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112d59190612aee565b925050819055505b6112e733836118e5565b5050565b80600760006112f86116c0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166113a56116c0565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516113ea9190612067565b60405180910390a35050565b600d60009054906101000a900460ff1681565b6114148484846109e7565b60008373ffffffffffffffffffffffffffffffffffffffff163b146114765761143f848484846119c9565b611475576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b606061148782611661565b6114c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bd90612d1a565b60405180910390fd5b600e6114d183611b19565b6040516020016114e2929190612e45565b6040516020818303038152906040529050919050565b60095481565b611506611867565b600d60009054906101000a900460ff1615600d60006101000a81548160ff021916908315150217905550565b600b5481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6115d4611867565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611643576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163a90612ee6565b60405180910390fd5b61164c81611903565b50565b611657611867565b80600c8190555050565b60008161166c6116c8565b1115801561167b575060005482105b80156116b9575060007c0100000000000000000000000000000000000000000000000000000000600460008581526020019081526020016000205416145b9050919050565b600033905090565b60006001905090565b600080829050806116e06116c8565b11611766576000548110156117655760006004600083815260200190815260200160002054905060007c0100000000000000000000000000000000000000000000000000000000821603611763575b6000810361175957600460008360019003935083815260200190815260200160002054905061172f565b8092505050611798565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b60008060006006600085815260200190815260200160002090508092508254915050915091565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b60008060e883901c905060e8611825868684611be7565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b61186f611bf0565b73ffffffffffffffffffffffffffffffffffffffff1661188d610f9b565b73ffffffffffffffffffffffffffffffffffffffff16146118e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118da90612f52565b60405180910390fd5b565b6118ff828260405180602001604052806000815250611bf8565b5050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a026119ef6116c0565b8786866040518563ffffffff1660e01b8152600401611a119493929190612fc7565b6020604051808303816000875af1925050508015611a4d57506040513d601f19601f82011682018060405250810190611a4a9190613028565b60015b611ac6573d8060008114611a7d576040519150601f19603f3d011682016040523d82523d6000602084013e611a82565b606091505b506000815103611abe576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b606060006001611b2884611c95565b01905060008167ffffffffffffffff811115611b4757611b466122e6565b5b6040519080825280601f01601f191660200182016040528015611b795781602001600182028036833780820191505090505b509050600082602001820190505b600115611bdc578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611bd057611bcf613055565b5b04945060008503611b87575b819350505050919050565b60009392505050565b600033905090565b611c028383611de8565b60008373ffffffffffffffffffffffffffffffffffffffff163b14611c9057600080549050600083820390505b611c4260008683806001019450866119c9565b611c78576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818110611c2f578160005414611c8d57600080fd5b50505b505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611cf3577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381611ce957611ce8613055565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611d30576d04ee2d6d415b85acef81000000008381611d2657611d25613055565b5b0492506020810190505b662386f26fc100008310611d5f57662386f26fc100008381611d5557611d54613055565b5b0492506010810190505b6305f5e1008310611d88576305f5e1008381611d7e57611d7d613055565b5b0492506008810190505b6127108310611dad576127108381611da357611da2613055565b5b0492506004810190505b60648310611dd05760648381611dc657611dc5613055565b5b0492506002810190505b600a8310611ddf576001810190505b80915050919050565b60008054905060008203611e28576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611e356000848385611808565b600160406001901b178202600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550611eac83611e9d600086600061180e565b611ea685611fa3565b17611836565b6004600083815260200190815260200160002081905550600080838301905073ffffffffffffffffffffffffffffffffffffffff85169150828260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600183015b818114611f4d57808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600181019050611f12565b5060008203611f88576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000819055505050611f9e6000848385611861565b505050565b60006001821460e11b9050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611ffc81611fc7565b811461200757600080fd5b50565b60008135905061201981611ff3565b92915050565b60006020828403121561203557612034611fbd565b5b60006120438482850161200a565b91505092915050565b60008115159050919050565b6120618161204c565b82525050565b600060208201905061207c6000830184612058565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156120bc5780820151818401526020810190506120a1565b60008484015250505050565b6000601f19601f8301169050919050565b60006120e482612082565b6120ee818561208d565b93506120fe81856020860161209e565b612107816120c8565b840191505092915050565b6000602082019050818103600083015261212c81846120d9565b905092915050565b6000819050919050565b61214781612134565b811461215257600080fd5b50565b6000813590506121648161213e565b92915050565b6000602082840312156121805761217f611fbd565b5b600061218e84828501612155565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121c282612197565b9050919050565b6121d2816121b7565b82525050565b60006020820190506121ed60008301846121c9565b92915050565b6121fc816121b7565b811461220757600080fd5b50565b600081359050612219816121f3565b92915050565b6000806040838503121561223657612235611fbd565b5b60006122448582860161220a565b925050602061225585828601612155565b9150509250929050565b61226881612134565b82525050565b6000602082019050612283600083018461225f565b92915050565b6000806000606084860312156122a2576122a1611fbd565b5b60006122b08682870161220a565b93505060206122c18682870161220a565b92505060406122d286828701612155565b9150509250925092565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61231e826120c8565b810181811067ffffffffffffffff8211171561233d5761233c6122e6565b5b80604052505050565b6000612350611fb3565b905061235c8282612315565b919050565b600067ffffffffffffffff82111561237c5761237b6122e6565b5b612385826120c8565b9050602081019050919050565b82818337600083830152505050565b60006123b46123af84612361565b612346565b9050828152602081018484840111156123d0576123cf6122e1565b5b6123db848285612392565b509392505050565b600082601f8301126123f8576123f76122dc565b5b81356124088482602086016123a1565b91505092915050565b60006020828403121561242757612426611fbd565b5b600082013567ffffffffffffffff81111561244557612444611fc2565b5b612451848285016123e3565b91505092915050565b6000602082840312156124705761246f611fbd565b5b600061247e8482850161220a565b91505092915050565b6124908161204c565b811461249b57600080fd5b50565b6000813590506124ad81612487565b92915050565b600080604083850312156124ca576124c9611fbd565b5b60006124d88582860161220a565b92505060206124e98582860161249e565b9150509250929050565b600067ffffffffffffffff82111561250e5761250d6122e6565b5b612517826120c8565b9050602081019050919050565b6000612537612532846124f3565b612346565b905082815260208101848484011115612553576125526122e1565b5b61255e848285612392565b509392505050565b600082601f83011261257b5761257a6122dc565b5b813561258b848260208601612524565b91505092915050565b600080600080608085870312156125ae576125ad611fbd565b5b60006125bc8782880161220a565b94505060206125cd8782880161220a565b93505060406125de87828801612155565b925050606085013567ffffffffffffffff8111156125ff576125fe611fc2565b5b61260b87828801612566565b91505092959194509250565b6000806040838503121561262e5761262d611fbd565b5b600061263c8582860161220a565b925050602061264d8582860161220a565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061269e57607f821691505b6020821081036126b1576126b0612657565b5b50919050565b600081905092915050565b50565b60006126d26000836126b7565b91506126dd826126c2565b600082019050919050565b60006126f3826126c5565b9150819050919050565b7f5472616e73666572206661696c65640000000000000000000000000000000000600082015250565b6000612733600f8361208d565b915061273e826126fd565b602082019050919050565b6000602082019050818103600083015261276281612726565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026127cb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261278e565b6127d5868361278e565b95508019841693508086168417925050509392505050565b6000819050919050565b600061281261280d61280884612134565b6127ed565b612134565b9050919050565b6000819050919050565b61282c836127f7565b61284061283882612819565b84845461279b565b825550505050565b600090565b612855612848565b612860818484612823565b505050565b5b818110156128845761287960008261284d565b600181019050612866565b5050565b601f8211156128c95761289a81612769565b6128a38461277e565b810160208510156128b2578190505b6128c66128be8561277e565b830182612865565b50505b505050565b600082821c905092915050565b60006128ec600019846008026128ce565b1980831691505092915050565b600061290583836128db565b9150826002028217905092915050565b61291e82612082565b67ffffffffffffffff811115612937576129366122e6565b5b6129418254612686565b61294c828285612888565b600060209050601f83116001811461297f576000841561296d578287015190505b61297785826128f9565b8655506129df565b601f19841661298d86612769565b60005b828110156129b557848901518255600182019150602085019450602081019050612990565b868310156129d257848901516129ce601f8916826128db565b8355505b6001600288020188555050505b505050505050565b7f4d696e74696e6720697320706175736564000000000000000000000000000000600082015250565b6000612a1d60118361208d565b9150612a28826129e7565b602082019050919050565b60006020820190508181036000830152612a4c81612a10565b9050919050565b7f4e6f20636f6e7472616374206d696e7400000000000000000000000000000000600082015250565b6000612a8960108361208d565b9150612a9482612a53565b602082019050919050565b60006020820190508181036000830152612ab881612a7c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612af982612134565b9150612b0483612134565b9250828201905080821115612b1c57612b1b612abf565b5b92915050565b6000612b2d82612134565b9150612b3883612134565b9250828202612b4681612134565b91508282048414831517612b5d57612b5c612abf565b5b5092915050565b7f57726f6e67206d696e7420707269636500000000000000000000000000000000600082015250565b6000612b9a60108361208d565b9150612ba582612b64565b602082019050919050565b60006020820190508181036000830152612bc981612b8d565b9050919050565b7f4d696e746564206f757400000000000000000000000000000000000000000000600082015250565b6000612c06600a8361208d565b9150612c1182612bd0565b602082019050919050565b60006020820190508181036000830152612c3581612bf9565b9050919050565b7f4d617820706572207472616e73616374696f6e20657863656564656400000000600082015250565b6000612c72601c8361208d565b9150612c7d82612c3c565b602082019050919050565b60006020820190508181036000830152612ca181612c65565b9050919050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b6000612d04602f8361208d565b9150612d0f82612ca8565b604082019050919050565b60006020820190508181036000830152612d3381612cf7565b9050919050565b600081905092915050565b60008154612d5281612686565b612d5c8186612d3a565b94506001821660008114612d775760018114612d8c57612dbf565b60ff1983168652811515820286019350612dbf565b612d9585612769565b60005b83811015612db757815481890152600182019150602081019050612d98565b838801955050505b50505092915050565b6000612dd382612082565b612ddd8185612d3a565b9350612ded81856020860161209e565b80840191505092915050565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b6000612e2f600583612d3a565b9150612e3a82612df9565b600582019050919050565b6000612e518285612d45565b9150612e5d8284612dc8565b9150612e6882612e22565b91508190509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612ed060268361208d565b9150612edb82612e74565b604082019050919050565b60006020820190508181036000830152612eff81612ec3565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612f3c60208361208d565b9150612f4782612f06565b602082019050919050565b60006020820190508181036000830152612f6b81612f2f565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000612f9982612f72565b612fa38185612f7d565b9350612fb381856020860161209e565b612fbc816120c8565b840191505092915050565b6000608082019050612fdc60008301876121c9565b612fe960208301866121c9565b612ff6604083018561225f565b81810360608301526130088184612f8e565b905095945050505050565b60008151905061302281611ff3565b92915050565b60006020828403121561303e5761303d611fbd565b5b600061304c84828501613013565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea2646970667358221220bcc624cdaad072100d9ce61bcddfb4970135de2187e2e14c6fab67088fe1306664736f6c63430008120033