א\      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~            ! " # $ % & ' ( ) * + , - . / 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 RSTUVWXYZ[ Safe-InferredHM)\]^_`abcdefghijklmnopqrstuvwxyz{|}~None!"&(*246=JK       None'None!"(246=HJKM      None&(HJKM&combine two Initializer. since 0.16.0.     NoneT !"#$%&'()*+,-./ !"#$%&'()*+,- *)('&%$#"!/+,-. *)('&%$#"!+,-./None(*+246=EHKMi$always success. for check existence.j-allow no parameter. but check parameter type.kZfuzzy date parse. three decimal split by 1 char. if year < 100 then + 2000. since 0.16.0.example: 2014-02-0514-2-514.2.05lZfuzzy date parse. three decimal split by 1 char. if year < 100 then + 2000. since 0.16.0.example: 2014-02-0514-2-514.2.05rjavascript boolean. when "false", "0", "-0", "", "null", "undefined", "NaN" then False, else True. since 0.6.0.0.rjavascript boolean. when "false", "0", "-0", "", "null", "undefined", "NaN" then False, else True. since 0.6.0.0.d0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~70123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefdGHFE?@ABCD:>=<;789IJKL3456MNOP~}|{zyxwvutsrqponmlkjiQRSTUVWXYZ[\]^_`abcdef012hgT0123456789:>=<;?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~NoneET*)*  None (+3=JKM8type check ( [0,) params to No argument ) since 0.5.0.0.Aget parameters with upper limit ( [1,n] to [Type]) since 0.6.0.0.7get parameters ( [1,) params to [Type] ) since 0.5.0.0.7get parameters ( [0,) params to [Type] ) since 0.5.0.0..get key ( [1,1] param to Type.) since 0.5.0.0.Bget first matched key ( [1,) params to Maybe Type.) since 0.5.0.0.<get first matched key( [0,) params to Type.). since 0.5.0.0.&construct Option proxy. since 0.5.1.0.'construct Optional proxy. since 0.16.0.%construct First proxy. since 0.5.1.0.#construct One proxy. since 0.5.1.0.$construct Many proxy. since 0.5.1.0.$construct Some proxy. since 0.5.1.0.(construct LimitSome proxy. since 0.16.0.%construct Check proxy. since 0.5.1.0.%% Nonegoogle analytics. since 0.17.0.0construct Html as route parameter. since 0.13.0. None&+246=EHKMT$call when no handler matched.used unless call  function.initial headers.used by   filter.%n must be Monad, so cant be MFunctor.get raw request. since 0.1.0.0.4parse request body and return params. since 0.9.0.0.3parse request body and return files. since 0.9.0.0.set status code. since 0.1.0.0.'get all request headers. since 0.6.0.0.&modify response header. since 0.1.0.0.#add response header. since 0.1.0.0.$set response headers. since 0.1.0.0.[set content-type header. if content-type header already exists, replace it. since 0.1.0.0.3stop handler and send current state. since 0.3.3.0."stop with response. since 0.4.2.0.redirect handler2set status and add location header. since 0.3.3.0. rename from redirect in 0.6.2.0.3redirect with 301 Moved Permanently. since 0.3.3.0.redirect with:;303 See Other (HTTP/1.1) or 302 Moved Temporarily (Other)since 0.6.2.0. redirect with:C307 Temporary Redirect (HTTP/1.1) or 302 Moved Temporarily (Other)since 0.3.3.0. )set raw response constructor. since 0.10.example(use pipes-wai) }producer :: Monad m => Producer (Flush Builder) IO () -> ActionT exts m () producer = response (s h -> responseProducer s h)  2reset response body to no response. since v0.15.2. Hset response body file content, without set Content-Type. since 0.1.0.0. Sset response body file content and detect Content-Type by extension. since 0.1.0.0.%file modification check since 0.17.2.1append response body from builder. since 0.1.0.0.:append response body from strict bytestring. since 0.15.2.8append response body from lazy bytestring. since 0.15.2.Dappend response body from strict text. encoding UTF-8. since 0.15.2.Bappend response body from lazy text. encoding UTF-8. since 0.15.2.=append response body from show. encoding UTF-8. since 0.15.2.?append response body from string. encoding UTF-8. since 0.15.2.=append response body from char. encoding UTF-8. since 0.15.2.(set response body source. since 0.9.0.0.'redirect with 302 Found. since 0.3.3.0.+redirect with 303 See Other. since 0.3.3.0.9append response body from lazy bytestring. since 0.1.0.0.iLocation redirect to     W     F     None!"&(246=HIJKM)most generic Apiary monad. since 0.8.0.0.# filter by action. since 0.6.1.0.$splice ActionT ApiaryT.%4like action. but not apply arguments. since 0.8.0.0.'#API document group. since 0.12.0.0. only top level group recognized.(!add API document. since 0.12.0.0.bIt use only filters prior document, so you should be placed document directly in front of action.),add user defined precondition. since 0.13.0.+0execute action before main action. since 0.4.2.0I      !"#$%&'()*+ !"#$>      !"#$%&'()*+)    !"#$%&'()*+   !"#$None!"&(2=HJKMT,.check first path and drill down. since 0.11.0.-#check consumed paths. since 0.11.1..,get first path and drill down. since 0.11.0.,-.%,-.%,-.%NoneE/#capture QuasiQuoter. since 0.1.0.0.example: [capture|/path|] -- first path == "path" [capture|/int/:Int|] -- first path == "int" && get 2nd path as Int. [capture|/:Int/:Double|] -- get first path as Int and get 2nd path as Double. [capture|/**|] -- feed greedy and get all path as [Text] (since 0.17.0). &'()*+,-/ &'()*+,-/&)('*+,-/None:?@ABCD     :?@ABCD      None(JK0low level filter function.1filter and append argument.2"filter only(not modify arguments).012#012012#012 None (BHJKMT7%filter by HTTP method. since 0.1.0.0. Bmethod GET -- stdmethod method "HOGE" -- non standard method 85filter by HTTP method using StdMethod. since 0.1.0.0.9&filter by ssl accessed. since 0.1.0.0.:#http version filter. since 0.5.0.0.;,http/0.9 only accepted fiter. since 0.5.0.0.<,http/1.0 only accepted fiter. since 0.5.0.0.=,http/1.1 only accepted fiter. since 0.5.0.0.> filter by  of .?(match all subsequent path. since 0.15.0.A&low level query getter. since 0.5.0.0. ,query "key" (Proxy :: Proxy (fetcher type))  examples:  query "key" (.H :: First Int) -- get first 'key' query parameter as Int. query "key" (Optionn :: Option (Maybe Int)) -- get first 'key' query parameter as Int. allow without param or value. query "key" (Many? :: Many String) -- get all 'key' query parameter as String. B+get first matched paramerer. since 0.5.0.0. O"key" =: pInt == query "key" (pFirst pInt) == query "key" (First :: First Int) C)get one matched paramerer. since 0.5.0.0.+when more one parameger given, not matched. I"key" =: pInt == query "key" (pOne pInt) == query "key" (One :: One Int) D,get optional first paramerer. since 0.5.0.0.Bwhen illegal type parameter given, fail match(don't give Nothing). R"key" =: pInt == query "key" (pOption pInt) == query "key" (Option :: Option Int) E8get optional first paramerer with default. since 0.16.0.Bwhen illegal type parameter given, fail match(don't give Nothing). f"key" =: (0 :: Int) == query "key" (pOptional (0 :: Int)) == query "key" (Optional 0 :: Optional Int) F.check parameger given and type. since 0.5.0.0.%If you wan't to allow any type, give d. O"key" =: pInt == query "key" (pCheck pInt) == query "key" (Check :: Check Int) G"get many paramerer. since 0.5.0.0. L"key" =: pInt == query "key" (pMany pInt) == query "key" (Many :: Many Int) H"get some paramerer. since 0.5.0.0. L"key" =: pInt == query "key" (pSome pInt) == query "key" (Some :: Some Int) Iquery exists checker.  hasQuery q = A q (Check :: < ()) J9get existance of key only query parameter. since v0.17.0.K?check whether to exists specified header or not. since 0.6.0.0.LFcheck whether to exists specified valued header or not. since 0.6.0.0.M.filter by header and get first. since 0.6.0.0.N3filter by headers up to 100 entries. since 0.6.0.0.O'low level header filter. since 0.6.0.0.PBrequire Accept header and set response Content-Type. since 0.16.0.3456789:;<=>?@ABCDEFGHIJKL header valueMNOP/",-./3456789:;<=>?@ABCDEFGHIJKLMNOP"7:;<=>/,-.3456@ABCDEFGHIJKLNMOP98?3456789:;<=>?@ABCDEFGHIJKLMNOP/ None !"$%&'()*+ "!$%&'()*+NoneTQshortcut action. since 0.6.0.0. q[act|200 .html|] == [act|200 text/html|] == action $ \arguments -> do status 200 contentType "text/html" 0Q120Q120Q12None (3HJKMTXDuse this function instead of serverWith in heroku app. since 0.17.0. 1 serverWith exts (run 3000) . runApiary def $ footo . herokuWith exts run def . runApiary def $ fooY@use this function instead of server in heroku app. since 0.17.0. ( server (run 3000) . runApiary def $ footo % heroku run def . runApiary def $ foothis function provide:&set port by PORT environment variable.>getHerokuEnv function(get config from environment variable or  heroku config  command).RSTUVW3456XYZ[7 RSTUVWXYZ[ WRSTUVYX[ZRSTUVW3456XYZ[7 None)89:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdef      !"$%&'()*+,-./3456789:;<=>?@ABCDEFGHIJKLMNOPQQ !"#$%&''()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~OQVV         !"#$%&'()*+,-./012 3 4 5 6 6 7 8 9 : ; < = > ?  @ A B C D E F G H I J K L M N O P QRSSTUVWXYZ[\]^\_`\_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\]{\]|\]}\]~\]\]\]\]\]\\\\<!      !"#$%&'\( )*+,W-./0\12\13\14\15\16\17\189:;<=>?@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?@{?@|?@}?@~?@?@?@?@?@?@?@?@?@?@?@?@?@?@?@?@?@?@?@?@?@?@?@?@?@?@?@?@?@?@?@?@?@?@?@?@?@ apiary-0.17.2Control.Monad.Apiary.ActionData.Apiary.SListData.Apiary.Extension.InternalData.Apiary.ExtensionData.Apiary.MethodData.Apiary.ParamData.Apiary.Document-Control.Monad.Apiary.Filter.Internal.StrategyData.Apiary.Document.HtmlControl.Monad.Apiary$Control.Monad.Apiary.Filter.InternalControl.Monad.Apiary.Filter Web.ApiaryWeb.Apiary.HerokuData.Apiary.ProxyWeb.Apiary.Wai$Control.Monad.Apiary.Action.InternalrootControl.Monad.Apiary.Internal,Control.Monad.Apiary.Filter.Internal.Capture/Control.Monad.Apiary.Filter.Internal.Capture.TH rootPattern ApiaryConfig Web.Apiary.TH wai-3.0.2Network.Wai.Internal StreamingBodyReverseRevFnApplyAllSList:::SNilapplyapply'sReverse Initializer unInitializerHas getExtension Extensions AddExtension NoExtension$fCategory[]Initializer$fHasa:$fHasa:0 Initializer' addExtension initializer initializer'initializerBracketinitializerBracket' preAction+> noExtensionMethod NonStandardPATCHOPTIONSCONNECTTRACEDELETEPUTHEADPOSTGET renderMethoddispatchMethod parseMethod$fIsStringMethod$fHashableMethodReqParam reqParams reqParamRepQuery readQueryqueryRepqTypeRepPathreadPathpathRepQueryRepNoValueCheckNullableStrictFile fileParameterfileNamefileContentType fileContentParamTextjsToBool readPathAsreadText readTextInt readTextWordreadTextDoublereadBS readBSInt readBSWord readBSDoublepBoolpIntpInt8pInt16pInt32pInt64pIntegerpWordpWord8pWord16pWord32pWord64pDoublepFloatpText pLazyText pByteStringpLazyByteStringpStringpVoidpMaybepFile $fReqParama$fReqParamFile $fQuery() $fQueryMaybe $fPathDay $fQueryDay $fQuery[]$fQueryByteString$fQueryByteString0 $fQueryText $fQueryText0 $fQueryFloat $fQueryDouble $fQueryWord64 $fQueryWord32 $fQueryWord16 $fQueryWord8 $fQueryWord$fQueryInteger $fQueryInt64 $fQueryInt32 $fQueryInt16 $fQueryInt8 $fQueryInt $fQueryBool$fPath[]$fPathByteString$fPathByteString0 $fPathText $fPathText0 $fPathFloat $fPathDouble $fPathWord64 $fPathWord32 $fPathWord16 $fPathWord8 $fPathWord $fPathInteger $fPathInt64 $fPathInt32 $fPathInt16 $fPathInt8 $fPathInt $fPathBool $fPathChar MethodDocqueries preconditionsdocumentQueryDoc queryName queryStrategy queryDocumentPathDocpathmethods DocumentsnoGroupgroupsRouteEndFetchDocActionDocumentDocGroupDocPreconditionDocQuery DocMethod DocDropNextDocFetchDocRootDocPath StrategyRep strategyInfo docToDocument mergePathDoc mergeMethodsdocsToDocuments $fEqRoute LimitSomeSomeManyOneFirstOptionalOptionStrategySNext readStrategy strategyRepgetQuerypOption pOptionalpFirstpOnepManypSome pLimitSomepCheck$fStrategyCheck$fStrategyLimitSome$fStrategySome$fStrategyMany $fStrategyOne$fStrategyFirst$fStrategyOptional$fStrategyOptionDefaultDocumentConfig documentTitledocumentDescriptiondocumentUseCDNdocumentGoogleAnalytics routeToHtml analyticsdefaultDocumentToHtmlrpHtml$fDefaultDefaultDocumentConfig ContentTypeActionTnotFound defaultStatusdefaultHeaders failStatus failHeadersmimeTypedefaultDocumentationAction getRequestgetExt getReqParams getReqFilesstatus getHeaders modifyHeader addHeader setHeaders contentTypestopstopWith redirectWithredirectPermanentlyredirectredirectTemporary rawResponseresetfile'filebuilderbytes lazyBytestextlazyTextshowingstringcharstreamsource redirectFoundredirectSeeOtherlbs EApplicationApiaryT runApiaryT runApiaryserver serverWith apiaryExt apiaryConfigfocusactionaction' middlewaregroup preconditionnoDocactionWithPreActionendPathfetchcapturefunction function' function_QueryKeyqueryKey queryDescmethod stdMethodssl httpVersionhttp09http10http11anyPath??query=:=!:=?:=?!:?:=*:=+:hasQuery switchQuery hasHeadereqHeaderheaderheadersheader'acceptact HerokuConfig defaultPortherokuExecutableName herokuAppNameHeroku herokuWithheroku getHerokuEnv' getHerokuEnvbaseData.Typeable.InternalTypeable Data.Typeablegcast2gcast1gcasteqTcast showsTypeReptypeOf7typeOf6typeOf5typeOf4typeOf3typeOf2typeOf1typeOftypeRep tyConString typeRepArgs typeRepTyConmkTyCon3mkAppTy funResultTy splitTyConAppmkFunTy mkTyConAppTypeRep tyConName tyConModule tyConPackageTyCon Typeable1 Typeable2 Typeable3 Typeable4 Typeable5 Typeable6 Typeable7Data.Type.EqualityRefl:~: Data.ProxyProxy TFCo:R:Rev:a TFCo:R:Rev[]aTFCo:R:Apply:rTFCo:R:Apply[]r TFCo:R:Allc: TFCo:R:Allc[] Network.WailazyRequestBodystrictRequestBodydefaultRequestresponseToStreamresponseHeadersresponseStatus responseRawresponseStream responseLBSresponseBuilder responseFile Application MiddlewarerequestHeaderRangerequestHeaderHostrequestBodyLengthvault requestBody queryStringpathInfo remoteHostisSecurerequestHeadersrawQueryString rawPathInfo requestMethodRequestResponse ChunkedBody KnownLengthRequestBodyLengthfilePartFileSizefilePartByteCountfilePartOffsetFilePartResponseReceived hoistActionT unActionTStopPassContinue ActionEnv actionConfig actionRequestactionDocuments actionExts ActionStateactionResponse actionStatus actionHeaders actionReqBody actionFetches ResponseBody ResponseFunc ResponseRawResponseStreamResponseBuilder ResponseFileStMTunStMT StActionT unStActionTdefaultNotFound toResponse initialState runActionTactionT execActionTgetEnv getConfig getDocumentsgetRequestBody modifyStategetState$fMonadReaderrActionTTFCo:R:StMActionTa$fMonadBaseControlbActionTTFCo:R:StTActionTa$fMonadTransControlActionT$fMonadBasebActionT$fMonadPlusActionT$fAlternativeActionT$fMonadMaskActionT$fMonadCatchActionT$fMonadThrowActionT$fMonadTransActionT$fMonadIOActionT$fMonadActionT$fApplicativeActionT$fFunctorActionT$fMonoidResponseBody$fDefaultApiaryConfig unApiaryT ApiaryWriter writerRouter writerDocwriterMw ApiaryEnv envFilter envMethodenvPath envConfigenvDocenvExtsPathElemRestPathEndPathRootPath FetchPathExact PathMethod methodMap anyMethodRouterchildren capturing restMatch pathMethod StMApiary' unStMApiary' StTApiary' unStTApiary' emptyRouteremptyPathMethod insertRouter initialEnvapiaryTrouterToAction getApiaryEnvaddRoutefocus'insDocTFCo:R:StMApiaryTa$fMonadBaseControlbApiaryTTFCo:R:StTApiaryTa$fMonadTransControlApiaryT$fMonadBasebApiaryT$fMonadIOApiaryT$fMonadTransApiaryT$fMonadApiaryT$fApplicativeApiaryT$fFunctorApiaryT$fMonoidApiaryWriterrestPathLookupNoneSNpreCap splitPath descriptionmkCap Data.Monoid$fIsStringQueryKey numToCodeparseActact' herokuEnv herokuConfig initHeroku$fDefaultHerokuConfig Control.Monadguard MonadPlusmplusmzeromfilter>=>msumblaze-html-0.7.0.3Text.Blaze.HtmlHtmldata-default-class-0.0.1Data.Default.Classdefhttp-types-0.8.5Network.HTTP.Types.StatusstatusIsServerErrorstatusIsClientErrorstatusIsRedirectionstatusIsSuccessfulstatusIsInformational networkAuthenticationRequired511 status511httpVersionNotSupported505 status505gatewayTimeout504 status504serviceUnavailable503 status503 badGateway502 status502notImplemented501 status501internalServerError500 status500requestHeaderFieldsTooLarge431 status431tooManyRequests429 status429preconditionRequired428 status428 imATeaPot418 status418expectationFailed417 status417requestedRangeNotSatisfiable416 status416unsupportedMediaType415 status415requestURITooLong414 status414requestEntityTooLarge413 status413preconditionFailed412 status412lengthRequired411 status411gone410 status410 conflict409 status409requestTimeout408 status408proxyAuthenticationRequired407 status407notAcceptable406 status406methodNotAllowed405 status405 notFound404 status404 forbidden403 status403paymentRequired402 status402unauthorized401 status401 badRequest400 status400temporaryRedirect307 status307 useProxy305 status305notModified304 status304 seeOther303 status303found302 status302movedPermanently301 status301multipleChoices300 status300partialContent206 status206resetContent205 status205 noContent204 status204nonAuthoritative203 status203 accepted202 status202 created201 status201ok200 status200switchingProtocols101 status101 continue100 status100 statusMessage statusCodeStatustransformers-0.4.1.0Control.Monad.IO.ClassMonadIOliftIO