~p5      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None%&*9;<=ADIORT;Give you access to a database connectin from the connection pool. The connection is released back to the pool once the function terminates.<RRead the application's state. If you wish to have mutable state, you could use a TVar from the STM packge.=Get the session manager>Get the Spock configuration@8Hook into the session manager to trigger custom behaviorC%Configuration for the session managerEname of the client side cookieF$how long shoud a client session liveG,entropy of the session id sent to the clientHNif this is true, every page reload will renew the session time to live counterIinitial session for visitorsJstorage interface for sessionsKFhow often should the session manager check for dangeling dead sessionsLhooks into the session managerMjYou can feed Spock with either a connection pool, or instructions on how to build a connection pool. See QQMThe ConnBuilder instructs Spock how to create or close a database connection.VfIf Spock should take care of connection pooling, you need to configure it depending on what you need.[Spock configuration, use defaultSpockCfg# and change single values if needed] initial application global state^See M_See C`Maximum request size in bytes. % means no limit. Defaults to 5 MB in defaultSpockCfg.arCustom error handlers for implicit errors such as not matching routes or exceptions during a request handler run.bJWhen set to true, all non GET request will require either an HTTP-Header c or a POST-Parameter d# to be set to the value aquired by  getCsrfTokencsee cdsee deThe e is a specialisation of f with a '()' context.fThe f is the monad of all route-actions. You have access to the context of the request and database, session and state of your application.AInside the SpockAllM monad, you may define routes and middleware.] !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefY !"#$%&'()*+,-./0123456789:<;=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdef  !"#$%&'()*+,-./0123456789:;<=>?@ABC DEFGHIJKLMNOPQRSTUVWXYZ[ \]^_`abcdefNone:DRmCreate a new session vaultnLoad a sessiono0Store a session, overwriting any previous valuespRemovea sessionqGet all sessions as listr3Remove all sessions that do not match the predicatesPerform action on all sessionsghijklmnopqrstuvghijklmnopqrstujklvghimnopqrstu ghijklmnopqrstuvNonewNOP session hooksxNSession configuration with reasonable defaults and an stm based session storeySpock configuration with reasonable defaults such as a basic error page and 5MB request body limit. IMPORTANT: CSRF Protection is turned off by default for now to not break any existing Spock applications. Consider turning it on manually as it will become the default in the future.wxy4#$%&'()*+,-@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcduwxy4[\]^_`abcdyMNOPQRSTUVWXYZxCDEFGHIJKLw@AB#$%&'()*+,-uwxyNone %&(:OTz{|}~ !"./01234z{|}~4./0123 !"z{|}~z{|}~None 9:;DORTaRead the heart of Spock. This is useful if you want to construct your own monads that work with ; and < using CRun an action inside of Spocks core monad. This allows you to use ; and <kRead the connection pool of Spock. This is useful if you want to construct your own monads that work with ; and < using   None %&(,:OT Regenerate the users sessionId. This preserves all stored data. Call this prior to logging in a user to prevent session fixation attacks.}Get the current users sessionId. Note that this ID should only be shown to it's owner as otherwise sessions can be hijacked.Write to the current session. Note that all data is stored on the server. The user only reciedes a sessionId to be identified.Modify the stored session,Modify the stored session and return a valueEModify the stored session and return the new value after modificationRead the stored sessionnGlobally delete all existing sessions. This is useful for example if you want to require all users to reloginnApply a transformation to all sessions. Be careful with this, as this may cause many STM transaction retries. 4 4 None %&(,:OTCreate a spock application using a given db storageLayer and an initial state. Spock works with database libraries that already implement connection pooling and with those that don't come with it out of the box. For more see the M type. Use runSpock to run the app or  spockAsApp to create a Wai.ApplicationGet the CSRF token for the current user. This token must be sent on all non GET requests via a post parameter or HTTP-Header if b" is turned on. See configuration [# documentation for more informationUGet the CSRF token sent by the client. You should not need to call this manually if b is turned on.]Check that the client sent a valid CSRF token. You should not need to call this manually if b is turned on.VSpecify an action that will be run when a standard HTTP verb and the given route match6Specify an action that will be run when the HTTP verb  and the given route match6Specify an action that will be run when the HTTP verb  and the given route match6Specify an action that will be run when the HTTP verb  'GET'/'POST' and the given route match6Specify an action that will be run when the HTTP verb  and the given route match6Specify an action that will be run when the HTTP verb  and the given route match6Specify an action that will be run when the HTTP verb  and the given route match6Specify an action that will be run when the HTTP verb  and the given route matchTSpecify an action that will be run when a custom HTTP verb and the given route matchSpecify an action that will be run when a standard HTTP verb matches but no defined route matches. The full path is passed as an argumentSpecify an action that will be run when a custom HTTP verb matches but no defined route matches. The full path is passed as an argumentSpecify an action that will be run when a HTTP verb matches but no defined route matches. The full path is passed as an argumentMSpecify an action that will be run when a HTTP verb and the given route match      456789:<;=>?ef:   ef789:;<=>56?         !"#$%%&'()*+,-./0012345678899:;<=>?@ABCDEFGHIJJKLLMNOPQRSTUVWXYYZ[\]]^_`aabcdefghijkllmnopqrstuvwxyz{|}~~@I                  %Spock-0.11.0.0-5TbvVSELaff25QNOqxj5TJ Web.Spock!Web.Spock.Internal.SessionManagerWeb.Spock.ConfigWeb.Spock.Internal.SessionVaultWeb.Spock.SessionActionsWeb.Spock.Internal.TypesWeb.Spock.Internal.Monad*Spock-core-0.11.0.0-67RWgf9bqeRCLxdO3C67c7Web.Spock.Core renderRoute middleware subcomponentprehook spockAsApprunSpockNoBannerrunSpock&reroute-0.4.0.1-1dNcCAvCOmvErERbCdooZsWeb.Routing.CombinatorsVarPathvarstaticroot'http-types-0.9.1-BTSIP6lzG5DE6u136PaywsNetwork.HTTP.Types.Method StdMethodGETPOSTHEADPUTDELETETRACECONNECTOPTIONSPATCHSessionManagersm_getSessionIdsm_getCsrfTokensm_regenerateSessionIdsm_readSessionsm_writeSessionsm_modifySessionsm_mapSessionssm_clearAllSessions sm_middlewaresm_closeSessionManager SessionStoress_runTxss_loadSessionss_deleteSessionss_storeSession ss_toListss_filterSessionsss_mapSessionsSessionStoreInstanceSessionsess_idsess_csrfTokensess_validUntil sess_data SessionId WebStateM WebStateTHasSpock SpockConn SpockState SpockSessionrunQuerygetState getSessMgr getSpockCfgWebState SessionHooks sh_removed SessionCfg sc_cookieName sc_sessionTTLsc_sessionIdEntropysc_sessionExpandTTLsc_emptySessionsc_storesc_housekeepingIntervalsc_hooks PoolOrConnPCPoolPCConn PCNoDatabase ConnBuilder cb_createConncb_destroyConncb_poolConfigurationPoolCfg pc_stripespc_resPerStripepc_keepOpenTimeSpockCfgspc_initialState spc_databasespc_sessionCfgspc_maxRequestSizespc_errorHandlerspc_csrfProtectionspc_csrfHeaderNamespc_csrfPostName SpockActionSpockActionCtx SessionVaultunSessionVault IsSession SessionKey getSessionKeynewSessionVault loadSession storeSession deleteSessiontoListfilterSessions mapSessionsnewStmSessionStore'newStmSessionStore$fIsSessionSessiondefaultSessionHooksdefaultSessionCfgdefaultSpockCfg SessionIf si_queryVaultsi_modifyVaultsi_setRawMultiHeader si_vaultKeywithSessionManagercreateSessionManager getSpockHeart runSpockIO getSpockPoolsessionRegenerateId getSessionId writeSession modifySessionmodifySession'modifyReadSession readSessionclearAllSessionsmapAllSessions RouteSpec SpockCtxMSpockMspock getCsrfTokengetClientCsrfToken csrfCheck hookRoutegetpostgetpostheadputdeletepatchhookRouteCustomhookAny hookAnyCustombaseGHC.BaseNothing SpockAllMSpockSessionManager runWebStateT web_dbConnweb_sessionMgr web_state web_config $fShowSession$fMonadBaseControlbWebStateT$fMonadTransControlWebStateT$fMonadBasebWebStateT errorHandler errorTemplateregenerateSessionIdImplgetSessionIdImplgetCsrfTokenImplmodifySessionBasereadSessionBasereadSessionImplwriteSessionImplmodifySessionImplmakeSessionIdCookiereadOrNewSessionloadOrSpanSessionsessionMiddlewarenewSessionImplloadSessionImpldeleteSessionImplclearAllSessionsImplmapAllSessionsImplhousekeepSessions createSession randomHashwebMgetSpockCfgImpl runQueryImpl getStateImplgetSessMgrImpl$fHasSpockWebStateT $fHasSpockthookAny' hookRoute'shouldCheckCsrfWeb.Spock.Internal.CoreActioncookiecookies deleteCookie setCookie runInContext getContextwithBasicAuthDatarequireBasicAuthstreamjsonfilehtmltext lazyBytesbytesresponse queryVault modifyVaultmiddlewarePassredirectjumpNextsetRawMultiHeader setHeader setStatusparam'paramparamsfiles jsonBody'jsonBodybody reqMethodpreferredFormat rawHeaderheaderrequestWeb.Spock.Internal.Wire UploadedFileuf_nameuf_contentTypeuf_tempLocation MultiHeaderMultiHeaderCacheControlMultiHeaderConnectionMultiHeaderContentEncodingMultiHeaderContentLanguageMultiHeaderPragmaMultiHeaderProxyAuthenticateMultiHeaderTrailerMultiHeaderTransferEncodingMultiHeaderUpgradeMultiHeaderViaMultiHeaderWarningMultiHeaderWWWAuthMultiHeaderSetCookieActionT ActionCtxTWeb.Spock.Internal.CookiesdefaultCookieSettingsCookieSettingscs_EOLcs_path cs_domain cs_HTTPOnly cs_secure CookieEOLCookieValidUntilCookieValidForCookieValidForSessionCookieValidForeverWeb.Spock.Internal.UtilClientPreferredFormatPrefJSONPrefXMLPrefHTMLPrefText PrefUnknown