[ { "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": false, "internalType": "uint256", "name": "bonsaiNumber", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newCm", "type": "uint256" } ], "name": "LevelUp", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "bonsaiNumber", "type": "uint256" }, { "indexed": false, "internalType": "string", "name": "name", "type": "string" } ], "name": "NameChange", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "bonsaiNumber", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "price", "type": "uint256" } ], "name": "PurchaseEvent", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "bonsaiNumber", "type": "uint256" }, { "indexed": false, "internalType": "bool", "name": "isForSale", "type": "bool" }, { "indexed": false, "internalType": "uint256", "name": "price", "type": "uint256" } ], "name": "SaleToggle", "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" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_holder", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "_bal", "type": "uint256" }, { "indexed": false, "internalType": "bool", "name": "_result", "type": "bool" } ], "name": "seedERC20Checked", "type": "event" }, { "inputs": [], "name": "SEED_erc20_contract", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_toAdd", "type": "address" } ], "name": "addAuthorized", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "numberOfToken", "type": "uint256" }, { "internalType": "address", "name": "toAddress", "type": "address" } ], "name": "airdropTokens", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "allBonsai", "outputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "mintedBy", "type": "address" }, { "internalType": "address", "name": "currentOwner", "type": "address" }, { "internalType": "uint256", "name": "previousPrice", "type": "uint256" }, { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "uint256", "name": "numberOfTransfers", "type": "uint256" }, { "internalType": "bool", "name": "forSale", "type": "bool" }, { "internalType": "uint256", "name": "cm", "type": "uint256" } ], "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": "", "type": "address" } ], "name": "authorized", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseURL", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "bonsainame", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "buyToken", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "string", "name": "name", "type": "string" } ], "name": "changeName", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "url", "type": "string" } ], "name": "changeUrl", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "excludedList", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getAllSaleTokens", "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": "_contractOwner", "type": "address" }, { "internalType": "address", "name": "_royaltyReceiver", "type": "address" }, { "internalType": "uint256", "name": "_royaltyPercentage", "type": "uint256" }, { "internalType": "uint256", "name": "_mintFeeAmount", "type": "uint256" }, { "internalType": "string", "name": "_baseURL", "type": "string" }, { "internalType": "address", "name": "_seedContractAddress", "type": "address" }, { "internalType": "bool", "name": "_openForSEED", "type": "bool" }, { "internalType": "bool", "name": "_openForPublic", "type": "bool" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "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": "maxSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "numberOfToken", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "mintFeeAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "openForPublic", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "openForSEED", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_toRemove", "type": "address" } ], "name": "removeAuthorized", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "royaltyPercentage", "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": "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": [], "name": "seedHoldersMaxMint", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "seedTotalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "seedholders", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "_newCm", "type": "uint256" } ], "name": "setCm", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "_newPrice", "type": "uint256" }, { "internalType": "bool", "name": "isForSale", "type": "bool" } ], "name": "setPriceForSale", "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": "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": [], "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" } ]
608060405234801561001057600080fd5b50613257806100206000396000f3fe60806040526004361061023b5760003560e01c806395d89b411161012e578063b9181611116100ab578063e985e9c51161006f578063e985e9c514610734578063ec25b0101461077d578063ee1a51681461079d578063eff3c4e7146107bf578063f6f566b6146107de57600080fd5b8063b91816111461068e578063c39cbef1146106be578063c87b56dd146106de578063cf1c316a146106fe578063d5abeb011461071e57600080fd5b8063a54dbcf6116100f2578063a54dbcf614610603578063aa7f814114610623578063ac4732b914610643578063adadab5314610659578063b88d4fde1461066e57600080fd5b806395d89b41146104ee5780639d5e213c146105035780639f3f3fa514610518578063a0712d68146105d0578063a22cb465146105e357600080fd5b806342842e0e116101bc5780636b53e034116101805780636b53e0341461044857806370a08231146104685780637eb01a58146104885780638a71bb2d146104a8578063948f76ee146104be57600080fd5b806342842e0e14610398578063485d7d94146103b85780635600d2fa146103d85780635f823d28146104085780636352211e1461042857600080fd5b806323b872dd1161020357806323b872dd146103105780632d296bf1146103305780632f745c59146103435780633df2bc431461036357806340c84b0e1461038357600080fd5b806301ffc9a71461024057806306fdde0314610275578063081812fc14610297578063095ea7b3146102cf57806318160ddd146102f1575b600080fd5b34801561024c57600080fd5b5061026061025b366004612d63565b6107f8565b60405190151581526020015b60405180910390f35b34801561028157600080fd5b5061028a61084a565b60405161026c9190612f88565b3480156102a357600080fd5b506102b76102b2366004612dd2565b6108dc565b6040516001600160a01b03909116815260200161026c565b3480156102db57600080fd5b506102ef6102ea366004612d39565b610969565b005b3480156102fd57600080fd5b5060a5545b60405190815260200161026c565b34801561031c57600080fd5b506102ef61032b366004612bb3565b610a7f565b6102ef61033e366004612dd2565b610ab0565b34801561034f57600080fd5b5061030261035e366004612d39565b610d3a565b34801561036f57600080fd5b5061028a61037e366004612dd2565b610dac565b34801561038f57600080fd5b5061028a610e46565b3480156103a457600080fd5b506102ef6103b3366004612bb3565b610e53565b3480156103c457600080fd5b506102ef6103d3366004612b65565b610e6e565b3480156103e457600080fd5b506102606103f3366004612b65565b609a6020526000908152604090205460ff1681565b34801561041457600080fd5b506102ef610423366004612d9d565b610efe565b34801561043457600080fd5b506102b7610443366004612dd2565b610f5c565b34801561045457600080fd5b50609c546102b7906001600160a01b031681565b34801561047457600080fd5b50610302610483366004612b65565b610fd3565b34801561049457600080fd5b506102ef6104a3366004612e77565b61105a565b3480156104b457600080fd5b5061030260995481565b3480156104ca57600080fd5b506102606104d9366004612b65565b609b6020526000908152604090205460ff1681565b3480156104fa57600080fd5b5061028a6112f0565b34801561050f57600080fd5b50610302606481565b34801561052457600080fd5b50610587610533366004612dd2565b60a2602052600090815260409020805460018201546002830154600384015460048501546005860154600687015460079097015495966001600160a01b0395861696959094169492939192909160ff169088565b604080519889526001600160a01b0397881660208a015295909616948701949094526060860192909252608085015260a0840152151560c083015260e08201526101000161026c565b6102ef6105de366004612dd2565b6112ff565b3480156105ef57600080fd5b506102ef6105fe366004612d0f565b6115df565b34801561060f57600080fd5b506102ef61061e366004612c6b565b6115ea565b34801561062f57600080fd5b506102ef61063e366004612deb565b6117a5565b34801561064f57600080fd5b50610302609e5481565b34801561066557600080fd5b50609d54610302565b34801561067a57600080fd5b506102ef610689366004612bef565b611939565b34801561069a57600080fd5b506102606106a9366004612b65565b60a76020526000908152604090205460ff1681565b3480156106ca57600080fd5b506102ef6106d9366004612e0e565b611971565b3480156106ea57600080fd5b5061028a6106f9366004612dd2565b611a33565b34801561070a57600080fd5b506102ef610719366004612b65565b611a3e565b34801561072a57600080fd5b5061030261271081565b34801561074057600080fd5b5061026061074f366004612b80565b6001600160a01b039182166000908152606a6020908152604080832093909416825291909152205460ff1690565b34801561078957600080fd5b506102ef610798366004612e55565b611abb565b3480156107a957600080fd5b506107b2611cc0565b60405161026c9190612f44565b3480156107cb57600080fd5b5060a05461026090610100900460ff1681565b3480156107ea57600080fd5b5060a0546102609060ff1681565b60006001600160e01b031982166380ac58cd60e01b148061082957506001600160e01b03198216635b5e139f60e01b145b8061084457506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606065805461085990613130565b80601f016020809104026020016040519081016040528092919081815260200182805461088590613130565b80156108d25780601f106108a7576101008083540402835291602001916108d2565b820191906000526020600020905b8154815290600101906020018083116108b557829003601f168201915b5050505050905090565b60006108e782611d98565b61094d5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152606960205260409020546001600160a01b031690565b600061097482610f5c565b9050806001600160a01b0316836001600160a01b031614156109e25760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610944565b336001600160a01b03821614806109fe57506109fe813361074f565b610a705760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610944565b610a7a8383611db5565b505050565b610a893382611e23565b610aa55760405162461bcd60e51b815260040161094490612fed565b610a7a838383611f0d565b610ab981611d98565b610ac257600080fd5b6000610acd82610f5c565b90506001600160a01b038116610ae257600080fd5b6001600160a01b038116331415610af857600080fd5b600082815260a260209081526040918290208251610100810184528154815260018201546001600160a01b039081169382019390935260028201549092169282019290925260038201546060820152600482015460808201819052600583015460a0830152600683015460ff16151560c083015260079092015460e082015290341015610b8457600080fd5b8060c00151610b9257600080fd5b6099543490600090606490610ba790846130ce565b610bb191906130ba565b90506000610bbf82846130ed565b6098546040519192506001600160a01b03169083156108fc029084906000818181858888f19350505050158015610bfa573d6000803e3d6000fd5b5083604001516001600160a01b03166108fc829081150290604051600060405180830381858888f19350505050158015610c38573d6000803e3d6000fd5b5060808401805160608601908152600088815260a2602090815260409182902088518155908801516001820180546001600160a01b03199081166001600160a01b039384161790915592890151600283018054909416911617909155905160038201559051600482015560a0850151600582015560c085015160068201805460ff191691151591909117905560e0850151600790910155610cda853388611f0d565b60408481015160808087015183518a81526001600160a01b0390931660208401523383850152606083015291517fdc84c3c75a393011959e6391215e5b01982de6ad00f83b8b26ac7c52a5844b22929181900390910190a1505050505050565b6000610d4583610fd3565b8210610d835760405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b6044820152606401610944565b506001600160a01b0391909116600090815260a360209081526040808320938352929052205490565b60a86020526000908152604090208054610dc590613130565b80601f0160208091040260200160405190810160405280929190818152602001828054610df190613130565b8015610e3e5780601f10610e1357610100808354040283529160200191610e3e565b820191906000526020600020905b815481529060010190602001808311610e2157829003601f168201915b505050505081565b609f8054610dc590613130565b610a7a83838360405180602001604052806000815250611939565b6097546001600160a01b03163314610eb45760405162461bcd60e51b81526020600482015260096024820152682737ba1037bbb732b960b91b6044820152606401610944565b6001600160a01b038116610ec757600080fd5b6001600160a01b038116331415610edd57600080fd5b6001600160a01b0316600090815260a760205260409020805460ff19169055565b6097546001600160a01b03163314610f455760405162461bcd60e51b815260206004820152600a60248201526927b7363c9037bbb732b960b11b6044820152606401610944565b8051610f5890609f906020840190612a0a565b5050565b6000818152606760205260408120546001600160a01b0316806108445760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610944565b60006001600160a01b03821661103e5760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610944565b506001600160a01b031660009081526068602052604090205490565b61106383611d98565b6110a15760405162461bcd60e51b815260206004820152600f60248201526e1d1bdad95b881b9bdd08199bdd5b99608a1b6044820152606401610944565b60006110ac84610f5c565b90506001600160a01b03811633146110f25760405162461bcd60e51b81526020600482015260096024820152683737ba1037bbb732b960b91b6044820152606401610944565b600060a2600086815260200190815260200160002060405180610100016040529081600082015481526020016001820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020016002820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020016003820154815260200160048201548152602001600582015481526020016006820160009054906101000a900460ff16151515158152602001600782015481525050905083816080018181525050828160c00190151590811515815250508060a260008781526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a81548160ff02191690831515021790555060e082015181600701559050507f64b12cff1b4037cf4ed0ff891d2f6f0ee06c004d6bac81d0e718c447a93fe16e8584866040516112e1939291909283529015156020830152604082015260600190565b60405180910390a15050505050565b60606066805461085990613130565b60a05460ff6101009091041615156001146113475760405162461bcd60e51b81526020600482015260086024820152673737ba1037b832b760c11b6044820152606401610944565b3361135157600080fd5b60a554612710906113639083906130a2565b111561139e5760405162461bcd60e51b815260206004820152600a6024820152696d617820737570706c7960b01b6044820152606401610944565b600081116113d65760405162461bcd60e51b81526020600482015260056024820152644d696e203160d81b6044820152606401610944565b60648111156114115760405162461bcd60e51b815260206004820152600760248201526604d6178203130360cc1b6044820152606401610944565b336000908152609a602052604081205460ff166114b75781609e5461143691906130ce565b90508034146114785760405162461bcd60e51b815260206004820152600e60248201526d4e6f7420656e6f7567682066656560901b6044820152606401610944565b6098546040516001600160a01b03909116903480156108fc02916000818181858888f193505050501580156114b1573d6000803e3d6000fd5b506114e5565b60405133903480156108fc02916000818181858888f193505050501580156114e3573d6000803e3d6000fd5b505b60015b828111610a7a576114fd60a180546001019055565b600061150860a15490565b905061151433826120b4565b6040805161010081018252828152336020808301828152838501928352600060608501818152608086018a815260a0870183815260c08801848152606460e08a019081529a855260a2909652979092209551865591516001860180546001600160a01b03199081166001600160a01b039384161790915594516002870180549096169116179093555160038401559051600483015591516005820155905160068201805460ff19169115159190911790559051600790910155806115d78161316b565b9150506114e8565b610f583383836120ce565b600054610100900460ff166116055760005460ff1615611609565b303b155b61166c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610944565b600054610100900460ff1615801561168e576000805461ffff19166101011790555b6116d460405180604001604052806006815260200165426f6e73616960d01b81525060405180604001604052806006815260200165426f6e73616960d01b81525061219d565b6099879055609780546001600160a01b03808c166001600160a01b0319928316811790935560988054918c16919092168117909155609e8890556000918252609a60209081526040808420805460ff199081166001908117909255938552932080549092169092179055855161175091609f9190880190612a0a565b50609c80546001600160a01b0319166001600160a01b03861617905560a0805461ffff191684151561ff0019161761010084151502179055801561179a576000805461ff00191690555b505050505050505050565b6097546001600160a01b031633146117ec5760405162461bcd60e51b815260206004820152600a60248201526927b7363c9037bbb732b960b11b6044820152606401610944565b60a554612710906117fd90846130a2565b106118375760405162461bcd60e51b815260206004820152600a6024820152694d617820737570706c7960b01b6044820152606401610944565b60015b828111610a7a5761184f60a180546001019055565b600061185a60a15490565b905061186683826120b4565b60408051610100810182528281523360208083019182526001600160a01b038781168486019081526000606086018181526080870182815260a0880183815260c08901848152606460e08b019081529b855260a2909752989092209651875594516001870180546001600160a01b031990811692861692909217905591516002870180549093169316929092179055915160038401559051600483015591516005820155905160068201805460ff19169115159190911790559051600790910155806119318161316b565b91505061183a565b6119433383611e23565b61195f5760405162461bcd60e51b815260040161094490612fed565b61196b848484846121ce565b50505050565b33600090815260a7602052604090205460ff168061199957506097546001600160a01b031633145b6119d65760405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b6044820152606401610944565b600082815260a86020908152604090912082516119f592840190612a0a565b507f7e632a301794d8d4a81ea7e20f37d1947158d36e66403af04ba85dd194b66f1b8282604051611a27929190613089565b60405180910390a15050565b606061084482612201565b6097546001600160a01b03163314611a845760405162461bcd60e51b81526020600482015260096024820152682737ba1037bbb732b960b91b6044820152606401610944565b6001600160a01b038116611a9757600080fd5b6001600160a01b0316600090815260a760205260409020805460ff19166001179055565b33600090815260a7602052604090205460ff1680611ae357506097546001600160a01b031633145b611b205760405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b6044820152606401610944565b600060a2600084815260200190815260200160002060405180610100016040529081600082015481526020016001820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020016002820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020016003820154815260200160048201548152602001600582015481526020016006820160009054906101000a900460ff161515151581526020016007820154815250509050818160e00181815250508060a260008581526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a81548160ff02191690831515021790555060e08201518160070155905050505050565b60606000611ccd60a55490565b905060008167ffffffffffffffff811115611cea57611cea6131f2565b604051908082528060200260200182016040528015611d13578160200160208202803683370190505b509050600060015b838111611d8f57600081815260a2602052604090206006015460ff16151560011415611d7d57600081815260a260205260409020548351849084908110611d6457611d646131dc565b602090810291909101015281611d798161316b565b9250505b80611d878161316b565b915050611d1b565b50909392505050565b6000908152606760205260409020546001600160a01b0316151590565b600081815260696020526040902080546001600160a01b0319166001600160a01b0384169081179091558190611dea82610f5c565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000611e2e82611d98565b611e8f5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610944565b6000611e9a83610f5c565b9050806001600160a01b0316846001600160a01b03161480611ed55750836001600160a01b0316611eca846108dc565b6001600160a01b0316145b80611f0557506001600160a01b038082166000908152606a602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b0316611f2082610f5c565b6001600160a01b031614611f845760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608401610944565b6001600160a01b038216611fe65760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610944565b611ff18383836122cc565b611ffc600082611db5565b6001600160a01b03831660009081526068602052604081208054600192906120259084906130ed565b90915550506001600160a01b03821660009081526068602052604081208054600192906120539084906130a2565b909155505060008181526067602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b610f588282604051806020016040528060008152506124a0565b816001600160a01b0316836001600160a01b031614156121305760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610944565b6001600160a01b038381166000818152606a6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b600054610100900460ff166121c45760405162461bcd60e51b81526004016109449061303e565b610f5882826124d3565b6121d9848484611f0d565b6121e584848484612521565b61196b5760405162461bcd60e51b815260040161094490612f9b565b606061220c82611d98565b6122705760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610944565b600061227a61262e565b9050600081511161229a57604051806020016040528060008152506122c5565b806122a48461263d565b6040516020016122b5929190612ed8565b6040516020818303038152906040525b9392505050565b600081815260a26020908152604091829020825161010081018452815481526001808301546001600160a01b03908116948301949094526003830154606083015260048301546080830152600583015460a08301818152600685015460ff16151560c085015260079094015460e08401529387169482019490945292916123549083906130a2565b905250600060c0820181815283825260a2602090815260409283902084518155908401516001820180546001600160a01b03199081166001600160a01b03938416179091559385015160028301805490951690821617909355606084015160038201556080840151600482015560a08401516005820155905160068201805460ff191691151591909117905560e0830151600790910155841661243e576124398260a58054600083815260a660205260408120829055600182018355919091527fb29a2b3b6f2ff1b765777a231725941da5072cc4fcc30ac4a2ce09706e8ddeff0155565b612461565b826001600160a01b0316846001600160a01b03161461246157612461848361273b565b6001600160a01b03831661247d57612478826127d8565b61196b565b836001600160a01b0316836001600160a01b03161461196b5761196b8383612887565b6124aa83836128cb565b6124b76000848484612521565b610a7a5760405162461bcd60e51b815260040161094490612f9b565b600054610100900460ff166124fa5760405162461bcd60e51b81526004016109449061303e565b815161250d906065906020850190612a0a565b508051610a7a906066906020840190612a0a565b60006001600160a01b0384163b1561262357604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290612565903390899088908890600401612f07565b602060405180830381600087803b15801561257f57600080fd5b505af19250505080156125af575060408051601f3d908101601f191682019092526125ac91810190612d80565b60015b612609573d8080156125dd576040519150601f19603f3d011682016040523d82523d6000602084013e6125e2565b606091505b5080516126015760405162461bcd60e51b815260040161094490612f9b565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611f05565b506001949350505050565b6060609f805461085990613130565b6060816126615750506040805180820190915260018152600360fc1b602082015290565b8160005b811561268b57806126758161316b565b91506126849050600a836130ba565b9150612665565b60008167ffffffffffffffff8111156126a6576126a66131f2565b6040519080825280601f01601f1916602001820160405280156126d0576020820181803683370190505b5090505b8415611f05576126e56001836130ed565b91506126f2600a86613186565b6126fd9060306130a2565b60f81b818381518110612712576127126131dc565b60200101906001600160f81b031916908160001a905350612734600a866130ba565b94506126d4565b6000600161274884610fd3565b61275291906130ed565b600083815260a460205260409020549091508082146127a5576001600160a01b038416600090815260a360209081526040808320858452825280832054848452818420819055835260a490915290208190555b50600091825260a4602090815260408084208490556001600160a01b03909416835260a381528383209183525290812055565b60a5546000906127ea906001906130ed565b600083815260a6602052604081205460a58054939450909284908110612812576128126131dc565b906000526020600020015490508060a58381548110612833576128336131dc565b600091825260208083209091019290925582815260a6909152604080822084905585825281205560a580548061286b5761286b6131c6565b6001900381819060005260206000200160009055905550505050565b600061289283610fd3565b6001600160a01b03909316600090815260a360209081526040808320868452825280832085905593825260a49052919091209190915550565b6001600160a01b0382166129215760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610944565b61292a81611d98565b156129775760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610944565b612983600083836122cc565b6001600160a01b03821660009081526068602052604081208054600192906129ac9084906130a2565b909155505060008181526067602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b828054612a1690613130565b90600052602060002090601f016020900481019282612a385760008555612a7e565b82601f10612a5157805160ff1916838001178555612a7e565b82800160010185558215612a7e579182015b82811115612a7e578251825591602001919060010190612a63565b50612a8a929150612a8e565b5090565b5b80821115612a8a5760008155600101612a8f565b600067ffffffffffffffff80841115612abe57612abe6131f2565b604051601f8501601f19908116603f01168101908282118183101715612ae657612ae66131f2565b81604052809350858152868686011115612aff57600080fd5b858560208301376000602087830101525050509392505050565b80356001600160a01b0381168114612b3057600080fd5b919050565b80358015158114612b3057600080fd5b600082601f830112612b5657600080fd5b6122c583833560208501612aa3565b600060208284031215612b7757600080fd5b6122c582612b19565b60008060408385031215612b9357600080fd5b612b9c83612b19565b9150612baa60208401612b19565b90509250929050565b600080600060608486031215612bc857600080fd5b612bd184612b19565b9250612bdf60208501612b19565b9150604084013590509250925092565b60008060008060808587031215612c0557600080fd5b612c0e85612b19565b9350612c1c60208601612b19565b925060408501359150606085013567ffffffffffffffff811115612c3f57600080fd5b8501601f81018713612c5057600080fd5b612c5f87823560208401612aa3565b91505092959194509250565b600080600080600080600080610100898b031215612c8857600080fd5b612c9189612b19565b9750612c9f60208a01612b19565b96506040890135955060608901359450608089013567ffffffffffffffff811115612cc957600080fd5b612cd58b828c01612b45565b945050612ce460a08a01612b19565b9250612cf260c08a01612b35565b9150612d0060e08a01612b35565b90509295985092959890939650565b60008060408385031215612d2257600080fd5b612d2b83612b19565b9150612baa60208401612b35565b60008060408385031215612d4c57600080fd5b612d5583612b19565b946020939093013593505050565b600060208284031215612d7557600080fd5b81356122c581613208565b600060208284031215612d9257600080fd5b81516122c581613208565b600060208284031215612daf57600080fd5b813567ffffffffffffffff811115612dc657600080fd5b611f0584828501612b45565b600060208284031215612de457600080fd5b5035919050565b60008060408385031215612dfe57600080fd5b82359150612baa60208401612b19565b60008060408385031215612e2157600080fd5b82359150602083013567ffffffffffffffff811115612e3f57600080fd5b612e4b85828601612b45565b9150509250929050565b60008060408385031215612e6857600080fd5b50508035926020909101359150565b600080600060608486031215612e8c57600080fd5b8335925060208401359150612ea360408501612b35565b90509250925092565b60008151808452612ec4816020860160208601613104565b601f01601f19169290920160200192915050565b60008351612eea818460208801613104565b835190830190612efe818360208801613104565b01949350505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090612f3a90830184612eac565b9695505050505050565b6020808252825182820181905260009190848201906040850190845b81811015612f7c57835183529284019291840191600101612f60565b50909695505050505050565b6020815260006122c56020830184612eac565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b828152604060208201526000611f056040830184612eac565b600082198211156130b5576130b561319a565b500190565b6000826130c9576130c96131b0565b500490565b60008160001904831182151516156130e8576130e861319a565b500290565b6000828210156130ff576130ff61319a565b500390565b60005b8381101561311f578181015183820152602001613107565b8381111561196b5750506000910152565b600181811c9082168061314457607f821691505b6020821081141561316557634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561317f5761317f61319a565b5060010190565b600082613195576131956131b0565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b03198116811461321e57600080fd5b5056fea26469706673582212206927cd3715c75df90da191a83e3558002be009f79f7592f4e4e44ba70522340964736f6c63430008070033