[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "extension", "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": [ { "internalType": "uint256", "name": "quantity", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "payable", "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": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "_salePrice", "type": "uint256" } ], "name": "royaltyInfo", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_salePrice", "type": "uint256" } ], "name": "royaltyInfo", "outputs": [ { "internalType": "address", "name": "_payoutAddress", "type": "address" }, { "internalType": "uint256", "name": "royaltyAmount", "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": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "customBaseURI_", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "status", "type": "bool" } ], "name": "setMintActive", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_payoutAddress", "type": "address" } ], "name": "setRoyaltyPayoutAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint96", "name": "_royalties", "type": "uint96" } ], "name": "setTokenRoyalties", "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": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040526001600f556040518060400160405280600581526020017f2e6a736f6e000000000000000000000000000000000000000000000000000000815250601090816200004f919062000737565b5073c546d837d53fd5fbd901e767dbe10d141ec030c3601160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015620000b257600080fd5b506040518060400160405280600781526020017f4469636b58656c000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f44584c0000000000000000000000000000000000000000000000000000000000815250816000908162000130919062000737565b50806001908162000142919062000737565b50505062000165620001596200024260201b60201c565b6200024a60201b60201c565b604051806080016040528060598152602001620048fb60599139600d90816200018f919062000737565b506000600b81905550601e600c81905550610320600e60006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055506000601160006101000a81548160ff0219169083151502179055506200023c601160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a90046bffffffffffffffffffffffff166200031060201b60201c565b62000939565b600033905090565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b62000320620004b360201b60201c565b6bffffffffffffffffffffffff16816bffffffffffffffffffffffff16111562000381576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200037890620008a5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620003f3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003ea9062000917565b60405180910390fd5b60405180604001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001826bffffffffffffffffffffffff16815250600860008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055509050505050565b6000612710905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200053f57607f821691505b602082108103620005555762000554620004f7565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620005bf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000580565b620005cb868362000580565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000618620006126200060c84620005e3565b620005ed565b620005e3565b9050919050565b6000819050919050565b6200063483620005f7565b6200064c62000643826200061f565b8484546200058d565b825550505050565b600090565b6200066362000654565b6200067081848462000629565b505050565b5b8181101562000698576200068c60008262000659565b60018101905062000676565b5050565b601f821115620006e757620006b1816200055b565b620006bc8462000570565b81016020851015620006cc578190505b620006e4620006db8562000570565b83018262000675565b50505b505050565b600082821c905092915050565b60006200070c60001984600802620006ec565b1980831691505092915050565b6000620007278383620006f9565b9150826002028217905092915050565b6200074282620004bd565b67ffffffffffffffff8111156200075e576200075d620004c8565b5b6200076a825462000526565b620007778282856200069c565b600060209050601f831160018114620007af57600084156200079a578287015190505b620007a6858262000719565b86555062000816565b601f198416620007bf866200055b565b60005b82811015620007e957848901518255600182019150602085019450602081019050620007c2565b8683101562000809578489015162000805601f891682620006f9565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f455243323938313a20726f79616c7479206665652077696c6c2065786365656460008201527f2073616c65507269636500000000000000000000000000000000000000000000602082015250565b60006200088d602a836200081e565b91506200089a826200082f565b604082019050919050565b60006020820190508181036000830152620008c0816200087e565b9050919050565b7f455243323938313a20696e76616c696420726563656976657200000000000000600082015250565b6000620008ff6019836200081e565b91506200090c82620008c7565b602082019050919050565b600060208201905081810360008301526200093281620008f0565b9050919050565b613fb280620009496000396000f3fe6080604052600436106101665760003560e01c80636352211e116100d1578063a22cb4651161008a578063cef6d36811610064578063cef6d3681461052c578063e985e9c51461056a578063ee1cc944146105a7578063f2fde38b146105d057610166565b8063a22cb4651461049d578063b88d4fde146104c6578063c87b56dd146104ef57610166565b80636352211e1461039a57806370a08231146103d7578063715018a6146104145780638da5cb5b1461042b57806395d89b4114610456578063a0712d681461048157610166565b806323b872dd1161012357806323b872dd1461028d5780632a55205a146102b65780632d5537b0146102f457806342842e0e1461031f57806345aeefde1461034857806355f804b31461037157610166565b806301ffc9a71461016b57806306fdde03146101a8578063081812fc146101d3578063095ea7b31461021057806318160ddd146102395780631ebdcaae14610264575b600080fd5b34801561017757600080fd5b50610192600480360381019061018d9190612658565b6105f9565b60405161019f91906126a0565b60405180910390f35b3480156101b457600080fd5b506101bd61060b565b6040516101ca9190612754565b60405180910390f35b3480156101df57600080fd5b506101fa60048036038101906101f591906127ac565b61069d565b604051610207919061281a565b60405180910390f35b34801561021c57600080fd5b5061023760048036038101906102329190612861565b610722565b005b34801561024557600080fd5b5061024e610839565b60405161025b91906128b0565b60405180910390f35b34801561027057600080fd5b5061028b6004803603810190610286919061290f565b61084a565b005b34801561029957600080fd5b506102b460048036038101906102af919061293c565b610940565b005b3480156102c257600080fd5b506102dd60048036038101906102d8919061298f565b6109a0565b6040516102eb9291906129cf565b60405180910390f35b34801561030057600080fd5b50610309610b8a565b6040516103169190612754565b60405180910390f35b34801561032b57600080fd5b506103466004803603810190610341919061293c565b610c18565b005b34801561035457600080fd5b5061036f600480360381019061036a91906129f8565b610c38565b005b34801561037d57600080fd5b5061039860048036038101906103939190612b5a565b610d3e565b005b3480156103a657600080fd5b506103c160048036038101906103bc91906127ac565b610dcd565b6040516103ce919061281a565b60405180910390f35b3480156103e357600080fd5b506103fe60048036038101906103f991906129f8565b610e7e565b60405161040b91906128b0565b60405180910390f35b34801561042057600080fd5b50610429610f35565b005b34801561043757600080fd5b50610440610fbd565b60405161044d919061281a565b60405180910390f35b34801561046257600080fd5b5061046b610fe7565b6040516104789190612754565b60405180910390f35b61049b600480360381019061049691906127ac565b611079565b005b3480156104a957600080fd5b506104c460048036038101906104bf9190612bcf565b6111d6565b005b3480156104d257600080fd5b506104ed60048036038101906104e89190612cb0565b6111ec565b005b3480156104fb57600080fd5b50610516600480360381019061051191906127ac565b61124e565b6040516105239190612754565b60405180910390f35b34801561053857600080fd5b50610553600480360381019061054e91906127ac565b6112f8565b6040516105619291906129cf565b60405180910390f35b34801561057657600080fd5b50610591600480360381019061058c9190612d33565b61134d565b60405161059e91906126a0565b60405180910390f35b3480156105b357600080fd5b506105ce60048036038101906105c99190612d73565b6113e1565b005b3480156105dc57600080fd5b506105f760048036038101906105f291906129f8565b61147a565b005b600061060482611571565b9050919050565b60606000805461061a90612dcf565b80601f016020809104026020016040519081016040528092919081815260200182805461064690612dcf565b80156106935780601f1061066857610100808354040283529160200191610693565b820191906000526020600020905b81548152906001019060200180831161067657829003601f168201915b5050505050905090565b60006106a8826115eb565b6106e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106de90612e72565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061072d82610dcd565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361079d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079490612f04565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166107bc611657565b73ffffffffffffffffffffffffffffffffffffffff1614806107eb57506107ea816107e5611657565b61134d565b5b61082a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082190612f96565b60405180910390fd5b610834838361165f565b505050565b6000610845600a611718565b905090565b610852611657565b73ffffffffffffffffffffffffffffffffffffffff16610870610fbd565b73ffffffffffffffffffffffffffffffffffffffff16146108c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108bd90613002565b60405180910390fd5b80600e60006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555061093d601160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a90046bffffffffffffffffffffffff16611726565b50565b61095161094b611657565b826118bb565b610990576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098790613094565b60405180910390fd5b61099b838383611999565b505050565b6000806000600960008681526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1603610b355760086040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff168152505090505b6000610b3f611bff565b6bffffffffffffffffffffffff1682602001516bffffffffffffffffffffffff1686610b6b91906130e3565b610b75919061316c565b90508160000151819350935050509250929050565b60108054610b9790612dcf565b80601f0160208091040260200160405190810160405280929190818152602001828054610bc390612dcf565b8015610c105780601f10610be557610100808354040283529160200191610c10565b820191906000526020600020905b815481529060010190602001808311610bf357829003601f168201915b505050505081565b610c33838383604051806020016040528060008152506111ec565b505050565b610c40611657565b73ffffffffffffffffffffffffffffffffffffffff16610c5e610fbd565b73ffffffffffffffffffffffffffffffffffffffff1614610cb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cab90613002565b60405180910390fd5b80601160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d3b601160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a90046bffffffffffffffffffffffff16611726565b50565b610d46611657565b73ffffffffffffffffffffffffffffffffffffffff16610d64610fbd565b73ffffffffffffffffffffffffffffffffffffffff1614610dba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db190613002565b60405180910390fd5b80600d9081610dc99190613349565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6c9061348d565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610eee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee59061351f565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f3d611657565b73ffffffffffffffffffffffffffffffffffffffff16610f5b610fbd565b73ffffffffffffffffffffffffffffffffffffffff1614610fb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa890613002565b60405180910390fd5b610fbb6000611c09565b565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610ff690612dcf565b80601f016020809104026020016040519081016040528092919081815260200182805461102290612dcf565b801561106f5780601f106110445761010080835404028352916020019161106f565b820191906000526020600020905b81548152906001019060200180831161105257829003601f168201915b5050505050905090565b601160009054906101000a900460ff166110c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bf9061358b565b60405180910390fd5b600f5481111561110d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611104906135f7565b60405180910390fd5b80600b5461111b91906130e3565b34101561115d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115490613663565b60405180910390fd5b611165610fbd565b73ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501580156111aa573d6000803e3d6000fd5b5060005b818110156111d2576111bf33611ccf565b80806111ca90613683565b9150506111ae565b5050565b6111e86111e1611657565b8383611d43565b5050565b6111fd6111f7611657565b836118bb565b61123c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123390613094565b60405180910390fd5b61124884848484611eaf565b50505050565b6060611259826115eb565b611298576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128f90613717565b60405180910390fd5b60006112a2611f0b565b905060008151116112c257604051806020016040528060008152506112f0565b806112cc84611f9d565b60106040516020016112e0939291906137f6565b6040516020818303038152906040525b915050919050565b600080611303610fbd565b612710600e60009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff168561133a91906130e3565b611344919061316c565b91509150915091565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6113e9611657565b73ffffffffffffffffffffffffffffffffffffffff16611407610fbd565b73ffffffffffffffffffffffffffffffffffffffff161461145d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145490613002565b60405180910390fd5b80601160006101000a81548160ff02191690831515021790555050565b611482611657565b73ffffffffffffffffffffffffffffffffffffffff166114a0610fbd565b73ffffffffffffffffffffffffffffffffffffffff16146114f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ed90613002565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611565576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155c90613899565b60405180910390fd5b61156e81611c09565b50565b60007f2a55205a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806115e457506115e3826120fd565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166116d283610dcd565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600081600001549050919050565b61172e611bff565b6bffffffffffffffffffffffff16816bffffffffffffffffffffffff16111561178c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117839061392b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f290613997565b60405180910390fd5b60405180604001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001826bffffffffffffffffffffffff16815250600860008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055509050505050565b60006118c6826115eb565b611905576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fc90613a29565b60405180910390fd5b600061191083610dcd565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061197f57508373ffffffffffffffffffffffffffffffffffffffff166119678461069d565b73ffffffffffffffffffffffffffffffffffffffff16145b80611990575061198f818561134d565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166119b982610dcd565b73ffffffffffffffffffffffffffffffffffffffff1614611a0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0690613abb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7590613b4d565b60405180910390fd5b611a898383836121df565b611a9460008261165f565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ae49190613b6d565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b3b9190613ba1565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611bfa8383836121e4565b505050565b6000612710905090565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611cd9600a6121e9565b600c54611ce6600a611718565b1115611d27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1e90613c43565b60405180910390fd5b6000611d33600a611718565b9050611d3f82826121ff565b5050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611db1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da890613caf565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611ea291906126a0565b60405180910390a3505050565b611eba848484611999565b611ec6848484846123d8565b611f05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611efc90613d41565b60405180910390fd5b50505050565b6060600d8054611f1a90612dcf565b80601f0160208091040260200160405190810160405280929190818152602001828054611f4690612dcf565b8015611f935780601f10611f6857610100808354040283529160200191611f93565b820191906000526020600020905b815481529060010190602001808311611f7657829003601f168201915b5050505050905090565b606060008203611fe4576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506120f8565b600082905060005b60008214612016578080611fff90613683565b915050600a8261200f919061316c565b9150611fec565b60008167ffffffffffffffff81111561203257612031612a2f565b5b6040519080825280601f01601f1916602001820160405280156120645781602001600182028036833780820191505090505b5090505b600085146120f15760018261207d9190613b6d565b9150600a8561208c9190613d61565b60306120989190613ba1565b60f81b8183815181106120ae576120ad613d92565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856120ea919061316c565b9450612068565b8093505050505b919050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806121c857507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806121d857506121d78261255f565b5b9050919050565b505050565b505050565b6001816000016000828254019250508190555050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361226e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226590613e0d565b60405180910390fd5b612277816115eb565b156122b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ae90613e79565b60405180910390fd5b6122c3600083836121df565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123139190613ba1565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46123d4600083836121e4565b5050565b60006123f98473ffffffffffffffffffffffffffffffffffffffff166125c9565b15612552578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612422611657565b8786866040518563ffffffff1660e01b81526004016124449493929190613eee565b6020604051808303816000875af192505050801561248057506040513d601f19601f8201168201806040525081019061247d9190613f4f565b60015b612502573d80600081146124b0576040519150601f19603f3d011682016040523d82523d6000602084013e6124b5565b606091505b5060008151036124fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f190613d41565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612557565b600190505b949350505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61263581612600565b811461264057600080fd5b50565b6000813590506126528161262c565b92915050565b60006020828403121561266e5761266d6125f6565b5b600061267c84828501612643565b91505092915050565b60008115159050919050565b61269a81612685565b82525050565b60006020820190506126b56000830184612691565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156126f55780820151818401526020810190506126da565b83811115612704576000848401525b50505050565b6000601f19601f8301169050919050565b6000612726826126bb565b61273081856126c6565b93506127408185602086016126d7565b6127498161270a565b840191505092915050565b6000602082019050818103600083015261276e818461271b565b905092915050565b6000819050919050565b61278981612776565b811461279457600080fd5b50565b6000813590506127a681612780565b92915050565b6000602082840312156127c2576127c16125f6565b5b60006127d084828501612797565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612804826127d9565b9050919050565b612814816127f9565b82525050565b600060208201905061282f600083018461280b565b92915050565b61283e816127f9565b811461284957600080fd5b50565b60008135905061285b81612835565b92915050565b60008060408385031215612878576128776125f6565b5b60006128868582860161284c565b925050602061289785828601612797565b9150509250929050565b6128aa81612776565b82525050565b60006020820190506128c560008301846128a1565b92915050565b60006bffffffffffffffffffffffff82169050919050565b6128ec816128cb565b81146128f757600080fd5b50565b600081359050612909816128e3565b92915050565b600060208284031215612925576129246125f6565b5b6000612933848285016128fa565b91505092915050565b600080600060608486031215612955576129546125f6565b5b60006129638682870161284c565b93505060206129748682870161284c565b925050604061298586828701612797565b9150509250925092565b600080604083850312156129a6576129a56125f6565b5b60006129b485828601612797565b92505060206129c585828601612797565b9150509250929050565b60006040820190506129e4600083018561280b565b6129f160208301846128a1565b9392505050565b600060208284031215612a0e57612a0d6125f6565b5b6000612a1c8482850161284c565b91505092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612a678261270a565b810181811067ffffffffffffffff82111715612a8657612a85612a2f565b5b80604052505050565b6000612a996125ec565b9050612aa58282612a5e565b919050565b600067ffffffffffffffff821115612ac557612ac4612a2f565b5b612ace8261270a565b9050602081019050919050565b82818337600083830152505050565b6000612afd612af884612aaa565b612a8f565b905082815260208101848484011115612b1957612b18612a2a565b5b612b24848285612adb565b509392505050565b600082601f830112612b4157612b40612a25565b5b8135612b51848260208601612aea565b91505092915050565b600060208284031215612b7057612b6f6125f6565b5b600082013567ffffffffffffffff811115612b8e57612b8d6125fb565b5b612b9a84828501612b2c565b91505092915050565b612bac81612685565b8114612bb757600080fd5b50565b600081359050612bc981612ba3565b92915050565b60008060408385031215612be657612be56125f6565b5b6000612bf48582860161284c565b9250506020612c0585828601612bba565b9150509250929050565b600067ffffffffffffffff821115612c2a57612c29612a2f565b5b612c338261270a565b9050602081019050919050565b6000612c53612c4e84612c0f565b612a8f565b905082815260208101848484011115612c6f57612c6e612a2a565b5b612c7a848285612adb565b509392505050565b600082601f830112612c9757612c96612a25565b5b8135612ca7848260208601612c40565b91505092915050565b60008060008060808587031215612cca57612cc96125f6565b5b6000612cd88782880161284c565b9450506020612ce98782880161284c565b9350506040612cfa87828801612797565b925050606085013567ffffffffffffffff811115612d1b57612d1a6125fb565b5b612d2787828801612c82565b91505092959194509250565b60008060408385031215612d4a57612d496125f6565b5b6000612d588582860161284c565b9250506020612d698582860161284c565b9150509250929050565b600060208284031215612d8957612d886125f6565b5b6000612d9784828501612bba565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612de757607f821691505b602082108103612dfa57612df9612da0565b5b50919050565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b6000612e5c602c836126c6565b9150612e6782612e00565b604082019050919050565b60006020820190508181036000830152612e8b81612e4f565b9050919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000612eee6021836126c6565b9150612ef982612e92565b604082019050919050565b60006020820190508181036000830152612f1d81612ee1565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b6000612f806038836126c6565b9150612f8b82612f24565b604082019050919050565b60006020820190508181036000830152612faf81612f73565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612fec6020836126c6565b9150612ff782612fb6565b602082019050919050565b6000602082019050818103600083015261301b81612fdf565b9050919050565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b600061307e6031836126c6565b915061308982613022565b604082019050919050565b600060208201905081810360008301526130ad81613071565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006130ee82612776565b91506130f983612776565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613132576131316130b4565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061317782612776565b915061318283612776565b9250826131925761319161313d565b5b828204905092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026131ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826131c2565b61320986836131c2565b95508019841693508086168417925050509392505050565b6000819050919050565b600061324661324161323c84612776565b613221565b612776565b9050919050565b6000819050919050565b6132608361322b565b61327461326c8261324d565b8484546131cf565b825550505050565b600090565b61328961327c565b613294818484613257565b505050565b5b818110156132b8576132ad600082613281565b60018101905061329a565b5050565b601f8211156132fd576132ce8161319d565b6132d7846131b2565b810160208510156132e6578190505b6132fa6132f2856131b2565b830182613299565b50505b505050565b600082821c905092915050565b600061332060001984600802613302565b1980831691505092915050565b6000613339838361330f565b9150826002028217905092915050565b613352826126bb565b67ffffffffffffffff81111561336b5761336a612a2f565b5b6133758254612dcf565b6133808282856132bc565b600060209050601f8311600181146133b357600084156133a1578287015190505b6133ab858261332d565b865550613413565b601f1984166133c18661319d565b60005b828110156133e9578489015182556001820191506020850194506020810190506133c4565b868310156134065784890151613402601f89168261330f565b8355505b6001600288020188555050505b505050505050565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b60006134776029836126c6565b91506134828261341b565b604082019050919050565b600060208201905081810360008301526134a68161346a565b9050919050565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b6000613509602a836126c6565b9150613514826134ad565b604082019050919050565b60006020820190508181036000830152613538816134fc565b9050919050565b7f4d696e74696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006135756016836126c6565b91506135808261353f565b602082019050919050565b600060208201905081810360008301526135a481613568565b9050919050565b7f43616e6e6f74206d696e742074686174206d616e79206174206f6e63652e0000600082015250565b60006135e1601e836126c6565b91506135ec826135ab565b602082019050919050565b60006020820190508181036000830152613610816135d4565b9050919050565b7f4e6f7420656e6f75676820415641582073656e742e0000000000000000000000600082015250565b600061364d6015836126c6565b915061365882613617565b602082019050919050565b6000602082019050818103600083015261367c81613640565b9050919050565b600061368e82612776565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036136c0576136bf6130b4565b5b600182019050919050565b7f546f6b656e20646f6573206e6f74206578697374000000000000000000000000600082015250565b60006137016014836126c6565b915061370c826136cb565b602082019050919050565b60006020820190508181036000830152613730816136f4565b9050919050565b600081905092915050565b600061374d826126bb565b6137578185613737565b93506137678185602086016126d7565b80840191505092915050565b6000815461378081612dcf565b61378a8186613737565b945060018216600081146137a557600181146137ba576137ed565b60ff19831686528115158202860193506137ed565b6137c38561319d565b60005b838110156137e5578154818901526001820191506020810190506137c6565b838801955050505b50505092915050565b60006138028286613742565b915061380e8285613742565b915061381a8284613773565b9150819050949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006138836026836126c6565b915061388e82613827565b604082019050919050565b600060208201905081810360008301526138b281613876565b9050919050565b7f455243323938313a20726f79616c7479206665652077696c6c2065786365656460008201527f2073616c65507269636500000000000000000000000000000000000000000000602082015250565b6000613915602a836126c6565b9150613920826138b9565b604082019050919050565b6000602082019050818103600083015261394481613908565b9050919050565b7f455243323938313a20696e76616c696420726563656976657200000000000000600082015250565b60006139816019836126c6565b915061398c8261394b565b602082019050919050565b600060208201905081810360008301526139b081613974565b9050919050565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b6000613a13602c836126c6565b9150613a1e826139b7565b604082019050919050565b60006020820190508181036000830152613a4281613a06565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b6000613aa56025836126c6565b9150613ab082613a49565b604082019050919050565b60006020820190508181036000830152613ad481613a98565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613b376024836126c6565b9150613b4282613adb565b604082019050919050565b60006020820190508181036000830152613b6681613b2a565b9050919050565b6000613b7882612776565b9150613b8383612776565b925082821015613b9657613b956130b4565b5b828203905092915050565b6000613bac82612776565b9150613bb783612776565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613bec57613beb6130b4565b5b828201905092915050565b7f50726f6a6563742069732066696e6973686564206d696e74696e672e00000000600082015250565b6000613c2d601c836126c6565b9150613c3882613bf7565b602082019050919050565b60006020820190508181036000830152613c5c81613c20565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b6000613c996019836126c6565b9150613ca482613c63565b602082019050919050565b60006020820190508181036000830152613cc881613c8c565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b6000613d2b6032836126c6565b9150613d3682613ccf565b604082019050919050565b60006020820190508181036000830152613d5a81613d1e565b9050919050565b6000613d6c82612776565b9150613d7783612776565b925082613d8757613d8661313d565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b6000613df76020836126c6565b9150613e0282613dc1565b602082019050919050565b60006020820190508181036000830152613e2681613dea565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000613e63601c836126c6565b9150613e6e82613e2d565b602082019050919050565b60006020820190508181036000830152613e9281613e56565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000613ec082613e99565b613eca8185613ea4565b9350613eda8185602086016126d7565b613ee38161270a565b840191505092915050565b6000608082019050613f03600083018761280b565b613f10602083018661280b565b613f1d60408301856128a1565b8181036060830152613f2f8184613eb5565b905095945050505050565b600081519050613f498161262c565b92915050565b600060208284031215613f6557613f646125f6565b5b6000613f7384828501613f3a565b9150509291505056fea2646970667358221220de5cfaaf368eea29d578cddc4bfc5a85f8c4f32e7f9fd229d9a2ec4306c99bda64736f6c634300080f003368747470733a2f2f62616679626569666a347933357134636d786337667a37626e726c6f79676c6572697167366763687237746670616564746c6b6b686667347a62342e697066732e6e667473746f726167652e6c696e6b2f