[ { "inputs": [ { "internalType": "address", "name": "_ASCEND_TOKEN", "type": "address" }, { "internalType": "address", "name": "_ascendMembership", "type": "address" }, { "internalType": "address", "name": "_infiniteManager", "type": "address" } ], "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": "ContractOwnershipTransferred", "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": "ASCEND", "outputs": [ { "internalType": "contract IERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_id", "type": "uint256" }, { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "uint64", "name": "_mint", "type": "uint64" }, { "internalType": "uint64", "name": "_claim", "type": "uint64" }, { "internalType": "string", "name": "_metadata", "type": "string" }, { "internalType": "address", "name": "_to", "type": "address" } ], "name": "_addMeta", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "malicious", "type": "address" }, { "internalType": "bool", "name": "value", "type": "bool" } ], "name": "_setBlacklist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "uri", "type": "string" } ], "name": "_setDefaultTokenUri", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "nodeId", "type": "uint256" }, { "internalType": "string", "name": "uri", "type": "string" } ], "name": "_setTokenUriFor", "outputs": [], "stateMutability": "nonpayable", "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": "balance", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "uint64[]", "name": "ascendNodes", "type": "uint64[]" }, { "internalType": "uint64[]", "name": "userInfiniteNodes", "type": "uint64[]" } ], "name": "createNodeWithTokens", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "deadAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "defaultUri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enable", "type": "bool" } ], "name": "enableTransfer", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_id", "type": "uint256" } ], "name": "getMetas", "outputs": [ { "components": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "metadata", "type": "string" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint64", "name": "mint", "type": "uint64" }, { "internalType": "uint64", "name": "claim", "type": "uint64" } ], "internalType": "struct MetaManager.Meta", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "getMetasOf", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_id", "type": "uint256" } ], "name": "getMintOf", "outputs": [ { "internalType": "uint64", "name": "", "type": "uint64" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_id", "type": "uint256" } ], "name": "getNameOf", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "helperContract", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "infiniteManager", "outputs": [ { "internalType": "contract IInfiniteManager", "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": "wallet", "type": "address" } ], "name": "isBlacklisted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "manager", "outputs": [ { "internalType": "contract IAscendMembershipManager", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxMetaGlobal", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxMetaWallet", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "nodeAscendMembershipPrice", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "nodeAscendTokenPrice", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "nodeInfinitePrice", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint64", "name": "id", "type": "uint64" }, { "internalType": "string", "name": "newName", "type": "string" } ], "name": "renameMeta", "outputs": [], "stateMutability": "nonpayable", "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": "contract IERC20", "name": "_ASCEND", "type": "address" } ], "name": "setAscend", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "contract IInfiniteManager", "name": "_infiniteManager", "type": "address" } ], "name": "setInfiniteManager", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "contract IAscendMembershipManager", "name": "_manager", "type": "address" } ], "name": "setManager", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_max", "type": "uint256" } ], "name": "setMaxMetaWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_max", "type": "uint256" } ], "name": "setmaxMetaGlobal", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalNodesCreated", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferContractOwnership", "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": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "transferIsEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_price", "type": "uint256" } ], "name": "updateInfinitePrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "string", "name": "metadata", "type": "string" } ], "name": "updateMeta", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_nodeAscendMembershipPrice", "type": "uint256" } ], "name": "updateNodeAscendMembershipPrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_nodeAscendTokenPrice", "type": "uint256" } ], "name": "updateNodeTokenPrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_upgradeManager", "type": "address" } ], "name": "updateUpgradeManager", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "upgradeManager", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" } ]
6009805461dead6001600160a01b03199182168117909255600a8054909116909117905560a06040819052600060808190526200003f91600b9162000183565b506103e8600c556032600d556001600e819055600f55600360105560fa6011556014805460ff60a01b1916600160a01b1790553480156200007f57600080fd5b50604051620037ac380380620037ac833981016040819052620000a29162000246565b620000ad3362000133565b600180546001600160a01b0319163390811790915560405181906000907f2260a4d0c00902d7996e8f7d669d22564414d41be4d278a40387ddf58179d392908290a350601280546001600160a01b039485166001600160a01b031991821617909155601380549385169382169390931790925560148054919093169116179055620002cd565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b828054620001919062000290565b90600052602060002090601f016020900481019282620001b5576000855562000200565b82601f10620001d057805160ff191683800117855562000200565b8280016001018555821562000200579182015b8281111562000200578251825591602001919060010190620001e3565b506200020e92915062000212565b5090565b5b808211156200020e576000815560010162000213565b80516001600160a01b03811681146200024157600080fd5b919050565b6000806000606084860312156200025c57600080fd5b620002678462000229565b9250620002776020850162000229565b9150620002876040850162000229565b90509250925092565b600181811c90821680620002a557607f821691505b60208210811415620002c757634e487b7160e01b600052602260045260246000fd5b50919050565b6134cf80620002dd6000396000f3fe608060405234801561001057600080fd5b50600436106103275760003560e01c8063a22cb465116101b8578063bc3ec7c011610104578063de154761116100a2578063ef7ac0e51161007c578063ef7ac0e514610734578063f03637ca14610747578063f2fde38b1461075a578063fe575a871461076d57600080fd5b8063de154761146106d2578063e985e9c5146106e5578063ed60855e1461072157600080fd5b8063c87b56dd116100de578063c87b56dd14610691578063cb3a6f70146106a4578063d0ebdbe7146106b7578063d2d99fec146106ca57600080fd5b8063bc3ec7c014610662578063bd075e5314610675578063c69533eb1461067e57600080fd5b8063b0d17f6f11610171578063b23ecec31161014b578063b23ecec31461062b578063b2c4edde1461063e578063b8527aef14610647578063b88d4fde1461064f57600080fd5b8063b0d17f6f146105fc578063b1626d5d1461060f578063b17e54e71461062257600080fd5b8063a22cb46514610589578063a274aee41461059c578063a5dc9e1b146105a5578063a843c51f146105b6578063aa5c1f9a146105c9578063ab17a060146105e957600080fd5b80635a1354d5116102775780638da5cb5b116102305780639ab588731161020a5780639ab58873146105305780639c8b406614610543578063a059781514610556578063a085fa961461056957600080fd5b80638da5cb5b146104ec57806395d89b41146104fd5780639a5f27a41461051d57600080fd5b80635a1354d5146104815780636352211e14610494578063664a026b146104a757806370a08231146104ba578063715018a6146104db5780637d27c3b9146104e357600080fd5b806327c8f835116102e4578063401dc243116102be578063401dc2431461041d57806342842e0e14610430578063481c6a7514610443578063594d129f1461045657600080fd5b806327c8f835146103e4578063371ffa64146103f757806337aad4ba1461040a57600080fd5b806301ffc9a71461032c57806306fdde0314610354578063081812fc1461037d578063095ea7b3146103a85780632282d9f2146103bd57806323b872dd146103d1575b600080fd5b61033f61033a366004612d65565b610799565b60405190151581526020015b60405180910390f35b6040805180820190915260048152634d65746160e01b60208201525b60405161034b91906130d2565b61039061038b366004612e5a565b6107d0565b6040516001600160a01b03909116815260200161034b565b6103bb6103b6366004612cff565b610835565b005b60145461033f90600160a01b900460ff1681565b6103bb6103df366004612c11565b61094b565b600954610390906001600160a01b031681565b6103bb610405366004612d9f565b6109cb565b6103bb610418366004612f87565b610a0c565b6103bb61042b366004612e8c565b610a5b565b6103bb61043e366004612c11565b610a7e565b601354610390906001600160a01b031681565b610469610464366004612e5a565b610af8565b6040516001600160401b03909116815260200161034b565b6103bb61048f366004612bbb565b610b40565b6103906104a2366004612e5a565b610b8c565b6103bb6104b5366004612fcd565b610be3565b6104cd6104c8366004612bbb565b610ce3565b60405190815260200161034b565b6103bb610d6a565b6104cd60105481565b6000546001600160a01b0316610390565b6040805180820190915260048152634d45544160e01b6020820152610370565b601254610390906001600160a01b031681565b6103bb61053e366004612bbb565b610da0565b601454610390906001600160a01b031681565b6103bb610564366004612e5a565b610dec565b61057c610577366004612bbb565b610e1b565b60405161034b919061308e565b6103bb610597366004612cd1565b610e87565b6104cd60115481565b6001546001600160a01b0316610390565b6103bb6105c4366004612bbb565b610e92565b6105dc6105d7366004612e5a565b610f3e565b60405161034b91906132c7565b6103bb6105f7366004612e5a565b611119565b6103bb61060a366004612cd1565b611148565b6103bb61061d366004612dd3565b61119d565b6104cd600c5481565b6103bb610639366004612e5a565b611955565b6104cd600e5481565b6104cd611984565b6103bb61065d366004612c52565b61199a565b6103bb610670366004612ed7565b611a27565b6104cd600d5481565b6103bb61068c366004612bbb565b611ad5565b61037061069f366004612e5a565b611b21565b6103bb6106b2366004612e5a565b611d4a565b6103bb6106c5366004612bbb565b611d79565b610370611dc5565b600a54610390906001600160a01b031681565b61033f6106f3366004612bd8565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b6103bb61072f366004612e5a565b600e55565b6103bb610742366004612d2b565b611e53565b610370610755366004612e5a565b611e9b565b6103bb610768366004612bbb565b611edc565b61033f61077b366004612bbb565b6001600160a01b031660009081526008602052604090205460ff1690565b60006001600160e01b031982166380ac58cd60e01b14806107ca57506001600160e01b03198216635b5e139f60e01b145b92915050565b6000816001600160401b03166107e581611f38565b61080a5760405162461bcd60e51b8152600401610801906131be565b60405180910390fd5b6001600160401b0383166000908152600660205260409020546001600160a01b031691505b50919050565b600061084082610b8c565b9050806001600160a01b0316836001600160a01b031614156108ae5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610801565b336001600160a01b03821614806108ca57506108ca81336106f3565b61093c5760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610801565b6109468383611f5e565b505050565b6109553382611fd6565b6109715760405162461bcd60e51b81526004016108019061323f565b601454600160a01b900460ff1615156001141561099357610946838383612086565b6009546001600160a01b038381169116146109c05760405162461bcd60e51b815260040161080190613290565b610946838383612086565b6000546001600160a01b031633146109f55760405162461bcd60e51b81526004016108019061320a565b8051610a0890600b906020840190612940565b5050565b6000546001600160a01b03163314610a365760405162461bcd60e51b81526004016108019061320a565b6000828152600460209081526040909120825161094692600190920191840190612940565b6000838152600460205260409020610a776001820184846129c4565b5050505050565b601454600160a01b900460ff16151560011415610ab0576109468383836040518060200160405280600081525061199a565b6009546001600160a01b03838116911614610add5760405162461bcd60e51b815260040161080190613290565b6109468383836040518060200160405280600081525061199a565b600081610b0481611f38565b610b205760405162461bcd60e51b8152600401610801906131be565b50506000908152600460205260409020600301546001600160401b031690565b6000546001600160a01b03163314610b6a5760405162461bcd60e51b81526004016108019061320a565b601480546001600160a01b0319166001600160a01b0392909216919091179055565b6000816001600160401b0316610ba181611f38565b610bbd5760405162461bcd60e51b8152600401610801906131be565b50506001600160401b03166000908152600360205260409020546001600160a01b031690565b6040805180820190915260078152665631204e4f444560c81b6020918201528151908201207f726ca9a11821b08e8b39a0c12fff38e2a582b4c38cfe7da1888136bad2ac4c421415610c475760405162461bcd60e51b8152600401610801906130e5565b33610c5a6001600160401b038416610b8c565b6001600160a01b031614610cb05760405162461bcd60e51b815260206004820152601e60248201527f4d414e414745523a20596f7520617265206e6f7420746865206f776e657200006044820152606401610801565b6001600160401b038216600090815260046020908152604090912082519091610cdd918391850190612940565b50505050565b60006001600160a01b038216610d4e5760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610801565b506001600160a01b031660009081526002602052604090205490565b6000546001600160a01b03163314610d945760405162461bcd60e51b81526004016108019061320a565b610d9e6000612308565b565b6000546001600160a01b03163314610dca5760405162461bcd60e51b81526004016108019061320a565b601280546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610e165760405162461bcd60e51b81526004016108019061320a565b600c55565b6001600160a01b038116600090815260056020908152604091829020805483518184028101840190945280845260609392830182828015610e7b57602002820191906000526020600020905b815481526020019060010190808311610e67575b50505050509050919050565b610a08338383612358565b6000546001600160a01b03163314610ebc5760405162461bcd60e51b81526004016108019061320a565b6001600160a01b038116610ee25760405162461bcd60e51b815260040161080190613178565b6001546040516001600160a01b038084169216907f2260a4d0c00902d7996e8f7d669d22564414d41be4d278a40387ddf58179d39290600090a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b610f826040518060a0016040528060608152602001606081526020016000815260200160006001600160401b0316815260200160006001600160401b031681525090565b81610f8c81611f38565b610fa85760405162461bcd60e51b8152600401610801906131be565b60008381526004602052604090819020815160a08101909252805482908290610fd0906133b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610ffc906133b8565b80156110495780601f1061101e57610100808354040283529160200191611049565b820191906000526020600020905b81548152906001019060200180831161102c57829003601f168201915b50505050508152602001600182018054611062906133b8565b80601f016020809104026020016040519081016040528092919081815260200182805461108e906133b8565b80156110db5780601f106110b0576101008083540402835291602001916110db565b820191906000526020600020905b8154815290600101906020018083116110be57829003601f168201915b5050509183525050600282015460208201526003909101546001600160401b038082166040840152600160401b909104166060909101529392505050565b6000546001600160a01b031633146111435760405162461bcd60e51b81526004016108019061320a565b601055565b6000546001600160a01b031633146111725760405162461bcd60e51b81526004016108019061320a565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b600083511180156111af575060218351105b6111fb5760405162461bcd60e51b815260206004820152601c60248201527f48454c5045523a206e616d652073697a6520697320696e76616c6964000000006044820152606401610801565b33806112595760405162461bcd60e51b815260206004820152602760248201527f48454c5045523a20204372656174696f6e2066726f6d20746865207a65726f206044820152666164647265737360c81b6064820152608401610801565b6000600c54670de0b6b3a76400006112719190613382565b9050600081116112ab5760405162461bcd60e51b815260206004820152600560248201526432b93937b960d91b6044820152606401610801565b601154600f5411156113145760405162461bcd60e51b815260206004820152602c60248201527f48454c5045523a204d6178696d756e206e756d626572206f66204d657461206e60448201526b1bd9195cc81c995858da195960a21b6064820152608401610801565b6012546040516370a0823160e01b81526001600160a01b038481166004830152839216906370a082319060240160206040518083038186803b15801561135957600080fd5b505afa15801561136d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113919190612e73565b10156113fb5760405162461bcd60e51b815260206004820152603360248201527f48454c5045523a20417363656e6420546f6b656e732062616c616e636520746f60448201527237903637bb903337b91031b932b0ba34b7b71760691b6064820152608401610801565b60105461140783610ce3565b61141290600161336a565b111561146a5760405162461bcd60e51b815260206004820152602160248201527f48454c5045523a2045786365656473206d61782077616c6c657420616d6f756e6044820152601d60fa1b6064820152608401610801565b600d546013546040516370a0823160e01b81526001600160a01b038581166004830152909116906370a082319060240160206040518083038186803b1580156114b257600080fd5b505afa1580156114c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ea9190612e73565b101561155e5760405162461bcd60e51b815260206004820152603760248201527f48454c5045523a20417363656e64204d656d626572736869702062616c616e6360448201527f6520746f6f206c6f7720666f72206372656174696f6e2e0000000000000000006064820152608401610801565b600e546014546040516370a0823160e01b81526001600160a01b038581166004830152909116906370a082319060240160206040518083038186803b1580156115a657600080fd5b505afa1580156115ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115de9190612e73565b10156116525760405162461bcd60e51b815260206004820152603960248201527f48454c5045523a20496e66696e697465204d656d626572736869702062616c6160448201527f6e636520746f6f206c6f7720666f72206372656174696f6e2e000000000000006064820152608401610801565b600d548451146116bd5760405162461bcd60e51b815260206004820152603060248201527f48454c5045523a20417363656e64204d656d62657273686970204e6f6465732060448201526f28496e76616c696420616d6f756e742960801b6064820152608401610801565b600e5483511461172a5760405162461bcd60e51b815260206004820152603260248201527f48454c5045523a20496e66696e697465204d656d62657273686970204e6f6465604482015271732028496e76616c696420616d6f756e742960701b6064820152608401610801565b60005b600d548110156117eb576013546001600160a01b03166323b872dd33600088858151811061175d5761175d613434565b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526001600160401b03166044820152606401600060405180830381600087803b1580156117c057600080fd5b505af11580156117d4573d6000803e3d6000fd5b5050505080806117e3906133ed565b91505061172d565b5060005b600e548110156118ad576014546001600160a01b03166323b872dd33600087858151811061181f5761181f613434565b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526001600160401b03166044820152606401600060405180830381600087803b15801561188257600080fd5b505af1158015611896573d6000803e3d6000fd5b5050505080806118a5906133ed565b9150506117ef565b506012546001600160a01b03166323b872dd3360135460405160e084901b6001600160e01b03191681526001600160a01b0392831660048201529116602482015260448101849052606401602060405180830381600087803b15801561191257600080fd5b505af1158015611926573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194a9190612d48565b50610a778286612427565b6000546001600160a01b0316331461197f5760405162461bcd60e51b81526004016108019061320a565b601155565b60006001600f5461199591906133a1565b905090565b6119a43383611fd6565b6119c05760405162461bcd60e51b81526004016108019061323f565b601454600160a01b900460ff161515600114156119e8576119e3848484846124cc565b610cdd565b600a546001600160a01b0316336001600160a01b031614611a1b5760405162461bcd60e51b815260040161080190613126565b610cdd848484846124cc565b6000546001600160a01b03163314611a515760405162461bcd60e51b81526004016108019061320a565b611acb8888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8a018190048102820181019092528881528b93508a925090899089908190840183828082843760009201919091525089925061258c915050565b5050505050505050565b6000546001600160a01b03163314611aff5760405162461bcd60e51b81526004016108019061320a565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600060046000846001600160401b031681526020019081526020016000206040518060a0016040529081600082018054611b5c906133b8565b80601f0160208091040260200160405190810160405280929190818152602001828054611b88906133b8565b8015611bd55780601f10611baa57610100808354040283529160200191611bd5565b820191906000526020600020905b815481529060010190602001808311611bb857829003601f168201915b50505050508152602001600182018054611bee906133b8565b80601f0160208091040260200160405190810160405280929190818152602001828054611c1a906133b8565b8015611c675780601f10611c3c57610100808354040283529160200191611c67565b820191906000526020600020905b815481529060010190602001808311611c4a57829003601f168201915b505050918352505060028201546020808301919091526003909201546001600160401b038082166040840152600160401b9091041660609091015281015151909150611d4057600b8054611cba906133b8565b80601f0160208091040260200160405190810160405280929190818152602001828054611ce6906133b8565b8015611d335780601f10611d0857610100808354040283529160200191611d33565b820191906000526020600020905b815481529060010190602001808311611d1657829003601f168201915b5050505050915050919050565b6020015192915050565b6000546001600160a01b03163314611d745760405162461bcd60e51b81526004016108019061320a565b600d55565b6000546001600160a01b03163314611da35760405162461bcd60e51b81526004016108019061320a565b601380546001600160a01b0319166001600160a01b0392909216919091179055565b600b8054611dd2906133b8565b80601f0160208091040260200160405190810160405280929190818152602001828054611dfe906133b8565b8015611e4b5780601f10611e2057610100808354040283529160200191611e4b565b820191906000526020600020905b815481529060010190602001808311611e2e57829003601f168201915b505050505081565b6000546001600160a01b03163314611e7d5760405162461bcd60e51b81526004016108019061320a565b60148054911515600160a01b0260ff60a01b19909216919091179055565b606081611ea781611f38565b611ec35760405162461bcd60e51b8152600401610801906131be565b60008381526004602052604090208054611cba906133b8565b6000546001600160a01b03163314611f065760405162461bcd60e51b81526004016108019061320a565b6001600160a01b038116611f2c5760405162461bcd60e51b815260040161080190613178565b611f3581612308565b50565b6001600160401b03166000908152600360205260409020546001600160a01b0316151590565b6001600160401b038116600090815260066020526040902080546001600160a01b0319166001600160a01b0384169081179091558190611f9d82610b8c565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000816001600160401b0316611feb81611f38565b6120075760405162461bcd60e51b8152600401610801906131be565b600061201284610b8c565b9050806001600160a01b0316856001600160a01b0316148061204d5750846001600160a01b0316612042856107d0565b6001600160a01b0316145b8061207d57506001600160a01b0380821660009081526007602090815260408083209389168352929052205460ff165b95945050505050565b806001600160a01b03841661209a82610b8c565b6001600160a01b0316146120fe5760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608401610801565b6001600160a01b03831660009081526008602052604090205460ff161561217f5760405162461bcd60e51b815260206004820152602f60248201527f4d414e414745523a20596f752063616e2774207472616e7366657220746f206260448201526e3630b1b5b634b9ba32b2103ab9b2b960891b6064820152608401610801565b6001600160a01b03841660009081526008602052604090205460ff16156122005760405162461bcd60e51b815260206004820152602f60248201527f4d414e414745523a20596f752063616e2774207472616e73666572206173206260448201526e3630b1b5b634b9ba32b2103ab9b2b960891b6064820152608401610801565b61220b600083611f5e565b6001600160a01b03841660009081526002602052604081208054600192906122349084906133a1565b90915550506001600160a01b038316600090815260026020526040812080546001929061226290849061336a565b90915550506001600160401b038116600081815260036020908152604080832080546001600160a01b0319166001600160a01b038916908117909155835260058252822080546001810182559083529120018190556122c1908561274d565b81836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b816001600160a01b0316836001600160a01b031614156123ba5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610801565b6001600160a01b03838116600081815260076020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6040805180820190915260078152665631204e4f444560c81b6020918201528151908201207f726ca9a11821b08e8b39a0c12fff38e2a582b4c38cfe7da1888136bad2ac4c42141561248b5760405162461bcd60e51b8152600401610801906130e5565b6000600f5490506124af81834242604051806020016040528060008152508861258c565b6001600f60008282546124c2919061336a565b9091555050505050565b601454600160a01b900460ff1615156001141561251b576124ee848484612086565b6124fa84848484612832565b6125165760405162461bcd60e51b815260040161080190613126565b612581565b600a546001600160a01b0316336001600160a01b03161461254e5760405162461bcd60e51b815260040161080190613290565b612559848484612086565b61256584848484612832565b6125815760405162461bcd60e51b815260040161080190613126565b610cdd848484612086565b61259586611f38565b156125e25760405162461bcd60e51b815260206004820152601b60248201527f4d414e414745523a204d65746120616c726561647920657869737400000000006044820152606401610801565b6040805160a08101825286815260208082018590528183018990526001600160401b038088166060840152861660808301526000898152600482529290922081518051929391926126369284920190612940565b50602082810151805161264f9260018501920190612940565b506040828101516002808401919091556060840151600393840180546080909601516001600160401b03908116600160401b026fffffffffffffffffffffffffffffffff19909716921691909117949094179093556000898152602092835281812080546001600160a01b0387166001600160a01b0319909116811790915581529290915281208054600192906126e790849061336a565b90915550506001600160a01b0381166000818152600560209081526040808320805460018101825590845291832090910189905551889291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a4505050505050565b6001600160a01b03811660009081526005602052604081208054909181905b828110156127ae578584828154811061278757612787613434565b9060005260206000200154141561279c578091505b806127a6816133ed565b91505061276c565b50825481106127be575050505050565b826127ca6001846133a1565b815481106127da576127da613434565b90600052602060002001548382815481106127f7576127f7613434565b9060005260206000200181905550828054806128155761281561341e565b600190038181906000526020600020016000905590555050505050565b60006001600160a01b0384163b1561293457604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290612876903390899088908890600401613051565b602060405180830381600087803b15801561289057600080fd5b505af19250505080156128c0575060408051601f3d908101601f191682019092526128bd91810190612d82565b60015b61291a573d8080156128ee576040519150601f19603f3d011682016040523d82523d6000602084013e6128f3565b606091505b5080516129125760405162461bcd60e51b815260040161080190613126565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050612938565b5060015b949350505050565b82805461294c906133b8565b90600052602060002090601f01602090048101928261296e57600085556129b4565b82601f1061298757805160ff19168380011785556129b4565b828001600101855582156129b4579182015b828111156129b4578251825591602001919060010190612999565b506129c0929150612a38565b5090565b8280546129d0906133b8565b90600052602060002090601f0160209004810192826129f257600085556129b4565b82601f10612a0b5782800160ff198235161785556129b4565b828001600101855582156129b4579182015b828111156129b4578235825591602001919060010190612a1d565b5b808211156129c05760008155600101612a39565b60006001600160401b03831115612a6657612a6661344a565b612a79601f8401601f191660200161333a565b9050828152838383011115612a8d57600080fd5b828260208301376000602084830101529392505050565b600082601f830112612ab557600080fd5b813560206001600160401b03821115612ad057612ad061344a565b8160051b612adf82820161333a565b838152828101908684018388018501891015612afa57600080fd5b600093505b85841015612b2457612b1081612b9f565b835260019390930192918401918401612aff565b50979650505050505050565b60008083601f840112612b4257600080fd5b5081356001600160401b03811115612b5957600080fd5b602083019150836020828501011115612b7157600080fd5b9250929050565b600082601f830112612b8957600080fd5b612b9883833560208501612a4d565b9392505050565b80356001600160401b0381168114612bb657600080fd5b919050565b600060208284031215612bcd57600080fd5b8135612b9881613460565b60008060408385031215612beb57600080fd5b8235612bf681613460565b91506020830135612c0681613460565b809150509250929050565b600080600060608486031215612c2657600080fd5b8335612c3181613460565b92506020840135612c4181613460565b929592945050506040919091013590565b60008060008060808587031215612c6857600080fd5b8435612c7381613460565b93506020850135612c8381613460565b92506040850135915060608501356001600160401b03811115612ca557600080fd5b8501601f81018713612cb657600080fd5b612cc587823560208401612a4d565b91505092959194509250565b60008060408385031215612ce457600080fd5b8235612cef81613460565b91506020830135612c0681613475565b60008060408385031215612d1257600080fd5b8235612d1d81613460565b946020939093013593505050565b600060208284031215612d3d57600080fd5b8135612b9881613475565b600060208284031215612d5a57600080fd5b8151612b9881613475565b600060208284031215612d7757600080fd5b8135612b9881613483565b600060208284031215612d9457600080fd5b8151612b9881613483565b600060208284031215612db157600080fd5b81356001600160401b03811115612dc757600080fd5b61293884828501612b78565b600080600060608486031215612de857600080fd5b83356001600160401b0380821115612dff57600080fd5b612e0b87838801612b78565b94506020860135915080821115612e2157600080fd5b612e2d87838801612aa4565b93506040860135915080821115612e4357600080fd5b50612e5086828701612aa4565b9150509250925092565b600060208284031215612e6c57600080fd5b5035919050565b600060208284031215612e8557600080fd5b5051919050565b600080600060408486031215612ea157600080fd5b8335925060208401356001600160401b03811115612ebe57600080fd5b612eca86828701612b30565b9497909650939450505050565b60008060008060008060008060c0898b031215612ef357600080fd5b8835975060208901356001600160401b0380821115612f1157600080fd5b612f1d8c838d01612b30565b9099509750879150612f3160408c01612b9f565b9650612f3f60608c01612b9f565b955060808b0135915080821115612f5557600080fd5b50612f628b828c01612b30565b90945092505060a0890135612f7681613460565b809150509295985092959890939650565b60008060408385031215612f9a57600080fd5b8235915060208301356001600160401b03811115612fb757600080fd5b612fc385828601612b78565b9150509250929050565b60008060408385031215612fe057600080fd5b612fe983612b9f565b915060208301356001600160401b03811115612fb757600080fd5b6000815180845260005b8181101561302a5760208185018101518683018201520161300e565b8181111561303c576000602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061308490830184613004565b9695505050505050565b6020808252825182820181905260009190848201906040850190845b818110156130c6578351835292840192918401916001016130aa565b50909695505050505050565b602081526000612b986020830184613004565b60208082526021908201527f4d414e414745523a205631204e4f4445206973207265736572766564206e616d6040820152606560f81b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252602c908201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860408201526b34b9ba32b73a103a37b5b2b760a11b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b6020808252601e908201527f4d657461205472616e736665727320617265206e6f7420616c6c6f7765640000604082015260600190565b602081526000825160a060208401526132e360c0840182613004565b90506020840151601f198483030160408501526133008282613004565b9150506040840151606084015260608401516001600160401b0380821660808601528060808701511660a086015250508091505092915050565b604051601f8201601f191681016001600160401b03811182821017156133625761336261344a565b604052919050565b6000821982111561337d5761337d613408565b500190565b600081600019048311821515161561339c5761339c613408565b500290565b6000828210156133b3576133b3613408565b500390565b600181811c908216806133cc57607f821691505b6020821081141561082f57634e487b7160e01b600052602260045260246000fd5b600060001982141561340157613401613408565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114611f3557600080fd5b8015158114611f3557600080fd5b6001600160e01b031981168114611f3557600080fdfea2646970667358221220136a617ae4df467792e8feae26b0baae05757abfc1c047c1c898a559dc963a7364736f6c63430008070033000000000000000000000000fd0c58f03c83d6960bb9dbfd45076d78df2f095d0000000000000000000000005867843f6c4d13a54f7565db8d31e716112bebfc0000000000000000000000004d80c0c467da74f684a2ee5ae3a5e9c96a754fcd