[ { "inputs": [ { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" }, { "internalType": "address", "name": "endpoint_", "type": "address" }, { "internalType": "address", "name": "admin_", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" } ], "name": "AddressEmptyCode", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "AddressInsufficientBalance", "type": "error" }, { "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": "FailedInnerCall", "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": [ { "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": "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": "value", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "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": [], "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": [ { "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": "liquidityPool", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "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": "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": [ { "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": "uint256", "name": "_tgeEndTime", "type": "uint256" }, { "internalType": "address", "name": "_liquidityPool", "type": "address" } ], "name": "setLiquidityPool", "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": "tgeEndTime", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "value", "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": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "contract IERC20", "name": "erc20", "type": "address" } ], "name": "withdrawERC20", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60c06040523480156200001157600080fd5b506040516200403338038062004033833981016040819052620000349162000645565b83838383838360128484818181818d6001600160a01b0381166200007357604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6200007e81620001e0565b506001600160a01b038083166080528116620000ad57604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e190602401600060405180830381600087803b158015620000f557600080fd5b505af11580156200010a573d6000803e3d6000fd5b5050505050505050620001226200023060201b60201c565b60ff168360ff16101562000149576040516301e9714b60e41b815260040160405180910390fd5b62000156600684620006ea565b6200016390600a62000809565b60a05250600891506200017990508382620008af565b506009620001888282620008af565b5050505050505060004690508061a8691480620001a657508061a86a145b15620001d557620001d582620001bf6012600a62000809565b620001cf90633b9ac9ff6200097b565b62000235565b5050505050620009ce565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600690565b6001600160a01b038216620002615760405163ec442f0560e01b8152600060048201526024016200006a565b6200026f6000838362000273565b5050565b600b546001600160a01b0316620002fc576000546001600160a01b0384811691161480620002ae57506000546001600160a01b038381169116145b620002fc5760405162461bcd60e51b815260206004820152601560248201527f74726164696e67206e6f7420617661696c61626c65000000000000000000000060448201526064016200006a565b600a54421080156200031c57506000546001600160a01b03848116911614155b8015620003375750600b546001600160a01b03838116911614155b156200041e5760a76200034960075490565b62000355919062000995565b8162000376846001600160a01b031660009081526005602052604090205490565b620003829190620009b8565b11156200041e5760405162461bcd60e51b815260206004820152605660248201527f726571756972652074686174206120726563656976696e672077616c6c65742060448201527f77696c6c206e6f7420686f6c64206d6f7265207468616e20302e3625206f662060648201527f737570706c79207768696c65206c61756e6368696e6700000000000000000000608482015260a4016200006a565b6200042b83838362000430565b505050565b6001600160a01b0383166200045f578060076000828254620004539190620009b8565b90915550620004d39050565b6001600160a01b03831660009081526005602052604090205481811015620004b45760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016200006a565b6001600160a01b03841660009081526005602052604090209082900390555b6001600160a01b038216620004f15760078054829003905562000510565b6001600160a01b03821660009081526005602052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200055691815260200190565b60405180910390a3505050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200058b57600080fd5b81516001600160401b0380821115620005a857620005a862000563565b604051601f8301601f19908116603f01168101908282118183101715620005d357620005d362000563565b81604052838152602092508683858801011115620005f057600080fd5b600091505b83821015620006145785820183015181830184015290820190620005f5565b600093810190920192909252949350505050565b80516001600160a01b03811681146200064057600080fd5b919050565b600080600080608085870312156200065c57600080fd5b84516001600160401b03808211156200067457600080fd5b620006828883890162000579565b955060208701519150808211156200069957600080fd5b50620006a88782880162000579565b935050620006b96040860162000628565b9150620006c96060860162000628565b905092959194509250565b634e487b7160e01b600052601160045260246000fd5b60ff8281168282160390811115620007065762000706620006d4565b92915050565b600181815b808511156200074d578160001904821115620007315762000731620006d4565b808516156200073f57918102915b93841c939080029062000711565b509250929050565b600082620007665750600162000706565b81620007755750600062000706565b81600181146200078e57600281146200079957620007b9565b600191505062000706565b60ff841115620007ad57620007ad620006d4565b50506001821b62000706565b5060208310610133831016604e8410600b8410161715620007de575081810a62000706565b620007ea83836200070c565b8060001904821115620008015762000801620006d4565b029392505050565b60006200081a60ff84168362000755565b9392505050565b600181811c908216806200083657607f821691505b6020821081036200085757634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200042b57600081815260208120601f850160051c81016020861015620008865750805b601f850160051c820191505b81811015620008a75782815560010162000892565b505050505050565b81516001600160401b03811115620008cb57620008cb62000563565b620008e381620008dc845462000821565b846200085d565b602080601f8311600181146200091b5760008415620009025750858301515b600019600386901b1c1916600185901b178555620008a7565b600085815260208120601f198616915b828110156200094c578886015182559484019460019091019084016200092b565b50858210156200096b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8082028115828204841417620007065762000706620006d4565b600082620009b357634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620007065762000706620006d4565b60805160a0516135f962000a3a600039600081816106cb01528181611e5a01528181611ecf015261212d01526000818161056a01528181610a7a015281816112db01528181611657015281816119c201528181611ca9015281816121f801526122b101526135f96000f3fe6080604052600436106102935760003560e01c8063715018a61161015a578063bb0b6a53116100c1578063d42438851161007a578063d424388514610835578063dd62ed3e14610855578063f2fde38b1461089b578063f4f3b200146108bb578063fc0c546a146104ee578063ff7bd03d146108db57600080fd5b8063bb0b6a5314610781578063bc70b354146107ae578063bd815db0146107ce578063c7c7f5b3146107e1578063ca5eb5e114610802578063d045a0dc1461082257600080fd5b8063963efcaa11610113578063963efcaa146106b95780639f68b964146106ed578063a9059cbb14610701578063ae10eb6014610721578063b731ea0a14610741578063b98bd0701461076157600080fd5b8063715018a6146106025780637d25a05e1461061757806382413eac14610652578063857749b0146106725780638da5cb5b1461068657806395d89b41146106a457600080fd5b8063313ce567116101fe5780635535d461116101b75780635535d461146105015780635a0dfe4d146105215780635e280f1114610558578063665a11ca1461058c5780636fc1b31e146105ac57806370a08231146105cc57600080fd5b8063313ce5671461044a5780633400288b1461046c5780633b6f743b1461048c5780633ccfd60b146104b957806342966c68146104ce57806352ae2879146104ee57600080fd5b8063156a0d0f11610250578063156a0d0f1461039757806317442b70146103be57806318160ddd146103e05780631a063c73146103ff5780631f5e13341461041557806323b872dd1461042a57600080fd5b806306fdde0314610298578063095ea7b3146102c35780630d35b415146102f3578063111ecdad1461032257806313137d651461035a578063134d4f251461036f575b600080fd5b3480156102a457600080fd5b506102ad6108fb565b6040516102ba9190612679565b60405180910390f35b3480156102cf57600080fd5b506102e36102de3660046126a1565b61098d565b60405190151581526020016102ba565b3480156102ff57600080fd5b5061031361030e3660046126e5565b6109a7565b6040516102ba93929190612719565b34801561032e57600080fd5b50600454610342906001600160a01b031681565b6040516001600160a01b0390911681526020016102ba565b61036d61036836600461280b565b610a78565b005b34801561037b57600080fd5b50610384600281565b60405161ffff90911681526020016102ba565b3480156103a357600080fd5b506040805162b9270b60e21b815260016020820152016102ba565b3480156103ca57600080fd5b50604080516001815260026020820152016102ba565b3480156103ec57600080fd5b506007545b6040519081526020016102ba565b34801561040b57600080fd5b506103f1600a5481565b34801561042157600080fd5b50610384600181565b34801561043657600080fd5b506102e36104453660046128aa565b610b38565b34801561045657600080fd5b5060125b60405160ff90911681526020016102ba565b34801561047857600080fd5b5061036d610487366004612904565b610b5e565b34801561049857600080fd5b506104ac6104a736600461292e565b610b74565b6040516102ba919061297f565b3480156104c557600080fd5b5061036d610bdb565b3480156104da57600080fd5b5061036d6104e9366004612996565b610c89565b3480156104fa57600080fd5b5030610342565b34801561050d57600080fd5b506102ad61051c3660046129c1565b610c93565b34801561052d57600080fd5b506102e361053c366004612904565b63ffffffff919091166000908152600160205260409020541490565b34801561056457600080fd5b506103427f000000000000000000000000000000000000000000000000000000000000000081565b34801561059857600080fd5b50600b54610342906001600160a01b031681565b3480156105b857600080fd5b5061036d6105c73660046129f4565b610d38565b3480156105d857600080fd5b506103f16105e73660046129f4565b6001600160a01b031660009081526005602052604090205490565b34801561060e57600080fd5b5061036d610d95565b34801561062357600080fd5b5061063a610632366004612904565b600092915050565b6040516001600160401b0390911681526020016102ba565b34801561065e57600080fd5b506102e361066d366004612a11565b610da9565b34801561067e57600080fd5b50600661045a565b34801561069257600080fd5b506000546001600160a01b0316610342565b3480156106b057600080fd5b506102ad610dbe565b3480156106c557600080fd5b506103f17f000000000000000000000000000000000000000000000000000000000000000081565b3480156106f957600080fd5b5060006102e3565b34801561070d57600080fd5b506102e361071c3660046126a1565b610dcd565b34801561072d57600080fd5b5061036d61073c366004612a77565b610ddb565b34801561074d57600080fd5b50600254610342906001600160a01b031681565b34801561076d57600080fd5b5061036d61077c366004612ae0565b610e63565b34801561078d57600080fd5b506103f161079c366004612b21565b60016020526000908152604090205481565b3480156107ba57600080fd5b506102ad6107c9366004612b3c565b610e7d565b61036d6107dc366004612ae0565b611025565b6107f46107ef366004612b9c565b6111b9565b6040516102ba929190612c09565b34801561080e57600080fd5b5061036d61081d3660046129f4565b6112b4565b61036d61083036600461280b565b61133a565b34801561084157600080fd5b5061036d6108503660046129f4565b611369565b34801561086157600080fd5b506103f1610870366004612c5b565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b3480156108a757600080fd5b5061036d6108b63660046129f4565b6113bf565b3480156108c757600080fd5b5061036d6108d63660046129f4565b6113fa565b3480156108e757600080fd5b506102e36108f6366004612c89565b6114fa565b60606008805461090a90612ca5565b80601f016020809104026020016040519081016040528092919081815260200182805461093690612ca5565b80156109835780601f1061095857610100808354040283529160200191610983565b820191906000526020600020905b81548152906001019060200180831161096657829003601f168201915b5050505050905090565b60003361099b818585611530565b60019150505b92915050565b604080518082019091526000808252602082015260606109da604051806040016040528060008152602001600081525090565b60408051808201825260008082526001600160401b03602080840182905284518381529081019094529195509182610a35565b604080518082019091526000815260606020820152815260200190600190039081610a0d5790505b509350600080610a5a604089013560608a0135610a5560208c018c612b21565b611542565b60408051808201909152918252602082015296989597505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610ac8576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b60208701803590610ae290610add908a612b21565b611586565b14610b2057610af46020880188612b21565b60405163309afaf360e21b815263ffffffff909116600482015260208801356024820152604401610abf565b610b2f878787878787876115c2565b50505050505050565b600033610b46858285611729565b610b518585856117a7565b60019150505b9392505050565b610b66611806565b610b708282611833565b5050565b60408051808201909152600080825260208201526000610ba460408501356060860135610a556020880188612b21565b915050600080610bb48684611888565b9092509050610bd1610bc96020880188612b21565b8383886119ac565b9695505050505050565b610be3611806565b600080546040516001600160a01b039091169047908381818185875af1925050503d8060008114610c30576040519150601f19603f3d011682016040523d82523d6000602084013e610c35565b606091505b5050905080610c865760405162461bcd60e51b815260206004820181905260248201527f6661696c656420746f2073656e642062616c616e636520666f72206f776e65726044820152606401610abf565b50565b610c863382611a8d565b600360209081526000928352604080842090915290825290208054610cb790612ca5565b80601f0160208091040260200160405190810160405280929190818152602001828054610ce390612ca5565b8015610d305780601f10610d0557610100808354040283529160200191610d30565b820191906000526020600020905b815481529060010190602001808311610d1357829003601f168201915b505050505081565b610d40611806565b600480546001600160a01b0319166001600160a01b0383169081179091556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a150565b610d9d611806565b610da76000611ac3565b565b6001600160a01b03811630145b949350505050565b60606009805461090a90612ca5565b60003361099b8185856117a7565b610de3611806565b600b546001600160a01b031615610e3c5760405162461bcd60e51b815260206004820152601a60248201527f6c697175696469747920706f6f6c20616c7265616479207365740000000000006044820152606401610abf565b600a91909155600b80546001600160a01b0319166001600160a01b03909216919091179055565b610e6b611806565b610b70610e788284612d90565b611b13565b63ffffffff8416600090815260036020908152604080832061ffff87168452909152812080546060929190610eb190612ca5565b80601f0160208091040260200160405190810160405280929190818152602001828054610edd90612ca5565b8015610f2a5780601f10610eff57610100808354040283529160200191610f2a565b820191906000526020600020905b815481529060010190602001808311610f0d57829003601f168201915b505050505090508051600003610f7a5783838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929450610db69350505050565b6000839003610f8a579050610db6565b6002831061100857610fd184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c2492505050565b80610fdf8460028188612ea5565b604051602001610ff193929190612ecf565b604051602081830303815290604052915050610db6565b8383604051639a6d49cd60e01b8152600401610abf929190612f20565b60005b81811015611138573683838381811061104357611043612f34565b90506020028101906110559190612f4a565b90506110886110676020830183612b21565b602083013563ffffffff919091166000908152600160205260409020541490565b6110925750611126565b3063d045a0dc60c08301358360a08101356110b1610100830183612f6b565b6110c2610100890160e08a016129f4565b6110d06101208a018a612f6b565b6040518963ffffffff1660e01b81526004016110f29796959493929190612fc6565b6000604051808303818588803b15801561110b57600080fd5b505af115801561111f573d6000803e3d6000fd5b5050505050505b8061113081613062565b915050611028565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa158015611177573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261119f919081019061307b565b604051638351eea760e01b8152600401610abf9190612679565b6111c16125e2565b60408051808201909152600080825260208201526000806111f833604089013560608a01356111f360208c018c612b21565b611c50565b915091506000806112098984611888565b909250905061123561121e60208b018b612b21565b838361122f368d90038d018d6130e8565b8b611c76565b60408051808201909152858152602080820186905282519298509096503391907f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a90611283908d018d612b21565b6040805163ffffffff909216825260208201899052810187905260600160405180910390a350505050935093915050565b6112bc611806565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b15801561131f57600080fd5b505af1158015611333573d6000803e3d6000fd5b5050505050565b33301461135a5760405163029a949d60e31b815260040160405180910390fd5b610b2f87878787878787610b20565b611371611806565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001610d8a565b6113c7611806565b6001600160a01b0381166113f157604051631e4fbdf760e01b815260006004820152602401610abf565b610c8681611ac3565b611402611806565b806001600160a01b031663a9059cbb6114236000546001600160a01b031690565b6040516370a0823160e01b81523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa158015611467573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061148b919061311a565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156114d6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b709190613133565b60006020820180359060019083906115129086612b21565b63ffffffff1681526020810191909152604001600020541492915050565b61153d8383836001611d81565b505050565b60008061154e85611e56565b91508190508381101561157e576040516371c4efed60e01b81526004810182905260248101859052604401610abf565b935093915050565b63ffffffff8116600090815260016020526040812054806109a15760405163f6ff4fb760e01b815263ffffffff84166004820152602401610abf565b60006115d46115d18787611e8d565b90565b90506000611600826115ee6115e98a8a611ea5565b611ec8565b6115fb60208d018d612b21565b611efd565b905060288611156116c757600061163d61162060608c0160408d01613150565b61162d60208d018d612b21565b846116388c8c611f11565b611f5c565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb59012906116939086908d90600090879060040161316d565b600060405180830381600087803b1580156116ad57600080fd5b505af11580156116c1573d6000803e3d6000fd5b50505050505b6001600160a01b038216887fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c61170060208d018d612b21565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b6001600160a01b0383811660009081526006602090815260408083209386168352929052205460001981146117a1578181101561179257604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610abf565b6117a184848484036000611d81565b50505050565b6001600160a01b0383166117d157604051634b637e8f60e11b815260006004820152602401610abf565b6001600160a01b0382166117fb5760405163ec442f0560e01b815260006004820152602401610abf565b61153d838383611f8e565b6000546001600160a01b03163314610da75760405163118cdaa760e01b8152336004820152602401610abf565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b60608060006118e5856020013561189e86612126565b6118ab60a0890189612f6b565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061215292505050565b90935090506000816118f85760016118fb565b60025b905061191b61190d6020880188612b21565b826107c960808a018a612f6b565b6004549093506001600160a01b0316156119a3576004805460405163043a78eb60e01b81526001600160a01b039091169163043a78eb9161196091889188910161319e565b602060405180830381865afa15801561197d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a19190613133565b505b50509250929050565b60408051808201909152600080825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff168152602001611a0f89611586565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401611a449291906131c3565b6040805180830381865afa158015611a60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a84919061326c565b95945050505050565b6001600160a01b038216611ab757604051634b637e8f60e11b815260006004820152602401610abf565b610b7082600083611f8e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60005b8151811015611bf457611b45828281518110611b3457611b34612f34565b602002602001015160400151611c24565b818181518110611b5757611b57612f34565b60200260200101516040015160036000848481518110611b7957611b79612f34565b60200260200101516000015163ffffffff1663ffffffff1681526020019081526020016000206000848481518110611bb357611bb3612f34565b60200260200101516020015161ffff1661ffff1681526020019081526020016000209081611be191906132d6565b5080611bec81613062565b915050611b16565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b67481604051610d8a9190613395565b600281015161ffff8116600314610b705781604051639a6d49cd60e01b8152600401610abf9190612679565b600080611c5e858585611542565b9092509050611c6d8683611a8d565b94509492505050565b611c7e6125e2565b6000611c8d84600001516121cc565b602085015190915015611ca757611ca784602001516121f4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff168152602001611cf78c611586565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b8152600401611d339291906131c3565b60806040518083038185885af1158015611d51573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611d76919061341e565b979650505050505050565b6001600160a01b038416611dab5760405163e602df0560e01b815260006004820152602401610abf565b6001600160a01b038316611dd557604051634a1406b160e11b815260006004820152602401610abf565b6001600160a01b03808516600090815260066020908152604080832093871683529290522082905580156117a157826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051611e4891815260200190565b60405180910390a350505050565b60007f0000000000000000000000000000000000000000000000000000000000000000611e838184613468565b6109a1919061348a565b6000611e9c6020828486612ea5565b610b57916134a1565b6000611eb5602860208486612ea5565b611ebe916134bf565b60c01c9392505050565b60006109a17f00000000000000000000000000000000000000000000000000000000000000006001600160401b03841661348a565b6000611f0984846122d6565b509092915050565b6060611f208260288186612ea5565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929695505050505050565b606084848484604051602001611f7594939291906134ef565b6040516020818303038152906040529050949350505050565b600b546001600160a01b031661200b576000546001600160a01b0384811691161480611fc757506000546001600160a01b038381169116145b61200b5760405162461bcd60e51b815260206004820152601560248201527474726164696e67206e6f7420617661696c61626c6560581b6044820152606401610abf565b600a544210801561202a57506000546001600160a01b03848116911614155b80156120445750600b546001600160a01b03838116911614155b1561211b5760a761205460075490565b61205e9190613468565b8161207e846001600160a01b031660009081526005602052604090205490565b612088919061353e565b111561211b5760405162461bcd60e51b815260206004820152605660248201527f726571756972652074686174206120726563656976696e672077616c6c65742060448201527f77696c6c206e6f7420686f6c64206d6f7265207468616e20302e3625206f6620606482015275737570706c79207768696c65206c61756e6368696e6760501b608482015260a401610abf565b61153d83838361230c565b60006109a17f000000000000000000000000000000000000000000000000000000000000000083613468565b805160609015158061219b57848460405160200161218792919091825260c01b6001600160c01b031916602082015260280190565b6040516020818303038152906040526121c2565b848433856040516020016121b29493929190613551565b6040516020818303038152906040525b9150935093915050565b60008134146121f0576040516304fb820960e51b8152346004820152602401610abf565b5090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015612254573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122789190613594565b90506001600160a01b0381166122a1576040516329b99a9560e11b815260040160405180910390fd5b610b706001600160a01b038216337f000000000000000000000000000000000000000000000000000000000000000085612436565b6001600160a01b0382166123005760405163ec442f0560e01b815260006004820152602401610abf565b610b7060008383611f8e565b6001600160a01b03831661233757806007600082825461232c919061353e565b909155506123a99050565b6001600160a01b0383166000908152600560205260409020548181101561238a5760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610abf565b6001600160a01b03841660009081526005602052604090209082900390555b6001600160a01b0382166123c5576007805482900390556123e4565b6001600160a01b03821660009081526005602052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161242991815260200190565b60405180910390a3505050565b604080516001600160a01b038581166024830152848116604483015260648083018590528351808403909101815260849092019092526020810180516001600160e01b03166323b872dd60e01b1790526117a19186919060009061249c908416836124ea565b905080516000141580156124c15750808060200190518101906124bf9190613133565b155b1561153d57604051635274afe760e01b81526001600160a01b0384166004820152602401610abf565b6060610b578383600084600080856001600160a01b0316848660405161251091906135b1565b60006040518083038185875af1925050503d806000811461254d576040519150601f19603f3d011682016040523d82523d6000602084013e612552565b606091505b5091509150610bd18683836060826125725761256d826125b9565b610b57565b815115801561258957506001600160a01b0384163b155b156125b257604051639996b31560e01b81526001600160a01b0385166004820152602401610abf565b5080610b57565b8051156125c95780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60405180606001604052806000801916815260200160006001600160401b03168152602001612624604051806040016040528060008152602001600081525090565b905290565b60005b8381101561264457818101518382015260200161262c565b50506000910152565b60008151808452612665816020860160208601612629565b601f01601f19169290920160200192915050565b602081526000610b57602083018461264d565b6001600160a01b0381168114610c8657600080fd5b600080604083850312156126b457600080fd5b82356126bf8161268c565b946020939093013593505050565b600060e082840312156126df57600080fd5b50919050565b6000602082840312156126f757600080fd5b81356001600160401b0381111561270d57600080fd5b610db6848285016126cd565b8351815260208085015190820152600060a08201604060a08185015281865180845260c08601915060c08160051b8701019350602080890160005b838110156127935788870360bf190185528151805188528301518388018790526127808789018261264d565b9750509382019390820190600101612754565b50508751606088015250505060208501516080850152509050610db6565b6000606082840312156126df57600080fd5b60008083601f8401126127d557600080fd5b5081356001600160401b038111156127ec57600080fd5b60208301915083602082850101111561280457600080fd5b9250929050565b600080600080600080600060e0888a03121561282657600080fd5b61283089896127b1565b96506060880135955060808801356001600160401b038082111561285357600080fd5b61285f8b838c016127c3565b909750955060a08a013591506128748261268c565b90935060c0890135908082111561288a57600080fd5b506128978a828b016127c3565b989b979a50959850939692959293505050565b6000806000606084860312156128bf57600080fd5b83356128ca8161268c565b925060208401356128da8161268c565b929592945050506040919091013590565b803563ffffffff811681146128ff57600080fd5b919050565b6000806040838503121561291757600080fd5b6126bf836128eb565b8015158114610c8657600080fd5b6000806040838503121561294157600080fd5b82356001600160401b0381111561295757600080fd5b612963858286016126cd565b925050602083013561297481612920565b809150509250929050565b8151815260208083015190820152604081016109a1565b6000602082840312156129a857600080fd5b5035919050565b803561ffff811681146128ff57600080fd5b600080604083850312156129d457600080fd5b6129dd836128eb565b91506129eb602084016129af565b90509250929050565b600060208284031215612a0657600080fd5b8135610b578161268c565b60008060008060a08587031215612a2757600080fd5b612a3186866127b1565b935060608501356001600160401b03811115612a4c57600080fd5b612a58878288016127c3565b9094509250506080850135612a6c8161268c565b939692955090935050565b60008060408385031215612a8a57600080fd5b8235915060208301356129748161268c565b60008083601f840112612aae57600080fd5b5081356001600160401b03811115612ac557600080fd5b6020830191508360208260051b850101111561280457600080fd5b60008060208385031215612af357600080fd5b82356001600160401b03811115612b0957600080fd5b612b1585828601612a9c565b90969095509350505050565b600060208284031215612b3357600080fd5b610b57826128eb565b60008060008060608587031215612b5257600080fd5b612b5b856128eb565b9350612b69602086016129af565b925060408501356001600160401b03811115612b8457600080fd5b612b90878288016127c3565b95989497509550505050565b60008060008385036080811215612bb257600080fd5b84356001600160401b03811115612bc857600080fd5b612bd4878288016126cd565b9450506040601f1982011215612be957600080fd5b506020840191506060840135612bfe8161268c565b809150509250925092565b600060c082019050835182526001600160401b0360208501511660208301526040840151612c44604084018280518252602090810151910152565b5082516080830152602083015160a0830152610b57565b60008060408385031215612c6e57600080fd5b8235612c798161268c565b915060208301356129748161268c565b600060608284031215612c9b57600080fd5b610b5783836127b1565b600181811c90821680612cb957607f821691505b6020821081036126df57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b0381118282101715612d1157612d11612cd9565b60405290565b604080519081016001600160401b0381118282101715612d1157612d11612cd9565b604051601f8201601f191681016001600160401b0381118282101715612d6157612d61612cd9565b604052919050565b60006001600160401b03821115612d8257612d82612cd9565b50601f01601f191660200190565b60006001600160401b0380841115612daa57612daa612cd9565b8360051b6020612dbb818301612d39565b868152918501918181019036841115612dd357600080fd5b865b84811015612e9957803586811115612ded5760008081fd5b88016060368290031215612e015760008081fd5b612e09612cef565b612e12826128eb565b8152612e1f8683016129af565b8682015260408083013589811115612e375760008081fd5b929092019136601f840112612e4c5760008081fd5b8235612e5f612e5a82612d69565b612d39565b8181523689838701011115612e745760008081fd5b818986018a830137600091810189019190915290820152845250918301918301612dd5565b50979650505050505050565b60008085851115612eb557600080fd5b83861115612ec257600080fd5b5050820193919092039150565b60008451612ee1818460208901612629565b8201838582376000930192835250909392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000610db6602083018486612ef7565b634e487b7160e01b600052603260045260246000fd5b6000823561013e19833603018112612f6157600080fd5b9190910192915050565b6000808335601e19843603018112612f8257600080fd5b8301803591506001600160401b03821115612f9c57600080fd5b60200191503681900382131561280457600080fd5b6001600160401b0381168114610c8657600080fd5b63ffffffff612fd4896128eb565b1681526020880135602082015260006040890135612ff181612fb1565b6001600160401b03811660408401525087606083015260e0608083015261301c60e083018789612ef7565b6001600160a01b03861660a084015282810360c084015261303e818587612ef7565b9a9950505050505050505050565b634e487b7160e01b600052601160045260246000fd5b6000600182016130745761307461304c565b5060010190565b60006020828403121561308d57600080fd5b81516001600160401b038111156130a357600080fd5b8201601f810184136130b457600080fd5b80516130c2612e5a82612d69565b8181528560208385010111156130d757600080fd5b611a84826020830160208601612629565b6000604082840312156130fa57600080fd5b613102612d17565b82358152602083013560208201528091505092915050565b60006020828403121561312c57600080fd5b5051919050565b60006020828403121561314557600080fd5b8151610b5781612920565b60006020828403121561316257600080fd5b8135610b5781612fb1565b60018060a01b038516815283602082015261ffff83166040820152608060608201526000610bd1608083018461264d565b6040815260006131b1604083018561264d565b8281036020840152611a84818561264d565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a060808401526131f960e084018261264d565b90506060850151603f198483030160a0850152613216828261264d565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b60006040828403121561324e57600080fd5b613256612d17565b9050815181526020820151602082015292915050565b60006040828403121561327e57600080fd5b610b57838361323c565b601f82111561153d57600081815260208120601f850160051c810160208610156132af5750805b601f850160051c820191505b818110156132ce578281556001016132bb565b505050505050565b81516001600160401b038111156132ef576132ef612cd9565b613303816132fd8454612ca5565b84613288565b602080601f83116001811461333857600084156133205750858301515b600019600386901b1c1916600185901b1785556132ce565b600085815260208120601f198616915b8281101561336757888601518255948401946001909101908401613348565b50858210156133855787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b8381101561341057888303603f190185528151805163ffffffff1684528781015161ffff168885015286015160608785018190526133fc8186018361264d565b9689019694505050908601906001016133bc565b509098975050505050505050565b60006080828403121561343057600080fd5b613438612cef565b82518152602083015161344a81612fb1565b602082015261345c846040850161323c565b60408201529392505050565b60008261348557634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176109a1576109a161304c565b803560208310156109a157600019602084900360031b1b1692915050565b6001600160c01b031981358181169160088510156134e75780818660080360031b1b83161692505b505092915050565b6001600160401b0360c01b8560c01b16815263ffffffff60e01b8460e01b16600882015282600c8201526000825161352e81602c850160208701612629565b91909101602c0195945050505050565b808201808211156109a1576109a161304c565b8481526001600160401b0360c01b8460c01b16602082015282602882015260008251613584816048850160208701612629565b9190910160480195945050505050565b6000602082840312156135a657600080fd5b8151610b578161268c565b60008251612f6181846020870161262956fea26469706673582212200bc4c3fd7e58d2b4dbafcfeab96c2f9dd8270f1877a477ef82cfd45bc3aca82e64736f6c63430008140033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000001a44076050125825900e736c501f859c50fe728c000000000000000000000000b47bc7fad7b31e7470e09abfdb5584ba8862bddd00000000000000000000000000000000000000000000000000000000000000044c6f6e670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044c4f4e4700000000000000000000000000000000000000000000000000000000
Loading