DQ?@ABCDEFGHIJKLM N O P  Safe-InferredQOpaque data necessary for relation between text after preprocessing and original =Convert error position to original text before preprocessing JPreprocessing of LDIF file, concat wrapped lines and remove comment lines QRemove Comment Lines RFUnwrap lines, lines with space at begin is continue of previous line STUVWXYZ[\]^_`aQR S VUTWXWXWXY]Z^^[\_`aQR Safe-Inferred!Chars with special meaning in DN @Chars necessary to be escaped in DN when they are part of value  Safe-Inferred#Represents Distinguished Name (DN) BRepresents ChangeModify operations upon one entry within given DN 2Represents one LDAP operation within changes LDIF BRepresents one change record within LDIF file with DN and content @Represents one data record within LDIF file with DN and content ERepresents LDIF structure, it can be either simply LDIF data dump or $ changes LDIF with LDAP operations Enumeration LDIF Types +LDIF with both Content and Changes Records !LDIF with Changes Records "LDIF with Content Records #Pair of Atribute and Value $?Attribute value is either case sensitive or insensitive string (*Attribute name is case-insensitive string +&Check if LDIFRecord is Content Record ,%Check if LDIFRecord is Change Record -=Dettect from LDIF content the Type (Content, Changes, Mixed) bOrd Instance for DN /  !"#$%&'()*+,-bcdefg)  !"#$%&'()*+,-/ "! ()*$&%''#+,- "! #$&%''()*+,-bcdefg Safe-Inferred.LDIF Parser configuration /Parse as Case Sensitive LDIF 0Type of LDIF expected 2ADefault configuration for parser (Any LDIF Type, Case Sensitive) 3Parse LDIF content 4Parse LDIF file 5 Parse DN hParsec ldif parser !./012345hijklmnopqrstuvwxyz{|}~ ./012345 3452./01./012345hijklmnopqrstuvwxyz{|}~ Safe-Inferred6Serialize LDIF in LDIF Format 7'Serialize version to LDIF Format Lines 8Serialize DN to LDIF Format 9(Serialize Content Record in LDIF Format 6789678967896789 Safe-Inferred< Find all Contents with given DN =!Find first Content with given DN >1Find fist Attribute within attributes pairs list ?5Filter Attribute Value list according Attribute name @!Change record without any impact F"Check if the dn1 is prefix of dn2 H"Make LDIF Values case-insensitive :;<=>?@ABCDEFGH:;<=>?@ABCDEFGH:;<=>?@ABCDEFGH:;<=>?@ABCDEFGH Safe-InferredI1Calculate Change LDIF between two LDIF contents. ? If there is not difference the empty change list is returned. J.Calculate difference between two LDIF Records KGCompare two LDIFs and provide list of the Records for each input LDIF, 7 which are different or not present in the other LDIF. IJKIJKIJKIJK Safe-InferredLSApply operations in second LDIF on content of first LDIF. The destination LDIF has  to be Content LDIF. Apply one LDIF Content/1Change Record into LDIF and produce Changed LDIF Apply one LDIF Change (adddel(modf) for given DN within LDIF Content !Apply Attribute Modification (AddDel<Replace) to ContentRecord and produce changed ContentRecord LLLL  Safe-InferredM Flatten Tree of Records to LDIF NKConvert LDIF to Tree of Records using their DNs. Can insert dummy parents. O)Sort recursively children Records by DNs MNOMNONMOMNO  Safe-Inferred0Warning message when undo can not be calculated PCalculate undo LDIF -Calculate undo Record with possible warnings 2Calculate undo Modification with possible warning PPPP  Safe-InferredM  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOP   !"#$%&&'()*+,-./.011234566789:;<=>?@ABCDEFGHIJKLMNOPQRS T U V WXYZ[\Z]^_`abcdefghijklmnopqrstuvwxyz{|}~  ldif-0.0.13Text.LDIF.PreprocText.LDIF.ConstsText.LDIF.TypesText.LDIF.ParserText.LDIF.PrinterText.LDIF.UtilsText.LDIF.DiffText.LDIF.ApplyText.LDIF.TreeText.LDIF.Undo Text.LDIFPosTable transposePospreprocspecialDNCharsescapedDNCharsDN dnAttrValsModify ModReplace ModDeleteModAddmodAttr modAttrValsChange ChangeModDN ChangeModifychMods ChangeDelete ChangeAdd chAttrVals LDIFRecord ChangeRecordchOp ContentRecordreDN coAttrValsLDIF lcVersion lcEntriesLDIFType LDIFMixedTypeLDIFChangesTypeLDIFContentType AttrValueValueValueIaVal AttributeaNameisContentRecordisChangeRecord getLDIFTypeLDIFParserConfiglpExpectedTypelpCaseSensitivedefaulLDIFConf parseLDIFStr parseLDIFFile parseDNStrldif2strver2strdn2str record2str LDIFCachecreateLookupTablefindRecordsByDNfindRecordByDN lookupAttr filterAttr isDummyRecordleafOfDNrootOfDN lengthOfDN getDNValue takeDNPrefix isDNPrefixOfisParentRecordOf ldif2ldifIdiffLDIF diffRecord compareLDIF applyLDIFfromTreetoTreesortTreeByNameundoLDIF stripCommentsunwrapLdifLine LdifComment LdifLineContllNumllStrPosOp PosOpWrappsWpsWP PosOpAddLinepsLinecalcPos specLines tokenizeLines$fOrdDN$fShowLDIFType $fOrdValue $fEqValue$fOrdAttribute $fEqAttributepLdifpRec pChangeAdd pChangeDel pChangeMod pChangeModDNpRDNpDN pAttrEqValue pAttrValueDNpModSpecmkModpModTypepAttributeDescriptionpAttributeType pAttrValSpecpURL pSafeString pSafeString' pBase64StringpFILLpSEPpSEPspSEPs1mkVal attrVals2Ln attrVal2Lnmods2Ln diffLDIF'applyRecord2LDIFapplyChange2RecordapplyMod2RecordaddFakeParents rootEntry fromRecordsWarning undoRecordundoModwrnAwrnO