h&@{l      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                    5  Safe-Inferred!  Safe-Inferred X  Safe-Inferred" http2Encoding integer with a temporary buffer whose size is 4096. No prefix is set. BS.unpack <$> encodeInteger 5 10[10]"BS.unpack <$> encodeInteger 5 1337 [31,154,10] BS.unpack <$> encodeInteger 8 42[42] http2%Integer encoding with a write buffer. http24Integer decoding. The first argument is N of prefix.decodeInteger 5 10 $ BS.empty10%decodeInteger 5 31 $ BS.pack [154,10]1337decodeInteger 8 42 $ BS.empty42 http2Integer decoding with a read buffer. The first argument is N of prefix. http2N+http2Target http2Setting prefixhttp2N+http2Target http2N+http2;The head of encoded integer whose prefix is already droppedhttp2The tail of encoded integer http2N+http2;The head of encoded integer whose prefix is already dropped   Safe-Inferredhttp2 Bit stream.http2Data type for Bit.http2Zerohttp2Onehttp2From  of length 8 to .fromBits [T,F,T,F,T,F,T,F]170fromBits [F,T,F,T,F,T,F,T]85 Safe-Inferredhttp2&let bs = BS.pack [0x12,0x34,0xf3,0xab]unpack4bits bs[1,2,3,4,15,3,10,11]unpack4bits $ BS.tail bs[3,4,15,3,10,11] Safe-Inferred Safe-Inferred Safe-Inferred%& http2Huffman encoding.http2Is this token ix for a header not defined in the static table?hhttp2;Is this token for a header not defined in the static table?ihttp2!Making a token from a header key.&toToken ":authority" == tokenAuthorityTrue toToken "foo"Token {tokenIx = 73, shouldBeIndexed = True, isPseudo = False, tokenKey = "foo"}toToken ":bar"Token {tokenIx = 73, shouldBeIndexed = True, isPseudo = True, tokenKey = ":bar"} !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghiiabcdfegh !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKL`MNOPQRSTUVWXYZ[\]^_ Safe-Inferred6lhttp2Errors for decoder.mhttp2Index is out of rangenhttp2+Eos appears in the middle of huffman stringohttp2,Non-eos appears in the end of huffman stringphttp2)Eos of huffman string is more than 7 bitsqhttp2.A peer set the dynamic table size less than 32rhttp2Type for table entry. Size includes the 32 bytes magic number.http2Size in bytes.http2From  to .http2Getting the size of .http2Getting .http2Getting .http2Getting .http2Getting .http2Dummy  to initialize a dynamic table.http22How many entries can be stored in a dynamic table? Safe-Inferred" http2The size of static table.http2Get  from the static table.toStaticEntry 1Entry 42 (Token {tokenIx = 0, shouldBeIndexed = True, isPseudo = True, tokenKey = ":authority"}) ""toStaticEntry 8Entry 42 (Token {tokenIx = 4, shouldBeIndexed = True, isPseudo = True, tokenKey = ":status"}) "200"toStaticEntry 50Entry 37 (Token {tokenIx = 40, shouldBeIndexed = True, isPseudo = False, tokenKey = "Range"}) ""http2Pre-defined static table. Safe-Inferred"%& ; Safe-Inferred"!http2Huffman decoding.http2Huffman decoding.http2-Low devel Huffman decoding in a write buffer.http2@http2Naive implementation for readN.# Safe-Inferred?Ahttp2HTTP/2 configuration.http2Making simple configuration whose IO is not efficient. A write buffer is allocated internally.http26Deallocating the resource of the simple configuration. $ Safe-Inferred"?% Safe-Inferred"6M-http2(The data type for HTTP/2 frame payloads.http2'The data type for HTTP/2 frame headers.http2 The data type for HTTP/2 frames.http2!The type for padding in payloads.http26The type for fragments of a header encoded with HPACK.http2The type for stream identifierhttp2The type for flags.http2The type for raw frame type.http2Type for stream priority. Deprecated in RFC 9113 but provided for .http2The type for weight in priority. Its values are from 1 to 256. Deprecated in RFC 9113.http2The type for window size.http2Cooked version of settings. This is suitable to be stored in a HTTP/2 context.http2Association list of SETTINGS.http2 The type for raw SETTINGS value.http2The type for SETTINGS key.http2The type for raw error code.http2The type for error code. See  1https://www.rfc-editor.org/rfc/rfc9113#ErrorCodes.http2"The length of HTTP/2 frame header.frameHeaderLength9http2The default settings.defaultSettingsSettings {headerTableSize = 4096, enablePush = True, maxConcurrentStreams = Nothing, initialWindowSize = 65535, maxFrameSize = 16384, maxHeaderBlockSize = Nothing}http2Updating settings.updateSettings defaultSettings [(SettingsEnablePush,0),(SettingsMaxHeaderBlockSize,200)]Settings {headerTableSize = 4096, enablePush = False, maxConcurrentStreams = Nothing, initialWindowSize = 65535, maxFrameSize = 16384, maxHeaderBlockSize = Just 200}http2 The default initial window size.defaultInitialWindowSize65535http2The maximum window size. maxWindowSize 2147483647http2:Checking if a window size exceeds the maximum window size.isWindowOverflow 10FalseisWindowOverflow maxWindowSizeFalse$isWindowOverflow (maxWindowSize + 1)Truehttp2Default concurrency.recommendedConcurrency100http2 Converting  to .fromFrameType FrameData0fromFrameType FrameContinuation9http2%The maximum length of HTTP/2 payload.maxPayloadLength16384http2-The initial value of flags. No flags are set. defaultFlags0http2Checking if the END_STREAM flag is set. >>> testEndStream 0x1 Truehttp27Checking if the ACK flag is set. >>> testAck 0x1 Truehttp2(Checking if the END_HEADERS flag is set.testEndHeader 0x4Truehttp2#Checking if the PADDED flag is set.testPadded 0x8Truehttp2%Checking if the PRIORITY flag is set.testPriority 0x20Truehttp2Setting the END_STREAM flag.setEndStream 01http2Setting the ACK flag.setAck 01http2Setting the END_HEADERS flag.setEndHeader 04http2Setting the PADDED flag. setPadded 08http2Setting the PRIORITY flag. setPriority 032http2.Checking if the stream identifier for control. isControl 0True isControl 1Falsehttp23Checking if the stream identifier is from a client.isClientInitiated 0FalseisClientInitiated 1Truehttp23Checking if the stream identifier is from a server.isServerInitiated 0FalseisServerInitiated 2Truehttp2&Checking if the exclusive flag is set.http2Setting the exclusive flag.http2Clearing the exclusive flag.http2Getting  from .*framePayloadToFrameType (DataFrame "body") FrameDatahttp22Checking if padding is defined in this frame type.isPaddingDefined $ DataFrame ""TrueisPaddingDefined $ PingFrame ""False& Safe-Inferred%&S http2)Auxiliary information for frame encoding.http2!Flags to be set in a frame headerhttp2%Stream id to be set in a frame headerhttp2Padding if any. In the case where this value is set but the priority flag is not set, this value gets preference over the priority flag. So, if this value is set, the priority flag is also set.http2A smart builder of .encodeInfo setAck 0EncodeInfo {encodeFlags = 1, encodeStreamId = 0, encodePadding = Nothing}http2Encoding an HTTP/2 frame to . This function is not efficient enough for high performace program because of the concatenation of .0encodeFrame (encodeInfo id 1) (DataFrame "body")*"\NUL\NUL\EOT\NUL\NUL\NUL\NUL\NUL\SOHbody"http2Encoding an HTTP/2 frame to [$]. This is suitable for sendMany.http2Encoding an HTTP/2 frame header. The frame header must be completed.http2Writing an encoded HTTP/2 frame header to the buffer. The length of the buffer must be larger than or equal to 9 bytes.http2Encoding an HTTP/2 frame payload. This returns a complete frame header and chunks of payload.http2stream identifierhttp2Payload length. ' Safe-Inferred"%&Yhttp2#The type for frame payload decoder.http2Decoding an HTTP/2 frame to . The second argument must be include the entire of frame. So, this function is not useful for real applications but useful for testing.http28Decoding an HTTP/2 frame header. Must supply 9 bytes.http26Checking a frame header and reporting an error if any.checkFrameHeader defaultSettings (FrameData,(FrameHeader 100 0 0))Left (FrameDecodeError ProtocolError 0 "cannot used in control stream")http2Decoding an HTTP/2 frame payload. This function is considered to return a frame payload decoder according to a frame type.http2%Frame payload decoder for DATA frame.http2(Frame payload decoder for HEADERS frame.http2)Frame payload decoder for PRIORITY frame.http2+Frame payload decoder for RST_STREAM frame.http2)Frame payload decoder for SETTINGS frame.http2-Frame payload decoder for PUSH_PROMISE frame.http2%Frame payload decoder for PING frame.http2'Frame payload decoder for GOAWAY frame.http2.Frame payload decoder for WINDOW_UPDATE frame.http2-Frame payload decoder for CONTINUATION frame.http2Helper function to pull off the padding if its there, and will eat up the trailing padding automatically. Calls the decoder func passed in with the length of the unpadded portion between the padding octet and the actual paddinghttp2HTTP/2 settingshttp2Input byte-streamhttp2 Decoded frame Safe-Inferred"Zhttp2The preface of HTTP/2.connectionPreface""PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n"http2Length of the preface.connectionPrefaceLength24( Safe-Inferred"ehttp2The connection error or the stream error. Stream errors are treated as connection errors since there are no good recovery ways.  in connection errors should be the highest stream identifier but in this implementation it identifies the stream that caused this error.http2File specification.http21Either the next trailers maker or final trailers.http2Trailers maker. A chunks of the response body is passed with 5. The maker should update internal state with the  and return the next trailers maker. When response body reaches its end,  is passed and the maker should generate trailers. An example: {-# LANGUAGE BangPatterns #-} import Data.ByteString (ByteString) import qualified Data.ByteString.Char8 as C8 import Crypto.Hash (Context, SHA1) -- cryptonite import qualified Crypto.Hash as CH -- Strictness is important for Context. trailersMaker :: Context SHA1 -> Maybe ByteString -> IO NextTrailersMaker trailersMaker ctx Nothing = return $ Trailers [("X-SHA1", sha1)] where !sha1 = C8.pack $ show $ CH.hashFinalize ctx trailersMaker ctx (Just bs) = return $ NextTrailersMaker $ trailersMaker ctx' where !ctx' = CH.hashUpdate ctx bsUsage example: let h2rsp = responseFile ... maker = trailersMaker (CH.hashInit :: Context SHA1) h2rsp' = setResponseTrailersMaker h2rsp makerhttp2 Output objecthttp2Accessor for header.http2Accessor for outObj body.http2Accessor for trailers maker.http2 Input objecthttp2Accessor for headers.http26Accessor for body length specified in content-length:.http2Accessor for body.http2Accessor for trailers.http27Streaming body takes a write action and a flush action.http2Path.http2 Authority.http2"http" or "https".http2#TrailersMake to create no trailers.http2 Checking  and reporting an error if any.*checkSettingsList [(SettingsEnablePush,2)]Just (ConnectionErrorIsSent ProtocolError 0 "enable push must be 0 or 1")) Safe-Inferred%&f* Safe-Inferred'f + Safe-Inferredg, Safe-Inferred'hNhttp2"The context for HTTP/2 connection.http2RFC 9113 says "Other frames (from any stream) MUST NOT occur between the HEADERS frame and any CONTINUATION frames that might follow". This field is used to implement this requirement.3- Safe-Inferred"%&h. Safe-Inferred"%&'iohttp2Running trailers-maker. *bufferIO buf siz $ \bs -> tlrmkr (Just bs)/ Safe-Inferred"%&'ihttp2Type for input streaming.0 Safe-Inferredi1 Safe-Inferredl'http2Response from server.http2Request from client.http2 Client type. Safe-Inferredl\2 Safe-Inferred"%&mPhttp2Client configurationhttp2 https or httphttp2 Server namehttp24How many pushed responses are contained in the cachehttp2Running HTTP/2 client. Safe-Inferred"o http2Creating request without body.http2Creating request with file.http2Creating request with builder.http2 Creating request with streaming.http2Setting  to .http2!Getting the status of a response.http2$Getting the headers from a response.http2&Getting the body size from a response.http22Reading a chunk of the response body. An empty  returned when finished.http2Reading response trailers. This function must be called after  returns an empty. Safe-Inferredq$//3 Safe-Inferreduhttp2Additional information.http2Time handle for the worker processing this request and response.http2HTTP/2 push promise or sever push. Pseudo REQUEST headers in push promise is automatically generated. Then, a server push is sent according to .http2Accessor for a URL path in a push promise (a virtual request from a server). E.g. "/style/default.css".http24Accessor for response actually pushed from a server.http2Response from server.http2Request from client.http2Server type. Server takes a HTTP request, should generate a HTTP response and push promises, then should give them to the sending function. The sending function would throw exceptions so that they can be logged.  Safe-InferreduT4 Safe-Inferred"%&'vhttp2The type for cleaning up.http26This function is passed to workers. They also pass s from a server to this function. This function enqueues commands for the HTTP/2 sender.http2Worker for server applications. 5 Safe-Inferred"%&vhttp2Running HTTP/2 server.  Safe-Inferred"zhttp2"Getting the method from a request.http2 Getting the path from a request.http2%Getting the authority from a request.http2"Getting the scheme from a request.http2#Getting the headers from a request.http2%Getting the body size from a request.http21Reading a chunk of the request body. An empty  returned when finished.http2Reading request trailers. This function must be called after  returns an empty.http2Creating response without body.http2Creating response with file.http2Creating response with builder.http2!Creating response with streaming.http2Getter for response body size. This value is available for file body.http2Setting  to .http2Creating push promise. The third argument is traditional, not used.5567867967:;<=>?@>?A>?B>?B C D E F GHIJJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"##########%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&'''''''''''''''''((((((((((((((((((((((((((((((((((((((((((....11111222222333333333335                                    !!!$$%%&'((((((((((((((((((((((((((((((((((((((((((((((((()))*************+++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------.////2234444444444445"http2-4.0.0-7dFgbYFeXjvGhCIlauvfQA Network.HPACKNetwork.HTTP2.ClientNetwork.HPACK.InternalNetwork.HPACK.TokenNetwork.HTTP2.FrameNetwork.HTTP2.InternalNetwork.HTTP2.Client.InternalNetwork.HTTP2.Server.InternalNetwork.HTTP2.ServerImportsNetwork.HPACK.Builder!Network.HPACK.HeaderBlock.IntegerNetwork.HPACK.Huffman.Bit Network.HPACK.Huffman.ByteStringNetwork.HPACK.Huffman.ParamsNetwork.HPACK.Huffman.TableNetwork.HPACK.Huffman.EncodeNetwork.HPACK.Huffman.TreeNetwork.HPACK.TypesNetwork.HPACK.Table.EntryNetwork.HPACK.Table.StaticNetwork.HPACK.Table.RevIndexNetwork.HPACK.Huffman.DecodeNetwork.HPACK.HuffmanNetwork.HPACK.Table.DynamicNetwork.HPACK.Table Network.HPACK.HeaderBlock.Encode Network.HPACK.HeaderBlock.DecodeNetwork.HPACK.HeaderBlockNetwork.HTTP2.Arch.CacheNetwork.HTTP2.Arch.FileNetwork.HTTP2.Arch.ManagerNetwork.HTTP2.Arch.RateNetwork.HTTP2.Arch.ReadNNetwork.HTTP2.Arch.ConfigNetwork.HTTP2.Arch.StatusNetwork.HTTP2.Frame.TypesNetwork.HTTP2.Frame.EncodeNetwork.HTTP2.Frame.DecodeNetwork.HTTP2.Arch.TypesNetwork.HTTP2.Arch.QueueNetwork.HTTP2.Arch.StreamNetwork.HTTP2.Arch.EncodeFrameNetwork.HTTP2.Arch.ContextNetwork.HTTP2.Arch.HPACKNetwork.HTTP2.Arch.SenderNetwork.HTTP2.Arch.ReceiverNetwork.HTTP2.ArchNetwork.HTTP2.Client.TypesNetwork.HTTP2.Client.RunNetwork.HTTP2.Server.TypesNetwork.HTTP2.Server.WorkerNetwork.HTTP2.Server.Run/case-insensitive-1.2.1.0-3IqAPJaYft7ITlObngKNX4Data.CaseInsensitive.Internalmk foldedCaseoriginal(http-types-0.12.3-L3rcKlUfVN0BViQ440kXJlNetwork.HTTP.Types.MethodMethod/network-byte-order-0.1.6-8YtERXVIouY6N7oqXTN31VNetwork.ByteOrderBuffer BufferSize BufferOverrunGCBuffer encodeIntegerencodeI decodeIntegerdecodeIencodeH encodeHuffmanTokentokenIxshouldBeIndexedisPseudotokenKey tokenCIKeytokenFoldedKeytokenAuthority tokenMethod tokenPath tokenScheme tokenStatustokenAcceptCharsettokenAcceptEncodingtokenAcceptLanguagetokenAcceptRanges tokenAccepttokenAccessControlAllowOrigintokenAge tokenAllowtokenAuthorizationtokenCacheControltokenContentDispositiontokenContentEncodingtokenContentLanguagetokenContentLengthtokenContentLocationtokenContentRangetokenContentType tokenCookie tokenDate tokenEtag tokenExpect tokenExpires tokenFrom tokenHost tokenIfMatchtokenIfModifiedSincetokenIfNoneMatch tokenIfRangetokenIfUnmodifiedSincetokenLastModified tokenLink tokenLocationtokenMaxForwardstokenProxyAuthenticatetokenProxyAuthorization tokenRange tokenReferer tokenRefreshtokenRetryAfter tokenServertokenSetCookietokenStrictTransportSecuritytokenTransferEncodingtokenUserAgent tokenVarytokenViatokenWwwAuthenticatetokenConnectiontokenTE"tokenAccessControlAllowCredentialstokenAccessControlAllowHeaderstokenAccessControlAllowMethodstokenAccessControlExposeHeaders tokenAccessControlRequestHeaderstokenAccessControlRequestMethod tokenAltSvctokenContentSecurityPolicytokenEarlyData tokenExpectCttokenForwarded tokenOrigin tokenPurposetokenTimingAllowOrigintokenUpgradeInsecureRequeststokenXContentTypeOptionstokenXForwardedFortokenXFrameOptionstokenXXssProtectiontokenMax minTokenIxmaxStaticTokenIx maxTokenIx cookieTokenIxisCookieTokenIx isMaxTokenIxisStaticTokenIx isStaticTokentoToken $fEqToken $fShowToken DecodeError IndexOverrunEosInTheMiddle IllegalEos TooLongEosTooSmallTableSizeTooLargeTableSizeIllegalTableSizeUpdateHeaderBlockTruncatedIllegalHeaderNameTooLargeHeaderEncodeStrategycompressionAlgo useHuffmanCompressionAlgoNaiveStaticLinearIndexTokenHeaderList TokenHeader HeaderListHeader HeaderValue HeaderNamedefaultEncodeStrategyEntrySizetoEntry toEntryToken entrySizeentryTokenHeader entryTokenentryHeaderNameentryHeaderValue dummyEntry maxNumbersHuffmanDecoderdecodeHdecH decodeHuffman DynamicTablesetLimitForEncodingnewDynamicTableForEncodingnewDynamicTableForDecodingwithDynamicTableForEncodingwithDynamicTableForDecoding encodeHeaderencodeTokenHeaderencodeS encodeString HeaderTable ValueTablegetHeaderValue decodeHeaderdecodeTokenHeader decodeSimpledecodeSophisticated decodeStringdecodeS toHeaderTabledefaultDynamicTableSizePositionReadMakerSentinelCloser Refresher PositionRead ByteCount FileOffsetdefaultPositionReadMaker defaultReadNConfigconfWriteBufferconfBufferSize confSendAll confReadNconfPositionReadMakerconfTimeoutManagerallocSimpleConfigfreeSimpleConfig FrameTypeId SettingsKeyId ErrorCodeId FramePayload DataFrame HeadersFrame PriorityFrameRSTStreamFrame SettingsFramePushPromiseFrame PingFrame GoAwayFrameWindowUpdateFrameContinuationFrame UnknownFrame FrameHeader payloadLengthflagsstreamIdFrame frameHeader framePayloadPaddingHeaderBlockFragmentStreamId FrameFlags FrameTypePriority exclusivestreamDependencyweightWeight WindowSizeSettingsheaderTableSize enablePushmaxConcurrentStreamsinitialWindowSize maxFrameSizemaxHeaderBlockSize SettingsList SettingsValue SettingsKey ErrorCodeFrameContinuationFrameWindowUpdate FrameGoAway FramePingFramePushPromise FrameSettingsFrameRSTStream FramePriority FrameHeaders FrameDataSettingsMaxHeaderBlockSizeSettingsMaxFrameSizeSettingsInitialWindowSizeSettingsMaxConcurrentStreamsSettingsEnablePushSettingsHeaderTableSizeHTTP11RequiredInadequateSecurityEnhanceYourCalm ConnectErrorCompressionErrorCancel RefusedStreamFrameSizeError StreamClosedSettingsTimeoutFlowControlError InternalError ProtocolErrorNoErrorframeHeaderLength fromErrorCode toErrorCodefromSettingsKey toSettingsKeydefaultSettingsupdateSettingsdefaultInitialWindowSize maxWindowSizeisWindowOverflowrecommendedConcurrency fromFrameType toFrameType minFrameType maxFrameTypemaxPayloadLength defaultFlags testEndStreamtestAck testEndHeader testPadded testPriority setEndStreamsetAck setEndHeader setPadded setPriority isControlisClientInitiatedisServerInitiated testExclusive setExclusiveclearExclusiveframePayloadToFrameTypeisPaddingDefined EncodeInfo encodeFlagsencodeStreamId encodePadding encodeInfo encodeFrameencodeFrameChunksencodeFrameHeaderencodeFrameHeaderBufencodeFramePayloadFramePayloadDecoderFrameDecodeError decodeFramedecodeFrameHeadercheckFrameHeaderdecodeFramePayloaddecodeDataFramedecodeHeadersFramedecodePriorityFramedecoderstStreamFramedecodeSettingsFramedecodePushPromiseFramedecodePingFramedecodeGoAwayFramedecodeWindowUpdateFramedecodeContinuationFrameconnectionPrefaceconnectionPrefaceLength HTTP2ErrorConnectionIsClosedConnectionErrorIsReceivedConnectionErrorIsSentStreamErrorIsReceivedStreamErrorIsSentBadThingHappenStreamingChunkStreamingFinishedStreamingFlushStreamingBuilderNext BytesFilledDynaNextFileSpecNextTrailersMakerTrailers TrailersMakerOutObj outObjHeaders outObjBodyoutObjTrailersInpObj inpObjHeadersinpObjBodySize inpObjBodyinpObjTrailersOutBody OutBodyNoneOutBodyStreamingOutBodyBuilder OutBodyFileInpBodyPath AuthoritySchemedefaultTrailersMakerrunTrailersMakerfillBuilderBodyGetNextfillFileBodyGetNextfillStreamBodyGetNextResponseRequestClient ClientConfigscheme authority cacheLimitrun requestNoBody requestFilerequestBuilderrequestStreamingsetRequestTrailersMakerresponseStatusresponseHeadersresponseBodySizegetResponseBodyChunkgetResponseTrailersAux auxTimeHandle PushPromisepromiseRequestPathpromiseResponseServer requestMethod requestPathrequestAuthority requestSchemerequestHeadersrequestBodySizegetRequestBodyChunkgetRequestTrailersresponseNoBody responseFileresponseBuilderresponseStreamingsetResponseTrailersMaker pushPromisebaseGHC.Base++GHC.Listfilterzipmap Control.Monadguardjoin GHC.FloatFloatingtanhtansqrtsinhsinpilogBaselog1pexplog1plog1mexplogexpm1expcoshcosatanhatanasinhasinacosh**acosMonad>>>>=returnFunctor<$fmapghc-prim GHC.ClassesOrd<<=>maxmincompare>=Control.Monad.Fail MonadFailfail ApplicativeliftA2<**><*>pure Data.FoldableFoldablefoldr'foldMap'foldMapfoldtoListsumproductminimummaximumfoldr1foldl1foldl'elemfoldrfoldlnulllengthData.TraversablemapMsequence<>Monoidmconcatmemptymappend GHC.TypesIntGHC.IntInt8Int16Int32Int64 GHC.MaybeMaybeNothingJustOrderingGTLTEQWordGHC.WordWord8Word16Word32Word64 Data.EitherEitherRightLeftforM_mapM_ zipWithM_zipWithMunless replicateM_ replicateMmfilter mapAndUnzipMforeverfoldM_foldMfilterM>=><=<<$!> Data.ListisSubsequenceOf mapAccumR mapAccumLforMControl.ApplicativeZipList getZipList WrappedMonad WrapMonad unwrapMonad WrappedArrow WrapArrow unwrapArrowoptionalGHC.ForeignPtrwithForeignPtrmallocPlainForeignPtrBytesData.Functor.ConstConstgetConst traverse_ sequence_ sequenceA_ornotElemmsum minimumBy maximumByfor_foldrMfoldlMfind concatMapconcatasumanyandall Data.OldListzipWith7zipWith6zipWith5zipWith4zip7zip6zip5zip4wordsunzip7unzip6unzip5unzip4unwordsunlinesunionByunionunfoldr transposetails subsequences stripPrefixsortOnsortBysort singleton permutations partitionnubBynublines isSuffixOf isPrefixOf isInfixOf intersperse intersectBy intersect intercalateinsertByinsertinitsgroupBygroup genericTakegenericSplitAtgenericReplicate genericLength genericIndex genericDrop findIndices findIndex elemIndices elemIndex dropWhileEnddeleteFirstsBydeleteBydelete\\ Data.MonoidLastgetLastFirstgetFirstApgetApData.Semigroup.InternalSumgetSumProduct getProductEndoappEndoDualgetDualAnygetAnyAltgetAltAllgetAllData.OrdDowngetDown comparingclamp Data.BitsXorgetXorIorgetIorIffgetIffAndgetAndoneBitsrightspartitionEithersleftsisRightisLeft fromRightfromLefteitherNumericshowOct showIntAtBaseshowIntshowHex showHFloat showGFloatAlt showGFloat showFFloatAlt showFFloat showEFloatshowBin readSignedreadOctreadIntreadHex readFloatreadDecreadBinGHC.Read lexDigits showFloatfromRat floatToDigits byteSwap64 byteSwap32 byteSwap16 bitReverse8 bitReverse64 bitReverse32 bitReverse16GHC.Bits FiniteBits finiteBitSizecountLeadingZeroscountTrailingZeroszeroBitsxor unsafeShiftR unsafeShiftLtestBitshiftRshiftLshiftsetBitrotateRrotateLrotatepopCountisSigned complementBit complementclearBit bitSizeMaybebitSizebit.&..|.toIntegralSizedtestBitDefaultpopCountDefault bitDefaultGHC.Real showSignedzipWith3zipWithzip3unzip3unzipuncons takeWhiletaketailsplitAtspanscanr1scanrscanl1scanl'scanlreverse replicaterepeatlookuplastiterate'iterateinitheadfoldl1' dropWhiledropcyclebreak!! Data.Maybe maybeToListmaybemapMaybe listToMaybe isNothingisJust fromMaybefromJust catMaybes Data.Functorvoid<$> MonadPlusmplusmzero Alternativesomemany<|>emptywhenliftM5liftM4liftM3liftM2liftMliftA3liftAap=<<<**>bytestring-0.11.3.1Data.ByteString.Short.InternalShortByteStringData.ByteString.Internal ByteStringBSPSBuilder<<BitsBFTfromBits unpack4bitscopyidxEos huffmanTable huffmanTable'HTreetoHTreemarkBinTipeosInfoshowTree printTreeflattenHIndexSIndexDIndexstaticTableSize toStaticEntry staticTablestaticTableListRevIndex newRevIndex renewRevIndexlookupRevIndexlookupRevIndex'insertRevIndexdeleteRevIndexList circularTableoffset numOfEntriesmaxNumOfEntriesdynamicTableSizemaxDynamicTableSizeprintDynamicTablerenewDynamicTable shouldRenew insertEntryTableSizeActionIgnoreKeepChangecodeInfoCodeInfoCIECIDtoIndexedEntryfromHIndexToIndexhuffmanDecoderisDynamicTableEmptyisSuitableSizeneedChangeTableSizeresetLimitForEncodingtoDynamicEntry getRevIndex encodeHeader'TrueFalseCachecQueuecTickcSizecLimit emptyCacheGHC.IO.Handle.TypesHandleManagerActionstart setActionstop spawnActionaddMyId deleteMyIdtimeoutKillThread timeoutCloseRatenewRategetRate getStatus setStatusminSettingsKeymaxSettingsKey buildPaddingdecodeWithPaddingcheckSettingsList ReasonPhraseControl CSettings0 CSettingsCFrameCGoawayCFinish OutputTypeONextOPushOWaitOObjOutputoutputSentinel outputStrmQ outputType outputObject outputStreamInput StreamTableStream streamInput streamWindow streamState streamNumber StreamStateReservedClosedHalfClosedLocalHalfClosedRemoteOpenIdle ClosedCode ResetByMeResetKilledFinished OpenStateHasBodyNoBody Continued JustOpenedBodycheckSettingsValueforkAndEnqueueWhenReady enqueueOutputenqueueControlisIdleisOpenisHalfClosedRemoteisHalfClosedLocalisClosed newStream newPushStreamreadStreamStatenewStreamTableremovesearchupdateAllStreamWindow goawayFrame resetFrame settingsFrame pingFramewindowUpdateFrameContext continuedemptyFrameRate settingsRatepingRateconnectionWindowdecodeDynamicTableencodeDynamicTablecontrolQoutputQ peerStreamId myStreamId concurrency streamTable firstSettings http2settingsroleInforole ClientInfocache ServerInfoinputQRoleInfoRICRISRole toServerInfo toClientInfo newServerInfo newClientInfo insertCache lookupCache newContextisClientisServergetMyNewStreamIdgetPeerStreamIDsetPeerStreamIDsetStreamStateopenedhalfClosedRemotehalfClosedLocalclosed openStream fixHeadershpackEncodeHeaderhpackEncodeHeaderLoophpackDecodeHeaderhpackDecodeTrailerjust frameSenderSourcemaxConcurrency initialFrame frameReceiver sendRequestexchangeSettings StreamInforesponseworker WorkerConf readInputQ writeOutputQ workerCleanup isPushable insertStreammakePushStream fromContextgoaway