@e1C                 !"#$%&'()*+,-./012 3456789:; < = >?@AB None,Check that the dictionary has the specified "Type" filed !Get dictionary type, name at key "Type" NoneFont dictionary Information dictionary Pdf document page .Page tree node, contains pages or other nodes  Page tree Document catalog  PDF document It is a trailer under the hood         NoneDecrypt input stream "Decrypt object with the decryptor The default user password Standard decryptor. RC4 CDdocument trailer encryption dictionary Guser password (32 bytes exactly, see 7.6.3.3 Encryption Key Algorithm) CD None%Interface to the underlying PDF file find object by it' s reference decoded stream content  Note: the E' returned is valid only until the next  , or any other operation, that requares seek Current decryptor AGet random access input stream for direct access to the PDF file Get all stream filters !Recursively load indirect object None Convenient type alias "Basic implementation of pdf monad !0Perform action without adding objects to cache. 6 Note: the existent cache is not flushed, and is used  within the action "Remove all objects from cache #Execute PDF action with F $Execute PDF action with G %Get PDF document &&Whether the PDF document it encrypted '+Set the password to be user for decryption )Returns False when the password is wrong (.Decrypt PDF object using user password is set  HIJKLMNOPQRSTUVWXY!"#$Z%&'([ !"#$%&'( #$%"!&'( HIJKLMNOPQRSTUVWXY!"#$Z%&'([None)Get the document catalog *Document encryption dictionary +(Infornation dictionary for the document )*+)*+)*+)*+None,Get root node of page tree ,,,,None-:Total number of child leaf nodes, including deep children .Parent page node /Referencies to all kids 0!Load page tree node by reference 1Find page by it' s number =Note: it is not efficient for PDF files with a lot of pages, @ because it performs traversal through the page tree each time.  Use -, / and 0 for  efficient traversal. -./01 -./01 -./01-./01 None2Document title 2222None3Font subtypes 9Get font subtype :Load font info for the font 3456789:\]^ 3456789: 3876549:3876549:\]^ None; Rectangle =,Create rectangle form an array of 4 numbers ;<=;<=;<=;<=None>Page's parent node ?List of references to page's content streams @Media box, inheritable AFont dictionaries for the page BExtract text from the page Right now it doesn'4t even try to insert additional spaces or newlines, 9 and returns text as it is embeded. But someday it will. >?@_AB >?@AB >?@AB>?@_AB None`abcdefghijklmnopqrstuvwxyz{|}~      !"  !"#$%&'()*+,-./0123456789:;<=>?@AB#  ! " # $ % & ' ( ) *+,-./0123456789:;<= >?@ABCDEF G G HIJKLM N OPQPRSTU,VVWXYZ[\]^_`abcdefghijkSlmSnoSnpSnqSnrSlsSltSluSlvSlwSlxSlyz{|z{}z{~z{z{z{z{z{z{       !!""##$$%%&&'()*+,-./01pdf-toolbox-document-0.0.2.0Pdf.Toolbox.Document.Pdf"Pdf.Toolbox.Document.Internal.UtilPdf.Toolbox.Document.FontDict#Pdf.Toolbox.Document.Internal.TypesPdf.Toolbox.Document.PagePdf.Toolbox.Document.PageNodePdf.Toolbox.Document.CatalogPdf.Toolbox.Document.DocumentPdf.Toolbox.Document.EncryptionPdf.Toolbox.Document.MonadPdf.Toolbox.Document.InfoPdf.Toolbox.Document.TypesPdf.Toolbox.Documenttransformers-0.3.0.0Control.Monad.IO.ClassliftIOpdf-toolbox-core-0.0.2.0Pdf.Toolbox.Core.Stream knownFiltersMonadIO ensureTypedictionaryTypeFontDictInfoPagePageNodePageTree PageTreeLeaf PageTreeNodeCatalogDocument Decryptor decryptObjectdefaultUserPasswordmkStandardDecryptorMonadPdf lookupObject streamContent getDecryptorgetRISgetStreamFiltersderefPdfPdf'withoutObjectCacheflushObjectCacherunPdfrunPdfWithHandledocument isEncryptedsetUserPassworddecryptdocumentCatalogdocumentEncryption documentInfocatalogPageNode pageNodeNKidspageNodeParent pageNodeKids loadPageNodepageNodePageByNum infoTitle FontSubtype FontTrueType FontType3 FontMMType1 FontType1 FontType0fontDictSubtypefontDictLoadInfo RectanglerectangleFromArraypageParentNode pageContents pageMediaBox pageFontDictspageExtractText decryptStr decryptDictPdf.Toolbox.Core.IO.RISISRISbaseGHC.IO.Handle.TypesHandlePdfStatestRIS stFilters stLastXRefstAddToObjectCache stObjectCachestXRefStreamCache stDecryptorreadObjectForEntry getXRefStreamlookupEntryReclookupXRefEntrytakeStreamContent getLastXRef getFromCacheaddObjectToCacherunPdf'$fMonadPdfPdf'loadFontInfoCompositeloadFontInfoSimpleloadUnicodeCMapmediaBox Data.Maybe catMaybes Data.EitherpartitionEithersrightsleftseithermapMaybe listToMaybe maybeToList fromMaybe isNothingisJustmaybe either-4.0Control.Monad.Trans.Either hoistEither mapEitherT bimapEitherTrightlefteitherT runEitherTEitherTControl.Monad.Trans.Maybe liftCallCC liftCatch liftListenliftPass mapMaybeTMaybeT runMaybeT safe-0.3.3SafetailDeftailMaytailSafeinitDefinitMayinitSafeheadDefheadMaylastDeflastMay minimumDef minimumMay maximumDef maximumMay foldr1Def foldr1May foldl1Def' foldl1May' fromJustDefatDefatMayreadDefreadMay lookupJustDef findJustDef errors-1.4.3Control.Error.SaferightZjustZassertZreadZatZfoldl1Z'foldl1Zfoldr1ZmaximumZminimumZlastZheadZinitZtailZtryRighttryJust tryAsserttryReadtryAt tryFoldl1' tryFoldl1 tryFoldr1 tryMaximum tryMinimumtryLasttryHeadtryInittryTailjustErr assertErrreadErratErr foldl1Err' foldl1Err foldr1Err maximumErr minimumErrlastErrheadErrinitErrtailErrrightMay assertMayControl.Error.ScriptscriptIO runScriptScriptControl.Error.UtilsyncIOtryIOerrLnerrfmapRTfmapRisRightisLeftnothingjustmaybeT!??? hoistMaybenoteTnotehushThushrunAllEAllErunAnyEAnyE Data.EitherRflipETfmapLThandleTcatchTthrowTsucceedTflipEfmapLhandleEcatchEthrowEsucceed runEitherREitherR runEitherRTEitherRTPdf.Toolbox.Core.Object.Util mapObjecttoStreamtoArraytoReftoStrtoDicttoName toBooleantoNumber realValueintValuesetValueForKeydeleteValueForKey lookupDict' lookupDict fromObject FromObjectPdf.Toolbox.Core.ErrortryPdfIOannotatingError annotateError ParseErrorIOErrorAnnotatedErrorUnexpectedErrorPdfErrorPdfEPdf.Toolbox.Core.Object.TypesNumIntNumRealNumberBooleanNameDictArrayStrStreamRefONumberOBooleanONameODictOArrayOStrOStreamORefONullObject