k1^      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn o p q r s t u v w x y z { | } ~  SafeNeeds + from utility-ht in order to be as lazy as .Apply f to the first element, where p< holds. If no such element exists, append the default value deflt to the list.tagsoup@henning-thielemann.de provisionalportableSafePosition in a file consisting of file name, row and column coordinates. Upper left is (0,0), but show routines can display this with different offsets. SConvert the file position to a format that development environments can understand.      SafeWe need to distinguish between tag names and attribute names, because DOCTYPE as tag name must be written upper case, whereas as attribute name it may be written either way.   Safe   Safe #$%&'()*+,#$%&'()* #$%&'()*,+#$%&'()*+,Safe1%Lookup a numeric entity, the leading '#' must have already been removed.  numberToChar "65" == Success 'A' numberToChar "x41" == Success 'A' numberToChar "x4E" === Success 'N' numberToChar "x4e" === Success 'N' numberToChar "Haskell" == Exception "..." numberToChar "" == Exception "..." numberToChar "89439085908539082" == Exception "..."cIt's safe to use that for arbitrary big number strings, since we abort parsing as soon as possible. ,numberToChar (repeat '1') == Exception "...">We fail on leading zeros in order to prevent infinite loop on repeat '0'. This function assumes that 16 * ord maxBound is always representable as Int.4A table mapping XML entity names to code points. Although entity references can in principle represent more than one character, the standard entities only contain one character.5This list excludes apos- as Internet Explorer does not know about it. 0123456012345045231 0123456SafeJTInternet Explorer does not recognize &apos; and thus we have to format it literally.789:;<=>?@ABCDEFGHIJKLMN789:;<=>?@ABCDEFGHIJKL78NM9:;<=>?@ABCDEFGHIJKL789:;<=>?@ABCDEFGHIJKLMNSafeS*If a reference cannot be resolved then an  Exception/ constructor with an error message is returned.UFIf a reference cannot be resolved then a reference string is returned.aConvert unicode character to XML Char, where Unicode constructor is only used for ASCII characters. This is achieved by the following decision: If there is a entity reference, use this. If it is ASCII, represent it as Char. Otherwise use a character reference.cGenerate XML character from Unicode character with minimal use of references. The only references used are the XML entity references &apos;, &quot;, &amp;, &lt;, &gt;.hReduce the use of references. Represent as much as possible characters as Unicode characters, that is, using the Unicode constructor.i=try to convert a References to equivalent Unicode characters OPQRSTUVWXYZ[\]^_`abcdefghijklOPQRSTUVWXYZ[\]^_`abcdefghijOPQRSTUVWXYZ[\]^_`defabchijgOPQRSTUVWXYZ[\]^_`abcdefghijkl Safenshould be [Word8]oVDecode encoded characters and XML references. Invalid references are silently skipped.nopnopnopnop SafetAn HTML attribute  id="name" generates  ("id","name") rEach attribute is preceded by a space, that is there is a space between adjacent attributes and one leading space.\Process specific attributes of an attribute list. The function name is inspired by Data.Map.Insert an attribute into an attribute list. If an attribute with the same name is already present, then the value of this attribute is changed to f newValue oldValue-. The function name is analogous to Data.Map.+matchManyValues name [value0, value1] attrs checks whether (name, value0) or (name, value1) is contained in attrs(. The values are handled case-sensitive.+qrstuvwxyz{|}~$qrstuvwxyz{|}~+tuvwxyz{|}~qrs&qrstuvwxyz{|}~ Safe   Safe  SafeSafe"Check whether a HTML tag is empty.Set of empty HTML tags.Some tags, namely those for text styles like FONT, B, I, are used quite sloppily. That is, they are not terminated or not terminated in the right order. We close them implicitly, if another tag closes and ignore non-matching closing tags..Extract charset from Content-Type declaration. =encodingFromContentType "text/html; charset=UTF-8" == "utf-8".The routine does not perform any syntax check.XA simple routine that does not check for valid syntax of the Content-Type specification."In future we might use a distinct Encoding type instead of plain String.SafeA table mapping HTML entity names to code points. Although entity references can in principle represent more than one character, the standard entities only contain one character. 1 1 SafeConvert unicode character to XML Char. If there is a named reference, use this. If it is ASCII, represent it as Char. Otherwise use a numeric reference. OPQRWXYZ[\]^_`cdefgjOPQRWXYZ[\]^_`defcjg Safe(Invalid references are silently skipped.nn !"#$%&'()*+,-./0 !".1234*+/0 !"56789:;)<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn ! o p q 5 5 r  . s t u  v w x O y z { | } ~  , n ! "    { n ! " 5 5 r  . / 0 ! "5789:VXdkp.v&xml-basic-0.1.2-3CYARWYlIwz6gHov5WPLriText.XML.Basic.UtilityText.XML.Basic.PositionText.XML.Basic.NameText.XML.Basic.Name.MixedCaseText.XML.Basic.Name.QualifiedText.XML.Basic.EntityText.XML.Basic.FormatText.XML.Basic.CharacterText.XML.Basic.StringText.XML.Basic.Attribute$Text.XML.Basic.ProcessingInstructionText.XML.Basic.TagText.XML.Basic.Name.LowerCaseText.HTML.Basic.TagText.HTML.Basic.EntityText.HTML.Basic.CharacterText.HTML.Basic.String updateAppend updateAppend'TColumnRowFileNamenew initializefileNamerowcolumnupdateOnString updateOnChar toReportText$fShowT$fEqT$fOrdT AttributeattributeFromStringattributeToStringTag tagFromString tagToStringC fromStringtoStringmatchmatchAnyCons $fAttributeT$fTagT namespace_local_ namespacelocalName numberToChar mapNameToChar mapCharToNamelistlistInternetExploder$fMonoidUpdaterunnlblankeqltgtslashampsharpcolon semicolonaposquotlparrparexclamquestangle stringQuotednamemany$fC[]$fCCharUnicodeCharRef EntityRef toUnicode toUnicodeGentoUnicodeOrFormattoUnicodeOrFormatGen fromUnicode fromCharRef fromEntityRef maybeUnicode maybeCharRefmaybeEntityRef isUnicode isCharRef isEntityRefisRefasciiFromUnicodeasciiFromUnicodeGenminimalRefFromUnicodeunicoderefCrefEswitchUnicodeRuns reduceRef reduceRefGen validCharRef$fCTEncodeddecode decodeGenunnamename_value_conslifttoPairfromPairvalueformatListBlankHeadmapName versionName encodingName versionStringencodingString mapValues mapValuesAadjustOn adjustOnAinsert insertWith matchAnyValuelookup lookupLitanyanyNameanyValueanyLit anyNameLit anyValueLit$fCName $fShowName$fTraversableT $fFoldableT $fFunctorT$fEqName $fOrdNameKnownUnknown mapAttributesmapAttributesAdoctypecdata doctypeName cdataNamexmlName doctypeString cdataString xmlStringmaybeXMLEncodingisEmptyisSloppy isInnerOfclosesmaybeMetaHTTPHeaderencodingFromContentTypemaybeMetaEncodingmaybeMetaCharsetmapCharToNameInternetExplodermapNameToUppermapNameToLower asciiFromUnicodeInternetExploderisLowerisUppertoLowertoUpper(utility-ht-0.0.14-24xG04xbcZ3HPMjtp2taYTData.List.HT.Privatebreak fileName_row_column_ readBoundedUpdate evalUpdateemptySet sloppySetinnerMap closesMapnameMapnameSet nameSinglepSetdtdSetthdSetthdrSetliSet headingSetupperLowerPairslistAdditional