ˊZ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXY NoneZ[\request method  status code ]Z[\Z[\None^0send the headers as well, necessary for a proxy _`^`^_`None8A simple representation of the HTTP response created by  lbsConsumer. *Response containing unparseable redirect. List of encountered responses containing redirects in reverse chronological order; including last redirect, which triggered the exception and was not followed. ?Define a HTTP proxy, consisting of a hostname and port number. !The host name of the HTTP proxy. #The port number of the HTTP proxy. When using one of the   /  constructors,  you must ensure  that the Source- can be called multiple times. Usually this  is not a problem. The  will send a chunked request 8 body, note that not all servers support this. Only use   if you know the server you're - sending to supports chunked request bodies. KAll information on how to connect to a host and what should be sent in the  HTTP request. /If you simply wish to download from a URL, see parseUrl. KThe constructor for this data type is not exposed. Instead, you should use  either the def+ method to retrieve a default instance, or parseUrl to M construct from a URL, and then use the records below to make modifications. H This approach allows http-conduit to add configuration options without # breaking backwards compatibility. GFor example, to construct a POST request, you could do something like:  3 initReq <- parseUrl "http://www.example.com/path"  let req = initReq  { method = "POST"  } !For more information, please see   +http://www.yesodweb.com/book/settings-types. #HTTP request method, eg GET, POST.  Whether to use HTTPS (ie, SSL). SSL client certificates !.Everything from the host to the query string. #Custom HTTP request headers CAs already stated in the introduction, the Content-Length and Host I headers are set automatically by this module, and shall not be added to  requestHeaders. CMoreover, the Accept-Encoding header is set implicitly to gzip for H convenience by default. This behaviour can be overridden if needed, by J setting the header explicitly to a different value. In order to omit the 6 Accept-Header altogether, set it to the empty string "". If you need an J empty Accept-Header (i.e. requesting the identity encoding), set it to a $ non-empty white-space string, e.g. " " . See RFC 2616 section 14.3 for J details about the semantics of the Accept-Header field. If you request a H content-encoding not supported by this module, you will have to decode  it yourself (see also the ( field). ENote: Multiple header fields with the same field-name will result in 3 multiple header fields being sent and therefore it's the responsibility G of the client code to ensure that the rules from RFC 2616 section 4.2  are honoured. %Optional HTTP proxy. &Optional SOCKS proxy. 'If True, a chunked and/or gzipped body will not be  decoded. Use with caution. (4Predicate to specify whether gzipped data should be  decompressed on the fly (see alwaysDecompress and  browserDecompress). Default: browserDecompress. )EHow many redirects to follow when getting a resource. 0 means follow " no redirects. Default value: 10. *GCheck the status code. Note that this will run after all redirects are  performed. Default: return a StatusCodeException on non-2XX responses. +2Number of microseconds to wait for a response. If Nothing , will wait # indefinitely. Default: 5 seconds. a Since 1.1.2. / b !"#$%&'()*+cad- b !"#$%&'()*+c  b !"#$%&'()*+cadNoneefghijk,l-.m/nop,-./efghijk,l-.m/nopNone,-./-,./None qrstuvwxyz{|}~quvwxyzqrstuvwxyzNone 0Convert a URL into a . $This defaults some of the values in , such as setting  to  GET and # to []. Since this function uses +, the return monad can be anything that is  an instance of  , such as  or . Add a ? to the request. If it is absolute (includes a host name), add  it as per 9; if it is relative, merge it with the existing request.  Extract a  from the request.  Validate a , then add it to the request. 1'Always decompress a compressed stream. 2:Decompress a compressed stream unless the content-type is 'application/x-tar'. 3KAdd a Basic Auth header (with the specified user name and password) to the ' given Request. Ignore error handling: applyBasicAuth user pass $ fromJust $ parseUrl url 4JAdd a proxy to the the Request so that the Request when executed will use  the provided proxy. 5!Add url-encoded paramters to the . This sets a new $), adds a content-type request header and  changes the  to POST. 012345response headers 0 b !"#$%&'()*+c012345 012345 NoneConnKey& consists of a hostname, a port and a Bool  specifying whether to use SSL. 6=Keeps track of open connections for keep-alive. May be used # concurrently by multiple threads. Nothing' indicates that the manager is closed. This is a per-ConnKey value. !Check if a certificate is valid. %Cache of validated certificates. The UTCTime gives the expiration / time for the validity of the certificate. The Ascii is the hostname. 7Settings for a Manager. Please use the  function and then modify  individual settings. 8CNumber of connections to a single host to keep alive. Default: 10. 9CCheck if the server certificate is valid. Only relevant for HTTPS. :-Check certificates using the operating system's certificate checker. DAdd a new element to the list, up to the given maximum number. If we're ; already at the maximum, return the new value as leftover. ; Create a 6. You must manually call = to shut it down. +Collect and destroy any stale connections. <LCreate a new manager, use it in the provided function, and then release it. GThis function uses the default manager settings. For more control, use  ;. =Close all connections in a 6. Afterwards, the  6 can be reused if desired. !This function needs to acquire a ConnInfo- either from the Manager or  via I/O, and register it with the  ResourceT so it is guaranteed to be - either released or returned to the manager. ,6789:;<=optional socks proxy host port optional socks proxy  Target host  Target port  Proxy host  Proxy port optional SOCKS proxy 6789:;<=6789:;<= None>JIf a request is a redirection (status code 3xx) this function will create J a new request from the old request, the server headers returned with the E redirection, and the redirection code itself. This function returns  ' if the code is not a 3xx, there is no location header included, or if the  redirected response couldn't be parsed with 0. JIf a user of this library wants to know the url chain that results from a N specific request, that user has to re-implement the redirect-following logic 6 themselves. An example of that might look like this: J myHttp req man = E.catch (runResourceT $ http req' man >> return [req']) B (\ (StatusCodeException status headers) -> do P l <- myHttp (fromJust $ nextRequest status headers) man + return $ req' : l) , where req' = req { redirectCount = 0 } ` nextRequest status headers = getRedirectedRequest req' headers $ W.statusCode status ? Convert a  that has a  body to one with a lazy   body. This function can'/t be a Conduit, since it would lose leftovers. >? >?>? None 8This corresponds to the subcomponent algorithm entitled "Domain Matching" detailed  in section 5.1.3 8This corresponds to the subcomponent algorithm entitled "Paths" detailed  in section 5.1.4 8This corresponds to the subcomponent algorithm entitled " Path-Match" detailed  in section 5.1.4 8Are we configured to reject cookies for domains such as "com"? PDThis corresponds to the eviction algorithm described in Section 5.3 " Storage Model" QThis applies the R to a given Request R;This corresponds to the algorithm described in Section 5.4 "The Cookie Header" S This applies T to a given Response T;This corresponds to the algorithm described in Section 5.3 " Storage Model" # This function consists of calling V followed by U. 4 Use this function if you plan to do both in a row.  V and U2 are only provided for more fine-grained control. USInsert a cookie created by generateCookie into the cookie jar (or not if it shouldn't be allowed in) V/Turn a SetCookie into a Cookie, if it is valid empty cookie jar '@ABCDEFGHIJKLMNOPInput cookie jar Value that should be used as "now" Filtered cookie jar QThe request to insert into Current cookie jar Value that should be used as "now" C(Ouptut request, Updated cookie jar (last-access-time is updated)) RInput request Current cookie jar Value that should be used as "now" .Whether or not this request is coming from an "http"/ source (not javascript or anything like that) (Contents of a "Cookie"; header, Updated cookie jar (last-access-time is updated)) SResponse received from server %Request which generated the response Value that should be used as "now" Current cookie jar Q(Updated cookie jar with cookies from the Response, The response stripped of any " Set-Cookie" header) TThe  the cookie jar is receiving :The request that originated the response that yielded the  Value that should be used as "now" .Whether or not this request is coming from an "http"/ source (not javascript or anything like that) Input cookie jar to modify Updated cookie jar UThe  the cookie jar is receiving Input cookie jar to modify .Whether or not this request is coming from an "http"/ source (not javascript or anything like that) Updated (or not) cookie jar VThe  we are encountering :The request that originated the response that yielded the  Value that should be used as "now" .Whether or not this request is coming from an "http"/ source (not javascript or anything like that) The optional output cookie "@ABCDEFGHIJKLMNOPQRSTUV@A BCDEFGHIJKLMNOPQRSTUVNoneW<The most low-level function for initiating an HTTP request. ?The first argument to this function gives a full specification = on the request: the host to connect to, whether to use SSL,  headers, etc. Please see  for full details. The ! second argument specifies which 6 should be used. This function then returns a  with a  . The  contains the status code 0 and headers that were sent back to us, and the  ) contains the body of the request. Note  that this  allows you to have fully = interleaved IO actions during your HTTP download, making it ? possible to download very large responses in constant memory. , You may also directly connect the returned   into a $, perhaps a file or another socket. INote: Unlike previous versions, this function will perform redirects, as  specified by the ) setting. Get a ! without any redirect following. XDownload the specified , returning the results as a .  This is a simplified version of W& for the common case where you simply N want the response data as a simple datatype. If you want more power, such as > interleaved actions on the response body during download, you'll need to use  W( directly. This function is defined as:   httpLbs = ? <=< WEven though the " contains a lazy bytestring, this  function does not utilize lazy I/O, and therefore the entire @ response body will live in memory. If you want constant memory  usage, you'll need to use conduit packages's   returned by W. INote: Unlike previous versions, this function will perform redirects, as  specified by the ) setting. Y9Download the specified URL, following any redirects, and  return the response body. This function will  an  for any ? response with a non-2xx status code (besides 3xx redirects up & to a limit of 10 redirects). It uses 0 to parse the ( input. This function essentially wraps httpLbsRedirect. >Note: Even though this function returns a lazy bytestring, it  does not utilize lazy I/%O, and therefore the entire response > body will live in memory. If you want constant memory usage,  you'll need to use the conduit package and W or   httpRedirect directly. WXYV  !"#$%&'()*+0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYhYXW !"#$%&'()*+ !"#$%&'()*+6;=<78989:ABCDEFGHIJKLM@NOSTVUQRP034?>125 WXY  !"#$%&'()*+,-./0123456789:;<=>?@A B C D E F G H I J K L M M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` abcdefghijklmn'opqrstuvwxyz{|}}~             B  C h   http-conduit-1.8.1Network.HTTP.ConduitNetwork.HTTP.Conduit.InternalNetwork.HTTP.Conduit.UtilNetwork.HTTP.Conduit.ChunkNetwork.HTTP.Conduit.TypesNetwork.HTTP.Conduit.ParserNetwork.HTTP.Conduit.ConnInfoNetwork.HTTP.Conduit.RequestNetwork.HTTP.Conduit.ManagerNetwork.HTTP.Conduit.ResponseNetwork.HTTP.Conduit.Cookiesdata-default-0.5.0 Data.DefaultdefResponseresponseStatusresponseVersionresponseHeaders responseBody HttpExceptionResponseTimeoutOverlongHeadersHandshakeFailedHttpParserExceptionTooManyRetriesUnparseableRedirectTooManyRedirectsInvalidUrlExceptionStatusCodeExceptionProxy proxyHost proxyPort RequestBodyRequestBodySourceChunkedRequestBodySourceRequestBodyBuilder RequestBodyBSRequestBodyLBSRequestmethodsecureclientCertificateshostportpath queryStringrequestHeaders requestBodyproxy socksProxyrawBody decompress redirectCount checkStatusresponseTimeoutnewline sinkHeadersparserHeadersFromByteStringparseChunkHeaderparseUrlalwaysDecompressbrowserDecompressapplyBasicAuthaddProxyurlEncodedBodyManagerManagerSettingsmanagerConnCountmanagerCheckCertsdefaultCheckCerts newManager withManager closeManagergetRedirectedRequest lbsResponse CookieJarCookie cookie_name cookie_valuecookie_expiry_time cookie_domain cookie_pathcookie_creation_timecookie_last_access_timecookie_persistentcookie_host_onlycookie_secure_onlycookie_http_onlycreateCookieJardestroyCookieJarevictExpiredCookiesinsertCookiesIntoRequestcomputeCookieStringupdateCookieJarreceiveSetCookieinsertCheckedCookiegenerateCookiehttphttpLbs simpleHttp<>readDec hasNoBodybytestring-0.10.0.0Data.ByteStringhGetSomechunkedConduitgetLenchunkIt$fFunctorResponse ContentType$fExceptionHttpExceptionStatusHeader parseHeadernotNewlineColonisSpaceisNumber notNewline parseHeaders parseStatusattribshexshexConnInfoconnRead connWrite connCloseconnSink connSource socketConn sslClientConn getSocket tls-1.0.0Network.TLS.ContextCertificateRejectExpiredCertificateRejectRevokedCertificateRejectUnknownCACertificateRejectOtherCertificateRejectReasonCertificateUsageAcceptCertificateUsageRejectCertificateUsagefailure-0.2.0.1Control.FailureFailureghc-prim GHC.TypesIObase Data.MaybeMaybesetUriRelativenetwork-2.4.0.1 Network.URIURIsetUrigetUri needsGunziprequestBuilder$fDefaultRequestConnKeymConns mMaxConns mCheckCerts mCertCache addToListreapgetManagedConn ConnRelease ConnReuse DontReuseReuse ManagedConnReusedFresh NonEmptyListConsOne X509Encoded takeSocket putSocketneToList neFromList safeConnClose nonEmptyMapM_ getSocketConn socketDesc getSslConngetSslProxyConngetConn checkCerts connectionTo$fDefaultManagerSettingsNothingconduit-0.5.2.7Data.Conduit.InternalSourceData.ByteString.Lazy.Internal ByteStringcheckHeaderLength getResponse domainMatches defaultPath pathMatchesrejectPublicSuffixes$fDefaultCookieJarCJexposeslash isIpAddressinsertIntoCookieJar!removeExistingCookieFromCookieJarisPublicSuffixcookie-0.4.0.1 Web.Cookie SetCookie$fShowCookieJar $fEqCookieJar $fOrdCookie $fEqCookieSinkhttpRawlifted-base-0.2Control.Exception.LiftedthrowIO