[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "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": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "indexed": false, "internalType": "uint256[]", "name": "values", "type": "uint256[]" } ], "name": "TransferBatch", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "TransferSingle", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "value", "type": "string" }, { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "URI", "type": "event" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "nodeType", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "string", "name": "_uri", "type": "string" } ], "name": "bailOutMint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "accounts", "type": "address[]" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" } ], "name": "balanceOfBatch", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_id", "type": "uint256" } ], "name": "calculateClaimableAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "checkPresaleActive", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "claim", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "claimById", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "collection", "outputs": [ { "internalType": "string", "name": "title", "type": "string" }, { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "uint256", "name": "maxSupply", "type": "uint256" }, { "internalType": "uint256", "name": "firstRun", "type": "uint256" }, { "internalType": "uint256", "name": "maxFirstRun", "type": "uint256" }, { "internalType": "uint256", "name": "trueYield", "type": "uint256" }, { "internalType": "uint256", "name": "snowball", "type": "uint256" }, { "internalType": "uint256", "name": "maxSnowball", "type": "uint256" }, { "internalType": "uint256", "name": "maxDailySell", "type": "uint256" }, { "internalType": "uint256", "name": "currentSupply", "type": "uint256" }, { "internalType": "uint256", "name": "purchaseLimit", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "corkAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "claimAddress", "type": "address" } ], "name": "getClaimFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "getClaimFeeById", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "claimAddress", "type": "address" } ], "name": "getClaimableCork", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "getClaimableCorkById", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getCorkPrice", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "getNodeState", "outputs": [ { "components": [ { "internalType": "address", "name": "purchaser", "type": "address" }, { "internalType": "uint256", "name": "nodeType", "type": "uint256" }, { "internalType": "uint256", "name": "purchasedAt", "type": "uint256" }, { "internalType": "uint256", "name": "snowballAt", "type": "uint256" }, { "internalType": "uint256", "name": "claimedAmount", "type": "uint256" }, { "internalType": "uint256", "name": "claimedSnowball", "type": "uint256" }, { "internalType": "uint256", "name": "remainClaimedAmounts", "type": "uint256" }, { "internalType": "string", "name": "uri", "type": "string" } ], "internalType": "struct NodeERC1155.NodeStruct", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" }, { "internalType": "uint256", "name": "nodeType", "type": "uint256" } ], "name": "getOwnedNodeCountByType", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isPresaleActive", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "manager", "outputs": [ { "internalType": "address payable", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_nodeType", "type": "uint256" }, { "internalType": "string", "name": "_uri", "type": "string" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "nodeState", "outputs": [ { "internalType": "address", "name": "purchaser", "type": "address" }, { "internalType": "uint256", "name": "nodeType", "type": "uint256" }, { "internalType": "uint256", "name": "purchasedAt", "type": "uint256" }, { "internalType": "uint256", "name": "snowballAt", "type": "uint256" }, { "internalType": "uint256", "name": "claimedAmount", "type": "uint256" }, { "internalType": "uint256", "name": "claimedSnowball", "type": "uint256" }, { "internalType": "uint256", "name": "remainClaimedAmounts", "type": "uint256" }, { "internalType": "string", "name": "uri", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "ownedNodes", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pairAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_pairAddress", "type": "address" }, { "internalType": "address", "name": "_corkAddress", "type": "address" }, { "internalType": "address", "name": "_swapAddress", "type": "address" } ], "name": "resetContract", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeBatchTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" } ], "name": "sellableCork", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "address", "name": "_manager", "type": "address" } ], "name": "setManager", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_isPresaleActive", "type": "bool" } ], "name": "setPresaleActive", "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": "swapAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "swapTokensForAVAX", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "uri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "withdrawCork", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040526305f5e1006009556000600a5562015180600b55601e600c553480156200002a57600080fd5b5060408051808201909152601d81527f68747470733a2f2f6578616d706c652e636f6d2f7b69647d2e6a736f6e00000060208201526200006a816200008b565b506200007633620000a4565b600160045562000085620000f6565b620006cb565b8051620000a0906002906020840190620005e8565b5050565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b604080516101a0810182526004610160820190815263426c756560e01b6101808301528152673782dace9d900000602080830191909152617530928201929092526216e36060608201526305f5e10060808201526205573060a08201526106a460c082015261c35060e082015262e4e1c061010082015260006101208201819052601e610140830152600d80546001810182559152815180519293600b9092027fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50192620001c89284920190620005e8565b506020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e082015181600701556101008201518160080155610120820151816009015561014082015181600a01555050600d6040518061016001604052806040518060400160405280600381526020016214995960ea1b8152508152602001678ac7230489e800008152602001613a988152602001621e848081526020016305f5e1008152602001620dbba08152602001610d058152602001620186a0815260200162989680815260200160008152602001601e81525090806001815401808255809150506001900390600052602060002090600b0201600090919091909150600082015181600001908051906020019062000300929190620005e8565b506020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e082015181600701556101008201518160080155610120820151816009015561014082015181600a01555050600d60405180610160016040528060405180604001604052806005815260200164426c61636b60d81b815250815260200168056bc75e2d6310000081526020016113888152602001622191c081526020016305f5e1008152602001620f42408152602001610d058152602001620186a08152602001624c4b40815260200160008152602001601e81525090806001815401808255809150506001900390600052602060002090600b020160009091909190915060008201518160000190805190602001906200043b929190620005e8565b506020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e082015181600701556101008201518160080155610120820151816009015561014082015181600a01555050600d6040518061016001604052806040518060400160405280600b81526020016a446f75626c65426c61636b60a81b8152508152602001683635c9adc5dea0000081526020016103e88152602001622191c081526020016305f5e1008152602001620f4240815260200161104781526020016201e8488152602001624c4b40815260200160008152602001600a81525090806001815401808255809150506001900390600052602060002090600b020160009091909190915060008201518160000190805190602001906200057c929190620005e8565b506020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e082015181600701556101008201518160080155610120820151816009015561014082015181600a01555050565b828054620005f6906200068e565b90600052602060002090601f0160209004810192826200061a576000855562000665565b82601f106200063557805160ff191683800117855562000665565b8280016001018555821562000665579182015b828111156200066557825182559160200191906001019062000648565b506200067392915062000677565b5090565b5b8082111562000673576000815560010162000678565b600181811c90821680620006a357607f821691505b60208210811415620006c557634e487b7160e01b600052602260045260246000fd5b50919050565b613c7280620006db6000396000f3fe60806040526004361061022f5760003560e01c8063745a844a1161012e578063becf7741116100ab578063e985e9c51161006f578063e985e9c5146106b0578063ee98a528146106f9578063f077237714610719578063f242432a14610750578063f2fde38b1461077057600080fd5b8063becf77411461061d578063cc4da26d14610630578063cd84460214610650578063d0ebdbe714610670578063e7694bc61461069057600080fd5b80638da5cb5b116100f25780638da5cb5b1461056b5780638de45c1a146105895780639600ac5b146105a9578063a22cb465146105dd578063a8b08982146105fd57600080fd5b8063745a844a146104be57806377097fc8146104de57806380c0f19b146104fe57806380f6d7821461052b57806385adc8b01461054b57600080fd5b80633ccfd60b116101bc5780634e1273f4116101805780634e1273f41461043a5780634e71d92d1461046757806360d938dc1461046f578063627dd5ca14610489578063715018a6146104a957600080fd5b80633ccfd60b146103735780633f8121a21461038857806346be42fa146103a8578063481c6a75146103dd5780634d593bc51461041a57600080fd5b8063158894461161020357806315889446146102dc578063185aa308146102fe57806329df86c1146103135780632eb2c2d61461033357806332295c841461035357600080fd5b8062fdd58e1461023457806301ffc9a71461026757806306551ca5146102975780630e89341c146102af575b600080fd5b34801561024057600080fd5b5061025461024f3660046132e0565b610790565b6040519081526020015b60405180910390f35b34801561027357600080fd5b50610287610282366004613415565b610827565b604051901515815260200161025e565b3480156102a357600080fd5b5060055460ff16610287565b3480156102bb57600080fd5b506102cf6102ca36600461349f565b610879565b60405161025e9190613765565b3480156102e857600080fd5b506102fc6102f7366004613157565b61090d565b005b34801561030a57600080fd5b506102546109bd565b34801561031f57600080fd5b506102fc61032e36600461351d565b610a7f565b34801561033f57600080fd5b506102fc61034e36600461319a565b610e2c565b34801561035f57600080fd5b5061025461036e366004613109565b610ec3565b34801561037f57600080fd5b506102fc610f71565b34801561039457600080fd5b506102fc6103a33660046133db565b6110a7565b3480156103b457600080fd5b506103c86103c336600461349f565b611137565b6040805192835260208301919091520161025e565b3480156103e957600080fd5b506005546104029061010090046001600160a01b031681565b6040516001600160a01b03909116815260200161025e565b34801561042657600080fd5b506102fc61043536600461349f565b611314565b34801561044657600080fd5b5061045a61045536600461330a565b6113ea565b60405161025e91906136fe565b6102fc611514565b34801561047b57600080fd5b506005546102879060ff1681565b34801561049557600080fd5b506102546104a43660046132e0565b611749565b3480156104b557600080fd5b506102fc61177a565b3480156104ca57600080fd5b506102fc6104d936600461349f565b6117b0565b3480156104ea57600080fd5b506102fc6104f93660046134d1565b61181a565b34801561050a57600080fd5b5061051e61051936600461349f565b611d65565b60405161025e91906139ac565b34801561053757600080fd5b50600854610402906001600160a01b031681565b34801561055757600080fd5b50600754610402906001600160a01b031681565b34801561057757600080fd5b506003546001600160a01b0316610402565b34801561059557600080fd5b506102546105a436600461349f565b611ebf565b3480156105b557600080fd5b506105c96105c436600461349f565b611f03565b60405161025e9897969594939291906136a9565b3480156105e957600080fd5b506102fc6105f83660046132a9565b611fdc565b34801561060957600080fd5b50600654610402906001600160a01b031681565b6102fc61062b36600461349f565b611feb565b34801561063c57600080fd5b5061025461064b366004613109565b6121dd565b34801561065c57600080fd5b5061025461066b36600461349f565b6122e7565b34801561067c57600080fd5b506102fc61068b366004613109565b612317565b34801561069c57600080fd5b506102546106ab366004613109565b612369565b3480156106bc57600080fd5b506102876106cb366004613124565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b34801561070557600080fd5b506102546107143660046132e0565b612375565b34801561072557600080fd5b5061073961073436600461349f565b61240f565b60405161025e9b9a99989796959493929190613778565b34801561075c57600080fd5b506102fc61076b366004613244565b612501565b34801561077c57600080fd5b506102fc61078b366004613109565b612588565b60006001600160a01b0383166108015760405162461bcd60e51b815260206004820152602b60248201527f455243313135353a2062616c616e636520717565727920666f7220746865207a60448201526a65726f206164647265737360a81b60648201526084015b60405180910390fd5b506000908152602081815260408083206001600160a01b03949094168352929052205490565b60006001600160e01b03198216636cdb3d1360e11b148061085857506001600160e01b031982166303a24d0760e21b145b8061087357506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606002805461088890613aad565b80601f01602080910402602001604051908101604052809291908181526020018280546108b490613aad565b80156109015780601f106108d657610100808354040283529160200191610901565b820191906000526020600020905b8154815290600101906020018083116108e457829003601f168201915b50505050509050919050565b6003546001600160a01b031633146109375760405162461bcd60e51b81526004016107f8906138fc565b6001600160a01b0383161561096257600680546001600160a01b0319166001600160a01b0385161790555b6001600160a01b0382161561098d57600780546001600160a01b0319166001600160a01b0384161790555b6001600160a01b038116156109b857600880546001600160a01b0319166001600160a01b0383161790555b505050565b6000806000600660009054906101000a90046001600160a01b03166001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015610a1057600080fd5b505afa158015610a24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a48919061344f565b506001600160701b0391821693501690506000610a7783610a7184670de0b6b3a7640000613a77565b90612623565b949350505050565b6000858152600e60205260409020546001600160a01b03163314610ae55760405162461bcd60e51b815260206004820152601a60248201527f6f6e6c79206e6f6465206f776e65722063616e2075736520697400000000000060448201526064016107f8565b6000610af086611ebf565b9050600084600d8781548110610b0857610b08613b46565b90600052602060002090600b020160010154610b249190613a77565b905080821015610b805760405162461bcd60e51b815260206004820152602160248201527f636c61696d61626c6520636f726b206973206c657373207468616e20707269636044820152606560f81b60648201526084016107f8565b600d8681548110610b9357610b93613b46565b90600052602060002090600b020160020154600d8781548110610bb857610bb8613b46565b90600052602060002090600b0201600901541115610be85760405162461bcd60e51b81526004016107f890613931565b600d8681548110610bfb57610bfb613b46565b90600052602060002090600b0201600a0154610c173388612375565b10610c645760405162461bcd60e51b815260206004820181905260248201527f6d696e746564206e6f6465732065786365656420616d6f756e74206c696d697460448201526064016107f8565b6000610c6f88611137565b60008a8152600e6020526040902042600390910155915050808211610cb85780821015610cb357610ca08282613a96565b6000898152600e60205260409020600601555b610cd5565b610cc28183613a96565b6000898152600e60205260409020600401555b6000888152600e602052604081206005018054839290610cf6908490613a3d565b90915550600090505b86811015610e21576000610d11612636565b9050610d1b61264c565b6000818152600e6020526040902080546001600160a01b03191633178155600181018a905542600282018190556003820155610d5b906007018888612f09565b50600d8981548110610d6f57610d6f613b46565b6000918252602082206009600b9092020101805491610d8d83613b15565b90915550508515610dd357807f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b8888604051610dca929190613736565b60405180910390a25b610def338a600160405180602001604052806000815250612663565b336000908152600f60209081526040822080546001810182559083529120015580610e1981613b15565b915050610cff565b505050505050505050565b6001600160a01b038516331480610e485750610e4885336106cb565b610eaf5760405162461bcd60e51b815260206004820152603260248201527f455243313135353a207472616e736665722063616c6c6572206973206e6f74206044820152711bdddb995c881b9bdc88185c1c1c9bdd995960721b60648201526084016107f8565b610ebc858585858561276d565b5050505050565b60008060005b600d54811015610f6a576000610edf8583610790565b1115610f5857610f37600d8281548110610efb57610efb613b46565b90600052602060002090600b020160080154600d8381548110610f2057610f20613b46565b90600052602060002090600b020160010154612942565b610f418583610790565b610f4b9190613a77565b610f559083613a3d565b91505b80610f6281613b15565b915050610ec9565b5092915050565b60026004541415610f945760405162461bcd60e51b81526004016107f890613975565b600260045560055461010090046001600160a01b03163314610ff85760405162461bcd60e51b815260206004820152601e60248201527f6f6e6c79206d616e616765722063616e2063616c6c207769746864726177000060448201526064016107f8565b60055460405147916000916101009091046001600160a01b031690839060006040518083038185875af1925050503d8060008114611052576040519150601f19603f3d011682016040523d82523d6000602084013e611057565b606091505b505090508061109e5760405162461bcd60e51b815260206004820152601360248201527208cc2d2d8cac840e8de40e6cadcc84082ac82b606b1b60448201526064016107f8565b50506001600455565b6003546001600160a01b031633146110d15760405162461bcd60e51b81526004016107f8906138fc565b60055460ff16156111245760405162461bcd60e51b815260206004820152601d60248201527f50726573616c652077617320616c72656164792061637469766174656400000060448201526064016107f8565b6005805460ff1916911515919091179055565b6000818152600e602052604081205481906001600160a01b031661118d5760405162461bcd60e51b815260206004820152600d60248201526c139bc81b9bd91948195e1a5cdd609a1b60448201526064016107f8565b6000838152600e6020526040812060010154600d8054919291839081106111b6576111b6613b46565b90600052602060002090600b020160010154905060006111f4600b54600e60008981526020019081526020016000206002015442610a719190613a96565b600b546000888152600e60205260408120600301549293509161121c9190610a719042613a96565b90506000611298600d868154811061123657611236613b46565b90600052602060002090600b020160030154600d878154811061125b5761125b613b46565b90600052602060002090600b020160050154600d888154811061128057611280613b46565b90600052602060002090600b02016004015486612956565b905060006112ef600d87815481106112b2576112b2613b46565b90600052602060002090600b020160060154600d88815481106112d7576112d7613b46565b90600052602060002090600b0201600701548561299a565b90506112fb8286612942565b6113058287612942565b97509750505050505050915091565b600260045414156113375760405162461bcd60e51b81526004016107f890613975565b60026004556003546001600160a01b031633146113665760405162461bcd60e51b81526004016107f8906138fc565b60075460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb90604401602060405180830381600087803b1580156113b257600080fd5b505af11580156113c6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109e91906133f8565b6060815183511461144f5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b60648201526084016107f8565b6000835167ffffffffffffffff81111561146b5761146b613b5c565b604051908082528060200260200182016040528015611494578160200160208202803683370190505b50905060005b845181101561150c576114df8582815181106114b8576114b8613b46565b60200260200101518583815181106114d2576114d2613b46565b6020026020010151610790565b8282815181106114f1576114f1613b46565b602090810291909101015261150581613b15565b905061149a565b509392505050565b600260045414156115375760405162461bcd60e51b81526004016107f890613975565b6002600455336000908152600f60205260409020546115895760405162461bcd60e51b815260206004820152600e60248201526d4e6f20686176652061206e6f646560901b60448201526064016107f8565b3461159333612369565b11156115d15760405162461bcd60e51b815260206004820152600d60248201526c139bc8199959481a5cc81cd95d609a1b60448201526064016107f8565b6007546001600160a01b03166000805b336000908152600f60205260409020548110156116be57336000908152600f6020526040812080548390811061161957611619613b46565b9060005260206000200154905060008061163283611137565b6000858152600e602052604081204260038201556005018054939550919350839261165e908490613a3d565b90915550506000838152600e602052604090206004015461167f8383613a3d565b6116899190613a96565b6116939086613a3d565b6000938452600e602052604090932060040191909155509150806116b681613b15565b9150506115e1565b5060405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb90604401602060405180830381600087803b15801561170757600080fd5b505af115801561171b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061173f91906133f8565b5050600160045550565b600f602052816000526040600020818154811061176557600080fd5b90600052602060002001600091509150505481565b6003546001600160a01b031633146117a45760405162461bcd60e51b81526004016107f8906138fc565b6117ae6000612a39565b565b600854604051633bca3f6760e21b8152336004820152602481018390526001600160a01b0390911690819063ef28fd9c90604401600060405180830381600087803b1580156117fe57600080fd5b505af1158015611812573d6000803e3d6000fd5b505050505050565b600d838154811061182d5761182d613b46565b90600052602060002090600b020160020154600d848154811061185257611852613b46565b90600052602060002090600b02016009015411156118825760405162461bcd60e51b81526004016107f890613931565b600d838154811061189557611895613b46565b90600052602060002090600b0201600a01546118b13385612375565b106118fe5760405162461bcd60e51b815260206004820181905260248201527f6d696e746564206e6f6465732065786365656420616d6f756e74206c696d697460448201526064016107f8565b6007546005546001600160a01b039091169060ff16156119f15760055460ff1680156119d057506002600d858154811061193a5761193a613b46565b90600052602060002090600b0201600101546119569190613a55565b6040516370a0823160e01b81523360048201526001600160a01b038316906370a082319060240160206040518083038186803b15801561199557600080fd5b505afa1580156119a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119cd91906134b8565b10155b6119ec5760405162461bcd60e51b81526004016107f8906138b2565b611abc565b60055460ff16158015611aa05750600d8481548110611a1257611a12613b46565b600091825260209091206001600b9092020101546040516370a0823160e01b81523360048201526001600160a01b038316906370a082319060240160206040518083038186803b158015611a6557600080fd5b505afa158015611a79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a9d91906134b8565b10155b611abc5760405162461bcd60e51b81526004016107f8906138b2565b6000611ac6612636565b9050611ad061264c565b6000818152600e6020526040902080546001600160a01b031916331781556001810186905542600282018190556003820155611b10906007018585612f09565b50600d8581548110611b2457611b24613b46565b6000918252602082206009600b9092020101805491611b4283613b15565b909155505060055460ff1615611c2157816001600160a01b03166323b872dd33306002600d8a81548110611b7857611b78613b46565b90600052602060002090600b020160010154611b949190613a55565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401602060405180830381600087803b158015611be357600080fd5b505af1158015611bf7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c1b91906133f8565b50611ce2565b816001600160a01b03166323b872dd3330600d8981548110611c4557611c45613b46565b600091825260209091206001600b9092020101546040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401602060405180830381600087803b158015611ca857600080fd5b505af1158015611cbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce091906133f8565b505b8215611d2357807f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b8585604051611d1a929190613736565b60405180910390a25b611d3f3386600160405180602001604052806000815250612663565b336000908152600f60209081526040822080546001810182559083529120015550505050565b611db660405180610100016040528060006001600160a01b03168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001606081525090565b6000828152600e602090815260409182902082516101008101845281546001600160a01b031681526001820154928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a0820152600682015460c082015260078201805491929160e084019190611e3690613aad565b80601f0160208091040260200160405190810160405280929190818152602001828054611e6290613aad565b8015611eaf5780601f10611e8457610100808354040283529160200191611eaf565b820191906000526020600020905b815481529060010190602001808311611e9257829003601f168201915b5050505050815250509050919050565b6000806000611ecd84611137565b6000868152600e602052604081206004015492945090925090611ef08484613a3d565b611efa9190613a96565b95945050505050565b600e60205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007880180546001600160a01b039098169896979596949593949293919291611f5990613aad565b80601f0160208091040260200160405190810160405280929190818152602001828054611f8590613aad565b8015611fd25780601f10611fa757610100808354040283529160200191611fd2565b820191906000526020600020905b815481529060010190602001808311611fb557829003601f168201915b5050505050905088565b611fe7338383612a8b565b5050565b6002600454141561200e5760405162461bcd60e51b81526004016107f890613975565b60026004556000818152600e60205260409020546001600160a01b031633146120795760405162461bcd60e51b815260206004820152601760248201527f6f6e6c792070756368617365722063616e20636c61696d00000000000000000060448201526064016107f8565b34612083826122e7565b11156120c55760405162461bcd60e51b81526020600482015260116024820152704e6f2073657420656e6f7567682066656560781b60448201526064016107f8565b6007546001600160a01b03166000806120dd84611137565b6000868152600e6020526040812042600382015560050180549395509193508392612109908490613a3d565b90915550506000848152600e602052604081206004015461212a8484613a3d565b6121349190613a96565b6000868152600e6020526040908190206004908101869055905163a9059cbb60e01b81523391810191909152602481018290529091506001600160a01b0385169063a9059cbb90604401602060405180830381600087803b15801561219857600080fd5b505af11580156121ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121d091906133f8565b5050600160045550505050565b6001600160a01b0381166000908152600f60205260408120546122335760405162461bcd60e51b815260206004820152600e60248201526d4e6f20686176652061206e6f646560901b60448201526064016107f8565b6000805b6001600160a01b0384166000908152600f6020526040902054811015610f6a576001600160a01b0384166000908152600f6020526040812080548390811061228157612281613b46565b9060005260206000200154905060008061229a83611137565b6000858152600e602052604090206004015491935091506122bb8383613a3d565b6122c59190613a96565b6122cf9086613a3d565b945050505080806122df90613b15565b915050612237565b6000806122f383611ebf565b905060006122ff6109bd565b9050610a77670de0b6b3a7640000610a718385613a77565b6003546001600160a01b031633146123415760405162461bcd60e51b81526004016107f8906138fc565b600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6000806122f3836121dd565b60008060005b6001600160a01b0385166000908152600f602052604090205481101561150c576001600160a01b0385166000908152600f6020526040812080548692600e929091859081106123cc576123cc613b46565b906000526020600020015481526020019081526020016000206001015414156123fd57816123f981613b15565b9250505b8061240781613b15565b91505061237b565b600d818154811061241f57600080fd5b90600052602060002090600b020160009150905080600001805461244290613aad565b80601f016020809104026020016040519081016040528092919081815260200182805461246e90613aad565b80156124bb5780601f10612490576101008083540402835291602001916124bb565b820191906000526020600020905b81548152906001019060200180831161249e57829003601f168201915b50505050509080600101549080600201549080600301549080600401549080600501549080600601549080600701549080600801549080600901549080600a015490508b565b6001600160a01b03851633148061251d575061251d85336106cb565b61257b5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260448201526808185c1c1c9bdd995960ba1b60648201526084016107f8565b610ebc8585858585612b6c565b6003546001600160a01b031633146125b25760405162461bcd60e51b81526004016107f8906138fc565b6001600160a01b0381166126175760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107f8565b61262081612a39565b50565b600061262f8284613a55565b9392505050565b6000600a5460016126479190613a3d565b905090565b600a805490600061265c83613b15565b9190505550565b6001600160a01b0384166126c35760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b60648201526084016107f8565b336126dd816000876126d488612c89565b610ebc88612c89565b6000848152602081815260408083206001600160a01b03891684529091528120805485929061270d908490613a3d565b909155505060408051858152602081018590526001600160a01b0380881692600092918516917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4610ebc81600087878787612cd4565b81518351146127cf5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b60648201526084016107f8565b6001600160a01b0384166127f55760405162461bcd60e51b81526004016107f890613823565b3360005b84518110156128dc57600085828151811061281657612816613b46565b60200260200101519050600085838151811061283457612834613b46565b602090810291909101810151600084815280835260408082206001600160a01b038e1683529093529190912054909150818110156128845760405162461bcd60e51b81526004016107f890613868565b6000838152602081815260408083206001600160a01b038e8116855292528083208585039055908b168252812080548492906128c1908490613a3d565b92505081905550505050806128d590613b15565b90506127f9565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb878760405161292c929190613711565b60405180910390a4611812818787878787612e3f565b600061262f6009548385610a719190613a77565b6000600c54821115612990576000600c54836129729190613a96565b905061297e8582613a77565b6129889085613a3d565b915050610a77565b611efa8583613a77565b6000600c548210156129e2576000805b8381116129cf576129bb8183613a3d565b9150806129c781613b15565b9150506129aa565b506129da8582613a77565b91505061262f565b6000805b600c548111612a0d576129f98183613a3d565b915080612a0581613b15565b9150506129e6565b50600c54612a1b9084613a96565b612a259085613a77565b612a2f8683613a77565b6129da9190613a3d565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b03161415612aff5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b60648201526084016107f8565b6001600160a01b03838116600081815260016020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b038416612b925760405162461bcd60e51b81526004016107f890613823565b33612ba28187876126d488612c89565b6000848152602081815260408083206001600160a01b038a16845290915290205483811015612be35760405162461bcd60e51b81526004016107f890613868565b6000858152602081815260408083206001600160a01b038b8116855292528083208785039055908816825281208054869290612c20908490613a3d565b909155505060408051868152602081018690526001600160a01b03808916928a821692918616917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4612c80828888888888612cd4565b50505050505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612cc357612cc3613b46565b602090810291909101015292915050565b6001600160a01b0384163b156118125760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190612d189089908990889088908890600401613664565b602060405180830381600087803b158015612d3257600080fd5b505af1925050508015612d62575060408051601f3d908101601f19168201909252612d5f91810190613432565b60015b612e0f57612d6e613b72565b806308c379a01415612da85750612d83613b8e565b80612d8e5750612daa565b8060405162461bcd60e51b81526004016107f89190613765565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e20455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b60648201526084016107f8565b6001600160e01b0319811663f23a6e6160e01b14612c805760405162461bcd60e51b81526004016107f8906137db565b6001600160a01b0384163b156118125760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190612e839089908990889088908890600401613606565b602060405180830381600087803b158015612e9d57600080fd5b505af1925050508015612ecd575060408051601f3d908101601f19168201909252612eca91810190613432565b60015b612ed957612d6e613b72565b6001600160e01b0319811663bc197c8160e01b14612c805760405162461bcd60e51b81526004016107f8906137db565b828054612f1590613aad565b90600052602060002090601f016020900481019282612f375760008555612f7d565b82601f10612f505782800160ff19823516178555612f7d565b82800160010185558215612f7d579182015b82811115612f7d578235825591602001919060010190612f62565b50612f89929150612f8d565b5090565b5b80821115612f895760008155600101612f8e565b80356001600160a01b0381168114612fb957600080fd5b919050565b600082601f830112612fcf57600080fd5b81356020612fdc82613a19565b604051612fe98282613ae8565b8381528281019150858301600585901b8701840188101561300957600080fd5b60005b858110156130285781358452928401929084019060010161300c565b5090979650505050505050565b600082601f83011261304657600080fd5b813567ffffffffffffffff81111561306057613060613b5c565b604051613077601f8301601f191660200182613ae8565b81815284602083860101111561308c57600080fd5b816020850160208301376000918101602001919091529392505050565b60008083601f8401126130bb57600080fd5b50813567ffffffffffffffff8111156130d357600080fd5b6020830191508360208285010111156130eb57600080fd5b9250929050565b80516001600160701b0381168114612fb957600080fd5b60006020828403121561311b57600080fd5b61262f82612fa2565b6000806040838503121561313757600080fd5b61314083612fa2565b915061314e60208401612fa2565b90509250929050565b60008060006060848603121561316c57600080fd5b61317584612fa2565b925061318360208501612fa2565b915061319160408501612fa2565b90509250925092565b600080600080600060a086880312156131b257600080fd5b6131bb86612fa2565b94506131c960208701612fa2565b9350604086013567ffffffffffffffff808211156131e657600080fd5b6131f289838a01612fbe565b9450606088013591508082111561320857600080fd5b61321489838a01612fbe565b9350608088013591508082111561322a57600080fd5b5061323788828901613035565b9150509295509295909350565b600080600080600060a0868803121561325c57600080fd5b61326586612fa2565b945061327360208701612fa2565b93506040860135925060608601359150608086013567ffffffffffffffff81111561329d57600080fd5b61323788828901613035565b600080604083850312156132bc57600080fd5b6132c583612fa2565b915060208301356132d581613c18565b809150509250929050565b600080604083850312156132f357600080fd5b6132fc83612fa2565b946020939093013593505050565b6000806040838503121561331d57600080fd5b823567ffffffffffffffff8082111561333557600080fd5b818501915085601f83011261334957600080fd5b8135602061335682613a19565b6040516133638282613ae8565b8381528281019150858301600585901b870184018b101561338357600080fd5b600096505b848710156133ad5761339981612fa2565b835260019690960195918301918301613388565b50965050860135925050808211156133c457600080fd5b506133d185828601612fbe565b9150509250929050565b6000602082840312156133ed57600080fd5b813561262f81613c18565b60006020828403121561340a57600080fd5b815161262f81613c18565b60006020828403121561342757600080fd5b813561262f81613c26565b60006020828403121561344457600080fd5b815161262f81613c26565b60008060006060848603121561346457600080fd5b61346d846130f2565b925061347b602085016130f2565b9150604084015163ffffffff8116811461349457600080fd5b809150509250925092565b6000602082840312156134b157600080fd5b5035919050565b6000602082840312156134ca57600080fd5b5051919050565b6000806000604084860312156134e657600080fd5b83359250602084013567ffffffffffffffff81111561350457600080fd5b613510868287016130a9565b9497909650939450505050565b60008060008060006080868803121561353557600080fd5b853594506020860135935060408601359250606086013567ffffffffffffffff81111561356157600080fd5b61356d888289016130a9565b969995985093965092949392505050565b600081518084526020808501945080840160005b838110156135ae57815187529582019590820190600101613592565b509495945050505050565b6000815180845260005b818110156135df576020818501810151868301820152016135c3565b818111156135f1576000602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0386811682528516602082015260a0604082018190526000906136329083018661357e565b8281036060840152613644818661357e565b9050828103608084015261365881856135b9565b98975050505050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061369e908301846135b9565b979650505050505050565b600061010060018060a01b038b1683528960208401528860408401528760608401528660808401528560a08401528460c08401528060e08401526136ef818401856135b9565b9b9a5050505050505050505050565b60208152600061262f602083018461357e565b604081526000613724604083018561357e565b8281036020840152611efa818561357e565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60208152600061262f60208301846135b9565b600061016080835261378c8184018f6135b9565b602084019d909d52505060408101999099526060890197909752608088019590955260a087019390935260c086019190915260e085015261010084015261012083015261014090910152919050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b6020808252602a908201527f726563656976657227732062616c616e6365206973206c657373207468616e206040820152696e6f646520707269636560b01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526024908201527f616c6c206f66207468697320636f6c6c656374696f6e20617265207075726368604082015263185cd95960e21b606082015260800190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b6020815260018060a01b038251166020820152602082015160408201526040820151606082015260608201516080820152608082015160a082015260a082015160c082015260c082015160e0820152600060e0830151610100808185015250610a776101208401826135b9565b600067ffffffffffffffff821115613a3357613a33613b5c565b5060051b60200190565b60008219821115613a5057613a50613b30565b500190565b600082613a7257634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615613a9157613a91613b30565b500290565b600082821015613aa857613aa8613b30565b500390565b600181811c90821680613ac157607f821691505b60208210811415613ae257634e487b7160e01b600052602260045260246000fd5b50919050565b601f8201601f1916810167ffffffffffffffff81118282101715613b0e57613b0e613b5c565b6040525050565b6000600019821415613b2957613b29613b30565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b600060033d1115613b8b5760046000803e5060005160e01c5b90565b600060443d1015613b9c5790565b6040516003193d81016004833e81513d67ffffffffffffffff8160248401118184111715613bcc57505050505090565b8285019150815181811115613be45750505050505090565b843d8701016020828501011115613bfe5750505050505090565b613c0d60208286010187613ae8565b509095945050505050565b801515811461262057600080fd5b6001600160e01b03198116811461262057600080fdfea26469706673582212207977031c1eeb7b4b168a782c50ef35ac7e464ae816f6cbbe276bab536f0d758b64736f6c63430008070033