!U9      !"#$%&'()*+,-./0123456786Easily write safe GitHub webhook handlers with Servant (c) Jacob Thomas Errington, 2016MIT)servant-github-webhook@mail.jerrington.me experimentalNone%&+,-9:;<=DQRT/Class of types that can be reflected to values.9-Type function that reflects a kind to a type.A wrapper for an IO strategy to obtain the signing key for the webhook as configured in GitHub. The strategy is executed each time the GitHubSignedReqBody's routing logic is executed.We allow the use of IOv here so that you can fetch the key from a cache or a database. If the key is a constant or read only once, just use :.]A routing combinator that succeeds only for a webhook request that matches one of the given  given in the type-level list events.If the list contains #, then all events will be matched.@The combinator will require that its associated handler take a  parameter, and the matched event will be passed to the handler. This allows the handler to determine which event triggered it from the list..Other routes are tried if there is a mismatch.A clone of Servant's ;V combinator, except that it will also verify the signature provided by GitHub in the X-Hub-SignatureF header by computing the SHA1 HMAC of the request body and comparing.KThe use of this combinator will require that the router context contain a 3 entry. Consequently, it will be necessary to use < instead of =.aOther routes are not tried upon the failure of this combinator, and a 401 response is generated.$Helper that parses a header using a >7 instance and discards the parse error message if any.$9 !"#$%&'()*+,-./012345678    !9 !"#$%&'()*+,-./012345678?      !"#$%&'()*+,-./0123456789:;<=>?@ABCDECDFGHIJ5servant-github-webhook-0.1.0.0-6fiFqYTcvqHJwgq2i8SbnzServant.GitHub.Webhook#github-0.15.0-3q5zi4roMYVrETtEXXEsOGitHub.Data.WebhooksWebhookWatchEventWebhookTeamAddEventWebhookStatusEventWebhookReleaseEventWebhookPushEventWebhookPullRequestEvent$WebhookPullRequestReviewCommentEventWebhookPublicEventWebhookPingEventWebhookPageBuildEventWebhookMemberEventWebhookIssuesEventWebhookIssueCommentEventWebhookGollumEventWebhookForkEventWebhookDeploymentStatusEventWebhookDeploymentEventWebhookDeleteEventWebhookCreateEventWebhookCommitCommentEventWebhookWildcardEventRepoWebhookEventReflectreflectDemote GitHubKey unGitHubKey GitHubEventGitHubSignedReqBodyparseHeaderMaybe matchEvent*$fReflectRepoWebhookEventWebhookWatchEvent,$fReflectRepoWebhookEventWebhookTeamAddEvent+$fReflectRepoWebhookEventWebhookStatusEvent,$fReflectRepoWebhookEventWebhookReleaseEvent)$fReflectRepoWebhookEventWebhookPushEvent0$fReflectRepoWebhookEventWebhookPullRequestEvent=$fReflectRepoWebhookEventWebhookPullRequestReviewCommentEvent+$fReflectRepoWebhookEventWebhookPublicEvent.$fReflectRepoWebhookEventWebhookPageBuildEvent+$fReflectRepoWebhookEventWebhookMemberEvent+$fReflectRepoWebhookEventWebhookIssuesEvent1$fReflectRepoWebhookEventWebhookIssueCommentEvent+$fReflectRepoWebhookEventWebhookGollumEvent)$fReflectRepoWebhookEventWebhookForkEvent5$fReflectRepoWebhookEventWebhookDeploymentStatusEvent/$fReflectRepoWebhookEventWebhookDeploymentEvent+$fReflectRepoWebhookEventWebhookDeleteEvent+$fReflectRepoWebhookEventWebhookCreateEvent2$fReflectRepoWebhookEventWebhookCommitCommentEvent-$fReflectRepoWebhookEventWebhookWildcardEvent $fReflect[]: $fReflect[][]$fReflectSymbols$fHasServerTYPE:>context$fHasServerTYPE:>context0Demote'baseGHC.Basepure$servant-0.8.1-Ga6f6nHiymQDF907fMbQXAServant.API.ReqBodyReqBody+servant-server-0.8.1-GUMlTlw7hR5Dw1AQsQZa0oServant.ServerserveWithContextserve*http-api-data-0.2.4-A4wmVZwK1Z2E7FLv3snrr5Web.HttpApiData.InternalFromHttpApiData