[ { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" }, { "internalType": "uint8", "name": "_sharedDecimals", "type": "uint8" }, { "internalType": "address", "name": "_layerZeroEndpoint", "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": 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": 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": false, "internalType": "uint16", "name": "feeBp", "type": "uint16" } ], "name": "SetDefaultFeeBp", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint16", "name": "dstchainId", "type": "uint16" }, { "indexed": false, "internalType": "bool", "name": "enabled", "type": "bool" }, { "indexed": false, "internalType": "uint16", "name": "feeBp", "type": "uint16" } ], "name": "SetFeeBp", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "feeOwner", "type": "address" } ], "name": "SetFeeOwner", "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": 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": 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": "BP_DENOMINATOR", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DEFAULT_PAYLOAD_SIZE_LIMIT", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "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": "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": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "name": "chainIdToFeeBps", "outputs": [ { "internalType": "uint16", "name": "feeBP", "type": "uint16" }, { "internalType": "bool", "name": "enabled", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "circulatingSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "defaultFeeBp", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "enableTrading", "outputs": [], "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": [ { "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": [], "name": "feeOwner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "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": "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": "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": [ { "internalType": "uint16", "name": "", "type": "uint16" }, { "internalType": "uint16", "name": "", "type": "uint16" } ], "name": "minDstGasLookup", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "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": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "name": "payloadSizeLimitLookup", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "precrime", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "quoteOFTFee", "outputs": [ { "internalType": "uint256", "name": "fee", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "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": "uint256", "name": "_minAmount", "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": "uint16", "name": "_dstChainId", "type": "uint16" }, { "internalType": "bytes32", "name": "_toAddress", "type": "bytes32" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "uint256", "name": "_minAmount", "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": "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": "uint16", "name": "_feeBp", "type": "uint16" } ], "name": "setDefaultFeeBp", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "internalType": "bool", "name": "_enabled", "type": "bool" }, { "internalType": "uint16", "name": "_feeBp", "type": "uint16" } ], "name": "setFeeBp", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_feeOwner", "type": "address" } ], "name": "setFeeOwner", "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": "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": "_remoteChainId", "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": [], "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": "", "type": "uint16" } ], "name": "trustedRemoteLookup", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" }, { "internalType": "bool", "name": "isWhitelisted", "type": "bool" } ], "name": "whitelistAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60e060405234620004cc5762005e9f803803806200001d81620004d1565b928339810190608081830312620004cc5780516001600160401b039290838111620004cc5781620000509184016200050d565b6020918284015190858211620004cc576200006d9185016200050d565b9360408401519460ff861694858703620004cc57606001516001600160a01b03808216979091889003620004cc5760009788543360018060a01b031982161793848b553391167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08b604051a360805260a0526008805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055825190828211620003d357600c54916001948584811c94168015620004c1575b87851014620004ad578190601f9485811162000459575b508790858311600114620003f3578a92620003e7575b5050600019600383901b1c191690851b17600c555b8051928311620003d357600d548481811c91168015620003c8575b86821014620003b4578281116200036b575b508491831160011462000305579282939183928894620002f9575b50501b916000199060031b1c191617600d555b601282116200029e5750806012106200028a5760120360ff1690604d8211620002765750600a0a60c05260ff19600e5416600e5560405161590e90816200059182396080518181816105c2015281816109ab01528181610b8801528181610f15015281816111a3015281816124ff015281816127ce01528181613064015281816144260152614b6c015260a05181611c37015260c051818181613b0901528181613e390152818161474601526147f00152f35b634e487b7160e01b81526011600452602490fd5b634e487b7160e01b82526011600452602482fd5b6084906040519062461bcd60e51b82526004820152602e60248201527f4f4654576974684665653a20736861726564446563696d616c73206d7573742060448201526d6265203c3d20646563696d616c7360901b6064820152fd5b015192503880620001b0565b600d8752848720919083601f198116895b888883831062000353575050501062000339575b505050811b01600d55620001c3565b015160001960f88460031b161c191690553880806200032a565b86860151885590960195948501948793500162000316565b600d88528588208380860160051c820192888710620003aa575b0160051c019085905b8281106200039e57505062000195565b8981550185906200038e565b9250819262000385565b634e487b7160e01b88526022600452602488fd5b90607f169062000183565b634e487b7160e01b87526041600452602487fd5b01519050388062000153565b600c8b52888b208894509190601f1984168c5b8b82821062000442575050841162000428575b505050811b01600c5562000168565b015160001960f88460031b161c1916905538808062000419565b8385015186558b9790950194938401930162000406565b909150600c8a52878a208580850160051c8201928a8610620004a3575b918991869594930160051c01915b828110620004945750506200013d565b8c815585945089910162000484565b9250819262000476565b634e487b7160e01b89526022600452602489fd5b93607f169362000126565b600080fd5b6040519190601f01601f191682016001600160401b03811183821017620004f757604052565b634e487b7160e01b600052604160045260246000fd5b81601f82011215620004cc578051906001600160401b038211620004f75760209062000542601f8401601f19168301620004d1565b93838552828483010111620004cc5782906000905b8383831062000577575050116200056d57505090565b6000918301015290565b819350828193920101518282880101520183916200055756fe60806040526004361015610013575b600080fd5b60003560e01c80621d3567146104a757806301ffc9a71461049e57806306fdde031461049557806307e0db171461048c578063095ea7b3146104835780630df374831461047a57806310ddb1371461047157806318160ddd1461039957806323b872dd146104685780632cdf0b951461045f578063313ce56714610456578063365260b41461044d57806339509351146104445780633d8b38f61461043b5780633f1f4fa41461043257806342966c681461042957806342d65a8d146104205780634477051514610405578063455ba27d146104175780634b104eff1461040e5780634c42899a146104055780635a359dc5146103fc5780635b8c41e6146103f357806366ad5c8a146103ea57806370a08231146103e1578063715018a6146103d85780637533d788146103cf57806379c0ad4b146103c6578063857749b0146103bd5780638a8c523c146103b45780638cfd8f5c146103ab5780638da5cb5b146103a25780639358928b14610399578063950c8a741461039057806395d89b41146103875780639bdb98121461037e5780639f38369a14610375578063a457c2d71461036c578063a4c51df514610363578063a6c3d1651461035a578063a9059cbb14610351578063abe685cd14610324578063b353aaa714610348578063b9818be11461033f578063b9a45aac14610336578063baf3292d1461032d578063c446183414610324578063c83330ce1461031b578063cbed8b9c14610312578063d1deba1f14610309578063d888296814610300578063dd62ed3e146102f7578063df2a5b3b146102ee578063e6a20ae6146102e5578063eaffd49a146102dc578063eb8d72b7146102d3578063ecd8f212146102ca578063f2fde38b146102c1578063f5ecbdbc146102b85763fc0c546a146102b057600080fd5b61000e6130d1565b5061000e612fb2565b5061000e612ebe565b5061000e612e70565b5061000e612ca2565b5061000e612bfd565b5061000e612bc2565b5061000e612af5565b5061000e612a60565b5061000e612a1f565b5061000e61288b565b5061000e612740565b5061000e6126de565b5061000e612477565b5061000e612626565b5061000e612579565b5061000e612523565b5061000e6124b3565b5061000e61242e565b5061000e612204565b5061000e612155565b5061000e612039565b5061000e611f62565b5061000e611f16565b5061000e611e50565b5061000e611dfd565b5061000e610bfa565b5061000e611daa565b5061000e611d41565b5061000e611c5b565b5061000e611bfe565b5061000e611aa2565b5061000e611a30565b5061000e611866565b5061000e6117fc565b5061000e611745565b5061000e6116dc565b5061000e61144b565b5061000e61121e565b5061000e6112f6565b5061000e611259565b5061000e611168565b5061000e61112c565b5061000e6110d8565b5061000e61107b565b5061000e610f99565b5061000e610e45565b5061000e610ddd565b5061000e610ca4565b5061000e610c37565b5061000e610b28565b5061000e610ab1565b5061000e610a5d565b5061000e61094b565b5061000e610829565b5061000e6106d2565b5061000e610597565b6004359061ffff8216820361000e57565b6024359061ffff8216820361000e57565b6044359061ffff8216820361000e57565b9181601f8401121561000e5782359167ffffffffffffffff831161000e576020838186019501011161000e57565b9060807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc83011261000e5760043561ffff8116810361000e579167ffffffffffffffff9060243582811161000e578161056c916004016104e3565b93909392604435818116810361000e579260643591821161000e57610593916004016104e3565b9091565b503461000e576105a636610511565b919294939073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633036106745761063761063f92610645976106306106166106118a61ffff166000526001602052604060002090565b611a13565b805190818414918261066a575b5081610647575b5061310b565b3691611605565b923691611605565b92613625565b005b9050610654368486611605565b602081519101209060208151910120143861062a565b1515915038610623565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4c7a4170703a20696e76616c696420656e64706f696e742063616c6c657200006044820152fd5b503461000e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261000e576004357fffffffff00000000000000000000000000000000000000000000000000000000811680910361000e57807f6984a9e80000000000000000000000000000000000000000000000000000000060209214908115610768575b506040519015158152f35b7f01ffc9a7000000000000000000000000000000000000000000000000000000009150143861075d565b600091031261000e57565b918091926000905b8282106107bd5750116107b6575050565b6000910152565b915080602091830151818601520182916107a5565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f60209361080e8151809281875287808801910161079d565b0116010190565b9060206108269281815201906107d2565b90565b503461000e576000807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610948576040519080600c5461086b8161190b565b8085529160019180831690811561090057506001146108a5575b6108a1856108958187038261157b565b60405191829182610815565b0390f35b9250600c83527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c75b8284106108e8575050508101602001610895826108a1610885565b805460208587018101919091529093019281016108cd565b8695506108a1969350602092506108959491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b8201019293610885565b80fd5b503461000e57600060207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610948576109856104b0565b8173ffffffffffffffffffffffffffffffffffffffff6109a9818354163314613202565b7f00000000000000000000000000000000000000000000000000000000000000001691823b15610a3b57602461ffff918360405195869485937f07e0db170000000000000000000000000000000000000000000000000000000085521660048401525af18015610a2e575b610a1f575b50604051f35b610a289061153e565b38610a19565b610a366131f5565b610a14565b5080fd5b73ffffffffffffffffffffffffffffffffffffffff81160361000e57565b503461000e5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261000e57610aa6600435610a9c81610a3f565b602435903361533e565b602060405160018152f35b503461000e5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261000e5761ffff610aec6104b0565b610b0f73ffffffffffffffffffffffffffffffffffffffff600054163314613202565b1660005260036020526024356040600020556000604051f35b503461000e57600060207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261094857610b626104b0565b8173ffffffffffffffffffffffffffffffffffffffff610b86818354163314613202565b7f00000000000000000000000000000000000000000000000000000000000000001691823b15610a3b57602461ffff918360405195869485937f10ddb1370000000000000000000000000000000000000000000000000000000085521660048401525af18015610a2e57610a1f5750604051f35b503461000e5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261000e576020600b54604051908152f35b503461000e5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261000e57610aa6600435610c7681610a3f565b602435610c8281610a3f565b60443591610c918333836154f8565b614f5a565b9081606091031261000e5790565b5060c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261000e57600435610cdb81610a3f565b610ce36104c1565b9060443560a4359267ffffffffffffffff841161000e57610d0b610645943690600401610c96565b92610d8c610d1c6064358484614d06565b50853590610d2982610a3f565b610d65610d5e610d4e61063060208b01359a610d448c610a3f565b6040810190614228565b92610d5984896145ea565b6147ee565b5085614d5e565b96610d71881515614304565b610d83610d7d89614744565b8861483e565b923493876143cd565b7fd81fc9b8523134ed613870ed029d6170cbb73aa6a6bc311b9a642689fb9df59a602061ffff73ffffffffffffffffffffffffffffffffffffffff6040519488865216941692a46084351115614279565b503461000e5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261000e57602060405160128152f35b60643590811515820361000e57565b60243590811515820361000e57565b60a43590811515820361000e57565b503461000e5760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261000e57610e7d6104b0565b610e85610e18565b906084359067ffffffffffffffff821161000e57610eac61063060409336906004016104e3565b90610efc610ec6610ebe604435614744565b60243561483e565b92845195869485947f40a7bb10000000000000000000000000000000000000000000000000000000008652309060048701614a95565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610f8c575b6000908192610f5b575b50604080519182526020820192909252f35b9050610f7e915060403d8111610f85575b610f76818361157b565b810190614a7f565b9038610f49565b503d610f6c565b610f946131f5565b610f3f565b503461000e5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261000e57610aa6600435610fd881610a3f565b33600052600a60205261101b6024356110158360406000209073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b5461340f565b903361533e565b9060407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc83011261000e5760043561ffff8116810361000e57916024359067ffffffffffffffff821161000e57610593916004016104e3565b503461000e57602061ffff6110c961109236611022565b93909116600052600184526110b46110bb60406000206040519283809261195e565b038261157b565b848151910120923691611605565b82815191012014604051908152f35b503461000e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261000e5761ffff6111136104b0565b1660005260036020526020604060002054604051908152f35b503461000e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261000e576106456004353361520f565b503461000e5761117736611022565b9190600092839173ffffffffffffffffffffffffffffffffffffffff6111a1818554163314613202565b7f00000000000000000000000000000000000000000000000000000000000000001690813b1561121a578361120695604051968795869485937f42d65a8d000000000000000000000000000000000000000000000000000000008552600485016132a6565b03925af18015610a2e57610a1f5750604051f35b8380fd5b503461000e5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261000e57602060405160008152f35b506101007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261000e5760043561129181610a3f565b6112996104c1565b67ffffffffffffffff9160a43583811161000e576112bb9036906004016104e3565b9060c43592858416840361000e5760e43595861161000e576112e4610645963690600401610c96565b946084359160643591604435916148a9565b503461000e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261000e5760043561133281610a3f565b73ffffffffffffffffffffffffffffffffffffffff61135681600054163314613202565b8116156113ed57600880547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16601083901b75ffffffffffffffffffffffffffffffffffffffff00001617905560405173ffffffffffffffffffffffffffffffffffffffff90911681527f047912631afa564eebd3db2efe191a0dec62da1fede6bbbc1ffc89d87845b1b59080602081015b0390a1005b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4665653a206665654f776e65722063616e6e6f742062652030780000000000006044820152fd5b503461000e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261000e577fd26030ef4a8c225ee12b646eb4466acb41fb96b6cd4660b22d0ba0124e7bdc74602061ffff6114a96104b0565b6114cc73ffffffffffffffffffffffffffffffffffffffff600054163314613202565b166114db612710821115614bcc565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00006008541617600855604051908152a1005b507f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b67ffffffffffffffff811161155257604052565b61155a61150e565b604052565b6040810190811067ffffffffffffffff82111761155257604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761155257604052565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f60209267ffffffffffffffff81116115f8575b01160190565b61160061150e565b6115f2565b929192611611826115bc565b9161161f604051938461157b565b82948184528183011161000e578281602093846000960137010152565b60607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82011261000e5760043561ffff8116810361000e579160243567ffffffffffffffff9283821161000e578060238301121561000e578160246116a693600401359101611605565b91604435908116810361000e5790565b6020906116d092826040519483868095519384920161079d565b82019081520301902090565b503461000e57602061173c61ffff61171a836116f73661163c565b94909116600052600582526040600020826040519483868095519384920161079d565b8201908152030190209067ffffffffffffffff16600052602052604060002090565b54604051908152f35b503461000e5761175436610511565b91929493903033036117785761063761177292610645973691611605565b92613a94565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d75737420626560448201527f204c7a41707000000000000000000000000000000000000000000000000000006064820152fd5b503461000e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261000e5773ffffffffffffffffffffffffffffffffffffffff60043561184d81610a3f565b1660005260096020526020604060002054604051908152f35b503461000e576000807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126109485780547fffffffffffffffffffffffff000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff8216916118dd338414613202565b16825581604051917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08284a3f35b90600182811c92168015611954575b602083101461192557565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f169161191a565b906000929180549161196f8361190b565b9182825260019384811690816000146119d15750600114611991575b50505050565b90919394506000526020928360002092846000945b8386106119bd57505050500101903880808061198b565b8054858701830152940193859082016119a6565b91505060209495507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009193501683830152151560051b0101903880808061198b565b90611a2e611a27926040519384809261195e565b038361157b565b565b503461000e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261000e5761ffff611a6b6104b0565b1660005260016020526108a16110b4611a8e60406000206040519283809261195e565b6040519182916020835260208301906107d2565b503461000e5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261000e577fdd9c9685af3e6dcb56d8f4b88d2595d4add6837a150034e7781c46b6dcf8aaab611afb6104b0565b611b03610e27565b906113e8611b0f6104d2565b611b3273ffffffffffffffffffffffffffffffffffffffff600054163314613202565b61ffff80821690611b47612710831115614bcc565b60405191611b548361155f565b8252611ba56020830191871515835280871660005260076020526040600020935116839061ffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000825416179055565b5181547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff1690151560101b62ff0000161790556040805161ffff9485168152941515602086015292169183019190915281906060820190565b503461000e5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261000e57602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b503461000e5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261000e57611cae73ffffffffffffffffffffffffffffffffffffffff600054163314613202565b600e5460ff8116611ce3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117600e55005b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c65640000000000006044820152fd5b503461000e5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261000e57602061173c611d7e6104b0565b61ffff611d896104c1565b91166000526002835260406000209061ffff16600052602052604060002090565b503461000e5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261000e57602073ffffffffffffffffffffffffffffffffffffffff60005416604051908152f35b503461000e5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261000e57602073ffffffffffffffffffffffffffffffffffffffff60045416604051908152f35b503461000e576000807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610948576040519080600d54611e928161190b565b808552916001918083169081156109005750600114611ebb576108a1856108958187038261157b565b9250600d83527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb55b828410611efe575050508101602001610895826108a1610885565b80546020858701810191909152909301928101611ee3565b503461000e57602060ff611f5661ffff61171a84611f333661163c565b94909116600052600682526040600020826040519483868095519384920161079d565b54166040519015158152f35b503461000e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261000e5761ffff611f9d6104b0565b1660005260016020526110b4611fbd60406000206040519283809261195e565b805115611fdb5761089581611fd56108a19351613345565b906134e5565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4c7a4170703a206e6f20747275737465642070617468207265636f72640000006044820152fd5b503461000e5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261000e5760043561207581610a3f565b6024359033600052600a6020526120b08160406000209073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b54918083106120d1576120c59203903361533e565b60405160018152602090f35b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152fd5b503461000e5760e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261000e5761218d6104b0565b67ffffffffffffffff9060643582811161000e576121af9036906004016104e3565b608492919235848116810361000e576121c6610e36565b9160c43595861161000e576121e26121f29636906004016104e3565b9590946044359060243590614ae7565b60408051928352602083019190915290f35b503461000e5761221336611022565b919060009161223a73ffffffffffffffffffffffffffffffffffffffff8454163314613202565b6040519360208184828801376122656034878481013060601b8582015203601481018952018761157b565b61ffff83168552600190818152604086209187519167ffffffffffffffff8311612421575b61229e83612298865461190b565b866132c1565b80601f841160011461234f575090828061231c969594938a9b7f8c0400cfe2d1199b1a725c78960bcc2a344d869b80590d0f2bd005db15a572ce9b93612324575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff91921b9260031b1c19161790555b604051938493846132a6565b0390a1604051f35b015191507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff386122df565b919394987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0841661238587600052602060002090565b938a905b82821061240a575050917f8c0400cfe2d1199b1a725c78960bcc2a344d869b80590d0f2bd005db15a572ce999a9593918561231c989694106123d3575b505050811b019055612310565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c191690553880806123c6565b808886978294978701518155019601940190612389565b61242961150e565b61228a565b503461000e5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261000e57610aa660043561246d81610a3f565b6024359033614f5a565b503461000e5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261000e5760206040516127108152f35b503461000e5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261000e57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b503461000e5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261000e57602073ffffffffffffffffffffffffffffffffffffffff60085460101c16604051908152f35b503461000e5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261000e576004356125b581610a3f565b6125bd610e27565b9073ffffffffffffffffffffffffffffffffffffffff906125e382600054163314613202565b16600052600f60205260406000209060ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00835416911515161790556000604051f35b503461000e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261000e577f5db758e995a17ec1ad84bdef7e8c3293a0bd6179bcce400dff5d4c3d87db726b602060043561268581610a3f565b73ffffffffffffffffffffffffffffffffffffffff906126aa82600054163314613202565b16807fffffffffffffffffffffffff00000000000000000000000000000000000000006004541617600455604051908152a1005b503461000e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261000e57604061ffff8061271c6104b0565b16600052600760205260ff82600020548351928116835260101c1615156020820152f35b503461000e5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261000e576127786104b0565b6127806104c1565b60643567ffffffffffffffff811161000e576127a09036906004016104e3565b73ffffffffffffffffffffffffffffffffffffffff92919291600094836127cc87958654163314613202565b7f00000000000000000000000000000000000000000000000000000000000000001691823b15612887578490612852604051978896879586947fcbed8b9c00000000000000000000000000000000000000000000000000000000865261ffff80921660048701521660248501526044356044850152608060648501526084840191613267565b03925af1801561287a575b6128675750604051f35b80612874610a289261153e565b80610792565b6128826131f5565b61285d565b8480fd5b5061289536610511565b9161ffff869492961660005260056020526128dd81604060002060206040518092878b8337878201908152030190209067ffffffffffffffff16600052602052604060002090565b5491821561299b5761298f84836129887fc264d91f3adc5588250e1551f547752ca0cfa8f6b530d243b9f9f4cab10ea8e59a60006129748461295b8e8a8f6113e89f908f612941906129346129559436908d611605565b6020815191012014613843565b61ffff166000526005602052604060002090565b9161382a565b9067ffffffffffffffff16600052602052604060002090565b5561298036878d611605565b933691611605565b9188613a94565b604051958695866138ce565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d65737360448201527f61676500000000000000000000000000000000000000000000000000000000006064820152fd5b503461000e5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261000e57602061ffff60085416604051908152f35b503461000e5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261000e57602061173c600435612aa181610a3f565b73ffffffffffffffffffffffffffffffffffffffff60243591612ac383610a3f565b16600052600a835260406000209073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b503461000e5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261000e577f9d5c7c0b934da8fefa9c7760c98383778a12dfbfc0c3b3106518f43fb9508ac06060612b506104b0565b612b586104c1565b9060443590612b8073ffffffffffffffffffffffffffffffffffffffff600054163314613202565b61ffff8091169283600052600260205282612bad8260406000209061ffff16600052602052604060002090565b556040519384521660208301526040820152a1005b503461000e5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261000e57602060405160018152f35b503461000e576101007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261000e57612c366104b0565b67ffffffffffffffff9060243582811161000e57612c589036906004016104e3565b919060443590848216820361000e57608435612c7381610a3f565b60c43595861161000e57612c8e6106459636906004016104e3565b94909360e4359660a4359460643593613953565b503461000e57612cb136611022565b9190600091612cd873ffffffffffffffffffffffffffffffffffffffff8454163314613202565b61ffff811683526001602090808252604085209167ffffffffffffffff8711612e63575b612d1087612d0a855461190b565b856132c1565b8590601f8811600114612d95575091868087989361231c957ffa41487ad5d6728f0b19276fa1eddc16558578f5109fc39d2dc33c3230470dab9993612d8a575b501b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8460031b1c1916179055604051938493846132a6565b880135925038612d50565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08816612dc885600052602060002090565b9288905b828210612e4c575050918893917ffa41487ad5d6728f0b19276fa1eddc16558578f5109fc39d2dc33c3230470dab989961231c969410612e14575b505082811b019055612310565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88660031b161c19908801351690553880612e07565b808685968294968c01358155019501930190612dcc565b612e6b61150e565b612cfc565b503461000e5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261000e576020612eb6612ead6104b0565b60243590614c57565b604051908152f35b503461000e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261000e57600435612efa81610a3f565b73ffffffffffffffffffffffffffffffffffffffff612f1e81600054163314613202565b811615612f2e5761064590614dd5565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152fd5b503461000e5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261000e576108a1612fed6104b0565b612ff56104c1565b90613001604435610a3f565b604051917ff5ecbdbc00000000000000000000000000000000000000000000000000000000835261ffff8092166004840152166024820152306044820152606435606482015260008160848173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156130c4575b6000916130a3575b5060405191829182610815565b6130be913d8091833e6130b6818361157b565b810190613196565b38613096565b6130cc6131f5565b61308e565b503461000e5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261000e576020604051308152f35b1561311257565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f60448201527f6e747261637400000000000000000000000000000000000000000000000000006064820152fd5b60208183031261000e5780519067ffffffffffffffff821161000e570181601f8201121561000e5780516131c9816115bc565b926131d7604051948561157b565b8184526020828401011161000e57610826916020808501910161079d565b506040513d6000823e3d90fd5b1561320957565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938186528686013760008582860101520116010190565b60409061ffff61082695931681528160208201520191613267565b90601f81116132cf57505050565b600091825260208220906020601f850160051c8301941061330b575b601f0160051c01915b82811061330057505050565b8181556001016132f4565b90925082906132eb565b507f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec9060148110613373570190565b61337b613315565b0190565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaf9060518110613373570190565b8181106133b8570390565b6133c0613315565b0390565b601f907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08111613373570190565b8019605111613402575b60510190565b61340a613315565b6133fc565b81198111613373570190565b1561342257565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152fd5b1561348757565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e64730000000000000000000000000000006044820152fd5b6134f9826134f2816133c4565b101561341b565b6135068282511015613480565b8161351e575050604051600081526020810160405290565b60405191601f811691821560051b808486010193838501920101905b8084106135705750508252601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660405290565b909283518152602080910193019061353a565b613590826134f2816133c4565b6135a5815161359e846133f2565b1115613480565b816135bd575050604051600081526020810160405290565b60405191601f8116916051831560051b80858701019484860193010101905b8084106136125750508252601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660405290565b90928351815260208091019301906135dc565b9290916136ed5a604051907f66ad5c8a00000000000000000000000000000000000000000000000000000000602083015261ffff87166024830152608060448301526136e7826136bb61367b60a483018a6107d2565b67ffffffffffffffff881660648401527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc838203016084840152886107d2565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810184528361157b565b3061370f565b9390156136fc575b5050505050565b61370594613779565b38808080806136f5565b909291600080916040519560c0870187811067ffffffffffffffff82111761376c575b6040526096875282602088019560a036883760208451940192f1903d9060968211613763575b6000908286523e9190565b60969150613758565b61377461150e565b613732565b91936138177fe183f33de2837795525b4792ca4cd60535bd77c53b7e7030060bfcf5734d6b0c95613825939561ffff815160208301209616958660005260056020526137dd8361171a60208b6040600020826040519483868095519384920161079d565b5567ffffffffffffffff613803604051988998895260a060208a015260a08901906107d2565b9216604087015285820360608701526107d2565b9083820360808501526107d2565b0390a1565b6020919283604051948593843782019081520301902090565b1561384a57565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f6160448201527f64000000000000000000000000000000000000000000000000000000000000006064820152fd5b916138fb9060609461ffff67ffffffffffffffff9499989799168552608060208601526080850191613267565b951660408201520152565b939694916139359061082699979461ffff67ffffffffffffffff9416875260c0602088015260c0870191613267565b961660408401526060830152608082015260a0818503910152613267565b91969792989594939094303303613a365761398473ffffffffffffffffffffffffffffffffffffffff918630614d91565b941692836040517fbf551ec93859b170f9b2141bd9298bf3f64322c6f7beb2543a0cb669834118bf61ffff861691806139c28a829190602083019252565b0390a3833b1561000e576000988995613a0b936040519c8d9b8c9a8b987f7fcf35da000000000000000000000000000000000000000000000000000000008a5260048a01613906565b0393f18015613a29575b613a1c5750565b80612874611a2e9261153e565b613a316131f5565b613a15565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4f4654436f72653a2063616c6c6572206d757374206265204f4654436f7265006044820152fd5b92919060ff613aa284613ce0565b1680613c725750505060ff613ab682613ce0565b161580613c67575b613ac790614026565b613ad9613ad38261408b565b916140fc565b91819273ffffffffffffffffffffffffffffffffffffffff80931615613c5d575b613b2f9067ffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000009116613fe9565b918316928315613bff577fbf551ec93859b170f9b2141bd9298bf3f64322c6f7beb2543a0cb669834118bf91613ba582613b6b61ffff946155ee565b613b7f613b7a87600b5461340f565b600b55565b73ffffffffffffffffffffffffffffffffffffffff166000526009602052604060002090565b613bb085825461340f565b90558460007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405180613be989829190602083019252565b0390a3604051938452169180602081015b0390a3565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152fd5b61dead9350613afa565b508051602914613abe565b600103613c8257611a2e93613dec565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4f4654436f72653a20756e6b6e6f776e207061636b65742074797065000000006044820152fd5b6001815110613cf0576001015190565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f746f55696e74385f6f75744f66426f756e6473000000000000000000000000006044820152fd5b989796929394613dbb9567ffffffffffffffff613d9760e099958d61ffff73ffffffffffffffffffffffffffffffffffffffff971690528d6101009081602082015201906107d2565b961660408c015260608b015216608089015260a088015286820360c08801526107d2565b930152565b67ffffffffffffffff613de1604093969594966060845260608401906107d2565b951660208201520152565b9091613df78461416a565b9091613e28613e218761295b613e1b8b61ffff166000526006602052604060002090565b8c6116b6565b5460ff1690565b91613e5f67ffffffffffffffff92837f00000000000000000000000000000000000000000000000000000000000000009116613fe9565b9288888b8315613f81575b505050853b15613f295794613eca96946136e7948a946136bb948d99600014613f225750505a925b5a978b6040519a8b987feaffd49a0000000000000000000000000000000000000000000000000000000060208b015260248a01613d4e565b9015613f17575090613f1261ffff928560207fb8890edbfc1c74692f527444645f95489c3703cc2df42e4a366f5d06fa6cd88496975191012090604051948594169684613dc0565b0390a2565b92611a2e9492613779565b1692613e92565b505060405173ffffffffffffffffffffffffffffffffffffffff9094168452507f9aedf5fdba8716db3b6705ca00150643309995d4f818a249ed6dde6677e7792d975091955085945050602084019250613825915050565b9061295b613fb692613fb089613f9b613fe1979b306150e8565b9961ffff166000526006602052604060002090565b906116b6565b60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055565b88888b613e6a565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482118115151661401a570290565b614022613315565b0290565b1561402d57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4f4654436f72653a20696e76616c6964207061796c6f616400000000000000006044820152fd5b602181511061409e57602d015160601c90565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f746f416464726573735f6f75744f66426f756e647300000000000000000000006044820152fd5b602981511061410c576029015190565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f746f55696e7436345f6f75744f66426f756e64730000000000000000000000006044820152fd5b90614182600160ff61417b85613ce0565b1614614026565b61418b8261408b565b90614195836140fc565b9060498451106141ca57604984015193605181511061410c576141c76051820151916141c1815161337f565b90613583565b91565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f746f427974657333325f6f75744f66426f756e647300000000000000000000006044820152fd5b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18136030182121561000e570180359067ffffffffffffffff821161000e5760200191813603831361000e57565b1561428057565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f426173654f4654576974684665653a20616d6f756e74206973206c657373207460448201527f68616e206d696e416d6f756e74000000000000000000000000000000000000006064820152fd5b1561430b57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f4654436f72653a20616d6f756e7420746f6f20736d616c6c000000000000006044820152fd5b9261438e61082697959361ffff61439c9416865260c0602087015260c08601906107d2565b9084820360408601526107d2565b9373ffffffffffffffffffffffffffffffffffffffff809216606084015216608082015260a08184039101526107d2565b946143f69193929561ffff811660005260016020526143fd60406000206040519485809261195e565b038461157b565b82511561449c5761440f85518261468b565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001693843b1561000e5760009661448b91604051998a98899788967fc580310000000000000000000000000000000000000000000000000000000000885260048801614369565b03925af18015613a2957613a1c5750565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4c7a4170703a2064657374696e6174696f6e20636861696e206973206e6f742060448201527f61207472757374656420736f75726365000000000000000000000000000000006064820152fd5b1561452757565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4c7a4170703a206d696e4761734c696d6974206e6f74207365740000000000006044820152fd5b1561458c57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4c7a4170703a20676173206c696d697420697320746f6f206c6f7700000000006044820152fd5b602282511061462d5761ffff6022611a2e9301519116600052600260205260406000206000805260205260406000205490614626821515614520565b1015614585565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4c7a4170703a20696e76616c69642061646170746572506172616d73000000006044820152fd5b61ffff16600052600360205260406000205490811561470a575b116146ac57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f4c7a4170703a207061796c6f61642073697a6520697320746f6f206c617267656044820152fd5b61271091506146a5565b507f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f00000000000000000000000000000000000000000000000000000000000000009081156147e1575b0467ffffffffffffffff90818111614783571690565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4f4654436f72653a20616d6f756e745344206f766572666c6f770000000000006044820152fd5b6147e9614714565b61476d565b7f00000000000000000000000000000000000000000000000000000000000000008015614831575b81068181809310614825570391565b61482d613315565b0391565b614839614714565b614816565b907fffffffffffffffff000000000000000000000000000000000000000000000000906040519260006020850152602184015260c01b166041820152602981526060810181811067ffffffffffffffff82111761489c575b60405290565b6148a461150e565b614896565b939691949597926148bb908286614d06565b50926148f38135996148cc8b610a3f565b6148eb6148e1602085013594610d4486610a3f565b9a90923691611605565b983691611605565b90602282511061462d57611a2e996149826149899561496661495f602287015199610d5961ffff8a169b8c600052600260205260406000206001600052602052614958604060002054614947811515614520565b67ffffffffffffffff88169061340f565b1115614585565b508a614d5e565b9a6149728c1515614304565b61497b8c614744565b8b336149d2565b34946143cd565b7fd81fc9b8523134ed613870ed029d6170cbb73aa6a6bc311b9a642689fb9df59a602073ffffffffffffffffffffffffffffffffffffffff604051948786521693a41015614279565b93926071926108269473ffffffffffffffffffffffffffffffffffffffff6040519788957f0100000000000000000000000000000000000000000000000000000000000000602088015260218701527fffffffffffffffff000000000000000000000000000000000000000000000000809460c01b16604187015216604985015260c01b166069830152614a6f815180926020868601910161079d565b810103605181018452018261157b565b919082604091031261000e576020825192015190565b919273ffffffffffffffffffffffffffffffffffffffff610826969461ffff614ad29416855216602084015260a0604084015260a08301906107d2565b921515606082015260808184039101526107d2565b949195989790614b16614b10604099614b08614b1d97614b53993691611605565b943691611605565b97614744565b90336149d2565b92845196879485947f40a7bb10000000000000000000000000000000000000000000000000000000008652309060048701614a95565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa918215614bbf575b6000908193614ba457509190565b905061059391925060403d8111610f8557610f76818361157b565b614bc76131f5565b614b96565b15614bd357565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4665653a20666565206270206d757374206265203c3d2042505f44454e4f4d4960448201527f4e41544f520000000000000000000000000000000000000000000000000000006064820152fd5b61ffff809116600052600760205260406000209060ff604051926040840184811067ffffffffffffffff821117614cf9575b60405254828116845260101c161580156020840152614cce575061082691614cc0614cb9614cc6935161ffff1690565b61ffff1690565b90613fe9565b612710900490565b9050614cdd60085461ffff1690565b16908115614cf25761082691614cc691613fe9565b5050600090565b614d0161150e565b614c89565b929082614d1291614c57565b8281809410614d51575b03928280614d28575050565b614d4e9173ffffffffffffffffffffffffffffffffffffffff60085460101c1690614d91565b50565b614d59613315565b614d1c565b81610826913373ffffffffffffffffffffffffffffffffffffffff8216031561520f57614d8c8233836154f8565b61520f565b61082691839173ffffffffffffffffffffffffffffffffffffffff8116308114159081614dca575b5015614f5a57610c918333836154f8565b905033141538614db9565b6000549073ffffffffffffffffffffffffffffffffffffffff80911691827fffffffffffffffffffffffff0000000000000000000000000000000000000000821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e06000604051a3565b15614e4b57565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152fd5b15614ed657565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152fd5b919073ffffffffffffffffffffffffffffffffffffffff9081841692831561506457615047827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef94613bfa941696614fb3881515614e44565b614fbd828261582a565b61502084614feb8373ffffffffffffffffffffffffffffffffffffffff166000526009602052604060002090565b54614ff882821015614ecf565b039173ffffffffffffffffffffffffffffffffffffffff166000526009602052604060002090565b5573ffffffffffffffffffffffffffffffffffffffff166000526009602052604060002090565b61505282825461340f565b90556040519081529081906020820190565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152fd5b73ffffffffffffffffffffffffffffffffffffffff8116918215613bff5760207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9161516e846151396000966155ee565b61514583600b5461340f565b600b5573ffffffffffffffffffffffffffffffffffffffff166000526009602052604060002090565b61517982825461340f565b9055604051908152a3565b1561518b57565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152fd5b9073ffffffffffffffffffffffffffffffffffffffff82169081156152ba57613bfa7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef918461525f60009661574f565b61529a8261528d8373ffffffffffffffffffffffffffffffffffffffff166000526009602052604060002090565b54614ff882821015615184565b556152aa613b7a82600b546133ad565b6040519081529081906020820190565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152fd5b9073ffffffffffffffffffffffffffffffffffffffff918281169283156154755782169384156153f157806153e07f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925946153bb613bfa9573ffffffffffffffffffffffffffffffffffffffff16600052600a602052604060002090565b9073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b556040519081529081906020820190565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152fd5b60846040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152fd5b9073ffffffffffffffffffffffffffffffffffffffff8216600052600a6020526155468160406000209073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b54927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84036155755750505050565b8084106155905761558793039161533e565b3880808061198b565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152fd5b60ff600e541690811561572e575b8115615709575b81156156d4575b811561569e575b501561561957565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f54726164696e67206973206e6f7420656e61626c6564206f722061646472657360448201527f73206e6f742077686974656c69737465640000000000000000000000000000006064820152608490fd5b60ff91506156cc9073ffffffffffffffffffffffffffffffffffffffff16600052600f602052604060002090565b541638615611565b60008052600f6020527ff4803e074bd026baaf6ed2e288c9515f68c72fb7216eebdd7cae1718a53ec3755460ff16915061560a565b60005473ffffffffffffffffffffffffffffffffffffffff8083169116149150615603565b60005473ffffffffffffffffffffffffffffffffffffffff161591506155fc565b60ff600e5416908115615805575b81156157e4575b81156157ae575b50801561577a575b1561561957565b5060008052600f60205260ff7ff4803e074bd026baaf6ed2e288c9515f68c72fb7216eebdd7cae1718a53ec3755416615773565b60ff91506157dc9073ffffffffffffffffffffffffffffffffffffffff16600052600f602052604060002090565b54163861576b565b60005473ffffffffffffffffffffffffffffffffffffffff16159150615764565b60005473ffffffffffffffffffffffffffffffffffffffff808316911614915061575d565b9060ff600e54169182156158b3575b821561588e575b8215615856575b50811561569e57501561561957565b60ff9192506158859073ffffffffffffffffffffffffffffffffffffffff16600052600f602052604060002090565b54169038615847565b60005473ffffffffffffffffffffffffffffffffffffffff8381169116149250615840565b60005473ffffffffffffffffffffffffffffffffffffffff808316911614925061583956fea26469706673582212208f38fcb381173df52ba01490472c8e6ab18ec705f4bb84df7b20055808f5baee64736f6c634300080f0033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000008000000000000000000000000b6319cc6c8c27a8f5daf0dd3df91ea35c4720dd7000000000000000000000000000000000000000000000000000000000000000846616e672044616f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000046644414f00000000000000000000000000000000000000000000000000000000