[ { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" }, { "internalType": "address", "name": "_lzEndpoint", "type": "address" }, { "internalType": "address", "name": "_delegate", "type": "address" }, { "internalType": "address", "name": "_uniswapRouter", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "allowance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientAllowance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC20InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC20InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC20InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" } ], "name": "ERC20InvalidSpender", "type": "error" }, { "inputs": [], "name": "InvalidDelegate", "type": "error" }, { "inputs": [], "name": "InvalidEndpointCall", "type": "error" }, { "inputs": [], "name": "InvalidLocalDecimals", "type": "error" }, { "inputs": [ { "internalType": "bytes", "name": "options", "type": "bytes" } ], "name": "InvalidOptions", "type": "error" }, { "inputs": [], "name": "LzTokenUnavailable", "type": "error" }, { "inputs": [ { "internalType": "uint32", "name": "eid", "type": "uint32" } ], "name": "NoPeer", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "msgValue", "type": "uint256" } ], "name": "NotEnoughNative", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "addr", "type": "address" } ], "name": "OnlyEndpoint", "type": "error" }, { "inputs": [ { "internalType": "uint32", "name": "eid", "type": "uint32" }, { "internalType": "bytes32", "name": "sender", "type": "bytes32" } ], "name": "OnlyPeer", "type": "error" }, { "inputs": [], "name": "OnlySelf", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "SafeERC20FailedOperation", "type": "error" }, { "inputs": [ { "internalType": "bytes", "name": "result", "type": "bytes" } ], "name": "SimulationResult", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "amountLD", "type": "uint256" }, { "internalType": "uint256", "name": "minAmountLD", "type": "uint256" } ], "name": "SlippageExceeded", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" } ], "name": "ContractDeployed", "type": "event" }, { "anonymous": false, "inputs": [ { "components": [ { "internalType": "uint32", "name": "eid", "type": "uint32" }, { "internalType": "uint16", "name": "msgType", "type": "uint16" }, { "internalType": "bytes", "name": "options", "type": "bytes" } ], "indexed": false, "internalType": "struct EnforcedOptionParam[]", "name": "_enforcedOptions", "type": "tuple[]" } ], "name": "EnforcedOptionSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amountTokenA", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amountTokenB", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "liquidity", "type": "uint256" } ], "name": "LiquidityCreatedAndBurned", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "inspector", "type": "address" } ], "name": "MsgInspectorSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "guid", "type": "bytes32" }, { "indexed": false, "internalType": "uint32", "name": "srcEid", "type": "uint32" }, { "indexed": true, "internalType": "address", "name": "toAddress", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amountReceivedLD", "type": "uint256" } ], "name": "OFTReceived", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "guid", "type": "bytes32" }, { "indexed": false, "internalType": "uint32", "name": "dstEid", "type": "uint32" }, { "indexed": true, "internalType": "address", "name": "fromAddress", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amountSentLD", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amountReceivedLD", "type": "uint256" } ], "name": "OFTSent", "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": false, "internalType": "uint32", "name": "eid", "type": "uint32" }, { "indexed": false, "internalType": "bytes32", "name": "peer", "type": "bytes32" } ], "name": "PeerSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "preCrimeAddress", "type": "address" } ], "name": "PreCrimeSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "BURN_ADDRESS", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PURCHASE_LIMIT_DURATION", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "SEND", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "SEND_AND_CALL", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "TOTAL_SUPPLY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "WHITELIST_DURATION", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_addresses", "type": "address[]" } ], "name": "addEarlyAccesses", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "uint32", "name": "srcEid", "type": "uint32" }, { "internalType": "bytes32", "name": "sender", "type": "bytes32" }, { "internalType": "uint64", "name": "nonce", "type": "uint64" } ], "internalType": "struct Origin", "name": "origin", "type": "tuple" } ], "name": "allowInitializePath", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "approvalRequired", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "burnTax", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint32", "name": "_eid", "type": "uint32" }, { "internalType": "uint16", "name": "_msgType", "type": "uint16" }, { "internalType": "bytes", "name": "_extraOptions", "type": "bytes" } ], "name": "combineOptions", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "communityRewardsTax", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimalConversionRate", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "devTreasury", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "earlyAccess", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "endpoint", "outputs": [ { "internalType": "contract ILayerZeroEndpointV2", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint32", "name": "eid", "type": "uint32" }, { "internalType": "uint16", "name": "msgType", "type": "uint16" } ], "name": "enforcedOptions", "outputs": [ { "internalType": "bytes", "name": "enforcedOption", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "gameDevTax", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "getAmountAfterTaxes", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "uint32", "name": "srcEid", "type": "uint32" }, { "internalType": "bytes32", "name": "sender", "type": "bytes32" }, { "internalType": "uint64", "name": "nonce", "type": "uint64" } ], "internalType": "struct Origin", "name": "", "type": "tuple" }, { "internalType": "bytes", "name": "", "type": "bytes" }, { "internalType": "address", "name": "_sender", "type": "address" } ], "name": "isComposeMsgSender", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint32", "name": "_eid", "type": "uint32" }, { "internalType": "bytes32", "name": "_peer", "type": "bytes32" } ], "name": "isPeer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isSetup", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "launchTime", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "uint32", "name": "srcEid", "type": "uint32" }, { "internalType": "bytes32", "name": "sender", "type": "bytes32" }, { "internalType": "uint64", "name": "nonce", "type": "uint64" } ], "internalType": "struct Origin", "name": "_origin", "type": "tuple" }, { "internalType": "bytes32", "name": "_guid", "type": "bytes32" }, { "internalType": "bytes", "name": "_message", "type": "bytes" }, { "internalType": "address", "name": "_executor", "type": "address" }, { "internalType": "bytes", "name": "_extraData", "type": "bytes" } ], "name": "lzReceive", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "components": [ { "components": [ { "internalType": "uint32", "name": "srcEid", "type": "uint32" }, { "internalType": "bytes32", "name": "sender", "type": "bytes32" }, { "internalType": "uint64", "name": "nonce", "type": "uint64" } ], "internalType": "struct Origin", "name": "origin", "type": "tuple" }, { "internalType": "uint32", "name": "dstEid", "type": "uint32" }, { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "bytes32", "name": "guid", "type": "bytes32" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "address", "name": "executor", "type": "address" }, { "internalType": "bytes", "name": "message", "type": "bytes" }, { "internalType": "bytes", "name": "extraData", "type": "bytes" } ], "internalType": "struct InboundPacket[]", "name": "_packets", "type": "tuple[]" } ], "name": "lzReceiveAndRevert", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "uint32", "name": "srcEid", "type": "uint32" }, { "internalType": "bytes32", "name": "sender", "type": "bytes32" }, { "internalType": "uint64", "name": "nonce", "type": "uint64" } ], "internalType": "struct Origin", "name": "_origin", "type": "tuple" }, { "internalType": "bytes32", "name": "_guid", "type": "bytes32" }, { "internalType": "bytes", "name": "_message", "type": "bytes" }, { "internalType": "address", "name": "_executor", "type": "address" }, { "internalType": "bytes", "name": "_extraData", "type": "bytes" } ], "name": "lzReceiveSimulate", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "msgInspector", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint32", "name": "", "type": "uint32" }, { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "name": "nextNonce", "outputs": [ { "internalType": "uint64", "name": "nonce", "type": "uint64" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "oApp", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "oAppVersion", "outputs": [ { "internalType": "uint64", "name": "senderVersion", "type": "uint64" }, { "internalType": "uint64", "name": "receiverVersion", "type": "uint64" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "oftVersion", "outputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" }, { "internalType": "uint64", "name": "version", "type": "uint64" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "ownedLimit", "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": "uint32", "name": "eid", "type": "uint32" } ], "name": "peers", "outputs": [ { "internalType": "bytes32", "name": "peer", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "preCrime", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "purchaseAmounts", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "uint32", "name": "dstEid", "type": "uint32" }, { "internalType": "bytes32", "name": "to", "type": "bytes32" }, { "internalType": "uint256", "name": "amountLD", "type": "uint256" }, { "internalType": "uint256", "name": "minAmountLD", "type": "uint256" }, { "internalType": "bytes", "name": "extraOptions", "type": "bytes" }, { "internalType": "bytes", "name": "composeMsg", "type": "bytes" }, { "internalType": "bytes", "name": "oftCmd", "type": "bytes" } ], "internalType": "struct SendParam", "name": "_sendParam", "type": "tuple" } ], "name": "quoteOFT", "outputs": [ { "components": [ { "internalType": "uint256", "name": "minAmountLD", "type": "uint256" }, { "internalType": "uint256", "name": "maxAmountLD", "type": "uint256" } ], "internalType": "struct OFTLimit", "name": "oftLimit", "type": "tuple" }, { "components": [ { "internalType": "int256", "name": "feeAmountLD", "type": "int256" }, { "internalType": "string", "name": "description", "type": "string" } ], "internalType": "struct OFTFeeDetail[]", "name": "oftFeeDetails", "type": "tuple[]" }, { "components": [ { "internalType": "uint256", "name": "amountSentLD", "type": "uint256" }, { "internalType": "uint256", "name": "amountReceivedLD", "type": "uint256" } ], "internalType": "struct OFTReceipt", "name": "oftReceipt", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "uint32", "name": "dstEid", "type": "uint32" }, { "internalType": "bytes32", "name": "to", "type": "bytes32" }, { "internalType": "uint256", "name": "amountLD", "type": "uint256" }, { "internalType": "uint256", "name": "minAmountLD", "type": "uint256" }, { "internalType": "bytes", "name": "extraOptions", "type": "bytes" }, { "internalType": "bytes", "name": "composeMsg", "type": "bytes" }, { "internalType": "bytes", "name": "oftCmd", "type": "bytes" } ], "internalType": "struct SendParam", "name": "_sendParam", "type": "tuple" }, { "internalType": "bool", "name": "_payInLzToken", "type": "bool" } ], "name": "quoteSend", "outputs": [ { "components": [ { "internalType": "uint256", "name": "nativeFee", "type": "uint256" }, { "internalType": "uint256", "name": "lzTokenFee", "type": "uint256" } ], "internalType": "struct MessagingFee", "name": "msgFee", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "rewardsTreasury", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "uint32", "name": "dstEid", "type": "uint32" }, { "internalType": "bytes32", "name": "to", "type": "bytes32" }, { "internalType": "uint256", "name": "amountLD", "type": "uint256" }, { "internalType": "uint256", "name": "minAmountLD", "type": "uint256" }, { "internalType": "bytes", "name": "extraOptions", "type": "bytes" }, { "internalType": "bytes", "name": "composeMsg", "type": "bytes" }, { "internalType": "bytes", "name": "oftCmd", "type": "bytes" } ], "internalType": "struct SendParam", "name": "_sendParam", "type": "tuple" }, { "components": [ { "internalType": "uint256", "name": "nativeFee", "type": "uint256" }, { "internalType": "uint256", "name": "lzTokenFee", "type": "uint256" } ], "internalType": "struct MessagingFee", "name": "_fee", "type": "tuple" }, { "internalType": "address", "name": "_refundAddress", "type": "address" } ], "name": "send", "outputs": [ { "components": [ { "internalType": "bytes32", "name": "guid", "type": "bytes32" }, { "internalType": "uint64", "name": "nonce", "type": "uint64" }, { "components": [ { "internalType": "uint256", "name": "nativeFee", "type": "uint256" }, { "internalType": "uint256", "name": "lzTokenFee", "type": "uint256" } ], "internalType": "struct MessagingFee", "name": "fee", "type": "tuple" } ], "internalType": "struct MessagingReceipt", "name": "msgReceipt", "type": "tuple" }, { "components": [ { "internalType": "uint256", "name": "amountSentLD", "type": "uint256" }, { "internalType": "uint256", "name": "amountReceivedLD", "type": "uint256" } ], "internalType": "struct OFTReceipt", "name": "oftReceipt", "type": "tuple" } ], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_delegate", "type": "address" } ], "name": "setDelegate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "uint32", "name": "eid", "type": "uint32" }, { "internalType": "uint16", "name": "msgType", "type": "uint16" }, { "internalType": "bytes", "name": "options", "type": "bytes" } ], "internalType": "struct EnforcedOptionParam[]", "name": "_enforcedOptions", "type": "tuple[]" } ], "name": "setEnforcedOptions", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_msgInspector", "type": "address" } ], "name": "setMsgInspector", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint32", "name": "_eid", "type": "uint32" }, { "internalType": "bytes32", "name": "_peer", "type": "bytes32" } ], "name": "setPeer", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_preCrime", "type": "address" } ], "name": "setPreCrime", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_pairToken", "type": "address" }, { "internalType": "uint256", "name": "_pairTokenAmount", "type": "uint256" }, { "internalType": "address", "name": "_devTreasury", "type": "address" }, { "internalType": "address", "name": "_rewardsTreasury", "type": "address" }, { "internalType": "uint256", "name": "_burnTax", "type": "uint256" }, { "internalType": "uint256", "name": "_gameDevTax", "type": "uint256" }, { "internalType": "uint256", "name": "_communityRewardsTax", "type": "uint256" } ], "name": "setupToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "sharedDecimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "token", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_value", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_from", "type": "address" }, { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "uniswapRouter", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" } ]
60c06040526200001b6064692a5a058fc295ed000000620003f4565b600b556012805460ff191690553480156200003557600080fd5b50604051620046be380380620046be8339810160408190526200005891620004fc565b84848484838360128484818181818e6001600160a01b0381166200009757604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b620000a28162000299565b506001600160a01b038083166080528116620000d157604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e190602401600060405180830381600087803b1580156200011957600080fd5b505af11580156200012e573d6000803e3d6000fd5b505050505050505062000146620002e960201b60201c565b60ff168360ff1610156200016d576040516301e9714b60e41b815260040160405180910390fd5b6200017a6006846200059e565b6200018790600a620006bd565b60a05250600891506200019d9050838262000765565b506009620001ac828262000765565b5050600e80546001600160a01b0319166001600160a01b0388169081179091556040805163c45a015560e01b815290519196506000955086945063c45a0155935060048082019350602092918290030181865afa15801562000212573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000238919062000831565b9050620002493084600019620002ee565b620002583082600019620002ee565b6040516001600160a01b038516907f8ffcdc15a283d706d38281f500270d8b5a656918f555de0913d7455e3e6bc1bf90600090a2505050505050506200084f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600690565b620002fd838383600162000302565b505050565b6001600160a01b0384166200032e5760405163e602df0560e01b8152600060048201526024016200008e565b6001600160a01b0383166200035a57604051634a1406b160e11b8152600060048201526024016200008e565b6001600160a01b0380851660009081526006602090815260408083209387168352929052208290558015620003d857826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051620003cf91815260200190565b60405180910390a35b50505050565b634e487b7160e01b600052601160045260246000fd5b6000826200041257634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200043f57600080fd5b81516001600160401b03808211156200045c576200045c62000417565b604051601f8301601f19908116603f0116810190828211818310171562000487576200048762000417565b8160405283815260209250866020858801011115620004a557600080fd5b600091505b83821015620004c95785820183015181830184015290820190620004aa565b6000602085830101528094505050505092915050565b80516001600160a01b0381168114620004f757600080fd5b919050565b600080600080600060a086880312156200051557600080fd5b85516001600160401b03808211156200052d57600080fd5b6200053b89838a016200042d565b965060208801519150808211156200055257600080fd5b5062000561888289016200042d565b9450506200057260408701620004df565b92506200058260608701620004df565b91506200059260808701620004df565b90509295509295909350565b60ff8281168282160390811115620005ba57620005ba620003de565b92915050565b600181815b8085111562000601578160001904821115620005e557620005e5620003de565b80851615620005f357918102915b93841c9390800290620005c5565b509250929050565b6000826200061a57506001620005ba565b816200062957506000620005ba565b81600181146200064257600281146200064d576200066d565b6001915050620005ba565b60ff841115620006615762000661620003de565b50506001821b620005ba565b5060208310610133831016604e8410600b841016171562000692575081810a620005ba565b6200069e8383620005c0565b8060001904821115620006b557620006b5620003de565b029392505050565b6000620006ce60ff84168362000609565b9392505050565b600181811c90821680620006ea57607f821691505b6020821081036200070b57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620002fd576000816000526020600020601f850160051c810160208610156200073c5750805b601f850160051c820191505b818110156200075d5782815560010162000748565b505050505050565b81516001600160401b0381111562000781576200078162000417565b6200079981620007928454620006d5565b8462000711565b602080601f831160018114620007d15760008415620007b85750858301515b600019600386901b1c1916600185901b1785556200075d565b600085815260208120601f198616915b828110156200080257888601518255948401946001909101908401620007e1565b5085821015620008215787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200084457600080fd5b620006ce82620004df565b60805160a051613e03620008bb600039600081816108aa015281816126ad01528181612729015261292d0152600081816106e501528181610d020152818161176401528181611ef40152818161225e01528181612a2501528181612b5f0152612c160152613e036000f3fe6080604052600436106103a25760003560e01c8063790ca413116101e7578063bb0b6a531161010d578063dd62ed3e116100a0578063fb10dffe1161006f578063fb10dffe14610b2d578063fc0c546a1461063e578063fccc281314610b4d578063ff7bd03d14610b6357600080fd5b8063dd62ed3e14610a6a578063ee2fe39314610ab0578063f04a67ae14610add578063f2fde38b14610b0d57600080fd5b8063c7c7f5b3116100dc578063c7c7f5b3146109f6578063ca5eb5e114610a17578063d045a0dc14610a37578063d424388514610a4a57600080fd5b8063bb0b6a5314610980578063bb1e9e35146109ad578063bc70b354146109c3578063bd815db0146109e357600080fd5b806395d89b4111610185578063b19ab07611610154578063b19ab07614610900578063b731ea0a14610920578063b7f583b714610940578063b98bd0701461096057600080fd5b806395d89b4114610883578063963efcaa146108985780639f68b964146108cc578063a9059cbb146108e057600080fd5b8063857749b0116101c1578063857749b01461081d57806388dd361b146108315780638da5cb5b14610847578063902d55a51461086557600080fd5b8063790ca413146107ac5780637d25a05e146107c257806382413eac146107fd57600080fd5b806334bd2201116102cc578063571b1f8a1161026a57806370a082311161023957806370a0823114610727578063715018a61461075d578063735de9f71461077257806378600a4f1461079257600080fd5b8063571b1f8a146106875780635a0dfe4d1461069c5780635e280f11146106d35780636fc1b31e1461070757600080fd5b8063431afe83116102a6578063431afe831461061e57806352ae28791461063e57806352de2b63146106515780635535d4611461066757600080fd5b806334bd2201146105bb5780633b6f743b146105d157806342966c68146105fe57600080fd5b806317442b7011610344578063222c784011610313578063222c78401461053957806323b872dd14610559578063313ce567146105795780633400288b1461059b57600080fd5b806317442b70146104cd57806318160ddd146104ef5780631d4eaead1461050e5780631f5e13341461052457600080fd5b8063111ecdad11610380578063111ecdad1461043157806313137d6514610469578063134d4f251461047e578063156a0d0f146104a657600080fd5b806306fdde03146103a7578063095ea7b3146103d25780630d35b41514610402575b600080fd5b3480156103b357600080fd5b506103bc610b83565b6040516103c99190612d8e565b60405180910390f35b3480156103de57600080fd5b506103f26103ed366004612db6565b610c15565b60405190151581526020016103c9565b34801561040e57600080fd5b5061042261041d366004612dfa565b610c2f565b6040516103c993929190612e2e565b34801561043d57600080fd5b50600454610451906001600160a01b031681565b6040516001600160a01b0390911681526020016103c9565b61047c610477366004612f21565b610d00565b005b34801561048a57600080fd5b50610493600281565b60405161ffff90911681526020016103c9565b3480156104b257600080fd5b506040805162b9270b60e21b815260016020820152016103c9565b3480156104d957600080fd5b50604080516001815260026020820152016103c9565b3480156104fb57600080fd5b506007545b6040519081526020016103c9565b34801561051a57600080fd5b50610500600f5481565b34801561053057600080fd5b50610493600181565b34801561054557600080fd5b5061047c610554366004613073565b610dc0565b34801561056557600080fd5b506103f2610574366004613106565b610e73565b34801561058557600080fd5b5060125b60405160ff90911681526020016103c9565b3480156105a757600080fd5b5061047c6105b6366004613160565b610fd6565b3480156105c757600080fd5b5061050060105481565b3480156105dd57600080fd5b506105f16105ec36600461318a565b610fe8565b6040516103c991906131db565b34801561060a57600080fd5b5061047c6106193660046131f2565b61104f565b34801561062a57600080fd5b506105006106393660046131f2565b61105f565b34801561064a57600080fd5b5030610451565b34801561065d57600080fd5b5061050061016881565b34801561067357600080fd5b506103bc61068236600461321d565b61114d565b34801561069357600080fd5b5061050060b481565b3480156106a857600080fd5b506103f26106b7366004613160565b63ffffffff919091166000908152600160205260409020541490565b3480156106df57600080fd5b506104517f000000000000000000000000000000000000000000000000000000000000000081565b34801561071357600080fd5b5061047c610722366004613250565b6111f2565b34801561073357600080fd5b50610500610742366004613250565b6001600160a01b031660009081526005602052604090205490565b34801561076957600080fd5b5061047c61124f565b34801561077e57600080fd5b50600e54610451906001600160a01b031681565b34801561079e57600080fd5b506012546103f29060ff1681565b3480156107b857600080fd5b50610500600a5481565b3480156107ce57600080fd5b506107e56107dd366004613160565b600092915050565b6040516001600160401b0390911681526020016103c9565b34801561080957600080fd5b506103f261081836600461326d565b611263565b34801561082957600080fd5b506006610589565b34801561083d57600080fd5b50610500600b5481565b34801561085357600080fd5b506000546001600160a01b0316610451565b34801561087157600080fd5b50610500692a5a058fc295ed00000081565b34801561088f57600080fd5b506103bc611278565b3480156108a457600080fd5b506105007f000000000000000000000000000000000000000000000000000000000000000081565b3480156108d857600080fd5b5060006103f2565b3480156108ec57600080fd5b506103f26108fb366004612db6565b611287565b34801561090c57600080fd5b50600c54610451906001600160a01b031681565b34801561092c57600080fd5b50600254610451906001600160a01b031681565b34801561094c57600080fd5b50600d54610451906001600160a01b031681565b34801561096c57600080fd5b5061047c61097b366004613317565b6113bd565b34801561098c57600080fd5b5061050061099b366004613358565b60016020526000908152604090205481565b3480156109b957600080fd5b5061050060115481565b3480156109cf57600080fd5b506103bc6109de366004613373565b6113d7565b61047c6109f1366004613317565b61157f565b610a09610a043660046133d3565b611709565b6040516103c9929190613440565b348015610a2357600080fd5b5061047c610a32366004613250565b61173d565b61047c610a45366004612f21565b6117c3565b348015610a5657600080fd5b5061047c610a65366004613250565b6117f2565b348015610a7657600080fd5b50610500610a85366004613492565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b348015610abc57600080fd5b50610500610acb366004613250565b60146020526000908152604090205481565b348015610ae957600080fd5b506103f2610af8366004613250565b60136020526000908152604090205460ff1681565b348015610b1957600080fd5b5061047c610b28366004613250565b611848565b348015610b3957600080fd5b5061047c610b483660046134c0565b611883565b348015610b5957600080fd5b5061045161dead81565b348015610b6f57600080fd5b506103f2610b7e36600461352e565b611d9f565b606060088054610b929061354a565b80601f0160208091040260200160405190810160405280929190818152602001828054610bbe9061354a565b8015610c0b5780601f10610be057610100808354040283529160200191610c0b565b820191906000526020600020905b815481529060010190602001808311610bee57829003601f168201915b5050505050905090565b600033610c23818585611dd5565b60019150505b92915050565b60408051808201909152600080825260208201526060610c62604051806040016040528060008152602001600081525090565b60408051808201825260008082526001600160401b03602080840182905284518381529081019094529195509182610cbd565b604080518082019091526000815260606020820152815260200190600190039081610c955790505b509350600080610ce2604089013560608a0135610cdd60208c018c613358565b611de7565b60408051808201909152918252602082015296989597505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610d50576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b60208701803590610d6a90610d65908a613358565b611e23565b14610da857610d7c6020880188613358565b60405163309afaf360e21b815263ffffffff909116600482015260208801356024820152604401610d47565b610db787878787878787611e5f565b50505050505050565b610dc8611fc6565b60125460ff1615610e115760405162461bcd60e51b81526020600482015260136024820152720546f6b656e20616c726561647920736574757606c1b6044820152606401610d47565b60005b8151811015610e6f57600160136000848481518110610e3557610e3561357e565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101610e14565b5050565b600060b4600a54610e8491906135aa565b42101580610ea157503360009081526013602052604090205460ff165b610ee95760405162461bcd60e51b8152602060048201526019602482015278151c985b9cd9995c9cc81b9bdd08185b1b1bddd959081e595d603a1b6044820152606401610d47565b601254829060ff168015610f0c575042610168600a54610f0991906135aa565b10155b15610f9b57600b5433600090815260146020526040902054610f2f9083906135aa565b1115610f765760405162461bcd60e51b8152602060048201526016602482015275141d5c98da185cd9481b1a5b5a5d081c995858da195960521b6044820152606401610d47565b3360009081526014602052604081208054839290610f959084906135aa565b90915550505b336001600160a01b0386168114610fb757610fb7868286611ff3565b610fca8686610fc58761105f565b612071565b50600195945050505050565b610fde611fc6565b610e6f82826120d0565b6040805180820190915260008082526020820152600061101860408501356060860135610cdd6020880188613358565b9150506000806110288684612125565b909250905061104561103d6020880188613358565b838388612248565b9695505050505050565b61105c3361dead83612071565b50565b60125460009060ff16611070575090565b600f546000901561109957612710600f548461108c91906135bd565b61109691906135d4565b90505b601054600090156110c257612710601054856110b591906135bd565b6110bf91906135d4565b90505b601154600090156110eb57612710601154866110de91906135bd565b6110e891906135d4565b90505b6110f83361dead85612071565b61110e33600c546001600160a01b031684612071565b61112433600d546001600160a01b031683612071565b808261113085886135f6565b61113a91906135f6565b61114491906135f6565b95945050505050565b6003602090815260009283526040808420909152908252902080546111719061354a565b80601f016020809104026020016040519081016040528092919081815260200182805461119d9061354a565b80156111ea5780601f106111bf576101008083540402835291602001916111ea565b820191906000526020600020905b8154815290600101906020018083116111cd57829003601f168201915b505050505081565b6111fa611fc6565b600480546001600160a01b0319166001600160a01b0383169081179091556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a150565b611257611fc6565b6112616000612320565b565b6001600160a01b03811630145b949350505050565b606060098054610b929061354a565b600060b4600a5461129891906135aa565b421015806112b557503360009081526013602052604090205460ff165b6112fd5760405162461bcd60e51b8152602060048201526019602482015278151c985b9cd9995c9cc81b9bdd08185b1b1bddd959081e595d603a1b6044820152606401610d47565b601254829060ff168015611320575042610168600a5461131d91906135aa565b10155b156113af57600b54336000908152601460205260409020546113439083906135aa565b111561138a5760405162461bcd60e51b8152602060048201526016602482015275141d5c98da185cd9481b1a5b5a5d081c995858da195960521b6044820152606401610d47565b33600090815260146020526040812080548392906113a99084906135aa565b90915550505b610c233385610fc58661105f565b6113c5611fc6565b610e6f6113d28284613630565b612370565b63ffffffff8416600090815260036020908152604080832061ffff8716845290915281208054606092919061140b9061354a565b80601f01602080910402602001604051908101604052809291908181526020018280546114379061354a565b80156114845780601f1061145957610100808354040283529160200191611484565b820191906000526020600020905b81548152906001019060200180831161146757829003601f168201915b5050505050905080516000036114d45783838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509294506112709350505050565b60008390036114e4579050611270565b600283106115625761152b84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061247792505050565b806115398460028188613739565b60405160200161154b93929190613763565b604051602081830303815290604052915050611270565b8383604051639a6d49cd60e01b8152600401610d479291906137b4565b60005b81811015611688573683838381811061159d5761159d61357e565b90506020028101906115af91906137c8565b90506115e26115c16020830183613358565b602083013563ffffffff919091166000908152600160205260409020541490565b6115ec5750611680565b3063d045a0dc60c08301358360a081013561160b6101008301836137e9565b61161c610100890160e08a01613250565b61162a6101208a018a6137e9565b6040518963ffffffff1660e01b815260040161164c9796959493929190613844565b6000604051808303818588803b15801561166557600080fd5b505af1158015611679573d6000803e3d6000fd5b5050505050505b600101611582565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa1580156116c7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526116ef91908101906138ca565b604051638351eea760e01b8152600401610d479190612d8e565b611711612cf7565b60408051808201909152600080825260208201526117308585856124a3565b915091505b935093915050565b611745611fc6565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b1580156117a857600080fd5b505af11580156117bc573d6000803e3d6000fd5b5050505050565b3330146117e35760405163029a949d60e31b815260040160405180910390fd5b610db787878787878787610da8565b6117fa611fc6565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001611244565b611850611fc6565b6001600160a01b03811661187a57604051631e4fbdf760e01b815260006004820152602401610d47565b61105c81612320565b61188b611fc6565b86866001600160a01b0382166323b872dd336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604481018490526064016020604051808303816000875af11580156118f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119149190613937565b50600e546040805163c45a015560e01b815290516001600160a01b0390921691600091839163c45a0155916004808201926020929091908290030181865afa158015611964573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119889190613954565b60405163e6a4390560e01b81523060048201526001600160a01b03868116602483015291925060009183169063e6a4390590604401602060405180830381865afa1580156119da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119fe9190613954565b90506001600160a01b038116611a475760405162461bcd60e51b815260206004820152600e60248201526d14185a5c881b9bdd08199bdd5b9960921b6044820152606401610d47565b611a5b30692a5a058fc295ed00000061259e565b60405163095ea7b360e01b81526001600160a01b038481166004830152600019602483015286169063095ea7b3906044016020604051808303816000875af1158015611aab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611acf9190613937565b5060405163095ea7b360e01b81526001600160a01b038381166004830152600019602483015286169063095ea7b3906044016020604051808303816000875af1158015611b20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b449190613937565b50600080806001600160a01b03861663e8e33700308a692a5a058fc295ed0000008b6064611b7383605a6135bd565b611b7d91906135d4565b6064611b8a8f605a6135bd565b611b9491906135d4565b30611ba142610a8c6135aa565b60405160e08a901b6001600160e01b03191681526001600160a01b039889166004820152968816602488015260448701959095526064860193909352608485019190915260a484015290921660c482015260e4810191909152610104016060604051808303816000875af1158015611c1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c419190613971565b60405163a9059cbb60e01b815261dead60048201526024810182905292955090935091506001600160a01b0385169063a9059cbb906044016020604051808303816000875af1158015611c98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cbc9190613937565b5042600a819055506001601260006101000a81548160ff0219169083151502179055508c600c60006101000a8154816001600160a01b0302191690836001600160a01b031602179055508b600d60006101000a8154816001600160a01b0302191690836001600160a01b031602179055508a600f8190555089601081905550886011819055507ff47525d5a7d5ff6062f59d35ab70308a0d359633f60da34b52812bb6e194792a838383604051611d86939291909283526020830191909152604082015260600190565b60405180910390a1505050505050505050505050505050565b6000602082018035906001908390611db79086613358565b63ffffffff1681526020810191909152604001600020541492915050565b611de283838360016125d4565b505050565b600080611df3856126a9565b915081905083811015611735576040516371c4efed60e01b81526004810182905260248101859052604401610d47565b63ffffffff811660009081526001602052604081205480610c295760405163f6ff4fb760e01b815263ffffffff84166004820152602401610d47565b6000611e71611e6e87876126e0565b90565b90506000611e9d82611e8b611e868a8a6126ff565b612722565b611e9860208d018d613358565b612757565b90506028861115611f64576000611eda611ebd60608c0160408d0161399f565b611eca60208d018d613358565b84611ed58c8c61277f565b6127ca565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb5901290611f309086908d9060009087906004016139bc565b600060405180830381600087803b158015611f4a57600080fd5b505af1158015611f5e573d6000803e3d6000fd5b50505050505b6001600160a01b038216887fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c611f9d60208d018d613358565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b6000546001600160a01b031633146112615760405163118cdaa760e01b8152336004820152602401610d47565b6001600160a01b03838116600090815260066020908152604080832093861683529290522054600019811461206b578181101561205c57604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610d47565b61206b848484840360006125d4565b50505050565b6001600160a01b03831661209b57604051634b637e8f60e11b815260006004820152602401610d47565b6001600160a01b0382166120c55760405163ec442f0560e01b815260006004820152602401610d47565b611de28383836127fc565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b6060806000612182856020013561213b86612926565b61214860a08901896137e9565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061295292505050565b9093509050600081612195576001612198565b60025b90506121b86121aa6020880188613358565b826109de60808a018a6137e9565b6004549093506001600160a01b0316801561223e5760405163043a78eb60e01b81526001600160a01b0382169063043a78eb906121fb90889088906004016139ed565b602060405180830381865afa158015612218573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061223c9190613937565b505b5050509250929050565b60408051808201909152600080825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff1681526020016122ab89611e23565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b81526004016122e0929190613a12565b6040805180830381865afa1580156122fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111449190613abb565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60005b8151811015612447576123a28282815181106123915761239161357e565b602002602001015160400151612477565b8181815181106123b4576123b461357e565b602002602001015160400151600360008484815181106123d6576123d661357e565b60200260200101516000015163ffffffff1663ffffffff16815260200190815260200160002060008484815181106124105761241061357e565b60200260200101516020015161ffff1661ffff168152602001908152602001600020908161243e9190613b27565b50600101612373565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b674816040516112449190613be6565b600281015161ffff8116600314610e6f5781604051639a6d49cd60e01b8152600401610d479190612d8e565b6124ab612cf7565b60408051808201909152600080825260208201526000806124e233604089013560608a01356124dd60208c018c613358565b6129cc565b915091506000806124f38984612125565b909250905061251f61250860208b018b613358565b8383612519368d90038d018d613c71565b8b6129f2565b60408051808201909152858152602080820186905282519298509096503391907f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a9061256d908d018d613358565b6040805163ffffffff909216825260208201899052810187905260600160405180910390a350505050935093915050565b6001600160a01b0382166125c85760405163ec442f0560e01b815260006004820152602401610d47565b610e6f600083836127fc565b6001600160a01b0384166125fe5760405163e602df0560e01b815260006004820152602401610d47565b6001600160a01b03831661262857604051634a1406b160e11b815260006004820152602401610d47565b6001600160a01b038085166000908152600660209081526040808320938716835292905220829055801561206b57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161269b91815260200190565b60405180910390a350505050565b60007f00000000000000000000000000000000000000000000000000000000000000006126d681846135d4565b610c2991906135bd565b60006126ef6020828486613739565b6126f891613ca3565b9392505050565b600061270f602860208486613739565b61271891613cc1565b60c01c9392505050565b6000610c297f00000000000000000000000000000000000000000000000000000000000000006001600160401b0384166135bd565b60006001600160a01b03841661276d5761dead93505b612777848461259e565b509092915050565b606061278e8260288186613739565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929695505050505050565b6060848484846040516020016127e39493929190613cf1565b6040516020818303038152906040529050949350505050565b6001600160a01b03831661282757806007600082825461281c91906135aa565b909155506128999050565b6001600160a01b0383166000908152600560205260409020548181101561287a5760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610d47565b6001600160a01b03841660009081526005602052604090209082900390555b6001600160a01b0382166128b5576007805482900390556128d4565b6001600160a01b03821660009081526005602052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161291991815260200190565b60405180910390a3505050565b6000610c297f0000000000000000000000000000000000000000000000000000000000000000836135d4565b805160609015158061299b57848460405160200161298792919091825260c01b6001600160c01b031916602082015260280190565b6040516020818303038152906040526129c2565b848433856040516020016129b29493929190613d40565b6040516020818303038152906040525b9150935093915050565b6000806129da858585611de7565b90925090506129e98683612afd565b94509492505050565b6129fa612cf7565b6000612a098460000151612b33565b602085015190915015612a2357612a238460200151612b5b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff168152602001612a738c611e23565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b8152600401612aaf929190613a12565b60806040518083038185885af1158015612acd573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612af29190613d83565b979650505050505050565b6001600160a01b038216612b2757604051634b637e8f60e11b815260006004820152602401610d47565b610e6f826000836127fc565b6000813414612b57576040516304fb820960e51b8152346004820152602401610d47565b5090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015612bbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bdf9190613954565b90506001600160a01b038116612c08576040516329b99a9560e11b815260040160405180910390fd5b6040805133602482018190527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0381811660448501526064808501889052855180860390910181526084909401909452602080840180516001600160e01b03166323b872dd60e01b1781528451610e6f96881695899361206b93889360009283929091839182885af180612ca9576040513d6000823e3d81fd5b50506000513d91508115612cc1578060011415612cce565b6001600160a01b0384163b155b1561206b57604051635274afe760e01b81526001600160a01b0385166004820152602401610d47565b60405180606001604052806000801916815260200160006001600160401b03168152602001612d39604051806040016040528060008152602001600081525090565b905290565b60005b83811015612d59578181015183820152602001612d41565b50506000910152565b60008151808452612d7a816020860160208601612d3e565b601f01601f19169290920160200192915050565b6020815260006126f86020830184612d62565b6001600160a01b038116811461105c57600080fd5b60008060408385031215612dc957600080fd5b8235612dd481612da1565b946020939093013593505050565b600060e08284031215612df457600080fd5b50919050565b600060208284031215612e0c57600080fd5b81356001600160401b03811115612e2257600080fd5b61127084828501612de2565b8351815260208085015190820152600060a08201604060a0604085015281865180845260c08601915060c08160051b8701019350602080890160005b83811015612ea95788870360bf19018552815180518852830151838801879052612e9687890182612d62565b9750509382019390820190600101612e6a565b50508751606088015250505060208501516080850152509050611270565b600060608284031215612df457600080fd5b60008083601f840112612eeb57600080fd5b5081356001600160401b03811115612f0257600080fd5b602083019150836020828501011115612f1a57600080fd5b9250929050565b600080600080600080600060e0888a031215612f3c57600080fd5b612f468989612ec7565b96506060880135955060808801356001600160401b0380821115612f6957600080fd5b612f758b838c01612ed9565b909750955060a08a01359150612f8a82612da1565b90935060c08901359080821115612fa057600080fd5b50612fad8a828b01612ed9565b989b979a50959850939692959293505050565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b0381118282101715612ff857612ff8612fc0565b60405290565b604080519081016001600160401b0381118282101715612ff857612ff8612fc0565b604051601f8201601f191681016001600160401b038111828210171561304857613048612fc0565b604052919050565b60006001600160401b0382111561306957613069612fc0565b5060051b60200190565b6000602080838503121561308657600080fd5b82356001600160401b0381111561309c57600080fd5b8301601f810185136130ad57600080fd5b80356130c06130bb82613050565b613020565b81815260059190911b820183019083810190878311156130df57600080fd5b928401925b82841015612af25783356130f781612da1565b825292840192908401906130e4565b60008060006060848603121561311b57600080fd5b833561312681612da1565b9250602084013561313681612da1565b929592945050506040919091013590565b803563ffffffff8116811461315b57600080fd5b919050565b6000806040838503121561317357600080fd5b612dd483613147565b801515811461105c57600080fd5b6000806040838503121561319d57600080fd5b82356001600160401b038111156131b357600080fd5b6131bf85828601612de2565b92505060208301356131d08161317c565b809150509250929050565b815181526020808301519082015260408101610c29565b60006020828403121561320457600080fd5b5035919050565b803561ffff8116811461315b57600080fd5b6000806040838503121561323057600080fd5b61323983613147565b91506132476020840161320b565b90509250929050565b60006020828403121561326257600080fd5b81356126f881612da1565b60008060008060a0858703121561328357600080fd5b61328d8686612ec7565b935060608501356001600160401b038111156132a857600080fd5b6132b487828801612ed9565b90945092505060808501356132c881612da1565b939692955090935050565b60008083601f8401126132e557600080fd5b5081356001600160401b038111156132fc57600080fd5b6020830191508360208260051b8501011115612f1a57600080fd5b6000806020838503121561332a57600080fd5b82356001600160401b0381111561334057600080fd5b61334c858286016132d3565b90969095509350505050565b60006020828403121561336a57600080fd5b6126f882613147565b6000806000806060858703121561338957600080fd5b61339285613147565b93506133a06020860161320b565b925060408501356001600160401b038111156133bb57600080fd5b6133c787828801612ed9565b95989497509550505050565b600080600083850360808112156133e957600080fd5b84356001600160401b038111156133ff57600080fd5b61340b87828801612de2565b9450506040601f198201121561342057600080fd5b50602084019150606084013561343581612da1565b809150509250925092565b600060c082019050835182526001600160401b036020850151166020830152604084015161347b604084018280518252602090810151910152565b5082516080830152602083015160a08301526126f8565b600080604083850312156134a557600080fd5b82356134b081612da1565b915060208301356131d081612da1565b600080600080600080600060e0888a0312156134db57600080fd5b87356134e681612da1565b96506020880135955060408801356134fd81612da1565b9450606088013561350d81612da1565b9699959850939660808101359560a0820135955060c0909101359350915050565b60006060828403121561354057600080fd5b6126f88383612ec7565b600181811c9082168061355e57607f821691505b602082108103612df457634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115610c2957610c29613594565b8082028115828204841417610c2957610c29613594565b6000826135f157634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610c2957610c29613594565b60006001600160401b0382111561362257613622612fc0565b50601f01601f191660200190565b600061363e6130bb84613050565b80848252602080830192508560051b85013681111561365c57600080fd5b855b8181101561372d5780356001600160401b038082111561367e5760008081fd5b8189019150606082360312156136945760008081fd5b61369c612fd6565b6136a583613147565b81526136b286840161320b565b86820152604080840135838111156136ca5760008081fd5b939093019236601f8501126136e157600092508283fd5b833592506136f16130bb84613609565b83815236888587010111156137065760008081fd5b8388860189830137600093810188019390935281019190915286525093820193820161365e565b50919695505050505050565b6000808585111561374957600080fd5b8386111561375657600080fd5b5050820193919092039150565b60008451613775818460208901612d3e565b8201838582376000930192835250909392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60208152600061127060208301848661378b565b6000823561013e198336030181126137df57600080fd5b9190910192915050565b6000808335601e1984360301811261380057600080fd5b8301803591506001600160401b0382111561381a57600080fd5b602001915036819003821315612f1a57600080fd5b6001600160401b038116811461105c57600080fd5b63ffffffff61385289613147565b168152602088013560208201526000604089013561386f8161382f565b6001600160401b03811660408401525087606083015260e0608083015261389a60e08301878961378b565b6001600160a01b03861660a084015282810360c08401526138bc81858761378b565b9a9950505050505050505050565b6000602082840312156138dc57600080fd5b81516001600160401b038111156138f257600080fd5b8201601f8101841361390357600080fd5b80516139116130bb82613609565b81815285602083850101111561392657600080fd5b611144826020830160208601612d3e565b60006020828403121561394957600080fd5b81516126f88161317c565b60006020828403121561396657600080fd5b81516126f881612da1565b60008060006060848603121561398657600080fd5b8351925060208401519150604084015190509250925092565b6000602082840312156139b157600080fd5b81356126f88161382f565b60018060a01b038516815283602082015261ffff831660408201526080606082015260006110456080830184612d62565b604081526000613a006040830185612d62565b82810360208401526111448185612d62565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a06080840152613a4860e0840182612d62565b90506060850151603f198483030160a0850152613a658282612d62565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b600060408284031215613a9d57600080fd5b613aa5612ffe565b9050815181526020820151602082015292915050565b600060408284031215613acd57600080fd5b6126f88383613a8b565b601f821115611de2576000816000526020600020601f850160051c81016020861015613b005750805b601f850160051c820191505b81811015613b1f57828155600101613b0c565b505050505050565b81516001600160401b03811115613b4057613b40612fc0565b613b5481613b4e845461354a565b84613ad7565b602080601f831160018114613b895760008415613b715750858301515b600019600386901b1c1916600185901b178555613b1f565b600085815260208120601f198616915b82811015613bb857888601518255948401946001909101908401613b99565b5085821015613bd65787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b83811015613c6357888303603f190185528151805163ffffffff1684528781015161ffff16888501528601516060878501819052613c4f81860183612d62565b968901969450505090860190600101613c0f565b509098975050505050505050565b600060408284031215613c8357600080fd5b613c8b612ffe565b82358152602083013560208201528091505092915050565b80356020831015610c2957600019602084900360031b1b1692915050565b6001600160c01b03198135818116916008851015613ce95780818660080360031b1b83161692505b505092915050565b6001600160401b0360c01b8560c01b16815263ffffffff60e01b8460e01b16600882015282600c82015260008251613d3081602c850160208701612d3e565b91909101602c0195945050505050565b8481526001600160401b0360c01b8460c01b16602082015282602882015260008251613d73816048850160208701612d3e565b9190910160480195945050505050565b600060808284031215613d9557600080fd5b613d9d612fd6565b825181526020830151613daf8161382f565b6020820152613dc18460408501613a8b565b6040820152939250505056fea26469706673582212204b8fe936ba3c927001d0f86316f3dc9b8987f1995907321e68925328a3b09c1464736f6c6343000816003300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000001a44076050125825900e736c501f859c50fe728c000000000000000000000000c856f7bcb20ee58f5788620b1261082829163dc40000000000000000000000004752ba5dbc23f44d87826276bf6fd6b1c372ad24000000000000000000000000000000000000000000000000000000000000000e4d696e6947616d6573546f6b656e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044d4f465400000000000000000000000000000000000000000000000000000000