[ { "inputs": [ { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" }, { "internalType": "address", "name": "endpoint_", "type": "address" }, { "internalType": "address", "name": "forwarder_", "type": "address" }, { "internalType": "address", "name": "admin_", "type": "address" }, { "internalType": "uint256", "name": "supply_", "type": "uint256" } ], "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": "amountLD", "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": "amountLD", "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": "composeMsgSender", "outputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "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": [ { "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": [ { "internalType": "address", "name": "forwarder", "type": "address" } ], "name": "isTrustedForwarder", "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": "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": "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": "pure", "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": "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": "trustedForwarder", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" } ]
60e0604081815234620007f7576000620033c98038038091620000238287620007fc565b8539830160c084820312620007f35783516001600160401b039490858111620007ef57826200005491830162000836565b9460209283830151828111620007eb57906200007291840162000836565b9562000080868401620008ad565b926200008f60608201620008ad565b9160a0620000a060808401620008ad565b920151943315620007d3578754336001600160a01b0319821681178a556001600160a01b039586939290919084167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08c80a360805216938460a052843b15620007cf57889988995163ca5eb5e160e01b81528981600498338a8301528160249e8f925af18015620007c5576200079e575b5064e8d4a5100060c052825192828411620004e757600854936001948581811c9116801562000793575b8b8210146200078157908a8c949392601f809681831162000734575b9250505050808b8d868311600114620006ce5791620006c2575b50600019600383901b1c191690861b176008555b8151848111620005e6576009548681811c91168015620006b7575b8c821014620005c95780858e818f94116200066a575b9250505050808b8d868311600114620006045791620005f8575b50600019600383901b1c191690861b176009555b805190848211620005e657600a548681811c91168015620005db575b8c821014620005c957908b82868f818796116200056d575b92505050508b908d868411600114620005055792620004f9575b5050600019600383901b1c191690851b17600a555b8051928311620004e757600b548481811c91168015620004dc575b8a821014620004ca5782811162000481575b50889183116001146200041b579282939183928b946200040f575b50501b916000199060031b1c191617600b555b1694851580158062000405575b62000353575b8751612b069081620008c382396080518181816112f7015281816115050152612a7a015260a05181818161053d0152818161064c015281816108370152818161098701528181611464015281816116aa01526119d6015260c05181818161040c0152818161074e0152818161119201528181611a56015261261b0152f35b670de0b6b3a764000093848102948186041490151715620003f357620003de5760075491838301809311620003cd5750506007558383526005825284832080548201905584519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9190a338808080808080620002d5565b634e487b7160e01b86526011905284fd5b865163ec442f0560e01b815291820185905290fd5b50634e487b7160e01b85526011825284fd5b50831515620002cf565b015192503880620002af565b600b8a52888a20919083601f1981168c5b8c888383106200046957505050106200044f575b505050811b01600b55620002c2565b015160001960f88460031b161c1916905538808062000440565b8686015188559096019594850194879350016200042c565b600b8b52898b208380860160051c8201928c8710620004c0575b0160051c019085905b828110620004b457505062000294565b8c8155018590620004a4565b925081926200049b565b634e487b7160e01b8b52602288528b8bfd5b90607f169062000282565b634e487b7160e01b8a52604187528a8afd5b01519050388062000252565b600a81528d8120899550929190601f198516908f5b8282106200055557505084116200053b575b505050811b01600a5562000267565b015160001960f88460031b161c191690553880806200052c565b8385015186558b979095019493840193018f6200051a565b83949550600a819492939452209181860160051c8301938610620005bf575b859493910160051c9091019088908f5b838210620005b0578f935088915062000238565b81558594508991018f6200059c565b925081926200058c565b634e487b7160e01b8d5260228a528d8dfd5b90607f169062000220565b634e487b7160e01b8c52604189528c8cfd5b905083015138620001f0565b600981528d81208994509190601f198416908f5b82821062000652575050831162000638575b5050811b0160095562000204565b85015160001960f88460031b161c1916905538806200062a565b8389015185558b969094019392830192018f62000618565b806009859252209181850160051c8301938510620006ad575b0160051c019087908e5b838210620006a1578e9350879150620001d6565b81550187908e6200068d565b9250819262000683565b90607f1690620001c0565b90508201513862000191565b600881528d81208994509190601f198416908f5b8282106200071c575050831162000702575b5050811b01600855620001a5565b84015160001960f88460031b161c191690553880620006f4565b8388015185558b969094019392830192018f620006e2565b806008859252209181850160051c830193851062000777575b0160051c019087908e5b8382106200076b578e935087915062000177565b81550187908e62000757565b925081926200074d565b634e487b7160e01b8c52602289528c8cfd5b90607f16906200015b565b82819a929a11620007b3578b52973862000131565b634e487b7160e01b8252604187528a82fd5b8c513d8c823e3d90fd5b8780fd5b8851631e4fbdf760e01b815260048101899052602490fd5b8580fd5b8380fd5b5080fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200082057604052565b634e487b7160e01b600052604160045260246000fd5b919080601f84011215620007f7578251906001600160401b03821162000820576040519160209162000872601f8301601f1916840185620007fc565b818452828287010111620007f75760005b8181106200089957508260009394955001015290565b858101830151848201840152820162000883565b51906001600160a01b0382168203620007f75756fe6080604081815260048036101561001557600080fd5b60009260e08435811c91826306fdde0314611ebf57508163095ea7b314611e0d5781630d35b41514611c98578163111ecdad14611c7057816313137d65146119b5578163134d4f2514611998578163156a0d0f1461197157816317442b701461194f57816318160ddd1461192f5781631f5e13341461191257816323b872dd146117fe578163313ce567146117e15781633400288b1461175f5781633b6f743b146115b457816342966c681461158c57816352ae2879146102575781635535d4611461152c578163572b6c05146114d95781635a0dfe4d146114935781635e280f111461144e5781636fc1b31e146113df57816370a08231146113a6578163715018a61461134c5781637d25a05e146113265781637da0a877146112e1578163857749b0146112c45781638da5cb5b1461129b57816395d89b41146111b5578163963efcaa146111795781639f68b9641461115d578163a9059cbb14611124578163b731ea0a146110fa578163b92d0eff14610257578163b98bd07014610e17578163bb0b6a5314610de2578163bc70b35414610d76578163bd815db014610b10578163c7c7f5b3146106c157848263ca5eb5e11461061e57508163d045a0dc146103ad57508063d42438851461033e578063dd62ed3e146102ec578063f2fde38b1461025c578063fc0c546a146102575763ff7bd03d1461021657600080fd5b34610253576060366003190112610253573563ffffffff811680910361024e5782829160209452600184522054905190602435148152f35b600080fd5b8280fd5b6120c0565b503461025357602036600319011261025357610276611fd8565b9061027f6127dc565b6001600160a01b039182169283156102d6575050600054826bffffffffffffffffffffffff60a01b821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a380f35b51631e4fbdf760e01b8152908101849052602490fd5b50503461033a578060031936011261033a57602091610309611fd8565b82610312611fee565b6001600160a01b03928316845260068652922091166000908152908352819020549051908152f35b5080fd5b50503461033a57602036600319011261033a5760207fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c24277609161037d611fd8565b6103856127dc565b600280546001600160a01b0319166001600160a01b039290921691821790559051908152a180f35b9190506103b936612031565b50505095919490929330330361061057866020116105df576001600160a01b03843581169761043693906103ed81886123d2565b6001600160c01b031996918791903582811691600881106105fa575b507f000000000000000000000000000000000000000000000000000000000000000092505060c01c6127a9565b9661044089612287565b508a156105e357908b9594939291610458898d6128fd565b602882116104b9575b505050505050506104b36104957fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c94612287565b9151928392836020909392919363ffffffff60408201951681520152565b0390a380f35b878a0135906001600160401b03821682036105df5761053b936104f36104ec85604c968f6104e690612287565b956123e3565b369161239b565b918a5198899460c01b16602085015263ffffffff60e01b911b16602883015289602c83015261052b8151809260208686019101611f90565b810103602c810186520184612236565b7f00000000000000000000000000000000000000000000000000000000000000001691823b156105db576105a09289858094885196879586948593633e5ac80960e11b85528401528d6024840152836044840152608060648401526084830190611fb3565b03925af180156105d1576105b9575b8080808080610461565b6105c2906121ed565b6105cd5785386105af565b8580fd5b83513d84823e3d90fd5b8380fd5b8780fd5b865163ec442f0560e01b81528086018d9052602490fd5b8391925060080360031b1b161686903880610409565b825163029a949d60e31b8152fd5b808486346106bd5760203660031901126106bd5761063a611fd8565b6106426127dc565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116803b156105cd578592836024928651978895869463ca5eb5e160e01b865216908401525af19081156106b457506106a15750f35b6106aa906121ed565b6106b15780f35b80fd5b513d84823e3d90fd5b5050fd5b92600319926080925036840183136105cd578035916001600160401b03958684116105df57838301958436030112610b0c5780602319360112610b0c57606435966001600160a01b03808916890361024e5761071b6125bc565b50825193610728856121bc565b60008552600060208096015261077c604461077760648901359861074b8c612287565b507f000000000000000000000000000000000000000000000000000000000000000092839101356127bc565b6127a9565b95808710610aef575061078f8633612970565b610799868961260a565b916107a38a612287565b928651906107b0826121bc565b60243582528882019160443583526107c66125bc565b505193843403610ad957825180610979575b50918593916108339f96936107ef8e999795612298565b925115159263ffffffff8c519761080589612200565b1687528c8701528a86015260608501528684015287516302637a4560e41b81529d8e9586948593840161254e565b03927f0000000000000000000000000000000000000000000000000000000000000000165af197881561096d578198610902575b50508060c097815194610879866121bc565b808652848601978189527ffff873bb909b73d08a8c1af4b21779e87103bb8ea8cf3b3a0067eb8526b8b80a6108d26108b2855193612287565b865163ffffffff9091168152602081019490945233939081906040820190565b0390a3815197815189528482015116848901520151908151908701520151606085015251908301525160a0820152f35b909750843d8611610966575b6109188183612236565b8101908581830312610962578251986109308a61221b565b81518a52848201519089821682036106b157508392838b93610958938860c09e015201612526565b8282015297610867565b8880fd5b503d61090e565b509051903d90823e3d90fd5b895163393f876560e21b81527f00000000000000000000000000000000000000000000000000000000000000008916908c818881855afa908115610acf57908a918c91610a91575b5016918215610a81578a80610a33938f938f5190858201926323b872dd60e01b84523360248401526044830152606482015260648152610a0081612200565b519082875af13d15610a78578c3d610a23610a1a82612380565b92519283612236565b81528c81933d92013e5b83612a14565b8051908c8215159283610a5f575b505050156107d857846024918b5191635274afe760e01b8352820152fd5b610a6f93508201810191016125f2565b15388c81610a41565b60609150610a2d565b8b516329b99a9560e11b81528790fd5b8092508e8092503d8311610ac8575b610aaa8183612236565b81010312610ac457518981168103610ac4578990386109c1565b8a80fd5b503d610aa0565b8c513d8d823e3d90fd5b88516304fb820960e51b81523481860152602490fd5b84516371c4efed60e01b8152918201879052602482015260449150fd5b8680fd5b8493915060209360031991858336011261033a576001600160401b039285358481116105db57610b439036908801612257565b9290845b848110610c20575050505050825190638e9e709960e01b825280828681335afa928315610c14578193610b9b575b505050610b979151938493638351eea760e01b85528401526024830190611fb3565b0390fd5b909192503d8083853e610bae8185612236565b8301928681850312610253578051918211610253570182601f8201121561033a57805191610bdb83612380565b93610be886519586612236565b8385528784840101116106b157508291610c0b918780610b979796019101611f90565b90918580610b75565b508351903d90823e3d90fd5b8060051b82013561013e1983360301811215610b0c578201610c4181612287565b610c628c830135809263ffffffff1660005260016020526040600020541490565b15610d4057610c7561010083018361232d565b868401356001600160a01b03811693919290849003610ac457610c9c61012086018661232d565b939092303b15610d7257908f9695949392918f8f91815199633411683760e21b8b5263ffffffff610ccc8b6120af565b16908b015260248a0152870135908116809103610d6e5787958e979587958e610d178f97899760c099610d2b9860448b015260a08d013560648b015260848a015260e489019161235f565b9360a48701528584030160c486015261235f565b03920135305af18015610d6457908791610d50575b5050610d4b906122d0565b610b47565b610d59906121ed565b6105cd57858b610d40565b89513d89823e3d90fd5b8d80fd5b8c80fd5b50503461025357606036600319011261025357610d9161209c565b90610d9a6120db565b93604435906001600160401b0382116106b1575091610dc3610dde9592610dcb94369101612004565b929091612400565b9051918291602083526020830190611fb3565b0390f35b5050503461033a57602036600319011261033a578060209263ffffffff610e0761209c565b1681526001845220549051908152f35b5050903461025357602091826003193601126105db576001600160401b039281358481116105cd57838693610e50879336908301612257565b9091610e5a6127dc565b865b828110610f50575050825194818187018288525283860192848360051b88010195819589925b858410610eb3578a7fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b6748b8b038ca180f35b9091929394959697603f198a82030188528835605e1983360301811215610f4c57820163ffffffff610ee4826120af565b1682528681013561ffff811680910361024e578783015283810135601e1982360301811215610d7257018681019035858111610d72578036038213610d7257610f3c88928392600195606090818a820152019161235f565b9a01980196959401929190610e82565b8b80fd5b610f75610f6f610f66838688999a9b97986122f5565b8881019061232d565b906124e9565b610f8c610f838286886122f5565b8781019061232d565b63ffffffff610fa4610f9f85898b6122f5565b612287565b168a5260038552878a2085610fba85898b6122f5565b013561ffff8116809103610f4c57600052855287600020918982116110e757610fe383546120ec565b90601f918281116110a2575b508b91831160011461103957611023949392918c918361102e575b50508160011b916000199060031b1c19161790556122d0565b959493929195610e5c565b013590508c8061100a565b838c52868c2091601f1984168d5b8982821061108c575050908461102397969594939210611072575b505050600190811b0190556122d0565b0135600019600384901b60f8161c191690558b8080611062565b6001849682939587013581550195019201611047565b848d52878d208380860160051c8201928a87106110de575b0160051c01908d905b8281106110d1575050610fef565b6001918155018d906110c3565b925081926110ba565b634e487b7160e01b8b526041855260248bfd5b5050503461033a578160031936011261033a5760025490516001600160a01b039091168152602090f35b5050503461033a578060031936011261033a57602090611156611145611fd8565b60243590611151612a77565b61281d565b5160018152f35b5050503461033a578160031936011261033a5751908152602090f35b5050503461033a578160031936011261033a57602090517f00000000000000000000000000000000000000000000000000000000000000008152f35b8385346106b157806003193601126106b157508051600091600b546111d9816120ec565b808452906001908181169081156112735750600114611216575b505061120482610dde940383612236565b51918291602083526020830190611fb3565b600b600090815294507f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db95b82861061125b5750505091810160200191611204826111f3565b80546020878701810191909152909501948101611241565b610dde965085925060209150926112049360ff191682840152151560051b82010194506111f3565b5050503461033a578160031936011261033a57905490516001600160a01b039091168152602090f35b5050503461033a578160031936011261033a576020905160068152f35b5050503461033a578160031936011261033a57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5050503461033a578060031936011261033a579060209161134561209c565b5051908152f35b84346106b157806003193601126106b1576113656127dc565b600080546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5050503461033a57602036600319011261033a5760209181906001600160a01b036113cf611fd8565b1681526005845220549051908152f35b50509034610253576020366003190112610253577ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d441419791602091611420611fd8565b6114286127dc565b82546001600160a01b0319166001600160a01b039190911690811790925551908152a180f35b5050503461033a578160031936011261033a57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5050503461033a578060031936011261033a576020906114d06114b461209c565b6024359063ffffffff1660005260016020526040600020541490565b90519015158152f35b5050503461033a57602036600319011261033a576020906114f8611fd8565b90519060018060a01b03807f0000000000000000000000000000000000000000000000000000000000000000169116148152f35b5050503461033a578060031936011261033a5780610dde9261ffff6115859361155361209c565b9263ffffffff6115616120db565b94168152600360205220911660005260205261120481600020825193848092612126565b0383612236565b84833461033a57602036600319011261033a576115b190356115ac612a77565b612970565b80f35b8492915034610253576003199084823601126105db578235906001600160401b03821161175b578184019282360301126105db576024359081151580920361175b57600060208751611605816121bc565b8281520152611621604461077760648401359361074b87612287565b9080821061173e5750916116a694939161164761163f88958461260a565b919093612287565b92600060208751611657816121bc565b828152015261166584612298565b63ffffffff87519561167687612200565b168552602085015285840152606083015260808201528251631bb8518b60e31b815294859283923091840161254e565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9182156117325781926116f6575b505060208251918051835201516020820152f35b90928092503d831161172b575b61170d8183612236565b81019082818303126105db57611724929350612526565b82806116e2565b503d611703565b508251903d90823e3d90fd5b86516371c4efed60e01b8152808601929092526024820152604490fd5b8480fd5b5050503461033a578060031936011261033a577f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b9061179c61209c565b6117db602435926117ab6127dc565b63ffffffff831686526001602052838187205551928392836020909392919363ffffffff60408201951681520152565b0390a180f35b5050503461033a578160031936011261033a576020905160128152f35b505082346106b15760603660031901126106b15761181a611fd8565b611822611fee565b916044359361182f612a77565b9160018060a01b039187838616928381526006602052209284169283600052602052876000205493600019850361186f575b6020896111568a8a8a61281d565b8785106118dd575081156118c65782156118af57506000908152600660209081528782209282529182528690209185900390915582906111568780611861565b6024906000895191634a1406b160e11b8352820152fd5b602490600089519163e602df0560e01b8352820152fd5b8851637dc7a0d960e11b81526001600160a01b0390911691810191825260208201859052604082018890529081906060010390fd5b5050503461033a578160031936011261033a576020905160018152f35b5050503461033a578160031936011261033a576020906007549051908152f35b8385346106b157806003193601126106b1575080516001815260016020820152f35b8385346106b157806003193601126106b15750805162b9270b60e21b815260016020820152f35b5050503461033a578160031936011261033a576020905160028152f35b90506119c036612031565b509197939692959394936001600160a01b0392507f000000000000000000000000000000000000000000000000000000000000000083169150338203611c5a57611a11611a0c86612287565b612298565b6020860135809103611c24575088602011611c2057611a809287351698611a3881896123d2565b6001600160c01b03199591869190358281169160088110611c0a57507f000000000000000000000000000000000000000000000000000000000000000092505060c01c6127a9565b97611a8a87612287565b508a15611bf357908b94939291611aa18a8d6128fd565b60288211611adc575b858c8c7fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c8d8d6104b36104958f612287565b88880135906001600160401b0382168203610b0c57611b5093611b086104ec85604c966104e68e612287565b918b5197889460c01b16602085015263ffffffff60e01b911b1660288301528a602c830152611b408151809260208686019101611f90565b810103602c810185520183612236565b803b15610253578883611b9095885196879586948593633e5ac80960e11b85528401528c6024840152836044840152608060648401526084830190611fb3565b03925af18015611be957611baa575b868180808080611aaa565b6104957fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c94939297611bde6104b3936121ed565b979293945050611b9f565b83513d89823e3d90fd5b875163ec442f0560e01b81528087018d9052602490fd5b8391925060080360031b1b161685903880610409565b8980fd5b84610b978892611c3389612287565b935163309afaf360e21b815263ffffffff9094169284019283526020830152829160400190565b85516391ac5e4f60e01b81523381860152602490fd5b5050346102535782600319360112610253575490516001600160a01b03909116815260209150f35b848484923461025357600319916020368401811361175b578535926001600160401b0394858511610b0c57843603011261175b5784818351611cd9816121bc565b828152015284818351611ceb816121bc565b8281520152815191611cfc836121bc565b858352818301958587528151978389019689881090881117611dfa57868352818952611d37604461077760648901359861074b818601612287565b95808710611ddd575050929190805197611d50896121bc565b85895282890195865281519760a0890194518952518389015260a0828901525180935260c0870160c08460051b8901019694915b848310611d9f57895160608a0152865160808a015288880389f35b9091929394968480611dcd60019360bf198d820301875285838d518051845201519181858201520190611fb3565b9901930193019194939290611d84565b83516371c4efed60e01b8152918201879052602482015260449150fd5b634e487b7160e01b825260419052602490fd5b505034610253578160031936011261025357611e27611fd8565b602435936001600160a01b0380611e3c612a77565b16928315611ea85716928315611e93575060208581968684867f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925965260068552818120888252855220558551908152a35160018152f35b602491855191634a1406b160e11b8352820152fd5b855163e602df0560e01b8152808601849052602490fd5b8590853461025357826003193601126102535782600a54611edf816120ec565b80855291600191808316908115611f685750600114611f0b575b50505061120482610dde940383612236565b9450600a85527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a85b828610611f5057505050611204826020610dde9582010194611ef9565b80546020878701810191909152909501948101611f33565b610dde97508693506020925061120494915060ff191682840152151560051b82010194611ef9565b60005b838110611fa35750506000910152565b8181015183820152602001611f93565b90602091611fcc81518092818552858086019101611f90565b601f01601f1916010190565b600435906001600160a01b038216820361024e57565b602435906001600160a01b038216820361024e57565b9181601f8401121561024e578235916001600160401b03831161024e576020838186019501011161024e57565b600319810160e0811261024e5760601361024e57600491606435916001600160401b039060843582811161024e578161206b918701612004565b9093909260a4356001600160a01b038116810361024e579260c43591821161024e57612098918801612004565b9091565b6004359063ffffffff8216820361024e57565b359063ffffffff8216820361024e57565b3461024e57600036600319011261024e576020604051308152f35b6024359061ffff8216820361024e57565b90600182811c9216801561211c575b602083101461210657565b634e487b7160e01b600052602260045260246000fd5b91607f16916120fb565b9060009291805491612137836120ec565b9182825260019384811690816000146121995750600114612159575b50505050565b90919394506000526020928360002092846000945b838610612185575050505001019038808080612153565b80548587018301529401938590820161216e565b9294505050602093945060ff191683830152151560051b01019038808080612153565b604081019081106001600160401b038211176121d757604052565b634e487b7160e01b600052604160045260246000fd5b6001600160401b0381116121d757604052565b60a081019081106001600160401b038211176121d757604052565b606081019081106001600160401b038211176121d757604052565b90601f801991011681019081106001600160401b038211176121d757604052565b9181601f8401121561024e578235916001600160401b03831161024e576020808501948460051b01011161024e57565b3563ffffffff8116810361024e5790565b63ffffffff168060005260016020526040600020549081156122b8575090565b6024906040519063f6ff4fb760e01b82526004820152fd5b60001981146122df5760010190565b634e487b7160e01b600052601160045260246000fd5b91908110156123175760051b81013590605e198136030182121561024e570190565b634e487b7160e01b600052603260045260246000fd5b903590601e198136030182121561024e57018035906001600160401b03821161024e5760200191813603831361024e57565b908060209392818452848401376000828201840152601f01601f1916010190565b6001600160401b0381116121d757601f01601f191660200190565b9291926123a782612380565b916123b56040519384612236565b82948184528183011161024e578281602093846000960137010152565b9060281161024e5760200190600890565b909291928360281161024e57831161024e57602801916027190190565b6115859092919263ffffffff6000911681526020936003855261ffff604083209116825284526124396040822060405193848092612126565b8151156124da5784156124d2576002851015612474575050610b9790604051938493639a6d49cd60e01b85526004850152602484019161235f565b90919361248181866124e9565b8060021161033a57916124cf9391601e9360405196836124aa8995518092888089019101611f90565b8401906001199560028785019201908301370190848201520390810184520182612236565b90565b509250505090565b505090506124cf91369161239b565b908060021161024e576003823560f01c03612502575050565b610b97604051928392639a6d49cd60e01b845260206004850152602484019161235f565b919082604091031261024e5760405161253e816121bc565b6020808294805184520151910152565b906020909392936040835263ffffffff815116604084015281810151606084015260806125a261258c604084015160a08488015260e0870190611fb3565b6060840151868203603f190160a0880152611fb3565b910151151560c08401526001600160a01b03909416910152565b604051906125c98261221b565b81600081526000602082015260408051916125e3836121bc565b60008352600060208401520152565b9081602091031261024e5751801515810361024e5790565b909160206126d061264082850135957f0000000000000000000000000000000000000000000000000000000000000000906127bc565b6126506104ec60a087018761232d565b8051158015979190612777576126aa91606891604051948592888401526001600160401b0360c01b9060c01b16604083015233604883015261269a81518092898686019101611f90565b8101036048810184520182612236565b935b849560001461276f576002905b610dc36126c582612287565b91608081019061232d565b6004549093906001600160a01b0316806126e957505050565b61271683916127289360405180958194829363043a78eb60e01b8452604060048501526044840190611fb3565b8281036003190160248401528a611fb3565b03915afa80156127635761273a575050565b8161275992903d1061275c575b6127518183612236565b8101906125f2565b50565b503d612747565b6040513d6000823e3d90fd5b6001906126b9565b509060405191848301526001600160401b0360c01b9060c01b166040820152602881526127a38161221b565b936126ac565b818102929181159184041417156122df57565b81156127c6570490565b634e487b7160e01b600052601260045260246000fd5b6000546001600160a01b03908116816127f3612a77565b16036127fc5750565b602490612807612a77565b60405163118cdaa760e01b815291166004820152fd5b916001600160a01b038084169283156128e457169283156128cb576000908382526005602052604082205490838210612899575091604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef95876020965260058652038282205586815220818154019055604051908152a3565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101839052606490fd5b60405163ec442f0560e01b815260006004820152602490fd5b604051634b637e8f60e11b815260006004820152602490fd5b600754908282018092116122df576007919091556001600160a01b0316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020908461295a5780600754036007555b604051908152a3565b8484526005825260408420818154019055612951565b91906001600160a01b0383169081156128e457816000526005602052604060002054938185106129e257506020817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9260009596858752600584520360408620558060075403600755604051908152a3565b60405163391434e360e21b81526001600160a01b03919091166004820152602481018590526044810191909152606490fd5b90612a3b5750805115612a2957805190602001fd5b604051630a12f52160e11b8152600490fd5b81511580612a6e575b612a4c575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b15612a44565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161480612ac5575b15612ac15760131936013681116122df573560601c90565b3390565b506014361015612aa956fea264697066735822122050ebf404932aae0133fd7f71efb6bbe703a8d59722b8a3d20496c7def9ebe22e64736f6c6343000814003300000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001000000000000000000000000006edce65403992e310a62460808c4b910d972f10f0000000000000000000000000319aefbf6206142b4be626b395e0dbbe8583e5c00000000000000000000000070296897e52ac0a3737a11b95f8ba294cbe67f6200000000000000000000000000000000000000000000000000000002540be400000000000000000000000000000000000000000000000000000000000000000b5345434f4e44546f6b656e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000065345434f4e440000000000000000000000000000000000000000000000000000