!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Safe-Inferred+NEncryption methods.Unknown algorithm.Traditional PKWARE encryption.Not encrypted.Compression methods.PPMd version I, Rev 1.WavPack compressed data.IBM LZ77 z Architecture (PFS). !Compressed using IBM TERSE (new).  LZMA (EFS) !Compressed using BZIP2 algorithm. PKWARE imploding.  Deflate64. Deflated. Imploded.Reduced with factor 4Reduced with factor 3Reduced with factor 2Reduced with factor 1Shrunk.Stored (uncompressed).Better of deflate or store.libzip error codes.Wrong password provided.No password provided.Read-only archive. Encryption method not supported.Entry has been deleted.Can't remove file.Zip archive inconsistent.Internal error. Not a zip archive.!Invalid argument."Premature EOF.#!Compression method not supported.$Entry has been changed.% Malloc error.& Zlib error.'!Failure to create temporary file.(Can't open file.)File already exists.* No such file.+"Containing zip archive was closed., CRC error.- Write error.. Read error./ Seek error.0Closing zip archive failed.1Renaming temporary file failed.2&Multi-disk zip archives not supported.3 No error.4libzip- flags for compression and encryption sources7libzip archive global flags::Flags for accessing files in the archive. Please consult libzip documentation about their use.;2When adding files: if file name exists, overwrite.<String is CP437 encoded.=String is UTF-8 encoded.>In central directory.?In local header.@Follow specification strictly.AGet unmodified string.B Guess string encoding (default).C-Read encrypted data (implies FileCOMPRESSED).DForce recompression of data.E'Read the original data, ignore changes.FRead the compressed data.GIgnore directory component.HIgnore case on name lookup.IFlags for opening an archive.J.If archive exists, ignore its current content.K1Check archive's consistency and error on failure.L$Error if the archive already exists.M'Create an archive if it does not exist.N2File statistics expressed in native Haskell types.ZHHandler of data source for new files in the zip archive. Constructors:  sourceBuffer,  sourceFile,  sourceZip,  sourcePure.[+Handler of an open file in the zip archive.\Handler of the open zip file.]Convert marshalled stat record.g  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^^  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^^\[ZNOPQRSTUVWXY]IMLKJ:HGFEDCBA@?>=<;7984653210/.-,+*)('&%$#"!  ^ 3210/.-,+*)('&%$#"! 465798:HGFEDCBA@?>=<;IMLKJN OPQRSTUVWXYZ[\]^ Safe-Inferred_ Wrapper to catch library errors.___ Safe-Inferred7`:Wrapper for a user-provided pure function to be used with ). Data size should be known in advance (c3). The function should support reading by chunks (e).bInitial state of the source.cTotal size of the data.d,Modification time (current time if Nothing).e!Read a chunk of the data, return JustR the size of data read, the data themselves and the new state of the source, or Nothing on error.f<Monadic computation to read from open archive entries. See  and .g,Monadic computation with a zip archive. See h.h8Top-level wrapper for operations with an open archive. h> opens and closes the file automatically. On error it throws .iBTop-level wrapper for operations with an open encrypted archive. i> opens and closes the file automatically. On error it throws .j)Get the number of entries in the archive.k1Get name of an entry in the archive by its index.l;Locate an entry (get its index) in the archive by its name.m@Get names of all entries (files and directories) in the archive.n"Get size of a file in the archive.o-Get size of a file in the archive (by index).p,Get information about a file in the archive.q7Get information about a file in the archive (by index).rDelete file from the archive.s<Delete file (referenced by position index) from the archive.tRename file in the archive.u:Rename file (referenced by position index) in the archive.vAdd a file to the archive.xAdd a directory to the archive.yAdd a directory to the archive.zReplace a file in the archive.{1Set compression method for a file in the archive.|1Set compression method for a file in the archive.}=Replace a file in the archive (referenced by position index).~2Create a data source. Note: input is converted to [Word8] internally.!Create a data source from a file.4Create a data source from a file in the zip archive.Create a data source from a `. Note: input of [a] is converted to [Word8] internally.Get zip archive comment.Set zip archive comment.Remove zip archive comment.&Get comment for a file in the archive.EGet comment for a file in the archive (referenced by position index).&Set comment for a file in the archive.ESet comment for a file in the archive (referenced by position index).)Remove comment for a file in the archive.HRemove comment for a file in the archive (referenced by position index).&Undo changes to a file in the archive.EUndo changes to a file in the archive (referenced by position index).]Undo global changes to zip archive (revert changes to the archive comment and global flags)."Undo all changes in a zip archive.3Wrapper for operations with a file in the archive. $ is normally called from within an g action (see also h).  can be replaced with ! to read an entire file at once.\Wrapper for operations with a file in the archive. File is referenced by index (position). $ is normally called from within an g action (see also h).  can be replaced with  to read an entire file at once. Read at most n bytes from the file.Skip nA bytes from the open file. Note: this is not faster than reading.Read entire file contents.Read entire file. Shortcut for  from within g monad.?Read entire file (referenced by position index). Shortcut for  from within g monad.Get archive handler. Throw ! if the archive is closed.Get and throw a - if condition fails. Otherwise work normally.Get and throw a  if condition fails. See also .;`abcdefgh$Checks for consistency or existence.Filename of the zip archive.Action to do with the archive.i$Checks for consistency or existence.Encryption password.Filename of the zip archive.Action to don with the archive.jEA can be used to return the original unchanged number of entries.kE= flag can be used to return the original unchanged filename.(Position index of a file in the archive. Name of the file in the archive.lFilename lookup mode. H4: ignore case distinctions (only for ASCII). G2: ignore directory part of the file name. A[: compare against unmodified names as it is in the ZIP archive. B: (default) guess encoding of the name in the ZIP archive and convert it to UTF-8, if necessary. @: follow the ZIP specification and expect CP-437 encoded names in the ZIP archive (except if they are explicitly marked as UTF-8). Convert it to UTF-8 before comparing. Name of the file in the archive. position index if found.mE flag is accepted.nFilename lookup mode, E can be used. Name of the file in the archive. File size.oE is accepted.(Position index of a file in the archive. File size.pFilename lookup mode, E can be used. Name of the file in the archive.Infomation about the file.qE can be used.(Position index of a file in the archive.Information about the file.rFilename lookup mode (see l). Filename.s(Position index of a file in the archive.tFilename lookup mode (see l). Old name. New name.u(Position index of a file in the archive. New name.Name encoding flags. B): guess encoding of the name (default). =: interpret name as UTF-8. <: interpret name as CP-437.vName of the file to create.(Source where file data is obtained from.Position index of the new file.wCan be a combination of ;) and/or one of filename encoding flags: B (default), =, <.Name of the file to create.(Source where file data is obtained from.Position index of the new file.x Directory's name in the archive.*Position index of the new directory entry.yBCan be one of filename encoding flags: 'FileENC_GUESS (default), =, <. Directory's name in the archive.*Position index of the new directory entry.zFilename lookup mode (see l).File to replace.0Source where the new file data is obtained from.{Filename lookup mode (see l). Filename.NCompression method. As of libzip 0.11, the following methods are supported: , , .|(Position index of a file in the archive.NCompression method. As of libzip 0.11, the following methods are supported: , , .}(Position index of a file in the archive./Source where the new file data is obtained from~ File to open.&Offset from the beginning of the file. The number of bytes to read. If 0 or -1!, the read till the end of file.E and D can be used.Source archive./Position index of a file in the source archive.&Offset from the beginning of the file. The number of bytes to read. If 0 or -1", then read till the end of file.Can be a combination of E and/or one of B (default), @ (CP-437).Comment message.Filename lookup mode (see l).FilenameComment lookup flags. E-: return the original unchanged comment. A1: return the unmodified commment as it is. Bn: (default) guess the encoding of the comment and convert it to UTF-8, if necessary. @: follow the ZIP specification for file names and extend it to file comments, expect them to be encoded in CP-437. Convert it to UTF-8.Position index of the file.Filename lookup mode (see l). Filename.New file comment.(Position index of a file in the archive.New file comment.Comment encoding flags. B,: guess encoding of the comment (default). =: interpret comment as UTF-8. <: interpret comment as CP-437.Filename lookup mode (see l). Filename.(Position index of a file in the archive.Filename lookup mode (see l). Filename.(Position index of a file in the archive.Filename lookup mode, F and E can be used.Name of the file in the arhive.Action with the file.F and E can be used.(Position index of a file in the archive.Action with the file.The number of bytes to read. Bytes read.Contents of the file.  !"#$%&'()*+,-./0123:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXY_`abcdefghijklmnopqrstuvwxyz{|}~gfNOPQRSTUVWXYhijklmnopqrstuvwxyz}{|~`abcdeIMLKJ:HGFEDCBA@?>=<; 3210/.-,+*)('&%$#"! _6`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTTUVWXYZ[\]^_`abcdeefghijklmnopqrstuvwxyz{|}~ LibZip-0.11.1Codec.Archive.LibZipCodec.Archive.LibZip.TypesCodec.Archive.LibZip.Errorstransformers-0.4.1.0Control.Monad.Trans.ClassliftZipEncryptionMethodEncryptUNKNOWNEncryptTRAD_PKWARE EncryptNONE ZipCompMethodCompPPMD CompWAVPACKCompLZ77 CompTERSECompLZMA CompBZIP2CompPKWARE_IMPLODE CompDEFLATE64 CompDEFLATE CompIMPLODE CompREDUCE_4 CompREDUCE_3 CompREDUCE_2 CompREDUCE_1 CompSHRINK CompSTORE CompDEFAULTZipErrorErrWRONGPASSWD ErrNOPASSWD ErrRDONLYErrENCRNOTSUPP ErrDELETED ErrREMOVE ErrINCONS ErrINTERNALErrNOZIPErrINVALErrEOFErrCOMPNOTSUPP ErrCHANGED ErrMEMORYErrZLIB ErrTMPOPENErrOPEN ErrEXISTSErrNOENT ErrZIPCLOSEDErrCRCErrWRITEErrREADErrSEEKErrCLOSE ErrRENAME ErrMULTIDISKErrOK CodecFlag CodecDECODE CodecENCODE ArchiveFlag ArchiveRDONLYArchiveTORRENTFileFlag FileOVERWRITE FileENC_CP437 FileENC_UTF_8 FileCENTRAL FileLOCALFileENC_STRICT FileENC_RAW FileENC_GUESS FileENCRYPTEDFileRECOMPRESS FileUNCHANGEDFileCOMPRESSED FileNODIR FileNOCASEOpenFlag TruncateFlag CheckConsFlagExclFlag CreateFlagZipStatzs'validzs'namezs'indexzs'size zs'comp_sizezs'mtimezs'crczs'comp_methodzs'encryption_methodzs'flags ZipSourceZipFileZip toZipStatcombine catchZipError PureSourcesrcStatesrcSizesrcMTimereadSrcEntryArchive withArchivewithEncryptedArchivenumFilesfileName nameLocate fileNamesfileSize fileSizeIxfileStat fileStatIx deleteFile deleteFileIx renameFile renameFileIxaddFileaddFileWithFlags addDirectoryaddDirectoryWithFlags replaceFilesetFileCompressionsetFileCompressionIx replaceFileIx sourceBuffer sourceFile sourceZip sourcePure getComment setComment removeCommentgetFileCommentgetFileCommentIxsetFileCommentsetFileCommentIxremoveFileCommentremoveFileCommentIx unchangeFileunchangeFileIxunchangeArchive unchangeAllfromFile fromFileIx readBytes skipBytes readContents fileContentsfileContentsIxgetZip$fEnumZipEncryptionMethod$fEnumZipCompMethod$fShowZipError$fExceptionZipError$fEnumZipError$fEnumCodecFlag$fEnumArchiveFlag$fEnumFileFlag$fEnumOpenFlag errFromCInt get_errorget_file_errordoIfdoIf'withOpenArchivebase Data.MaybeJust runPureSource