Îõ³h$γ˯ÿ      !"#$%&'()*+,-./0123456789:;<=>?@ABC 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 uvwxyz{|}~NoneÇØbase32Read € index off alphabet addrbase32Allocate and fill n bytes with some data‚base32.Rechunk a list of bytestrings in multiples of nƒ„…†‡‚None Çàáì{ˆbase32(Unroll final quantum encoding for base32‰base32(Unroll final quantum encoding for base32ˆ‰NoneÇ졊‹NoneÇáìËŒNoneÇìÔbase32(Head of the padded base32 encoding loop.:This function takes an alphabet in the form of an unboxed Ž÷, allocates the correct number of bytes that will be written, and executes the inner encoding loop against that data.base32*Head of the unpadded base32 encoding loop.:This function takes an alphabet in the form of an unboxed Ž÷, allocates the correct number of bytes that will be written, and executes the inner encoding loop against that data.base32!Head of the base32 decoding loop.ÇThis function takes a base32-decoding lookup table and base32-encoded bytestring, allocates the correct number of bytes that will be written, and executes the inner decoding loop against that data.(c) 2020 Emily Pillmore BSD-style$Emily Pillmore  ExperimentalportableNone Çì ·base32;Validate a base32-encoded bytestring against some alphabet.base32?This function checks that the last N-chars of a bytestring are '='Á and, if true, fails with a message or completes some io action.This is necessary to check when decoding permissively (i.e. filling in padding chars). Consider the following 8 cases of a string of length l: l = 0 mod 8À: No pad chars are added, since the input is assumed to be good. l = 1 mod 8&: Never an admissible length in base32 l = 2 mod 8ô: 6 padding chars are added. If padding chars are present in the string, they will fail as to decode as final quanta l = 3 mod 8&: Never an admissible length in base32 l = 4 mod 8ë: 4 padding chars are added. If 2 padding chars are present in the string this can be "completed" in the sense that it now acts like a string `l == 2 mod 8` with 6 padding chars, and could potentially form corrupted data. l = 5 mod 8’: 3 padding chars are added. If 3 padding chars are present in the string, this could form corrupted data like in the previous case. l = 6 mod 8&: Never an admissible length in base32 l = 7 mod 8Ž: 1 padding char is added. If 5 padding chars are present in the string, this could form corrupted data like the previous cases.ÝHence, permissive decodes should only fill in padding chars when it makes sense to add them. That is, if an input is degenerate, it should never succeed when we add padding chars. We need the following invariant to hold:  B32.decodeUnpadded  | B32.decodePadded ~ B32.decode (c) 2019-2020 Emily Pillmore BSD-style$Emily Pillmore stable non-portable Trustworthy Çt base32 Encode a  value as a Base32hex  value with padding.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:encodeBase32 "Sun" "ADQMS==="base32 Encode a  value as a Base32hex  value with padding.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:encodeBase32' "Sun" "ADQMS==="base32/Decode an arbitrarily padded Base32hex-encoded Å value. If its length is not a multiple of 8, then padding characters will be added to fill out the input to a multiple of 8 for safe decoding, as Base32hex-encoded values are optionally padded.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:decodeBase32 "ADQMS===" Right "Sun"decodeBase32 "ADQMS" Right "Sun"decodeBase32 "ADQM==="4Left "Base32-encoded bytestring has invalid padding"base32 Encode a  value as a Base32hex  value without padding.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:encodeBase32Unpadded' "Sun""ADQMS" base32 Encode a  value as a Base32hex  value without padding.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:encodeBase32Unpadded' "Sun""ADQMS" base32%Decode an unpadded Base32hex-encoded  value.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:decodeBase32Unpadded "ADQMS" Right "Sun"decodeBase32Unpadded "ADQMS==="4Left "Base32-encoded bytestring has invalid padding" base32"Decode a padded Base32hex-encoded  value.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:decodeBase32Padded "ADQMS===" Right "Sun"decodeBase32Padded "ADQMS"1Left "Base32-encoded bytestring requires padding" base32Tell whether a 8 value is encoded in padded or unpadded Base32hex formatExamples:isBase32Hex "ADQMS"TrueisBase32Hex "ADQMS==="TrueisBase32Hex "ADQMS=="False base32Tell whether a # value is a valid Base32hex format.ÎThis will not tell you whether or not this is a correct Base32hex representation, only that it conforms to the correct shape (including padding/size etc.). To check whether it is a true Base32hex encoded  value, use isBase32.Examples:isValidBase32Hex "ADQMS"TrueisValidBase32Hex "ADQMS="FalseisValidBase32Hex "ADQMS%"False    (c) 2019-2020 Emily Pillmore BSD-style$Emily Pillmore stable non-portable Trustworthy Ç"ú base32 Encode a  value as a Base32  value with padding.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:encodeBase32 "Sun" "KN2W4==="base32 Encode a  value as a Base32  value with padding.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:encodeBase32' "Sun" "KN2W4==="base32,Decode an arbitrarily padded Base32-encoded  value. If its length is not a multiple of 8, then padding characters will be added to fill out the input to a multiple of 8 for safe decoding, as Base32-encoded values are optionally padded.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:decodeBase32 "KN2W4===" Right "Sun"decodeBase32 "KN2W4" Right "Sun"decodeBase32 "KN2W==="4Left "Base32-encoded bytestring has invalid padding"base32 Encode a  value as a Base32  value without padding.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:encodeBase32Unpadded "Sun""KN2W4"base32 Encode a  value as a Base32  value without padding.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:encodeBase32Unpadded' "Sun""KN2W4"base32"Decode an unpadded Base32-encoded  value.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:decodeBase32Unpadded "KN2W4" Right "Sun"decodeBase32Unpadded "KN2W4==="4Left "Base32-encoded bytestring has invalid padding"base32Decode a padded Base32-encoded  value.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:decodeBase32Padded "KN2W4===" Right "Sun"decodeBase32Padded "KN2W4"1Left "Base32-encoded bytestring requires padding"base32Tell whether a 5 value is encoded in padded or unpadded Base32 formatExamples:isBase32 "KN2W4"TrueisBase32 "KN2W4==="TrueisBase32 "KN2W4=="Falsebase32Tell whether a  value is a valid Base32 format.ÈThis will not tell you whether or not this is a correct Base32 representation, only that it conforms to the correct shape (including padding/size etc.). To check whether it is a true Base32 encoded  value, use .Examples:isValidBase32 "KN2W4"TrueisValidBase32 "KN2W4="FalseisValidBase32 "KN2W4%"False  (c) 2019-2020 Emily Pillmore BSD-style$Emily Pillmore stable non-portable Trustworthy /Ù base32 Encode a ‘ value as a Base32 Text value with padding.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:encodeBase32 "Sun" "KN2W4==="base32 Encode a ‘ as a Base32 ‘ value with padding.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:encodeBase32 "Sun" "KN2W4==="base32,Decode an arbitrarily padded Base32 encoded ‘» 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 Base32-encoded values are optionally padded.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:decodeBase32 "KN2W4===" Right "Sun"decodeBase32 "KN2W4" Right "Sun"decodeBase32 "KN2W==="4Left "Base32-encoded bytestring has invalid padding"base32 Encode a ‘ value as Base32 Text¬ without padding. Note that for Base32, padding is optional. If you call this function, you will simply be encoding as Base32 and stripping padding chars from the output.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:encodeBase32Unpadded "Sun""KN2W4"base32 Encode a ‘¼ value as Base32 without padding. Note that for Base32, padding is optional. If you call this function, you will simply be encoding as Base32 and stripping padding chars from the output.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:encodeBase32Unpadded' "Sun""KN2W4"base32"Decode an unpadded Base32-encoded ‘î value. Input strings are required to be unpadded, and will undergo validation prior to decoding to confirm.ÐIn general, unless unpadded Base32 is explicitly required, it is safer to call .See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:decodeBase32Unpadded "KN2W4" Right "Sun"decodeBase32Unpadded "KN2W4==="4Left "Base32-encoded bytestring has invalid padding"base32Decode a padded Base32-encoded ‘ð value. Input strings are required to be correctly padded, and will be validated prior to decoding to confirm.ÎIn general, unless padded Base32 is explicitly required, it is safer to call .See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:decodeBase32Padded "KN2W4===" Right "Sun"decodeBase32Padded "KN2W4"1Left "Base32-encoded bytestring requires padding"base32Tell whether a ‘ is Base32-encoded.Examples:isBase32 "KN2W4"TrueisBase32 "KN2W4==="TrueisBase32 "KN2W4=="Falsebase32Tell whether a ‘ is a valid Base32 format.ªThis will not tell you whether or not this is a correct Base32 representation, only that it conforms to the correct shape. To check whether it is a true Base32 encoded ‘ value, use .Examples:isValidBase32 "KN2W4"TrueisValidBase32 "KN2W4="FalseisValidBase32 "KN2W4%"False  (c) 2019-2020 Emily Pillmore BSD-style$Emily Pillmore stable non-portable Trustworthy = base32 Encode a ‘ value as a Base32hex Text value with padding.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:encodeBase32 "Sun" "ADQMS==="!base32 Encode a ‘ as a Base32hex ‘ value with padding.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:encodeBase32' "Sun" "ADQMS===""base32/Decode an arbitrarily padded Base32hex encoded ‘¾ 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 Base32hex-encoded values are optionally padded.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:decodeBase32 "ADQMS===" Right "Sun"decodeBase32 "ADQMS" Right "Sun"decodeBase32 "ADQMS==="4Left "Base32-encoded bytestring has invalid padding"#base32 Encode a ‘ value as Base32hex Text² without padding. Note that for Base32hex, padding is optional. If you call this function, you will simply be encoding as Base32hex and stripping padding chars from the output.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:encodeBase32Unpadded "Sun""ADQMS"$base32 Encode a ‘Å value as Base32hex without padding. Note that for Base32hex, padding is optional. If you call this function, you will simply be encoding as Base32hex and stripping padding chars from the output.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:encodeBase32Unpadded' "Sun""ADQMS"%base32%Decode an unpadded Base32hex-encoded ‘î value. Input strings are required to be unpadded, and will undergo validation prior to decoding to confirm.ÓIn general, unless unpadded Base32hex is explicitly required, it is safer to call ".See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:decodeBase32Unpadded "ADQMS" Right "Sun"decodeBase32Unpadded "ADQMS==="4Left "Base32-encoded bytestring has invalid padding"&base32"Decode a padded Base32hex-encoded ‘ð value. Input strings are required to be correctly padded, and will be validated prior to decoding to confirm.ÑIn general, unless padded Base32hex is explicitly required, it is safer to call ".See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:decodeBase32Padded "ADQMS===" Right "Sun"decodeBase32Padded "ADQMS"1Left "Base32-encoded bytestring requires padding"'base32Tell whether a ‘ is Base32hex-encoded.Examples:isBase32Hex "ADQMS"TrueisBase32Hex "ADQMS==="TrueisBase32Hex "ADQMS=="False(base32Tell whether a ‘ is a valid Base32hex format.°This will not tell you whether or not this is a correct Base32hex representation, only that it conforms to the correct shape. To check whether it is a true Base32hex encoded ‘ value, use '.Examples:isValidBase32Hex "ADQMS"TrueisValidBase32Hex "ADQMS="FalseisValidBase32Hex "ADQMS%"False !"#$%&'( !#$"%&'((c) 2019-2020 Emily Pillmore BSD-style$Emily Pillmore stable non-portable TrustworthyIÚ )base32 Encode a ’ value as a Base32  value with padding.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:encodeBase32 "Sun" "KN2W4==="*base32 Encode a ’ as a Base32 ’ value with padding.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:encodeBase32' "Sun" "KN2W4==="+base32,Decode an arbitrarily padded Base32 encoded ’» 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 Base32-encoded values are optionally padded.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:decodeBase32 "KN2W4===" Right "Sun"decodeBase32 "KN2W4" Right "Sun"decodeBase32 "KN2W==="4Left "Base32-encoded bytestring has invalid padding",base32 Encode a ’ value as Base32 ¬ without padding. Note that for Base32, padding is optional. If you call this function, you will simply be encoding as Base32 and stripping padding chars from the output.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:encodeBase32Unpadded "Sun""KN2W4"-base32 Encode a ’¼ value as Base32 without padding. Note that for Base32, padding is optional. If you call this function, you will simply be encoding as Base32 and stripping padding chars from the output.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:encodeBase32Unpadded' "Sun""KN2W4".base32"Decode an unpadded Base32-encoded ’î value. Input strings are required to be unpadded, and will undergo validation prior to decoding to confirm.ÐIn general, unless unpadded Base32 is explicitly required, it is safer to call +.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:decodeBase32Unpadded "KN2W4" Right "Sun"decodeBase32Unpadded "KN2W4==="4Left "Base32-encoded bytestring has invalid padding"/base32Decode a padded Base32-encoded ’ð value. Input strings are required to be correctly padded, and will be validated prior to decoding to confirm.ÎIn general, unless padded Base32 is explicitly required, it is safer to call +.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:decodeBase32Padded "KN2W4===" Right "Sun"decodeBase32Padded "KN2W4"1Left "Base32-encoded bytestring requires padding"0base32Tell whether a ’ is Base32-encoded.Examples:isBase32 "KN2W4"TrueisBase32 "KN2W4==="TrueisBase32 "KN2W4=="False1base32Tell whether a ’ is a valid Base32 format.ªThis will not tell you whether or not this is a correct Base32 representation, only that it conforms to the correct shape. To check whether it is a true Base32 encoded ’ value, use 0.Examples:isValidBase32 "KN2W4"TrueisValidBase32 "KN2W4="FalseisValidBase32 "KN2W4%"False )*+,-./01 )*,-+./01(c) 2019-2020 Emily Pillmore BSD-style$Emily Pillmore stable non-portable TrustworthyVø 2base32 Encode a ’ value as a Base32hex  value with padding.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:encodeBase32 "Sun" "ADQMS==="3base32 Encode a ’ as a Base32hex ’ value with padding.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:encodeBase32' "Sun" "ADQMS==="4base32/Decode an arbitrarily padded Base32hex encoded ’¾ 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 Base32hex-encoded values are optionally padded.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:decodeBase32 "ADQMS===" Right "Sun"decodeBase32 "ADQMS" Right "Sun"decodeBase32 "ADQM==="4Left "Base32-encoded bytestring has invalid padding"5base32 Encode a ’ value as Base32hex ² without padding. Note that for Base32hex, padding is optional. If you call this function, you will simply be encoding as Base32hex and stripping padding chars from the output.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:encodeBase32Unpadded' "Sun""ADQMS"6base32 Encode a ’Å value as Base32hex without padding. Note that for Base32hex, padding is optional. If you call this function, you will simply be encoding as Base32hex and stripping padding chars from the output.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:encodeBase32Unpadded' "Sun""ADQMS"7base32%Decode an unpadded Base32hex-encoded ’î value. Input strings are required to be unpadded, and will undergo validation prior to decoding to confirm.ÓIn general, unless unpadded Base32hex is explicitly required, it is safer to call 4.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:decodeBase32Unpadded "ADQMS" Right "Sun"decodeBase32Unpadded "ADQMS==="4Left "Base32-encoded bytestring has invalid padding"8base32"Decode a padded Base32hex-encoded ’ð value. Input strings are required to be correctly padded, and will be validated prior to decoding to confirm.ÑIn general, unless padded Base32hex is explicitly required, it is safer to call 4.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:decodeBase32Padded "ADQMS===" Right "Sun"decodeBase32Padded "ADQMS"1Left "Base32-encoded bytestring requires padding"9base32Tell whether a ’ is Base32hex-encoded.Examples:isBase32Hex "ADQMS"TrueisBase32Hex "ADQMS==="TrueisBase32Hex "ADQMS=="False:base32Tell whether a ’ is a valid Base32hex format.­This will not tell you whether or not this is a correct Base32hex representation, only that it conforms to the correct shape. To check whether it is a true Base32 encoded ’ value, use 9.Examples:isValidBase32Hex "ADQMS"TrueisValidBase32Hex "ADQMS="FalseisValidBase32Hex "ADQMS%"False 23456789: 23564789:(c) 2019-2020 Emily Pillmore BSD-style$Emily Pillmore stable non-portableSafe8Yz;base32äThis data type represents the type of decoding errors of various kinds as they pertain to decoding € values. Namely, to distinguish between decoding errors from opaque unicode exceptions caught in the unicode decoding process.<base32ÖThe error associated with decoding failure as a result of the Base32 decoding process=base32ÕThe error associated with the decoding failure as a result of the conversion process>base32?base32Bbase32;<=;<= (c) 2019-2020 Emily Pillmore BSD-style$Emily Pillmore stable non-portableSafekž Cbase32 Encode a  value in Base32 with padding.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:encodeBase32 "Sun" "KN2W4==="Dbase32,Decode an arbitrarily padded Base32-encoded ¶ 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 base32 encodings are optionally padded.Note: This function makes sure that decoding is total by deferring to “À. This will always round trip for any valid Base32-encoded text value, but it may not round trip for bad inputs. The onus is on the caller to make sure inputs are valid. If unsure, defer to E' and pass in a custom decode function.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:decodeBase32 "KN2W4===" Right "Sun"decodeBase32 "KN2W4" Right "Sun"decodeBase32 "KN2W==="4Left "Base32-encoded bytestring has invalid padding"Ebase32Attempt to decode a # value as Base32, converting from  to Ë according to some encoding function. In practice, This is something like  decodeUtf8', which may produce an error.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Example: E ” ::  -> • (; UnicodeException)  Fbase32 Encode a ! value in Base32 without padding.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:encodeBase32Unpadded "Sun""KN2W4"Gbase32"Decode an unpadded Base32 encoded  value.Note: This function makes sure that decoding is total by deferring to “À. This will always round trip for any valid Base32-encoded text value, but it may not round trip for bad inputs. The onus is on the caller to make sure inputs are valid. If unsure, defer to decodeBase32WUnpaddedWith' and pass in a custom decode function.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:decodeBase32Unpadded "KN2W4" Right "Sun"decodeBase32Unpadded "KN2W4==="4Left "Base32-encoded bytestring has invalid padding"Hbase32Attempt to decode an unpadded # value as Base32, converting from  to Ë according to some encoding function. In practice, This is something like  decodeUtf8', which may produce an error.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Example: H ” ::  -> • (; UnicodeException)  Ibase32 Decode an padded Base32 encoded  valueNote: This function makes sure that decoding is total by deferring to “À. This will always round trip for any valid Base32-encoded text value, but it may not round trip for bad inputs. The onus is on the caller to make sure inputs are valid. If unsure, defer to J' and pass in a custom decode function.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:decodeBase32Padded "KN2W4===" Right "Sun"decodeBase32Padded "KN2W4"1Left "Base32-encoded bytestring requires padding"Jbase32Attempt to decode a padded # value as Base32, converting from  to Ë according to some encoding function. In practice, This is something like  decodeUtf8', which may produce an error.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Example: J ” ::  -> • (; UnicodeException)  Kbase32Tell whether a  value is Base32-encodedExamples:isBase32 "KN2W4"TrueisBase32 "KN2W4==="TrueisBase32 "KN2W4=="FalseLbase32Tell whether a  value is a valid Base32 format.ªThis will not tell you whether or not this is a correct Base32 representation, only that it conforms to the correct shape. To check whether it is a true Base32 encoded  value, use K.Examples:isValidBase32 "KN2W4"TrueisValidBase32 "KN2W4="FalseisValidBase32 "KN2W4%"FalseEbase32#convert a bytestring to text (e.g. ”)base32Input text to decodeHbase32#convert a bytestring to text (e.g. ”)base32Input text to decodeJbase32#convert a bytestring to text (e.g. ”)base32Input text to decode CDEFGHIJKL CDEFGHIJKL (c) 2019-2020 Emily Pillmore BSD-style$Emily Pillmore stable non-portableSafe~Š Mbase32 Encode a ! value in Base32hex with padding.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:encodeBase32 "Sun" "ADQMS==="Nbase32"Decode a padded Base32hex-encoded ¹ 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 base32hex encodings are optionally padded.Note: This function makes sure that decoding is total by deferring to “À. This will always round trip for any valid Base32-encoded text value, but it may not round trip for bad inputs. The onus is on the caller to make sure inputs are valid. If unsure, defer to O' and pass in a custom decode function.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:decodeBase32 "ADQMS===" Right "Sun"decodeBase32 "ADQMS" Right "Sun"decodeBase32 "ADQMS==="4Left "Base32-encoded bytestring has invalid padding"Obase32Attempt to decode a & value as Base32hex, converting from  to Ë according to some encoding function. In practice, This is something like ”, which may produce an error.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples: O ” ::  -> • (; UnicodeException)  Pbase32 Encode a Å value in Base32hex without padding. Note that for Base32hex, padding is optional. If you call this function, you will simply be encoding as Base32hex and stripping padding chars from the output.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:encodeBase32Unpadded "Sun""ADQMS"Qbase32%Decode an unpadded Base32hex encoded  value.Note: This function makes sure that decoding is total by deferring to “À. This will always round trip for any valid Base32-encoded text value, but it may not round trip for bad inputs. The onus is on the caller to make sure inputs are valid. If unsure, defer to decodeBase32WUnpaddedWith' and pass in a custom decode function.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:decodeBase32Unpadded "ADQMS" Right "Sun"decodeBase32Unpadded "ADQMS==="4Left "Base32-encoded bytestring has invalid padding"Rbase32Attempt to decode an unpadded & value as Base32hex, converting from  to Ë according to some encoding function. In practice, This is something like  decodeUtf8', which may produce an error.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Example: R ” ::  -> • (; UnicodeException)  Sbase32#Decode an padded Base32hex encoded  valueNote: This function makes sure that decoding is total by deferring to “À. This will always round trip for any valid Base32-encoded text value, but it may not round trip for bad inputs. The onus is on the caller to make sure inputs are valid. If unsure, defer to T' and pass in a custom decode function.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:decodeBase32Padded "ADQMS===" Right "Sun"decodeBase32Padded "ADQMS"1Left "Base32-encoded bytestring requires padding"Tbase32Attempt to decode a padded & value as Base32hex, converting from  to Ë according to some encoding function. In practice, This is something like ”, which may produce an error.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Example: T ” ::  -> • (; UnicodeException)  Ubase32Tell whether a  value is Base32hex-encoded.Examples:isBase32Hex "ADQMS"TrueisBase32Hex "ADQMS==="TrueisBase32Hex "ADQMS=="FalseVbase32Tell whether a # value is a valid Base32hex format.­This will not tell you whether or not this is a correct Base32hex representation, only that it conforms to the correct shape. To check whether it is a true Base32 encoded  value, use U.Examples:isValidBase32Hex "ADQMS"TrueisValidBase32Hex "ADQMS="FalseisValidBase32Hex "ADQMS%"FalseObase32#convert a bytestring to text (e.g. ”)base32Input text to decodeRbase32#convert a bytestring to text (e.g. ”)base32Input text to decodeTbase32#convert a bytestring to text (e.g. ”)base32Input text to decode MNOPQRSTUV MNOPQRSTUV (c) 2019-2020 Emily Pillmore BSD-style$Emily Pillmore stable non-portableSafe‘N Wbase32 Encode a – value in Base32 with padding.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:encodeBase32 "Sun" "KN2W4==="Xbase32,Decode an arbitrarily padded Base32-encoded –¶ 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 base32 encodings are optionally padded.Note: This function makes sure that decoding is total by deferring to —À. This will always round trip for any valid Base32-encoded text value, but it may not round trip for bad inputs. The onus is on the caller to make sure inputs are valid. If unsure, defer to Y' and pass in a custom decode function.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:decodeBase32 "KN2W4===" Right "Sun"decodeBase32 "KN2W4" Right "Sun"decodeBase32 "KN2W==="4Left "Base32-encoded bytestring has invalid padding"Ybase32Attempt to decode a lazy ‘# value as Base32, converting from ‘ to –Ë according to some encoding function. In practice, This is something like ˜, which may produce an error.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples: Y ˜ :: ‘ -> • (; UnicodeException) – Zbase32 Encode a –¼ value in Base32 without padding. Note that for Base32, padding is optional. If you call this function, you will simply be encoding as Base32 and stripping padding chars from the output.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:encodeBase32Unpadded "Sun""KN2W4"[base32"Decode an unpadded Base32 encoded – value.Note: This function makes sure that decoding is total by deferring to —À. This will always round trip for any valid Base32-encoded text value, but it may not round trip for bad inputs. The onus is on the caller to make sure inputs are valid. If unsure, defer to decodeBase32WUnpaddedWith' and pass in a custom decode function.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:decodeBase32Unpadded "KN2W4" Right "Sun"decodeBase32Unpadded "KN2W4==="4Left "Base32-encoded bytestring has invalid padding"\base32#Attempt to decode an unpadded lazy ‘# value as Base32, converting from ‘ to –Ë according to some encoding function. In practice, This is something like ˜, which may produce an error.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples: \ ˜ :: ‘ -> • (; UnicodeException) – ]base32 Decode an padded Base32 encoded – valueNote: This function makes sure that decoding is total by deferring to —À. This will always round trip for any valid Base32-encoded text value, but it may not round trip for bad inputs. The onus is on the caller to make sure inputs are valid. If unsure, defer to ^' and pass in a custom decode function.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:decodeBase32Padded "KN2W4===" Right "Sun"decodeBase32Padded "KN2W4"1Left "Base32-encoded bytestring requires padding"^base32 Attempt to decode a padded lazy ‘# value as Base32, converting from ‘ to –Ë according to some encoding function. In practice, This is something like ˜, which may produce an error.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Example: ^ ˜ :: ‘ -> • (; UnicodeException) Text _base32Tell whether a – value is Base32-encodedExamples:isBase32 "KN2W4"TrueisBase32 "KN2W4==="TrueisBase32 "KN2W4=="False`base32Tell whether a – value is a valid Base32 format.ªThis will not tell you whether or not this is a correct Base32 representation, only that it conforms to the correct shape. To check whether it is a true Base32 encoded – value, use _.Examples:isValidBase32 "KN2W4"TrueisValidBase32 "KN2W4="FalseisValidBase32 "KN2W4%"FalseYbase32#convert a bytestring to text (e.g. ˜)base32Input text to decode\base32#convert a bytestring to text (e.g. ˜)base32Input text to decode^base32#convert a bytestring to text (e.g. ˜)base32Input text to decode WXYZ[\]^_` WZXY[\]^_` (c) 2019-2020 Emily Pillmore BSD-style$Emily Pillmore stable non-portableSafe¤B abase32 Encode a –! value in Base32hex with padding.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:encodeBase32 "Sun" "ADQMS==="bbase32"Decode a padded Base32hex-encoded –¹ 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 base32hex encodings are optionally padded.Note: This function makes sure that decoding is total by deferring to —À. This will always round trip for any valid Base32-encoded text value, but it may not round trip for bad inputs. The onus is on the caller to make sure inputs are valid. If unsure, defer to c' and pass in a custom decode function.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:decodeBase32 "ADQMS===" Right "Sun"decodeBase32 "ADQMS" Right "Sun"decodeBase32 "ADQMS==="4Left "Base32-encoded bytestring has invalid padding"cbase32Attempt to decode a lazy ‘& value as Base32hex, converting from ‘ to –Ë according to some encoding function. In practice, This is something like ˜, which may produce an error.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples: c ˜ :: ‘ -> • (; UnicodeException) – dbase32 Encode a –Å value in Base32hex without padding. Note that for Base32hex, padding is optional. If you call this function, you will simply be encoding as Base32hex and stripping padding chars from the output.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:encodeBase32Unpadded "Sun""ADQMS"ebase32%Decode an unpadded Base32hex encoded – value.Note: This function makes sure that decoding is total by deferring to —À. This will always round trip for any valid Base32-encoded text value, but it may not round trip for bad inputs. The onus is on the caller to make sure inputs are valid. If unsure, defer to decodeBase32WUnpaddedWith' and pass in a custom decode function.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:decodeBase32Unpadded "ADQMS" Right "Sun"decodeBase32Unpadded "ADQMS==="4Left "Base32-encoded bytestring has invalid padding"fbase32#Attempt to decode an unpadded lazy ‘& value as Base32hex, converting from ‘ to –Ë according to some encoding function. In practice, This is something like ˜, which may produce an error.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples: f ˜ :: ‘ -> • (; UnicodeException) – gbase32#Decode an padded Base32hex encoded – valueNote: This function makes sure that decoding is total by deferring to —À. This will always round trip for any valid Base32-encoded text value, but it may not round trip for bad inputs. The onus is on the caller to make sure inputs are valid. If unsure, defer to h' and pass in a custom decode function.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:decodeBase32Padded "ADQMS===" Right "Sun"decodeBase32Padded "ADQMS"1Left "Base32-encoded bytestring requires padding"hbase32 Attempt to decode a padded lazy ‘& value as Base32hex, converting from ‘ to –Ë according to some encoding function. In practice, This is something like ˜, which may produce an error.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Example: h ˜ :: ‘ -> • (; UnicodeException) Text ibase32Tell whether a – value is Base32hex-encodedExamples:isBase32Hex "ADQMS"TrueisBase32Hex "ADQMS==="TrueisBase32Hex "ADQMS=="Falsejbase32Tell whether a –# value is a valid Base32hex format.­This will not tell you whether or not this is a correct Base32hex representation, only that it conforms to the correct shape. To check whether it is a true Base32 encoded – value, use i.Examples:isValidBase32Hex "ADQMS"TrueisValidBase32Hex "ADQMS="FalseisValidBase32Hex "ADQMS%"Falsecbase32#convert a bytestring to text (e.g. ˜)base32Input text to decodefbase32#convert a bytestring to text (e.g. ˜)base32Input text to decodehbase32#convert a bytestring to text (e.g. ˜)base32Input text to decode abcdefghij adbcefghij (c) 2019-2020 Emily Pillmore BSD-style$Emily Pillmore stable non-portable Trustworthy·€ kbase32 Encode a ™ value in Base32 with padding.See: -https://tools.ietf.org/html/rfc4328#section-6RFC-4328 section 6Examples:encodeBase32 "Sun" "KN2W4==="lbase32,Decode an arbitrarily padded Base32-encoded ™¶ 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 base32 encodings are optionally padded.Note: This function makes sure that decoding is total by deferring to À. This will always round trip for any valid Base32-encoded text value, but it may not round trip for bad inputs. The onus is on the caller to make sure inputs are valid. If unsure, defer to m' and pass in a custom decode function.See: -https://tools.ietf.org/html/rfc4328#section-6RFC-4328 section 6Examples:decodeBase32 "KN2W4===" Right "Sun"decodeBase32 "KN2W4" Right "Sun"decodeBase32 "KN2W==="4Left "Base32-encoded bytestring has invalid padding"mbase32Attempt to decode a ’# value as Base32, converting from  ByteString to ™Ë according to some encoding function. In practice, This is something like  decodeUtf8', which may produce an error.See: -https://tools.ietf.org/html/rfc4328#section-6RFC-4328 section 6Examples: m1 '(fmap fromText . T.decodeUtf8' . toText)' :: ’ -> • (; UnicodeException) ™ nbase32 Encode a ™¼ value in Base32 without padding. Note that for Base32, padding is optional. If you call this function, you will simply be encoding as Base32 and stripping padding chars from the output.See: -https://tools.ietf.org/html/rfc4328#section-6RFC-4328 section 6Examples:encodeBase32Unpadded "Sun""KN2W4"obase32"Decode an unpadded Base32 encoded ™ value.Note: This function makes sure that decoding is total by deferring to À. This will always round trip for any valid Base32-encoded text value, but it may not round trip for bad inputs. The onus is on the caller to make sure inputs are valid. If unsure, defer to p' and pass in a custom decode function.See: -https://tools.ietf.org/html/rfc4328#section-6RFC-4328 section 6Examples:decodeBase32Unpadded "KN2W4" Right "Sun"decodeBase32Unpadded "KN2W4==="4Left "Base32-encoded bytestring has invalid padding"pbase32Attempt to decode an unpadded ’# value as Base32, converting from ’ to ™Ë according to some encoding function. In practice, This is something like  decodeUtf8', which may produce an error.See: -https://tools.ietf.org/html/rfc4328#section-6RFC-4328 section 6Examples: p1 '(fmap fromText . T.decodeUtf8' . toText)' :: ’ -> • (; UnicodeException) ™ qbase32 Decode an padded Base32 encoded ™ valueNote: This function makes sure that decoding is total by deferring to À. This will always round trip for any valid Base32-encoded text value, but it may not round trip for bad inputs. The onus is on the caller to make sure inputs are valid. If unsure, defer to r' and pass in a custom decode function.See: -https://tools.ietf.org/html/rfc4328#section-6RFC-4328 section 6Examples:decodeBase32Padded "KN2W4===" Right "Sun"decodeBase32Padded "KN2W4"1Left "Base32-encoded bytestring requires padding"rbase32Attempt to decode a padded ’# value as Base32, converting from  ByteString to ™Ë according to some encoding function. In practice, This is something like  decodeUtf8', which may produce an error.See: -https://tools.ietf.org/html/rfc4328#section-6RFC-4328 section 6Examples: m1 '(fmap fromText . T.decodeUtf8' . toText)' :: ’ -> • (; UnicodeException) ™ sbase32Tell whether a ™ value is Base32-encoded.Examples:isBase32 "KN2W4"TrueisBase32 "KN2W4==="TrueisBase32 "KN2W4=="Falsetbase32Tell whether a ™ value is a valid Base32 format.ªThis will not tell you whether or not this is a correct Base32 representation, only that it conforms to the correct shape. To check whether it is a true Base32 encoded ™ value, use s.Examples:isValidBase32 "KN2W4"TrueisValidBase32 "KN2W4="FalseisValidBase32 "KN2W4%"Falsembase32#convert a bytestring to text (e.g. )base32Input text to decodepbase32#convert a bytestring to text (e.g. )base32Input text to decoderbase32#convert a bytestring to text (e.g. )base32Input text to decode klmnopqrst knlmopqrst(c) 2019-2020 Emily Pillmore BSD-style$Emily Pillmore stable non-portable TrustworthyË— ubase32 Encode a ™! value in Base32hex with padding.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:encodeBase32 "Sun" "ADQMS==="vbase32/Decode an arbitrarily padded Base32hex-encoded ™¹ 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 base32hex encodings are optionally padded.Note: This function makes sure that decoding is total by deferring to À. This will always round trip for any valid Base32-encoded text value, but it may not round trip for bad inputs. The onus is on the caller to make sure inputs are valid. If unsure, defer to w' and pass in a custom decode function.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:decodeBase32 "ADQMS===" Right "Sun"decodeBase32 "ADQMS" Right "Sun"decodeBase32 "ADQMS==="4Left "Base32-encoded bytestring has invalid padding"wbase32Attempt to decode a ’& value as Base32hex, converting from  ByteString to ™Ë according to some encoding function. In practice, This is something like  decodeUtf8', which may produce an error.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples: w '(fmap fromText . Data.Text.Encoding.decodeUtf8' . toText)' :: ’ -> • (; UnicodeException) ™ xbase32 Encode a ™Å value in Base32hex without padding. Note that for Base32hex, padding is optional. If you call this function, you will simply be encoding as Base32hex and stripping padding chars from the output.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:encodeBase32Unpadded "Sun""ADQMS"ybase32%Decode an unpadded Base32hex encoded ™ value.Note: This function makes sure that decoding is total by deferring to À. This will always round trip for any valid Base32-encoded text value, but it may not round trip for bad inputs. The onus is on the caller to make sure inputs are valid. If unsure, defer to z' and pass in a custom decode function.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:decodeBase32Unpadded "ADQMS" Right "Sun"decodeBase32Unpadded "ADQMS==="4Left "Base32-encoded bytestring has invalid padding"zbase32Attempt to decode an unpadded ’& value as Base32hex, converting from ’ to ™Ë according to some encoding function. In practice, This is something like  decodeUtf8', which may produce an error.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples: z '(fmap fromText . Data.Text.Encoding.decodeUtf8' . toText)' :: ’ -> • (; UnicodeException) ™ {base32#Decode an padded Base32hex encoded ™ valueNote: This function makes sure that decoding is total by deferring to À. This will always round trip for any valid Base32-encoded text value, but it may not round trip for bad inputs. The onus is on the caller to make sure inputs are valid. If unsure, defer to |' and pass in a custom decode function.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:decodeBase32Padded "ADQMS===" Right "Sun"decodeBase32Padded "ADQMS"1Left "Base32-encoded bytestring requires padding"|base32Attempt to decode a padded ’& value as Base32hex, converting from  ByteString to ™Ë according to some encoding function. In practice, This is something like  decodeUtf8', which may produce an error.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples: w '(fmap fromText . Data.Text.Encoding.decodeUtf8' . toText)' :: ’ -> • (; UnicodeException) ™ }base32Tell whether a ™ value is Base32hex-encoded.Examples:isBase32Hex "ADQMS"TrueisBase32Hex "ADQMS==="TrueisBase32Hex "ADQMS=="False~base32Tell whether a ™# value is a valid Base32hex format.­This will not tell you whether or not this is a correct Base32hex representation, only that it conforms to the correct shape. To check whether it is a true Base32 encoded ™ value, use }.Examples:isValidBase32Hex "ADQMS"TrueisValidBase32Hex "ADQMS="FalseisValidBase32Hex "ADQMS%"Falsewbase32ßconvert a bytestring to text (e.g. '(fmap fromText . Data.Text.Encoding.decodeUtf8' . toText)')base32Input text to decodezbase32ßconvert a bytestring to text (e.g. '(fmap fromText . Data.Text.Encoding.decodeUtf8' . toText)')base32Input text to decode|base32#convert a bytestring to text (e.g. )base32Input text to decode uvwxyz{|}~ uxvwyz{|}~š !"#$%& !"#$'( !"#$'( !"#$%& !"#$'( !"#$%&)*+,-./0  1 ! # 2 $ 3 ' (  1 ! # 2 $ 3 % &  1 ! # 2 $ 3 ' (  1 ! # 2 $ 3 % &  1 ! # 2 $ 3 ' ( 1!#2$3%&456789:;<=>?@ABCDEFGHIJKLMHNJHOPKK5QRKSMKTKTUVWØ%base32-0.2.2.0-JcHj9R2lq014Kx4Rj7EDyoData.ByteString.Base32.InternalData.ByteString.Base32.HexData.ByteString.Base32Data.ByteString.Lazy.Base32Data.ByteString.Lazy.Base32.HexData.ByteString.Short.Base32 Data.ByteString.Short.Base32.HexData.Text.Encoding.Base32.ErrorData.Text.Encoding.Base32Data.Text.Encoding.Base32.HexData.Text.Lazy.Encoding.Base32"Data.Text.Lazy.Encoding.Base32.HexData.Text.Short.Encoding.Base32#Data.Text.Short.Encoding.Base32.Hex%Data.ByteString.Base32.Internal.Utils$Data.ByteString.Base32.Internal.Tail&Data.ByteString.Base32.Internal.Tables$Data.ByteString.Base32.Internal.Loop$Data.ByteString.Base32.Internal.Head Data.Text decodeLatin1T decodeUtf8'Data.Text.Encoding encodeBase32_encodeBase32NoPad_ decodeBase32_validateBase32validateLastNPads encodeBase32 encodeBase32' decodeBase32encodeBase32UnpaddedencodeBase32Unpadded'decodeBase32UnpaddeddecodeBase32Padded isBase32HexisValidBase32HexisBase32 isValidBase32 Base32Error DecodeErrorConversionError$fNFDataBase32Error$fExceptionBase32Error$fEqBase32Error$fShowBase32Error$fGenericBase32ErrordecodeBase32WithdecodeBase32UnpaddedWithdecodeBase32PaddedWithaixbaseGHC.WordWord8writeNPlainPtrBytesreChunkNw32w64_32w64 peekWord32BE peekWord64BEloopTail loopTailNoPadstdDecodeTablehexDecodeTable innerLoop decodeLoopghc-primGHC.PrimAddr#bytestring-0.10.10.0Data.ByteString.Internal ByteString text-1.2.3.2Data.Text.InternalTextData.ByteString.Lazy.InternalData.ByteString.Short.InternalShortByteString Data.EitherEitherData.Text.Internal.LazyData.Text.Lazy.Encoding&text-short-0.1.5-Aj5kj0q5c5XWnjQA55Ke8Data.Text.Short.Internal ShortText