[ { "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": [], "name": "MAX_MINTS_PER_ADDRESS", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "TOKEN_LIMIT", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_feeAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_tokenIds", "outputs": [ { "internalType": "uint256", "name": "_value", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" } ], "name": "addressMintAvailable", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "calculatePrice", "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": "address", "name": "to", "type": "address" } ], "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": "address", "name": "to", "type": "address" } ], "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": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "baseURI", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenOfOwnerByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" } ], "name": "tokensOfOwner", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "addr", "type": "address" } ], "name": "updateFeeAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
6080604052733b7631f8e3428deab77634bf799b622ce412e9ea600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200006657600080fd5b506040518060400160405280601b81526020017f536e6f7762616c6c204e465420536e6f772042616c6c204865616400000000008152506040518060400160405280601381526020017f534e4f424e4654534e4f5742414c4c4845414400000000000000000000000000815250620001047f01ffc9a7000000000000000000000000000000000000000000000000000000006200030f60201b60201c565b81600690805190602001906200011c929190620004d8565b50806007908051906020019062000135929190620004d8565b50620001677f80ac58cd000000000000000000000000000000000000000000000000000000006200030f60201b60201c565b620001987f5b5e139f000000000000000000000000000000000000000000000000000000006200030f60201b60201c565b620001c97f780e9d63000000000000000000000000000000000000000000000000000000006200030f60201b60201c565b50506000620001dd620003e760201b60201c565b905080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620003096040518060600160405280602f815260200162004926602f9139620003ef60201b60201c565b620006e2565b63ffffffff60e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156200037b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200037290620005d6565b60405180910390fd5b6001600080837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600033905090565b620003ff620003e760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620004256200049260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200047e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200047590620005f8565b60405180910390fd5b6200048f81620004bc60201b60201c565b50565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b8060099080519060200190620004d4929190620004d8565b5050565b828054620004e6906200062b565b90600052602060002090601f0160209004810192826200050a576000855562000556565b82601f106200052557805160ff191683800117855562000556565b8280016001018555821562000556579182015b828111156200055557825182559160200191906001019062000538565b5b50905062000565919062000569565b5090565b5b80821115620005845760008160009055506001016200056a565b5090565b600062000597601c836200061a565b9150620005a48262000690565b602082019050919050565b6000620005be6020836200061a565b9150620005cb82620006b9565b602082019050919050565b60006020820190508181036000830152620005f18162000588565b9050919050565b600060208201905081810360008301526200061381620005af565b9050919050565b600082825260208201905092915050565b600060028204905060018216806200064457607f821691505b602082108114156200065b576200065a62000661565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4552433136353a20696e76616c696420696e7465726661636520696400000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b61423480620006f26000396000f3fe6080604052600436106101d85760003560e01c80636c0360eb11610102578063b874ff4311610095578063d348b40911610064578063d348b409146106c3578063e1fb6f7c146106ee578063e985e9c51461072b578063f2fde38b14610768576101d8565b8063b874ff4314610609578063b88d4fde14610634578063bbcaac381461065d578063c87b56dd14610686576101d8565b80638da5cb5b116100d15780638da5cb5b1461055f57806395d89b411461058a578063a22cb465146105b5578063aa46a400146105de576101d8565b80636c0360eb146104a357806370a08231146104ce578063715018a61461050b5780638462151c14610522576101d8565b80631e3bcc8e1161017a5780634f6ccce7116101495780634f6ccce7146103e457806355f804b3146104215780636352211e1461044a5780636a62784214610487576101d8565b80631e3bcc8e1461032c57806323b872dd146103555780632f745c591461037e57806342842e0e146103bb576101d8565b806306fdde03116101b657806306fdde0314610270578063081812fc1461029b578063095ea7b3146102d857806318160ddd14610301576101d8565b80630135f740146101dd57806301ffc9a714610208578063031bd4c414610245575b600080fd5b3480156101e957600080fd5b506101f2610791565b6040516101ff91906134dd565b60405180910390f35b34801561021457600080fd5b5061022f600480360381019061022a919061300f565b6107b7565b60405161023c9190613566565b60405180910390f35b34801561025157600080fd5b5061025a61081e565b6040516102679190613803565b60405180910390f35b34801561027c57600080fd5b50610285610823565b6040516102929190613581565b60405180910390f35b3480156102a757600080fd5b506102c260048036038101906102bd91906130a2565b6108b5565b6040516102cf91906134dd565b60405180910390f35b3480156102e457600080fd5b506102ff60048036038101906102fa9190612fd3565b61093a565b005b34801561030d57600080fd5b50610316610a52565b6040516103239190613803565b60405180910390f35b34801561033857600080fd5b50610353600480360381019061034e9190612e68565b610a63565b005b34801561036157600080fd5b5061037c60048036038101906103779190612ecd565b610c01565b005b34801561038a57600080fd5b506103a560048036038101906103a09190612fd3565b610c61565b6040516103b29190613803565b60405180910390f35b3480156103c757600080fd5b506103e260048036038101906103dd9190612ecd565b610cbc565b005b3480156103f057600080fd5b5061040b600480360381019061040691906130a2565b610cdc565b6040516104189190613803565b60405180910390f35b34801561042d57600080fd5b5061044860048036038101906104439190613061565b610cff565b005b34801561045657600080fd5b50610471600480360381019061046c91906130a2565b610d87565b60405161047e91906134dd565b60405180910390f35b6104a1600480360381019061049c9190612e68565b610dbe565b005b3480156104af57600080fd5b506104b8610fff565b6040516104c59190613581565b60405180910390f35b3480156104da57600080fd5b506104f560048036038101906104f09190612e68565b611091565b6040516105029190613803565b60405180910390f35b34801561051757600080fd5b50610520611150565b005b34801561052e57600080fd5b5061054960048036038101906105449190612e68565b61128d565b6040516105569190613544565b60405180910390f35b34801561056b57600080fd5b50610574611409565b60405161058191906134dd565b60405180910390f35b34801561059657600080fd5b5061059f611433565b6040516105ac9190613581565b60405180910390f35b3480156105c157600080fd5b506105dc60048036038101906105d79190612f97565b6114c5565b005b3480156105ea57600080fd5b506105f3611646565b6040516106009190613803565b60405180910390f35b34801561061557600080fd5b5061061e611652565b60405161062b9190613803565b60405180910390f35b34801561064057600080fd5b5061065b60048036038101906106569190612f1c565b611657565b005b34801561066957600080fd5b50610684600480360381019061067f9190612e68565b6116b9565b005b34801561069257600080fd5b506106ad60048036038101906106a891906130a2565b6117dc565b6040516106ba9190613581565b60405180910390f35b3480156106cf57600080fd5b506106d861194f565b6040516106e59190613803565b60405180910390f35b3480156106fa57600080fd5b5061071560048036038101906107109190612e68565b611a02565b6040516107229190613566565b60405180910390f35b34801561073757600080fd5b50610752600480360381019061074d9190612e91565b611a5e565b60405161075f9190613566565b60405180910390f35b34801561077457600080fd5b5061078f600480360381019061078a9190612e68565b611af2565b005b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b609681565b60606006805461083290613ad6565b80601f016020809104026020016040519081016040528092919081815260200182805461085e90613ad6565b80156108ab5780601f10610880576101008083540402835291602001916108ab565b820191906000526020600020905b81548152906001019060200180831161088e57829003601f168201915b5050505050905090565b60006108c082611c9e565b6108ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f690613743565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061094582610d87565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156109b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ad906137c3565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166109d5611cbb565b73ffffffffffffffffffffffffffffffffffffffff161480610a045750610a03816109fe611cbb565b611a5e565b5b610a43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3a906136c3565b60405180910390fd5b610a4d8383611cc3565b505050565b6000610a5e6002611d7c565b905090565b610a6b611cbb565b73ffffffffffffffffffffffffffffffffffffffff16610a89611409565b73ffffffffffffffffffffffffffffffffffffffff1614610adf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad690613763565b60405180910390fd5b6096610aeb600b611d91565b10610b2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b22906136a3565b60405180910390fd5b6000610b37600b611d91565b9050610b438282611d9f565b610b4d600b611f2d565b6001600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610ba69190613977565b600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055505050565b610c12610c0c611cbb565b82611f43565b610c51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c48906137e3565b60405180910390fd5b610c5c838383612021565b505050565b6000610cb482600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061223890919063ffffffff16565b905092915050565b610cd783838360405180602001604052806000815250611657565b505050565b600080610cf383600261225290919063ffffffff16565b50905080915050919050565b610d07611cbb565b73ffffffffffffffffffffffffffffffffffffffff16610d25611409565b73ffffffffffffffffffffffffffffffffffffffff1614610d7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7290613763565b60405180910390fd5b610d848161227e565b50565b6000610db7826040518060600160405280602981526020016141d66029913960026122989092919063ffffffff16565b9050919050565b6096610dca600b611d91565b10610e0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e01906136a3565b60405180910390fd5b600a600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1610610e9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e93906135c3565b60405180910390fd5b6000610ea661194f565b905080341015610eb557600080fd5b6000341115610f2857600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015610f26573d6000803e3d6000fd5b505b6000610f34600b611d91565b9050610f408382611d9f565b610f4a600b611f2d565b6001600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610fa39190613977565b600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550505050565b60606009805461100e90613ad6565b80601f016020809104026020016040519081016040528092919081815260200182805461103a90613ad6565b80156110875780601f1061105c57610100808354040283529160200191611087565b820191906000526020600020905b81548152906001019060200180831161106a57829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611102576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f9906136e3565b60405180910390fd5b611149600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206122b7565b9050919050565b611158611cbb565b73ffffffffffffffffffffffffffffffffffffffff16611176611409565b73ffffffffffffffffffffffffffffffffffffffff16146111cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c390613763565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6060600061129a83611091565b9050600081141561131d57600067ffffffffffffffff8111156112e6577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156113145781602001602082028036833780820191505090505b50915050611404565b60008167ffffffffffffffff81111561135f577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561138d5781602001602082028036833780820191505090505b50905060005b828110156113fd576113a58582610c61565b8282815181106113de577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101818152505080806113f590613b39565b915050611393565b8193505050505b919050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606007805461144290613ad6565b80601f016020809104026020016040519081016040528092919081815260200182805461146e90613ad6565b80156114bb5780601f10611490576101008083540402835291602001916114bb565b820191906000526020600020905b81548152906001019060200180831161149e57829003601f168201915b5050505050905090565b6114cd611cbb565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561153b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153290613663565b60405180910390fd5b8060056000611548611cbb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166115f5611cbb565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161163a9190613566565b60405180910390a35050565b600b8060000154905081565b600a81565b611668611662611cbb565b83611f43565b6116a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169e906137e3565b60405180910390fd5b6116b3848484846122cc565b50505050565b6116c1611cbb565b73ffffffffffffffffffffffffffffffffffffffff166116df611409565b73ffffffffffffffffffffffffffffffffffffffff1614611735576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172c90613763565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606117e782611c9e565b611826576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181d906137a3565b60405180910390fd5b600060086000848152602001908152602001600020805461184690613ad6565b80601f016020809104026020016040519081016040528092919081815260200182805461187290613ad6565b80156118bf5780601f10611894576101008083540402835291602001916118bf565b820191906000526020600020905b8154815290600101906020018083116118a257829003601f168201915b5050505050905060006118d0610fff565b90506000815114156118e657819250505061194a565b60008251111561191b5780826040516020016119039291906134b9565b6040516020818303038152906040529250505061194a565b8061192585612328565b6040516020016119369291906134b9565b604051602081830303815290604052925050505b919050565b60008061195a610a52565b9050608c811061197557674563918244f400009150506119ff565b6082811061198e57671bc16d674ec800009150506119ff565b607881106119a757670de0b6b3a76400009150506119ff565b605a81106119c057670853a0d2313c00009150506119ff565b603c81106119d9576706f05b59d3b200009150506119ff565b601e81106119f25767058d15e1762800009150506119ff565b670429d069189e00009150505b90565b6000600a600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff16109050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611afa611cbb565b73ffffffffffffffffffffffffffffffffffffffff16611b18611409565b73ffffffffffffffffffffffffffffffffffffffff1614611b6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6590613763565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611bde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd590613603565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000611cb48260026124d590919063ffffffff16565b9050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16611d3683610d87565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000611d8a826000016124ef565b9050919050565b600081600001549050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0690613723565b60405180910390fd5b611e1881611c9e565b15611e58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4f90613623565b60405180910390fd5b611e6460008383612500565b611eb581600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061250590919063ffffffff16565b50611ecc8183600261251f9092919063ffffffff16565b50808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6001816000016000828254019250508190555050565b6000611f4e82611c9e565b611f8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8490613683565b60405180910390fd5b6000611f9883610d87565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061200757508373ffffffffffffffffffffffffffffffffffffffff16611fef846108b5565b73ffffffffffffffffffffffffffffffffffffffff16145b8061201857506120178185611a5e565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661204182610d87565b73ffffffffffffffffffffffffffffffffffffffff1614612097576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208e90613783565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612107576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120fe90613643565b60405180910390fd5b612112838383612500565b61211d600082611cc3565b61216e81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061255490919063ffffffff16565b506121c081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061250590919063ffffffff16565b506121d78183600261251f9092919063ffffffff16565b50808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000612247836000018361256e565b60001c905092915050565b6000806000806122658660000186612608565b915091508160001c8160001c9350935050509250929050565b8060099080519060200190612294929190612c8c565b5050565b60006122ab846000018460001b846126b8565b60001c90509392505050565b60006122c58260000161277f565b9050919050565b6122d7848484612021565b6122e384848484612790565b612322576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612319906135e3565b60405180910390fd5b50505050565b60606000821415612370576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506124d0565b600082905060005b600082146123a257808061238b90613b39565b915050600a8261239b91906139ae565b9150612378565b60008167ffffffffffffffff8111156123e4577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156124165781602001600182028036833780820191505090505b5090505b600085146124c95760018261242f91906139df565b9150600a8561243e9190613b82565b603061244a9190613921565b60f81b818381518110612486577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856124c291906139ae565b945061241a565b8093505050505b919050565b60006124e7836000018360001b612927565b905092915050565b600081600001805490509050919050565b505050565b6000612517836000018360001b61294a565b905092915050565b600061254b846000018460001b8473ffffffffffffffffffffffffffffffffffffffff1660001b6129ba565b90509392505050565b6000612566836000018360001b612acc565b905092915050565b6000818360000180549050116125b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125b0906135a3565b60405180910390fd5b8260000182815481106125f5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154905092915050565b60008082846000018054905011612654576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264b90613703565b60405180910390fd5b6000846000018481548110612692577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906002020190508060000154816001015492509250509250929050565b6000808460010160008581526020019081526020016000205490506000811415839061271a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127119190613581565b60405180910390fd5b508460000160018261272c91906139df565b81548110612763577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000209060020201600101549150509392505050565b600081600001805490509050919050565b60006127b18473ffffffffffffffffffffffffffffffffffffffff16612c56565b1561291a578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026127da611cbb565b8786866040518563ffffffff1660e01b81526004016127fc94939291906134f8565b602060405180830381600087803b15801561281657600080fd5b505af192505050801561284757506040513d601f19601f820116820180604052508101906128449190613038565b60015b6128ca573d8060008114612877576040519150601f19603f3d011682016040523d82523d6000602084013e61287c565b606091505b506000815114156128c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128b9906135e3565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505061291f565b600190505b949350505050565b600080836001016000848152602001908152602001600020541415905092915050565b60006129568383612c69565b6129af5782600001829080600181540180825580915050600190039060005260206000200160009091909190915055826000018054905083600101600084815260200190815260200160002081905550600190506129b4565b600090505b92915050565b6000808460010160008581526020019081526020016000205490506000811415612a6157846000016040518060400160405280868152602001858152509080600181540180825580915050600190039060005260206000209060020201600090919091909150600082015181600001556020820151816001015550508460000180549050856001016000868152602001908152602001600020819055506001915050612ac5565b8285600001600183612a7391906139df565b81548110612aaa577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002090600202016001018190555060009150505b9392505050565b60008083600101600084815260200190815260200160002054905060008114612c4a576000600182612afe91906139df565b9050600060018660000180549050612b1691906139df565b90506000866000018281548110612b56577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154905080876000018481548110612ba0577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200181905550600183612bbb9190613921565b8760010160008381526020019081526020016000208190555086600001805480612c0e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050612c50565b60009150505b92915050565b600080823b905060008111915050919050565b600080836001016000848152602001908152602001600020541415905092915050565b828054612c9890613ad6565b90600052602060002090601f016020900481019282612cba5760008555612d01565b82601f10612cd357805160ff1916838001178555612d01565b82800160010185558215612d01579182015b82811115612d00578251825591602001919060010190612ce5565b5b509050612d0e9190612d12565b5090565b5b80821115612d2b576000816000905550600101612d13565b5090565b6000612d42612d3d84613843565b61381e565b905082815260208101848484011115612d5a57600080fd5b612d65848285613a94565b509392505050565b6000612d80612d7b84613874565b61381e565b905082815260208101848484011115612d9857600080fd5b612da3848285613a94565b509392505050565b600081359050612dba81614179565b92915050565b600081359050612dcf81614190565b92915050565b600081359050612de4816141a7565b92915050565b600081519050612df9816141a7565b92915050565b600082601f830112612e1057600080fd5b8135612e20848260208601612d2f565b91505092915050565b600082601f830112612e3a57600080fd5b8135612e4a848260208601612d6d565b91505092915050565b600081359050612e62816141be565b92915050565b600060208284031215612e7a57600080fd5b6000612e8884828501612dab565b91505092915050565b60008060408385031215612ea457600080fd5b6000612eb285828601612dab565b9250506020612ec385828601612dab565b9150509250929050565b600080600060608486031215612ee257600080fd5b6000612ef086828701612dab565b9350506020612f0186828701612dab565b9250506040612f1286828701612e53565b9150509250925092565b60008060008060808587031215612f3257600080fd5b6000612f4087828801612dab565b9450506020612f5187828801612dab565b9350506040612f6287828801612e53565b925050606085013567ffffffffffffffff811115612f7f57600080fd5b612f8b87828801612dff565b91505092959194509250565b60008060408385031215612faa57600080fd5b6000612fb885828601612dab565b9250506020612fc985828601612dc0565b9150509250929050565b60008060408385031215612fe657600080fd5b6000612ff485828601612dab565b925050602061300585828601612e53565b9150509250929050565b60006020828403121561302157600080fd5b600061302f84828501612dd5565b91505092915050565b60006020828403121561304a57600080fd5b600061305884828501612dea565b91505092915050565b60006020828403121561307357600080fd5b600082013567ffffffffffffffff81111561308d57600080fd5b61309984828501612e29565b91505092915050565b6000602082840312156130b457600080fd5b60006130c284828501612e53565b91505092915050565b60006130d7838361349b565b60208301905092915050565b6130ec81613a13565b82525050565b60006130fd826138b5565b61310781856138e3565b9350613112836138a5565b8060005b8381101561314357815161312a88826130cb565b9750613135836138d6565b925050600181019050613116565b5085935050505092915050565b61315981613a25565b82525050565b600061316a826138c0565b61317481856138f4565b9350613184818560208601613aa3565b61318d81613c6f565b840191505092915050565b60006131a3826138cb565b6131ad8185613905565b93506131bd818560208601613aa3565b6131c681613c6f565b840191505092915050565b60006131dc826138cb565b6131e68185613916565b93506131f6818560208601613aa3565b80840191505092915050565b600061320f602283613905565b915061321a82613c80565b604082019050919050565b6000613232601f83613905565b915061323d82613ccf565b602082019050919050565b6000613255603283613905565b915061326082613cf8565b604082019050919050565b6000613278602683613905565b915061328382613d47565b604082019050919050565b600061329b601c83613905565b91506132a682613d96565b602082019050919050565b60006132be602483613905565b91506132c982613dbf565b604082019050919050565b60006132e1601983613905565b91506132ec82613e0e565b602082019050919050565b6000613304602c83613905565b915061330f82613e37565b604082019050919050565b6000613327601383613905565b915061333282613e86565b602082019050919050565b600061334a603883613905565b915061335582613eaf565b604082019050919050565b600061336d602a83613905565b915061337882613efe565b604082019050919050565b6000613390602283613905565b915061339b82613f4d565b604082019050919050565b60006133b3602083613905565b91506133be82613f9c565b602082019050919050565b60006133d6602c83613905565b91506133e182613fc5565b604082019050919050565b60006133f9602083613905565b915061340482614014565b602082019050919050565b600061341c602983613905565b91506134278261403d565b604082019050919050565b600061343f602f83613905565b915061344a8261408c565b604082019050919050565b6000613462602183613905565b915061346d826140db565b604082019050919050565b6000613485603183613905565b91506134908261412a565b604082019050919050565b6134a481613a7d565b82525050565b6134b381613a7d565b82525050565b60006134c582856131d1565b91506134d182846131d1565b91508190509392505050565b60006020820190506134f260008301846130e3565b92915050565b600060808201905061350d60008301876130e3565b61351a60208301866130e3565b61352760408301856134aa565b8181036060830152613539818461315f565b905095945050505050565b6000602082019050818103600083015261355e81846130f2565b905092915050565b600060208201905061357b6000830184613150565b92915050565b6000602082019050818103600083015261359b8184613198565b905092915050565b600060208201905081810360008301526135bc81613202565b9050919050565b600060208201905081810360008301526135dc81613225565b9050919050565b600060208201905081810360008301526135fc81613248565b9050919050565b6000602082019050818103600083015261361c8161326b565b9050919050565b6000602082019050818103600083015261363c8161328e565b9050919050565b6000602082019050818103600083015261365c816132b1565b9050919050565b6000602082019050818103600083015261367c816132d4565b9050919050565b6000602082019050818103600083015261369c816132f7565b9050919050565b600060208201905081810360008301526136bc8161331a565b9050919050565b600060208201905081810360008301526136dc8161333d565b9050919050565b600060208201905081810360008301526136fc81613360565b9050919050565b6000602082019050818103600083015261371c81613383565b9050919050565b6000602082019050818103600083015261373c816133a6565b9050919050565b6000602082019050818103600083015261375c816133c9565b9050919050565b6000602082019050818103600083015261377c816133ec565b9050919050565b6000602082019050818103600083015261379c8161340f565b9050919050565b600060208201905081810360008301526137bc81613432565b9050919050565b600060208201905081810360008301526137dc81613455565b9050919050565b600060208201905081810360008301526137fc81613478565b9050919050565b600060208201905061381860008301846134aa565b92915050565b6000613828613839565b90506138348282613b08565b919050565b6000604051905090565b600067ffffffffffffffff82111561385e5761385d613c40565b5b61386782613c6f565b9050602081019050919050565b600067ffffffffffffffff82111561388f5761388e613c40565b5b61389882613c6f565b9050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061392c82613a7d565b915061393783613a7d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561396c5761396b613bb3565b5b828201905092915050565b600061398282613a87565b915061398d83613a87565b92508260ff038211156139a3576139a2613bb3565b5b828201905092915050565b60006139b982613a7d565b91506139c483613a7d565b9250826139d4576139d3613be2565b5b828204905092915050565b60006139ea82613a7d565b91506139f583613a7d565b925082821015613a0857613a07613bb3565b5b828203905092915050565b6000613a1e82613a5d565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b83811015613ac1578082015181840152602081019050613aa6565b83811115613ad0576000848401525b50505050565b60006002820490506001821680613aee57607f821691505b60208210811415613b0257613b01613c11565b5b50919050565b613b1182613c6f565b810181811067ffffffffffffffff82111715613b3057613b2f613c40565b5b80604052505050565b6000613b4482613a7d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613b7757613b76613bb3565b5b600182019050919050565b6000613b8d82613a7d565b9150613b9883613a7d565b925082613ba857613ba7613be2565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e60008201527f6473000000000000000000000000000000000000000000000000000000000000602082015250565b7f6d696e74206c696d697420706572206164647265737320726561636865642100600082015250565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f6d696e74206c696d697420726561636865642100000000000000000000000000600082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e60008201527f6473000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b61418281613a13565b811461418d57600080fd5b50565b61419981613a25565b81146141a457600080fd5b50565b6141b081613a31565b81146141bb57600080fd5b50565b6141c781613a7d565b81146141d257600080fd5b5056fe4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656ea264697066735822122098b4d9180a5aab11e6307014cfed6b75a10c882f4a6a02bddfa90ed3d0d61d6a64736f6c6343000801003368747470733a2f2f6170692e736e6f7762616c6c2e6e6574776f726b2f6e66742f736e6f7762616c6c5f686561642f