úÎ+€%X0      !"#$%&'()*+,-./None1 N{A data value, which may be a subtree. The constructors are ordered by their chunk identification tag in the binary format.=A list of chunks, for either the top-level tree or a subtree.A top-level file.0;DTB string format: 4-byte length, then a string in latin-1.1;DTB string format: 4-byte length, then a string in latin-1.XAssign new sequential node IDs to each tree in a DTA, starting with the top-level tree.   None™ :Using a key to generate an infinite stream of crypt bytes.An encryption/decryption key.2ÿ The way both the new and old DTB encryption algorithms work is by using the key to generate a stream of bytes. Each of these bytes is then XOR'd with the corresponding bytes in the source file. The same algorithm is both the decryption and encryption; this is because (A xor B) xor B == A.VTake the first four bytes of the string as the key, and decrypt the rest of the file.HEncrypt a string with a key, and append the key to the encrypted string.;Decrypt an encrypted DTB file using the given crypt method.EEncrypt an unencrypted DTB file using the given crypt method and key. 1Decrypt an encrypted DTB file across two handles.!4Encrypt an unencrypted DTB files across two handles.3=The key iteration function for new DTB encryption/decryption."?The lazy infinite list of crypt bytes for new-style encryption.#?The lazy infinite list of crypt bytes for old-style encryption.  !"# #" !45678NoneDJ9BEncode a Haskell String to a list of Word8 values, in UTF8 format.:FReads a single-quoted string, by converting it to a double-quoted one.;3Reads the special format for double-quoted strings.<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a<=>A@BCDEJKLM?NOFGHIPQNone;=De ‰bvIf instead of this error, "Internal Happy error" is sometimes printed, make sure you are using Happy 1.18.7 or later.cdefghijklmf9 g9 None#ÝnvAutomatically chooses between horizontal and vertical arrangements, depending on what kind of chunks are in the tree.o7Produces a raw keyword or single-quoted string literal.$None$"&  $%&'()*+,-./& %('&*)+,-$./p       !"#$%&'()*+,-./01234567889:;<=>?     @ABCDEFGHIJIKLMLNOPQRSTUVWXYZZ[\]]^^_`adtab-1.1-5gKSzdfdfdLQLQJNvNdn0Data.DTAData.DTA.Crypt Data.DTA.Base Data.DTA.LexData.DTA.ParseData.DTA.PrettyPrintChunkIntFloatVarKey UnhandledIfDefElseEndIfParensBracesStringBracketsDefineIncludeMergeIfNDefTreenodeID treeChunksDTAbyteZerotopTree renumberFromCryptdecryptencrypt decryptFile encryptFile decryptHandle encryptHandlenewCryptoldCryptsToDTAlFromDTBlToDTBfromDTBhFromDTBtoDTBhToDTBsFromDTAhFromDTAfromDTAhToDTAtoDTA putLenStr getLenStrcrypt dtbXor360 CryptTableidx1idx2table utf8EncodereadKey readStringTokenLParenRParenLBraceRBraceLBracketRBracketAlexPosnAlexPnscanAlexAcc AlexAccNone AlexAccSkip AlexLastAccAlexNone AlexLastSkip AlexReturnAlexEOF AlexErrorAlexSkip AlexTokenAlexAddrAlexA# parseErrorparse HappyAddrHappyA#HappyStk Happy_IntList HappyCons HappyIdentity HappyAbsSynppTreeppKey