!wt     (c) 2019 Emily Pillmore BSD-style$Emily Pillmore <emilypi@cohomolo.gy> ExperimentalportableNoneF`k& base64A type isomorphic to . marking support for padding out bytestrings (Pad), or not (Nopad@).base64Do we pad out the bytestring?base64!Do we not pad out the bytestring?base64qOnly the lookup table need be a foreignptr, and then, only so that we can automate some touches to keep it alive base64Allocate and fill n bytes with some data!base64Read " index off alphabet addr#base64QEncoding inner loop. Packs 3 bytes from src pointer into the first 6 bytes of 4 Word8'#s (using the encoding table, as 2 Word12'&s ), writing these to the dst pointer.$base64TUnpadded encoding loop, finalized as a bytestring using the resultant length count.%base64&Non-URLsafe b64 decoding table (naive)&base64"URLsafe b64 decoding table (naive)'base64The main decode function. Takes a padding flag, a decoding table, and the input value, producing either an error string on the left, or a decoded value. Note: If : ~ Pad, then we pad out the input to a multiple of 4. If R ~ NoPad, then we do not, and fail if the input is not a multiple of 4 in length.(base64decode lookup tablebase64 src pointerbase64 dst pointerbase64end of src ptrbase64 dst foreign ptr (for consing bs))base64decode lookup tablebase64 src pointerbase64 dst pointerbase64end of src ptrbase64 dst foreign ptr (for consing bs) *+,-.%&'/(c) 2019 Emily Pillmore BSD-style$Emily Pillmore <emilypi@cohomolo.gy> ExperimentalportableNone+Qbase64 Encode a 0 value as Base64 1 with padding.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4base64 Encode a 0 value as a Base64 0 value with padding.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4base64Decode a padded Base64-encoded 0 value.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4Note:) This function is not RFC compliant, and willj add padding to an unpadded Base64-encoded value for decoding. For strictly RFC-compliant decoding, use decodeBase64Unpadded.base64,Leniently decode an unpadded Base64-encoded 0 value. This function will not generate parse errors. If input data contains padding chars, then the input will be parsed up until the first pad character.Note: This is not RFC 4648-compliant.base64Tell whether a 0 value is base64 encoded.base64Tell whether a 0 value is a valid Base64 format.This will not tell you whether or not this is a correct Base64url representation, only that it conforms to the correct shape. To check whether it is a true Base64 encoded 0 value, use .(c) 2019 Emily Pillmore BSD-style$Emily Pillmore <emilypi@cohomolo.gy> ExperimentalportableNoneM base64 Encode a 0 value as a Base64url 1 value with padding.See: -https://tools.ietf.org/html/rfc4648#section-5RFC-4648 section 5base64 Encode a 0 as a Base64url 0 value with padding.See: -https://tools.ietf.org/html/rfc4648#section-5RFC-4648 section 5base64"Decode a padded Base64url encoded 0 value. If its length is not a multiple of 4, then padding chars will be added to fill out the input to a multiple of 4 for safe decoding as Base64url-encoded values are optionally padded.BFor a decoder that fails on unpadded input of incorrect size, use  .See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4 base64 Encode a 0 value as Base64url 1 without padding. Note that for Base64url, padding is optional. If you call this function, you will simply be encoding as Base64url and stripping padding chars from the output.See: /https://tools.ietf.org/html/rfc4648#section-3.2RFC-4648 section 3.2 base64 Encode a 0 value as Base64url without padding. Note that for Base64url, padding is optional. If you call this function, you will simply be encoding as Base64url and stripping padding chars from the output.See: /https://tools.ietf.org/html/rfc4648#section-3.2RFC-4648 section 3.2 base64"Decode a padded Base64url-encoded 0G value. If its length is not a multiple of 4, then padding chars will not4 be added to fill out the input to a multiple of 4.SIn general, unless unpadded Base64url is explicitly required, it is safer to call .See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4 base64/Leniently decode an unpadded Base64url-encoded 0. This function will not generate parse errors. If input data contains padding chars, then the input will be parsed up until the first pad character.Note: This is not RFC 4648-compliant. base64Tell whether a 0 is Base64url-encoded.base64Tell whether a 0 is a valid Base64url format.This will not tell you whether or not this is a correct Base64url representation, only that it conforms to the correct shape. To check whether it is a true Base64 encoded 0 value, use  .    (c) 2019 Emily Pillmore BSD-style$Emily Pillmore <emilypi@cohomolo.gy> ExperimentalportableNone[base64 Encode a 1 value in Base64 with padding.See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4base64Decode a padded Base64-encoded 1 valueSee: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4base64"Leniently decode a Base64-encoded 1 value. This function will not generate parse errors. If input data contains padding chars, then the input will be parsed up until the first pad character.Note: This is not RFC 4648-compliant.base64Tell whether a 1 value is Base64-encoded.base64Tell whether a 1 value is a valid Base64 format.This will not tell you whether or not this is a correct Base64 representation, only that it conforms to the correct shape. To check whether it is a true Base64 encoded 1 value, use .(c) 2019 Emily Pillmore BSD-style$Emily Pillmore <emilypi@cohomolo.gy> ExperimentalportableNonetbase64 Encode a 1! value in Base64url with padding.See: -https://tools.ietf.org/html/rfc4648#section-5RFC-4648 section 5base64"Decode a padded Base64url-encoded 1 value. If its length is not a multiple of 4, then padding chars will be added to fill out the input to a multiple of 4 for safe decoding as base64url encodings are optionally padded.BFor a decoder that fails on unpadded input of incorrect size, use .See: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4base64 Encode a 1 value in Base64url without padding. Note that for Base64url, padding is optional. If you call this function, you will simply be encoding as Base64url and stripping padding chars from the output.See: /https://tools.ietf.org/html/rfc4648#section-3.2RFC-4648 section 3.2base64%Decode an unpadded Base64url encoded 1 valueSee: -https://tools.ietf.org/html/rfc4648#section-4RFC-4648 section 4base64/Leniently decode an unpadded Base64url-encoded 1. This function will not generate parse errors. If input data contains padding chars, then the input will be parsed up until the first pad character.Note: This is not RFC 4648-compliant.base64Tell whether a 1 value is Base64url-encoded.base64Tell whether a 1# value is a valid Base64url format.This will not tell you whether or not this is a correct Base64url representation, only that it conforms to the correct shape. To check whether it is a true Base64 encoded 1 value, use .2            !"#$%&'()*+,-./0"base64-0.4.0-FRC0iMPqtTLb11KJWzlmDData.ByteString.Base64Data.ByteString.Base64.URLData.Text.Encoding.Base64Data.Text.Encoding.Base64.URLData.ByteString.Base64.Internal encodeBase64 encodeBase64' decodeBase64decodeBase64LenientisBase64 isValidBase64encodeBase64UnpaddedencodeBase64Unpadded'decodeBase64Unpadded isBase64UrlisValidBase64UrlPaddingghc-prim GHC.TypesBoolPadNoPad EncodingTablewriteNPlainForeignPtrBytesaixbaseGHC.WordWord8 innerLoopinnerLoopNopaddecodeB64TabledecodeB64UrlTable decodeBase64_decodeBase64_'decodeBase64Lenient_'base64UrlTable base64TablevalidateBase64 encodeBase64_encodeBase64Nopad_decodeBase64Lenient_bytestring-0.10.8.2Data.ByteString.Internal ByteString text-1.2.3.1Data.Text.InternalText