Îõ³h* #uß      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmno p q r s t u v w x y z { | } ~  €  ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ  Ž   ‘ ’ “ ” • – — ˜ ™ š › œ  ž Ÿ   ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ­ ® ¯ ° ± ² ³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞ0.1.3.3 Safe-Inferredþ xml-basic%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 "..."ãIt's safe to use that for arbitrary big number strings, since we abort parsing as soon as possible. ,numberToChar (repeat '1') == Exception "..."ß xml-basicÇWe fail on too many leading zeros in order to prevent infinite loop on  repeat '0'. This function assumes that 16 * ord maxBound is always representable as Int. xml-basic±A 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. xml-basicThis list excludes apos- as Internet Explorer does not know about it. Safe-Inferredó xml-basic²A 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.     Safe-Inferred é xml-basic­We 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-Inferred Š. xml-basicÔInternet Explorer does not recognize ' and thus we have to format it literally. !"#$%&'()*+,-./0 !"#$%&'()*+,-./0 Safe-Inferred7 xml-basic*If a reference cannot be resolved then an  Exception/ constructor with an error message is returned.9 xml-basicÆIf a reference cannot be resolved then a reference string is returned.E xml-basic„Convert 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.G xml-basic…Generate XML character from Unicode character with minimal use of references. The only references used are the XML entity references ', ", &, <, >.L xml-basic…Reduce the use of references. Represent as much as possible characters as Unicode characters, that is, using the Unicode constructor.M xml-basic=try to convert a References to equivalent Unicode characters 3456789:;<=>?@ABCDHIJEFGLMNK3456789:;<=>?@ABCDHIJEFGLMNK Safe-Inferred†T xml-basic˜Convert 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.3456RS;<=>?@ABCDHIJTUGVNKWXYZ3456RS;<=>?@ABCDHIJTUGVNKWXYZ Safe-Inferredæ[\[\ Safe-Inferredbedcfghibedcfghi tagsoup@henning-thielemann.de provisionalportable Safe-Inferred…o xml-basic—Position 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.z xml-basicÓConvert the file position to a format that development environments can understand. orqpstvwuyxz orqpstvwuyxz  Safe-InferredK~ xml-basicshould be [Word8] xml-basicÖDecode encoded characters and XML references. Invalid references are silently skipped.~€~€  Safe-Inferred² xml-basic(Invalid references are silently skipped.~~  Safe-InferredÊ‚ xml-basicNeeds à+ from utility-ht in order to be as lazy as ƒ.ƒ xml-basicApply f to the first element, where p< holds. If no such element exists, append the default value deflt to the list.‚ƒ‚ƒ  Safe-Inferredë‡ xml-basicAn HTML attribute  id="name" generates  ("id","name") ’ xml-basicòEach attribute is preceded by a space, that is there is a space between adjacent attributes and one leading space.š xml-basicÜProcess specific attributes of an attribute list. The function name is inspired by Data.Map. xml-basic’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.Ÿ xml-basic+matchManyValues name [value0, value1] attrs checks whether (name, value0) or (name, value1) is contained in attrs(. The values are handled case-sensitive.$„†…‡Š‰ˆ‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§$‡Š‰ˆ‹ŒŽ‘’“„†…”•–—˜™š›œžŸ ¡¢£¤¥¦§ Safe-Inferred¡³´µ¶·¸³´µ¶·¸ Safe-Inferredß ÀÁÂÃÅÈÄÆÉÇÊË ÀÁÂÃÅÈÄÆÉÇÊË Safe-Inferred5ÐÑÐÑ Safe-Inferred-× xml-basic"Check whether a HTML tag is empty.á xml-basicSet of empty HTML tags.Ø xml-basicî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.Ü xml-basic.Extract charset from Content-Type declaration. =encodingFromContentType "text/html; charset=UTF-8" == "utf-8".The routine does not perform any syntax check.Ý xml-basicØA 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.ÀÁÂÃÅÈÄÆÉרÙÚÛÝÞÜÀÁÂÃÅÈÄÆÉרÙÚÛÝÞÜâ !"#$%&'($)*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^DFR_Y`abc@def]^g@dhijk%&ef]^g @ l m n o p q r s t u v ] ^ g w x y x z {   | @ d } ~  o €  ‚ < ƒ „ … † ‡ ˆ ‰ Š ‹ Œ  Ž  '  ‘ ’ “ ” • – — ˜ ™ š › œ  \ ] ^ g ž Ÿ@ ¡…¢£›œ\]^g|¤¥¦§¨©ª«¬™šžŸ@def]^g­®¯°±²³´µ¶·¸¹º(xml-basic-0.1.3.3-3nw57z6wm7k9Im6XEIYHHEText.XML.Basic.EntityText.HTML.Basic.EntityText.XML.Basic.NameText.XML.Basic.FormatText.XML.Basic.CharacterText.HTML.Basic.CharacterText.XML.Basic.Name.MixedCaseText.XML.Basic.Name.QualifiedText.XML.Basic.PositionText.XML.Basic.StringText.HTML.Basic.StringText.XML.Basic.UtilityText.XML.Basic.Attribute$Text.XML.Basic.ProcessingInstructionText.XML.Basic.TagText.XML.Basic.Name.LowerCaseText.HTML.Basic.Tag xml-basicName numberToChar mapNameToChar mapCharToNamelistlistInternetExploder$fMonoidUpdate$fSemigroupUpdatemapCharToNameInternetExplodermapNameToUppermapNameToLower AttributeattributeFromStringattributeToStringTag tagFromString tagToStringC fromStringtoStringmatchmatchAnyrunnlblankeqltgtslashampsharpcolon semicolonaposquotlparrparexclamquestangle stringQuotednamemany$fCList$fCCharTUnicodeCharRef EntityRef toUnicode toUnicodeGentoUnicodeOrFormattoUnicodeOrFormatGen fromUnicode fromCharRef fromEntityRef maybeUnicode maybeCharRefmaybeEntityRef isUnicode isCharRef isEntityRefisRefasciiFromUnicodeasciiFromUnicodeGenminimalRefFromUnicodeunicoderefCrefEswitchUnicodeRuns reduceRef reduceRefGen validCharRef$fCT$fShowT$fEqT asciiFromUnicodeInternetExploderisLowerisUppertoLowertoUpperCons $fAttributeT$fTagT$fOrdT namespace_local_ namespacelocalColumnRowFileNamenew initializefileNamerowcolumnupdateOnString updateOnChar toReportTextEncodeddecode decodeGen updateAppend updateAppend'unnamename_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 isInnerOfclosesmaybeMetaHTTPHeaderencodingFromContentTypemaybeMetaEncodingmaybeMetaCharset readBounded*utility-ht-0.0.17.2-HwPrvTeooEgAOHIbzvJyrpData.List.HT.PrivatebreakemptySet