[ { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" }, { "internalType": "address[]", "name": "premintAddresses", "type": "address[]" }, { "internalType": "uint256[]", "name": "premintValues", "type": "uint256[]" }, { "internalType": "address", "name": "_lzEndpoint", "type": "address" }, { "internalType": "address", "name": "_mproMasterDistributor", "type": "address" }, { "internalType": "address", "name": "_owner", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "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": "InvalidShortString", "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": "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" }, { "inputs": [ { "internalType": "string", "name": "str", "type": "string" } ], "name": "StringTooLong", "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": "delegator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "fromDelegate", "type": "address" }, { "indexed": true, "internalType": "address", "name": "toDelegate", "type": "address" } ], "name": "DelegateChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "delegate", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "previousBalance", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newBalance", "type": "uint256" } ], "name": "DelegateVotesChanged", "type": "event" }, { "anonymous": false, "inputs": [], "name": "EIP712DomainChanged", "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": "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": "CLOCK_MODE", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "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": [ { "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": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint32", "name": "pos", "type": "uint32" } ], "name": "checkpoints", "outputs": [ { "components": [ { "internalType": "uint32", "name": "fromBlock", "type": "uint32" }, { "internalType": "uint224", "name": "votes", "type": "uint224" } ], "internalType": "struct ERC20Votes.Checkpoint", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "clock", "outputs": [ { "internalType": "uint48", "name": "", "type": "uint48" } ], "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": "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": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "delegatee", "type": "address" } ], "name": "delegate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "delegatee", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "uint256", "name": "expiry", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "delegateBySig", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "delegates", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "eip712Domain", "outputs": [ { "internalType": "bytes1", "name": "fields", "type": "bytes1" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "version", "type": "string" }, { "internalType": "uint256", "name": "chainId", "type": "uint256" }, { "internalType": "address", "name": "verifyingContract", "type": "address" }, { "internalType": "bytes32", "name": "salt", "type": "bytes32" }, { "internalType": "uint256[]", "name": "extensions", "type": "uint256[]" } ], "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": [ { "internalType": "uint256", "name": "timepoint", "type": "uint256" } ], "name": "getPastTotalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "timepoint", "type": "uint256" } ], "name": "getPastVotes", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "getVotes", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": [ { "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": "maxCap", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "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": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "numCheckpoints", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "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": "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": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "permit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "preCrime", "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" } ], "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": [ { "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": [], "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" } ]
6101a06040523480156200001257600080fd5b506040516200623c3803806200623c833981016040819052620000359162000c72565b8680604051806040016040528060018152602001603160f81b81525089898786838362000067620002d960201b60201c565b8484818181816200007833620002de565b6001600160a01b038083166080528116620000a657604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e190602401600060405180830381600087803b158015620000ee57600080fd5b505af115801562000103573d6000803e3d6000fd5b50505050505050506200011b6200032e60201b60201c565b60ff168360ff16101562000142576040516301e9714b60e41b815260040160405180910390fd5b6200014f60068462000d79565b6200015c90600a62000e92565b60a0525060089150620001729050838262000f33565b50600962000181828262000f33565b50620001999550879450600a93505062000333915050565b61016052620001aa81600b62000333565b61018052815160208084019190912061012052815190820120610140524660e0526200023a6101205161014051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60c052505030610100525060005b8551811015620002a5576200029c8682815181106200026b576200026b62000fff565b602002602001015186838151811062000288576200028862000fff565b60200260200101516200036c60201b60201c565b60010162000248565b50601180546001600160a01b0319166001600160a01b038416179055620002cc81620002de565b505050505050506200109b565b601290565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600690565b600060208351101562000353576200034b836200037c565b905062000366565b8162000360848262000f33565b5060ff90505b92915050565b620003788282620003c8565b5050565b600080829050601f81511115620003b3578260405163305a27a960e01b8152600401620003aa919062001015565b60405180910390fd5b8051620003c0826200104a565b179392505050565b620003d4828262000470565b6001600160e01b03620003e86200054d8216565b1115620004515760405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201526f766572666c6f77696e6720766f74657360801b6064820152608401620003aa565b6200046a601062001f3a6200055360201b178362000568565b50505050565b6001600160a01b038216620004c85760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620003aa565b620004d660008383620006f0565b8060076000828254620004ea91906200106f565b90915550506001600160a01b0382166000818152600560209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000378600083836200078b565b60075490565b60006200056182846200106f565b9392505050565b82546000908190818115620005b75760008781526020902082016000190160408051808201909152905463ffffffff8116825264010000000090046001600160e01b03166020820152620005cc565b60408051808201909152600080825260208201525b905080602001516001600160e01b03169350620005ea84868860201c565b92506000821180156200061757506200060262000798565b65ffffffffffff16816000015163ffffffff16145b1562000660576200062883620007aa565b60008881526020902083016000190180546001600160e01b03929092166401000000000263ffffffff909216919091179055620006e6565b8660405180604001604052806200068e620006806200079860201b60201c565b65ffffffffffff1662000819565b63ffffffff168152602001620006a486620007aa565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b5050935093915050565b6001600160a01b03831662000773576b019d971e4fe8401e74000000816200071760075490565b6200072391906200106f565b1115620007735760405162461bcd60e51b815260206004820152601960248201527f45524332304361707065643a20636170206578636565646564000000000000006044820152606401620003aa565b620007868383836001600160e01b038416565b505050565b6200078683838362000880565b6000620007a543620008b4565b905090565b60006001600160e01b03821115620008155760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b6064820152608401620003aa565b5090565b600063ffffffff821115620008155760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401620003aa565b6001600160a01b038381166000908152600e602052604080822054858416835291205462000786929182169116836200091d565b600065ffffffffffff821115620008155760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b6064820152608401620003aa565b816001600160a01b0316836001600160a01b031614158015620009405750600081115b1562000786576001600160a01b03831615620009cd576001600160a01b0383166000908152600f60209081526040822082916200098a919062000a58901b62001f46178562000568565b91509150846001600160a01b03166000805160206200621c8339815191528383604051620009c2929190918252602082015260400190565b60405180910390a250505b6001600160a01b0382161562000786576001600160a01b0382166000908152600f602090815260408220829162000a11919062000553901b62001f3a178562000568565b91509150836001600160a01b03166000805160206200621c833981519152838360405162000a49929190918252602082015260400190565b60405180910390a25050505050565b600062000561828462001085565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171562000aa75762000aa762000a66565b604052919050565b60005b8381101562000acc57818101518382015260200162000ab2565b50506000910152565b600082601f83011262000ae757600080fd5b81516001600160401b0381111562000b035762000b0362000a66565b62000b18601f8201601f191660200162000a7c565b81815284602083860101111562000b2e57600080fd5b62000b4182602083016020870162000aaf565b949350505050565b60006001600160401b0382111562000b655762000b6562000a66565b5060051b60200190565b80516001600160a01b038116811462000b8757600080fd5b919050565b600082601f83011262000b9e57600080fd5b8151602062000bb762000bb18362000b49565b62000a7c565b8083825260208201915060208460051b87010193508684111562000bda57600080fd5b602086015b8481101562000c015762000bf38162000b6f565b835291830191830162000bdf565b509695505050505050565b600082601f83011262000c1e57600080fd5b8151602062000c3162000bb18362000b49565b8083825260208201915060208460051b87010193508684111562000c5457600080fd5b602086015b8481101562000c01578051835291830191830162000c59565b600080600080600080600060e0888a03121562000c8e57600080fd5b87516001600160401b038082111562000ca657600080fd5b62000cb48b838c0162000ad5565b985060208a015191508082111562000ccb57600080fd5b62000cd98b838c0162000ad5565b975060408a015191508082111562000cf057600080fd5b62000cfe8b838c0162000b8c565b965060608a015191508082111562000d1557600080fd5b5062000d248a828b0162000c0c565b94505062000d356080890162000b6f565b925062000d4560a0890162000b6f565b915062000d5560c0890162000b6f565b905092959891949750929550565b634e487b7160e01b600052601160045260246000fd5b60ff828116828216039081111562000366576200036662000d63565b600181815b8085111562000dd657816000190482111562000dba5762000dba62000d63565b8085161562000dc857918102915b93841c939080029062000d9a565b509250929050565b60008262000def5750600162000366565b8162000dfe5750600062000366565b816001811462000e17576002811462000e225762000e42565b600191505062000366565b60ff84111562000e365762000e3662000d63565b50506001821b62000366565b5060208310610133831016604e8410600b841016171562000e67575081810a62000366565b62000e73838362000d95565b806000190482111562000e8a5762000e8a62000d63565b029392505050565b60006200056160ff84168362000dde565b600181811c9082168062000eb857607f821691505b60208210810362000ed957634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000786576000816000526020600020601f850160051c8101602086101562000f0a5750805b601f850160051c820191505b8181101562000f2b5782815560010162000f16565b505050505050565b81516001600160401b0381111562000f4f5762000f4f62000a66565b62000f678162000f60845462000ea3565b8462000edf565b602080601f83116001811462000f9f576000841562000f865750858301515b600019600386901b1c1916600185901b17855562000f2b565b600085815260208120601f198616915b8281101562000fd05788860151825594840194600190910190840162000faf565b508582101562000fef5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b60208152600082518060208401526200103681604085016020870162000aaf565b601f01601f19169190910160400192915050565b8051602080830151919081101562000ed95760001960209190910360031b1b16919050565b8082018082111562000366576200036662000d63565b8181038181111562000366576200036662000d63565b60805160a05160c05160e05161010051610120516101405161016051610180516150ca62001152600039600061138401526000611359015260006126bf01526000612697015260006125f20152600061261c0152600061264601526000818161095a01528181612f3c01528181612fb1015261320701526000818161075001528181610dee01528181611b970152818161218b0152818161293301528181612e60015281816136f701526137b001526150ca6000f3fe6080604052600436106103a25760003560e01c8063715018a6116101e7578063b731ea0a1161010d578063d045a0dc116100a0578063f1127ed81161006f578063f1127ed814610b64578063f2fde38b14610bae578063fc0c546a1461067b578063ff7bd03d14610bce57600080fd5b8063d045a0dc14610af1578063d424388514610b04578063d505accf14610b24578063dd62ed3e14610b4457600080fd5b8063bd815db0116100dc578063bd815db014610a7d578063c3cda52014610a90578063c7c7f5b314610ab0578063ca5eb5e114610ad157600080fd5b8063b731ea0a146109f0578063b98bd07014610a10578063bb0b6a5314610a30578063bc70b35414610a5d57600080fd5b80638e539e8c116101855780639ab24eb0116101545780639ab24eb01461097c5780639f68b9641461099c578063a457c2d7146109b0578063a9059cbb146109d057600080fd5b80638e539e8c146108e757806391ddadf41461090757806395d89b4114610933578063963efcaa1461094857600080fd5b806382413eac116101c157806382413eac1461086d57806384b0196e1461088d578063857749b0146108b55780638da5cb5b146108c957600080fd5b8063715018a6146107fd5780637d25a05e146108125780637ecebe001461084d57600080fd5b806339509351116102cc5780635535d4611161026a5780635e280f11116102395780635e280f111461073e5780636fc1b31e146107725780636fcfff451461079257806370a08231146107c757600080fd5b80635535d4611461068e578063587cde1e146106ae5780635a0dfe4d146106e75780635c19a95c1461071e57600080fd5b806340c10f19116102a657806340c10f191461062657806342966c68146106465780634bf5d7e91461066657806352ae28791461067b57600080fd5b806339509351146105b95780633a46b1a8146105d95780633b6f743b146105f957600080fd5b806317442b701161034457806323b872dd1161031357806323b872dd14610542578063313ce567146105625780633400288b146105845780633644e515146105a457600080fd5b806317442b70146104cd57806318160ddd146104ef5780631f5e13341461050e57806323548b8b1461052357600080fd5b8063111ecdad11610380578063111ecdad1461043157806313137d6514610469578063134d4f251461047e578063156a0d0f146104a657600080fd5b806306fdde03146103a7578063095ea7b3146103d25780630d35b41514610402575b600080fd5b3480156103b357600080fd5b506103bc610bee565b6040516103c99190613fac565b60405180910390f35b3480156103de57600080fd5b506103f26103ed366004613fd4565b610c80565b60405190151581526020016103c9565b34801561040e57600080fd5b5061042261041d366004614012565b610d1b565b6040516103c993929190614046565b34801561043d57600080fd5b50600454610451906001600160a01b031681565b6040516001600160a01b0390911681526020016103c9565b61047c610477366004614139565b610dec565b005b34801561048a57600080fd5b50610493600281565b60405161ffff90911681526020016103c9565b3480156104b257600080fd5b506040805162b9270b60e21b815260016020820152016103c9565b3480156104d957600080fd5b50604080516001815260026020820152016103c9565b3480156104fb57600080fd5b506007545b6040519081526020016103c9565b34801561051a57600080fd5b50610493600181565b34801561052f57600080fd5b506b019d971e4fe8401e74000000610500565b34801561054e57600080fd5b506103f261055d3660046141d8565b610eac565b34801561056e57600080fd5b5060125b60405160ff90911681526020016103c9565b34801561059057600080fd5b5061047c61059f366004614232565b610f76565b3480156105b057600080fd5b50610500610f8c565b3480156105c557600080fd5b506103f26105d4366004613fd4565b610f9b565b3480156105e557600080fd5b506105006105f4366004613fd4565b610fc7565b34801561060557600080fd5b5061061961061436600461425c565b611045565b6040516103c991906142ad565b34801561063257600080fd5b5061047c610641366004613fd4565b6110ac565b34801561065257600080fd5b5061047c6106613660046142c4565b611131565b34801561067257600080fd5b506103bc61113e565b34801561068757600080fd5b5030610451565b34801561069a57600080fd5b506103bc6106a93660046142ef565b6111d6565b3480156106ba57600080fd5b506104516106c9366004614322565b6001600160a01b039081166000908152600e60205260409020541690565b3480156106f357600080fd5b506103f2610702366004614232565b63ffffffff919091166000908152600160205260409020541490565b34801561072a57600080fd5b5061047c610739366004614322565b61127b565b34801561074a57600080fd5b506104517f000000000000000000000000000000000000000000000000000000000000000081565b34801561077e57600080fd5b5061047c61078d366004614322565b611285565b34801561079e57600080fd5b506107b26107ad366004614322565b6112e2565b60405163ffffffff90911681526020016103c9565b3480156107d357600080fd5b506105006107e2366004614322565b6001600160a01b031660009081526005602052604090205490565b34801561080957600080fd5b5061047c611304565b34801561081e57600080fd5b5061083561082d366004614232565b600092915050565b6040516001600160401b0390911681526020016103c9565b34801561085957600080fd5b50610500610868366004614322565b611318565b34801561087957600080fd5b506103f261088836600461433f565b611336565b34801561089957600080fd5b506108a261134b565b6040516103c997969594939291906143a5565b3480156108c157600080fd5b506006610572565b3480156108d557600080fd5b506000546001600160a01b0316610451565b3480156108f357600080fd5b506105006109023660046142c4565b6113d4565b34801561091357600080fd5b5061091c61143b565b60405165ffffffffffff90911681526020016103c9565b34801561093f57600080fd5b506103bc611446565b34801561095457600080fd5b506105007f000000000000000000000000000000000000000000000000000000000000000081565b34801561098857600080fd5b50610500610997366004614322565b611455565b3480156109a857600080fd5b5060006103f2565b3480156109bc57600080fd5b506103f26109cb366004613fd4565b6114d7565b3480156109dc57600080fd5b506103f26109eb366004613fd4565b61155d565b3480156109fc57600080fd5b50600254610451906001600160a01b031681565b348015610a1c57600080fd5b5061047c610a2b366004614482565b6115fc565b348015610a3c57600080fd5b50610500610a4b3660046144c3565b60016020526000908152604090205481565b348015610a6957600080fd5b506103bc610a783660046144de565b611616565b61047c610a8b366004614482565b6117be565b348015610a9c57600080fd5b5061047c610aab36600461454f565b611948565b610ac3610abe3660046145a9565b611a75565b6040516103c9929190614616565b348015610add57600080fd5b5061047c610aec366004614322565b611b70565b61047c610aff366004614139565b611bf6565b348015610b1057600080fd5b5061047c610b1f366004614322565b611c25565b348015610b3057600080fd5b5061047c610b3f366004614668565b611c7b565b348015610b5057600080fd5b50610500610b5f3660046146d6565b611ddf565b348015610b7057600080fd5b50610b84610b7f366004614704565b611e0a565b60408051825163ffffffff1681526020928301516001600160e01b031692810192909252016103c9565b348015610bba57600080fd5b5061047c610bc9366004614322565b611e8e565b348015610bda57600080fd5b506103f2610be9366004614730565b611f04565b606060088054610bfd9061474c565b80601f0160208091040260200160405190810160405280929190818152602001828054610c299061474c565b8015610c765780601f10610c4b57610100808354040283529160200191610c76565b820191906000526020600020905b815481529060010190602001808311610c5957829003601f168201915b5050505050905090565b6011546000906001600160a01b031663d2b70779336040516001600160e01b031960e084901b1681526001600160a01b0391821660048201529086166024820152604401602060405180830381865afa158015610ce1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d059190614780565b50610d11338484611f52565b5060015b92915050565b60408051808201909152600080825260208201526060610d4e604051806040016040528060008152602001600081525090565b60408051808201825260008082526001600160401b03602080840182905284518381529081019094529195509182610da9565b604080518082019091526000815260606020820152815260200190600190039081610d815790505b509350600080610dce604089013560608a0135610dc960208c018c6144c3565b612076565b60408051808201909152918252602082015296989597505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610e3c576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b60208701803590610e5690610e51908a6144c3565b6120ba565b14610e9457610e6860208801886144c3565b60405163309afaf360e21b815263ffffffff909116600482015260208801356024820152604401610e33565b610ea3878787878787876120f6565b50505050505050565b600080336011546040516393fc9e5f60e01b81526001600160a01b038881166004830152878116602483015280841660448301529293509116906393fc9e5f90606401602060405180830381865afa158015610f0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f309190614780565b50806001600160a01b0316856001600160a01b031614610f5557610f5585828561225d565b610f698585610f6488876122d7565b61237a565b60019150505b9392505050565b610f7e612536565b610f888282612590565b5050565b6000610f966125e5565b905090565b600033610fbd818585610fae8383611ddf565b610fb891906147c9565b611f52565b5060019392505050565b6000610fd161143b565b65ffffffffffff1682106110235760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b6044820152606401610e33565b6001600160a01b0383166000908152600f60205260409020610f6f9083612710565b6040805180820190915260008082526020820152600061107560408501356060860135610dc960208801886144c3565b91505060008061108586846127f9565b90925090506110a261109a60208801886144c3565b83838861291d565b9695505050505050565b6011546001600160a01b03166395cde8b4336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015611102573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111269190614780565b50610f8882826129fe565b61113b3382612a08565b50565b60604361114961143b565b65ffffffffffff161461119e5760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a2062726f6b656e20636c6f636b206d6f64650000006044820152606401610e33565b5060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b6003602090815260009283526040808420909152908252902080546111fa9061474c565b80601f01602080910402602001604051908101604052809291908181526020018280546112269061474c565b80156112735780601f1061124857610100808354040283529160200191611273565b820191906000526020600020905b81548152906001019060200180831161125657829003601f168201915b505050505081565b61113b3382612a12565b61128d612536565b600480546001600160a01b0319166001600160a01b0383169081179091556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a150565b6001600160a01b0381166000908152600f6020526040812054610d1590612a8c565b61130c612536565b6113166000612af5565b565b6001600160a01b0381166000908152600c6020526040812054610d15565b6001600160a01b03811630145b949350505050565b60006060808280808361137f7f0000000000000000000000000000000000000000000000000000000000000000600a612b45565b6113aa7f0000000000000000000000000000000000000000000000000000000000000000600b612b45565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b60006113de61143b565b65ffffffffffff1682106114305760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b6044820152606401610e33565b610d15601083612710565b6000610f9643612bf0565b606060098054610bfd9061474c565b6001600160a01b0381166000908152600f602052604081205480156114c4576001600160a01b0383166000908152600f60205260409020805460001983019081106114a2576114a26147dc565b60009182526020909120015464010000000090046001600160e01b03166114c7565b60005b6001600160e01b03169392505050565b600033816114e58286611ddf565b9050838110156115455760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610e33565b6115528286868403611f52565b506001949350505050565b6011546000906001600160a01b03166393fc9e5f33853360405160e085901b6001600160e01b03191681526001600160a01b03938416600482015291831660248301529091166044820152606401602060405180830381865afa1580156115c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ec9190614780565b50610d113384610f6433866122d7565b611604612536565b610f886116118284614893565b612c57565b63ffffffff8416600090815260036020908152604080832061ffff8716845290915281208054606092919061164a9061474c565b80601f01602080910402602001604051908101604052809291908181526020018280546116769061474c565b80156116c35780601f10611698576101008083540402835291602001916116c3565b820191906000526020600020905b8154815290600101906020018083116116a657829003601f168201915b5050505050905080516000036117135783838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509294506113439350505050565b6000839003611723579050611343565b600283106117a15761176a84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612d5e92505050565b8061177884600281886149a8565b60405160200161178a939291906149d2565b604051602081830303815290604052915050611343565b8383604051639a6d49cd60e01b8152600401610e33929190614a23565b60005b818110156118c757368383838181106117dc576117dc6147dc565b90506020028101906117ee9190614a37565b905061182161180060208301836144c3565b602083013563ffffffff919091166000908152600160205260409020541490565b61182b57506118bf565b3063d045a0dc60c08301358360a081013561184a610100830183614a58565b61185b610100890160e08a01614322565b6118696101208a018a614a58565b6040518963ffffffff1660e01b815260040161188b9796959493929190614ab3565b6000604051808303818588803b1580156118a457600080fd5b505af11580156118b8573d6000803e3d6000fd5b5050505050505b6001016117c1565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa158015611906573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261192e9190810190614b39565b604051638351eea760e01b8152600401610e339190613fac565b834211156119985760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e617475726520657870697265640000006044820152606401610e33565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b038816918101919091526060810186905260808101859052600090611a1290611a0a9060a00160405160208183030381529060405280519060200120612d8a565b858585612db7565b9050611a1d81612ddf565b8614611a6b5760405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e6365000000000000006044820152606401610e33565b610ea38188612a12565b611a7d613f15565b6040805180820190915260008082526020820152600080611ab433604089013560608a0135611aaf60208c018c6144c3565b612e07565b91509150600080611ac589846127f9565b9092509050611af1611ada60208b018b6144c3565b8383611aeb368d90038d018d614ba6565b8b612e2d565b60408051808201909152858152602080820186905282519298509096503391907f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a90611b3f908d018d6144c3565b6040805163ffffffff909216825260208201899052810187905260600160405180910390a350505050935093915050565b611b78612536565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b158015611bdb57600080fd5b505af1158015611bef573d6000803e3d6000fd5b5050505050565b333014611c165760405163029a949d60e31b815260040160405180910390fd5b610ea387878787878787610e94565b611c2d612536565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c2427760906020016112d7565b83421115611ccb5760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606401610e33565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888611cfa8c612ddf565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090506000611d5582612d8a565b90506000611d6582878787612db7565b9050896001600160a01b0316816001600160a01b031614611dc85760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606401610e33565b611dd38a8a8a611f52565b50505050505050505050565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b60408051808201909152600080825260208201526001600160a01b0383166000908152600f60205260409020805463ffffffff8416908110611e4e57611e4e6147dc565b60009182526020918290206040805180820190915291015463ffffffff8116825264010000000090046001600160e01b0316918101919091529392505050565b611e96612536565b6001600160a01b038116611efb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610e33565b61113b81612af5565b6000602082018035906001908390611f1c90866144c3565b63ffffffff1681526020810191909152604001600020541492915050565b6000610f6f82846147c9565b6000610f6f8284614bd8565b6001600160a01b038316611fb45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610e33565b6001600160a01b0382166120155760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610e33565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60008061208285612f38565b9150819050838110156120b2576040516371c4efed60e01b81526004810182905260248101859052604401610e33565b935093915050565b63ffffffff811660009081526001602052604081205480610d155760405163f6ff4fb760e01b815263ffffffff84166004820152602401610e33565b60006121086121058787612f6f565b90565b905060006121348261212261211d8a8a612f87565b612faa565b61212f60208d018d6144c3565b612fdf565b905060288611156121fb57600061217161215460608c0160408d01614beb565b61216160208d018d6144c3565b8461216c8c8c612ff3565b61303e565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb59012906121c79086908d906000908790600401614c08565b600060405180830381600087803b1580156121e157600080fd5b505af11580156121f5573d6000803e3d6000fd5b50505050505b6001600160a01b038216887fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c61223460208d018d6144c3565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b60006122698484611ddf565b905060001981146122d157818110156122c45760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610e33565b6122d18484848403611f52565b50505050565b60115460405163b7c4a6bf60e01b81526001600160a01b03848116600483015260248201849052600092839291169063b7c4a6bf90604401602060405180830381865afa15801561232c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123509190614c39565b905060008111801561236157508281105b15612370576123708482612a08565b6113438382611f46565b6001600160a01b0383166123de5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610e33565b6001600160a01b0382166124405760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610e33565b61244b838383613070565b6001600160a01b038316600090815260056020526040902054818110156124c35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610e33565b6001600160a01b0380851660008181526005602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906125239086815260200190565b60405180910390a36122d18484846130f2565b6000546001600160a01b031633146113165760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610e33565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561263e57507f000000000000000000000000000000000000000000000000000000000000000046145b1561266857507f000000000000000000000000000000000000000000000000000000000000000090565b610f96604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b81546000908181600581111561276a57600061272b846130fd565b6127359085614bd8565b600088815260209020909150869082015463ffffffff16111561275a57809150612768565b6127658160016147c9565b92505b505b808210156127b757600061277e83836131e5565b600088815260209020909150869082015463ffffffff1611156127a3578091506127b1565b6127ae8160016147c9565b92505b5061276a565b80156127e3576000868152602090208101600019015464010000000090046001600160e01b03166127e6565b60005b6001600160e01b03169695505050505050565b6060806000612856856020013561280f86613200565b61281c60a0890189614a58565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061322c92505050565b909350905060008161286957600161286c565b60025b905061288c61287e60208801886144c3565b82610a7860808a018a614a58565b6004549093506001600160a01b031615612914576004805460405163043a78eb60e01b81526001600160a01b039091169163043a78eb916128d1918891889101614c52565b602060405180830381865afa1580156128ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129129190614780565b505b50509250929050565b60408051808201909152600080825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff168152602001612980896120ba565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b81526004016129b5929190614c77565b6040805180830381865afa1580156129d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129f59190614d20565b95945050505050565b610f8882826132a6565b610f888282613330565b6001600160a01b038281166000818152600e6020818152604080842080546005845282862054949093528787166001600160a01b03198416811790915590519190951694919391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a46122d1828483613348565b600063ffffffff821115612af15760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401610e33565b5090565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b606060ff8314612b5f57612b5883613485565b9050610d15565b818054612b6b9061474c565b80601f0160208091040260200160405190810160405280929190818152602001828054612b979061474c565b8015612be45780601f10612bb957610100808354040283529160200191612be4565b820191906000526020600020905b815481529060010190602001808311612bc757829003601f168201915b50505050509050610d15565b600065ffffffffffff821115612af15760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b6064820152608401610e33565b60005b8151811015612d2e57612c89828281518110612c7857612c786147dc565b602002602001015160400151612d5e565b818181518110612c9b57612c9b6147dc565b60200260200101516040015160036000848481518110612cbd57612cbd6147dc565b60200260200101516000015163ffffffff1663ffffffff1681526020019081526020016000206000848481518110612cf757612cf76147dc565b60200260200101516020015161ffff1661ffff1681526020019081526020016000209081612d259190614d8c565b50600101612c5a565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b674816040516112d79190614e4b565b600281015161ffff8116600314610f885781604051639a6d49cd60e01b8152600401610e339190613fac565b6000610d15612d976125e5565b8360405161190160f01b8152600281019290925260228201526042902090565b6000806000612dc8878787876134c4565b91509150612dd581613585565b5095945050505050565b6001600160a01b0381166000908152600c602052604090208054600181018255905b50919050565b600080612e15858585612076565b9092509050612e248683612a08565b94509492505050565b612e35613f15565b6000612e4484600001516136cf565b602085015190915015612e5e57612e5e84602001516136f3565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff168152602001612eae8c6120ba565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b8152600401612eea929190614c77565b60806040518083038185885af1158015612f08573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612f2d9190614ed6565b979650505050505050565b60007f0000000000000000000000000000000000000000000000000000000000000000612f658184614f36565b610d159190614f58565b6000612f7e60208284866149a8565b610f6f91614f6f565b6000612f976028602084866149a8565b612fa091614f8d565b60c01c9392505050565b6000610d157f00000000000000000000000000000000000000000000000000000000000000006001600160401b038416614f58565b6000612feb84846129fe565b509092915050565b606061300282602881866149a8565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929695505050505050565b6060848484846040516020016130579493929190614fbd565b6040516020818303038152906040529050949350505050565b6001600160a01b0383166130ed576b019d971e4fe8401e740000008161309560075490565b61309f91906147c9565b11156130ed5760405162461bcd60e51b815260206004820152601960248201527f45524332304361707065643a20636170206578636565646564000000000000006044820152606401610e33565b505050565b6130ed8383836137d5565b60008160000361310f57506000919050565b6000600161311c84613807565b901c6001901b9050600181848161313557613135614f20565b048201901c9050600181848161314d5761314d614f20565b048201901c9050600181848161316557613165614f20565b048201901c9050600181848161317d5761317d614f20565b048201901c9050600181848161319557613195614f20565b048201901c905060018184816131ad576131ad614f20565b048201901c905060018184816131c5576131c5614f20565b048201901c9050610f6f818285816131df576131df614f20565b0461389b565b60006131f46002848418614f36565b610f6f908484166147c9565b6000610d157f000000000000000000000000000000000000000000000000000000000000000083614f36565b805160609015158061327557848460405160200161326192919091825260c01b6001600160c01b031916602082015260280190565b60405160208183030381529060405261329c565b8484338560405160200161328c949392919061500c565b6040516020818303038152906040525b9150935093915050565b6132b082826138b1565b6007546001600160e01b0310156133225760405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201526f766572666c6f77696e6720766f74657360801b6064820152608401610e33565b6122d16010611f3a83613986565b61333a8282613afb565b6122d16010611f4683613986565b816001600160a01b0316836001600160a01b03161415801561336a5750600081115b156130ed576001600160a01b038316156133f8576001600160a01b0383166000908152600f6020526040812081906133a590611f4685613986565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72483836040516133ed929190918252602082015260400190565b60405180910390a250505b6001600160a01b038216156130ed576001600160a01b0382166000908152600f60205260408120819061342e90611f3a85613986565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051613476929190918252602082015260400190565b60405180910390a25050505050565b6060600061349283613c42565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156134fb5750600090506003612e24565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561354f573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661357857600060019250925050612e24565b9660009650945050505050565b60008160048111156135995761359961504f565b036135a15750565b60018160048111156135b5576135b561504f565b036136025760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610e33565b60028160048111156136165761361661504f565b036136635760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610e33565b60038160048111156136775761367761504f565b0361113b5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610e33565b6000813414612af1576040516304fb820960e51b8152346004820152602401610e33565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015613753573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137779190615065565b90506001600160a01b0381166137a0576040516329b99a9560e11b815260040160405180910390fd5b610f886001600160a01b038216337f000000000000000000000000000000000000000000000000000000000000000085613c6a565b6001600160a01b038381166000908152600e60205260408082205485841683529120546130ed92918216911683613348565b600080608083901c1561381c57608092831c92015b604083901c1561382e57604092831c92015b602083901c1561384057602092831c92015b601083901c1561385257601092831c92015b600883901c1561386457600892831c92015b600483901c1561387657600492831c92015b600283901c1561388857600292831c92015b600183901c15610d155760010192915050565b60008183106138aa5781610f6f565b5090919050565b6001600160a01b0382166139075760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610e33565b61391360008383613070565b806007600082825461392591906147c9565b90915550506001600160a01b0382166000818152600560209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610f88600083836130f2565b825460009081908181156139d35760008781526020902082016000190160408051808201909152905463ffffffff8116825264010000000090046001600160e01b031660208201526139e8565b60408051808201909152600080825260208201525b905080602001516001600160e01b03169350613a0884868863ffffffff16565b9250600082118015613a325750613a1d61143b565b65ffffffffffff16816000015163ffffffff16145b15613a7757613a4083613cc4565b60008881526020902083016000190180546001600160e01b03929092166401000000000263ffffffff909216919091179055613af1565b866040518060400160405280613a9b613a8e61143b565b65ffffffffffff16612a8c565b63ffffffff168152602001613aaf86613cc4565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b5050935093915050565b6001600160a01b038216613b5b5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610e33565b613b6782600083613070565b6001600160a01b03821660009081526005602052604090205481811015613bdb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610e33565b6001600160a01b03831660008181526005602090815260408083208686039055600780548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36130ed836000846130f2565b600060ff8216601f811115610d1557604051632cd44ac360e21b815260040160405180910390fd5b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526122d1908590613d2d565b60006001600160e01b03821115612af15760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b6064820152608401610e33565b6000613d82826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613e029092919063ffffffff16565b9050805160001480613da3575080806020019051810190613da39190614780565b6130ed5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610e33565b6060611343848460008585600080866001600160a01b03168587604051613e299190615082565b60006040518083038185875af1925050503d8060008114613e66576040519150601f19603f3d011682016040523d82523d6000602084013e613e6b565b606091505b5091509150612f2d8783838760608315613ee6578251600003613edf576001600160a01b0385163b613edf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610e33565b5081611343565b6113438383815115613efb5781518083602001fd5b8060405162461bcd60e51b8152600401610e339190613fac565b60405180606001604052806000801916815260200160006001600160401b03168152602001613f57604051806040016040528060008152602001600081525090565b905290565b60005b83811015613f77578181015183820152602001613f5f565b50506000910152565b60008151808452613f98816020860160208601613f5c565b601f01601f19169290920160200192915050565b602081526000610f6f6020830184613f80565b6001600160a01b038116811461113b57600080fd5b60008060408385031215613fe757600080fd5b8235613ff281613fbf565b946020939093013593505050565b600060e08284031215612e0157600080fd5b60006020828403121561402457600080fd5b81356001600160401b0381111561403a57600080fd5b61134384828501614000565b8351815260208085015190820152600060a08201604060a0604085015281865180845260c08601915060c08160051b8701019350602080890160005b838110156140c15788870360bf190185528151805188528301518388018790526140ae87890182613f80565b9750509382019390820190600101614082565b50508751606088015250505060208501516080850152509050611343565b600060608284031215612e0157600080fd5b60008083601f84011261410357600080fd5b5081356001600160401b0381111561411a57600080fd5b60208301915083602082850101111561413257600080fd5b9250929050565b600080600080600080600060e0888a03121561415457600080fd5b61415e89896140df565b96506060880135955060808801356001600160401b038082111561418157600080fd5b61418d8b838c016140f1565b909750955060a08a013591506141a282613fbf565b90935060c089013590808211156141b857600080fd5b506141c58a828b016140f1565b989b979a50959850939692959293505050565b6000806000606084860312156141ed57600080fd5b83356141f881613fbf565b9250602084013561420881613fbf565b929592945050506040919091013590565b803563ffffffff8116811461422d57600080fd5b919050565b6000806040838503121561424557600080fd5b613ff283614219565b801515811461113b57600080fd5b6000806040838503121561426f57600080fd5b82356001600160401b0381111561428557600080fd5b61429185828601614000565b92505060208301356142a28161424e565b809150509250929050565b815181526020808301519082015260408101610d15565b6000602082840312156142d657600080fd5b5035919050565b803561ffff8116811461422d57600080fd5b6000806040838503121561430257600080fd5b61430b83614219565b9150614319602084016142dd565b90509250929050565b60006020828403121561433457600080fd5b8135610f6f81613fbf565b60008060008060a0858703121561435557600080fd5b61435f86866140df565b935060608501356001600160401b0381111561437a57600080fd5b614386878288016140f1565b909450925050608085013561439a81613fbf565b939692955090935050565b60ff60f81b881681526000602060e060208401526143c660e084018a613f80565b83810360408501526143d8818a613f80565b606085018990526001600160a01b038816608086015260a0850187905284810360c08601528551808252602080880193509091019060005b8181101561442c57835183529284019291840191600101614410565b50909c9b505050505050505050505050565b60008083601f84011261445057600080fd5b5081356001600160401b0381111561446757600080fd5b6020830191508360208260051b850101111561413257600080fd5b6000806020838503121561449557600080fd5b82356001600160401b038111156144ab57600080fd5b6144b78582860161443e565b90969095509350505050565b6000602082840312156144d557600080fd5b610f6f82614219565b600080600080606085870312156144f457600080fd5b6144fd85614219565b935061450b602086016142dd565b925060408501356001600160401b0381111561452657600080fd5b614532878288016140f1565b95989497509550505050565b803560ff8116811461422d57600080fd5b60008060008060008060c0878903121561456857600080fd5b863561457381613fbf565b9550602087013594506040870135935061458f6060880161453e565b92506080870135915060a087013590509295509295509295565b600080600083850360808112156145bf57600080fd5b84356001600160401b038111156145d557600080fd5b6145e187828801614000565b9450506040601f19820112156145f657600080fd5b50602084019150606084013561460b81613fbf565b809150509250925092565b600060c082019050835182526001600160401b0360208501511660208301526040840151614651604084018280518252602090810151910152565b5082516080830152602083015160a0830152610f6f565b600080600080600080600060e0888a03121561468357600080fd5b873561468e81613fbf565b9650602088013561469e81613fbf565b955060408801359450606088013593506146ba6080890161453e565b925060a0880135915060c0880135905092959891949750929550565b600080604083850312156146e957600080fd5b82356146f481613fbf565b915060208301356142a281613fbf565b6000806040838503121561471757600080fd5b823561472281613fbf565b915061431960208401614219565b60006060828403121561474257600080fd5b610f6f83836140df565b600181811c9082168061476057607f821691505b602082108103612e0157634e487b7160e01b600052602260045260246000fd5b60006020828403121561479257600080fd5b8151610f6f8161424e565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115610d1557610d156147b3565b634e487b7160e01b600052603260045260246000fd5b604051606081016001600160401b03811182821017156148145761481461479d565b60405290565b604080519081016001600160401b03811182821017156148145761481461479d565b604051601f8201601f191681016001600160401b03811182821017156148645761486461479d565b604052919050565b60006001600160401b038211156148855761488561479d565b50601f01601f191660200190565b60006001600160401b03808411156148ad576148ad61479d565b8360051b60206148be81830161483c565b8681529185019181810190368411156148d657600080fd5b865b8481101561499c578035868111156148f05760008081fd5b880160603682900312156149045760008081fd5b61490c6147f2565b61491582614219565b81526149228683016142dd565b868201526040808301358981111561493a5760008081fd5b929092019136601f84011261494f5760008081fd5b823561496261495d8261486c565b61483c565b81815236898387010111156149775760008081fd5b818986018a8301376000918101890191909152908201528452509183019183016148d8565b50979650505050505050565b600080858511156149b857600080fd5b838611156149c557600080fd5b5050820193919092039150565b600084516149e4818460208901613f5c565b8201838582376000930192835250909392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6020815260006113436020830184866149fa565b6000823561013e19833603018112614a4e57600080fd5b9190910192915050565b6000808335601e19843603018112614a6f57600080fd5b8301803591506001600160401b03821115614a8957600080fd5b60200191503681900382131561413257600080fd5b6001600160401b038116811461113b57600080fd5b63ffffffff614ac189614219565b1681526020880135602082015260006040890135614ade81614a9e565b6001600160401b03811660408401525087606083015260e06080830152614b0960e0830187896149fa565b6001600160a01b03861660a084015282810360c0840152614b2b8185876149fa565b9a9950505050505050505050565b600060208284031215614b4b57600080fd5b81516001600160401b03811115614b6157600080fd5b8201601f81018413614b7257600080fd5b8051614b8061495d8261486c565b818152856020838501011115614b9557600080fd5b6129f5826020830160208601613f5c565b600060408284031215614bb857600080fd5b614bc061481a565b82358152602083013560208201528091505092915050565b81810381811115610d1557610d156147b3565b600060208284031215614bfd57600080fd5b8135610f6f81614a9e565b60018060a01b038516815283602082015261ffff831660408201526080606082015260006110a26080830184613f80565b600060208284031215614c4b57600080fd5b5051919050565b604081526000614c656040830185613f80565b82810360208401526129f58185613f80565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a06080840152614cad60e0840182613f80565b90506060850151603f198483030160a0850152614cca8282613f80565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b600060408284031215614d0257600080fd5b614d0a61481a565b9050815181526020820151602082015292915050565b600060408284031215614d3257600080fd5b610f6f8383614cf0565b601f8211156130ed576000816000526020600020601f850160051c81016020861015614d655750805b601f850160051c820191505b81811015614d8457828155600101614d71565b505050505050565b81516001600160401b03811115614da557614da561479d565b614db981614db3845461474c565b84614d3c565b602080601f831160018114614dee5760008415614dd65750858301515b600019600386901b1c1916600185901b178555614d84565b600085815260208120601f198616915b82811015614e1d57888601518255948401946001909101908401614dfe565b5085821015614e3b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b83811015614ec857888303603f190185528151805163ffffffff1684528781015161ffff16888501528601516060878501819052614eb481860183613f80565b968901969450505090860190600101614e74565b509098975050505050505050565b600060808284031215614ee857600080fd5b614ef06147f2565b825181526020830151614f0281614a9e565b6020820152614f148460408501614cf0565b60408201529392505050565b634e487b7160e01b600052601260045260246000fd5b600082614f5357634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610d1557610d156147b3565b80356020831015610d1557600019602084900360031b1b1692915050565b6001600160c01b03198135818116916008851015614fb55780818660080360031b1b83161692505b505092915050565b6001600160401b0360c01b8560c01b16815263ffffffff60e01b8460e01b16600882015282600c82015260008251614ffc81602c850160208701613f5c565b91909101602c0195945050505050565b8481526001600160401b0360c01b8460c01b1660208201528260288201526000825161503f816048850160208701613f5c565b9190910160480195945050505050565b634e487b7160e01b600052602160045260246000fd5b60006020828403121561507757600080fd5b8151610f6f81613fbf565b60008251614a4e818460208701613f5c56fea2646970667358221220ea81d17f0197c9e4536152adf34c9c581f4b439881cae802c3dea0e03eedeb9e64736f6c63430008160033dec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72400000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000001a44076050125825900e736c501f859c50fe728c000000000000000000000000568cd600a92b26f848804e4005822f7d2875363200000000000000000000000003a1b656565e7c20aa4fadd4338f5fa73585a62b00000000000000000000000000000000000000000000000000000000000000044d50524f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044d50524f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000068e5cf81eb3c319e47006eae067e04ebf66102040000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000cc36e82eaf07674bb80000