?      !"#$%&'()*+,-./0123456789:;<=>None  +;<BHLM?@AB@?@ABNone  +;<BHLMC@CCNone  +;<BHLMDEFGHIJFGHDEFGHIJNone  +;<BHLMK brutal hack.LMNKOPQRSdefault timeout list of portsnumber of capabilities error loginitialisation functionsession handlerTsession port informationread end of socketwrite end of socket sendfile endtimeout ticklerUVWXYZ[\LMNKOPQRSTUVWXYZ[LMNKOPRQSTUVWXYZ[\None  +;<BHLM]^_`abc_`abc]^_`abc None  +;<BHLM defghijklmno deghijklmn defghijklmno None  +;<BHLMpqrstuvpqrstuvpqrstuv None  +;<BHLMw:an internal version of the headers part of an HTTP requestxywz{|}~ xwz{|}~ xywz{|}~ None  +;<BHLM  None  +;<BHLM None  +;<BHLMSparks off a new thread using \ to run the given IO computation, but first labels the thread with the given label (using  labelThreadBs).The implementation makes sure that asynchronous exceptions are masked until the given computation is executed. This ensures the thread will always be labeled which guarantees you can always easily find it in the GHC event log.WNote that the given computation is executed in the masked state of the calling thread. Returns the  of the newly created thread.Like N, but lets you specify on which capability (think CPU) the thread should run.Sparks off a new thread using \ to run the given IO computation, but first labels the thread with the given label (using  labelThreadBs).The implementation makes sure that asynchronous exceptions are masked until the given computation is executed. This ensures the thread will always be labeled which guarantees you can always easily find it in the GHC event log.Like , the given computation is given a function to unmask asynchronous exceptions. See the documentation of that function for the motivation. Returns the  of the newly created thread.Like N, but lets you specify on which capability (think CPU) the thread should run.Label the current thread.Latin-1 encoded labelLatin-1 encoded label CapabilityLatin-1 encoded labelLatin-1 encoded label CapabilityNone  +;<BHLMGiven a d value and the current time, apply the given modification function to the amount of time remaining.Create a new TimeoutManager.Stop a TimeoutManager.2Register a new connection with the TimeoutManager.Tickle the timeout on a connection to be at least N seconds into the future. If the existing timeout is set for M seconds from now, where M > N, then the timeout is unaffected.@Set the timeout on a connection to be N seconds into the future.+Modify the timeout with the given function.Cancel a timeout.default timeoutfunction to get current time4action to run when the timeout deadline is exceeded.manager to register with. None  +;<BHLMFor each cpu, we store: * A list of accept threads, one per port. * A TimeoutManager * An mvar to signal when the timeout thread is shutdown None  +;<BHLMHolds the state for a logger.Creates a new logger, logging to the given file. If the file argument is "-", then log to stdout; if it's "stderr" then we log to stderr, otherwise we log to a regular file in append mode. The file is closed and re-opened every 15 minutes to facilitate external log rotation.Like , but uses a custom error action if the logger needs to print an error message of its own (for instance, if it can't open the output file.)/Prepares a log message with the time prepended.,Prepares a log message in "combined" format.Sends out a log message verbatim with a newline appended. Note: if you want a fancy log message you'll have to format it yourself (or use ).PKills a logger thread, causing any unwritten contents to be flushed out to disklog file to use=logger uses this action to log any error messages of its ownlog file to use remote host remote userArequest line (up to you to ensure there are no quotes in here) status codenum bytes sent<referer (up to you to ensure there are no quotes in here)?user agent (up to you to ensure there are no quotes in here)None  +3;<BHLMThe handler has to return the request object because we have to clear the HTTP request body before we send the response. If the handler consumes the request body, it is responsible for setting  rqBody=returnO in the returned request (otherwise we will mess up reading the input stream).hNote that we won't be bothering end users with this -- the details will be hidden inside the Snap monadRuns an HTTP session.Convert  into  for output.+local host namesession port informationaccess log functionerror log functionmonadic action to rundefault timeoutports to listen onlocal hostname (server name)access log actionerror log actioninitialisationhandler procedure default timeout access logger error loggerhandler procedurelocal host namesession port informationread end of socketwrite end of socket sendfile end timeout ticklerwrite end of socketbuilder buffersendfile continuationtimeout modifierhandler procedureiteratee write endfunction to call on sendfile   (!   None  +;<BHLMArguments passed to 2.;A record type which represents partial configurations (for  httpServe&) by wrapping all of its fields in a  7. Values of this type are usually constructed via its  " instance by doing something like: setPort 1234 mempty(Any fields which are unspecified in the  passed to  httpServe@ (and this is the norm) are filled in with default values from . <Data type representing the configuration of a logging target log custom IO handler log to text file  no loggingThis datatype allows you to override which backend (either simple or libev) to use. Most users will not want to set this, preferring to rely on the compile-type default.vNote that if you specify the libev backend and have not compiled in support for it, your server will fail at runtime. Returns a completely empty . Equivalent to  from Config's   instance.,These are the default values for the optionsLThe hostname of the HTTP server. This field has the same format as an HTTP Host header; if a Hostr header came in with the request, we use that, otherwise we default to this value specified in the configuration.Path to the access logPath to the error logCGets the locale to use. Locales are used on Unix only, to set the LANG/LC_ALLD/etc. environment variable. For instance if you set the locale to "en_US5", we'll set the relevant environment variables to " en_US.UTF-8".(Returns the port to listen on (for http))Returns the address to bind to (for http))Returns the port to listen on (for https)*Returns the address to bind to (for https) Path to the SSL certificate file Path to the SSL certificate filePath to the SSL key file@If set and set to True, compression is turned on when applicable0Whether to write server status updates to stderr'A MonadSnap action to handle 500 errors |A startup hook is run after the server initializes but before user request processing begins. The server passes, through a R object, the startup hook a list of the sockets it is listening on and the final 1 object completed after command-line processing.3The the *s opened by the server. There will be two )s for SSL connections, and one otherwise.6NReturns a description of the snap command line options suitable for use with System.Console.GetOpt.7 Returns a E obtained from parsing command-line options, using the default Snap  set.-On Unix systems, the locale is read from the LANG environment variable.8 Returns a E obtained from parsing command-line options, using the default Snap b set as well as a list of user OptDescrs. User OptDescrs use the "other" field (accessible using  and 0m) to store additional command-line option state. These are combined using a user-defined combining function.-On Unix systems, the locale is read from the LANG environment variable.Y !"#$%&'( )* + !"#$%&'()*+,-./0,12-34./5016the configuration defaults.27.default configuration. This is combined with v to obtain default values to use if the given parameter is specified on the command line. Usually it is fine to use   here.8 User options.[State for multiple invoked user command-line options will be combined using this function.5default configuration. This is combined with Snap's w to obtain default values to use if the given parameter is specified on the command line. Usually it is fine to use   here.39456V !"#$%&'( )* + !"#$%&'()*+,-./0,12-34./501627839= !"#$%&'(  *) + !"#$%&'()*+,-./0,12-34./501627839456None  +;<BHLM3  !"#$%&'()*+,-./01234567893 78569 "&,/.#!$0%1()+*'-234None  +;<BHLM:1A short string describing the Snap server version;Starts serving HTTP requests using the given handler. This function never returns; to shut down the HTTP server, kill the controlling thread.This function is like <N except it doesn't setup compression, reverse proxy address translation (via 79), or the error handler; this allows it to be used from 8.<NStarts serving HTTP requests using the given handler, with settings from the d passed in. This function never returns; to shut down the HTTP server, kill the controlling thread.=Starts serving HTTP using the given handler. The configuration is read from the options given on the command-line, as returned by 7Z. This function never returns; to shut down the HTTP server, kill the controlling thread.>bGiven a string like "en_US", this sets the locale to "en_US.UTF-8". This doesn't work on Windows.:;9<:;=>8  !"#$%&'()*+,-./0123456789:;<=>;<=:>:;9<:;=>< !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWWXYZ[\]^^_`abcdeffghijklmnopqrs t t u v w x y p q s r z { k | p q r s } ~ ~ }    SOM      !"#$%&'()*+,-./0123456789:;<=>?@ABCsnap-server-0.9.5.1System.FastLoggerSnap.Http.Server.ConfigSnap.Http.ServerSystem.SendFile.LinuxSystem.SendFile!Snap.Internal.Http.Server.Address!Snap.Internal.Http.Server.Backend"Snap.Internal.Http.Server.HttpPortSnap.Internal.Http.Server.TLS'Snap.Internal.Http.Server.ListenHelpersSnap.Internal.Http.ParserPaths_snap_serverSnap.Internal.Http.Server.DateControl.Concurrent.Extended(Snap.Internal.Http.Server.TimeoutManager'Snap.Internal.Http.Server.SimpleBackendSnap.Internal.Http.Server Snap.Internal.Http.Server.ConfigLogger newLogger newLoggerWithCustomErrorFunctiontimestampedLogEntrycombinedLogEntrylogMsg stopLogger StartupInfoConfig ConfigLog ConfigIoLog ConfigFileLog ConfigNoLog emptyConfig defaultConfig getHostname getAccessLog getErrorLog getLocalegetPortgetBind getSSLPort getSSLBind getSSLCertgetSSLChainCert getSSLKeygetCompression getVerbosegetErrorHandlergetDefaultTimeoutgetOther getProxyTypegetStartupHook setHostname setAccessLog setErrorLog setLocalesetPortsetBind setSSLPort setSSLBind setSSLCertsetSSLChainCert setSSLKeysetCompression setVerbosesetErrorHandlersetDefaultTimeoutsetOther setProxyTypesetStartupHookgetStartupSocketsgetStartupConfigcompleteConfig optDescrscommandLineConfigextendedCommandLineConfigfmapOptsnapServerVersionsimpleHttpServe httpServequickHttpServesetUnicodeLocale c_sendfilesendFilesendfilemaxBytes sendFileModeAddressNotSupportedException getHostAddr getAddress getSockAddr'$fExceptionAddressNotSupportedException"$fShowAddressNotSupportedException_sessionNetworkSession_socket_recvLen ListenSocket ListenHttps ListenHttp EventLoopSessionHandler SessionInfo localAddress localPort remoteAddress remotePortisSecure$fShowListenSocketc_writec_readbindHttp createSession endSessionrecvsend TLSExceptionsslNotSupportedExceptioninitTLSstopTLS bindHttpsfreePort$fExceptionTLSException listenSocket closeSocketIRequestHttpParseExceptioniMethod iRequestUri iHttpVersioniRequestHeaders parseRequestpLine splitWithpHeadersmethodFromStringreadChunkedTransferEncodingchunkParserToEnumerateepGetTransferChunk$fExceptionHttpParseException$fShowIRequestattoparsec-enumerator-0.3.4Data.Attoparsec.Enumerator iterParsersnap-core-0.9.7.0Snap.Internal.Parsing strictize parseCookieparseUrlEncodedcatchIOversionbindirlibdirdatadir libexecdir sysconfdir getBinDir getLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName DateState_cachedDateString_cachedLogString_lastFetchTime dateState fetchTime updateStateensureFreshDate getDateStringgetLogDateStringgetCurrentDateTimeforkIOLabeledBsbase GHC.Conc.SyncforkIOThreadIdforkOnLabeledBsforkIOLabeledWithUnmaskBsforkIOWithUnmaskforkOnLabeledWithUnmaskBslabelMesmapState initializestopregisterticklesetmodifycancelTimeoutManager_defaultTimeout_getTime _connections _inactivity _morePlease_managerThread TimeoutHandle _killAction_state _hGetTimeCanceledDeadline managerThread $fNumState $fOrdState EventLoopCpu _boundCpu_acceptThreads_timeoutManager _exitMVarsimpleEventLoopnewLoopstopLoop acceptThread runSession eatException enumeratewriteOut_queuedMessages _dataWaiting _loggerPath_loggingThread _errAction loggingThread ServerHandler httpSession cookieToBSSnap.Internal.Http.TypesCookiebytestring-0.10.4.0Data.ByteString.Internal ByteString ServerState_forceConnectionClose_localHostname _sessionPort _logAccess _logErrorExceptionAlreadyCaught TerminatedBeforeHandlerException ListenPort HttpsPortHttpPort ServerMonadrunServerMonaddebugElogElogE'bshowlogAlogA'runHTTPrequestErrorMessage sERVER_HEADER logAccesslogErrorcheckExpect100Continue return411receiveRequest sendResponsecheckConnectionClose toHeadersl2stoBS!$fExceptionExceptionAlreadyCaught+$fExceptionTerminatedBeforeHandlerException$fShowListenPort Data.MaybeMaybe Data.MonoidMonoid ConfigBackendmemptynetwork-2.6.1.0Network.Socket.TypesSocketSystem.Console.GetOptOptDescrstartupHookConfigstartupHookSocketshostname accessLogerrorLoglocaleportbindsslportsslbindsslcert sslchaincertsslkey compressionverbose errorHandlerdefaultTimeoutotherbackend proxyType startupHookConfigLibEvBackendConfigSimpleBackend getBackend setBackendemptyStartupInfosetStartupSocketssetStartupConfig bsFromStringtoStringdefaultErrorHandlerfmapArg$fMonoidConfig $fShowConfig$fShowConfigLogSnap.Util.Proxy behindProxySnap.Internal.Types MonadSnap listenerscatch500compress