!t~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Safe       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Safenetwork6Returns the index corresponding to the interface name.Since 2.7.0.0.network6Returns the interface name corresponding to the index.Since 2.7.0.0.SafenetworkThis is the value of SOMAXCONN, typically 128. 128 is good enough for normal network servers but is too small for high performance servers. SafenetworkASet the nonblocking flag on Unix. On Windows, nothing is done.networkCSet the close_on_exec flag on Unix. On Windows, nothing is done.Since 2.7.0.0.networkHGet the close_on_exec flag. On Windows, this function always returns .Since 2.7.0.0.networkFGet the nonblocking flag. On Windows, this function always returns .Since 2.7.0.0. Safe None"#2=?M}mnnetworkKPrivate newtype proxy for the Storable instance. To avoid orphan instances.network'Independent of endianness. For example ::1 is stored as  (0, 0, 0, 1).For direct manipulation prefer m and n.networkThe raw network byte order number is read using host byte order. Therefore on little-endian architectures the byte order is swapped. For example  127.0.0.1 is represented as  0x0100007f on little-endian hosts and as  0x7f000001 on big-endian hosts.For direct manipulation prefer k and l. networkSocket addresses. The existence of a constructor does not necessarily imply that that socket address type is supported on your system: see j. networkG must be a list of 0-255 values and its length should be less than 104. networkScope identifier.networkFlow information.network-The core typeclass to unify socket addresses.networkPort number. Use the Num. instance (i.e. use a literal) to create a  PortNumber value.1 :: PortNumber1read "1" :: PortNumber1show (12345 :: PortNumber)"12345"50000 < (51000 :: PortNumber)True50000 < (52000 :: PortNumber)True50000 + (10000 :: PortNumber)60000networkAddress families.]A constructor being present here does not mean it is supported by the operating system: see g.network unspecifiednetwork UNIX-domainnetworkInternet Protocol version 4networkInternet Protocol version 6networkArpanet imp addressesnetworkpup protocols: e.g. BSPnetworkmit CHAOS protocolsnetworkXEROX NS protocolsnetwork nbs protocolsnetworkeuropean computer manufacturersnetworkdatakit protocols networkCCITT protocols, X.25 etc!networkIBM SNA"networkDECnet#networkDirect data link interface$networkLAT%networkNSC Hyperchannel&network Apple Talk'network*Internal Routing Protocol (aka AF_NETLINK)(networkNetBios-style addresses)networkNetwork Interface Tap*networkIEEE 802.2, also ISO 8802+network ISO protocols,network$umbrella of all families used by OSI-networkDNA Network Management.network CCITT X.25/networkAX250networkAFI1networkUS Government OSI2networkNovell Internet Protocol3network!eXpress Transfer Protocol (no AF)4networkCommon Trace Facility5networkWide Area Network protocols6networkSGI Data Link for DLPI7networkNetware8networkNDD9networkDebugging use only:network!connection-oriented IP, aka ST II;networkComputer Network Technology<networkHelp Identify RTIP packets=networkHelp Identify PIP packets>networkSimple Internet Protocol?network#Integrated Services Digital Network@network Internal key-management functionAnetworknative ATM accessBnetwork ARP (RFC 826)Cnetwork/Used by BPF to not rewrite hdrs in iface outputDnetworkENCAPEnetworkLink layer interfaceFnetworkLink layer interfaceGnetwork raw interfaceHnetworkAmateur radio NetROMInetworkmultiprotocol bridgeJnetworkATM PVCsKnetworkAmateur Radio X.25 PLPLnetworkNetbeui 802.2LLCMnetworkSecurity callback pseudo AFNnetwork Packet familyOnetworkAshPnetwork Acorn EconetQnetworkATM SVCsRnetwork IRDA socketsSnetwork PPPoX socketsTnetworkWanpipe API socketsUnetworkbluetooth socketsVnetworkController Area NetworkWnetwork Socket Types.rThe existence of a constructor does not necessarily imply that that socket type is supported on your system: see e.Xnetwork)0, used in getAddrInfo hints, for exampleYnetwork SOCK_STREAMZnetwork SOCK_DGRAM[networkSOCK_RAW\networkSOCK_RDM]networkSOCK_SEQPACKET^networkProtocl number._networkBasic type for a socket.network8Converts the from network byte order to host byte order.network8Converts the from host byte order to network byte order.`network(Getting a file descriptor from a socket.If a _1 is shared with multiple threads and one uses `C, unexpected issues may happen. Consider the following scenario:1) Thread A acquires a  from _ by `.2) Thread B close the _.3) Thread C opens a new _!. Unfortunately it gets the same ( number which thread A is holding.0In this case, it is safer for Thread A to clone  by  ?. But this would still suffer from a rase condition between ` and b.anetwork)Creating a socket from a file descriptor.bnetworkoClose the socket. This function does not throw exceptions even if the underlying system call returns errors.5If multiple threads use the same socket and one uses ` and the other use b`, unexpected behavior may happen. For more information, please refer to the documentation of `.cnetworkbClose the socket. This function throws exceptions if the underlying system call returns errors.dnetwork1This is the default protocol for a given service.defaultProtocol0enetworkTDoes the SOCK_ constant corresponding to the given SocketType exist on this system?network>Find the SOCK_ constant corresponding to the SocketType value.networkTry packSocketType' on the SocketType, if it fails throw an error with message starting "Network.Socket." ++ the String parameternetwork}Try unpackSocketType on the CInt, if it fails throw an error with message starting "Network.Socket." ++ the String parameterfnetwork Converting  to  .gnetworkNDoes the AF_ constant corresponding to the given family exist on this system?hnetwork Converting   to .inetworkDefault port number. defaultPort0jnetwork4Is the socket address type supported on this system?network;Computes the storage requirements (in bytes) of the given  . This function differs from $ in that the value of the argument is used.networkUse a  + with a function requiring a pointer to a   and the length of that  .networkWrite the given   to the given memory location.networkRead a   from the given memory location.knetwork Converts @ to representation-independent IPv4 quadruple. For example for  127.0.0.1 the function will return (0x7f, 0, 0, 1) regardless of host endianness.lnetworkConverts IPv4 quadruple to .mnetwork Converts , to representation-independent IPv6 octuple.nnetworkConverts IPv6 octuple to .onetworkZero a structure.w  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWYXZ[\]^_`abcdefghijklmno"(c) The University of Glasgow 20012BSD-style (see the file libraries/network/LICENSE)libraries@haskell.org provisionalportableNone pnetwork Throw an Q corresponding to the current socket error if the IO action returns a result of -1o, but retries in case of an interrupted operation. Discards the result of the IO action after error handling.qnetwork Throw an Q corresponding to the current socket error if the IO action returns a result of -1, but retries in case of an interrupted operation. Checks for operations that would block and executes an alternative action before retrying in that case.rnetwork Throw an Q corresponding to the current socket error if the IO action returns a result of -13, but retries in case of an interrupted operation.snetwork Throw an Q corresponding to the current socket error if the IO action returns a result of -1>. Discards the result of the IO action after error handling.tnetwork Throw an + corresponding to the current socket error.unetworkLike t0, but the error code is supplied as an argument.?On Windows, do not use errno. Use a system error code instead.vnetworkLike r , but if the action fails with  EWOULDBLOCKB or similar, wait for the socket to be read-ready, and try again.wnetworkLike r , but if the action fails with  EWOULDBLOCKC or similar, wait for the socket to be write-ready, and try again.xnetworkWith older versions of the networkw library (version 2.6.0.2 or earlier) on Windows operating systems, the networking subsystem must be initialised using x2 before any networking operations can be used. eg. main = withSocketsDo $ do {...}It is fine to nest calls to x-, and to perform networking operations after x has returned.x is not necessary for the current network library. However, for compatibility with older versions on Windows, it is good practice to always call x (it's very cheap).pnetwork#textual description of the locationnetworkthe  operation to be executedqnetwork#textual description of the locationnetworkFaction to execute before retrying if an immediate retry would blocknetworkthe  operation to be executedrnetwork#textual description of the locationnetworkthe  operation to be executedsnetwork#textual description of the locationnetworkthe  operation to be executedtnetwork)textual description of the error location opqrstuvwx tusrpqvwxoNone2}networkShut down one or both halves of the connection, depending on the second argument to the function. If the second argument is z., further receives are disallowed. If it is {+, further sends are disallowed. If it is |,, further sends and receives are disallowed.yz{|}None2X?~networkSocket options for use with  and .iThe existence of a constructor does not imply that the relevant option is supported on your system: see networkSO_DEBUGnetwork SO_REUSEADDRnetworkSO_TYPEnetworkSO_ERRORnetwork SO_DONTROUTEnetwork SO_BROADCASTnetwork SO_SNDBUFnetwork SO_RCVBUFnetwork SO_KEEPALIVEnetwork SO_OOBINLINEnetworkIP_TTLnetwork TCP_MAXSEGnetwork TCP_NODELAYnetworkTCP_CORKnetwork:SO_LINGER: timeout in seconds, 0 means disabling/disabled.network SO_REUSEPORTnetwork SO_RCVLOWATnetwork SO_SNDLOWATnetwork/SO_RCVTIMEO: this does not work at this moment.network/SO_SNDTIMEO: this does not work at this moment.networkSO_USELOOPBACKnetworkTCP_USER_TIMEOUTnetwork'IPV6_V6ONLY: don't use this on OpenBSD.network Does the ~ exist on this system?networkGet the W of an active socket.Since: 3.0.1.0networkFor a socket option, return Just (level, value) where level is the corresponding C option level constant (e.g. SOL_SOCKET) and value is the option constant itself (e.g. SO_DEBUG) If either constant does not exist, return Nothing.networkReturn the option level and option value if they exist, otherwise throw an error that begins "Network.Socket." ++ the String parameternetworkpSet a socket option that expects an Int value. There is currently no API to set e.g. the timeval socket optionsnetworknGet a socket option that gives an Int value. There is currently no API to get e.g. the timeval socket options~NoneXVnetworkuCreate a new socket using the given address family, socket type and protocol number. The address family is usually , , or . The socket type is usually Y or Z". The protocol number is usually d. If  is used and the socket type is Y or Z, the V socket option is set to 0 so that both IPv4 and IPv6 can be handled with one socket.import Network.Socketblet hints = defaultHints { addrFlags = [AI_NUMERICHOST, AI_NUMERICSERV], addrSocketType = Stream }Caddr:_ <- getAddrInfo (Just hints) (Just "127.0.0.1") (Just "5000")Jsock <- socket (addrFamily addr) (addrSocketType addr) (addrProtocol addr)+Network.Socket.bind sock (addrAddress addr)getSocketName sock127.0.0.1:5000networkKBind the socket to an address. The socket must not already be bound. The  passed to bind% must be the same as that passed to . If the special port number i@ is passed then the system assigns the next available use port.network&Connect to a remote socket at address.networkListen for connections made to the socket. The second argument specifies the maximum number of queued connections and should be at least 1; the maximum value is system-dependent (usually 5).networkyAccept a connection. The socket must be bound to an address and listening for connections. The return value is a pair (conn, address) where connP is a new socket object usable to send and receive data on the connection, and addressp is the address bound to the socket on the other end of the connection. On Unix, FD_CLOEXEC is set to the new _. NonenetworkGetting peer's socket address.networkGetting my socket address.networkGetting the port of socket. & is thrown if a port is not available.networkGetting the port of socket.None"#22network-Flags that control the querying behaviour of . For more information, see +https://tools.ietf.org/html/rfc3493#page-30networkResolve a datagram-based service name. This is required only for the few protocols that have different port numbers for their datagram-based versions than for their stream-based versions.network;If the hostname cannot be looked up, an IO error is thrown.network>If a host is local, return only the hostname part of the FQDN.networkThe name of the host is not looked up. Instead, a numeric representation of the host's address is returned. For an IPv4 address, this will be a dotted-quad string. For IPv6, it will be colon-separated hexadecimal.networknThe name of the service is not looked up. Instead, a numeric representation of the service is returned.network-Flags that control the querying behaviour of . For more information, see +https://tools.ietf.org/html/rfc3493#page-25networkThe list of returned  values will only contain IPv4 addresses if the local system has at least one IPv4 interface configured, and likewise for IPv6. (Only some platforms support this.)networkIf  is specified, return all matching IPv6 and IPv4 addresses. Otherwise, this flag has no effect. (Only some platforms support this.)networkThe  field of the first returned / will contain the "canonical name" of the host.networkThe  argument must[ be a numeric address in string form, and network name lookups will not be attempted.networkThe  argument must{ be a port number in string form, and service name lookups will not be attempted. (Only some platforms support this.)networkIf no 3 value is provided, the network address in each  } will be left as a "wild card". This is useful for server applications that will accept connections from any client.networkIf an IPv6 lookup is performed, and no IPv6 addresses are found, IPv6-mapped IPv4 addresses will be returned. (Only some platforms support this.)networkEither a service name e.g., "http" or a numeric port number.networkEither a host name e.g.,  "haskell.org"i or a numeric host address string consisting of a dotted decimal IPv4 address or an IPv6 address e.g.,  "192.168.0.1".networkIndicate whether the given & will have any effect on this system.network&Default hints for address lookup with . The values of the  and  fields are , and are never inspected by .addrFlags defaultHints[]addrFamily defaultHints AF_UNSPECaddrSocketType defaultHints NoSocketTypeaddrProtocol defaultHints0networkShows the fields of 5, without inspecting the by-default undefined fields  and .network>Resolve a host or service name to one or more addresses. The + values that this function returns contain  ' values that you can pass directly to connect or bind.^This function is protocol independent. It can return both IPv4 and IPv6 address information.The  argument specifies the preferred query behaviour, socket options, or protocol. You can override these conveniently using Haskell's record update syntax on , for example as follows:Rlet hints = defaultHints { addrFlags = [AI_NUMERICHOST], addrSocketType = Stream }You must provide a . value for at least one of the  or  arguments.  can be either a numeric network address (dotted quad for IPv4, colon-separated hex for IPv6) or a hostname. In the latter case, its addresses will be looked up unless 3 is specified as a hint. If you do not provide a  value and do not set a as a hint, network addresses in the result will contain the address of the loopback interface.If the query fails, this function throws an IO exception instead of returning an empty list. Otherwise, it returns a non-empty list of  values.There are several reasons why a query might result in several values. For example, the queried-for host could be multihomed, or the service might be available via several protocols.HNote: the order of arguments is slightly different to that defined for  getaddrinfo in RFC 2553. The ; parameter comes first to make partial application easier.Caddr:_ <- getAddrInfo (Just hints) (Just "127.0.0.1") (Just "http")addrAddress addr 127.0.0.1:80networkcResolve an address to a host or service name. This function is protocol independent. The list of ! values controls query behaviour.sIf a host or service's name cannot be looked up, then the numeric form of the address or service will be returned.9If the query fails, this function throws an IO exception.Jaddr:_ <- getAddrInfo (Just defaultHints) (Just "127.0.0.1") (Just "http")IgetNameInfo [NI_NUMERICHOST, NI_NUMERICSERV] True True $ addrAddress addr(Just "127.0.0.1",Just "80")networkPack a list of values into a bitmask. The possible mappings from value to bit-to-set are given as the first argument. We assume that each value can cause exactly one bit to be set; unpackBits will break if this property is not true.network'Unpack a bitmask into a list of values.network!preferred socket type or protocolnetworkhost name to look upnetworkservice name to look upnetwork%resolved addresses, with "best" firstnetwork!flags to control lookup behaviournetworkwhether to look up a hostnamenetwork!whether to look up a service namenetworkthe address to look up(None8networkTurns a Socket into an 1. By default, the new handle is unbuffered. Use  to change the buffering.Note that since a } is automatically closed by a finalizer when it is no longer referenced, you should avoid doing any more operations on the _ after calling . To close the _ after , call  on the .None8(c) Johan Tibell 2007-2010 BSD-stylejohan.tibell@gmail.comstableportableNone:CNoneQnetworkSend data to the socket. The recipient can be specified explicitly, so the socket need not be in a connected state. Returns the number of bytes sent. Applications are responsible for ensuring that all data has been sent.networkSend data to the socket. The socket must be connected to a remote socket. Returns the number of bytes sent. Applications are responsible for ensuring that all data has been sent.networkReceive data from the socket, writing it into buffer instead of creating a new string. The socket need not be in a connected state. Returns (nbytes, address) where nbytes& is the number of bytes received and address is a  1 representing the address of the sending socket.0If the first return value is zero, it means EOF.For Y3 sockets, the second return value would be invalid.SNOTE: blocking on Windows unless you compile with -threaded (see GHC ticket #1129)networkReceive data from the socket. The socket must be in a connected state. This function may return fewer bytes than specified. If the message is longer than the specified length, it may be discarded depending on the type of socket. This function may block until a message arrives.}Considering hardware and network realities, the maximum number of bytes to receive should be a small power of 2, e.g., 4096.The return value is the length of received data. Zero means EOF. Historical note: Version 2.8.x.y or earlier, an EOF error was thrown. This was changed in version 3.0.Noneh}networkGetting peer's  .network Getting my  .network&Connect to a remote socket at address.networkKBind the socket to an address. The socket must not already be bound. The  passed to bind% must be the same as that passed to socket. If the special port number i@ is passed then the system assigns the next available use port.networkyAccept a connection. The socket must be bound to an address and listening for connections. The return value is a pair (conn, address) where connP is a new socket object usable to send and receive data on the connection, and addressp is the address bound to the socket on the other end of the connection. On Unix, FD_CLOEXEC is set to the new _.networkSend data to the socket. The recipient can be specified explicitly, so the socket need not be in a connected state. Returns the number of bytes sent. Applications are responsible for ensuring that all data has been sent.networkReceive data from the socket, writing it into buffer instead of creating a new string. The socket need not be in a connected state. Returns (nbytes, address) where nbytes& is the number of bytes received and address is a  1 representing the address of the sending socket.0If the first return value is zero, it means EOF.For Y3 sockets, the second return value would be invalid.SNOTE: blocking on Windows unless you compile with -threaded (see GHC ticket #1129)(c) Johan Tibell 2007-2010 BSD-stylejohan.tibell@gmail.comstableportableNone"# networkSend data to the socket. The socket must be connected to a remote socket. Returns the number of bytes sent. Applications are responsible for ensuring that all data has been sent.networkTSend data to the socket. The socket must be connected to a remote socket. Unlike , this function continues to send data until either all data has been sent or an error occurs. On error, an exception is raised, and there is no way to determine how much data, if any, was successfully sent.networkSend data to the socket. The recipient can be specified explicitly, so the socket need not be in a connected state. Returns the number of bytes sent. Applications are responsible for ensuring that all data has been sent.network~Send data to the socket. The recipient can be specified explicitly, so the socket need not be in a connected state. Unlike , this function continues to send data until either all data has been sent or an error occurs. On error, an exception is raised, and there is no way to determine how much data, if any, was successfully sent.networkPSend data to the socket. The socket must be in a connected state. The data is sent as if the parts have been concatenated. This function continues to send data until either all data has been sent or an error occurs. On error, an exception is raised, and there is no way to determine how much data, if any, was successfully sent.networkSend data to the socket. The recipient can be specified explicitly, so the socket need not be in a connected state. The data is sent as if the parts have been concatenated. This function continues to send data until either all data has been sent or an error occurs. On error, an exception is raised, and there is no way to determine how much data, if any, was successfully sent.networkReceive data from the socket. The socket must be in a connected state. This function may return fewer bytes than specified. If the message is longer than the specified length, it may be discarded depending on the type of socket. This function may block until a message arrives.}Considering hardware and network realities, the maximum number of bytes to receive should be a small power of 2, e.g., 4096.gFor TCP sockets, a zero length return value means the peer has closed its half side of the connection.networkVReceive data from the socket. The socket need not be in a connected state. Returns (bytes, address) where bytes is a  $ representing the data received and address is a  0 representing the address of the sending socket.0If the first return value is zero, it means EOF. network,Suppose we try to transmit a list of chunks cs0 via a gathering write operation and find that n bytes were sent. Then remainingChunks n cs) is list of chunks remaining to be sent. networkwithIOVec cs f executes the computation fw, passing as argument a pair consisting of a pointer to a temporarily allocated array of pointers to IOVec made from cs and the number of pointers ( length cs).  Unix only.networkConnected socketnetwork Data to sendnetworkNumber of bytes sentnetworkConnected socketnetwork Data to sendnetworkSocketnetwork Data to sendnetworkRecipient addressnetworkNumber of bytes sentnetworkSocketnetwork Data to sendnetworkRecipient addressnetworkConnected socketnetwork Data to sendnetworkSocketnetwork Data to sendnetworkRecipient addressnetworkConnected socketnetwork"Maximum number of bytes to receivenetwork Data receivednetworkSocketnetwork"Maximum number of bytes to receivenetwork Data received and sender address  NonenetworkConnected socketnetwork Data to sendnetworkNumber of bytes sentnetworkConnected socketnetwork Data to send(c) Johan Tibell 2007-2010 BSD-stylejohan.tibell@gmail.comstableportableNone*networkSend data to the socket. The recipient can be specified explicitly, so the socket need not be in a connected state. Returns the number of bytes sent. Applications are responsible for ensuring that all data has been sent.network~Send data to the socket. The recipient can be specified explicitly, so the socket need not be in a connected state. Unlike , this function continues to send data until either all data has been sent or an error occurs. On error, an exception is raised, and there is no way to determine how much data, if any, was successfully sent.networkVReceive data from the socket. The socket need not be in a connected state. Returns (bytes, address) where bytes is a  $ representing the data received and address is a  0 representing the address of the sending socket.NoneNonenetworkAGetting process ID, user ID and group ID for UNIX-domain sockets.This is implemented with SO_PEERCRED on Linux and getpeereid() on BSD variants. Unfortunately, on some BSD variants getpeereid() returns unexpected results, rather than an error, for AF_INET sockets. It is the user's responsibility to make sure that the socket is a UNIX-domain socket. Also, on some BSD variants, getpeereid() does not return credentials for sockets created via d, only separately created and then explicitly connected UNIX-domain sockets work on such systems.Since 2.7.0.0. networkQReturns the processID, userID and groupID of the peer of a UNIX-domain socket.5Only available on platforms that support SO_PEERCRED.networkFReturns the userID and groupID of the peer of a UNIX-domain socket.6Only available on platforms that support getpeereid().network1Whether or not UNIX-domain sockets are available.Since 2.7.0.0.networkYSend a file descriptor over a UNIX-domain socket. Use this function in the case where  is .networkReceive a file descriptor over a UNIX-domain socket. Note that the resulting file descriptor may have to be put into non-blocking mode in order to be used safely. See ). Use this function in the case where  is .networkeBuild a pair of connected socket objects. For portability, use this function in the case where  is  and specify  to the first argument. "(c) The University of Glasgow 20012BSD-style (see the file libraries/network/LICENSE)libraries@haskell.org provisionalportableNoneI  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWYXZ[\]^_`abcdefghijklmnxyz{|}~ݽxbc}yz{|~_`aWYXZ[\]e !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVgfh^d jklmn i(c) Bryan O'Sullivan 2009 BSD-stylebos@serpentine.com experimental POSIX, GHCNoneZnetworkReceive data from the socket. The socket must be in a connected state. Data is received on demand, in chunks; each chunk will be sized to reflect the amount of data received by individual  calls.All remaining data from the socket is consumed. When there is no more data to be received, the receiving side of the socket is shut down. If there is an error and an exception is thrown, the socket is not shut down.network#Receive data from the socket. The socket must be in a connected state. This function may return fewer bytes than specified. If the received data is longer than the specified length, it may be discarded depending on the type of socket. This function may block until a message arrives.:If there is no more data to be received, returns an empty .networkConnected socketnetwork Data receivednetworkConnected socketnetwork"Maximum number of bytes to receivenetwork Data received ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~        !"#$%&'()*+,-.-/-0-1-2-3-4-5-6-7-8-9:;:<=>?@ABCDEDFDGDHIJIKILBMBNBOBPBQRSRTRURVWXWYBZ[\]^_`abcdefghij:k:l:mnonpnqnrnsntnunvnvnwxyxzx{x|x}x~xxxxxxxxxxxxxxxxxxxxxxx%%%%%--------------       !!""##$$%%&&''(())**++,,--..//00112233445678899::;;<=<><?<@<A<B<B<C<CDEFGHIJKWLWMWNWOWPWQWRWSWTUVUWUXUYUZU[U\U]U^U_U`UaUbUcUdUefghijRkRlRmnonpnqnrnsntnunvnwnxnynzn{n|n}n~nnnnnnnnnnnnnnnB                     B      B&network-3.0.1.1-CHSR3XrToff3SltVAZnyeNNetwork.SocketNetwork.Socket.AddressNetwork.Socket.InternalNetwork.Socket.ByteStringNetwork.Socket.ByteString.LazyNetwork.Socket.ImportsNetwork.Socket.IfNetwork.Socket.CbitsNetwork.Socket.FcntlNetwork.Socket.ByteString.IOVecNetwork.Socket.TypesSystem.Posix.IOdupForeign.StorablesizeOfNetwork.Socket.ShutdownNetwork.Socket.OptionsNetwork.Socket.SyscallNetwork.Socket.NameNetwork.Socket.InfoNetwork.Socket.Handle System.IOhClose Network.Socket.ByteString.MsgHdr"Network.Socket.ByteString.InternalNetwork.Socket.BufferNetwork.Socket.SockAddrNetwork.Socket.ByteString.IO$Network.Socket.ByteString.Lazy.PosixNetwork.Socket.Unix ifNameToIndex ifIndexToNamemaxListenQueuesetNonBlockIfNeededsetCloseOnExecIfNeededgetCloseOnExec getNonBlock HostAddress6 HostAddressSockAddr SockAddrInet SockAddrInet6 SockAddrUnixScopeIDFlowInfo SocketAddresssizeOfSocketAddresspeekSocketAddresspokeSocketAddress PortNumberFamily AF_UNSPECAF_UNIXAF_INETAF_INET6 AF_IMPLINKAF_PUPAF_CHAOSAF_NSAF_NBSAF_ECMA AF_DATAKITAF_CCITTAF_SNA AF_DECnetAF_DLIAF_LAT AF_HYLINK AF_APPLETALKAF_ROUTE AF_NETBIOSAF_NITAF_802AF_ISOAF_OSI AF_NETMANAF_X25AF_AX25 AF_OSINET AF_GOSSIPAF_IPX Pseudo_AF_XTPAF_CTFAF_WANAF_SDL AF_NETWAREAF_NDDAF_INTFAF_COIPAF_CNTPseudo_AF_RTIP Pseudo_AF_PIPAF_SIPAF_ISDN Pseudo_AF_KEYAF_NATMAF_ARPPseudo_AF_HDRCMPLTAF_ENCAPAF_LINKAF_RAWAF_RIF AF_NETROM AF_BRIDGE AF_ATMPVCAF_ROSE AF_NETBEUI AF_SECURITY AF_PACKETAF_ASH AF_ECONET AF_ATMSVCAF_IRDAAF_PPPOX AF_WANPIPE AF_BLUETOOTHAF_CAN SocketType NoSocketTypeStreamDatagramRawRDM SeqPacketProtocolNumberSocketfdSocketmkSocketcloseclose'defaultProtocolisSupportedSocketType packFamilyisSupportedFamily unpackFamily defaultPortisSupportedSockAddrhostAddressToTupletupleToHostAddresshostAddress6ToTupletupleToHostAddress6 zeroMemorythrowSocketErrorIfMinus1Retry_%throwSocketErrorIfMinus1RetryMayBlockthrowSocketErrorIfMinus1RetrythrowSocketErrorIfMinus1_throwSocketErrorthrowSocketErrorCodethrowSocketErrorWaitReadthrowSocketErrorWaitWrite withSocketsDo ShutdownCmdShutdownReceive ShutdownSend ShutdownBothshutdown SocketOptionDebug ReuseAddrTypeSoError DontRoute Broadcast SendBuffer RecvBuffer KeepAlive OOBInline TimeToLive MaxSegmentNoDelayCorkLinger ReusePort RecvLowWater SendLowWater RecvTimeOut SendTimeOut UseLoopBack UserTimeoutIPv6Only CustomSockOptisSupportedSocketOption getSocketTypesetSocketOptiongetSocketOptionsocketbindconnectlistenaccept getPeerName getSocketName socketPortsocketPortSafe NameInfoFlagNI_DGRAM NI_NAMEREQD NI_NOFQDNNI_NUMERICHOSTNI_NUMERICSERVAddrInfo addrFlags addrFamilyaddrSocketType addrProtocol addrAddress addrCanonName AddrInfoFlag AI_ADDRCONFIGAI_ALL AI_CANONNAMEAI_NUMERICHOSTAI_NUMERICSERV AI_PASSIVE AI_V4MAPPED ServiceNameHostNameaddrInfoFlagImplemented defaultHints getAddrInfo getNameInfosocketToHandle sendBufTosendBuf recvBufFromrecvBufsendsendAllsendTo sendAllTosendMany sendManyTorecvrecvFromgetPeerCredentialisUnixDomainSocketAvailablesendFdrecvFd socketPair getContentsbaseGHC.Base++GHC.Listfilterzipmap Control.Monadguardjoin GHC.FloatFloatingpiexplogsqrt**logBasesincostanasinacosatansinhcoshtanhasinhacoshatanhlog1pexpm1log1pexplog1mexpMonad>>=>>returnfailFunctorfmap<$ghc-prim GHC.ClassesOrd>=minmax><compare<=Data.Typeable.InternalTypeable Applicativepure<*>*>liftA2<* Data.Foldablefoldrnulllengthfoldlfoldl'foldl1sumproductfoldr1maximumminimumelemData.TraversablemapMsequence<>Monoidmemptymappendmconcat GHC.TypesIntGHC.IntInt8Int16Int32Int64 GHC.MaybeMaybeNothingJustOrderingLTEQGTWordGHC.WordWord8Word16Word32Word64GHC.PtrPtrFunPtrTyConmfilter<$!>unless replicateM_ replicateMfoldM_foldM zipWithM_zipWithM mapAndUnzipMforever<=<>=>filterM Data.ListisSubsequenceOf mapAccumR mapAccumLforMControl.Applicativeoptional WrappedMonad WrapMonad unwrapMonad WrappedArrow WrapArrow unwrapArrowZipList getZipListForeign.C.StringwithCWStringLen withCWStringnewCWStringLen newCWStringpeekCWStringLen peekCWStringwithCAStringLen withCAStringnewCAStringLen newCAStringpeekCAStringLen peekCAStringcastCharToCSCharcastCSCharToCharcastCharToCUCharcastCUCharToCharcastCharToCCharcastCCharToCharcharIsRepresentablewithCStringLen withCString newCStringLen newCStringpeekCStringLen peekCStringCString CStringLenCWString CWStringLen Data.TypeabletypeOf7typeOf6typeOf5typeOf4typeOf3typeOf2typeOf1 rnfTypeReptypeRepFingerprint typeRepTyCon typeRepArgs splitTyConAppmkFunTy funResultTygcast2gcast1gcasteqTcast showsTypeReptypeReptypeOfTypeReprnfTyContyConFingerprint tyConName tyConModule tyConPackageData.Functor.ConstConstgetConstfindnotElem minimumBy maximumByallanyorand concatMapconcatmsum sequence_forM_mapM_ Data.MonoidFirstgetFirstLastgetLastApgetApData.Semigroup.InternalDualgetDualEndoappEndoAllgetAllAnygetAnySumgetSumProduct getProductAltgetAlt Data.OldListunwordswordsunlineslinesunfoldrsortOnsortBysort permutations subsequencestailsinitsgroupBygroupdeleteFirstsByunzip7unzip6unzip5unzip4zipWith7zipWith6zipWith5zipWith4zip7zip6zip5zip4genericReplicate genericIndexgenericSplitAt genericDrop genericTake genericLengthinsertByinsert partition transpose intercalate intersperse intersectBy intersectunionByunion\\deleteBydeletenubBynub isInfixOf isSuffixOf isPrefixOf findIndices findIndex elemIndices elemIndex stripPrefix dropWhileEndData.Ord comparingDown Data.ProxyProxyData.Type.Equality:~:Refl:~~:HReflForeign.C.TypesCCharCSCharCUCharCShortCUShortCIntCUIntCLongCULongCLLongCULLongCBoolCFloatCDoubleCPtrdiffCSizeCWchar CSigAtomicCClockCTime CUSeconds CSUSecondsCFileCFposCJmpBufCIntPtrCUIntPtrCIntMaxCUIntMax Foreign.Ptr intPtrToPtr ptrToIntPtr wordPtrToPtr ptrToWordPtrfreeHaskellFunPtrWordPtrIntPtrStorable alignment peekElemOff pokeElemOff peekByteOff pokeByteOffpeekpokecastPtrToFunPtrcastFunPtrToPtr castFunPtr nullFunPtrminusPtralignPtrplusPtrcastPtrnullPtrNumericshowOctshowHex showIntAtBase showHFloat showGFloatAlt showFFloatAlt showGFloat showFFloat showEFloatshowInt readSigned readFloatreadHexreadDecreadOctreadIntGHC.Read lexDigitsfromRat floatToDigits showFloat byteSwap64 byteSwap32 byteSwap16 Data.BitstoIntegralSizedpopCountDefaulttestBitDefault bitDefaultBits.&..|.xor complementshiftrotatezeroBitsbitsetBitclearBit complementBittestBit bitSizeMaybebitSizeisSignedshiftL unsafeShiftLshiftR unsafeShiftRrotateLrotateRpopCount FiniteBits finiteBitSizecountLeadingZeroscountTrailingZeros Data.Functorvoid<$>GHC.Real showSignedunzip3unzipzipWith3zipWithzip3!!lookupreversebreakspansplitAtdroptake dropWhile takeWhilecycle replicaterepeatiterate'iteratescanr1scanrscanl'scanl1scanlfoldl1'initlasttailunconshead Data.MaybemapMaybe catMaybes listToMaybe maybeToList fromMaybefromJust isNothingisJustmaybeapliftM5liftM4liftM3liftM2liftMwhen=<<liftA3liftA<**> Alternativeempty<|>somemany MonadPlusmzeromplusfGetFdfGetFl fdCloexec oNonBlock sockNonBlock sockCloexecFalse c_fcntl_readIOVeciovBaseiovLenIn6AddrStringntohlhtonlSystem.Posix.TypesFdpackSocketType'packSocketTypeOrThrowunpackSocketType'sizeOfSockAddr withSockAddr pokeSockAddr peekSockAddrc_closeinvalidateSocketpackSocketTypeunpackSocketTypewithSocketAddresswithNewSocketAddressGHC.IO.ExceptionIOErrorIOpackSocketOptionpackSocketOption' c_setsockopt c_getsockopt c_accept4c_listen c_connectc_bindc_socket connectLoopGHC.Err undefinedshowDefaultHintspackBits unpackBits c_getnameinfoc_gai_strerrorc_freeaddrinfo c_getaddrinfo aiFlagMapping niFlagMappingfollowAddrInfo gai_strerror withCStringIfGHC.IO.Handle.TypesHandle GHC.IO.Handle hSetBufferingMsgHdrmsgName msgNameLenmsgIov msgIovLen c_sendmsgc_writevmkInvalidRecvArgErrorbytestring-0.10.8.2Data.ByteString.Internal ByteStringremainingChunks withIOVec waitWhen0 getPeerCred getPeerEidTrueData.ByteString.Lazy.Internal