[ { "inputs": [ { "internalType": "address", "name": "_lzEndpoint", "type": "address" }, { "internalType": "contract IYieldBoxBase", "name": "_yieldBox", "type": "address" }, { "internalType": "address", "name": "_owner", "type": "address" }, { "internalType": "address payable", "name": "_leverageModule", "type": "address" }, { "internalType": "address payable", "name": "_marketModule", "type": "address" }, { "internalType": "address payable", "name": "_optionsModule", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "indexed": false, "internalType": "bytes", "name": "_srcAddress", "type": "bytes" }, { "indexed": false, "internalType": "uint64", "name": "_nonce", "type": "uint64" }, { "indexed": false, "internalType": "bytes32", "name": "_hash", "type": "bytes32" } ], "name": "CallOFTReceivedSuccess", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "old", "type": "address" }, { "indexed": true, "internalType": "address", "name": "_new", "type": "address" } ], "name": "ConservatorUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_old", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_new", "type": "uint256" } ], "name": "FlashMintFeeUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_old", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_new", "type": "uint256" } ], "name": "MaxFlashMintUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "indexed": false, "internalType": "bytes", "name": "_srcAddress", "type": "bytes" }, { "indexed": false, "internalType": "uint64", "name": "_nonce", "type": "uint64" }, { "indexed": false, "internalType": "bytes", "name": "_payload", "type": "bytes" }, { "indexed": false, "internalType": "bytes", "name": "_reason", "type": "bytes" } ], "name": "MessageFailed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_address", "type": "address" } ], "name": "NonContractAddress", "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": "bool", "name": "oldState", "type": "bool" }, { "indexed": false, "internalType": "bool", "name": "newState", "type": "bool" } ], "name": "PausedUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "indexed": true, "internalType": "address", "name": "_to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "ReceiveFromChain", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "indexed": false, "internalType": "bytes", "name": "_srcAddress", "type": "bytes" }, { "indexed": false, "internalType": "uint64", "name": "_nonce", "type": "uint64" }, { "indexed": false, "internalType": "bytes32", "name": "_payloadHash", "type": "bytes32" } ], "name": "RetryMessageSuccess", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "indexed": true, "internalType": "address", "name": "_from", "type": "address" }, { "indexed": true, "internalType": "bytes32", "name": "_toAddress", "type": "bytes32" }, { "indexed": false, "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "SendToChain", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_for", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "_status", "type": "bool" } ], "name": "SetBurnerStatus", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "indexed": false, "internalType": "uint16", "name": "_type", "type": "uint16" }, { "indexed": false, "internalType": "uint256", "name": "_minDstGas", "type": "uint256" } ], "name": "SetMinDstGas", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_for", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "_status", "type": "bool" } ], "name": "SetMinterStatus", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "precrime", "type": "address" } ], "name": "SetPrecrime", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint16", "name": "_remoteChainId", "type": "uint16" }, { "indexed": false, "internalType": "bytes", "name": "_path", "type": "bytes" } ], "name": "SetTrustedRemote", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint16", "name": "_remoteChainId", "type": "uint16" }, { "indexed": false, "internalType": "bytes", "name": "_remoteAddress", "type": "bytes" } ], "name": "SetTrustedRemoteAddress", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "_useCustomAdapterParams", "type": "bool" } ], "name": "SetUseCustomAdapterParams", "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": "DEFAULT_PAYLOAD_SIZE_LIMIT", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "NO_EXTRA_GAS", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PT_SEND", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PT_SEND_AND_CALL", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "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": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "allowedBurner", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "allowedMinter", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "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": "address", "name": "_from", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_srcAddress", "type": "bytes" }, { "internalType": "uint64", "name": "_nonce", "type": "uint64" }, { "internalType": "bytes32", "name": "_from", "type": "bytes32" }, { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "bytes", "name": "_payload", "type": "bytes" }, { "internalType": "uint256", "name": "_gasForCall", "type": "uint256" } ], "name": "callOnOFTReceived", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "circulatingSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "conservator", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "", "type": "uint16" }, { "internalType": "bytes", "name": "", "type": "bytes" }, { "internalType": "uint64", "name": "", "type": "uint64" } ], "name": "creditedPackets", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "internalType": "bytes32", "name": "_toAddress", "type": "bytes32" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "bytes", "name": "_payload", "type": "bytes" }, { "internalType": "uint64", "name": "_dstGasForCall", "type": "uint64" }, { "internalType": "bool", "name": "_useZro", "type": "bool" }, { "internalType": "bytes", "name": "_adapterParams", "type": "bytes" } ], "name": "estimateSendAndCallFee", "outputs": [ { "internalType": "uint256", "name": "nativeFee", "type": "uint256" }, { "internalType": "uint256", "name": "zroFee", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "internalType": "bytes32", "name": "_toAddress", "type": "bytes32" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "bool", "name": "_useZro", "type": "bool" }, { "internalType": "bytes", "name": "_adapterParams", "type": "bytes" } ], "name": "estimateSendFee", "outputs": [ { "internalType": "uint256", "name": "nativeFee", "type": "uint256" }, { "internalType": "uint256", "name": "zroFee", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "uint256", "name": "paymentTokenAmount", "type": "uint256" }, { "internalType": "uint256", "name": "oTAPTokenID", "type": "uint256" }, { "internalType": "address", "name": "paymentToken", "type": "address" }, { "internalType": "uint256", "name": "tapAmount", "type": "uint256" } ], "internalType": "struct ITapiocaOptionsBrokerCrossChain.IExerciseOptionsData", "name": "optionsData", "type": "tuple" }, { "components": [ { "internalType": "uint16", "name": "lzDstChainId", "type": "uint16" }, { "internalType": "address", "name": "zroPaymentAddress", "type": "address" }, { "internalType": "uint256", "name": "extraGas", "type": "uint256" } ], "internalType": "struct ITapiocaOptionsBrokerCrossChain.IExerciseLZData", "name": "lzData", "type": "tuple" }, { "components": [ { "internalType": "bool", "name": "withdrawOnAnotherChain", "type": "bool" }, { "internalType": "address", "name": "tapOftAddress", "type": "address" }, { "internalType": "uint16", "name": "lzDstChainId", "type": "uint16" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "address", "name": "zroPaymentAddress", "type": "address" }, { "internalType": "uint256", "name": "extraGas", "type": "uint256" } ], "internalType": "struct ITapiocaOptionsBrokerCrossChain.IExerciseLZSendTapData", "name": "tapSendData", "type": "tuple" }, { "components": [ { "internalType": "bool", "name": "permitAll", "type": "bool" }, { "internalType": "bool", "name": "allowFailure", "type": "bool" }, { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bool", "name": "permitBorrow", "type": "bool" }, { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "internalType": "struct ICommonData.IApproval[]", "name": "approvals", "type": "tuple[]" } ], "name": "exerciseOption", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "", "type": "uint16" }, { "internalType": "bytes", "name": "", "type": "bytes" }, { "internalType": "uint64", "name": "", "type": "uint64" } ], "name": "failedMessages", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "flashFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "contract IERC3156FlashBorrower", "name": "receiver", "type": "address" }, { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "flashLoan", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "flashMintFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_srcAddress", "type": "bytes" } ], "name": "forceResumeReceive", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_version", "type": "uint16" }, { "internalType": "uint16", "name": "_chainId", "type": "uint16" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "_configType", "type": "uint256" } ], "name": "getConfig", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_remoteChainId", "type": "uint16" } ], "name": "getTrustedRemoteAddress", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "uint256", "name": "collateralAmount", "type": "uint256" }, { "internalType": "uint256", "name": "borrowAmount", "type": "uint256" }, { "components": [ { "internalType": "address", "name": "tokenOut", "type": "address" }, { "internalType": "uint256", "name": "amountOutMin", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "internalType": "struct IUSDOBase.ILeverageSwapData", "name": "swapData", "type": "tuple" }, { "components": [ { "internalType": "uint256", "name": "srcExtraGasLimit", "type": "uint256" }, { "internalType": "uint16", "name": "lzSrcChainId", "type": "uint16" }, { "internalType": "uint16", "name": "lzDstChainId", "type": "uint16" }, { "internalType": "address", "name": "zroPaymentAddress", "type": "address" }, { "internalType": "bytes", "name": "dstAirdropAdapterParam", "type": "bytes" }, { "internalType": "bytes", "name": "srcAirdropAdapterParam", "type": "bytes" }, { "internalType": "address", "name": "refundAddress", "type": "address" } ], "internalType": "struct IUSDOBase.ILeverageLZData", "name": "lzData", "type": "tuple" }, { "components": [ { "internalType": "address", "name": "swapper", "type": "address" }, { "internalType": "address", "name": "magnetar", "type": "address" }, { "internalType": "address", "name": "tOft", "type": "address" }, { "internalType": "address", "name": "srcMarket", "type": "address" } ], "internalType": "struct IUSDOBase.ILeverageExternalContractsData", "name": "externalData", "type": "tuple" }, { "internalType": "bytes", "name": "airdropAdapterParams", "type": "bytes" }, { "components": [ { "internalType": "bool", "name": "permitAll", "type": "bool" }, { "internalType": "bool", "name": "allowFailure", "type": "bool" }, { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bool", "name": "permitBorrow", "type": "bool" }, { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "internalType": "struct ICommonData.IApproval[]", "name": "approvals", "type": "tuple[]" } ], "name": "initMultiHopBuy", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "name": "isLdChain", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_srcAddress", "type": "bytes" } ], "name": "isTrustedRemote", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "leverageModule", "outputs": [ { "internalType": "contract USDOLeverageModule", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "lzEndpoint", "outputs": [ { "internalType": "contract ILayerZeroEndpoint", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_srcAddress", "type": "bytes" }, { "internalType": "uint64", "name": "_nonce", "type": "uint64" }, { "internalType": "bytes", "name": "_payload", "type": "bytes" } ], "name": "lzReceive", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "marketModule", "outputs": [ { "internalType": "contract USDOMarketModule", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "maxFlashLoan", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxFlashMint", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "", "type": "uint16" }, { "internalType": "uint16", "name": "", "type": "uint16" } ], "name": "minDstGasLookup", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_srcAddress", "type": "bytes" }, { "internalType": "uint64", "name": "_nonce", "type": "uint64" }, { "internalType": "bytes", "name": "_payload", "type": "bytes" } ], "name": "nonblockingLzReceive", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "optionsModule", "outputs": [ { "internalType": "contract USDOOptionsModule", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "name": "payloadSizeLimitLookup", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "permit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "precrime", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint16", "name": "lzDstChainId", "type": "uint16" }, { "internalType": "address", "name": "zroPaymentAddress", "type": "address" }, { "internalType": "bytes", "name": "adapterParams", "type": "bytes" }, { "components": [ { "internalType": "address", "name": "magnetar", "type": "address" }, { "internalType": "address", "name": "singularity", "type": "address" }, { "internalType": "address", "name": "bigBang", "type": "address" } ], "internalType": "struct ICommonData.ICommonExternalContracts", "name": "externalData", "type": "tuple" }, { "components": [ { "internalType": "bool", "name": "removeAssetFromSGL", "type": "bool" }, { "internalType": "uint256", "name": "removeAmount", "type": "uint256" }, { "internalType": "bool", "name": "repayAssetOnBB", "type": "bool" }, { "internalType": "uint256", "name": "repayAmount", "type": "uint256" }, { "internalType": "bool", "name": "removeCollateralFromBB", "type": "bool" }, { "internalType": "uint256", "name": "collateralAmount", "type": "uint256" }, { "components": [ { "internalType": "bool", "name": "exit", "type": "bool" }, { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "uint256", "name": "oTAPTokenID", "type": "uint256" } ], "internalType": "struct ITapiocaOptionsBroker.IOptionsExitData", "name": "exitData", "type": "tuple" }, { "components": [ { "internalType": "bool", "name": "unlock", "type": "bool" }, { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "internalType": "struct ITapiocaOptionLiquidityProvision.IOptionsUnlockData", "name": "unlockData", "type": "tuple" }, { "components": [ { "internalType": "bool", "name": "withdraw", "type": "bool" }, { "internalType": "uint256", "name": "withdrawLzFeeAmount", "type": "uint256" }, { "internalType": "bool", "name": "withdrawOnOtherChain", "type": "bool" }, { "internalType": "uint16", "name": "withdrawLzChainId", "type": "uint16" }, { "internalType": "bytes", "name": "withdrawAdapterParams", "type": "bytes" } ], "internalType": "struct ICommonData.IWithdrawParams", "name": "assetWithdrawData", "type": "tuple" }, { "components": [ { "internalType": "bool", "name": "withdraw", "type": "bool" }, { "internalType": "uint256", "name": "withdrawLzFeeAmount", "type": "uint256" }, { "internalType": "bool", "name": "withdrawOnOtherChain", "type": "bool" }, { "internalType": "uint16", "name": "withdrawLzChainId", "type": "uint16" }, { "internalType": "bytes", "name": "withdrawAdapterParams", "type": "bytes" } ], "internalType": "struct ICommonData.IWithdrawParams", "name": "collateralWithdrawData", "type": "tuple" } ], "internalType": "struct IUSDOBase.IRemoveAndRepay", "name": "removeAndRepayData", "type": "tuple" }, { "components": [ { "internalType": "bool", "name": "permitAll", "type": "bool" }, { "internalType": "bool", "name": "allowFailure", "type": "bool" }, { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bool", "name": "permitBorrow", "type": "bool" }, { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "internalType": "struct ICommonData.IApproval[]", "name": "approvals", "type": "tuple[]" } ], "name": "removeAsset", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "address", "name": "to", "type": "address" } ], "name": "rescueEth", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_srcAddress", "type": "bytes" }, { "internalType": "uint64", "name": "_nonce", "type": "uint64" }, { "internalType": "bytes", "name": "_payload", "type": "bytes" } ], "name": "retryMessage", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_from", "type": "address" }, { "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "internalType": "bytes32", "name": "_toAddress", "type": "bytes32" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "bytes", "name": "_payload", "type": "bytes" }, { "internalType": "uint64", "name": "_dstGasForCall", "type": "uint64" }, { "components": [ { "internalType": "address payable", "name": "refundAddress", "type": "address" }, { "internalType": "address", "name": "zroPaymentAddress", "type": "address" }, { "internalType": "bytes", "name": "adapterParams", "type": "bytes" } ], "internalType": "struct ICommonOFT.LzCallParams", "name": "_callParams", "type": "tuple" } ], "name": "sendAndCall", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_from", "type": "address" }, { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint16", "name": "lzDstChainId", "type": "uint16" }, { "internalType": "address", "name": "zroPaymentAddress", "type": "address" }, { "components": [ { "internalType": "bool", "name": "repay", "type": "bool" }, { "internalType": "uint256", "name": "depositAmount", "type": "uint256" }, { "internalType": "uint256", "name": "repayAmount", "type": "uint256" }, { "internalType": "address", "name": "marketHelper", "type": "address" }, { "internalType": "address", "name": "market", "type": "address" }, { "internalType": "bool", "name": "removeCollateral", "type": "bool" }, { "internalType": "uint256", "name": "removeCollateralShare", "type": "uint256" }, { "components": [ { "internalType": "bool", "name": "lock", "type": "bool" }, { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "uint128", "name": "lockDuration", "type": "uint128" }, { "internalType": "uint128", "name": "amount", "type": "uint128" }, { "internalType": "uint256", "name": "fraction", "type": "uint256" } ], "internalType": "struct ITapiocaOptionLiquidityProvision.IOptionsLockData", "name": "lockData", "type": "tuple" }, { "components": [ { "internalType": "bool", "name": "participate", "type": "bool" }, { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "uint256", "name": "tOLPTokenId", "type": "uint256" } ], "internalType": "struct ITapiocaOptionsBroker.IOptionsParticipateData", "name": "participateData", "type": "tuple" } ], "internalType": "struct IUSDOBase.ILendOrRepayParams", "name": "lendParams", "type": "tuple" }, { "components": [ { "internalType": "bool", "name": "permitAll", "type": "bool" }, { "internalType": "bool", "name": "allowFailure", "type": "bool" }, { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bool", "name": "permitBorrow", "type": "bool" }, { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "internalType": "struct ICommonData.IApproval[]", "name": "approvals", "type": "tuple[]" }, { "components": [ { "internalType": "bool", "name": "withdraw", "type": "bool" }, { "internalType": "uint256", "name": "withdrawLzFeeAmount", "type": "uint256" }, { "internalType": "bool", "name": "withdrawOnOtherChain", "type": "bool" }, { "internalType": "uint16", "name": "withdrawLzChainId", "type": "uint16" }, { "internalType": "bytes", "name": "withdrawAdapterParams", "type": "bytes" } ], "internalType": "struct ICommonData.IWithdrawParams", "name": "withdrawParams", "type": "tuple" }, { "internalType": "bytes", "name": "adapterParams", "type": "bytes" } ], "name": "sendAndLendOrRepay", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "address", "name": "leverageFor", "type": "address" }, { "components": [ { "internalType": "uint256", "name": "srcExtraGasLimit", "type": "uint256" }, { "internalType": "uint16", "name": "lzSrcChainId", "type": "uint16" }, { "internalType": "uint16", "name": "lzDstChainId", "type": "uint16" }, { "internalType": "address", "name": "zroPaymentAddress", "type": "address" }, { "internalType": "bytes", "name": "dstAirdropAdapterParam", "type": "bytes" }, { "internalType": "bytes", "name": "srcAirdropAdapterParam", "type": "bytes" }, { "internalType": "address", "name": "refundAddress", "type": "address" } ], "internalType": "struct IUSDOBase.ILeverageLZData", "name": "lzData", "type": "tuple" }, { "components": [ { "internalType": "address", "name": "tokenOut", "type": "address" }, { "internalType": "uint256", "name": "amountOutMin", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "internalType": "struct IUSDOBase.ILeverageSwapData", "name": "swapData", "type": "tuple" }, { "components": [ { "internalType": "address", "name": "swapper", "type": "address" }, { "internalType": "address", "name": "magnetar", "type": "address" }, { "internalType": "address", "name": "tOft", "type": "address" }, { "internalType": "address", "name": "srcMarket", "type": "address" } ], "internalType": "struct IUSDOBase.ILeverageExternalContractsData", "name": "externalData", "type": "tuple" } ], "name": "sendForLeverage", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_from", "type": "address" }, { "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "internalType": "bytes32", "name": "_toAddress", "type": "bytes32" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "components": [ { "internalType": "address payable", "name": "refundAddress", "type": "address" }, { "internalType": "address", "name": "zroPaymentAddress", "type": "address" }, { "internalType": "bytes", "name": "adapterParams", "type": "bytes" } ], "internalType": "struct ICommonOFT.LzCallParams", "name": "_callParams", "type": "tuple" } ], "name": "sendFrom", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_for", "type": "address" }, { "internalType": "bool", "name": "_status", "type": "bool" } ], "name": "setBurnerStatus", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_version", "type": "uint16" }, { "internalType": "uint16", "name": "_chainId", "type": "uint16" }, { "internalType": "uint256", "name": "_configType", "type": "uint256" }, { "internalType": "bytes", "name": "_config", "type": "bytes" } ], "name": "setConfig", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_conservator", "type": "address" } ], "name": "setConservator", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_val", "type": "uint256" } ], "name": "setFlashMintFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_chainId", "type": "uint16" }, { "internalType": "bool", "name": "_isLdChain", "type": "bool" } ], "name": "setLdChain", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_val", "type": "uint256" } ], "name": "setMaxFlashMintable", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "internalType": "uint16", "name": "_packetType", "type": "uint16" }, { "internalType": "uint256", "name": "_minGas", "type": "uint256" } ], "name": "setMinDstGas", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_for", "type": "address" }, { "internalType": "bool", "name": "_status", "type": "bool" } ], "name": "setMinterStatus", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "internalType": "uint256", "name": "_size", "type": "uint256" } ], "name": "setPayloadSizeLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_precrime", "type": "address" } ], "name": "setPrecrime", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_version", "type": "uint16" } ], "name": "setReceiveVersion", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_version", "type": "uint16" } ], "name": "setSendVersion", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_path", "type": "bytes" } ], "name": "setTrustedRemote", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_remoteChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_remoteAddress", "type": "bytes" } ], "name": "setTrustedRemoteAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_useCustomAdapterParams", "type": "bool" } ], "name": "setUseCustomAdapterParams", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "sharedDecimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "token", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "lzDstChainId", "type": "uint16" }, { "internalType": "bytes", "name": "airdropAdapterParams", "type": "bytes" }, { "internalType": "address", "name": "zroPaymentAddress", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "components": [ { "internalType": "address payable", "name": "refundAddress", "type": "address" }, { "internalType": "address", "name": "zroPaymentAddress", "type": "address" }, { "internalType": "bytes", "name": "adapterParams", "type": "bytes" } ], "internalType": "struct ISendFrom.LzCallParams", "name": "sendFromData", "type": "tuple" }, { "components": [ { "internalType": "bool", "name": "permitAll", "type": "bool" }, { "internalType": "bool", "name": "allowFailure", "type": "bool" }, { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bool", "name": "permitBorrow", "type": "bool" }, { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "internalType": "struct ICommonData.IApproval[]", "name": "approvals", "type": "tuple[]" } ], "name": "triggerSendFrom", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "name": "trustedRemoteLookup", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "val", "type": "bool" } ], "name": "updatePause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "useCustomAdapterParams", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "yieldBox", "outputs": [ { "internalType": "contract IYieldBoxBase", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
6101c08060405234620007425760c081620067e3803803809162000024828562000763565b83398101031262000742576200003a8162000787565b60208201516001600160a01b03811681036200074257826200006160406020950162000787565b92620000706060830162000787565b916200008d60a0620000856080840162000787565b920162000787565b916040516200009c8162000747565b6004815287810190635553444f60e01b9687835260405197620000bf8962000747565b600190818a528b8a0195603160f81b875260405191620000df8362000747565b60048352808e8401526040519d8e620000f88162000747565b60048152015262000109336200079c565b6001600160a01b0316608052600860a05280516001600160401b039c908d8111620004cb57600b54928484811c9416801562000737575b602085101462000629578190601f94858111620006de575b5060209085831160011462000656576000926200064a575b5050600019600383901b1c191690841b17600b555b8051918d8311620004cb57600c54918483811c931680156200063f575b602084101462000629578282859411620005ce575b50602091831160011462000546576000926200053a575b5050600019600383901b1c191690821b17600c555b6402540be40060c0526080516040516303408e4760e41b815290602090829060049082906001600160a01b03165afa9081156200052e57600091620004e1575b5061ffff169081600052600f60205260406000203360005260205260406000209160ff199282848254161790556000526010602052604060002033600052602052604060002091825416179055600a60125569152d02c7e14af680000060135560e05251902094519020938061016052846101805261012096468852604051956020870192600080516020620067c38339815191528452604088015260608701524660808701523060a087015260a086528560c08101109060c087011117620004cb5760c0850160405284519020610100523061014052600080516020620067c38339815191526101a052601680546001600160a01b03199081166001600160a01b03958616179091556017805482169285169290921790915560188054909116918316919091179055600054339116036200048357506001600160a01b038116156200042f5762000375906200079c565b604051615fdf9182620007e4833960805182818161060f015281816108d201528181610a1d01528181610e7f015281816111af015281816125d40152818161293b015281816132ab015281816145c90152818161511d015281816153dc0152615b8b015260a05182611dce015260c05182615be5015260e05182612d4e01526101005182613aae01525181613b6901526101405181613a7801526101605181613afd01526101805181613b2301526101a05181613ada0152f35b60405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b60c060649162461bcd60e51b82820152602060c4820152602060e48201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657261010482015201fd5b634e487b7160e01b600052604160045260246000fd5b6020813d60201162000525575b81620004fd6020938362000763565b810103126200052157519061ffff821682036200051e575061ffff62000223565b80fd5b5080fd5b3d9150620004ee565b6040513d6000823e3d90fd5b015190503880620001ce565b600c60009081528594507fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7929190601f198516905b818110620005b5575084116200059b575b505050811b01600c55620001e3565b015160001960f88460031b161c191690553880806200058c565b828401518555879690940193602093840193016200057b565b90919250600c60005260206000208380860160051c820192602087106200061f575b91869588929594930160051c01915b8281106200060f575050620001b7565b60008155869550879101620005ff565b92508192620005f0565b634e487b7160e01b600052602260045260246000fd5b92607f1692620001a2565b01519050388062000170565b600b60009081528794507f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db9929190601f198516905b818110620006c557508411620006ab575b505050811b01600b5562000185565b015160001960f88460031b161c191690553880806200069c565b828401518555899690940193602093840193016200068b565b909150600b60005260206000208580850160051c820192602086106200072d575b918891869594930160051c01915b8281106200071d57505062000158565b600081558594508891016200070d565b92508192620006ff565b93607f169362000140565b600080fd5b604081019081106001600160401b03821117620004cb57604052565b601f909101601f19168101906001600160401b03821190821017620004cb57604052565b51906001600160a01b03821682036200074257565b600080546001600160a01b039283166001600160a01b03198216811783559216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a356fe6080604052600436101561001b575b361561001957600080fd5b005b60003560e01c80621d35671461055057806301ffc9a71461054b57806306fdde031461054657806307e0db1714610541578063095ea7b31461053c5780630df374831461053757806310ddb1371461053257806316d995a91461052d57806318160ddd1461048357806318e7fa19146105285780631d2a0e3d1461052357806323b872dd1461051e578063313ce567146105195780633644e51514610514578063365260b41461050f578063395093511461050a5780633b597150146105055780633d8b38f6146105005780633f1f4fa4146104fb5780633f241900146104f657806340c10f19146104f157806342d65a8d146104ec57806344770515146104e75780634c42899a146104e75780635b8c41e6146104e25780635c975abb146104dd5780635cffe9de146104d8578063613255ab146104d357806366ad5c8a146104ce578063695ef6bf146104c95780636cb2c958146104c457806370a08231146104bf578063715018a6146104ba5780637533d788146104b557806376203b48146104b0578063796fd43a146104ab5780637ecebe00146104a6578063857749b0146104a1578063862635681461049c57806389dd5602146104975780638cfd8f5c146104925780638da5cb5b1461048d5780639169d59e146104885780639358928b14610483578063940a1dc01461047e578063950c8a74146104795780639535f4dc1461047457806395d89b411461046f5780639bdb98121461046a5780639d3f4d1a146104655780639dc29fac146104605780639f38369a1461045b578063a457c2d714610456578063a4c51df514610451578063a6c3d1651461044c578063a9059cbb14610447578063b25ea8fb14610442578063b353aaa71461043d578063ba03a8d714610438578063baf3292d14610433578063bf2271ab1461042e578063c446183414610429578063cbed8b9c14610424578063ce8849ed1461041f578063cfd8b3d81461041a578063d1deba1f14610415578063d505accf14610410578063d9d98ce41461040b578063dd62ed3e14610406578063de40657714610401578063df2a5b3b146103fc578063e6a20ae6146103f7578063eab45d9c146103f2578063eaffd49a146103ed578063eb8d72b7146103e8578063ec6d062b146103e3578063ed629c5c146103de578063f00c298d146103d9578063f2fde38b146103d4578063f5b33dfa146103cf578063f5ecbdbc146103ca578063f8974de0146103c5578063fa74f0b5146103c05763fc0c546a0361000e5761348a565b6133d8565b613315565b613241565b613218565b613163565b6130f1565b6130ce565b613096565b612f6d565b612ee4565b612e86565b612e6a565b612d7d565b612d38565b612cee565b612cc3565b612b62565b612a25565b6129fc565b6129d3565b6128e7565b6128ca565b61282c565b612686565b61264e565b6125be565b61253d565b612513565b6123b1565b612320565b612280565b6121dd565b612181565b612163565b612118565b612074565b611fcf565b611f97565b611f79565b610ad6565b611ee1565b611eb8565b611e59565b611e30565b611df2565b611db4565b611d77565b611caf565b611a62565b611a0b565b6118d7565b61189a565b611768565b611685565b6115ff565b6115d6565b611439565b611416565b6113c2565b611216565b611195565b611132565b61108b565b611032565b610fd6565b610f4b565b610efb565b610df9565b610d7c565b610d60565b610d20565b610c84565b610b79565b610a7e565b6109f4565b6109b5565b610980565b6108a9565b6107c9565b61070c565b6105f8565b61ffff81160361056157565b600080fd5b9181601f84011215610561578235916001600160401b038311610561576020838186019501011161056157565b906080600319830112610561576004356105ac81610555565b916001600160401b039060243582811161056157816105cd91600401610566565b9390939260443581811681036105615792606435918211610561576105f491600401610566565b9091565b346105615761060636610593565b929493919291907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106c75761068c610694926100199761068561066b6106668a61ffff166000526001602052604060002090565b6119f0565b80519081841491826106bd575b508161069a575b50614acb565b36916112f4565b9236916112f4565b92614bcb565b90506106a73684866112f4565b602081519101209060208151910120143861067f565b1515915038610678565b60405162461bcd60e51b815260206004820152601e60248201527f4c7a4170703a20696e76616c696420656e64706f696e742063616c6c657200006044820152606490fd5b346105615760203660031901126105615760043563ffffffff60e01b811680910361056157602090631f7ecdf760e01b8114908115610751575b506040519015158152f35b6301ffc9a760e01b14905038610746565b600091031261056157565b60005b8381106107805750506000910152565b8181015183820152602001610770565b906020916107a98151809281855285808601910161076d565b601f01601f1916010190565b9060206107c6928181520190610790565b90565b34610561576000806003193601126108a65760405181600b546107eb81611920565b8084529060019081811690811561087e5750600114610825575b6108218461081581880382611296565b604051918291826107b5565b0390f35b600b8352602094507f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db95b82841061086b5750505081610821936108159282010193610805565b805485850187015292850192810161084f565b61082196506108159450602092508593915060ff191682840152151560051b82010193610805565b80fd5b3461056157600060203660031901126108a6576004356108c881610555565b6108d06134a5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316908290823b1561094457602461ffff918360405195869485936307e0db1760e01b85521660048401525af1801561093f57610933575080f35b61093c90611248565b80f35b6139f1565b5080fd5b6001600160a01b0381160361056157565b6004359061096682610948565b565b6064359061096682610948565b359061096682610948565b34610561576040366003190112610561576109aa6004356109a081610948565b60243590336136be565b602060405160018152f35b346105615760403660031901126105615761ffff6004356109d581610555565b6109dd6134a5565b166000526003602052602435604060002055600080f35b3461056157600060203660031901126108a657600435610a1381610555565b610a1b6134a5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316908290823b1561094457602461ffff918360405195869485936310ddb13760e01b85521660048401525af1801561093f57610933575080f35b3461056157602036600319011261056157600435610a9a6134a5565b7f7d04cf410385806a9ac3566ac4cca4e5eaba6cc242abbf98f4f44e4ac6f3e8ff81601354610ace60405192839283610de8565b0390a1601355005b34610561576000366003190112610561576020600a54604051908152f35b60c090600319011261056157600490565b60c0906101231901126105615761012490565b60609060c31901126105615760c490565b60609060a31901126105615760a490565b908160609103126105615790565b9181601f84011215610561578235916001600160401b03831161056157602080850194610160850201011161056157565b6102008060031936011261056157610b9036610af4565b610b9936610b18565b91610ba336610b05565b916101e4356001600160401b0381116105615761001994610c55610c7f94610c6060a097610bd8610c71963690600401610b48565b9490956040519a8b996318e7fa1960e01b60208c01528035610bf981610948565b600180841b0380911660248d0152806020830135610c1681610948565b1660448d0152604082013560648d0152606082013560848d01526080820135610c3e81610948565b1660a48c0152013560c48a015260e4890190613d8d565b610144870190613dc5565b610204850152610224840191613c99565b03601f198101835282611296565b6144a0565b3461056157602036600319011261056157600435610ca06134a5565b620f4240811015610ce7577fb3a985697c0361591fe9933703eb14ce1d74444a2d349080b6dec8da77a4082b81601254610cdf60405192839283610de8565b0390a1601255005b60405162461bcd60e51b81526020600482015260116024820152705553444f3a2066656520746f6f2062696760781b6044820152606490fd5b34610561576060366003190112610561576109aa600435610d4081610948565b602435610d4c81610948565b60443591610d5b8333836137bf565b6135ef565b3461056157600036600319011261056157602060405160128152f35b34610561576000366003190112610561576020610d97613a75565b604051908152f35b60643590811515820361056157565b60243590811515820361056157565b60a43590811515820361056157565b60043590811515820361056157565b3590811515820361056157565b908152602081019190915260400190565b346105615760a036600319011261056157600435610e1681610555565b610e1e610d9f565b90608435906001600160401b03821161056157610e446106856040933690600401610566565b90610e7b610e5e610e566044356158be565b602435615948565b928451958694859463040a7bb160e41b86523090600487016152b4565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561093f576000908192610eca575b5061082160405192839283610de8565b9050610eed915060403d8111610ef4575b610ee58183611296565b81019061529e565b9038610eba565b503d610edb565b3461056157604036600319011261056157600435610f1881610948565b336000526009602052610f2f816040600020612637565b546024358101809111610f46576109aa91336136be565b6134fd565b3461056157604036600319011261056157610019600435610f6b81610555565b61ffff610f76610dae565b91610f7f6134a5565b16600052600d60205260406000209060ff801983541691151516179055565b90604060031983011261056157600435610fb781610555565b91602435906001600160401b038211610561576105f491600401610566565b3461056157602061ffff611023610fec36610f9e565b939091166000526001845261100e61101560406000206040519283809261195a565b0382611296565b8481519101209236916112f4565b82815191012014604051908152f35b346105615760203660031901126105615761ffff60043561105281610555565b1660005260036020526020604060002054604051908152f35b6101e090608319011261056157608490565b908160a09103126105615790565b6102c0366003190112610561576004356110a481610948565b6024356110b081610948565b604435916110bd83610555565b6110c5610968565b926110cf3661106b565b6001600160401b039461026435868111610561576110f1903690600401610b48565b929091610284358881116105615761110d90369060040161107d565b946102a4359889116105615761112a610019993690600401610566565b98909761437f565b346105615760403660031901126105615761001960043561115281610948565b61116160ff6011541615614783565b6111696145b4565b600052600f60205261118c60ff61118560406000203390612637565b5416613c05565b60243590614935565b34610561576111a336610f9e565b91906111ad6134a5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b1561056157604051928380926342d65a8d60e01b8252816112046000988997889460048501614b5c565b03925af1801561093f57610933575080f35b3461056157600036600319011261056157602060405160008152f35b634e487b7160e01b600052604160045260246000fd5b6001600160401b03811161125b57604052565b611232565b60c081019081106001600160401b0382111761125b57604052565b604081019081106001600160401b0382111761125b57604052565b601f909101601f19168101906001600160401b0382119082101761125b57604052565b6040519061016082016001600160401b0381118382101761125b57604052565b6001600160401b03811161125b57601f01601f191660200190565b929192611300826112d9565b9161130e6040519384611296565b829481845281830111610561578281602093846000960137010152565b60606003198201126105615760043561134381610555565b916001600160401b039160243590838211610561578060238301121561056157816024611375936004013591016112f4565b9160443590811681036105615790565b60209061139f92826040519483868095519384920161076d565b82019081520301902090565b9060018060401b0316600052602052604060002090565b3461056157602061140d61ffff6113ff836113dc3661132b565b94909116600052600582526040600020826040519483868095519384920161076d565b8201908152030190206113ab565b54604051908152f35b3461056157600036600319011261056157602060ff601154166040519015158152f35b346105615760803660031901126105615760043561145681610948565b60243561146281610948565b60443591606435906001600160401b03821161056157602061148985933690600401610566565b93909461149b60ff6011541615614783565b6001600160a01b0394611503906114b583881630146146ec565b6114c38460135410156147be565b6114ce841515614801565b6114d88484614759565b96879616976114e7858a614935565b6040516323e30c8b60e01b815297889586953360048801614855565b03816000875af193841561093f5761154c7f439148f0bbc682ca079e46d6e2c2f0c1e3b820f1a291b069d8882abf8cf18dd961159c96611596956000916115a8575b5014614888565b61159161158a6115643061155f88612603565b612637565b5461157a611572868661352f565b8210156148c3565b611584858561352f565b90614928565b30866136be565b61352f565b906149ca565b60405160018152602090f35b6115c9915060203d81116115cf575b6115c18183611296565b810190614846565b38611545565b503d6115b7565b34610561576020366003190112610561576115f2600435610948565b6020601354604051908152f35b346105615761160d36610593565b91929493903033036116315761068c61162b926100199736916112f4565b92614d52565b60405162461bcd60e51b815260206004820152602660248201527f4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d7573742062656044820152650204c7a4170760d41b6064820152608490fd5b60a03660031901126105615760043561169d81610948565b6024356116a981610555565b604435916084356001600160401b03811161056157602061ffff6116e0600080516020615eea833981519152933690600401610b3a565b9361175385356116ef81610948565b61170d61068586890135986117038a610948565b604081019061509b565b611717818a6157d6565b61172c61172560643561592a565b5085615b19565b976117388915156152f8565b61174a6117448a6158be565b8c615948565b9234938b615398565b6040519485526001600160a01b0316941692a4005b60c03660031901126105615760043561178081610555565b6001600160401b03602435818111610561576117a0903690600401610566565b9190926044356117af81610948565b608435838111610561576117c7903690600401610b3a565b9060a435938411610561576100199561ffff9561188b610c7194606061187b6118286117fa610c7f9b3690600401610b48565b9790966040519d8e9c8d6020630d96592b60e31b9101521660248d015260c060448d015260e48c0191613c46565b9260018060a01b0380981660648b015260643560848b015260231997888b86030160a48c015280823561185a81610948565b168552602082013561186b81610948565b1660208501526040810190613c67565b9190928160408201520191613c46565b928584030160c4860152613c99565b34610561576020366003190112610561576004356118b781610948565b60018060a01b031660005260086020526020604060002054604051908152f35b34610561576000806003193601126108a6576118f16134a5565b80546001600160a01b03198116825581906001600160a01b0316600080516020615f4a8339815191528280a380f35b90600182811c92168015611950575b602083101461193a57565b634e487b7160e01b600052602260045260246000fd5b91607f169161192f565b906000929180549161196b83611920565b9182825260019384811690816000146119cd575060011461198d575b50505050565b90919394506000526020928360002092846000945b8386106119b9575050505001019038808080611987565b8054858701830152940193859082016119a2565b9294505050602093945060ff191683830152151560051b01019038808080611987565b90610966611a04926040519384809261195a565b0383611296565b346105615760203660031901126105615761ffff600435611a2b81610555565b16600052600160205261082161100e611a4e60406000206040519283809261195a565b604051918291602083526020830190610790565b60e036600319011261056157600435611a7a81610948565b602435611a8681610555565b604435916001600160401b039060843582811161056157611aab903690600401610566565b91909260a43591818316918284036105615760c43590811161056157611ad5903690600401610b3a565b92611b0c843595611ae587610948565b611b04611afa60208801359761170389610948565b99909236916112f4565b9736916112f4565b9460ff60065416600014611bfe576022865110611bba578560209561174a61175394611b888c611b7561ffff9a8b6022600080516020615eea8339815191529f0151931660005260028d52611b6f60406000206001600052602052604060002090565b5461352f565b90611b8182151561582b565b1015615874565b611b9d611b9660643561592a565b5088615b19565b9a611ba98c15156152f8565b8d611bb38d6158be565b90336159d6565b60405162461bcd60e51b815260206004820152601c60248201527b4c7a4170703a20696e76616c69642061646170746572506172616d7360201b6044820152606490fd5b948094935051611c2b57600080516020615eea8339815191529460209461ffff9461174a61175394611b88565b60405162461bcd60e51b815260206004820152602660248201527f4f4654436f72653a205f61646170746572506172616d73206d7573742062652060448201526532b6b83a3c9760d11b6064820152608490fd5b908160e09103126105615790565b608090608319011261056157608490565b60809060a31901126105615760a490565b610100806003193601126105615760243590611cca82610948565b6001600160401b0360443581811161056157611cea903690600401611c7f565b926064359182116105615761001993610c71611d67611d10611d72953690600401610b3a565b611d55611d1c36611c8d565b94604051988997633cb7ea1d60e11b60208a015260043560248a015260018060a01b031660448901526064880152610124870190613e62565b85810360231901608487015290613e2e565b9160a4840190613f0a565b61454b565b3461056157602036600319011261056157600435611d9481610948565b60018060a01b031660005260146020526020604060002054604051908152f35b3461056157600036600319011261056157602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346105615760203660031901126105615761ffff600435611e1281610555565b16600052600d602052602060ff604060002054166040519015158152f35b34610561576000366003190112610561576018546040516001600160a01b039091168152602090f35b3461056157604036600319011261056157602061140d600435611e7b81610555565b61ffff60243591611e8b83610555565b166000526002835260406000209061ffff16600052602052604060002090565b6001600160a01b03169052565b34610561576000366003190112610561576000546040516001600160a01b039091168152602090f35b3461056157604036600319011261056157600435611efe81610948565b7fd7b463fb7e7be5d5389dafa46448b883b320f7c77f63a00c9db0e2865ccdb3d76020611f29610dae565b92611f326134a5565b611f3a6145b4565b60005260108252611f6484611f53836040600020612637565b9060ff801983541691151516179055565b60405193151584526001600160a01b031692a2005b34610561576000366003190112610561576020601254604051908152f35b34610561576000366003190112610561576004546040516001600160a01b039091168152602090f35b90816101c09103126105615790565b61014036600319011261056157600435611fe881610948565b602435611ff481610948565b6044359161200183610555565b612009610968565b6001600160401b0393906084358581116105615761202b903690600401610566565b9061203536610b29565b92610104358881116105615761204f903690600401611fc0565b94610124359889116105615761206c610019993690600401610b48565b98909761422c565b34610561576000806003193601126108a65760405181600c5461209681611920565b8084529060019081811690811561087e57506001146120bf576108218461081581880382611296565b600c8352602094507fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c75b8284106121055750505081610821936108159282010193610805565b80548585018701529285019281016120e9565b3461056157602060ff61215761ffff6113ff846121343661132b565b94909116600052600782526040600020826040519483868095519384920161076d565b54166040519015158152f35b34610561576000366003190112610561576020601354604051908152f35b34610561576040366003190112610561576100196004356121a181610948565b6121b060ff6011541615614783565b6121b86145b4565b60005260106020526121d460ff61118560406000203390612637565b602435906149ca565b346105615760203660031901126105615761ffff6004356121fd81610555565b16600052600160205261100e61221d60406000206040519283809261195a565b80511561223b5761081581612235610821935161490a565b90615ca2565b60405162461bcd60e51b815260206004820152601d60248201527f4c7a4170703a206e6f20747275737465642070617468207265636f72640000006044820152606490fd5b346105615760403660031901126105615760043561229d81610948565b602435903360005260096020526122b8816040600020612637565b54918083106122cd5761159c920390336136be565b60405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608490fd5b346105615760e03660031901126105615760043561233d81610555565b6001600160401b03906064358281116105615761235e903690600401610566565b608492919235848116810361056157612375610dbd565b9160c435958611610561576123916123a1963690600401610566565b95909460443590602435906150cd565b9061082160405192839283610de8565b34610561576123bf36610f9e565b906123c86134a5565b604051926020928083858701376123f46034868381013060601b88820152036014810188520186611296565b61ffff8216600090815260018086526040822087519296909291906001600160401b03831161125b576124318361242b8654611920565b86614b77565b80601f841160011461248f57509180809261247e9695948a9b600080516020615f0a8339815191529b94612484575b50501b916000199060031b1c19161790555b60405193849384614b5c565b0390a180f35b015192503880612460565b91939498601f1984166124a787600052602060002090565b938a905b8282106124fc57505091600080516020615f0a833981519152999a9593918561247e989694106124e3575b505050811b019055612472565b015160001960f88460031b161c191690553880806124d6565b8088869782949787015181550196019401906124ab565b34610561576040366003190112610561576109aa60043561253381610948565b60243590336135ef565b346105615760403660031901126105615760243561255a81610948565b6125626134a5565b60008080808094600435905af1612577613bd5565b50156125805780f35b60405162461bcd60e51b81526020600482015260166024820152752aa9a2279d103a3930b739b332b9103330b4b632b21760511b6044820152606490fd5b34610561576000366003190112610561576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b0316600090815260096020526040902090565b6001600160a01b0316600090815260086020526040902090565b9060018060a01b0316600052602052604060002090565b3461056157604036600319011261056157602060ff61215760243561267281610948565b600435600052600f84526040600020612637565b34610561576020366003190112610561577f5db758e995a17ec1ad84bdef7e8c3293a0bd6179bcce400dff5d4c3d87db726b60206004356126c681610948565b6126ce6134a5565b600480546001600160a01b0319166001600160a01b03929092169182179055604051908152a1005b6084359060ff8216820361056157565b359060ff8216820361056157565b81601f82011215610561578035906001600160401b03821161125b576040805193602091612747838660051b0187611296565b848652828601918361016080970286010194818611610561578401925b858410612775575050505050505090565b8684830312610561578487916127896112b9565b61279287610ddb565b815261279f838801610ddb565b838201526127ae868801610975565b8682015260606127bf818901610ddb565b9082015260806127d0818901610975565b9082015260a06127e1818901610975565b9082015260c0808801359082015260e08088013590820152610100612807818901612706565b9082015261012080880135908201526101408088013590820152815201930192612764565b61016036600319011261056157612841610959565b6001600160401b039060643582811161056157612862903690600401610b3a565b6084358381116105615761287a903690600401611c7f565b9061288436611c9e565b610124358581116105615761289d903690600401610566565b93909261014435968711610561576128bc610019973690600401612714565b956044359060243590613f62565b346105615760003660031901126105615760206040516127108152f35b346105615760803660031901126105615760043561290481610555565b60243561291081610555565b6064356001600160401b0381116105615761292f903690600401610566565b90926129396134a5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b1561056157600080946129b0604051978896879586946332fb62e760e21b865261ffff80921660048701521660248501526044356044850152608060648501526084840191613c46565b03925af1801561093f576129c057005b806129cd61001992611248565b80610762565b3461056157600036600319011261056157600e546040516001600160a01b039091168152602090f35b34610561576000366003190112610561576017546040516001600160a01b039091168152602090f35b612a2e36610593565b9161ffff86949296166000526005602052612a6281604060002060206040518092878b8337878201908152030190206113ab565b54918215612b1157612b008483612af97fc264d91f3adc5588250e1551f547752ca0cfa8f6b530d243b9f9f4cab10ea8e59a6000612ae584612ae08e8a8f612b0c9f908f612ac690612ab9612ada9436908d6112f4565b602081519101201461500e565b61ffff166000526005602052604060002090565b91614ff5565b6113ab565b55612af136878d6112f4565b9336916112f4565b9188614d52565b60405195869586615064565b0390a1005b60405162461bcd60e51b815260206004820152602360248201527f4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d65737360448201526261676560e81b6064820152608490fd5b346105615760e036600319011261056157600435612b7f81610948565b602435612b8b81610948565b6044359060643592612b9b6126f6565b93804211612c7e57612c66612c7991612c4061001997612c4e612bd98760018060a01b03166000526014602052604060002090815491600183019055565b604080517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9602082019081526001600160a01b03808c1693830193909352918b166060820152608081018c905260a081019290925260c082019590955292839060e0820190565b03601f198101845283611296565b612c6160c4359360a43593519020613b8f565b61389b565b6001600160a01b0383811691161461384f565b6136be565b60405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606490fd5b34610561576040366003190112610561576020610d97600435612ce581610948565b60243590614759565b3461056157604036600319011261056157602061140d600435612d1081610948565b60243590612d1d82610948565b6001600160a01b031660009081526009845260409020612637565b34610561576000366003190112610561576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461056157606036600319011261056157600435612d9a81610555565b602435612da681610555565b60443591612db26134a5565b8215612e2d57612b0c7f9d5c7c0b934da8fefa9c7760c98383778a12dfbfc0c3b3106518f43fb9508ac09361ffff8316600052600260205280612e078560406000209061ffff16600052602052604060002090565b556040519384938460409194939294606082019561ffff80921683521660208201520152565b60405162461bcd60e51b81526020600482015260156024820152744c7a4170703a20696e76616c6964206d696e47617360581b6044820152606490fd5b3461056157600036600319011261056157602060405160018152f35b34610561576020366003190112610561577f1584ad594a70cbe1e6515592e1272a987d922b097ead875069cebe8b40c004a46020612ec2610dcc565b612eca6134a5565b151560ff196006541660ff821617600655604051908152a1005b346105615761010036600319011261056157600435612f0281610555565b6001600160401b039060243582811161056157612f23903690600401610566565b919060443590848216820361056157608435612f3e81610948565b60c43595861161056157612f59610019963690600401610566565b94909360e4359660a43594606435936151c4565b3461056157612f7b36610f9e565b9190612f856134a5565b61ffff82166000908152600160208181526040832092949291906001600160401b03871161125b57612fc187612fbb8554611920565b85614b77565b8590601f8811600114613016575091868087989361247e95600080516020615f8a833981519152999361300b575b501b906000198460031b1c191617905560405193849384614b5c565b880135925038612fef565b90601f19881661302b85600052602060002090565b9288905b82821061307f57505091889391600080516020615f8a833981519152989961247e969410613065575b505082811b019055612472565b870135600019600386901b60f8161c191690553880613058565b808685968294968c0135815501950193019061302f565b3461056157604036600319011261056157602060ff6121576024356130ba81610948565b600435600052601084526040600020612637565b3461056157600036600319011261056157602060ff600654166040519015158152f35b346105615760403660031901126105615760043561310e81610948565b7f53b8f1e625ffdc96b26d9f5c6bba4ebc3f54077767495fa2619d32b285e193b96020613139610dae565b926131426134a5565b61314a6145b4565b600052600f8252611f6484611f53836040600020612637565b346105615760203660031901126105615760043561318081610948565b6131886134a5565b6001600160a01b0390811680156131c457600080546001600160a01b0319811683178255909216600080516020615f4a8339815191528380a380f35b60405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b34610561576000366003190112610561576016546040516001600160a01b039091168152602090f35b346105615760803660031901126105615760043561325e81610555565b6024359061326b82610555565b613276604435610948565b604051633d7b2f6f60e21b815261ffff91821660048201529116602482015230604482015260648035908201526000816084817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa801561093f57610821916000916132f4575b50604051918291826107b5565b61330f913d8091833e6133078183611296565b810190614b26565b386132e7565b346105615760203660031901126105615761332e610dcc565b61334360018060a01b03600e54163314613c05565b60ff6011541690811515811515146133a0576040805192151583528115156020840152610019927f9c13c5f6c628c1c82eb2b3fd8714da5c2857dbd0ad8ab6b2074abcf81015d3969190a160ff8019601154169115151617601155565b60405162461bcd60e51b815260206004820152601060248201526f5553444f3a2073616d6520737461746560801b6044820152606490fd5b34610561576020366003190112610561576004356133f581610948565b6133fd6134a5565b6001600160a01b0390811690811561344b5781600e549182167f5a62d22209e370e38eea92cfddcd228e656e6ec139243392a760a7769f5877fd600080a36001600160a01b03191617600e55005b60405162461bcd60e51b81526020600482015260176024820152761554d113ce881859191c995cdcc81b9bdd081d985b1a59604a1b6044820152606490fd5b34610561576000366003190112610561576020604051308152f35b6000546001600160a01b031633036134b957565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b634e487b7160e01b600052601160045260246000fd5b90601f8201809211610f4657565b6051019081605111610f4657565b91908201809211610f4657565b1561354357565b60405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b1561359b57565b60405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608490fd5b916001600160a01b03808416929091831561366b5761365082600080516020615f6a8339815191529461366694169661362988151561353c565b61364a846136368361261d565b5461364382821015613594565b039161261d565b5561261d565b8054820190556040519081529081906020820190565b0390a3565b60405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608490fd5b6001600160a01b03808216929190831561376e57821693841561371e578061370d7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259461155f61366695612603565b556040519081529081906020820190565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b9060018060a01b03821660005260096020526137df816040600020612637565b5492600184016137ef5750505050565b80841061380a576138019303916136be565b38808080611987565b60405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606490fd5b1561385657565b60405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606490fd5b916107c693916138aa936139fd565b9190916138d2565b600511156138bc57565b634e487b7160e01b600052602160045260246000fd5b6138db816138b2565b806138e35750565b6138ec816138b2565b600181036139385760405162461bcd60e51b815260206004820152601860248201527745434453413a20696e76616c6964207369676e617475726560401b6044820152606490fd5b0390fd5b613941816138b2565b6002810361398e5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606490fd5b8061399a6003926138b2565b146139a157565b60405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608490fd5b6040513d6000823e3d90fd5b9291906fa2a8918ca85bafe22016d0b997e4df60600160ff1b038311613a695791608094939160ff602094604051948552168484015260408301526060820152600093849182805260015afa1561093f5781516001600160a01b03811615613a63579190565b50600190565b50505050600090600390565b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161480613b66575b15613ad0577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f000000000000000000000000000000000000000000000000000000000000000082527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a08152613b6081611260565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614613aa7565b613b97613a75565b9060405190602082019261190160f01b845260228301526042820152604281526080810181811060018060401b0382111761125b5760405251902090565b3d15613c00573d90613be6826112d9565b91613bf46040519384611296565b82523d6000602084013e565b606090565b15613c0c57565b60405162461bcd60e51b81526020600482015260126024820152711554d113ce881d5b985d5d1a1bdc9a5e995960721b6044820152606490fd5b908060209392818452848401376000828201840152601f01601f1916010190565b9035601e1982360301811215610561570160208101919035906001600160401b03821161056157813603831361056157565b9190808252602080920192916000905b828210613cb7575050505090565b9091929380613cd1600192613ccb88610ddb565b15159052565b613ce7613cdf848801610ddb565b151582850152565b613d006040613cf7818901610975565b90830190611eab565b613d186060613d10818901610ddb565b151590830152565b613d286080613cf7818901610975565b613d3860a0613cf7818901610975565b60c0808701359082015260e08087013590820152613d66610100613d5d818901612706565b60ff1690830152565b61012086810135908201526101408087013590820152610160908101950193920190613ca9565b6040809161ffff8135613d9f81610555565b1684526020810135613db081610948565b6001600160a01b031660208501520135910152565b60a08091613dd281610ddb565b151584526020810135613de481610948565b600180841b03809116602086015261ffff6040830135613e0381610555565b166040860152606082013560608601526080820135613e2181610948565b1660808501520135910152565b90606061187b6107c6938035613e4381610948565b6001600160a01b03168452602081810135908501526040810190613c67565b906107c690823581526020830135613e7981610555565b61ffff80911660208301526040840135613e9281610555565b1660408201526060830135613ea681610948565b6001600160a01b0316606082015260c080613ef6613edb613eca6080880188613c67565b60e0608088015260e0870191613c46565b613ee860a0880188613c67565b9086830360a0880152613c46565b94013591613f0383610948565b0190611eab565b60609081813591613f1a83610948565b6001600160a01b039283168552826020820135613f3681610948565b166020860152826040820135613f4b81610948565b1660408601520135613f5c81610948565b16910152565b9394909796604496613fd7613fcc613fb9613fe7969760409889519e8f9d8e60209d8e63bf2271ab60e01b9083015260018060a01b03166024820152015260648d01526101846101609c8d60848201520190613e2e565b6023198d8203810160a48f015299613e62565b9360c48c0190613f0a565b868a8403016101448b0152613c46565b92868403016101648701528180865194858152019501936000915b84831061402a5750505050505090611d72816140269303601f198101835282611296565b5050565b9091929394958483600192895161404382825115159052565b8084015115158285015261405d8682015187840190611eab565b60608181015115159083015261407b60808083015190840190611eab565b61408d60a08083015190840190611eab565b60c0818101519083015260e080820151908301526101008082015160ff169083015261012081810151908301526101409081015190820152019701959493019190614002565b604080916140e081610ddb565b151584526020810135613db081610948565b9035609e1982360301811215610561570190565b9060a061415b6107c69361411981610ddb565b151584526020810135602085015261413360408201610ddb565b1515604085015261ffff606082013561414b81610555565b1660608501526080810190613c67565b9190928160808201520191613c46565b906107c69161417d82613ccb83610ddb565b6020810135602083015261419f61419660408301610ddb565b15156040840152565b606081013560608301526141c16141b860808301610ddb565b15156080840152565b60a081013560a08301526141db60c0830160c083016140d3565b6141ec6101208084019083016140d3565b61420f6101806141fe818401846140f2565b906101c08091860152840190614106565b916142206101a092838101906140f2565b91818403910152614106565b60405163254d7d3760e21b60208201526001600160a01b039182166024820152918116604483015261ffff9092166064820152918116608483015261014060a483015290968796959093909261428791610164890191613c46565b9381813561429481610948565b1660c48801528160208201356142a981610948565b1660e4880152604001356142bc81610948565b166101048601526023199283868203016101248701526142db9161416b565b91848303016101448501526142ef92613c99565b03601f19810182526143019082611296565b61402690614575565b35906001600160801b038216820361056157565b6080809161432b81610ddb565b15158452602081013561433d81610948565b6001600160a01b031660208501526000196001831b01806143606040840161430a565b1660408601526143726060830161430a565b1660608501520135910152565b604051623f241960e81b60208201526001600160a01b039182166024820152918116604483015261ffff9092166064820152918116608483015290968796959490939290916143cd82610ddb565b151560a4890152602082013560c4890152604082013560e489015260608201356143f681610948565b1661010488015261440960808201610975565b610124880161441791611eab565b61442360a08201610ddb565b151561014488015260c0810135610164880152614447610184880160e0830161431e565b61445a90610224880190610180016140d3565b61028486016102c090526102e486019061447392613c99565b916023199283868203016102a487015261448c91614106565b91848303016102c48501526142ef92613c46565b6018546001600160a01b0316801561450d57816000929160208493519201905af4906144ca613bd5565b90821580614505575b6144d957565b6139346144e58361466a565b60405162461bcd60e51b8152602060048201529182916024830190610790565b5060016144d3565b60405162461bcd60e51b81526020600482015260166024820152751554d113ce881b5bd91d5b19481b9bdd08199bdd5b9960521b6044820152606490fd5b6016546001600160a01b0316801561450d57816000929160208493519201905af4906144ca613bd5565b6017546001600160a01b0316801561450d57816000929160208493519201905af4906144ca613bd5565b9081602091031261056157516107c681610555565b6040516303408e4760e41b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa801561093f5761ffff9160009161460957501690565b61462a915060203d811161462e575b6146228183611296565b81019061459f565b1690565b503d614618565b90929192614642816112d9565b916146506040519384611296565b82948284528282011161056157602061096693019061076d565b60448151106146bb57600481015181019060208160248401930312610561576024810151906001600160401b038211610561570190806043830112156105615760248201516107c692604401614635565b506040516146c88161127b565b60148152735553444f3a206e6f2072657475726e206461746160601b602082015290565b156146f357565b60405162461bcd60e51b81526020600482015260156024820152741554d113ce881d1bdad95b881b9bdd081d985b1a59605a1b6044820152606490fd5b81810292918115918404141715610f4657565b634e487b7160e01b600052601260045260246000fd5b620f42409161477f91614776906001600160a01b031630146146ec565b60125490614730565b0490565b1561478a57565b60405162461bcd60e51b815260206004820152600c60248201526b1554d113ce881c185d5cd95960a21b6044820152606490fd5b156147c557565b60405162461bcd60e51b81526020600482015260146024820152735553444f3a20616d6f756e7420746f6f2062696760601b6044820152606490fd5b1561480857565b60405162461bcd60e51b81526020600482015260166024820152751554d113ce88185b5bdd5b9d081b9bdd081d985b1a5960521b6044820152606490fd5b90816020910312610561575190565b91926107c696949160a094600180871b038092168552166020840152604083015260608201528160808201520191613c46565b1561488f57565b60405162461bcd60e51b815260206004820152600c60248201526b1554d113ce8819985a5b195960a21b6044820152606490fd5b156148ca57565b60405162461bcd60e51b81526020600482015260186024820152771554d113ce881c995c185e481b9bdd08185c1c1c9bdd995960421b6044820152606490fd5b601319810191908211610f4657565b605019810191908211610f4657565b91908203918211610f4657565b6001600160a01b0381169190821561498557600a5490828201809211610f4657600092614976602092600080516020615f6a83398151915294600a5561261d565b818154019055604051908152a3565b60405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606490fd5b6001600160a01b038116908115614a7c576149e48161261d565b54838110614a2c5783600080516020615f6a83398151915292614a0e60009661366694039161261d565b55614a1c81600a5403600a55565b6040519081529081906020820190565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608490fd5b60405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608490fd5b15614ad257565b60405162461bcd60e51b815260206004820152602660248201527f4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f6044820152651b9d1c9858dd60d21b6064820152608490fd5b602081830312610561578051906001600160401b03821161056157019080601f830112156105615781516107c692602001614635565b60409061ffff6107c695931681528160208201520191613c46565b90601f8111614b8557505050565b600091825260208220906020601f850160051c83019410614bc1575b601f0160051c01915b828110614bb657505050565b818155600101614baa565b9092508290614ba1565b929091614c2f5a604051633356ae4560e11b602082015261ffff871660248201526080604482015290614c2982612c40614c0860a483018a610790565b6001600160401b038816606484015282810360231901608484015288610790565b30615e9e565b939015614c3e575b5050505050565b614c4794614c51565b3880808080614c37565b9193614cef7fe183f33de2837795525b4792ca4cd60535bd77c53b7e7030060bfcf5734d6b0c95614cfd939561ffff81516020830120961695866000526005602052614cb5836113ff60208b6040600020826040519483868095519384920161076d565b55614cd2604051978897885260a0602089015260a0880190610790565b6001600160401b0390921660408701528582036060870152610790565b908382036080850152610790565b0390a1565b6001600160a01b03909116815261ffff909116602082015260a0604082018190526107c69492614d3491830190610790565b6001600160401b039093166060820152808303608090910152610790565b929190614d5e83615e51565b6103068103614da6575060175461096694908190614da1906001600160a01b0316610c7187878760405196879563100b652360e01b602088015260248701614d02565b614fc6565b6103078103614dee575060165461096694908190614de9906001600160a01b0316610c71878787604051968795634dd8df6360e11b602088015260248701614d02565b614f97565b6103058103614e1e575060405163163b7bd360e21b60208201526109669490614da181610c7187602483016107b5565b6103048103614e4e575060405163462bae6560e01b60208201526109669490614de981610c7187602483016107b5565b6103098103614e96575060185461096694908190614e91906001600160a01b0316610c718787876040519687956381618d0560e01b602088015260248701614d02565b614f3c565b61030a03614ec45760405163af2ee97560e01b60208201526109669490614e9181610c7187602483016107b5565b614ed6614ed084615df6565b60ff1690565b80614ee7575050506109669161550d565b600103614ef75761096693615638565b60405162461bcd60e51b815260206004820152601e60248201527f4f4654436f726556323a20756e6b6e6f776e207061636b6574207479706500006044820152606490fd5b60185491949293916001600160a01b0316801561450d57816000929160208493519201905af492614f6b613bd5565b93158080614f8f575b614f8357614c3e575050505050565b6139346144e58661466a565b506000614f74565b60165491949293916001600160a01b0316801561450d57816000929160208493519201905af492614f6b613bd5565b60175491949293916001600160a01b0316801561450d57816000929160208493519201905af492614f6b613bd5565b6020919283604051948593843782019081520301902090565b1561501557565b60405162461bcd60e51b815260206004820152602160248201527f4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f616044820152601960fa1b6064820152608490fd5b9160609361ffff6150879398979698168452608060208501526080840191613c46565b6001600160401b0390951660408201520152565b903590601e198136030182121561056157018035906001600160401b0382116105615760200191813603831361056157565b949195989790611bb36150f66040996150ee6150fc976151199936916112f4565b9436916112f4565b976158be565b928451968794859463040a7bb160e41b86523090600487016152b4565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa91821561093f57600090819361515c57509190565b90506105f491925060403d8111610ef457610ee58183611296565b939694916107c698969361ffff61519c9316865260c0602087015260c0860191613c46565b6001600160401b0390961660408401526060830152608082015280840360a090910152613c46565b91969792989594939094303303615259576151e0908530615b3f565b60405181815290946001600160a01b03169390849061ffff851690600080516020615f2a83398151915290602090a3833b1561056157600098899561523c936040519c8d9b8c9a8b98633fe79aed60e11b8a5260048a01615177565b0393f1801561093f5761524c5750565b806129cd61096692611248565b60405162461bcd60e51b815260206004820152601f60248201527f4f4654436f72653a2063616c6c6572206d757374206265204f4654436f7265006044820152606490fd5b9190826040910312610561576020825192015190565b91926107c6959361ffff6152e39316845260018060a01b0316602084015260a0604084015260a0830190610790565b92151560608201526080818403910152610790565b156152ff57565b60405162461bcd60e51b815260206004820152601960248201527813d19510dbdc994e88185b5bdd5b9d081d1bdbc81cdb585b1b603a1b6044820152606490fd5b926153656107c697959361ffff6153739416865260c0602087015260c0860190610790565b908482036040860152610790565b6001600160a01b0391821660608401529316608082015280830360a090910152610790565b946153c19193929561ffff811660005260016020526153c860406000206040519485809261195a565b0384611296565b825115615440576153da85518261549e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031693843b156105615760009661542f91604051998a988997889662c5803160e81b885260048801615340565b03925af1801561093f5761524c5750565b60405162461bcd60e51b815260206004820152603060248201527f4c7a4170703a2064657374696e6174696f6e20636861696e206973206e6f742060448201526f61207472757374656420736f7572636560801b6064820152608490fd5b61ffff166000526003602052604060002054908115615503575b116154bf57565b606460405162461bcd60e51b815260206004820152602060248201527f4c7a4170703a207061796c6f61642073697a6520697320746f6f206c617267656044820152fd5b61271091506154b8565b9060ff61551982615df6565b1615806155a0575b61552a9061598f565b61553c61553682615da6565b91615e41565b6001600160a01b039081831615615596575b61ffff600080516020615f2a8339815191529261557e60209361556f615b76565b906001600160401b0316614730565b946155898682614935565b60405195865216941692a3565b61dead925061554e565b508051602914615521565b98979692936155d560e0979361ffff61560a9894168c5260208c61010091829101528c0190610790565b6001600160401b0390951660408b015260608a01526001600160a01b0316608089015260a088015286820360c0880152610790565b930152565b61562760409295949395606083526060830190610790565b94600180841b031660208201520152565b909161564384615a40565b909161567461566d87612ae06156678b61ffff166000526007602052604060002090565b8c611385565b5460ff1690565b91615690615680615b76565b6001600160401b03938416614730565b9288888b831561578c575b505050853b1561574157946156e29694614c29948a94612c40948d9960001461573a5750505a925b5a978b6040519a8b9863757fea4d60e11b60208b015260248a016155ab565b901561572f57509061572a61ffff928560207fb8890edbfc1c74692f527444645f95489c3703cc2df42e4a366f5d06fa6cd8849697519101209060405194859416968461560f565b0390a2565b926109669492614c51565b16926156c3565b50506040516001600160a01b039094168452507f9aedf5fdba8716db3b6705ca00150643309995d4f818a249ed6dde6677e7792d975091955085945050602084019250614cfd915050565b90612ae06157c1926157bb896157a66157ce979b30614935565b9961ffff166000526007602052604060002090565b90611385565b805460ff19166001179055565b88888b61569b565b60065460ff1615615823576022825110611bba5761ffff602261096693015191166000526002602052615816604060002060008052602052604060002090565b5490611b8182151561582b565b5051611c2b57565b1561583257565b60405162461bcd60e51b815260206004820152601a602482015279131e905c1c0e881b5a5b91d85cd31a5b5a5d081b9bdd081cd95d60321b6044820152606490fd5b1561587b57565b60405162461bcd60e51b815260206004820152601b60248201527a4c7a4170703a20676173206c696d697420697320746f6f206c6f7760281b6044820152606490fd5b6158c6615b76565b908115615925576001600160401b039190048181116158e3571690565b60405162461bcd60e51b815260206004820152601a6024820152794f4654436f72653a20616d6f756e745344206f766572666c6f7760301b6044820152606490fd5b614743565b615932615b76565b801561592557810690818103908111610f465791565b60405160006020820152602181019190915260c09190911b6001600160c01b031916604182015260298152606081016001600160401b0381118282101761125b5760405290565b1561599657565b60405162461bcd60e51b815260206004820152601860248201527713d19510dbdc994e881a5b9d985b1a59081c185e5b1bd85960421b6044820152606490fd5b93926071926107c694604051968794600160f81b6020870152602186015260018060c01b0319809360c01b16604186015260018060a01b0316604985015260c01b166069830152615a30815180926020868601910161076d565b8101036051810184520182611296565b90615a58600160ff615a5185615df6565b161461598f565b615a6182615da6565b90615a6b83615e41565b906049845110615adc576049840151936051815110615aa057615a9d605182015191615a978151614919565b90615d22565b91565b60405162461bcd60e51b8152602060048201526014602482015273746f55696e7436345f6f75744f66426f756e647360601b6044820152606490fd5b60405162461bcd60e51b8152602060048201526015602482015274746f427974657333325f6f75744f66426f756e647360581b6044820152606490fd5b6107c69082906001600160a01b03811633146149ca57615b3a8233836137bf565b6149ca565b6107c69183916001600160a01b038116308114159081615b6b575b50156135ef57610d5b8333836137bf565b905033141538615b5a565b6040516303408e4760e41b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa801561093f5761ffff91600091615c07575b5016600052600d60205260ff60406000205416615be357600190565b7f000000000000000000000000000000000000000000000000000000000000000090565b615c1f915060203d811161462e576146228183611296565b38615bc7565b15615c2c57565b60405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606490fd5b15615c6957565b60405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606490fd5b615cb682615caf81613513565b1015615c25565b615cc38282511015615c62565b81615cdb575050604051600081526020810160405290565b60405191601f811691821560051b808486010193838501920101905b808410615d0f5750508252601f01601f191660405290565b9092835181526020809101930190615cf7565b615d2f82615caf81613513565b615d448151615d3d84613521565b1115615c62565b81615d5c575050604051600081526020810160405290565b60405191601f8116916051831560051b80858701019484860193010101905b808410615d935750508252601f01601f191660405290565b9092835181526020809101930190615d7b565b6021815110615db957602d015160601c90565b60405162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b6044820152606490fd5b6001815110615e06576001015190565b60405162461bcd60e51b8152602060048201526013602482015272746f55696e74385f6f75744f66426f756e647360681b6044820152606490fd5b6029815110615aa0576029015190565b6020815110615e61576020015190565b60405162461bcd60e51b8152602060048201526015602482015274746f55696e743235365f6f75744f66426f756e647360581b6044820152606490fd5b9092916000809160405195615eb287611260565b6096875282602088019560a036883760208451940192f1903d9060968211615ee0575b6000908286523e9190565b60969150615ed556fed81fc9b8523134ed613870ed029d6170cbb73aa6a6bc311b9a642689fb9df59a8c0400cfe2d1199b1a725c78960bcc2a344d869b80590d0f2bd005db15a572cebf551ec93859b170f9b2141bd9298bf3f64322c6f7beb2543a0cb669834118bf8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3effa41487ad5d6728f0b19276fa1eddc16558578f5109fc39d2dc33c3230470daba2646970667358221220844e1e4d42a8cea2e0459644ddd68e00ff3110fce6a9444ec6b8780395ccbb5d64736f6c634300081200338b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f00000000000000000000000093f54d755a063ce7bb9e6ac47eccc8e33411d70600000000000000000000000014febe2f0637cd2fbfa4af2ef3b4638f0f6725fb00000000000000000000000040282d3cf4890d9806bc1853e97a59c93d813653000000000000000000000000b9f2ef1c25aa261fffe5db1f105141af0aa2bd71000000000000000000000000ec0f554387006d948f9b09473f764a1e1e21918b000000000000000000000000e2b4881a3a8e09b2eeb95f2d5404e25a753a10c2