h$m      !"#$%&'()*+, - . / 0 1 23456789:;<=>?@ABCDEFG  Safe-InferredUHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ None<None pdf-toolbox-document8Check that the dictionary has the specified "Type" filedpdf-toolbox-document'Get dictionary type, name at key "Type"Nonepdf-toolbox-documentFont dictionarypdf-toolbox-document Page tree pdf-toolbox-documentPdf document page pdf-toolbox-document-Page tree node, contains pages or other nodespdf-toolbox-documentInformation dictionarypdf-toolbox-documentDocument catalogpdf-toolbox-document PDF documentIt is a trailer under the hood   None 3 pdf-toolbox-documentFile is enctyptedpdf-toolbox-document#Make Pdf with interface to pdf filepdf-toolbox-documentMake Pdf with seekable handlepdf-toolbox-documentMake Pdf from a ByteStringpdf-toolbox-documentGet PDF documentpdf-toolbox-documentFind object by it's referencepdf-toolbox-documentCache object for future lookupspdf-toolbox-document%Don't cache object for future lookups pdf-toolbox-document)Get stream content, decoded and decrypted7Note: length of the content may differ from the raw one!pdf-toolbox-document&Get stream content without decoding it"pdf-toolbox-document%Whether the PDF document it encrypted#pdf-toolbox-document*Set the password to be user for decryption(Returns False when the password is wrong !"#$ !$"#None 'pdf-toolbox-document9Total number of child leaf nodes, including deep children(pdf-toolbox-documentParent page node)pdf-toolbox-documentReferencies to all kids*pdf-toolbox-document Load page tree node by reference+pdf-toolbox-documentFind page by it's numberNote: it is not efficient for PDF files with a lot of pages, because it performs traversal through the page tree each time. Use ', ) and * for efficient traversal.  '()*+  '()*+ None ,pdf-toolbox-documentDocument title-pdf-toolbox-document/The name of the person who created the document.pdf-toolbox-documentThe subject of the document/pdf-toolbox-document%Keywords associated with the document0pdf-toolbox-document>The name of the application that created the original document1pdf-toolbox-documentThe name of the application that converted the document to PDF format,-./01,-./01None 2pdf-toolbox-document Font subtypes8pdf-toolbox-documentGet font subtype9pdf-toolbox-documentLoad font info for the font 23456789 23456789None !<pdf-toolbox-documentPage's parent node=pdf-toolbox-document,List of references to page's content streams>pdf-toolbox-documentMedia box, inheritable?pdf-toolbox-documentFont dictionaries for the page@pdf-toolbox-documentExtract text from the pageIt tries to add spaces between chars if they don't present as actual characters in content stream.Bpdf-toolbox-document9Convert glyphs to text, trying to add spaces and newlinesIt takes list of spans. Each span is a list of glyphs that are outputed in one shot. So we don't need to add space inside span, only between them. <=>?@AB <=>?@ABNone Dpdf-toolbox-documentGet the document catalogEpdf-toolbox-document'Infornation dictionary for the documentFpdf-toolbox-documentDocument encryption dictionaryDEFDEFNone XGpdf-toolbox-documentGet root node of page treeGG Noney:  !"#$'()*+,-./0127653489<=>?@ABDEFG  !"#$%&'()*+,-./012 3 4 5 6 7 89:;<=>?@ABCDEFGHIJKLMNOPQRSTOUVOUWOXYOZ[OZ\OP]OP^OP_O`aO`bOcdOceOcfOcgOchOciOcjOckOclOcmOcnOcoRpqRprRpsOtuOtvOtwOtxOtyOtzOt{Ot|Ot}Ot~OtOtOtOtOtOtOtOtOtO`O`O`O`O`O`O`O`O`O`O`O`OPOPOPOPOPOPOPOOOOOOOORpRpRpRpRpRpRpRpOOOO`O`OtOtOtOtOtOtOtOtOtOtOtOtOtOtOtO`O`O`O`O`O`OOOOOOOPOPOPOPOPOOOOOOOOOOOOOOOOOOOPOPOPOPOPOPRRRRRRROOORRRRO`RROOOOOPOXOXOXOXOXOXOXOXOXOXOXOXOOOOOOOOOOOOOOOOOOOOOOO`O`O`O`O`O`OOOOOOUOUOUOUOUOUOUOUOUOUOUOUOUOUOUOUOUOUOUOUOUOUOUOUOUOUOUOOOZOZOOPOPOPOPOPOPOPOPOOORpRpRp   0pdf-toolbox-document-0.1.1-YM7woUVmw2DH0Nz9MbAlGPdf.Document.PdfPdf.Document.Internal.UtilPdf.Document.FontDictPdf.Document.Internal.TypesPdf.Document.PageNodePdf.Document.PagePdf.Document.CatalogPdf.Document.DocumentPdf.Document.InfoPreludePdf.Document.Types Pdf.Document-pdf-toolbox-core-0.1.1-68X4lxO7mmt8EvghRJR1A6Pdf.Core.EncryptiondefaultUserPassword ensureTypedictionaryTypedecodeTextStringThrowdecodeTextStringFontDictPageTree PageTreeNode PageTreeLeafPagePageNodeInfoCatalogDocumentPdfEncryptedError withPdfFilefromFile fromHandle fromBytesdocument lookupObject enableCache disableCache streamContentrawStreamContent isEncryptedsetUserPasswordderef$fExceptionEncryptedError$fShowEncryptedError pageNodeNKidspageNodeParent pageNodeKids loadPageNodepageNodePageByNum infoTitle infoAuthor infoSubject infoKeywords infoCreator infoProducer FontSubtype FontType0 FontType1 FontMMType1 FontType3 FontTrueTypefontDictSubtypefontDictLoadInfo$fShowFontSubtype$fEqFontSubtypepageParentNode pageContents pageMediaBox pageFontDictspageExtractTextpageExtractGlyphs glyphsToText $fShowXObjectdocumentCatalog documentInfodocumentEncryptioncatalogPageNodebaseGHC.Base++ghc-primGHC.PrimseqGHC.Listfilterzip System.IOprint Data.Tuplefstsnd otherwisemap$GHC.Real fromIntegral realToFracGHC.EnumBoundedminBoundmaxBoundEnumpredsucctoEnumfromEnum enumFromToenumFromThenToenumFrom enumFromThen GHC.ClassesEq==/= GHC.FloatFloatingatanhacoshasinhtanhcoshsinhatanacosasintancossinlogBase**sqrtlogpiexp Fractionalrecip fromRational/IntegraldivModquotRemmoddivrem toIntegerquotMonadreturn>>=>>Functorfmap<$GHC.NumNumsignumabs fromIntegernegate-+*Ord<<=>maxmin>=compareGHC.ReadRead readsPrecreadListReal toRational RealFloatatan2isIEEEisNegativeZeroisDenormalized isInfiniteisNaN scaleFloat significandexponent encodeFloat decodeFloat floatRange floatRadix floatDigitsRealFracfloorceilingroundproperFractiontruncateGHC.ShowShowshowListshow showsPrecControl.Monad.Fail MonadFailfail Applicative<**>pure<*> Data.FoldableFoldableelemminimummaximumfoldr1productsumfoldl1nullfoldlfoldMapfoldrlengthData.Traversable Traversablesequence sequenceAtraversemapM Semigroup<>Monoidmconcatmemptymappend GHC.TypesBoolFalseTrueCharDoubleFloatIntinteger-wired-inGHC.Integer.TypeInteger GHC.MaybeMaybeNothingJustOrderingGTLTEQRationalIOWord Data.EitherEitherLeftRight Text.ReadreadStringreadIOreadLn appendFile writeFilereadFileinteract getContentsgetLinegetCharputStrLnputStrputCharGHC.IO.ExceptionioErrorGHC.IOFilePath userErrorIOErrornotElemallanyorand concatMapconcat sequence_mapM_ Data.OldListunwordswordsunlineslinesreadseitherlex readParenText.ParserCombinators.ReadPReadSlcmgcd^^^oddeven showParen showStringshowCharshowsShowSunzip3unzipzipWith3zipWithzip3!!lookupreversebreakspansplitAtdroptake dropWhile takeWhilecycle replicaterepeatiteratescanr1scanrscanl1scanlinitlasttailhead Data.Maybemaybe Data.Functor<$>uncurrycurrysubtractasTypeOfuntil$!flip.constid=<<GHC.Err undefinederrorWithoutStackTraceerror&&||notPdf.Core.TypesrectangleFromArray Rectangle