packages feed

hxt 8.3.2 → 8.4.0

raw patch · 266 files changed

+2261/−46375 lines, 266 filesdep +deepseqdep −paralleldep ~basedep ~containers

Dependencies added: deepseq

Dependencies removed: parallel

Dependency ranges changed: base, containers

Files

− Makefile
@@ -1,188 +0,0 @@-# $Id: Makefile,v 1.93 2006/11/24 07:41:37 hxml Exp $--include Version.mk--HXT_HOME	= .--DIST		= $(DIST_NAME)-DIST_TAR	= $(DIST_NAME).tar.gz-DIST_FILES	= Makefile Version.mk README LICENCE Setup.lhs $(SOFTWARE).cabal--SETUP		= Setup.lhs--VERSIONTAG	= $(DIST_NAME)-PUBDATE		:= $(shell date +%Y-%m-%d)--EDIT_VERSION	= sed 's/%DISTFILE%/$(DIST_NAME)/g' \-		| sed 's/%VERSION%/$(VERSION)/g' \-		| sed 's/%PUBDATE%/$(PUBDATE)/g'--HSCOLOUR	= HsColour-HSCOLOUR_CSS	= doc/hscolour.css--# ----------------------------------------------------all		:-		$(MAKE) -C src all-		$(MAKE)        $(SOFTWARE).cabal-		# $(MAKE)        allexamples--allexamples	:-		$(MAKE) -C examples all--test		:-		$(MAKE) -C examples test--# --------------------------------------------------------------CABAL_OPTIONS	= --global--cabal		:-		$(MAKE) cabal_configure cabal_build cabal_doc cabal_install--cabal_configure :-		runhaskell $(SETUP) configure $(CABAL_OPTIONS)--cabal_doc	:-		$(HSCOLOUR) -print-css > $(HSCOLOUR)-		runhaskell $(SETUP) haddock --hyperlink-source --hscolour-css=$(HSCOLOUR)-		rm -f $(HSCOLOUR)--cabal_build	:-		runhaskell $(SETUP) build--cabal_install	:-		sudo runhaskell $(SETUP) install --global--# --------------------------------------------------------------$(SOFTWARE).cabal	: src/$(SOFTWARE)-package.hs src/Makefile Makefile-		$(MAKE) -C src ../$(SOFTWARE).cabal--DOC_HXT		= $(DIST)/doc/hdoc--# doc brakes because of error in haddock--doc		: $(SOFTWARE).cabal-		$(MAKE) cabal_configure cabal_doc-		[ -d $(DOC_HXT) ] || mkdir -p $(DOC_HXT)-		( cd dist/doc/html/$(SOFTWARE) ; tar cf - . ) | ( cd $(DOC_HXT) ; tar xf - )--distall		: all doc-		$(MAKE) dist--dist		:-		$(MAKE) hxt.cabal-		[ -d $(DIST) ] || mkdir -p $(DIST)-		$(MAKE) -C src      dist-		$(MAKE) -C examples dist-		$(MAKE) -C doc      dist-		[ -d $(DIST)/doc ] || mkdir -p $(DIST)/doc-		cat doc/index.html | $(EDIT_VERSION) > $(DIST)/doc/index.html-		cp $(DIST_FILES) $(DIST)--tarball		: dist-		tar -zcvf $(DIST_TAR) $(DIST)--# --------------------------------------------------------------clean		:-		$(MAKE) -C src      clean-		$(MAKE) -C examples clean-		$(MAKE) -C doc      clean-		rm -rf $(DIST) $(DIST_TAR) $(SOFTWARE).cabal setup .setup-config .installed-pkg-config dist--# --------------------------------------------------------------tag		:-		darcs tag $(VERSIONTAG) .--install		:-		$(MAKE) -C src install--uninstall		:-		$(MAKE) -C src uninstall--DISTDATE	= $(shell date -r $(DIST_TAR) +%Y-%m-%d.%R)--distcopy	: $(DIST_TAR)-		scp $(DIST_TAR) hxt@darcs.fh-wedel.de:/home/hxt/$(SOFTWARE)/$(SOFTWARE)-head-$(DISTDATE).tar.gz--# ----------------------------------------------------.PHONY		: all doc test dist clean tag install uninstall tarball webpage cleanwebpage--# ----------------------------------------------------# Create webpage directory for distribution--WEBHOME		= ../../../fh/public_html/HXmlToolbox--webpage		: tarball-		[ ! -d $(WEBHOME) ] || echo "please clean $(WEBHOME) first: make cleanwebpage"-		[ -d $(WEBHOME) ] || mkdir -p $(WEBHOME)-		[ -d $(WEBHOME)/hdoc ] || mkdir -p $(WEBHOME)/hdoc-		cp -r dist/doc/html/$(SOFTWARE)/* $(WEBHOME)/hdoc-		cp -r doc/hvalidator/thesis $(WEBHOME)/thesis-		cp -f doc/hvalidator/thesis.ps doc/hvalidator/thesis.pdf $(WEBHOME) || true-		[ -d $(WEBHOME)/hxpath ] || mkdir -p $(WEBHOME)/hxpath-		cp -f doc/hxpath/diplomarbeit.pdf $(WEBHOME)/hxpath-		[ -d $(WEBHOME)/relaxng ] || mkdir -p $(WEBHOME)/relaxng-		cp -f doc/relaxng/thesis.pdf $(WEBHOME)/relaxng-		[ -d $(WEBHOME)/cookbook ] || mkdir -p $(WEBHOME)/cookbook-		[ -d $(WEBHOME)/cookbook/doc ] || mkdir -p $(WEBHOME)/cookbook/doc-		cp -f doc/cookbook/doc/thesis.pdf $(WEBHOME)/cookbook/doc-		[ -d $(WEBHOME)/xslt ] || mkdir -p $(WEBHOME)/xslt-		cp -f doc/xslt/thesis.pdf $(WEBHOME)/xslt-		[ -d $(WEBHOME)/examples ] || mkdir -p $(WEBHOME)/examples-		cp -f examples/arrows/AGentleIntroductionToHXT/SimpleExamples.hs $(WEBHOME)/examples-		cat doc/index.html | $(EDIT_VERSION) > $(WEBHOME)/index.html-		cp $(DIST_TAR) $(WEBHOME)-		( echo "AddType text/html .html" \-		; echo "allow from all" \-		) > $(WEBHOME)/.htaccess---cleanwebpage	:-		rm -rf $(WEBHOME)---# ----------------------------------------------------# make a clean installation from distribution tar--PROD_DIR	= ~/tmp-INSTALL		= echo now run: "(" cd $(PROD_DIR)/$(DIST) ";" -INSTEND		= ")"--distbuild	: tarball-		( [ -f $(DIST_TAR) ] || exit 1 \-		; cp -f $(DIST_TAR) $(PROD_DIR) || exit 1 \-		; cd $(PROD_DIR) || exit 1 \-		; rm -rf $(DIST) \-		; tar xvzf $(DIST_TAR) \-		; cd $(DIST) || exit 1 \-		; runhaskell $(SETUP) configure $(CABAL_OPTIONS) || exit 1 \-		; runhaskell $(SETUP) build || exit 1 \-		; $(MAKE) cabal_doc || exit 1 \-		; $(INSTALL) sudo runhaskell $(SETUP) install $(CABAL_OPTIONS) $(INSTEND) \-		)--disttry		: tarball-		( [ -f $(DIST_TAR) ] || exit 1 \-		; cp -f $(DIST_TAR) $(PROD_DIR) || exit 1 \-		; cd $(PROD_DIR) || exit 1 \-		; tar xvzf $(DIST_TAR) \-		; cd $(DIST) || exit 1 \-		; runhaskell $(SETUP) configure $(CABAL_OPTIONS) || exit 1 \-		; runhaskell $(SETUP) build || exit 1 \-		; $(INSTALL) sudo runhaskell $(SETUP) install $(CABAL_OPTIONS) $(INSTEND) \-		)--distinstall	:-		$(MAKE) distbuild INSTALL="" INSTEND=""--# ---------------------------------------------------#--# end Makefile
− README
@@ -1,19 +0,0 @@-$Id: README,v 1.25 2006/11/15 18:29:08 hxml Exp $--The Haskell XML Toolbox is a collection of tools for processing XML with-Haskell.--The Haskell XML Toolbox is available from:-    http://www.fh-wedel.de/~si/HXmlToolbox/--Detailed information about the features, changes, requirements, installation and documentation-is available from that web page.--A getting started tutorial for HXT is available-under "http://www.haskell.org/haskellwiki/HXT"--good luck--Uwe Schmidt--(uwe@fh-wedel.de)
− Version.mk
@@ -1,7 +0,0 @@-# Version.mk-# Version numbering for HXT--SOFTWARE	= hxt-VERSION		= 8.3.2-LASTVERSION	= 8.3.1-DIST_NAME	= $(SOFTWARE)-$(VERSION)
− doc/Makefile
@@ -1,29 +0,0 @@-# $Id: Makefile,v 1.5 2006/11/11 15:36:03 hxml Exp $--include ../Version.mk--HXT_HOME	= ..--all		:-		@echo "thesis not remade, command '$(MAKE) -C doc/hvalidator all' not executed (this is o.k)"--test		:--DIST		= ../$(DIST_NAME)-DIST_DIR	= $(DIST)/doc-DIST_FILES	= Makefile \-		  hvalidator/thesis \-		  $(wildcard hxpath/*.pdf) \-		  relaxng/thesis.pdf \-		  xslt/thesis.pdf \-		  cookbook/Makefile $(wildcard cookbook/*.hs) $(wildcard cookbook/examples/*.rdf) cookbook/doc/thesis.pdf--dist		:-		[ -d $(DIST_DIR) ] || mkdir -p $(DIST_DIR)-		tar cvf - $(DIST_FILES) | ( cd $(DIST_DIR) ; tar xf - )-		cp hvalidator/thesis.pdf $(DIST_DIR)--clean		:-		rm -rf hdoc--.PHONY		: all test dist clean
− doc/cookbook/HRdf.hs
@@ -1,143 +0,0 @@-{- |-   Module     : Main-   Author     : Manuel Ohlendorf-   -   Maintainer : Manuel Ohlendorf-   Stability  : experimental-   Portability: portable-   Version    : --The main programme, using the RDF\/XML parser and the SPARQL query language parser.--}--module Main-where--import Text.XML.HXT.Arrow-import System.IO      -- import the IO and commandline option stuff-import System.Environment-import System.Console.GetOpt-import System.Exit--import Char-import Data.Maybe-import RDF--- ---------------------------------------------------------------- |--- the main programme,--main :: IO ()-main-    = do-      argv <- getArgs         -- get the commandline arguments-      (al, qr, src) <- cmdlineOpts argv       -- and evaluate them, return a key-value list-      [rc] <- runX (processDocument al qr src)-      exitProg (rc >= c_err)--- --------------------------------------------------------------exitProg  :: Bool -> IO a-exitProg True = exitWith (ExitFailure (-1))-exitProg False  = exitWith ExitSuccess---- --------------------------------------------------------------processDocument :: Attributes -> String -> String -> IOSArrow b Int-processDocument al qr src-    =   readDocument al src -        >>> removeAllWhiteSpace >>> propagateNamespaces -        >>>-        ifA normaliseOption -            (normalizeRDF >>> indentDoc >>> writeDocument al outputFile) -            (replaceChildren (parseRDF >>> processQuery qr)-             >>> writeDocument ((a_output_xml,v_0):al) outputFile)-        >>>-        getErrStatus-   where-    -    -   normaliseOption = getParamString a_normalise >>> isA (== "1")-    -   outputFile = (fromMaybe "" (lookup a_output_file al))--processQuery :: String -> IOSArrow RDFStore XmlTree -processQuery qr = ifP (const (qr == ""))-                      (arr showRDFStore)-                      ((getSPARQLQuery qr &&& this) -                        >>> arr2 evalQuery -                        >>> arr showResult)-                  >>> mkText------ ------------------------------------------------------------------ the boring option definition and evaluation part------ see doc for System.Console.GetOpt--a_normalise :: String-a_normalise = "normaliseRDF"--rdfOptions :: [OptDescr (String, String)]-rdfOptions = [Option "n" [a_normalise] (NoArg (a_normalise, "1")) "generate output in normalised RDF, SPARQL not supported here"-			]--progName	:: String-progName	= "RDFParser"-    -options 	:: [OptDescr (String, String)]-options-    = selectOptions [ a_help-		    ] generalOptions-      ++-      selectOptions [ a_trace-		    , a_proxy-		    , a_use_curl-		    , a_options_curl-		    , a_encoding-		    ] inputOptions-      ++-      selectOptions [ a_output_file-		    ] outputOptions-      ++-      rdfOptions-      ++-      showOptions--usage		:: [String] -> IO a-usage errl-    | null errl-	= do-	  hPutStrLn stdout use-	  exitProg False-    | otherwise-	= do-	  hPutStrLn stderr (concat errl ++ "\n" ++ use)-	  exitProg True-    where-    header = "RDFParser - a program to parse simple RDF/XML documents and search for triples with SPARQL\n"++ -             "Usage: " ++ progName ++ " [OPTION...] <SPARQL query> [URI or FILE]"-    use    = usageInfo header options---cmdlineOpts 	:: [String] -> IO (Attributes,String, String)-cmdlineOpts argv-    = case (getOpt Permute options argv) of-      (ol,n,[]  )-	  -> do-	     (qr, sa) <- src n-	     help (lookup a_help ol)-	     return (ol, qr, sa)-      (_,_,errs)-	  -> usage errs-    where-    src [qr, i]	= return (qr, i)-    src []	= usage ["input file/uri missing"]-    src [u]	= return ("", u)-    src _ = usage ["only one input url or file allowed\n"]--    help Nothing	= return ()-    help (Just _)	= usage []---- ------------------------------------------------------------
− doc/cookbook/Makefile
@@ -1,23 +0,0 @@-GHCFLAGS	= -Wall -O2-GHCPACKAGES	= -package hxt-GHC 		= ghc $(GHCFLAGS)-HDOC_DIR	= doc/hdoc-HDOC_FLAGS	=-RDF_SRC 	= $(wildcard ./*.hs) -RDF_LIB		= $(wildcard ./*.o) \-			  $(wildcard ./*.hi)--HDOCFLAGS	= -o $(HDOC_DIR) -h -t "RDF/XML parser and SPARQL parser"-HDOC		= haddock $(HDOCFLAGS)--prog		= HRdf --all		: $(RDF_SRC)-		$(GHC) --make $(GHCPACKAGES) -o $(prog) $< --doc 		: $(RDF_SRC)-		[ -d $(HDOC_DIR) ] || mkdir -p $(HDOC_DIR)-		$(HDOC) $(HDOC_FLAGS) $(RDF_SRC)--clean 		: $(RDF_LIB)-		rm -f $(RDF_LIB)	
− doc/cookbook/RDF.hs
@@ -1,32 +0,0 @@-{- |-   Module     : RDF-   Author     : Manuel Ohlendorf--   Maintainer : Manuel Ohlendorf-   Stability  : experimental-   Portability: portable-   Version    : --This is the main entry point to all the RDF\/XML processing functions and the SPARQL parser.--It exports all important elements from the basic libraries.--}--module RDF-    ( module RDFParser-    , module RDFNormalize-    , module RDFDataTypes-    , module SPARQLEval-    , module SPARQLDataTypes-    , module SPARQLFunctions-    )-where--import RDFParser-import RDFNormalize-import RDFDataTypes-import SPARQLEval-import SPARQLDataTypes-import SPARQLFunctions--
− doc/cookbook/RDFDataTypes.hs
@@ -1,163 +0,0 @@-{- |-   Module     : RDFDataTypes -   Author     : Manuel Ohlendorf--   Maintainer : Manuel Ohlendorf-   Stability  : experimental-   Portability: portable-   Version    : --The core data types for RDF processing. --The constructor functions for the data types are also listed hier. --Some of the data types are also used by the SPARQL parser.---}-module RDFDataTypes -    (RDFStore -    ,showRDFStore-    ,Triple (..) -    ,Object (..)-    ,Predicate (..)-    ,Subject (..)-    ,RDFTerm (..)-    ,URI-    ,Var-    ,mkPredicate-    ,mkTriple-    ,mkResource-    ,mkLangLiteral-    ,mkLiteral-    ,mkTypedLiteral-    ,mkSubjectBlankNode-    ,mkURIRef-    ,mkObjectBlankNode-    ,equalRDFTermURI)-where--import Char (toLower)-- -{- | -    Represents an RDF triple. The Show-implementation returns it in N-Triples syntax.-    Subject, Predicate and Object are shared by the SPARQParser and RDFParser.-    That's why every data type can hold a 'Var' which is needed by the SPARQL Parser--}-data Triple = Triple Subject Predicate Object deriving (Ord,Eq)----- | returns the triples in N-Triples syntax-instance Show Triple-  where-  show (Triple s p o)   = show s ++ " "++ show p ++" " ++ show o++" ."----- | Represents a Subject or a Subject variable -data Subject = Subject RDFTerm -- ^ used by RDF parser and SPARQL parser-                | SubjectVar Var -- ^ used only by SPARQL parser, represents the variable of a query-                deriving (Ord,Eq)--instance Show Subject-    where-    show (Subject r)    = show r-    show (SubjectVar v) = show v---- | Represents a Predicate or a Predicate variable  -data Predicate = Predicate URI -- ^ used by RDF parser and SPARQL parser-                | PredicateVar Var -- ^ used only by SPARQL parser, represents the variable of a query-                deriving (Ord,Eq)--instance Show Predicate-    where-    show (Predicate u)    = '<' : u ++ ">"-    show (PredicateVar v) = show v---- | Represents a Object or a Object variable-data Object = Object RDFTerm -- ^ used only by SPARQL parser, represents the variable of a query-              | ObjectVar Var -- ^ used only by SPARQL parser, represents the variable of a query-              deriving (Ord,Eq)--instance Show Object -    where-    show (Object r)    = show r-    show (ObjectVar v) = show v---- | The variable in SPARQL query-type Var = String----- | Represents all logical units of a Subject or Object -data RDFTerm = URIRef URI                       -- ^ a URI reference-               | RDFLiteral String              -- ^ a plain literal-               | RDFLangLiteral String String   -- ^ a literal with language extension (literal, language)-               | RDFTypedLiteral String URI     -- ^ a typed literal (literal, type uri)-               | BlankNode String               -- ^ a blank node with blank node identifier-                 deriving (Ord,Eq)---- | A Uniform Resource Identifier-type URI = String--instance Show RDFTerm-  where-  show (URIRef uri)              = '<' : uri ++ ">"-  show (BlankNode i)             = '_' : ':' : i-  show (RDFLiteral lit)          = '"' : lit ++ "\"" -  show (RDFLangLiteral lit lang) = '"' : lit ++ "\"" ++ "@" ++ lang-  show (RDFTypedLiteral l u)     = '\"' : l ++ "\"^^" ++"<"++ u ++">"----- the different construtor functions---- | 'Subject' constructor with URIref-mkURIRef :: URI -> Subject-mkURIRef u = Subject (URIRef u)---- | 'Subject' constructor with blank node identifier-mkSubjectBlankNode :: String -> Subject-mkSubjectBlankNode i = Subject (BlankNode i)---- | 'Predicate' constructor with URIref-mkPredicate :: URI -> Predicate-mkPredicate u = Predicate u ---- | 'Object' constructor with blank node identifier-mkObjectBlankNode :: String -> Object-mkObjectBlankNode i = Object (BlankNode i)---- | 'Object' constructor with URIref (a resource)-mkResource :: String -> Object-mkResource r  = Object (URIRef r)---- | 'Object' constructor with plain literal-mkLiteral :: String -> Object-mkLiteral l  = Object (RDFLiteral l) ---- | 'Object' constructor with literal and language information-mkLangLiteral :: String -> String -> Object-mkLangLiteral lang lit = Object (RDFLangLiteral  lit ((map $ toLower) $ lang)) ---- | 'Object' constructor with typed literal-mkTypedLiteral :: URI -> String -> Object-mkTypedLiteral t l  = Object (RDFTypedLiteral l t) ---- | Equal function for 'RDFTerm' and 'URI'-equalRDFTermURI :: RDFTerm -> URI -> Bool-equalRDFTermURI (URIRef u) uri = u == uri-equalRDFTermURI _ _ = False---- | A list of triples-type RDFStore = [Triple]---- | show function for 'RDFStore'-showRDFStore ::  RDFStore ->  String-showRDFStore []  = ""-showRDFStore (x:xs) =  show x ++ "\n" ++ showRDFStore xs----printResult :: RDFStore -> String---printResult xs = show (length xs) ++" Triples found\n"---- | constructor function for 'Triple'-mkTriple :: Subject -> Predicate -> Object -> Triple-mkTriple s p o = Triple s p o-
− doc/cookbook/RDFFunctions.hs
@@ -1,100 +0,0 @@-{- |-   Module     : RDFFunctions -   Author     : Manuel Ohlendorf  --   Maintainer : Manuel Ohlendorf-   Stability  : experimental-   Portability: portable-   Version    :--All RDF related functions, predicates and syntax term definitions--}-module RDFFunctions-where--import Text.XML.HXT.Arrow---- namespace definition for RDF and others---- | Namespace definition for RDF and XML-namespaceXML, namespaceRDF :: String-namespaceRDF = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"-namespaceXML = "http://www.w3.org/XML/1998/namespace"---- | XML terms-xml_base, xml_lang :: QName-xml_base = mkNsName "xml:base" namespaceXML-xml_lang = mkNsName "xml:lang" namespaceXML---- | RDF Core Syntax Terms-rdf_RDF,rdf_about,rdf_ID,rdf_resource,rdf_nodeID,rdf_datatype,rdf_parseType :: QName-rdf_RDF           = mkNsName "rdf:RDF" namespaceRDF-rdf_about         = mkNsName "rdf:about" namespaceRDF-rdf_ID            = mkNsName "rdf:ID" namespaceRDF  -rdf_resource      = mkNsName "rdf:resource" namespaceRDF-rdf_nodeID        = mkNsName "rdf:nodeID" namespaceRDF-rdf_datatype      = mkNsName "rdf:datatype" namespaceRDF-rdf_parseType     = mkNsName "rdf:parseType" namespaceRDF --TODO ParseType  Resource => keine BlankNode, kommt in Properties vor---- | Other RDF Syntax Terms-rdf_Description,rdf_li ::QName-rdf_Description   = mkNsName "rdf:Description" namespaceRDF-rdf_li            = mkNsName "rdf:li" namespaceRDF---- | RDF Container Terms-rdf_Seq , rdf_Bag , rdf_Alt :: QName-rdf_Seq = mkNsName "rdf:Seq" namespaceRDF-rdf_Bag = mkNsName "rdf:Bag" namespaceRDF-rdf_Alt = mkNsName "rdf:Alt" namespaceRDF---- | Allowed Property Names-rdf_Statement,rdf_subject,rdf_predicate,rdf_object,rdf_type,rdf_value,rdf_first,rdf_rest :: QName-rdf_Statement = mkNsName "rdf:Statement"namespaceRDF-rdf_subject   = mkNsName "rdf:subject" namespaceRDF-rdf_predicate = mkNsName "rdf:predicate" namespaceRDF-rdf_object    = mkNsName "rdf:object" namespaceRDF-rdf_type  	  = mkNsName "rdf:type" namespaceRDF-rdf_value 	  =	mkNsName "rdf:value" namespaceRDF-rdf_first  	  = mkNsName "rdf:first" namespaceRDF-rdf_rest  	  = mkNsName "rdf:rest" namespaceRDF- --und: _n where n is a decimal integer greater than zero with no leading zeros.---- | URI of XML Literals-xmlliteral :: String-xmlliteral = "http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral"---{- Functions for RDF Parsing and Normalizing -}---- | rdf:RDF test-isRDF :: (ArrowXml a) => a XmlTree XmlTree-isRDF = isElem >>>  hasQName rdf_RDF  ---- | Tests, wether the element is a node element-isNodeElem :: (ArrowXml a) => a XmlTree XmlTree-isNodeElem = isElem >>> (hasQName rdf_Description >>> (hasQAttr rdf_nodeID `orElse` hasQAttr rdf_about)) ---- | Tests, wether the element is a resource element-isResource :: (ArrowXml a) => a XmlTree XmlTree-isResource = isEmptyElem >>> hasQAttr rdf_resource ---- | Checks wether an element is empty or not-isEmptyElem :: (ArrowXml a) => a XmlTree XmlTree -isEmptyElem = (isElem >>> neg getChildren) `guards` this---- | Tests, wether an element has a datatype definition-hasDatatype :: (ArrowXml a) => a XmlTree XmlTree-hasDatatype = hasQAttr rdf_datatype---- | Tests, wether an element as rdf:nodeID attribute-hasNodeID :: (ArrowXml a) => a XmlTree XmlTree-hasNodeID = hasQAttr rdf_nodeID---- | has parse type \"Literal\" or not-hasLiteralParseType :: (ArrowXml a) => a XmlTree XmlTree-hasLiteralParseType = hasQAttrValue rdf_parseType (== "Literal")---- | has parse type \"Resource\" or not-hasResourceParseType :: (ArrowXml a) => a XmlTree XmlTree-hasResourceParseType = hasQAttrValue rdf_parseType (== "Resource") -- for omitting blank nodes -
− doc/cookbook/RDFNormalize.hs
@@ -1,223 +0,0 @@-{- |-   Module     : RDFNormalize -   Author     : Manuel Ohlendorf  --   Maintainer : Manuel Ohlendorf-   Stability  : experimental-   Portability: portable-   Version    :--Contains all normalisation arrows and exports the main entry point to them--}--module RDFNormalize  (normalizeRDF)-where-import Char-import Text.XML.HXT.Arrow-import RDFFunctions-import Maybe-import Text.XML.HXT.DOM.Util----- ---------------------------------------------------------------- ***** NORMALISATION ****--- ----------------------------------------------------------------- | The normalisation arrow. --- Creates a normalised RDF\/XML document where several abbreviations have been removed\/normalised.--- Not every abbreviation is supported right now.-normalizeRDF :: IOSArrow XmlTree XmlTree-normalizeRDF = processChildren $ -               seqA [changeBase-                    ,mkAbsoluteURIs-                    ,convertToUtf-                    ,processContainer-                    ,processTypedElem-                    ,generateDescElem-                    ,reifyStatement-                    ,generateNodeID-                    ,processChildren (multi isNodeElem)-                    ,deleteDuplicate-                    ,processPropertyAttr -- all Desc ELements must be generated and unfolded befor generating objects-                    ]---- | removes duplicate node elements, generated by the unfolding--- every information of this elements is copied to the element above-deleteDuplicate :: (ArrowXml a) => a XmlTree XmlTree-deleteDuplicate -    = processTopDown (-        (processChildren( (addAttrl (getChildren >>> getAttrl) >>> setChildren []) -                           `when` -                          (getChildren >>> isNodeElem))-        )`when` (isNodeElem >>> (deep isNodeElem) ) --`when` (isNodeElem >>> (getChildren>>>getChildren >>> isNodeElem) ))-                     )----- | Node elements which do not have the name rdf:Description, are extended by the predicate rdf:type and the subject--- name as value.-processTypedElem ::  (ArrowXml a) => a XmlTree XmlTree-processTypedElem -  = processTopDown (-      (insertChildrenAt 0 typeElem >>> setElemName rdf_Description)-      `when`  -      ((neg isEmptyElem >>> isTypedNodeElem) `orElse` (isTypedNodeElem >>> nonRDFAttributes)) )-    -    where -    typeElem -      = mkElement rdf_type (qattr rdf_resource (getUniversalUri >>> mkText)) none-    -    isTypedNodeElem -      = isElem  >>> (hasQAttr rdf_nodeID `orElse` hasQAttr rdf_about) >>> neg (hasQName rdf_Description)-    -    nonRDFAttributes = getAttrl >>> neg ( hasQName rdf_about -                                          `orElse` hasQName rdf_nodeID -                                          `orElse` hasName "xml:lang"-                                          `orElse` hasQName rdf_ID)---- | Deals with reification elements. Is not able to process every kind of reification case, yet.-reifyStatement :: IOSArrow XmlTree XmlTree-reifyStatement = processTopDown((catA[this, statement, subject, predicate, object] >>> processChildren (removeQAttr rdf_ID)) -                                 `when`-                                 (isElem >>> (hasQAttr rdf_about) >>> getChildren >>> hasQAttr rdf_ID))-                                    where-                                    aboutValue = ((getBaseURI >>> arr(++"#")) &&& (getChildren>>>getQAttrValue rdf_ID)) >>> arr(uncurry (++))-                                -                                    statement = generateReifyNode rdf_type rdf_resource (txt (universalUri rdf_Statement ))-                                    subject   = generateReifyNode rdf_subject rdf_resource (getQAttrValue rdf_about >>> mkText)-                                    predicate = generateReifyNode rdf_predicate rdf_resource (getChildren >>>getUniversalUri >>> mkText)-                                    object = ifA (getChildren >>> hasQAttr rdf_resource) -                                                             (generateReifyNode rdf_object rdf_resource (getChildren >>>getChildren))-                                                             (mkElement rdf_Description (qattr rdf_about (aboutValue >>> mkText)) (mkElement rdf_object none (getChildren>>>getChildren)))--                                    generateReifyNode theType objectType theObj = mkElement rdf_Description (qattr rdf_about (aboutValue >>> mkText)) (mkElement theType (qattr objectType theObj) none) ---- | Replaces every rdf:li element with a unique number-processContainer :: IOSArrow XmlTree XmlTree-processContainer = processTopDown((arr setElemName $< counterLi)-                                     `when`-                                     (isElem >>> hasQName rdf_li))-                                      where-                                      counterLi = getCounter "li_counter"-                                                  >>> (arr ('_':)) -                                                  >>> arr((flip mkNsName) $ namespaceRDF)  - ---- | generates blank node identifiers --- furthermore, the fragment identifers are processed here.-generateNodeID :: IOSArrow XmlTree XmlTree-generateNodeID-    = processTopDown (choiceA   [choice1 :-> addAttrl (qattr rdf_nodeID (getCounter "node_id">>>(arr("genid"++)) >>> mkText))   -- id erzeugen und zustand verändern-                                ,(isElem >>> hasQAttr rdf_ID) :-> ((addAttrl (qattr rdf_about attrValue) )>>>removeQAttr rdf_ID) -                                ,this:-> this-                              ]-                     )-                     where -                     choice1 = ( isElem >>> hasQName rdf_Description >>> neg ( hasQAttr rdf_nodeID `orElse` hasQAttr rdf_about `orElse` hasQAttr rdf_ID))--                     --creates an absolut from the input                        -                     attrValue = getQAttrValue rdf_ID >>> arr('#':)>>> mkAbsURI >>> mkText---- | processing of xml:base-changeBase :: IOSArrow XmlTree XmlTree-changeBase-        = processTopDownWithAttrl ( -            (perform (getAttrValue "xml:base" >>> changeBaseURI)) -            `when` (isElem >>> hasAttr "xml:base")-            )----- | generate a simple counter and returns its value as String-getCounter :: String -> IOSArrow b String-getCounter name   -        = arr genNewId                      -     $<-     getParamInt 1 name       -- default start wert 0-   where-   genNewId :: Int -> IOSArrow b String-   genNewId i-        = setParamInt name (i+1)              -- wird hier beim ersten aufruf in den zustand geschrieben-            >>>-            constA (show i)------ | generates node elements for property-and-node elements.-generateDescElem :: (ArrowXml a) => a XmlTree XmlTree-generateDescElem -    = processTopDown (replaceChildren (mkElement rdf_Description none getChildren) -                      `when` hasResourceParseType )---{- generates Property and Object for Property attributes in subject elements-}-processPropertyAttr :: (ArrowXml a) => a XmlTree XmlTree-processPropertyAttr -    = processTopDown (-            insertChildrenAt 0 propertyElements -            `when` isNodeElem )--propertyElements :: (ArrowXml a) => a XmlTree XmlTree-propertyElements-    = getAttrl -      >>> neg ( hasQName rdf_about -                `orElse` hasQName rdf_nodeID-                `orElse` hasName "xml:lang"-                `orElse` hasQName rdf_ID )-      >>> arr mkqelem $<<< getQName &&& listA none &&& (listA (constA getChildren))----- | changes every relative URI to the absolute uri.                                            -mkAbsoluteURIs :: IOSArrow XmlTree XmlTree-mkAbsoluteURIs = processChildren (mkAbs `when` isElem)-      where-      mkAbs = mkAbsURIs $< getBaseURI --mkAbsURIs   :: String -> IOSArrow XmlTree XmlTree-mkAbsURIs base-        = processTopDown editURIs       -- edit all refs in documnt-        where--        -- build the edit filter from the list of element-attribute names-        editURIs = seqA . map mkAbs $ rdfAttrs-      -        -- list of attributes which can have relative uris-        rdfAttrs = [ rdf_about,rdf_datatype,rdf_resource]--        -- change the reference in attribute attrName of element elemName--        mkAbs attrName = processAttrl ( changeAttrValue (mkAbsURIString base)-                `when`-                hasQName attrName-                )---- | compute an absolute URI, if not possible leave URI unchanged-mkAbsURIString  :: String -> String -> String-mkAbsURIString base uri-    = fromMaybe uri . expandURIString uri $ base------ | converts every non US-ASCII character to the encoded UNICODE variant-convertToUtf :: (ArrowXml a) => a XmlTree XmlTree-convertToUtf-        = processTopDown editToUtf-      where editToUtf = changeText toUtf `when` isText--toUtf :: [Char] -> [Char]-toUtf = concatMap charToUtf--charToUtf :: Char -> String-charToUtf c-  | ord c < 0x80  = [c]-  | otherwise = "\\u00" ++ charToHexString c--{-hexChar :: Int -> String-hexChar i | i < 0 = hexChar (i + 2^16)-hexChar i =  toHex (i `div` 256) ++ toHex (i `mod` 256)--toHex :: Int -> [Char]-toHex i = [toHexDigit (i `div` 16), toHexDigit (i `mod` 16)]--toHexDigit :: Int -> Char-toHexDigit x-  | x < 10= chr ((ord '0')+x)-  | otherwise= chr ((ord 'A')+x-10)-}
− doc/cookbook/RDFParser.hs
@@ -1,83 +0,0 @@-{- |-   Module     : RDFParser -   Author     : Manuel Ohlendorf  --   Maintainer : Manuel Ohlendorf-   Stability  : experimental-   Portability: portable-   Version    :--Arrows to parse an RDF\/XML document. Two versions of processing arrows are provided. --parseRDF normalises the document before it parses the document and creates the list of triples. --processRDF expects a normalised document for parsing.--}--module RDFParser (processRDF,parseRDF) -where--import Text.XML.HXT.Arrow-import RDFDataTypes-import RDFFunctions-import RDFNormalize---- ---------------------------------------------------------------- ***** PARSEN ****--- ----------------------------------------------------------------- | normalises the document and then parses it.------ > normalizeRDF >>> processRDF------ see 'normalizeRDF'-parseRDF :: IOSArrow XmlTree RDFStore-parseRDF = normalizeRDF >>> processRDF---- | just processes the document and does not do any normalisation.-processRDF :: (ArrowXml a) => a XmlTree RDFStore-processRDF = getChildren >>> isRDF `guards` arr triples  ---- | stores the resulting triples in a list-triples :: XmlTree -> RDFStore -triples = runLA  ( processSubject)---- | processes the node elements-processSubject :: (ArrowXml a) => a XmlTree Triple -processSubject -    = getChildren >>> (isNodeElem `guards` (arr getTriple $< blankOrNot))-    where-    blankOrNot -        = ifA hasNodeID-        ((getQAttrValue rdf_nodeID >>> arr mkSubjectBlankNode) &&& getAttrValue "xml:lang") -        ((getQAttrValue rdf_about >>> arr mkURIRef) &&& getAttrValue "xml:lang")---- | processes the property nodes-processPredicate :: (ArrowXml a) => a XmlTree Predicate  -processPredicate -    = choiceA [ hasResourceParseType :-> (getUniversalUri >>> arr mkPredicate),-               this :-> (getUniversalUri >>> arr mkPredicate)-              ]--- | generates the object elements-processObject :: (ArrowXml a) => String -> a XmlTree Object -processObject lang-    = choiceA [isResource                    :-> (getQAttrValue rdf_resource >>> arr mkResource)  -              ,(isEmptyElem >>> hasNodeID)   :-> (getQAttrValue rdf_nodeID >>> arr mkObjectBlankNode)-              ,hasDatatype                   :-> op1-              ,hasLiteralParseType           :-> op2-              ,hasAttr "xml:lang"            :-> ((getAttrValue "xml:lang"  &&& xshow getChildren) >>> arr2 mkLangLiteral)-              ,isA(const (length lang /= 0)) :-> (xshow getChildren >>> arr (mkLangLiteral lang))-              ,this                          :-> (xshow getChildren >>> arr mkLiteral)  -              ]-                where-                op1 = getQAttrValue rdf_datatype &&& (xshow getChildren) >>> arr2 mkTypedLiteral-                op2 = xshow getChildren >>> arr (mkTypedLiteral xmlliteral)---- generates the whole triple-getTriple :: (ArrowXml a) => (Subject, String) -> a XmlTree Triple -getTriple (subject,lang)-        = getChildren >>> (processPredicate &&& processObject lang) >>> arr2 (mkTriple subject) ----
− doc/cookbook/SPARQLDataTypes.hs
@@ -1,53 +0,0 @@-{- |-   Module     : SPARQLDataTypes -   Author     : Manuel Ohlendorf  --   Maintainer : Manuel Ohlendorf-   Stability  : experimental-   Portability: portable-   Version    :--The core SPARQL query language data types. Every data type has two constructors: --One for the parser result and the other for the normalised version of this data type.--}-module SPARQLDataTypes-    (Query (..)-    ,GraphPattern (..)-    ,PatternElement (..)-    ,TriplePattern (..)-    )-where--import RDFDataTypes---- | Represents a SPARQL query-data Query = Query [Var] GraphPattern       -- ^ the parse result: a list of variables from the SELECT-Clause -                                            --  and the graph pattern from the WHERE-clause.-            | QueryN [Var] [TriplePattern]  -- ^ the normalised query: a list of variables and a list of triple patterns -            | Empty                         -- ^ the empty query: only returned when parser fails-            deriving (Show,Ord,Eq)--{- two versions of triple patterns. the first one is the unnomalized version with predicate-object and object list abbreviations. the second is normalized. only this can be processed by the query evaluator -}--- | Represents a triple pattern-data TriplePattern = TriplePat Subject [(Predicate, [Object])] -- ^ triple pattern, -                                                               -- containing predicate-object and object list abbreviations-                    | TriplePatN Subject Predicate Object      -- ^ normalised triple pattern with simple triples-                    deriving (Show,Ord,Eq)---- | The graph pattern, only used by the SPARQL parser.-data GraphPattern = GraphPattern [PatternElement]-                    deriving (Show,Ord,Eq)---- | The pattern element -data PatternElement = PET TriplePattern     -- ^ represents a query with a single triple pattern-                    | PEG [PatternElement]  -- ^ represents a query with a list of triple patterns-                    deriving (Show,Ord,Eq)--------
− doc/cookbook/SPARQLEval.hs
@@ -1,109 +0,0 @@-{- |-   Module     : SPARQLEval -   Author     : Manuel Ohlendorf  --   Maintainer : Manuel Ohlendorf-   Stability  : experimental-   Portability: portable-   Version    :--The core evaluation function.--}-module SPARQLEval-    (evalQuery)--where--import Text.XML.HXT.DOM.Util (noDoubles)-import SPARQLDataTypes-import SPARQLFunctions-import RDFDataTypes-import List---- | a helper data type, only for internal use-data Binding = BT Var RDFTerm | BU Var URI deriving (Show,Eq,Ord)--mkTBind :: Var -> RDFTerm -> Binding-mkTBind v t = BT v t--mkUBind :: Var -> URI -> Binding-mkUBind v u = BU v u---- | generates all possible bindings, also returns the triple with the containing binding. This is not needed yet, but--- can neccesary later.-substituteOne :: Triple -> TriplePattern -> [(Triple,[Binding])]-substituteOne tr@(Triple (Subject a) (Predicate b) (Object c)) (TriplePatN (Subject x) (Predicate y) (Object z)) - = if (a == x &&  b == y && c == z) then [(tr,[])] else []--substituteOne tr@(Triple (Subject a) (Predicate b) (Object c)) (TriplePatN (SubjectVar x) (Predicate y) (Object z)) - = if (b == y && c == z) then [(tr,[mkTBind x a])] else []--substituteOne tr@(Triple (Subject a) (Predicate b) (Object c)) (TriplePatN (Subject x) (PredicateVar y) (Object z)) - = if (a == x && c == z) then [(tr,[mkUBind y b])] else []--substituteOne tr@(Triple (Subject a) (Predicate b) (Object c)) (TriplePatN (Subject x) (Predicate y) (ObjectVar z)) - = if (a == x &&  b == y) then [(tr,[mkTBind z c])] else []--substituteOne tr@(Triple (Subject a) (Predicate b) (Object c)) (TriplePatN (SubjectVar x) (PredicateVar y) (Object z)) - | x == y =  if (equalRDFTermURI a b && c == z) then [(tr,[(mkTBind x a),(mkUBind y b)])] else []- | otherwise = if (c == z) then [(tr,[(mkTBind x a),(mkUBind y b)])] else []--substituteOne tr@(Triple (Subject a) (Predicate b) (Object c)) (TriplePatN (SubjectVar x) (Predicate y) (ObjectVar z)) - | x == z =  if (a == c && b == y) then [(tr,[(mkTBind x a),(mkTBind z c)])] else []- | otherwise = if (b == y) then [(tr,[(mkTBind x a),(mkTBind z c)])] else []--substituteOne tr@(Triple (Subject a) (Predicate b) (Object c)) (TriplePatN (Subject x) (PredicateVar y) (ObjectVar z)) - | y == z =  if (equalRDFTermURI c b && a == x) then [(tr,[(mkUBind y b),(mkTBind z c)])]  else []- | otherwise = if (a == x) then [(tr,[(mkUBind y b),(mkTBind z c)])] else []--substituteOne tr@(Triple (Subject a) (Predicate b) (Object c)) (TriplePatN (SubjectVar x) (PredicateVar y) (ObjectVar z))- | x == y && y == z =  if (equalRDFTermURI a b && equalRDFTermURI c b) -                       then [(tr,[(mkTBind x a), (mkUBind y b),(mkTBind z c)])] else []- | x == y =  if (equalRDFTermURI a b) -             then [(tr,[(mkTBind x a), (mkUBind y b),(mkTBind z c)])] else []- | y == z =  if (equalRDFTermURI c b) -             then [(tr,[(mkTBind x a), (mkUBind y b),(mkTBind z c)])] else []- | x == z =  if (a == c) -             then [(tr,[(mkTBind x a), (mkUBind y b),(mkTBind z c)])] else []- | x/=y && y/=z && x/=z  = [(tr,[(mkTBind x a), (mkUBind y b),(mkTBind z c)])]- | otherwise = []-substituteOne (Triple _ _ _) _ = [] ---- different selector functions.--getBindings :: [(Triple,[Binding])] -> [[Binding]]-getBindings [] = []-getBindings (x:xs) = [snd x] ++ getBindings xs--getVarBinding :: Var -> Binding -> [(Either RDFTerm URI)]-getVarBinding v (BT a b) = if v==a then [ (Left b)] else []-getVarBinding v (BU a b) = if v==a then [ (Right b)] else []--getVarBindings :: Var -> [Binding] -> [(Either RDFTerm URI)]-getVarBindings _ [] = []-getVarBindings v (x:xs) = getVarBinding v x ++ getVarBindings v xs--getAllVarBindings :: [Var] -> [Binding] -> [(Var,[(Either RDFTerm URI)])]-getAllVarBindings [] _ = []-getAllVarBindings (x:xs) ys = (x,(getVarBindings x ys)) : getAllVarBindings xs ys---substitute :: [Triple] -> [TriplePattern] ->  [(Triple,[Binding])]-substitute [] [] = []-substitute _ []  = []-substitute [] _ = []-substitute (x:xs) ys = concat (map (substituteOne x) ys) ++ substitute xs ys------ | The evaluation function. --- Takes a 'Query' and a 'RDFStore' and generates a list of possible bindings between variables and concrete values.--- If the 'Query' is not in the normalised form, it is normalised before evaluation starts.-evalQuery :: Query -> RDFStore -> [(Var,[(Either RDFTerm URI)])] -evalQuery Empty _ = []-evalQuery _ [] = []-evalQuery (Query a b ) store = evalQuery (normalizeQuery (Query a b)) store -evalQuery (QueryN var tr) store = getAllVarBindings var (concat(getBindings(noDoubles (substitute store tr))))---
− doc/cookbook/SPARQLFunctions.hs
@@ -1,88 +0,0 @@-{- |-   Module     : SPARQLFunctions -   Author     : Manuel Ohlendorf  --   Maintainer : Manuel Ohlendorf-   Stability  : experimental-   Portability: portable-   Version    :--Several functions used for query processing.--}-module SPARQLFunctions-    (-    normalizeQuery-    ,showResult-    ,getSPARQLQuery-    )-where--import SPARQLDataTypes-import RDFDataTypes-import SPARQLParser-import Text.ParserCombinators.Parsec (parse)-import Text.XML.HXT.Arrow---- | normalises the Triple Patterns-normalizeTripleP :: TriplePattern -> [TriplePattern]-normalizeTripleP (TriplePatN s p o ) = [TriplePatN s p o]-normalizeTripleP (TriplePat _ [])          = []-normalizeTripleP (TriplePat _ ((_,[]):_)) = []-normalizeTripleP (TriplePat s ((p,[o]):xs)) =  (TriplePatN s p o) : normalizeTripleP(TriplePat s xs)-normalizeTripleP (TriplePat s ((p,(x:xs)):ys)) = (TriplePatN s p x) : normalizeTripleP (TriplePat s [(p,xs)]) -                                                ++ normalizeTripleP (TriplePat s ys)---- | normalises the Pattern elements-normalizePatternElement :: PatternElement -> [TriplePattern]-normalizePatternElement (PET t) = normalizeTripleP t-normalizePatternElement (PEG []) = []-normalizePatternElement (PEG (x:xs)) = normalizePatternElement x ++ normalizePatternElement' xs-                                        -normalizePatternElement' :: [PatternElement] -> [TriplePattern]-normalizePatternElement' [] = []-normalizePatternElement' (x:xs) = normalizePatternElement x  ++ normalizePatternElement' xs---- | normalises the graph patterns-normalizeGraphPattern :: GraphPattern -> [TriplePattern]-normalizeGraphPattern (GraphPattern []) = []-normalizeGraphPattern (GraphPattern (x:xs)) = normalizePatternElement x ++ normalizePatternElement' xs ---- | normalises a 'Query' by removing all abbreviations. --- The result is a 'Query' containing a list of simple triple patterns.--- This function has to be called be for query evaluation.-normalizeQuery :: Query -> Query-normalizeQuery Empty = Empty-normalizeQuery (QueryN _ [])  = Empty-normalizeQuery (QueryN v (x:xs)) = QueryN v (x:xs)-normalizeQuery (Query v gp) = QueryN v (normalizeGraphPattern gp)--showIt :: [(Either RDFTerm URI)] -> String-showIt [] = ""-showIt ((Right u) :xs) = '|' : "<" ++ u ++">|\n" ++ showIt xs-showIt ((Left r) :xs)  = '|' : show r ++"|\n" ++ showIt xs---- | The show function for printing out the result of the query evaluation-showResult :: [(Var,[(Either RDFTerm URI)])] -> String-showResult [] = ""-showResult ((var, xs):ys) -    = if (xs /=[]) -      then '\t' : '?':var ++ "\n" ++ (showIt xs) ++"\n"++ (showResult ys) -      else ""----- | The main entry point, when combining the SPARQL parser with a arrow based programme.--- Executes the SPARQL parser and returns a 'Query'.------ Raises an error if the parsing fails and returns a empty 'Query'.------ The extra parameter is the query string which will be parsed.--- The arrow input is ignored, the output is the parsed query.-getSPARQLQuery :: String -> IOSArrow a Query -getSPARQLQuery queryStr-    = case (parse parseSPARQL "" queryStr) of-      Left parseError-       -> (issueFatal ("Syntax error in SPARQL query " -                        ++ show queryStr -                        ++ ": " ++ show parseError) >>> constA (Empty))-      Right theQuery-       -> constA (theQuery)
− doc/cookbook/SPARQLParser.hs
@@ -1,454 +0,0 @@-{- |-   Module     : SPARQLParser -   Author     : Manuel Ohlendorf  --   Maintainer : Manuel Ohlendorf-   Stability  : experimental-   Portability: portable-   Version    :--The SPARQL query language Parsec parser. Exports the main parser. The grammar of the query language can be found here: <file:../grammar.txt>--}-----Some of the parsers cover more than one production. Some abbreviations have been commented out.--module SPARQLParser -   (parseSPARQL)-where--import Char-    (toLower-    ,toUpper-    )--import Text.ParserCombinators.Parsec-import SPARQLDataTypes-import RDFDataTypes-import Monad-import Text.XML.HXT.Parser.XmlParser-    (skipS0-    )----- some useful token and symbol parser-xsd, rdf, rdfType, booleanD, integerD, doubleD :: String-xsd         = "http://www.w3.org/2001/XMLSchema#"-rdf         = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"-rdfType     = rdf ++"type"-booleanD    = xsd ++ "boolean"-doubleD     = xsd ++ "double"-integerD    = xsd ++ "integer"---lbrace, rbrace, dot, com, semcol :: Parser ()-lbrace      = tokenParser (symbol "{")-rbrace      = tokenParser (symbol "}")-dot         = tokenParser (symbol ".")-com         = tokenParser (symbol ",")-semcol      = tokenParser (symbol ";")--caseChar        :: Char -> CharParser st Char-caseChar c       = satisfy (\x -> toUpper x == toUpper c) <?> ""--caseString      :: String -> CharParser st () -caseString cs    = mapM_ caseChar cs <?> "" --tokenParser :: Parser String -> Parser ()-tokenParser p-    = try ( do-            skipS0-            p-            skipS0-           )--symbol :: String -> Parser String-symbol s = try (string s)---- | The main entry point to the parser.--- Creates a 'Query' as result, which contains all SPARQL abbreviations.--- In order to evaluate the result, it has to be normalised before.--- see "SPARQLFunctions" for normalisation function-parseSPARQL :: Parser Query-parseSPARQL-    = do-        skipS0-        qr <- query-        skipS0-        eof-        return qr---- [1] in the case of 'SELECT *' a query is returned, which matches every triple-query :: Parser Query-query -    = do-        caseString "SELECT"  -        skipS0-        a <- do string "*"-                return (["s","p","o"])-             <|> selectClause -        skipS0-        b <- option [] whereClause-        return (if b == [] then (QueryN a [triple]) -                else (Query a (GraphPattern b)))-    where triple = TriplePatN (SubjectVar "s") (PredicateVar "p") (ObjectVar "o")---- [2]-selectClause :: Parser [Var]-selectClause -    = do-        a <- varPlus-        return a---- not part of the gramma -varPlus :: Parser [Var]-varPlus = do-            a <- var-            skipS0-            b <- many var-            return (a :b)--- [3]-whereClause :: Parser [PatternElement] -whereClause -    = do-        caseString "WHERE"-        skipS0-        a <- graphPattern-        skipS0-        eof-        return a---[4]-graphPattern :: Parser [PatternElement]-graphPattern-    = do-        lbrace-        a <- patternElementsList-        rbrace <?> "end of graph pattern"-        return (a)-    --- [5]-patternElementsList :: Parser [PatternElement] -patternElementsList -    = do-        skipS0-        a <- patternElement-        b <- option [] patternElementsListTail-        return (a : b)---[6]-patternElementsListTail :: Parser [PatternElement]-patternElementsListTail -    = do-        dot-        a <- option [] patternElementsList                 -        return a--- [7]-patternElement:: Parser PatternElement-patternElement = do -                    skipS0 -                    pe <- do tr <- triples-                             return (PET tr)- -                          <|>-                          do gr <- graphPattern-                             return (PEG gr)-                    return pe ------[8]-triples :: Parser TriplePattern-triples = do -            subj <- do -                        v <- var -                        return (SubjectVar v)-                    <|>-                    do-                        g <- graphTerm-                        return (Subject g)--            predObL <- propertyListNotEmpty-            return (TriplePat subj predObL)-          ---- [9]-propertyList:: Parser [(Predicate,[Object])] -propertyList = do -                a <- option [] propertyListNotEmpty-                return a--- [10]-propertyListNotEmpty:: Parser [(Predicate,[Object])] -propertyListNotEmpty = do-                        skipS0-                        p <- (do  -                                 v <- var-                                 return (PredicateVar v)-                                 <|>-                                 do  -                                 u <- uri-                                 return (Predicate u)-                                 <|>-                                 do-                                 string "a"-                                 return (Predicate rdfType)-                                )-                        skipS0-                        obl <- objectList-                        skipS0-                        t <- option [] propertyListTail-                        return ((p,obl):t)--- [11]-propertyListTail:: Parser [(Predicate,[Object])] -propertyListTail = do-                    semcol-                    a <- option []  propertyList-                    return a---- [12]-objectList :: Parser [Object] -objectList = do-                a <- object-                b <- option [] objectTail      -                return (a:b)--- [13]-objectTail :: Parser [Object]-objectTail = do-                com-                a <- option [] (objectList)-                return (a)---- [14]---verb :: Parser String---verb = varOrURI -- <|> string "a"---- [15]-object :: Parser Object -object = do v <- var -            return (ObjectVar v)-         <|>-         do g <- graphTerm-            return (Object g)---original:--- varOrTerm  <|> triplesNode <?> "object"---- [16]-{-varOrURI :: Parser String-varOrURI = do v <- var -              return (show v)-           <|> -           do u <- uri-              return (show u)---- [17]-varOrTerm :: Parser String-varOrTerm = do v <- var -               return (show v)-            <|> -            do g <- graphTerm-               return (show g)--}--- [18][32]-var :: Parser Var -var = do {-         ; char '?' <|> char '$'-         ; variable <- (ncname2 <|> ncname1)-         ; skipS0-		 ; return (variable)-         }-        <?> "Variable"---- [19] [26]-graphTerm :: Parser RDFTerm-graphTerm = do-               a <-rdfTerm-               return (a) -          --  <|> -          --  (string "()" <?> "")---- [20]-rdfTerm :: Parser RDFTerm -rdfTerm = do u <- uri-             return (URIRef u)-          <|> rdfLiteral -          <|> blankNode -          <|> numericLiteral -          <|> booleanLiteral---- [21] -numericLiteral :: Parser RDFTerm-numericLiteral = do i <- try floatingPoint-                    return (RDFTypedLiteral i doubleD)-                 <|> -                 do f <- integerP-                    return (RDFTypedLiteral f integerD)-                    ---- [22]-rdfLiteral :: Parser RDFTerm -rdfLiteral = do-                a <- stringP-                (b,c) <- option ("","") (do l <-langtag-                                            return (l,"")-                                         <|>-                                         do string "\^\^" -                                            u <- uri-                                            return ("",u)-                                        )-                return (if (c =="") -                        then if (b == "")-                             then (RDFLiteral a)-                             else (RDFLangLiteral a b)                              -                        else (RDFTypedLiteral a c)-                        )          -                -            <?> "RDF Literal"---- [23]-booleanLiteral :: Parser RDFTerm-booleanLiteral = do caseString "TRUE"-                    return (RDFTypedLiteral "TRUE" booleanD) -                 <|> -                 do caseString "FALSE" -                    return (RDFTypedLiteral "FALSE" booleanD)-                 <?> "Boolean Literal"---- [25] [27] [30]-uri :: Parser URI -uri = do {char '<' -		 ;theUri <-many (noneOf ">") -		 ;char '>' <?> "end of URI"				  -		 ;return (theUri)-		 }-        <?> "URI"---- [26]-blankNode :: Parser RDFTerm -blankNode-        = do-            lab <- bnode_label -            return (BlankNode lab)-        <?> "BlankNode"-- <|> string "[]"---- [28] Integer [37] <INTEGER_10> und [42] <DIGITS>-integerP :: Parser String-integerP = many1 digit <?> "Integer"----[29] [38]-floatingPoint :: Parser String-floatingPoint -    = do-        a <- many1 digit-        b <- try (do -                    char '.'-                    c <- many digit-                    d <- option "" exponentP-                    return ('.':c++d)-                  <|>-                  exponentP-                )-        return (a++b)-      <|>-      do-        char '.'-        a <- many1 digit-        b <- option "" exponentP-        return ("0."++a++b)-      <?> "floating point"---- [39]-exponentP :: Parser String-exponentP = do-             a <- oneOf "eE"-             b <- option '+' (oneOf "+-")-             c <- many1 digit-             return (a:b:c) -             <?> "exponent"                     ---[31]-bnode_label :: Parser String-bnode_label = do-                string "_:"-                lab <- (ncname2 <|> ncname1) -                return lab---- [33][34][35][36]-langtag :: Parser String-langtag -	= do {char '@'-		 ;s1 <- many1 letter -		 ;s2 <- many (do -                         char '-' -                         s3 <- (many1 alphaNum)-                         return ('-' : s3)-                      )-		 ;return ((map toLower) $ (s1 ++ (concat s2)))-		 }-        <?> "Language Tag"---- [24]    -stringP :: Parser String-stringP = string_literal1 <|> string_literal2----[40]-string_literal1 :: Parser String-string_literal1 -    = do-        char '\'' -        str <- (many (noneOf "'\\\n\r")) -        char '\''-        return str----[41]-string_literal2 :: Parser String-string_literal2 -	= do-		char '"' -		str <- (many (noneOf "\"\\\n\r")) -		char '"'-		return str ---- [43]-ncchar1 :: Parser Char -ncchar1 =   oneOf ['A' .. 'Z'] -        <|> oneOf['a'..'z'] -        <|> oneOf ['\x00c0' .. '\x00D6']  -        <|> oneOf ['\x00D8' .. '\x00F6']-        <|> oneOf ['\x00F8' .. '\x02FF']-        <|> oneOf ['\x0370' .. '\x037D']-        <|> oneOf ['\x037F' .. '\x1FFF']-        <|> oneOf ['\x200C' .. '\x200D']-        <|> oneOf ['\x2070' .. '\x218F']-        <|> oneOf ['\x2C00' .. '\x2FEF']-        <|> oneOf ['\x3001' .. '\xD7FF']-        <|> oneOf ['\xF900' .. '\xFFFF']-       --- [44] [45]-ncchar_end :: Parser Char -ncchar_end = ncchar1 <|> char '_' <|> char '-' <|> digit <|> char '\x00B7'---- [45]---ncchar_full :: Parser Char---ncchar_full = ncchar_end <|>  char '.'----[46]-ncname1 :: Parser String -ncname1 = do-         c   <- ncchar1-         rs1 <- many ncchar_end-         rs2 <- many ( do-                       xs1 <- many1 (char '.')-                       xs2 <- many1 ncchar_end-                       return (xs1 ++ xs2)-                     )-         return (c : rs1 ++ concat rs2)----[47]-ncname2 :: Parser String -ncname2 = do-         c   <- char '_'-         rs1 <- many ncchar_end-         rs2 <- many ( do-                       xs1 <- many1 (char '.')-                       xs2 <- many1 ncchar_end-                       return (xs1 ++ xs2)-                     )-         return (c : rs1 ++ concat rs2)-
− doc/cookbook/doc/thesis.pdf

binary file changed (578620 → absent bytes)

− doc/cookbook/examples/example07.rdf
@@ -1,13 +0,0 @@-<?xml version="1.0"?>-<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"-         xmlns:dc="http://purl.org/dc/elements/1.1/"-         xmlns:ex="http://example.org/stuff/1.0/">-  <rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar"-		   dc:title="RDF/XML Syntax Specification (Revised)">-    <ex:editor>-      <rdf:Description ex:fullName="Dave Beckett">-	<ex:homePage rdf:resource="http://purl.org/net/dajobe/" />-      </rdf:Description>-    </ex:editor>-  </rdf:Description>-</rdf:RDF>
− doc/cookbook/examples/example07_1.rdf
@@ -1,12 +0,0 @@-<?xml version="1.0"?>-<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"-         xmlns:dc="http://purl.org/dc/elements/1.1/"-         xmlns:ex="http://example.org/stuff/1.0/">-  <rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar"-		   dc:title="RDF/XML Syntax Specification (Revised)">-    <ex:editor rdf:nodeID="abc"/>-  </rdf:Description>-  <rdf:Description rdf:nodeID="abc" ex:fullName="Dave Beckett">-	<ex:homePage rdf:resource="http://purl.org/net/dajobe/" />-  </rdf:Description>- </rdf:RDF>
− doc/cookbook/examples/example08.rdf
@@ -1,15 +0,0 @@-<?xml version="1.0" encoding="utf-8"?>-<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"-         xmlns:dc="http://purl.org/dc/elements/1.1/">-  <rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar">-    <dc:title>RDF/XML Syntax Specification (Revised)</dc:title>-    <dc:title xml:lang="en">RDF/XML Syntax Specification (Revised)</dc:title>-    <dc:title xml:lang="en-US">RDF/XML Syntax Specification (Revised)</dc:title>-  </rdf:Description>--  <rdf:Description rdf:about="http://example.org/buecher/baum" xml:lang="de">-    <dc:title>Der Baum</dc:title>-    <dc:description>Das Buch ist außergewöhnlich</dc:description>-    <dc:title xml:lang="en">The Tree</dc:title>-  </rdf:Description>-</rdf:RDF>
− doc/cookbook/examples/example09.rdf
@@ -1,11 +0,0 @@-<?xml version="1.0"?>-<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"-         xmlns:ex="http://example.org/stuff/1.0/">-  <rdf:Description rdf:about="http://example.org/item01">-    <ex:prop rdf:parseType="Literal"-             xmlns:a="http://example.org/a#"><a:Box required="true">-         <a:widget size="10" />-         <a:grommit id="23" /></a:Box>-    </ex:prop>-  </rdf:Description>-</rdf:RDF>
− doc/cookbook/examples/example1.rdf
@@ -1,14 +0,0 @@-<?xml version="1.0"?>-<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"-            xmlns:exterms="http://www.example.org/terms/"-            xmlns:dc="http://purl.org/dc/elements/1.1/">-<rdf:Description rdf:about="http://www.example.org/index.html">-    <exterms:creation-date>August 16, 1999</exterms:creation-date>-</rdf:Description>--<rdf:Description rdf:about="http://www.example.org/index.html">-    <dc:language>en</dc:language>-</rdf:Description>-<!--<rdf:Description rdf:about="http://www.example.org/index.html">-    <dc:creator rdf:resource="http://www.example.org/staffid/85740"/>-  </rdf:Description>-->-</rdf:RDF>
− doc/cookbook/examples/example10.rdf
@@ -1,7 +0,0 @@-<?xml version="1.0"?>-<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"-         xmlns:ex="http://example.org/stuff/1.0/">-  <rdf:Description rdf:about="http://example.org/item01">-    <ex:size rdf:datatype="http://www.w3.org/2001/XMLSchema#int">123</ex:size>-  </rdf:Description>-</rdf:RDF>
− doc/cookbook/examples/example11.rdf
@@ -1,14 +0,0 @@-<?xml version="1.0"?>-<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"-         xmlns:dc="http://purl.org/dc/elements/1.1/"-         xmlns:ex="http://example.org/stuff/1.0/">-  <rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar"-		   dc:title="RDF/XML Syntax Specification (Revised)">-    <ex:editor rdf:nodeID="abc"/>-  </rdf:Description>--  <rdf:Description rdf:nodeID="abc"-                   ex:fullName="Dave Beckett">-    <ex:homePage rdf:resource="http://purl.org/net/dajobe/"/>-  </rdf:Description>-</rdf:RDF>
− doc/cookbook/examples/example12.rdf
@@ -1,12 +0,0 @@-<?xml version="1.0"?>-<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"-         xmlns:dc="http://purl.org/dc/elements/1.1/"-         xmlns:ex="http://example.org/stuff/1.0/">-  <rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar"-		   dc:title="RDF/XML Syntax Specification (Revised)">-    <ex:editor rdf:parseType="Resource">-      <ex:fullName>Dave Beckett</ex:fullName>-      <ex:homePage rdf:resource="http://purl.org/net/dajobe/"/>-    </ex:editor>-  </rdf:Description>-</rdf:RDF>
− doc/cookbook/examples/example13.rdf
@@ -1,10 +0,0 @@-<?xml version="1.0"?>-<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"-         xmlns:dc="http://purl.org/dc/elements/1.1/"-         xmlns:ex="http://example.org/stuff/1.0/">-  <rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar"-		   dc:title="RDF/XML Syntax Specification (Revised)">-    <ex:editor ex:fullName="Dave Beckett" />-    <!-- Note the ex:homePage property has been ignored for this example -->-  </rdf:Description>-</rdf:RDF>
− doc/cookbook/examples/example14.rdf
@@ -1,9 +0,0 @@-<?xml version="1.0"?>-<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"-         xmlns:dc="http://purl.org/dc/elements/1.1/"-         xmlns:ex="http://example.org/stuff/1.0/">-  <rdf:Description rdf:about="http://example.org/thing">-    <rdf:type rdf:resource="http://example.org/stuff/1.0/Document"/>-    <dc:title>A marvelous thing</dc:title>-  </rdf:Description>-</rdf:RDF>
− doc/cookbook/examples/example15.rdf
@@ -1,8 +0,0 @@-<?xml version="1.0"?>-<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"-         xmlns:dc="http://purl.org/dc/elements/1.1/"-         xmlns:ex="http://example.org/stuff/1.0/">-  <ex:Document rdf:about="http://example.org/thing">-    <dc:title>A marvelous thing</dc:title>-  </ex:Document>-</rdf:RDF>
− doc/cookbook/examples/example16.rdf
@@ -1,8 +0,0 @@-<?xml version="1.0"?>-<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"-         xmlns:ex="http://example.org/stuff/1.0/"-         xml:base="http://example.org/here/">-  <rdf:Description rdf:ID="snack">-    <ex:prop rdf:resource="fruit/apple"/>-  </rdf:Description>-</rdf:RDF>
− doc/cookbook/examples/example17.rdf
@@ -1,8 +0,0 @@-<?xml version="1.0"?>-<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">-  <rdf:Seq rdf:about="http://example.org/favourite-fruit">-    <rdf:_1 rdf:resource="http://example.org/banana"/>-    <rdf:_2 rdf:resource="http://example.org/apple"/>-    <rdf:_3 rdf:resource="http://example.org/pear"/>-  </rdf:Seq>-</rdf:RDF>
− doc/cookbook/examples/example18.rdf
@@ -1,8 +0,0 @@-<?xml version="1.0"?>-<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">-  <rdf:Seq rdf:about="http://example.org/favourite-fruit">-    <rdf:li rdf:resource="http://example.org/banana"/>-    <rdf:li rdf:resource="http://example.org/apple"/>-    <rdf:li rdf:resource="http://example.org/pear"/>-  </rdf:Seq>-</rdf:RDF>
− doc/cookbook/examples/example19.rdf
@@ -1,11 +0,0 @@-<?xml version="1.0"?>-<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"-         xmlns:ex="http://example.org/stuff/1.0/">-  <rdf:Description rdf:about="http://example.org/basket">-    <ex:hasFruit rdf:parseType="Collection">-      <rdf:Description rdf:about="http://example.org/banana"/>-      <rdf:Description rdf:about="http://example.org/apple"/>-      <rdf:Description rdf:about="http://example.org/pear"/>-    </ex:hasFruit>-  </rdf:Description>-</rdf:RDF>
− doc/cookbook/examples/example2.rdf
@@ -1,9 +0,0 @@-<?xml version="1.0"?>-<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"-            xmlns:exterms="http://www.example.org/terms/"-            xmlns:dc="http://purl.org/dc/elements/1.1/">-    <rdf:Description rdf:about="http://www.example.org/index.html">-        <exterms:creation-date>August 16, 1999</exterms:creation-date>-        <dc:language>en</dc:language>-    </rdf:Description>-</rdf:RDF>
− doc/cookbook/examples/example20.rdf
@@ -1,8 +0,0 @@-<?xml version="1.0"?>-<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"-         xmlns:ex="http://example.org/stuff/1.0/"-         xml:base="http://example.org/triples/">-  <rdf:Description rdf:about="http://example.org/">-    <ex:prop rdf:ID="triple1">blah</ex:prop>-  </rdf:Description>-</rdf:RDF>
− doc/cookbook/examples/example3.rdf
@@ -1,16 +0,0 @@-<?xml version="1.0"?>-<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"-            xmlns:dc="http://purl.org/dc/elements/1.1/"-            xmlns:exterms="http://www.example.org/terms/">--  <rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar">-    <dc:title rdf:datatype="fdjhdfdfd">RDF/XML Syntax Specification (Revised)</dc:title>-    <exterms:editor rdf:nodeID="abc"/>-  </rdf:Description>--  <rdf:Description rdf:nodeID="abc">-    <exterms:fullName>Dave Beckett</exterms:fullName>-    <exterms:homePage rdf:resource="http://purl.org/net/dajobe/"/>-  </rdf:Description>--</rdf:RDF>
− doc/hvalidator/thesis/a2283.html
@@ -1,234 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">-<HTML-><HEAD-><TITLE->User handbook</TITLE-><META-NAME="GENERATOR"-CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK-REL="HOME"-TITLE="Design and Implementation of a validating XML parser in Haskell"-HREF="index.html"><LINK-REL="PREVIOUS"-TITLE="Conclusions and future work"-HREF="x2257.html"><LINK-REL="NEXT"-TITLE="Missing features and known problems"-HREF="x2308.html"></HEAD-><BODY-CLASS="appendix"-BGCOLOR="#FFFFFF"-TEXT="#000000"-LINK="#0000FF"-VLINK="#840084"-ALINK="#0000FF"-><DIV-CLASS="NAVHEADER"-><TABLE-SUMMARY="Header navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TH-COLSPAN="3"-ALIGN="center"->Design and Implementation of a validating XML parser in Haskell: Master's thesis; -			University of Applied Sciences Wedel-		</TH-></TR-><TR-><TD-WIDTH="10%"-ALIGN="left"-VALIGN="bottom"-><A-HREF="x2257.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="80%"-ALIGN="center"-VALIGN="bottom"-></TD-><TD-WIDTH="10%"-ALIGN="right"-VALIGN="bottom"-><A-HREF="x2308.html"-ACCESSKEY="N"->Next</A-></TD-></TR-></TABLE-><HR-ALIGN="LEFT"-WIDTH="100%"></DIV-><DIV-CLASS="appendix"-><H1-><A-NAME="a1"-></A->Appendix A. User handbook</H1-><DIV-CLASS="section"-><H1-CLASS="section"-><A-NAME="AEN2285"-></A->A.1. System requirements</H1-><P->&#13;		The Haskell XML Toolbox was developed with <SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->Hugs Version December 2001</I-></SPAN-> [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_hugs"-><SPAN-CLASS="abbrev"->WWW20</SPAN-></A-></SPAN->] and the <SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->Glasgow Haskell Compiler (GHC) 5.04</I-></SPAN-> [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_ghc"-><SPAN-CLASS="abbrev"->WWW19</SPAN-></A-></SPAN->] on Linux systems. Testing on Windows systems has not been done yet.-		</P-><P->&#13;		If you want to use the Haskell XML Toolbox in your own applications, just add the modules from the directories <TT-CLASS="filename"->hdom</TT->, <TT-CLASS="filename"->hparser</TT->, <TT-CLASS="filename"->hvalidator</TT-> and <TT-CLASS="filename"->parsec</TT-> to the path of your compiler or interpreter. It is planned to provide special GHC packages of the Haskell XML Toolbox in the near future.-		</P-><P->&#13;		To compile binary versions of the programs included in the Haskell XML Toolbox, the <SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->Glasgow Haskell Compiler</I-></SPAN-> and <SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->GNU make</I-></SPAN-> are needed.-		</P-><P->&#13;		To build the API documentation you must have installed <SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->HDoc</I-></SPAN-> [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_hdoc"-><SPAN-CLASS="abbrev"->WWW30</SPAN-></A-></SPAN->]. If you run <TT-CLASS="literal"->make hdoc</TT-> in the root directory of the Haskell XML Toolbox, the documentation will be generated and placed in the directory <TT-CLASS="filename"->doc/hdoc</TT->.-		</P-></DIV-></DIV-><DIV-CLASS="NAVFOOTER"-><HR-ALIGN="LEFT"-WIDTH="100%"><TABLE-SUMMARY="Footer navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"-><A-HREF="x2257.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="index.html"-ACCESSKEY="H"->Home</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"-><A-HREF="x2308.html"-ACCESSKEY="N"->Next</A-></TD-></TR-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"->Conclusions and future work</TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"->&nbsp;</TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"->Missing features and known problems</TD-></TR-></TABLE-></DIV-></BODY-></HTML->
− doc/hvalidator/thesis/a2458.html
@@ -1,176 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">-<HTML-><HEAD-><TITLE->MIT License</TITLE-><META-NAME="GENERATOR"-CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK-REL="HOME"-TITLE="Design and Implementation of a validating XML parser in Haskell"-HREF="index.html"><LINK-REL="PREVIOUS"-TITLE="Performance and profiling"-HREF="x2408.html"><LINK-REL="NEXT"-TITLE="Bibliography"-HREF="b2463.html"></HEAD-><BODY-CLASS="appendix"-BGCOLOR="#FFFFFF"-TEXT="#000000"-LINK="#0000FF"-VLINK="#840084"-ALINK="#0000FF"-><DIV-CLASS="NAVHEADER"-><TABLE-SUMMARY="Header navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TH-COLSPAN="3"-ALIGN="center"->Design and Implementation of a validating XML parser in Haskell: Master's thesis; -			University of Applied Sciences Wedel-		</TH-></TR-><TR-><TD-WIDTH="10%"-ALIGN="left"-VALIGN="bottom"-><A-HREF="x2408.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="80%"-ALIGN="center"-VALIGN="bottom"-></TD-><TD-WIDTH="10%"-ALIGN="right"-VALIGN="bottom"-><A-HREF="b2463.html"-ACCESSKEY="N"->Next</A-></TD-></TR-></TABLE-><HR-ALIGN="LEFT"-WIDTH="100%"></DIV-><DIV-CLASS="appendix"-><H1-><A-NAME="a2"-></A->Appendix B. MIT License</H1-><P->&#13;	The Haskell XML Toolbox shall be used be many people and is therefore distributed under the MIT License.-	</P-><P-></P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;The MIT License--Copyright (c) 2002 Uwe Schmidt, Martin Schmidt--Permission is hereby granted, free of charge, to any person obtaining a-copy of this software and associated documentation files (the "Software"),-to deal in the Software without restriction, including without limitation-the rights to use, copy, modify, merge, publish, distribute, sublicense,-and/or sell copies of the Software, and to permit persons to whom the-Software is furnished to do so, subject to the following conditions:--The above copyright notice and this permission notice shall be included-in all copies or substantial portions of the Software.--THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL-THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER-DEALINGS IN THE SOFTWARE.-	</PRE-></TD-></TR-></TABLE-></DIV-><DIV-CLASS="NAVFOOTER"-><HR-ALIGN="LEFT"-WIDTH="100%"><TABLE-SUMMARY="Footer navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"-><A-HREF="x2408.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="index.html"-ACCESSKEY="H"->Home</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"-><A-HREF="b2463.html"-ACCESSKEY="N"->Next</A-></TD-></TR-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"->Performance and profiling</TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"->&nbsp;</TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"->Bibliography</TD-></TR-></TABLE-></DIV-></BODY-></HTML->
− doc/hvalidator/thesis/b2463.html
@@ -1,886 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">-<HTML-><HEAD-><TITLE->Bibliography</TITLE-><META-NAME="GENERATOR"-CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK-REL="HOME"-TITLE="Design and Implementation of a validating XML parser in Haskell"-HREF="index.html"><LINK-REL="PREVIOUS"-TITLE="MIT License"-HREF="a2458.html"><LINK-REL="NEXT"-TITLE="Affidavit"-HREF="b2739.html"></HEAD-><BODY-CLASS="bibliography"-BGCOLOR="#FFFFFF"-TEXT="#000000"-LINK="#0000FF"-VLINK="#840084"-ALINK="#0000FF"-><DIV-CLASS="NAVHEADER"-><TABLE-SUMMARY="Header navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TH-COLSPAN="3"-ALIGN="center"->Design and Implementation of a validating XML parser in Haskell: Master's thesis; -			University of Applied Sciences Wedel-		</TH-></TR-><TR-><TD-WIDTH="10%"-ALIGN="left"-VALIGN="bottom"-><A-HREF="a2458.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="80%"-ALIGN="center"-VALIGN="bottom"-></TD-><TD-WIDTH="10%"-ALIGN="right"-VALIGN="bottom"-><A-HREF="b2739.html"-ACCESSKEY="N"->Next</A-></TD-></TR-></TABLE-><HR-ALIGN="LEFT"-WIDTH="100%"></DIV-><A-NAME="AEN2463"-></A-><H1-><A-NAME="AEN2463"-></A->Bibliography</H1-><H2-CLASS="bibliodiv"-><A-NAME="AEN2464"-></A->Print resources</H2-><DIV-CLASS="biblioentry"-><A-NAME="thompson99"-></A-><P->[Thompson99]&nbsp;<I->The craft of Functional Programming</I-><I->: </I-><I->2nd Edition</I->, <SPAN-CLASS="AUTHOR"->Simon Thompson</SPAN->, Addison Wesley, 1999, 0-201-34275-8.</P-><DIV-CLASS="BIBLIOENTRYBLOCK"-STYLE="margin-left: 0.5in"-></DIV-></DIV-><DIV-CLASS="biblioentry"-><A-NAME="hudak00"-></A-><P->[Hudak00]&nbsp;<I->The Haskell School of Expression</I-><I->: </I-><I->Learning functional programming through multimedia</I->, <SPAN-CLASS="AUTHOR"->Paul Hudak</SPAN->, Cambridge University Press, 2000, 0-521-64408-9.</P-><DIV-CLASS="BIBLIOENTRYBLOCK"-STYLE="margin-left: 0.5in"-></DIV-></DIV-><DIV-CLASS="biblioentry"-><A-NAME="brzozowski64"-></A-><P->[Brzozowski64]&nbsp;<I->Derivatives of Regular Expressions</I->, <SPAN-CLASS="AUTHOR"->Janusz A. Brzozowski</SPAN->, Journal of the ACM, Volume 11, Issue 4, 1964.</P-><DIV-CLASS="BIBLIOENTRYBLOCK"-STYLE="margin-left: 0.5in"-></DIV-></DIV-><H2-CLASS="bibliodiv"-><A-NAME="AEN2499"-></A->Online resources</H2-><DIV-CLASS="biblioentry"-><A-NAME="bib_xml"-></A-><P->[WWW01]&nbsp;<I->Extensible Markup Language (XML) 1.0</I->, <SPAN-CLASS="AUTHOR"->W3C</SPAN->, 2000, -					<A-HREF="http://www.w3.org/TR/2000/REC-xml-20001006"-TARGET="_top"->http://www.w3.org/TR/2000/REC-xml-20001006</A->-				.</P-><DIV-CLASS="BIBLIOENTRYBLOCK"-STYLE="margin-left: 0.5in"-></DIV-></DIV-><DIV-CLASS="biblioentry"-><A-NAME="bib_xmlts"-></A-><P->[WWW02]&nbsp;<I->Extensible Markup Language (XML) Conformance Test Suites</I->, -					<A-HREF="http://www.w3.org/XML/Test/"-TARGET="_top"->http://www.w3.org/XML/Test/</A->-				.</P-><DIV-CLASS="BIBLIOENTRYBLOCK"-STYLE="margin-left: 0.5in"-></DIV-></DIV-><DIV-CLASS="biblioentry"-><A-NAME="bib_canxml"-></A-><P->[WWW03]&nbsp;<I->Canonical XML, Version 1.0</I->, <SPAN-CLASS="AUTHOR"->John Boyer</SPAN->, -					<A-HREF="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"-TARGET="_top"->http://www.w3.org/TR/2001/REC-xml-c14n-20010315</A->-				.</P-><DIV-CLASS="BIBLIOENTRYBLOCK"-STYLE="margin-left: 0.5in"-></DIV-></DIV-><DIV-CLASS="biblioentry"-><A-NAME="bib_xmlquickref"-></A-><P->[WWW04]&nbsp;<I->XML Syntax Quick Reference</I->, <SPAN-CLASS="AUTHOR"->Mulberry Technologies, Inc.</SPAN->, -					<A-HREF="http://www.mulberrytech.com/quickref/XMLquickref.pdf"-TARGET="_top"->http://www.mulberrytech.com/quickref/XMLquickref.pdf</A->-				.</P-><DIV-CLASS="BIBLIOENTRYBLOCK"-STYLE="margin-left: 0.5in"-></DIV-></DIV-><DIV-CLASS="biblioentry"-><A-NAME="bib_dom"-></A-><P->[WWW05]&nbsp;<I->Document Object Model (DOM)</I->, <SPAN-CLASS="AUTHOR"->W3C DOM Working Group</SPAN->, -					<A-HREF="http://www.w3.org/DOM/"-TARGET="_top"->http://www.w3.org/DOM/</A->-				.</P-><DIV-CLASS="BIBLIOENTRYBLOCK"-STYLE="margin-left: 0.5in"-></DIV-></DIV-><DIV-CLASS="biblioentry"-><A-NAME="bib_jdom"-></A-><P->[WWW06]&nbsp;<I->JDOM</I->, -					<A-HREF="http://www.jdom.org"-TARGET="_top"->http://www.jdom.org</A->-				.</P-><DIV-CLASS="BIBLIOENTRYBLOCK"-STYLE="margin-left: 0.5in"-></DIV-></DIV-><DIV-CLASS="biblioentry"-><A-NAME="bib_xsl"-></A-><P->[WWW07]&nbsp;<I->The Extensible Stylesheet Language (XSL)</I->, <SPAN-CLASS="AUTHOR"->XSL Working Group</SPAN->, -					<A-HREF="http://www.w3.org/Style/XSL/"-TARGET="_top"->http://www.w3.org/Style/XSL/</A->-				.</P-><DIV-CLASS="BIBLIOENTRYBLOCK"-STYLE="margin-left: 0.5in"-></DIV-></DIV-><DIV-CLASS="biblioentry"-><A-NAME="bib_schema"-></A-><P->[WWW08]&nbsp;<I->XML Schema</I->, <SPAN-CLASS="AUTHOR"->C. M. Sperberg-McQueen, Henry Thompson</SPAN->, -					<A-HREF="http://www.w3.org/XML/Schema"-TARGET="_top"->http://www.w3.org/XML/Schema</A->-				.</P-><DIV-CLASS="BIBLIOENTRYBLOCK"-STYLE="margin-left: 0.5in"-></DIV-></DIV-><DIV-CLASS="biblioentry"-><A-NAME="bib_dsssl"-></A-><P->[WWW09]&nbsp;<I->ISO/IEC 10179:1996 - Document Style Semantics and Specification Language</I->, <SPAN-CLASS="AUTHOR"->James Clark</SPAN->, -					<A-HREF="http://www.jclark.com/dsssl/"-TARGET="_top"->http://www.jclark.com/dsssl/</A->-				.</P-><DIV-CLASS="BIBLIOENTRYBLOCK"-STYLE="margin-left: 0.5in"-></DIV-></DIV-><DIV-CLASS="biblioentry"-><A-NAME="bib_sax"-></A-><P->[WWW10]&nbsp;<I->Simple API for XML (SAX)</I->, <SPAN-CLASS="AUTHOR"->David Brownell</SPAN->, -					<A-HREF="http://www.saxproject.org/"-TARGET="_top"->http://www.saxproject.org/</A->-				.</P-><DIV-CLASS="BIBLIOENTRYBLOCK"-STYLE="margin-left: 0.5in"-></DIV-></DIV-><DIV-CLASS="biblioentry"-><A-NAME="bib_haskellorg"-></A-><P->[WWW11]&nbsp;<I->Haskell.org</I->, -					<A-HREF="http://www.haskell.org"-TARGET="_top"->http://www.haskell.org</A->-				.</P-><DIV-CLASS="BIBLIOENTRYBLOCK"-STYLE="margin-left: 0.5in"-></DIV-></DIV-><DIV-CLASS="biblioentry"-><A-NAME="bib_haskellbrooks"-></A-><P->[WWW12]&nbsp;<I->Haskell Brooks Curry</I->, <SPAN-CLASS="AUTHOR"->J. O'Connor, E. F. Robertson</SPAN->, -					<A-HREF="http://www-gap.dcs.st-and.ac.uk/~history/Mathematicians/Curry.html"-TARGET="_top"->http://www-gap.dcs.st-and.ac.uk/~history/Mathematicians/Curry.html</A->-				.</P-><DIV-CLASS="BIBLIOENTRYBLOCK"-STYLE="margin-left: 0.5in"-></DIV-></DIV-><DIV-CLASS="biblioentry"-><A-NAME="bib_abouthaskell"-></A-><P->[WWW13]&nbsp;<I->About Haskell</I->, <SPAN-CLASS="AUTHOR"->Based on a paper by Simon Peyton Jones.</SPAN->, December 2001, -					<A-HREF="http://www.haskell.org/aboutHaskell.html"-TARGET="_top"->http://www.haskell.org/aboutHaskell.html</A->-				.</P-><DIV-CLASS="BIBLIOENTRYBLOCK"-STYLE="margin-left: 0.5in"-></DIV-></DIV-><DIV-CLASS="biblioentry"-><A-NAME="bib_gentelinstruction"-></A-><P->[WWW14]&nbsp;<I->A Gentle Introduction to Haskell, Version 98</I->, <SPAN-CLASS="AUTHOR"->Paul Hudak, John Peterson, Joseph Fasel</SPAN->, June 2000, -					<A-HREF="http://www.haskell.org/tutorial/index.html"-TARGET="_top"->http://www.haskell.org/tutorial/index.html</A->-				.</P-><DIV-CLASS="BIBLIOENTRYBLOCK"-STYLE="margin-left: 0.5in"-></DIV-></DIV-><DIV-CLASS="biblioentry"-><A-NAME="bib_98report"-></A-><P->[WWW15]&nbsp;<I->The Haskell 98 Report</I->, <SPAN-CLASS="AUTHOR"->Simon Peyton Jones, John Hughes et al.</SPAN->, -					<A-HREF="http://www.haskell.org/onlinereport/"-TARGET="_top"->http://www.haskell.org/onlinereport/</A->-				.</P-><DIV-CLASS="BIBLIOENTRYBLOCK"-STYLE="margin-left: 0.5in"-></DIV-></DIV-><DIV-CLASS="biblioentry"-><A-NAME="bib_98libraryreport"-></A-><P->[WWW16]&nbsp;<I->The Haskell 98 Library Report</I->, <SPAN-CLASS="AUTHOR"->Simon Peyton Jones, John Hughes et al.</SPAN->, -					<A-HREF="http://www.haskell.org/onlinelibrary/"-TARGET="_top"->http://www.haskell.org/onlinelibrary/</A->-				.</P-><DIV-CLASS="BIBLIOENTRYBLOCK"-STYLE="margin-left: 0.5in"-></DIV-></DIV-><DIV-CLASS="biblioentry"-><A-NAME="bib_bookshelf"-></A-><P->[WWW17]&nbsp;<I->The Haskell Bookshelf</I->, -					<A-HREF="http://www.haskell.org/bookshelf/"-TARGET="_top"->http://www.haskell.org/bookshelf/</A->-				.</P-><DIV-CLASS="BIBLIOENTRYBLOCK"-STYLE="margin-left: 0.5in"-></DIV-></DIV-><DIV-CLASS="biblioentry"-><A-NAME="bib_matters"-></A-><P->[WWW18]&nbsp;<I->Why Functional Programming Matters</I->, <SPAN-CLASS="AUTHOR"->John Hughes</SPAN->, -					<A-HREF="http://www.math.chalmers.se/~rjmh/Papers/whyfp.html"-TARGET="_top"->http://www.math.chalmers.se/~rjmh/Papers/whyfp.html</A->-				, 1984.</P-><DIV-CLASS="BIBLIOENTRYBLOCK"-STYLE="margin-left: 0.5in"-></DIV-></DIV-><DIV-CLASS="biblioentry"-><A-NAME="bib_ghc"-></A-><P->[WWW19]&nbsp;<I->GHC</I->, -					<A-HREF="http://www.haskell.org/ghc"-TARGET="_top"->http://www.haskell.org/ghc</A->-				.</P-><DIV-CLASS="BIBLIOENTRYBLOCK"-STYLE="margin-left: 0.5in"-></DIV-></DIV-><DIV-CLASS="biblioentry"-><A-NAME="bib_hugs"-></A-><P->[WWW20]&nbsp;<I->Hugs</I->, -					<A-HREF="http://www.haskell.org/hugs"-TARGET="_top"->http://www.haskell.org/hugs</A->-				.</P-><DIV-CLASS="BIBLIOENTRYBLOCK"-STYLE="margin-left: 0.5in"-></DIV-></DIV-><DIV-CLASS="biblioentry"-><A-NAME="bib_haxml"-></A-><P->[WWW21]&nbsp;<I->HaXml: Haskell and XML</I->, <SPAN-CLASS="AUTHOR"->Malcolm Wallace, Colin Runciman</SPAN->, -					<A-HREF="http://www.cs.york.ac.uk/fp/HaXml/"-TARGET="_top"->http://www.cs.york.ac.uk/fp/HaXml/</A->-				.</P-><DIV-CLASS="BIBLIOENTRYBLOCK"-STYLE="margin-left: 0.5in"-></DIV-></DIV-><DIV-CLASS="biblioentry"-><A-NAME="bib_haxmlpaper"-></A-><P->[WWW22]&nbsp;<I->Haskell and XML: Generic Combinators or Type-Based Translation?</I->, <SPAN-CLASS="AUTHOR"->Malcolm Wallace, Colin Runciman, John Boyer</SPAN->, -					<A-HREF="http://www.cs.york.ac.uk/fp/HaXml/icfp99.html"-TARGET="_top"->http://www.cs.york.ac.uk/fp/HaXml/icfp99.html</A->-				.</P-><DIV-CLASS="BIBLIOENTRYBLOCK"-STYLE="margin-left: 0.5in"-></DIV-></DIV-><DIV-CLASS="biblioentry"-><A-NAME="bib_haxml_mertz"-></A-><P->[WWW23]&nbsp;<I->The HaXml functional programming model for XML</I->, <SPAN-CLASS="AUTHOR"->David Mertz</SPAN->, October 2001, -					<A-HREF="http://www-106.ibm.com/developerworks/xml/library/x-matters14.html"-TARGET="_top"->http://www-106.ibm.com/developerworks/xml/library/x-matters14.html</A->-				.</P-><DIV-CLASS="BIBLIOENTRYBLOCK"-STYLE="margin-left: 0.5in"-></DIV-></DIV-><DIV-CLASS="biblioentry"-><A-NAME="bib_haxml_parsia"-></A-><P->[WWW24]&nbsp;<I->Functional Programming and XML</I->, <SPAN-CLASS="AUTHOR"->Bijan Parsia</SPAN->, 2000, -					<A-HREF="http://www.xml.com/lpt/a/2001/02/14/functional.html"-TARGET="_top"->http://www.xml.com/lpt/a/2001/02/14/functional.html</A->-				.</P-><DIV-CLASS="BIBLIOENTRYBLOCK"-STYLE="margin-left: 0.5in"-></DIV-></DIV-><DIV-CLASS="biblioentry"-><A-NAME="bib_hxml"-></A-><P->[WWW25]&nbsp;<I->HXML</I->, <SPAN-CLASS="AUTHOR"->Joe English</SPAN->, -					<A-HREF="http://www.flightlab.com/~joe/hxml/"-TARGET="_top"->http://www.flightlab.com/~joe/hxml/</A->-				.</P-><DIV-CLASS="BIBLIOENTRYBLOCK"-STYLE="margin-left: 0.5in"-></DIV-></DIV-><DIV-CLASS="biblioentry"-><A-NAME="bib_derivates_je"-></A-><P->[WWW26]&nbsp;<I->How to validate XML</I->, <SPAN-CLASS="AUTHOR"->Joe English</SPAN->, 1999, -					<A-HREF="http://www.flightlab.com/~joe/sgml/validate.html"-TARGET="_top"->http://www.flightlab.com/~joe/sgml/validate.html</A->-				.</P-><DIV-CLASS="BIBLIOENTRYBLOCK"-STYLE="margin-left: 0.5in"-></DIV-></DIV-><DIV-CLASS="biblioentry"-><A-NAME="bib_derivates_mh"-></A-><P->[WWW27]&nbsp;<I->Regular Expression Package. Posted to comp.compilers.</I->, <SPAN-CLASS="AUTHOR"->Mark Hopkins</SPAN->, 1994, -					<A-HREF="http://compilers.iecc.com/comparch/article/94-02-109"-TARGET="_top"->http://compilers.iecc.com/comparch/article/94-02-109</A->-					<A-HREF="ftp://iecc.com/pub/file/regex.tar.gz"-TARGET="_top"->ftp://iecc.com/pub/file/regex.tar.gz</A->-				.</P-><DIV-CLASS="BIBLIOENTRYBLOCK"-STYLE="margin-left: 0.5in"-></DIV-></DIV-><DIV-CLASS="biblioentry"-><A-NAME="bib_derivates_jc"-></A-><P->[WWW28]&nbsp;<I->An algorithm for RELAX NG validation</I->, <SPAN-CLASS="AUTHOR"->James Clark</SPAN->, February 2002, -					<A-HREF="http://www.thaiopensource.com/relaxng/derivative.html"-TARGET="_top"->http://www.thaiopensource.com/relaxng/derivative.html</A->-				.</P-><DIV-CLASS="BIBLIOENTRYBLOCK"-STYLE="margin-left: 0.5in"-></DIV-></DIV-><DIV-CLASS="biblioentry"-><A-NAME="bib_parsec"-></A-><P->[WWW29]&nbsp;<I->Parsec</I->, <SPAN-CLASS="AUTHOR"->Daan Leijen</SPAN->, -					<A-HREF="http://www.cs.uu.nl/~daan/parsec.html"-TARGET="_top"->http://www.cs.uu.nl/~daan/parsec.html</A->-				.</P-><DIV-CLASS="BIBLIOENTRYBLOCK"-STYLE="margin-left: 0.5in"-></DIV-></DIV-><DIV-CLASS="biblioentry"-><A-NAME="bib_hdoc"-></A-><P->[WWW30]&nbsp;<I->HDoc</I->, <SPAN-CLASS="AUTHOR"->Armin Groesslinger</SPAN->, -					<A-HREF="http://www.fmi.uni-passau.de/~groessli/hdoc/"-TARGET="_top"->http://www.fmi.uni-passau.de/~groessli/hdoc/</A->-				.</P-><DIV-CLASS="BIBLIOENTRYBLOCK"-STYLE="margin-left: 0.5in"-></DIV-></DIV-><DIV-CLASS="NAVFOOTER"-><HR-ALIGN="LEFT"-WIDTH="100%"><TABLE-SUMMARY="Footer navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"-><A-HREF="a2458.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="index.html"-ACCESSKEY="H"->Home</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"-><A-HREF="b2739.html"-ACCESSKEY="N"->Next</A-></TD-></TR-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"->MIT License</TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"->&nbsp;</TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"->Affidavit</TD-></TR-></TABLE-></DIV-></BODY-></HTML->
− doc/hvalidator/thesis/b2739.html
@@ -1,171 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">-<HTML-><HEAD-><TITLE->Affidavit</TITLE-><META-NAME="GENERATOR"-CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK-REL="HOME"-TITLE="Design and Implementation of a validating XML parser in Haskell"-HREF="index.html"><LINK-REL="PREVIOUS"-TITLE="Bibliography"-HREF="b2463.html"></HEAD-><BODY-CLASS="bibliography"-BGCOLOR="#FFFFFF"-TEXT="#000000"-LINK="#0000FF"-VLINK="#840084"-ALINK="#0000FF"-><DIV-CLASS="NAVHEADER"-><TABLE-SUMMARY="Header navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TH-COLSPAN="3"-ALIGN="center"->Design and Implementation of a validating XML parser in Haskell: Master's thesis; -			University of Applied Sciences Wedel-		</TH-></TR-><TR-><TD-WIDTH="10%"-ALIGN="left"-VALIGN="bottom"-><A-HREF="b2463.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="80%"-ALIGN="center"-VALIGN="bottom"-></TD-><TD-WIDTH="10%"-ALIGN="right"-VALIGN="bottom"->&nbsp;</TD-></TR-></TABLE-><HR-ALIGN="LEFT"-WIDTH="100%"></DIV-><A-NAME="AEN2739"-></A-><H1-><A-NAME="AEN2739"-></A->Affidavit</H1-><P->&#13;	I hereby declare that this master thesis has been written only by the undersigned and without any assistance from third parties.-	</P-><P->&#13;	Furthermore, I confirm that no sources have been used in the preparation of this thesis other than those indicated in the thesis itself.-	</P-><P-></P-><P-></P-><P-></P-><P->&#13;	Hamburg, 2002-09-02-	</P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;-------------------------------------------------------------------Place, Date Signature- 	</PRE-></TD-></TR-></TABLE-><DIV-CLASS="biblioentry"-><A-NAME="AEN2748"-></A-><P-><SPAN-CLASS="AUTHOR"-></SPAN->.</P-><DIV-CLASS="BIBLIOENTRYBLOCK"-STYLE="margin-left: 0.5in"-></DIV-></DIV-><DIV-CLASS="NAVFOOTER"-><HR-ALIGN="LEFT"-WIDTH="100%"><TABLE-SUMMARY="Footer navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"-><A-HREF="b2463.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="index.html"-ACCESSKEY="H"->Home</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"->&nbsp;</TD-></TR-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"->Bibliography</TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"->&nbsp;</TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"->&nbsp;</TD-></TR-></TABLE-></DIV-></BODY-></HTML->
− doc/hvalidator/thesis/c1645.html
@@ -1,262 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">-<HTML-><HEAD-><TITLE->Package hparser</TITLE-><META-NAME="GENERATOR"-CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK-REL="HOME"-TITLE="Design and Implementation of a validating XML parser in Haskell"-HREF="index.html"><LINK-REL="PREVIOUS"-TITLE="State-I/O monad from module XmlState"-HREF="x1577.html"><LINK-REL="NEXT"-TITLE="Module HdomParser"-HREF="x1694.html"></HEAD-><BODY-CLASS="chapter"-BGCOLOR="#FFFFFF"-TEXT="#000000"-LINK="#0000FF"-VLINK="#840084"-ALINK="#0000FF"-><DIV-CLASS="NAVHEADER"-><TABLE-SUMMARY="Header navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TH-COLSPAN="3"-ALIGN="center"->Design and Implementation of a validating XML parser in Haskell: Master's thesis; -			University of Applied Sciences Wedel-		</TH-></TR-><TR-><TD-WIDTH="10%"-ALIGN="left"-VALIGN="bottom"-><A-HREF="x1577.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="80%"-ALIGN="center"-VALIGN="bottom"-></TD-><TD-WIDTH="10%"-ALIGN="right"-VALIGN="bottom"-><A-HREF="x1694.html"-ACCESSKEY="N"->Next</A-></TD-></TR-></TABLE-><HR-ALIGN="LEFT"-WIDTH="100%"></DIV-><DIV-CLASS="chapter"-><H1-><A-NAME="c3"-></A->Chapter 3. Package hparser</H1-><P->&#13;	The following chapter describes the package <TT-CLASS="filename"->hparser</TT->. It contains all modules for parsing XML files and checking the well-formedness constraints of XML. Validation, normalizing attribute values and adding default values is done by the separate package <TT-CLASS="filename"->hvalidator</TT->.-	</P-><P->&#13;	The parser works internally with filters for reading XML data and processing the constructed <TT-CLASS="literal"->XmlTree</TT->. The whole parser works with filters of type <TT-CLASS="literal"->XmlStateFilter</TT-> from the module <TT-CLASS="classname"->XmlState</TT-> so that trace-output of the computations can be generated, errors can be reported and some state information can be saved where it is necessary.-	</P-><DIV-CLASS="section"-><H1-CLASS="section"-><A-NAME="AEN1654"-></A->3.1. Overview</H1-><P->&#13;		The package <TT-CLASS="filename"->hparser</TT-> provides five public modules for implementing an XML parser, which builds the generic tree data structure <TT-CLASS="literal"->XmlTree</TT-> from XML documents.-		</P-><P-></P-><DIV-CLASS="variablelist"-><P-><B->Modules</B-></P-><DL-><DT-><TT-CLASS="function"->HdomParser</TT-></DT-><DD-><P->&#13;					 Basic parser for building the generic tree data structure <TT-CLASS="literal"->XmlTree</TT->. Bases on <TT-CLASS="classname"->XmlParser</TT->, <TT-CLASS="classname"->XmlInput</TT-> and <TT-CLASS="classname"->DTDProcessing</TT->.-					</P-></DD-><DT-><TT-CLASS="function"->XmlParser</TT-></DT-><DD-><P->&#13;					Parses XML files. Bases on the free monadic parser combinator library Parsec [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_parsec"-><SPAN-CLASS="abbrev"->WWW29</SPAN-></A-></SPAN->].-					</P-></DD-><DT-><TT-CLASS="function"->XmlInput</TT-></DT-><DD-><P->Reads XML files, handles different character encodings.</P-></DD-><DT-><TT-CLASS="function"->DTDProcessing</TT-></DT-><DD-><P->Processes the DTD. Substitution of general and parameter entities, merging of the internal and external DTD subset.</P-></DD-><DT-><TT-CLASS="function"->XmlOutput</TT-></DT-><DD-><P->Prints the parsed data by using the <TT-CLASS="literal"->XmlStateFilter</TT-> defined in module <TT-CLASS="classname"->XmlState</TT->.</P-></DD-></DL-></DIV-></DIV-></DIV-><DIV-CLASS="NAVFOOTER"-><HR-ALIGN="LEFT"-WIDTH="100%"><TABLE-SUMMARY="Footer navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"-><A-HREF="x1577.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="index.html"-ACCESSKEY="H"->Home</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"-><A-HREF="x1694.html"-ACCESSKEY="N"->Next</A-></TD-></TR-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"->State-I/O monad from module XmlState</TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"->&nbsp;</TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"->Module HdomParser</TD-></TR-></TABLE-></DIV-></BODY-></HTML->
− doc/hvalidator/thesis/c1850.html
@@ -1,260 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">-<HTML-><HEAD-><TITLE->Package hvalidator</TITLE-><META-NAME="GENERATOR"-CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK-REL="HOME"-TITLE="Design and Implementation of a validating XML parser in Haskell"-HREF="index.html"><LINK-REL="PREVIOUS"-TITLE="Module XmlOutput"-HREF="x1830.html"><LINK-REL="NEXT"-TITLE="Creating a validating XML parser"-HREF="x1900.html"></HEAD-><BODY-CLASS="chapter"-BGCOLOR="#FFFFFF"-TEXT="#000000"-LINK="#0000FF"-VLINK="#840084"-ALINK="#0000FF"-><DIV-CLASS="NAVHEADER"-><TABLE-SUMMARY="Header navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TH-COLSPAN="3"-ALIGN="center"->Design and Implementation of a validating XML parser in Haskell: Master's thesis; -			University of Applied Sciences Wedel-		</TH-></TR-><TR-><TD-WIDTH="10%"-ALIGN="left"-VALIGN="bottom"-><A-HREF="x1830.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="80%"-ALIGN="center"-VALIGN="bottom"-></TD-><TD-WIDTH="10%"-ALIGN="right"-VALIGN="bottom"-><A-HREF="x1900.html"-ACCESSKEY="N"->Next</A-></TD-></TR-></TABLE-><HR-ALIGN="LEFT"-WIDTH="100%"></DIV-><DIV-CLASS="chapter"-><H1-><A-NAME="c4"-></A->Chapter 4. Package hvalidator</H1-><P->&#13;	This chapter describes the package <TT-CLASS="filename"->hvalidator</TT-> which provides all functions for validating XML documents represented as <TT-CLASS="literal"->XmlTree</TT->. The validation process basically consists of three phases. First the DTD is validated, after this the document is validated. In the last step the document is transformed: missing default values are added and attribute values are normalized. Unlike other popular XML validation tools the validation functions return a list of errors instead of aborting after the first error was found.-	</P-><P->&#13;	While the modules from package <TT-CLASS="filename"->hparser</TT-> use a monadic approach, these modules are written purely functional. Validation is done by filter functions of type <TT-CLASS="literal"->XmlFilter</TT->. These filters return a list of errors or an empty list if no errors are detected.-	</P-><DIV-CLASS="section"-><H1-CLASS="section"-><A-NAME="module_hierarchy"-></A->4.1. Module hierarchy</H1-><P->&#13;		The only public module for validating XML documents is the module <TT-CLASS="classname"->Validation</TT->. It exports all functions for validating and transforming XML documents. <TT-CLASS="classname"->Validation</TT-> is basically a helper module, which combines the functionalities of the internal modules taking part at validation and transformation.-		</P-><P-></P-><DIV-CLASS="variablelist"-><P-><B->Internal modules</B-></P-><DL-><DT-><TT-CLASS="function"->DTDValidation</TT-></DT-><DD-><P->&#13;					Provides functions for validating the DTD of XML documents.-					</P-></DD-><DT-><TT-CLASS="function"->DocValidation</TT-></DT-><DD-><P->&#13;					Provides functions for validating the elements and attributes of XML documents.-					</P-></DD-><DT-><TT-CLASS="function"->DocTransformation</TT-></DT-><DD-><P->&#13;					Provides functions for transforming XML documents after they have been validated. The transformation phase is part of the validation process.-					</P-></DD-><DT-><TT-CLASS="function"->AttributeValueValidation</TT-></DT-><DD-><P->&#13;					Provides functions to normalize attribute values and to check if the attribute value matches the lexical constraints of its type.-					</P-></DD-><DT-><TT-CLASS="function"->XmlRE</TT-> and <TT-CLASS="function"->RE</TT-></DT-><DD-><P->&#13;					Support <TT-CLASS="function"->DocValidation</TT-> by validating the content model of an element. The algorithm used is based on derivatives of regular expressions.-					</P-></DD-></DL-></DIV-><P->&#13;        	<DIV-CLASS="figure"-><A-NAME="modules_hvalidator"-></A-><P-><B->Figure 4-1. Modules of package hvalidator</B-></P-><DIV-CLASS="mediaobject"-><P-><IMG-SRC="images/modules_hvalidator.gif"></P-></DIV-></DIV->-        </P-></DIV-></DIV-><DIV-CLASS="NAVFOOTER"-><HR-ALIGN="LEFT"-WIDTH="100%"><TABLE-SUMMARY="Footer navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"-><A-HREF="x1830.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="index.html"-ACCESSKEY="H"->Home</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"-><A-HREF="x1900.html"-ACCESSKEY="N"->Next</A-></TD-></TR-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"->Module XmlOutput</TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"->&nbsp;</TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"->Creating a validating XML parser</TD-></TR-></TABLE-></DIV-></BODY-></HTML->
− doc/hvalidator/thesis/c2165.html
@@ -1,240 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">-<HTML-><HEAD-><TITLE->Conclusion</TITLE-><META-NAME="GENERATOR"-CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK-REL="HOME"-TITLE="Design and Implementation of a validating XML parser in Haskell"-HREF="index.html"><LINK-REL="PREVIOUS"-TITLE="Derivatives of regular expressions"-HREF="x2086.html"><LINK-REL="NEXT"-TITLE="The Haskell XML Toolbox in comparison to HaXml and HXML"-HREF="x2201.html"></HEAD-><BODY-CLASS="chapter"-BGCOLOR="#FFFFFF"-TEXT="#000000"-LINK="#0000FF"-VLINK="#840084"-ALINK="#0000FF"-><DIV-CLASS="NAVHEADER"-><TABLE-SUMMARY="Header navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TH-COLSPAN="3"-ALIGN="center"->Design and Implementation of a validating XML parser in Haskell: Master's thesis; -			University of Applied Sciences Wedel-		</TH-></TR-><TR-><TD-WIDTH="10%"-ALIGN="left"-VALIGN="bottom"-><A-HREF="x2086.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="80%"-ALIGN="center"-VALIGN="bottom"-></TD-><TD-WIDTH="10%"-ALIGN="right"-VALIGN="bottom"-><A-HREF="x2201.html"-ACCESSKEY="N"->Next</A-></TD-></TR-></TABLE-><HR-ALIGN="LEFT"-WIDTH="100%"></DIV-><DIV-CLASS="chapter"-><H1-><A-NAME="c5"-></A->Chapter 5. Conclusion</H1-><DIV-CLASS="section"-><H1-CLASS="section"-><A-NAME="AEN2167"-></A->5.1. XML conformance of the parser</H1-><P->&#13;		The validating XML parser of the Haskell XML Toolbox was elaborately tested with the XML Test Suites (XML TS) from the W3C [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_xmlts"-><SPAN-CLASS="abbrev"->WWW02</SPAN-></A-></SPAN->].-		</P-><P->&#13;		These XML TS consist of over 2000 test files for the XML 1.0 specification [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_xml"-><SPAN-CLASS="abbrev"->WWW01</SPAN-></A-></SPAN->] and an associated test report. The test report contains background information on conformance testing for XML as well as test descriptions for each of the test files.-		</P-><P->&#13;		The test suite consists of two basic test types: Binary Tests and Output Tests. Binary conformance tests are documents that should be accepted or rejected by the parser. Output tests are tests for valid documents which are paired with a reference file as the canonical representation [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_canxml"-><SPAN-CLASS="abbrev"->WWW03</SPAN-></A-></SPAN->] of the input file. By comparing the output of the XML parser with the reference file, it can be ensured that the parser provides the correct information.-		</P-><P->&#13;		<P-></P-><DIV-CLASS="variablelist"-><P-><B->There exist four different tests cases:</B-></P-><DL-><DT->Valid Documents</DT-><DD-><P->&#13;					The XML parser is required to accept these documents. For most test cases a reference file exists.-					</P-></DD-><DT->Invalid documents</DT-><DD-><P->&#13;					A validating XML parser has to report a  violation of some validity constraint. The reported error must meet the test case description.-					</P-></DD-><DT->Not well-formed documents</DT-><DD-><P->&#13;					An XML parser has to report a fatal error. The reported error must meet the test case description.-					</P-></DD-><DT->Optional errors</DT-><DD-><P->&#13;					An XML parser is permitted to ignore these errors, or to report them. If an error is reported, the error message must meet the test case description.-					</P-></DD-></DL-></DIV->-		</P-><P->&#13;		By using these tests, it could be ensured that the validating XML parser of the Haskell XML Toolbox covers most aspects of the XML 1.0 specification [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_xml"-><SPAN-CLASS="abbrev"->WWW01</SPAN-></A-></SPAN->]. Because the XML TS is not complete, it is not possible to claim conformance with the specification itself, but only with the XML TS. At the moment the parser passes about 95% of these test cases, see <A-HREF="x2308.html"->Section A.2</A-> for further details.-		</P-></DIV-></DIV-><DIV-CLASS="NAVFOOTER"-><HR-ALIGN="LEFT"-WIDTH="100%"><TABLE-SUMMARY="Footer navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"-><A-HREF="x2086.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="index.html"-ACCESSKEY="H"->Home</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"-><A-HREF="x2201.html"-ACCESSKEY="N"->Next</A-></TD-></TR-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"->Derivatives of regular expressions</TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"->&nbsp;</TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"->The Haskell XML Toolbox in comparison to HaXml and HXML</TD-></TR-></TABLE-></DIV-></BODY-></HTML->
− doc/hvalidator/thesis/c468.html
@@ -1,389 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">-<HTML-><HEAD-><TITLE->Package hdom</TITLE-><META-NAME="GENERATOR"-CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK-REL="HOME"-TITLE="Design and Implementation of a validating XML parser in Haskell"-HREF="index.html"><LINK-REL="PREVIOUS"-TITLE="Haskell"-HREF="x298.html"><LINK-REL="NEXT"-TITLE="Data structures"-HREF="x558.html"></HEAD-><BODY-CLASS="chapter"-BGCOLOR="#FFFFFF"-TEXT="#000000"-LINK="#0000FF"-VLINK="#840084"-ALINK="#0000FF"-><DIV-CLASS="NAVHEADER"-><TABLE-SUMMARY="Header navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TH-COLSPAN="3"-ALIGN="center"->Design and Implementation of a validating XML parser in Haskell: Master's thesis; -			University of Applied Sciences Wedel-		</TH-></TR-><TR-><TD-WIDTH="10%"-ALIGN="left"-VALIGN="bottom"-><A-HREF="x298.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="80%"-ALIGN="center"-VALIGN="bottom"-></TD-><TD-WIDTH="10%"-ALIGN="right"-VALIGN="bottom"-><A-HREF="x558.html"-ACCESSKEY="N"->Next</A-></TD-></TR-></TABLE-><HR-ALIGN="LEFT"-WIDTH="100%"></DIV-><DIV-CLASS="chapter"-><H1-><A-NAME="c2"-></A->Chapter 2. Package hdom</H1-><P->&#13;	This chapter describes the package <TT-CLASS="filename"->hdom</TT->, which defines a generic tree data type <TT-CLASS="literal"->XmlTree</TT-> for representing whole XML documents in Haskell. The package provides many functions for processing XML documents represented by this data model.-	</P-><DIV-CLASS="section"-><H1-CLASS="section"-><A-NAME="modules"-></A->2.1. Modules</H1-><P->&#13;		The core public module of the package <TT-CLASS="filename"->hdom</TT-> is the module <TT-CLASS="classname"->XmlTree</TT->. It exports all elements from the basic libraries <TT-CLASS="classname"->XmlTreeAccess</TT->, <TT-CLASS="classname"->XmlTreePredicates</TT->, <TT-CLASS="classname"->XmlTreeTypes</TT->, <TT-CLASS="classname"->NTree</TT-> and <TT-CLASS="classname"->XmlKeywords</TT->.-		</P-><P->&#13;		The module <TT-CLASS="classname"->XmlTreeTypes</TT-> defines data types for representing any XML document in Haskell. The generic tree data type <TT-CLASS="literal"->XmlTree</TT-> models XML documents, including all logical units of XML like the DTD subset or document subset. This type is based on the general n-ary tree <TT-CLASS="literal"->NTree</TT-> defined in the module <TT-CLASS="classname"->NTree</TT->. The type <TT-CLASS="literal"->NTree</TT-> defines trees as a node that has a list of child nodes. Leafs are just nodes with an empty child list. XML documents are composed of elements, comments, DTD declarations, character references or processing instructions. <TT-CLASS="literal"->XmlTree</TT-> provides for each logical unit an own node type.-		</P-><P->&#13;		The module <TT-CLASS="classname"->NTree</TT-> defines a general n-ary tree structure <TT-CLASS="literal"->NTree</TT-> as well as filter functions (see  <A-HREF="x854.html"->Section 2.3</A->) and combinators (see  <A-HREF="x1178.html"->Section 2.4</A->) for processing this data type. The filters and combinators have been copied and modified from HaXml [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_haxml"-><SPAN-CLASS="abbrev"->WWW21</SPAN-></A-></SPAN->]. In contrast to HaXml the filters have been modified using a more generic approach. The filter functions of HaXml work only for the document subset of XML documents. Because of the generic tree data model <TT-CLASS="literal"->NTree</TT-> these functions can be used to process whole XML documents in the Haskell XML Toolbox.-		</P-><P->&#13;		The module <TT-CLASS="classname"->XmlTreeAccess</TT-> provides basic filter functions for constructing, editing or selecting parts of the data type <TT-CLASS="literal"->XmlTree</TT->. Furthermore it provides functions for processing the attribute list of <TT-CLASS="literal"->XmlTree</TT-> nodes.-		</P-><P->&#13;		The module <TT-CLASS="classname"->XmlTreePredicates</TT-> provides basic predicate filter functions. The functions are similar to predicate logic. If the condition is true, they return a list with a node, otherwise they return an empty list.-		</P-><P->&#13;-		The module <TT-CLASS="classname"->XmlKeywords</TT-> provides constants that are used for representing DTD keywords and attributes in the <TT-CLASS="literal"->XmlTree</TT->.-		</P-><P->&#13;        	<DIV-CLASS="figure"-><A-NAME="modules_xmltree"-></A-><P-><B->Figure 2-1. Module hierarchy of XmlTree</B-></P-><DIV-CLASS="mediaobject"-><P-><IMG-SRC="images/modules_xmltree.gif"></P-></DIV-></DIV->-        </P-><P->&#13;		Besides the module <TT-CLASS="classname"->XmlTree</TT-> and its sub-modules there exist some other public modules for processing the <TT-CLASS="literal"->XmlTree</TT-> data structure.-		</P-><P->&#13;		<TT-CLASS="classname"->XmlTreeToString</TT-> provides functions for transformation of an <TT-CLASS="literal"->XmlTree</TT-> back into a string. The string shows an XML document in XML syntax.-		</P-><P->&#13;		<TT-CLASS="classname"->EditFilters</TT-> provides some filters for transforming an <TT-CLASS="literal"->XmlTree</TT->:-		</P-><P-></P-><UL-><LI-><P->Remove text nodes which contain only white space from the tree.</P-></LI-><LI-><P->Remove comment nodes from the tree.</P-></LI-><LI-><P->Transform special characters like &#60;, &#62;, ", ' and &#38; of text nodes into character references.</P-></LI-><LI-><P->Manipulate text nodes with customized functions.</P-></LI-><LI-><P->Convert CDATA nodes to text nodes by escaping all special characters.</P-></LI-><LI-><P->Convert character references to normal text.</P-></LI-><LI-><P->Create a canonicalized representation of XML documents [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_canxml"-><SPAN-CLASS="abbrev"->WWW03</SPAN-></A-></SPAN->].</P-></LI-></UL-><P->&#13;		<TT-CLASS="classname"->FormatXmlTree</TT-> creates a string with a tree representation of an <TT-CLASS="literal"->XmlTree</TT->. This is useful to see how the data type <TT-CLASS="literal"->XmlTree</TT-> represents an XML document.-		</P-><P->&#13;		<TT-CLASS="classname"->XmlFilterCombinators</TT-> provides special filter combinators for processing an <TT-CLASS="literal"->XmlTree</TT->. These filters can only operate on the data type <TT-CLASS="literal"->XmlTree</TT-> and not on the general n-ary tree data type <TT-CLASS="literal"->NTree</TT->.-		</P-><P->&#13;        	<DIV-CLASS="figure"-><A-NAME="modules_hdom"-></A-><P-><B->Figure 2-2. General modules of package hdom</B-></P-><DIV-CLASS="mediaobject"-><P-><IMG-SRC="images/modules_hdom.gif"></P-></DIV-></DIV->-        </P-></DIV-></DIV-><DIV-CLASS="NAVFOOTER"-><HR-ALIGN="LEFT"-WIDTH="100%"><TABLE-SUMMARY="Footer navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"-><A-HREF="x298.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="index.html"-ACCESSKEY="H"->Home</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"-><A-HREF="x558.html"-ACCESSKEY="N"->Next</A-></TD-></TR-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"->Haskell</TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"->&nbsp;</TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"->Data structures</TD-></TR-></TABLE-></DIV-></BODY-></HTML->
− doc/hvalidator/thesis/c78.html
@@ -1,912 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">-<HTML-><HEAD-><TITLE->Basics</TITLE-><META-NAME="GENERATOR"-CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK-REL="HOME"-TITLE="Design and Implementation of a validating XML parser in Haskell"-HREF="index.html"><LINK-REL="PREVIOUS"-TITLE="Preface"-HREF="f61.html"><LINK-REL="NEXT"-TITLE="Haskell"-HREF="x298.html"></HEAD-><BODY-CLASS="chapter"-BGCOLOR="#FFFFFF"-TEXT="#000000"-LINK="#0000FF"-VLINK="#840084"-ALINK="#0000FF"-><DIV-CLASS="NAVHEADER"-><TABLE-SUMMARY="Header navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TH-COLSPAN="3"-ALIGN="center"->Design and Implementation of a validating XML parser in Haskell: Master's thesis; -			University of Applied Sciences Wedel-		</TH-></TR-><TR-><TD-WIDTH="10%"-ALIGN="left"-VALIGN="bottom"-><A-HREF="f61.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="80%"-ALIGN="center"-VALIGN="bottom"-></TD-><TD-WIDTH="10%"-ALIGN="right"-VALIGN="bottom"-><A-HREF="x298.html"-ACCESSKEY="N"->Next</A-></TD-></TR-></TABLE-><HR-ALIGN="LEFT"-WIDTH="100%"></DIV-><DIV-CLASS="chapter"-><H1-><A-NAME="c1"-></A->Chapter 1. Basics</H1-><P->&#13;	The following chapter gives a short introduction to XML and Haskell.-	Readers who are familiar with these techniques can skip this chapter.-	</P-><DIV-CLASS="section"-><H1-CLASS="section"-><A-NAME="xml"-></A->1.1. XML</H1-><DIV-CLASS="section"-><H2-CLASS="section"-><A-NAME="xml_introduction"-></A->1.1.1. Introduction</H2-><P->&#13;			The Extensible Markup Language (XML) was standardized by the World Wide Web Consortium (W3C) at the beginning of 1998. The current standard is described by the Extensible Markup Language (XML) 1.0 (Second Edition) W3C Recommendation [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_xml"-><SPAN-CLASS="abbrev"->WWW01</SPAN-></A-></SPAN->]. XML forms a subset of the Structured Generalized Markup Language (SGML), which is extremely complex. XML itself is a simplified form of SGML. Both languages are meta languages for defining markup languages.-			</P-><P->&#13;			XML documents are structured hierarchical. The documents base on a simple data model: trees with attributes as some extra structure.-			</P-><P->&#13;			A Document Type Definition (DTD) can be used to define formal requirements to the structure of an XML document. It specifies a grammar for a class of documents. These are rules for the elements, attributes and other data and how they are logically related in an XML document. Each document, which corresponds to a DTD, is called an instance of this DTD.-			</P-><P->&#13;			Today XML is often used to define and exchange data structures application-independent. A central role plays the validation of XML documents. Validation of XML documents describes the check if the document corresponds to the constraints of a DTD. The application that reads an XML document and performs validation is called XML processor. Not all XML processors are validating ones. Applications that do not need these checks can use non-validating XML processors for performance reasons.-			</P-></DIV-><DIV-CLASS="section"-><H2-CLASS="section"-><A-NAME="processing_xml"-></A->1.1.2. Processing XML</H2-><P->&#13;			Every application that processes information from XML documents needs an XML processor, which reads an XML document and provides access to its content and structure to the processing application. Two parse methods exist: event based and tree based parse method. They define essential differences for the communication between the XML processor and applications.-			</P-><DIV-CLASS="simplesect"-><H4-CLASS="simplesect"-><A-NAME="event_based"-></A->1.1.2.1. Event based parse method</H4-><P->&#13;				The document is processed sequentially; the most popular parse method is SAX - the Simple API for XML [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_sax"-><SPAN-CLASS="abbrev"->WWW10</SPAN-></A-></SPAN->]. Each element is an event trigger, which can initiate an action on the processing application. In terms of processing speed and memory consumption this is the most performant technique for accessing an XML document in sequential order. The event based parsed method is also very efficient for processing only a few specific elements of a document. The main disadvantage is that it is more difficult to generate output with a different order of elements than the input, because some kind of memory is needed.-				</P-></DIV-><DIV-CLASS="simplesect"-><H4-CLASS="simplesect"-><A-NAME="tree_based"-></A->1.1.2.2. Tree based parse method</H4-><P->&#13;				The document is transformed from a sequential into a hierarchical structure by the XML processor (e.g. <A-HREF="b2463.html#bib_dom"->DOM</A->/<A-HREF="b2463.html#bib_jdom"->JDOM</A->). This tree model of the document is stored in memory and can be accessed by the processing application. The main advantage of this parse method is that it supports random access to the document. Random access is needed for example for Extensible Stylesheet Language Transformations (XSLT) [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_xsl"-><SPAN-CLASS="abbrev"->WWW07</SPAN-></A-></SPAN->]. XSLT implements a tree-oriented transformation language for transmuting XML documents.-				</P-><P->&#13;				The tree representation can be used for traversing the document several times or construct output in a different order from the input. The main disadvantage of this method is that the tree model is only accessible when parsing of the document is complete. For large documents this can be slow and memory intensive.-				</P-></DIV-></DIV-><DIV-CLASS="section"-><H2-CLASS="section"-><A-NAME="correctness"-></A->1.1.3. Correctness of documents</H2-><DIV-CLASS="simplesect"-><H4-CLASS="simplesect"-><A-NAME="well-formed"-></A->1.1.3.1. Well-formed documents</H4-><P->&#13;				There exist two classes of correctness for XML documents. The first class form the well-formed documents. These documents meet the syntax rules of the XML 1.0 specification [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_xml"-><SPAN-CLASS="abbrev"->WWW01</SPAN-></A-></SPAN->]. If a document does not meet these syntax rules, it is not an XML document and is rejected by any XML processor.-				</P-><P->&#13;					<P-></P-><P-><B->Some XML syntax rules:</B-></P-><UL-><LI-><P->Every document must have a single unique root element that encloses all other elements.</P-></LI-><LI-><P->All elements must be correctly nested.</P-></LI-><LI-><P->All elements must have corresponding start and end tags.</P-></LI-><LI-><P->Attribute values must be enclosed within single or double quotes.</P-></LI-></UL->-				</P-></DIV-><DIV-CLASS="simplesect"-><H4-CLASS="simplesect"-><A-NAME="valid"-></A->1.1.3.2. Valid documents</H4-><P->&#13;				The second class form the valid documents. These documents are well-formed and meet in addition the constraints of a DTD (described in <A-HREF="c78.html#dtd"->Section 1.1.4</A->) or a Schema [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_schema"-><SPAN-CLASS="abbrev"->WWW08</SPAN-></A-></SPAN->]. This class of correctness is required if XML documents must be exchanged between applications reliably. Only validating XML processors perform these checks, non-validating XML processors ignore the DTD.-				</P-></DIV-></DIV-><DIV-CLASS="section"-><H2-CLASS="section"-><A-NAME="dtd"-></A->1.1.4. Document Type Definition (DTD)</H2-><P->&#13;			XML is a meta language for specifying markup languages, the DTD is a tool to create and describe this language. A DTD defines the elements, attributes, entities and notations used in an XML document. Further it defines a context free grammar that states which is the allowed content of an element.	The DTD can point to an external DTD subset containing declarations, it may contain the  declarations directly in an internal DTD subset, or even both. This section will describe the definitions of elements and their attributes. They form the basic concepts of XML documents. Entity declarations that are mainly used for replacing text and notation declarations that are used for specifying the format of special contents are not explained. For a complete overview see [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_xmlquickref"-><SPAN-CLASS="abbrev"->WWW04</SPAN-></A-></SPAN->].-			</P-><DIV-CLASS="simplesect"-><H4-CLASS="simplesect"-><A-NAME="element-declaration"-></A->1.1.4.1. Element type declaration</H4-><P->&#13;				A DTD declares all allowed elements in an XML document. Elements are defined by &#60;!ELEMENT&#62; declarations. This declaration specifies the name of the element and its content model. Only one declaration for each element is allowed, multiple declarations are forbidden. The order of the declarations is irrelevant.-				</P-><P->&#13;					<P-></P-><P-><B-><TT-CLASS="literal"->&#60;!ELEMENT name content model&#62;</TT-></B-></P-><UL-><LI-><P-><TT-CLASS="literal"->ELEMENT</TT-> - Keyword</P-></LI-><LI-><P-><TT-CLASS="literal"->name</TT-> - Element name, respectively its tag names</P-></LI-><LI-><P-><TT-CLASS="literal"->content model</TT-> - Definition of the allowed types of child elements (text data, other elements) and their order</P-></LI-></UL->-				</P-><P->&#13;				For defining the content model of elements there exist some operators. These operators are described shortly in the following.-				</P-><DIV-CLASS="table"-><A-NAME="AEN153"-></A-><P-><B->Table 1-1. Connectors</B-></P-><TABLE-BORDER="1"-CLASS="CALSTABLE"-><TBODY-><TR-><TD-WIDTH="133"-ALIGN="LEFT"-VALIGN="MIDDLE"->,</TD-><TD-ALIGN="LEFT"-VALIGN="MIDDLE"->Sequence of elements, "then"</TD-></TR-><TR-><TD-WIDTH="133"-ALIGN="LEFT"-VALIGN="MIDDLE"->|</TD-><TD-ALIGN="LEFT"-VALIGN="MIDDLE"->Alternative of elements (exclusive), "xor"</TD-></TR-></TBODY-></TABLE-></DIV-><DIV-CLASS="table"-><A-NAME="AEN164"-></A-><P-><B->Table 1-2. Occurrence indicators</B-></P-><TABLE-BORDER="1"-CLASS="CALSTABLE"-><TBODY-><TR-><TD-WIDTH="133"-ALIGN="LEFT"-VALIGN="MIDDLE"->(no indicator)</TD-><TD-ALIGN="LEFT"-VALIGN="MIDDLE"->Element must appear exactly one time</TD-></TR-><TR-><TD-WIDTH="133"-ALIGN="LEFT"-VALIGN="MIDDLE"->?</TD-><TD-ALIGN="LEFT"-VALIGN="MIDDLE"->Element is optional, 0 or 1</TD-></TR-><TR-><TD-WIDTH="133"-ALIGN="LEFT"-VALIGN="MIDDLE"->*</TD-><TD-ALIGN="LEFT"-VALIGN="MIDDLE"->Element is optional and repeatable, 0 or more</TD-></TR-><TR-><TD-WIDTH="133"-ALIGN="LEFT"-VALIGN="MIDDLE"->+</TD-><TD-ALIGN="LEFT"-VALIGN="MIDDLE"->Element must appear at least one time, 1 or more</TD-></TR-></TBODY-></TABLE-></DIV-><DIV-CLASS="table"-><A-NAME="AEN181"-></A-><P-><B->Table 1-3. Grouping</B-></P-><TABLE-BORDER="1"-CLASS="CALSTABLE"-><TBODY-><TR-><TD-WIDTH="133"-ALIGN="LEFT"-VALIGN="MIDDLE"->(</TD-><TD-ALIGN="LEFT"-VALIGN="MIDDLE"->Start of content model or group</TD-></TR-><TR-><TD-WIDTH="133"-ALIGN="LEFT"-VALIGN="MIDDLE"->)</TD-><TD-ALIGN="LEFT"-VALIGN="MIDDLE"->End of content model or group</TD-></TR-></TBODY-></TABLE-></DIV-><DIV-CLASS="table"-><A-NAME="AEN192"-></A-><P-><B->Table 1-4. #PCDATA in content model</B-></P-><TABLE-BORDER="1"-CLASS="CALSTABLE"-><TBODY-><TR-><TD-WIDTH="133"-ALIGN="LEFT"-VALIGN="TOP"->(#PCDATA)</TD-><TD-ALIGN="LEFT"-VALIGN="TOP"->Element has only text data or nothing as content</TD-></TR-><TR-><TD-WIDTH="133"-ALIGN="LEFT"-VALIGN="TOP"->(#PCDATA | el1 | el2)*</TD-><TD-ALIGN="LEFT"-VALIGN="TOP"->Mixed content. The element can contain text data and elements. #PCDATA must be listed in the declaration at first. It cannot be defined that allowed child elements have to appear in a certain order, or that they at least must appear.</TD-></TR-></TBODY-></TABLE-></DIV-><P->&#13;				#PCDATA is the abbreviation for "parsed character data" and means that text data is inspected by the XML parser for eventual markup. If for example the text data contains entity references, the entities are expanded.-				</P-><DIV-CLASS="table"-><A-NAME="AEN204"-></A-><P-><B->Table 1-5. Keywords</B-></P-><TABLE-BORDER="1"-CLASS="CALSTABLE"-><TBODY-><TR-><TD-WIDTH="133"-ALIGN="LEFT"-VALIGN="TOP"->EMPTY</TD-><TD-ALIGN="LEFT"-VALIGN="TOP"->Element has no content</TD-></TR-><TR-><TD-WIDTH="133"-ALIGN="LEFT"-VALIGN="TOP"->ANY</TD-><TD-ALIGN="LEFT"-VALIGN="TOP"->Element has any declared elements and text data as content, or is empty.</TD-></TR-></TBODY-></TABLE-></DIV-></DIV-><DIV-CLASS="simplesect"-><H4-CLASS="simplesect"-><A-NAME="attribute_declaration"-></A->1.1.4.2. Attribute declarations</H4-><P->&#13;				Attributes define additional name-value pairs for elements. The attributes are defined by &#60;!ATTLIST&#62; declarations. It defines the attribute type and default values.-				</P-><P->&#13;					<P-></P-><P-><B-><TT-CLASS="literal"->&#60;!ATTLIST target_element attr_name attr_type default&#62;</TT-></B-></P-><UL-><LI-><P-><TT-CLASS="literal"->ATTLIST</TT-> - Keyword</P-></LI-><LI-><P-><TT-CLASS="literal"->target_element</TT-> - Element name</P-></LI-><LI-><P-><TT-CLASS="literal"->attr_name</TT-> - Attribute name</P-></LI-><LI-><P-><TT-CLASS="literal"->attr_type</TT-> - Type of the attribute value, or list of values</P-></LI-><LI-><P-><TT-CLASS="literal"->default</TT-> - Keyword or default value</P-></LI-></UL->-				</P-><DIV-CLASS="table"-><A-NAME="AEN237"-></A-><P-><B->Table 1-6. Type of the attribute value</B-></P-><TABLE-BORDER="1"-CLASS="CALSTABLE"-><TBODY-><TR-><TD-WIDTH="133"-ALIGN="LEFT"-VALIGN="TOP"->CDATA</TD-><TD-ALIGN="LEFT"-VALIGN="TOP"->Text data</TD-></TR-><TR-><TD-WIDTH="133"-ALIGN="LEFT"-VALIGN="TOP"->ID</TD-><TD-ALIGN="LEFT"-VALIGN="TOP"->Unique identifier, value of attribute must be unique within the XML document</TD-></TR-><TR-><TD-WIDTH="133"-ALIGN="LEFT"-VALIGN="TOP"->IDREF</TD-><TD-ALIGN="LEFT"-VALIGN="TOP"->Reference to an ID, must match the value of some ID attribute</TD-></TR-><TR-><TD-WIDTH="133"-ALIGN="LEFT"-VALIGN="TOP"->IDREFS</TD-><TD-ALIGN="LEFT"-VALIGN="TOP"->One or more references to IDs, separated by white space</TD-></TR-><TR-><TD-WIDTH="133"-ALIGN="LEFT"-VALIGN="TOP"->NMTOKEN</TD-><TD-ALIGN="LEFT"-VALIGN="TOP"->Name token, attribute value must  only consist of letters, digits and some extra characters</TD-></TR-><TR-><TD-WIDTH="133"-ALIGN="LEFT"-VALIGN="TOP"->NMTOKENS</TD-><TD-ALIGN="LEFT"-VALIGN="TOP"->One or more name tokens, separated by white space</TD-></TR-><TR-><TD-WIDTH="133"-ALIGN="LEFT"-VALIGN="TOP"->ENTITY</TD-><TD-ALIGN="LEFT"-VALIGN="TOP"->Name of an unparsed entity, declared in the DTD</TD-></TR-><TR-><TD-WIDTH="133"-ALIGN="LEFT"-VALIGN="TOP"->ENTITIES</TD-><TD-ALIGN="LEFT"-VALIGN="TOP"->One or more names of unparsed entities declared in the DTD, separated by white space</TD-></TR-><TR-><TD-WIDTH="133"-ALIGN="LEFT"-VALIGN="TOP"->(a | b | c)</TD-><TD-ALIGN="LEFT"-VALIGN="TOP"->Enumeration, list of possible attribute values</TD-></TR-></TBODY-></TABLE-></DIV-><DIV-CLASS="table"-><A-NAME="AEN269"-></A-><P-><B->Table 1-7. Attribute defaults</B-></P-><TABLE-BORDER="1"-CLASS="CALSTABLE"-><TBODY-><TR-><TD-WIDTH="133"-ALIGN="LEFT"-VALIGN="TOP"->"value"</TD-><TD-ALIGN="LEFT"-VALIGN="TOP"->Default value of the attribute. If the attribute is not specified, this value is used by the XML processor</TD-></TR-><TR-><TD-WIDTH="133"-ALIGN="LEFT"-VALIGN="TOP"->#REQUIRED</TD-><TD-ALIGN="LEFT"-VALIGN="TOP"->Attribute must be specified</TD-></TR-><TR-><TD-WIDTH="133"-ALIGN="LEFT"-VALIGN="TOP"->#IMPLIED</TD-><TD-ALIGN="LEFT"-VALIGN="TOP"->Attribute is optional</TD-></TR-><TR-><TD-WIDTH="133"-ALIGN="LEFT"-VALIGN="TOP"->#FIXED "value"</TD-><TD-ALIGN="LEFT"-VALIGN="TOP"->Attribute has a fixed value. No other value is allowed.</TD-></TR-></TBODY-></TABLE-></DIV-></DIV-></DIV-><DIV-CLASS="section"-><H2-CLASS="section"-><A-NAME="xml_examples"-></A->1.1.5. Example</H2-><P->&#13;			This simple example demonstrates an XML document with an internal DTD. The DTD defines the elements <TT-CLASS="literal"->a</TT->, <TT-CLASS="literal"->b</TT-> and <TT-CLASS="literal"->c</TT->. The element <TT-CLASS="literal"->a</TT-> has an additional attribute <TT-CLASS="literal"->att1</TT->. The small document enclosed by the root element <TT-CLASS="literal"->a</TT-> is an instance of this DTD.-			</P-><DIV-CLASS="example"-><A-NAME="AEN295"-></A-><P-><B->Example 1-1. Sample XML document</B-></P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;&#60;?xml version="1.0" encoding="UTF-8" standalone="yes" ?&#62;--&#60;!DOCTYPE a [-&#60;!ATTLIST a  att1  CDATA  #IMPLIED&#62;-&#60;!ELEMENT a  (b, c?)&#62;-&#60;!ELEMENT b  EMPTY&#62;-&#60;!ELEMENT c  (#PCDATA)&#62;-]&#62;--&#60;a att1="test"&#62;-    &#60;b/&#62;-    &#60;c&#62;hello world&#60;/c&#62;-&#60;/a&#62;-				</PRE-></TD-></TR-></TABLE-></DIV-></DIV-></DIV-></DIV-><DIV-CLASS="NAVFOOTER"-><HR-ALIGN="LEFT"-WIDTH="100%"><TABLE-SUMMARY="Footer navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"-><A-HREF="f61.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="index.html"-ACCESSKEY="H"->Home</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"-><A-HREF="x298.html"-ACCESSKEY="N"->Next</A-></TD-></TR-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"->Preface</TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"->&nbsp;</TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"->Haskell</TD-></TR-></TABLE-></DIV-></BODY-></HTML->
− doc/hvalidator/thesis/f61.html
@@ -1,193 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">-<HTML-><HEAD-><TITLE->Preface</TITLE-><META-NAME="GENERATOR"-CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK-REL="HOME"-TITLE="Design and Implementation of a validating XML parser in Haskell"-HREF="index.html"><LINK-REL="PREVIOUS"-TITLE="Design and Implementation of a validating XML parser in Haskell"-HREF="index.html"><LINK-REL="NEXT"-TITLE="Basics"-HREF="c78.html"></HEAD-><BODY-CLASS="preface"-BGCOLOR="#FFFFFF"-TEXT="#000000"-LINK="#0000FF"-VLINK="#840084"-ALINK="#0000FF"-><DIV-CLASS="NAVHEADER"-><TABLE-SUMMARY="Header navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TH-COLSPAN="3"-ALIGN="center"->Design and Implementation of a validating XML parser in Haskell: Master's thesis; -			University of Applied Sciences Wedel-		</TH-></TR-><TR-><TD-WIDTH="10%"-ALIGN="left"-VALIGN="bottom"-><A-HREF="index.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="80%"-ALIGN="center"-VALIGN="bottom"-></TD-><TD-WIDTH="10%"-ALIGN="right"-VALIGN="bottom"-><A-HREF="c78.html"-ACCESSKEY="N"->Next</A-></TD-></TR-></TABLE-><HR-ALIGN="LEFT"-WIDTH="100%"></DIV-><DIV-CLASS="preface"-><H1-><A-NAME="AEN61"-></A->Preface</H1-><P->&#13;	The primary aim of this project is to gain some valuable experiences with the beautiful functional programming Haskell. Parsing and processing lists are strengths of functional programming languages. Both features are needed to handle XML. Combined with higher-order combinatorial functions, that a functional programming language like Haskell allows, processing XML can be very efficient and elegant.-	</P-><P->&#13;	Many of the techniques described in this master thesis are far more elegant, compact and powerful than the ones found in familiar techniques like DOM [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_dom"-><SPAN-CLASS="abbrev"->WWW05</SPAN-></A-></SPAN->] or JDOM [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_jdom"-><SPAN-CLASS="abbrev"->WWW06</SPAN-></A-></SPAN->].-	</P-><P->&#13;	Because there did not exist any validating XML parser written in Haskell, we thought it might be a nice project implementing one and doing some further-	XML processing with Haskell. The Haskell XML Toolbox uses a general tree data model for representing XML documents. This generic data model makes it possible to implement an XML parser or XML processing applications with a uniform design by using filter functions and combinators for processing XML.-	</P-><P->&#13;	We have chosen Haskell because it is a popular modern functional programming language, and we were interested in learning more about the functional programming paradigm. There exist lots of free implementations, online tutorials and some good Haskell books. The Haskell homepage Haskell.org [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_haskellorg"-><SPAN-CLASS="abbrev"->WWW11</SPAN-></A-></SPAN->] gives many further details.-	</P-><P->&#13;	Learning functional programming with Haskell by self-studies was very challenging. It required a change in perspective of programming. But once the paradigms are understood, writing Haskell programs is very straightforward and makes a lot of fun.-	</P-><P->&#13;	The first chapter gives an introduction to XML and Haskell. Readers who are familiar with these techniques can skip it. The next three chapters describe the packages <TT-CLASS="filename"->hdom</TT->, <TT-CLASS="filename"->hparser</TT-> and <TT-CLASS="filename"->hvalidator</TT-> of the Haskell XML Toolbox. The last chapter compares the design used in the Haskell XML Toolbox with HaXml and HXML.-	</P-></DIV-><DIV-CLASS="NAVFOOTER"-><HR-ALIGN="LEFT"-WIDTH="100%"><TABLE-SUMMARY="Footer navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"-><A-HREF="index.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="index.html"-ACCESSKEY="H"->Home</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"-><A-HREF="c78.html"-ACCESSKEY="N"->Next</A-></TD-></TR-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"->Design and Implementation of a validating XML parser in Haskell</TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"->&nbsp;</TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"->Basics</TD-></TR-></TABLE-></DIV-></BODY-></HTML->
− doc/hvalidator/thesis/images/modules_hdom.gif

binary file changed (4906 → absent bytes)

− doc/hvalidator/thesis/images/modules_hvalidator.gif

binary file changed (9792 → absent bytes)

− doc/hvalidator/thesis/images/modules_xmlparser.gif

binary file changed (4811 → absent bytes)

− doc/hvalidator/thesis/images/modules_xmlstate.gif

binary file changed (2182 → absent bytes)

− doc/hvalidator/thesis/images/modules_xmltree.gif

binary file changed (4749 → absent bytes)

− doc/hvalidator/thesis/index.html
@@ -1,919 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">-<HTML-><HEAD-><TITLE->Design and Implementation of a validating XML parser in Haskell</TITLE-><META-NAME="GENERATOR"-CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK-REL="NEXT"-TITLE="Preface"-HREF="f61.html"></HEAD-><BODY-CLASS="book"-BGCOLOR="#FFFFFF"-TEXT="#000000"-LINK="#0000FF"-VLINK="#840084"-ALINK="#0000FF"-><DIV-CLASS="BOOK"-><A-NAME="AEN1"-></A-><DIV-CLASS="TITLEPAGE"-><H1-CLASS="title"-><A-NAME="AEN2"-></A->Design and Implementation of a validating XML parser in Haskell</H1-><H2-CLASS="subtitle"->Master's thesis</H2-><H2-CLASS="subtitle"-><H3-CLASS="othercredit"-><A-NAME="AEN7"-></A->University of Applied Sciences Wedel</H3-></H2-><H3-CLASS="author"-><A-NAME="AEN10"-></A->Martin Schmidt</H3-><DIV-><DIV-CLASS="abstract"-><A-NAME="AEN18"-></A-><P-><B->Abstract</B-></P-><P->&#13;	This thesis introduces the core component of the Haskell XML Toolbox: a validating XML parser that supports almost fully the Extensible Markup Language (XML) 1.0 (Second Edition) W3C Recommendation [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_xml"->WWW01</A-></SPAN->]. The thesis presents how a validating XML parser and XML processing applications can be implemented by using filter functions as a uniform design.-	</P-><P->&#13;	The Haskell XML Toolbox is a collection of tools for processing XML with Haskell. It is itself purely written in Haskell. The Toolbox is a project of the University of Applied Sciences Wedel, initialized by Prof. Dr. Uwe Schmidt.-	</P-><P->&#13;	The Haskell XML Toolbox bases on the ideas of HaXml [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_haxml"->WWW21</A-></SPAN->] and HXML [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_hxml"->WWW25</A-></SPAN->], but introduces a more general approach for processing XML with Haskell. It uses a generic data model for representing XML documents, including the DTD subset and the document subset. This data model makes is possible to use filter functions as a uniform design of XML processing applications. Libraries with filters and combinators are provided for processing this data model.-	</P-><P->&#13;		<P-></P-><H1-CLASS="title"-><A-NAME="AEN30"-></A->The following components are included:</H1-><UL-><LI-><P-><TT-CLASS="filename"->hdom</TT-> - Core data types and functions for processing XML with Haskell</P-></LI-><LI-><P-><TT-CLASS="filename"->hparser</TT-> - XML parser</P-></LI-><LI-><P-><TT-CLASS="filename"->hvalidator</TT-> - Modules for validating XML documents</P-></LI-><LI-><P-><TT-CLASS="filename"->hxslt</TT-> - Modules for XSL transformations</P-></LI-></UL->-	</P-><P->&#13;	Prof. Dr. Uwe Schmidt wrote the basic parser and core functions. His master student Christine Nickel wrote the package <TT-CLASS="filename"->hxslt</TT->, his master student Martin Schmidt wrote the package <TT-CLASS="filename"->hvalidator</TT-> and some parts of the parser.-	</P-><P-></P-><P-><B-CLASS="command"->Related work</B-></P-><P->&#13;	Malcolm Wallace and Colin Runciman wrote HaXml [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_haxml"->WWW21</A-></SPAN->], a collection of utilities for using Haskell and XML together. The Haskell XML Toolbox is based on their idea of using filter combinators for processing XML with Haskell.-	</P-><P->&#13;	Joe English wrote HXML [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_hxml"->WWW25</A-></SPAN->], a non-validating XML parser in Haskell. His idea of validating XML by using derivatives of regular expressions [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_derivates_je"->WWW26</A-></SPAN->] was implemented in the validation functions of this software.-	</P-></DIV-></DIV-><HR></DIV-><H1-><A-NAME="AEN58"-></A->Dedication</H1-><P->&#13;      		<TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;"Learn at least one new [programming] language every year.- Different languages solve the same problems in different ways.- By learning several different approaches, you can help broaden- your thinking and avoid getting stuck in a rut."-    --- The Pragmatic Programmer-			</PRE-></TD-></TR-></TABLE->-		</P-><DIV-CLASS="TOC"-><DL-><DT-><B->Table of Contents</B-></DT-><DT-><A-HREF="f61.html"->Preface</A-></DT-><DT->1. <A-HREF="c78.html"->Basics</A-></DT-><DD-><DL-><DT->1.1. <A-HREF="c78.html#xml"->XML</A-></DT-><DD-><DL-><DT->1.1.1. <A-HREF="c78.html#xml_introduction"->Introduction</A-></DT-><DT->1.1.2. <A-HREF="c78.html#processing_xml"->Processing XML</A-></DT-><DT->1.1.3. <A-HREF="c78.html#correctness"->Correctness of documents</A-></DT-><DT->1.1.4. <A-HREF="c78.html#dtd"->Document Type Definition (DTD)</A-></DT-><DT->1.1.5. <A-HREF="c78.html#xml_examples"->Example</A-></DT-></DL-></DD-><DT->1.2. <A-HREF="x298.html"->Haskell</A-></DT-><DD-><DL-><DT->1.2.1. <A-HREF="x298.html#haskell_introduction"->Introduction</A-></DT-><DT->1.2.2. <A-HREF="x298.html#functions"->Functions</A-></DT-><DT->1.2.3. <A-HREF="x298.html#types"->Types</A-></DT-><DT->1.2.4. <A-HREF="x298.html#pattern_matching"->Pattern Matching</A-></DT-><DT->1.2.5. <A-HREF="x298.html#guards"->Guards</A-></DT-><DT->1.2.6. <A-HREF="x298.html#higher_order_functions"->Higher-order Functions</A-></DT-><DT->1.2.7. <A-HREF="x298.html#modules_introduction"->Modules</A-></DT-></DL-></DD-></DL-></DD-><DT->2. <A-HREF="c468.html"->Package hdom</A-></DT-><DD-><DL-><DT->2.1. <A-HREF="c468.html#modules"->Modules</A-></DT-><DT->2.2. <A-HREF="x558.html"->Data structures</A-></DT-><DD-><DL-><DT->2.2.1. <A-HREF="x558.html#AEN560"->Core components</A-></DT-><DT->2.2.2. <A-HREF="x558.html#AEN575"->Data type XmlTree</A-></DT-><DT->2.2.3. <A-HREF="x558.html#example_xmltree"->Example</A-></DT-></DL-></DD-><DT->2.3. <A-HREF="x854.html"->Filter functions</A-></DT-><DD-><DL-><DT->2.3.1. <A-HREF="x854.html#filter_introduction"->Introduction</A-></DT-><DT->2.3.2. <A-HREF="x854.html#filters_ntree"->Filters from module NTree</A-></DT-><DT->2.3.3. <A-HREF="x854.html#filters_xmltreeaccess"->Filters from module XmlTreeAccess</A-></DT-></DL-></DD-><DT->2.4. <A-HREF="x1178.html"->Filter combinators</A-></DT-><DD-><DL-><DT->2.4.1. <A-HREF="x1178.html#combinators_introduction"->Introduction</A-></DT-><DT->2.4.2. <A-HREF="x1178.html#combinators_list"->List of combinators</A-></DT-><DT->2.4.3. <A-HREF="x1178.html#combinators_binding"->Binding power and associativity</A-></DT-></DL-></DD-><DT->2.5. <A-HREF="x1438.html"->Examples for filters and filter combinators</A-></DT-><DD-><DL-><DT->2.5.1. <A-HREF="x1438.html#AEN1442"->Removing comments</A-></DT-><DT->2.5.2. <A-HREF="x1438.html#AEN1484"->Merging internal and external DTD subset</A-></DT-></DL-></DD-><DT->2.6. <A-HREF="x1522.html"->Access functions</A-></DT-><DT->2.7. <A-HREF="x1577.html"->State-I/O monad from module XmlState</A-></DT-></DL-></DD-><DT->3. <A-HREF="c1645.html"->Package hparser</A-></DT-><DD-><DL-><DT->3.1. <A-HREF="c1645.html#AEN1654"->Overview</A-></DT-><DT->3.2. <A-HREF="x1694.html"->Module HdomParser</A-></DT-><DT->3.3. <A-HREF="x1763.html"->Module XmlParser</A-></DT-><DT->3.4. <A-HREF="x1800.html"->Module XmlInput</A-></DT-><DT->3.5. <A-HREF="x1823.html"->Module DTDProcessing</A-></DT-><DT->3.6. <A-HREF="x1830.html"->Module XmlOutput</A-></DT-></DL-></DD-><DT->4. <A-HREF="c1850.html"->Package hvalidator</A-></DT-><DD-><DL-><DT->4.1. <A-HREF="c1850.html#module_hierarchy"->Module hierarchy</A-></DT-><DT->4.2. <A-HREF="x1900.html"->Creating a validating XML parser</A-></DT-><DT->4.3. <A-HREF="x1946.html"->Validation of the Document Type Definition</A-></DT-><DT->4.4. <A-HREF="x2007.html"->Validation of the document subset</A-></DT-><DT->4.5. <A-HREF="x2065.html"->Transformation of the document subset</A-></DT-><DT->4.6. <A-HREF="x2081.html"->Validation of attribute values</A-></DT-><DT->4.7. <A-HREF="x2086.html"->Derivatives of regular expressions</A-></DT-><DD-><DL-><DT->4.7.1. <A-HREF="x2086.html#AEN2102"->Description</A-></DT-><DT->4.7.2. <A-HREF="x2086.html#AEN2107"->Examples</A-></DT-><DT->4.7.3. <A-HREF="x2086.html#AEN2116"->Realization in Haskell</A-></DT-><DT->4.7.4. <A-HREF="x2086.html#AEN2153"->Conclusions</A-></DT-></DL-></DD-></DL-></DD-><DT->5. <A-HREF="c2165.html"->Conclusion</A-></DT-><DD-><DL-><DT->5.1. <A-HREF="c2165.html#AEN2167"->XML conformance of the parser</A-></DT-><DT->5.2. <A-HREF="x2201.html"->The Haskell XML Toolbox in comparison to HaXml and HXML</A-></DT-><DT->5.3. <A-HREF="x2257.html"->Conclusions and future work</A-></DT-></DL-></DD-><DT->A. <A-HREF="a2283.html"->User handbook</A-></DT-><DD-><DL-><DT->A.1. <A-HREF="a2283.html#AEN2285"->System requirements</A-></DT-><DT->A.2. <A-HREF="x2308.html"->Missing features and known problems</A-></DT-><DT->A.3. <A-HREF="x2330.html"->Directory structure</A-></DT-><DT->A.4. <A-HREF="x2367.html"->HXmlParser - Well-formedness checker and validator</A-></DT-><DT->A.5. <A-HREF="x2380.html"->Check the XML parser with the XML Test Suites</A-></DT-><DT->A.6. <A-HREF="x2408.html"->Performance and profiling</A-></DT-><DD-><DL-><DT->A.6.1. <A-HREF="x2408.html#AEN2411"->Usage information</A-></DT-><DT->A.6.2. <A-HREF="x2408.html#AEN2447"->How to interpret the results</A-></DT-></DL-></DD-></DL-></DD-><DT->B. <A-HREF="a2458.html"->MIT License</A-></DT-><DT-><A-HREF="b2463.html"->Bibliography</A-></DT-><DT-><A-HREF="b2739.html"->Affidavit</A-></DT-></DL-></DIV-><DIV-CLASS="LOT"-><DL-CLASS="LOT"-><DT-><B->List of Tables</B-></DT-><DT->1-1. <A-HREF="c78.html#AEN153"->Connectors</A-></DT-><DT->1-2. <A-HREF="c78.html#AEN164"->Occurrence indicators</A-></DT-><DT->1-3. <A-HREF="c78.html#AEN181"->Grouping</A-></DT-><DT->1-4. <A-HREF="c78.html#AEN192"->#PCDATA in content model</A-></DT-><DT->1-5. <A-HREF="c78.html#AEN204"->Keywords</A-></DT-><DT->1-6. <A-HREF="c78.html#AEN237"->Type of the attribute value</A-></DT-><DT->1-7. <A-HREF="c78.html#AEN269"->Attribute defaults</A-></DT-><DT->2-1. <A-HREF="x1178.html#AEN1367"->Binding power and associativity of functional combinators</A-></DT-><DT->2-2. <A-HREF="x1178.html#AEN1414"->Binding power and associativity of monadic combinators</A-></DT-></DL-></DIV-><DIV-CLASS="LOT"-><DL-CLASS="LOT"-><DT-><B->List of Figures</B-></DT-><DT->2-1. <A-HREF="c468.html#modules_xmltree"->Module hierarchy of XmlTree</A-></DT-><DT->2-2. <A-HREF="c468.html#modules_hdom"->General modules of package hdom</A-></DT-><DT->2-3. <A-HREF="x1577.html#modules_xmlstate"->Modules of XmlState</A-></DT-><DT->3-1. <A-HREF="x1763.html#modules_xmlparser"->Modules of XmlParser</A-></DT-><DT->4-1. <A-HREF="c1850.html#modules_hvalidator"->Modules of package hvalidator</A-></DT-></DL-></DIV-><DIV-CLASS="LOT"-><DL-CLASS="LOT"-><DT-><B->List of Examples</B-></DT-><DT->1-1. <A-HREF="c78.html#AEN295"->Sample XML document</A-></DT-><DT->1-2. <A-HREF="x298.html#AEN328"->Adding two integers</A-></DT-><DT->1-3. <A-HREF="x298.html#AEN337"->Prefix and infix notation</A-></DT-><DT->1-4. <A-HREF="x298.html#AEN342"->Type signature of an infix function</A-></DT-><DT->1-5. <A-HREF="x298.html#AEN347"->Define associativity and binding power</A-></DT-><DT->1-6. <A-HREF="x298.html#AEN361"->A tuple for persons with ID and name</A-></DT-><DT->1-7. <A-HREF="x298.html#AEN368"->Get the head of a list</A-></DT-><DT->1-8. <A-HREF="x298.html#AEN379"->Definition of String</A-></DT-><DT->1-9. <A-HREF="x298.html#AEN391"->A type for binary trees</A-></DT-><DT->1-10. <A-HREF="x298.html#AEN397"->Calculate the length of a list</A-></DT-><DT->1-11. <A-HREF="x298.html#AEN412"->Get all values from Bintree</A-></DT-><DT->1-12. <A-HREF="x298.html#AEN419"->Get all leafs from Bintree</A-></DT-><DT->1-13. <A-HREF="x298.html#AEN428"->Calculate the maximum of two numbers</A-></DT-><DT->1-14. <A-HREF="x298.html#AEN436"->Apply a function to a list</A-></DT-><DT->1-15. <A-HREF="x298.html#AEN448"->Increase all numbers in a list</A-></DT-><DT->1-16. <A-HREF="x298.html#AEN457"->Modules</A-></DT-><DT->2-1. <A-HREF="x558.html#AEN836"->Input document</A-></DT-><DT->2-2. <A-HREF="x558.html#AEN847"->Input document as XmlTree</A-></DT-><DT->2-3. <A-HREF="x558.html#AEN851"->Internal representation of the document subset</A-></DT-><DT->2-4. <A-HREF="x1522.html#AEN1574"->Adding a new attribute to an XTag node.</A-></DT-><DT->2-5. <A-HREF="x1577.html#AEN1638"->Using the monad from XmlState</A-></DT-><DT->4-1. <A-HREF="x1900.html#AEN1943"->Validating a document with errors</A-></DT-><DT->4-2. <A-HREF="x1946.html#AEN2002"->Validation that notations are not declared for EMPTY elements</A-></DT-><DT->4-3. <A-HREF="x2007.html#AEN2062"->Validation that all attributes are unique</A-></DT-><DT->5-1. <A-HREF="x2201.html#AEN2213"->Document subset in HXML</A-></DT-><DT->5-2. <A-HREF="x2201.html#AEN2217"->DTD subset in HXML</A-></DT-><DT->5-3. <A-HREF="x2201.html#AEN2226"->XML documents in HaXml</A-></DT-><DT->5-4. <A-HREF="x2201.html#AEN2234"->Document subset in HaXml</A-></DT-><DT->5-5. <A-HREF="x2201.html#AEN2239"->The filter type of HaXml</A-></DT-><DT->5-6. <A-HREF="x2201.html#AEN2247"->XML documents represented in the Haskell XML Toolbox</A-></DT-><DT->A-1. <A-HREF="x2380.html#AEN2405"->Executing RunTestCases</A-></DT-></DL-></DIV-></DIV-><DIV-CLASS="NAVFOOTER"-><HR-ALIGN="LEFT"-WIDTH="100%"><TABLE-SUMMARY="Footer navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"->&nbsp;</TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"->&nbsp;</TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"-><A-HREF="f61.html"-ACCESSKEY="N"->Next</A-></TD-></TR-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"->&nbsp;</TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"->&nbsp;</TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"->Preface</TD-></TR-></TABLE-></DIV-></BODY-></HTML->
− doc/hvalidator/thesis/stylesheet-images/caution.gif

binary file changed (1039 → absent bytes)

− doc/hvalidator/thesis/stylesheet-images/home.gif

binary file changed (995 → absent bytes)

− doc/hvalidator/thesis/stylesheet-images/important.gif

binary file changed (1081 → absent bytes)

− doc/hvalidator/thesis/stylesheet-images/next.gif

binary file changed (964 → absent bytes)

− doc/hvalidator/thesis/stylesheet-images/note.gif

binary file changed (1070 → absent bytes)

− doc/hvalidator/thesis/stylesheet-images/prev.gif

binary file changed (944 → absent bytes)

− doc/hvalidator/thesis/stylesheet-images/tip.gif

binary file changed (1029 → absent bytes)

− doc/hvalidator/thesis/stylesheet-images/toc-blank.gif

binary file changed (95 → absent bytes)

− doc/hvalidator/thesis/stylesheet-images/toc-minus.gif

binary file changed (843 → absent bytes)

− doc/hvalidator/thesis/stylesheet-images/toc-plus.gif

binary file changed (846 → absent bytes)

− doc/hvalidator/thesis/stylesheet-images/up.gif

binary file changed (922 → absent bytes)

− doc/hvalidator/thesis/stylesheet-images/warning.gif

binary file changed (1052 → absent bytes)

− doc/hvalidator/thesis/x1178.html
@@ -1,887 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">-<HTML-><HEAD-><TITLE->Filter combinators</TITLE-><META-NAME="GENERATOR"-CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK-REL="HOME"-TITLE="Design and Implementation of a validating XML parser in Haskell"-HREF="index.html"><LINK-REL="UP"-TITLE="Package hdom"-HREF="c468.html"><LINK-REL="PREVIOUS"-TITLE="Filter functions"-HREF="x854.html"><LINK-REL="NEXT"-TITLE="Examples for filters and filter combinators"-HREF="x1438.html"></HEAD-><BODY-CLASS="section"-BGCOLOR="#FFFFFF"-TEXT="#000000"-LINK="#0000FF"-VLINK="#840084"-ALINK="#0000FF"-><DIV-CLASS="NAVHEADER"-><TABLE-SUMMARY="Header navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TH-COLSPAN="3"-ALIGN="center"->Design and Implementation of a validating XML parser in Haskell: Master's thesis; -			University of Applied Sciences Wedel-		</TH-></TR-><TR-><TD-WIDTH="10%"-ALIGN="left"-VALIGN="bottom"-><A-HREF="x854.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="80%"-ALIGN="center"-VALIGN="bottom"->Chapter 2. Package hdom</TD-><TD-WIDTH="10%"-ALIGN="right"-VALIGN="bottom"-><A-HREF="x1438.html"-ACCESSKEY="N"->Next</A-></TD-></TR-></TABLE-><HR-ALIGN="LEFT"-WIDTH="100%"></DIV-><DIV-CLASS="section"-><H1-CLASS="section"-><A-NAME="combinators"-></A->2.4. Filter combinators</H1-><DIV-CLASS="section"-><H2-CLASS="section"-><A-NAME="combinators_introduction"-></A->2.4.1. Introduction</H2-><P->&#13;			Functional programming languages like Haskell allow the use of higher-order functions, which take some functions as input, return a function as a result, or both. Filter combinators are higher-order functions, or operators, for combining several filters (see  <A-HREF="x854.html"->Section 2.3</A->). By combining simple filters, more complex functions can be created. Because all filters share the same type, it is possible that any filter can be composed with any other. All filters can be mixed and matched freely, because all functions in Haskell are side-effect free.-			</P-><P->&#13;			The idea of filter combinators was adapted and extended from HaXml [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_haxml"-><SPAN-CLASS="abbrev"->WWW21</SPAN-></A-></SPAN->]. In their paper "Haskell and XML: Generic Combinators or Type-Based Translation?" [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_haxmlpaper"-><SPAN-CLASS="abbrev"->WWW22</SPAN-></A-></SPAN->] Malcom Wallace and Colin Runciman describe various algebraic laws for their combinators.-			</P-><P->&#13;			The use of combinators makes it possible to hide details of programming over data structures. All details of data structure manipulation are hidden in combinator functions. In effect, the combinators define problem specific control structures. With this approach it is possible to reach a form of expression that is natural for the problem itself.-			</P-><P->&#13;			Conceptually, combinators are much like Unix pipes in that they allow building up more complex computational sequences by flexibly arranging highly specialized tools [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_haxml_parsia"-><SPAN-CLASS="abbrev"->WWW24</SPAN-></A-></SPAN->].-			The equivalent to Unix pipes it the "Irish composition" combinator, represented by the infix operator "<TT-CLASS="function"->o</TT->". This combinator applies one filter to the results of another one. This is similar to a pipe, which passes the output of one program as the input to another one.-			</P-><P->&#13;			The combinator library provides all functions that are necessary for traversing and processing XML documents represented as an <TT-CLASS="literal"->XmlTree</TT->. Haskell allows the definition of own infix operator symbols. Some combinators are defined as infix operators where it seemed more natural.-			</P-></DIV-><DIV-CLASS="section"-><H2-CLASS="section"-><A-NAME="combinators_list"-></A->2.4.2. List of combinators</H2-><P-></P-><DIV-CLASS="variablelist"-><P-><B->Basic filter combinators</B-></P-><DL-><DT-><TT-CLASS="function"->o :: (a -&#62; [b]) -&#62; (c -&#62; [a]) -&#62; c -&#62; [b]</TT-></DT-><DD-><P->&#13;						Irish composition. Sequential composition of two filters. The left filter is applied to the result of the right filter. (conjunction)-						</P-></DD-><DT-><TT-CLASS="function"->(+++) :: (a -&#62; [b]) -&#62; (a -&#62; [b]) -&#62; (a -&#62; [b])</TT-></DT-><DD-><P->&#13;						Binary parallel composition, the function unifies the results of two filters sequential. Each filter uses a copy of state. (union)-						</P-></DD-><DT-><TT-CLASS="function"->cat :: [a -&#62; [b]] -&#62; (a -&#62; [b])</TT-></DT-><DD-><P->&#13;						Concatenates the results of all filters in a list, a list version of union <TT-CLASS="function"->+++</TT->. The combinator sticks lots of filters together.-						</P-></DD-><DT-><TT-CLASS="function"->($$) :: (a -&#62; [b]) -&#62; [a] -&#62; [b]</TT-></DT-><DD-><P->&#13;						Applies a filter to a list.-						</P-></DD-><DT-><TT-CLASS="function"->processChildren :: TFilter node -&#62; TFilter node</TT-></DT-><DD-><P->&#13;						Applies a filter to the child list of a node.-						</P-></DD-></DL-></DIV-><P-></P-><DIV-CLASS="variablelist"-><P-><B->Choice combinators</B-></P-><DL-><DT-><TT-CLASS="function"->orElse :: (a -&#62; [b]) -&#62; (a -&#62; [b]) -&#62; (a -&#62; [b])</TT-></DT-><DD-><P->&#13;						Directional choice. Second filter is only applied if the first one produces an empty list.-						</P-></DD-><DT-><TT-CLASS="function"->(?&#62;) :: (a -&#62; [b]) -&#62; ThenElse (a -&#62; [b]) -&#62; (a -&#62; [b])</TT-></DT-><DD-><P->&#13;						In combination with the type <TT-CLASS="function"->ThenElse a = a :&#62; a</TT-> this combinator models an expression that resembles the conditional expression "<TT-CLASS="function"->p ? f : g</TT->" of C: "<TT-CLASS="function"->p ?&#62; f :&#62; g</TT->". If the predicate filter <TT-CLASS="literal"->p</TT-> is true, the filter <TT-CLASS="literal"->f</TT-> is applied otherwise <TT-CLASS="literal"->g</TT-> is applied.-						</P-></DD-><DT-><TT-CLASS="function"->when :: TFilter node -&#62; TFilter node -&#62; TFilter nod</TT-></DT-><DD-><P->&#13;						First filter is only applied to the passed node, if the second filter produces a list with contents, otherwise a list with the passed node is returned. The second filter is typically a predicate filter.-						</P-><P->&#13;							Definition: <TT-CLASS="function"->f `when` g = g ?&#62; f :&#62; this</TT->-						</P-></DD-><DT-><TT-CLASS="function"->whenNot :: TFilter node -&#62; TFilter node -&#62; TFilter node</TT-></DT-><DD-><P->&#13;						First filter is only applied to the passed node, if the second filter produces an empty list, otherwise a list of the passed node is returned. The second filter is typically a predicate filter.-						</P-><P->&#13;							Definition: <TT-CLASS="function"->f `whenNot` g = g ?&#62; this :&#62; f</TT->-						</P-></DD-><DT-><TT-CLASS="function"->guards :: TFilter node -&#62; TFilter node -&#62; TFilter node</TT-></DT-><DD-><P->&#13;						First filter is only applied to the passed node, if the second filter produces a list with contents, otherwise an empty list is returned. The second filter is typically a predicate filter.-						</P-><P->&#13;							Definition: <TT-CLASS="function"->g `guards` f = g ?&#62; f :&#62; none</TT->-						</P-></DD-><DT-><TT-CLASS="function"->containing :: (a -&#62; [b]) -&#62; (b -&#62; [c]) -&#62; a -&#62; [b]</TT-></DT-><DD-><P->&#13;						Pruning: Keep only those nodes for which the second filter produces a list with contents and apply the first filter to these nodes.-						</P-><P->&#13;							Definition: <TT-CLASS="function"->f `containing` g = filter (not . null . g) . f</TT->-						</P-></DD-><DT-><TT-CLASS="function"->notContaining :: (a -&#62; [b]) -&#62; (b -&#62; [c]) -&#62; a -&#62; [b]</TT-></DT-><DD-><P->&#13;						Pruning: Keep only those nodes for which the second filter produces an empty list and apply the first filter to these nodes.-						</P-><P->&#13;							Definition: <TT-CLASS="function"->f `notContaining` g = filter (null . g) . f</TT->-						</P-></DD-><DT-><TT-CLASS="function"->(/&#62;) :: TFilter node -&#62; TFilter node -&#62; TFilter node</TT-></DT-><DD-><P->&#13;						Interior search, pronounced <SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->"slash"</I-></SPAN->. First filter is applied to a node, the children of the result are taken and the second filter is applied to them, these children are returned. (meaning g inside f)-						</P-><P->&#13;							Definition: <TT-CLASS="function"->f /&#62; g = g `o` getChildren `o` f</TT->-						</P-></DD-><DT-><TT-CLASS="function"->(&#60;/) :: TFilter node -&#62; TFilter node -&#62; TFilter node</TT-></DT-><DD-><P->&#13;						Exterior search, pronounced <SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->"outside"</I-></SPAN->. First filter is applied to a node, the second to its children. If both filters return a result, the node is returned. (meaning f containing g)-						</P-><P->&#13;							Definition: <TT-CLASS="function"->f &#60;/ g = f `containing` (g `o` getChildren)</TT->-						</P-></DD-></DL-></DIV-><P-></P-><DIV-CLASS="variablelist"-><P-><B->Recursive search combinators</B-></P-><DL-><DT-><TT-CLASS="function"->deep :: TFilter node -&#62; TFilter node</TT-></DT-><DD-><P->&#13;						Filter is applied to each node of the tree. If the filter returns a result, processing is stopped. If not, the filter is applied to the next node of the tree. (top down traversal)-						</P-></DD-><DT-><TT-CLASS="function"->deepest :: TFilter node -&#62; TFilter node</TT-></DT-><DD-><P->&#13;						See <TT-CLASS="function"->deep</TT->, but bottom up traversal.-						</P-></DD-><DT-><TT-CLASS="function"->multi :: TFilter node -&#62; TFilter node</TT-></DT-><DD-><P->&#13;						Returns all successful applications of the filter to the whole tree.-						</P-></DD-></DL-></DIV-><P-></P-><DIV-CLASS="variablelist"-><P-><B->Recursive transformation combinators</B-></P-><DL-><DT-><TT-CLASS="function"->applyBottomUp :: TFilter node -&#62; TFilter node</TT-></DT-><DD-><P->&#13;						Constructs a new tree by applying the passed filter to each node of the tree. The tree is traversed bottom-up.-						</P-></DD-><DT-><TT-CLASS="function"->applyTopDown :: TFilter node -&#62; TFilter node</TT-></DT-><DD-><P->&#13;						Constructs a new tree by applying the passed filter to each node of the tree. The tree is traversed top-down.-						</P-></DD-><DT-><TT-CLASS="function"->applyBottomUpIfNot :: TFilter node -&#62; TFilter node -&#62; TFilter node</TT-></DT-><DD-><P->&#13;						Constructs a new tree with a guarded top down transformation. The first filter is only applied to those nodes for which the second filter produces a result.-						</P-></DD-></DL-></DIV-><P-></P-><DIV-CLASS="variablelist"-><P-><B->Monadic composition</B-></P-><DL-><DT-><TT-CLASS="function"->liftM :: Monad m =&#62; (a -&#62; [b]) -&#62; a -&#62; m [b]</TT-></DT-><DD-><P->&#13;						Lift a normal filter to a monadic filter so that it can be used in monads.-						</P-></DD-><DT-><TT-CLASS="function"->(.&#60;) :: Monad m =&#62; (b -&#62; m [c]) -&#62; (a -&#62; m[b]) -&#62; (a -&#62; m[c])</TT-></DT-><DD-><P->&#13;						Monadic Irish composition. Sequential composition of two filters. The first filter is applied to the result of the second filter (conjunction). Monadic version of the basic filter <TT-CLASS="function"->o</TT->.-						</P-></DD-><DT-><TT-CLASS="function"->($$&#60;) :: Monad m =&#62; (a -&#62; m [b]) -&#62; [a] -&#62; m [b]</TT-></DT-><DD-><P->&#13;						Apply a monadic filter to a list. Monadic version of the basic filter combinator <TT-CLASS="function"->cat</TT->.-						</P-></DD-></DL-></DIV-><P-></P-><DIV-CLASS="variablelist"-><P-><B->Special Filter combinators for XmlTree</B-></P-><DL-><DT-><TT-CLASS="function"->whenOk :: XmlFilter -&#62; XmlFilter -&#62;XmlFilter</TT-></DT-><DD-><P->&#13;						Applies the first filter to a node and checks the result for errors. In case of an error it stops processing and returns the list with the <TT-CLASS="literal"->XError</TT-> node. Otherwise processing is continued and the second filter is applied to the result.-						</P-></DD-><DT-><TT-CLASS="function"->whenOkM :: Monad m =&#62; (a -&#62; XmlTrees) -&#62; (XmlTrees -&#62; m XmlTrees) -&#62; a -&#62; m XmlTrees</TT-></DT-><DD-><P->&#13;						Monadic version of <TT-CLASS="function"->whenOk</TT->.-						</P-></DD-></DL-></DIV-></DIV-><DIV-CLASS="section"-><H2-CLASS="section"-><A-NAME="combinators_binding"-></A->2.4.3. Binding power and associativity</H2-><P->&#13;			Some combinators like the basic filter combinators and choice combinators can be expressed more naturally by operators. In Haskell completely new operators can be invented by using infix versions of functions and defining precedences and associativities for them.-			</P-><P->&#13;			The combinator operators are listed in following tables in decreasing order of their binding power. Combinators defined as prefix functions have to be written in back-quotes to be used as operators.-			</P-><DIV-CLASS="table"-><A-NAME="AEN1367"-></A-><P-><B->Table 2-1. Binding power and associativity of functional combinators</B-></P-><TABLE-BORDER="1"-CLASS="CALSTABLE"-><THEAD-><TR-><TH-ALIGN="LEFT"-VALIGN="MIDDLE"->Precedence level</TH-><TH-ALIGN="LEFT"-VALIGN="MIDDLE"->Operator</TH-><TH-ALIGN="LEFT"-VALIGN="MIDDLE"->Associativity</TH-></TR-></THEAD-><TBODY-><TR-><TD-ALIGN="LEFT"-VALIGN="MIDDLE"->6 (high)</TD-><TD-ALIGN="LEFT"-VALIGN="MIDDLE"->&#13;								<TT-CLASS="function"->`containing`</TT->, <TT-CLASS="function"->`notContaining`</TT->-							</TD-><TD-ALIGN="LEFT"-VALIGN="MIDDLE"->left</TD-></TR-><TR-><TD-ALIGN="LEFT"-VALIGN="MIDDLE"->5</TD-><TD-ALIGN="LEFT"-VALIGN="MIDDLE"->&#13;								<TT-CLASS="function"->`o`</TT->, <TT-CLASS="function"->+++</TT->-							</TD-><TD-ALIGN="LEFT"-VALIGN="MIDDLE"->right</TD-></TR-><TR-><TD-ALIGN="LEFT"-VALIGN="MIDDLE"->5</TD-><TD-ALIGN="LEFT"-VALIGN="MIDDLE"->&#13;								<TT-CLASS="function"->/&#62;</TT->, <TT-CLASS="function"->&#60;/</TT->, <TT-CLASS="function"->`orElse`</TT->-							</TD-><TD-ALIGN="LEFT"-VALIGN="MIDDLE"->left</TD-></TR-><TR-><TD-ALIGN="LEFT"-VALIGN="MIDDLE"->4</TD-><TD-ALIGN="LEFT"-VALIGN="MIDDLE"->&#13;								<TT-CLASS="function"->`when`</TT->, <TT-CLASS="function"->`whenNot`</TT->, <TT-CLASS="function"->`guards`</TT->, <TT-CLASS="function"->`whenOk`</TT->-							</TD-><TD-ALIGN="LEFT"-VALIGN="MIDDLE"->right</TD-></TR-><TR-><TD-ALIGN="LEFT"-VALIGN="MIDDLE"->3</TD-><TD-ALIGN="LEFT"-VALIGN="MIDDLE"->&#13;								<TT-CLASS="function"->?&#62;</TT->, <TT-CLASS="function"->:&#62;</TT->-							</TD-><TD-ALIGN="LEFT"-VALIGN="MIDDLE"->right</TD-></TR-><TR-><TD-ALIGN="LEFT"-VALIGN="MIDDLE"->0 (low)</TD-><TD-ALIGN="LEFT"-VALIGN="MIDDLE"->&#13;								<TT-CLASS="function"->$$</TT->-							</TD-><TD-ALIGN="LEFT"-VALIGN="MIDDLE"->right</TD-></TR-></TBODY-></TABLE-></DIV-><DIV-CLASS="table"-><A-NAME="AEN1414"-></A-><P-><B->Table 2-2. Binding power and associativity of monadic combinators</B-></P-><TABLE-BORDER="1"-CLASS="CALSTABLE"-><THEAD-><TR-><TH-ALIGN="LEFT"-VALIGN="MIDDLE"->Precedence level</TH-><TH-ALIGN="LEFT"-VALIGN="MIDDLE"->Operator</TH-><TH-ALIGN="LEFT"-VALIGN="MIDDLE"->Associativity</TH-></TR-></THEAD-><TBODY-><TR-><TD-ALIGN="LEFT"-VALIGN="MIDDLE"->5 (high)</TD-><TD-ALIGN="LEFT"-VALIGN="MIDDLE"->&#13;								<TT-CLASS="function"->.&#60;</TT->-							</TD-><TD-ALIGN="LEFT"-VALIGN="MIDDLE"->right</TD-></TR-><TR-><TD-ALIGN="LEFT"-VALIGN="MIDDLE"->4</TD-><TD-ALIGN="LEFT"-VALIGN="MIDDLE"->&#13;								<TT-CLASS="function"->`whenOkM`</TT->-							</TD-><TD-ALIGN="LEFT"-VALIGN="MIDDLE"->right</TD-></TR-><TR-><TD-ALIGN="LEFT"-VALIGN="MIDDLE"->0 (low)</TD-><TD-ALIGN="LEFT"-VALIGN="MIDDLE"->&#13;								<TT-CLASS="function"->$$&#60;</TT->-							</TD-><TD-ALIGN="LEFT"-VALIGN="MIDDLE"->right</TD-></TR-></TBODY-></TABLE-></DIV-></DIV-></DIV-><DIV-CLASS="NAVFOOTER"-><HR-ALIGN="LEFT"-WIDTH="100%"><TABLE-SUMMARY="Footer navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"-><A-HREF="x854.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="index.html"-ACCESSKEY="H"->Home</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"-><A-HREF="x1438.html"-ACCESSKEY="N"->Next</A-></TD-></TR-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"->Filter functions</TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="c468.html"-ACCESSKEY="U"->Up</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"->Examples for filters and filter combinators</TD-></TR-></TABLE-></DIV-></BODY-></HTML->
− doc/hvalidator/thesis/x1438.html
@@ -1,539 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">-<HTML-><HEAD-><TITLE->Examples for filters and filter combinators</TITLE-><META-NAME="GENERATOR"-CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK-REL="HOME"-TITLE="Design and Implementation of a validating XML parser in Haskell"-HREF="index.html"><LINK-REL="UP"-TITLE="Package hdom"-HREF="c468.html"><LINK-REL="PREVIOUS"-TITLE="Filter combinators"-HREF="x1178.html"><LINK-REL="NEXT"-TITLE="Access functions"-HREF="x1522.html"></HEAD-><BODY-CLASS="section"-BGCOLOR="#FFFFFF"-TEXT="#000000"-LINK="#0000FF"-VLINK="#840084"-ALINK="#0000FF"-><DIV-CLASS="NAVHEADER"-><TABLE-SUMMARY="Header navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TH-COLSPAN="3"-ALIGN="center"->Design and Implementation of a validating XML parser in Haskell: Master's thesis; -			University of Applied Sciences Wedel-		</TH-></TR-><TR-><TD-WIDTH="10%"-ALIGN="left"-VALIGN="bottom"-><A-HREF="x1178.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="80%"-ALIGN="center"-VALIGN="bottom"->Chapter 2. Package hdom</TD-><TD-WIDTH="10%"-ALIGN="right"-VALIGN="bottom"-><A-HREF="x1522.html"-ACCESSKEY="N"->Next</A-></TD-></TR-></TABLE-><HR-ALIGN="LEFT"-WIDTH="100%"></DIV-><DIV-CLASS="section"-><H1-CLASS="section"-><A-NAME="examples"-></A->2.5. Examples for filters and filter combinators</H1-><P->&#13;		After discussing filters and filter combinators in depth, this section shows the use of these functions in real life examples. Because the filters work on the generic tree data type <TT-CLASS="literal"->XmlTree</TT->, which represents whole XML documents, these functions form the basic uniform design of XML processing applications. The whole XML Parser of the Haskell XML Toolbox works internally with filters.-		</P-><DIV-CLASS="section"-><H2-CLASS="section"-><A-NAME="AEN1442"-></A->2.5.1. Removing comments</H2-><P->&#13;			This example describes in depth the use of filters and combinators for removing comments from an <TT-CLASS="literal"->XmlTree</TT->. It illustrates, how a complex filter can be constructed by combining very simple ones.-			</P-><P->&#13;			Removing comments from an <TT-CLASS="literal"->XmlTree</TT-> is done by transforming the tree with a special filter. This filter returns an empty list for comment nodes, all other nodes are simply returned. The result is a new tree without comment nodes.-			</P-><P->&#13;			To implement this filter, a predicate function is needed first, which detects comment nodes. Building on this filter a more complex one will be constructed that returns an empty list for comment nodes, but returns all other nodes. The final filter will apply this filter to the whole tree and create a new tree from its results.-			</P-><P->&#13;			The function <TT-CLASS="function"->isXCmt</TT-> is a predicate filter that detects comment nodes. It takes a node and checks if the node is of type <TT-CLASS="literal"->XCmt</TT->. If the node is a comment, a list with this node is returned, otherwise the result is an empty list.-			</P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;isXCmt              :: XmlFilter-isXCmt              = isOfNode isXCmtNode-			</PRE-></TD-></TR-></TABLE-><P->&#13;			The predicate filter <TT-CLASS="function"->isXCmt</TT-> itself bases on the basic selection filter <TT-CLASS="function"->isOfNode</TT->, which is exported by the module <TT-CLASS="classname"->XmlTree</TT->, and the predicate function <TT-CLASS="function"->isXCmtNode</TT->. The selection filter <TT-CLASS="function"->isOfNode</TT-> takes the predicate function as a parameter and returns a list with the passed node if the predicate function returns true for this node. Otherwise an empty list is returned. The predicate function <TT-CLASS="function"->isXCmtNode</TT-> uses pattern matching to figure out if a node is of type <TT-CLASS="literal"->XCmt</TT->.-			</P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;isOfNode            :: (node -&#62; Bool) -&#62; TFilter node-isOfNode p t@(NTree n _)-    | p n       = [t]-    | otherwise	= []--isXCmtNode          :: XNode -&#62; Bool-isXCmtNode (XCmt _) = True-isXCmtNode _        = False-			</PRE-></TD-></TR-></TABLE-><P->&#13;			The filter <TT-CLASS="function"->removeComment</TT-> takes a node and returns an empty list if the node is a comment, otherwise a list with the passed node is returned. The filter <TT-CLASS="function"->removeComment</TT-> combines the simple filter <TT-CLASS="function"->none</TT-> and the above described filter <TT-CLASS="function"->isXCmt</TT-> with the combinator <TT-CLASS="function"->when</TT->. If the predicate filter <TT-CLASS="function"->isXCmt</TT-> is true, <TT-CLASS="function"->none</TT-> returns an empty list. Otherwise a list with the node is returned.-			</P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;removeComment		:: XmlFilter-removeComment-    = none `when` isXCmt-			</PRE-></TD-></TR-></TABLE-><P->&#13;			The main filter <TT-CLASS="function"->removeAllComment</TT-> is a filter for removing all comments from an <TT-CLASS="literal"->XmlTree</TT->. It uses the recursive transformation filter <TT-CLASS="function"->applyBottomUp</TT->, which applies the filter <TT-CLASS="function"->removeComment</TT-> to the whole tree. The result is a new tree where all comments have been removed.-			</P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;removeAllComment	:: XmlFilter-removeAllComment-    = applyBottomUp removeComment-			</PRE-></TD-></TR-></TABLE-><P->&#13;			This example shows very clearly how complex filters can be constructed out of simple ones. The functions <TT-CLASS="function"->isOfNode</TT->, <TT-CLASS="function"->none</TT->, <TT-CLASS="function"->when</TT-> and <TT-CLASS="function"->applyBottomUp</TT-> are already exported by the module <TT-CLASS="classname"->XmlTree</TT->. They define own control structures and hide processing of the <TT-CLASS="literal"->XmlTree</TT-> from the programmer. The programmer does not have to worry about how to apply a filter to the whole tree and how to transform it. The use of predefined combinators and filters makes it possible to program on a very high abstraction level.-			</P-></DIV-><DIV-CLASS="section"-><H2-CLASS="section"-><A-NAME="AEN1484"-></A->2.5.2. Merging internal and external DTD subset</H2-><P->&#13;			After discussing the simple example for removing comments, this example will show a much more complex use of filters. Having defined combinators and basic filters already, it shows how they can usefully be combined into a complex function for merging the internal and external DTD subset. The XML parser of the Haskell XML Toolbox uses this function internally. The filter is part of the module <TT-CLASS="classname"->DTDProcessing</TT->.-			</P-><P->&#13;			A validating XML parser must merge the internal and external DTD subset. The document type declaration can point to an external subset containing declarations, it can contain the declarations directly in an internal subset, or can do both. If both the external and internal subsets are used, the internal subset must occur before the external subset. This has the effect that entity and attribute-list declarations in the internal subset take precedence over those in the external subset [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_xml"-><SPAN-CLASS="abbrev"->WWW01</SPAN-></A-></SPAN->].-			</P-><P->&#13;			The function <TT-CLASS="function"->mergeDTDs</TT-> takes two lists with the declarations of the internal and external subset as input and returns both subsets merged. Because the internal subset dominates over the external one, its declarations can be prepended before the filtered result list of the external subset. The operator <TT-CLASS="function"->++</TT-> is a standard Haskell function for concatenating two lists. The expression <TT-CLASS="function"->mergeDTDentry dtdInt</TT-> creates a complex filter function that filters declarations from the external subset, which have been already declared in the internal subset. This complex filter is applied by the combinator <TT-CLASS="function"->$$</TT-> to the whole declaration list of the external DTD subset.-			</P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;mergeDTDs	:: XmlTrees -&#62; XmlTrees -&#62; XmlTrees-mergeDTDs dtdInt dtdExt-    = dtdInt ++ (mergeDTDentry dtdInt $$ dtdExt)-			</PRE-></TD-></TR-></TABLE-><P->&#13;			The complex filter <TT-CLASS="function"->mergeDTDentry</TT-> is initialized with the internal subset. By applying this filter to each node of the external subset, it filters all entries that are already declared in the internal subset. It uses the same semantic like the example for removing comments. If a declaration occurs in both subsets, the filter returns an empty list, otherwise it returns a list with the element from the external subset. This behavior is defined by the expression: <TT-CLASS="function"->none `when` found</TT->.-			</P-><P->&#13;			 Internally the filter <TT-CLASS="function"->mergeDTDentry</TT-> bases on the filter <TT-CLASS="function"->filterDTDNode</TT->, which returns a node that occurs in both subsets. This filter is initialized with one node from the internal subset and checks if a node from the external subset equals this node. Because there usually exists more than one declaration in the internal subset, a list of this filter function is constructed, by applying <TT-CLASS="function"->filterDTDNode</TT-> with the list transformation function <TT-CLASS="function"->map</TT-> to all nodes of the internal subset. The result is a list of filter functions. This list of filters is later applied to a node of the external subset by the combinator <TT-CLASS="function"->cat</TT->.-			</P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;mergeDTDentry	:: XmlTrees -&#62; XmlFilter-mergeDTDentry dtd-    = none `when` found-      where-      filterList = map filterDTDNode dtd  -- construct the list of filters-      found      = cat filterList         -- concatenate the filters (set union)-			</PRE-></TD-></TR-></TABLE-><P->&#13;			The function <TT-CLASS="function"->filterDTDNode</TT-> constructs a filter which returns a list with a node that occurs in both subsets. The filter is initialized with a node from the internal subset.-			</P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;filterDTDNode	:: XmlTree -&#62; XmlFilter-			</PRE-></TD-></TR-></TABLE-><P->&#13;			If the nodes from the internal and external subsets are both of type <TT-CLASS="literal"->ELEMENT</TT->, <TT-CLASS="literal"->NOTATION</TT-> or <TT-CLASS="literal"->ENTITY</TT->, the filter checks if the values of their attributes "<SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->name</I-></SPAN->" are equal. If this is the case, a list with the node is returned, otherwise an empty list is returned.-			</P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;filterDTDNode (NTree (XDTD dtdElem al) _)-    | dtdElem `elem` [ELEMENT, NOTATION, ENTITY]-        = filterElement-          where-          filterElement n@(NTree (XDTD dtdElem' al') _cl')-              | dtdElem == dtdElem' &#38;&#38;-                getAttrValue a_name al' == getAttrValue a_name al-                  = [n]-              | otherwise  = []-          filterElement _  = []-			</PRE-></TD-></TR-></TABLE-><P->&#13;			If the nodes from the internal and external subset are of type <TT-CLASS="literal"->ATTLIST</TT->, the filter has to check if the values of the attributes for the element name and attribute name are equal. If this is the case, the declarations are equal and a list with this node is returned, otherwise an empty list is returned.-			</P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;filterDTDNode (NTree (XDTD ATTLIST al) _)-    = filterAttlist-      where-      filterAttlist n@(NTree (XDTD ATTLIST al') _cl')-          | getAttrValue a_name  al' == getAttrValue a_name  al &#38;&#38;-            getAttrValue a_value al' == getAttrValue a_value al-              = [n]-      filterAttlist _ = []-			</PRE-></TD-></TR-></TABLE-><P->&#13;			For all other types a filter is constructed that returns always an empty list.-			</P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;filterDTDNode _ =  none-			</PRE-></TD-></TR-></TABLE-><P->&#13;			This example might be a little bit confusing for people being not familiar with Haskell, but it demonstrates how even very complex tasks like merging the internal and external DTD subset can be implemented with filter functions and combinators. In this case a list of parameterized filter functions is constructed at runtime, which is applied to each node of the external DTD subset.-			</P-></DIV-></DIV-><DIV-CLASS="NAVFOOTER"-><HR-ALIGN="LEFT"-WIDTH="100%"><TABLE-SUMMARY="Footer navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"-><A-HREF="x1178.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="index.html"-ACCESSKEY="H"->Home</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"-><A-HREF="x1522.html"-ACCESSKEY="N"->Next</A-></TD-></TR-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"->Filter combinators</TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="c468.html"-ACCESSKEY="U"->Up</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"->Access functions</TD-></TR-></TABLE-></DIV-></BODY-></HTML->
− doc/hvalidator/thesis/x1522.html
@@ -1,295 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">-<HTML-><HEAD-><TITLE->Access functions</TITLE-><META-NAME="GENERATOR"-CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK-REL="HOME"-TITLE="Design and Implementation of a validating XML parser in Haskell"-HREF="index.html"><LINK-REL="UP"-TITLE="Package hdom"-HREF="c468.html"><LINK-REL="PREVIOUS"-TITLE="Examples for filters and filter combinators"-HREF="x1438.html"><LINK-REL="NEXT"-TITLE="State-I/O monad from module XmlState"-HREF="x1577.html"></HEAD-><BODY-CLASS="section"-BGCOLOR="#FFFFFF"-TEXT="#000000"-LINK="#0000FF"-VLINK="#840084"-ALINK="#0000FF"-><DIV-CLASS="NAVHEADER"-><TABLE-SUMMARY="Header navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TH-COLSPAN="3"-ALIGN="center"->Design and Implementation of a validating XML parser in Haskell: Master's thesis; -			University of Applied Sciences Wedel-		</TH-></TR-><TR-><TD-WIDTH="10%"-ALIGN="left"-VALIGN="bottom"-><A-HREF="x1438.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="80%"-ALIGN="center"-VALIGN="bottom"->Chapter 2. Package hdom</TD-><TD-WIDTH="10%"-ALIGN="right"-VALIGN="bottom"-><A-HREF="x1577.html"-ACCESSKEY="N"->Next</A-></TD-></TR-></TABLE-><HR-ALIGN="LEFT"-WIDTH="100%"></DIV-><DIV-CLASS="section"-><H1-CLASS="section"-><A-NAME="access_functions"-></A->2.6. Access functions</H1-><P->&#13;		Besides filters and combinators there exist some access functions for processing the attribute list <TT-CLASS="literal"->TagAttrl</TT-> of nodes.-		</P-><P-></P-><P-></P-><DIV-CLASS="variablelist"-><P-><B->Functions for processing the attribute list</B-></P-><DL-><DT-><TT-CLASS="function"->getAttrValue :: Eq a =&#62; a -&#62; [(a,b)] -&#62; Maybe b</TT-></DT-><DD-><P->&#13;					Looks up the value for a certain attribute. If the attribute does not exist, the data type <TT-CLASS="literal"->Nothing</TT-> is returned.-					</P-></DD-><DT-><TT-CLASS="function"->getAttrValue1 :: Eq a =&#62; a -&#62; [(a, String)] -&#62; String</TT-></DT-><DD-><P->&#13;					Looks up the value for a certain attribute. If the attribute does not exist, an empty string is returned.-					</P-></DD-><DT-><TT-CLASS="function"->hasAttrValue :: Eq a =&#62; a -&#62; [(a,b)] -&#62; Bool</TT-></DT-><DD-><P->&#13;					Returns true if there is an attribute with the searched name in the attribute list.-					</P-></DD-><DT-><TT-CLASS="function"->addAttrValue :: Eq a =&#62; a -&#62; b -&#62; [(a,b)] -&#62; [(a,b)]</TT-></DT-><DD-><P->&#13;					Adds an attribute, the name and value, to the list.-					</P-></DD-><DT-><TT-CLASS="function"->addAttrValues :: Eq a =&#62; [(a,b)] -&#62; [(a,b)] -&#62; [(a,b)]</TT-></DT-><DD-><P->&#13;					Adds a list of name-value pairs to the attribute list.-					</P-></DD-><DT-><TT-CLASS="function"->changeAttrValue :: Eq a =&#62; a -&#62; b -&#62; [(a,b)] -&#62; [(a,b)]</TT-></DT-><DD-><P->&#13;					Changes the value of a certain attribute.-					</P-></DD-><DT-><TT-CLASS="function"->delAttrValue :: Eq a =&#62; a -&#62; [(a,b)] -&#62; [(a,b)]</TT-></DT-><DD-><P->&#13;					Deletes an attribute from the list.-					</P-></DD-><DT-><TT-CLASS="function"->delAttrValues :: Eq a =&#62; [a] -&#62; [(a,b)] -&#62; [(a,b)]</TT-></DT-><DD-><P->&#13;					Deletes a list of attributes from the attribute list.-					</P-></DD-></DL-></DIV-><P->&#13;		The following example shows the use of access functions for adding a new attribute with the name "<SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->att2</I-></SPAN->" and the value "<SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->val2</I-></SPAN->" to the attribute list of an <TT-CLASS="literal"->XTag</TT-> node. The type of the node is detected by pattern-matching. If the node is of another type, it is simply returned.-		</P-><DIV-CLASS="example"-><A-NAME="AEN1574"-></A-><P-><B->Example 2-4. Adding a new attribute to an XTag node.</B-></P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;addAttribute :: XmlFilter-addAttribute n@(NTree (XTag name al) cs)-    = replaceAttrl newAttList n-      where-      newAttList = addAttrValue "att2" "val2" al--addAttribute n = [n]-			</PRE-></TD-></TR-></TABLE-></DIV-></DIV-><DIV-CLASS="NAVFOOTER"-><HR-ALIGN="LEFT"-WIDTH="100%"><TABLE-SUMMARY="Footer navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"-><A-HREF="x1438.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="index.html"-ACCESSKEY="H"->Home</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"-><A-HREF="x1577.html"-ACCESSKEY="N"->Next</A-></TD-></TR-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"->Examples for filters and filter combinators</TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="c468.html"-ACCESSKEY="U"->Up</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"->State-I/O monad from module XmlState</TD-></TR-></TABLE-></DIV-></BODY-></HTML->
− doc/hvalidator/thesis/x1577.html
@@ -1,401 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">-<HTML-><HEAD-><TITLE->State-I/O monad from module XmlState</TITLE-><META-NAME="GENERATOR"-CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK-REL="HOME"-TITLE="Design and Implementation of a validating XML parser in Haskell"-HREF="index.html"><LINK-REL="UP"-TITLE="Package hdom"-HREF="c468.html"><LINK-REL="PREVIOUS"-TITLE="Access functions"-HREF="x1522.html"><LINK-REL="NEXT"-TITLE="Package hparser"-HREF="c1645.html"></HEAD-><BODY-CLASS="section"-BGCOLOR="#FFFFFF"-TEXT="#000000"-LINK="#0000FF"-VLINK="#840084"-ALINK="#0000FF"-><DIV-CLASS="NAVHEADER"-><TABLE-SUMMARY="Header navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TH-COLSPAN="3"-ALIGN="center"->Design and Implementation of a validating XML parser in Haskell: Master's thesis; -			University of Applied Sciences Wedel-		</TH-></TR-><TR-><TD-WIDTH="10%"-ALIGN="left"-VALIGN="bottom"-><A-HREF="x1522.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="80%"-ALIGN="center"-VALIGN="bottom"->Chapter 2. Package hdom</TD-><TD-WIDTH="10%"-ALIGN="right"-VALIGN="bottom"-><A-HREF="c1645.html"-ACCESSKEY="N"->Next</A-></TD-></TR-></TABLE-><HR-ALIGN="LEFT"-WIDTH="100%"></DIV-><DIV-CLASS="section"-><H1-CLASS="section"-><A-NAME="XmlState"-></A->2.7. State-I/O monad from module XmlState</H1-><P->&#13;		The module <TT-CLASS="classname"->XmlState</TT-> provides a monad for an internal state and I/O commands. The concept of a monad comes from category theory. Monads are used for programming in a functional language using an imperative style. A monad can encapsulate computations such as I/O, manipulation of state or exceptions. For further information about monads, the section "Using Monads" of the Haskell Bookshelf [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_bookshelf"-><SPAN-CLASS="abbrev"->WWW17</SPAN-></A-></SPAN->] is a good starting place.-		</P-><P->&#13;		<TT-CLASS="classname"->XmlState</TT-> is used for various parts of the XML parser, e.g. when building the parse tree or substituting entities.	The internal state of the monad from <TT-CLASS="classname"->XmlState</TT-> consists of two parts, the user state and the system state. The user state is a type parameter, the system state is a list of name-value pairs. If the user state is not needed, the type parameter can be instantiated with <TT-CLASS="literal"->()</TT->.-		</P-><P->&#13;		The monad provides trace functions combined with trace levels to output marked computation steps. Error reporting functions are also located in this module. The error messages are printed to <SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->stderr</I-></SPAN-> and the maximum error level is stored in the system state.-		</P-><P->&#13;		Furthermore there are types for <TT-CLASS="function"->XmlFilter</TT-> functions working on this monad, functions for manipulating the state components and for lifting I/O commands and <TT-CLASS="function"->XmlFilter</TT->s to monad filters.-		</P-><P->&#13;        	<DIV-CLASS="figure"-><A-NAME="modules_xmlstate"-></A-><P-><B->Figure 2-3. Modules of XmlState</B-></P-><DIV-CLASS="mediaobject"-><P-><IMG-SRC="images/modules_xmlstate.gif"></P-></DIV-></DIV->-        </P-><P->&#13;		The internal state consists of a system and a user state.-		</P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;data XmlState state       = XmlState { sysState  :: SysState-                                     , userState :: state-                                     }-		</PRE-></TD-></TR-></TABLE-><P->&#13;		The system state consists of a list of name-value pairs of type String.-		</P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;type SysState             = TagAttrl-		</PRE-></TD-></TR-></TABLE-><P->&#13;		The monad type for commands. It is an instance of <TT-CLASS="literal"->StateIO</TT-> from the general module <TT-CLASS="classname"->MonadStateIO</TT->.-		</P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;type XState state res     = MonadStateIO.StateIO (XmlState state) res-		</PRE-></TD-></TR-></TABLE-><P->&#13;		The <TT-CLASS="function"->XmlFilter</TT-> type for filters working on a state.-		</P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;type XmlStateFilter state = XmlTree -&#62; XState state XmlTrees-		</PRE-></TD-></TR-></TABLE-><P-></P-><P-></P-><DIV-CLASS="variablelist"-><P-><B->Functions for executing XState commands</B-></P-><DL-><DT-><TT-CLASS="function"->run0 :: XmlState state -&#62; XState state res -&#62; IO (res, XmlState state)</TT-></DT-><DD-><P->&#13;					Executes an XState command with an initial state.-					</P-></DD-><DT-><TT-CLASS="function"->run :: state -&#62; XState state res -&#62; IO res</TT-></DT-><DD-><P->&#13;					Executes an XState command with an initial user state.-					</P-></DD-><DT-><TT-CLASS="function"->run' :: XState () res -&#62; IO res</TT-></DT-><DD-><P->&#13;                    Executes an XState command in the I/O monad.-					</P-></DD-></DL-></DIV-><P->&#13;		The following example shows the use of the State-I/O monad. All computations of <TT-CLASS="function"->processXmlN</TT-> take place in the State-I/O monad. The functions <TT-CLASS="function"->getXmlContents</TT->, <TT-CLASS="function"->parseXmlDoc</TT-> and <TT-CLASS="function"->putXmlTree</TT-> are <TT-CLASS="literal"->XmlStateFilter</TT->s. The first two filters do some computations where errors might occur. These <TT-CLASS="literal"->XmlStateFilter</TT->s can output the errors and set an error level in the State-I/O monad. The value of the error level is tested before the constructed parse tree is returned. The <TT-CLASS="literal"->XmlStateFilter</TT->s <TT-CLASS="function"->putXmlTree</TT-> just outputs the constructed parse tree.-		</P-><DIV-CLASS="example"-><A-NAME="AEN1638"-></A-><P-><B->Example 2-5. Using the monad from XmlState</B-></P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;processXmlN	:: XmlTree -&#62; IO [XmlTree]-processXmlN t0-    = run' $ do-             setSysState (selXTagAttrl . getNode $ t0)-             setTraceLevel 0-             t1 &#60;- getXmlContents $ t0-             t2 &#60;- parseXmlDoc    $$&#60; t1-             putXmlTree t2-             el &#60;- getErrorLevel-             return ( if el == 0-                      then t2-                      else [] )-			</PRE-></TD-></TR-></TABLE-></DIV-><P->&#13;		The functions <TT-CLASS="function"->setSysState</TT->, <TT-CLASS="function"->setTraceLevel</TT-> and <TT-CLASS="function"->getErrorLevel</TT-> are functions for accessing and manipulating the state of the monad. The monad comes with lots of more access functions.-		</P-></DIV-><DIV-CLASS="NAVFOOTER"-><HR-ALIGN="LEFT"-WIDTH="100%"><TABLE-SUMMARY="Footer navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"-><A-HREF="x1522.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="index.html"-ACCESSKEY="H"->Home</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"-><A-HREF="c1645.html"-ACCESSKEY="N"->Next</A-></TD-></TR-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"->Access functions</TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="c468.html"-ACCESSKEY="U"->Up</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"->Package hparser</TD-></TR-></TABLE-></DIV-></BODY-></HTML->
− doc/hvalidator/thesis/x1694.html
@@ -1,344 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">-<HTML-><HEAD-><TITLE->Module HdomParser</TITLE-><META-NAME="GENERATOR"-CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK-REL="HOME"-TITLE="Design and Implementation of a validating XML parser in Haskell"-HREF="index.html"><LINK-REL="UP"-TITLE="Package hparser"-HREF="c1645.html"><LINK-REL="PREVIOUS"-TITLE="Package hparser"-HREF="c1645.html"><LINK-REL="NEXT"-TITLE="Module XmlParser"-HREF="x1763.html"></HEAD-><BODY-CLASS="section"-BGCOLOR="#FFFFFF"-TEXT="#000000"-LINK="#0000FF"-VLINK="#840084"-ALINK="#0000FF"-><DIV-CLASS="NAVHEADER"-><TABLE-SUMMARY="Header navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TH-COLSPAN="3"-ALIGN="center"->Design and Implementation of a validating XML parser in Haskell: Master's thesis; -			University of Applied Sciences Wedel-		</TH-></TR-><TR-><TD-WIDTH="10%"-ALIGN="left"-VALIGN="bottom"-><A-HREF="c1645.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="80%"-ALIGN="center"-VALIGN="bottom"->Chapter 3. Package hparser</TD-><TD-WIDTH="10%"-ALIGN="right"-VALIGN="bottom"-><A-HREF="x1763.html"-ACCESSKEY="N"->Next</A-></TD-></TR-></TABLE-><HR-ALIGN="LEFT"-WIDTH="100%"></DIV-><DIV-CLASS="section"-><H1-CLASS="section"-><A-NAME="AEN1694"-></A->3.2. Module HdomParser</H1-><P->&#13;		The module <TT-CLASS="classname"->HdomParser</TT-> provides functions for parsing XML files and building the generic tree data structure <TT-CLASS="literal"->XmlTree</TT-> from these documents. The whole parsing process takes place in the State-I/O monad of the module <TT-CLASS="classname"->XmlState</TT->, so that well-formedness errors can be reported and different computations can be traced by outputting their results.-		</P-><P-></P-><DIV-CLASS="variablelist"-><P-><B->Parse functions</B-></P-><DL-><DT-><TT-CLASS="function"->parseDoc :: String -&#62; IO [XmlTree]</TT-></DT-><DD-><P->&#13;					Parses the file specified by the first parameter.-					</P-></DD-><DT-><TT-CLASS="function"->parseXmlFile :: IO [XmlTree]</TT-></DT-><DD-><P->Parses an XML file specified by a command line argument:-					<P-></P-><UL-><LI-><P->--source "source file" - XML file to parse</P-></LI-><LI-><P->--encoding "encoding" - Encoding scheme used in the file (optional)</P-></LI-></UL->-					</P-></DD-></DL-></DIV-><P->&#13;		The following example shows how an XML parser is constructed in the module <TT-CLASS="classname"->HdomParser</TT->. The whole parsing process takes place in the State-I/O monad defined in the module <TT-CLASS="classname"->XmlState</TT->. All computations are of type <TT-CLASS="literal"->XmlStateFilter</TT->.-		</P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;processXmlN	:: Int -&#62; XmlTree -&#62; IO [XmlTree]-processXmlN n t0-    = run' $ do-             setSysState (selXTagAttrl . getNode $ t0)-             setTraceLevel n-             t1 &#60;- getXmlContents $ t0-             t2 &#60;- parseXmlDoc    $$&#60; t1-             t3 &#60;- liftM transfAllCharRef $$&#60; t2-             t4 &#60;- processDTD     $$&#60; t3-             t5 &#60;- processGeneralEntities $$&#60; t4-             el &#60;- getErrorLevel-             return ( if el == 0-                      then t5-                      else [] )-		</PRE-></TD-></TR-></TABLE-><P-></P-><DIV-CLASS="variablelist"-><P-><B->Actions during parsing</B-></P-><DL-><DT-><TT-CLASS="function"->getXmlContents :: XmlStateFilter a</TT-></DT-><DD-><P->&#13;					 Returns a filter for reading the XML file. The filename is retrieved from the attribute with the name "<SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->source</I-></SPAN->" which must be part of the initial node <SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->t0</I-></SPAN->.-					</P-></DD-><DT-><TT-CLASS="function"->parseXmlDoc :: XmlStateFilter a</TT-></DT-><DD-><P->&#13;					Parses the XML file and builds the <TT-CLASS="literal"->XmlTree</TT->.-					</P-></DD-><DT-><TT-CLASS="function"->transfAllCharRef :: XmlFilter</TT-></DT-><DD-><P->&#13;					The <TT-CLASS="literal"->XmlFilter</TT-> <TT-CLASS="function"->transfAllCharRef</TT-> has to be lifted to an <TT-CLASS="literal"->XmlStateFilter</TT->. The filter substitutes character references by their characters.-					</P-></DD-><DT-><TT-CLASS="function"->processDTD :: XmlStateFilter a</TT-></DT-><DD-><P->&#13;					 Substitutes parameter entities, adds include sections and removes exclude sections of DTDs, merges internal and external DTD subsets.-					</P-></DD-><DT-><TT-CLASS="function"->processGeneralEntities :: XmlStateFilter a</TT-></DT-><DD-><P->&#13;					 Substitutes general entities.-					</P-></DD-><DT-><TT-CLASS="function"->getErrorLevel :: XState state Int</TT-></DT-><DD-><P->&#13;					 If an error occurred during applying the <TT-CLASS="literal"->XmlStateFilter</TT->s, <TT-CLASS="function"->&#13;					 processXmlN</TT-> returns an empty list, otherwise it returns the constructed <TT-CLASS="literal"->XmlTree</TT->.-					</P-></DD-></DL-></DIV-></DIV-><DIV-CLASS="NAVFOOTER"-><HR-ALIGN="LEFT"-WIDTH="100%"><TABLE-SUMMARY="Footer navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"-><A-HREF="c1645.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="index.html"-ACCESSKEY="H"->Home</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"-><A-HREF="x1763.html"-ACCESSKEY="N"->Next</A-></TD-></TR-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"->Package hparser</TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="c1645.html"-ACCESSKEY="U"->Up</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"->Module XmlParser</TD-></TR-></TABLE-></DIV-></BODY-></HTML->
− doc/hvalidator/thesis/x1763.html
@@ -1,240 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">-<HTML-><HEAD-><TITLE->Module XmlParser</TITLE-><META-NAME="GENERATOR"-CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK-REL="HOME"-TITLE="Design and Implementation of a validating XML parser in Haskell"-HREF="index.html"><LINK-REL="UP"-TITLE="Package hparser"-HREF="c1645.html"><LINK-REL="PREVIOUS"-TITLE="Module HdomParser"-HREF="x1694.html"><LINK-REL="NEXT"-TITLE="Module XmlInput"-HREF="x1800.html"></HEAD-><BODY-CLASS="section"-BGCOLOR="#FFFFFF"-TEXT="#000000"-LINK="#0000FF"-VLINK="#840084"-ALINK="#0000FF"-><DIV-CLASS="NAVHEADER"-><TABLE-SUMMARY="Header navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TH-COLSPAN="3"-ALIGN="center"->Design and Implementation of a validating XML parser in Haskell: Master's thesis; -			University of Applied Sciences Wedel-		</TH-></TR-><TR-><TD-WIDTH="10%"-ALIGN="left"-VALIGN="bottom"-><A-HREF="x1694.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="80%"-ALIGN="center"-VALIGN="bottom"->Chapter 3. Package hparser</TD-><TD-WIDTH="10%"-ALIGN="right"-VALIGN="bottom"-><A-HREF="x1800.html"-ACCESSKEY="N"->Next</A-></TD-></TR-></TABLE-><HR-ALIGN="LEFT"-WIDTH="100%"></DIV-><DIV-CLASS="section"-><H1-CLASS="section"-><A-NAME="AEN1763"-></A->3.3. Module XmlParser</H1-><P->&#13;		The module <TT-CLASS="classname"->XmlParser</TT-> provides the parse functions for parsing XML files and building an <TT-CLASS="literal"->XmlTree</TT->. The parser bases on Parsec [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_parsec"-><SPAN-CLASS="abbrev"->WWW29</SPAN-></A-></SPAN->], a free monadic parser combinator library for Haskell and does not need any look-ahead. The lexer and the parser are not separated. A feature of this parser is that nearly all parse functions can be implemented as it is defined by the productions in the XML 1.0 specification [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_xml"-><SPAN-CLASS="abbrev"->WWW01</SPAN-></A-></SPAN->].-		</P-><P->&#13;		Like filters are composed with filter combinators in the Haskell XML Toolbox, parsing is usually done with parser combinators in Haskell. Simple parser functions are combined with these higher-order functions to complex ones. The parser combinators are control structures that represent the operators used it the productions of syntax definitions.-		</P-><P->&#13;		An XML parser has to deal with different character sets. The parser of the Haskell XML Toolbox works internally with Unicode (UTF-8) encoding. The module <TT-CLASS="classname"->Unicode</TT-> provides several conversion functions for different character sets.-		</P-><P->&#13;			<P-></P-><P-><B->Supported character sets by the XmlParser:</B-></P-><UL-><LI-><P->UTF-8</P-></LI-><LI-><P->ISO-8859-1</P-></LI-><LI-><P->US-ASCII</P-></LI-><LI-><P->ISO-10646-UCS-2</P-></LI-><LI-><P->UTF-16</P-></LI-><LI-><P->UTF-16BE</P-></LI-><LI-><P->UTF-16LE</P-></LI-></UL->-		</P-><P->&#13;        	<DIV-CLASS="figure"-><A-NAME="modules_xmlparser"-></A-><P-><B->Figure 3-1. Modules of XmlParser</B-></P-><DIV-CLASS="mediaobject"-><P-><IMG-SRC="images/modules_xmlparser.gif"></P-></DIV-></DIV->-        </P-></DIV-><DIV-CLASS="NAVFOOTER"-><HR-ALIGN="LEFT"-WIDTH="100%"><TABLE-SUMMARY="Footer navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"-><A-HREF="x1694.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="index.html"-ACCESSKEY="H"->Home</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"-><A-HREF="x1800.html"-ACCESSKEY="N"->Next</A-></TD-></TR-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"->Module HdomParser</TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="c1645.html"-ACCESSKEY="U"->Up</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"->Module XmlInput</TD-></TR-></TABLE-></DIV-></BODY-></HTML->
− doc/hvalidator/thesis/x1800.html
@@ -1,210 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">-<HTML-><HEAD-><TITLE->Module XmlInput</TITLE-><META-NAME="GENERATOR"-CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK-REL="HOME"-TITLE="Design and Implementation of a validating XML parser in Haskell"-HREF="index.html"><LINK-REL="UP"-TITLE="Package hparser"-HREF="c1645.html"><LINK-REL="PREVIOUS"-TITLE="Module XmlParser"-HREF="x1763.html"><LINK-REL="NEXT"-TITLE="Module DTDProcessing"-HREF="x1823.html"></HEAD-><BODY-CLASS="section"-BGCOLOR="#FFFFFF"-TEXT="#000000"-LINK="#0000FF"-VLINK="#840084"-ALINK="#0000FF"-><DIV-CLASS="NAVHEADER"-><TABLE-SUMMARY="Header navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TH-COLSPAN="3"-ALIGN="center"->Design and Implementation of a validating XML parser in Haskell: Master's thesis; -			University of Applied Sciences Wedel-		</TH-></TR-><TR-><TD-WIDTH="10%"-ALIGN="left"-VALIGN="bottom"-><A-HREF="x1763.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="80%"-ALIGN="center"-VALIGN="bottom"->Chapter 3. Package hparser</TD-><TD-WIDTH="10%"-ALIGN="right"-VALIGN="bottom"-><A-HREF="x1823.html"-ACCESSKEY="N"->Next</A-></TD-></TR-></TABLE-><HR-ALIGN="LEFT"-WIDTH="100%"></DIV-><DIV-CLASS="section"-><H1-CLASS="section"-><A-NAME="AEN1800"-></A->3.4. Module XmlInput</H1-><P->&#13;		The module XmlInput provides input functions implemented as filters of type <TT-CLASS="literal"->XmlStateFilter</TT->. The main function is <TT-CLASS="function"->getXmlContents</TT->, which returns an <TT-CLASS="literal"->XmlStateFilter</TT-> for reading the content. This filter expects as input a node of type <TT-CLASS="literal"->NTree XTag</TT->  with several arguments stored in its attribute list. The child list of this node should be empty, because the parsed document will be stored there.-		</P-><P->&#13;		Protocols like the <SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->http</I-></SPAN-> or <SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->file</I-></SPAN-> protocol are not supported at the moment. Unfortunately there does not seem to exist any Haskell library supporting theses protocols. Perhaps later versions of the parser will use the <TT-CLASS="literal"->curl</TT-> command.-		</P-><P-></P-><DIV-CLASS="variablelist"-><P-><B->Arguments of getXmlContents</B-></P-><DL-><DT->Keyword a_source ("source") from module <TT-CLASS="classname"->XmlKeywords</TT-></DT-><DD-><P->&#13;					Specifies input file (or later URL)-					</P-></DD-><DT->Keyword a_encoding ("encoding") from module <TT-CLASS="classname"->XmlKeywords</TT-></DT-><DD-><P->&#13;					Specifies encoding scheme (optional). If no encoding is specified, the parser tries to guess the encoding.-					</P-></DD-></DL-></DIV-></DIV-><DIV-CLASS="NAVFOOTER"-><HR-ALIGN="LEFT"-WIDTH="100%"><TABLE-SUMMARY="Footer navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"-><A-HREF="x1763.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="index.html"-ACCESSKEY="H"->Home</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"-><A-HREF="x1823.html"-ACCESSKEY="N"->Next</A-></TD-></TR-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"->Module XmlParser</TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="c1645.html"-ACCESSKEY="U"->Up</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"->Module DTDProcessing</TD-></TR-></TABLE-></DIV-></BODY-></HTML->
− doc/hvalidator/thesis/x1823.html
@@ -1,161 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">-<HTML-><HEAD-><TITLE->Module DTDProcessing</TITLE-><META-NAME="GENERATOR"-CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK-REL="HOME"-TITLE="Design and Implementation of a validating XML parser in Haskell"-HREF="index.html"><LINK-REL="UP"-TITLE="Package hparser"-HREF="c1645.html"><LINK-REL="PREVIOUS"-TITLE="Module XmlInput"-HREF="x1800.html"><LINK-REL="NEXT"-TITLE="Module XmlOutput"-HREF="x1830.html"></HEAD-><BODY-CLASS="section"-BGCOLOR="#FFFFFF"-TEXT="#000000"-LINK="#0000FF"-VLINK="#840084"-ALINK="#0000FF"-><DIV-CLASS="NAVHEADER"-><TABLE-SUMMARY="Header navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TH-COLSPAN="3"-ALIGN="center"->Design and Implementation of a validating XML parser in Haskell: Master's thesis; -			University of Applied Sciences Wedel-		</TH-></TR-><TR-><TD-WIDTH="10%"-ALIGN="left"-VALIGN="bottom"-><A-HREF="x1800.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="80%"-ALIGN="center"-VALIGN="bottom"->Chapter 3. Package hparser</TD-><TD-WIDTH="10%"-ALIGN="right"-VALIGN="bottom"-><A-HREF="x1830.html"-ACCESSKEY="N"->Next</A-></TD-></TR-></TABLE-><HR-ALIGN="LEFT"-WIDTH="100%"></DIV-><DIV-CLASS="section"-><H1-CLASS="section"-><A-NAME="AEN1823"-></A->3.5. Module DTDProcessing</H1-><P->&#13;		The module <TT-CLASS="classname"->DTDProcessing</TT-> provides functions for parameter entity substitution, general entity substitution and merging the internal and the external DTD subset into one internal part. Parameter entity substitution should be done before merging the subsets of a DTD. The function <TT-CLASS="function"->processDTD</TT-> ensures this. Substitution of general entities is done by <TT-CLASS="function"->processGeneralEntities</TT->. The filters are monadic functions that use the State-I/O monad from the module <TT-CLASS="classname"->XmlState</TT->.-		</P-></DIV-><DIV-CLASS="NAVFOOTER"-><HR-ALIGN="LEFT"-WIDTH="100%"><TABLE-SUMMARY="Footer navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"-><A-HREF="x1800.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="index.html"-ACCESSKEY="H"->Home</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"-><A-HREF="x1830.html"-ACCESSKEY="N"->Next</A-></TD-></TR-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"->Module XmlInput</TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="c1645.html"-ACCESSKEY="U"->Up</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"->Module XmlOutput</TD-></TR-></TABLE-></DIV-></BODY-></HTML->
− doc/hvalidator/thesis/x1830.html
@@ -1,194 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">-<HTML-><HEAD-><TITLE->Module XmlOutput</TITLE-><META-NAME="GENERATOR"-CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK-REL="HOME"-TITLE="Design and Implementation of a validating XML parser in Haskell"-HREF="index.html"><LINK-REL="UP"-TITLE="Package hparser"-HREF="c1645.html"><LINK-REL="PREVIOUS"-TITLE="Module DTDProcessing"-HREF="x1823.html"><LINK-REL="NEXT"-TITLE="Package hvalidator"-HREF="c1850.html"></HEAD-><BODY-CLASS="section"-BGCOLOR="#FFFFFF"-TEXT="#000000"-LINK="#0000FF"-VLINK="#840084"-ALINK="#0000FF"-><DIV-CLASS="NAVHEADER"-><TABLE-SUMMARY="Header navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TH-COLSPAN="3"-ALIGN="center"->Design and Implementation of a validating XML parser in Haskell: Master's thesis; -			University of Applied Sciences Wedel-		</TH-></TR-><TR-><TD-WIDTH="10%"-ALIGN="left"-VALIGN="bottom"-><A-HREF="x1823.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="80%"-ALIGN="center"-VALIGN="bottom"->Chapter 3. Package hparser</TD-><TD-WIDTH="10%"-ALIGN="right"-VALIGN="bottom"-><A-HREF="c1850.html"-ACCESSKEY="N"->Next</A-></TD-></TR-></TABLE-><HR-ALIGN="LEFT"-WIDTH="100%"></DIV-><DIV-CLASS="section"-><H1-CLASS="section"-><A-NAME="AEN1830"-></A->3.6. Module XmlOutput</H1-><P->&#13;		<TT-CLASS="classname"->XmlOutput</TT-> provides output functions implemented as <TT-CLASS="literal"->XmlStateFilter</TT->s. These filters are very useful for printing out the <TT-CLASS="literal"->XmlTree</TT-> during  computations while parsing, e.g. printing out the tree before and after entity processing. The whole parsing process takes place in the State-I/O monad from <TT-CLASS="classname"->XmlState</TT->. If a trace level different from zero is set in this monad, these functions are used to show the computation steps.-		</P-><P-></P-><DIV-CLASS="variablelist"-><DL-><DT-><TT-CLASS="function"->putXmlSource :: XmlStateFilter a</TT-></DT-><DD-><P->&#13;					Prints the <TT-CLASS="literal"->XmlTree</TT-> in XML representation.-					</P-></DD-><DT-><TT-CLASS="function"->putXmlTree :: XmlStateFilter a</TT-></DT-><DD-><P->&#13;					Prints the <TT-CLASS="literal"->XmlTree</TT-> in tree representation.-					</P-></DD-></DL-></DIV-></DIV-><DIV-CLASS="NAVFOOTER"-><HR-ALIGN="LEFT"-WIDTH="100%"><TABLE-SUMMARY="Footer navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"-><A-HREF="x1823.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="index.html"-ACCESSKEY="H"->Home</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"-><A-HREF="c1850.html"-ACCESSKEY="N"->Next</A-></TD-></TR-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"->Module DTDProcessing</TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="c1645.html"-ACCESSKEY="U"->Up</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"->Package hvalidator</TD-></TR-></TABLE-></DIV-></BODY-></HTML->
− doc/hvalidator/thesis/x1900.html
@@ -1,339 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">-<HTML-><HEAD-><TITLE->Creating a validating XML parser</TITLE-><META-NAME="GENERATOR"-CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK-REL="HOME"-TITLE="Design and Implementation of a validating XML parser in Haskell"-HREF="index.html"><LINK-REL="UP"-TITLE="Package hvalidator"-HREF="c1850.html"><LINK-REL="PREVIOUS"-TITLE="Package hvalidator"-HREF="c1850.html"><LINK-REL="NEXT"-TITLE="Validation of the Document Type Definition"-HREF="x1946.html"></HEAD-><BODY-CLASS="section"-BGCOLOR="#FFFFFF"-TEXT="#000000"-LINK="#0000FF"-VLINK="#840084"-ALINK="#0000FF"-><DIV-CLASS="NAVHEADER"-><TABLE-SUMMARY="Header navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TH-COLSPAN="3"-ALIGN="center"->Design and Implementation of a validating XML parser in Haskell: Master's thesis; -			University of Applied Sciences Wedel-		</TH-></TR-><TR-><TD-WIDTH="10%"-ALIGN="left"-VALIGN="bottom"-><A-HREF="c1850.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="80%"-ALIGN="center"-VALIGN="bottom"->Chapter 4. Package hvalidator</TD-><TD-WIDTH="10%"-ALIGN="right"-VALIGN="bottom"-><A-HREF="x1946.html"-ACCESSKEY="N"->Next</A-></TD-></TR-></TABLE-><HR-ALIGN="LEFT"-WIDTH="100%"></DIV-><DIV-CLASS="section"-><H1-CLASS="section"-><A-NAME="creating_a_validating_xml_parser"-></A->4.2. Creating a validating XML parser</H1-><P->&#13;		The only public module for validating XML documents is the module <TT-CLASS="classname"->Validation</TT->. It exports several functions for validating XML documents, parts of XML documents and transforming them.-		</P-><P-></P-><DIV-CLASS="variablelist"-><DL-><DT-><TT-CLASS="function"->validateAndTransform :: XmlSFilter</TT-></DT-><DD-><P->&#13;					Combines validation and transformation of a document. If errors or fatal errors occurred during validation, a list of errors is returned. Otherwise the transformed document is returned.-					</P-></DD-><DT-><TT-CLASS="function"->validate :: XmlSFilter</TT-></DT-><DD-><P->&#13;					Checks if the DTD and the document are valid.-					</P-></DD-><DT-><TT-CLASS="function"->validateDTD :: XmlSFilter</TT-></DT-><DD-><P->&#13;					Checks if the DTD is valid.-					</P-></DD-><DT-><TT-CLASS="function"->validateDoc :: XmlSFilter</TT-></DT-><DD-><P->&#13;					Checks if the document corresponds to the given DTD.-					</P-></DD-><DT-><TT-CLASS="function"->transform :: XmlSFilter</TT-></DT-><DD-><P->&#13;					Transforms the document with respect to the given DTD. Validating parsers are expected to  normalize attribute values and add default values. This function should be called after a successful validation.-					</P-></DD-></DL-></DIV-><P->&#13;		The following example shows how the functions <TT-CLASS="function"->validate</TT-> and <TT-CLASS="function"->transform</TT-> can be used in an XML processing application. The document is valid, if <TT-CLASS="function"->validate</TT-> returns an empty list or a list containing only errors of type <SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->warning</I-></SPAN->. If the list contains errors of type <SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->error</I-></SPAN-> or <SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->fatal error</I-></SPAN->, the document is not valid. If the document is valid the document is transformed and displayed to the user.-		</P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;-printMsg :: XmlTrees -&#62; XmlTrees -&#62; IO()-printMsg errors doc-    = if null ((isError +++ isFatalError) $$ errors)-        then do-             if null errors-               then-                  putStrLn "The document is valid."-                  putStrLn (xmlTreesToString $ transform doc)-             else do-                  putStrLn "The document is valid, but there were warnings:"-                  putStrLn (xmlTreesToString $ transform doc)-                  putStrLn (showXErrors errors)-        else do-             putStrLn "The document is not valid. List of errors:"-             putStrLn (showXErrors errors)----main :: IO()-main-    = do-      doc &#60;- parseDoc "invalid.xml"-      printMsg (validate doc) doc-      return ()--		</PRE-></TD-></TR-></TABLE-><P-></P-><P->&#13;		Calling the module <TT-CLASS="classname"->ValidateExample</TT-> from the directory <SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->example</I-></SPAN-> of the Haskell XML Toolbox with the invalid document <SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->invalid.xml</I-></SPAN-> produces the following error messages.-		</P-><DIV-CLASS="example"-><A-NAME="AEN1943"-></A-><P-><B->Example 4-1. Validating a document with errors</B-></P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;&#60;?xml version="1.0" encoding="UTF-8" standalone="yes" ?&#62;--&#60;!DOCTYPE a [-&#60;!ATTLIST a  att1  CDATA  #IMPLIED&#62;-&#60;!ELEMENT a  (z, c?)&#62;-&#60;!ELEMENT b  EMPTY&#62;-&#60;!ELEMENT c  (#PCDATA)&#62;-]&#62;--&#60;a att2="test"&#62;-    &#60;y/&#62;-    &#60;c&#62;hello world&#60;/c&#62;-&#60;/a&#62;--The document is not valid. List of errors:-Warning: The element type "z", used in content model of element "a", is not declared.-Error: The content of element "a" must match ( "z" , "c"? ). Element "z" expected,-       but Element "y" found.-Error: Attribute "att2" of element "a" is not declared in DTD.-Error: Element "y" not declared in DTD.-  			</PRE-></TD-></TR-></TABLE-></DIV-></DIV-><DIV-CLASS="NAVFOOTER"-><HR-ALIGN="LEFT"-WIDTH="100%"><TABLE-SUMMARY="Footer navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"-><A-HREF="c1850.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="index.html"-ACCESSKEY="H"->Home</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"-><A-HREF="x1946.html"-ACCESSKEY="N"->Next</A-></TD-></TR-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"->Package hvalidator</TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="c1850.html"-ACCESSKEY="U"->Up</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"->Validation of the Document Type Definition</TD-></TR-></TABLE-></DIV-></BODY-></HTML->
− doc/hvalidator/thesis/x1946.html
@@ -1,332 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">-<HTML-><HEAD-><TITLE->Validation of the Document Type Definition</TITLE-><META-NAME="GENERATOR"-CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK-REL="HOME"-TITLE="Design and Implementation of a validating XML parser in Haskell"-HREF="index.html"><LINK-REL="UP"-TITLE="Package hvalidator"-HREF="c1850.html"><LINK-REL="PREVIOUS"-TITLE="Creating a validating XML parser"-HREF="x1900.html"><LINK-REL="NEXT"-TITLE="Validation of the document subset"-HREF="x2007.html"></HEAD-><BODY-CLASS="section"-BGCOLOR="#FFFFFF"-TEXT="#000000"-LINK="#0000FF"-VLINK="#840084"-ALINK="#0000FF"-><DIV-CLASS="NAVHEADER"-><TABLE-SUMMARY="Header navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TH-COLSPAN="3"-ALIGN="center"->Design and Implementation of a validating XML parser in Haskell: Master's thesis; -			University of Applied Sciences Wedel-		</TH-></TR-><TR-><TD-WIDTH="10%"-ALIGN="left"-VALIGN="bottom"-><A-HREF="x1900.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="80%"-ALIGN="center"-VALIGN="bottom"->Chapter 4. Package hvalidator</TD-><TD-WIDTH="10%"-ALIGN="right"-VALIGN="bottom"-><A-HREF="x2007.html"-ACCESSKEY="N"->Next</A-></TD-></TR-></TABLE-><HR-ALIGN="LEFT"-WIDTH="100%"></DIV-><DIV-CLASS="section"-><H1-CLASS="section"-><A-NAME="validation_of_the_dtd"-></A->4.3. Validation of the Document Type Definition</H1-><P->&#13;		Validation of the DTD is done by the module <TT-CLASS="classname"->DTDValidation</TT->. Notations, unparsed entities, element declarations and attribute declarations are checked if they correspond to the constraints of the XML 1.0 specification [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_xml"-><SPAN-CLASS="abbrev"->WWW01</SPAN-></A-></SPAN->].-		</P-><P->&#13;		The following checks are performed:-		</P-><P-></P-><P-><B->DTD</B-></P-><UL-><LI-><P->Error: There exists no DOCTYPE declaration in the document.</P-></LI-></UL-><P-></P-><P-><B->Notations</B-></P-><UL-><LI-><P->Error: A notation was already specified.</P-></LI-></UL-><P-></P-><P-><B->Unparsed entities:</B-></P-><UL-><LI-><P->Warning: Entity is declared multiple times. First declaration is used.</P-></LI-><LI-><P->Error: A referenced notations must be declared</P-></LI-></UL-><P-></P-><P-><B->Element declarations:</B-></P-><UL-><LI-><P->Error: Element is declared more than once</P-></LI-><LI-><P->Error: Element was specified multiple times in a content model of type mixed content.</P-></LI-><LI-><P->Warning: Element used in a content model is not declared.</P-></LI-></UL-><P-></P-><P-><B->Attribute declarations:</B-></P-><UL-><LI-><P->Warning: There exists no element declaration for the attribute declaration.</P-></LI-><LI-><P->Warning: Attribute is declared multiple times. First declaration will be used.</P-></LI-><LI-><P->Warning: Same Nmtoken should not occur more than once in enumerate attribute types.</P-></LI-><LI-><P->Error: Element already has an attribute of type ID. A second attribute of type ID is not permitted.</P-></LI-><LI-><P->Error: ID attribute must have a declared default of #IMPLIED or #REQUIRED.</P-></LI-><LI-><P->Error: Element already has an attribute of type NOTATION. A second attribute of type NOTATION is not permitted.</P-></LI-><LI-><P->Error: Attribute of type NOTATION must not be declared on an element declared EMPTY.</P-></LI-><LI-><P->Error: A notation must be declared when referenced in the notation type list for an attribute.</P-></LI-><LI-><P->Error: The declared default value must meet the lexical constraints of the declared attribute type.</P-></LI-></UL-><P->&#13;		Each check is done by a separate function, which takes the child list of the <TT-CLASS="literal"->XDTD DOCTYPE</TT-> node as input and returns a list of errors. Some functions can optionally take some further arguments to have access to context information, e.g. when validating unparsed entities, a list of all defined notations is needed. The result of validating the DTD is a concatenated list of the results of all validation functions.-		</P-><P->&#13;		The following example shows a filter function for checking the validity constraint: "No Notation on Empty Element" (section 3.3.1 in XML 1.0 specification [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_xml"-><SPAN-CLASS="abbrev"->WWW01</SPAN-></A-></SPAN->]). It means that an attribute of type NOTATION must not be declared for an element declared EMPTY. A notation attribute is a way to give an application a clue how the content of an element should be processed. The notation might refer to a program that can process the content, e.g. a base-64 encoded JPEG. Because empty elements cannot have contents, attributes of type notation are forbidden. The function <TT-CLASS="function"->checkNoNotationForEmptyElement</TT-> is initialized with a list of all element names declared EMPTY. The constructed filter is then applied to all <TT-CLASS="literal"->XDTD ATTLIST</TT-> nodes of type NOTATION that have been selected from the DTD by another filter function.-		</P-><DIV-CLASS="example"-><A-NAME="AEN2002"-></A-><P-><B->Example 4-2. Validation that notations are not declared for EMPTY elements</B-></P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;checkNoNotationForEmptyElement :: [String] -&#62; XmlFilter-checkNoNotationForEmptyElement emptyElems nd@(NTree (XDTD ATTLIST al) _)-    = if elemName `elem` emptyElems-      then err ("Attribute \""++ attName ++"\" of type NOTATION must not be "++-                "declared on the element \""++ elemName ++"\" declared EMPTY.") nd-      else []-      where-      elemName = getAttrValue1 a_name  al-      attName  = getAttrValue1 a_value al--checkNoNotationForEmptyElement _ nd-    = error ("checkNoNotationForEmptyElement: illegal parameter:\n" ++ show nd)-			</PRE-></TD-></TR-></TABLE-></DIV-><P->&#13;		The validation functions cannot check if a content model is deterministic. This requirement is for compatibility with SGML, because some SGML tools can rely on unambiguous content models. XML processors may flag such content models as errors, but the Haskell XML Toolbox does not. It does not need deterministic content models for checking if the children of an element are valid (see <A-HREF="x2086.html"->Section 4.7</A->).-		</P-></DIV-><DIV-CLASS="NAVFOOTER"-><HR-ALIGN="LEFT"-WIDTH="100%"><TABLE-SUMMARY="Footer navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"-><A-HREF="x1900.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="index.html"-ACCESSKEY="H"->Home</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"-><A-HREF="x2007.html"-ACCESSKEY="N"->Next</A-></TD-></TR-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"->Creating a validating XML parser</TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="c1850.html"-ACCESSKEY="U"->Up</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"->Validation of the document subset</TD-></TR-></TABLE-></DIV-></BODY-></HTML->
− doc/hvalidator/thesis/x2007.html
@@ -1,330 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">-<HTML-><HEAD-><TITLE->Validation of the document subset</TITLE-><META-NAME="GENERATOR"-CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK-REL="HOME"-TITLE="Design and Implementation of a validating XML parser in Haskell"-HREF="index.html"><LINK-REL="UP"-TITLE="Package hvalidator"-HREF="c1850.html"><LINK-REL="PREVIOUS"-TITLE="Validation of the Document Type Definition"-HREF="x1946.html"><LINK-REL="NEXT"-TITLE="Transformation of the document subset"-HREF="x2065.html"></HEAD-><BODY-CLASS="section"-BGCOLOR="#FFFFFF"-TEXT="#000000"-LINK="#0000FF"-VLINK="#840084"-ALINK="#0000FF"-><DIV-CLASS="NAVHEADER"-><TABLE-SUMMARY="Header navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TH-COLSPAN="3"-ALIGN="center"->Design and Implementation of a validating XML parser in Haskell: Master's thesis; -			University of Applied Sciences Wedel-		</TH-></TR-><TR-><TD-WIDTH="10%"-ALIGN="left"-VALIGN="bottom"-><A-HREF="x1946.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="80%"-ALIGN="center"-VALIGN="bottom"->Chapter 4. Package hvalidator</TD-><TD-WIDTH="10%"-ALIGN="right"-VALIGN="bottom"-><A-HREF="x2065.html"-ACCESSKEY="N"->Next</A-></TD-></TR-></TABLE-><HR-ALIGN="LEFT"-WIDTH="100%"></DIV-><DIV-CLASS="section"-><H1-CLASS="section"-><A-NAME="validation_of_the_document"-></A->4.4. Validation of the document subset</H1-><P->&#13;		After validation of the DTD the document has to be validated. By validating the document, validation of the elements and their attributes is meant. This process is split into two phases: validation of the elements and their attributes and validation of attributes of types ID, IDREF and IDREFS.-		</P-><P-></P-><DIV-CLASS="variablelist"-><P-><B->Involved modules</B-></P-><DL-><DT-><TT-CLASS="classname"->DocValidation</TT-></DT-><DD-><P->&#13;					Validation of the elements and their attributes. Validation of content models is delegated to the module <TT-CLASS="classname"->XmlRE</TT->.-					</P-></DD-><DT-><TT-CLASS="classname"->IdValidation</TT-></DT-><DD-><P->&#13;					Validation of attributes of types ID, IDREF and IDREFS.-					</P-></DD-></DL-></DIV-><P->&#13;		Before the document is validated, a lookup-table is built on the basis of the DTD. This table maps element names to their validation functions. The validation function for an element is a set of <TT-CLASS="literal"->XmlFilter</TT-> functions, which take the current element as input and return a list of errors. If the element meets the validation constraints, an empty list is returned. Each validation constraint, listed in the following, is represented by a single filter. All these filters are combined by the combinator <TT-CLASS="function"->+++</TT->, which concatenates the results of filters, each filter uses copy of state. This approach for validation is very flexible. It is very easy to add new functions without affecting the other ones.-		</P-><P->&#13;        After the initialization phase of building the validation filters and the lookup table, the whole document is traversed in preorder and every element is validated by its validation filter.-		</P-><P->&#13;			<P-></P-><P-><B->Validation of elements:</B-></P-><UL-><LI-><P->Error: Element is not declared in DTD.</P-></LI-><LI-><P->Error: Root element must match value declared in DOCTYPE.</P-></LI-><LI-><P->Error: Children of element do not match its content model.</P-></LI-></UL->--			<P-></P-><P-><B->Validation of attributes:</B-></P-><UL-><LI-><P->Error: Attribute is not declared.</P-></LI-><LI-><P->Error: Attribute is specified multiple times.</P-></LI-><LI-><P->Error: Attribute is of type #REQUIRED, but was not specified.</P-></LI-><LI-><P->Error: Attribute is of type #FIXED, but specified value differs from fixed value.</P-></LI-><LI-><P->Error: Value of attribute does not match the lexical constraints of its type.</P-></LI-></UL->-		</P-><P->&#13;		The module <TT-CLASS="classname"->IdValidation</TT-> provides functions for checking special ID/IDREF/IDREFS constraints. First it is checked if all ID values are unique. All nodes with ID attributes are collected from the document, then it is validated that values of ID attributes do not occur more than once. During a second iteration over the document it is validated that all IDREF/IDREFS values match the value of some ID attribute. For both checks a lookup-table, which maps element names to their validation functions, is built like it is done in the module <TT-CLASS="classname"->DocValidation</TT->.-		</P-><P->&#13;			<P-></P-><P-><B->Validation of ID/IDREF/IDREFS:</B-></P-><UL-><LI-><P->Error: Value of type ID must be unique within the document.</P-></LI-><LI-><P->Error: An attribute of type IDREF/IDREFS references an identifier that does not exist in the document.</P-></LI-></UL->-		</P-><P->&#13;		The following example shows a filter for validating that all attributes of an element are unique (Unique AttSpec, section 3.1 XML 1.0 specification [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_xml"-><SPAN-CLASS="abbrev"->WWW01</SPAN-></A-></SPAN->]). It is a filter, which takes an element - an <TT-CLASS="literal"->NTree XTag</TT-> node - checks if its attributes are unique, and returns a list of errors or an empty list.-		</P-><DIV-CLASS="example"-><A-NAME="AEN2062"-></A-><P-><B->Example 4-3. Validation that all attributes are unique</B-></P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;noDoublicateAttributes :: XmlFilter-noDoublicateAttributes n@(NTree (XTag name al) _)-    = doubles $ reverse al-      where-      doubles :: TagAttrl -&#62; XmlTrees-      doubles ((attrName,_):xs)-          = if (lookup attrName xs) == Nothing-            then doubles xs-            else (err ("Attribute \""++ attrName ++"\" was already specified "++-                       "for element \"++ name ++"\".") n)-                 ++-                 doubles xs--      doubles [] = []--noDoublicateAttributes n-    = error ("noDoublicateAttributes: illegal parameter:\n" ++ show n)-			</PRE-></TD-></TR-></TABLE-></DIV-></DIV-><DIV-CLASS="NAVFOOTER"-><HR-ALIGN="LEFT"-WIDTH="100%"><TABLE-SUMMARY="Footer navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"-><A-HREF="x1946.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="index.html"-ACCESSKEY="H"->Home</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"-><A-HREF="x2065.html"-ACCESSKEY="N"->Next</A-></TD-></TR-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"->Validation of the Document Type Definition</TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="c1850.html"-ACCESSKEY="U"->Up</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"->Transformation of the document subset</TD-></TR-></TABLE-></DIV-></BODY-></HTML->
− doc/hvalidator/thesis/x2065.html
@@ -1,184 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">-<HTML-><HEAD-><TITLE->Transformation of the document subset</TITLE-><META-NAME="GENERATOR"-CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK-REL="HOME"-TITLE="Design and Implementation of a validating XML parser in Haskell"-HREF="index.html"><LINK-REL="UP"-TITLE="Package hvalidator"-HREF="c1850.html"><LINK-REL="PREVIOUS"-TITLE="Validation of the document subset"-HREF="x2007.html"><LINK-REL="NEXT"-TITLE="Validation of attribute values"-HREF="x2081.html"></HEAD-><BODY-CLASS="section"-BGCOLOR="#FFFFFF"-TEXT="#000000"-LINK="#0000FF"-VLINK="#840084"-ALINK="#0000FF"-><DIV-CLASS="NAVHEADER"-><TABLE-SUMMARY="Header navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TH-COLSPAN="3"-ALIGN="center"->Design and Implementation of a validating XML parser in Haskell: Master's thesis; -			University of Applied Sciences Wedel-		</TH-></TR-><TR-><TD-WIDTH="10%"-ALIGN="left"-VALIGN="bottom"-><A-HREF="x2007.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="80%"-ALIGN="center"-VALIGN="bottom"->Chapter 4. Package hvalidator</TD-><TD-WIDTH="10%"-ALIGN="right"-VALIGN="bottom"-><A-HREF="x2081.html"-ACCESSKEY="N"->Next</A-></TD-></TR-></TABLE-><HR-ALIGN="LEFT"-WIDTH="100%"></DIV-><DIV-CLASS="section"-><H1-CLASS="section"-><A-NAME="transformation_of_document"-></A->4.5. Transformation of the document subset</H1-><P->&#13;		Transformation of the document is done by the module <TT-CLASS="classname"->DocTransformation</TT->. The transformation should be started after validating the document.-		</P-><P->&#13;			<P-></P-><P-><B->Tasks:</B-></P-><UL-><LI-><P->Adding default values of attributes</P-></LI-><LI-><P->Normalizing attribute values</P-></LI-><LI-><P->Sorting all attributes in lexicographic order</P-></LI-></UL->-		</P-><P->&#13;		Before the document can be transformed, a lookup-table is built on the basis of the DTD which maps element names to their transformation functions. The transformation functions are <TT-CLASS="literal"->XmlFilter</TT-> functions, which take a node and return the transformed node. After the initialization phase the whole document is traversed in preorder and every element is transformed by its transformation filter from the lookup-table. The result is a new, transformed <TT-CLASS="literal"->XmlTree</TT->.-		</P-></DIV-><DIV-CLASS="NAVFOOTER"-><HR-ALIGN="LEFT"-WIDTH="100%"><TABLE-SUMMARY="Footer navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"-><A-HREF="x2007.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="index.html"-ACCESSKEY="H"->Home</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"-><A-HREF="x2081.html"-ACCESSKEY="N"->Next</A-></TD-></TR-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"->Validation of the document subset</TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="c1850.html"-ACCESSKEY="U"->Up</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"->Validation of attribute values</TD-></TR-></TABLE-></DIV-></BODY-></HTML->
− doc/hvalidator/thesis/x2081.html
@@ -1,155 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">-<HTML-><HEAD-><TITLE->Validation of attribute values</TITLE-><META-NAME="GENERATOR"-CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK-REL="HOME"-TITLE="Design and Implementation of a validating XML parser in Haskell"-HREF="index.html"><LINK-REL="UP"-TITLE="Package hvalidator"-HREF="c1850.html"><LINK-REL="PREVIOUS"-TITLE="Transformation of the document subset"-HREF="x2065.html"><LINK-REL="NEXT"-TITLE="Derivatives of regular expressions"-HREF="x2086.html"></HEAD-><BODY-CLASS="section"-BGCOLOR="#FFFFFF"-TEXT="#000000"-LINK="#0000FF"-VLINK="#840084"-ALINK="#0000FF"-><DIV-CLASS="NAVHEADER"-><TABLE-SUMMARY="Header navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TH-COLSPAN="3"-ALIGN="center"->Design and Implementation of a validating XML parser in Haskell: Master's thesis; -			University of Applied Sciences Wedel-		</TH-></TR-><TR-><TD-WIDTH="10%"-ALIGN="left"-VALIGN="bottom"-><A-HREF="x2065.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="80%"-ALIGN="center"-VALIGN="bottom"->Chapter 4. Package hvalidator</TD-><TD-WIDTH="10%"-ALIGN="right"-VALIGN="bottom"-><A-HREF="x2086.html"-ACCESSKEY="N"->Next</A-></TD-></TR-></TABLE-><HR-ALIGN="LEFT"-WIDTH="100%"></DIV-><DIV-CLASS="section"-><H1-CLASS="section"-><A-NAME="validation_of_attribute_values"-></A->4.6. Validation of attribute values</H1-><P->&#13;		The module <TT-CLASS="classname"->AttributeValueValidation</TT-> provides all functions for validating attribute values. It provides a function for checking if the attribute value meets the lexical constraints of its type and a function for normalizing attribute values. These functions have been moved into an own module, because they are needed when the DTD subset and the document subset are validated and when the document is transformed. The function for checking the attribute value is again an <TT-CLASS="literal"->XmlFilter</TT-> function.-		</P-></DIV-><DIV-CLASS="NAVFOOTER"-><HR-ALIGN="LEFT"-WIDTH="100%"><TABLE-SUMMARY="Footer navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"-><A-HREF="x2065.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="index.html"-ACCESSKEY="H"->Home</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"-><A-HREF="x2086.html"-ACCESSKEY="N"->Next</A-></TD-></TR-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"->Transformation of the document subset</TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="c1850.html"-ACCESSKEY="U"->Up</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"->Derivatives of regular expressions</TD-></TR-></TABLE-></DIV-></BODY-></HTML->
− doc/hvalidator/thesis/x2086.html
@@ -1,509 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">-<HTML-><HEAD-><TITLE->Derivatives of regular expressions</TITLE-><META-NAME="GENERATOR"-CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK-REL="HOME"-TITLE="Design and Implementation of a validating XML parser in Haskell"-HREF="index.html"><LINK-REL="UP"-TITLE="Package hvalidator"-HREF="c1850.html"><LINK-REL="PREVIOUS"-TITLE="Validation of attribute values"-HREF="x2081.html"><LINK-REL="NEXT"-TITLE="Conclusion"-HREF="c2165.html"></HEAD-><BODY-CLASS="section"-BGCOLOR="#FFFFFF"-TEXT="#000000"-LINK="#0000FF"-VLINK="#840084"-ALINK="#0000FF"-><DIV-CLASS="NAVHEADER"-><TABLE-SUMMARY="Header navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TH-COLSPAN="3"-ALIGN="center"->Design and Implementation of a validating XML parser in Haskell: Master's thesis; -			University of Applied Sciences Wedel-		</TH-></TR-><TR-><TD-WIDTH="10%"-ALIGN="left"-VALIGN="bottom"-><A-HREF="x2081.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="80%"-ALIGN="center"-VALIGN="bottom"->Chapter 4. Package hvalidator</TD-><TD-WIDTH="10%"-ALIGN="right"-VALIGN="bottom"-><A-HREF="c2165.html"-ACCESSKEY="N"->Next</A-></TD-></TR-></TABLE-><HR-ALIGN="LEFT"-WIDTH="100%"></DIV-><DIV-CLASS="section"-><H1-CLASS="section"-><A-NAME="derivates_of_regexp"-></A->4.7. Derivatives of regular expressions</H1-><P->&#13;		The following section describes how the algorithm for validating the  element content works. It is implemented in the modules <TT-CLASS="classname"->XmlRE</TT-> and <TT-CLASS="classname"->RE</TT->. The most commonly-used technique to solve this problem is based on finite automaton.-		</P-><P->&#13;		Another algorithm, based on derivatives of regular expressions, is much better suited for implementation in a functional language. This technique does not need to backtrack, like some NFA-based algorithms do and when combined with lazy evaluation and memorization it can be very efficient.-		</P-><P->&#13;		The algorithm of derivating regular expressions was first described by Janusz A. Brzozowski [<SPAN-CLASS="citation"-><A-HREF="b2463.html#brzozowski64"-><SPAN-CLASS="abbrev"->Brzozowski64</SPAN-></A-></SPAN->]. Joe English  suggested using this algorithm for validating element contents in XML. He gave a short description of his ideas combined with a small Haskell program fragment [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_derivates_je"-><SPAN-CLASS="abbrev"->WWW26</SPAN-></A-></SPAN->].-		</P-><P->&#13;		Mark Hopkins wrote some small C programs based on this algorithm. A description of the algorithm and working source code is available from the comp.compilers archive [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_derivates_mh"-><SPAN-CLASS="abbrev"->WWW27</SPAN-></A-></SPAN->]. James Clark describes an algorithm for RELAX NG validation [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_derivates_jc"-><SPAN-CLASS="abbrev"->WWW28</SPAN-></A-></SPAN->] that bases on derivatives, too.-		</P-><DIV-CLASS="section"-><H2-CLASS="section"-><A-NAME="AEN2102"-></A->4.7.1. Description</H2-><P->&#13;			Validating the element content is an instance of regular expression matching problem. Basically the content model of an element describes a regular expression. If given the regular expression e and the content c it has to be checked if c is in L(e)? L(e) denotes the language accepted by the regular expression e.-			</P-><P->&#13; 			Informal described, the algorithm works as follows. A regular expression is applied to a sentence. The remaining regular expression is checked if it can be derived to an empty sequence. If it can be derived to an empty sequence, the sentence matches the regular expression. Otherwise the sentence is not described by the regular expression.-			</P-><P->&#13;			The algorithm can be seen as working on an infinite DFA with states labeled by regular expressions instead of symbols as in the canonical construction. The final states are those states for which-			the regular expression can be derived to an empty sequence. The transition function is a function, which derives the regular expression by a single symbol.-			</P-></DIV-><DIV-CLASS="section"-><H2-CLASS="section"-><A-NAME="AEN2107"-></A->4.7.2. Examples</H2-><P->&#13;			The regular expression <SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->foobar</I-></SPAN-> should be derived with respect to the string "foo". After applying the regular expression to this string, the remaining regular expression is <SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->bar</I-></SPAN->. This regular expression cannot be derived to an empty string, because it expects the characters 'b', 'a' and 'r'. This means that the string <SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->bar</I-></SPAN-> is not described by the regular expression. (Short form: foo\foobar = bar)-			</P-><P->&#13;			The regular expression <SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->a*</I-></SPAN-> should be derived with respect to the string "aa". After applying the regular expression to the string, the regular expression <SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->a*</I-></SPAN-> remains. This expression can be derived to an empty string, because the *-operator indicates that none or more 'a' characters are expected. This means that the regular expression matches the string. (Short form: aa\a* = a*)-			</P-></DIV-><DIV-CLASS="section"-><H2-CLASS="section"-><A-NAME="AEN2116"-></A->4.7.3. Realization in Haskell</H2-><P->&#13;			The following code was adopted from Joe English [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_derivates_je"-><SPAN-CLASS="abbrev"->WWW26</SPAN-></A-></SPAN->], but has been extended to support  meaningful error messages, to accept any single symbol (dot operator) and to work with data types of <TT-CLASS="literal"->XmlTree</TT->.-			</P-><P->&#13;			Regular expressions are defined by the algebraic data type <SPAN-CLASS="type"->RE</SPAN->.-			</P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;data RE a =-    RE_ZERO	String          --' L(0)   = {} (empty set, or failure with message)-    | RE_UNIT               --' L(1)   = { [] } (empty sequence, or success)-    | RE_SYM a              --' L(x)   = { [x] }-    | RE_DOT                --' accept any single symbol-    | RE_REP (RE a)         --' L(e*)  = { [] } `union` L(e+)-    | RE_PLUS (RE a)        --' L(e+)  = { x ++ y | x &#60;- L(e), y &#60;- L(e*) }-    | RE_OPT (RE a)         --' L(e?)  = L(e) `union` { [] }-    | RE_SEQ (RE a) (RE a)  --' L(e,f) = { x ++ y | x &#60;- L(e), y &#60;- L(f) }-    | RE_ALT (RE a) (RE a)  --' L(e|f) = L(e) `union` L(f)-    deriving (Show, Eq)-			</PRE-></TD-></TR-></TABLE-><P->&#13;			The core of the algorithm is the <TT-CLASS="function"->delta</TT-> ("derivative") function. It takes a regular expression <TT-CLASS="literal"->re</TT-> and a symbol <TT-CLASS="literal"->s</TT->. The function returns a new expression that matches all sentences that are a suffix of sentences in L(<TT-CLASS="literal"->re</TT->) beginning with <TT-CLASS="literal"->s</TT->. The function works by simple case wise analysis.-			</P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;delta :: (Eq a, Show a) =&#62; RE a -&#62; a -&#62; RE a-delta re s = case re of-    RE_ZERO m        -&#62; re_zero m-    RE_UNIT          -&#62; re_zero ("Symbol "++ show s ++" unexpected.")-    RE_SYM sym-        | s == sym   -&#62; re_unit-        | otherwise  -&#62; re_zero ("Symbol "++ show sym ++" expected, but "++-                                 "symbol "++ show s ++" found.")-    RE_REP e         -&#62; re_seq (delta e s) (re_rep e)-    RE_PLUS e        -&#62; re_seq (delta e s) (re_rep e)-    RE_OPT e         -&#62; delta e s-    RE_SEQ e f-        | nullable e -&#62; re_alt (re_seq (delta e s) f) (delta f s)-        | otherwise  -&#62; re_seq (delta e s) f-    RE_ALT e f       -&#62; re_alt (delta e s) (delta f s)-    RE_DOT           -&#62; re_unit-			</PRE-></TD-></TR-></TABLE-><P->&#13;			The function <TT-CLASS="function"->matches</TT-> derives a regular expression with respect to a sentence by using the higher-order function <TT-CLASS="function"->foldl</TT-> which folds a function into a list of values.-			</P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;matches :: (Eq a, Show a) =&#62; RE a -&#62; [a] -&#62; RE a-matches e = foldl delta e-			</PRE-></TD-></TR-></TABLE-><P->&#13;			The auxiliary function <TT-CLASS="function"->nullable</TT-> tests if a regular expression matches the empty sequence. If regular expressions are compound ones and the outer expression cannot be itself derived to an empty sequence, the sub-expressions have to be tested if they are nullable.-			</P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;nullable ::  (Show a) =&#62; RE a -&#62; Bool-nullable (RE_ZERO _)  = False-nullable RE_UNIT      = True-nullable (RE_SYM _)   = False-nullable (RE_REP _)   = True-nullable (RE_PLUS e)  = nullable e-nullable (RE_OPT _)   = True-nullable (RE_SEQ e f) = nullable e &#38;&#38; nullable f-nullable (RE_ALT e f) = nullable e || nullable f-nullable RE_DOT       = True-			</PRE-></TD-></TR-></TABLE-><P->&#13;			The function <TT-CLASS="function"->checkRE</TT-> checks if an input matched a regular expression. The regular expression <TT-CLASS="literal"->RE_ZERO</TT-> indicates that an error occured during derivation and that the regular expression does not match the given sentence.-			</P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;checkRE :: (Show a) =&#62; RE a -&#62; String-checkRE (RE_ZERO m) = m-checkRE re-    | nullable re = ""-    | otherwise   = "Input must match " ++ printRE re-			</PRE-></TD-></TR-></TABLE-><P->&#13;			The constructor functions <TT-CLASS="function"->re_seq</TT->, <TT-CLASS="function"->re_opt</TT-> and so on, used in the <TT-CLASS="function"->delta</TT-> function, are not shown. Without these constructor functions the intermediate regular expressions would grow very rapidly.  The constructors simplify them at each step, e.g. by replacing a sequence of epsilons (<TT-CLASS="literal"->RE_UNIT</TT->) by a single epsilon.-			</P-><P->&#13;			The described <TT-CLASS="function"->delta</TT-> function is not the one used for validating <TT-CLASS="literal"->XmlTree</TT-> types. There exists a special function for validating <TT-CLASS="literal"->XmlTree</TT-> nodes in the module <TT-CLASS="classname"->XmlRE</TT->.-			</P-></DIV-><DIV-CLASS="section"-><H2-CLASS="section"-><A-NAME="AEN2153"-></A->4.7.4. Conclusions</H2-><P->&#13;			The algorithm of derivating regular expressions can be expressed in Haskell very naturally: regular expressions are represented by a special data type, sentences are just a list of symbols. Pattern-matching and Haskell's standard functions for list processing allow a very clear and short implementation.-			</P-><P->&#13;			The algorithm can handle ambiguous regular expressions very well. If a regular expression consists of sub-expressions, all sub-expressions are derived by a certain symbol. If for example the ambiguous regular expression <TT-CLASS="literal"->(a , b) | (a , c)</TT-> is derived with respect to the sentence "<TT-CLASS="literal"->ab</TT->", the algorithm will construct the regular expression <TT-CLASS="literal"->(b | c)</TT-> after deriving the original expression by the symbol <TT-CLASS="literal"->a</TT->. After deriving the remaining regular expression by the symbol <TT-CLASS="literal"->b</TT->, the regular expression <TT-CLASS="literal"->(RE_UNIT | RE_ZERO)</TT-> remains. This expression can be derived to the empty sequence and therefore the regular expression matches the sentence.-			</P-><P->&#13;			Haskell's lazy evaluation avoids the evaluation of the whole regular expression. The expression has only to be evaluated as much that <TT-CLASS="function"->nullable</TT-> can calculate an answer.-			</P-></DIV-></DIV-><DIV-CLASS="NAVFOOTER"-><HR-ALIGN="LEFT"-WIDTH="100%"><TABLE-SUMMARY="Footer navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"-><A-HREF="x2081.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="index.html"-ACCESSKEY="H"->Home</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"-><A-HREF="c2165.html"-ACCESSKEY="N"->Next</A-></TD-></TR-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"->Validation of attribute values</TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="c1850.html"-ACCESSKEY="U"->Up</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"->Conclusion</TD-></TR-></TABLE-></DIV-></BODY-></HTML->
− doc/hvalidator/thesis/x2201.html
@@ -1,442 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">-<HTML-><HEAD-><TITLE->The Haskell XML Toolbox in comparison to HaXml and HXML</TITLE-><META-NAME="GENERATOR"-CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK-REL="HOME"-TITLE="Design and Implementation of a validating XML parser in Haskell"-HREF="index.html"><LINK-REL="UP"-TITLE="Conclusion"-HREF="c2165.html"><LINK-REL="PREVIOUS"-TITLE="Conclusion"-HREF="c2165.html"><LINK-REL="NEXT"-TITLE="Conclusions and future work"-HREF="x2257.html"></HEAD-><BODY-CLASS="section"-BGCOLOR="#FFFFFF"-TEXT="#000000"-LINK="#0000FF"-VLINK="#840084"-ALINK="#0000FF"-><DIV-CLASS="NAVHEADER"-><TABLE-SUMMARY="Header navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TH-COLSPAN="3"-ALIGN="center"->Design and Implementation of a validating XML parser in Haskell: Master's thesis; -			University of Applied Sciences Wedel-		</TH-></TR-><TR-><TD-WIDTH="10%"-ALIGN="left"-VALIGN="bottom"-><A-HREF="c2165.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="80%"-ALIGN="center"-VALIGN="bottom"->Chapter 5. Conclusion</TD-><TD-WIDTH="10%"-ALIGN="right"-VALIGN="bottom"-><A-HREF="x2257.html"-ACCESSKEY="N"->Next</A-></TD-></TR-></TABLE-><HR-ALIGN="LEFT"-WIDTH="100%"></DIV-><DIV-CLASS="section"-><H1-CLASS="section"-><A-NAME="comparison"-></A->5.2. The Haskell XML Toolbox in comparison to HaXml and HXML</H1-><P->&#13;		In this section the Haskell XML Toolbox is compared with HaXml [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_haxml"-><SPAN-CLASS="abbrev"->WWW21</SPAN-></A-></SPAN->] and HXML [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_hxml"-><SPAN-CLASS="abbrev"->WWW25</SPAN-></A-></SPAN->]. Many valuable ideas of HaXml and HXML  have been adopted by the Haskell XML Toolbox. It is not the intention of this section to run down these great projects. The intention is to show how their ideas have been extended and generalized.-		</P-><P->&#13;		The Haskell XML Toolbox, HaXml and HXML differ in the way how XML documents are represented in Haskell. First the approaches of HXML and HaXml are introduced, after this the data model of the Haskell XML Toolbox is compared with them.-		</P-><P->&#13;		In HXML, XML document subsets are represented as a <TT-CLASS="literal"->Tree</TT-> of <TT-CLASS="literal"->XMLNode</TT->s. The hierarchical structure of XML documents is modeled by the generic tree data type <TT-CLASS="literal"->Tree</TT->. This type does not distinguish between inner nodes and leafs. Leafs are just nodes with an empty list of children.-		</P-><DIV-CLASS="example"-><A-NAME="AEN2213"-></A-><P-><B->Example 5-1. Document subset in HXML</B-></P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;data Tree a  = Tree a [Tree a]--type XML	 = Tree XMLNode-data XMLNode =-      RTNode                 -- root node-    | ELNode GI AttList      -- element node: GI, attributes-    | TXNode String          -- text node-    | PINode Name String     -- processing instruction (target,value)-    | CXNode String          -- comment node-    | ENNode Name            -- general entity reference-      deriving Show-			</PRE-></TD-></TR-></TABLE-></DIV-><P->&#13;		DTDs are modeled totally different in HXML. They are represented by named fields and are not stored in the tree model where the document subset is stored.-		</P-><DIV-CLASS="example"-><A-NAME="AEN2217"-></A-><P-><B->Example 5-2. DTD subset in HXML</B-></P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;data DTD = DTD {-    elements :: FM.FM Name ELEMTYPE,    -- elemtps / element types-    attlists :: FM.FM Name [ATTDEF],    -- elemtype.attdefs-    genents  :: FM.FM Name EntityText,  -- general entities-    parments :: FM.FM Name EntityText,  -- parameter entities-    notations:: [DCN],                  -- nots/notations-    dtdname  :: Name                    -- name (document type name)-} 	deriving Show-			</PRE-></TD-></TR-></TABLE-></DIV-><P->&#13;		HaXml's representation of XML documents differs totally from the approach HXML and the Haskell XML Toolbox use. Instead of modeling XML documents with a generic tree type, HaXml uses a more data centric approach. The whole structure of XML documents is modeled by different algebraic data types. There exist special types for almost each production of the XML 1.0 specification [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_xml"-><SPAN-CLASS="abbrev"->WWW01</SPAN-></A-></SPAN->]. XML documents are modeled by the data type <TT-CLASS="literal"->Document</TT->, which consists of a <TT-CLASS="literal"->Prolog</TT-> and the document subset, an <TT-CLASS="literal"->Element</TT->. This data model distinguishes clearly between leafs and inner nodes. Leafs are types which constructors do not take any arguments.-		</P-><DIV-CLASS="example"-><A-NAME="AEN2226"-></A-><P-><B->Example 5-3. XML documents in HaXml</B-></P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;data Document = Document Prolog (SymTab EntityDef) Element-data Prolog   = Prolog (Maybe XMLDecl) (Maybe DocTypeDecl)-data XMLDecl  = XMLDecl VersionInfo (Maybe EncodingDecl) (Maybe SDDecl)-...-			</PRE-></TD-></TR-></TABLE-></DIV-><P->&#13;		The document subset is modeled in HaXml by the algebraic types <TT-CLASS="literal"->Element</TT-> and <TT-CLASS="literal"->Content</TT->. An <TT-CLASS="literal"->Element</TT-> has an attribute list and a list of <TT-CLASS="literal"->Content</TT-> types. If the content list is empty, the element is a leaf. Together  these types define a mutually recursive, multi-branch tree.-		</P-><DIV-CLASS="example"-><A-NAME="AEN2234"-></A-><P-><B->Example 5-4. Document subset in HaXml</B-></P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;data Element   = Elem Name [Attribute] [Content]--type Attribute = (Name, AttValue)-data Content   = CElem Element-               | CString Bool CharData-               | CRef Reference-               | CMisc Misc-			</PRE-></TD-></TR-></TABLE-></DIV-><P->&#13;		HaXml introduced the idea of using filter functions and combinators for processing parts of the XML data model. The examples from the previous chapters show that this approach is very powerful and flexible. The whole XML parser of the Haskell XML Toolbox bases on filters. The filters of HaXml work for nodes of the type <TT-CLASS="literal"->Content</TT->.-		</P-><DIV-CLASS="example"-><A-NAME="AEN2239"-></A-><P-><B->Example 5-5. The filter type of HaXml</B-></P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;type CFilter   = Content -&#62; [Content]-			</PRE-></TD-></TR-></TABLE-></DIV-><P->&#13;		The Haskell XML Toolbox uses the most generic data model in contrast to HaXml and HXML. Its data model is a generalization of the data models discusses above.-		</P-><P->&#13;		The generic tree data model <TT-CLASS="literal"->NTree</TT-> of the Haskell XML Toolbox forms the basis for representing XML documents in Haskell. This type does not distinguish between inner nodes and leafs. Leafs are just nodes with an empty child list. The most important aspect is that this generic tree data model represents a whole XML document, including the DTD subset, the document subset and all other logical units of XML.	Two algebraic data types <TT-CLASS="literal"->XNode</TT-> and <TT-CLASS="literal"->DTDElem</TT-> are used to represent all logical units of XML.-		</P-><DIV-CLASS="example"-><A-NAME="AEN2247"-></A-><P-><B->Example 5-6. XML documents represented in the Haskell XML Toolbox</B-></P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;data NTree  node = NTree node (NTrees node)-type NTrees node = [NTree node]--type XmlTree  = NTree  XNode-type XmlTrees = NTrees XNode--data XNode =-      XTag TagName TagAttrl-    | XDTD DTDElem TagAttrl-    | ...--data DTDElem =-      DOCTYPE-    | ELEMENT-    | ATTLIST-    | ...-			</PRE-></TD-></TR-></TABLE-></DIV-><P->&#13;		HXML uses the same generic data model as the Haskell XML Toolbox for representing the document subset, but DTDs are represented by a totally different model: named fields. HaXml uses special types for XML's logical units. This leads to the fact that the DTD subset is modeled totally different than the document subset.-		</P-><P->&#13;		The advantage of representing the whole XML document by one generic data type lies in the fact that one unique design for processing the whole document can be used. Because all logical parts of XML are modeled by one generic data model, filters (see <A-HREF="x854.html"->Section 2.3</A->) can be used to process the whole XML document and not only parts as in HaXml and HXML.-		</P-><P->&#13;		HaXml's filters can only work on the type <TT-CLASS="literal"->Content</TT-> that just represents a small part of XML documents, the document subset. If one wants to process other parts of an XML document, one cannot use filters any more, but has to implement special functions. The same applies for HXML.-		</P-><P->&#13;		The generalization used in the Haskell XML Toolbox makes the design of applications that process whole XML documents very uniform. In effect the design of the whole XML parser of the Haskell XML Toolbox bases on filters. Merging of the internal DTD part and external DTD part is done by filters, checking the validity constraints of DTDs and document subsets is done by filters, or processings like transforming the whole <TT-CLASS="literal"->XmlTree</TT-> back to XML is done by filters.-		</P-></DIV-><DIV-CLASS="NAVFOOTER"-><HR-ALIGN="LEFT"-WIDTH="100%"><TABLE-SUMMARY="Footer navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"-><A-HREF="c2165.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="index.html"-ACCESSKEY="H"->Home</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"-><A-HREF="x2257.html"-ACCESSKEY="N"->Next</A-></TD-></TR-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"->Conclusion</TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="c2165.html"-ACCESSKEY="U"->Up</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"->Conclusions and future work</TD-></TR-></TABLE-></DIV-></BODY-></HTML->
− doc/hvalidator/thesis/x2257.html
@@ -1,230 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">-<HTML-><HEAD-><TITLE->Conclusions and future work</TITLE-><META-NAME="GENERATOR"-CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK-REL="HOME"-TITLE="Design and Implementation of a validating XML parser in Haskell"-HREF="index.html"><LINK-REL="UP"-TITLE="Conclusion"-HREF="c2165.html"><LINK-REL="PREVIOUS"-TITLE="The Haskell XML Toolbox in comparison to HaXml and HXML"-HREF="x2201.html"><LINK-REL="NEXT"-TITLE="User handbook"-HREF="a2283.html"></HEAD-><BODY-CLASS="section"-BGCOLOR="#FFFFFF"-TEXT="#000000"-LINK="#0000FF"-VLINK="#840084"-ALINK="#0000FF"-><DIV-CLASS="NAVHEADER"-><TABLE-SUMMARY="Header navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TH-COLSPAN="3"-ALIGN="center"->Design and Implementation of a validating XML parser in Haskell: Master's thesis; -			University of Applied Sciences Wedel-		</TH-></TR-><TR-><TD-WIDTH="10%"-ALIGN="left"-VALIGN="bottom"-><A-HREF="x2201.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="80%"-ALIGN="center"-VALIGN="bottom"->Chapter 5. Conclusion</TD-><TD-WIDTH="10%"-ALIGN="right"-VALIGN="bottom"-><A-HREF="a2283.html"-ACCESSKEY="N"->Next</A-></TD-></TR-></TABLE-><HR-ALIGN="LEFT"-WIDTH="100%"></DIV-><DIV-CLASS="section"-><H1-CLASS="section"-><A-NAME="AEN2257"-></A->5.3. Conclusions and future work</H1-><P->&#13;		The developed XML parser shows that the functional approach accomplishes the task of parsing and validating XML by using fewer lines of code and producing a very short and compact program in contrast to imperative languages. The packages <TT-CLASS="filename"->hdom</TT->, <TT-CLASS="filename"->hparser</TT-> and <TT-CLASS="filename"->hvalidator</TT-> contain only about 9.000 lines of code including lots of HDoc [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_hdoc"-><SPAN-CLASS="abbrev"->WWW30</SPAN-></A-></SPAN->] comments.-		</P-><P->&#13;		Although the program is compact, the code is understandable and maintainable, because the code is more succinct and it follows a clear  and simple design. The Haskell XML Toolbox introduced the very general tree data type <TT-CLASS="literal"->XmlTree</TT-> for representing whole XML documents in Haskell. This general data model makes it possible to base all processings of XML documents on filters. The whole XML parser, presented in this thesis, bases on this uniform design.-		</P-><P->&#13;		Writing a validating XML parser is a quite complex task. It must cope with different encodings, correct processing of entities and of course validation. Functional programming helps master this complexity better than other methods.-		</P-><P->&#13;		In Haskell functions are just values and have no side effects. These qualities allow an easy use of higher-order functions that take functions as arguments, return functions as a result or do both. The filter combinators, which have been adopted from HaXml, form a powerful library for combining filter functions. Because all filters of the Haskell XML Toolbox share the same type, it is possible to combine them freely with the use of filter combinators. All details of manipulating the <TT-CLASS="literal"->XmlTree</TT-> data structure are hidden in these higher-order functions. In effect these filter combinators define problem specific control structures that make it possible to program on a very high abstraction level. Errors can be reduced, because programmers can use the filter combinators as standard functions for processing the <TT-CLASS="literal"->XmlTree</TT->.-		</P-><P->&#13;		Because functions are just values in Haskell, they can be constructed at runtime. The XML parser introduced in this thesis makes an extensive use of creating parameterized filter functions during runtime. The whole validation process bases on this design.-		</P-><P->&#13;		It can be quite useful to use functional programming paradigms when writing programs in imperative languages. Functional paradigms like higher-order functions for abstractions can be done in Java by defining an interface that has only one function. This interface can be passed to other functions or returned by a function. In C function pointers can be used for this task. But imperative languages are not designed to support functional programming styles, so they cannot actively support its paradigms. The main focus of these languages lies on the fact <SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->how</I-></SPAN-> a problem is solved, e.g. the order in which computations are performed.-		</P-><P->&#13;		Unfortunately functional programming and functional programming languages are not very popular. Two standard examples for functional programming are using a spreadsheet program like Excel and querying a database with SQL. Another field where functional programming dominates is transformation of SGML and XML documents. The Document Style Semantics and Specification Language (DSSSL) [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_dsssl"-><SPAN-CLASS="abbrev"->WWW09</SPAN-></A-></SPAN->] bases on the functional programming language Scheme and is very popular in the world of SGML publishing. The Extensible Stylesheet Language (XSL) [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_xsl"-><SPAN-CLASS="abbrev"->WWW07</SPAN-></A-></SPAN->] is its corresponding part for XML publishing. Functional programming languages are very well equipped for this task, because the transformation process is a functional mapping from a structural document as input to a formatted representation as output.-		</P-><P->&#13;		Sometimes it is said that functional programming languages lack of libraries. We do not know any validating XML Parser written in Haskell and hope that the framework of the Haskell XML Toolbox will be a useful tool for XML processing applications written in Haskell. The parser supports almost fully the XML 1.0 specification with the exception of namespaces.-		</P-><P->&#13;		The Haskell XML Toolbox introduces a powerful approach for processing XML in Haskell. It generalizes the ideas of HaXml and HXML. Whole XML documents are represented as a tree of different nodes. This tree can be processed in a uniform way by using filter functions and filter combinators.-		</P-><P->&#13; 		Lots of great ideas of the projects HaXml and HXML have been taken into this project. We want to thank their members for their great work and emphasis that all three projects are enrichments for the Haskell community.-		</P-><P->&#13;		The Haskell XML Toolbox project will be maintained and enlarged at the University of Applied Sciences Wedel. One student already wrote an XSLT processor on the basis of this project. Another student is writing a program using the Haskell XML Toolbox for deriving Java classes from DTDs.-		</P-></DIV-><DIV-CLASS="NAVFOOTER"-><HR-ALIGN="LEFT"-WIDTH="100%"><TABLE-SUMMARY="Footer navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"-><A-HREF="x2201.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="index.html"-ACCESSKEY="H"->Home</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"-><A-HREF="a2283.html"-ACCESSKEY="N"->Next</A-></TD-></TR-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"->The Haskell XML Toolbox in comparison to HaXml and HXML</TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="c2165.html"-ACCESSKEY="U"->Up</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"->User handbook</TD-></TR-></TABLE-></DIV-></BODY-></HTML->
− doc/hvalidator/thesis/x2308.html
@@ -1,198 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">-<HTML-><HEAD-><TITLE->Missing features and known problems</TITLE-><META-NAME="GENERATOR"-CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK-REL="HOME"-TITLE="Design and Implementation of a validating XML parser in Haskell"-HREF="index.html"><LINK-REL="UP"-TITLE="User handbook"-HREF="a2283.html"><LINK-REL="PREVIOUS"-TITLE="User handbook"-HREF="a2283.html"><LINK-REL="NEXT"-TITLE="Directory structure"-HREF="x2330.html"></HEAD-><BODY-CLASS="section"-BGCOLOR="#FFFFFF"-TEXT="#000000"-LINK="#0000FF"-VLINK="#840084"-ALINK="#0000FF"-><DIV-CLASS="NAVHEADER"-><TABLE-SUMMARY="Header navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TH-COLSPAN="3"-ALIGN="center"->Design and Implementation of a validating XML parser in Haskell: Master's thesis; -			University of Applied Sciences Wedel-		</TH-></TR-><TR-><TD-WIDTH="10%"-ALIGN="left"-VALIGN="bottom"-><A-HREF="a2283.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="80%"-ALIGN="center"-VALIGN="bottom"->Appendix A. User handbook</TD-><TD-WIDTH="10%"-ALIGN="right"-VALIGN="bottom"-><A-HREF="x2330.html"-ACCESSKEY="N"->Next</A-></TD-></TR-></TABLE-><HR-ALIGN="LEFT"-WIDTH="100%"></DIV-><DIV-CLASS="section"-><H1-CLASS="section"-><A-NAME="known_problems"-></A->A.2. Missing features and known problems</H1-><P->&#13;		Unfortunately the XML parser of the Haskell XML Toolbox does not support fully the XML 1.0 specification at the moment. We are working hard to implement the missing features in the near future.-		</P-><P->&#13;			<P-></P-><P-><B->Missing features:</B-></P-><UL-><LI-><P->Namespaces are not supported.</P-></LI-><LI-><P->Protocols like "http" and "file" are not yet supported due to a lack of libraries. We think of using the <TT-CLASS="literal"->curl</TT-> command instead.</P-></LI-><LI-><P->General external entities are not yet processed.</P-></LI-><LI-><P->General entities in default values of attributes are not yet substituted.</P-></LI-></UL->-		</P-><P->&#13;			<P-></P-><P-><B->Known problems:</B-></P-><UL-><LI-><P->Line numbers are not yet reported for validity constraint errors.</P-></LI-><LI-><P->Under Hugs 98 only: The parser suffers a serious space fault when parsing large documents.</P-></LI-></UL->-		</P-></DIV-><DIV-CLASS="NAVFOOTER"-><HR-ALIGN="LEFT"-WIDTH="100%"><TABLE-SUMMARY="Footer navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"-><A-HREF="a2283.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="index.html"-ACCESSKEY="H"->Home</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"-><A-HREF="x2330.html"-ACCESSKEY="N"->Next</A-></TD-></TR-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"->User handbook</TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="a2283.html"-ACCESSKEY="U"->Up</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"->Directory structure</TD-></TR-></TABLE-></DIV-></BODY-></HTML->
− doc/hvalidator/thesis/x2330.html
@@ -1,225 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">-<HTML-><HEAD-><TITLE->Directory structure</TITLE-><META-NAME="GENERATOR"-CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK-REL="HOME"-TITLE="Design and Implementation of a validating XML parser in Haskell"-HREF="index.html"><LINK-REL="UP"-TITLE="User handbook"-HREF="a2283.html"><LINK-REL="PREVIOUS"-TITLE="Missing features and known problems"-HREF="x2308.html"><LINK-REL="NEXT"-TITLE="HXmlParser - Well-formedness checker and validator"-HREF="x2367.html"></HEAD-><BODY-CLASS="section"-BGCOLOR="#FFFFFF"-TEXT="#000000"-LINK="#0000FF"-VLINK="#840084"-ALINK="#0000FF"-><DIV-CLASS="NAVHEADER"-><TABLE-SUMMARY="Header navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TH-COLSPAN="3"-ALIGN="center"->Design and Implementation of a validating XML parser in Haskell: Master's thesis; -			University of Applied Sciences Wedel-		</TH-></TR-><TR-><TD-WIDTH="10%"-ALIGN="left"-VALIGN="bottom"-><A-HREF="x2308.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="80%"-ALIGN="center"-VALIGN="bottom"->Appendix A. User handbook</TD-><TD-WIDTH="10%"-ALIGN="right"-VALIGN="bottom"-><A-HREF="x2367.html"-ACCESSKEY="N"->Next</A-></TD-></TR-></TABLE-><HR-ALIGN="LEFT"-WIDTH="100%"></DIV-><DIV-CLASS="section"-><H1-CLASS="section"-><A-NAME="AEN2330"-></A->A.3. Directory structure</H1-><P-></P-><DIV-CLASS="variablelist"-><DL-><DT-><TT-CLASS="filename"->doc</TT-></DT-><DD-><P->&#13;					Contains the documentation: this thesis and the generated HDoc documentation-					</P-></DD-><DT-><TT-CLASS="filename"->examples</TT-></DT-><DD-><P->&#13;					Contains some example applications for using the parser, filter functions and filter combinators. Includes <TT-CLASS="literal"->HXmlParser</TT->, a command line well-formedness checker and validator.-					</P-></DD-><DT-><TT-CLASS="filename"->hdom</TT-></DT-><DD-><P->&#13;					Sources of package <TT-CLASS="filename"->hdom</TT->.-					</P-></DD-><DT-><TT-CLASS="filename"->hparser</TT-></DT-><DD-><P->&#13;					Sources of package <TT-CLASS="filename"->hparser</TT->.-					</P-></DD-><DT-><TT-CLASS="filename"->hvalidator</TT-></DT-><DD-><P->&#13;					Sources of package <TT-CLASS="filename"->hvalidator</TT->.-					</P-></DD-><DT-><TT-CLASS="filename"->parsec</TT-></DT-><DD-><P->&#13;					Sources of the free monadic parser combinator library Parsec. Parsec is already distributed with Hugs and GHC, but we had some problems with different behaviors of these libraries.-					</P-></DD-></DL-></DIV-></DIV-><DIV-CLASS="NAVFOOTER"-><HR-ALIGN="LEFT"-WIDTH="100%"><TABLE-SUMMARY="Footer navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"-><A-HREF="x2308.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="index.html"-ACCESSKEY="H"->Home</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"-><A-HREF="x2367.html"-ACCESSKEY="N"->Next</A-></TD-></TR-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"->Missing features and known problems</TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="a2283.html"-ACCESSKEY="U"->Up</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"->HXmlParser - Well-formedness checker and validator</TD-></TR-></TABLE-></DIV-></BODY-></HTML->
− doc/hvalidator/thesis/x2367.html
@@ -1,215 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">-<HTML-><HEAD-><TITLE->HXmlParser - Well-formedness checker and validator</TITLE-><META-NAME="GENERATOR"-CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK-REL="HOME"-TITLE="Design and Implementation of a validating XML parser in Haskell"-HREF="index.html"><LINK-REL="UP"-TITLE="User handbook"-HREF="a2283.html"><LINK-REL="PREVIOUS"-TITLE="Directory structure"-HREF="x2330.html"><LINK-REL="NEXT"-TITLE="Check the XML parser with the XML Test Suites"-HREF="x2380.html"></HEAD-><BODY-CLASS="section"-BGCOLOR="#FFFFFF"-TEXT="#000000"-LINK="#0000FF"-VLINK="#840084"-ALINK="#0000FF"-><DIV-CLASS="NAVHEADER"-><TABLE-SUMMARY="Header navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TH-COLSPAN="3"-ALIGN="center"->Design and Implementation of a validating XML parser in Haskell: Master's thesis; -			University of Applied Sciences Wedel-		</TH-></TR-><TR-><TD-WIDTH="10%"-ALIGN="left"-VALIGN="bottom"-><A-HREF="x2330.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="80%"-ALIGN="center"-VALIGN="bottom"->Appendix A. User handbook</TD-><TD-WIDTH="10%"-ALIGN="right"-VALIGN="bottom"-><A-HREF="x2380.html"-ACCESSKEY="N"->Next</A-></TD-></TR-></TABLE-><HR-ALIGN="LEFT"-WIDTH="100%"></DIV-><DIV-CLASS="section"-><H1-CLASS="section"-><A-NAME="AEN2367"-></A->A.4. HXmlParser - Well-formedness checker and validator</H1-><P->&#13;		The Haskell XML Toolbox comes with a command line tool for checking if XML documents are well-formed and valid. To build this tool with GHC, run <TT-CLASS="literal"->make HXmlParser</TT-> in the root directory of the Haskell XML Toolbox. This will produce the binary file <TT-CLASS="literal"->HXmlParser</TT-> that will be stored in the root directory. The sources of this tool are located in the directory <TT-CLASS="literal"->examples</TT->.-		</P-><P->&#13;		When checking an invalid XML file, <TT-CLASS="literal"->HXmlParser</TT-> will report errors to <SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->stderr</I-></SPAN-> and quit with an exit code of <SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->"-1"</I-></SPAN->. If there are no errors in the document, the tool will just quit without any message.-		</P-><P->&#13;		If you run <TT-CLASS="literal"->HXmlParser</TT-> without any arguments, the usage information is displayed:-		</P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;Usage:-  --source "filename"  - source file (required)-  --encoding "charset" - document encoding-  --trace "level"      - trace level (0-4)--  -h                   - this help-  -v                   - display a message if document is well-formed or valid-  -w                   - well-formed check only--  -op                  - output parsed document-  -opt                 - output XmlTree of parsed document-  -oph                 - output Haskell type of parsed document--Only for validity checks:-  -ot                  - output transformed document-  -ott                 - output XmlTree of transformed document-  -oth                 - output Haskell type of transformed document--  -oc                  - output canonicalized document-  -oct                 - output XmlTree of canonicalized document-  -och                 - output Haskell type of canonicalized document-		</PRE-></TD-></TR-></TABLE-></DIV-><DIV-CLASS="NAVFOOTER"-><HR-ALIGN="LEFT"-WIDTH="100%"><TABLE-SUMMARY="Footer navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"-><A-HREF="x2330.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="index.html"-ACCESSKEY="H"->Home</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"-><A-HREF="x2380.html"-ACCESSKEY="N"->Next</A-></TD-></TR-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"->Directory structure</TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="a2283.html"-ACCESSKEY="U"->Up</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"->Check the XML parser with the XML Test Suites</TD-></TR-></TABLE-></DIV-></BODY-></HTML->
− doc/hvalidator/thesis/x2380.html
@@ -1,249 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">-<HTML-><HEAD-><TITLE->Check the XML parser with the XML Test Suites</TITLE-><META-NAME="GENERATOR"-CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK-REL="HOME"-TITLE="Design and Implementation of a validating XML parser in Haskell"-HREF="index.html"><LINK-REL="UP"-TITLE="User handbook"-HREF="a2283.html"><LINK-REL="PREVIOUS"-TITLE="HXmlParser - Well-formedness checker and validator"-HREF="x2367.html"><LINK-REL="NEXT"-TITLE="Performance and profiling"-HREF="x2408.html"></HEAD-><BODY-CLASS="section"-BGCOLOR="#FFFFFF"-TEXT="#000000"-LINK="#0000FF"-VLINK="#840084"-ALINK="#0000FF"-><DIV-CLASS="NAVHEADER"-><TABLE-SUMMARY="Header navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TH-COLSPAN="3"-ALIGN="center"->Design and Implementation of a validating XML parser in Haskell: Master's thesis; -			University of Applied Sciences Wedel-		</TH-></TR-><TR-><TD-WIDTH="10%"-ALIGN="left"-VALIGN="bottom"-><A-HREF="x2367.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="80%"-ALIGN="center"-VALIGN="bottom"->Appendix A. User handbook</TD-><TD-WIDTH="10%"-ALIGN="right"-VALIGN="bottom"-><A-HREF="x2408.html"-ACCESSKEY="N"->Next</A-></TD-></TR-></TABLE-><HR-ALIGN="LEFT"-WIDTH="100%"></DIV-><DIV-CLASS="section"-><H1-CLASS="section"-><A-NAME="AEN2380"-></A->A.5. Check the XML parser with the XML Test Suites</H1-><P->&#13;		The XML parser of the Haskell XML Toolbox was elaborately tested with the XML Test Suites from the W3C [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_xmlts"-><SPAN-CLASS="abbrev"->WWW02</SPAN-></A-></SPAN->]. If you want to run these checks on your own, you can use the tool <TT-CLASS="literal"->RunTestCases</TT-> that is distributed with the Haskell XML Toolbox.-		</P-><P->&#13;		First you have to download the test cases from the W3C [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_xmlts"-><SPAN-CLASS="abbrev"->WWW02</SPAN-></A-></SPAN->] and extract them in an own directory. To test the XML parser with these test cases, you have to build the program <TT-CLASS="literal"->RunTestCases</TT->. Executing <TT-CLASS="literal"->make RunTestCases</TT-> in the root directory of the Haskell XML Toolbox will compile this program.-		</P-><P->&#13;		The XML Test Suites contain test cases from different organizations and people. <TT-CLASS="literal"->RunTestCases</TT-> must be called with a test case description file as argument from the directories: <TT-CLASS="literal"->ibm</TT->, <TT-CLASS="literal"->oasis</TT->, <TT-CLASS="literal"->sun</TT-> or <TT-CLASS="literal"->xmltest</TT->.-		</P-><P->&#13;		Perhaps a dummy root node must be added to these files to form a valid XML document. <TT-CLASS="literal"->RunTestCases</TT-> cannot process the root file that combines all theses description files.-		</P-><P->&#13;		When being executed, <TT-CLASS="literal"->RunTestCases</TT-> will ask what type of test shall be performed. The type entered must correspond to the tests listed in the test case description file. <TT-CLASS="function"->RunTestCases</TT-> will only execute these test cases.-		</P-><P->&#13;		If the option "show detailed information" is set, <TT-CLASS="literal"->RunTestCases</TT-> will display the <TT-CLASS="literal"->XmlTree</TT-> in addition if a test fails.-		</P-><DIV-CLASS="example"-><A-NAME="AEN2405"-></A-><P-><B->Example A-1. Executing RunTestCases</B-></P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;RunTestCases ibm_oasis_valid.xml--Which kind of test shall be performed?-([1] - valid | 2 - invalid | 3 - not-wf | 4 - error):--Show detailed information? (j/[n])-			</PRE-></TD-></TR-></TABLE-></DIV-></DIV-><DIV-CLASS="NAVFOOTER"-><HR-ALIGN="LEFT"-WIDTH="100%"><TABLE-SUMMARY="Footer navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"-><A-HREF="x2367.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="index.html"-ACCESSKEY="H"->Home</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"-><A-HREF="x2408.html"-ACCESSKEY="N"->Next</A-></TD-></TR-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"->HXmlParser - Well-formedness checker and validator</TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="a2283.html"-ACCESSKEY="U"->Up</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"->Performance and profiling</TD-></TR-></TABLE-></DIV-></BODY-></HTML->
− doc/hvalidator/thesis/x2408.html
@@ -1,312 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">-<HTML-><HEAD-><TITLE->Performance and profiling</TITLE-><META-NAME="GENERATOR"-CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK-REL="HOME"-TITLE="Design and Implementation of a validating XML parser in Haskell"-HREF="index.html"><LINK-REL="UP"-TITLE="User handbook"-HREF="a2283.html"><LINK-REL="PREVIOUS"-TITLE="Check the XML parser with the XML Test Suites"-HREF="x2380.html"><LINK-REL="NEXT"-TITLE="MIT License"-HREF="a2458.html"></HEAD-><BODY-CLASS="section"-BGCOLOR="#FFFFFF"-TEXT="#000000"-LINK="#0000FF"-VLINK="#840084"-ALINK="#0000FF"-><DIV-CLASS="NAVHEADER"-><TABLE-SUMMARY="Header navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TH-COLSPAN="3"-ALIGN="center"->Design and Implementation of a validating XML parser in Haskell: Master's thesis; -			University of Applied Sciences Wedel-		</TH-></TR-><TR-><TD-WIDTH="10%"-ALIGN="left"-VALIGN="bottom"-><A-HREF="x2380.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="80%"-ALIGN="center"-VALIGN="bottom"->Appendix A. User handbook</TD-><TD-WIDTH="10%"-ALIGN="right"-VALIGN="bottom"-><A-HREF="a2458.html"-ACCESSKEY="N"->Next</A-></TD-></TR-></TABLE-><HR-ALIGN="LEFT"-WIDTH="100%"></DIV-><DIV-CLASS="section"-><H1-CLASS="section"-><A-NAME="AEN2408"-></A->A.6. Performance and profiling</H1-><P->&#13;		Time and space profiling is very useful to optimize programs and remove bottlenecks. We already added the ability of profiling to the XML parser, but did not use this information yet. The main focus of the parser lays on a clear and easy design at the moment.-		</P-><DIV-CLASS="section"-><H2-CLASS="section"-><A-NAME="AEN2411"-></A->A.6.1. Usage information</H2-><P->&#13;			The validating XML parser can be analyzed with the time and space profiling system of the Glasgow Haskell Compiler (GHC). Cost centers have been added for all main computations, so that it could be measured which parts of the parser consume most time and memory.-			</P-><P->&#13;			The tool <TT-CLASS="literal"->Profiling</TT-> can be used to run these tests with the XML parser. It can be built by executing <TT-CLASS="literal"->make Profiling</TT-> in the root directory of the Haskell XML Toolbox.-			</P-><P->&#13;			<TT-CLASS="literal"->Profiling</TT-> must be executed with an XML file as test input and several different parameters that influence GHC's profiling behavior. These parameters are described in depth in the documentation of GHC.-			</P-><P->&#13;			Four predefined profiling types have been added to the <TT-CLASS="literal"->Makefile</TT-> in the root directory of the Haskell XML Toolbox. The input file of <TT-CLASS="literal"->Profiling</TT-> can be set by the variable <TT-CLASS="literal"->PROFILING_INPUT</TT->.-			</P-><P-></P-><DIV-CLASS="variablelist"-><P-><B->Predefined profiling targets:</B-></P-><DL-><DT-><TT-CLASS="filename"->make runprofiling1</TT-></DT-><DD-><P->&#13;						Time and allocation profiling - Generate profiling information in XML format and display them with the tool <SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->ghcprof</I-></SPAN-> of GHC.-						</P-></DD-><DT-><TT-CLASS="filename"->make runprofiling2</TT-></DT-><DD-><P->&#13;						Time and allocation profiling - Generate profiling information in text format and display them with <SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->less</I-></SPAN->.-						</P-></DD-><DT-><TT-CLASS="filename"->make runprofiling4</TT-></DT-><DD-><P->&#13;						Heap profiling - Break down the graph by the cost-center stack which produced the data.-						</P-></DD-><DT-><TT-CLASS="filename"->make runprofiling4</TT-></DT-><DD-><P->&#13;						Heap profiling - Break down the graph by the retainer set.-						</P-></DD-></DL-></DIV-></DIV-><DIV-CLASS="section"-><H2-CLASS="section"-><A-NAME="AEN2447"-></A->A.6.2. How to interpret the results</H2-><P->&#13;			This section will show how to interpret the results from the profiling tests. The W3C Recommendation of the Extensible Hypertext Markup Language (XHTML) and its Strict DTD was chosen as test input. The test machine was a Pentium 4 with 1.6 GHz and 256 MB memory, running Debian 3.0.-			</P-><P->&#13;			The results from time and space profiling show that most time and memory is consumed by the function <TT-CLASS="function"->procesDTD</TT->. This function provides substitution of parameter entities in the internal and external DTD part. The next resource intensive function is <TT-CLASS="function"->parseXmlDoc</TT-> that does the parsing of an XML document and constructs an <TT-CLASS="literal"->XmlTree</TT-> representation from it.-			</P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;total time  =        1.26 secs   (63 ticks @ 20 ms)-total alloc = 102,664,004 bytes  (excludes profiling overheads)---COST CENTER                    MODULE               %time %alloc--processDTD                     HdomParser            27.0   45.6-parseXmlDoc                    HdomParser            19.0   29.3-buildAllValFcts                DocValidation         14.3    5.0-validateAttributes             DTDValidation         12.7    0.5-processGeneralEntities         HdomParser             7.9    9.6-MAIN                           MAIN                   6.3    5.0-buildAllTransFcts              DocTransformation      4.8    1.8-IdVal.validateIds              Validation             4.8    1.1-validateElements               DTDValidation          3.2    0.2-getXmlContents                 HdomParser             0.0    1.1-			</PRE-></TD-></TR-></TABLE-><P->&#13;			The ranking of the cost centers might have changed dramatically if the profiling tests are performed with other documents. In this case, parameter entities are exhaustively used in the Strict DTD of XHTML. It is not astonishing that the function that handles their substitution takes the most time and space. Another important aspect is the ratio of the DTD subset and the document subset. If for example the DTD subset is very large, its processing functions might take a large percentage of time and space consumption, too.-			</P-><P->&#13;			Heap profiling produces graphs that show the memory consumption of the cost centers during execution time. These graphs show very clearly how the program execution behavior of Haskell programs differs from programs written in imperative languages. Haskell uses lazy evaluation when evaluating expressions. Arguments to functions are evaluated only when they are needed. Functions only calculate their result as much as it is needed by other functions that called them.-			</P-><P->&#13;			Lazy evaluation leads to the fact that Haskell programs do not have a strict sequential evaluation order, but that they resemble a stream. The graphs show very clearly this execution behavior. First the parsing functions are started, after producing enough output, processing of the DTD starts. In the end the validation process starts calculations. The graphs show that almost all functions work in parallel after they have enough input.-			</P-></DIV-></DIV-><DIV-CLASS="NAVFOOTER"-><HR-ALIGN="LEFT"-WIDTH="100%"><TABLE-SUMMARY="Footer navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"-><A-HREF="x2380.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="index.html"-ACCESSKEY="H"->Home</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"-><A-HREF="a2458.html"-ACCESSKEY="N"->Next</A-></TD-></TR-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"->Check the XML parser with the XML Test Suites</TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="a2283.html"-ACCESSKEY="U"->Up</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"->MIT License</TD-></TR-></TABLE-></DIV-></BODY-></HTML->
− doc/hvalidator/thesis/x298.html
@@ -1,949 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">-<HTML-><HEAD-><TITLE->Haskell</TITLE-><META-NAME="GENERATOR"-CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK-REL="HOME"-TITLE="Design and Implementation of a validating XML parser in Haskell"-HREF="index.html"><LINK-REL="UP"-TITLE="Basics"-HREF="c78.html"><LINK-REL="PREVIOUS"-TITLE="Basics"-HREF="c78.html"><LINK-REL="NEXT"-TITLE="Package hdom"-HREF="c468.html"></HEAD-><BODY-CLASS="section"-BGCOLOR="#FFFFFF"-TEXT="#000000"-LINK="#0000FF"-VLINK="#840084"-ALINK="#0000FF"-><DIV-CLASS="NAVHEADER"-><TABLE-SUMMARY="Header navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TH-COLSPAN="3"-ALIGN="center"->Design and Implementation of a validating XML parser in Haskell: Master's thesis; -			University of Applied Sciences Wedel-		</TH-></TR-><TR-><TD-WIDTH="10%"-ALIGN="left"-VALIGN="bottom"-><A-HREF="c78.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="80%"-ALIGN="center"-VALIGN="bottom"->Chapter 1. Basics</TD-><TD-WIDTH="10%"-ALIGN="right"-VALIGN="bottom"-><A-HREF="c468.html"-ACCESSKEY="N"->Next</A-></TD-></TR-></TABLE-><HR-ALIGN="LEFT"-WIDTH="100%"></DIV-><DIV-CLASS="section"-><H1-CLASS="section"-><A-NAME="haskell"-></A->1.2. Haskell</H1-><P->&#13;	This introduction to Haskell can only cover a few aspects of Haskell. Its aim is to make the next chapters more easily understandable for persons who are not familiar with Haskell, but with programming languages. If you are new to Haskell, its homepage Haskell.org [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_haskellorg"-><SPAN-CLASS="abbrev"->WWW11</SPAN-></A-></SPAN->] is a good place to start for gaining information and lots of free compilers and libraries. The tutorial "A Gentle Introduction to Haskell" [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_gentelinstruction"-><SPAN-CLASS="abbrev"->WWW14</SPAN-></A-></SPAN->] gives a detailed overview about the language. A great learning book, full of examples is "The Craft of Functional Programming" by Simon Thompson [<SPAN-CLASS="citation"-><A-HREF="b2463.html#thompson99"-><SPAN-CLASS="abbrev"->Thompson99</SPAN-></A-></SPAN->]. For advanced people Paul Hudak's "The Haskell School of Expression" [<SPAN-CLASS="citation"-><A-HREF="b2463.html#hudak00"-><SPAN-CLASS="abbrev"->Hudak00</SPAN-></A-></SPAN->] gives a more complete overview about monads and higher-order functions by samples from multimedia. The language itself is defined in the Haskell 98 Report [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_98report"-><SPAN-CLASS="abbrev"->WWW15</SPAN-></A-></SPAN->] and the Haskell 98 Library Report [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_98libraryreport"-><SPAN-CLASS="abbrev"->WWW16</SPAN-></A-></SPAN->].-	</P-><DIV-CLASS="section"-><H2-CLASS="section"-><A-NAME="haskell_introduction"-></A->1.2.1. Introduction</H2-><P->&#13;		Haskell is named after Haskell Brooks Curry [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_haskellbrooks"-><SPAN-CLASS="abbrev"->WWW12</SPAN-></A-></SPAN->] who was one of the pioneers of the lambda calculus. Haskell bases on the lambda calculus, a mathematical theory of functions, and not on the Turing machine like imperative programming languages do. In functional programming the programmer defines <SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->what</I-></SPAN-> has to be calculated and not <SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->how</I-></SPAN-> it is calculated. A functional program is a single expression, which is executed by evaluating the expression.-		</P-><P->&#13;		Shortly described, Haskell is a strong typed, lazy, pure functional programming language.-		</P-><P->&#13;		Haskell has a static type system so that all type errors are detected at compile time. This makes Haskell programs very type safe. Its type class system is complex but powerful.-		</P-><P->&#13;		Haskell's evaluation model is called lazy or non-strict, because arguments of functions are only evaluated if they are needed for computations. This leads to a demand-driven evaluation. Expressions are evaluated just enough to get the result. Parts of them may not be evaluated at all. In contrast to imperative languages, program order is not needed.-		</P-><P->&#13;		The language is called pure, because it has no imperative extensions and it eschews all side effects. This leads to the fact that Haskell lacks any loop constructs, because mutable variables do not exist. All iterations have to be expressed by recursions. The lack of side effects allows easy reasoning about the programs.-		</P-><P->&#13;		The above-described qualities make Haskell a modern functional programming language with many strengths over actual object oriented languages like Java or C++.-		</P-></DIV-><DIV-CLASS="section"-><H2-CLASS="section"-><A-NAME="functions"-></A->1.2.2. Functions</H2-><P->&#13;		Functions are essential for structuring a program. The following example shows a function declaration for adding two numbers.-		</P-><DIV-CLASS="example"-><A-NAME="AEN328"-></A-><P-><B->Example 1-2. Adding two integers</B-></P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;add :: Int -&#62; Int -&#62; Int-add a b = a + b-			</PRE-></TD-></TR-></TABLE-></DIV-><P->&#13;		The first line is the type signature, it declares the name and type of the function. The function <TT-CLASS="function"->add</TT-> takes two integers as input and returns an integer as a result. The type system of Haskell is so powerful that the type signature can be avoided. However there exist a few exceptions and defining the type signatures makes a program much more maintainable.-		</P-><P->&#13;		The second line gives the definition of the function as an equation. The part before the equal sign names the arguments, the part after the equal sign defines the computation. Using <SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->pattern matching</I-></SPAN-> (see <A-HREF="x298.html#pattern_matching"->Section 1.2.4</A->) a function can be defined by a series of these equations.-		</P-><P->&#13;		By surrounding the function name of a two-argument function in back-quotes, it can be written between its arguments, called infix.-		</P-><DIV-CLASS="example"-><A-NAME="AEN337"-></A-><P-><B->Example 1-3. Prefix and infix notation</B-></P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;add 1 2-1 'add' 2-			</PRE-></TD-></TR-></TABLE-></DIV-><P->&#13;		Operators, such as <TT-CLASS="function"->++</TT-> for concatenating two lists, are just infix functions. Instead of writing the function in front of its arguments, it is written between them. Haskell allows the programmer to define his own operators. For defining infix functions, the function name has to be enclosed in parenthesis in the type signature.-		</P-><DIV-CLASS="example"-><A-NAME="AEN342"-></A-><P-><B->Example 1-4. Type signature of an infix function</B-></P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;(++) :: [a] -&#62; [a] -&#62; [a]-			</PRE-></TD-></TR-></TABLE-></DIV-><P->&#13;		It is also possible to define the associativity and binding power of the self-defined operators. The following example defines <TT-CLASS="function"->++</TT-> as a right-associative operator with a precedence level of 5.-		</P-><DIV-CLASS="example"-><A-NAME="AEN347"-></A-><P-><B->Example 1-5. Define associativity and binding power</B-></P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;infixr 5  ++-			</PRE-></TD-></TR-></TABLE-></DIV-></DIV-><DIV-CLASS="section"-><H2-CLASS="section"-><A-NAME="types"-></A->1.2.3. Types</H2-><P->&#13;		In general terms, a type is a collection of similar objects, such as numbers or characters. Haskell has a very powerful and complex type system. The following sections can just give a small overview. Type classes, abstract data types or infinite lists are not discussed.-		</P-><DIV-CLASS="simplesect"-><H4-CLASS="simplesect"-><A-NAME="AEN353"-></A->1.2.3.1. Build-in types</H4-><P->&#13;			Like many other programming languages Haskell has the basic build-in types: Char, Int, Bool, Float and String, which is only a synonym for a list of Char.-			</P-><P->&#13;			Lists and tuples are often used data structures for compound data in Haskell and are therefore also build-in values.-			</P-><P->&#13;			Lists combine values of the same type into a single object. The list [1,2,3] is a shorthand for 1:(2:(3:[])). The infix operator : adds its first argument to the front of its second argument, a list. The empty list is expressed by []. The data type list is a <SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->polymorphic type</I-></SPAN->, see <A-HREF="x298.html#polymorphic_types"->Section 1.2.3.2</A-> .-			</P-><P->&#13;			A tuple combines a predefined number of values of predefined, may be different, types into a single object. Tuples are called records or structures in other programming languages. A person might be represented by a personal id and a name. These two different types can be expressed by a tuple:-			</P-><DIV-CLASS="example"-><A-NAME="AEN361"-></A-><P-><B->Example 1-6. A tuple for persons with ID and name</B-></P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;(Int,String) =&#62; (42, "Schmidt")-				</PRE-></TD-></TR-></TABLE-></DIV-></DIV-><DIV-CLASS="simplesect"-><H4-CLASS="simplesect"-><A-NAME="polymorphic_types"-></A->1.2.3.2. Polymorphic types</H4-><P->&#13;			Lists and tuples are the most common examples of generic polymorph data types. A list can contain any type, the only constraint is that all types in one list are the same.-			</P-><P->&#13;			The Prelude, Haskell's standard library, contains lots of polymorphic functions and operators for processing lists and tuples. The head function for example is a list function that returns the head element of any list.-			</P-><DIV-CLASS="example"-><A-NAME="AEN368"-></A-><P-><B->Example 1-7. Get the head of a list</B-></P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;head :: [a] -&#62; a-				</PRE-></TD-></TR-></TABLE-></DIV-><P->&#13;			The function takes a list with elements of type <TT-CLASS="literal"->a</TT-> and returns one element of type <TT-CLASS="literal"->a</TT->, the head. Haskell supports type variables, like the <TT-CLASS="literal"->a</TT-> above. They are uncapitalized in contrast to specific types like Char or Int and stand for any type.-			</P-></DIV-><DIV-CLASS="simplesect"-><H4-CLASS="simplesect"-><A-NAME="AEN375"-></A->1.2.3.3. Type synonyms</H4-><P->&#13;			Type synonyms are names for commonly used types. They are created using a type declaration. A synonym does not define a new type, it just gives a new name for an existing type. Because synonyms are simply a shorthand, which can always be expanded out, type synonyms cannot be recursive.-			</P-><P->&#13;			As mentioned in the section about basic types, a String is a type synonym for a list of characters.-			</P-><DIV-CLASS="example"-><A-NAME="AEN379"-></A-><P-><B->Example 1-8. Definition of String</B-></P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;type String = [Char]-				</PRE-></TD-></TR-></TABLE-></DIV-><P->&#13;			Instead of writing ['H','e','l','l','o'] for a string, Haskell defines a shorthand syntax for strings: "Hello".-			</P-></DIV-><DIV-CLASS="simplesect"-><H4-CLASS="simplesect"-><A-NAME="AEN383"-></A->1.2.3.4. Algebraic types</H4-><P->&#13;			Algebraic types are used to define more complex types than lists or tuples, e.g. enumerated types or trees. These types can be recursive. Their definition starts with the keyword <TT-CLASS="literal"->data</TT->, followed by the name of the type and the constructors.-			</P-><P->&#13;			The following example demonstrates a recursive data structure for a polymorphic binary tree, which can store any data type in its leafs. The two kinds <TT-CLASS="literal"->Leaf</TT-> and <TT-CLASS="literal"->Branch</TT-> of the data type <TT-CLASS="literal"->BinTree</TT-> are called constructors. They can be used in the pattern matching of function definitions, described in the next section.-			</P-><DIV-CLASS="example"-><A-NAME="AEN391"-></A-><P-><B->Example 1-9. A type for binary trees</B-></P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;data BinTree a = Leaf a | Branch (BinTree a) (BinTree a)-				</PRE-></TD-></TR-></TABLE-></DIV-></DIV-></DIV-><DIV-CLASS="section"-><H2-CLASS="section"-><A-NAME="pattern_matching"-></A->1.2.4. Pattern Matching</H2-><P->&#13;		Functions can get different types of input. A powerful way for describing different input types in Haskell is using pattern matching. A function can be multiple defined, each definition having a particular pattern for its input arguments. The first pattern that matches the argument is used for that function call. An underscore is a wildcard and is used where something should match, but where the matched value is not used.-		</P-><DIV-CLASS="example"-><A-NAME="AEN397"-></A-><P-><B->Example 1-10. Calculate the length of a list</B-></P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;length :: [a] -&#62; Int-length []     = 0-length (_:xs) = 1 + length xs-			</PRE-></TD-></TR-></TABLE-></DIV-><P->&#13;		The function length uses recursion for calculating the length of lists. It calls itself on the right-hand of the second equation. There exist two definitions of the function: one for empty lists and one for lists with content. The pattern <TT-CLASS="literal"->[]</TT-> matches the empty list. The pattern <TT-CLASS="literal"->x:xs</TT-> matches any list with at least one element. The head element is described by the <TT-CLASS="literal"->x</TT->, the tail of the list by <TT-CLASS="literal"->xs</TT->. The <TT-CLASS="literal"->x</TT-> can be replaced by the wildcard, because the head element has not to be accessed directly.-		</P-><P->&#13;		The generic type <TT-CLASS="literal"->[a]</TT-> in the function declaration of <TT-CLASS="function"->length</TT-> expresses that <TT-CLASS="function"->length</TT-> is a polymorph function, which can be applied to a list containing elements of any type.-		</P-><P->&#13;		Constructors of algebraic types can also be used for pattern matching. The following function returns a list of all values stored in a binary tree. The infix function <TT-CLASS="function"->++</TT-> concatenates two lists.-		</P-><DIV-CLASS="example"-><A-NAME="AEN412"-></A-><P-><B->Example 1-11. Get all values from Bintree</B-></P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;fringe :: Bintree a -&#62; [a]-fringe (Leaf x)       = [x]-fringe (Branch t1 t2) = fringe t1 ++ fringe t2-			</PRE-></TD-></TR-></TABLE-></DIV-><P->&#13;		To name a pattern for the use on the right-hand side of an equation, there exists the operator <TT-CLASS="literal"->@</TT->. These patterns are called <SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->as-patterns</I-></SPAN->. The pattern in front of the <TT-CLASS="literal"->@</TT-> always results in a successful match, but the sub-pattern can fail. The following example shows a rewritten fringe function that returns not only the values of the leafs but the leafs itself.-		</P-><DIV-CLASS="example"-><A-NAME="AEN419"-></A-><P-><B->Example 1-12. Get all leafs from Bintree</B-></P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;fringe2 :: Bintree a -&#62; [Bintree a]-fringe2 l@(Leaf _)     = [l]-fringe2 (Branch t1 t2) = fringe t1 ++ fringe t2-			</PRE-></TD-></TR-></TABLE-></DIV-></DIV-><DIV-CLASS="section"-><H2-CLASS="section"-><A-NAME="guards"-></A->1.2.5. Guards</H2-><P->&#13;		Guards (<TT-CLASS="literal"->|</TT->) allow boolean tests of arguments passed to a function. The function definition which conditional expression matches first is applied. The keyword <TT-CLASS="literal"->otherwise</TT-> matches always. The function <TT-CLASS="function"->max</TT-> uses guards for calculating the maximum of two numbers.-		</P-><DIV-CLASS="example"-><A-NAME="AEN428"-></A-><P-><B->Example 1-13. Calculate the maximum of two numbers</B-></P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;max :: Int -&#62; Int -&#62; Int-max x y-    | x &#60;= y     = y-    | otherwise  = x-			</PRE-></TD-></TR-></TABLE-></DIV-></DIV-><DIV-CLASS="section"-><H2-CLASS="section"-><A-NAME="higher_order_functions"-></A->1.2.6. Higher-order Functions</H2-><P->&#13;		In Haskell functions are first-class citizens. This means that they are themselves simply values. They can be stored in data types or passed as arguments to other functions.-		</P-><P->&#13;		Higher-order functions are functions that take functions as input, return functions as a result or do both. This technique provides a very high abstraction, by embodying a pattern of computation into a function.-		The following <TT-CLASS="function"->map</TT-> function embodies transformations over lists.-		</P-><DIV-CLASS="example"-><A-NAME="AEN436"-></A-><P-><B->Example 1-14. Apply a function to a list</B-></P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;map :: (a -&#62; b) -&#62; [a] -&#62; [b]-map f []     = []-map f (x:xs) = f x : map f xs-			</PRE-></TD-></TR-></TABLE-></DIV-><P->&#13;		<TT-CLASS="function"->map</TT-> is a polymorphic function that takes a function and a list as arguments. The passed function takes any type <TT-CLASS="literal"->a</TT-> and returns any type <TT-CLASS="literal"->b</TT->. By applying <TT-CLASS="function"->map</TT-> to a list of <TT-CLASS="literal"->a</TT->'s, it returns a new list of <TT-CLASS="literal"->b</TT->'s. The generic types <TT-CLASS="literal"->a</TT-> and <TT-CLASS="literal"->b</TT-> might be different, but do not have to be like the following example demonstrates.-		</P-><DIV-CLASS="example"-><A-NAME="AEN448"-></A-><P-><B->Example 1-15. Increase all numbers in a list</B-></P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;map (+1) [1,2,3]  =&#62;  [2,3,4]-			</PRE-></TD-></TR-></TABLE-></DIV-><P->&#13;		The infix function <TT-CLASS="function"->+</TT-> in the example for increasing all numbers in a list is partially applied. Partial application can be done to any function taking two or more arguments. The operator <TT-CLASS="function"->+</TT-> expects two arguments, one argument is predefined as "1". In this case the function increases every second argument by one.-		</P-></DIV-><DIV-CLASS="section"-><H2-CLASS="section"-><A-NAME="modules_introduction"-></A->1.2.7. Modules</H2-><P->&#13;		Modules are the basis for structuring programs or building general libraries. A module has a name and contains a collection of Haskell definitions. A module may import definitions from other modules and export definitions for the use by other modules.-		</P-><DIV-CLASS="example"-><A-NAME="AEN457"-></A-><P-><B->Example 1-16. Modules</B-></P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;module Foo-    ( inc-    , dec)--where import Bar--... definitions of inc and dec-			</PRE-></TD-></TR-></TABLE-></DIV-><P->&#13;		The module <TT-CLASS="filename"->Foo</TT-> exports the functions <TT-CLASS="function"->inc</TT-> and <TT-CLASS="function"->dec</TT->. It imports the module <TT-CLASS="filename"->Bar</TT-> so that <TT-CLASS="filename"->Foo</TT-> can use <TT-CLASS="filename"->Bar</TT->'s exported definitions. Haskell's standard library, the <TT-CLASS="filename"->Prelude</TT->, is implicitly imported.-		</P-></DIV-></DIV-><DIV-CLASS="NAVFOOTER"-><HR-ALIGN="LEFT"-WIDTH="100%"><TABLE-SUMMARY="Footer navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"-><A-HREF="c78.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="index.html"-ACCESSKEY="H"->Home</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"-><A-HREF="c468.html"-ACCESSKEY="N"->Next</A-></TD-></TR-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"->Basics</TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="c78.html"-ACCESSKEY="U"->Up</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"->Package hdom</TD-></TR-></TABLE-></DIV-></BODY-></HTML->
− doc/hvalidator/thesis/x558.html
@@ -1,1187 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">-<HTML-><HEAD-><TITLE->Data structures</TITLE-><META-NAME="GENERATOR"-CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK-REL="HOME"-TITLE="Design and Implementation of a validating XML parser in Haskell"-HREF="index.html"><LINK-REL="UP"-TITLE="Package hdom"-HREF="c468.html"><LINK-REL="PREVIOUS"-TITLE="Package hdom"-HREF="c468.html"><LINK-REL="NEXT"-TITLE="Filter functions"-HREF="x854.html"></HEAD-><BODY-CLASS="section"-BGCOLOR="#FFFFFF"-TEXT="#000000"-LINK="#0000FF"-VLINK="#840084"-ALINK="#0000FF"-><DIV-CLASS="NAVHEADER"-><TABLE-SUMMARY="Header navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TH-COLSPAN="3"-ALIGN="center"->Design and Implementation of a validating XML parser in Haskell: Master's thesis; -			University of Applied Sciences Wedel-		</TH-></TR-><TR-><TD-WIDTH="10%"-ALIGN="left"-VALIGN="bottom"-><A-HREF="c468.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="80%"-ALIGN="center"-VALIGN="bottom"->Chapter 2. Package hdom</TD-><TD-WIDTH="10%"-ALIGN="right"-VALIGN="bottom"-><A-HREF="x854.html"-ACCESSKEY="N"->Next</A-></TD-></TR-></TABLE-><HR-ALIGN="LEFT"-WIDTH="100%"></DIV-><DIV-CLASS="section"-><H1-CLASS="section"-><A-NAME="data_structures"-></A->2.2. Data structures</H1-><DIV-CLASS="section"-><H2-CLASS="section"-><A-NAME="AEN560"-></A->2.2.1. Core components</H2-><P->&#13;			XML documents are structured hierarchically and can be represented as trees. Trees can be modeled easily with lists, because trees can be seen as a generalization of lists: nested lists. As shown in the first chapter, Haskell has some nifty facilities for representing and manipulating lists.-			</P-><P->&#13;			XML documents consist of many different logical units, which can be represented by different types. Functional languages like Haskell are well-equipped to process typed tree-structured data by using pattern matching and recursion.-			</P-><P->&#13;			Basically there exist two different approaches for representing XML documents in Haskell. One approach is to use a generic tree structure by which all XML documents can be handled.-			</P-><P->&#13;			Another approach is to use problem specific types that are derived from a specific Document Type Definition. Both approaches have several advantages and disadvantages. They are discussed in depth in the paper "Haskell and XML: Generic Combinators or Type-Based Translation?" by Malcolm Wallace and Colin Runciman [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_haxmlpaper"-><SPAN-CLASS="abbrev"->WWW22</SPAN-></A-></SPAN->].-			</P-><P->&#13;			The Haskell XML Toolbox uses a generic data structure for representing whole XML documents. Its data model is more general than the one used in HaXml. The differences are discussed in depth in <A-HREF="x2201.html"->Section 5.2</A->. A generic data model is the only practical approach for implementing a generic XML parser and a framework for processing any XML documents.-			</P-><P->&#13;			The data type that models a generic tree structure is the data type <TT-CLASS="literal"->NTree</TT->, defined in the module <TT-CLASS="classname"->NTree</TT->. It defines an n-ary tree: a node with a list of children that are also nodes. If a node is a leaf it has an empty child list. The data type <TT-CLASS="literal"->NTrees</TT-> is an abbreviation for the node list. Together both types are mutually recursive and form a multi-branch tree structure.- 			</P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;data NTree  node = NTree node (NTrees node)-                   deriving (Eq, Ord, Show, Read)--type NTrees node = [NTree node]-			</PRE-></TD-></TR-></TABLE-></DIV-><DIV-CLASS="section"-><H2-CLASS="section"-><A-NAME="AEN575"-></A->2.2.2. Data type XmlTree</H2-><P->&#13;			Building on the very general tree data type <TT-CLASS="literal"->NTree</TT-> are defined the types <TT-CLASS="literal"->XmlTree</TT-> and <TT-CLASS="literal"->XmlTrees</TT-> that are defined in the module <TT-CLASS="classname"->XmlTreeTypes</TT->. They are used to specify a general recursive data type for XML documents. The data, which can be stored in the nodes, must be of type <TT-CLASS="literal"->XNode</TT->.-			</P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;type XmlTree  = NTree  XNode--type XmlTrees = NTrees XNode-			</PRE-></TD-></TR-></TABLE-><P->&#13;			The algebraic data type <TT-CLASS="literal"->XNode</TT-> is used for representing all kinds of XML's logical units. The type is described in detail in the next section.-			</P-><DIV-CLASS="section"-><H3-CLASS="section"-><A-NAME="AEN586"-></A->2.2.2.1. Data type XNode</H3-><P->&#13;				Before introducing the data type <TT-CLASS="literal"->XNode</TT->, some type synonyms have to be presented which are used in the definitions of <TT-CLASS="literal"->XNode</TT->. The type <TT-CLASS="literal"->TagAttrl</TT-> defines the attribute list of an element, it is a list of name-value pairs.-				</P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;type TagAttrl  = [TagAttr]-type TagAttr   = (AttrName, AttrValue)-				</PRE-></TD-></TR-></TABLE-><P->&#13;				Several type synonyms exist to make the definitions more understandable:-				</P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;type TagName   = String-type AttrName  = String-type AttrValue = String-				</PRE-></TD-></TR-></TABLE-><P->&#13;				XML documents consist of several different logical units like elements, text data, comments, DTD definitions or entity references. Each kind can be represented by an own type in Haskell so that processing an <TT-CLASS="literal"->XmlTree</TT-> can be implemented very efficient by the use of pattern matching. The algebraic data type <TT-CLASS="literal"->XNode</TT-> defines the basic nodes and leafs for all kinds of XML's logical units.-				</P-><P->&#13;				Together with the algebraic type <TT-CLASS="literal"->DTDElem</TT->, which defines constructors for the DTD declarations, this data model allows a uniform processing of the whole XML document by filter functions, described in <A-HREF="x854.html"->Section 2.3</A->.-				</P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;-data XNode =-      XText String-    | XCharRef Int-    | XEntityRef String-    | XCmt String-    | XCdata String-    | XPi TagName TagAttrl-    | XTag TagName TagAttrl-    | XDTD DTDElem TagAttrl-    | XError Int String-    deriving (Eq, Ord, Show, Read)-				</PRE-></TD-></TR-></TABLE-><P-></P-><DIV-CLASS="variablelist"-><P-><B->Description of the constructors:</B-></P-><DL-><DT-><TT-CLASS="function"->XText String</TT-></DT-><DD-><P->&#13;							Ordinary text data (leaf)-							</P-><P->&#13;							Note that an <TT-CLASS="literal"->XText</TT-> node does not necessarily represent a maximal contiguous sequence of characters. The parser may split text data up into multiple <TT-CLASS="literal"->XText</TT-> nodes. The parser produces <TT-CLASS="literal"->XText</TT-> nodes from white space occurring before or after tags, too.-							</P-><P->&#13;							There exist special filter functions in the module <TT-CLASS="classname"->EditFilters</TT-> for summing up sequences of <TT-CLASS="literal"->XText</TT-> nodes into one node and removing <TT-CLASS="literal"->XText</TT-> nodes from the tree, which contain white space only.-							</P-></DD-><DT-><TT-CLASS="function"->XCharRef Int</TT-></DT-><DD-><P->&#13;							Character reference (leaf)-							</P-><P->&#13;							XML syntax: &#38;#nnn; (<SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->nnn</I-></SPAN-> is a hexadecimal or decimal representation of the characters code point in ISO/IEC 10646)-							</P-></DD-><DT-><TT-CLASS="function"->XEntityRef String</TT-></DT-><DD-><P->&#13;							Entity reference (leaf)-							</P-><P->&#13;							XML syntax: &#38;...;-							</P-></DD-><DT-><TT-CLASS="function"->XCmt String</TT-></DT-><DD-><P->&#13;							Comment (leaf)-							</P-></DD-><DT-><TT-CLASS="function"->XCdata String</TT-></DT-><DD-><P->&#13;							CDATA section (leaf)-							</P-></DD-><DT-><TT-CLASS="function"->XPi TagName TagAttrl</TT-></DT-><DD-><P->&#13;							Processing Instruction (leaf)-							</P-><P->&#13;							<TT-CLASS="literal"->TagName</TT-> stores the name of the processing instruction.	If name is <SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->xml</I-></SPAN->, it has the attributes "version", "encoding" and "standalone". Otherwise there is only the attribute "value" which stores a list of the processing instruction attributes.-							</P-></DD-><DT-><TT-CLASS="function"->XTag TagName TagAttrl</TT-></DT-><DD-><P->&#13;							Element (node or leaf)-							</P-><P->&#13;							Inner node if the element has content, respectively children. Leaf if the element is empty. <TT-CLASS="literal"->TagName</TT-> stores the name of the element. The attribute list <TT-CLASS="literal"->TagAttrl</TT-> contains all attributes of the element.-							</P-></DD-><DT-><TT-CLASS="function"->XDTD DTDElem TagAttrl</TT-></DT-><DD-><P->&#13;							 DTD element (node or leaf)-							</P-><P->&#13;							 The algebraic data type <TT-CLASS="literal"->DTDElem</TT-> is used to specify the concrete kind of the element, e.g. element declaration, attribute declaration or entity declaration. The attribute list <TT-CLASS="literal"->TagAttrl</TT-> contains almost all information from the DTD declarations (see <A-HREF="x558.html#dtdelem"->Section 2.2.2.2</A->).-							</P-></DD-><DT-><TT-CLASS="function"->XError Int String</TT-></DT-><DD-><P->&#13;							Error (node or leaf)-							</P-><P->&#13;							Not an XML component. Internal extension for representing errors with error level and error message. The error level can be of type: <SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->warning</I-></SPAN->, <SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->error</I-></SPAN-> or <SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->fatal error</I-></SPAN->. The error node can have a child list with the nodes where the error occurred.-							</P-></DD-></DL-></DIV-></DIV-><DIV-CLASS="section"-><H3-CLASS="section"-><A-NAME="dtdelem"-></A->2.2.2.2. Data type DTDElem</H3-><P->&#13;				Because a DTD is quite complex, there exists an extra algebraic data type <TT-CLASS="literal"->DTDElem</TT-> for representing DTD elements in the <TT-CLASS="literal"->XmlTree</TT->. For each DTD declaration there exists an own type. The nodes store almost all information from DTD declarations in their attribute list. The library <TT-CLASS="classname"->XmlKeywords</TT-> provides constants for the names and values of these attributes. Variable contents like the definition of the content model or the names in the value-list of enumerated attribute types are modeled using the node's child list in combination with helper nodes.-				</P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;data DTDElem =-      DOCTYPE-    | ELEMENT-    | CONTENT-    | ATTLIST-    | ENTITY-    | NOTATION-    | NAME-    | PENTITY-    | PEREF-    | CONDSECT-    deriving (Eq, Ord, Show, Read)-				</PRE-></TD-></TR-></TABLE-><P-></P-><DIV-CLASS="variablelist"-><P-><B->Description of the constructors:</B-></P-><DL-><DT-><TT-CLASS="function"->DOCTYPE</TT-></DT-><DD-><P->&#13;							The root node of a DTD, has <TT-CLASS="literal"->XDTD</TT-> nodes as children.-							</P-><P->&#13;								<P-></P-><P-><B->Attributes:</B-></P-><UL-><LI-><P->name - Name of the root element</P-></LI-><LI-><P->SYSTEM - Reference to external subset (optional)</P-></LI-><LI-><P->PUBLIC - Reference to external subset (optional)</P-></LI-></UL->-							</P-></DD-><DT-><TT-CLASS="function"->ELEMENT</TT-></DT-><DD-><P->&#13;							Element declaration. If the element is of type <SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->children</I-></SPAN-> or <SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->mixed</I-></SPAN->, it has a list of <TT-CLASS="literal"->XDTD CONTENT</TT-> nodes as children. These children describe the content model of the element.-							</P-><P->&#13;								<P-></P-><P-><B->Attributes:</B-></P-><UL-><LI-><P->name - Element name</P-></LI-><LI-><P->type - EMPTY | ANY | #PCDATA | children | mixed</P-></LI-></UL->-							</P-></DD-><DT-><TT-CLASS="function"->CONTENT</TT-></DT-><DD-><P->&#13;							Not an XML component. Specifies the content model of an element if the element is of type <SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->children</I-></SPAN-> or <SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->mixed</I-></SPAN->. An <TT-CLASS="literal"->XDTD CONTENT</TT-> node has a list of children, which can be of type <TT-CLASS="literal"->XDTD CONTENT</TT-> if there is some grouping in the content model, or of type <TT-CLASS="literal"->XDTD NAME</TT-> to specify the name of a child element.-							</P-><P->&#13;								<P-></P-><P-><B->Attributes:</B-></P-><UL-><LI-><P->kind - seq | choice</P-></LI-><LI-><P->modifier -  "" | ? | * | +</P-></LI-></UL->-							</P-></DD-><DT-><TT-CLASS="function"->ATTLIST</TT-></DT-><DD-><P->&#13;							Attribute declaration. If the attribute declaration is of type <SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->NOTATION</I-></SPAN-> or <SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->ENUMERATION</I-></SPAN->, this node has a list of children of type <TT-CLASS="literal"->XDTD NAME</TT-> to specify the enumerated values.-							</P-><P->&#13;								<P-></P-><P-><B->Attributes:</B-></P-><UL-><LI-><P->name - Element name</P-></LI-><LI-><P->value - Attribute name</P-></LI-><LI-><P->kind - #REQUIRED | #IMPLIED | #DEFAULT | #FIXED</P-></LI-><LI-><P->type - CDATA | ID | IDREF | IDREFS | ENTITY | ENTITIES | NMTOKEN | NMTOKENS | NOTATION | ENUMERATION</P-></LI-><LI-><P->default - Default value (optional)</P-></LI-></UL->-							</P-></DD-><DT-><TT-CLASS="function"->ENTITY</TT-></DT-><DD-><P->&#13;							General or unparsed entity declaration. If the entity is a general entity, it has a child list with nodes of type <TT-CLASS="literal"->XDTD XCharRef</TT-> and <TT-CLASS="literal"->XDTD XText</TT-> that specify the replacement text.-							</P-><P->&#13;								<P-></P-><P-><B->Attributes:</B-></P-><UL-><LI-><P->name - Entity name</P-></LI-><LI-><P->SYSTEM - Reference to external file (optional and only for external or unparsed entities)</P-></LI-><LI-><P->NDATA - reference to a notation (optional and only for unparsed entities)</P-></LI-></UL->-							</P-></DD-><DT-><TT-CLASS="function"->NOTATION</TT-></DT-><DD-><P->&#13;							Notation declaration.-							</P-><P->&#13;								<P-></P-><P-><B->Attributes:</B-></P-><UL-><LI-><P->name - Notation name</P-></LI-><LI-><P->SYSTEM - Reference to external application</P-></LI-></UL->-							</P-></DD-><DT-><TT-CLASS="function"->NAME</TT-></DT-><DD-><P->&#13;							Not an XML component. Used by the attribute declaration <TT-CLASS="literal"->XDTD ATTLIST</TT-> to specify the list of values for attributes of type <SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->NOTATION</I-></SPAN-> and <SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->ENUMERATION</I-></SPAN->.-							</P-><P->&#13;							 Used by the node <TT-CLASS="literal"->XDTD CONTENT</TT-> to specify element names in content models.-							</P-><P->&#13;								<P-></P-><P-><B->Attributes:</B-></P-><UL-><LI-><P->name - Value of the name</P-></LI-></UL->-							</P-></DD-></DL-></DIV-><P->&#13;				The following node types are not accessible by any application. They are for internal use of the XML parser and handled by it. However it is possible to turn of this processing of the parser, so they are shortly described.-				</P-><P-></P-><DIV-CLASS="variablelist"-><DL-><DT-><TT-CLASS="function"->PENTITY</TT-></DT-><DD-><P->&#13;							Parameter entity declaration.-							</P-><P->&#13;								<P-></P-><P-><B->Attributes:</B-></P-><UL-><LI-><P->name - Name of parameter entity</P-></LI-><LI-><P->value - Value of parameter entity</P-></LI-><LI-><P->SYSTEM - Reference to external file (optional)</P-></LI-><LI-><P->PUBLIC - Reference to external file (optional)</P-></LI-></UL->-							</P-></DD-><DT-><TT-CLASS="function"->PEREF</TT-></DT-><DD-><P->&#13;							Parameter entity reference.-							</P-><P->&#13;								<P-></P-><P-><B->Attributes:</B-></P-><UL-><LI-><P->PERef - Name of referenced parameter entity</P-></LI-></UL->-							</P-></DD-><DT-><TT-CLASS="function"->CONDSECT</TT-></DT-><DD-><P->&#13;							Node for conditional sections. The child list contains the DTD declarations that are defined in the conditional section.-							</P-><P->&#13;								<P-></P-><P-><B->Attributes:</B-></P-><UL-><LI-><P->type - INCLUDE, IGNORE or parameter entity reference (%...;)</P-></LI-></UL->-							</P-></DD-></DL-></DIV-></DIV-></DIV-><DIV-CLASS="section"-><H2-CLASS="section"-><A-NAME="example_xmltree"-></A->2.2.3. Example</H2-><P->&#13;			The following example demonstrates how an XML document is transformed into the generic tree structure <TT-CLASS="literal"->XmlTree</TT->.-			</P-><DIV-CLASS="example"-><A-NAME="AEN836"-></A-><P-><B->Example 2-1. Input document</B-></P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;&#60;?xml version="1.0" encoding="UTF-8" standalone="yes" ?&#62;--&#60;!DOCTYPE a [-&#60;!ATTLIST a  att1  CDATA  #IMPLIED&#62;-&#60;!ELEMENT a  (b, c?)&#62;-&#60;!ELEMENT b  EMPTY&#62;-&#60;!ELEMENT c  (#PCDATA)&#62;-]&#62;--&#60;a att1="test"&#62;-    &#60;b/&#62;-    &#60;c&#62;hello world&#60;/c&#62;-&#60;/a&#62;-				</PRE-></TD-></TR-></TABLE-></DIV-><P->&#13;			The following graph shows the <TT-CLASS="literal"->XmlTree</TT-> representation of the document after parsing. The predefined general entities <SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->amp, lt, gt, apos</I-></SPAN-> and <SPAN-CLASS="emphasis"-><I-CLASS="emphasis"->quot</I-></SPAN-> are automatically added to the DTD by the XML parser. A dummy node with the name "/" forms the root node of the tree so that the DTD, the document subset, processing instructions and comments can be modeled by one tree.-			</P-><P->&#13;			White space before or after tags is represented by <TT-CLASS="literal"->XText</TT-> nodes. There exist filter functions in the module <TT-CLASS="classname"->EditFilters</TT-> for removing <TT-CLASS="literal"->XText</TT-> nodes containing white space only from the tree if these nodes are not necessary for further processing.-			</P-><DIV-CLASS="example"-><A-NAME="AEN847"-></A-><P-><B->Example 2-2. Input document as XmlTree</B-></P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;---XTag "/" [("standalone","yes"),("version","1.0"),("source","example.xml"),-   |         ("encoding","UTF-8")]-   |-   +---XPi "xml" [("version","1.0"),("encoding","UTF-8"),("standalone","yes")]-   |-   +---XText "\n\n"-   |-   +---XDTD DOCTYPE [("name","a")]-   |   |-   |   +---XDTD ENTITY [("name","lt")]-   |   |   |-   |   |   +---XCharRef 38-   |   |   |-   |   |   +---XText "#60;"-   |   |-   |   +---XDTD ENTITY [("name","gt")]-   |   |   |-   |   |   +---XCharRef 62-   .   .-   .   .   (Definitions of the other predefined entities amp, apos and quot)-   .   .-   |   +---XDTD ATTLIST [("name","a"),("value","att1"),("default","42"),-   |   |                 ("kind","#DEFAULT"),("type","CDATA")]-   |   |-   |   +---XDTD ELEMENT [("name","a"),("type","children")]-   |   |   |-   |   |   +---XDTD CONTENT [("modifier",""),("kind","seq")]-   |   |       |-   |   |       +---XDTD NAME [("name","b")]-   |   |       |-   |   |       +---XDTD CONTENT [("modifier","?"),("kind","seq")]-   |   |           |-   |   |           +---XDTD NAME [("name","c")]-   |   |-   |   +---XDTD ELEMENT [("name","b"),("type","EMPTY")]-   |   |-   |   +---XDTD ELEMENT [("name","c"),("type","#PCDATA")]-   |-   +---XText "\n\n"-   |-   +---XTag "a" [("att1","test")]-   |   |-   |   +---XText "\n    "-   |   |-   |   +---XTag "b" []-   |   |-   |   +---XText "\n    "-   |   |-   |   +---XTag "c" []-   |   |   |-   |   |   +---XText "hello world"-   |   |-   |   +---XText "\n"-   |-   +---XText "\n"-				</PRE-></TD-></TR-></TABLE-></DIV-><P->&#13;			The following listing shows the internal representation of the document subset. The root node with the name "a" has a list of attributes and a list of children.-			</P-><DIV-CLASS="example"-><A-NAME="AEN851"-></A-><P-><B->Example 2-3. Internal representation of the document subset</B-></P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;NTree (XTag "a" [("att1","test")]) [-    NTree (XText "\n    ") [],-    NTree (XTag "b" []) [],-    NTree (XText "\n    ") [],-    NTree (XTag "c" []) [-        NTree (XText "hello world") []-    ],NTree (XText "\n") []-]-				</PRE-></TD-></TR-></TABLE-></DIV-></DIV-></DIV-><DIV-CLASS="NAVFOOTER"-><HR-ALIGN="LEFT"-WIDTH="100%"><TABLE-SUMMARY="Footer navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"-><A-HREF="c468.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="index.html"-ACCESSKEY="H"->Home</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"-><A-HREF="x854.html"-ACCESSKEY="N"->Next</A-></TD-></TR-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"->Package hdom</TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="c468.html"-ACCESSKEY="U"->Up</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"->Filter functions</TD-></TR-></TABLE-></DIV-></BODY-></HTML->
− doc/hvalidator/thesis/x854.html
@@ -1,990 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">-<HTML-><HEAD-><TITLE->Filter functions</TITLE-><META-NAME="GENERATOR"-CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK-REL="HOME"-TITLE="Design and Implementation of a validating XML parser in Haskell"-HREF="index.html"><LINK-REL="UP"-TITLE="Package hdom"-HREF="c468.html"><LINK-REL="PREVIOUS"-TITLE="Data structures"-HREF="x558.html"><LINK-REL="NEXT"-TITLE="Filter combinators"-HREF="x1178.html"></HEAD-><BODY-CLASS="section"-BGCOLOR="#FFFFFF"-TEXT="#000000"-LINK="#0000FF"-VLINK="#840084"-ALINK="#0000FF"-><DIV-CLASS="NAVHEADER"-><TABLE-SUMMARY="Header navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TH-COLSPAN="3"-ALIGN="center"->Design and Implementation of a validating XML parser in Haskell: Master's thesis; -			University of Applied Sciences Wedel-		</TH-></TR-><TR-><TD-WIDTH="10%"-ALIGN="left"-VALIGN="bottom"-><A-HREF="x558.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="80%"-ALIGN="center"-VALIGN="bottom"->Chapter 2. Package hdom</TD-><TD-WIDTH="10%"-ALIGN="right"-VALIGN="bottom"-><A-HREF="x1178.html"-ACCESSKEY="N"->Next</A-></TD-></TR-></TABLE-><HR-ALIGN="LEFT"-WIDTH="100%"></DIV-><DIV-CLASS="section"-><H1-CLASS="section"-><A-NAME="filter_functions"-></A->2.3. Filter functions</H1-><DIV-CLASS="section"-><H2-CLASS="section"-><A-NAME="filter_introduction"-></A->2.3.1. Introduction</H2-><P->&#13;			Filters are the basic functions for processing the <TT-CLASS="literal"->XmlTree</TT-> representation of XML documents. A filter takes a node or a list of nodes and returns some sequence of nodes. The result list might be empty, might contain a single item, or it could contain several items.-			</P-><P->&#13;			The idea of filters was adopted from HaXml [<SPAN-CLASS="citation"-><A-HREF="b2463.html#bib_haxml"-><SPAN-CLASS="abbrev"->WWW21</SPAN-></A-></SPAN->], but has been modified. In HaXml filters work only on the document subset part of XML documents. The Haskell XML Toolbox uses the generic tree data type <TT-CLASS="literal"->NTree</TT-> for modeling XML documents. This generic data model makes it possible to generalize HaXml's filter idea so that filters can process the whole XML document, including the DTD subset or document subset. This generalization allows implementing a very uniform design of XML processing applications by using filters. In fact the whole XML Parser of the Haskell XML Toolbox works internally with filters. The differences between HaXml's approach and the approach of the Haskell XML Toolbox are described in depth in <A-HREF="x2201.html"->Section 5.2</A->.-			</P-><P->&#13;			<TT-CLASS="literal"->TFilter</TT-> and <TT-CLASS="literal"->TSFilter</TT-> are filters for the general n-ary tree defined by the data type <TT-CLASS="literal"->NTree</TT->. The function <TT-CLASS="literal"->TFilter</TT-> takes a node and returns a list of nodes. <TT-CLASS="literal"->TSFilter</TT-> takes a list of nodes and returns a list, too.-			</P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;type TFilter  node	= NTree  node -&#62; NTrees node-type TSFilter node	= NTrees node -&#62; NTrees node-			</PRE-></TD-></TR-></TABLE-><P->&#13;			<TT-CLASS="literal"->XmlFilter</TT-> and <TT-CLASS="literal"->XmlSFilter</TT-> base on these types. They only work on <TT-CLASS="literal"->XNode</TT-> data types.-			</P-><TABLE-BORDER="0"-BGCOLOR="#E0E0E0"-WIDTH="100%"-><TR-><TD-><PRE-CLASS="programlisting"->&#13;type XmlFilter  = TFilter  XNode-type XmlSFilter = TSFilter XNode-			</PRE-></TD-></TR-></TABLE-><P->&#13;			The filters can be used to select parts of a document, to construct new document parts or to change document parts. They can even be used for checking validity constraints as described in <A-HREF="c1850.html"->Chapter 4</A->. In this case a filter returns an empty list if the document is valid or a list with errors.-			</P-><P->&#13;			Filters can sometimes be thought of as predicates. In this case they are used for deciding whether or not to keep its input. The functional approach differs from predicate logic. If the predicate is false, an empty list is returned. If the predicate is true, a list with the passed element is returned.-			</P-><P->&#13;			All filters share the same basic type so that combining them with the help of combinators, described in  <A-HREF="x1178.html"->Section 2.4</A->, is possible. With this approach defining complex filters on the basis of easier ones is possible.-			</P-><P->&#13;			The following list describes the basic filter functions for processing XML documents represented as an <TT-CLASS="literal"->XmlTree</TT->. Some functions are higher-order functions and return a filter function as a result. The arguments of these functions are used to construct parameterized filters. This is useful for example for constructing filters that should be used to return nodes with a certain property.-			</P-></DIV-><DIV-CLASS="section"-><H2-CLASS="section"-><A-NAME="filters_ntree"-></A->2.3.2. Filters from module NTree</H2-><P-></P-><DIV-CLASS="variablelist"-><P-><B->Simple filters</B-></P-><DL-><DT-><TT-CLASS="function"->none :: TFilter node</TT-></DT-><DD-><P->&#13;						Takes any node, returns always an empty list. Algebraically zero.-						</P-></DD-><DT-><TT-CLASS="function"->this :: TFilter node</TT-></DT-><DD-><P->&#13;						Takes any node, returns always a list of the passed node. Algebraically unit.-						</P-></DD-></DL-></DIV-><P-></P-><DIV-CLASS="variablelist"-><P-><B->Selection filters</B-></P-><DL-><DT-><TT-CLASS="function"->isOfNode :: (node -&#62; Bool) -&#62; TFilter node</TT-></DT-><DD-><P->&#13;						Takes a predicate functions and returns a filter. The filter returns a list with passed node if the predicate function  is true for the node, otherwise it returns an empty list.-						</P-></DD-><DT-><TT-CLASS="function"->isNode :: Eq node =&#62; node -&#62; TFilter node</TT-></DT-><DD-><P->&#13;						The same as <TT-CLASS="function"->isOfNode</TT->. Instead of a predicate function a reference node is taken.-						</P-></DD-></DL-></DIV-><P-></P-><DIV-CLASS="variablelist"-><P-><B->Filters for modifying nodes</B-></P-><DL-><DT-><TT-CLASS="function"->mkNTree :: NTree node -&#62; TFilter node</TT-></DT-><DD-><P->&#13;						Takes a node and returns a filter. The filter returns always a list with this node and ignores the passed one.-						</P-></DD-><DT-><TT-CLASS="function"->replaceNode :: node -&#62; TFilter node</TT-></DT-><DD-><P->&#13;						Takes a node and returns a filter. The filter replaces a passed node with the initialized one. The children of the passed node are added to the new node.-						</P-></DD-><DT-><TT-CLASS="function"->replaceChildren :: NTrees node -&#62; TFilter node</TT-></DT-><DD-><P->&#13;						Like <TT-CLASS="function"->replaceNode</TT-> except that in this case the children are replaced by an initialized list. The passed node itself is not modified.-						</P-></DD-><DT-><TT-CLASS="function"->modifyNode :: (node -&#62; Maybe node) -&#62; TFilter node</TT-></DT-><DD-><P->&#13;						Takes a function for modifying nodes and returns a filter.	The function <TT-CLASS="function"->(node -&#62; Maybe node)</TT-> is applied to the passed node, the children are not modified.-						</P-></DD-><DT-><TT-CLASS="function"->modifyNode0 :: (node -&#62; node) -&#62; TFilter node</TT-></DT-><DD-><P->&#13;						Like <TT-CLASS="function"->modifyNode0</TT-> except that the type of the modification function <TT-CLASS="function"->(node -&#62; node)</TT-> is different.-						</P-></DD-><DT-><TT-CLASS="function"->modifyChildren :: TSFilter node -&#62; TFilter node</TT-></DT-><DD-><P->&#13;						Takes a filter that processes lists of nodes and returns a new filter. The new filter applies the filter <TT-CLASS="function"->TSFilter node</TT-> to the child list of a passed node. The node itself is not modified.-						</P-></DD-></DL-></DIV-></DIV-><DIV-CLASS="section"-><H2-CLASS="section"-><A-NAME="filters_xmltreeaccess"-></A->2.3.3. Filters from module XmlTreeAccess</H2-><P-></P-><DIV-CLASS="variablelist"-><P-><B->Predicate filters</B-></P-><DL-><DT-><TT-CLASS="function"->isTag :: TagName -&#62; XmlFilter</TT-></DT-><DD-><P->&#13;						Takes a <TT-CLASS="literal"->TagName</TT-> and returns a filter. The filter returns a list with the passed node if its name equals <TT-CLASS="literal"->TagName</TT->, otherwise an empty list is returned.-						</P-></DD-><DT-><TT-CLASS="function"->isOfTag :: (TagName -&#62; Bool) -&#62; XmlFilter</TT-></DT-><DD-><P->&#13;						Takes a predicate function <TT-CLASS="function"->(TagName -&#62; Bool)</TT-> and returns a filter. The filter applies the predicate function to the name of a passed node. If the  predicate function is true, the filter returns a list with the node. Otherwise an empty list is returned.-						</P-></DD-><DT-><TT-CLASS="function"->attrHasValue :: AttrName -&#62; (AttrValue -&#62; Bool) -&#62; XmlFilter</TT-></DT-><DD-><P->&#13;						Constructs a predicate filter for attributes which value meets a predicate function. The constructed filter returns a list with the passed node if the node has an attribute with name <TT-CLASS="literal"->AttrName</TT-> and its value matches the predicate function <TT-CLASS="function"->(AttrValue -&#62; Bool)</TT->. Otherwise an empty list is returned.-						</P-></DD-></DL-></DIV-><P->&#13;			Lots of further predicate functions are provided by the module <TT-CLASS="classname"->XmlTreePredicates</TT->: <TT-CLASS="function"->isXCdata</TT->, <TT-CLASS="function"->isXCharRef</TT->, <TT-CLASS="function"->isXCmt</TT->, <TT-CLASS="function"->isXDTD</TT->, <TT-CLASS="function"->isXEntityRef</TT->, <TT-CLASS="function"->isXError</TT->, <TT-CLASS="function"->isXNoError</TT->, <TT-CLASS="function"->isXPi</TT->, <TT-CLASS="function"->isXTag</TT->, <TT-CLASS="function"->isXText</TT->, etc. These filters are used for identifying special types of nodes.-			</P-><P-></P-><P-></P-><DIV-CLASS="variablelist"-><P-><B->Construction filters</B-></P-><DL-><DT-><TT-CLASS="function"->mkXTag :: TagName -&#62; TagAttrl -&#62; XmlTrees -&#62; XmlFilter</TT-></DT-><DD-><P->&#13;						The created filter constructs an <TT-CLASS="literal"->XTag</TT-> node with the name <TT-CLASS="literal"->TagName</TT->, an attribute list <TT-CLASS="literal"->TagAttrl</TT-> and a list of children. The passed node is ignored by the filter.-						</P-></DD-><DT-><TT-CLASS="function"->mkXText :: String -&#62; XmlFilter</TT-></DT-><DD-><P->&#13;						The created filter constructs an <TT-CLASS="literal"->XText</TT-> node with text data. The passed node is ignored by the filter. There exists a shortcut function <TT-CLASS="function"->txt</TT-> that does the same.-						</P-></DD-><DT-><TT-CLASS="function"->mkXCharRef :: Int -&#62; XmlFilter</TT-></DT-><DD-><P->&#13;						The created filter constructs an <TT-CLASS="literal"->XCharRef</TT-> node with a reference number to a character. The passed node is ignored by the filter.-						</P-></DD-><DT-><TT-CLASS="function"->mkXEntityRef :: String -&#62; XmlFilter</TT-></DT-><DD-><P->&#13;						The created filter constructs an <TT-CLASS="literal"->XEntityRef</TT-> node with an entity reference. The passed node is ignored by the filter.-						</P-></DD-><DT-><TT-CLASS="function"->mkXCmt :: String -&#62; XmlFilter</TT-></DT-><DD-><P->&#13;						The created filter constructs an <TT-CLASS="literal"->XCmt</TT-> node with text data. The passed node is ignored by the filter. There exists a shortcut function <TT-CLASS="function"->cmt</TT-> that does the same.-						</P-></DD-><DT-><TT-CLASS="function"->mkXDTD :: DTDElem -&#62; TagAttrl -&#62; XmlTrees -&#62; XmlFilter</TT-></DT-><DD-><P->&#13;						The created filter constructs an <TT-CLASS="literal"->XDTD</TT-> node. The type of the node is specified by the algebraic data type <TT-CLASS="literal"->DTDElem</TT->. The node has attributes and a list of children. The passed node is ignored by the filter.-						</P-></DD-><DT-><TT-CLASS="function"->mkXPi	:: String  -&#62; TagAttrl -&#62; XmlFilter</TT-></DT-><DD-><P->&#13;						The created filter constructs an <TT-CLASS="literal"->XPi</TT-> node with a name and attributes. The passed node is ignored by the filter.-						</P-></DD-><DT-><TT-CLASS="function"->mkXCdata :: String -&#62; XmlFilter</TT-></DT-><DD-><P->&#13;						The created filter constructs an <TT-CLASS="literal"->XCdata</TT-> node with text data. The passed node is ignored by the filter.-						</P-></DD-><DT-><TT-CLASS="function"->mkXError :: Int -&#62; String -&#62; XmlFilter</TT-></DT-><DD-><P->&#13;						The created filter constructs an <TT-CLASS="literal"->XError</TT-> node with an error level and an error message. The passed node is stored in the child list of this error node, so that the location where the error occurred can be preserved. The shortcut functions <TT-CLASS="function"->warn</TT->, <TT-CLASS="function"->err</TT-> and <TT-CLASS="function"->fatal</TT-> of type <TT-CLASS="function"->String -&#62; XmlFilter</TT-> can be used to create specific error nodes.-						</P-></DD-><DT-><TT-CLASS="function"->mkXElem :: TagName -&#62; TagAttrl -&#62; [XmlFilter] -&#62; XmlFilter</TT-></DT-><DD-><P->&#13;						The created filter constructs an <TT-CLASS="literal"->XTag</TT-> node with the name <TT-CLASS="literal"->TagName</TT-> and the attribute list <TT-CLASS="literal"->TagAttrl</TT->. Its child list is constructed by applying the filter list <TT-CLASS="literal"->[XmlFilter]</TT-> to the passed node. There exists a shortcut function <TT-CLASS="function"->tag</TT-> that does the same.-						</P-></DD-><DT-><TT-CLASS="function"->mkXSElem :: TagName -&#62; [XmlFilter] -&#62; XmlFilter</TT-></DT-><DD-><P->&#13;						The created filter constructs a simple <TT-CLASS="literal"->XTag</TT-> node. It works like <TT-CLASS="function"->mkXElem</TT-> except that no attribute list is created. There exists a shortcut function <TT-CLASS="function"->stag</TT-> that does the same.-						</P-></DD-><DT-><TT-CLASS="function"->mkXEElem :: TagName -&#62; XmlFilter</TT-></DT-><DD-><P->&#13;						The created filter constructs an empty <TT-CLASS="literal"->XTag</TT-> node. It works like <TT-CLASS="function"->mkXSElem</TT-> except that no child list is created. There exists a shortcut function <TT-CLASS="function"->etag</TT-> that does the same.-						</P-></DD-></DL-></DIV-><P-></P-><DIV-CLASS="variablelist"-><P-><B->Selection filters</B-></P-><DL-><DT-><TT-CLASS="function"->getXTagName :: XmlFilter</TT-></DT-><DD-><P->&#13;						If the passed node is of type <TT-CLASS="literal"->XTag</TT->, a list with an <TT-CLASS="literal"->XText</TT-> node is returned. This node contains the name of the element. Otherwise an empty list is returned.-						</P-></DD-><DT-><TT-CLASS="function"->getXTagAttr :: AttrName -&#62; XmlFilter</TT-></DT-><DD-><P->&#13;						If the passed node is of type <TT-CLASS="literal"->XTag</TT-> and there exists an attribute with the name <TT-CLASS="literal"->AttrName</TT->, a list with an <TT-CLASS="literal"->XText</TT-> node is returned. This node contains  the value of the attribute. Otherwise an empty list is returned.-						</P-></DD-><DT-><TT-CLASS="function"->getXDTDAttr :: AttrName -&#62; XmlFilter</TT-></DT-><DD-><P->&#13;						The same as <TT-CLASS="function"->getXTagAttr</TT-> except that it works on <TT-CLASS="literal"->XDTD</TT-> nodes.-						</P-></DD-><DT-><TT-CLASS="function"->getXText :: XmlFilter</TT-></DT-><DD-><P->&#13;						If the passed node is of type <TT-CLASS="literal"->XText</TT->, a list with an <TT-CLASS="literal"->XText</TT-> node is returned. This node contains text data. Otherwise an empty list is returned.-						</P-></DD-><DT-><TT-CLASS="function"->getXCmt :: XmlFilter</TT-></DT-><DD-><P->&#13;						If the passed node is of type <TT-CLASS="literal"->XCmt</TT->, a list with an <TT-CLASS="literal"->XText</TT-> node is returned. This node contains the text data of the comment. Otherwise an empty list is returned.-						</P-></DD-><DT-><TT-CLASS="function"->getXPiName :: XmlFilter</TT-></DT-><DD-><P->&#13;						If the passed node is of type <TT-CLASS="literal"->XPi</TT->, a list with an <TT-CLASS="literal"->XText</TT-> node is returned. This node contains the name of the processing instruction. Otherwise an empty list is returned.-						</P-></DD-><DT-><TT-CLASS="function"->getXCdata :: XmlFilter</TT-></DT-><DD-><P->&#13;						If the passed node is of type <TT-CLASS="literal"->XCdata</TT->, a list with an <TT-CLASS="literal"->XText</TT-> node is returned. This node contains the text data of the element. Otherwise an empty list is returned.-						</P-></DD-><DT-><TT-CLASS="function"->getXError :: XmlFilter</TT-></DT-><DD-><P->&#13;						If the passed node is of type <TT-CLASS="literal"->XError</TT->, a list with an <TT-CLASS="literal"->XText</TT-> node is returned. This node contains the error message. Otherwise an empty list is returned.-						</P-></DD-></DL-></DIV-><P-></P-><DIV-CLASS="variablelist"-><P-><B->Substitution filters</B-></P-><DL-><DT-><TT-CLASS="function"->replaceTagName :: TagName -&#62; XmlFilter</TT-></DT-><DD-><P->&#13;						Constructed filter replaces the name of an <TT-CLASS="literal"->XTag</TT-> or <TT-CLASS="literal"->XPi</TT-> node by the <TT-CLASS="literal"->TagName</TT-> and returns a list with the modified node.-						</P-></DD-><DT-><TT-CLASS="function"->replaceAttrl :: TagAttrl -&#62; XmlFilter</TT-></DT-><DD-><P->&#13;						 Constructed filter replaces the attribute list of an <TT-CLASS="literal"->XTag</TT->, <TT-CLASS="literal"->XDTD</TT-> or <TT-CLASS="literal"->XPi</TT-> node by the <TT-CLASS="literal"->TagAttrl</TT-> and returns a list with the modified node.-						</P-></DD-><DT-><TT-CLASS="function"->modifyTagName :: (TagName -&#62; TagName) -&#62; XmlFilter</TT-></DT-><DD-><P->&#13;						 Constructed filter modifies the name of an <TT-CLASS="literal"->&#13;						 XTag</TT-> or <TT-CLASS="literal"->XPi</TT-> node by applying the function <TT-CLASS="function"->(TagName -&#62; TagName)</TT-> to the name. The filter returns a list with the modified node.-						</P-></DD-><DT-><TT-CLASS="function"->modifyAttrl	:: (TagAttrl -&#62; TagAttrl) -&#62; XmlFilter</TT-></DT-><DD-><P->&#13;						Constructed filter modifies the attribute list of an <TT-CLASS="literal"->XTag</TT->, <TT-CLASS="literal"->XDTD</TT-> or <TT-CLASS="literal"->XPi</TT-> node by applying the function <TT-CLASS="function"->(TagAttrl -&#62; TagAttrl)</TT-> to the attribute list. The filter returns a list with the modified node.-						</P-></DD-><DT-><TT-CLASS="function"->modifyAttr :: AttrName -&#62; AttrValue -&#62; XmlFilter</TT-></DT-><DD-><P->&#13;						Constructed filter changes the attribute value of the attribute which name equals <TT-CLASS="literal"->AttrName</TT-> to <TT-CLASS="literal"->AttrValue</TT-> and returns a list with the modified node.-						</P-></DD-></DL-></DIV-></DIV-></DIV-><DIV-CLASS="NAVFOOTER"-><HR-ALIGN="LEFT"-WIDTH="100%"><TABLE-SUMMARY="Footer navigation table"-WIDTH="100%"-BORDER="0"-CELLPADDING="0"-CELLSPACING="0"-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"-><A-HREF="x558.html"-ACCESSKEY="P"->Prev</A-></TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="index.html"-ACCESSKEY="H"->Home</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"-><A-HREF="x1178.html"-ACCESSKEY="N"->Next</A-></TD-></TR-><TR-><TD-WIDTH="33%"-ALIGN="left"-VALIGN="top"->Data structures</TD-><TD-WIDTH="34%"-ALIGN="center"-VALIGN="top"-><A-HREF="c468.html"-ACCESSKEY="U"->Up</A-></TD-><TD-WIDTH="33%"-ALIGN="right"-VALIGN="top"->Filter combinators</TD-></TR-></TABLE-></DIV-></BODY-></HTML->
− doc/hxpath/diplomarbeit.pdf

binary file changed (362785 → absent bytes)

− doc/index.html
@@ -1,646 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">-<html>-  <head>-    <title>Haskell XML Toolbox 8.3.2</title>-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">-  </head>--  <body style="background-color: #ffffff;">-    <h1>Haskell XML Toolbox 8.3.2</h1>--    <h3>Contents</h3>-    <ul>-      <li><a href="#intro">Introduction</a></li>-      <li><a href="#descr">Description</a></li>-      <li><a href="#docu">Documentation</a></li>-      <li><a href="#req">Requirements</a></li>-      <li><a href="#down">Download</a></li>-      <li><a href="#install">Installation</a></li>-      <li><a href="#change">Change history</a></li>-      <li><a href="#limit">Known problems and limitations</a></li>-      <li><a href="#port">Portability</a></li>-      <li><a href="#filter">HXT with Filters</a>-      <li><a href="#rel">Related Work</a></li>-      <li><a href="#feed">Feedback</a></li>-    </ul>--    <hr>--    <a name="intro"></a>-    <h3>Introduction</h3>-    <p>-      The <i>Haskell XML Toolbox</i> is a collection of tools for-      processing XML with-      <a href="http://www.haskell.org">Haskell</a>.-      It is purely written in Haskell.-      The <i>Haskell XML Toolbox</i> is a project of the-      <a href="http://www.fh-wedel.de">University of Applied Sciences Wedel</a>,-    </p>--    <p>-      The main design goal of the <i>Haskell XML Toolbox</i>-      is the support of various XML standards including-      <a href="http://www.w3.org/TR/REC-xml">Extensible Markup-	Language (XML) 1.0 (Second Edition)</a> with DTD-      processing and Validation,-      <a href="http://www.w3.org/TR/REC-xml-names/">Namespaces in XML-	1.0 (Second Edition)</a>,-      <a href="http://www.w3.org/TR/xpath">XML Path Language-	(XPath)</a>,-      <a href="http://www.w3.org/TR/xslt">XSL Transformations-	(XSLT)</a>,-      <a-	href="http://www.oasis-open.org/committees/relax-ng/spec-20011203.html">RELAX NG Specification</a>,-      as well as HTML/XHTML processing.-    </p>--    <a name="descr"></a>-    <h3>Description</h3>-    <p>-      The <i>Haskell XML Toolbox</i> bases on the ideas of-      <a href="http://www.cs.york.ac.uk/fp/HaXml/">HaXml</a> and-      <a href="http://www.flightlab.com/~joe/hxml/">HXML</a>,-      but introduces a more general and flexible approach for processing XML with-      Haskell.-      The <i>Haskell XML Toolbox</i> uses a generic data model for-      representing XML documents,-      including the DTD subset and the document subset, in Haskell.-      This data model makes it possible to use filter functions-      as a uniform design of XML processing applications.-      The processing filters are implemented as-      <a href="http://www.haskell.org/haskellwiki/Arrow">arrows</a>.-      This is more flexible than the filter approach from HXML and-      HaXml,-      but all filter applications can easily be transformed into-      arrows.-    </p>--    <p>-      Since version 5.2 HXT works with arrows instead of filters.-      The filter part has been separated from this library and is-      available in an extra package (see <a href="#filter">HXT with Filters</a>)-      There is a <em>cookbook</em> for using this arrow interface-      to build (nontrivial) applications. Manuel Ohlendorf-      has developed examples for processing RDF and has documented the-      development in his master thesis: <em>A Cookbook for the Haskell-	XML Toolbox with Examples for Processing RDF Documents</em>-      (the thesis as <a href="cookbook/doc/thesis.pdf">PDF</a>)-    </p>--    <p>Features:</p>-    <ul>-      <li>Unicode and UTF-8, US-ASCII and ISO-Laitin-1 support</li>-      <li>http: and file: protocol support</li>-      <li>http access via proxy</li>-      <li>wellformed document parsing, validation</li>-      <li>namespace support: namespace propagation and checking</li>-      <li>XPath support for selection of document parts</li>-      <li>liberal HTML parser for interpreting any text containing &lt;-	... &gt; as HTML/XML</li>-      <li>liberal and lasy lightweight HTML/XML parser based on-	<a href="http://www-users.cs.york.ac.uk/~ndm/tagsoup/">tagsoup</a></li>-      <li><a href="http://www.relaxng.org/">Relax NG</a> schema-	validator</li>-      <li>integrated <a href="http://www.w3.org/TR/xslt">XSLT</a> transformer</li>-      <li>easy conversion between user defined data structures and XML-	by the use of pickler functions</li>-    </ul>--    <a name="docu"></a>-    <h3>Documentation</h3>--    <p>-      The <em><a href="./hdoc/index.html">HXT API Documentation</a></em> generated-      with <a href="http://www.haskell.org/haddock/">Haddock</a>.-    </p>--    <p>-      A (somewhat) gentle introduction to HXT is avalable in the-      <a href="http://www.haskell.org/haskellwiki/HXT">Haskell-	Wiki</a>.-      There's also a page about-      <a href="http://www.haskell.org/haskellwiki/HXT/Conversion_of_Haskell_data_from/to_XML">HXT: Conversion of Haskell data from/to XML</a> with picklers.-    </p>--    <p>-      The XSLT transformer has been developed by Tim Walkenhorst in-      this master thesis: <em><a href="xslt/thesis.pdf">Implementing an XSLT-	  processor for the Haskell XML Toolbox</a></em>. It's a-      rather complete implementation, but it's of course not a-      substitute for Xalan or other advanced XSLT systems. The XSLT-      module consists of less than 2000 lines of code. Compared with-      the more than 300,000 lines of Java for Xalan, this Haskell code-      can be viewed as one of the first formal specifications for XSLT.-    </p>--    <p>-      Manuel Ohlendorfs master thesis, describing the arrow interface-      of the toolbox: <em>A Cookbook for the Haskell-	XML Toolbox with Examples for Processing RDF Documents</em>-      (the thesis as <a href="cookbook/doc/thesis.pdf">PDF</a>).-      The source code of the example application is included in the-      <tt>doc/cookbook</tt> directory of the distribution.-    </p>--    <p>-      The master's thesis-      <i>"Design and Implementation of a validating XML parser in-	Haskell"</i>-      by Martin Schmidt describes the design and motivation of the-      <i>Haskell XML Toolbox</i>-      (the thesis as <a href="thesis/index.html">HTML</a>-      or <a href="thesis.pdf">PDF</a>) and the development of the DTD-      validator module.-      The documentation in the thesis is a bit out of date, the modules-      and module names and some function names have been changed. For details the online-      haddock documentation should be used.-    </p>--    <p>-      The description of the development of the <a href="http://www.w3.org/TR/xpath">XPath</a> modules-      is described (in german) in <em>Konzeption und Implementierung-	eines XPath-Moduls f&uuml;r die Haskell XML Toolbox</em>-      (<a href="./hxpath/diplomarbeit.pdf">PDF-document</a>).-    </p>--    <p>-      The description of the internals of the <a href="http://www.relaxng.org/">Relax NG</a> validator-      modules is described (in german) in <em>Design und Entwicklung-	eines <a href="http://www.relaxng.org/">Relax NG</a> Schema Validators auf Basis der Haskell XML-	Toolbox</em> (<a href="./relaxng/thesis.pdf">PDF-document</a>).-    </p>--    <a name="req"></a>-    <h3>Requirements</h3>-    <ul>-      <li>ghc-6.10 with cabal 1.6</li>-      <li><a href="http://hackage.haskell.org/cgi-bin/hackage-scripts/package/curl">curl package >= 1.3</a></li>-      <li><a href="http://hackage.haskell.org/cgi-bin/hackage-scripts/package/tagsoup">tagsoup package >= 0.6</a></li>-    </ul>-    <p>-      It is recommended to install the versions available from-      <a href="http://hackage.haskell.org/packages/hackage.html">Hackage</a>.-    </p>--    <a name="down"></a>-    <h3>Downloads</h3>-    <p>-      <a href="hxt-8.3.2.tar.gz">Haskell XML Toolbox 8.3.2</a>,-      released 2009-10-29:-    </p>-    <ul>-      <li>This version works with ghc 6.10 with cabal 1.6.-	For ghc 6.8 and cabal &amp; 1.6 please use HXT 8.1.1.</li>-      <li>This version does not contain the filter part of hxt any-	more.-	That functionality is separated into a package <a-	  href="#filter">hxt-filter</a>.-      </li>-      <li>Includes sources for building a ghc package-	<code>hxt</code> with Cabal or make.-	This package contains a Haskell DOM, an XML parser, a HTML parser based on parsec,-	a lightweight HTML/XML parser based on tagsoup, a-	DTD validator,  namespace processing functions, a Relax-	NG validator, an XPath expression evaluator, an XSLT transformer,-	and serialization/deserialisation of data to/from XML.-      </li>-      <li>HTTP access is done via the <a href="http://hackage.haskell.org/cgi-bin/hackage-scripts/package/curl">curl binding</a>.-      </li>-      <li>Includes various examples, e.g. in example dir-	<tt>examples/arrows/hparser/</tt>-	a validating parser, which can be used as a starting point for-	a HXT command line application.-      </li>-      <li>Includes an <a href="http://www.haskell.org/arrows/">arrow interface</a> with type classes and-	overloading for a more flexible use of the filter technique.-      </li>-    </ul>-    <p>-      A darcs repository is available under <a href="http://darcs2.fh-wedel.de/repos/hxt/">http://darcs2.fh-wedel.de/repos/hxt</a>,-      the web interface is <a href="http://darcs2.fh-wedel.de/cgi-bin/darcsweb.cgi">http://darcs2.fh-wedel.de/cgi-bin/darcsweb.cgi</a>.-    </p>-    <a name="install"></a>-    <h3>Installation</h3>-      -    <p>-      Before installing this version, install the curl and tagsoup modules.-      For a quick install with Cabal execute the following commands in-      <tt>.../HXT-8.3.2</tt>-    </p>-    <pre>-    cabal configure-    cabal build-    sudo cabal install --global-    </pre>-    <p>-      A quick test of the example programs:-    </p>-    <pre>-    cd examples-    make all-    make test-    </pre>-    <p>-      Installation without Cabal with GNU make:-    </p>-    <pre>-    make all-    make install               # with root privileges-    </pre>--    <a name="change"></a>-    <h3>Change History</h3>-    <ul>-      <li>In <a href="hxt-8.3.2.tar.gz">Version 8.3.2</a>-	This is a bug fix release.-	<ul>-	  <li>-	    New output option <tt>a_output_xhtml</tt>for writing XHTML.-	  </li>-	  <li>-	    New output option <tt>a_no_empty_elem_for</tt> for precise-	    control, which empty elements shall not be emitted in-	    short form <tt>&lt;name .../&gt;</tt>.-	  </li>-	  <li>New output option <tt>a_add_default_dtd</tt> for easy-	    adding a Document Type Declaration.-	  </li>-	  <li>-	    <tt>writeDocumentToString</tt> changed, such that it is a pure-	    arrow and does not need to run in the IO monad.-	  </li>-	  <li>-	    Dealing with URIs containing unescaped chars changed.-	    When URIs can't be parsed (with Network.URI), then the-	    not allowed chars will be escaped in %XX format and-	    URI parsing is retried. This enables normal file names to contain blanks and-	    other chars without explicit escaping.-	  </li>-	</ul>-      </li>-      <li>In <a href="hxt-8.3.1.tar.gz">Version 8.3.1</a>-	<ul>-	  <li> Additional input option "a_accept_mimetypes" for setting a list of allowed-	    mime types when using readDocument.-	  </li>-	</ul>-      </li>-      <li>In <a href="hxt-8.3.1.tar.gz">Version 8.3.1</a>-	This is only a bug fix release.-	<ul>-	  <li>-	    Interface and option handling for libcurl reworked.-	    New input option "a_no_redirect" for preventing autmatic-	    redirect added.-	  </li>-	  <li>-	    Encoding of none XML/HTML text data done with the same-	    encoding routines as for XML/HTML. This enables easy processing-	    of other text documents.-	  </li>-	</ul>-      </li>-      <li>In <a href="hxt-8.3.0.tar.gz">Version 8.3.0</a>-	<ul>-	  <li>-	    New output option "a_no_empty_elements" for preventing-	    the XML short format "&lt;name/&gt;" for HTML elements,-	    like "script", "p", and others. Especially a script tag-	    of the form "&lt;script href="..."/&gt;" does not work in-	    firefox.-	    Turning on this option gives the form "&lt;script href="..."&gt;&lt;/script&gt;".-	  </li>-	  <li>-	    An input option "a_strict_input" for bytestring input of-	    files added. Lazy input, especially when using the tagsoup-	    parser, can lead to error messages like "too many open-	    files" when processing a whole bunsh of documents.-	  </li>-	  <li>Internal representation of qualified names changed to gain-	    more space efficency.-	  </li>-	</ul>-      </li>-      <li>In <a href="hxt-8.2.0.tar.gz">Version 8.2.0</a>-	<ul>-	  <li>-	    Modifications to work with ghc-6.10.-	  </li>-	  <li>-	    A new module <tt>Data.Atom</tt> for dealing with names like LISP atoms-	    and for sharing the memory for these values. When using names as keys-	    in tables, trees or maps, it becomes much more efficient to represent these-	    names as atoms than as strings. Equality check on atoms is constant in time and really fast, and all occurences-	    of an atom share the same internal value.-	  </li>-	  <li>-	    Implementation of <tt>strictA</tt> changed. <tt>strictA</tt> is marked deprecated.-	    The implementation is not longer done with a <tt>DeepSeq</tt> function but with-	    <tt>Control.Parallel.Strategies</tt>, the <tt>NFData</tt> class and <tt>rnf</tt>.-	    There is a new combinator <tt>rnfA</tt> for complete <em>deep</em> evaluation of an-	    arrow result.-	  </li>-	  <li>-	    Further functions for working with <a href="http://www.w3.org/TR/xmlschema11-2/#regexs">W3C XML Schema Regular expressions</a>-	    in module Text.XML.HXT.RelaxNG.XmlSchema.RegexMatch,-	    especially for tokenizing and sed like editing of text.-	  </li>-	</ul>-      </li>-      <li>In <a href="hxt-8.1.1.tar.gz">Version 8.1.1</a>-	<ul>-	  <li>-	    New functions for working with <a href="http://www.w3.org/TR/xmlschema11-2/#regexs">W3C XML Schema Regular expressions</a>-	    in module Text.XML.HXT.RelaxNG.XmlSchema.RegexMatch.-	  </li>-	  <li>-	    Darcs server has changed, new server is <tt><a href="http://darcs2.fh-wedel.de/repos/hxt/">http://darcs2.fh-wedel.de/repos/hxt/</a></tt>.-	  </li>-	</ul>-      </li>-      <li>In <a href="hxt-8.1.0.tar.gz">Version 8.1.0</a>-	<ul>-	  <li>-	    HTTP interface changed to work with libcurl-	    via curl bindings with package <a href="http://hackage.haskell.org/cgi-bin/hackage-scripts/package/curl">curl</a>.-	    So the HTTP package is not longer needed, also the old-	    and somewhat inefficent interface to curl by starting an external process and-	    communicate via a pipe is not longer needed.-	    When installing the curl bindings, be aware that the-	    libcurl development packages including the C header files-	    must be installed. Otherwise the Setup.hs will complain of-	    missing files.-	  </li>-	  <li>-	    New input option for ignoring none XML/HTML contents-	    when reading documents (useful for crawler like applications).-	  </li>-	  <li>-	    Mime type support for the <tt>file:</tt> protocol. Mime type mapping-	    can be controlled by a config file in the format of-	    <tt>/etc/mime.types</tt> on some linux systems.-	  </li-	  <li>-	    A few more picklers for de-serialization from/to XML, e.g. for maps.-	  </li>-	  <li>-	    A new option for ignoring decoding errors when reading XML documents.-	    This may be useful for crawler like applications.-	  </li>-	</ul>-      </li>-      <li>In <a href="hxt-8.0.0.tar.gz">Version 8.0.0</a>-	<ul>-	  <li>-	    Old filter interface separated from the hxt package and moved-	    to an extra package <a href="#filter">hxt-filter</a>.-	  </li>-	  <li>-	    Version numbers added in hxt.cabal for required package versions.-	  </li>-	  <li>-	    DTD validation and XPath modules refactored to work with arrows instead of-	    filters.-	    This is done for separating the old hxt filter library-	    from the actively developed and maintained arrow part.-	  </li>-	</ul>-      </li>-      <li>In <a href="hxt-7.5.tar.gz">Version 7.5</a>-	<ul>-	  <li>-	    A module <tt>Text.XML.HXT.Arrow.XPathSimple</tt> for fast XPath selection for simple XPath queries-	    added. If the XPath query only contains for navigaion the axis from the-	    root down to the leaves, the query is evaluated by computing-	    a simple arrow and applying the arrow. This gives a-	    speedup for queries like <tt>/htm/body//h1/text()</tt> for-	    extraction of the headline text of a HTML document.-	  </li>-	  <li>-	    Option added to control the selection of the parser-	    (XML/HTML) by the mime type of the document.-	  </li>-	  <li>-	    New lasy and lightweight HTML/XML parser based on tagsoup library.-	    Useful especially for converting XML into native Haskell-	    data. (Example in examples/arrows/performance)--	  </li>-	  <li>-	    W3C XML Schema Datatype library for validating with RelaxNG extended.-	    Currently supported Datatypes: Strings, URIs, QNames,-	    binary string-encoded, decimal and all integer datatypes.-	  </li>-	  <li>-	    Regular expression pattern matcher for W3C XML Schema datatype patterns.-	  <li>-	  <li>New arrow combinator 'mergeA' in Control.Arrow.ArrowList-	    for combining the components of a tuple, resulting from-	    applying arrows constructed with (&&&), (***) and similar combinators.-	  </li>-	</ul>-      </li>-      <li>In <a href="hxt-7.4.tar.gz">Version 7.4</a>-	<ul>-	  <li>Configuration changes for ghc-6.8</li>-	  <li>Error in DTD validation algorithm resulting in exponential-	    growth of runtime during validating mixed content elements removed.-	  </li>-	</ul>-      </li>-      <li>In <a href="hxt-7.3.tar.gz">Version 7.3</a>-	<ul>-	  <li>Module <tt>Text.XML.HXT.Pickle</tt> for conversion between user-	    defined data types and the HXT DOM structure extendet.-	    The picklers are extended, such that a DTD can be derived-	    from a pickler and can be checked for consistency.-	    See Haddock doc (<tt>Text.XML.HXT.Pickle</tt>)-	    and example directory-	    <tt>examples/arrows/pickle</tt> for examples.-	  </li>-	</ul>-      </li>-      <li>In <a href="HXT-7.2.tar.gz">Version 7.2</a>-	<ul>-	  <li>New module Text.XML.HXT.XmlPickler for conversion between user-	    defined data types and the HXT DOM structure. This enables-	    the simple persistent storage and retrieval of arbitrary-	    data with XML documents. See example directory-	    <tt>examples/arrows/pickle</tt> for a none trivial example-	    of these picklers. These functions are an adaptation of-	    <a href="http://research.microsoft.com/~akenn/fun/picklercombinators.pdf">Andrew-	      Kennedy's pickler combinators</a>.-	  </li>-	  <li>UTF-8 decoding done with UTF8 module from-	    <a href="http://www.abridgegame.org/darcs/">darcs</a>.-	    Decoding errors are detected and issued.-	    US-ASCII decoding also checks encoding errors.-	  </li>-	  <li>-	    ISO-8859-X (X=2..11,13..16) deccoding of input documents implemented-	  </li>-	  <li>-	    Some bug fixes.-	  </li>-	</ul>-      </li>-      <li>In <a href="HXT-7.1.tar.gz">Version 7.1</a>-	<ul>-	  <li>Version control changed from CVS to darcs.-	    darcs repository is available under-	    <tt><a href="http://darcs2.fh-wedel.de/repos/hxt/">http://darcs2.fh-wedel.de/repos/hxt/</a></tt>.-	  </li>-	  <li><tt>deepSeq</tt> and <tt>strict</tt> added for <tt>XmlTree</tt>-	    and an arrow <tt>strictA</tt> for forcing the evaluation of a whole-	    XML tree. This sometimes saves space when applied after document input,-	    DTD processing and validation.-	  </li>-	  <li>Typeable instances added for all DOM data types.</li>-	  <li>HTTP access via curl extended to handle automatic redirects</li>-	</ul>-      </li>-      <li>In <a href="HXT-7.0.tar.gz">Version 7.0</a>-	<ul>-	  <li>New integrated XSLT transformer module. The example-	    parser (<tt>examples/arrows/hparser</tt>) is extended to act as an XSLT transformer.-	  </li>-	  <li>Errors concerning HTML parsing and implict closing of-	    elements have been fixed.-	  </li>-	  <li>Some minor changes of and additions to the arrow API.-	  </li>-	  <li>New functions <tt>readString</tt> and-	    <tt>readFromString</tt> for reading documents from Haskell-	    strings the same way as reading external documents with <tt>readDocument</tt>.-	  </li>-	</ul>-      </li>-      <li>In <a href="HXT-6.1.tar.gz">Version 6.1</a>-	<ul>-	  <li>HXT 6.1. contains only changes in the cabal installation process for-	    working with the <a href="http://www.haskell.org/http/">Haskell HTTP module</a> in tar archive http-20060707.tgz.-	    This module no longer depends on <a href="http://www.haskell.org/crypto/">The Haskell Cryptographic Library</a>,-	    and <a href="http://www.n-heptane.com/nhlab/">NewBinary package</a>.-	  </li>-	</ul>-      </li>-      <li>In <a href="HXT-6.0.tar.gz">Version 6.0</a>-	<ul>-	  <li>The arrow interface has changed slightly, especially the handling of user defined states in the state and IO arrows has been simplified.-	    This is the main reason for a 6.0 version.-	  </li>-	  <li>The XPath arrows have been extended.-	    There are arrows not only for selecting nodes via an XPath expression, but also-	    for processing and modifying all nodes selected-	    by an XPath expressions (see module Text.XML.HXT.Arrow.XmlNodeSet).-	  </li>-	  <li>Separation of the API documentation into two documents, one for the-	    old <a href="./hdoc-filter/index.html">Filter API</a>-	    and a separate one for the <a href="./hdoc_arrow/index.html">Arrow API</a>.-	    The <a href="./hdoc/index.htm">complete API documentation</a> is still available.-	  </li>-	  <li>DTD processing for the arrow part is done completely by arrow based routines.-	  </li>-	  <li>Cabal config file and dependencies change to work with ghc 6.4.2.-	</ul>-      </li>-    </ul>--    -    <a name="limit"></a>-    <h3>Known problems and limitations</h3>-    <p>-      The parser has been tested with the XML Validation Suite form the-      W3C. The following problems have been encountered:-    </p>-    <ul>-      <li>Line numbers in XML parser do not always point to the-	correct position of the syntax error.</li>-      <li>Line numbers are not yet reported for validation constraint-	errors.-      </li>-      <li>The standalone document check is not yet implemented.</li>-      <li>The XSLT module does not support the complete XSLT standard.</li>-    </ul>--    <a name="port"></a>-    <h3>Portability</h3>-    <p>-      Portability to Windows based systems has not been tested very-      intensively, but did work on an XP system with the Cygwin tools installed.-      Development was done under Linux with GHC 6.10 with the -Wall-      flag. No warnings were issued, when compiling the toolbox sources.-    </p>--    <a name="filter"></a>-    <h3>HXT with Filters</h3>-    <p>-      For older applications using the filter functionality,-      there is an extra package <a href="hxt-filter-8.2.0.tar.gz">hxt-filter</a>.-      This package must be installed on top of hxt.-      The filter package will not be actively developed any more.-      Please move to the arrow version for long term projects.-      Installation works with cabal in the usual way.-      Download archive is <a href="hxt-filter-8.3.0.tar.gz">hxt-filter-8.3.0.tar.gz</a>,-      <em><a href="./hdoc-filter/index.html">HXT Filter API Documentation</a></em>-      with source links is availabe as well as a-      darcs repository under <a href="http://darcs2.fh-wedel.de/repos/hxt-filter/">http://darcs2.fh-wedel.de/repos/hxt-filter</a>.-    </p>--    <a name="rel"></a>-    <h3>Related work</h3>--    <ul>-      <li>Malcolm Wallace and Colin Runciman wrote-	<a href="http://www.cs.york.ac.uk/fp/HaXml/">HaXml</a>,-	a collection of utilities for using Haskell and XML together.-	The <i>Haskell XML Toolbox</i> is based on their idea-	of using filter combinators for processing XML with Haskell.-      </li>-      <li>Joe English wrote-	<a href="http://www.flightlab.com/~joe/hxml/">HXML</a>-	- a non-validating XML parser in Haskell.-	His-	<a href="http://www.flightlab.com/~joe/sgml/validate.html">idea</a>-	of validating XML by using derivatives of regular expressions-	was-	implemented in the validation functions of this software.-	Also his ideas and sources for navigateble trees are used-	in the hxpath modules.-      </li>-    </ul>--    <a name="feed"></a>-    <h3>Feedback</h3>--    <p>-      We are interested in hearing your feedback-      on our <i>Haskell XML Toolbox</i>, suggestions-      for improvements, comments and criticisms.<br>-    </p>-    <p>-      Mail address is-      <a-	 href="mailto:hxmltoolbox@fh-wedel.de?subject=Haskell%20XML%20Toolbox%20Feedback">hxmltoolbox@fh-wedel.de</a>-    </p>--    <hr>--    <table width="100%">-	<tr>-	  <td>-	    The <i>Haskell XML Toolbox</i>-	    is distributed under the-	    <a href="http://www.opensource.org/licenses/mit-license.php"><b>MIT License</b></a>.-	  </td>-	  <td align="right">-	    <a href="http://validator.w3.org/check/referer">-	      <img border="0" src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!" height="31" width="88">-	    </a>-	  </td>-	</tr>-	<tr><td><i>Last modified: 2009-10-29</i></td><td>&nbsp;</td></tr>-    </table>--  </body>-</html>
− doc/relaxng/thesis.pdf

binary file changed (1264838 → absent bytes)

− doc/thesis.pdf

binary file changed (224575 → absent bytes)

− doc/xslt/thesis.pdf

binary file changed (589129 → absent bytes)

− examples/Makefile
@@ -1,45 +0,0 @@-# $Id: Makefile,v 1.15 2006/11/12 14:52:59 hxml Exp $-#-# Example Applications-#--include ../Version.mk--HXT_HOME	= ..--EXAMPLES	= arrows-MORE_SAMPLES	= -DIST		= ../$(DIST_NAME)-DIST_DIR	= $(DIST)/examples--all		:-		if [ -f $(HXT_HOME)/lib/hxt/package.conf ] ; \-		then $(MAKE) alllocal ; \-		else $(MAKE) alldist ; \-		fi --alllocal		:-		$(foreach i,$(EXAMPLES),$(MAKE) -C $i PKGFLAGS="-package-conf `pwd`/$(HXT_HOME)/lib/hxt/package.conf -package hxt-$(VERSION)" all ;)-alldist		:-		$(foreach i,$(EXAMPLES),$(MAKE) -C $i all ;)--test		:-		$(foreach i,$(EXAMPLES),$(MAKE) -C $i $@ ;)--dist		:-		[ -d $(DIST_DIR) ] || mkdir -p $(DIST_DIR)-		$(foreach i,$(EXAMPLES),$(MAKE) -C $i dist DIST=../$(DIST_DIR);)-		[ -d $(DIST_DIR)/xhtml ] || mkdir -p $(DIST_DIR)/xhtml-		cp xhtml/xhtml*.dtd xhtml/xhtml*.ent xhtml/xhtml*.xml $(DIST_DIR)/xhtml-		cp Makefile $(DIST_DIR)--clean		:-		$(foreach i,$(EXAMPLES),$(MAKE) -C $i $@ ;)--# under construction--hxslt/runXslt	: hxslt/runXslt.hs-		$(GHC) --make -o $@ $<--.PHONY		: all alllocal alldist test dist clean-
+ examples/arrows/AGentleIntroductionToHXT/.ghci view
@@ -0,0 +1,3 @@+:set -i../../../src+:set -Wall -fglasgow-exts+:load SimpleExamples
+ examples/arrows/HelloWorld/bye.xml view
@@ -0,0 +1,4 @@+<?xml version="1.0" encoding="UTF-8"?>+<hello>+  Hello World!+</hello>
− examples/arrows/Makefile
@@ -1,34 +0,0 @@-# $Id: Makefile,v 1.9 2006/11/12 14:52:59 hxml Exp $-#-# Example Applications-#--EXAMPLES	= \-		HelloWorld hparser hunit hxpath dtd2hxt absurls \-		pickle \-		hrelaxng \-		RelaxTestSuite \-		AGentleIntroductionToHXT \-		performance RegexXMLSchema--HXT_HOME	= ../..-PKGFLAGS	=-DIST		= $(HXT_HOME)/dist/examples-DIST_DIR	= $(DIST)/arrows--all		:-		$(foreach i,$(EXAMPLES),$(MAKE) -C $i PKGFLAGS="$(PKGFLAGS)" $@ ;)--test		:-		$(foreach i,$(EXAMPLES),$(MAKE) -C $i $@ ;)--dist		:-		[ -d $(DIST_DIR) ] || mkdir -p $(DIST_DIR)-		$(foreach i,$(EXAMPLES),$(MAKE) -C $i dist DIST=../$(DIST_DIR) ;)-		cp Makefile $(DIST_DIR)--clean		:-		$(foreach i,$(EXAMPLES),$(MAKE) -C $i $@ ;)--.PHONY		: all clean test dist-
examples/arrows/RegexXMLSchema/REtest.hs view
@@ -14,7 +14,6 @@  import Control.Monad.State.Strict hiding (when) -import Data.List import Data.Maybe  import System.IO			-- import the IO and commandline option stuff@@ -47,9 +46,8 @@  main1	:: Int -> IO () main1 i-    = do-      runX (genDoc i (fn i))-      return ()+    = runX (genDoc i (fn i))+      >> return ()  -- ---------------------------------------- @@ -59,10 +57,10 @@ main2 ext lines' i     = do       hPutStrLn stderr "start processing"-      h  <- openFile (fn i) ReadMode+      h  <- openBinaryFile (fn i) ReadMode       c  <- hGetContents h       let ls = lines' c-      o  <- openFile (fn i ++ "." ++ ext) WriteMode+      o  <- openBinaryFile (fn i ++ "." ++ ext) WriteMode       mapM_ (hPutStrLn o) ls       hClose o       hClose h@@ -165,7 +163,7 @@ 	      = action stdout 	  | otherwise 	      = do-		handle <- openFile dst WriteMode+		handle <- openBinaryFile dst WriteMode 		action handle 		hClose handle 
− examples/arrows/RelaxTestSuite/Makefile
@@ -1,52 +0,0 @@-# $Id: Makefile,v 1.2 2005/09/30 14:41:44 hxml Exp $--HXT_HOME	= ../../..-PKGFLAGS	= -GHCFLAGS	= -Wall -O2-GHC		= ghc $(GHCFLAGS) $(PKGFLAGS)--DIST		= $(HXT_HOME)/dist/examples/arrows-DIST_DIR	= $(DIST)/RelaxTestSuite--prog		= ./RunTestCases-modules		= RunTestCases.hs ReadDir.hs TestCases.hs--all		: $(prog)--prof		:-		ghc --make -o $(prog) -Wall -prof -auto-all -O -fglasgow-exts -ignore-package hxt -ignore-package HTTP -i../../../src $(prog).hs--local		:-		ghc --make -o $(prog) $(GHCFLAGS) -fglasgow-exts -ignore-package hxt -i../../../src $(prog).hs--$(prog)		: $(modules)-		$(GHC) --make -o $@ $@.hs--force		:-		$(GHC) --make -o $(prog) $(prog).hs--testarchive	= RelaxTestCases.tgz--test		: test1 test2--test1		: testCases-		$(prog) $(shell pwd)/testCases--test2		:-		$(prog) $(shell pwd)/w3cSchemaDataTypes--testCases	: $(testarchive)-		tar xvzf $(testarchive)-		touch testCases--dist		:-		[ -d $(DIST_DIR) ] || mkdir -p $(DIST_DIR)-		cp Makefile $(modules) $(testarchive) $(DIST_DIR)-		find w3cSchemaDataTypes '(' -name '*.xml' -or -name '*.rng' ')' -print | xargs tar cvf - | \-			( cd $(DIST_DIR) ; tar xf - ; )-clean		:-		rm -f $(prog) *.o *.hi--.PHONY		: all prof local force test test1 test2 dist clean--# eof ------------------------------------------------------------
− examples/arrows/RelaxTestSuite/ReadDir.hs
@@ -1,79 +0,0 @@-{- |-   Read a complete directory hierarchy and return it as a tree.-   Copied and modified from Peter Simons (<http://cryp.to/>).--   $Id: ReadDir.hs,v 1.1 2005/09/02 17:09:38 hxml Exp $-   --}--module ReadDir-    ( Entry(..)-    , readDir-    )--where--import System.Directory-  ( getDirectoryContents-  , doesDirectoryExist-  )-import Data.List-  ( find-  , sort-  , isSuffixOf-  )-import Maybe-  ( fromMaybe )---data Entry = Dir [Entry] -- ^ Directory with a list of subdirectories and files-           | DirContent FilePath [FilePath] -- ^ Relax NG schema and list of XML documents-     deriving Show----- ---------------------------------------------------------------- |--- Read the complete directory hierarchy starting at the FilePath given by the first --- parameter and return a tree representing it. Directories contain their--- sub-entries in alphabetic order.------ Each 'DirContent' represents a Relax NG schema and all XML Documents--- in the directory.------ The function may throw exceptions when IO fails.--readDir :: FilePath -> FilePath -> IO Entry-readDir pre p-  = do -    dir     <- getDirectoryContents $ pre ++ "/" ++ p-    entries <- getEntries $ sort $ clean [".", "..", "CVS"] dir-    return $ Dir entries-  where-  getEntries :: [FilePath] -> IO [Entry]-  getEntries xs-    = do-      dirs     <- mapM toEntryDir xs-      files    <- mapM toEntryFiles xs-      xmlfiles <- return $ [ f | f <- files, ".xml" `isSuffixOf` f]-      rngfile  <- return $ fromMaybe "" $ find (".rng" `isSuffixOf`) files-      return $ if rngfile /= ""-              then (DirContent rngfile xmlfiles):dirs-              else dirs-  -  toEntryDir :: FilePath -> IO Entry-  toEntryDir x = do-              isDir <- doesDirectoryExist $ path ++ "/" ++ x-              if isDir then readDir path x else return $ Dir []-              where path = pre ++ "/" ++ p              -  -  toEntryFiles :: FilePath -> IO FilePath-  toEntryFiles x = do-                  isDir <- doesDirectoryExist path-                  return $ if isDir then "" else path -              where path = pre ++ p ++ "/" ++ x              -  -  clean :: [String] -> [FilePath] -> [FilePath]-  clean ver xs = [ x | x <- xs, not $ elem x ver]---- ------------------------------------------------------------
− examples/arrows/RelaxTestSuite/RelaxTestCases.tgz

binary file changed (25970 → absent bytes)

− examples/arrows/RelaxTestSuite/RunTestCases.hs
@@ -1,25 +0,0 @@--- |--- Simple example program to run the Relax NG testsuite.--- The program argument must be the absolute!!! path to the directory--- containing the testcases.------ $Id: RunTestCases.hs,v 1.1 2005/09/02 17:09:38 hxml Exp $--module Main-where--import TestCases--import System.Environment---- --------------------------------------------------------------main :: IO ()-main = do-       argv <- getArgs-       res  <- runTest $ if length argv > 0 -                         then head argv-                         else "./testCases"-       putStrLn $ show res---- ------------------------------------------------------------
− examples/arrows/RelaxTestSuite/TestCases.hs
@@ -1,87 +0,0 @@--- |--- run the Relax NG Testsuite created be James Clark (<http://www.relaxng.org/#test-suites>)--- --- $Id: TestCases.hs,v 1.2 2005/09/30 14:41:44 hxml Exp $--module TestCases-  ( runTest )-where--import Text.XML.HXT.RelaxNG.Validator-import Text.XML.HXT.RelaxNG.Schema-import Text.XML.HXT.Arrow -import Text.XML.HXT.DOM.FormatXmlTree--import Test.HUnit-import Data.List -  ( isSuffixOf )--import ReadDir---- --------------------------------------------------------------{- | run the Relax NG Testsuite--   * 1.parameter  :  Directory containing the testcases-   -   - return  : HUnit statistics-   -example test program:--> main :: IO ()-> main = do->        res <- runTest "./testCases"->        putStrLn $ show res---}  --runTest :: FilePath ->  IO Counts-runTest filePath-    = do-      dir     <- readDir filePath ""-      runTestTT $ TestList $ generateTestCases [] [dir] relaxSchemaTree---generateTestCases :: Attributes -> [Entry] -> XmlTree -> [Test]--generateTestCases _  [] _-    = []--generateTestCases _  [ DirContent "" _ ] _-    = []--generateTestCases al [ DirContent rngFile [] ] spezi-    = [generateTestCase al rngFile "" spezi]--generateTestCases al [ DirContent rngFile xmlFiles ] spezi-    = map (\x -> generateTestCase al rngFile x spezi) xmlFiles--generateTestCases al [ Dir xs ] spezi-    = generateTestCases al xs spezi--generateTestCases al (x:xs) spezi-    = generateTestCases al [x] spezi ++ generateTestCases al xs spezi-- -generateTestCase :: Attributes -> FilePath -> FilePath -> XmlTree -> Test-generateTestCase al rngFile xmlFile spezi-  = TestLabel formatLabel $ -    TestCase $  -    do-    res <- runX $ constA spezi -                  >>> -                  validateWithSpezification al xmlFile rngFile-    assertBool (formatOutput res) -               ( if ("i.rng" `isSuffixOf` rngFile) -                 then not (null res)					-- the result of an incorrect schema must not be an empty list of errors-		 else ("i.xml" `isSuffixOf` xmlFile) == not (null res)-									-- correct schema, but incorrect document:-									-- the result of in incorrect xml document-									-- must not be an empty list of errors-               )-    where-    formatLabel  = "Schema=" ++ rngFile ++ -                   (if xmlFile /= "" then ", instanz=" ++ xmlFile else "")-    formatOutput = concat . map formatXmlTree---- ------------------------------------------------------------
− examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/1.i.xml
@@ -1,2 +0,0 @@-<!-- string too short -->-<foo string2-4="1"/>
− examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/1.v.xml
@@ -1,1 +0,0 @@-<foo string2-4="xxx" id4="x123"/>
− examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/10.i.xml
@@ -1,3 +0,0 @@-<!-- NMTOKENS, but not 3 elems -->-<foo NMTOKENS=" abc  def  ghi jkl "/>- 
− examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/10.v.xml
@@ -1,5 +0,0 @@-<foo NMTOKENS=" abc-  def-  ghi- "/>- 
− examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/11.v.xml
@@ -1,6 +0,0 @@-<foo NMTOKENS="-  abc-  1-2-3-  2008- "/>- 
− examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/12.i.xml
@@ -1,4 +0,0 @@-<foo Name="-  123- "/>- 
− examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/12.v.xml
@@ -1,4 +0,0 @@-<foo Name="-  Abc- "/>- 
− examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/13.v.xml
@@ -1,4 +0,0 @@-<foo Name="-  Abc:def- "/>- 
− examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/14.v.xml
@@ -1,4 +0,0 @@-<foo Name="-  :def- "/>- 
− examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/15.i.xml
@@ -1,4 +0,0 @@-<foo NCName="-  :def- "/>- 
− examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/15.v.xml
@@ -1,4 +0,0 @@-<foo NCName="-  def- "/>- 
− examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/16.i.xml
@@ -1,4 +0,0 @@-<foo language="-  xxxxxxxxxx-yy-zz-uu-vv- "/>- 
− examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/16.v.xml
@@ -1,4 +0,0 @@-<foo language="-  xx-yy-zz-uu-vv- "/>- 
− examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/2.i.xml
@@ -1,2 +0,0 @@-<!-- string too long -->-<foo string2-4="12345"/>
− examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/2.v.xml
@@ -1,1 +0,0 @@-<foo id4="i123" string2-4="----"/>
− examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/20.i.xml
@@ -1,2 +0,0 @@-<foo decimalValue="500.00"/>- 
− examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/20.v.xml
@@ -1,2 +0,0 @@-<foo decimalValue="555.55"/>- 
− examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/21.i.xml
@@ -1,2 +0,0 @@-<foo decimalValue="500.00"/>- 
− examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/22.i.xml
@@ -1,2 +0,0 @@-<foo decimalValue="5555.55"/>- 
− examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/25.i.xml
@@ -1,2 +0,0 @@-<foo decimalValue="666.67"/>- 
− examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/3.i.xml
@@ -1,2 +0,0 @@-<!-- id not with length 4 -->-<foo string2-4="xxx" id4="x12"/>
− examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/3.v.xml
@@ -1,1 +0,0 @@-<foo string2-4="xxx"/>
− examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/30.i.xml
@@ -1,1 +0,0 @@-<foo integerValue="500"/>
− examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/30.v.xml
@@ -1,1 +0,0 @@-<foo integerValue="555"/>
− examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/31.i.xml
@@ -1,1 +0,0 @@-<foo integerValue="5555"/>
− examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/32.i.xml
@@ -1,1 +0,0 @@-<foo integerValue="122"/>
− examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/33.i.xml
@@ -1,1 +0,0 @@-<foo integerValue="667"/>
− examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/4.v.xml
@@ -1,1 +0,0 @@-<foo id4="i123"/>
− examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/40.i.xml
@@ -1,2 +0,0 @@-<foo byteValue="-129"/>- 
− examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/40.v.xml
@@ -1,2 +0,0 @@-<foo byteValue="-123"/>- 
− examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/41.i.xml
@@ -1,2 +0,0 @@-<foo byteValue="128"/>- 
− examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/5.v.xml
@@ -1,1 +0,0 @@-<foo string2-4="xxx" id4="x123" token="nnn"/>
− examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/6.i.xml
@@ -1,3 +0,0 @@-<!-- token with 5 chars -->-<foo token5=" x234 "/>- 
− examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/6.v.xml
@@ -1,1 +0,0 @@-<foo token=" nnn mmm "/>
− examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/7.v.xml
@@ -1,3 +0,0 @@-<!-- token with 5 chars -->-<foo token5=" nn mm "/>- 
− examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/8.i.xml
@@ -1,2 +0,0 @@-<foo NMTOKEN="  a b c   "/>- 
− examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/8.v.xml
@@ -1,2 +0,0 @@-<foo NMTOKEN="abc"/>- 
− examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/9.v.xml
@@ -1,2 +0,0 @@-<foo NMTOKEN="  abc   "/>- 
− examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/c.rng
@@ -1,113 +0,0 @@-<grammar-  xmlns="http://relaxng.org/ns/structure/1.0"-  datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">-  <start>-    <ref name="foo"/>-  </start>-  -  <define name="foo">-    <element name="foo">--      <optional>-	<attribute name="string2-4">-	  <data type="string">-	    <param name="minLength">2</param>-	    <param name="maxLength">4</param>-	  </data>-	</attribute>-      </optional>--      <optional>-	<attribute name="id4">-	  <data type="ID">-	    <param name="length">4</param>-	  </data>-	</attribute>-      </optional>-      -      <optional>-	<attribute name="token">-	  <data type="token">-	  </data>-	</attribute>-      </optional>-      -      <optional>-	<attribute name="token5">-	  <data type="token">-	    <param name="length">5</param>-	  </data>-	</attribute>-      </optional>-      -      <optional>-	<attribute name="NMTOKEN">-	  <data type="NMTOKEN">-	  </data>-	</attribute>-      </optional>-      -      <optional>-	<attribute name="NMTOKENS">-	  <data type="NMTOKENS">-	    <param name="length">3</param>-	  </data>-	</attribute>-      </optional>-      -      <optional>-	<attribute name="Name">-	  <data type="Name">-	  </data>-	</attribute>-      </optional>-      -      <optional>-	<attribute name="NCName">-	  <data type="NCName">-	  </data>-	</attribute>-      </optional>-      -      <optional>-	<attribute name="language">-	  <data type="language">-	  </data>-	</attribute>-      </optional>-      -      <optional>-	<attribute name="decimalValue">-	  <data type="decimal">-	    <param name="pattern">[1-9.]*</param>-	    <param name="totalDigits">5</param>-	    <param name="fractionDigits">2</param>-	    <param name="minInclusive">123.45</param>-	    <param name="maxInclusive">666.66</param>-	  </data>-	</attribute>-      </optional>-      -      <optional>-	<attribute name="integerValue">-	  <data type="integer">-	    <param name="pattern">[1-9]*</param>-	    <param name="totalDigits">3</param>-	    <param name="minInclusive">123</param>-	    <param name="maxInclusive">666</param>-	  </data>-	</attribute>-      </optional>-      -      <optional>-	<attribute name="byteValue">-	  <data type="byte">-	  </data>-	</attribute>-      </optional>-      -      <text/>-    </element>-  </define>--</grammar>
examples/arrows/absurls/AbsURIs.hs view
@@ -28,8 +28,6 @@ import System.Console.GetOpt import System.Exit -import Data.Maybe- import ProcessDocument  -- ------------------------------------------------------------
+ examples/arrows/dtd2hxt/.ghci view
@@ -0,0 +1,4 @@+:set -package-conf ../../lib/hxt/package.conf+:set -package hxt+:set -Wall+:load DTDtoHXT
examples/arrows/hparser/HXmlParser.hs view
@@ -2,25 +2,24 @@  {- |    Module     : HXmlParser-   Copyright  : Copyright (C) 2005 Uwe Schmidt+   Copyright  : Copyright (C) 2005-2010 Uwe Schmidt    License    : MIT     Maintainer : Uwe Schmidt    Maintainer : uwe@fh-wedel.de    Stability  : experimental    Portability: portable-   Version    : $Id: HXmlParser.hs,v 1.7 2006/11/09 20:27:41 hxml Exp $ -HXmlParser - Validating XML Parser of the Haskell XML Toolbox+   HXmlParser - Validating XML Parser of the Haskell XML Toolbox -XML well-formed checker and validator.+   XML well-formed checker and validator. -this program may be used as example main program for the-arrow API of the Haskell XML Toolbox+   this program may be used as example main program for the+   arrow API of the Haskell XML Toolbox -commandline parameter evaluation and-and return code is the most complicated part-of this example application+   commandline parameter evaluation and+   and return code is the most complicated part+   of this example application  -} @@ -91,10 +90,6 @@  processDocument	:: Attributes -> IOSArrow XmlTree XmlTree processDocument al-    | applyXSLT-	= traceMsg 1 ("applying XSLT stylesheet " ++ show xsltUri)-	  >>>-	  xsltApplyStylesheetFromURI xsltUri     | extractText 	= traceMsg 1 "selecting plain text" 	  >>>@@ -102,9 +97,7 @@     | otherwise 	= this     where-    applyXSLT	= hasEntry "xslt"	  $ al     extractText	= optionIsSet "show-text" $ al-    xsltUri     = lookup1 "xslt"          $ al  -- ------------------------------------------------------------ --@@ -124,14 +117,11 @@       ++       outputOptions       ++-      [ Option ""	["xslt"]		(ReqArg (att "xslt") "STYLESHEET")	"STYLESHEET is the uri of the XSLT stylesheet to be applied"-      , Option "q"	["no-output"]		(NoArg  ("no-output", "1"))		"no output of resulting document"+      [ Option "q"	["no-output"]		(NoArg  ("no-output", "1"))		"no output of resulting document"       , Option "x"	["show-text"]		(NoArg	("show-text", "1"))		"output only the raw text, remove all markup"       ]       ++       showOptions-    where-    att n v = (n, v)  usage		:: [String] -> IO a usage errl@@ -145,7 +135,7 @@ 	  exitProg True     where     header = "HXmlParser - Validating XML Parser of the Haskell XML Toolbox with Arrow Interface\n" ++-             "XML well-formed checker, DTD validator, Relax NG validator and XSLT transformer.\n\n" +++             "XML well-formed checker, DTD validator, Relax NG validator.\n\n" ++              "Usage: " ++ progName ++ " [OPTION...] [URI or FILE]"     use    = usageInfo header options 
examples/arrows/hparser/Makefile view
@@ -29,7 +29,7 @@ 		@echo "===> first see all command line options" 		$(prog) --help 		@echo-		$(MAKE) test0 test1 test2 test3 test4 test5 xslttest+		$(MAKE) test0 test1 test2 test3 test4 test5  EX1		= ./example1.xml EXi		= ./invalid.xml@@ -150,15 +150,11 @@ 		$(prog) --tagsoup --parse-html --remove-whitespace --show-tree http://www.haskell.org/ 		@echo -xslttest	:-		$(MAKE) -C xslt test- dist		: 		[ -d $(DIST_DIR) ] || mkdir -p $(DIST_DIR) 		cp $(EX) Makefile $(prog).hs $(DIST_DIR)-		$(foreach i,xslt,$(MAKE) -C $i dist DIST=../$(DIST_DIR) ;) - clean		: 		rm -f $(prog) *.o *.hi +.PHONY		: all test test0 test1 test2 test3 test4 test5 test6 dist clean prof local force
− examples/arrows/hparser/xslt/Makefile
@@ -1,65 +0,0 @@-# $Id: Makefile,v 1.1 2006/11/11 15:36:03 hxml Exp $--HXT_HOME	= ../../../..-PKGFLAGS	= -GHCFLAGS	= -Wall -O2-GHC		= ghc $(GHCFLAGS) $(PKGFLAGS)--DIST		= $(HXT_HOME)/dist/examples/arrows/hparser-DIST_DIR	= $(DIST)/xslt--prog		= ../HXmlParser-xslt		= $(prog) --do-not-validate--all		:-		$(MAKE) -C .. all--test		:-		@echo "===> run a few simple xslt test cases with $(prog)"-		$(MAKE) test1-----testcases	= \-		'strip_example.xsl     strip_example.xml' \-		'elems_and_attrs.xsl   example_document.xml' \-		'lre.xsl               example_document.xml' \-		'for_each_when_if.xsl  example_document.xml' \-		'prio.xsl              example_document.xml' \-		'default_rules.xsl     example_document.xml' \-		'vars_and_params.xsl   example_document.xml' \-		'lre_stylesheet.xsl    example_document.xml' \-		'imp_lre.xsl           example_document.xml' \-		'inc_lre.xsl           example_document.xml' \-		'comment_pi.xsl        example_document.xml' \-		'attset.xsl            example_document.xml' \-		'copy_copy_of.xsl      example_document.xml' \-		'sorting.xsl           example_document.xml' \-		'strip_space.xsl       exdoc2.xml' \-		'testEX.xsl            empty.xml' \-		'testNS.xsl            testNS.xml' \-		'default_prio.xsl      example_document2.xml'--test1		:-		for tc in $(testcases) ; \-		do \-			stylesheet=$$(echo $$tc | cut -d ' ' -f 1) ; \-			input=$$(echo $$tc | cut -d ' ' -f 2) ; \-			$(xslt) --xslt=$$stylesheet --output-file=$$stylesheet.out $$input ; \-			echo "Contents of $$stylesheet.out" ; \-			echo "============================" ; \-			cat $$stylesheet.out ; \-			echo ; \-		done--stylesheets	= $(wildcard *.xsl)-inputs		= $(wildcard *.xml)--dist		:-		[ -d $(DIST_DIR) ] || mkdir -p $(DIST_DIR)-		cp $(EX) Makefile $(stylesheets) $(inputs) $(DIST_DIR)--clean		:-		rm -f *.xsl.out-
− examples/arrows/hparser/xslt/alias.xsl
@@ -1,16 +0,0 @@-<xsl:transform 
- xml:space="preserve"
- version="1.0" 
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:axsl="http://xsldude.org" >
-  
-  <xsl:namespace-alias stylesheet-prefix="axsl" result-prefix="xsl" />   
-
-  <xsl:template match="/">
-    <axsl:transform version="1.0">
-      <axsl:template match="/">
-        <axsl:message>This XSL stylesheet is created from literal result elements</axsl:message>
-      </axsl:template>
-    </axsl:transform> 
-  </xsl:template>
-</xsl:transform>
− examples/arrows/hparser/xslt/alias2.xsl
@@ -1,11 +0,0 @@-<xsl:transform version    = "1.0" 
-               xmlns:xsl  = "http://www.w3.org/1999/XSL/Transform"
-               xmlns:axsl = "http://xsldude.org" >  
-
-  <xsl:namespace-alias stylesheet-prefix="axsl" result-prefix="xsl" />
-
-  <xsl:template match="/" >
-    <lre-stylesheet axsl:version="1.0" />
-  </xsl:template>
-
-</xsl:transform>
− examples/arrows/hparser/xslt/attset.xsl
@@ -1,14 +0,0 @@-<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-<xsl:import href="attset_imp.xsl" />
-
-<xsl:attribute-set name="as1">
-  <xsl:attribute name="att1">att1GLOB1</xsl:attribute>
-  <xsl:attribute name="att1_1">att1_1Glob1</xsl:attribute>
-</xsl:attribute-set>
-
-<xsl:attribute-set name="as1">
-  <xsl:attribute name="att1">att1GLOB2</xsl:attribute>
-</xsl:attribute-set>
-
-</xsl:transform>
− examples/arrows/hparser/xslt/attset_imp.xsl
@@ -1,17 +0,0 @@-<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-<xsl:attribute-set name="as1">
-  <xsl:attribute name="att1">att1Loc1</xsl:attribute>
-  <xsl:attribute name="att1_1">att1_1Loc1</xsl:attribute>
-  <xsl:attribute name="att1_2">att1_2Loc1</xsl:attribute>
-</xsl:attribute-set>
-
-<xsl:attribute-set name="as2" use-attribute-sets = "as1">
-  <xsl:attribute name="att2">att2Loc1</xsl:attribute>
-</xsl:attribute-set>
-
-<xsl:template match="/">
-  <LRE xsl:use-attribute-sets="as2" kyr="bar" kar="bra" kur="rab"/>
-</xsl:template>
-
-</xsl:transform>
− examples/arrows/hparser/xslt/comment_pi.xsl
@@ -1,10 +0,0 @@-<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-  <!-- XALAN will insert an extra newline after the processing instruction. Therefore the output-files differ. -->
-  <xsl:template match="/">
-  <result> 
-    <xsl:comment>simple-comment</xsl:comment>
-    <xsl:comment>-c=a-b  -------------</xsl:comment>
-    <xsl:processing-instruction name="secret_instruction_{1+1}">pi-content?></xsl:processing-instruction>
-  </result> 
-  </xsl:template>
-</xsl:transform>
− examples/arrows/hparser/xslt/copy_copy_of.xsl
@@ -1,38 +0,0 @@-<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-  <xsl:variable name="V" select="."/>
-
-  <xsl:attribute-set name="as">
-    <xsl:attribute name="name"><xsl:value-of select="name()"/></xsl:attribute>
-
-  </xsl:attribute-set>
-
-  <xsl:template match="/">
-    <result>
-
-      === copy-of of /:
-      <xsl:copy-of select = "."/>
-
-      === copy-of of /: with variable V
-      <xsl:copy-of select = "$V"/>
-
-      === copy on /:
-      <xsl:copy/>
-      ...should've been empty
-
-      copy recursively:
-
-      <xsl:apply-templates mode="copy"/> 
-
-    </result>
-  </xsl:template>
-
-  <xsl:template match="@*|node()" mode="copy">
-    <xsl:copy use-attribute-sets="as">
-      <xsl:apply-templates select="node()|@*" mode="copy" />
-    </xsl:copy>
-  </xsl:template>
-
-
-</xsl:transform>
-
− examples/arrows/hparser/xslt/default_prio.xsl
@@ -1,103 +0,0 @@-<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-  <!-- Some work-arounds for errors of in the XPath module:
-       - you can select text() nodes below an attribute node, which is illegal (, no matter how HXT treats attributes internally)
-       - the body of a processing instruction is not selected with ".".
-       - FIXED: ns:* matches everything, regardless of namespaces or even prefixes. 
-       - FIXED: root is treated as an element (matches *)(FIXED) AND has the name() "/" instead of "" (FIXED), both illegal. 
-    -->     
-
-
-  <xsl:template match="/">
-    <result>
-      <xsl:call-template name="printMatch"><xsl:with-param name="prio" select="'0.5 /'" /></xsl:call-template>
-    </result>
-  </xsl:template>
-
-  <xsl:template match="/" priority="0.4">
-    <result>
-      <xsl:call-template name="printMatch"><xsl:with-param name="prio" select="'0.4 /'" /></xsl:call-template>
-    </result>
-  </xsl:template>
-
-  <xsl:template match="/document">
-    <xsl:call-template name="printMatch"><xsl:with-param name="prio" select="'0.5 a'" /></xsl:call-template>
-  </xsl:template>
-
-  <xsl:template match="document">
-    <xsl:call-template name="printMatch"><xsl:with-param name="prio" select="'0.0'" /></xsl:call-template>
-  </xsl:template>
-
-  <xsl:template match="document[self::*]">
-    <xsl:call-template name="printMatch"><xsl:with-param name="prio" select="'0.5 b'" /></xsl:call-template>
-  </xsl:template>
-
-  <xsl:template match="*">
-    <xsl:call-template name="printMatch"><xsl:with-param name="prio" select="'-0.5'" /></xsl:call-template>
-  </xsl:template>
-
-  <xsl:template match="@*">
-    <xsl:call-template name="printMatch"><xsl:with-param name="prio" select="'-0.5'" /></xsl:call-template>
-  </xsl:template>
-
-  <xsl:template match="text()" priority="-0.4">
-    <xsl:call-template name="printMatch"><xsl:with-param name="prio" select="'-0.4'" /></xsl:call-template>
-  </xsl:template>
-
-  <xsl:template match="text()">
-    <xsl:call-template name="printMatch"><xsl:with-param name="prio" select="'-0.5'" /></xsl:call-template>
-  </xsl:template>
-
-  <xsl:template match="processing-instruction('Milk')">
-    <xsl:call-template name="printMatch"><xsl:with-param name="prio" select="'0.0'" /></xsl:call-template>
-  </xsl:template>
-
-  <xsl:template match="processing-instruction()">
-    <xsl:call-template name="printMatch"><xsl:with-param name="prio" select="'-0.5'" /></xsl:call-template>
-  </xsl:template>
-
-  <xsl:template match="comment()">
-    <xsl:call-template name="printMatch"><xsl:with-param name="prio" select="'-0.5'" /></xsl:call-template>
-  </xsl:template>
-
-  <xsl:template match="comment()" priority="-0.6">
-    <xsl:call-template name="printMatch"><xsl:with-param name="prio" select="'-0.6'" /></xsl:call-template>
-  </xsl:template>
-
-  <xsl:template match="/document/element_type2/nested_element">
-    <xsl:call-template name="printMatch"><xsl:with-param name="prio" select="'0.5 a'" /></xsl:call-template>
-  </xsl:template>
-
-  <xsl:template match="element_type2/nested_element">
-    <xsl:call-template name="printMatch"><xsl:with-param name="prio" select="'0.5 b'" /></xsl:call-template>
-  </xsl:template>
-
-  <xsl:template match="ns:*" xmlns:ns="http://ns.org">
-    <xsl:call-template name="printMatch"><xsl:with-param name="prio" select="'-0.25'" /></xsl:call-template>
-  </xsl:template>
-
-  <xsl:template match="element_type3/@nr">
-    <xsl:call-template name="printMatch"><xsl:with-param name="prio" select="'0.5'" /></xsl:call-template>
-  </xsl:template>
-
-  <xsl:template match="@nr">
-    <xsl:call-template name="printMatch"><xsl:with-param name="prio" select="'0.0'" /></xsl:call-template>
-  </xsl:template>  
-
-  <xsl:template name="printMatch">
-    <xsl:param name="prio" />
-    Match <xsl:choose> 
-      <xsl:when test="self::*">element <xsl:value-of select="name()"/></xsl:when>
-      <xsl:when test="self::text()">textnode length <xsl:value-of select="string-length(.)"/> "<xsl:value-of select="."/>"</xsl:when>
-      <xsl:when test="self::comment()">comment node: <xsl:value-of select="."/></xsl:when>
-      <xsl:when test="self::processing-instruction()">pi node: <xsl:value-of select="name()"/></xsl:when>
-      <xsl:when test="not(name())">root-node</xsl:when>
-      <xsl:otherwise>attribute <xsl:value-of select="name()"/></xsl:otherwise>
-    </xsl:choose> with priority <xsl:value-of select="$prio" /> name : |<xsl:value-of select="name()"/>|
-    <!-- <xsl:for-each select="@*|@*">attribute: <xsl:value-of select="name()"/> <xsl:text> </xsl:text></xsl:for-each> -->
-    <xsl:apply-templates select="@*|*|text()|comment()|processing-instruction()|node()" >  
-      <xsl:sort select="name()" />
-    </xsl:apply-templates>
-  </xsl:template>
-
-</xsl:transform>
− examples/arrows/hparser/xslt/default_rules.xsl
@@ -1,31 +0,0 @@-<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-  <xsl:template match="/">
-    <result>
-     <xsl:apply-templates/>
-    </result>
-  </xsl:template>
-
-  <xsl:template match="/" priority="0.5">
-    <resultXXX>
-     <xsl:apply-templates/>
-    </resultXXX>
-  </xsl:template>
-
-
-  <xsl:template match="nested_element">
-     <nested_element_matched>
-     Attributes matched with default rules:
-     <xsl:apply-templates select="@*"/>
-
-
-     Attributes matched with default rules in mode m:
-     <xsl:apply-templates select="@*" mode="m"/>
-
-     Match content with default rules
-     <xsl:apply-templates/>
-
-     </nested_element_matched>
-  </xsl:template>
-
-</xsl:transform>
− examples/arrows/hparser/xslt/doc_level_prep.xsl
@@ -1,23 +0,0 @@-<xsl:transform version="1.0" 
-  xml:space="preserve"
-  xmlns:unused="unused.org"
-  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-  xmlns:extension="extension.org" 
-  extension-element-prefixes="extension"
-  xmlns:ns1="ns1.org">
-
-  <xsl:template match="*" xml:space="preserve"
->
-    <xsl:element name="result">
-      <ns1:result/>
-      <xsl:call-template name="procedure" />
-    </xsl:element>
-  </xsl:template>
-
-  <xsl:template name="procedure" xmlns:ns2="ns2.org">
-    <ns2:result xsl:exclude-result-prefixes="ns1">
-      <inner/>
-    </ns2:result>
-  </xsl:template>
-
-</xsl:transform>
− examples/arrows/hparser/xslt/doc_level_prep_exp.xsl
@@ -1,18 +0,0 @@-<xsl:transform version="1.0" 
-  xml:strip-space="preserve"
-  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-  xmlns:extension="extension.org" 
-  extension-element-prefixes="extension"
-  xmlns:ns1="ns1.org">
-
-  <xsl:template match="*">
-    <ns1:result/>
-  </xsl:template>
-
-  <xsl:template name="procedure"
-      exclude-result-prefixes="ns1"
-      xmlns:ns2="ns2.org">
-    <ns2:result/>
-  </xsl:template>
-
-</xsl:transform>
− examples/arrows/hparser/xslt/elems_and_attrs.xsl
@@ -1,18 +0,0 @@-<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-<xsl:template match="/">
-  <xsl:element name="result">
-     <xsl:attribute name="attr">value</xsl:attribute>
-     
-      <xsl:element name="nested_{-2+3}">
-          <xsl:attribute name="attr_nested">
-              <xsl:value-of select="concat('value ',-5+4*4)" />
-              <xsl:text>still within attr</xsl:text>
-          </xsl:attribute>
-          <xsl:text>textnode</xsl:text>
-      </xsl:element>
-    
-  </xsl:element>
-</xsl:template>
-
-</xsl:transform>
− examples/arrows/hparser/xslt/empty.xml
@@ -1,1 +0,0 @@-<empty/>
− examples/arrows/hparser/xslt/example2.xml
@@ -1,1 +0,0 @@-<e a1="" a2="" a3="" a4=""/>
− examples/arrows/hparser/xslt/example_document.xml
@@ -1,16 +0,0 @@-<document order="descending">  
-  some text
-  <element_type1 nr="1"/>
-  <element_type2>
-    <nested_element nested_element_attrib="nested_element_attrib_value">
-       some more text<X/>
-    </nested_element>
-  </element_type2>
-  <element_type1 nr="2" />
-  <element_type1 nr="3" />
-  <element_type1 nr="4" />
-  <element_type1 nr="-1" />
-  <element_type3 brot=""/>
-  <element_type3 kaese=""/>
-  <element_type3 milch=""/>
-</document>
− examples/arrows/hparser/xslt/example_document2.xml
@@ -1,20 +0,0 @@-<document order="">  
-  some text
-  <element_type1 nr=""/>
-  <element_type2>
-    <nested_element nested_element_attrib="">
-       some more text<X/>
-    </nested_element>
-  </element_type2>
-  <ns:element_typeNS xmlns:ns="http://ns.org" />
-  <element_type1 nr="" />
-  <element_type1 nr="" />
-  <element_type1 nr="" />
-  <element_type1 nr="" />
-  <element_type3 brot=""/>
-  <element_type3 kaese=""/>
-  <!-- Milk is good for you! -->
-  <?Milk /opt1 /opt2 /opt3 ?>
-  <?Bread with cheese, or maybe not? ?>
-  <element_type3 milch="" nr=""/>
-</document>
− examples/arrows/hparser/xslt/example_document3.xml
@@ -1,10 +0,0 @@-<document>
-  <a>
-     <b/>
-     <c/>
-  </a>
-  <d>
-     <b/>
-     <e/>
-  </d>
-</document>
− examples/arrows/hparser/xslt/exdoc2.xml
@@ -1,33 +0,0 @@-<document order="descending">  
-  some text
-  <element_type1 nr="1"/>
-  <element_type2>
-    <nested_element nested_element_attrib="nested_element_attrib_value">
-       some more text<X/><!-- DUDE DUDE-->
-    </nested_element>
-  </element_type2>
-  <element_type1 nr="2" />
-  <element_type1 nr="3" />
-  <element_type1 nr="4" />
-  <element_type1 nr="-1" />
-  <element_type3 brot=""/>
-  <element_type3 kaese=""/>
-  <spacy-elem>
-  
-     <X/>
-
-
-     <Y/>
-
-      .
-
-     <Z/>
-
-         <spacy-elem2>
-
-
-         </spacy-elem2>
-   
-   </spacy-elem>   
-  <element_type3 milch=""/>
-</document>
− examples/arrows/hparser/xslt/for_each_when_if.xsl
@@ -1,47 +0,0 @@-<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-<xsl:template match="/">
-  <result>
-  <xsl:for-each select="*/element_type1">
-      Nr:<xsl:value-of select="@nr"/>:
-
-      with if:
-
-      <xsl:if test="@nr>3"> Number is larger than 3
-      </xsl:if>
-
-      <xsl:if test="@nr>2"> Number is larger than 2
-      </xsl:if>
-
-      <xsl:if test="@nr>1"> Number is larger than 1
-      </xsl:if>
-
-      <xsl:if test="@nr>0"> Number is larger than 0
-      </xsl:if>
-
-      with choose:
-      
-      <xsl:choose>
-
-      <xsl:when test="@nr>3"> Number is larger than 3
-      </xsl:when>
-
-      <xsl:when test="@nr>2"> Number is larger than 2
-      </xsl:when>
-
-      <xsl:when test="@nr>1"> Number is larger than 1
-      </xsl:when>
-
-      <xsl:when test="@nr>0"> Number is larger than 0
-      </xsl:when>
-
-      <xsl:otherwise> Number is smaller than 1
-      </xsl:otherwise>
-
-      </xsl:choose>
-
-  </xsl:for-each>
-  </result>
-</xsl:template>
-
-</xsl:transform>
− examples/arrows/hparser/xslt/imp_lre.xsl
@@ -1,3 +0,0 @@-<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-<xsl:import href="lre_stylesheet.xsl"/>
-</xsl:transform>
− examples/arrows/hparser/xslt/inc_lre.xsl
@@ -1,3 +0,0 @@-<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-<xsl:include href="lre_stylesheet.xsl"/>
-</xsl:transform>
− examples/arrows/hparser/xslt/invoice.xml
@@ -1,5 +0,0 @@-<invoice>
-  <item name="Steam-hammer HXT 6.1" value="145.75" />
-  <item name="Electric screwdriver GHC 6.4" value="69.49" />
-  <item name="Medium sized screws 1000 pack" value="15.98" />
-</invoice>
− examples/arrows/hparser/xslt/invoice.xsl
@@ -1,12 +0,0 @@-<html xsl:version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-  <body> 
-    <table>
-       <xsl:for-each select="*/item">
-         <tr>
-           <td><xsl:value-of select="@name"/></td>
-           <td><xsl:value-of select="@value"/></td>
-         </tr>
-       </xsl:for-each>
-    </table>
-  </body>
-</html>
− examples/arrows/hparser/xslt/invoiceSort.xsl
@@ -1,14 +0,0 @@-<html xsl:version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-  <body> 
-    <table>
-       <xsl:for-each select="*/item">
-         <xsl:sort select="@value" data-type="number" order="descending"/>
-         <xsl:sort select="@name"/>
-         <tr>
-           <td><xsl:value-of select="@name"/></td>
-           <td><xsl:value-of select="@value"/></td>
-         </tr>
-       </xsl:for-each>
-    </table>
-  </body>
-</html>
− examples/arrows/hparser/xslt/lre.xsl
@@ -1,11 +0,0 @@-<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-<xsl:template match="/">
-  <result attr="value">
-      <nested_1 attr_nested="value is {{{1+1}}} ({1+1}) :-}} :-{{)">
-         textnode
-      </nested_1>
-  </result>
-</xsl:template>
-
-</xsl:transform>
− examples/arrows/hparser/xslt/lre_stylesheet.xsl
@@ -1,5 +0,0 @@-<literalResult xsl:version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-  <xsl:for-each select="document/*">
-    <element name="{name()}" />
-  </xsl:for-each>
-</literalResult>
− examples/arrows/hparser/xslt/match_by_for_each.xsl
@@ -1,21 +0,0 @@-<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-  <xsl:template match="document">
-    <xsl:for-each select="*/*">
-      <xsl:choose>
-        <xsl:when test="self::b[parent::a[not (parent::*)]]">
-          Match: a/b   
-        </xsl:when>
-        <xsl:when test="self::b">
-          Match: b
-        </xsl:when>
-        <xsl:when test="self::*">
-          Match: *
-        </xsl:when>
-        <xsl:otherwise>
-          Match: the rest
-        </xsl:otherwise>
-      </xsl:choose>
-    </xsl:for-each>
-  </xsl:template>
-</xsl:transform>
− examples/arrows/hparser/xslt/nspropXSLT.xsl
@@ -1,14 +0,0 @@-<!-- Works only if we allow XPath to select xmlns:* attributes... -->
-<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-  <xsl:template match="*">
-    <xsl:param name="nsattrs" select="@xmlns:*"/>
-    <xsl:copy>
-      <xsl:copy-of select="@*|$nsattrs|@xmlns:*"/>
-      <xsl:apply-templates>
-        <xsl:with-param name="nsattrs" select="$nsattrs|@xmlns:*" />
-      </xsl:apply-templates>
-    </xsl:copy>
-  </xsl:template>
-
-</xsl:transform>
− examples/arrows/hparser/xslt/nspropXSLTyyy.xsl
@@ -1,14 +0,0 @@-<!-- Works only if we allow XPath to select xmlns:* attributes... -->
-<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-  <xsl:template match="*">
-    <xsl:param name="nsattrs" select="@xsl:*"/>
-    <xsl:copy>
-      <xsl:copy-of select="@*|$nsattrs|@xsl:*"/>
-      <xsl:apply-templates>
-        <xsl:with-param name="nsattrs" select="$nsattrs|@xsl:*" />
-      </xsl:apply-templates>
-    </xsl:copy>
-  </xsl:template>
-
-</xsl:transform>
− examples/arrows/hparser/xslt/prio.xsl
@@ -1,18 +0,0 @@-<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-
-  <xsl:import href="prio_imp1.xsl"/>
-  <xsl:import href="prio_imp2.xsl"/>
-
-  <xsl:template match="element_type3">
-     unreachable prio.xsl match_element_type3 occurance 2 (before include)
-  </xsl:template>
-
-  <xsl:include href="prio_inc.xsl"/>
-
-  <xsl:template match="nested_element">                   
-     prio.xsl match_nested_element occurance 2 (after include) =====6=
-  </xsl:template>
-
-
-</xsl:transform>
− examples/arrows/hparser/xslt/prio_imp1.xsl
@@ -1,20 +0,0 @@-<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-<xsl:import href="prio_imp1_1.xsl"/>
-<xsl:import href="prio_imp1_2.xsl"/>
-
-<xsl:template match="document">
-  unreachable (prio_imp1.xsl) match_document
-</xsl:template>
-
-  <xsl:template match="element_type2">
-     prio_imp1.xsl match_element_type2                  =====4=
-     <xsl:apply-imports/>
-  </xsl:template>
-
-
-  <xsl:template match="text()">
-     <xsl:call-template name="handleText"/>
-  </xsl:template>
-
-
-</xsl:transform>
− examples/arrows/hparser/xslt/prio_imp1_1.xsl
@@ -1,15 +0,0 @@-<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-<xsl:template match="/">                      
-  <result>
-    prio_imp1_1.xsl match /           =====1= 
-    <xsl:apply-templates />
-  </result>
-</xsl:template>
-
-<xsl:template match="document">
-  unreachable (prio_imp1_1.xsl) match_document
-</xsl:template>
-
-
-</xsl:transform>
− examples/arrows/hparser/xslt/prio_imp1_2.xsl
@@ -1,17 +0,0 @@-<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-<xsl:template match="document">
-  unreachable (prio_imp1_2.xsl) match_document
-</xsl:template>
-
-  <xsl:template match="element_type2">  
-     prio_imp1_2.xsl match_element_type2                 =====5=
-     <xsl:apply-templates/>
-  </xsl:template>
-
-<xsl:template name="handleText">[TXT]
-</xsl:template>
-  
-
-
-</xsl:transform>
− examples/arrows/hparser/xslt/prio_imp2.xsl
@@ -1,21 +0,0 @@-<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-<xsl:template match="document" priority="2.0">
-  unreachable prio_imp2.xsl match_document Prio 2.0 occurance 1
-</xsl:template>
-<xsl:template match="document" priority="2.0">                
-  prio_imp2.xsl match_document Prio 2.0 occurance 2    =====2=
-  <xsl:apply-templates/>
-</xsl:template>
-<xsl:template match="document" priority="1.0">
-  unreachable prio_imp2.xsl match_document Prio 1.0 occurance 1
-</xsl:template>
-<xsl:template match="document" priority="1.0">
-  unreachable prio_imp2.xsl match_document Prio 1.0 occurance 2
-</xsl:template>
-
-
-
-
-
-</xsl:transform>
− examples/arrows/hparser/xslt/prio_inc.xsl
@@ -1,15 +0,0 @@-<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-  <xsl:template match="element_type2">
-     prio_inc.xsl match_element_type2                  =====3=
-     <xsl:apply-imports/>
-  </xsl:template>
-
-  <xsl:template match="nested_element">              
-     prio_inc.xsl match_nested_element occurance 1
-  </xsl:template>
-
-  <xsl:template match="element_type3">
-     prio_inc.xsl match_element_type3 occurance 2 (after being included)    =====7=
-  </xsl:template>
-
-</xsl:transform>
− examples/arrows/hparser/xslt/recAdd.xsl
@@ -1,10 +0,0 @@-<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-  <xsl:template match="/|*">
-    <xsl:copy use-attribute-sets="as">
-      <xsl:apply-templates/>
-    </xsl:copy>
-  </xsl:template>
-  <xsl:attribute-set name="as">
-    <xsl:attribute name="processed">TRUE</xsl:attribute>
-  </xsl:attribute-set>
-</xsl:transform>
− examples/arrows/hparser/xslt/sorting.xsl
@@ -1,33 +0,0 @@-<?xml version="1.0" ?>
-<?karl version="1.0" ?>
-<!-- comment axg f -->
-<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-  <xsl:variable name="V" select="'ascending'"/>
-
-  <xsl:template match="/">
-    <result>
-      Using for-each:
-      <xsl:for-each select = "*/*">
-        <xsl:sort select="name()" order="{document/@order}"/>
-        <xsl:sort select="@nr" data-type="number"/>
-        :<xsl:copy-of select="." />
-      </xsl:for-each>
-      Using apply-template
-      <xsl:apply-templates select="*/*" mode="copy">
-        <xsl:sort select="@nr" data-type="number" order="descending"/>
-        <xsl:sort select="name()" order="{$V}"/>
-        <xsl:with-param name="p" select="concat('value_',document/@order)"/>
-      </xsl:apply-templates>
-    </result>
-  </xsl:template>
-
-  <xsl:template match="*" mode="copy">
-    <xsl:param name="p"/>
-    Param p: <xsl:value-of select="$p"/>
-    <xsl:copy-of select="."/>
-  </xsl:template>
-
-
-</xsl:transform>
-
− examples/arrows/hparser/xslt/stripXSLT.xsl
@@ -1,24 +0,0 @@-<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-  <xsl:template match="*">
-    <xsl:param name="strip" select="true()"/>
-    <xsl:copy>
-      <xsl:copy-of select="@*"/>
-      <xsl:apply-templates>
-        <xsl:with-param name="strip" 
-           select="    ( local-name()!='text' or 
-                         namespace-uri()!='http://www.w3.org/1999/XSL/Transform' )
-                   and not(@xml:space='preserve')
-                   and ($strip or @xml:space='default') "/>
-      </xsl:apply-templates>
-    </xsl:copy>
-  </xsl:template>
-
-  <xsl:template match="text()">
-    <xsl:param name="strip" select="true()"/>
-    <xsl:if test="not($strip) or string-length(normalize-space(.)) &gt; 0">
-      <xsl:value-of select="." />
-    </xsl:if>
-  </xsl:template>
-
-</xsl:transform>
− examples/arrows/hparser/xslt/strip_example.xml
@@ -1,21 +0,0 @@-<stuff:document xmlns:text="http://text.org" xmlns:stuff="http://stuff.org">
-<stuff:something>
-<text:chapter>
-
-<text:paragraph>
-
-
-<stuff:reference>                                          </stuff:reference>
-</text:paragraph>
-
-
-
-</text:chapter>
-</stuff:something>
-
-<text:quotation>
-
-
-
-</text:quotation>
-</stuff:document>
− examples/arrows/hparser/xslt/strip_example.xsl
@@ -1,10 +0,0 @@-<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:text="http://text.org">
-
-<xsl:strip-space elements="*" />
-<xsl:preserve-space elements="text:*" />
-
-<xsl:template match="/">
-  <xsl:copy-of select="/" />
-</xsl:template>
-
-</xsl:transform>
− examples/arrows/hparser/xslt/strip_space.xsl
@@ -1,8 +0,0 @@-<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-<xsl:import href="strip_space_imp.xsl"/>
-
-<xsl:strip-space elements="element_type2" />
-<xsl:preserve-space elements="spacy-elem2" />
-
-</xsl:transform>
− examples/arrows/hparser/xslt/strip_space_imp.xsl
@@ -1,28 +0,0 @@-<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-<xsl:strip-space elements="spacy-elem spacy-elem2" />
-
-<xsl:template match="/">
-  <Element xml:space="preserve" >
-      <Nested1>
-
-          
-      </Nested1>
-      <Nested2 xml:space="default">
-
-
-           <xsl:text>    </xsl:text>
-
-      </Nested2>
-      <!-- There is an error in _XALAN_ on the following line. "space" will be treated as "xml:space" which is wrong!
-  
-           <Nested3 space="default">      </Nested3> 
-      -->
-      <Nested4>       </Nested4>
-
-
-    <xsl:copy-of select="document" />
-  </Element>
-</xsl:template>
-
-</xsl:transform>
− examples/arrows/hparser/xslt/strip_space_with_rules.xsl
@@ -1,48 +0,0 @@-<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-<!-- <xsl:strip-space elements="element_type2" /> -->
-
-
-<xsl:template match="element_type2" mode="strip-space">
-  <xsl:copy>
-    <xsl:copy-of select="@*" />
-    <xsl:apply-templates mode="strip-space">
-      <xsl:with-param name="strip" select="true()" />
-    </xsl:apply-templates>
-  </xsl:copy>
-</xsl:template>
-
-
-<xsl:template match="*|/" mode="strip-space" priority="-1000">
-  <xsl:copy>
-    <xsl:copy-of select="@*" />
-    <xsl:apply-templates mode="strip-space"/>
-  </xsl:copy>
-</xsl:template>
-
-<xsl:template match="text()" mode="strip-space">
-  <xsl:param name="strip" select="false()"/>
-  <xsl:choose>
-     <xsl:when test="$strip and normalize-space()=''">
-     </xsl:when>
-     <xsl:otherwise>
-        <xsl:copy/>
-     </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match="processing-instruction()|comment()" mode="strip-space">
-  <xsl:copy />
-</xsl:template>
-
-
-<xsl:template match="/">
-===================1)
-  <xsl:copy-of select="document" />
-===================2)
-  <xsl:apply-templates mode="strip-space" />
-
-</xsl:template>
-
-
-</xsl:transform>
− examples/arrows/hparser/xslt/testEX.xsl
@@ -1,21 +0,0 @@-<xsl:transform 
- version="1.0" 
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:a="a.uri"
- xmlns:b="b.uri"
- xmlns:c="c.uri"
- xmlns:d="d.uri"
- xmlns:e="e.uri"
- xmlns:f="f.uri"
- exclude-result-prefixes="a b"
- extension-element-prefixes="c" xml:space="preserve" >
-
-  
-
-  <xsl:template match="*">
-    <result exclude-result-prefixes="d" ><!-- Tricky NOT xsl:... -->
-      <inner xsl:extension-element-prefixes="e" xsl:exclude-result-prefixes="f" xmlns:g="g.uri"/>      
-    </result>
-  </xsl:template>
-
-</xsl:transform>
− examples/arrows/hparser/xslt/testNS.xml
@@ -1,11 +0,0 @@-<lonely xmlns:cheese = "http://cheese.org">
-
-  <cheese:brie/>
-
-  <bread:toast cheese:cheddar="" xmlns:bread="http://bread.org"/>
-
-  <canape:baguette xmlns:canape="http://bread.org">
-    <cheese:camembert/>
-  </canape:baguette>
-
-</lonely>
− examples/arrows/hparser/xslt/testNS.xsl
@@ -1,46 +0,0 @@-<xsl:transform 
- version="1.0" 
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:xslcheese = "http://cheese.org" 
- xmlns:xslbread  = "http://bread.org">
-
-   <xsl:template match="xslbread:toast">
-      xsl:template match="xslbread:toast"
-      <xsl:apply-templates select="@*" />
-      <xsl:apply-templates select="*" />
-   </xsl:template>
-
-   <xsl:template match="xslcheeseX:camembert" xmlns:xslcheeseX="http://cheese.org">
-      xsl:template match="xslcheeseX:camembert" xmlns:xslcheeseX="http://cheese.org"
-      <xsl:apply-templates select="@*" />
-      <xsl:apply-templates select="*" />
-   </xsl:template>
-
-   <xsl:template match="@xslcheese:*">
-      xsl:template match="@xslcheese:*"
-   </xsl:template>
-
-
-
-   <xsl:template match="xslcheese:*">
-      xsl:template match="xslcheese:*"
-      <xsl:apply-templates select="@*" />
-      <xsl:apply-templates select="*" />
-   </xsl:template>
-
-   <xsl:template match="*" xml:space="preserve">
-   <result>
-      xsl:template match="*"
-      <xsl:apply-templates select="@*" />
-      <xsl:apply-templates select="*" />
-      <xsl:element name="no-ns-name" />
-      <xsl:element name="xslcheese:ns-name" xmlns:useless="useless.uri"/>
-      <xsl:element name="cheese:ns-name" xmlns:cheese="http://cheese.org" />
-      <xsl:element name="newns:ns-name" xmlns:newns="http://latest.org" />
-      <xsl:element name="computed:ns-name" namespace="http://computed_{1+1-1}.org" />
-
-
-   </result>
-   </xsl:template>
-
-</xsl:transform>
− examples/arrows/hparser/xslt/vars_and_params.xsl
@@ -1,69 +0,0 @@-<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-<xsl:import href="vars_and_params_imp.xsl" />
-
-<xsl:variable name="A" select="concat('global var A refers to:',$C)" />
-<xsl:param    name="B" select="concat('global par B',*/*/@nr)" />
-<xsl:variable name="C" select="concat('global var C refers to:',$B)" />
-
-<xsl:template match="/">
-  <template_match_root>
-
-     Value of variable A:<xsl:value-of select="$A"/>:
-     Value of variable B:<xsl:value-of select="$B"/>:
-     Value of variable C:<xsl:value-of select="$C"/>:
-
-     Introducing local variable B...
-     <xsl:variable name="B" select="'local B'"/>
-     Value of variable A:<xsl:value-of select="$A"/>:
-     Value of variable B:<xsl:value-of select="$B"/>:
-     Value of variable C:<xsl:value-of select="$C"/>:
-
-     Setting variable C to default
-     <xsl:variable name="C"/>
-     Value of variable A:<xsl:value-of select="$A"/>:
-     Value of variable B:<xsl:value-of select="$B"/>:
-     Value of variable C:<xsl:value-of select="$C"/>:     
-
-     <xsl:apply-templates select="document">
-         <xsl:with-param name="P1"/>
-         <xsl:with-param name="P2" select="'passed argument 2'"/>
-         <xsl:with-param name="Punknown" select="'unreachable'"/>
-     </xsl:apply-templates>
-  </template_match_root>
-</xsl:template>
-
-    <xsl:template match="document">
-       <xsl:param name="P1" select="'default for P1'" />
-       <xsl:param name="P2" select="'you will never see me'"/>
-       <xsl:param name="P3" select="concat('current-name:',name())"/>
-       <xsl:param name="P4" select="concat('P4 depends on P2 :',$P2,': but not the other way around')"/>
-
-       <template_match_document>           
-
-           Value of variable A:<xsl:value-of select="$A"/>:
-           Value of variable B:<xsl:value-of select="$B"/>:
-           Value of variable C:<xsl:value-of select="$C"/>:
-
-           Value of parameter P1:<xsl:value-of select="$P1"/>:
-           Value of parameter P2:<xsl:value-of select="$P2"/>:
-           Value of parameter p3:<xsl:value-of select="$P3"/>:
-           Value of parameter p3:<xsl:value-of select="$P4"/>:
-
-           <xsl:apply-imports/>
-
-       </template_match_document>
-    </xsl:template>
-
-                  <xsl:template name="function">
-                      <xsl:param name="depth" select="0"/>
-                      <xsl:element name="function_{$depth}">
-                      <xsl:if test="$depth &gt; 0">
-                         <xsl:call-template name="function">
-                            <xsl:with-param name="depth" select="$depth - 1"/>
-                         </xsl:call-template>              
-                      </xsl:if>
-                      </xsl:element>
-                  </xsl:template>
-
-</xsl:transform>
− examples/arrows/hparser/xslt/vars_and_params_imp.xsl
@@ -1,30 +0,0 @@-<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-<!-- Import-file for var_and_params_imp.xsl -->
-
-       <xsl:template match="document">
-           <xsl:param name="P1" select="'imported P1'" />
-           <xsl:param name="P2" select="'imported P2'" />
-           <xsl:param name="P3" select="'imported P3'" />
-           <xsl:param name="P4" select="'imported P4'" />
-
-           <template_match_document_imported>           
- 
-               Value of variable A:<xsl:value-of select="$A"/>:
-               Value of variable B:<xsl:value-of select="$B"/>:
-               Value of variable C:<xsl:value-of select="$C"/>:
-
-               Value of parameter P1:<xsl:value-of select="$P1"/>:
-               Value of parameter P2:<xsl:value-of select="$P2"/>:
-               Value of parameter p3:<xsl:value-of select="$P3"/>:
-               Value of parameter p3:<xsl:value-of select="$P4"/>:
-
-               <xsl:call-template name="function">
-                  <xsl:with-param name="depth" select="5"/>
-               </xsl:call-template>
-
-           </template_match_document_imported>
-       </xsl:template>
-
-
-
-</xsl:transform>
+ examples/arrows/hrelaxng/.ghci view
@@ -0,0 +1,3 @@+:set -i../../../src+:set -Wall -fglasgow-exts+:load HRelaxNG
− examples/arrows/hrelaxng/valid2a.xml
− examples/arrows/hunit/HUnitExample.hs
@@ -1,716 +0,0 @@--- |--- HUnit - Haskell XML Toolbox examples and tests for arrows------ Author: Uwe Schmidt uwe@fh-wedel.de------ Version : $Id: HUnitExample.hs,v 1.4 2006/09/06 06:35:28 hxml Exp $--module Main where--import System-import Test.HUnit-import Text.XML.HXT.Arrow-import Data.Char--{--aMinimalDoc	:: XmlTree-aMinimalDoc	= mkRootTree [] (xtext "<?xml version='1.0'?><x/>")--aSimpleXHTMLDoc	:: XmlTree-aSimpleXHTMLDoc-    = mkRootTree-      ( xattr a_source "simple.xml" )-      ( xtext -	( concatMap (++ "\n")-	  [ "<?xml version='1.0'?>"-	  , "<html>"-	  , " <head><title>A Simple XHTML Document</title></head>"-	  , " <body>"-	  , " </body>"-	  , "</html>"-	  ]-	)-      )--mkMinimalDoc	:: String -> XmlTree-mkMinimalDoc cont-    = mkRootTree [] (xtext cont)--mkInputDoc	:: String -> XmlTree-mkInputDoc src-    = mkRootTree ( xattr a_source src) []--mkDoc	:: String -> XmlTree-mkDoc cont-    = mkRootTree-      ( xattr a_source "a test")-      ( xtext ("<?xml version='1.0' encoding='" ++ isoLatin1 ++ "'?>\n" ++ cont) )---- |--- compare trees--testEqualTrees	:: XmlTrees -> XmlTrees -> Test-testEqualTrees e1 e2-    = TestCase $-      assertEqual "" e1 e2---- |--- testDocFilter creates a test for the application of a pure--- functional filter to a XML tree. The result is converted into--- the external string representation and compared with the expected--- result.------ see also: 'testStateFilter' and 'testEditFilter'--testDocFilter	:: String -> XmlFilter -> XmlTree -> Test-testDocFilter expected xfilter doc-    = TestCase $-      assertEqual "" expected (xshow $ xfilter doc)---- |--- testStateFilter creates a test for monadic filters, doing IO and using--- the internal state, consisting of program options and status information--- The filter is applied to a XML tree, the result is converted to a string--- and this result is compared with the expected result.------ see also: 'testEditFilter' for pure functional filters--testStateFilter	:: String -> XmlStateFilter () -> XmlTree -> Test-testStateFilter expected xfilter input-    = TestCase $-      do-      res <- run' $ xfilter input-      assertEqual "" expected (xshow res)---- |--- The test bed for edit filter for external documents.--- The input tree must specify the external document to be read.--- This document is checked for wellformedness, canonicalized--- (char refs substituted, ...) and processed with the edit filter.--- The result is transformed into the string representation and compared--- with the expected string.--testEditFilter	:: String -> XmlFilter -> XmlTree -> Test-testEditFilter expected xfilter input-    = TestCase $-      do-      res <- run'-	     $ ( getWellformedDoc					-- read the document-		 .>>-		 liftMf canonicalizeAllNodes				-- normalize the document and remove <?xml ... ?> decl-		 .>>-		 liftMf ( processChildren xfilter )			-- apply the editing filter only to the 'real' document-		 .>>				  			-- nodes, not to nodes surrounding the document tag-		 putXmlTree						-- just trace output-		 .>>-		 liftMf getChildren					-- just for comparing the document contents-	       )-	     input-      assertEqual "" expected (xshow res)----- |--- tree versus filter construction tests--- documents may be constructed by tree operations--- or with the more flexible filter operations applied to an arbitray tree--treeConstructionTests :: Test-treeConstructionTests-    = TestLabel "tree and filter construction tests" $-      TestList $-      map (\ (t, f) -> testEqualTrees t (f undefined) )-      [ (xtext "xyz",				txt "xyz"			)-      , (xcmt "cmt",				cmt "cmt"			)-      , (xtag "img" [] [],			tag "img" [] []			)-      , (xtag "img" [] [],			etag "img"			)--      , (xtag "img" (xattr "b" "13") [],	tag "img" [sattr "b" "13"] []	)--      , (xtag "img" (xattr "b" "13") [],	atag "img" [sattr "b" "13"]	)--      , (xtag "t" (xattr "a" "42" ++ xattr "b" "id")-	          (xtext "abc"),-						tag "t" [sattr "a" "42", sattr "b" "id"]-	 						[txt "abc"]		)-      ]---- |--- construction tests are all applied to the empty document,--- no information is used from that document,--- but construction is lifted to the filter level.--- this is more general than explicit construction.--- in more complex examples some information may be extracted from--- the source, some can be constant.--- --- see also: 'testDocFilter'--constructionTests	:: Test-constructionTests-    = TestLabel "document construction tests" $-      TestList $-      map (\ (res, f) -> testDocFilter res f undefined)		-- undefined or something else, e.g. emptyRoot-      [ ("<x/>"		, mkXTag  "x" none none	)-      , ("<x/>"		, tag "x"  [] []	)		-- syntactically more comfortable shortcut for mkXTag-      , ("<x/>"		, stag "x" []		)		-- shortcut for tags without attributes-      , ("<x/>"		, atag "x" []		)		-- shortcut for empty tags with attributes-      , ("<x/>"		, etag "x"		)		-- shortcut for empty tags without attributes--      , ("<x a=\"1\"/>"-			, mkXTag "x" (mkXAttr "a" (mkXText "1")) none	)-      , ("<x a=\"1\">42</x>"-			, mkXTag "x" (mkXAttr "a" (mkXText "1")) (mkXText "42")	)-      , ("<x a=\"1\">42</x>"-			, tag "x" [ attr "a" $ txt "1" ] [ txt "42" ]	)-      , ("<x a=\"1\">42</x>"-			, tag "x" [ sattr "a" "1" ] [ txt "42" ]	)--      , ("<x a=\"1\"/>"	, atag "x" [ sattr "a" "1" ]	)--      , ("<x a=\"1\" b=\"2\">42<y/>43</x>"-			, tag "x" [ sattr "a" "1"-				  , sattr "b" "2"-				  ] [ txt  "42"-				    , etag "y"-				    , txt  "43"-				    ]	)-      , ("<!-- a comment -->"-			, mkXCmt $ txt " a comment "	)-      , ("<!--a comment-->"-			, cmt "a comment"	)		-- short cut for uncomputed comment--      , ("<!-- an illegal XML comment containing 2 -- in comment text -->"-			, cmt " an illegal XML comment containing 2 -- in comment text "	)--      , ("&#42;"   	, mkXCharRef 42		)-      , ("&lt;"    	, mkXEntityRef "lt"	)-      , ("<![CDATA[<abc>]]>"-			, mkXCdata $ txt "<abc>")-      , ("<![CDATA[<abc>]]>"			-- short cut for uncomputed cdata content-			, cdata "<abc>")-      , ("<?abc xyz?>"	, mkXPi "abc" $ txt "xyz"	)-      , ("<?abc xyz?>"	, spi "abc" "xyz"	)	-- short cut for an uncomputed pi content-      ]---- |--- simple selection tests--simpleSelectionTests	:: Test-simpleSelectionTests-    = TestLabel "simple tree selection tests" $-      TestList $-      map (\ (res, f) -> testDocFilter (singleToDoubleQuote res) f simpleDoc)-      [ (src		, this	)-      , ("1"		, getValue "a"	)-      , (""		, getValue "b"	)-      , (body1		, getChildren	)--				-- text selection-      , ("xyz"		, getChildren .> isXText	)-      , ("xyz"		, getChildren .> isText "xyz"	)-      , (""		, getChildren .> isText "abc"	)-      , ("xyz"		, getChildren .> isOfText (>="x")	)-      , (""		, getChildren .> isOfText (<"x")	)-      , (""		, getChildren .> isWhiteSpace	)--				-- tag selection-      , ("<t a='42' b='id'>abc</t><img b='13'/><y x='0'/><z/>"-			, getChildren .> isXTag	)--				-- comment selection-      , ("<!--cmt-->"	, getChildren .> isXCmt	)--				-- text OR tag selection-      , ("<t a='42' b='id'>abc</t><img b='13'/>xyz<y x='0'/><z/>"-			, getChildren .> (isXTag +++ isXText)	)--				-- generalised OR-      , ("<t a='42' b='id'>abc</t><img b='13'/>xyz<y x='0'/><z/>"-			, getChildren .> cat [isXTag, isXText]	)--      , ("abc"		, getChildren .> getChildren	)--				-- atribute value selection-      , ("1"		, getValue "a"	)--      , ("<t a='42' b='id'>abc</t>"-			, getChildren .> isTag "t"	)--				-- attribute selection-      , ("<t a='42' b='id'>abc</t>"-			, getChildren .> hasAttr "a"	)--      , ("42"		, getChildren .> getValue "a"	)-      , ("42"		, getChildren .> hasValue "a" (all isDigit)	)-      , ("13"		, getChildren .> hasValue "b" (all isDigit)	)-      , (""		, getChildren .> isTag "t" .> hasValue "b" (all isDigit)	)-      , ("42"		, getChildren .> hasValue "a" (== "42")	)-      , (""		, getChildren .> hasValue "a" (== "43")	)-      , ("42"		, getChildren .> hasValue "a" (\ str -> ((read str)::Int) > 40)	)-      , ("42"		, getChildren .> hasValue "a" (not . null)	)-      , ("id13"		, getChildren .> hasValue "b" (const True)	)-      , ("13"		, getChildren .> isTag "img" .> hasValue "b" (const True)	)-      , (""		, getChildren .> hasValue "c" (const True)	)--      , (" a='42' b='id' b='13' x='0'"-			, getChildren .> getAttrl	)--      , (" a='42' b='id'"-			, getChildren .> isTag "t" .> getAttrl	)--      , ("42id"		, getChildren .> isTag "t" .> getAttrl .> getChildren	)--      , (" b='id' b='13'"-			, getChildren .> getAttrl .> isAttr "b"	)--      , (" b='13'"	, getChildren .> isTag "img" .> getAttrl .> isAttr "b"	)-      , ("13"		, getChildren .> isTag "img" .> getAttrl .> isAttr "b" .> getChildren	)-      , ("13"		, getChildren .> isTag "img" .> getValue "b"	)-      , ("timgyz"	, getChildren .> getName	)-      , ("t"		, getChildren .> isTag "t" .> getName	)-      , ("abbx"		, getChildren .> getAttrl  .> getName	)-      , ("bb"		, getChildren .> getAttrl  .> isAttr "b" .> getName	)-      , ("ab"		, getChildren .> isTag "t" .> getAttrl   .> getName	)-      , ("b"		, getChildren .> isTag "t" .> getAttrl   .> isAttr "b" .> getName	)--				-- deep search for text or tags-      , ("abcxyz"       , deep isXText	)-      , ("abc"	        , deep (isTag "t") .> deep isXText	)-      ]-    where-    src = "<r a='1'>" ++ body1 ++ "</r>"-    body1 = "<!--cmt-->"-	    ++ "<t a='42' b='id'>abc</t>"-	    ++ "<img b='13'/>"-	    ++ "xyz"-	    ++ "<y x='0'/>"-	    ++ "<z/>"--    sDocFilter-	= tag "r" [ sattr "a" "1" ]-	    [ cmt "cmt"-	    , tag "t" [ sattr "a" "42", sattr "b" "id" ]-		[ txt "abc"-		]-	    , atag "img" [ sattr "b" "13" ]-	    , txt "xyz"-	    , atag "y" [ sattr "x" "0" ]-	    , etag "z"-	    ]-    simpleDoc = head $ sDocFilter undefined---- |--- simple tests with namespaces--namespaceTests	:: Test-namespaceTests-    = TestLabel "namespace tests" $-      TestList $-      map (\ (res, f) -> testDocFilter (singleToDoubleQuote res) f simpleDoc)-      [ (src		, this	)-					-- select all "t" tags, even nested ones (multi) and extract the text from the body-      , ("sssaaa"	, multi (isTag "t"                    .> getChildren .> isXText)	)--					-- select all text within all tags of a specific namespace-      , ("sssaaazzzeee"	, multi (isXTag .> hasNamespace "dns" .> getChildren .> isXText)	)-      , ("bbb"		, multi (isXTag .> hasNamespace "n1"  .> getChildren .> isXText)	)-      , ("cccdddfffggg"	, multi (isXTag .> hasNamespace "n2"  .> getChildren .> isXText)	)--					-- select all text within all tags with a specific local name-      , ("sssaaabbbcccdddzzz"-			, multi (isXTag .> hasLocalPart "t"   .> getChildren .> isXText)	)-      , ("eee"		, multi (isXTag .> hasLocalPart "e"   .> getChildren .> isXText)	)--					-- select all text within all tags with a specific prefix-      , ("bbbddd"	, multi (isXTag .> hasPrefix "x"      .> getChildren .> isXText)	)-      , ("ccc"		, multi (isXTag .> hasPrefix "y"      .> getChildren .> isXText)	)-      , ("zzz"		, multi (isXTag .> hasPrefix "z"      .> getChildren .> isXText)	)-      , ("sssaaaeeefffggg"-			, multi (isXTag .> hasPrefix ""       .> getChildren .> isXText)	)--					-- select all attribute values of a specific namespace-					-- !!! the default namespace is not propagated to attribute names-      , ("z5"		, multi (isXTag .> getAttrl .> hasNamespace "dns"   .> getChildren)	)-      , ("2z4"		, multi (isXTag .> getAttrl .> hasNamespace "n1"    .> getChildren)	)-      , ("x3y3u4"	, multi (isXTag .> getAttrl .> hasNamespace "n2"    .> getChildren)	)-      , ("dnsn2"	, multi (isXTag .> getAttrl .> hasLocalPart "xmlns" .> getChildren)	)--					-- select namespaces from all namespace declarations-      , ("dnsn1n2dnsn2n2"-			, multi (isXTag .> getAttrl .> isNamespaceDecl .> getChildren)	)--					-- all default namespace declarations-      , ("dnsn2"	, multi (isXTag .> getAttrl .> hasLocalPart "xmlns" .> getChildren)	)--					-- all none default namespace declarations-      , ("n1n2dnsn2"	, multi (isXTag .> getAttrl .> hasPrefix "xmlns" .> getChildren)	)-      , ("n1n2"		, multi (isXTag .> getAttrl .> hasPrefix "xmlns" .> hasLocalPart "x" .> getChildren)	)-      , ("n2"		, multi (isXTag .> getAttrl .> hasPrefix "xmlns" .> hasLocalPart "y" .> getChildren)	)-      , ("dns"		, multi (isXTag .> getAttrl .> hasPrefix "xmlns" .> hasLocalPart "z" .> getChildren)	)-      ]-    where-						-- the text representation of the tree-						-- with ' instead of " for readablility of the string constants-    src = "<t xmlns='dns' xmlns:x='n1' xmlns:y='n2' xmlns:z='dns'>"-	  ++ "sss"-	  ++ "<t a='1' x:a='2'>aaa</t>"-	  ++ "<x:t a='x1' y:a='x3'>bbb</x:t>"-	  ++ "<y:t a='y1' y:a='y3'>ccc</y:t>"-	  ++ "<x:t xmlns:x='n2' x:a='u4'>ddd</x:t>"-	  ++ "<z:t x:a='z4' z:a='z5'>zzz</z:t>"-	  ++ "<e b='42'>eee</e>"-	  ++ "<f xmlns='n2'>fff<g>ggg</g></f>" ++-	  "</t>"--						-- the filter for generating the test document-    sDocFilter-	= tag "t" [ sattr "xmlns"   "dns"	-- 4 namespace declarations-		  , sattr "xmlns:x" "n1"-		  , sattr "xmlns:y" "n2"-		  , sattr "xmlns:z" "dns"-		  ]-            [ txt "sss"-	    , tag "t" [ sattr "a"   "1"-		      , sattr "x:a" "2" ]-	        [ txt "aaa"-		]-	    , tag "x:t" [ sattr "a"   "x1"-			, sattr "y:a" "x3"-			]-	        [ txt "bbb"-		]-	    , tag "y:t" [ sattr "a"   "y1"-			, sattr "y:a" "y3"-			]-	        [ txt "ccc"-		]-	    , tag "x:t" [ sattr "xmlns:x" "n2"	-- redefinition of prefix x:-			, sattr "x:a" "u4"-			]-	        [ txt "ddd"-		]-	    , tag "z:t" [ sattr "x:a" "z4"-			, sattr "z:a" "z5"-			]-	        [ txt "zzz"-		]-	    , tag "e" [ sattr "b" "42" ]-                [ txt "eee"-		]-	    , tag "f" [ sattr "xmlns" "n2"	-- redefinition of default namespace-		      ]-                [ txt "fff"-		, tag "g" [ ]-		    [ txt "ggg" ]-		]-	    ]-						-- create document and propagate namespaces-    simpleDoc = head $ (sDocFilter .> propagateNamespaces) undefined---- |--- minimal tests for parsing data.------ the tests are document trees with a root--- node containing a single text node with the document source.--- That tree is passed to the parser, which substitutes the text node with the parsed xml tree.--- In general this may be a list of trees containing also the--- surrounding parts like the xml declaraion, the document type definition--- possibly comments and processing instructions.------ see also: 'testStateFilter'--parseTests	:: Test-parseTests-    = TestLabel "minimal parser tests" $-      TestList -      [ testStateFilter "</><x/><//>"	parseXmlDoc				mini	-- the tree inclusive root node-      , testStateFilter "<x/>"	(parseXmlDoc .>> liftMf getChildren)		mini	-- only the content-      , testStateFilter "<x/>"	(parseXmlDoc .>> liftMf getChildren)		min2	-- same content-      , testStateFilter ""	(parseXmlDoc .>> liftMf getChildren)		minErr	-- syntax error: content empty-      , testStateFilter errr	(parseXmlDoc .>> liftMf (getValue a_status))	minErr	-- syntax error reported in a_status-      ]-    where-    errr	= show c_err-    mini	= mkMinimalDoc "<x/>"-    min2	= mkMinimalDoc "<x></x>"-    minErr	= mkMinimalDoc "<x>"----- |--- simple external file containing one tag--mini1		:: XmlTree-mini1		= newDocument "mini1.xml"		-- test documents---- |--- simple external file containing one tag--mini2		:: XmlTree-mini2		= newDocument "mini2.xml"---- |--- simple not existing external file--notThere	:: XmlTree-notThere	= newDocument "notThere.xml"		-- does not exist---- |--- These test check the access to external files--- and error reporting in case of input or parse errors--- Some test issue tree like trace output of the documents read--- to show the internal structure and nesting--inputTests	:: Test-inputTests-    = TestLabel "input tests" $-      TestList-      [ testStateFilter "mini1.xml"-	                        ( putXmlTree .>>-				  liftMf (getValue a_source)-				)					mini1-      , testStateFilter ok	( liftMf (getValue a_status)-				)					mini1-      , testStateFilter ""	( liftMf getChildren-				)					mini1-      , testStateFilter "<x/>"	( getXmlContents .>>-				  putXmlTree .>>-				  liftMf getChildren-				)					mini1-      , testStateFilter ok	( getXmlContents .>>-				  liftMf (getValue a_status)-				)					mini1-      , testStateFilter "4"	( getXmlContents .>>-				  liftMf getContentLength .>>-				  putXmlTree .>>-				  liftMf (getValue a_contentLength)-				)					mini1-      , testStateFilter ok	( getXmlContents .>>-				  liftMf (getValue a_status)-				)					mini2-      , testStateFilter ""	( getXmlContents .>>-				  putXmlTree .>>-				  liftMf getChildren-				)					notThere-      , testStateFilter fat	( getXmlContents .>>-				  liftMf (getValue a_status)-				)					notThere-      ]-    where-    ok	= show c_ok-    fat	= show c_fatal---- |--- A few tests for removing parts of a document tree.--- As input tree the document in file mini2.xml is used.--removeTests	:: Test-removeTests-    = TestLabel "document transformation tests" $-      TestList-      [ testEditFilter allText	getAllText				mini2-      , testEditFilter allData  (removeAllWhiteSpace .> getAllText)	mini2-      , testEditFilter allImp	(removeIgnorableData .> getAllText)	mini2-      , testEditFilter allDat	(removeMeta .> getAllText)		mini2-      ]-    where-    getAllText			= deep isXText-    containsUnknownOrIgnore	= getChildren .> ( isText "unknown"-						   +++-						   isText "ignore"-						 )-    removeIgnorableData		= processTopDown ( none-						   `when`-						   ( isTag "data" .> containsUnknownOrIgnore )-						 )-    removeMeta			= processTopDown ( none-						   `when`-						   ( isTag "data" .> hasValue "class" ( == "meta" ) )-						 )-    allText	= " ignore unknown important important "-    allData	= "ignoreunknownimportantimportant"-    allImp	= "   important important "-    allDat	= " ignore  important  "---ys :: XmlTree-ys = head $-     tag "s:Envelope"-     [ sattr "xmlns:s" "http://schemas.xmlsoap.org/soap/envelope/",-       sattr "xmlns:xenc" "http://www.w3.org/2001/04/xmlenc#",-       sattr "xmlns:eg" "http://example.org/paymentv2",-       sattr "xmlns:wsse" "http://schemas.xmlsoap.org/ws/2002/12/secext"-     ]-     [ stag "s:Header"-       [ stag "wsse:Security"-         [ tag "wsse:BinarySecurityToken"-           [ sattr "ValueType" "wsse:Kerberosv5ST",-             sattr "EncodingType" "wsse:Base64Binary"-           ]-           [ txt "QMwcAG ..."-           ]-	 ]-       ],-       stag "s:Body"-       [ stag "eg:OrderCurrency"-         [ stag "eg:Name"-           [ txt "John Smith" ],-	   tag "eg:Amount"-           [ sattr "Currency" "'USD'" ]-	   [ txt "1000" ],-	   tag "eg:CreditCard"-           [ sattr "Limit" "'5000'",-	     sattr "Currency" "'GBP'"-	   ]-	   [ stag "xenc:EncryptedData"-             [ atag "xenc:EncryptionMethod"-               [ sattr "Algorithm" "http://www.w3.org/2001/04/xmlenc#tripledes-cbc" ]-             ],-	     stag "xenc:CipherData"-             [ stag "xenc:CipherValue"-               [ txt "r5KipsDV ..." ]-             ]-	   ]-         ]-       ]-     ]-     .> propagateNamespaces-     .> indentDoc-     $ undefined--}---- |--- ausiliary function to make haskell string constants with quotes more readable--singleToDoubleQuote	:: String -> String-singleToDoubleQuote-    = map (\ c -> if c == '\'' then '"' else c)----testLA	:: String -> String -> LA XmlTree XmlTree -> Test-testLA doc expected f-    = TestCase $ assertEqual "LA XmlTree XmlTree:" [expected] res-      where-      res = runLA (xread >>> xshow f) doc--testLAString	:: String -> String -> LA XmlTree String -> Test-testLAString doc expected f-    = TestCase $ assertEqual "LA XmlTree String:" [expected] res-      where-      res = runLA (xread >>> f) doc--mkTestSeqLA	:: String -> [(String, LA XmlTree XmlTree)] -> [Test]-mkTestSeqLA doc-    = map (\ (res, f) -> testLA doc (singleToDoubleQuote res) f)--simpleTests	:: Test-simpleTests-    = TestLabel "simple LA tests" $-      TestList $-      mkTestSeqLA doc tests-    where-    doc = "<x a='b'>0<y c='d'>1</y>2<z/></x>"-    tests = [ (doc			, this	)-	    , ("0<y c='d'>1</y>2<z/>"	, getChildren	)-	    , ("<y c='d'>1</y><z/>"	, getChildren >>> isElem	)-	    , ("02"			, getChildren >>> isText	)-	    , ("<z/>"			, getChildren >>> hasName "z"	)-	    , ("<z/>"			, getChildren >>> (hasName "x" <+> hasName "z")	)-	    , ("<y c='d'>1</y><z/>"	, getChildren >>> (hasName "y" <+> hasName "z")	)-	    , ("1"			, getChildren >>> getChildren	)-	    , ("1"			, getChildren >>> getChildren >>> isText	)-	    , (""			, getChildren >>> getChildren >>> isElem	)--	    , ("b"			, getAttrValue "a" >>> mkText	)-	    , (""			, getAttrValue "z" >>> mkText	)-	    , ("d"			, getChildren >>> getAttrValue "c" >>> mkText	)-	    , ("1"			, hasName "x" >>> getChildren >>> hasName "y" >>> getChildren	)--	    , ("012"			, deep isText 	)-	    , ("12"			, deep (hasText (all (/= '0'))) 	)-	    , (doc			, deep isElem	)-	    , ("<y c='d'>1</y><z/>"	, getChildren >>> deep isElem	)-	    , ("<y c='d'>1</y>"		, deep (hasName "y")	)-	    , ("<y c='d'>1</y>"		, deep (hasAttr "c")	)-	    , ("1"			, deep (hasAttr "c") >>> getChildren	)-	    , ("<y c='d'>1</y><z/>"	, deepest isElem	)-	    , ("<x a='b'>0<y c='d'>1</y>2<z/></x><y c='d'>1</y><z/>"	, multi isElem	)-	    , ("<x a='b'/><y c='d'/><z/>"	, multi isElem >>> replaceChildren none	)-	    , ("xyz"			, multi (isElem >>> getName) >>> mkText	)-	    , ("b"			, getAttrValue "a"  >>> mkText	)-	    , (""			, getAttrValue "aa" >>> mkText	)-	    , ("b"			, getAttrValue0 "a"  >>> mkText	)-	    , ("z"			, withDefault (getAttrValue0 "aa") "z" >>> mkText	)--	    ]--nodeSetTests	:: Test-nodeSetTests-    = TestList $-      [ TestLabel "node set and simple XPath tests with getXPathTrees" $-	TestList $-	mkTestSeqLA doc (testGetXPathTrees tests)--      , TestLabel "node set and simple XPath tests with getXPathNodeSet" $-	TestList $-	mkTestSeqLA doc (testGetXPathNodes tests)--      , TestLabel "node set and simple XPath tests with processFromNodeSet" $-        TestList $-        mkTestSeqLA doc (testProcessXPath processTests)--      , TestLabel "node set and simple XPath tests with processXPathTrees" $-        TestList $-        mkTestSeqLA doc (testProcessXPath' processTests)-      ]-    where-    doc = "<x p='.'>.0<x p='.1'>.1.0</x>.2<y p='.3'>.3.0<x p='.3.1'>.3.1.0</x></y>.4</x>"--    testGetXPathTrees = map (\ (r, xp) -> (r, getXPathTrees xp))			-- these arrows are equivalent-    testGetXPathNodes = map (\ (r, xp) -> (r, getFromNodeSet $< getXPathNodeSet xp))	-- except for the ordering of the result set-											-- which does not matter for these tests-    testProcessXPath  = map (\ (r, xp, a) -> (r, processFromNodeSet a $< getXPathNodeSet xp))-    testProcessXPath' = map (\ (r, xp, a) -> (r, processXPathTrees a xp))--    tests = [ (doc						, "/x"	)-	    , ("<y p='.3'>.3.0<x p='.3.1'>.3.1.0</x></y>"	, "/x/y"	)-	    , ("<x p='.3.1'>.3.1.0</x>"				, "/x/y/x"	)-	    , (".0.2.4"						, "/x/text()"	)-	    , (".3.0"						, "/x/y/text()"	)-	    , ("<x p='.1'>.1.0</x><x p='.3.1'>.3.1.0</x>"	, "/x//x"	)-	    ]--    processTests-	 = [ ("<x p='.'>x<x p='.1'>x</x>x<y p='.3'>x<x p='.3.1'>x</x></y>x</x>",	  "//text()",		changeText (const "x")	)-	   , ("<x p='.'>.0<x p='.1'>.1.0</x>.2<y p='.3'>.3.0<x p='.3.1'>x</x></y>.4</x>", "/x/y/x/text()",	changeText (const "x")	)-	   , ("<x p='.'>.0<x p='.1'>.1.0</x>.2<y p='.3'>.3.0</y>.4</x>", 		  "/x/y/x",		none			)-	   , ("<x p='.'>.0<x p='.1'>.1.0</x>.2<y p='.3'>.3.0zzz</y>.4</x>",		  "/x/y/x",		txt "zzz"		)-	   , ("<x p='.'>.0<x p='.1'>.1.0</x>.2<y p='.3'>.3.0<x p='.3.1' q='3.2'>.3.1.0</x></y>.4</x>",-											  "/x/y/x",		addAttr "q" "3.2"	)-	   ]---- |--- the complete set of test cases--allTests	:: Test-allTests-    = TestList-      [ simpleTests-      , nodeSetTests-      ]--main	:: IO ()-main-    = do-      c <- runTestTT allTests-      putStrLn $ show c-      let errs = errors c-	  fails = failures c-      System.exitWith (codeGet errs fails)--codeGet	:: Int -> Int -> ExitCode-codeGet errs fails-    | fails > 0       = ExitFailure 2-    | errs > 0        = ExitFailure 1-    | otherwise       = ExitSuccess---- ----------------------------------------------------------
− examples/arrows/hunit/Makefile
@@ -1,32 +0,0 @@-# $Id: Makefile,v 1.2 2006/05/11 14:47:18 hxml Exp $--HXT_HOME	= ../../..-PKGFLAGS	=-GHCFLAGS	= -Wall -O2-GHC		= ghc $(GHCFLAGS) $(PKGFLAGS)--prog		= HUnitExample--all		: $(prog)--force		:-		$(GHC) --make $(GHCPACKAGES) -o $(prog) $(prog).hs--$(prog)		: $(prog).hs-		$(GHC) --make $(GHCPACKAGES) -o $@ $<--test		: $(prog)-		@echo "===> run HUnit examples" ; echo ; sleep 2-		$(prog)--DIST		= $(HXT_HOME)/dist/examples/arrows-DIST_DIR	= $(DIST)/hunit-DIST_FILES	= mini1.xml mini2.xml Makefile $(prog).hs--dist		:-		[ -d $(DIST_DIR) ] || mkdir -p $(DIST_DIR)-		cp $(DIST_FILES) $(DIST_DIR)--clean		:-		rm -f $(prog) $(prog).o $(prog).hi-
− examples/arrows/hunit/mini1.xml
@@ -1,1 +0,0 @@-<x/>
− examples/arrows/hunit/mini2.xml
@@ -1,1 +0,0 @@-<data> <data class="data">ignore</data> <data class="meta">unknown</data> <data><data class="data">important</data> <data class="meta">important</data></data> </data>
+ examples/arrows/hxpath/.ghci view
@@ -0,0 +1,4 @@+:set -package-conf ../../../lib/hxt/package.conf+:set -package hxt+:set -Wall+:load HXPath
examples/arrows/hxpath/HXPath.hs view
@@ -29,7 +29,6 @@  import Data.Maybe - -- ------------------------------------------------------------  -- |
+ examples/arrows/hxpath/W3CTestData.hs view
@@ -0,0 +1,1079 @@+module W3CTestData where++testListW3C=[+		"$h - $i",+		"$hotelnode/location/@country",+		"$in//text()",+		"$l10n.name",+		"$lookup/@text",+		"$start + $step",+		"$texts[position() &gt; 1]",+		"$var1|$var2",+		"$var1|child::child2",+		"$var1|key('key1','Lynne Rosenthal')",+		"$x=''",+		"$x='foo'",+		"$xml-source",+		"$y='foo'",+		"$zoo:bear",+		"' #text'",+		"' 6 ' div 2",+		"' 6 '*div",+		"' x 4'",+		"' x 4'",+		"'....5....|'",+		"'1' and '0'",+		"'2'&gt;'1'",+		"'200'",+		"'ABC'",+		"($terms/table/expand[@language=$lang]/gentext[@key=$key])[1]",+		"((((((n3+5)*(3)+(((n2)+2)*(n1 - 6)))-(n4 - n2))+(-(4-6)))))",+		"(((ancestor::foo)[1])/@att1)",+		"((ancestor::foo))[1]/@att1",+		"(* - 4) div 2",+		"(* - 4)**",+		"(2 + number('xxx'))",+		"(24 div 3 +2) div (40 div 8 -3)",+		"(5 mod 2 = 1) and (5 mod -2 = 1) and (-5 mod 2 = -1) and (-5 mod -2 = -1)",+		"(77 mod $anum + n5 mod 8) mod $anum",+		"(ancestor-or-self::*)[@att1][1]/@att1",+		"(ancestor::foo)[1]/@att1",+		"(ancestor::foo[1])/@att1",+		"(ancestor::section|ancestor::simplesect         |ancestor::articleinfo)[last()]",+		"(chapter//footnote)[2]",+		"(child::chapter/descendant-or-self::node())/footnote[2]",+		"(n1*n2*n3*n4*n5*n6)div n7 div n8 div n9 div n10",+		"(n1/@attrib)*(n2/@attrib)",+		"(n1/@attrib)+(n2/@attrib)",+		"(preceding-sibling::*|following-sibling::*)/ancestor::*[last()]/*[last()]",+		"(preceding-sibling::foo)[1]/@att1",+		"(preceding::foo)[1]/@att1",+		"(section//@title)[7]",+		"(xalan:nodeset($rtf)/default:docelem/test:elem3)", -- namespaces noch mal ueberdenken+		"* +3",+		"*//la | //Bflat | re",+		"*/p",+		"*[$index]",+		"*[$index]",+		"*[$index]",+		"*[1]",+		"*[3]",+		"*[4]",+		"*[@test and position()=1]",+		"*[@test and position()=4]",+		"*[@test and position()=7]",+		"*[@test and position()=8]",+		"*[@test='true']",+		"*[@test][1]/num",+		"*[@test][position()=1]/num",+		"*[last()=position()]",+		"*[last()]",+		"*[local-name()='bar']",+		"*[not(@test)][last()=position()]",+		"*[not(@test)][last()]",+		"*[position()=1]",+		"*[position()=3]",+		"*[position()=4]",+		"*[starts-with(name(.),'f')]",+		"*|@*",+		"*|@*|comment()|processing-instruction()|text()",+		"-(n-2/@attrib) - -(n-1/@attrib)",+		"-(n1|n2)",+		"-.0000000000000000000000000000000000000000123456789",+		"-.01",+		"-n-2 --n-1",+		"-n-2/@attrib --n-1/@attrib",+		"..",+		"../../a/b[1]",+		"..//foo",+		"../@id",+		"../node()",+		"./*[name(.) = $sortcol]",+		".//*[@so]",+		".//PERSONA",+		".//a",+		".//center",+		".//center",+		".//comment()",+		".//f",+		".//near-south/preceding-sibling::*|following-sibling::east/ancestor-or-self::*[2]",+		".//text()",+		".//title",+		"./@id",+		"./@theattrib",+		".0000000000000000000000000000000000000000123456789",+		".01",+		".123456789",+		"/",   +		"/*/@group",+		"//*",+		"//*",+		"//*[count(./*/*) &gt; 0]",+		"//*[count(ancestor::*) &gt;= 2]/../parent::*",+		"//ACT",+		"//ancestor::*",+		"//child1[parent::element1]",+		"//child1|//child2",+		"//child2[ancestor-or-self::element2]",+		"//child2[ancestor::element2]",+		"//child5|//child2|//child4",+		"//comment()",+		"//inc/node4",+		"//item[@type=current()/@name]",+		"//noChild1|//noChild2",+		"//north/dup2 | south/preceding-sibling[4] | north/dup1 | north/*",+		"//processing-instruction()",+		"//xx/descendant::*",+		"/doc/*[@test='true']",+		"/doc/a/b/@attr",+		"/doc/critter[@type='cat']",+		"/doc/mid/inner",+		"/doc/sub1/child1|/doc/sub2/child2",+		"/docs/a",+		"/docs/a",+		"/page/contents/avail/hotel",+		"/sss/sss/i",+		"/sss/sss/i",+		"0 &gt; -0",+		"0 = -0",+		"0 div 0 &gt;= 0",+		"0 div 0 &lt; 0",+		"0 div 0",+		"0 or ''",+		"0",+		"0000000000",+		"1 = '001'",+		"1 = 1.00",+		"1 div -0 = 1 div 0",+		"1 div -0 = 2 div -0",+		"1&gt;1",+		"1&lt;1",+		"1&lt;=1",+		"1-2",+		"10+5+25+20+15+50+35+40",+		"10+7",+		"100-$anum -5-15-$anum",+		"100-9-7-4-17-18-5",+		"100-n6 -4-n1 -1-11",+		"12",+		"123",+		"1234",+		"12345",+		"123456",+		"1234567",+		"12345678",+		"123456789",+		"1234567890",+		"12345678901",+		"123456789012",+		"1234567890123",+		"12345678901234",+		"123456789012345",+		"1234567890123456",+		"12345678901234567",+		"123456789012345678",+		"16-div",+		"1=1",+		"2 * -number('xxx')",+		"2 - number('xxx')",+		"2 div number('xxx')",+		"2 mod number('xxx')",+		"2",+		"2&gt;1",+		"2&gt;=1",+		"2&gt;=2",+		"2&lt;1",+		"2&lt;=1",+		"2*3",+		"2+n5+7+n3",+		"20",+		"25-*",+		"256",+		"3",+		"3",+		"3*2+5*4-4*2-1",+		"3+6",+		"3-1",+		"32",+		"4",+		"4",+		"444 + $t1num",+		"48 mod 17 - 2 mod 9 + 13 mod 5",+		"5 mod 2",+		"5",+		"5",+		"5.*.",+		"5.+*",+		"54 div*",+		"555",+		"56 mod round(n5*2+1.444) - n6 mod 4 + 7 mod n4",+		"6 div -2",+		"6 div 2",+		"6",+		"60",+		"7 - -3",+		"7",+		"7",+		"7+-3",+		"70 div $anum - 18 div n6 + $anum div n2",+		"8",+		"80 div n2 + 12 div 2 - n4 div n2",+		"9",+		"9.87654321012345",+		"98.7654321012345",+		"987.654321012345",+		"9876.54321012345",+		"98765.4321012345",+		"987654.321012345",+		"9876543.21012345",+		"98765432.1012345",+		"987654321.012345",+		"9876543210",+		"9876543210.12345",+		"98765432101.2345",+		"987654321012.345",+		"9876543210123.45",+		"98765432101234.5",+		"FM|PERSONAE|ACT",+		"Name/@First",+		"OL",+		"Personal_Information/Age",+		"Spr/State[. = 'Open']",+		"a/*[last()]",+		"a/child::*[last()]",+		"a/child::comment()[last()]",+		"a/child::node()[last()]",+		"a/child::text()[last()]",+		"a/descendant::*[last()]",+		"a/x",+		"a['3.5' &lt; 4]",+		"a['target'!=descendant::*]",+		"a['target'=descendant::*]",+		"a[('target'=descendant::*) or @squish]",+		"a[(@squeesh or @squish) and @squash]",+		"a[*=9]",+		"a[0 &lt; true()]",+		"a[0]",+		"a[1 &lt; 2]",+		"a[1 &lt; 3]",+		"a[1]",+		"a[3 &gt; following-sibling::*]",+		"a[3 &gt;= following-sibling::*]",+		"a[3 &lt; following-sibling::*]",+		"a[3 &lt;= following-sibling::*]",+		"a[3-2]",+		"a[3.0='3.0']",+		"a[3=following-sibling::*]",+		"a[3]",+		"a[4 != following-sibling::*]",+		"a[4]",+		"a[@squeesh or (@squish and @squash)]",+		"a[@squeesh or @squish and @squash]",+		"a[descendant::*!='target']",+		"a[descendant::*='target']",+		"a[div=9]",+		"a[false()!=following-sibling::*]",+		"a[following-sibling::* != 4]",+		"a[following-sibling::* &gt; 3]",+		"a[following-sibling::* &gt;= 3]",+		"a[following-sibling::* &lt; 3]",+		"a[following-sibling::* &lt;= 3]",+		"a[following-sibling::*!=false()]",+		"a[following-sibling::*=3]",+		"a[following-sibling::*=descendant::*]",+		"a[following-sibling::*=true()]",+		"a[not(('target'=descendant::*) or @squish)]",+		"a[not(@*)]",+		"a[number('3')]",+		"a[position() &lt;=3]",+		"a[position()!=2]",+		"a[position()&gt;2]",+		"a[position()&gt;=2]",+		"a[position()&lt;3]",+		"a[position()=$first]",+		"a[position()=1]",+		"a[position()=3]",+		"a[position()=4]",+		"a[true()='stringwithchars']",+		"a[true()=4]",+		"a[true()=following-sibling::*]",+		"alternate/name/first",+		"ancestor-or-self::*",+		"ancestor-or-self::*[1]",+		"ancestor-or-self::*[1]/text()",+		"ancestor-or-self::*[@att1][1]/@att1",+		"ancestor-or-self::sub | ancestor-or-self::sub-sub",+		"ancestor::*",+		"ancestor::*[3]",+		"ancestor::*[count(child::*) &gt; 1]/*[not(. = current()/ancestor-or-self::*)]",+		"ancestor::foo[1]/@att1",+		"ancestor::sub1|ancestor::sub2",+		"attribute :: *",+		"attribute :: div",+		"attribute*(div - 4)",+		"attribute::*",+		"attribute::*[2]",+		"attribute::attr1|attribute::attr2",+		"attribute::center-attr-2",+		"author/name|author/bibliography/author/chapters",+		"author/name|author/bibliography/author/name",+		"author/name|author/noElement",+		"author[(name/@real='no' and position()=1)]|author[(name/@real='yes' and position()=last())]",+		"author[name/@real='no']|author[name/@real='yes']",+		"author[name='Mary Brady']|author[name/@real='no']",+		"bar | joes:bar",+		"bar[(@a='1' and @b='1') or (@c='1' and @d='1')]",+		"bar[(@a='1' or @b='1') and (@c='1' or @d='1')]",+		"bar[(@a='1' or @b='1') and @c='1']",+		"bar[@a='1' and (@b='1' or @c='1') and @d='1']",+		"bar[@a='1' and @b='1' or @c='1' and @d='1']",+		"bar[@a='1' and @b='1']",+		"bar[@a='1' or (@b='1' and @c='1') or @d='1']",+		"bar[@a='1' or @b='1' and @c='1' or @d='1']",+		"bar[@a='1' or @b='1' or @c='1']",+		"boolean($ResultTreeFragTest)",+		"boolean($emptyResultTreeFragTest)",+		"boolean('')",+		"boolean('0')",+		"boolean(-0)",+		"boolean(0 div 0)",+		"boolean(0)",+		"boolean(1 div 0)",+		"boolean(1)",+		"boolean(doc)",+		"boolean(foo)",+		"ceiling(-1.5)=-1",+		"ceiling(0.0)",+		"ceiling(1)=1",+		"ceiling(1.1)=2",+		"ceiling(1.54)",+		"ceiling(2.999999)",+		"ceiling(n0)",+		"ceiling(n1)",+		"ceiling(n2)",+		"ceiling(number('xxx'))",+		"center//*",+		"center//child::*",+		"center//descendant::*",+		"center/child::*",+		"center/descendant::*",+		"chapter//footnote[1]",+		"chapter//footnote[2]",+		"chapter/descendant::footnote[6]",+		"chapter/note",+		"chapter/note",+		"child :: sub",+		"child1[child::child2]",+		"child::*",+		"child::*/child::*",+		"child::*/descendant::*",+		"child::*[2]",+		"child::article|key('key1','Carmelo Montanez')",+		"child::near-south-west",+		"child::node()",+		"child::sub",+		"child::sub1|child::sub2",+		"child[@deep='3']|child[@wide='3']",+		"child[@wide='3'] | key('one','3')",+		"child[@wide='3']|child[@deep='3']",+		"chooser",+		"comment ()",+		"concat(         substring(subj,1,number(not(starts-with(.,'Re: ')))*string-length(subj)),         substring(substring-after(subj,'Re: '),1,           		number(starts-with(.,'Re: '))*string-length(substring-after(subj,'Re: '))))",+		"concat($act,' - ',TITLE,'   ')",+		"concat($mParam,$nParam,$oParam,$pParam)",+		"concat($str,'....5....|')",+		"concat('id=', string($p2))",+		"concat(/*, /*[@attr='whatsup'])",+		"concat(a, 34)",+		"concat(a, b)",+		"concat(a, b, c, d, e)",+		"concat(false(),'ly')",+		"concat(left,right,orig)",+		"concat(left,right,orig)",+		"concat(team[1], ' versus ', team[2])",+		"concat(team[1]/@score, '-', team[2]/@score)",+		"contains(       unparsed-entity-uri('hatch-pic'),'grafix/OpenHatch.gif')",+		"contains($node,$find)",+		"contains('','')",+		"contains('ENCYCLOPEDIA', 'CYCL')",+		"contains('ENCYCLOPEDIA', 'TEST')",+		"contains('ab', 'abc')",+		"contains('abc', '')",+		"contains('abc', 'bc')",+		"contains('abc', 'bcd')",+		"contains('foo','o')",+		"contains('true()', 'e')",+		"contains(., '&amp;')",+		"contains(concat(.,'BC'),concat('A','B','C'))",+		"contains(doc, 'CYCL')",+		"contains(doc, 'TEST')",+		"contains(doc/@attr, 'TEST')",+		"contains(doc/@attr, 'amwi')",+		"contains(main,sub)",+		"contains(main,sub)",+		"contains(main,sub)",+		"contains(main,sub)",+		"count($var1)",+		"count($var2)",+		"count(*)",+		"count(*)",+		"count(*/z[2])",+		"count(.//SPEECH)",+		"count(.//comment())",+		"count(/doc/alpha[last()]/h)",+		"count(/doc/chapter/note)",+		"count(a/@*)",+		"count(a/attribute::*)",+		"count(alpha/*[last()][name()='z'])",+		"count(ancestor::section             |../ednote|following::title|../bogus)",+		"count(ancestor::section             |ancestor::simplesect|ancestor::article)",+		"count(ancestor::section           |ancestor::simplesect|ancestor::articleinfo)",+		"count(div)",+		"count(following-sibling::*)",+		"count(key('mykey', 'Introduction'))",+		"count(namespace::*)",+		"count(preceding::text())",+		"count(preceding::text())",+		"count(xalan:nodeset($rtf)/default:docelem/default:elem3)",+		"counter:read('index')",+		"counter:read('index')",+		"critter",+		"critter",+		"current()",+		"current()",+		"current()",+		"customers/customer",+		"d",+		"dat",+		"date",+		"date:getYear()",+		"day",+		"day",+		"day",+		"day",+		"day",+		"descendant-or-self::*",+		"descendant-or-self::*",+		"descendant-or-self::*[3]",+		"descendant-or-self::center",+		"descendant-or-self::far-south",+		"descendant-or-self::sub1|descendant-or-self::sub2",+		"descendant::*",+		"descendant::*",+		"descendant::*/child::*",+		"descendant::*[3]",+		"descendant::*[string-length(name(.))=1]",+		"descendant::child1|descendant::child2",+		"descendant::far-south",+		"display",+		"display",+		"display",+		"div +3",+		"div div mod",+		"div mod mod",+		"div",+		"div/@attrib div mod/@attrib",+		"div/@attrib mod mod/@attrib",+		"div/para[lang('en')]",+		"doc/element1[2]/child1[last()]",+		"document($typefile,/)",+		"document('')/*/xsl:template[@name=$whichtmplt]",+		"document('')/*/xsl:template[@name=$whichtmplt]",+		"document('')/*/xsl:template[@name='qq']/node()",+		"document('')/xsl:stylesheet/ped:test[@attrib='yeha']",+		"document('')/xsl:stylesheet/ped:test[@attrib='yeha']",+		"document('../impincl-test/mdocs11a.xml')//body",+--		"document('..\mdocs\compu.xml')/market.participant/address.set/*", -- \ mag er nicht+		"document('bib.xml')",+		"document('level3/xreluri09a.xml',document('level1/level2/xreluri09b.xml'))",+		"document('mdocs01a.xml')//body",+		"document('mdocs03a.xml',section)",+		"document('select68.xml')//inside",+		"document('select68.xml')//inside",+		"document('terms.xml')",+		"document('variable20.xml')",+		"document('x14template.html')",+		"document(a)//body",+		"document(a)//body",+		"document(a)//body",+		"document(document(places))",+		"document(filename,document('level1/level2/xreluri10b.xml'))/*/body",+		"document(places)",+		"document(places)//body",+		"document(places,second)/*",+		"document(pointer/urlref/@urlstr)/market.participant/business.identity.group/business.name",+		"element",+		"element1[(((((2*10)-4)+9) div 5) mod 3 )]",+		"element1[(((((2*10)-4)+9) div 5) mod floor(3))]",+		"element1[descendant-or-self::child2]",+		"element1[floor(2)]",+		"em:foo",+		"expense-report/total",+		"expense-report/total",+		"ext:getPIData(doc/processing-instruction('a-pi'))",+		"extn1:getPIData(doc/processing-instruction('a-pi')[1])",+		"extn1:getPIData(doc/processing-instruction('b-pi'))",+		"fa/../mi | Aflat/natural/la | Csharp//* | /doc/do | *//ti",+		"false() and 1 div 0",+		"false() and false()",+		"false() and true()",+		"false() or false()",+		"false() or true()",+		"false()",+		"false()=''",+		"false()=0",+		"floor(-1.5)",+		"floor(-1.5)=-2",+		"floor(0.0)",+		"floor(1)=1",+		"floor(1.9)",+		"floor(1.9)=1",+		"floor(2.999999)",+		"floor(n0)",+		"floor(number('xxx'))",+		"following-sibling::*",+		"following-sibling::*/preceding-sibling::*",+		"following-sibling::*[1]",+		"following-sibling::*[2]/preceding-sibling::*",+		"following-sibling::*[2]/preceding-sibling::*[4]",+		"following-sibling::*[2]/preceding-sibling::*[4]/following-sibling::*[5]/preceding-sibling::*[4]/preceding-sibling::*[2]",+		"following-sibling::east",+		"following-sibling::node()",+		"following::*",+		"following::*[4]",+		"following::*[4]/../*[2]",+		"foo[(bar[2])='this']",+		"foo[(bar[2][(baz[2])='goodbye'])]",+		"format-number('foo','#############')",+		"format-number('foo','#############')",+		"format-number(-1 div 0,'###############################')",+		"format-number(-1 div 0,'###############################')",+		"format-number(-26931.4,'!!!,!!!.!!!')",+		"format-number(-26931.4,'###,###.###')",+		"format-number(-26931.4,'###,###.###','myminus')",+		"format-number(-26931.4,'###,###.###;###,###.###')",+		"format-number(-26931.4,'###.###,###','periodgroup')",+		"format-number(-26931.4,'###.###,###','periodgroup')",+		"format-number(-26931.4,'###.###,###','periodgroup')",+		"format-number(-26931.4,'###.###,###','periodgroup')",+--		"format-number(-26931.4,'+!!,!!!.!!!\-!!!,!!!.!!!')", -- vom W3C auskommentiert+		"format-number(-26931.4,'+###,###.###;-###,###.###')",+		"format-number(-26931.4,'+###,###.###;_###,###.###')",+		"format-number(-26931.4,'-###,###.###')",+		"format-number(-26931.4,'-###,###.###','myminus')",+		"format-number(-26931.4,'_###,###.###','myminus')",+		"format-number(-42857.1,'###,###.###')",+		"format-number(-42857.1,'###,###.###','myminus')",+		"format-number(-42857.1,'###,###.###','myminus')",+		"format-number(-42857.1,'###,###.###','newminus')",+		"format-number(-42857.1,'###,###.###','newminus')",+		"format-number(-73816.9,'###,###.###')",+		"format-number(-73816.9,'###,###.###')",+		"format-number(-73816.9,'###,###.###')",+		"format-number(-73816.9,'###,###.###')",+		"format-number(0.25, '00%')",+		"format-number(0.4857,'###.###%')",+		"format-number(0.4857,'###.###c')",+		"format-number(0.4857,'###.###m')",+		"format-number(0.4857,'###.###‰')",+		"format-number(1 div 0,'###############################')",+		"format-number(1 div 0,'###############################')",+		"format-number(1, '#,##0')",+		"format-number(1, '00')",+		"format-number(1, '00.0')",+		"format-number(1000, '###0')",+		"format-number(1234.567,'#*###*###!###','foo:decimal1')",+		"format-number(12792.14*96.58,'##,###,000.000###')",+		"format-number(2.14*86.58,'PREFIX##00.000###SUFFIX')",+		"format-number(2392.14*(-36.58),'000,000.000###;###,###.000###')",+		"format-number(2392.14*(-36.58),'000,000.000###;-###,###.000###')",+		"format-number(2392.14*36.58,'000,000.000000')",+		"format-number(2392.14*36.58,'000,000.000000','myminus')",+		"format-number(2392.14*36.58,'000,000.000000;###,###.000###')",+		"format-number(2392.14*36.58,'000,000.000000;###,###.000###','myminus')",+		"format-number(239236.588,'00000.00')",+--		"format-number(26931.4,'+!!!,!!!.!!!\-!!,!!!.!!!')", -- vom W3C auskommentiert+		"format-number(2792.14*(-36.58),'000,000.000###')",+		"format-number(4030201.0506,'#!!!,!!!,aaa.aaaaaa0')",+		"format-number(7654321.4857,'### ### ###,#####')",+		"format-number(931.4857,'###!###!###')",+		"format-number(931.4857,'000.000|###')",+		"format-number(95.4857,'¤###.####')",+		"format-number(987654321,'###,##0,00.00')",+		"generate-id(d)",+		"generate-id(xalan:nodeset($rtf)/default:docelem/default:elem4)",+		"growth",+		"growth",+		"human",+		"id('c')/@id",+		"id('c')/@id",+		"id('d b c')",+		"id('id0')/a/b",+		"id('id0')/c/c/a",+		"id('id10')/a",+		"id('id13')",+		"id('id2')/a | id('id5') | id('id15')/a",+		"id('id4')",+		"id('id8')/b/b",+		"id('id9')",+		"id('nomatch')/@id",+		"id(main/b)",+		"id(main/b)",+		"item[$n1]",+		"item[position()=$n]",+		"java:format($formatter, $date)",+		"java:format($formatter, $javadate)",+		"java:get ($counter-table, 'index')",+		"java:java.lang.Long.parseLong(string(.))",+		"java:java.text.SimpleDateFormat.new('yyyy.MM.dd hh:mm')",+		"java:java.util.Calendar.getInstance()",+		"java:java.util.Date.new($date)",+		"java:java.util.Hashtable.new ()",+		"key($keysp, 'Expressions')/subdiv/p",+		"key($keysp, 'Introduction')/subdiv/p",+		"key($keysp, 'Stylesheet Structure')/subdiv/p",+		"key('MonthNum',month)",+		"key('MonthNum',month)",+		"key('baz:mykey', 'Expressions')/p",+		"key('baz:mykey', 'Introduction')/p",+		"key('baz:mykey', 'Stylesheet Structure')/p",+		"key('bib',$lookup)",+		"key('bigspace', 'Expressions')/subdiv/p",+		"key('bigspace', 'Expressions')/subdiv/p",+		"key('bigspace', 'Introduction')/subdiv/p",+		"key('bigspace', 'Introduction')/subdiv/p",+		"key('bigspace', 'Stylesheet Structure')/subdiv/p",+		"key('bigspace', 'Stylesheet Structure')/subdiv/p",+		"key('filterspace', 'Expressions')/subdiv/p",+		"key('filterspace', 'Expressions')/subdiv/p",+		"key('filterspace', 'Introduction')/subdiv/p",+		"key('filterspace', 'Introduction')/subdiv/p",+		"key('filterspace', 'Stylesheet Structure')/subdiv/p",+		"key('filterspace', 'Stylesheet Structure')/subdiv/p",+		"key('k','Albany')",+		"key('k','Albany')",+		"key('k','false')[position()=1]/num",+		"key('k','false')[position()=2]/num",+		"key('k','true')[1]/num",+		"key('k','true')[1]/num",+		"key('k','true')[3]/num",+		"key('k','true')[3]/num",+		"key('k','true')[4]/num",+		"key('k','true')[4]/num",+		"key('k','true')[last()=position()]",+		"key('k','true')[last()]",+		"key('k','true')[position()=1]/num",+		"key('k','true')[position()=4]/num",+		"key('key1','Mary Brady')|key('key2','Rick Rivello')",+		"key('marks',key('titles', 'Expressions')/finder)",+		"key('mykey', 'Expressions')",+		"key('mykey', 'Expressions')/p",+		"key('mykey', 'Introduction')/p",+		"key('mykey', 'Patterns')",+		"key('mykey', 'Second Title in Structure')/p",+		"key('mykey', 'Stylesheet Structure')",+		"key('mykey', 'Stylesheet Structure')/p",+		"key('mykey', 1 )/p",+		"key('mykey', 1+1 )/p",+		"key('mykey', 3.0 )/p",+		"key('mykey', 3.7 )/p",+		"key('mykey',' ')/@title",+		"key('mykey','')/p",+		"key('mykey','Exp Section')/@title",+		"key('mykey','Expressions')/p",+		"key('mykey','Expressions')/p",+		"key('mykey','Intro Section')/@title",+		"key('mykey','Introduction')/p",+		"key('mykey','Introduction')/p",+		"key('mykey','SS Section')/@title",+		"key('mykey','Sort Section')/@title",+		"key('mykey','Sorting')/p",+		"key('mykey','Sorting')/p",+		"key('mykey','Stylesheet Structure')/p",+		"key('mykey','Stylesheet Structure')/p",+		"key('mykey',*//title)",+		"key('mykey1','foo' )/p",+		"key('mykey2', 1 )/p",+		"key('one','3') | key('two','3')",+		"key('smallspace', 'Expressions')/p",+		"key('smallspace', 'Expressions')/p",+		"key('smallspace', 'Introduction')/p",+		"key('smallspace', 'Introduction')/p",+		"key('smallspace', 'Stylesheet Structure')/p",+		"key('smallspace', 'Stylesheet Structure')/p",+		"key('test','foey')",+		"key('titles', .)",+		"key('two','3') | document('select59.xml')/child[@wide='3'] | child[@deep='3']",+		"key('which','3')",+		"keyword[@tag='sector']",+		"keyword[@tag='ticker']",+		"keyword[@tag='ticker']",+		"keyword[@tag='ticker']",+		"keyword[@tag='ticker']",+		"lang('en')",+		"last()",+		"local-name()",+		"local-name(.)",+		"local-name(baz1:a)",+		"local-name(baz2:b)",+		"local-name(baz2:b/@baz1:attrib2)",+		"local-name(namespace::*[1])",+		"local-name(namespace::*[string()='http://www.w3.org/1999/XMLSchema-instance'])",+		"local-name(namespace::*[string()='test'])",+		"local-name(xalan:nodeset($rtf)/*)",+		"main/a/descendant-or-self::*/@*",+		"main/size[@for='d']",+		"mi | do | fa | re",+		"mi[@mi2='mi2'] | do | fa/so/@so | fa | mi/@* | re | fa/@fa | do/@do",+		"month",+		"month",+		"month",+		"n",+		"n-2 - -n-1",+		"n-2 - n-1",+		"n-2+-n-1",+		"n0 div n1 div n2 div n3 div n4 div n5",+		"n0 div n1 div n2 div n3 div n4",+		"n0 div n1 div n2 div n3",+		"n1 div n2",+		"n1 mod n2",+		"n1*n2",+		"n1*n2*n3*n4",+		"n1*n2*n3*n4*n5*n6*n7*n8*n9*n10",+		"n1+n2",+		"n1/@attrib + n2/@attrib",+		"n1/@attrib div n2/@attrib",+		"n1/@attrib mod n2/@attrib",+		"n2+3+$anum+7+n5",+		"n4",+		"n6*5-8*n2+5*2",+		"name",+		"name",+		"name",+		"name",+		"name",+		"name",+		"name",+		"name((ancestor::section|../ednote           |following::title|../bogus)[1])",+		"name((ancestor::section|ancestor::simplesect           |ancestor::article)[last()])",+		"name(/descendant-or-self::node()/child::near-north)",+		"name(/descendant-or-self::node()/descendant-or-self::north)",+		"name(/descendant-or-self::north)",+		"name(/descendant-or-self::north/child::near-north)",+		"name(/descendant-or-self::north/descendant-or-self::north)",+		"name(/descendant::near-north)",+		"name(/descendant::near-north/descendant-or-self::near-north)",+		"name(/descendant::node()/descendant-or-self::near-north)",+		"name(ancestor::*[1])",+		"name(ancestor::*[1])",+		"name(ancestor::*[2])",+		"name(ancestor::*[2])",+		"name(ancestor::*[3])",+		"name(ancestor::*[3])",+		"name(baz1:a)",+		"name(baz1:a/@baz2:attrib1)",+		"name(baz2:b)",+		"name(baz2:b/@baz1:attrib2)",+		"name(descendant-or-self::node()/child::near-north)",+		"name(descendant-or-self::node()/child::node()/child::far-west)",+		"name(descendant-or-self::node()/child::node()/descendant-or-self::near-north)",+		"name(descendant-or-self::node()/descendant-or-self::node()/child::near-north)",+		"name(descendant-or-self::node()/descendant-or-self::node()/descendant-or-self::north)",+		"name(descendant-or-self::node()/descendant-or-self::north)",+		"name(descendant-or-self::node()/descendant::near-north)",+		"name(descendant-or-self::node()/descendant::node()/child::far-west)",+		"name(descendant-or-self::node()/descendant::node()/descendant-or-self::near-north)",+		"name(descendant-or-self::north/child::near-north)",+		"name(descendant-or-self::north/child::near-north/child::far-west)",+		"name(descendant-or-self::north/child::near-north/descendant-or-self::near-north)",+		"name(descendant-or-self::north/descendant-or-self::north)",+		"name(descendant-or-self::north/descendant-or-self::north/child::near-north)",+		"name(descendant-or-self::north/descendant-or-self::north/descendant-or-self::north)",+		"name(descendant-or-self::north/descendant::near-north)",+		"name(descendant-or-self::north/descendant::near-north/child::far-west)",+		"name(descendant-or-self::north/descendant::near-north/descendant-or-self::near-north)",+		"name(descendant::near-north/descendant-or-self::near-north)",+		"name(descendant::near-north/descendant-or-self::near-north/child::far-west)",+		"name(descendant::near-north/descendant-or-self::near-north/descendant-or-self::near-north)",+		"name(descendant::near-north/descendant::far-west)",+		"name(descendant::near-north/descendant::far-west/descendant-or-self::far-west)",+		"name(descendant::node()/descendant-or-self::near-north)",+		"name(descendant::node()/descendant-or-self::node()/child::far-west)",+		"name(descendant::node()/descendant-or-self::node()/descendant-or-self::near-north)",+		"name(descendant::node()/descendant::far-west)",+		"name(descendant::node()/descendant::node()/descendant-or-self::far-west)",+		"name(namespace::*[1])",+		"name(self::node()/descendant-or-self::node()/child::near-north)",+		"name(self::node()/descendant-or-self::node()/descendant-or-self::north)",+		"name(self::node()/descendant-or-self::north)",+		"name(self::node()/descendant-or-self::north/child::near-north)",+		"name(self::node()/descendant-or-self::north/descendant-or-self::north)",+		"name(self::node()/descendant::near-north)",+		"name(self::node()/descendant::near-north/child::far-west)",+		"name(self::node()/descendant::near-north/descendant-or-self::far-west)",+		"name(self::node()/descendant::node()/child::far-west)",+		"name(self::node()/descendant::node()/descendant-or-self::far-west)",+		"name(xalan:nodeset($rtf)/*)",+		"namespace-uri(baz1:a-two/@attrib1)",+		"namespace-uri(baz1:a/@baz2:attrib1)",+		"namespace-uri(baz2:b)",+		"namespace-uri(baz2:b-three)",+		"namespace-uri(baz2:b-three/@baz1:attrib2)",+		"namespace-uri(baz2:b-three/c-four)",+		"namespace-uri(baz2:b/@baz1:attrib2)",+		"namespace-uri(namespace::*[string()='http://www.w3.org/1999/XMLSchema-instance'])",+		"namespace-uri(namespace::*[string()='test'])",+		"namespace-uri(x)",+		"namespace-uri(xalan:nodeset($rtf)/default:docelem)",+		"namespace-uri(xalan:nodeset($rtf)/default:docelem/default:elem1)",+		"namespace-uri(xalan:nodeset($rtf)/default:docelem/test:elem3)",+		"namespace::*",+		"namespace::node()",+		"nitro:element(.)",+		"node",+		"node()|@*",+		"normalize-space($texts[1])",+		"normalize-space($thisvalue)",+		"normalize-space('	&#10;&#13;        ab           cd	&#10;&#13;       ef	&#10;&#13; ')",+		"normalize-space()",+		"normalize-space(a)",+		"north/* | north/dup1 | north/dup2",+		"north/dup2 | document('select71.xml')/south/preceding-sibling[4] | north/*",+		"north/dup2 | north/dup1 | north/*",+		"not($x!='foo')",+		"not('')",+		"not('0')",+		"not(false() = false())",+		"not(false())",+		"not(true() = false())",+		"not(true())",+		"note[1]",+		"note[1]",+		"number($ResultTreeFragTest)",+		"number($emptyResultTreeFragTest)",+		"number($pvar2)",+		"number('')",+		"number('3')",+		"number('abc')",+		"number('xxx') - 10",+		"number('xxx') div 3",+		"number('xxx') mod 3",+		"number('xxx')=0",+		"number('xxx')=number('xxx')",+		"number()",+		"number(2)",+		"number(false())=0",+		"number(foo)",+		"number(n1)",+		"number(string(1.0))=1",+		"number(true())=1",+		"number(xalan:nodeset($rtf)/default:docelem/default:elem3[2])",+		"para[@id='1' and lang('en')]",+		"parent::*",+		"parent::*[1]",+		"parent::foo",+		"parent::near-north",+		"position()",+		"position()=1",+		"preceding-sibling::*",+		"preceding-sibling::*/following-sibling::*",+		"preceding-sibling::*[2]",+		"preceding-sibling::*[2]",+		"preceding-sibling::*[2]/following-sibling::*",+		"preceding-sibling::*[2]/following-sibling::*[4]",+		"preceding-sibling::*[2]/following-sibling::*[4]/preceding-sibling::*[5]/following-sibling::*[4]/following-sibling::*[2]",+		"preceding-sibling::*|following-sibling::*",+		"preceding-sibling::child1|//child3",+		"preceding-sibling::child1|following-sibling::child3",+		"preceding-sibling::foo[1]/@att1",+		"preceding-sibling::west",+		"preceding::*",+		"preceding::*[2]/../descendant::*[10]/following-sibling::east",+		"preceding::*[2]/../following::*",+		"preceding::*[4]",+		"preceding::foo[1]/@att1",+		"preceding::out-yonder-west",+		"preceding::text()",+		"preceding::text()[$this]",+		"primary/name/first",+		"primary/name/first",+		"processing-instruction()",+		"pt:xif('test')",+		"pt:xif(string($val))",+		"round(-1.1)=-1",+		"round(-1.5)",+		"round(-1.9)=-2",+		"round(-2.5)=-2",+		"round(0.0)",+		"round(1.1)=1",+		"round(1.24)",+		"round(1.5)=2",+		"round(1.9)=2",+		"round(2.5)",+		"round(2.999999)",+		"round(count(.//LINE) div count(.//SPEECH))",+		"round(n0)",+		"round(n1)",+		"round(n2)",+		"round(number('xxx'))",+		"row",+		"self::*",+		"self::*",+		"self::*[1]",+		"self::*[@center-attr-2]",+		"self::*[near-south]",+		"self::center",+		"self::child1|self::child2",+		"self::comment()",+		"self::foo",+		"self::node()",+		"self::node()",+		"self::node()",+		"self::node()",+		"self::processing-instruction()",+		"self::text()",+		"sigs",+		"sss//i",+		"sss//i",+		"sss/sss",+		"sss/sss",+		"starts-with('','')",+		"starts-with('ENCYCLOPEDIA', 'EN')",+		"starts-with('ENCYCLOPEDIA', 'ENCY')",+		"starts-with('ENCYCLOPEDIA', 'en')",+		"starts-with('ab', 'abc')",+		"starts-with('abc', '')",+		"starts-with('abc', 'bc')",+		"starts-with('true()', 'tr')",+		"starts-with(doc, 'ENCY')",+		"starts-with(doc, 'test')",+		"starts-with(doc/@attr, 'slam')",+		"starts-with(doc/@attr, 'wich')",+		"str:new(string(doc))",+		"str:toUpperCase($str-obj)",+		"string($ResultTreeFragTest)",+		"string($ResultTreeFragTest)",+		"string($emptyResultTreeFragTest)",+		"string($which)",+		"string('!From m!')",+		"string('!From n!')",+		"string('!From o!')",+		"string('!From p!')",+		"string('')",+		"string('test')",+		"string()",+		"string()",+		"string(0)",+		"string(2)",+		"string(av//*)",+		"string(doc)",+		"string(foo)",+		"string-length ()",+		"string-length($str)",+		"string-length('This is a test')",+		"string-length()",+		"string-length()",+		"string-length(.)",+		"string-length(doc)",+		"string-length(doc/a)",+		"sub1/child1|/doc/sub2/child2",+		"sub1/child1|sub2/child2",+		"subj",+		"substring('1999/04/01', 1, 0)",+		"substring('1999/04/01', 1, 4)",+		"substring('ENCYCLOPEDIA', 8)",+		"substring('ENCYCLOPEDIA', 8, 3)",+		"substring('abcdefghi',2,4)",+		"substring('abcdefghijk',0 div 0, 5)",+		"substring('abcdefghijk',4, 6)",+		"substring(@key,2,1)",+		"substring(doc, 1, 4)",+		"substring(doc/@attr, 1, 3)",+		"substring(doc/@attr, 2.5, 3.6)",+		"substring(doc/@attr, 4)",+		"substring(foo, 12, 3)",+		"substring(foo, 2, 2)",+		"substring-after($words,' ')",+		"substring-after('1999/04/01', '/')",+		"substring-after('1999/04/01', '1')",+		"substring-after('ENCYCLOPEDIA', '/')",+		"substring-after('ENCYCLOPEDIA', 'C')",+		"substring-after('abcdefghijk','l')",+		"substring-after(doc, '/')",+		"substring-after(doc/@attr, 'D')",+		"substring-after(doc/@attr, 'd')",+		"substring-after(doc/@attr, 'z')",+		"substring-after(foo, '/')",+		"substring-before('1999/04/01', '/')",+		"substring-before('ENCYCLOPEDIA', '/')",+		"substring-before('ENCYCLOPEDIA', 'C')",+		"substring-before('ENCYCLOPEDIA', 'c')",+		"substring-before('a','z')",+		"substring-before(doc, '/')",+		"substring-before(doc/@attr, 'D')",+		"substring-before(doc/@attr, 'd')",+		"substring-before(doc/@attr, 'z')",+		"substring-before(foo, '/')",+		"sum($rtf)",+		"sum(e)",+		"sum(e)",+		"sum(n)",+		"sum(n/@attrib)",+		"sum(x)",+		"sum(xalan:nodeset($rtf)/default:docelem/default:elem3)",+		"system-property('xsl:vendor')",+		"true() and false()",+		"true() and true()",+		"true() or 1 div 0",+		"true() or false()",+		"true() or true()",+		"true()",+		"true()=2",+		"width * depth",+		"xalan:nodeset($rtf)/default:docelem",+		"xalan:nodeset($rtf)/default:docelem/*",+		"xalan:nodeset($rtf)/default:docelem/default:elem1",+		"xalan:nodeset($rtf)/default:docelem/default:elem1/default:elem1b",+		"xalan:nodeset($rtf)/default:docelem/default:elem2/*",+		"xalan:nodeset($rtf)/default:docelem/default:elem4",+		"xalan:nodeset($rtf)/default:docelem/test:elem3",+		"xalan:nodeset($sorted)/item",+	    "deep-equal(/,foo)"+	]+++-- die folgenden tests wurden vom W3C auskommentiert+-- ab hier ersetzen alle ersten -- durch <+-- <!-- arg value="concat(&quot;a&quot;,&quot;b&quot;,&quot;c&quot;,&quot;d&quot;,&quot;ef&quot;)"/ -->+-- <!-- arg value="concat(&quot;bc&quot;, string(23))"/>+-- <test value="concat(&quot;cd&quot;, &quot;34&quot;)"/>+-- <test value="concat(&quot;cd&quot;, 34)"/>+-- <test value="concat(&quot;x&quot;,&quot;yz&quot;)"/ -->++-- <!-- arg value="document(&quot;&quot;)//bdd:test"/>+-- <test value="document(&quot;&quot;)//ped:test"/>+-- <test value="document(&quot;&quot;)/xsl:stylesheet/ped:test[@attrib=&quot;yeha&quot;]"/>+-- <test value="document(&quot;../impincl-test/mdocstest.xml&quot;)//a"/>+-- <test value="document(&quot;../impincl-test/mdocstest.xml&quot;)//b"/ -->++-- <!-- arg value="substring(&quot;12345&quot;, -1 div 0, 1 div 0)"/>+-- <test value="substring(&quot;12345&quot;, -42, 1 div 0)"/>+-- <test value="substring(&quot;12345&quot;, 0 div 0, 3)"/>+-- <test value="substring(&quot;12345&quot;, 0, 3)"/>+-- <test value="substring(&quot;12345&quot;, 1, 0 div 0)"/>+-- <test value="substring(&quot;12345&quot;, 1.5, 2.6)"/ -->++-- <!-- arg value="translate(&quot;B'B&quot;,&quot;'&quot;,&quot;`&quot;)"/>+-- <test value="translate(&quot;BAR&quot;,&quot;Rab&quot;,&quot;TxX&quot;)"/>+-- <test value="translate(&quot;BAR&quot;,&quot;abc&quot;,&quot;ABC&quot;)"/>+-- <test value="translate(&quot;bar&quot;,&quot;RAB&quot;,&quot;xyz&quot;)"/>+-- <test value="translate(&quot;bar&quot;,&quot;abc&quot;,&quot;ABC&quot;)"/>+-- <test value="translate(&quot;ddaaadddd&quot;,&quot;abcd&quot;,&quot;ABCxy&quot;)"/>+-- <test value="translate(&quot;zzaaazzz&quot;,&quot;abcz&quot;,&quot;ABC&quot;)"/>+-- <test value="translate(.,'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')"/>+-- <test value="translate(a,&quot;abc&quot;,&quot;ABC&quot;)"/>+-- <test value="translate(a/@attrib,&quot;lo&quot;,&quot;IT&quot;)"/>+-- <test value="translate(b,&quot;ABC&quot;,&quot;abc&quot;)"/>+-- <test value="translate(b/@attrib,&quot;LO&quot;,&quot;it&quot;)"/>+-- <test value="translate(b/@attrib,&quot;lo&quot;,&quot;it&quot;)"/>+-- <test value="translate(normalize-space($s), &quot; &quot;, &quot;_&quot;)"/ -->
examples/arrows/hxpath/XPathShell.hs view
@@ -23,8 +23,6 @@  import qualified Control.Monad as M -import Data.Maybe- import Text.XML.HXT.Arrow  import qualified@@ -82,25 +80,23 @@  showDoc		:: XmlTree -> IO () showDoc doc-    = do-      runX ( constA doc+    = runX ( constA doc 	     >>> 	     writeDocument [ (a_indent, v_1) 			   , (a_no_xml_pi, v_1) 			   ] "" 	   )-      return ()+      >> return ()  showTree		:: XmlTree -> IO () showTree doc-    = do-      runX ( constA doc+    = runX ( constA doc 	     >>> 	     writeDocument [ (a_show_tree, v_1) 			   , (a_no_xml_pi, v_1) 			   ] "" 	   )-      return ()+      >> return ()  evalXPath	:: String -> NsEnv' -> XmlTree -> IO() evalXPath path env doc
+ examples/arrows/hxpath/example1.xml view
@@ -0,0 +1,27 @@+<?xml version="1.0"?>++<!DOCTYPE rezept [+<!ATTLIST rezept  xml:lang  CDATA  #IMPLIED>+<!ELEMENT rezept  (zutat*, anleitung*)>+<!ELEMENT zutat  (#PCDATA)>+<!ATTLIST zutat  id ID #IMPLIED>+<!ATTLIST zutat  xml:lang  CDATA  #IMPLIED>+<!ATTLIST zutat  xmlns:xlink  CDATA  #IMPLIED>+<!ATTLIST zutat  xlink:type  CDATA  #IMPLIED>+<!ATTLIST zutat  xlink:href  CDATA  #IMPLIED>+<!ELEMENT anleitung (#PCDATA)>+]>++<?xml-stylesheet href="style.xsl" type="text/xml"?>+<rezept>+   <zutat id="mehl">200g Mehl</zutat>+   <zutat id="mehl">z 2</zutat>+   <zutat id="mehl">z 3</zutat>+   <!-- weitere Zutaten -->+   <anleitung>+      Zuerst nehmen Sie das+      <zutat xmlns:xlink="http://www.w3.org/1999/xlink"+             xlink:type="simple" xlink:href="mehl">Mehl</zutat>+      und mischen es mit ...+   </anleitung>+</rezept>
examples/arrows/performance/GenDoc.hs view
@@ -13,7 +13,6 @@  import Control.Monad.State.Strict hiding (when) -import Data.List import Data.Maybe  import System.IO			-- import the IO and commandline option stuff@@ -43,9 +42,8 @@  main1	:: Int -> IO () main1 i-    = do-      runX (genDoc i (fn i))-      return ()+    = runX (genDoc i (fn i))+      >> return ()  -- ---------------------------------------- @@ -271,7 +269,7 @@ 	      = action stdout 	  | otherwise 	      = do-		handle <- openFile dst WriteMode+		handle <- openBinaryFile dst WriteMode 		action handle 		hClose handle 
− examples/xhtml/xhtml-lat1.ent
@@ -1,196 +0,0 @@-<!-- Portions (C) International Organization for Standardization 1986-     Permission to copy in any form is granted for use with-     conforming SGML systems and applications as defined in-     ISO 8879, provided this notice is included in all copies.--->-<!-- Character entity set. Typical invocation:-    <!ENTITY % HTMLlat1 PUBLIC-       "-//W3C//ENTITIES Latin 1 for XHTML//EN"-       "http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent">-    %HTMLlat1;--->--<!ENTITY nbsp   "&#160;"> <!-- no-break space = non-breaking space,-                                  U+00A0 ISOnum -->-<!ENTITY iexcl  "&#161;"> <!-- inverted exclamation mark, U+00A1 ISOnum -->-<!ENTITY cent   "&#162;"> <!-- cent sign, U+00A2 ISOnum -->-<!ENTITY pound  "&#163;"> <!-- pound sign, U+00A3 ISOnum -->-<!ENTITY curren "&#164;"> <!-- currency sign, U+00A4 ISOnum -->-<!ENTITY yen    "&#165;"> <!-- yen sign = yuan sign, U+00A5 ISOnum -->-<!ENTITY brvbar "&#166;"> <!-- broken bar = broken vertical bar,-                                  U+00A6 ISOnum -->-<!ENTITY sect   "&#167;"> <!-- section sign, U+00A7 ISOnum -->-<!ENTITY uml    "&#168;"> <!-- diaeresis = spacing diaeresis,-                                  U+00A8 ISOdia -->-<!ENTITY copy   "&#169;"> <!-- copyright sign, U+00A9 ISOnum -->-<!ENTITY ordf   "&#170;"> <!-- feminine ordinal indicator, U+00AA ISOnum -->-<!ENTITY laquo  "&#171;"> <!-- left-pointing double angle quotation mark-                                  = left pointing guillemet, U+00AB ISOnum -->-<!ENTITY not    "&#172;"> <!-- not sign = discretionary hyphen,-                                  U+00AC ISOnum -->-<!ENTITY shy    "&#173;"> <!-- soft hyphen = discretionary hyphen,-                                  U+00AD ISOnum -->-<!ENTITY reg    "&#174;"> <!-- registered sign = registered trade mark sign,-                                  U+00AE ISOnum -->-<!ENTITY macr   "&#175;"> <!-- macron = spacing macron = overline-                                  = APL overbar, U+00AF ISOdia -->-<!ENTITY deg    "&#176;"> <!-- degree sign, U+00B0 ISOnum -->-<!ENTITY plusmn "&#177;"> <!-- plus-minus sign = plus-or-minus sign,-                                  U+00B1 ISOnum -->-<!ENTITY sup2   "&#178;"> <!-- superscript two = superscript digit two-                                  = squared, U+00B2 ISOnum -->-<!ENTITY sup3   "&#179;"> <!-- superscript three = superscript digit three-                                  = cubed, U+00B3 ISOnum -->-<!ENTITY acute  "&#180;"> <!-- acute accent = spacing acute,-                                  U+00B4 ISOdia -->-<!ENTITY micro  "&#181;"> <!-- micro sign, U+00B5 ISOnum -->-<!ENTITY para   "&#182;"> <!-- pilcrow sign = paragraph sign,-                                  U+00B6 ISOnum -->-<!ENTITY middot "&#183;"> <!-- middle dot = Georgian comma-                                  = Greek middle dot, U+00B7 ISOnum -->-<!ENTITY cedil  "&#184;"> <!-- cedilla = spacing cedilla, U+00B8 ISOdia -->-<!ENTITY sup1   "&#185;"> <!-- superscript one = superscript digit one,-                                  U+00B9 ISOnum -->-<!ENTITY ordm   "&#186;"> <!-- masculine ordinal indicator,-                                  U+00BA ISOnum -->-<!ENTITY raquo  "&#187;"> <!-- right-pointing double angle quotation mark-                                  = right pointing guillemet, U+00BB ISOnum -->-<!ENTITY frac14 "&#188;"> <!-- vulgar fraction one quarter-                                  = fraction one quarter, U+00BC ISOnum -->-<!ENTITY frac12 "&#189;"> <!-- vulgar fraction one half-                                  = fraction one half, U+00BD ISOnum -->-<!ENTITY frac34 "&#190;"> <!-- vulgar fraction three quarters-                                  = fraction three quarters, U+00BE ISOnum -->-<!ENTITY iquest "&#191;"> <!-- inverted question mark-                                  = turned question mark, U+00BF ISOnum -->-<!ENTITY Agrave "&#192;"> <!-- latin capital letter A with grave-                                  = latin capital letter A grave,-                                  U+00C0 ISOlat1 -->-<!ENTITY Aacute "&#193;"> <!-- latin capital letter A with acute,-                                  U+00C1 ISOlat1 -->-<!ENTITY Acirc  "&#194;"> <!-- latin capital letter A with circumflex,-                                  U+00C2 ISOlat1 -->-<!ENTITY Atilde "&#195;"> <!-- latin capital letter A with tilde,-                                  U+00C3 ISOlat1 -->-<!ENTITY Auml   "&#196;"> <!-- latin capital letter A with diaeresis,-                                  U+00C4 ISOlat1 -->-<!ENTITY Aring  "&#197;"> <!-- latin capital letter A with ring above-                                  = latin capital letter A ring,-                                  U+00C5 ISOlat1 -->-<!ENTITY AElig  "&#198;"> <!-- latin capital letter AE-                                  = latin capital ligature AE,-                                  U+00C6 ISOlat1 -->-<!ENTITY Ccedil "&#199;"> <!-- latin capital letter C with cedilla,-                                  U+00C7 ISOlat1 -->-<!ENTITY Egrave "&#200;"> <!-- latin capital letter E with grave,-                                  U+00C8 ISOlat1 -->-<!ENTITY Eacute "&#201;"> <!-- latin capital letter E with acute,-                                  U+00C9 ISOlat1 -->-<!ENTITY Ecirc  "&#202;"> <!-- latin capital letter E with circumflex,-                                  U+00CA ISOlat1 -->-<!ENTITY Euml   "&#203;"> <!-- latin capital letter E with diaeresis,-                                  U+00CB ISOlat1 -->-<!ENTITY Igrave "&#204;"> <!-- latin capital letter I with grave,-                                  U+00CC ISOlat1 -->-<!ENTITY Iacute "&#205;"> <!-- latin capital letter I with acute,-                                  U+00CD ISOlat1 -->-<!ENTITY Icirc  "&#206;"> <!-- latin capital letter I with circumflex,-                                  U+00CE ISOlat1 -->-<!ENTITY Iuml   "&#207;"> <!-- latin capital letter I with diaeresis,-                                  U+00CF ISOlat1 -->-<!ENTITY ETH    "&#208;"> <!-- latin capital letter ETH, U+00D0 ISOlat1 -->-<!ENTITY Ntilde "&#209;"> <!-- latin capital letter N with tilde,-                                  U+00D1 ISOlat1 -->-<!ENTITY Ograve "&#210;"> <!-- latin capital letter O with grave,-                                  U+00D2 ISOlat1 -->-<!ENTITY Oacute "&#211;"> <!-- latin capital letter O with acute,-                                  U+00D3 ISOlat1 -->-<!ENTITY Ocirc  "&#212;"> <!-- latin capital letter O with circumflex,-                                  U+00D4 ISOlat1 -->-<!ENTITY Otilde "&#213;"> <!-- latin capital letter O with tilde,-                                  U+00D5 ISOlat1 -->-<!ENTITY Ouml   "&#214;"> <!-- latin capital letter O with diaeresis,-                                  U+00D6 ISOlat1 -->-<!ENTITY times  "&#215;"> <!-- multiplication sign, U+00D7 ISOnum -->-<!ENTITY Oslash "&#216;"> <!-- latin capital letter O with stroke-                                  = latin capital letter O slash,-                                  U+00D8 ISOlat1 -->-<!ENTITY Ugrave "&#217;"> <!-- latin capital letter U with grave,-                                  U+00D9 ISOlat1 -->-<!ENTITY Uacute "&#218;"> <!-- latin capital letter U with acute,-                                  U+00DA ISOlat1 -->-<!ENTITY Ucirc  "&#219;"> <!-- latin capital letter U with circumflex,-                                  U+00DB ISOlat1 -->-<!ENTITY Uuml   "&#220;"> <!-- latin capital letter U with diaeresis,-                                  U+00DC ISOlat1 -->-<!ENTITY Yacute "&#221;"> <!-- latin capital letter Y with acute,-                                  U+00DD ISOlat1 -->-<!ENTITY THORN  "&#222;"> <!-- latin capital letter THORN,-                                  U+00DE ISOlat1 -->-<!ENTITY szlig  "&#223;"> <!-- latin small letter sharp s = ess-zed,-                                  U+00DF ISOlat1 -->-<!ENTITY agrave "&#224;"> <!-- latin small letter a with grave-                                  = latin small letter a grave,-                                  U+00E0 ISOlat1 -->-<!ENTITY aacute "&#225;"> <!-- latin small letter a with acute,-                                  U+00E1 ISOlat1 -->-<!ENTITY acirc  "&#226;"> <!-- latin small letter a with circumflex,-                                  U+00E2 ISOlat1 -->-<!ENTITY atilde "&#227;"> <!-- latin small letter a with tilde,-                                  U+00E3 ISOlat1 -->-<!ENTITY auml   "&#228;"> <!-- latin small letter a with diaeresis,-                                  U+00E4 ISOlat1 -->-<!ENTITY aring  "&#229;"> <!-- latin small letter a with ring above-                                  = latin small letter a ring,-                                  U+00E5 ISOlat1 -->-<!ENTITY aelig  "&#230;"> <!-- latin small letter ae-                                  = latin small ligature ae, U+00E6 ISOlat1 -->-<!ENTITY ccedil "&#231;"> <!-- latin small letter c with cedilla,-                                  U+00E7 ISOlat1 -->-<!ENTITY egrave "&#232;"> <!-- latin small letter e with grave,-                                  U+00E8 ISOlat1 -->-<!ENTITY eacute "&#233;"> <!-- latin small letter e with acute,-                                  U+00E9 ISOlat1 -->-<!ENTITY ecirc  "&#234;"> <!-- latin small letter e with circumflex,-                                  U+00EA ISOlat1 -->-<!ENTITY euml   "&#235;"> <!-- latin small letter e with diaeresis,-                                  U+00EB ISOlat1 -->-<!ENTITY igrave "&#236;"> <!-- latin small letter i with grave,-                                  U+00EC ISOlat1 -->-<!ENTITY iacute "&#237;"> <!-- latin small letter i with acute,-                                  U+00ED ISOlat1 -->-<!ENTITY icirc  "&#238;"> <!-- latin small letter i with circumflex,-                                  U+00EE ISOlat1 -->-<!ENTITY iuml   "&#239;"> <!-- latin small letter i with diaeresis,-                                  U+00EF ISOlat1 -->-<!ENTITY eth    "&#240;"> <!-- latin small letter eth, U+00F0 ISOlat1 -->-<!ENTITY ntilde "&#241;"> <!-- latin small letter n with tilde,-                                  U+00F1 ISOlat1 -->-<!ENTITY ograve "&#242;"> <!-- latin small letter o with grave,-                                  U+00F2 ISOlat1 -->-<!ENTITY oacute "&#243;"> <!-- latin small letter o with acute,-                                  U+00F3 ISOlat1 -->-<!ENTITY ocirc  "&#244;"> <!-- latin small letter o with circumflex,-                                  U+00F4 ISOlat1 -->-<!ENTITY otilde "&#245;"> <!-- latin small letter o with tilde,-                                  U+00F5 ISOlat1 -->-<!ENTITY ouml   "&#246;"> <!-- latin small letter o with diaeresis,-                                  U+00F6 ISOlat1 -->-<!ENTITY divide "&#247;"> <!-- division sign, U+00F7 ISOnum -->-<!ENTITY oslash "&#248;"> <!-- latin small letter o with stroke,-                                  = latin small letter o slash,-                                  U+00F8 ISOlat1 -->-<!ENTITY ugrave "&#249;"> <!-- latin small letter u with grave,-                                  U+00F9 ISOlat1 -->-<!ENTITY uacute "&#250;"> <!-- latin small letter u with acute,-                                  U+00FA ISOlat1 -->-<!ENTITY ucirc  "&#251;"> <!-- latin small letter u with circumflex,-                                  U+00FB ISOlat1 -->-<!ENTITY uuml   "&#252;"> <!-- latin small letter u with diaeresis,-                                  U+00FC ISOlat1 -->-<!ENTITY yacute "&#253;"> <!-- latin small letter y with acute,-                                  U+00FD ISOlat1 -->-<!ENTITY thorn  "&#254;"> <!-- latin small letter thorn with,-                                  U+00FE ISOlat1 -->-<!ENTITY yuml   "&#255;"> <!-- latin small letter y with diaeresis,-                                  U+00FF ISOlat1 -->
− examples/xhtml/xhtml-special.ent
@@ -1,79 +0,0 @@-<!-- Special characters for HTML -->--<!-- Character entity set. Typical invocation:-     <!ENTITY % HTMLspecial PUBLIC-        "-//W3C//ENTITIES Special for XHTML//EN"-        "http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent">-     %HTMLspecial;--->--<!-- Portions (C) International Organization for Standardization 1986:-     Permission to copy in any form is granted for use with-     conforming SGML systems and applications as defined in-     ISO 8879, provided this notice is included in all copies.--->--<!-- Relevant ISO entity set is given unless names are newly introduced.-     New names (i.e., not in ISO 8879 list) do not clash with any-     existing ISO 8879 entity names. ISO 10646 character numbers-     are given for each character, in hex. values are decimal-     conversions of the ISO 10646 values and refer to the document-     character set. Names are Unicode names. --->--<!-- C0 Controls and Basic Latin -->-<!ENTITY quot    "&#34;"> <!--  quotation mark = APL quote,-                                    U+0022 ISOnum -->-<!ENTITY amp     "&#38;#38;"> <!--  ampersand, U+0026 ISOnum -->-<!ENTITY lt      "&#38;#60;"> <!--  less-than sign, U+003C ISOnum -->-<!ENTITY gt      "&#62;"> <!--  greater-than sign, U+003E ISOnum -->-<!ENTITY apos	 "&#39;"> <!--  apostrophe mark, U+0027 ISOnum -->--<!-- Latin Extended-A -->-<!ENTITY OElig   "&#338;"> <!--  latin capital ligature OE,-                                    U+0152 ISOlat2 -->-<!ENTITY oelig   "&#339;"> <!--  latin small ligature oe, U+0153 ISOlat2 -->-<!-- ligature is a misnomer, this is a separate character in some languages -->-<!ENTITY Scaron  "&#352;"> <!--  latin capital letter S with caron,-                                    U+0160 ISOlat2 -->-<!ENTITY scaron  "&#353;"> <!--  latin small letter s with caron,-                                    U+0161 ISOlat2 -->-<!ENTITY Yuml    "&#376;"> <!--  latin capital letter Y with diaeresis,-                                    U+0178 ISOlat2 -->--<!-- Spacing Modifier Letters -->-<!ENTITY circ    "&#710;"> <!--  modifier letter circumflex accent,-                                    U+02C6 ISOpub -->-<!ENTITY tilde   "&#732;"> <!--  small tilde, U+02DC ISOdia -->--<!-- General Punctuation -->-<!ENTITY ensp    "&#8194;"> <!-- en space, U+2002 ISOpub -->-<!ENTITY emsp    "&#8195;"> <!-- em space, U+2003 ISOpub -->-<!ENTITY thinsp  "&#8201;"> <!-- thin space, U+2009 ISOpub -->-<!ENTITY zwnj    "&#8204;"> <!-- zero width non-joiner,-                                    U+200C NEW RFC 2070 -->-<!ENTITY zwj     "&#8205;"> <!-- zero width joiner, U+200D NEW RFC 2070 -->-<!ENTITY lrm     "&#8206;"> <!-- left-to-right mark, U+200E NEW RFC 2070 -->-<!ENTITY rlm     "&#8207;"> <!-- right-to-left mark, U+200F NEW RFC 2070 -->-<!ENTITY ndash   "&#8211;"> <!-- en dash, U+2013 ISOpub -->-<!ENTITY mdash   "&#8212;"> <!-- em dash, U+2014 ISOpub -->-<!ENTITY lsquo   "&#8216;"> <!-- left single quotation mark,-                                    U+2018 ISOnum -->-<!ENTITY rsquo   "&#8217;"> <!-- right single quotation mark,-                                    U+2019 ISOnum -->-<!ENTITY sbquo   "&#8218;"> <!-- single low-9 quotation mark, U+201A NEW -->-<!ENTITY ldquo   "&#8220;"> <!-- left double quotation mark,-                                    U+201C ISOnum -->-<!ENTITY rdquo   "&#8221;"> <!-- right double quotation mark,-                                    U+201D ISOnum -->-<!ENTITY bdquo   "&#8222;"> <!-- double low-9 quotation mark, U+201E NEW -->-<!ENTITY dagger  "&#8224;"> <!-- dagger, U+2020 ISOpub -->-<!ENTITY Dagger  "&#8225;"> <!-- double dagger, U+2021 ISOpub -->-<!ENTITY permil  "&#8240;"> <!-- per mille sign, U+2030 ISOtech -->-<!ENTITY lsaquo  "&#8249;"> <!-- single left-pointing angle quotation mark,-                                    U+2039 ISO proposed -->-<!-- lsaquo is proposed but not yet ISO standardized -->-<!ENTITY rsaquo  "&#8250;"> <!-- single right-pointing angle quotation mark,-                                    U+203A ISO proposed -->-<!-- rsaquo is proposed but not yet ISO standardized -->-<!ENTITY euro   "&#8364;"> <!--  euro sign, U+20AC NEW -->
− examples/xhtml/xhtml-symbol.ent
@@ -1,242 +0,0 @@-<!-- Mathematical, Greek and Symbolic characters for HTML -->--<!-- Character entity set. Typical invocation:-     <!ENTITY % HTMLsymbol PUBLIC-        "-//W3C//ENTITIES Symbols for XHTML//EN"-        "http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent">-     %HTMLsymbol;--->--<!-- Portions (C) International Organization for Standardization 1986:-     Permission to copy in any form is granted for use with-     conforming SGML systems and applications as defined in-     ISO 8879, provided this notice is included in all copies.--->--<!-- Relevant ISO entity set is given unless names are newly introduced.-     New names (i.e., not in ISO 8879 list) do not clash with any-     existing ISO 8879 entity names. ISO 10646 character numbers-     are given for each character, in hex. values are decimal-     conversions of the ISO 10646 values and refer to the document-     character set. Names are Unicode names. --->--<!-- Latin Extended-B -->-<!ENTITY fnof     "&#402;"> <!-- latin small f with hook = function-                                    = florin, U+0192 ISOtech -->--<!-- Greek -->-<!ENTITY Alpha    "&#913;"> <!-- greek capital letter alpha, U+0391 -->-<!ENTITY Beta     "&#914;"> <!-- greek capital letter beta, U+0392 -->-<!ENTITY Gamma    "&#915;"> <!-- greek capital letter gamma,-                                    U+0393 ISOgrk3 -->-<!ENTITY Delta    "&#916;"> <!-- greek capital letter delta,-                                    U+0394 ISOgrk3 -->-<!ENTITY Epsilon  "&#917;"> <!-- greek capital letter epsilon, U+0395 -->-<!ENTITY Zeta     "&#918;"> <!-- greek capital letter zeta, U+0396 -->-<!ENTITY Eta      "&#919;"> <!-- greek capital letter eta, U+0397 -->-<!ENTITY Theta    "&#920;"> <!-- greek capital letter theta,-                                    U+0398 ISOgrk3 -->-<!ENTITY Iota     "&#921;"> <!-- greek capital letter iota, U+0399 -->-<!ENTITY Kappa    "&#922;"> <!-- greek capital letter kappa, U+039A -->-<!ENTITY Lambda   "&#923;"> <!-- greek capital letter lambda,-                                    U+039B ISOgrk3 -->-<!ENTITY Mu       "&#924;"> <!-- greek capital letter mu, U+039C -->-<!ENTITY Nu       "&#925;"> <!-- greek capital letter nu, U+039D -->-<!ENTITY Xi       "&#926;"> <!-- greek capital letter xi, U+039E ISOgrk3 -->-<!ENTITY Omicron  "&#927;"> <!-- greek capital letter omicron, U+039F -->-<!ENTITY Pi       "&#928;"> <!-- greek capital letter pi, U+03A0 ISOgrk3 -->-<!ENTITY Rho      "&#929;"> <!-- greek capital letter rho, U+03A1 -->-<!-- there is no Sigmaf, and no U+03A2 character either -->-<!ENTITY Sigma    "&#931;"> <!-- greek capital letter sigma,-                                    U+03A3 ISOgrk3 -->-<!ENTITY Tau      "&#932;"> <!-- greek capital letter tau, U+03A4 -->-<!ENTITY Upsilon  "&#933;"> <!-- greek capital letter upsilon,-                                    U+03A5 ISOgrk3 -->-<!ENTITY Phi      "&#934;"> <!-- greek capital letter phi,-                                    U+03A6 ISOgrk3 -->-<!ENTITY Chi      "&#935;"> <!-- greek capital letter chi, U+03A7 -->-<!ENTITY Psi      "&#936;"> <!-- greek capital letter psi,-                                    U+03A8 ISOgrk3 -->-<!ENTITY Omega    "&#937;"> <!-- greek capital letter omega,-                                    U+03A9 ISOgrk3 -->--<!ENTITY alpha    "&#945;"> <!-- greek small letter alpha,-                                    U+03B1 ISOgrk3 -->-<!ENTITY beta     "&#946;"> <!-- greek small letter beta, U+03B2 ISOgrk3 -->-<!ENTITY gamma    "&#947;"> <!-- greek small letter gamma,-                                    U+03B3 ISOgrk3 -->-<!ENTITY delta    "&#948;"> <!-- greek small letter delta,-                                    U+03B4 ISOgrk3 -->-<!ENTITY epsilon  "&#949;"> <!-- greek small letter epsilon,-                                    U+03B5 ISOgrk3 -->-<!ENTITY zeta     "&#950;"> <!-- greek small letter zeta, U+03B6 ISOgrk3 -->-<!ENTITY eta      "&#951;"> <!-- greek small letter eta, U+03B7 ISOgrk3 -->-<!ENTITY theta    "&#952;"> <!-- greek small letter theta,-                                    U+03B8 ISOgrk3 -->-<!ENTITY iota     "&#953;"> <!-- greek small letter iota, U+03B9 ISOgrk3 -->-<!ENTITY kappa    "&#954;"> <!-- greek small letter kappa,-                                    U+03BA ISOgrk3 -->-<!ENTITY lambda   "&#955;"> <!-- greek small letter lambda,-                                    U+03BB ISOgrk3 -->-<!ENTITY mu       "&#956;"> <!-- greek small letter mu, U+03BC ISOgrk3 -->-<!ENTITY nu       "&#957;"> <!-- greek small letter nu, U+03BD ISOgrk3 -->-<!ENTITY xi       "&#958;"> <!-- greek small letter xi, U+03BE ISOgrk3 -->-<!ENTITY omicron  "&#959;"> <!-- greek small letter omicron, U+03BF NEW -->-<!ENTITY pi       "&#960;"> <!-- greek small letter pi, U+03C0 ISOgrk3 -->-<!ENTITY rho      "&#961;"> <!-- greek small letter rho, U+03C1 ISOgrk3 -->-<!ENTITY sigmaf   "&#962;"> <!-- greek small letter final sigma,-                                    U+03C2 ISOgrk3 -->-<!ENTITY sigma    "&#963;"> <!-- greek small letter sigma,-                                    U+03C3 ISOgrk3 -->-<!ENTITY tau      "&#964;"> <!-- greek small letter tau, U+03C4 ISOgrk3 -->-<!ENTITY upsilon  "&#965;"> <!-- greek small letter upsilon,-                                    U+03C5 ISOgrk3 -->-<!ENTITY phi      "&#966;"> <!-- greek small letter phi, U+03C6 ISOgrk3 -->-<!ENTITY chi      "&#967;"> <!-- greek small letter chi, U+03C7 ISOgrk3 -->-<!ENTITY psi      "&#968;"> <!-- greek small letter psi, U+03C8 ISOgrk3 -->-<!ENTITY omega    "&#969;"> <!-- greek small letter omega,-                                    U+03C9 ISOgrk3 -->-<!ENTITY thetasym "&#977;"> <!-- greek small letter theta symbol,-                                    U+03D1 NEW -->-<!ENTITY upsih    "&#978;"> <!-- greek upsilon with hook symbol,-                                    U+03D2 NEW -->-<!ENTITY piv      "&#982;"> <!-- greek pi symbol, U+03D6 ISOgrk3 -->--<!-- General Punctuation -->-<!ENTITY bull     "&#8226;"> <!-- bullet = black small circle,-                                     U+2022 ISOpub  -->-<!-- bullet is NOT the same as bullet operator, U+2219 -->-<!ENTITY hellip   "&#8230;"> <!-- horizontal ellipsis = three dot leader,-                                     U+2026 ISOpub  -->-<!ENTITY prime    "&#8242;"> <!-- prime = minutes = feet, U+2032 ISOtech -->-<!ENTITY Prime    "&#8243;"> <!-- double prime = seconds = inches,-                                     U+2033 ISOtech -->-<!ENTITY oline    "&#8254;"> <!-- overline = spacing overscore,-                                     U+203E NEW -->-<!ENTITY frasl    "&#8260;"> <!-- fraction slash, U+2044 NEW -->--<!-- Letterlike Symbols -->-<!ENTITY weierp   "&#8472;"> <!-- script capital P = power set-                                     = Weierstrass p, U+2118 ISOamso -->-<!ENTITY image    "&#8465;"> <!-- blackletter capital I = imaginary part,-                                     U+2111 ISOamso -->-<!ENTITY real     "&#8476;"> <!-- blackletter capital R = real part symbol,-                                     U+211C ISOamso -->-<!ENTITY trade    "&#8482;"> <!-- trade mark sign, U+2122 ISOnum -->-<!ENTITY alefsym  "&#8501;"> <!-- alef symbol = first transfinite cardinal,-                                     U+2135 NEW -->-<!-- alef symbol is NOT the same as hebrew letter alef,-     U+05D0 although the same glyph could be used to depict both characters -->--<!-- Arrows -->-<!ENTITY larr     "&#8592;"> <!-- leftwards arrow, U+2190 ISOnum -->-<!ENTITY uarr     "&#8593;"> <!-- upwards arrow, U+2191 ISOnum-->-<!ENTITY rarr     "&#8594;"> <!-- rightwards arrow, U+2192 ISOnum -->-<!ENTITY darr     "&#8595;"> <!-- downwards arrow, U+2193 ISOnum -->-<!ENTITY harr     "&#8596;"> <!-- left right arrow, U+2194 ISOamsa -->-<!ENTITY crarr    "&#8629;"> <!-- downwards arrow with corner leftwards-                                     = carriage return, U+21B5 NEW -->-<!ENTITY lArr     "&#8656;"> <!-- leftwards double arrow, U+21D0 ISOtech -->-<!-- Unicode does not say that lArr is the same as the 'is implied by' arrow-    but also does not have any other character for that function. So ? lArr can-    be used for 'is implied by' as ISOtech suggests -->-<!ENTITY uArr     "&#8657;"> <!-- upwards double arrow, U+21D1 ISOamsa -->-<!ENTITY rArr     "&#8658;"> <!-- rightwards double arrow,-                                     U+21D2 ISOtech -->-<!-- Unicode does not say this is the 'implies' character but does not have -     another character with this function so ?-     rArr can be used for 'implies' as ISOtech suggests -->-<!ENTITY dArr     "&#8659;"> <!-- downwards double arrow, U+21D3 ISOamsa -->-<!ENTITY hArr     "&#8660;"> <!-- left right double arrow,-                                     U+21D4 ISOamsa -->--<!-- Mathematical Operators -->-<!ENTITY forall   "&#8704;"> <!-- for all, U+2200 ISOtech -->-<!ENTITY part     "&#8706;"> <!-- partial differential, U+2202 ISOtech  -->-<!ENTITY exist    "&#8707;"> <!-- there exists, U+2203 ISOtech -->-<!ENTITY empty    "&#8709;"> <!-- empty set = null set = diameter,-                                     U+2205 ISOamso -->-<!ENTITY nabla    "&#8711;"> <!-- nabla = backward difference,-                                     U+2207 ISOtech -->-<!ENTITY isin     "&#8712;"> <!-- element of, U+2208 ISOtech -->-<!ENTITY notin    "&#8713;"> <!-- not an element of, U+2209 ISOtech -->-<!ENTITY ni       "&#8715;"> <!-- contains as member, U+220B ISOtech -->-<!-- should there be a more memorable name than 'ni'? -->-<!ENTITY prod     "&#8719;"> <!-- n-ary product = product sign,-                                     U+220F ISOamsb -->-<!-- prod is NOT the same character as U+03A0 'greek capital letter pi' though-     the same glyph might be used for both -->-<!ENTITY sum      "&#8721;"> <!-- n-ary sumation, U+2211 ISOamsb -->-<!-- sum is NOT the same character as U+03A3 'greek capital letter sigma'-     though the same glyph might be used for both -->-<!ENTITY minus    "&#8722;"> <!-- minus sign, U+2212 ISOtech -->-<!ENTITY lowast   "&#8727;"> <!-- asterisk operator, U+2217 ISOtech -->-<!ENTITY radic    "&#8730;"> <!-- square root = radical sign,-                                     U+221A ISOtech -->-<!ENTITY prop     "&#8733;"> <!-- proportional to, U+221D ISOtech -->-<!ENTITY infin    "&#8734;"> <!-- infinity, U+221E ISOtech -->-<!ENTITY ang      "&#8736;"> <!-- angle, U+2220 ISOamso -->-<!ENTITY and      "&#8743;"> <!-- logical and = wedge, U+2227 ISOtech -->-<!ENTITY or       "&#8744;"> <!-- logical or = vee, U+2228 ISOtech -->-<!ENTITY cap      "&#8745;"> <!-- intersection = cap, U+2229 ISOtech -->-<!ENTITY cup      "&#8746;"> <!-- union = cup, U+222A ISOtech -->-<!ENTITY int      "&#8747;"> <!-- integral, U+222B ISOtech -->-<!ENTITY there4   "&#8756;"> <!-- therefore, U+2234 ISOtech -->-<!ENTITY sim      "&#8764;"> <!-- tilde operator = varies with = similar to,-                                     U+223C ISOtech -->-<!-- tilde operator is NOT the same character as the tilde, U+007E,-     although the same glyph might be used to represent both  -->-<!ENTITY cong     "&#8773;"> <!-- approximately equal to, U+2245 ISOtech -->-<!ENTITY asymp    "&#8776;"> <!-- almost equal to = asymptotic to,-                                     U+2248 ISOamsr -->-<!ENTITY ne       "&#8800;"> <!-- not equal to, U+2260 ISOtech -->-<!ENTITY equiv    "&#8801;"> <!-- identical to, U+2261 ISOtech -->-<!ENTITY le       "&#8804;"> <!-- less-than or equal to, U+2264 ISOtech -->-<!ENTITY ge       "&#8805;"> <!-- greater-than or equal to,-                                     U+2265 ISOtech -->-<!ENTITY sub      "&#8834;"> <!-- subset of, U+2282 ISOtech -->-<!ENTITY sup      "&#8835;"> <!-- superset of, U+2283 ISOtech -->-<!-- note that nsup, 'not a superset of, U+2283' is not covered by the Symbol -     font encoding and is not included. Should it be, for symmetry?-     It is in ISOamsn  --> -<!ENTITY nsub     "&#8836;"> <!-- not a subset of, U+2284 ISOamsn -->-<!ENTITY sube     "&#8838;"> <!-- subset of or equal to, U+2286 ISOtech -->-<!ENTITY supe     "&#8839;"> <!-- superset of or equal to,-                                     U+2287 ISOtech -->-<!ENTITY oplus    "&#8853;"> <!-- circled plus = direct sum,-                                     U+2295 ISOamsb -->-<!ENTITY otimes   "&#8855;"> <!-- circled times = vector product,-                                     U+2297 ISOamsb -->-<!ENTITY perp     "&#8869;"> <!-- up tack = orthogonal to = perpendicular,-                                     U+22A5 ISOtech -->-<!ENTITY sdot     "&#8901;"> <!-- dot operator, U+22C5 ISOamsb -->-<!-- dot operator is NOT the same character as U+00B7 middle dot -->--<!-- Miscellaneous Technical -->-<!ENTITY lceil    "&#8968;"> <!-- left ceiling = apl upstile,-                                     U+2308 ISOamsc  -->-<!ENTITY rceil    "&#8969;"> <!-- right ceiling, U+2309 ISOamsc  -->-<!ENTITY lfloor   "&#8970;"> <!-- left floor = apl downstile,-                                     U+230A ISOamsc  -->-<!ENTITY rfloor   "&#8971;"> <!-- right floor, U+230B ISOamsc  -->-<!ENTITY lang     "&#9001;"> <!-- left-pointing angle bracket = bra,-                                     U+2329 ISOtech -->-<!-- lang is NOT the same character as U+003C 'less than' -     or U+2039 'single left-pointing angle quotation mark' -->-<!ENTITY rang     "&#9002;"> <!-- right-pointing angle bracket = ket,-                                     U+232A ISOtech -->-<!-- rang is NOT the same character as U+003E 'greater than' -     or U+203A 'single right-pointing angle quotation mark' -->--<!-- Geometric Shapes -->-<!ENTITY loz      "&#9674;"> <!-- lozenge, U+25CA ISOpub -->--<!-- Miscellaneous Symbols -->-<!ENTITY spades   "&#9824;"> <!-- black spade suit, U+2660 ISOpub -->-<!-- black here seems to mean filled as opposed to hollow -->-<!ENTITY clubs    "&#9827;"> <!-- black club suit = shamrock,-                                     U+2663 ISOpub -->-<!ENTITY hearts   "&#9829;"> <!-- black heart suit = valentine,-                                     U+2665 ISOpub -->-<!ENTITY diams    "&#9830;"> <!-- black diamond suit, U+2666 ISOpub -->
− examples/xhtml/xhtml.xml
@@ -1,1484 +0,0 @@-<!DOCTYPE html SYSTEM "xhtml1-strict.dtd">-<?xml-stylesheet href="http://www.w3.org/StyleSheets/TR/W3C-REC.css" type="text/css"?>-<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">-<head>-<title>XHTML 1.0: The Extensible HyperText Markup-Language</title>-<link rel="stylesheet"-href="http://www.w3.org/StyleSheets/TR/W3C-REC.css" type="text/css" />-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />-<style type="text/css">-span.term { font-style: italic; color: rgb(0, 0, 192) }-code {-	color: green;-	font-family: monospace;-	font-weight: bold;-}--code.greenmono {-	color: green;-	font-family: monospace;-	font-weight: bold;-}-.good {-	border: solid green;-	border-width: 2px;-	color: green;-	font-weight: bold;-	margin-right: 5%;-	margin-left: 0;-}-.bad  {-	border: solid red;-	border-width: 2px;-	margin-left: 0;-	margin-right: 5%;-	color: rgb(192, 101, 101);-}--img {-	color: white;-	border: none;-}--div.navbar { text-align: center; }-div.contents {-	background-color: rgb(204,204,255);-	padding: 0.5em;-	border: none;-	margin-right: 5%;-}-.tocline { list-style: none; }-table.exceptions { background-color: rgb(255,255,153); }-</style>-</head>-<body>-<div class="navbar">-  <a href="#toc">table of contents</a>-  <hr />-</div>-<div class="head"><p><a href="http://www.w3.org/"><img class="head"-src="http://www.w3.org/Icons/WWW/w3c_home.gif" alt="W3C" /></a></p>--<h1 class="head"><a name="title" id="title">XHTML</a><sup>&#8482;</sup> 1.0:-The Extensible HyperText Markup Language</h1>--<h2>A Reformulation of HTML 4 in XML 1.0</h2>--<h3>W3C Recommendation 26 January 2000</h3>--<dl>-<dt>This version:</dt>--<dd><a href=-"http://www.w3.org/TR/2000/REC-xhtml1-20000126">-http://www.w3.org/TR/2000/REC-xhtml1-20000126</a> <br />-(<a href="xhtml1.ps">Postscript version</a>,-<a href="xhtml1.pdf">PDF version</a>,-<a href="xhtml1.zip">ZIP archive</a>, or-<a href="xhtml1.tgz">Gzip'd TAR archive</a>)-</dd>--<dt>Latest version:</dt>--<dd><a href="http://www.w3.org/TR/xhtml1">-http://www.w3.org/TR/xhtml1</a></dd>--<dt>Previous version:</dt>--<dd><a href=-"http://www.w3.org/TR/1999/PR-xhtml1-19991210">-http://www.w3.org/TR/1999/PR-xhtml1-19991210</a></dd>--<dt>Authors:</dt>--<dd>See <a href="#acks">acknowledgements</a>.</dd>-</dl>--<p class="copyright"><a-href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright"> Copyright</a>-&copy;2000 <a href="http://www.w3.org/"><abbr title="World Wide Web-Consortium">W3C</abbr></a><sup>&reg;</sup> (<a-href="http://www.lcs.mit.edu/"><abbr-title="Massachusetts Institute of Technology">MIT</abbr></a>, <a-href="http://www.inria.fr/"><abbr-lang="fr" title="Institut National de Recherche en Informatique et-Automatique">INRIA</abbr></a>, <a-href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a-href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,-<a-href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>,-<a-href="http://www.w3.org/Consortium/Legal/copyright-documents-19990405">document-use</a> and <a-href="http://www.w3.org/Consortium/Legal/copyright-software-19980720">software-licensing</a> rules-apply.</p>-<hr />-</div>--<h2 class="notoc">Abstract</h2>--<p>This specification defines <abbr title="Extensible Hypertext Markup-Language">XHTML</abbr> 1.0, a reformulation of HTML&nbsp;4-as an XML 1.0 application, and three <abbr title="Document Type-Definition">DTDs</abbr> corresponding to-the ones defined by HTML&nbsp;4. The semantics of the elements and-their attributes are defined in the W3C Recommendation for HTML&nbsp;4.-These semantics provide the foundation for future-extensibility of XHTML. Compatibility with existing HTML user-agents is possible by following a small set of guidelines.</p>--<h2>Status of this document</h2>--<p><em>This section describes the status of this document at the time-of its publication. Other documents may supersede this document. The-latest status of this document series is maintained at the W3C.</em></p>--<p>-This document has been reviewed by W3C Members and other-interested parties and has been endorsed by the Director-as a W3C Recommendation. It is a stable document and may be-used as reference material or cited as a normative-reference from another document. W3C's role in making the-Recommendation is to draw attention to the specification and-to promote its widespread deployment. This enhances the-functionality and interoperability of the Web.-</p>-<p>This document has been produced as part of the <a href=-"http://www.w3.org/MarkUp/">W3C HTML Activity</a>. The goals of-the <a href="http://www.w3.org/MarkUp/Group/">HTML Working-Group</a> <i>(<a href="http://cgi.w3.org/MemberAccess/">members-only</a>)</i> are discussed in the <a href=-"http://www.w3.org/MarkUp/Group/HTMLcharter">HTML Working Group-charter</a> <i>(<a href="http://cgi.w3.org/MemberAccess/">members-only</a>)</i>.</p>--<p>A list of current W3C Recommendations and other technical documents-can be found at <a-href="http://www.w3.org/TR">http://www.w3.org/TR</a>.</p>--<p>Public discussion on <abbr title="HyperText Markup-Language">HTML</abbr> features takes place on the mailing list <a-href="mailto:www-html@w3.org"> www-html@w3.org</a> (<a href=-"http://lists.w3.org/Archives/Public/www-html/">archive</a>).</p>--<p>Please report errors in this document to <a-href="mailto:www-html-editor@w3.org">www-html-editor@w3.org</a>.</p>--<p>The list of known errors in this specification is available at <a-href="http://www.w3.org/2000/01/REC-xhtml1-20000126-errata">http://www.w3.org/2000/01/REC-xhtml1-20000126-errata</a>.</p>--<h2 class="notoc"><a id="toc" name="toc">Contents</a></h2>--<div class="contents">-<ul class="toc">-<li class="tocline">1. <a href="#xhtml">What is XHTML?</a>--<ul class="toc">-<li class="tocline">1.1 <a href="#html4">What is HTML 4?</a></li>--<li class="tocline">1.2 <a href="#xml">What is XML?</a></li>--<li class="tocline">1.3 <a href="#why">Why the need for XHTML?</a></li>-</ul>-</li>--<li class="tocline">2. <a href="#defs">Definitions</a>--<ul class="toc">-<li class="tocline">2.1 <a href="#terms">Terminology</a></li>--<li class="tocline">2.2 <a href="#general">General Terms</a></li>-</ul>-</li>--<li class="tocline">3. <a href="#normative">Normative Definition of XHTML 1.0</a>---<ul class="toc">-<li class="tocline">3.1 <a href="#docconf">Document Conformance</a></li>--<li class="tocline">3.2 <a href="#uaconf">User Agent Conformance</a></li>-</ul>-</li>--<li class="tocline">4. <a href="#diffs">Differences with HTML 4</a>--</li>--<li class="tocline">5. <a href="#issues">Compatibility Issues</a>--<ul class="toc">-<li class="tocline">5.1 <a href="#media">Internet Media Types</a></li>-</ul>-</li>--<li class="tocline">6. <a href="#future">Future Directions</a>--<ul class="toc">-<li class="tocline">6.1 <a href="#mods">Modularizing HTML</a></li>--<li class="tocline">6.2 <a href="#extensions">Subsets and Extensibility</a></li>--<li class="tocline">6.3 <a href="#profiles">Document Profiles</a></li>-</ul>-</li>--<li class="tocline"><a href="#dtds">Appendix A. DTDs</a></li>--<li class="tocline"><a href="#prohibitions">Appendix B. Element-Prohibitions</a></li>--<li class="tocline"><a href="#guidelines">Appendix C. HTML Compatibility Guidelines</a></li>--<li class="tocline"><a href="#acks">Appendix D. Acknowledgements</a></li>--<li class="tocline"><a href="#refs">Appendix E. References</a></li>-</ul>-</div>--<!--OddPage-->-<h1><a name="xhtml" id="xhtml">1. What is XHTML?</a></h1>--<p>XHTML is a family of current and future document types and modules that-reproduce, subset, and extend HTML&nbsp;4 <a href="#ref-html4">[HTML]</a>. XHTML family document types are <abbr title="Extensible Markup Language">XML</abbr> based,-and ultimately are designed to work in conjunction with XML-based user agents.-The details of this family and its evolution are-discussed in more detail in the section on <a href="#future">Future-Directions</a>. </p>--<p>XHTML 1.0 (this specification) is the first document type in the XHTML-family. It is a reformulation of the three HTML&nbsp;4 document types as-applications of XML 1.0 <a href="#ref-xml"> [XML]</a>. It is intended-to be used as a language for content that is both XML-conforming and, if some-simple <a href="#guidelines">guidelines</a> are followed,-operates in HTML&nbsp;4 conforming user agents. Developers who migrate-their content to XHTML 1.0 will realize the following benefits:</p>--<ul>-<li>XHTML documents are XML conforming. As such, they are readily viewed,-edited, and validated with standard XML tools.</li>-<li>XHTML documents can be written to-to operate as well or better than they did before in existing-HTML&nbsp;4-conforming user agents as well as in new, XHTML 1.0 conforming user-agents.</li>-<li>XHTML documents can utilize applications (e.g. scripts and applets) that rely-upon either the HTML Document Object Model or the XML Document Object Model <a-href="#ref-dom">[DOM]</a>.</li>-<li>As the XHTML family evolves, documents conforming to XHTML 1.0 will be more-likely to interoperate within and among various XHTML environments.</li>-</ul>--<p>The XHTML family is the next step in the evolution of the Internet. By-migrating to XHTML today, content developers can enter the XML world with all-of its attendant benefits, while still remaining confident in their-content's backward and future compatibility.</p>--<h2><a name="html4" id="html4">1.1 What is HTML&nbsp;4?</a></h2>--<p>HTML 4 <a href="#ref-html4">[HTML]</a> is an <abbr title="Standard-Generalized Markup Language">SGML</abbr> (Standard-Generalized Markup Language) application conforming to-International Standard <abbr title="Organization for International-Standardization">ISO</abbr> 8879, and is widely regarded as the-standard publishing language of the World Wide Web.</p>--<p>SGML is a language for describing markup languages,-particularly those used in electronic document exchange, document-management, and document publishing. HTML is an example of a-language defined in SGML.</p>--<p>SGML has been around since the middle 1980's and has remained-quite stable. Much of this stability stems from the fact that the-language is both feature-rich and flexible. This flexibility,-however, comes at a price, and that price is a level of-complexity that has inhibited its adoption in a diversity of-environments, including the World Wide Web.</p>--<p>HTML, as originally conceived, was to be a language for the-exchange of scientific and other technical documents, suitable-for use by non-document specialists. HTML addressed the problem-of SGML complexity by specifying a small set of structural and-semantic tags suitable for authoring relatively simple documents.-In addition to simplifying the document structure, HTML added-support for hypertext. Multimedia capabilities were added-later.</p>--<p>In a remarkably short space of time, HTML became wildly-popular and rapidly outgrew its original purpose. Since HTML's-inception, there has been rapid invention of new elements for use-within HTML (as a standard) and for adapting HTML to vertical,-highly specialized, markets. This plethora of new elements has-led to compatibility problems for documents across different-platforms.</p>--<p>As the heterogeneity of both software and platforms rapidly-proliferate, it is clear that the suitability of 'classic' HTML&nbsp;4-for use on these platforms is somewhat limited.</p>--<h2><a name="xml" id="xml">1.2 What is XML?</a></h2>--<p>XML<sup>&#8482;</sup> is the shorthand for Extensible Markup-Language, and is an acronym of Extensible Markup Language <a-href="#ref-xml">[XML]</a>.</p>--<p>XML was conceived as a means of regaining the power and-flexibility of SGML without most of its complexity. Although a-restricted form of SGML, XML nonetheless preserves most of SGML's-power and richness, and yet still retains all of SGML's commonly-used features.</p>--<p>While retaining these beneficial features, XML removes many of-the more complex features of SGML that make the authoring and-design of suitable software both difficult and costly.</p>--<h2><a name="why" id="why">1.3 Why the need for XHTML?</a></h2>--<p>The benefits of migrating to XHTML 1.0 are described above. Some of the-benefits of migrating to XHTML in general are:</p>--<ul>-<li>Document developers and user agent designers are constantly-discovering new ways to express their ideas through new markup. In XML, it is-relatively easy to introduce new elements or additional element-attributes.  The XHTML family is designed to accommodate these extensions-through XHTML modules and techniques for developing new XHTML-conforming-modules (described in the forthcoming XHTML Modularization specification).-These modules will permit the combination of existing and-new feature sets when developing content and when designing new user-agents.</li>--<li>Alternate ways of accessing the Internet are constantly being-introduced.  Some estimates indicate that by the year 2002, 75% of-Internet document viewing will be carried out on these alternate-platforms.  The XHTML family is designed with general user agent-interoperability in mind. Through a new user agent and document profiling-mechanism, servers, proxies, and user agents will be able to perform-best effort content transformation. Ultimately, it will be possible to-develop XHTML-conforming content that is usable by any XHTML-conforming-user agent.</li>--</ul>-<!--OddPage-->-<h1><a name="defs" id="defs">2. Definitions</a></h1>--<h2><a name="terms" id="terms">2.1 Terminology</a></h2>--<p>The following terms are used in this specification. These-terms extend the definitions in <a href="#ref-rfc2119">-[RFC2119]</a> in ways based upon similar definitions in ISO/<abbr-title="International Electro-technical Commission">IEC</abbr>-9945-1:1990 <a href="#ref-posix">[POSIX.1]</a>:</p>--<dl>-<dt>Implementation-defined</dt>--<dd>A value or behavior is implementation-defined when it is left-to the implementation to define [and document] the corresponding-requirements for correct document construction.</dd>--<dt>May</dt>--<dd>With respect to implementations, the word "may" is to be-interpreted as an optional feature that is not required in this-specification but can be provided. With respect to <a href=-"#docconf">Document Conformance</a>, the word "may" means that-the optional feature must not be used. The term "optional" has-the same definition as "may".</dd>--<dt>Must</dt>--<dd>In this specification, the word "must" is to be interpreted-as a mandatory requirement on the implementation or on Strictly-Conforming XHTML Documents, depending upon the context. The term-"shall" has the same definition as "must".</dd>--<dt>Reserved</dt>--<dd>A value or behavior is unspecified, but it is not allowed to-be used by Conforming Documents nor to be supported by a-Conforming User Agents.</dd>--<dt>Should</dt>--<dd>With respect to implementations, the word "should" is to be-interpreted as an implementation recommendation, but not a-requirement. With respect to documents, the word "should" is to-be interpreted as recommended programming practice for documents-and a requirement for Strictly Conforming XHTML Documents.</dd>--<dt>Supported</dt>--<dd>Certain facilities in this specification are optional. If a-facility is supported, it behaves as specified by this-specification.</dd>--<dt>Unspecified</dt>--<dd>When a value or behavior is unspecified, the specification-defines no portability requirements for a facility on an-implementation even when faced with a document that uses the-facility. A document that requires specific behavior in such an-instance, rather than tolerating any behavior when using that-facility, is not a Strictly Conforming XHTML Document.</dd>-</dl>--<h2><a name="general" id="general">2.2 General Terms</a></h2>--<dl>-<dt>Attribute</dt>--<dd>An attribute is a parameter to an element declared in the-DTD. An attribute's type and value range, including a possible-default value, are defined in the DTD.</dd>--<dt>DTD</dt>--<dd>A DTD, or document type definition, is a collection of XML-declarations that, as a collection, defines the legal structure,-<span class="term">elements</span>, and <span class="term">-attributes</span> that are available for use in a document that-complies to the DTD.</dd>--<dt>Document</dt>--<dd>A document is a stream of data that, after being combined-with any other streams it references, is structured such that it-holds information contained within <span class="term">-elements</span> that are organized as defined in the associated-<span class="term">DTD</span>. See <a href="#docconf">Document-Conformance</a> for more information.</dd>--<dt>Element</dt>--<dd>An element is a document structuring unit declared in the-<span class="term">DTD</span>. The element's content model is-defined in the <span class="term">DTD</span>, and additional-semantics may be defined in the prose description of the-element.</dd>--<dt><a name="facilities" id="facilities">Facilities</a></dt>--<dd>Functionality includes <span class="term">elements</span>,-<span class="term">attributes</span>, and the semantics-associated with those <span class="term">elements</span> and-<span class="term">attributes</span>. An implementation-supporting that functionality is said to provide the necessary-facilities.</dd>--<dt>Implementation</dt>--<dd>An implementation is a system that provides collection of-<span class="term">facilities</span> and services that supports-this specification. See <a href="#uaconf">User Agent-Conformance</a> for more information.</dd>--<dt>Parsing</dt>--<dd>Parsing is the act whereby a <span class="term">-document</span> is scanned, and the information contained within-the <span class="term">document</span> is filtered into the-context of the <span class="term">elements</span> in which the-information is structured.</dd>--<dt>Rendering</dt>--<dd>Rendering is the act whereby the information in a <span-class="term">document</span> is presented. This presentation is-done in the form most appropriate to the environment (e.g.-aurally, visually, in print).</dd>--<dt>User Agent</dt>--<dd>A user agent is an <span class="term">implementation</span>-that retrieves and processes XHTML documents. See <a href=-"#uaconf">User Agent Conformance</a> for more information.</dd>--<dt>Validation</dt>--<dd>Validation is a process whereby <span class="term">-documents</span> are verified against the associated <span class=-"term">DTD</span>, ensuring that the structure, use of <span-class="term">elements</span>, and use of <span class="term">-attributes</span> are consistent with the definitions in the-<span class="term">DTD</span>.</dd>--<dt><a name="wellformed" id="wellformed">Well-formed</a></dt>--<dd>A <span class="term">document</span> is well-formed when it-is structured according to the rules defined in <a href=-"http://www.w3.org/TR/REC-xml#sec-well-formed">Section 2.1</a> of-the XML 1.0 Recommendation <a href="#ref-xml">[XML]</a>.-Basically, this definition states that elements, delimited by-their start and end tags, are nested properly within one-another.</dd>-</dl>--<!--OddPage-->-<h1><a name="normative" id="normative">3. Normative Definition of-XHTML 1.0</a></h1>--<h2><a name="docconf" id="docconf">3.1 Document-Conformance</a></h2>--<p>This version of XHTML provides a definition of strictly-conforming XHTML documents, which are restricted to tags and-attributes from the XHTML namespace. See <a href=-"#well-formed">Section 3.1.2</a> for information on using XHTML-with other namespaces, for instance, to include metadata-expressed in <abbr title="Resource Description Format">RDF</abbr> within XHTML documents.</p>--<h3><a name="strict" id="strict">3.1.1 Strictly Conforming-Documents</a></h3>--<p>A Strictly Conforming XHTML Document is a document that-requires only the facilities described as mandatory in this-specification. Such a document must meet all of the following-criteria:</p>--<ol>-<li>-<p>It must validate against one of the three DTDs found in <a-href="#dtds">Appendix&#160;A</a>.</p>-</li>--<li>-<p>The root element of the document must be <code>-&lt;html&gt;</code>.</p>-</li>--<li>-<p>The root element of the document must designate the XHTML-namespace using the <code>xmlns</code> attribute <a href=-"#ref-xmlns">[XMLNAMES]</a>. The namespace for XHTML is-defined to be-<code>http://www.w3.org/1999/xhtml</code>.</p>-</li>--<li>-<p>There must be a DOCTYPE declaration in the document prior to-the root element. The public identifier included in-the DOCTYPE declaration must reference one of the three DTDs-found in <a href="#dtds">Appendix&#160;A</a> using the respective-Formal Public Identifier. The system identifier may be changed to reflect-local system conventions.</p>--<pre>-&lt;!DOCTYPE html-     PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"-     "DTD/xhtml1-strict.dtd"&gt;--&lt;!DOCTYPE html-     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"-     "DTD/xhtml1-transitional.dtd"&gt;--&lt;!DOCTYPE html-     PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"-     "DTD/xhtml1-frameset.dtd"&gt;-</pre>-</li>-</ol>--<p>Here is an example of a minimal XHTML document.</p>--<div class="good">-<pre>-&lt;?xml version="1.0" encoding="UTF-8"?&gt;-&lt;!DOCTYPE html-     PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"-    "DTD/xhtml1-strict.dtd"&gt;-&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"&gt;-  &lt;head&gt;-    &lt;title&gt;Virtual Library&lt;/title&gt;-  &lt;/head&gt;-  &lt;body&gt;-    &lt;p&gt;Moved to &lt;a href="http://vlib.org/"&gt;vlib.org&lt;/a&gt;.&lt;/p&gt;-  &lt;/body&gt;-&lt;/html&gt;</pre>-</div>--<p>Note that in this example, the XML declaration is included. An XML-declaration like the one above is-not required in all XML documents. XHTML document authors are strongly encouraged to use XML declarations in all their documents. Such a declaration is required-when the character encoding of the document is other than the default UTF-8 or-UTF-16.</p>--<h3><a name="well-formed" id="well-formed">3.1.2 Using XHTML with-other namespaces</a></h3>--<p>The XHTML namespace may be used with other XML namespaces-as per <a href="#ref-xmlns">[XMLNAMES]</a>, although such-documents are not strictly conforming XHTML 1.0 documents as-defined above. Future work by W3C will address ways to specify-conformance for documents involving multiple namespaces.</p>--<p>The following example shows the way in which XHTML 1.0 could-be used in conjunction with the MathML Recommendation:</p>--<div class="good">-<pre>-&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"&gt;-  &lt;head&gt;-    &lt;title&gt;A Math Example&lt;/title&gt;-  &lt;/head&gt;-  &lt;body&gt;-    &lt;p&gt;The following is MathML markup:&lt;/p&gt;-    &lt;math xmlns="http://www.w3.org/1998/Math/MathML"&gt;-      &lt;apply&gt; &lt;log/&gt;-        &lt;logbase&gt;-          &lt;cn&gt; 3 &lt;/cn&gt;-        &lt;/logbase&gt;-        &lt;ci&gt; x &lt;/ci&gt;-      &lt;/apply&gt;-    &lt;/math&gt;-  &lt;/body&gt;-&lt;/html&gt;-</pre>-</div>--<p>The following example shows the way in which XHTML 1.0 markup-could be incorporated into another XML namespace:</p>--<div class="good">-<pre>-&lt;?xml version="1.0" encoding="UTF-8"?&gt;-&lt;!-- initially, the default namespace is "books" --&gt;-&lt;book xmlns='urn:loc.gov:books'-    xmlns:isbn='urn:ISBN:0-395-36341-6' xml:lang="en" lang="en"&gt;-  &lt;title&gt;Cheaper by the Dozen&lt;/title&gt;-  &lt;isbn:number&gt;1568491379&lt;/isbn:number&gt;-  &lt;notes&gt;-    &lt;!-- make HTML the default namespace for a hypertext commentary --&gt;-    &lt;p xmlns='http://www.w3.org/1999/xhtml'&gt;-        This is also available &lt;a href="http://www.w3.org/"&gt;online&lt;/a&gt;.-    &lt;/p&gt;-  &lt;/notes&gt;-&lt;/book&gt;-</pre>-</div>--<h2><a name="uaconf" id="uaconf">3.2 User Agent-Conformance</a></h2>--<p>A conforming user agent must meet all of the following-criteria:</p>--<ol>-<li>In order to be consistent with the XML 1.0 Recommendation <a-href="#ref-xml">[XML]</a>, the user agent must parse and evaluate-an XHTML document for well-formedness. If the user agent claims-to be a validating user agent, it must also validate documents-against their referenced DTDs according to <a href="#ref-xml">-[XML]</a>.</li>--<li>When the user agent claims to support <a href="#facilities">-facilities</a> defined within this specification or required by-this specification through normative reference, it must do so in-ways consistent with the facilities' definition.</li>--<li>When a user agent processes an XHTML document as generic XML,-it shall only recognize attributes of type-<code>ID</code> (e.g. the <code>id</code> attribute on most XHTML elements)-as fragment identifiers.</li>--<li>If a user agent encounters an element it does not recognize,-it must render the element's content.</li>--<li>If a user agent encounters an attribute it does not-recognize, it must ignore the entire attribute specification-(i.e., the attribute and its value).</li>--<li>If a user agent encounters an attribute value it doesn't-recognize, it must use the default attribute value.</li>--<li>If it encounters an entity reference (other than one-of the predefined entities) for which the User Agent has-processed no declaration (which could happen if the declaration-is in the external subset which the User Agent hasn't read), the entity-reference should be rendered as the characters (starting-with the ampersand and ending with the semi-colon) that-make up the entity reference.</li>--<li>When rendering content, User Agents that encounter-characters or character entity references that are recognized but not renderable should display the document in such a way that it is obvious to the user that normal rendering has not taken place.</li>--<li>-The following characters are defined in [XML] as whitespace characters:--<ul>-<li>Space (&amp;#x0020;)</li>-<li>Tab (&amp;#x0009;)</li>-<li>Carriage return (&amp;#x000D;)</li>-<li>Line feed (&amp;#x000A;)</li>-</ul>--<p>-The XML processor normalizes different system's line end codes into one-single line-feed character, that is passed up to the application. The XHTML-user agent in addition, must treat the following characters as whitespace:-</p>--<ul>-<li>Form feed (&amp;#x000C;)</li>-<li>Zero-width space (&amp;#x200B;)</li>-</ul>--<p>-In elements where the 'xml:space' attribute is set to 'preserve', the user-agent must leave all whitespace characters intact (with the exception of-leading and trailing whitespace characters, which should be removed).-Otherwise, whitespace-is handled according to the following rules:-</p>--<ul>-<li>-All whitespace surrounding block elements should be removed.-</li>-<li>-Comments are removed entirely and do not affect whitespace handling. One-whitespace character on either side of a comment is treated as two white-space characters.-</li>-<li>-Leading and trailing whitespace inside a block element must be removed.-</li>-<li>Line feed characters within a block element must be converted into a-space (except when the 'xml:space' attribute is set to 'preserve').-</li>-<li>-A sequence of white space characters must be reduced to a single space-character (except when the 'xml:space' attribute is set to 'preserve').-</li>-<li>-With regard to rendition,-the User Agent should render the content in a-manner appropriate to the language in which the content is written.-In languages whose primary script is Latinate, the ASCII space-character is typically used to encode both grammatical word boundaries and-typographic whitespace; in languages whose script is related to Nagari-(e.g., Sanskrit, Thai, etc.), grammatical boundaries may be encoded using-the ZW 'space' character, but will not typically be represented by-typographic whitespace in rendered output; languages using Arabiform scripts-may encode typographic whitespace using a space character, but may also use-the ZW space character to delimit 'internal' grammatical boundaries (what-look like words in Arabic to an English eye frequently encode several words,-e.g. 'kitAbuhum' = 'kitAbu-hum' = 'book them' == their book); and languages-in the Chinese script tradition typically neither encode such delimiters nor-use typographic whitespace in this way.-</li>-</ul>--<p>Whitespace in attribute values is processed according to <a-href="#ref-xml">[XML]</a>.</p>-</li>-</ol>--<!--OddPage-->-<h1><a name="diffs" id="diffs">4. Differences with HTML&nbsp;4</a></h1>--<p>Due to the fact that XHTML is an XML application, certain-practices that were perfectly legal in SGML-based HTML&nbsp;4 <a-href="#ref-html4">[HTML]</a> must be changed.</p>--<h2><a name="h-4.1" id="h-4.1">4.1 Documents must be-well-formed</a></h2>--<p><a href="#wellformed">Well-formedness</a> is a new concept-introduced by <a href="#ref-xml">[XML]</a>. Essentially this-means that all elements must either have closing tags or be-written in a special form (as described below), and that all the-elements must nest.</p>--<p>Although overlapping is illegal in SGML, it was widely-tolerated in existing browsers.</p>--<div class="good">-<p><strong><em>CORRECT: nested elements.</em></strong></p>--<p>&lt;p&gt;here is an emphasized-&lt;em&gt;paragraph&lt;/em&gt;.&lt;/p&gt;</p>-</div>--<div class="bad">-<p><strong><em>INCORRECT: overlapping elements</em></strong></p>--<p>&lt;p&gt;here is an emphasized-&lt;em&gt;paragraph.&lt;/p&gt;&lt;/em&gt;</p>-</div>--<h2><a name="h-4.2" id="h-4.2">4.2 Element and attribute-names must be in lower case</a></h2>--<p>XHTML documents must use lower case for all HTML element and-attribute names. This difference is necessary because XML is-case-sensitive e.g. &lt;li&gt; and &lt;LI&gt; are different-tags.</p>--<h2><a name="h-4.3" id="h-4.3">4.3 For non-empty elements,-end tags are required</a></h2>--<p>In SGML-based HTML 4 certain elements were permitted to omit-the end tag; with the elements that followed implying closure.-This omission is not permitted in XML-based XHTML. All elements-other than those declared in the DTD as <code>EMPTY</code> must-have an end tag.</p>--<div class="good">-<p><strong><em>CORRECT: terminated elements</em></strong></p>--<p>&lt;p&gt;here is a paragraph.&lt;/p&gt;&lt;p&gt;here is-another paragraph.&lt;/p&gt;</p>-</div>--<div class="bad">-<p><strong><em>INCORRECT: unterminated elements</em></strong></p>--<p>&lt;p&gt;here is a paragraph.&lt;p&gt;here is another-paragraph.</p>-</div>--<h2><a name="h-4.4" id="h-4.4">4.4 Attribute values must-always be quoted</a></h2>--<p>All attribute values must be quoted, even those which appear-to be numeric.</p>--<div class="good">-<p><strong><em>CORRECT: quoted attribute values</em></strong></p>--<p>&lt;table rows="3"&gt;</p>-</div>--<div class="bad">-<p><strong><em>INCORRECT: unquoted attribute values</em></strong></p>--<p>&lt;table rows=3&gt;</p>-</div>--<h2><a name="h-4.5" id="h-4.5">4.5 Attribute-Minimization</a></h2>--<p>XML does not support attribute minimization. Attribute-value-pairs must be written in full. Attribute names such as <code>-compact</code> and <code>checked</code> cannot occur in elements-without their value being specified.</p>--<div class="good">-<p><strong><em>CORRECT: unminimized attributes</em></strong></p>--<p>&lt;dl compact="compact"&gt;</p>-</div>--<div class="bad">-<p><strong><em>INCORRECT: minimized attributes</em></strong></p>--<p>&lt;dl compact&gt;</p>-</div>--<h2><a name="h-4.6" id="h-4.6">4.6 Empty Elements</a></h2>--<p>Empty elements must either have an end tag or the start tag must end with <code>/&gt;</code>. For instance,-<code>&lt;br/&gt;</code> or <code>&lt;hr&gt;&lt;/hr&gt;</code>. See <a-href="#guidelines">HTML Compatibility Guidelines</a> for information on ways to-ensure this is backward compatible with HTML 4 user agents.</p>--<div class="good">-<p><strong><em>CORRECT: terminated empty tags</em></strong></p>--<p>&lt;br/&gt;&lt;hr/&gt;</p>-</div>--<div class="bad">-<p><strong><em>INCORRECT: unterminated empty tags</em></strong></p>--<p>&lt;br&gt;&lt;hr&gt;</p>-</div>--<h2><a name="h-4.7" id="h-4.7">4.7 Whitespace handling in-attribute values</a></h2>--<p>In attribute values, user agents will strip leading and-trailing whitespace from attribute values and map sequences-of one or more whitespace characters (including line breaks) to-a single inter-word space (an ASCII space character for western-scripts). See <a href="http://www.w3.org/TR/REC-xml#AVNormalize">-Section 3.3.3</a> of <a href="#ref-xml">[XML]</a>.</p>--<h2><a name="h-4.8" id="h-4.8">4.8 Script and Style-elements</a></h2>--<p>In XHTML, the script and style elements are declared as having-<code>#PCDATA</code> content. As a result, <code>&lt;</code> and-<code>&amp;</code> will be treated as the start of markup, and-entities such as <code>&amp;lt;</code> and <code>&amp;amp;</code>-will be recognized as entity references by the XML processor to-<code>&lt;</code> and <code>&amp;</code> respectively. Wrapping-the content of the script or style element within a <code>-CDATA</code> marked section avoids the expansion of these-entities.</p>--<div class="good">-<pre>-&lt;script&gt;- &lt;![CDATA[- ... unescaped script content ...- ]]&gt;- &lt;/script&gt;-</pre>-</div>--<p><code>CDATA</code> sections are recognized by the XML-processor and appear as nodes in the Document Object Model, see-<a href=-"http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-E067D597">-Section 1.3</a> of the DOM Level 1 Recommendation <a href=-"#ref-dom">[DOM]</a>.</p>--<p>An alternative is to use external script and style-documents.</p>--<h2><a name="h-4.9" id="h-4.9">4.9 SGML exclusions</a></h2>--<p>SGML gives the writer of a DTD the ability to exclude specific-elements from being contained within an element. Such-prohibitions (called "exclusions") are not possible in XML.</p>--<p>For example, the HTML 4 Strict DTD forbids the nesting of an-'<code>a</code>' element within another '<code>a</code>' element-to any descendant depth. It is not possible to spell out such-prohibitions in XML. Even though these prohibitions cannot be-defined in the DTD, certain elements should not be nested. A-summary of such elements and the elements that should not be-nested in them is found in the normative <a href="#prohibitions">-Appendix&#160;B</a>.</p>--<h2><a name="h-4.10" id="h-4.10">4.10 The elements with 'id' and 'name'-attributes</a></h2>--<p>HTML 4 defined the <code>name</code> attribute for the elements-<code>a</code>,-<code>applet</code>, <code>form</code>, <code>frame</code>,-<code>iframe</code>, <code>img</code>, and <code>map</code>.-HTML 4 also introduced-the <code>id</code> attribute. Both of these attributes are designed to be-used as fragment identifiers.</p>-<p>In XML, fragment identifiers are of type <code>ID</code>, and-there can only be a single attribute of type <code>ID</code> per element.-Therefore, in XHTML 1.0 the <code>id</code>-attribute is defined to be of type <code>ID</code>. In order to-ensure that XHTML 1.0 documents are well-structured XML documents, XHTML 1.0-documents MUST use the <code>id</code> attribute when defining fragment-identifiers, even on elements that historically have also had a-<code>name</code> attribute.-See the <a href="#guidelines">HTML Compatibility-Guidelines</a> for information on ensuring such anchors are backwards-compatible when serving XHTML documents as media type <code>text/html</code>.-</p>-<p>Note that in XHTML 1.0, the <code>name</code> attribute of these-elements is formally deprecated, and will be removed in a-subsequent version of XHTML.</p>--<!--OddPage-->-<h1><a name="issues" id="issues">5. Compatibility Issues</a></h1>--<p>Although there is no requirement for XHTML 1.0 documents to be-compatible with existing user agents, in practice this is easy to-accomplish. Guidelines for creating compatible documents can be-found in <a href="#guidelines">Appendix&#160;C</a>.</p>--<h2><a name="media" id="media">5.1 Internet Media Type</a></h2>-<p>As of the publication of this recommendation, the general-recommended MIME labeling for XML-based applications-has yet to be resolved.</p>--<p>However, XHTML Documents which follow the guidelines set forth-in <a href="#guidelines">Appendix C</a>, "HTML Compatibility Guidelines" may be-labeled with the Internet Media Type "text/html", as they-are compatible with most HTML browsers. This document-makes no recommendation about MIME labeling of other-XHTML documents.</p>--<!--OddPage-->-<h1><a name="future" id="future">6. Future Directions</a></h1>--<p>XHTML 1.0 provides the basis for a family of document types-that will extend and subset XHTML, in order to support a wide-range of new devices and applications, by defining modules and-specifying a mechanism for combining these modules. This-mechanism will enable the extension and sub-setting of XHTML 1.0-in a uniform way through the definition of new modules.</p>--<h2><a name="mods" id="mods">6.1 Modularizing HTML</a></h2>--<p>As the use of XHTML moves from the traditional desktop user-agents to other platforms, it is clear that not all of the XHTML-elements will be required on all platforms. For example a hand-held device or a cell-phone may only support a subset of XHTML-elements.</p>--<p>The process of modularization breaks XHTML up into a series of-smaller element sets. These elements can then be recombined to-meet the needs of different communities.</p>--<p>These modules will be defined in a later W3C document.</p>--<h2><a name="extensions" id="extensions">6.2 Subsets and-Extensibility</a></h2>--<p>Modularization brings with it several advantages:</p>--<ul>-<li>-<p>It provides a formal mechanism for sub-setting XHTML.</p>-</li>--<li>-<p>It provides a formal mechanism for extending XHTML.</p>-</li>--<li>-<p>It simplifies the transformation between document types.</p>-</li>--<li>-<p>It promotes the reuse of modules in new document types.</p>-</li>-</ul>--<h2><a name="profiles" id="profiles">6.3 Document-Profiles</a></h2>--<p>A document profile specifies the syntax and semantics of a set-of documents. Conformance to a document profile provides a basis-for interoperability guarantees. The document profile specifies-the facilities required to process documents of that type, e.g.-which image formats can be used, levels of scripting, style sheet-support, and so on.</p>--<p>For product designers this enables various groups to define-their own standard profile.</p>--<p>For authors this will obviate the need to write several-different versions of documents for different clients.</p>--<p>For special groups such as chemists, medical doctors, or-mathematicians this allows a special profile to be built using-standard HTML elements plus a group of elements geared to the-specialist's needs.</p>--<!--OddPage-->-<h1><a name="appendices" id="appendices"></a>-<a name="dtds" id="dtds">Appendix A. DTDs</a></h1>--<p><b>This appendix is normative.</b></p>--<p>These DTDs and entity sets form a normative part of this-specification. The complete set of DTD files together with an XML-declaration and SGML Open Catalog is included in the <a href=-"xhtml1.zip">zip file</a> for this specification.</p>--<h2><a name="h-A1" id="h-A1">A.1 Document Type-Definitions</a></h2>--<p>These DTDs approximate the HTML 4 DTDs. It is likely that-when the DTDs are modularized, a method of DTD construction will-be employed that corresponds more closely to HTML 4.</p>--<ul>-<li>-<p><a href="DTD/xhtml1-strict.dtd" type="text/plain">-XHTML-1.0-Strict</a></p>-</li>--<li>-<p><a href="DTD/xhtml1-transitional.dtd" type="text/plain">-XHTML-1.0-Transitional</a></p>-</li>--<li>-<p><a href="DTD/xhtml1-frameset.dtd" type="text/plain">-XHTML-1.0-Frameset</a></p>-</li>-</ul>--<h2><a name="h-A2" id="h-A2">A.2 Entity Sets</a></h2>--<p>The XHTML entity sets are the same as for HTML 4, but have-been modified to be valid XML 1.0 entity declarations. Note the-entity for the Euro currency sign (<code>&amp;euro;</code> or-<code>&amp;#8364;</code> or <code>&amp;#x20AC;</code>) is defined-as part of the special characters.</p>--<ul>-<li>-<p><a href="DTD/xhtml-lat1.ent">Latin-1 characters</a></p>-</li>--<li>-<p><a href="DTD/xhtml-special.ent">Special characters</a></p>-</li>--<li>-<p><a href="DTD/xhtml-symbol.ent">Symbols</a></p>-</li>-</ul>--<!--OddPage-->-<h1><a name="prohibitions" id="prohibitions">Appendix B. Element-Prohibitions</a></h1>--<p><b>This appendix is normative.</b></p>--<p>The following elements have prohibitions on which elements-they can contain (see <a href="#h-4.9">Section 4.9</a>). This-prohibition applies to all depths of nesting, i.e. it contains-all the descendant elements.</p>--<dl><dt><code class="tag">a</code></dt>-<dd>-cannot contain other <code>a</code> elements.</dd>-<dt><code class="tag">pre</code></dt>-<dd>cannot contain the <code>img</code>, <code>object</code>,-<code>big</code>, <code>small</code>, <code>sub</code>, or <code>-sup</code> elements.</dd>--<dt><code class="tag">button</code></dt>-<dd>cannot contain the <code>input</code>, <code>select</code>,-<code>textarea</code>, <code>label</code>, <code>button</code>,-<code>form</code>, <code>fieldset</code>, <code>iframe</code> or-<code>isindex</code> elements.</dd>-<dt><code class="tag">label</code></dt>-<dd>cannot contain other <code class="tag">label</code> elements.</dd>-<dt><code class="tag">form</code></dt>-<dd>cannot contain other <code>form</code> elements.</dd>-</dl>--<!--OddPage-->-<h1><a name="guidelines" id="guidelines">Appendix C.-HTML Compatibility Guidelines</a></h1>--<p><b>This appendix is informative.</b></p>--<p>This appendix summarizes design guidelines for authors who-wish their XHTML documents to render on existing HTML user-agents.</p>--<h2>C.1 Processing Instructions</h2>-<p>Be aware that processing instructions are rendered on some-user agents. However, also note that when the XML declaration is not included-in a document, the document can only use the default character encodings UTF-8-or UTF-16.</p>--<h2>C.2 Empty Elements</h2>-<p>Include a space before the trailing <code>/</code> and <code>-&gt;</code> of empty elements, e.g. <code class="greenmono">-&lt;br&#160;/&gt;</code>, <code class="greenmono">-&lt;hr&#160;/&gt;</code> and <code class="greenmono">&lt;img-src="karen.jpg" alt="Karen"&#160;/&gt;</code>. Also, use the-minimized tag syntax for empty elements, e.g. <code class=-"greenmono">&lt;br /&gt;</code>, as the alternative syntax <code-class="greenmono">&lt;br&gt;&lt;/br&gt;</code> allowed by XML-gives uncertain results in many existing user agents.</p>--<h2>C.3 Element Minimization and Empty Element Content</h2>-<p>Given an empty instance of an element whose content model is-not <code>EMPTY</code> (for example, an empty title or paragraph)-do not use the minimized form (e.g. use <code class="greenmono">-&lt;p&gt; &lt;/p&gt;</code> and not <code class="greenmono">-&lt;p&#160;/&gt;</code>).</p>--<h2>C.4 Embedded Style Sheets and Scripts</h2>-<p>Use external style sheets if your style sheet uses <code>-&lt;</code> or <code>&amp;</code> or <code>]]&gt;</code> or <code>--</code>. Use-external scripts if your script uses <code>&lt;</code> or <code>-&amp;</code> or <code>]]&gt;</code> or <code>--</code>. Note that XML parsers-are permitted to silently remove the contents of comments. Therefore, the historical-practice of "hiding" scripts and style sheets within comments to make the-documents backward compatible is likely to not work as expected in XML-based-implementations.</p>--<h2>C.5 Line Breaks within Attribute Values</h2>-<p>Avoid line breaks and multiple whitespace characters within-attribute values. These are handled inconsistently by user-agents.</p>--<h2>C.6 Isindex</h2>-<p>Don't include more than one <code>isindex</code> element in-the document <code>head</code>. The <code>isindex</code> element-is deprecated in favor of the <code>input</code> element.</p>--<h2>C.7 The <code>lang</code> and <code>xml:lang</code> Attributes</h2>-<p>Use both the <code>lang</code> and <code>xml:lang</code>-attributes when specifying the language of an element. The value-of the <code>xml:lang</code> attribute takes precedence.</p>--<h2>C.8 Fragment Identifiers</h2>-<p>In XML, <abbr title="Uniform Resource Identifiers">URIs</abbr> [<a href="#ref-rfc2396">RFC2396</a>] that end with fragment identifiers of the form-<code>"#foo"</code> do not refer to elements with an attribute-<code>name="foo"</code>; rather, they refer to elements with an-attribute defined to be of type <code>ID</code>, e.g., the <code>-id</code> attribute in HTML 4. Many existing HTML clients don't-support the use of <code>ID</code>-type attributes in this way,-so identical values may be supplied for both of these attributes to ensure-maximum forward and backward compatibility (e.g., <code class=-"greenmono">&lt;a id="foo" name="foo"&gt;...&lt;/a&gt;</code>).</p>--<p>Further, since the set of-legal values for attributes of type <code>ID</code> is much smaller than-for those of type <code>CDATA</code>, the type of the <code>name</code>-attribute has been changed to <code>NMTOKEN</code>. This attribute is-constrained such that it can only have the same values as type-<code>ID</code>, or as the <code>Name</code> production in XML 1.0 Section-2.5, production 5. Unfortunately, this constraint cannot be expressed in the-XHTML 1.0 DTDs.  Because of this change, care must be taken when-converting existing HTML documents. The values of these attributes-must be unique within the document, valid, and any references to these-fragment identifiers (both-internal and external) must be updated should the values be changed during-conversion.</p>-<p>Finally, note that XHTML 1.0 has deprecated the-<code>name</code> attribute of the <code>a</code>, <code>applet</code>, <code>form</code>, <code>frame</code>, <code>iframe</code>, <code>img</code>, and <code>map</code>-elements, and it will be-removed from XHTML in subsequent versions.</p>--<h2>C.9 Character Encoding</h2>-<p>To specify a character encoding in the document, use both the-encoding attribute specification on the xml declaration (e.g.-<code class="greenmono">&lt;?xml version="1.0"-encoding="EUC-JP"?&gt;</code>) and a meta http-equiv statement-(e.g. <code class="greenmono">&lt;meta http-equiv="Content-type"-content='text/html; charset="EUC-JP"'&#160;/&gt;</code>). The-value of the encoding attribute of the xml processing instruction-takes precedence.</p>--<h2>C.10 Boolean Attributes</h2>-<p>Some HTML user agents are unable to interpret boolean-attributes when these appear in their full (non-minimized) form,-as required by XML 1.0. Note this problem doesn't affect user-agents compliant with HTML 4. The following attributes are-involved: <code>compact</code>, <code>nowrap</code>, <code>-ismap</code>, <code>declare</code>, <code>noshade</code>, <code>-checked</code>, <code>disabled</code>, <code>readonly</code>,-<code>multiple</code>, <code>selected</code>, <code>-noresize</code>, <code>defer</code>.</p>--<h2>C.11 Document Object Model and XHTML</h2>-<p>-The Document Object Model level 1 Recommendation [<a href="#ref-dom">DOM</a>]-defines document object model interfaces for XML and HTML 4. The HTML 4-document object model specifies that HTML element and attribute names are-returned in upper-case. The XML document object model specifies that-element and attribute names are returned in the case they are specified. In-XHTML 1.0, elements and attributes are specified in lower-case. This apparent difference can be-addressed in two ways:-</p>-<ol>-<li>Applications that access XHTML documents served as Internet media type-<code>text/html</code>-via the <abbr title="Document Object Model">DOM</abbr> can use the HTML DOM,-and can rely upon element and attribute names being returned in-upper-case from those interfaces.</li>-<li>Applications that access XHTML documents served as Internet media types-<code>text/xml</code> or <code>application/xml</code>-can also use the XML DOM. Elements and attributes will be returned in lower-case.-Also, some XHTML elements may or may-not appear-in the object tree because they are optional in the content model-(e.g. the <code>tbody</code> element within-<code>table</code>).  This occurs because in HTML 4 some elements were-permitted to be minimized such that their start and end tags are both omitted-(an SGML feature).-This is not possible in XML. Rather than require document authors to insert-extraneous elements, XHTML has made the elements optional.-Applications need to adapt to this-accordingly.</li>-</ol>--<h2>C.12 Using Ampersands in Attribute Values</h2>-<p>-When an attribute value contains an ampersand, it must be expressed as a character-entity reference-(e.g. "<code>&amp;amp;</code>"). For example, when the-<code>href</code> attribute-of the <code>a</code> element refers to a-CGI script that takes parameters, it must be expressed as-<code>http://my.site.dom/cgi-bin/myscript.pl?class=guest&amp;amp;name=user</code>-rather than as-<code>http://my.site.dom/cgi-bin/myscript.pl?class=guest&amp;name=user</code>.-</p>--<h2>C.13 Cascading Style Sheets (CSS) and XHTML</h2>--<p>The Cascading Style Sheets level 2 Recommendation [<a href="#ref-css2">CSS2</a>] defines style-properties which are applied to the parse tree of the HTML or XML-document.  Differences in parsing will produce different visual or-aural results, depending on the selectors used. The following hints-will reduce this effect for documents which are served without-modification as both media types:</p>--<ol>-<li>-CSS style sheets for XHTML should use lower case element and-attribute names.</li>---<li>In tables, the tbody element will be inferred by the parser of an-HTML user agent, but not by the parser of an XML user agent. Therefore-you should always explicitly add a tbody element if it is referred to-in a CSS selector.</li>--<li>Within the XHTML name space, user agents are expected to-recognize the "id" attribute as an attribute of type ID.-Therefore, style sheets should be able to continue using the-shorthand "#" selector syntax even if the user agent does not read-the DTD.</li>--<li>Within the XHTML name space, user agents are expected to-recognize the "class" attribute. Therefore, style sheets should be-able to continue using the shorthand "." selector syntax.</li>--<li>-CSS defines different conformance rules for HTML and XML documents;-be aware that the HTML rules apply to XHTML documents delivered as-HTML and the XML rules apply to XHTML documents delivered as XML.</li>-</ol>-<!--OddPage-->-<h1><a name="acks" id="acks">Appendix D.-Acknowledgements</a></h1>--<p><b>This appendix is informative.</b></p>--<p>This specification was written with the participation of the-members of the W3C HTML working group:</p>--<dl>-<dd>Steven Pemberton, CWI (HTML Working Group Chair)<br />-Murray Altheim, Sun Microsystems<br />-Daniel Austin, AskJeeves (CNET: The Computer Network through July 1999)<br />-Frank Boumphrey, HTML Writers Guild<br />-John Burger, Mitre<br />-Andrew W. Donoho, IBM<br />-Sam Dooley, IBM<br />-Klaus Hofrichter, GMD<br />-Philipp Hoschka, W3C<br />-Masayasu Ishikawa, W3C<br />-Warner ten Kate, Philips Electronics<br />-Peter King, Phone.com<br />-Paula Klante, JetForm<br />-Shin'ichi Matsui, Panasonic (W3C visiting engineer through September 1999)<br />-Shane McCarron, Applied Testing and Technology (The Open Group through August-1999)<br />-Ann Navarro, HTML Writers Guild<br />-Zach Nies, Quark<br />-Dave Raggett, W3C/HP (W3C lead for HTML)<br />-Patrick Schmitz, Microsoft<br />-Sebastian Schnitzenbaumer, Stack Overflow<br />-Peter Stark, Phone.com<br />-Chris Wilson, Microsoft<br />-Ted Wugofski, Gateway 2000<br />-Dan Zigmond, WebTV Networks</dd>-</dl>--<!--OddPage-->-<h1><a name="refs" id="refs">Appendix E. References</a></h1>--<p><b>This appendix is informative.</b></p>--<dl>--<dt><a name="ref-css2" id="ref-css2"><b>[CSS2]</b></a></dt>--<dd><a href="http://www.w3.org/TR/1998/REC-CSS2-19980512">"Cascading Style Sheets, level 2 (CSS2) Specification"</a>, B.-Bos, H. W. Lie, C. Lilley, I. Jacobs, 12 May 1998.<br />-Latest version available at: <a href="http://www.w3.org/TR/REC-CSS2">-http://www.w3.org/TR/REC-CSS2</a></dd>--<dt><a name="ref-dom" id="ref-dom"><b>[DOM]</b></a></dt>--<dd><a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001">"Document Object Model (DOM) Level 1 Specification"</a>, Lauren-Wood <i>et al.</i>, 1 October 1998.<br />-Latest version available at: <a href="http://www.w3.org/TR/REC-DOM-Level-1">-http://www.w3.org/TR/REC-DOM-Level-1</a></dd>--<dt><a name="ref-html4" id="ref-html4"><b>[HTML]</b></a></dt>--<dd><a href="http://www.w3.org/TR/1999/REC-html401-19991224">"HTML 4.01 Specification"</a>, D. Raggett, A. Le&#160;Hors, I.-Jacobs, 24 December 1999.<br />-Latest version available at: <a href="http://www.w3.org/TR/html401">-http://www.w3.org/TR/html401</a></dd>--<dt><a name="ref-posix" id="ref-posix"><b>[POSIX.1]</b></a></dt>--<dd>"ISO/IEC 9945-1:1990 Information Technology - Portable-Operating System Interface (POSIX) - Part 1: System Application-Program Interface (API) [C Language]", Institute of Electrical-and Electronics Engineers, Inc, 1990.</dd>--<dt><a name="ref-rfc2046" id="ref-rfc2046"><b>-[RFC2046]</b></a></dt>--<dd><a href="http://www.ietf.org/rfc/rfc2046.txt">"RFC2046: Multipurpose Internet Mail Extensions (MIME) Part-Two: Media Types"</a>, N. Freed and N. Borenstein, November-1996.<br />-Available at <a href="http://www.ietf.org/rfc/rfc2046.txt">-http://www.ietf.org/rfc/rfc2046.txt</a>. Note that this RFC-obsoletes RFC1521, RFC1522, and RFC1590.</dd>--<dt><a name="ref-rfc2119" id="ref-rfc2119"><b>-[RFC2119]</b></a></dt>--<dd><a href="http://www.ietf.org/rfc/rfc2119.txt">"RFC2119: Key words for use in RFCs to Indicate Requirement-Levels"</a>, S. Bradner, March 1997.<br />-Available at: <a href="http://www.ietf.org/rfc/rfc2119.txt">-http://www.ietf.org/rfc/rfc2119.txt</a></dd>--<dt><a name="ref-rfc2376" id="ref-rfc2376"><b>-[RFC2376]</b></a></dt>--<dd><a href="http://www.ietf.org/rfc/rfc2376.txt">"RFC2376: XML Media Types"</a>, E. Whitehead, M. Murata, July-1998.<br />-Available at: <a href="http://www.ietf.org/rfc/rfc2376.txt">-http://www.ietf.org/rfc/rfc2376.txt</a></dd>--<dt><a name="ref-rfc2396" id="ref-rfc2396"><b>-[RFC2396]</b></a></dt>--<dd><a href="http://www.ietf.org/rfc/rfc2396.txt">"RFC2396: Uniform Resource Identifiers (URI): Generic-Syntax"</a>, T. Berners-Lee, R. Fielding, L. Masinter, August-1998.<br />-This document updates RFC1738 and RFC1808.<br />-Available at: <a href="http://www.ietf.org/rfc/rfc2396.txt">-http://www.ietf.org/rfc/rfc2396.txt</a></dd>--<dt><a name="ref-xml" id="ref-xml"><b>[XML]</b></a></dt>--<dd><a href="http://www.w3.org/TR/1998/REC-xml-19980210">"Extensible Markup Language (XML) 1.0 Specification"</a>, T.-Bray, J. Paoli, C. M. Sperberg-McQueen, 10 February 1998.<br />-Latest version available at: <a href="http://www.w3.org/TR/REC-xml">-http://www.w3.org/TR/REC-xml</a></dd>--<dt><a name="ref-xmlns" id="ref-xmlns"><b>[XMLNAMES]</b></a></dt>--<dd><a href="http://www.w3.org/TR/1999/REC-xml-names-19990114">"Namespaces in XML"</a>, T. Bray, D. Hollander, A. Layman, 14-January 1999.<br />-XML namespaces provide a simple method for qualifying names used-in XML documents by associating them with namespaces identified-by URI.<br />-Latest version available at: <a href="http://www.w3.org/TR/REC-xml-names">-http://www.w3.org/TR/REC-xml-names</a></dd>--</dl>-<p><a href="http://www.w3.org/WAI/WCAG1AAA-Conformance"-title="Explanation of Level Triple-A Conformance">-<img height="32" width="88"-src="http://www.w3.org/WAI/wcag1AAA.gif"-alt="Level Triple-A conformance icon, W3C-WAI Web Content Accessibility Guidelines 1.0" /></a></p>-<div class="navbar">-  <hr />-  <a href="#toc">table of contents</a>-</div>-</body>-</html>-
− examples/xhtml/xhtml1-frameset.dtd
@@ -1,1225 +0,0 @@-<!---   Extensible HTML version 1.0 Frameset DTD--   This is the same as HTML 4.0 Frameset except for-   changes due to the differences between XML and SGML.--   Namespace = http://www.w3.org/1999/xhtml--   For further information, see: http://www.w3.org/TR/xhtml1--   Copyright (c) 1998-2000 W3C (MIT, INRIA, Keio),-   All Rights Reserved. --   This DTD module is identified by the PUBLIC and SYSTEM identifiers:--   PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"-   SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"--   $Revision: 1.1 $-   $Date: 2002/10/01 13:47:08 $---->--<!--================ Character mnemonic entities =========================-->--<!ENTITY % HTMLlat1 PUBLIC-   "-//W3C//ENTITIES Latin 1 for XHTML//EN"-   "xhtml-lat1.ent">-%HTMLlat1;--<!ENTITY % HTMLsymbol PUBLIC-   "-//W3C//ENTITIES Symbols for XHTML//EN"-   "xhtml-symbol.ent">-%HTMLsymbol;--<!ENTITY % HTMLspecial PUBLIC-   "-//W3C//ENTITIES Special for XHTML//EN"-   "xhtml-special.ent">-%HTMLspecial;--<!--================== Imported Names ====================================-->--<!ENTITY % ContentType "CDATA">-    <!-- media type, as per [RFC2045] -->--<!ENTITY % ContentTypes "CDATA">-    <!-- comma-separated list of media types, as per [RFC2045] -->--<!ENTITY % Charset "CDATA">-    <!-- a character encoding, as per [RFC2045] -->--<!ENTITY % Charsets "CDATA">-    <!-- a space separated list of character encodings, as per [RFC2045] -->--<!ENTITY % LanguageCode "NMTOKEN">-    <!-- a language code, as per [RFC1766] -->--<!ENTITY % Character "CDATA">-    <!-- a single character from [ISO10646] -->--<!ENTITY % Number "CDATA">-    <!-- one or more digits -->--<!ENTITY % LinkTypes "CDATA">-    <!-- space-separated list of link types -->--<!ENTITY % MediaDesc "CDATA">-    <!-- single or comma-separated list of media descriptors -->--<!ENTITY % URI "CDATA">-    <!-- a Uniform Resource Identifier, see [RFC2396] -->--<!ENTITY % UriList "CDATA">-    <!-- a space separated list of Uniform Resource Identifiers -->--<!ENTITY % Datetime "CDATA">-    <!-- date and time information. ISO date format -->--<!ENTITY % Script "CDATA">-    <!-- script expression -->--<!ENTITY % StyleSheet "CDATA">-    <!-- style sheet data -->--<!ENTITY % Text "CDATA">-    <!-- used for titles etc. -->--<!ENTITY % FrameTarget "NMTOKEN">-    <!-- render in this frame -->--<!ENTITY % Length "CDATA">-    <!-- nn for pixels or nn% for percentage length -->--<!ENTITY % MultiLength "CDATA">-    <!-- pixel, percentage, or relative -->--<!ENTITY % MultiLengths "CDATA">-    <!-- comma-separated list of MultiLength -->--<!ENTITY % Pixels "CDATA">-    <!-- integer representing length in pixels -->--<!-- these are used for image maps -->--<!ENTITY % Shape "(rect|circle|poly|default)">--<!ENTITY % Coords "CDATA">-    <!-- comma separated list of lengths -->--<!-- used for object, applet, img, input and iframe -->-<!ENTITY % ImgAlign "(top|middle|bottom|left|right)">--<!-- a color using sRGB: #RRGGBB as Hex values -->-<!ENTITY % Color "CDATA">--<!-- There are also 16 widely known color names with their sRGB values:--    Black  = #000000    Green  = #008000-    Silver = #C0C0C0    Lime   = #00FF00-    Gray   = #808080    Olive  = #808000-    White  = #FFFFFF    Yellow = #FFFF00-    Maroon = #800000    Navy   = #000080-    Red    = #FF0000    Blue   = #0000FF-    Purple = #800080    Teal   = #008080-    Fuchsia= #FF00FF    Aqua   = #00FFFF--->--<!--=================== Generic Attributes ===============================-->--<!-- core attributes common to most elements-  id       document-wide unique id-  class    space separated list of classes-  style    associated style info-  title    advisory title/amplification--->-<!ENTITY % coreattrs- "id          ID             #IMPLIED-  class       CDATA          #IMPLIED-  style       %StyleSheet;   #IMPLIED-  title       %Text;         #IMPLIED"-  >--<!-- internationalization attributes-  lang        language code (backwards compatible)-  xml:lang    language code (as per XML 1.0 spec)-  dir         direction for weak/neutral text--->-<!ENTITY % i18n- "lang        %LanguageCode; #IMPLIED-  xml:lang    %LanguageCode; #IMPLIED-  dir         (ltr|rtl)      #IMPLIED"-  >--<!-- attributes for common UI events-  onclick     a pointer button was clicked-  ondblclick  a pointer button was double clicked-  onmousedown a pointer button was pressed down-  onmouseup   a pointer button was released-  onmousemove a pointer was moved onto the element-  onmouseout  a pointer was moved away from the element-  onkeypress  a key was pressed and released-  onkeydown   a key was pressed down-  onkeyup     a key was released--->-<!ENTITY % events- "onclick     %Script;       #IMPLIED-  ondblclick  %Script;       #IMPLIED-  onmousedown %Script;       #IMPLIED-  onmouseup   %Script;       #IMPLIED-  onmouseover %Script;       #IMPLIED-  onmousemove %Script;       #IMPLIED-  onmouseout  %Script;       #IMPLIED-  onkeypress  %Script;       #IMPLIED-  onkeydown   %Script;       #IMPLIED-  onkeyup     %Script;       #IMPLIED"-  >--<!-- attributes for elements that can get the focus-  accesskey   accessibility key character-  tabindex    position in tabbing order-  onfocus     the element got the focus-  onblur      the element lost the focus--->-<!ENTITY % focus- "accesskey   %Character;    #IMPLIED-  tabindex    %Number;       #IMPLIED-  onfocus     %Script;       #IMPLIED-  onblur      %Script;       #IMPLIED"-  >--<!ENTITY % attrs "%coreattrs; %i18n; %events;">--<!-- text alignment for p, div, h1-h6. The default is-     align="left" for ltr headings, "right" for rtl -->--<!ENTITY % TextAlign "align (left|center|right) #IMPLIED">--<!--=================== Text Elements ====================================-->--<!ENTITY % special-   "br | span | bdo |object | applet | img | map | iframe">--<!ENTITY % fontstyle "tt | i | b | big | small | u-                      | s | strike |font | basefont">--<!ENTITY % phrase "em | strong | dfn | code | q | sub | sup |-                   samp | kbd | var | cite | abbr | acronym">--<!ENTITY % inline.forms "input | select | textarea | label | button">--<!-- these can occur at block or inline level -->-<!ENTITY % misc "ins | del | script | noscript">--<!ENTITY % inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;">--<!-- %Inline; covers inline or "text-level" elements -->-<!ENTITY % Inline "(#PCDATA | %inline; | %misc;)*">--<!--================== Block level elements ==============================-->--<!ENTITY % heading "h1|h2|h3|h4|h5|h6">-<!ENTITY % lists "ul | ol | dl | menu | dir">-<!ENTITY % blocktext "pre | hr | blockquote | address | center">--<!ENTITY % block-    "p | %heading; | div | %lists; | %blocktext; | isindex | fieldset | table">--<!ENTITY % Block "(%block; | form | %misc;)*">--<!-- %Flow; mixes Block and Inline and is used for list items etc. -->-<!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*">--<!--================== Content models for exclusions =====================-->--<!-- a elements use %Inline; excluding a -->--<!ENTITY % a.content-   "(#PCDATA | %special; | %fontstyle; | %phrase; | %inline.forms; | %misc;)*">--<!-- pre uses %Inline excluding img, object, applet, big, small,-     sub, sup, font, or basefont -->--<!ENTITY % pre.content-   "(#PCDATA | a | br | span | bdo | map | tt | i | b | u | s |-      %phrase; | %inline.forms;)*">--<!-- form uses %Flow; excluding form -->--<!ENTITY % form.content "(#PCDATA | %block; | %inline; | %misc;)*">--<!-- button uses %Flow; but excludes a, form, form controls, iframe -->--<!ENTITY % button.content-   "(#PCDATA | p | %heading; | div | %lists; | %blocktext; |-      table | br | span | bdo | object | applet | img | map |-      %fontstyle; | %phrase; | %misc;)*">--<!--================ Document Structure ==================================-->--<!-- the namespace URI designates the document profile -->--<!ELEMENT html (head, frameset)>-<!ATTLIST html-  %i18n;-  xmlns       %URI;          #FIXED 'http://www.w3.org/1999/xhtml'-  >--<!--================ Document Head =======================================-->--<!ENTITY % head.misc "(script|style|meta|link|object|isindex)*">--<!-- content model is %head.misc; combined with a single-     title and an optional base element in any order -->--<!ELEMENT head (%head.misc;,-     ((title, %head.misc;, (base, %head.misc;)?) |-      (base, %head.misc;, (title, %head.misc;))))>--<!ATTLIST head-  %i18n;-  profile     %URI;          #IMPLIED-  >--<!-- The title element is not considered part of the flow of text.-       It should be displayed, for example as the page header or-       window title. Exactly one title is required per document.-    -->-<!ELEMENT title (#PCDATA)>-<!ATTLIST title %i18n;>--<!-- document base URI -->--<!ELEMENT base EMPTY>-<!ATTLIST base-  href        %URI;          #IMPLIED-  target      %FrameTarget;  #IMPLIED-  >--<!-- generic metainformation -->-<!ELEMENT meta EMPTY>-<!ATTLIST meta-  %i18n;-  http-equiv  CDATA          #IMPLIED-  name        CDATA          #IMPLIED-  content     CDATA          #REQUIRED-  scheme      CDATA          #IMPLIED-  >--<!---  Relationship values can be used in principle:--   a) for document specific toolbars/menus when used-      with the link element in document head e.g.-        start, contents, previous, next, index, end, help-   b) to link to a separate style sheet (rel="stylesheet")-   c) to make a link to a script (rel="script")-   d) by stylesheets to control how collections of-      html nodes are rendered into printed documents-   e) to make a link to a printable version of this document-      e.g. a PostScript or PDF version (rel="alternate" media="print")--->--<!ELEMENT link EMPTY>-<!ATTLIST link-  %attrs;-  charset     %Charset;      #IMPLIED-  href        %URI;          #IMPLIED-  hreflang    %LanguageCode; #IMPLIED-  type        %ContentType;  #IMPLIED-  rel         %LinkTypes;    #IMPLIED-  rev         %LinkTypes;    #IMPLIED-  media       %MediaDesc;    #IMPLIED-  target      %FrameTarget;  #IMPLIED-  >--<!-- style info, which may include CDATA sections -->-<!ELEMENT style (#PCDATA)>-<!ATTLIST style-  %i18n;-  type        %ContentType;  #REQUIRED-  media       %MediaDesc;    #IMPLIED-  title       %Text;         #IMPLIED-  xml:space   (preserve)     #FIXED 'preserve'-  >--<!-- script statements, which may include CDATA sections -->-<!ELEMENT script (#PCDATA)>-<!ATTLIST script-  charset     %Charset;      #IMPLIED-  type        %ContentType;  #REQUIRED-  language    CDATA          #IMPLIED-  src         %URI;          #IMPLIED-  defer       (defer)        #IMPLIED-  xml:space   (preserve)     #FIXED 'preserve'-  >--<!-- alternate content container for non script-based rendering -->--<!ELEMENT noscript %Flow;>-<!ATTLIST noscript-  %attrs;-  >--<!--======================= Frames =======================================-->--<!-- only one noframes element permitted per document -->--<!ELEMENT frameset (frameset|frame|noframes)*>-<!ATTLIST frameset-  %coreattrs;-  rows        %MultiLengths; #IMPLIED-  cols        %MultiLengths; #IMPLIED-  onload      %Script;       #IMPLIED-  onunload    %Script;       #IMPLIED-  >--<!-- reserved frame names start with "_" otherwise starts with letter -->--<!-- tiled window within frameset -->--<!ELEMENT frame EMPTY>-<!ATTLIST frame-  %coreattrs;-  longdesc    %URI;          #IMPLIED-  name        NMTOKEN        #IMPLIED-  src         %URI;          #IMPLIED-  frameborder (1|0)          "1"-  marginwidth %Pixels;       #IMPLIED-  marginheight %Pixels;      #IMPLIED-  noresize    (noresize)     #IMPLIED-  scrolling   (yes|no|auto)  "auto"-  >--<!-- inline subwindow -->--<!ELEMENT iframe %Flow;>-<!ATTLIST iframe-  %coreattrs;-  longdesc    %URI;          #IMPLIED-  name        NMTOKEN        #IMPLIED-  src         %URI;          #IMPLIED-  frameborder (1|0)          "1"-  marginwidth %Pixels;       #IMPLIED-  marginheight %Pixels;      #IMPLIED-  scrolling   (yes|no|auto)  "auto"-  align       %ImgAlign;     #IMPLIED-  height      %Length;       #IMPLIED-  width       %Length;       #IMPLIED-  >--<!-- alternate content container for non frame-based rendering -->--<!ELEMENT noframes (body)>-<!ATTLIST noframes-  %attrs;-  >--<!--=================== Document Body ====================================-->--<!ELEMENT body %Flow;>-<!ATTLIST body-  %attrs;-  onload      %Script;       #IMPLIED-  onunload    %Script;       #IMPLIED-  background  %URI;          #IMPLIED-  bgcolor     %Color;        #IMPLIED-  text        %Color;        #IMPLIED-  link        %Color;        #IMPLIED-  vlink       %Color;        #IMPLIED-  alink       %Color;        #IMPLIED-  >--<!ELEMENT div %Flow;>  <!-- generic language/style container -->-<!ATTLIST div-  %attrs;-  %TextAlign;-  >--<!--=================== Paragraphs =======================================-->--<!ELEMENT p %Inline;>-<!ATTLIST p-  %attrs;-  %TextAlign;-  >--<!--=================== Headings =========================================-->--<!---  There are six levels of headings from h1 (the most important)-  to h6 (the least important).--->--<!ELEMENT h1  %Inline;>-<!ATTLIST h1-  %attrs;-  %TextAlign;-  >--<!ELEMENT h2 %Inline;>-<!ATTLIST h2-  %attrs;-  %TextAlign;-  >--<!ELEMENT h3 %Inline;>-<!ATTLIST h3-  %attrs;-  %TextAlign;-  >--<!ELEMENT h4 %Inline;>-<!ATTLIST h4-  %attrs;-  %TextAlign;-  >--<!ELEMENT h5 %Inline;>-<!ATTLIST h5-  %attrs;-  %TextAlign;-  >--<!ELEMENT h6 %Inline;>-<!ATTLIST h6-  %attrs;-  %TextAlign;-  >--<!--=================== Lists ============================================-->--<!-- Unordered list bullet styles -->--<!ENTITY % ULStyle "(disc|square|circle)">--<!-- Unordered list -->--<!ELEMENT ul (li)+>-<!ATTLIST ul-  %attrs;-  type        %ULStyle;     #IMPLIED-  compact     (compact)     #IMPLIED-  >--<!-- Ordered list numbering style--    1   arabic numbers      1, 2, 3, ...-    a   lower alpha         a, b, c, ...-    A   upper alpha         A, B, C, ...-    i   lower roman         i, ii, iii, ...-    I   upper roman         I, II, III, ...--    The style is applied to the sequence number which by default-    is reset to 1 for the first list item in an ordered list.--->-<!ENTITY % OLStyle "CDATA">--<!-- Ordered (numbered) list -->--<!ELEMENT ol (li)+>-<!ATTLIST ol-  %attrs;-  type        %OLStyle;      #IMPLIED-  compact     (compact)      #IMPLIED-  start       %Number;       #IMPLIED-  >--<!-- single column list (DEPRECATED) --> -<!ELEMENT menu (li)+>-<!ATTLIST menu-  %attrs;-  compact     (compact)     #IMPLIED-  >--<!-- multiple column list (DEPRECATED) --> -<!ELEMENT dir (li)+>-<!ATTLIST dir-  %attrs;-  compact     (compact)     #IMPLIED-  >--<!-- LIStyle is constrained to: "(%ULStyle;|%OLStyle;)" -->-<!ENTITY % LIStyle "CDATA">--<!-- list item -->--<!ELEMENT li %Flow;>-<!ATTLIST li-  %attrs;-  type        %LIStyle;      #IMPLIED-  value       %Number;       #IMPLIED-  >--<!-- definition lists - dt for term, dd for its definition -->--<!ELEMENT dl (dt|dd)+>-<!ATTLIST dl-  %attrs;-  compact     (compact)      #IMPLIED-  >--<!ELEMENT dt %Inline;>-<!ATTLIST dt-  %attrs;-  >--<!ELEMENT dd %Flow;>-<!ATTLIST dd-  %attrs;-  >--<!--=================== Address ==========================================-->--<!-- information on author -->--<!ELEMENT address %Inline;>-<!ATTLIST address-  %attrs;-  >--<!--=================== Horizontal Rule ==================================-->--<!ELEMENT hr EMPTY>-<!ATTLIST hr-  %attrs;-  align       (left|center|right) #IMPLIED-  noshade     (noshade)      #IMPLIED-  size        %Pixels;       #IMPLIED-  width       %Length;       #IMPLIED-  >--<!--=================== Preformatted Text ================================-->--<!-- content is %Inline; excluding -        "img|object|applet|big|small|sub|sup|font|basefont" -->--<!ELEMENT pre %pre.content;>-<!ATTLIST pre-  %attrs;-  width       %Number;      #IMPLIED-  xml:space   (preserve)    #FIXED 'preserve'-  >--<!--=================== Block-like Quotes ================================-->--<!ELEMENT blockquote %Flow;>-<!ATTLIST blockquote-  %attrs;-  cite        %URI;          #IMPLIED-  >--<!--=================== Text alignment ===================================-->--<!-- center content -->-<!ELEMENT center %Flow;>-<!ATTLIST center-  %attrs;-  >--<!--=================== Inserted/Deleted Text ============================-->---<!---  ins/del are allowed in block and inline content, but its-  inappropriate to include block content within an ins element-  occurring in inline content.--->-<!ELEMENT ins %Flow;>-<!ATTLIST ins-  %attrs;-  cite        %URI;          #IMPLIED-  datetime    %Datetime;     #IMPLIED-  >--<!ELEMENT del %Flow;>-<!ATTLIST del-  %attrs;-  cite        %URI;          #IMPLIED-  datetime    %Datetime;     #IMPLIED-  >--<!--================== The Anchor Element ================================-->--<!-- content is %Inline; except that anchors shouldn't be nested -->--<!ELEMENT a %a.content;>-<!ATTLIST a-  %attrs;-  charset     %Charset;      #IMPLIED-  type        %ContentType;  #IMPLIED-  name        NMTOKEN        #IMPLIED-  href        %URI;          #IMPLIED-  hreflang    %LanguageCode; #IMPLIED-  rel         %LinkTypes;    #IMPLIED-  rev         %LinkTypes;    #IMPLIED-  accesskey   %Character;    #IMPLIED-  shape       %Shape;        "rect"-  coords      %Coords;       #IMPLIED-  tabindex    %Number;       #IMPLIED-  onfocus     %Script;       #IMPLIED-  onblur      %Script;       #IMPLIED-  target      %FrameTarget;  #IMPLIED-  >--<!--===================== Inline Elements ================================-->--<!ELEMENT span %Inline;> <!-- generic language/style container -->-<!ATTLIST span-  %attrs;-  >--<!ELEMENT bdo %Inline;>  <!-- I18N BiDi over-ride -->-<!ATTLIST bdo-  %coreattrs;-  %events;-  lang        %LanguageCode; #IMPLIED-  xml:lang    %LanguageCode; #IMPLIED-  dir         (ltr|rtl)      #REQUIRED-  >--<!ELEMENT br EMPTY>   <!-- forced line break -->-<!ATTLIST br-  %coreattrs;-  clear       (left|all|right|none) "none"-  >--<!ELEMENT em %Inline;>   <!-- emphasis -->-<!ATTLIST em %attrs;>--<!ELEMENT strong %Inline;>   <!-- strong emphasis -->-<!ATTLIST strong %attrs;>--<!ELEMENT dfn %Inline;>   <!-- definitional -->-<!ATTLIST dfn %attrs;>--<!ELEMENT code %Inline;>   <!-- program code -->-<!ATTLIST code %attrs;>--<!ELEMENT samp %Inline;>   <!-- sample -->-<!ATTLIST samp %attrs;>--<!ELEMENT kbd %Inline;>  <!-- something user would type -->-<!ATTLIST kbd %attrs;>--<!ELEMENT var %Inline;>   <!-- variable -->-<!ATTLIST var %attrs;>--<!ELEMENT cite %Inline;>   <!-- citation -->-<!ATTLIST cite %attrs;>--<!ELEMENT abbr %Inline;>   <!-- abbreviation -->-<!ATTLIST abbr %attrs;>--<!ELEMENT acronym %Inline;>   <!-- acronym -->-<!ATTLIST acronym %attrs;>--<!ELEMENT q %Inline;>   <!-- inlined quote -->-<!ATTLIST q-   %attrs;-  cite        %URI;          #IMPLIED-   >--<!ELEMENT sub %Inline;> <!-- subscript -->-<!ATTLIST sub %attrs;>--<!ELEMENT sup %Inline;> <!-- superscript -->-<!ATTLIST sup %attrs;>--<!ELEMENT tt %Inline;>   <!-- fixed pitch font -->-<!ATTLIST tt %attrs;>--<!ELEMENT i %Inline;>   <!-- italic font -->-<!ATTLIST i %attrs;>--<!ELEMENT b %Inline;>   <!-- bold font -->-<!ATTLIST b %attrs;>--<!ELEMENT big %Inline;>   <!-- bigger font -->-<!ATTLIST big %attrs;>--<!ELEMENT small %Inline;>   <!-- smaller font -->-<!ATTLIST small %attrs;>--<!ELEMENT u %Inline;>   <!-- underline -->-<!ATTLIST u %attrs;>--<!ELEMENT s %Inline;>   <!-- strike-through -->-<!ATTLIST s %attrs;>--<!ELEMENT strike %Inline;>   <!-- strike-through -->-<!ATTLIST strike %attrs;>--<!ELEMENT basefont EMPTY>  <!-- base font size -->-<!ATTLIST basefont-  id          ID             #IMPLIED-  size        CDATA          #REQUIRED-  color       %Color;        #IMPLIED-  face        CDATA          #IMPLIED-  >--<!ELEMENT font %Inline;> <!-- local change to font -->-<!ATTLIST font-  %coreattrs;-  %i18n;-  size        CDATA          #IMPLIED-  color       %Color;        #IMPLIED-  face        CDATA          #IMPLIED-  >--<!--==================== Object ======================================-->-<!---  object is used to embed objects as part of HTML pages.-  param elements should precede other content. Parameters-  can also be expressed as attribute/value pairs on the-  object element itself when brevity is desired.--->--<!ELEMENT object (#PCDATA | param | %block; | form |%inline; | %misc;)*>-<!ATTLIST object-  %attrs;-  declare     (declare)      #IMPLIED-  classid     %URI;          #IMPLIED-  codebase    %URI;          #IMPLIED-  data        %URI;          #IMPLIED-  type        %ContentType;  #IMPLIED-  codetype    %ContentType;  #IMPLIED-  archive     %UriList;      #IMPLIED-  standby     %Text;         #IMPLIED-  height      %Length;       #IMPLIED-  width       %Length;       #IMPLIED-  usemap      %URI;          #IMPLIED-  name        NMTOKEN        #IMPLIED-  tabindex    %Number;       #IMPLIED-  align       %ImgAlign;     #IMPLIED-  border      %Pixels;       #IMPLIED-  hspace      %Pixels;       #IMPLIED-  vspace      %Pixels;       #IMPLIED-  >--<!---  param is used to supply a named property value.-  In XML it would seem natural to follow RDF and support an-  abbreviated syntax where the param elements are replaced-  by attribute value pairs on the object start tag.--->-<!ELEMENT param EMPTY>-<!ATTLIST param-  id          ID             #IMPLIED-  name        CDATA          #REQUIRED-  value       CDATA          #IMPLIED-  valuetype   (data|ref|object) "data"-  type        %ContentType;  #IMPLIED-  >--<!--=================== Java applet ==================================-->-<!---  One of code or object attributes must be present.-  Place param elements before other content.--->-<!ELEMENT applet (#PCDATA | param | %block; | form | %inline; | %misc;)*>-<!ATTLIST applet-  %coreattrs;-  codebase    %URI;          #IMPLIED-  archive     CDATA          #IMPLIED-  code        CDATA          #IMPLIED-  object      CDATA          #IMPLIED-  alt         %Text;         #IMPLIED-  name        NMTOKEN        #IMPLIED-  width       %Length;       #REQUIRED-  height      %Length;       #REQUIRED-  align       %ImgAlign;     #IMPLIED-  hspace      %Pixels;       #IMPLIED-  vspace      %Pixels;       #IMPLIED-  >--<!--=================== Images ===========================================-->--<!---   To avoid accessibility problems for people who aren't-   able to see the image, you should provide a text-   description using the alt and longdesc attributes.-   In addition, avoid the use of server-side image maps.--->--<!ELEMENT img EMPTY>-<!ATTLIST img-  %attrs;-  src         %URI;          #REQUIRED-  alt         %Text;         #REQUIRED-  name        NMTOKEN        #IMPLIED-  longdesc    %URI;          #IMPLIED-  height      %Length;       #IMPLIED-  width       %Length;       #IMPLIED-  usemap      %URI;          #IMPLIED-  ismap       (ismap)        #IMPLIED-  align       %ImgAlign;     #IMPLIED-  border      %Pixels;       #IMPLIED-  hspace      %Pixels;       #IMPLIED-  vspace      %Pixels;       #IMPLIED-  >--<!-- usemap points to a map element which may be in this document-  or an external document, although the latter is not widely supported -->--<!--================== Client-side image maps ============================-->--<!-- These can be placed in the same document or grouped in a-     separate document although this isn't yet widely supported -->--<!ELEMENT map ((%block; | form | %misc;)+ | area+)>-<!ATTLIST map-  %i18n;-  %events;-  id          ID             #REQUIRED-  class       CDATA          #IMPLIED-  style       %StyleSheet;   #IMPLIED-  title       %Text;         #IMPLIED-  name        NMTOKEN        #IMPLIED-  >--<!ELEMENT area EMPTY>-<!ATTLIST area-  %attrs;-  shape       %Shape;        "rect"-  coords      %Coords;       #IMPLIED-  href        %URI;          #IMPLIED-  nohref      (nohref)       #IMPLIED-  alt         %Text;         #REQUIRED-  tabindex    %Number;       #IMPLIED-  accesskey   %Character;    #IMPLIED-  onfocus     %Script;       #IMPLIED-  onblur      %Script;       #IMPLIED-  target      %FrameTarget;  #IMPLIED-  >--<!--================ Forms ===============================================-->--<!ELEMENT form %form.content;>   <!-- forms shouldn't be nested -->--<!ATTLIST form-  %attrs;-  action      %URI;          #REQUIRED-  method      (get|post)     "get"-  name        NMTOKEN        #IMPLIED-  enctype     %ContentType;  "application/x-www-form-urlencoded"-  onsubmit    %Script;       #IMPLIED-  onreset     %Script;       #IMPLIED-  accept      %ContentTypes; #IMPLIED-  accept-charset %Charsets;  #IMPLIED-  target      %FrameTarget;  #IMPLIED-  >--<!---  Each label must not contain more than ONE field-  Label elements shouldn't be nested.--->-<!ELEMENT label %Inline;>-<!ATTLIST label-  %attrs;-  for         IDREF          #IMPLIED-  accesskey   %Character;    #IMPLIED-  onfocus     %Script;       #IMPLIED-  onblur      %Script;       #IMPLIED-  >--<!ENTITY % InputType-  "(text | password | checkbox |-    radio | submit | reset |-    file | hidden | image | button)"-   >--<!-- the name attribute is required for all but submit & reset -->--<!ELEMENT input EMPTY>     <!-- form control -->-<!ATTLIST input-  %attrs;-  type        %InputType;    "text"-  name        CDATA          #IMPLIED-  value       CDATA          #IMPLIED-  checked     (checked)      #IMPLIED-  disabled    (disabled)     #IMPLIED-  readonly    (readonly)     #IMPLIED-  size        CDATA          #IMPLIED-  maxlength   %Number;       #IMPLIED-  src         %URI;          #IMPLIED-  alt         CDATA          #IMPLIED-  usemap      %URI;          #IMPLIED-  tabindex    %Number;       #IMPLIED-  accesskey   %Character;    #IMPLIED-  onfocus     %Script;       #IMPLIED-  onblur      %Script;       #IMPLIED-  onselect    %Script;       #IMPLIED-  onchange    %Script;       #IMPLIED-  accept      %ContentTypes; #IMPLIED-  align       %ImgAlign;     #IMPLIED-  >--<!ELEMENT select (optgroup|option)+>  <!-- option selector -->-<!ATTLIST select-  %attrs;-  name        CDATA          #IMPLIED-  size        %Number;       #IMPLIED-  multiple    (multiple)     #IMPLIED-  disabled    (disabled)     #IMPLIED-  tabindex    %Number;       #IMPLIED-  onfocus     %Script;       #IMPLIED-  onblur      %Script;       #IMPLIED-  onchange    %Script;       #IMPLIED-  >--<!ELEMENT optgroup (option)+>   <!-- option group -->-<!ATTLIST optgroup-  %attrs;-  disabled    (disabled)     #IMPLIED-  label       %Text;         #REQUIRED-  >--<!ELEMENT option (#PCDATA)>     <!-- selectable choice -->-<!ATTLIST option-  %attrs;-  selected    (selected)     #IMPLIED-  disabled    (disabled)     #IMPLIED-  label       %Text;         #IMPLIED-  value       CDATA          #IMPLIED-  >--<!ELEMENT textarea (#PCDATA)>     <!-- multi-line text field -->-<!ATTLIST textarea-  %attrs;-  name        CDATA          #IMPLIED-  rows        %Number;       #REQUIRED-  cols        %Number;       #REQUIRED-  disabled    (disabled)     #IMPLIED-  readonly    (readonly)     #IMPLIED-  tabindex    %Number;       #IMPLIED-  accesskey   %Character;    #IMPLIED-  onfocus     %Script;       #IMPLIED-  onblur      %Script;       #IMPLIED-  onselect    %Script;       #IMPLIED-  onchange    %Script;       #IMPLIED-  >--<!---  The fieldset element is used to group form fields.-  Only one legend element should occur in the content-  and if present should only be preceded by whitespace.--->-<!ELEMENT fieldset (#PCDATA | legend | %block; | form | %inline; | %misc;)*>-<!ATTLIST fieldset-  %attrs;-  >--<!ENTITY % LAlign "(top|bottom|left|right)">--<!ELEMENT legend %Inline;>     <!-- fieldset label -->-<!ATTLIST legend-  %attrs;-  accesskey   %Character;    #IMPLIED-  align       %LAlign;       #IMPLIED-  >--<!--- Content is %Flow; excluding a, form, form controls, iframe---> -<!ELEMENT button %button.content;>  <!-- push button -->-<!ATTLIST button-  %attrs;-  name        CDATA          #IMPLIED-  value       CDATA          #IMPLIED-  type        (button|submit|reset) "submit"-  disabled    (disabled)     #IMPLIED-  tabindex    %Number;       #IMPLIED-  accesskey   %Character;    #IMPLIED-  onfocus     %Script;       #IMPLIED-  onblur      %Script;       #IMPLIED-  >--<!-- single-line text input control (DEPRECATED) -->-<!ELEMENT isindex EMPTY>-<!ATTLIST isindex-  %coreattrs;-  %i18n;-  prompt      %Text;         #IMPLIED-  >--<!--======================= Tables =======================================-->--<!-- Derived from IETF HTML table standard, see [RFC1942] -->--<!--- The border attribute sets the thickness of the frame around the- table. The default units are screen pixels.-- The frame attribute specifies which parts of the frame around- the table should be rendered. The values are not the same as- CALS to avoid a name clash with the valign attribute.--->-<!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">--<!--- The rules attribute defines which rules to draw between cells:-- If rules is absent then assume:-     "none" if border is absent or border="0" otherwise "all"--->--<!ENTITY % TRules "(none | groups | rows | cols | all)">-  -<!-- horizontal placement of table relative to document -->-<!ENTITY % TAlign "(left|center|right)">--<!-- horizontal alignment attributes for cell contents--  char        alignment char, e.g. char=":"-  charoff     offset for alignment char--->-<!ENTITY % cellhalign-  "align      (left|center|right|justify|char) #IMPLIED-   char       %Character;    #IMPLIED-   charoff    %Length;       #IMPLIED"-  >--<!-- vertical alignment attributes for cell contents -->-<!ENTITY % cellvalign-  "valign     (top|middle|bottom|baseline) #IMPLIED"-  >--<!ELEMENT table-     (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>-<!ELEMENT caption  %Inline;>-<!ELEMENT thead    (tr)+>-<!ELEMENT tfoot    (tr)+>-<!ELEMENT tbody    (tr)+>-<!ELEMENT colgroup (col)*>-<!ELEMENT col      EMPTY>-<!ELEMENT tr       (th|td)+>-<!ELEMENT th       %Flow;>-<!ELEMENT td       %Flow;>--<!ATTLIST table-  %attrs;-  summary     %Text;         #IMPLIED-  width       %Length;       #IMPLIED-  border      %Pixels;       #IMPLIED-  frame       %TFrame;       #IMPLIED-  rules       %TRules;       #IMPLIED-  cellspacing %Length;       #IMPLIED-  cellpadding %Length;       #IMPLIED-  align       %TAlign;       #IMPLIED-  bgcolor     %Color;        #IMPLIED-  >--<!ENTITY % CAlign "(top|bottom|left|right)">--<!ATTLIST caption-  %attrs;-  align       %CAlign;       #IMPLIED-  >--<!---colgroup groups a set of col elements. It allows you to group-several semantically related columns together.--->-<!ATTLIST colgroup-  %attrs;-  span        %Number;       "1"-  width       %MultiLength;  #IMPLIED-  %cellhalign;-  %cellvalign;-  >--<!--- col elements define the alignment properties for cells in- one or more columns.-- The width attribute specifies the width of the columns, e.g.--     width=64        width in screen pixels-     width=0.5*      relative width of 0.5-- The span attribute causes the attributes of one- col element to apply to more than one column.--->-<!ATTLIST col-  %attrs;-  span        %Number;       "1"-  width       %MultiLength;  #IMPLIED-  %cellhalign;-  %cellvalign;-  >--<!---    Use thead to duplicate headers when breaking table-    across page boundaries, or for static headers when-    tbody sections are rendered in scrolling panel.--    Use tfoot to duplicate footers when breaking table-    across page boundaries, or for static footers when-    tbody sections are rendered in scrolling panel.--    Use multiple tbody sections when rules are needed-    between groups of table rows.--->-<!ATTLIST thead-  %attrs;-  %cellhalign;-  %cellvalign;-  >--<!ATTLIST tfoot-  %attrs;-  %cellhalign;-  %cellvalign;-  >--<!ATTLIST tbody-  %attrs;-  %cellhalign;-  %cellvalign;-  >--<!ATTLIST tr-  %attrs;-  %cellhalign;-  %cellvalign;-  bgcolor     %Color;        #IMPLIED-  >--<!-- Scope is simpler than headers attribute for common tables -->-<!ENTITY % Scope "(row|col|rowgroup|colgroup)">--<!-- th is for headers, td for data and for cells acting as both -->--<!ATTLIST th-  %attrs;-  abbr        %Text;         #IMPLIED-  axis        CDATA          #IMPLIED-  headers     IDREFS         #IMPLIED-  scope       %Scope;        #IMPLIED-  rowspan     %Number;       "1"-  colspan     %Number;       "1"-  %cellhalign;-  %cellvalign;-  nowrap      (nowrap)       #IMPLIED-  bgcolor     %Color;        #IMPLIED-  width       %Pixels;       #IMPLIED-  height      %Pixels;       #IMPLIED-  >--<!ATTLIST td-  %attrs;-  abbr        %Text;         #IMPLIED-  axis        CDATA          #IMPLIED-  headers     IDREFS         #IMPLIED-  scope       %Scope;        #IMPLIED-  rowspan     %Number;       "1"-  colspan     %Number;       "1"-  %cellhalign;-  %cellvalign;-  nowrap      (nowrap)       #IMPLIED-  bgcolor     %Color;        #IMPLIED-  width       %Pixels;       #IMPLIED-  height      %Pixels;       #IMPLIED-  >-
− examples/xhtml/xhtml1-strict.dtd
@@ -1,988 +0,0 @@-<!---   Extensible HTML version 1.0 Strict DTD--   This is the same as HTML 4.0 Strict except for-   changes due to the differences between XML and SGML.--   Namespace = http://www.w3.org/1999/xhtml--   For further information, see: http://www.w3.org/TR/xhtml1--   Copyright (c) 1998-2000 W3C (MIT, INRIA, Keio),-   All Rights Reserved. --   This DTD module is identified by the PUBLIC and SYSTEM identifiers:--   PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"-   SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"--   $Revision: 1.1 $-   $Date: 2002/10/01 13:47:08 $---->--<!--================ Character mnemonic entities =========================-->--<!ENTITY % HTMLlat1 PUBLIC-   "-//W3C//ENTITIES Latin 1 for XHTML//EN"-   "xhtml-lat1.ent">-%HTMLlat1;--<!ENTITY % HTMLsymbol PUBLIC-   "-//W3C//ENTITIES Symbols for XHTML//EN"-   "xhtml-symbol.ent">-%HTMLsymbol;--<!ENTITY % HTMLspecial PUBLIC-   "-//W3C//ENTITIES Special for XHTML//EN"-   "xhtml-special.ent">-%HTMLspecial;--<!--================== Imported Names ====================================-->--<!ENTITY % ContentType "CDATA">-    <!-- media type, as per [RFC2045] -->--<!ENTITY % ContentTypes "CDATA">-    <!-- comma-separated list of media types, as per [RFC2045] -->--<!ENTITY % Charset "CDATA">-    <!-- a character encoding, as per [RFC2045] -->--<!ENTITY % Charsets "CDATA">-    <!-- a space separated list of character encodings, as per [RFC2045] -->--<!ENTITY % LanguageCode "NMTOKEN">-    <!-- a language code, as per [RFC1766] -->--<!ENTITY % Character "CDATA">-    <!-- a single character from [ISO10646] -->--<!ENTITY % Number "CDATA">-    <!-- one or more digits -->--<!ENTITY % LinkTypes "CDATA">-    <!-- space-separated list of link types -->--<!ENTITY % MediaDesc "CDATA">-    <!-- single or comma-separated list of media descriptors -->--<!ENTITY % URI "CDATA">-    <!-- a Uniform Resource Identifier, see [RFC2396] -->--<!ENTITY % UriList "CDATA">-    <!-- a space separated list of Uniform Resource Identifiers -->--<!ENTITY % Datetime "CDATA">-    <!-- date and time information. ISO date format -->--<!ENTITY % Script "CDATA">-    <!-- script expression -->--<!ENTITY % StyleSheet "CDATA">-    <!-- style sheet data -->--<!ENTITY % Text "CDATA">-    <!-- used for titles etc. -->--<!ENTITY % FrameTarget "NMTOKEN">-    <!-- render in this frame -->--<!ENTITY % Length "CDATA">-    <!-- nn for pixels or nn% for percentage length -->--<!ENTITY % MultiLength "CDATA">-    <!-- pixel, percentage, or relative -->--<!ENTITY % MultiLengths "CDATA">-    <!-- comma-separated list of MultiLength -->--<!ENTITY % Pixels "CDATA">-    <!-- integer representing length in pixels -->--<!-- these are used for image maps -->--<!ENTITY % Shape "(rect|circle|poly|default)">--<!ENTITY % Coords "CDATA">-    <!-- comma separated list of lengths -->--<!--=================== Generic Attributes ===============================-->--<!-- core attributes common to most elements-  id       document-wide unique id-  class    space separated list of classes-  style    associated style info-  title    advisory title/amplification--->-<!ENTITY % coreattrs- "id          ID             #IMPLIED-  class       CDATA          #IMPLIED-  style       %StyleSheet;   #IMPLIED-  title       %Text;         #IMPLIED"-  >--<!-- internationalization attributes-  lang        language code (backwards compatible)-  xml:lang    language code (as per XML 1.0 spec)-  dir         direction for weak/neutral text--->-<!ENTITY % i18n- "lang        %LanguageCode; #IMPLIED-  xml:lang    %LanguageCode; #IMPLIED-  dir         (ltr|rtl)      #IMPLIED"-  >--<!-- attributes for common UI events-  onclick     a pointer button was clicked-  ondblclick  a pointer button was double clicked-  onmousedown a pointer button was pressed down-  onmouseup   a pointer button was released-  onmousemove a pointer was moved onto the element-  onmouseout  a pointer was moved away from the element-  onkeypress  a key was pressed and released-  onkeydown   a key was pressed down-  onkeyup     a key was released--->-<!ENTITY % events- "onclick     %Script;       #IMPLIED-  ondblclick  %Script;       #IMPLIED-  onmousedown %Script;       #IMPLIED-  onmouseup   %Script;       #IMPLIED-  onmouseover %Script;       #IMPLIED-  onmousemove %Script;       #IMPLIED-  onmouseout  %Script;       #IMPLIED-  onkeypress  %Script;       #IMPLIED-  onkeydown   %Script;       #IMPLIED-  onkeyup     %Script;       #IMPLIED"-  >--<!-- attributes for elements that can get the focus-  accesskey   accessibility key character-  tabindex    position in tabbing order-  onfocus     the element got the focus-  onblur      the element lost the focus--->-<!ENTITY % focus- "accesskey   %Character;    #IMPLIED-  tabindex    %Number;       #IMPLIED-  onfocus     %Script;       #IMPLIED-  onblur      %Script;       #IMPLIED"-  >--<!ENTITY % attrs "%coreattrs; %i18n; %events;">--<!--=================== Text Elements ====================================-->--<!ENTITY % special-   "br | span | bdo | object | img | map">--<!ENTITY % fontstyle "tt | i | b | big | small">--<!ENTITY % phrase "em | strong | dfn | code | q | sub | sup |-                   samp | kbd | var | cite | abbr | acronym">--<!ENTITY % inline.forms "input | select | textarea | label | button">--<!-- these can occur at block or inline level -->-<!ENTITY % misc "ins | del | script | noscript">--<!ENTITY % inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;">--<!-- %Inline; covers inline or "text-level" elements -->-<!ENTITY % Inline "(#PCDATA | %inline; | %misc;)*">--<!--================== Block level elements ==============================-->--<!ENTITY % heading "h1|h2|h3|h4|h5|h6">-<!ENTITY % lists "ul | ol | dl">-<!ENTITY % blocktext "pre | hr | blockquote | address">--<!ENTITY % block-     "p | %heading; | div | %lists; | %blocktext; | fieldset | table">--<!ENTITY % Block "(%block; | form | %misc;)*">--<!-- %Flow; mixes Block and Inline and is used for list items etc. -->-<!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*">--<!--================== Content models for exclusions =====================-->--<!-- a elements use %Inline; excluding a -->--<!ENTITY % a.content-   "(#PCDATA | %special; | %fontstyle; | %phrase; | %inline.forms; | %misc;)*">--<!-- pre uses %Inline excluding img, object, big, small, sup or sup -->--<!ENTITY % pre.content-   "(#PCDATA | a | br | span | bdo | map | tt | i | b |-      %phrase; | %inline.forms;)*">--<!-- form uses %Block; excluding form -->--<!ENTITY % form.content "(%block; | %misc;)*">--<!-- button uses %Flow; but excludes a, form and form controls -->--<!ENTITY % button.content-   "(#PCDATA | p | %heading; | div | %lists; | %blocktext; |-    table | %special; | %fontstyle; | %phrase; | %misc;)*">--<!--================ Document Structure ==================================-->--<!-- the namespace URI designates the document profile -->--<!ELEMENT html (head, body)>-<!ATTLIST html-  %i18n;-  xmlns       %URI;          #FIXED 'http://www.w3.org/1999/xhtml'-  >--<!--================ Document Head =======================================-->--<!ENTITY % head.misc "(script|style|meta|link|object)*">--<!-- content model is %head.misc; combined with a single-     title and an optional base element in any order -->--<!ELEMENT head (%head.misc;,-     ((title, %head.misc;, (base, %head.misc;)?) |-      (base, %head.misc;, (title, %head.misc;))))>--<!ATTLIST head-  %i18n;-  profile     %URI;          #IMPLIED-  >--<!-- The title element is not considered part of the flow of text.-       It should be displayed, for example as the page header or-       window title. Exactly one title is required per document.-    -->-<!ELEMENT title (#PCDATA)>-<!ATTLIST title %i18n;>--<!-- document base URI -->--<!ELEMENT base EMPTY>-<!ATTLIST base-  href        %URI;          #IMPLIED-  >--<!-- generic metainformation -->-<!ELEMENT meta EMPTY>-<!ATTLIST meta-  %i18n;-  http-equiv  CDATA          #IMPLIED-  name        CDATA          #IMPLIED-  content     CDATA          #REQUIRED-  scheme      CDATA          #IMPLIED-  >--<!---  Relationship values can be used in principle:--   a) for document specific toolbars/menus when used-      with the link element in document head e.g.-        start, contents, previous, next, index, end, help-   b) to link to a separate style sheet (rel="stylesheet")-   c) to make a link to a script (rel="script")-   d) by stylesheets to control how collections of-      html nodes are rendered into printed documents-   e) to make a link to a printable version of this document-      e.g. a PostScript or PDF version (rel="alternate" media="print")--->--<!ELEMENT link EMPTY>-<!ATTLIST link-  %attrs;-  charset     %Charset;      #IMPLIED-  href        %URI;          #IMPLIED-  hreflang    %LanguageCode; #IMPLIED-  type        %ContentType;  #IMPLIED-  rel         %LinkTypes;    #IMPLIED-  rev         %LinkTypes;    #IMPLIED-  media       %MediaDesc;    #IMPLIED-  >--<!-- style info, which may include CDATA sections -->-<!ELEMENT style (#PCDATA)>-<!ATTLIST style-  %i18n;-  type        %ContentType;  #REQUIRED-  media       %MediaDesc;    #IMPLIED-  title       %Text;         #IMPLIED-  xml:space   (preserve)     #FIXED 'preserve'-  >--<!-- script statements, which may include CDATA sections -->-<!ELEMENT script (#PCDATA)>-<!ATTLIST script-  charset     %Charset;      #IMPLIED-  type        %ContentType;  #REQUIRED-  src         %URI;          #IMPLIED-  defer       (defer)        #IMPLIED-  xml:space   (preserve)     #FIXED 'preserve'-  >--<!-- alternate content container for non script-based rendering -->--<!ELEMENT noscript %Block;>-<!ATTLIST noscript-  %attrs;-  >--<!--=================== Document Body ====================================-->--<!ELEMENT body %Block;>-<!ATTLIST body-  %attrs;-  onload          %Script;   #IMPLIED-  onunload        %Script;   #IMPLIED-  >--<!ELEMENT div %Flow;>  <!-- generic language/style container -->-<!ATTLIST div-  %attrs;-  >--<!--=================== Paragraphs =======================================-->--<!ELEMENT p %Inline;>-<!ATTLIST p-  %attrs;-  >--<!--=================== Headings =========================================-->--<!---  There are six levels of headings from h1 (the most important)-  to h6 (the least important).--->--<!ELEMENT h1  %Inline;>-<!ATTLIST h1-   %attrs;-   >--<!ELEMENT h2 %Inline;>-<!ATTLIST h2-   %attrs;-   >--<!ELEMENT h3 %Inline;>-<!ATTLIST h3-   %attrs;-   >--<!ELEMENT h4 %Inline;>-<!ATTLIST h4-   %attrs;-   >--<!ELEMENT h5 %Inline;>-<!ATTLIST h5-   %attrs;-   >--<!ELEMENT h6 %Inline;>-<!ATTLIST h6-   %attrs;-   >--<!--=================== Lists ============================================-->--<!-- Unordered list -->--<!ELEMENT ul (li)+>-<!ATTLIST ul-  %attrs;-  >--<!-- Ordered (numbered) list -->--<!ELEMENT ol (li)+>-<!ATTLIST ol-  %attrs;-  >--<!-- list item -->--<!ELEMENT li %Flow;>-<!ATTLIST li-  %attrs;-  >--<!-- definition lists - dt for term, dd for its definition -->--<!ELEMENT dl (dt|dd)+>-<!ATTLIST dl-  %attrs;-  >--<!ELEMENT dt %Inline;>-<!ATTLIST dt-  %attrs;-  >--<!ELEMENT dd %Flow;>-<!ATTLIST dd-  %attrs;-  >--<!--=================== Address ==========================================-->--<!-- information on author -->--<!ELEMENT address %Inline;>-<!ATTLIST address-  %attrs;-  >--<!--=================== Horizontal Rule ==================================-->--<!ELEMENT hr EMPTY>-<!ATTLIST hr-  %attrs;-  >--<!--=================== Preformatted Text ================================-->--<!-- content is %Inline; excluding "img|object|big|small|sub|sup" -->--<!ELEMENT pre %pre.content;>-<!ATTLIST pre-  %attrs;-  xml:space (preserve) #FIXED 'preserve'-  >--<!--=================== Block-like Quotes ================================-->--<!ELEMENT blockquote %Block;>-<!ATTLIST blockquote-  %attrs;-  cite        %URI;          #IMPLIED-  >--<!--=================== Inserted/Deleted Text ============================-->--<!---  ins/del are allowed in block and inline content, but its-  inappropriate to include block content within an ins element-  occurring in inline content.--->-<!ELEMENT ins %Flow;>-<!ATTLIST ins-  %attrs;-  cite        %URI;          #IMPLIED-  datetime    %Datetime;     #IMPLIED-  >--<!ELEMENT del %Flow;>-<!ATTLIST del-  %attrs;-  cite        %URI;          #IMPLIED-  datetime    %Datetime;     #IMPLIED-  >--<!--================== The Anchor Element ================================-->--<!-- content is %Inline; except that anchors shouldn't be nested -->--<!ELEMENT a %a.content;>-<!ATTLIST a-  %attrs;-  charset     %Charset;      #IMPLIED-  type        %ContentType;  #IMPLIED-  name        NMTOKEN        #IMPLIED-  href        %URI;          #IMPLIED-  hreflang    %LanguageCode; #IMPLIED-  rel         %LinkTypes;    #IMPLIED-  rev         %LinkTypes;    #IMPLIED-  accesskey   %Character;    #IMPLIED-  shape       %Shape;        "rect"-  coords      %Coords;       #IMPLIED-  tabindex    %Number;       #IMPLIED-  onfocus     %Script;       #IMPLIED-  onblur      %Script;       #IMPLIED-  >--<!--===================== Inline Elements ================================-->--<!ELEMENT span %Inline;> <!-- generic language/style container -->-<!ATTLIST span-  %attrs;-  >--<!ELEMENT bdo %Inline;>  <!-- I18N BiDi over-ride -->-<!ATTLIST bdo-  %coreattrs;-  %events;-  lang        %LanguageCode; #IMPLIED-  xml:lang    %LanguageCode; #IMPLIED-  dir         (ltr|rtl)      #REQUIRED-  >--<!ELEMENT br EMPTY>   <!-- forced line break -->-<!ATTLIST br-  %coreattrs;-  >--<!ELEMENT em %Inline;>   <!-- emphasis -->-<!ATTLIST em %attrs;>--<!ELEMENT strong %Inline;>   <!-- strong emphasis -->-<!ATTLIST strong %attrs;>--<!ELEMENT dfn %Inline;>   <!-- definitional -->-<!ATTLIST dfn %attrs;>--<!ELEMENT code %Inline;>   <!-- program code -->-<!ATTLIST code %attrs;>--<!ELEMENT samp %Inline;>   <!-- sample -->-<!ATTLIST samp %attrs;>--<!ELEMENT kbd %Inline;>  <!-- something user would type -->-<!ATTLIST kbd %attrs;>--<!ELEMENT var %Inline;>   <!-- variable -->-<!ATTLIST var %attrs;>--<!ELEMENT cite %Inline;>   <!-- citation -->-<!ATTLIST cite %attrs;>--<!ELEMENT abbr %Inline;>   <!-- abbreviation -->-<!ATTLIST abbr %attrs;>--<!ELEMENT acronym %Inline;>   <!-- acronym -->-<!ATTLIST acronym %attrs;>--<!ELEMENT q %Inline;>   <!-- inlined quote -->-<!ATTLIST q-  %attrs;-  cite        %URI;          #IMPLIED-  >--<!ELEMENT sub %Inline;> <!-- subscript -->-<!ATTLIST sub %attrs;>--<!ELEMENT sup %Inline;> <!-- superscript -->-<!ATTLIST sup %attrs;>--<!ELEMENT tt %Inline;>   <!-- fixed pitch font -->-<!ATTLIST tt %attrs;>--<!ELEMENT i %Inline;>   <!-- italic font -->-<!ATTLIST i %attrs;>--<!ELEMENT b %Inline;>   <!-- bold font -->-<!ATTLIST b %attrs;>--<!ELEMENT big %Inline;>   <!-- bigger font -->-<!ATTLIST big %attrs;>--<!ELEMENT small %Inline;>   <!-- smaller font -->-<!ATTLIST small %attrs;>--<!--==================== Object ======================================-->-<!---  object is used to embed objects as part of HTML pages.-  param elements should precede other content. Parameters-  can also be expressed as attribute/value pairs on the-  object element itself when brevity is desired.--->--<!ELEMENT object (#PCDATA | param | %block; | form | %inline; | %misc;)*>-<!ATTLIST object-  %attrs;-  declare     (declare)      #IMPLIED-  classid     %URI;          #IMPLIED-  codebase    %URI;          #IMPLIED-  data        %URI;          #IMPLIED-  type        %ContentType;  #IMPLIED-  codetype    %ContentType;  #IMPLIED-  archive     %UriList;      #IMPLIED-  standby     %Text;         #IMPLIED-  height      %Length;       #IMPLIED-  width       %Length;       #IMPLIED-  usemap      %URI;          #IMPLIED-  name        NMTOKEN        #IMPLIED-  tabindex    %Number;       #IMPLIED-  >--<!---  param is used to supply a named property value.-  In XML it would seem natural to follow RDF and support an-  abbreviated syntax where the param elements are replaced-  by attribute value pairs on the object start tag.--->-<!ELEMENT param EMPTY>-<!ATTLIST param-  id          ID             #IMPLIED-  name        CDATA          #IMPLIED-  value       CDATA          #IMPLIED-  valuetype   (data|ref|object) "data"-  type        %ContentType;  #IMPLIED-  >--<!--=================== Images ===========================================-->--<!---   To avoid accessibility problems for people who aren't-   able to see the image, you should provide a text-   description using the alt and longdesc attributes.-   In addition, avoid the use of server-side image maps.-   Note that in this DTD there is no name attribute. That-   is only available in the transitional and frameset DTD.--->--<!ELEMENT img EMPTY>-<!ATTLIST img-  %attrs;-  src         %URI;          #REQUIRED-  alt         %Text;         #REQUIRED-  longdesc    %URI;          #IMPLIED-  height      %Length;       #IMPLIED-  width       %Length;       #IMPLIED-  usemap      %URI;          #IMPLIED-  ismap       (ismap)        #IMPLIED-  >--<!-- usemap points to a map element which may be in this document-  or an external document, although the latter is not widely supported -->--<!--================== Client-side image maps ============================-->--<!-- These can be placed in the same document or grouped in a-     separate document although this isn't yet widely supported -->--<!ELEMENT map ((%block; | form | %misc;)+ | area+)>-<!ATTLIST map-  %i18n;-  %events;-  id          ID             #REQUIRED-  class       CDATA          #IMPLIED-  style       %StyleSheet;   #IMPLIED-  title       %Text;         #IMPLIED-  name        NMTOKEN        #IMPLIED-  >--<!ELEMENT area EMPTY>-<!ATTLIST area-  %attrs;-  shape       %Shape;        "rect"-  coords      %Coords;       #IMPLIED-  href        %URI;          #IMPLIED-  nohref      (nohref)       #IMPLIED-  alt         %Text;         #REQUIRED-  tabindex    %Number;       #IMPLIED-  accesskey   %Character;    #IMPLIED-  onfocus     %Script;       #IMPLIED-  onblur      %Script;       #IMPLIED-  >--<!--================ Forms ===============================================-->-<!ELEMENT form %form.content;>   <!-- forms shouldn't be nested -->--<!ATTLIST form-  %attrs;-  action      %URI;          #REQUIRED-  method      (get|post)     "get"-  enctype     %ContentType;  "application/x-www-form-urlencoded"-  onsubmit    %Script;       #IMPLIED-  onreset     %Script;       #IMPLIED-  accept      %ContentTypes; #IMPLIED-  accept-charset %Charsets;  #IMPLIED-  >--<!---  Each label must not contain more than ONE field-  Label elements shouldn't be nested.--->-<!ELEMENT label %Inline;>-<!ATTLIST label-  %attrs;-  for         IDREF          #IMPLIED-  accesskey   %Character;    #IMPLIED-  onfocus     %Script;       #IMPLIED-  onblur      %Script;       #IMPLIED-  >--<!ENTITY % InputType-  "(text | password | checkbox |-    radio | submit | reset |-    file | hidden | image | button)"-   >--<!-- the name attribute is required for all but submit & reset -->--<!ELEMENT input EMPTY>     <!-- form control -->-<!ATTLIST input-  %attrs;-  type        %InputType;    "text"-  name        CDATA          #IMPLIED-  value       CDATA          #IMPLIED-  checked     (checked)      #IMPLIED-  disabled    (disabled)     #IMPLIED-  readonly    (readonly)     #IMPLIED-  size        CDATA          #IMPLIED-  maxlength   %Number;       #IMPLIED-  src         %URI;          #IMPLIED-  alt         CDATA          #IMPLIED-  usemap      %URI;          #IMPLIED-  tabindex    %Number;       #IMPLIED-  accesskey   %Character;    #IMPLIED-  onfocus     %Script;       #IMPLIED-  onblur      %Script;       #IMPLIED-  onselect    %Script;       #IMPLIED-  onchange    %Script;       #IMPLIED-  accept      %ContentTypes; #IMPLIED-  >--<!ELEMENT select (optgroup|option)+>  <!-- option selector -->-<!ATTLIST select-  %attrs;-  name        CDATA          #IMPLIED-  size        %Number;       #IMPLIED-  multiple    (multiple)     #IMPLIED-  disabled    (disabled)     #IMPLIED-  tabindex    %Number;       #IMPLIED-  onfocus     %Script;       #IMPLIED-  onblur      %Script;       #IMPLIED-  onchange    %Script;       #IMPLIED-  >--<!ELEMENT optgroup (option)+>   <!-- option group -->-<!ATTLIST optgroup-  %attrs;-  disabled    (disabled)     #IMPLIED-  label       %Text;         #REQUIRED-  >--<!ELEMENT option (#PCDATA)>     <!-- selectable choice -->-<!ATTLIST option-  %attrs;-  selected    (selected)     #IMPLIED-  disabled    (disabled)     #IMPLIED-  label       %Text;         #IMPLIED-  value       CDATA          #IMPLIED-  >--<!ELEMENT textarea (#PCDATA)>     <!-- multi-line text field -->-<!ATTLIST textarea-  %attrs;-  name        CDATA          #IMPLIED-  rows        %Number;       #REQUIRED-  cols        %Number;       #REQUIRED-  disabled    (disabled)     #IMPLIED-  readonly    (readonly)     #IMPLIED-  tabindex    %Number;       #IMPLIED-  accesskey   %Character;    #IMPLIED-  onfocus     %Script;       #IMPLIED-  onblur      %Script;       #IMPLIED-  onselect    %Script;       #IMPLIED-  onchange    %Script;       #IMPLIED-  >--<!---  The fieldset element is used to group form fields.-  Only one legend element should occur in the content-  and if present should only be preceded by whitespace.--->-<!ELEMENT fieldset (#PCDATA | legend | %block; | form | %inline; | %misc;)*>-<!ATTLIST fieldset-  %attrs;-  >--<!ELEMENT legend %Inline;>     <!-- fieldset label -->-<!ATTLIST legend-  %attrs;-  accesskey   %Character;    #IMPLIED-  >--<!--- Content is %Flow; excluding a, form and form controls---> -<!ELEMENT button %button.content;>  <!-- push button -->-<!ATTLIST button-  %attrs;-  name        CDATA          #IMPLIED-  value       CDATA          #IMPLIED-  type        (button|submit|reset) "submit"-  disabled    (disabled)     #IMPLIED-  tabindex    %Number;       #IMPLIED-  accesskey   %Character;    #IMPLIED-  onfocus     %Script;       #IMPLIED-  onblur      %Script;       #IMPLIED-  >--<!--======================= Tables =======================================-->--<!-- Derived from IETF HTML table standard, see [RFC1942] -->--<!--- The border attribute sets the thickness of the frame around the- table. The default units are screen pixels.-- The frame attribute specifies which parts of the frame around- the table should be rendered. The values are not the same as- CALS to avoid a name clash with the valign attribute.--->-<!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">--<!--- The rules attribute defines which rules to draw between cells:-- If rules is absent then assume:-     "none" if border is absent or border="0" otherwise "all"--->--<!ENTITY % TRules "(none | groups | rows | cols | all)">-  -<!-- horizontal placement of table relative to document -->-<!ENTITY % TAlign "(left|center|right)">--<!-- horizontal alignment attributes for cell contents--  char        alignment char, e.g. char=':'-  charoff     offset for alignment char--->-<!ENTITY % cellhalign-  "align      (left|center|right|justify|char) #IMPLIED-   char       %Character;    #IMPLIED-   charoff    %Length;       #IMPLIED"-  >--<!-- vertical alignment attributes for cell contents -->-<!ENTITY % cellvalign-  "valign     (top|middle|bottom|baseline) #IMPLIED"-  >--<!ELEMENT table-     (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>-<!ELEMENT caption  %Inline;>-<!ELEMENT thead    (tr)+>-<!ELEMENT tfoot    (tr)+>-<!ELEMENT tbody    (tr)+>-<!ELEMENT colgroup (col)*>-<!ELEMENT col      EMPTY>-<!ELEMENT tr       (th|td)+>-<!ELEMENT th       %Flow;>-<!ELEMENT td       %Flow;>--<!ATTLIST table-  %attrs;-  summary     %Text;         #IMPLIED-  width       %Length;       #IMPLIED-  border      %Pixels;       #IMPLIED-  frame       %TFrame;       #IMPLIED-  rules       %TRules;       #IMPLIED-  cellspacing %Length;       #IMPLIED-  cellpadding %Length;       #IMPLIED-  >--<!ENTITY % CAlign "(top|bottom|left|right)">--<!ATTLIST caption-  %attrs;-  >--<!---colgroup groups a set of col elements. It allows you to group-several semantically related columns together.--->-<!ATTLIST colgroup-  %attrs;-  span        %Number;       "1"-  width       %MultiLength;  #IMPLIED-  %cellhalign;-  %cellvalign;-  >--<!--- col elements define the alignment properties for cells in- one or more columns.-- The width attribute specifies the width of the columns, e.g.--     width=64        width in screen pixels-     width=0.5*      relative width of 0.5-- The span attribute causes the attributes of one- col element to apply to more than one column.--->-<!ATTLIST col-  %attrs;-  span        %Number;       "1"-  width       %MultiLength;  #IMPLIED-  %cellhalign;-  %cellvalign;-  >--<!---    Use thead to duplicate headers when breaking table-    across page boundaries, or for static headers when-    tbody sections are rendered in scrolling panel.--    Use tfoot to duplicate footers when breaking table-    across page boundaries, or for static footers when-    tbody sections are rendered in scrolling panel.--    Use multiple tbody sections when rules are needed-    between groups of table rows.--->-<!ATTLIST thead-  %attrs;-  %cellhalign;-  %cellvalign;-  >--<!ATTLIST tfoot-  %attrs;-  %cellhalign;-  %cellvalign;-  >--<!ATTLIST tbody-  %attrs;-  %cellhalign;-  %cellvalign;-  >--<!ATTLIST tr-  %attrs;-  %cellhalign;-  %cellvalign;-  >---<!-- Scope is simpler than headers attribute for common tables -->-<!ENTITY % Scope "(row|col|rowgroup|colgroup)">--<!-- th is for headers, td for data and for cells acting as both -->--<!ATTLIST th-  %attrs;-  abbr        %Text;         #IMPLIED-  axis        CDATA          #IMPLIED-  headers     IDREFS         #IMPLIED-  scope       %Scope;        #IMPLIED-  rowspan     %Number;       "1"-  colspan     %Number;       "1"-  %cellhalign;-  %cellvalign;-  >--<!ATTLIST td-  %attrs;-  abbr        %Text;         #IMPLIED-  axis        CDATA          #IMPLIED-  headers     IDREFS         #IMPLIED-  scope       %Scope;        #IMPLIED-  rowspan     %Number;       "1"-  colspan     %Number;       "1"-  %cellhalign;-  %cellvalign;-  >-
− examples/xhtml/xhtml1-transitional.dtd
@@ -1,1196 +0,0 @@-<!---   Extensible HTML version 1.0 Transitional DTD--   This is the same as HTML 4.0 Transitional except for-   changes due to the differences between XML and SGML.--   Namespace = http://www.w3.org/1999/xhtml--   For further information, see: http://www.w3.org/TR/xhtml1--   Copyright (c) 1998-2000 W3C (MIT, INRIA, Keio),-   All Rights Reserved. --   This DTD module is identified by the PUBLIC and SYSTEM identifiers:--   PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"-   SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"--   $Revision: 1.1 $-   $Date: 2002/10/01 13:47:08 $---->--<!--================ Character mnemonic entities =========================-->--<!ENTITY % HTMLlat1 PUBLIC-   "-//W3C//ENTITIES Latin 1 for XHTML//EN"-   "xhtml-lat1.ent">-%HTMLlat1;--<!ENTITY % HTMLsymbol PUBLIC-   "-//W3C//ENTITIES Symbols for XHTML//EN"-   "xhtml-symbol.ent">-%HTMLsymbol;--<!ENTITY % HTMLspecial PUBLIC-   "-//W3C//ENTITIES Special for XHTML//EN"-   "xhtml-special.ent">-%HTMLspecial;--<!--================== Imported Names ====================================-->--<!ENTITY % ContentType "CDATA">-    <!-- media type, as per [RFC2045] -->--<!ENTITY % ContentTypes "CDATA">-    <!-- comma-separated list of media types, as per [RFC2045] -->--<!ENTITY % Charset "CDATA">-    <!-- a character encoding, as per [RFC2045] -->--<!ENTITY % Charsets "CDATA">-    <!-- a space separated list of character encodings, as per [RFC2045] -->--<!ENTITY % LanguageCode "NMTOKEN">-    <!-- a language code, as per [RFC1766] -->--<!ENTITY % Character "CDATA">-    <!-- a single character from [ISO10646] -->--<!ENTITY % Number "CDATA">-    <!-- one or more digits -->--<!ENTITY % LinkTypes "CDATA">-    <!-- space-separated list of link types -->--<!ENTITY % MediaDesc "CDATA">-    <!-- single or comma-separated list of media descriptors -->--<!ENTITY % URI "CDATA">-    <!-- a Uniform Resource Identifier, see [RFC2396] -->--<!ENTITY % UriList "CDATA">-    <!-- a space separated list of Uniform Resource Identifiers -->--<!ENTITY % Datetime "CDATA">-    <!-- date and time information. ISO date format -->--<!ENTITY % Script "CDATA">-    <!-- script expression -->--<!ENTITY % StyleSheet "CDATA">-    <!-- style sheet data -->--<!ENTITY % Text "CDATA">-    <!-- used for titles etc. -->--<!ENTITY % FrameTarget "NMTOKEN">-    <!-- render in this frame -->--<!ENTITY % Length "CDATA">-    <!-- nn for pixels or nn% for percentage length -->--<!ENTITY % MultiLength "CDATA">-    <!-- pixel, percentage, or relative -->--<!ENTITY % MultiLengths "CDATA">-    <!-- comma-separated list of MultiLength -->--<!ENTITY % Pixels "CDATA">-    <!-- integer representing length in pixels -->--<!-- these are used for image maps -->--<!ENTITY % Shape "(rect|circle|poly|default)">--<!ENTITY % Coords "CDATA">-    <!-- comma separated list of lengths -->--<!-- used for object, applet, img, input and iframe -->-<!ENTITY % ImgAlign "(top|middle|bottom|left|right)">--<!-- a color using sRGB: #RRGGBB as Hex values -->-<!ENTITY % Color "CDATA">--<!-- There are also 16 widely known color names with their sRGB values:--    Black  = #000000    Green  = #008000-    Silver = #C0C0C0    Lime   = #00FF00-    Gray   = #808080    Olive  = #808000-    White  = #FFFFFF    Yellow = #FFFF00-    Maroon = #800000    Navy   = #000080-    Red    = #FF0000    Blue   = #0000FF-    Purple = #800080    Teal   = #008080-    Fuchsia= #FF00FF    Aqua   = #00FFFF--->--<!--=================== Generic Attributes ===============================-->--<!-- core attributes common to most elements-  id       document-wide unique id-  class    space separated list of classes-  style    associated style info-  title    advisory title/amplification--->-<!ENTITY % coreattrs- "id          ID             #IMPLIED-  class       CDATA          #IMPLIED-  style       %StyleSheet;   #IMPLIED-  title       %Text;         #IMPLIED"-  >--<!-- internationalization attributes-  lang        language code (backwards compatible)-  xml:lang    language code (as per XML 1.0 spec)-  dir         direction for weak/neutral text--->-<!ENTITY % i18n- "lang        %LanguageCode; #IMPLIED-  xml:lang    %LanguageCode; #IMPLIED-  dir         (ltr|rtl)      #IMPLIED"-  >--<!-- attributes for common UI events-  onclick     a pointer button was clicked-  ondblclick  a pointer button was double clicked-  onmousedown a pointer button was pressed down-  onmouseup   a pointer button was released-  onmousemove a pointer was moved onto the element-  onmouseout  a pointer was moved away from the element-  onkeypress  a key was pressed and released-  onkeydown   a key was pressed down-  onkeyup     a key was released--->-<!ENTITY % events- "onclick     %Script;       #IMPLIED-  ondblclick  %Script;       #IMPLIED-  onmousedown %Script;       #IMPLIED-  onmouseup   %Script;       #IMPLIED-  onmouseover %Script;       #IMPLIED-  onmousemove %Script;       #IMPLIED-  onmouseout  %Script;       #IMPLIED-  onkeypress  %Script;       #IMPLIED-  onkeydown   %Script;       #IMPLIED-  onkeyup     %Script;       #IMPLIED"-  >--<!-- attributes for elements that can get the focus-  accesskey   accessibility key character-  tabindex    position in tabbing order-  onfocus     the element got the focus-  onblur      the element lost the focus--->-<!ENTITY % focus- "accesskey   %Character;    #IMPLIED-  tabindex    %Number;       #IMPLIED-  onfocus     %Script;       #IMPLIED-  onblur      %Script;       #IMPLIED"-  >--<!ENTITY % attrs "%coreattrs; %i18n; %events;">--<!-- text alignment for p, div, h1-h6. The default is-     align="left" for ltr headings, "right" for rtl -->--<!ENTITY % TextAlign "align (left|center|right) #IMPLIED">--<!--=================== Text Elements ====================================-->--<!ENTITY % special-   "br | span | bdo | object | applet | img | map | iframe">--<!ENTITY % fontstyle "tt | i | b | big | small | u-                      | s | strike |font | basefont">--<!ENTITY % phrase "em | strong | dfn | code | q | sub | sup |-                   samp | kbd | var | cite | abbr | acronym">--<!ENTITY % inline.forms "input | select | textarea | label | button">--<!-- these can occur at block or inline level -->-<!ENTITY % misc "ins | del | script | noscript">--<!ENTITY % inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;">--<!-- %Inline; covers inline or "text-level" elements -->-<!ENTITY % Inline "(#PCDATA | %inline; | %misc;)*">--<!--================== Block level elements ==============================-->--<!ENTITY % heading "h1|h2|h3|h4|h5|h6">-<!ENTITY % lists "ul | ol | dl | menu | dir">-<!ENTITY % blocktext "pre | hr | blockquote | address | center | noframes">--<!ENTITY % block-    "p | %heading; | div | %lists; | %blocktext; | isindex |fieldset | table">--<!ENTITY % Block "(%block; | form | %misc;)*">--<!-- %Flow; mixes Block and Inline and is used for list items etc. -->-<!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*">--<!--================== Content models for exclusions =====================-->--<!-- a elements use %Inline; excluding a -->--<!ENTITY % a.content-   "(#PCDATA | %special; | %fontstyle; | %phrase; | %inline.forms; | %misc;)*">--<!-- pre uses %Inline excluding img, object, applet, big, small,-     sub, sup, font, or basefont -->--<!ENTITY % pre.content-   "(#PCDATA | a | br | span | bdo | map | tt | i | b | u | s |-      %phrase; | %inline.forms;)*">--<!-- form uses %Flow; excluding form -->--<!ENTITY % form.content "(#PCDATA | %block; | %inline; | %misc;)*">--<!-- button uses %Flow; but excludes a, form, form controls, iframe -->--<!ENTITY % button.content-   "(#PCDATA | p | %heading; | div | %lists; | %blocktext; |-      table | br | span | bdo | object | applet | img | map |-      %fontstyle; | %phrase; | %misc;)*">--<!--================ Document Structure ==================================-->--<!-- the namespace URI designates the document profile -->--<!ELEMENT html (head, body)>-<!ATTLIST html-  %i18n;-  xmlns       %URI;          #FIXED 'http://www.w3.org/1999/xhtml'-  >--<!--================ Document Head =======================================-->--<!ENTITY % head.misc "(script|style|meta|link|object|isindex)*">--<!-- content model is %head.misc; combined with a single-     title and an optional base element in any order -->--<!ELEMENT head (%head.misc;,-     ((title, %head.misc;, (base, %head.misc;)?) |-      (base, %head.misc;, (title, %head.misc;))))>--<!ATTLIST head-  %i18n;-  profile     %URI;          #IMPLIED-  >--<!-- The title element is not considered part of the flow of text.-       It should be displayed, for example as the page header or-       window title. Exactly one title is required per document.-    -->-<!ELEMENT title (#PCDATA)>-<!ATTLIST title %i18n;>--<!-- document base URI -->--<!ELEMENT base EMPTY>-<!ATTLIST base-  href        %URI;          #IMPLIED-  target      %FrameTarget;  #IMPLIED-  >--<!-- generic metainformation -->-<!ELEMENT meta EMPTY>-<!ATTLIST meta-  %i18n;-  http-equiv  CDATA          #IMPLIED-  name        CDATA          #IMPLIED-  content     CDATA          #REQUIRED-  scheme      CDATA          #IMPLIED-  >--<!---  Relationship values can be used in principle:--   a) for document specific toolbars/menus when used-      with the link element in document head e.g.-        start, contents, previous, next, index, end, help-   b) to link to a separate style sheet (rel="stylesheet")-   c) to make a link to a script (rel="script")-   d) by stylesheets to control how collections of-      html nodes are rendered into printed documents-   e) to make a link to a printable version of this document-      e.g. a PostScript or PDF version (rel="alternate" media="print")--->--<!ELEMENT link EMPTY>-<!ATTLIST link-  %attrs;-  charset     %Charset;      #IMPLIED-  href        %URI;          #IMPLIED-  hreflang    %LanguageCode; #IMPLIED-  type        %ContentType;  #IMPLIED-  rel         %LinkTypes;    #IMPLIED-  rev         %LinkTypes;    #IMPLIED-  media       %MediaDesc;    #IMPLIED-  target      %FrameTarget;  #IMPLIED-  >--<!-- style info, which may include CDATA sections -->-<!ELEMENT style (#PCDATA)>-<!ATTLIST style-  %i18n;-  type        %ContentType;  #REQUIRED-  media       %MediaDesc;    #IMPLIED-  title       %Text;         #IMPLIED-  xml:space   (preserve)     #FIXED 'preserve'-  >--<!-- script statements, which may include CDATA sections -->-<!ELEMENT script (#PCDATA)>-<!ATTLIST script-  charset     %Charset;      #IMPLIED-  type        %ContentType;  #REQUIRED-  language    CDATA          #IMPLIED-  src         %URI;          #IMPLIED-  defer       (defer)        #IMPLIED-  xml:space   (preserve)     #FIXED 'preserve'-  >--<!-- alternate content container for non script-based rendering -->--<!ELEMENT noscript %Flow;>-<!ATTLIST noscript-  %attrs;-  >--<!--======================= Frames =======================================-->--<!-- inline subwindow -->--<!ELEMENT iframe %Flow;>-<!ATTLIST iframe-  %coreattrs;-  longdesc    %URI;          #IMPLIED-  name        NMTOKEN        #IMPLIED-  src         %URI;          #IMPLIED-  frameborder (1|0)          "1"-  marginwidth %Pixels;       #IMPLIED-  marginheight %Pixels;      #IMPLIED-  scrolling   (yes|no|auto)  "auto"-  align       %ImgAlign;     #IMPLIED-  height      %Length;       #IMPLIED-  width       %Length;       #IMPLIED-  >--<!-- alternate content container for non frame-based rendering -->--<!ELEMENT noframes %Flow;>-<!ATTLIST noframes-  %attrs;-  >--<!--=================== Document Body ====================================-->--<!ELEMENT body %Flow;>-<!ATTLIST body-  %attrs;-  onload      %Script;       #IMPLIED-  onunload    %Script;       #IMPLIED-  background  %URI;          #IMPLIED-  bgcolor     %Color;        #IMPLIED-  text        %Color;        #IMPLIED-  link        %Color;        #IMPLIED-  vlink       %Color;        #IMPLIED-  alink       %Color;        #IMPLIED-  >--<!ELEMENT div %Flow;>  <!-- generic language/style container -->-<!ATTLIST div-  %attrs;-  %TextAlign;-  >--<!--=================== Paragraphs =======================================-->--<!ELEMENT p %Inline;>-<!ATTLIST p-  %attrs;-  %TextAlign;-  >--<!--=================== Headings =========================================-->--<!---  There are six levels of headings from h1 (the most important)-  to h6 (the least important).--->--<!ELEMENT h1  %Inline;>-<!ATTLIST h1-  %attrs;-  %TextAlign;-  >--<!ELEMENT h2 %Inline;>-<!ATTLIST h2-  %attrs;-  %TextAlign;-  >--<!ELEMENT h3 %Inline;>-<!ATTLIST h3-  %attrs;-  %TextAlign;-  >--<!ELEMENT h4 %Inline;>-<!ATTLIST h4-  %attrs;-  %TextAlign;-  >--<!ELEMENT h5 %Inline;>-<!ATTLIST h5-  %attrs;-  %TextAlign;-  >--<!ELEMENT h6 %Inline;>-<!ATTLIST h6-  %attrs;-  %TextAlign;-  >--<!--=================== Lists ============================================-->--<!-- Unordered list bullet styles -->--<!ENTITY % ULStyle "(disc|square|circle)">--<!-- Unordered list -->--<!ELEMENT ul (li)+>-<!ATTLIST ul-  %attrs;-  type        %ULStyle;     #IMPLIED-  compact     (compact)     #IMPLIED-  >--<!-- Ordered list numbering style--    1   arabic numbers      1, 2, 3, ...-    a   lower alpha         a, b, c, ...-    A   upper alpha         A, B, C, ...-    i   lower roman         i, ii, iii, ...-    I   upper roman         I, II, III, ...--    The style is applied to the sequence number which by default-    is reset to 1 for the first list item in an ordered list.--->-<!ENTITY % OLStyle "CDATA">--<!-- Ordered (numbered) list -->--<!ELEMENT ol (li)+>-<!ATTLIST ol-  %attrs;-  type        %OLStyle;      #IMPLIED-  compact     (compact)      #IMPLIED-  start       %Number;       #IMPLIED-  >--<!-- single column list (DEPRECATED) --> -<!ELEMENT menu (li)+>-<!ATTLIST menu-  %attrs;-  compact     (compact)     #IMPLIED-  >--<!-- multiple column list (DEPRECATED) --> -<!ELEMENT dir (li)+>-<!ATTLIST dir-  %attrs;-  compact     (compact)     #IMPLIED-  >--<!-- LIStyle is constrained to: "(%ULStyle;|%OLStyle;)" -->-<!ENTITY % LIStyle "CDATA">--<!-- list item -->--<!ELEMENT li %Flow;>-<!ATTLIST li-  %attrs;-  type        %LIStyle;      #IMPLIED-  value       %Number;       #IMPLIED-  >--<!-- definition lists - dt for term, dd for its definition -->--<!ELEMENT dl (dt|dd)+>-<!ATTLIST dl-  %attrs;-  compact     (compact)      #IMPLIED-  >--<!ELEMENT dt %Inline;>-<!ATTLIST dt-  %attrs;-  >--<!ELEMENT dd %Flow;>-<!ATTLIST dd-  %attrs;-  >--<!--=================== Address ==========================================-->--<!-- information on author -->--<!ELEMENT address %Inline;>-<!ATTLIST address-  %attrs;-  >--<!--=================== Horizontal Rule ==================================-->--<!ELEMENT hr EMPTY>-<!ATTLIST hr-  %attrs;-  align       (left|center|right) #IMPLIED-  noshade     (noshade)      #IMPLIED-  size        %Pixels;       #IMPLIED-  width       %Length;       #IMPLIED-  >--<!--=================== Preformatted Text ================================-->--<!-- content is %Inline; excluding -        "img|object|applet|big|small|sub|sup|font|basefont" -->--<!ELEMENT pre %pre.content;>-<!ATTLIST pre-  %attrs;-  width       %Number;      #IMPLIED-  xml:space   (preserve)    #FIXED 'preserve'-  >--<!--=================== Block-like Quotes ================================-->--<!ELEMENT blockquote %Flow;>-<!ATTLIST blockquote-  %attrs;-  cite        %URI;          #IMPLIED-  >--<!--=================== Text alignment ===================================-->--<!-- center content -->-<!ELEMENT center %Flow;>-<!ATTLIST center-  %attrs;-  >--<!--=================== Inserted/Deleted Text ============================-->--<!---  ins/del are allowed in block and inline content, but its-  inappropriate to include block content within an ins element-  occurring in inline content.--->-<!ELEMENT ins %Flow;>-<!ATTLIST ins-  %attrs;-  cite        %URI;          #IMPLIED-  datetime    %Datetime;     #IMPLIED-  >--<!ELEMENT del %Flow;>-<!ATTLIST del-  %attrs;-  cite        %URI;          #IMPLIED-  datetime    %Datetime;     #IMPLIED-  >--<!--================== The Anchor Element ================================-->--<!-- content is %Inline; except that anchors shouldn't be nested -->--<!ELEMENT a %a.content;>-<!ATTLIST a-  %attrs;-  charset     %Charset;      #IMPLIED-  type        %ContentType;  #IMPLIED-  name        NMTOKEN        #IMPLIED-  href        %URI;          #IMPLIED-  hreflang    %LanguageCode; #IMPLIED-  rel         %LinkTypes;    #IMPLIED-  rev         %LinkTypes;    #IMPLIED-  accesskey   %Character;    #IMPLIED-  shape       %Shape;        "rect"-  coords      %Coords;       #IMPLIED-  tabindex    %Number;       #IMPLIED-  onfocus     %Script;       #IMPLIED-  onblur      %Script;       #IMPLIED-  target      %FrameTarget;  #IMPLIED-  >--<!--===================== Inline Elements ================================-->--<!ELEMENT span %Inline;> <!-- generic language/style container -->-<!ATTLIST span-  %attrs;-  >--<!ELEMENT bdo %Inline;>  <!-- I18N BiDi over-ride -->-<!ATTLIST bdo-  %coreattrs;-  %events;-  lang        %LanguageCode; #IMPLIED-  xml:lang    %LanguageCode; #IMPLIED-  dir         (ltr|rtl)      #REQUIRED-  >--<!ELEMENT br EMPTY>   <!-- forced line break -->-<!ATTLIST br-  %coreattrs;-  clear       (left|all|right|none) "none"-  >--<!ELEMENT em %Inline;>   <!-- emphasis -->-<!ATTLIST em %attrs;>--<!ELEMENT strong %Inline;>   <!-- strong emphasis -->-<!ATTLIST strong %attrs;>--<!ELEMENT dfn %Inline;>   <!-- definitional -->-<!ATTLIST dfn %attrs;>--<!ELEMENT code %Inline;>   <!-- program code -->-<!ATTLIST code %attrs;>--<!ELEMENT samp %Inline;>   <!-- sample -->-<!ATTLIST samp %attrs;>--<!ELEMENT kbd %Inline;>  <!-- something user would type -->-<!ATTLIST kbd %attrs;>--<!ELEMENT var %Inline;>   <!-- variable -->-<!ATTLIST var %attrs;>--<!ELEMENT cite %Inline;>   <!-- citation -->-<!ATTLIST cite %attrs;>--<!ELEMENT abbr %Inline;>   <!-- abbreviation -->-<!ATTLIST abbr %attrs;>--<!ELEMENT acronym %Inline;>   <!-- acronym -->-<!ATTLIST acronym %attrs;>--<!ELEMENT q %Inline;>   <!-- inlined quote -->-<!ATTLIST q-  %attrs;-  cite        %URI;          #IMPLIED-  >--<!ELEMENT sub %Inline;> <!-- subscript -->-<!ATTLIST sub %attrs;>--<!ELEMENT sup %Inline;> <!-- superscript -->-<!ATTLIST sup %attrs;>--<!ELEMENT tt %Inline;>   <!-- fixed pitch font -->-<!ATTLIST tt %attrs;>--<!ELEMENT i %Inline;>   <!-- italic font -->-<!ATTLIST i %attrs;>--<!ELEMENT b %Inline;>   <!-- bold font -->-<!ATTLIST b %attrs;>--<!ELEMENT big %Inline;>   <!-- bigger font -->-<!ATTLIST big %attrs;>--<!ELEMENT small %Inline;>   <!-- smaller font -->-<!ATTLIST small %attrs;>--<!ELEMENT u %Inline;>   <!-- underline -->-<!ATTLIST u %attrs;>--<!ELEMENT s %Inline;>   <!-- strike-through -->-<!ATTLIST s %attrs;>--<!ELEMENT strike %Inline;>   <!-- strike-through -->-<!ATTLIST strike %attrs;>--<!ELEMENT basefont EMPTY>  <!-- base font size -->-<!ATTLIST basefont-  id          ID             #IMPLIED-  size        CDATA          #REQUIRED-  color       %Color;        #IMPLIED-  face        CDATA          #IMPLIED-  >--<!ELEMENT font %Inline;> <!-- local change to font -->-<!ATTLIST font-  %coreattrs;-  %i18n;-  size        CDATA          #IMPLIED-  color       %Color;        #IMPLIED-  face        CDATA          #IMPLIED-  >--<!--==================== Object ======================================-->-<!---  object is used to embed objects as part of HTML pages.-  param elements should precede other content. Parameters-  can also be expressed as attribute/value pairs on the-  object element itself when brevity is desired.--->--<!ELEMENT object (#PCDATA | param | %block; | form | %inline; | %misc;)*>-<!ATTLIST object-  %attrs;-  declare     (declare)      #IMPLIED-  classid     %URI;          #IMPLIED-  codebase    %URI;          #IMPLIED-  data        %URI;          #IMPLIED-  type        %ContentType;  #IMPLIED-  codetype    %ContentType;  #IMPLIED-  archive     %UriList;      #IMPLIED-  standby     %Text;         #IMPLIED-  height      %Length;       #IMPLIED-  width       %Length;       #IMPLIED-  usemap      %URI;          #IMPLIED-  name        NMTOKEN        #IMPLIED-  tabindex    %Number;       #IMPLIED-  align       %ImgAlign;     #IMPLIED-  border      %Pixels;       #IMPLIED-  hspace      %Pixels;       #IMPLIED-  vspace      %Pixels;       #IMPLIED-  >--<!---  param is used to supply a named property value.-  In XML it would seem natural to follow RDF and support an-  abbreviated syntax where the param elements are replaced-  by attribute value pairs on the object start tag.--->-<!ELEMENT param EMPTY>-<!ATTLIST param-  id          ID             #IMPLIED-  name        CDATA          #REQUIRED-  value       CDATA          #IMPLIED-  valuetype   (data|ref|object) "data"-  type        %ContentType;  #IMPLIED-  >--<!--=================== Java applet ==================================-->-<!---  One of code or object attributes must be present.-  Place param elements before other content.--->-<!ELEMENT applet (#PCDATA | param | %block; | form | %inline; | %misc;)*>-<!ATTLIST applet-  %coreattrs;-  codebase    %URI;          #IMPLIED-  archive     CDATA          #IMPLIED-  code        CDATA          #IMPLIED-  object      CDATA          #IMPLIED-  alt         %Text;         #IMPLIED-  name        NMTOKEN        #IMPLIED-  width       %Length;       #REQUIRED-  height      %Length;       #REQUIRED-  align       %ImgAlign;     #IMPLIED-  hspace      %Pixels;       #IMPLIED-  vspace      %Pixels;       #IMPLIED-  >--<!--=================== Images ===========================================-->--<!---   To avoid accessibility problems for people who aren't-   able to see the image, you should provide a text-   description using the alt and longdesc attributes.-   In addition, avoid the use of server-side image maps.--->--<!ELEMENT img EMPTY>-<!ATTLIST img-  %attrs;-  src         %URI;          #REQUIRED-  alt         %Text;         #REQUIRED-  name        NMTOKEN        #IMPLIED-  longdesc    %URI;          #IMPLIED-  height      %Length;       #IMPLIED-  width       %Length;       #IMPLIED-  usemap      %URI;          #IMPLIED-  ismap       (ismap)        #IMPLIED-  align       %ImgAlign;     #IMPLIED-  border      %Length;       #IMPLIED-  hspace      %Pixels;       #IMPLIED-  vspace      %Pixels;       #IMPLIED-  >--<!-- usemap points to a map element which may be in this document-  or an external document, although the latter is not widely supported -->--<!--================== Client-side image maps ============================-->--<!-- These can be placed in the same document or grouped in a-     separate document although this isn't yet widely supported -->--<!ELEMENT map ((%block; | form | %misc;)+ | area+)>-<!ATTLIST map-  %i18n;-  %events;-  id          ID             #REQUIRED-  class       CDATA          #IMPLIED-  style       %StyleSheet;   #IMPLIED-  title       %Text;         #IMPLIED-  name        CDATA          #IMPLIED-  >--<!ELEMENT area EMPTY>-<!ATTLIST area-  %attrs;-  shape       %Shape;        "rect"-  coords      %Coords;       #IMPLIED-  href        %URI;          #IMPLIED-  nohref      (nohref)       #IMPLIED-  alt         %Text;         #REQUIRED-  tabindex    %Number;       #IMPLIED-  accesskey   %Character;    #IMPLIED-  onfocus     %Script;       #IMPLIED-  onblur      %Script;       #IMPLIED-  target      %FrameTarget;  #IMPLIED-  >--<!--================ Forms ===============================================-->--<!ELEMENT form %form.content;>   <!-- forms shouldn't be nested -->--<!ATTLIST form-  %attrs;-  action      %URI;          #REQUIRED-  method      (get|post)     "get"-  name        NMTOKEN        #IMPLIED-  enctype     %ContentType;  "application/x-www-form-urlencoded"-  onsubmit    %Script;       #IMPLIED-  onreset     %Script;       #IMPLIED-  accept      %ContentTypes; #IMPLIED-  accept-charset %Charsets;  #IMPLIED-  target      %FrameTarget;  #IMPLIED-  >--<!---  Each label must not contain more than ONE field-  Label elements shouldn't be nested.--->-<!ELEMENT label %Inline;>-<!ATTLIST label-  %attrs;-  for         IDREF          #IMPLIED-  accesskey   %Character;    #IMPLIED-  onfocus     %Script;       #IMPLIED-  onblur      %Script;       #IMPLIED-  >--<!ENTITY % InputType-  "(text | password | checkbox |-    radio | submit | reset |-    file | hidden | image | button)"-   >--<!-- the name attribute is required for all but submit & reset -->--<!ELEMENT input EMPTY>     <!-- form control -->-<!ATTLIST input-  %attrs;-  type        %InputType;    "text"-  name        CDATA          #IMPLIED-  value       CDATA          #IMPLIED-  checked     (checked)      #IMPLIED-  disabled    (disabled)     #IMPLIED-  readonly    (readonly)     #IMPLIED-  size        CDATA          #IMPLIED-  maxlength   %Number;       #IMPLIED-  src         %URI;          #IMPLIED-  alt         CDATA          #IMPLIED-  usemap      %URI;          #IMPLIED-  tabindex    %Number;       #IMPLIED-  accesskey   %Character;    #IMPLIED-  onfocus     %Script;       #IMPLIED-  onblur      %Script;       #IMPLIED-  onselect    %Script;       #IMPLIED-  onchange    %Script;       #IMPLIED-  accept      %ContentTypes; #IMPLIED-  align       %ImgAlign;     #IMPLIED-  >--<!ELEMENT select (optgroup|option)+>  <!-- option selector -->-<!ATTLIST select-  %attrs;-  name        CDATA          #IMPLIED-  size        %Number;       #IMPLIED-  multiple    (multiple)     #IMPLIED-  disabled    (disabled)     #IMPLIED-  tabindex    %Number;       #IMPLIED-  onfocus     %Script;       #IMPLIED-  onblur      %Script;       #IMPLIED-  onchange    %Script;       #IMPLIED-  >--<!ELEMENT optgroup (option)+>   <!-- option group -->-<!ATTLIST optgroup-  %attrs;-  disabled    (disabled)     #IMPLIED-  label       %Text;         #REQUIRED-  >--<!ELEMENT option (#PCDATA)>     <!-- selectable choice -->-<!ATTLIST option-  %attrs;-  selected    (selected)     #IMPLIED-  disabled    (disabled)     #IMPLIED-  label       %Text;         #IMPLIED-  value       CDATA          #IMPLIED-  >--<!ELEMENT textarea (#PCDATA)>     <!-- multi-line text field -->-<!ATTLIST textarea-  %attrs;-  name        CDATA          #IMPLIED-  rows        %Number;       #REQUIRED-  cols        %Number;       #REQUIRED-  disabled    (disabled)     #IMPLIED-  readonly    (readonly)     #IMPLIED-  tabindex    %Number;       #IMPLIED-  accesskey   %Character;    #IMPLIED-  onfocus     %Script;       #IMPLIED-  onblur      %Script;       #IMPLIED-  onselect    %Script;       #IMPLIED-  onchange    %Script;       #IMPLIED-  >--<!---  The fieldset element is used to group form fields.-  Only one legend element should occur in the content-  and if present should only be preceded by whitespace.--->-<!ELEMENT fieldset (#PCDATA | legend | %block; | form | %inline; | %misc;)*>-<!ATTLIST fieldset-  %attrs;-  >--<!ENTITY % LAlign "(top|bottom|left|right)">--<!ELEMENT legend %Inline;>     <!-- fieldset label -->-<!ATTLIST legend-  %attrs;-  accesskey   %Character;    #IMPLIED-  align       %LAlign;       #IMPLIED-  >--<!--- Content is %Flow; excluding a, form, form controls, iframe---> -<!ELEMENT button %button.content;>  <!-- push button -->-<!ATTLIST button-  %attrs;-  name        CDATA          #IMPLIED-  value       CDATA          #IMPLIED-  type        (button|submit|reset) "submit"-  disabled    (disabled)     #IMPLIED-  tabindex    %Number;       #IMPLIED-  accesskey   %Character;    #IMPLIED-  onfocus     %Script;       #IMPLIED-  onblur      %Script;       #IMPLIED-  >--<!-- single-line text input control (DEPRECATED) -->-<!ELEMENT isindex EMPTY>-<!ATTLIST isindex-  %coreattrs;-  %i18n;-  prompt      %Text;         #IMPLIED-  >--<!--======================= Tables =======================================-->--<!-- Derived from IETF HTML table standard, see [RFC1942] -->--<!--- The border attribute sets the thickness of the frame around the- table. The default units are screen pixels.-- The frame attribute specifies which parts of the frame around- the table should be rendered. The values are not the same as- CALS to avoid a name clash with the valign attribute.--->-<!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">--<!--- The rules attribute defines which rules to draw between cells:-- If rules is absent then assume:-     "none" if border is absent or border="0" otherwise "all"--->--<!ENTITY % TRules "(none | groups | rows | cols | all)">-  -<!-- horizontal placement of table relative to document -->-<!ENTITY % TAlign "(left|center|right)">--<!-- horizontal alignment attributes for cell contents--  char        alignment char, e.g. char=':'-  charoff     offset for alignment char--->-<!ENTITY % cellhalign-  "align      (left|center|right|justify|char) #IMPLIED-   char       %Character;    #IMPLIED-   charoff    %Length;       #IMPLIED"-  >--<!-- vertical alignment attributes for cell contents -->-<!ENTITY % cellvalign-  "valign     (top|middle|bottom|baseline) #IMPLIED"-  >--<!ELEMENT table-     (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>-<!ELEMENT caption  %Inline;>-<!ELEMENT thead    (tr)+>-<!ELEMENT tfoot    (tr)+>-<!ELEMENT tbody    (tr)+>-<!ELEMENT colgroup (col)*>-<!ELEMENT col      EMPTY>-<!ELEMENT tr       (th|td)+>-<!ELEMENT th       %Flow;>-<!ELEMENT td       %Flow;>--<!ATTLIST table-  %attrs;-  summary     %Text;         #IMPLIED-  width       %Length;       #IMPLIED-  border      %Pixels;       #IMPLIED-  frame       %TFrame;       #IMPLIED-  rules       %TRules;       #IMPLIED-  cellspacing %Length;       #IMPLIED-  cellpadding %Length;       #IMPLIED-  align       %TAlign;       #IMPLIED-  bgcolor     %Color;        #IMPLIED-  >--<!ENTITY % CAlign "(top|bottom|left|right)">--<!ATTLIST caption-  %attrs;-  align       %CAlign;       #IMPLIED-  >--<!---colgroup groups a set of col elements. It allows you to group-several semantically related columns together.--->-<!ATTLIST colgroup-  %attrs;-  span        %Number;       "1"-  width       %MultiLength;  #IMPLIED-  %cellhalign;-  %cellvalign;-  >--<!--- col elements define the alignment properties for cells in- one or more columns.-- The width attribute specifies the width of the columns, e.g.--     width=64        width in screen pixels-     width=0.5*      relative width of 0.5-- The span attribute causes the attributes of one- col element to apply to more than one column.--->-<!ATTLIST col-  %attrs;-  span        %Number;       "1"-  width       %MultiLength;  #IMPLIED-  %cellhalign;-  %cellvalign;-  >--<!---    Use thead to duplicate headers when breaking table-    across page boundaries, or for static headers when-    tbody sections are rendered in scrolling panel.--    Use tfoot to duplicate footers when breaking table-    across page boundaries, or for static footers when-    tbody sections are rendered in scrolling panel.--    Use multiple tbody sections when rules are needed-    between groups of table rows.--->-<!ATTLIST thead-  %attrs;-  %cellhalign;-  %cellvalign;-  >--<!ATTLIST tfoot-  %attrs;-  %cellhalign;-  %cellvalign;-  >--<!ATTLIST tbody-  %attrs;-  %cellhalign;-  %cellvalign;-  >--<!ATTLIST tr-  %attrs;-  %cellhalign;-  %cellvalign;-  bgcolor     %Color;        #IMPLIED-  >--<!-- Scope is simpler than headers attribute for common tables -->-<!ENTITY % Scope "(row|col|rowgroup|colgroup)">--<!-- th is for headers, td for data and for cells acting as both -->--<!ATTLIST th-  %attrs;-  abbr        %Text;         #IMPLIED-  axis        CDATA          #IMPLIED-  headers     IDREFS         #IMPLIED-  scope       %Scope;        #IMPLIED-  rowspan     %Number;       "1"-  colspan     %Number;       "1"-  %cellhalign;-  %cellvalign;-  nowrap      (nowrap)       #IMPLIED-  bgcolor     %Color;        #IMPLIED-  width       %Pixels;       #IMPLIED-  height      %Pixels;       #IMPLIED-  >--<!ATTLIST td-  %attrs;-  abbr        %Text;         #IMPLIED-  axis        CDATA          #IMPLIED-  headers     IDREFS         #IMPLIED-  scope       %Scope;        #IMPLIED-  rowspan     %Number;       "1"-  colspan     %Number;       "1"-  %cellhalign;-  %cellvalign;-  nowrap      (nowrap)       #IMPLIED-  bgcolor     %Color;        #IMPLIED-  width       %Pixels;       #IMPLIED-  height      %Pixels;       #IMPLIED-  >-
hxt.cabal view
@@ -1,6 +1,6 @@ -- arch-tag: Haskell XML Toolbox main description file name: hxt-version: 8.3.2+version: 8.4.0 license: OtherLicense license-file: LICENCE maintainer: Uwe Schmidt <uwe@fh-wedel.de>@@ -9,10 +9,66 @@ synopsis: A collection of tools for processing XML with Haskell.  description:  The Haskell XML Toolbox bases on the ideas of HaXml and HXML, but introduces a more general approach for processing XML with Haskell. The Haskell XML Toolbox uses a generic data model for representing XML documents, including the DTD subset and the document subset, in Haskell. It contains a validating XML parser, a HTML parser, namespace support, an XPath expression evaluator, an XSLT library, a RelaxNG schema validator and funtions for serialization and deserialization of user defined data. The libraray make extensive use of the arrow approach for processing XML. homepage: http://www.fh-wedel.de/~si/HXmlToolbox/index.html-copyright: Copyright (c) 2005-2008 Uwe Schmidt+copyright: Copyright (c) 2005-2010 Uwe Schmidt build-type: Simple cabal-version: >=1.6 +extra-source-files:+ examples/arrows/absurls/AbsURIs.hs+ examples/arrows/absurls/lousy.html+ examples/arrows/absurls/Makefile+ examples/arrows/absurls/ProcessDocument.hs+ examples/arrows/AGentleIntroductionToHXT/.ghci+ examples/arrows/AGentleIntroductionToHXT/Makefile+ examples/arrows/AGentleIntroductionToHXT/PicklerExample/Baseball.hs+ examples/arrows/AGentleIntroductionToHXT/PicklerExample/Makefile+ examples/arrows/AGentleIntroductionToHXT/PicklerExample/new-simple2.xml+ examples/arrows/AGentleIntroductionToHXT/PicklerExample/simple2.xml+ examples/arrows/AGentleIntroductionToHXT/SimpleExamples.hs+ examples/arrows/dtd2hxt/DTDtoHXT.hs+ examples/arrows/dtd2hxt/.ghci+ examples/arrows/dtd2hxt/Makefile+ examples/arrows/HelloWorld/bye.xml+ examples/arrows/HelloWorld/HelloWorld.hs+ examples/arrows/HelloWorld/hello.xml+ examples/arrows/HelloWorld/Makefile+ examples/arrows/HelloWorld/Mini.hs+ examples/arrows/hparser/emptyElements.html+ examples/arrows/hparser/example1.xml+ examples/arrows/hparser/HXmlParser.hs+ examples/arrows/hparser/invalid1.xml+ examples/arrows/hparser/invalid2.rng+ examples/arrows/hparser/invalid3.rng+ examples/arrows/hparser/invalid.xml+ examples/arrows/hparser/lousy.html+ examples/arrows/hparser/Makefile+ examples/arrows/hparser/namespace0.xml+ examples/arrows/hparser/namespace1.xml+ examples/arrows/hparser/valid1.rng+ examples/arrows/hparser/valid1.xml+ examples/arrows/hrelaxng/.ghci+ examples/arrows/hrelaxng/HRelaxNG.hs+ examples/arrows/hrelaxng/invalid1.xml+ examples/arrows/hrelaxng/invalid2.rng+ examples/arrows/hrelaxng/invalid3.rng+ examples/arrows/hrelaxng/Makefile+ examples/arrows/hrelaxng/valid1.rng+ examples/arrows/hrelaxng/valid1.xml+ examples/arrows/hrelaxng/valid2.rng+ examples/arrows/hrelaxng/valid2.xml+ examples/arrows/hxpath/example1.xml+ examples/arrows/hxpath/.ghci+ examples/arrows/hxpath/HXPath.hs+ examples/arrows/hxpath/Makefile+ examples/arrows/hxpath/W3CTestData.hs+ examples/arrows/hxpath/XPathShell.hs+ examples/arrows/performance/GenDoc.hs+ examples/arrows/performance/Makefile+ examples/arrows/pickle/Makefile+ examples/arrows/pickle/PickleTest.hs+ examples/arrows/RegexXMLSchema/Makefile+ examples/arrows/RegexXMLSchema/REtest.hs+ library  exposed-modules:   Control.Arrow.ArrowIO,@@ -118,27 +174,23 @@   Text.XML.HXT.XPath.XPathKeywords,   Text.XML.HXT.XPath.XPathParser,   Text.XML.HXT.XPath.XPathToNodeSet,-  Text.XML.HXT.XPath.XPathToString,-  Text.XML.HXT.XSLT.Application,-  Text.XML.HXT.XSLT.Common,-  Text.XML.HXT.XSLT.Compilation,-  Text.XML.HXT.XSLT.CompiledStylesheet,-  Text.XML.HXT.XSLT.Names,-  Text.XML.HXT.XSLT.XsltArrows+  Text.XML.HXT.XPath.XPathToString+  hs-source-dirs: src+  ghc-options: -Wall+  extensions: MultiParamTypeClasses DeriveDataTypeable FunctionalDependencies FlexibleInstances - build-depends: base       >= 4 && < 5,-                haskell98  >= 1 && < 2,-                containers >= 0.1 && < 1,-                directory  >= 1 && < 2,-                filepath   >= 1 && < 2,+ build-depends: base       >= 4.2 && < 5,+                haskell98  >= 1   && < 2,+                containers >= 0.3 && < 1,+                directory  >= 1   && < 2,+                filepath   >= 1   && < 2,                 parsec     >= 2.1 && < 4,                 HUnit      >= 1.2 && < 2,                 network    >= 2.1 && < 3,-                parallel   >= 1.0 && < 2,+                deepseq    >= 1.1 && < 2,                 bytestring >= 0.9 && < 1,                 tagsoup    >= 0.6 && < 1,                 curl       >= 1.3 && < 2-
src/Control/Arrow/ArrowNF.hs view
@@ -19,17 +19,17 @@ where  import Control.Arrow-import Control.Parallel.Strategies+import Control.DeepSeq  -- |--- complete evaluation of an arrow result using 'Control.Parallel.Strategies.rnf'+-- complete evaluation of an arrow result using 'Control.DeepSeq' -- -- this is sometimes useful for preventing space leaks, especially after reading -- and validation of a document, all DTD stuff is not longer in use and can be -- recycled by the GC.  strictA	:: (Arrow a, NFData b) => a b b-strictA	= arr $ \ x -> x `demanding` rnf x+strictA	= arr $ \ x -> deepseq x x  class (Arrow a) => ArrowNF a where     rnfA	:: (NFData c) => a b c -> a b c
src/Control/Arrow/IOListArrow.hs view
@@ -30,7 +30,7 @@ import           Control.Arrow.ArrowTree import           Control.Arrow.ArrowIO -import           Control.Parallel.Strategies+import           Control.DeepSeq  -- ------------------------------------------------------------ @@ -127,6 +127,6 @@ instance ArrowNF IOLA where     rnfA (IOLA f)	= IOLA $ \ x -> do 					res <- f x-					return (res `demanding` rnf res)+					deepseq res $ return res  -- ------------------------------------------------------------
src/Control/Arrow/IOStateListArrow.hs view
@@ -36,7 +36,7 @@ import           Control.Arrow.ArrowTree import           Control.Arrow.ArrowState -import           Control.Parallel.Strategies+import           Control.DeepSeq  -- ------------------------------------------------------------ @@ -189,6 +189,6 @@ instance (NFData s) => ArrowNF (IOSLA s) where     rnfA (IOSLA f)	= IOSLA $ \ s x -> do 					   res <- f s x-					   return (res `demanding` rnf res)+					   deepseq res $ return res  -- ------------------------------------------------------------
src/Control/Arrow/ListArrow.hs view
@@ -31,7 +31,7 @@ import           Control.Arrow.ArrowNF import           Control.Arrow.ArrowTree -import           Control.Parallel.Strategies+import           Control.DeepSeq  import           Data.List ( partition ) @@ -105,7 +105,7 @@ instance ArrowNF LA where     rnfA (LA f)		= LA $ \ x -> let res = f x                                       in-                                      res `demanding` rnf res+                                      deepseq res res  -- ------------------------------------------------------------ 
src/Control/Arrow/StateListArrow.hs view
@@ -34,7 +34,7 @@ import           Control.Arrow.ArrowState import           Control.Arrow.ArrowTree -import           Control.Parallel.Strategies+import           Control.DeepSeq  -- ------------------------------------------------------------ @@ -162,7 +162,7 @@ instance (NFData s) => ArrowNF (SLA s) where     rnfA (SLA f)	= SLA $ \ s x -> let res = f s x                                          in-                                         res `demanding` rnf res+                                         deepseq res res  -- ------------------------------------------------------------ 
src/Data/Atom.hs view
@@ -60,7 +60,7 @@  ) where  import           Control.Concurrent.MVar-import           Control.Parallel.Strategies+import           Control.DeepSeq  import           Data.ByteString.Internal       ( toForeignPtr, c2w, w2c ) import           Data.ByteString                ( ByteString, pack, unpack )
src/Data/NavTree.hs view
@@ -11,7 +11,6 @@ where  import Data.Tree.NTree.TypeDefs-import Data.Maybe  -- ----------------------------------------------------------------------------- 
src/Data/Tree/NTree/TypeDefs.hs view
@@ -25,7 +25,7 @@     ) where -import Control.Parallel.Strategies+import Control.DeepSeq  import Data.Tree.Class import Data.Typeable
− src/HXT.hs
@@ -1,12 +0,0 @@--- $Id: HXT.hs,v 1.3 2005/09/02 17:09:38 hxml Exp $--module HXT {--    ( module Text.XML.HXT.Parser-    , module Text.XML.HXT.XPath-    , module Text.XML.HXT.Arrow-    ) -}-where--import Text.XML.HXT.XPath as XPath()-import Text.XML.HXT.Arrow as Arrow()-import Text.XML.HXT.RelaxNG as Relax()
− src/Makefile
@@ -1,308 +0,0 @@-# -------------------------------------------------------------#-# global names and dirs--include ../Version.mk--HXT_HOME	= ..-HXT_HOME_PATH	= $(shell cd $(HXT_HOME) ; pwd)-PACKAGE_DIR	= $(HXT_HOME_PATH)/lib/hxt-HDOC_DIR	= $(HXT_HOME)/doc/hdoc-HDOC_DIR_ARROW	= $(HXT_HOME)/doc/hdoc_arrow-HDOC_DIR_FILTER	= $(HXT_HOME)/doc/hdoc_filter-IMPORT_DIR	= imports-HXT_PACKAGE	= hxt--# -------------------------------------------------------------#-# commands--GHCFLAGS	= -Wall -O2 -fglasgow-exts -ignore-package $(HXT_PACKAGE)-GHC             = ghc $(GHCFLAGS)-GHCVERSION	=  $(shell ghc -v 2>&1 | head -n 2 | tail -n 1 | cut -d " " -f 5 | sed 's|^.*ghc-\([0-9.]*\)/package.conf|\1|')--HXT_PACKAGE_NAME=$(HXT_PACKAGE)-$(VERSION)--HDOCFLAGS	= -v -v -v -h-HDOC            = haddock $(HDOCFLAGS)--RM              = rm -f--all	:--packagename	:-		@echo $(HXT_PACKAGE_NAME)--# -------------------------------------------------------------#-# protocol handler config (for removing http or popen)--./Text/XML/HXT/Parser/ProtocolHandler.hs	: ./Text/XML/HXT/ProtocolHandler/ProtocolHandler.hs-		$(MAKE) -C ./Text/XML/HXT/ProtocolHandler default_http--# -------------------------------------------------------------#-# Unicode Codeblocks and Char Properties generated from Unicode DB--./Text/XML/HXT/RelaxNG/Unicode/Blocks.hs ./Text/XML/HXT/RelaxNG/Unicode/CharProps.hs	:-		$(MAKE) -C ./Text/XML/HXT/RelaxNG/Unicode all--# -------------------------------------------------------------#-# hxt package variables and rules--HXT_SRC	= \-	Control/Arrow/ArrowIf.hs \-	Control/Arrow/ArrowIO.hs \-	Control/Arrow/ArrowList.hs \-	Control/Arrow/ArrowNF.hs \-	Control/Arrow/ArrowState.hs \-	Control/Arrow/ArrowTree.hs \-	Control/Arrow/IOListArrow.hs \-	Control/Arrow/IOStateListArrow.hs \-	Control/Arrow/ListArrow.hs \-	Control/Arrow/ListArrows.hs \-	Control/Arrow/StateListArrow.hs \-	Data/AssocList.hs \-	Data/Atom.hs \-	Data/Char/UTF8.hs \-	Data/NavTree.hs \-	Data/Tree/Class.hs \-	Data/Tree/NTree/TypeDefs.hs \-	Text/XML/HXT/Arrow/DocumentInput.hs \-	Text/XML/HXT/Arrow/DocumentOutput.hs \-	Text/XML/HXT/Arrow/DTDProcessing.hs \-	Text/XML/HXT/Arrow/Edit.hs \-	Text/XML/HXT/Arrow/GeneralEntitySubstitution.hs \-	Text/XML/HXT/Arrow.hs \-	Text/XML/HXT/Arrow/Namespace.hs \-	Text/XML/HXT/Arrow/ParserInterface.hs \-	Text/XML/HXT/Arrow/Pickle/DTD.hs \-	Text/XML/HXT/Arrow/Pickle.hs \-	Text/XML/HXT/Arrow/Pickle/Schema.hs \-	Text/XML/HXT/Arrow/Pickle/Xml.hs \-	Text/XML/HXT/Arrow/ProcessDocument.hs \-	Text/XML/HXT/Arrow/ReadDocument.hs \-	Text/XML/HXT/Arrow/WriteDocument.hs \-	Text/XML/HXT/Arrow/XmlArrow.hs \-	Text/XML/HXT/Arrow/XmlIOStateArrow.hs \-	Text/XML/HXT/Arrow/XmlRegex.hs \-	Text/XML/HXT/Arrow/XPath.hs \-	Text/XML/HXT/Arrow/XPathSimple.hs \-	Text/XML/HXT/DOM/FormatXmlTree.hs \-	Text/XML/HXT/DOM/Interface.hs \-	Text/XML/HXT/DOM/IsoLatinTables.hs \-	Text/XML/HXT/DOM/MimeTypeDefaults.hs \-	Text/XML/HXT/DOM/MimeTypes.hs \-	Text/XML/HXT/DOM/QualifiedName.hs \-	Text/XML/HXT/DOM/ShowXml.hs \-	Text/XML/HXT/DOM/TypeDefs.hs \-	Text/XML/HXT/DOM/Unicode.hs \-	Text/XML/HXT/DOM/UTF8Decoding.hs \-	Text/XML/HXT/DOM/Util.hs \-	Text/XML/HXT/DOM/XmlKeywords.hs \-	Text/XML/HXT/DOM/XmlNode.hs \-	Text/XML/HXT/DOM/XmlOptions.hs \-	Text/XML/HXT/DTDValidation/AttributeValueValidation.hs \-	Text/XML/HXT/DTDValidation/DocTransformation.hs \-	Text/XML/HXT/DTDValidation/DocValidation.hs \-	Text/XML/HXT/DTDValidation/DTDValidation.hs \-	Text/XML/HXT/DTDValidation/IdValidation.hs \-	Text/XML/HXT/DTDValidation/RE.hs \-	Text/XML/HXT/DTDValidation/TypeDefs.hs \-	Text/XML/HXT/DTDValidation/Validation.hs \-	Text/XML/HXT/DTDValidation/XmlRE.hs \-	Text/XML/HXT/IO/GetFILE.hs \-	Text/XML/HXT/IO/GetHTTPLibCurl.hs \-	Text/XML/HXT/Parser/HtmlParsec.hs \-	Text/XML/HXT/Parser/ProtocolHandlerUtil.hs \-	Text/XML/HXT/Parser/TagSoup.hs \-	Text/XML/HXT/Parser/XhtmlEntities.hs \-	Text/XML/HXT/Parser/XmlCharParser.hs \-	Text/XML/HXT/Parser/XmlDTDParser.hs \-	Text/XML/HXT/Parser/XmlDTDTokenParser.hs \-	Text/XML/HXT/Parser/XmlEntities.hs \-	Text/XML/HXT/Parser/XmlParsec.hs \-	Text/XML/HXT/Parser/XmlTokenParser.hs \-	Text/XML/HXT/RelaxNG/BasicArrows.hs \-	Text/XML/HXT/RelaxNG/CreatePattern.hs \-	Text/XML/HXT/RelaxNG/DataTypeLibMysql.hs \-	Text/XML/HXT/RelaxNG/DataTypeLibraries.hs \-	Text/XML/HXT/RelaxNG/DataTypeLibUtils.hs \-	Text/XML/HXT/RelaxNG/DataTypes.hs \-	Text/XML/HXT/RelaxNG.hs \-	Text/XML/HXT/RelaxNG/PatternFunctions.hs \-	Text/XML/HXT/RelaxNG/PatternToString.hs \-	Text/XML/HXT/RelaxNG/SchemaGrammar.hs \-	Text/XML/HXT/RelaxNG/Schema.hs \-	Text/XML/HXT/RelaxNG/Simplification.hs \-	Text/XML/HXT/RelaxNG/Unicode/Blocks.hs \-	Text/XML/HXT/RelaxNG/Unicode/CharProps.hs \-	Text/XML/HXT/RelaxNG/Utils.hs \-	Text/XML/HXT/RelaxNG/Validation.hs \-	Text/XML/HXT/RelaxNG/Validator.hs \-	Text/XML/HXT/RelaxNG/XmlSchema/DataTypeLibW3C.hs \-	Text/XML/HXT/RelaxNG/XmlSchema/Regex.hs \-        Text/XML/HXT/RelaxNG/XmlSchema/RegexMatch.hs \-	Text/XML/HXT/RelaxNG/XmlSchema/RegexParser.hs \-	Text/XML/HXT/Version.hs \-	Text/XML/HXT/XPath.hs \-	Text/XML/HXT/XPath/NavTree.hs \-	Text/XML/HXT/XPath/XPathArithmetic.hs \-	Text/XML/HXT/XPath/XPathDataTypes.hs \-	Text/XML/HXT/XPath/XPathEval.hs \-	Text/XML/HXT/XPath/XPathFct.hs \-	Text/XML/HXT/XPath/XPathKeywords.hs \-	Text/XML/HXT/XPath/XPathParser.hs \-	Text/XML/HXT/XPath/XPathToNodeSet.hs \-	Text/XML/HXT/XPath/XPathToString.hs \-	Text/XML/HXT/XSLT/Application.hs \-	Text/XML/HXT/XSLT/Common.hs \-	Text/XML/HXT/XSLT/Compilation.hs \-	Text/XML/HXT/XSLT/CompiledStylesheet.hs \-	Text/XML/HXT/XSLT/Names.hs \-	Text/XML/HXT/XSLT/XsltArrows.hs--# no longer in use	System/PipeOpen.hs-# no longer in use	Text/XML/HXT/IO/GetHTTPNative.hs-# no longer in use	Text/XML/HXT/IO/GetHTTPCurl.hs--Text/XML/HXT/Version.hs	: ../Version.mk Makefile-		( echo "module Text.XML.HXT.Version" \-		; echo "where" \-		; echo "hxt_version :: String" \-		; echo "hxt_version = \"$(VERSION)\"" \-		) > $@--HXT_OBJ		= $(HXT_SRC:.hs=.o)-HXT_HI		= $(HXT_SRC:.hs=.hi)--HXT_DRIVER	= HXT.o-HXT_LIBA	= libHS$(HXT_PACKAGE).a-HXT_LIBO	= HS$(HXT_PACKAGE).o-HXT_LIB		= $(HXT_LIBA) $(HXT_LIBO)-HXT_REQ_PKG	= -package parsec -package curl -package tagsoup--$(HXT_LIBA)	: $(HXT_SRC)-		$(GHC) -package-name $(HXT_PACKAGE_NAME) $(HXT_REQ_PKG) --make $(HXT_DRIVER:.o=.hs)-		ar crs $@ $(HXT_OBJ)-		@echo "#  please note: !! GNU ar (at least 2.15.90) does not set exit code on missing .o files !!"--$(HXT_LIBO)	: $(HXT_LIBA)-		ld -r --whole-archive -o $@ $<--# -------------------------------------------------------------#---PROFFLAGS	= -Wall -fglasgow-exts $(HXT_REQ_PKG) -prof -auto -ignore-package hxt -ignore-package HTTP -i../profiling--prof		:-		ghc $(PROFFLAGS) --make $(HXT_DRIVER:.o=.hs)--# -------------------------------------------------------------#-# under construction: XSLT--XSLT_SRC	= $(wildcard ./Text/XML/HXT/XSLT/*.hs)-XSLT_DRIVER	= ./Text/XML/HXT/XSLT/XSLT.o--xslt		: $(XSLT_DRIVER)--$(XSLT_DRIVER)	: $(XSLT_SRC)-		$(GHC) -package-name $(HXT_PACKAGE) $(HXT_REQ_PKG) --make $*--# --------------------------------------------------------------LOCAL_INSTALL_DIR	= $(PACKAGE_DIR)-LOCAL_IMPORT_DIR	= $(PACKAGE_DIR)/$(IMPORT_DIR)--PKG_LIB		= -PKG_NAME	=-PKG_HI		=--install_local_$(HXT_PACKAGE)	: $(HXT_LIB) hxt-package.conf-		$(MAKE) install_local_package PKG_NAME=$(HXT_PACKAGE) PKG_LIB="$(HXT_LIB)" PKG_HI="$(HXT_HI)"--install_local_package	: $(PKG_NAME)-package.conf-		[ -d $(LOCAL_INSTALL_DIR) ] || mkdir -p $(LOCAL_INSTALL_DIR)-		[ -d $(LOCAL_IMPORT_DIR)  ] || mkdir -p $(LOCAL_IMPORT_DIR)-		cp -f  $(PKG_LIB)    $(LOCAL_INSTALL_DIR)-		tar cvf - $(PKG_HI) | ( cd $(LOCAL_IMPORT_DIR) ; tar xf - )-		[ -f $(LOCAL_INSTALL_DIR)/package.conf ] || echo "[]" > $(LOCAL_INSTALL_DIR)/package.conf-		cat $(PKG_NAME)-package.conf \-		| ghc-pkg update - --package-conf=$(LOCAL_INSTALL_DIR)/package.conf-		@echo use package with: ghc\(i\) ... -package-conf $(LOCAL_INSTALL_DIR)/package.conf -package $(PKG_NAME) ...--GHC_INSTALL	= $(shell ghc -v 2>&1 | head -n 2 | tail -n 1 | cut -d " " -f 5 | sed 's|/package.conf||')-GHC_INSTALL_DIR	= $(GHC_INSTALL)/hxt-GHC_PKG_CONF	=--install		: hxt-package.conf-		@[ -d $(GHC_INSTALL)     ] || ( echo "ghc install dir not found"       1>&2 ; exit 1 )-		@[ -w $(GHC_INSTALL)     ] || ( echo "you need root access for this target" ; exit 1 )-		[ -d $(GHC_INSTALL_DIR) ] || mkdir -p $(GHC_INSTALL_DIR)-		cp -r $(LOCAL_INSTALL_DIR)/*.[ao] $(LOCAL_INSTALL_DIR)/imports $(GHC_INSTALL_DIR)-		$(MAKE) install_packages-		@echo-		@echo use package with: ghc\(i\) ... -package $(HXT_PACKAGE) ...--uninstall	:-		@[ -d $(GHC_INSTALL) ] || ( echo "ghc install dir not found"       1>&2 ; exit 1 )-		@[ -w $(GHC_INSTALL) ] || ( echo "you need root access for this target" ; exit 1 )-		$(MAKE) uninstall_packages-		rm -rf $(GHC_INSTALL_DIR)--# --------------------------------------------------------------all		:-		$(MAKE) install_local_$(HXT_PACKAGE)--hxt-package.conf	: hxt-package.hs-		ghc -o hxt-package hxt-package.hs-		./hxt-package $(VERSION) "ghc" $(LOCAL_INSTALL_DIR) $(HXT_SRC) > $@--../hxt.cabal	: hxt-package.hs Makefile ../Makefile-		ghc -o hxt-package hxt-package.hs-		./hxt-package $(VERSION) "cabal" $(GHC_INSTALL_DIR) $(HXT_SRC) > $@--install_packages	:-		runghc hxt-package.hs $(VERSION) "ghc" $(GHC_INSTALL_DIR) $(HXT_SRC) \-		| ghc-pkg update ---uninstall_packages	:-		ghc-pkg --remove-package $(HXT_PACKAGE) || true--clean_packages	:-		$(MAKE) clean_$(HXT_PACKAGE)--clean		:-		$(MAKE) clean_packages-		rm -rf $(LOCAL_INSTALL_DIR) hxt-package hxt-package.conf ../hxt.cabal--clean_$(HXT_PACKAGE)	:-		$(RM) $(HXT_DRIVER) $(HXT_DRIVER:.o=.hi) $(HXT_OBJ) $(HXT_HI) $(HXT_LIB)--# --------------------------------------------------------------doc           : $(HXT_SRC)-		[ -d $(HDOC_DIR) ] || mkdir -p $(HDOC_DIR)-		$(HDOC) -t "Haskell Xml Toolbox $(VERSION): The complete API" -o $(HDOC_DIR) $(HXT_SRC)--# --------------------------------------------------------------DIST		= ../$(DIST_NAME)-DIST_DIR	= $(DIST)/src-DIST_FILES	= Makefile \-		  $(HXT_SRC) $(HXT_DRIVER:.o=.hs) hxt-package.hs \-		  $(wildcard ./Text/XML/HXT/RelaxNG/Unicode/G*.hs) \-		  $(wildcard ./Text/XML/HXT/RelaxNG/Unicode/Makefile) \-		  $(wildcard ./Text/XML/HXT/RelaxNG/Unicode/*.txt)--dist		:-		[ -d $(DIST_DIR) ] || mkdir -p $(DIST_DIR)-		tar cvf - $(DIST_FILES) | ( cd $(DIST_DIR) ; tar xf - )--.PHONY		: all install doc clean dist--# eof ------------------------------------------------------------
src/Text/XML/HXT/Arrow.hs view
@@ -2,13 +2,12 @@  {- |    Module     : Text.XML.HXT.Arrow-   Copyright  : Copyright (C) 2006 Uwe Schmidt+   Copyright  : Copyright (C) 2006-2010 Uwe Schmidt    License    : MIT     Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-   Stability  : experimental+   Stability  : stable    Portability: portable-   Version    : $Id: Arrow.hs,v 1.12 2006/11/11 15:36:04 hxml Exp $     The HXT arrow interface @@ -39,8 +38,6 @@     , module Text.XML.HXT.Arrow.WriteDocument     , module Text.XML.HXT.Arrow.Pickle -    , module Text.XML.HXT.XSLT.XsltArrows-     , module Text.XML.HXT.Version     ) where@@ -65,9 +62,6 @@ import Text.XML.HXT.Arrow.XPath  import Text.XML.HXT.Arrow.XPathSimple ()	-- import this explicitly---import Text.XML.HXT.XSLT.XsltArrows  import Text.XML.HXT.Version 
src/Text/XML/HXT/Arrow/DocumentInput.hs view
@@ -33,7 +33,6 @@ import Control.Arrow.ListArrow  import Data.List				( isPrefixOf )-import Data.Maybe  import System.FilePath				( takeExtension ) 
src/Text/XML/HXT/Arrow/DocumentOutput.hs view
@@ -31,43 +31,38 @@ import Control.Arrow.ArrowIO import Control.Arrow.ListArrow -import Text.XML.HXT.DOM.Unicode-    ( getOutputEncodingFct )-+import Text.XML.HXT.DOM.Unicode			( getOutputEncodingFct ) import Text.XML.HXT.DOM.Interface  import Text.XML.HXT.Arrow.XmlArrow import Text.XML.HXT.Arrow.XmlIOStateArrow -import Text.XML.HXT.Arrow.Edit-    ( addHeadlineToXmlDoc-    , addXmlPi-    , addXmlPiEncoding-    , indentDoc-    , numberLinesInXmlDoc-    , treeRepOfXmlDoc-    )--import Data.Maybe+import Text.XML.HXT.Arrow.Edit			( addHeadlineToXmlDoc+						, addXmlPi+						, addXmlPiEncoding+						, indentDoc+						, numberLinesInXmlDoc+						, treeRepOfXmlDoc+						) -import System.IO-    ( Handle-    , IOMode(..)-    , openFile-    , hPutStrLn-    , hClose-    , stdout-    )+import System.IO				( Handle+						, IOMode(..)+						, openFile+						, openBinaryFile+                                                , hSetBinaryMode+						, hPutStrLn+						, hClose+						, stdout+						) -import System.IO.Error-    ( try )+import System.IO.Error				( try )  -- ------------------------------------------------------------ -- -- output arrows -putXmlDocument	:: String -> IOStateArrow s XmlTree XmlTree-putXmlDocument dst+putXmlDocument	:: Bool -> String -> IOStateArrow s XmlTree XmlTree+putXmlDocument textMode dst     = perform ( xshow getChildren 		>>> 		arrIO (\ s -> try ( hPutDocument (\h -> hPutStrLn h s)))@@ -92,13 +87,19 @@ 		  then "stdout" 		       else show dst -      hPutDocument	:: (Handle -> IO()) -> IO()+      hPutDocument	:: (Handle -> IO ()) -> IO ()       hPutDocument action 	  | isStdout-	      = action stdout+	      = do+                hSetBinaryMode stdout (not textMode)+                action stdout+                hSetBinaryMode stdout False 	  | otherwise 	      = do-		handle <- openFile dst WriteMode+		handle <- ( if textMode+			    then openFile+			    else openBinaryFile+			  ) dst WriteMode 		action handle 		hClose handle @@ -111,7 +112,7 @@ 		>>> 		addHeadlineToXmlDoc 	        >>>-		putXmlDocument dst+		putXmlDocument True dst 	      )  -- |@@ -127,7 +128,7 @@ 		>>> 		addHeadlineToXmlDoc 	        >>>-		putXmlDocument dst+		putXmlDocument True dst 	      )  -- ------------------------------------------------------------
src/Text/XML/HXT/Arrow/GeneralEntitySubstitution.hs view
@@ -42,13 +42,12 @@     ( getXmlEntityContents     ) -import Data.Maybe- import qualified Data.Map as M     ( Map     , empty     , lookup-    , insert)+    , insert+    )  -- ------------------------------------------------------------ 
src/Text/XML/HXT/Arrow/ReadDocument.hs view
@@ -29,7 +29,6 @@ import Control.Arrow.ListArrows  import Text.XML.HXT.DOM.Interface-import Text.XML.HXT.DOM.Util			( stringToLower ) import Text.XML.HXT.Arrow.XmlArrow import Text.XML.HXT.Arrow.XmlIOStateArrow 
src/Text/XML/HXT/Arrow/WriteDocument.hs view
@@ -139,12 +139,14 @@ 		>>> 		prepareContents userOptions encodeDocument 		>>>-		putXmlDocument dst+		putXmlDocument textMode dst 		>>> 		traceMsg 1 "writeDocument: finished" 	      )       `when`       documentStatusOk+    where+    textMode	= optionIsSet a_text_mode userOptions  -- ------------------------------------------------------------ 
src/Text/XML/HXT/Arrow/XmlIOStateArrow.hs view
@@ -135,7 +135,7 @@ import Control.Arrow.IOStateListArrow  import Control.Monad				( mplus )-import Control.Parallel.Strategies+import Control.DeepSeq  import Text.XML.HXT.DOM.Interface import Text.XML.HXT.Arrow.XmlArrow
src/Text/XML/HXT/DOM/MimeTypes.hs view
@@ -28,8 +28,6 @@ import qualified Data.Map		as M import           Data.Maybe -import           System.IO- import           Text.XML.HXT.DOM.MimeTypeDefaults  -- ------------------------------------------------------------
src/Text/XML/HXT/DOM/QualifiedName.hs view
@@ -83,13 +83,12 @@ import           Control.Arrow                  ( (***) )  import           Control.Concurrent.MVar-import           Control.Parallel.Strategies+import           Control.DeepSeq  import           Data.AssocList import           Data.Char                      ( toLower ) import           Data.List                      ( isPrefixOf ) import qualified Data.Map               as M-import           Data.Maybe import           Data.Typeable  import           System.IO.Unsafe               ( unsafePerformIO )@@ -509,7 +508,7 @@ -- | insert a bytestring into the atom cache  insertAtom      :: String -> Atoms -> (Atoms, Atom)-insertAtom s m  = maybe (M.insert {- (trace (show s) s) -} s s m, A s `demanding` rnf s)+insertAtom s m  = maybe (M.insert {- (trace (show s) s) -} s s m, deepseq s (A s))                         (\ s' -> (m, A s'))                   .                   M.lookup s $ m
src/Text/XML/HXT/DOM/TypeDefs.hs view
@@ -25,7 +25,7 @@  where -import Control.Parallel.Strategies+import Control.DeepSeq  import Data.AssocList import Data.Tree.NTree.TypeDefs@@ -117,7 +117,7 @@ 		                -- 				--  for lists of names in notation types or nmtokens in enumeration types 		| PEREF		-- ^ for Parameter Entity References in DTDs-		  deriving (Eq, Ord, Show, Read, Typeable)+		  deriving (Eq, Ord, Enum, Show, Read, Typeable)  instance NFData DTDElem 
src/Text/XML/HXT/DOM/XmlKeywords.hs view
@@ -84,6 +84,7 @@  a_standalone,  a_strict_input,  a_tagsoup,+ a_text_mode,  a_trace,  a_type,  a_use_curl,@@ -198,6 +199,7 @@ a_status			= "status" a_strict_input			= "strict-input" a_tagsoup			= "tagsoup"+a_text_mode			= "text-mode" a_trace				= "trace" a_type				= "type" a_url				= "url"
src/Text/XML/HXT/DOM/XmlOptions.hs view
@@ -120,6 +120,7 @@       , Option ""       [a_no_empty_elem_for]   (ReqArg (att a_no_empty_elem_for) "NAMES")      "output of empty elements done in format <elem...></elem> only for given list of element names"       , Option ""       [a_no_empty_elements]   (NoArg  (att a_no_empty_elements     v_1))      "output of empty elements done in format <elem...></elem> instead of <elem/>"       , Option ""       [a_add_default_dtd]     (NoArg  (att a_add_default_dtd       v_1))      "add the document type declaration given in the input document"+      , Option ""       [a_text_mode]		(NoArg  (att a_text_mode             v_1))	"output in text mode"       ]     where     att n v	= (n, v)
src/Text/XML/HXT/DTDValidation/AttributeValueValidation.hs view
@@ -40,7 +40,7 @@  import Text.XML.HXT.DTDValidation.TypeDefs -import Text.XML.HXT.DOM.Util+-- ------------------------------------------------------------  -- | -- Checks if the attribute value meets the lexical constraints of its type.
src/Text/XML/HXT/DTDValidation/DocValidation.hs view
@@ -34,8 +34,6 @@ import Text.XML.HXT.DTDValidation.AttributeValueValidation import Text.XML.HXT.DTDValidation.XmlRE -import Data.Maybe- -- ------------------------------------------------------------  -- |
src/Text/XML/HXT/DTDValidation/TypeDefs.hs view
@@ -41,7 +41,6 @@ import Text.XML.HXT.Arrow.XmlArrow  import           Text.XML.HXT.DOM.Interface-import qualified Text.XML.HXT.DOM.XmlNode as XN  -- ------------------------------------------------------------ 
src/Text/XML/HXT/IO/GetFILE.hs view
@@ -29,7 +29,7 @@ 					)  import           System.IO		( IOMode(..)-					, openFile+					, openBinaryFile 					  -- , getContents  is defined in the prelude 					, hGetContents 					)@@ -86,7 +86,7 @@ 					   cb <- B.readFile fn 					   return (C.unpack cb) 				      else do-					   h <- openFile fn ReadMode+					   h <- openBinaryFile fn ReadMode 					   hGetContents h 			      return (either readErr Right c)     where
src/Text/XML/HXT/IO/GetHTTPLibCurl.hs view
@@ -59,7 +59,7 @@     = do       i <- takeMVar isInitCurl       when (not i) ( do-		     curl_global_init 3+		     _ <- curl_global_init 3 		     return () 		   )       putMVar isInitCurl True
src/Text/XML/HXT/Parser/HtmlParsec.hs view
@@ -136,7 +136,7 @@ 	       <|> 	       ( do 		 pos <- getPosition-		 try (string "<?")+		 _ <- try (string "<?") 		 return $ [mkError c_warn (show pos ++ " wrong XML declaration")] 	       ) 	     )@@ -146,7 +146,7 @@ 		   <|> 		   ( do 		     pos <- getPosition-		     try (upperCaseString "<!DOCTYPE")+		     _ <- try (upperCaseString "<!DOCTYPE") 		     return $ [mkError c_warn (show pos ++ " HTML DOCTYPE declaration ignored")] 		   ) 		 )@@ -169,7 +169,7 @@ externalID	:: Parser Attributes externalID     = do-      try (upperCaseString k_public)+      _ <- try (upperCaseString k_public)       skipS       pl <- pubidLiteral       sl <- option "" $ try ( do@@ -251,7 +251,7 @@ hCloseTag context     = do       n <- try ( do-		 string "</"+		 _ <- string "</" 		 lowerCaseName 	       )       skipS0@@ -270,7 +270,7 @@ hOpenTagStart     = do       n <- try ( do-		 char '<'+		 _ <- char '<' 		 n <- lowerCaseName 		 return n 	       )@@ -281,7 +281,7 @@ hOpenTagRest	:: SourcePos -> (String, XmlTrees) -> Context -> Parser Context hOpenTagRest pos (tn, al) context     = ( do-	try $ string "/>"+	_ <- try $ string "/>" 	return (addHtmlTag tn al [] context)       )       <|>@@ -336,7 +336,7 @@     = try referenceT       <|>       ( do-	char '&'+	_ <- char '&' 	return (mkText "&")       ) @@ -363,7 +363,7 @@       pos <- getPosition       option (addHtmlWarn (show pos ++ " " ++ msg) context)        ( do -	 try p+	 _ <- try p 	 return context        ) 
src/Text/XML/HXT/Parser/ProtocolHandlerUtil.hs view
@@ -46,10 +46,10 @@ 			    rtMT mt 			  ) 	      charset  <- ( do-			    P.char ';'-			    P.many  (P.oneOf " \t'")-			    P.string "charset="-			    P.option '"' (P.oneOf "\"'")+			    _ <- P.char ';'+			    _ <- P.many  (P.oneOf " \t'")+			    _ <- P.string "charset="+			    _ <- P.option '"' (P.oneOf "\"'") 			    cs <- P.many1 (P.noneOf "\"'") 			    return [ (transferEncoding, stringToUpper cs) ] 			  )
src/Text/XML/HXT/Parser/TagSoup.hs view
@@ -366,11 +366,11 @@ 				return (warn w ++ rl) 			      ) 		  ( cond isPos ( do-				 getPos+				 _ <- getPos 				 buildCont ns 			       ) 		    ( cond isEof ( do-				   isEof+				   _ <- isEof 				   closeAll ns 				 ) 		      ( return (warn "parse error in tagsoup tree construction")
src/Text/XML/HXT/Parser/XmlDTDParser.hs view
@@ -31,10 +31,10 @@ import Text.ParserCombinators.Parsec import Text.ParserCombinators.Parsec.Pos -import Text.XML.HXT.DOM.Interface	-- XmlTree              hiding (choice)-import Text.XML.HXT.DOM.Util-    ( stringToUpper-    )+import Text.XML.HXT.DOM.Interface+++ import Text.XML.HXT.DOM.ShowXml     ( xshow     )@@ -94,7 +94,7 @@  delPE	:: SParser () delPE	= do-	  char '\0'+	  _ <- char '\0' 	  return ()  startPE	:: SParser ()@@ -130,7 +130,7 @@  xmlSpaceChar	:: SParser () xmlSpaceChar	= ( do-		    XC.xmlSpaceChar+		    _ <- XC.xmlSpaceChar 		    return () 		  ) 		  <|>@@ -194,7 +194,7 @@     where     simplespec kw v 	= do-	  XT.keyword kw+	  _ <- XT.keyword kw 	  return ([(a_type, v)], [])  -- ------------------------------------------------------------@@ -278,10 +278,10 @@ mixed		:: SParser (Attributes, XmlTrees) mixed     = ( do-	try ( do-	      lpar-	      string k_pcdata-	    )+	_ <- try ( do+		   lpar+		   string k_pcdata+		 ) 	nl <- many ( do 		     bar 		     name@@ -289,12 +289,12 @@ 	rpar 	if null nl           then do-	       option ' ' (char '*')		-- (#PCDATA) or (#PCDATA)* , both are legal+	       _ <- option ' ' (char '*')		-- (#PCDATA) or (#PCDATA)* , both are legal 	       return ( [ (a_type, v_pcdata) ] 		      , [] 		      ) 	  else do-	       char '*' <?> "closing parent for mixed content (\")*\")"+	       _ <- char '*' <?> "closing parent for mixed content (\")*\")" 	       return ( [ (a_type, v_mixed) ] 		      , [ mkDTDElem CONTENT [ (a_modifier, "*") 					     , (a_kind, v_choice)@@ -371,7 +371,7 @@ notationType	:: SParser (Attributes, XmlTrees) notationType     = do-      XT.keyword k_notation+      _ <- XT.keyword k_notation       skipS       nl <- inSamePE (between lpar rpar ( sepBy1 name bar ))       return ([(a_type, k_notation)], nl)@@ -397,7 +397,7 @@     where     fixed = option [(a_kind, k_default)] 	    ( do-	      try $ string k_fixed+	      _ <- try $ string k_fixed 	      skipS 	      return [(a_kind, k_fixed)] 	    )@@ -444,7 +444,7 @@ peDecl			:: SParser XmlTrees peDecl     = do-      char '%'+      _ <- char '%'       skipS       n <- XT.name       skipS@@ -473,14 +473,14 @@ externalID	:: SParser Attributes externalID     = ( do-	XT.keyword k_system+	_ <- XT.keyword k_system 	skipS 	lit <- XT.systemLiteral 	return [(k_system, lit)]       )       <|>       ( do-	XT.keyword k_public+	_ <- XT.keyword k_public 	skipS 	pl <- XT.pubidLiteral 	skipS@@ -493,10 +493,10 @@ nDataDecl	:: SParser Attributes nDataDecl     = do-      try ( do-	    skipS-	    XT.keyword k_ndata-	  )+      _ <- try ( do+		 skipS+		 XT.keyword k_ndata+	       )       skipS       n <- XT.name       return [(k_ndata, n)]@@ -525,7 +525,7 @@ publicID		:: SParser Attributes publicID     = do-      XT.keyword k_public+      _ <- XT.keyword k_public       skipS       l <- XT.pubidLiteral       return [(k_public, l)]@@ -548,10 +548,10 @@ separator	:: Char -> SParser () separator c     = do-      try ( do-	    skipS0-	    char c-	  )+      _ <- try ( do+		 skipS0+		 char c+	       )       skipS0       <?> [c] @@ -563,13 +563,13 @@  lpar     = do-      char '('+      _ <- char '('       skipS0  rpar     = do       skipS0-      char ')'+      _ <- char ')'       return ()  
src/Text/XML/HXT/Parser/XmlDTDTokenParser.hs view
@@ -18,17 +18,12 @@  module Text.XML.HXT.Parser.XmlDTDTokenParser where -import Text.ParserCombinators.Parsec-import Text.ParserCombinators.Parsec.Pos---- import           Text.XML.HXT.DOM.XmlTree		hiding (choice)--import Text.XML.HXT.DOM.Interface+import           Text.ParserCombinators.Parsec -import Text.XML.HXT.DOM.XmlNode-    ( mkDTDElem-    , mkText-    )+import           Text.XML.HXT.DOM.Interface+import           Text.XML.HXT.DOM.XmlNode		( mkDTDElem+							, mkText+							) import qualified Text.XML.HXT.Parser.XmlTokenParser	as XT  -- ------------------------------------------------------------@@ -56,8 +51,8 @@     dtdStart	:: String -> DTDElem -> GenParser Char state (DTDElem, Attributes)     dtdStart dcl element 	= try ( do-		string "<!"-		string dcl+		_ <- string "<!"+		_ <- string dcl 		pos <- getPosition 		return (element, [ (a_source, sourceName pos) 				 , (a_line,   show (sourceLine pos))@@ -69,7 +64,7 @@ dtdDeclEnd	:: GenParser Char state () dtdDeclEnd     = do-      XT.gt+      _ <- XT.gt       return ()  dtdToken	:: GenParser Char state XmlTree
src/Text/XML/HXT/Parser/XmlParsec.hs view
@@ -147,7 +147,7 @@       ( do 	n <- pITarget 	p <- option "" (do-			XT.sPace+			_ <- XT.sPace 			XT.allBut many "?>" 		       ) 	return $ mkPi (mkName n) [mkAttr (mkName a_value) [mkText p]]@@ -231,10 +231,10 @@ versionInfo	:: GenParser Char state XmlTrees versionInfo     = ( do-	try ( do-	      XT.skipS-	      XT.keyword a_version-	    )+	_ <- try ( do+		   XT.skipS+		   XT.keyword a_version+		 ) 	XT.eq 	vi <- XT.quoted XT.versionNum 	return [mkAttr (mkName a_version) [mkText vi]]@@ -316,10 +316,10 @@ sDDecl		:: GenParser Char state XmlTrees sDDecl     = do-      try (do-	   XT.skipS-	   XT.keyword a_standalone-	  )+      _ <- try (do+		XT.skipS+		XT.keyword a_standalone+	       )       XT.eq       sd <- XT.quoted (XT.keywords [v_yes, v_no])       return [mkAttr (mkName a_standalone) [mkText sd]]@@ -339,7 +339,7 @@ elementStart     = do       n <- ( try ( do-		   char '<'+		   _ <- char '<' 		   n <- XT.name 		   return n 		 )@@ -367,12 +367,12 @@ elementRest	:: (String, [(String, XmlTrees)]) -> GenParser Char state XmlTree elementRest (n, al)     = ( do-	try $ string "/>"+	_ <- try $ string "/>" 	return $! (mkElement (mkName n) (map (mkA $!) al) [])       )       <|>       ( do-	XT.gt+	_ <- XT.gt 	c <- content 	eTag n 	return $! (mkElement (mkName n) (map (mkA $!) al) $! c)@@ -384,10 +384,10 @@ eTag		:: String -> GenParser Char state () eTag n'     = do-      try ( string "</" ) <?> ""+      _ <- try ( string "</" ) <?> ""       n <- XT.name       XT.skipS0-      XT.gt+      _ <- XT.gt       if n == n' 	 then return () 	 else unexpected ("illegal end tag </" ++ n ++ "> found, </" ++ n' ++ "> expected")@@ -422,7 +422,7 @@ contentWithTextDecl	:: GenParser Char state XmlTrees contentWithTextDecl     = do-      option [] textDecl+      _ <- option [] textDecl       content  -- ------------------------------------------------------------@@ -436,9 +436,9 @@ conditionalSect		:: GenParser Char state XmlTree conditionalSect     = do-      try $ string "<!["+      _ <- try $ string "<!["       cs <- many XD.dtdToken-      char '['+      _ <- char '['       sect <- condSectCont       return (mkDTDElem CONDSECT [(a_value, sect)] cs)     where@@ -446,12 +446,12 @@     condSectCont	:: GenParser Char state String     condSectCont 	= ( do-	    try $ string "]]>"+	    _ <- try $ string "]]>" 	    return "" 	  )           <|> 	  ( do-	    try $ string "<!["+	    _ <- try $ string "<![" 	    cs1 <- condSectCont 	    cs2 <- condSectCont 	    return ("<![" ++ cs1 ++ "]]>" ++ cs2)@@ -470,14 +470,14 @@ externalID	:: GenParser Char state Attributes externalID     = ( do-	XT.keyword k_system+	_ <- XT.keyword k_system 	XT.skipS 	lit <- XT.systemLiteral 	return [(k_system, lit)]       )       <|>       ( do-	XT.keyword k_public+	_ <- XT.keyword k_public 	XT.skipS 	pl <- XT.pubidLiteral 	XT.skipS@@ -516,10 +516,10 @@ encodingDecl	:: GenParser Char state XmlTrees encodingDecl     = do-      try (do-	   XT.skipS-	   XT.keyword a_encoding-	  )+      _ <- try ( do+		 XT.skipS+		 XT.keyword a_encoding+	       )       XT.eq       ed <- XT.quoted XT.encName       return [mkAttr (mkName a_encoding) [mkText ed]]@@ -587,12 +587,9 @@     where     parser :: Parser String     parser = do-	     option [] textDecl+	     _ <- option [] textDecl 	     getInput-{--removeEncodingSpec n-    = [n]--}+ -- ------------------------------------------------------------  -- |
src/Text/XML/HXT/Parser/XmlTokenParser.hs view
@@ -96,11 +96,6 @@     , intToCharRefHex     ) -import Text.XML.HXT.DOM.Util-    ( hexStringToInt-    , decimalStringToInt-    )- import Text.XML.HXT.Parser.XmlCharParser     ( xmlNameChar     , xmlNameStartChar@@ -171,7 +166,7 @@     = do       s1 <- ncName       s2 <- option "" ( do-			char ':'+			_ <- char ':' 			ncName 		      )       return ( if null s2 then (s2, s1) else (s1, s2) )@@ -288,15 +283,15 @@ charRef		:: GenParser Char state Int charRef     = do-      try (string "&#x")+      _ <- try (string "&#x")       d <- many1 hexDigit-      semi+      _ <- semi       checkCharRef (hexStringToInt d)       <|>       do-      try (string "&#")+      _ <- try (string "&#")       d <- many1 digit-      semi+      _ <- semi       checkCharRef (decimalStringToInt d)       <?> "character reference" @@ -304,18 +299,18 @@ entityRef	:: GenParser Char state String entityRef     = do-      char '&'+      _ <- char '&'       n <- name-      semi+      _ <- semi       return n       <?> "entity reference"  peReference	:: GenParser Char state String peReference     = try ( do-	    char '%'+	    _ <- char '%' 	    n <- name-	    semi+	    _ <- semi 	    return n 	  )       <?> "parameter-entity reference"@@ -379,10 +374,10 @@ separator	:: Char -> GenParser Char state () separator c     = do-      try ( do-	    skipS0-	    char c-	  )+      _ <- try ( do+		 skipS0+		 char c+	       )       skipS0       <?> [c] @@ -394,13 +389,13 @@  lpar     = do-      char '('+      _ <- char '('       skipS0  rpar     = do       skipS0-      char ')'+      _ <- char ')'       return ()  @@ -417,9 +412,9 @@     = p ( satisfy (\ x -> isXmlChar x && prd x && not (x == c) ) 	  <|> 	  try ( do-		char c+		_ <- char c 		notFollowedBy ( do-				try (string rest)+				_ <- try (string rest) 				return c 			      ) 		return c
src/Text/XML/HXT/RelaxNG/DataTypeLibUtils.hs view
@@ -51,7 +51,6 @@ import Control.Category import Control.Arrow -import Data.Either import Data.Maybe  import Text.XML.HXT.DOM.Util
src/Text/XML/HXT/RelaxNG/Unicode/Blocks.hs view
@@ -24,7 +24,7 @@  -- ------------------------------------------------------------ -codeBlocks	:: [(String, (Char, Char))]+codeBlocks        :: [(String, (Char, Char))] codeBlocks =     [ ( "BasicLatin",	( '\x0000', '\x007F') )     , ( "Latin-1Supplement",	( '\x0080', '\x00FF') )@@ -43,6 +43,7 @@     , ( "ArabicSupplement",	( '\x0750', '\x077F') )     , ( "Thaana",	( '\x0780', '\x07BF') )     , ( "NKo",	( '\x07C0', '\x07FF') )+    , ( "Samaritan",	( '\x0800', '\x083F') )     , ( "Devanagari",	( '\x0900', '\x097F') )     , ( "Bengali",	( '\x0980', '\x09FF') )     , ( "Gurmukhi",	( '\x0A00', '\x0A7F') )@@ -71,12 +72,18 @@     , ( "Tagbanwa",	( '\x1760', '\x177F') )     , ( "Khmer",	( '\x1780', '\x17FF') )     , ( "Mongolian",	( '\x1800', '\x18AF') )+    , ( "UnifiedCanadianAboriginalSyllabicsExtended",	( '\x18B0', '\x18FF') )     , ( "Limbu",	( '\x1900', '\x194F') )     , ( "TaiLe",	( '\x1950', '\x197F') )     , ( "NewTaiLue",	( '\x1980', '\x19DF') )     , ( "KhmerSymbols",	( '\x19E0', '\x19FF') )     , ( "Buginese",	( '\x1A00', '\x1A1F') )+    , ( "TaiTham",	( '\x1A20', '\x1AAF') )     , ( "Balinese",	( '\x1B00', '\x1B7F') )+    , ( "Sundanese",	( '\x1B80', '\x1BBF') )+    , ( "Lepcha",	( '\x1C00', '\x1C4F') )+    , ( "OlChiki",	( '\x1C50', '\x1C7F') )+    , ( "VedicExtensions",	( '\x1CD0', '\x1CFF') )     , ( "PhoneticExtensions",	( '\x1D00', '\x1D7F') )     , ( "PhoneticExtensionsSupplement",	( '\x1D80', '\x1DBF') )     , ( "CombiningDiacriticalMarksSupplement",	( '\x1DC0', '\x1DFF') )@@ -112,6 +119,7 @@     , ( "GeorgianSupplement",	( '\x2D00', '\x2D2F') )     , ( "Tifinagh",	( '\x2D30', '\x2D7F') )     , ( "EthiopicExtended",	( '\x2D80', '\x2DDF') )+    , ( "CyrillicExtended-A",	( '\x2DE0', '\x2DFF') )     , ( "SupplementalPunctuation",	( '\x2E00', '\x2E7F') )     , ( "CJKRadicalsSupplement",	( '\x2E80', '\x2EFF') )     , ( "KangxiRadicals",	( '\x2F00', '\x2FDF') )@@ -132,11 +140,27 @@     , ( "CJKUnifiedIdeographs",	( '\x4E00', '\x9FFF') )     , ( "YiSyllables",	( '\xA000', '\xA48F') )     , ( "YiRadicals",	( '\xA490', '\xA4CF') )+    , ( "Lisu",	( '\xA4D0', '\xA4FF') )+    , ( "Vai",	( '\xA500', '\xA63F') )+    , ( "CyrillicExtended-B",	( '\xA640', '\xA69F') )+    , ( "Bamum",	( '\xA6A0', '\xA6FF') )     , ( "ModifierToneLetters",	( '\xA700', '\xA71F') )     , ( "LatinExtended-D",	( '\xA720', '\xA7FF') )     , ( "SylotiNagri",	( '\xA800', '\xA82F') )+    , ( "CommonIndicNumberForms",	( '\xA830', '\xA83F') )     , ( "Phags-pa",	( '\xA840', '\xA87F') )+    , ( "Saurashtra",	( '\xA880', '\xA8DF') )+    , ( "DevanagariExtended",	( '\xA8E0', '\xA8FF') )+    , ( "KayahLi",	( '\xA900', '\xA92F') )+    , ( "Rejang",	( '\xA930', '\xA95F') )+    , ( "HangulJamoExtended-A",	( '\xA960', '\xA97F') )+    , ( "Javanese",	( '\xA980', '\xA9DF') )+    , ( "Cham",	( '\xAA00', '\xAA5F') )+    , ( "MyanmarExtended-A",	( '\xAA60', '\xAA7F') )+    , ( "TaiViet",	( '\xAA80', '\xAADF') )+    , ( "MeeteiMayek",	( '\xABC0', '\xABFF') )     , ( "HangulSyllables",	( '\xAC00', '\xD7AF') )+    , ( "HangulJamoExtended-B",	( '\xD7B0', '\xD7FF') )     , ( "HighSurrogates",	( '\xD800', '\xDB7F') )     , ( "HighPrivateUseSurrogates",	( '\xDB80', '\xDBFF') )     , ( "LowSurrogates",	( '\xDC00', '\xDFFF') )@@ -156,6 +180,10 @@     , ( "LinearBIdeograms",	( '\x10080', '\x100FF') )     , ( "AegeanNumbers",	( '\x10100', '\x1013F') )     , ( "AncientGreekNumbers",	( '\x10140', '\x1018F') )+    , ( "AncientSymbols",	( '\x10190', '\x101CF') )+    , ( "PhaistosDisc",	( '\x101D0', '\x101FF') )+    , ( "Lycian",	( '\x10280', '\x1029F') )+    , ( "Carian",	( '\x102A0', '\x102DF') )     , ( "OldItalic",	( '\x10300', '\x1032F') )     , ( "Gothic",	( '\x10330', '\x1034F') )     , ( "Ugaritic",	( '\x10380', '\x1039F') )@@ -164,17 +192,32 @@     , ( "Shavian",	( '\x10450', '\x1047F') )     , ( "Osmanya",	( '\x10480', '\x104AF') )     , ( "CypriotSyllabary",	( '\x10800', '\x1083F') )+    , ( "ImperialAramaic",	( '\x10840', '\x1085F') )     , ( "Phoenician",	( '\x10900', '\x1091F') )+    , ( "Lydian",	( '\x10920', '\x1093F') )     , ( "Kharoshthi",	( '\x10A00', '\x10A5F') )+    , ( "OldSouthArabian",	( '\x10A60', '\x10A7F') )+    , ( "Avestan",	( '\x10B00', '\x10B3F') )+    , ( "InscriptionalParthian",	( '\x10B40', '\x10B5F') )+    , ( "InscriptionalPahlavi",	( '\x10B60', '\x10B7F') )+    , ( "OldTurkic",	( '\x10C00', '\x10C4F') )+    , ( "RumiNumeralSymbols",	( '\x10E60', '\x10E7F') )+    , ( "Kaithi",	( '\x11080', '\x110CF') )     , ( "Cuneiform",	( '\x12000', '\x123FF') )     , ( "CuneiformNumbersandPunctuation",	( '\x12400', '\x1247F') )+    , ( "EgyptianHieroglyphs",	( '\x13000', '\x1342F') )     , ( "ByzantineMusicalSymbols",	( '\x1D000', '\x1D0FF') )     , ( "MusicalSymbols",	( '\x1D100', '\x1D1FF') )     , ( "AncientGreekMusicalNotation",	( '\x1D200', '\x1D24F') )     , ( "TaiXuanJingSymbols",	( '\x1D300', '\x1D35F') )     , ( "CountingRodNumerals",	( '\x1D360', '\x1D37F') )     , ( "MathematicalAlphanumericSymbols",	( '\x1D400', '\x1D7FF') )+    , ( "MahjongTiles",	( '\x1F000', '\x1F02F') )+    , ( "DominoTiles",	( '\x1F030', '\x1F09F') )+    , ( "EnclosedAlphanumericSupplement",	( '\x1F100', '\x1F1FF') )+    , ( "EnclosedIdeographicSupplement",	( '\x1F200', '\x1F2FF') )     , ( "CJKUnifiedIdeographsExtensionB",	( '\x20000', '\x2A6DF') )+    , ( "CJKUnifiedIdeographsExtensionC",	( '\x2A700', '\x2B73F') )     , ( "CJKCompatibilityIdeographsSupplement",	( '\x2F800', '\x2FA1F') )     , ( "Tags",	( '\xE0000', '\xE007F') )     , ( "VariationSelectorsSupplement",	( '\xE0100', '\xE01EF') )
− src/Text/XML/HXT/RelaxNG/Unicode/Blocks.txt
@@ -1,185 +0,0 @@-# Blocks-5.0.0.txt-# Date: 2006-02-15, 15:40:00 [KW]-#-# Unicode Character Database-# Copyright (c) 1991-2006 Unicode, Inc.-# For terms of use, see http://www.unicode.org/terms_of_use.html-# For documentation, see UCD.html-#-# Note:   The casing of block names is not normative.-#         For example, "Basic Latin" and "BASIC LATIN" are equivalent.-#-# Format:-# Start Code..End Code; Block Name--# ================================================--# Note:   When comparing block names, casing, whitespace, hyphens,-#         and underbars are ignored.-#         For example, "Latin Extended-A" and "latin extended a" are equivalent.-#         For more information on the comparison of property values, -#            see UCD.html.-#-#  All code points not explicitly listed for Block-#  have the value No_Block.--# Property:	Block-#-# @missing: 0000..10FFFF; No_Block--0000..007F; Basic Latin-0080..00FF; Latin-1 Supplement-0100..017F; Latin Extended-A-0180..024F; Latin Extended-B-0250..02AF; IPA Extensions-02B0..02FF; Spacing Modifier Letters-0300..036F; Combining Diacritical Marks-0370..03FF; Greek and Coptic-0400..04FF; Cyrillic-0500..052F; Cyrillic Supplement-0530..058F; Armenian-0590..05FF; Hebrew-0600..06FF; Arabic-0700..074F; Syriac-0750..077F; Arabic Supplement-0780..07BF; Thaana-07C0..07FF; NKo-0900..097F; Devanagari-0980..09FF; Bengali-0A00..0A7F; Gurmukhi-0A80..0AFF; Gujarati-0B00..0B7F; Oriya-0B80..0BFF; Tamil-0C00..0C7F; Telugu-0C80..0CFF; Kannada-0D00..0D7F; Malayalam-0D80..0DFF; Sinhala-0E00..0E7F; Thai-0E80..0EFF; Lao-0F00..0FFF; Tibetan-1000..109F; Myanmar-10A0..10FF; Georgian-1100..11FF; Hangul Jamo-1200..137F; Ethiopic-1380..139F; Ethiopic Supplement-13A0..13FF; Cherokee-1400..167F; Unified Canadian Aboriginal Syllabics-1680..169F; Ogham-16A0..16FF; Runic-1700..171F; Tagalog-1720..173F; Hanunoo-1740..175F; Buhid-1760..177F; Tagbanwa-1780..17FF; Khmer-1800..18AF; Mongolian-1900..194F; Limbu-1950..197F; Tai Le-1980..19DF; New Tai Lue-19E0..19FF; Khmer Symbols-1A00..1A1F; Buginese-1B00..1B7F; Balinese-1D00..1D7F; Phonetic Extensions-1D80..1DBF; Phonetic Extensions Supplement-1DC0..1DFF; Combining Diacritical Marks Supplement-1E00..1EFF; Latin Extended Additional-1F00..1FFF; Greek Extended-2000..206F; General Punctuation-2070..209F; Superscripts and Subscripts-20A0..20CF; Currency Symbols-20D0..20FF; Combining Diacritical Marks for Symbols-2100..214F; Letterlike Symbols-2150..218F; Number Forms-2190..21FF; Arrows-2200..22FF; Mathematical Operators-2300..23FF; Miscellaneous Technical-2400..243F; Control Pictures-2440..245F; Optical Character Recognition-2460..24FF; Enclosed Alphanumerics-2500..257F; Box Drawing-2580..259F; Block Elements-25A0..25FF; Geometric Shapes-2600..26FF; Miscellaneous Symbols-2700..27BF; Dingbats-27C0..27EF; Miscellaneous Mathematical Symbols-A-27F0..27FF; Supplemental Arrows-A-2800..28FF; Braille Patterns-2900..297F; Supplemental Arrows-B-2980..29FF; Miscellaneous Mathematical Symbols-B-2A00..2AFF; Supplemental Mathematical Operators-2B00..2BFF; Miscellaneous Symbols and Arrows-2C00..2C5F; Glagolitic-2C60..2C7F; Latin Extended-C-2C80..2CFF; Coptic-2D00..2D2F; Georgian Supplement-2D30..2D7F; Tifinagh-2D80..2DDF; Ethiopic Extended-2E00..2E7F; Supplemental Punctuation-2E80..2EFF; CJK Radicals Supplement-2F00..2FDF; Kangxi Radicals-2FF0..2FFF; Ideographic Description Characters-3000..303F; CJK Symbols and Punctuation-3040..309F; Hiragana-30A0..30FF; Katakana-3100..312F; Bopomofo-3130..318F; Hangul Compatibility Jamo-3190..319F; Kanbun-31A0..31BF; Bopomofo Extended-31C0..31EF; CJK Strokes-31F0..31FF; Katakana Phonetic Extensions-3200..32FF; Enclosed CJK Letters and Months-3300..33FF; CJK Compatibility-3400..4DBF; CJK Unified Ideographs Extension A-4DC0..4DFF; Yijing Hexagram Symbols-4E00..9FFF; CJK Unified Ideographs-A000..A48F; Yi Syllables-A490..A4CF; Yi Radicals-A700..A71F; Modifier Tone Letters-A720..A7FF; Latin Extended-D-A800..A82F; Syloti Nagri-A840..A87F; Phags-pa-AC00..D7AF; Hangul Syllables-D800..DB7F; High Surrogates-DB80..DBFF; High Private Use Surrogates-DC00..DFFF; Low Surrogates-E000..F8FF; Private Use Area-F900..FAFF; CJK Compatibility Ideographs-FB00..FB4F; Alphabetic Presentation Forms-FB50..FDFF; Arabic Presentation Forms-A-FE00..FE0F; Variation Selectors-FE10..FE1F; Vertical Forms-FE20..FE2F; Combining Half Marks-FE30..FE4F; CJK Compatibility Forms-FE50..FE6F; Small Form Variants-FE70..FEFF; Arabic Presentation Forms-B-FF00..FFEF; Halfwidth and Fullwidth Forms-FFF0..FFFF; Specials-10000..1007F; Linear B Syllabary-10080..100FF; Linear B Ideograms-10100..1013F; Aegean Numbers-10140..1018F; Ancient Greek Numbers-10300..1032F; Old Italic-10330..1034F; Gothic-10380..1039F; Ugaritic-103A0..103DF; Old Persian-10400..1044F; Deseret-10450..1047F; Shavian-10480..104AF; Osmanya-10800..1083F; Cypriot Syllabary-10900..1091F; Phoenician-10A00..10A5F; Kharoshthi-12000..123FF; Cuneiform-12400..1247F; Cuneiform Numbers and Punctuation-1D000..1D0FF; Byzantine Musical Symbols-1D100..1D1FF; Musical Symbols-1D200..1D24F; Ancient Greek Musical Notation-1D300..1D35F; Tai Xuan Jing Symbols-1D360..1D37F; Counting Rod Numerals-1D400..1D7FF; Mathematical Alphanumeric Symbols-20000..2A6DF; CJK Unified Ideographs Extension B-2F800..2FA1F; CJK Compatibility Ideographs Supplement-E0000..E007F; Tags-E0100..E01EF; Variation Selectors Supplement-F0000..FFFFF; Supplementary Private Use Area-A-100000..10FFFF; Supplementary Private Use Area-B--# EOF
src/Text/XML/HXT/RelaxNG/Unicode/CharProps.hs view
@@ -61,8 +61,8 @@  -- ------------------------------------------------------------ -isInList	:: Char -> [(Char, Char)] -> Bool-isInList i =+isInList        :: Char -> [(Char, Char)] -> Bool+isInList i      =    foldr (\(lb, ub) b -> i >= lb && (i <= ub || b)) False  -- ------------------------------------------------------------@@ -79,7 +79,7 @@     , ('\6068','\6069')     , ('\8203','\8207')     , ('\8234','\8238')-    , ('\8288','\8291')+    , ('\8288','\8292')     , ('\8298','\8303')     , ('\55296','\55296')     , ('\56191','\56192')@@ -88,6 +88,7 @@     , ('\63743','\63743')     , ('\65279','\65279')     , ('\65529','\65531')+    , ('\69821','\69821')     , ('\119155','\119162')     , ('\917505','\917505')     , ('\917536','\917631')@@ -118,10 +119,11 @@     , ('\6068','\6069')     , ('\8203','\8207')     , ('\8234','\8238')-    , ('\8288','\8291')+    , ('\8288','\8292')     , ('\8298','\8303')     , ('\65279','\65279')     , ('\65529','\65531')+    , ('\69821','\69821')     , ('\119155','\119162')     , ('\917505','\917505')     , ('\917536','\917631')@@ -166,23 +168,24 @@     , ('\248','\705')     , ('\710','\721')     , ('\736','\740')+    , ('\748','\748')     , ('\750','\750')+    , ('\880','\884')+    , ('\886','\887')     , ('\890','\893')     , ('\902','\902')     , ('\904','\906')     , ('\908','\908')     , ('\910','\929')-    , ('\931','\974')-    , ('\976','\1013')+    , ('\931','\1013')     , ('\1015','\1153')-    , ('\1162','\1299')+    , ('\1162','\1317')     , ('\1329','\1366')     , ('\1369','\1369')     , ('\1377','\1415')     , ('\1488','\1514')     , ('\1520','\1522')-    , ('\1569','\1594')-    , ('\1600','\1610')+    , ('\1569','\1610')     , ('\1646','\1647')     , ('\1649','\1747')     , ('\1749','\1749')@@ -192,17 +195,21 @@     , ('\1791','\1791')     , ('\1808','\1808')     , ('\1810','\1839')-    , ('\1869','\1901')-    , ('\1920','\1957')+    , ('\1869','\1957')     , ('\1969','\1969')     , ('\1994','\2026')     , ('\2036','\2037')     , ('\2042','\2042')+    , ('\2048','\2069')+    , ('\2074','\2074')+    , ('\2084','\2084')+    , ('\2088','\2088')     , ('\2308','\2361')     , ('\2365','\2365')     , ('\2384','\2384')     , ('\2392','\2401')-    , ('\2427','\2431')+    , ('\2417','\2418')+    , ('\2425','\2431')     , ('\2437','\2444')     , ('\2447','\2448')     , ('\2451','\2472')@@ -253,11 +260,14 @@     , ('\2979','\2980')     , ('\2984','\2986')     , ('\2990','\3001')+    , ('\3024','\3024')     , ('\3077','\3084')     , ('\3086','\3088')     , ('\3090','\3112')     , ('\3114','\3123')     , ('\3125','\3129')+    , ('\3133','\3133')+    , ('\3160','\3161')     , ('\3168','\3169')     , ('\3205','\3212')     , ('\3214','\3216')@@ -271,7 +281,9 @@     , ('\3342','\3344')     , ('\3346','\3368')     , ('\3370','\3385')+    , ('\3389','\3389')     , ('\3424','\3425')+    , ('\3450','\3455')     , ('\3461','\3478')     , ('\3482','\3505')     , ('\3507','\3515')@@ -299,19 +311,21 @@     , ('\3804','\3805')     , ('\3840','\3840')     , ('\3904','\3911')-    , ('\3913','\3946')+    , ('\3913','\3948')     , ('\3976','\3979')-    , ('\4096','\4129')-    , ('\4131','\4135')-    , ('\4137','\4138')+    , ('\4096','\4138')+    , ('\4159','\4159')     , ('\4176','\4181')+    , ('\4186','\4189')+    , ('\4193','\4193')+    , ('\4197','\4198')+    , ('\4206','\4208')+    , ('\4213','\4225')+    , ('\4238','\4238')     , ('\4256','\4293')     , ('\4304','\4346')     , ('\4348','\4348')-    , ('\4352','\4441')-    , ('\4447','\4514')-    , ('\4520','\4601')-    , ('\4608','\4680')+    , ('\4352','\4680')     , ('\4682','\4685')     , ('\4688','\4694')     , ('\4696','\4696')@@ -330,7 +344,7 @@     , ('\4992','\5007')     , ('\5024','\5108')     , ('\5121','\5740')-    , ('\5743','\5750')+    , ('\5743','\5759')     , ('\5761','\5786')     , ('\5792','\5866')     , ('\5888','\5900')@@ -344,18 +358,27 @@     , ('\6108','\6108')     , ('\6176','\6263')     , ('\6272','\6312')+    , ('\6314','\6314')+    , ('\6320','\6389')     , ('\6400','\6428')     , ('\6480','\6509')     , ('\6512','\6516')-    , ('\6528','\6569')+    , ('\6528','\6571')     , ('\6593','\6599')     , ('\6656','\6678')+    , ('\6688','\6740')+    , ('\6823','\6823')     , ('\6917','\6963')     , ('\6981','\6987')+    , ('\7043','\7072')+    , ('\7086','\7087')+    , ('\7168','\7203')+    , ('\7245','\7247')+    , ('\7258','\7293')+    , ('\7401','\7404')+    , ('\7406','\7409')     , ('\7424','\7615')-    , ('\7680','\7835')-    , ('\7840','\7929')-    , ('\7936','\7957')+    , ('\7680','\7957')     , ('\7960','\7965')     , ('\7968','\8005')     , ('\8008','\8013')@@ -393,9 +416,8 @@     , ('\8579','\8580')     , ('\11264','\11310')     , ('\11312','\11358')-    , ('\11360','\11372')-    , ('\11380','\11383')-    , ('\11392','\11492')+    , ('\11360','\11492')+    , ('\11499','\11502')     , ('\11520','\11557')     , ('\11568','\11621')     , ('\11631','\11631')@@ -408,6 +430,7 @@     , ('\11720','\11726')     , ('\11728','\11734')     , ('\11736','\11742')+    , ('\11823','\11823')     , ('\12293','\12294')     , ('\12337','\12341')     , ('\12347','\12348')@@ -415,25 +438,58 @@     , ('\12445','\12447')     , ('\12449','\12538')     , ('\12540','\12543')-    , ('\12549','\12588')+    , ('\12549','\12589')     , ('\12593','\12686')     , ('\12704','\12727')     , ('\12784','\12799')     , ('\13312','\13312')     , ('\19893','\19893')     , ('\19968','\19968')-    , ('\40891','\40891')+    , ('\40907','\40907')     , ('\40960','\42124')-    , ('\42775','\42778')-    , ('\43008','\43009')+    , ('\42192','\42237')+    , ('\42240','\42508')+    , ('\42512','\42527')+    , ('\42538','\42539')+    , ('\42560','\42591')+    , ('\42594','\42606')+    , ('\42623','\42647')+    , ('\42656','\42725')+    , ('\42775','\42783')+    , ('\42786','\42888')+    , ('\42891','\42892')+    , ('\43003','\43009')     , ('\43011','\43013')     , ('\43015','\43018')     , ('\43020','\43042')     , ('\43072','\43123')+    , ('\43138','\43187')+    , ('\43250','\43255')+    , ('\43259','\43259')+    , ('\43274','\43301')+    , ('\43312','\43334')+    , ('\43360','\43388')+    , ('\43396','\43442')+    , ('\43471','\43471')+    , ('\43520','\43560')+    , ('\43584','\43586')+    , ('\43588','\43595')+    , ('\43616','\43638')+    , ('\43642','\43642')+    , ('\43648','\43695')+    , ('\43697','\43697')+    , ('\43701','\43702')+    , ('\43705','\43709')+    , ('\43712','\43712')+    , ('\43714','\43714')+    , ('\43739','\43741')+    , ('\43968','\44002')     , ('\44032','\44032')     , ('\55203','\55203')+    , ('\55216','\55238')+    , ('\55243','\55291')     , ('\63744','\64045')-    , ('\64048','\64106')+    , ('\64048','\64109')     , ('\64112','\64217')     , ('\64256','\64262')     , ('\64275','\64279')@@ -465,6 +521,8 @@     , ('\65599','\65613')     , ('\65616','\65629')     , ('\65664','\65786')+    , ('\66176','\66204')+    , ('\66208','\66256')     , ('\66304','\66334')     , ('\66352','\66368')     , ('\66370','\66377')@@ -477,13 +535,21 @@     , ('\67594','\67637')     , ('\67639','\67640')     , ('\67644','\67644')-    , ('\67647','\67647')+    , ('\67647','\67669')     , ('\67840','\67861')+    , ('\67872','\67897')     , ('\68096','\68096')     , ('\68112','\68115')     , ('\68117','\68119')     , ('\68121','\68147')+    , ('\68192','\68220')+    , ('\68352','\68405')+    , ('\68416','\68437')+    , ('\68448','\68466')+    , ('\68608','\68680')+    , ('\69763','\69807')     , ('\73728','\74606')+    , ('\77824','\78894')     , ('\119808','\119892')     , ('\119894','\119964')     , ('\119966','\119967')@@ -516,6 +582,8 @@     , ('\120772','\120779')     , ('\131072','\131072')     , ('\173782','\173782')+    , ('\173824','\173824')+    , ('\177972','\177972')     , ('\194560','\195101')     ] @@ -672,6 +740,9 @@     , ('\589','\589')     , ('\591','\659')     , ('\661','\687')+    , ('\881','\881')+    , ('\883','\883')+    , ('\887','\887')     , ('\891','\893')     , ('\912','\912')     , ('\940','\974')@@ -778,6 +849,15 @@     , ('\1295','\1295')     , ('\1297','\1297')     , ('\1299','\1299')+    , ('\1301','\1301')+    , ('\1303','\1303')+    , ('\1305','\1305')+    , ('\1307','\1307')+    , ('\1309','\1309')+    , ('\1311','\1311')+    , ('\1313','\1313')+    , ('\1315','\1315')+    , ('\1317','\1317')     , ('\1377','\1415')     , ('\7424','\7467')     , ('\7522','\7543')@@ -856,7 +936,8 @@     , ('\7823','\7823')     , ('\7825','\7825')     , ('\7827','\7827')-    , ('\7829','\7835')+    , ('\7829','\7837')+    , ('\7839','\7839')     , ('\7841','\7841')     , ('\7843','\7843')     , ('\7845','\7845')@@ -902,7 +983,9 @@     , ('\7925','\7925')     , ('\7927','\7927')     , ('\7929','\7929')-    , ('\7936','\7943')+    , ('\7931','\7931')+    , ('\7933','\7933')+    , ('\7935','\7943')     , ('\7952','\7957')     , ('\7968','\7975')     , ('\7984','\7991')@@ -923,8 +1006,6 @@     , ('\8160','\8167')     , ('\8178','\8180')     , ('\8182','\8183')-    , ('\8305','\8305')-    , ('\8319','\8319')     , ('\8458','\8458')     , ('\8462','\8463')     , ('\8467','\8467')@@ -941,8 +1022,9 @@     , ('\11368','\11368')     , ('\11370','\11370')     , ('\11372','\11372')-    , ('\11380','\11380')-    , ('\11382','\11383')+    , ('\11377','\11377')+    , ('\11379','\11380')+    , ('\11382','\11388')     , ('\11393','\11393')     , ('\11395','\11395')     , ('\11397','\11397')@@ -993,7 +1075,90 @@     , ('\11487','\11487')     , ('\11489','\11489')     , ('\11491','\11492')+    , ('\11500','\11500')+    , ('\11502','\11502')     , ('\11520','\11557')+    , ('\42561','\42561')+    , ('\42563','\42563')+    , ('\42565','\42565')+    , ('\42567','\42567')+    , ('\42569','\42569')+    , ('\42571','\42571')+    , ('\42573','\42573')+    , ('\42575','\42575')+    , ('\42577','\42577')+    , ('\42579','\42579')+    , ('\42581','\42581')+    , ('\42583','\42583')+    , ('\42585','\42585')+    , ('\42587','\42587')+    , ('\42589','\42589')+    , ('\42591','\42591')+    , ('\42595','\42595')+    , ('\42597','\42597')+    , ('\42599','\42599')+    , ('\42601','\42601')+    , ('\42603','\42603')+    , ('\42605','\42605')+    , ('\42625','\42625')+    , ('\42627','\42627')+    , ('\42629','\42629')+    , ('\42631','\42631')+    , ('\42633','\42633')+    , ('\42635','\42635')+    , ('\42637','\42637')+    , ('\42639','\42639')+    , ('\42641','\42641')+    , ('\42643','\42643')+    , ('\42645','\42645')+    , ('\42647','\42647')+    , ('\42787','\42787')+    , ('\42789','\42789')+    , ('\42791','\42791')+    , ('\42793','\42793')+    , ('\42795','\42795')+    , ('\42797','\42797')+    , ('\42799','\42801')+    , ('\42803','\42803')+    , ('\42805','\42805')+    , ('\42807','\42807')+    , ('\42809','\42809')+    , ('\42811','\42811')+    , ('\42813','\42813')+    , ('\42815','\42815')+    , ('\42817','\42817')+    , ('\42819','\42819')+    , ('\42821','\42821')+    , ('\42823','\42823')+    , ('\42825','\42825')+    , ('\42827','\42827')+    , ('\42829','\42829')+    , ('\42831','\42831')+    , ('\42833','\42833')+    , ('\42835','\42835')+    , ('\42837','\42837')+    , ('\42839','\42839')+    , ('\42841','\42841')+    , ('\42843','\42843')+    , ('\42845','\42845')+    , ('\42847','\42847')+    , ('\42849','\42849')+    , ('\42851','\42851')+    , ('\42853','\42853')+    , ('\42855','\42855')+    , ('\42857','\42857')+    , ('\42859','\42859')+    , ('\42861','\42861')+    , ('\42863','\42863')+    , ('\42865','\42872')+    , ('\42874','\42874')+    , ('\42876','\42876')+    , ('\42879','\42879')+    , ('\42881','\42881')+    , ('\42883','\42883')+    , ('\42885','\42885')+    , ('\42887','\42887')+    , ('\42892','\42892')     , ('\64256','\64262')     , ('\64275','\64279')     , ('\65345','\65370')@@ -1036,30 +1201,50 @@     [ ('\688','\705')     , ('\710','\721')     , ('\736','\740')+    , ('\748','\748')     , ('\750','\750')+    , ('\884','\884')     , ('\890','\890')     , ('\1369','\1369')     , ('\1600','\1600')     , ('\1765','\1766')     , ('\2036','\2037')     , ('\2042','\2042')+    , ('\2074','\2074')+    , ('\2084','\2084')+    , ('\2088','\2088')+    , ('\2417','\2417')     , ('\3654','\3654')     , ('\3782','\3782')     , ('\4348','\4348')     , ('\6103','\6103')     , ('\6211','\6211')+    , ('\6823','\6823')+    , ('\7288','\7293')     , ('\7468','\7521')     , ('\7544','\7544')     , ('\7579','\7615')+    , ('\8305','\8305')+    , ('\8319','\8319')     , ('\8336','\8340')+    , ('\11389','\11389')     , ('\11631','\11631')+    , ('\11823','\11823')     , ('\12293','\12293')     , ('\12337','\12341')     , ('\12347','\12347')     , ('\12445','\12446')     , ('\12540','\12542')     , ('\40981','\40981')-    , ('\42775','\42778')+    , ('\42232','\42237')+    , ('\42508','\42508')+    , ('\42623','\42623')+    , ('\42775','\42783')+    , ('\42864','\42864')+    , ('\42888','\42888')+    , ('\43471','\43471')+    , ('\43632','\43632')+    , ('\43741','\43741')     , ('\65392','\65392')     , ('\65438','\65439')     ]@@ -1074,7 +1259,7 @@     , ('\660','\660')     , ('\1488','\1514')     , ('\1520','\1522')-    , ('\1569','\1594')+    , ('\1569','\1599')     , ('\1601','\1610')     , ('\1646','\1647')     , ('\1649','\1747')@@ -1084,15 +1269,16 @@     , ('\1791','\1791')     , ('\1808','\1808')     , ('\1810','\1839')-    , ('\1869','\1901')-    , ('\1920','\1957')+    , ('\1869','\1957')     , ('\1969','\1969')     , ('\1994','\2026')+    , ('\2048','\2069')     , ('\2308','\2361')     , ('\2365','\2365')     , ('\2384','\2384')     , ('\2392','\2401')-    , ('\2427','\2431')+    , ('\2418','\2418')+    , ('\2425','\2431')     , ('\2437','\2444')     , ('\2447','\2448')     , ('\2451','\2472')@@ -1143,11 +1329,14 @@     , ('\2979','\2980')     , ('\2984','\2986')     , ('\2990','\3001')+    , ('\3024','\3024')     , ('\3077','\3084')     , ('\3086','\3088')     , ('\3090','\3112')     , ('\3114','\3123')     , ('\3125','\3129')+    , ('\3133','\3133')+    , ('\3160','\3161')     , ('\3168','\3169')     , ('\3205','\3212')     , ('\3214','\3216')@@ -1161,7 +1350,9 @@     , ('\3342','\3344')     , ('\3346','\3368')     , ('\3370','\3385')+    , ('\3389','\3389')     , ('\3424','\3425')+    , ('\3450','\3455')     , ('\3461','\3478')     , ('\3482','\3505')     , ('\3507','\3515')@@ -1188,17 +1379,19 @@     , ('\3804','\3805')     , ('\3840','\3840')     , ('\3904','\3911')-    , ('\3913','\3946')+    , ('\3913','\3948')     , ('\3976','\3979')-    , ('\4096','\4129')-    , ('\4131','\4135')-    , ('\4137','\4138')+    , ('\4096','\4138')+    , ('\4159','\4159')     , ('\4176','\4181')+    , ('\4186','\4189')+    , ('\4193','\4193')+    , ('\4197','\4198')+    , ('\4206','\4208')+    , ('\4213','\4225')+    , ('\4238','\4238')     , ('\4304','\4346')-    , ('\4352','\4441')-    , ('\4447','\4514')-    , ('\4520','\4601')-    , ('\4608','\4680')+    , ('\4352','\4680')     , ('\4682','\4685')     , ('\4688','\4694')     , ('\4696','\4696')@@ -1217,7 +1410,7 @@     , ('\4992','\5007')     , ('\5024','\5108')     , ('\5121','\5740')-    , ('\5743','\5750')+    , ('\5743','\5759')     , ('\5761','\5786')     , ('\5792','\5866')     , ('\5888','\5900')@@ -1231,14 +1424,24 @@     , ('\6176','\6210')     , ('\6212','\6263')     , ('\6272','\6312')+    , ('\6314','\6314')+    , ('\6320','\6389')     , ('\6400','\6428')     , ('\6480','\6509')     , ('\6512','\6516')-    , ('\6528','\6569')+    , ('\6528','\6571')     , ('\6593','\6599')     , ('\6656','\6678')+    , ('\6688','\6740')     , ('\6917','\6963')     , ('\6981','\6987')+    , ('\7043','\7072')+    , ('\7086','\7087')+    , ('\7168','\7203')+    , ('\7245','\7247')+    , ('\7258','\7287')+    , ('\7401','\7404')+    , ('\7406','\7409')     , ('\8501','\8504')     , ('\11568','\11621')     , ('\11648','\11670')@@ -1256,25 +1459,54 @@     , ('\12447','\12447')     , ('\12449','\12538')     , ('\12543','\12543')-    , ('\12549','\12588')+    , ('\12549','\12589')     , ('\12593','\12686')     , ('\12704','\12727')     , ('\12784','\12799')     , ('\13312','\13312')     , ('\19893','\19893')     , ('\19968','\19968')-    , ('\40891','\40891')+    , ('\40907','\40907')     , ('\40960','\40980')     , ('\40982','\42124')-    , ('\43008','\43009')+    , ('\42192','\42231')+    , ('\42240','\42507')+    , ('\42512','\42527')+    , ('\42538','\42539')+    , ('\42606','\42606')+    , ('\42656','\42725')+    , ('\43003','\43009')     , ('\43011','\43013')     , ('\43015','\43018')     , ('\43020','\43042')     , ('\43072','\43123')+    , ('\43138','\43187')+    , ('\43250','\43255')+    , ('\43259','\43259')+    , ('\43274','\43301')+    , ('\43312','\43334')+    , ('\43360','\43388')+    , ('\43396','\43442')+    , ('\43520','\43560')+    , ('\43584','\43586')+    , ('\43588','\43595')+    , ('\43616','\43631')+    , ('\43633','\43638')+    , ('\43642','\43642')+    , ('\43648','\43695')+    , ('\43697','\43697')+    , ('\43701','\43702')+    , ('\43705','\43709')+    , ('\43712','\43712')+    , ('\43714','\43714')+    , ('\43739','\43740')+    , ('\43968','\44002')     , ('\44032','\44032')     , ('\55203','\55203')+    , ('\55216','\55238')+    , ('\55243','\55291')     , ('\63744','\64045')-    , ('\64048','\64106')+    , ('\64048','\64109')     , ('\64112','\64217')     , ('\64285','\64285')     , ('\64287','\64296')@@ -1304,6 +1536,8 @@     , ('\65599','\65613')     , ('\65616','\65629')     , ('\65664','\65786')+    , ('\66176','\66204')+    , ('\66208','\66256')     , ('\66304','\66334')     , ('\66352','\66368')     , ('\66370','\66377')@@ -1316,15 +1550,25 @@     , ('\67594','\67637')     , ('\67639','\67640')     , ('\67644','\67644')-    , ('\67647','\67647')+    , ('\67647','\67669')     , ('\67840','\67861')+    , ('\67872','\67897')     , ('\68096','\68096')     , ('\68112','\68115')     , ('\68117','\68119')     , ('\68121','\68147')+    , ('\68192','\68220')+    , ('\68352','\68405')+    , ('\68416','\68437')+    , ('\68448','\68466')+    , ('\68608','\68680')+    , ('\69763','\69807')     , ('\73728','\74606')+    , ('\77824','\78894')     , ('\131072','\131072')     , ('\173782','\173782')+    , ('\173824','\173824')+    , ('\177972','\177972')     , ('\194560','\195101')     ] @@ -1494,12 +1738,16 @@     , ('\586','\586')     , ('\588','\588')     , ('\590','\590')+    , ('\880','\880')+    , ('\882','\882')+    , ('\886','\886')     , ('\902','\902')     , ('\904','\906')     , ('\908','\908')     , ('\910','\911')     , ('\913','\929')     , ('\931','\939')+    , ('\975','\975')     , ('\978','\980')     , ('\984','\984')     , ('\986','\986')@@ -1602,6 +1850,15 @@     , ('\1294','\1294')     , ('\1296','\1296')     , ('\1298','\1298')+    , ('\1300','\1300')+    , ('\1302','\1302')+    , ('\1304','\1304')+    , ('\1306','\1306')+    , ('\1308','\1308')+    , ('\1310','\1310')+    , ('\1312','\1312')+    , ('\1314','\1314')+    , ('\1316','\1316')     , ('\1329','\1366')     , ('\4256','\4293')     , ('\7680','\7680')@@ -1679,6 +1936,7 @@     , ('\7824','\7824')     , ('\7826','\7826')     , ('\7828','\7828')+    , ('\7838','\7838')     , ('\7840','\7840')     , ('\7842','\7842')     , ('\7844','\7844')@@ -1724,6 +1982,9 @@     , ('\7924','\7924')     , ('\7926','\7926')     , ('\7928','\7928')+    , ('\7930','\7930')+    , ('\7932','\7932')+    , ('\7934','\7934')     , ('\7944','\7951')     , ('\7960','\7965')     , ('\7976','\7983')@@ -1759,8 +2020,10 @@     , ('\11367','\11367')     , ('\11369','\11369')     , ('\11371','\11371')+    , ('\11373','\11376')+    , ('\11378','\11378')     , ('\11381','\11381')-    , ('\11392','\11392')+    , ('\11390','\11392')     , ('\11394','\11394')     , ('\11396','\11396')     , ('\11398','\11398')@@ -1810,6 +2073,88 @@     , ('\11486','\11486')     , ('\11488','\11488')     , ('\11490','\11490')+    , ('\11499','\11499')+    , ('\11501','\11501')+    , ('\42560','\42560')+    , ('\42562','\42562')+    , ('\42564','\42564')+    , ('\42566','\42566')+    , ('\42568','\42568')+    , ('\42570','\42570')+    , ('\42572','\42572')+    , ('\42574','\42574')+    , ('\42576','\42576')+    , ('\42578','\42578')+    , ('\42580','\42580')+    , ('\42582','\42582')+    , ('\42584','\42584')+    , ('\42586','\42586')+    , ('\42588','\42588')+    , ('\42590','\42590')+    , ('\42594','\42594')+    , ('\42596','\42596')+    , ('\42598','\42598')+    , ('\42600','\42600')+    , ('\42602','\42602')+    , ('\42604','\42604')+    , ('\42624','\42624')+    , ('\42626','\42626')+    , ('\42628','\42628')+    , ('\42630','\42630')+    , ('\42632','\42632')+    , ('\42634','\42634')+    , ('\42636','\42636')+    , ('\42638','\42638')+    , ('\42640','\42640')+    , ('\42642','\42642')+    , ('\42644','\42644')+    , ('\42646','\42646')+    , ('\42786','\42786')+    , ('\42788','\42788')+    , ('\42790','\42790')+    , ('\42792','\42792')+    , ('\42794','\42794')+    , ('\42796','\42796')+    , ('\42798','\42798')+    , ('\42802','\42802')+    , ('\42804','\42804')+    , ('\42806','\42806')+    , ('\42808','\42808')+    , ('\42810','\42810')+    , ('\42812','\42812')+    , ('\42814','\42814')+    , ('\42816','\42816')+    , ('\42818','\42818')+    , ('\42820','\42820')+    , ('\42822','\42822')+    , ('\42824','\42824')+    , ('\42826','\42826')+    , ('\42828','\42828')+    , ('\42830','\42830')+    , ('\42832','\42832')+    , ('\42834','\42834')+    , ('\42836','\42836')+    , ('\42838','\42838')+    , ('\42840','\42840')+    , ('\42842','\42842')+    , ('\42844','\42844')+    , ('\42846','\42846')+    , ('\42848','\42848')+    , ('\42850','\42850')+    , ('\42852','\42852')+    , ('\42854','\42854')+    , ('\42856','\42856')+    , ('\42858','\42858')+    , ('\42860','\42860')+    , ('\42862','\42862')+    , ('\42873','\42873')+    , ('\42875','\42875')+    , ('\42877','\42878')+    , ('\42880','\42880')+    , ('\42882','\42882')+    , ('\42884','\42884')+    , ('\42886','\42886')+    , ('\42891','\42891')     , ('\65313','\65338')     , ('\66560','\66599')     , ('\119808','\119833')@@ -1851,14 +2196,13 @@ isUnicodeM c   = isInList c     [ ('\768','\879')-    , ('\1155','\1158')-    , ('\1160','\1161')+    , ('\1155','\1161')     , ('\1425','\1469')     , ('\1471','\1471')     , ('\1473','\1474')     , ('\1476','\1477')     , ('\1479','\1479')-    , ('\1552','\1557')+    , ('\1552','\1562')     , ('\1611','\1630')     , ('\1648','\1648')     , ('\1750','\1756')@@ -1869,10 +2213,14 @@     , ('\1840','\1866')     , ('\1958','\1968')     , ('\2027','\2035')-    , ('\2305','\2307')+    , ('\2070','\2073')+    , ('\2075','\2083')+    , ('\2085','\2087')+    , ('\2089','\2093')+    , ('\2304','\2307')     , ('\2364','\2364')-    , ('\2366','\2381')-    , ('\2385','\2388')+    , ('\2366','\2382')+    , ('\2385','\2389')     , ('\2402','\2403')     , ('\2433','\2435')     , ('\2492','\2492')@@ -1886,7 +2234,9 @@     , ('\2622','\2626')     , ('\2631','\2632')     , ('\2635','\2637')+    , ('\2641','\2641')     , ('\2672','\2673')+    , ('\2677','\2677')     , ('\2689','\2691')     , ('\2748','\2748')     , ('\2750','\2757')@@ -1895,10 +2245,11 @@     , ('\2786','\2787')     , ('\2817','\2819')     , ('\2876','\2876')-    , ('\2878','\2883')+    , ('\2878','\2884')     , ('\2887','\2888')     , ('\2891','\2893')     , ('\2902','\2903')+    , ('\2914','\2915')     , ('\2946','\2946')     , ('\3006','\3010')     , ('\3014','\3016')@@ -1909,6 +2260,7 @@     , ('\3142','\3144')     , ('\3146','\3149')     , ('\3157','\3158')+    , ('\3170','\3171')     , ('\3202','\3203')     , ('\3260','\3260')     , ('\3262','\3268')@@ -1917,10 +2269,11 @@     , ('\3285','\3286')     , ('\3298','\3299')     , ('\3330','\3331')-    , ('\3390','\3395')+    , ('\3390','\3396')     , ('\3398','\3400')     , ('\3402','\3405')     , ('\3415','\3415')+    , ('\3426','\3427')     , ('\3458','\3459')     , ('\3530','\3530')     , ('\3535','\3540')@@ -1944,9 +2297,15 @@     , ('\3984','\3991')     , ('\3993','\4028')     , ('\4038','\4038')-    , ('\4140','\4146')-    , ('\4150','\4153')+    , ('\4139','\4158')     , ('\4182','\4185')+    , ('\4190','\4192')+    , ('\4194','\4196')+    , ('\4199','\4205')+    , ('\4209','\4212')+    , ('\4226','\4237')+    , ('\4239','\4239')+    , ('\4250','\4253')     , ('\4959','\4959')     , ('\5906','\5908')     , ('\5938','\5940')@@ -1961,26 +2320,62 @@     , ('\6576','\6592')     , ('\6600','\6601')     , ('\6679','\6683')+    , ('\6741','\6750')+    , ('\6752','\6780')+    , ('\6783','\6783')     , ('\6912','\6916')     , ('\6964','\6980')     , ('\7019','\7027')-    , ('\7616','\7626')-    , ('\7678','\7679')-    , ('\8400','\8431')+    , ('\7040','\7042')+    , ('\7073','\7082')+    , ('\7204','\7223')+    , ('\7376','\7378')+    , ('\7380','\7400')+    , ('\7405','\7405')+    , ('\7410','\7410')+    , ('\7616','\7654')+    , ('\7677','\7679')+    , ('\8400','\8432')+    , ('\11503','\11505')+    , ('\11744','\11775')     , ('\12330','\12335')     , ('\12441','\12442')+    , ('\42607','\42610')+    , ('\42620','\42621')+    , ('\42736','\42737')     , ('\43010','\43010')     , ('\43014','\43014')     , ('\43019','\43019')     , ('\43043','\43047')+    , ('\43136','\43137')+    , ('\43188','\43204')+    , ('\43232','\43249')+    , ('\43302','\43309')+    , ('\43335','\43347')+    , ('\43392','\43395')+    , ('\43443','\43456')+    , ('\43561','\43574')+    , ('\43587','\43587')+    , ('\43596','\43597')+    , ('\43643','\43643')+    , ('\43696','\43696')+    , ('\43698','\43700')+    , ('\43703','\43704')+    , ('\43710','\43711')+    , ('\43713','\43713')+    , ('\44003','\44010')+    , ('\44012','\44013')     , ('\64286','\64286')     , ('\65024','\65039')-    , ('\65056','\65059')+    , ('\65056','\65062')+    , ('\66045','\66045')     , ('\68097','\68099')     , ('\68101','\68102')     , ('\68108','\68111')     , ('\68152','\68154')     , ('\68159','\68159')+    , ('\69760','\69762')+    , ('\69808','\69818')     , ('\119141','\119145')     , ('\119149','\119154')     , ('\119163','\119170')@@ -1998,6 +2393,7 @@     [ ('\2307','\2307')     , ('\2366','\2368')     , ('\2377','\2380')+    , ('\2382','\2382')     , ('\2434','\2435')     , ('\2494','\2496')     , ('\2503','\2504')@@ -2039,10 +2435,17 @@     , ('\3570','\3571')     , ('\3902','\3903')     , ('\3967','\3967')-    , ('\4140','\4140')+    , ('\4139','\4140')     , ('\4145','\4145')     , ('\4152','\4152')+    , ('\4155','\4156')     , ('\4182','\4183')+    , ('\4194','\4196')+    , ('\4199','\4205')+    , ('\4227','\4228')+    , ('\4231','\4236')+    , ('\4239','\4239')+    , ('\4250','\4252')     , ('\6070','\6070')     , ('\6078','\6085')     , ('\6087','\6088')@@ -2053,14 +2456,44 @@     , ('\6576','\6592')     , ('\6600','\6601')     , ('\6681','\6683')+    , ('\6741','\6741')+    , ('\6743','\6743')+    , ('\6753','\6753')+    , ('\6755','\6756')+    , ('\6765','\6770')     , ('\6916','\6916')     , ('\6965','\6965')     , ('\6971','\6971')     , ('\6973','\6977')     , ('\6979','\6980')-    , ('\43010','\43010')+    , ('\7042','\7042')+    , ('\7073','\7073')+    , ('\7078','\7079')+    , ('\7082','\7082')+    , ('\7204','\7211')+    , ('\7220','\7221')+    , ('\7393','\7393')+    , ('\7410','\7410')     , ('\43043','\43044')     , ('\43047','\43047')+    , ('\43136','\43137')+    , ('\43188','\43203')+    , ('\43346','\43347')+    , ('\43395','\43395')+    , ('\43444','\43445')+    , ('\43450','\43451')+    , ('\43453','\43456')+    , ('\43567','\43568')+    , ('\43571','\43572')+    , ('\43597','\43597')+    , ('\43643','\43643')+    , ('\44003','\44004')+    , ('\44006','\44007')+    , ('\44009','\44010')+    , ('\44012','\44012')+    , ('\69762','\69762')+    , ('\69808','\69810')+    , ('\69815','\69816')     , ('\119141','\119142')     , ('\119149','\119154')     ]@@ -2074,6 +2507,7 @@     , ('\1758','\1758')     , ('\8413','\8416')     , ('\8418','\8420')+    , ('\42608','\42610')     ]  -- ------------------------------------------------------------@@ -2082,13 +2516,13 @@ isUnicodeMn c   = isInList c     [ ('\768','\879')-    , ('\1155','\1158')+    , ('\1155','\1159')     , ('\1425','\1469')     , ('\1471','\1471')     , ('\1473','\1474')     , ('\1476','\1477')     , ('\1479','\1479')-    , ('\1552','\1557')+    , ('\1552','\1562')     , ('\1611','\1630')     , ('\1648','\1648')     , ('\1750','\1756')@@ -2099,11 +2533,15 @@     , ('\1840','\1866')     , ('\1958','\1968')     , ('\2027','\2035')-    , ('\2305','\2306')+    , ('\2070','\2073')+    , ('\2075','\2083')+    , ('\2085','\2087')+    , ('\2089','\2093')+    , ('\2304','\2306')     , ('\2364','\2364')     , ('\2369','\2376')     , ('\2381','\2381')-    , ('\2385','\2388')+    , ('\2385','\2389')     , ('\2402','\2403')     , ('\2433','\2433')     , ('\2492','\2492')@@ -2115,7 +2553,9 @@     , ('\2625','\2626')     , ('\2631','\2632')     , ('\2635','\2637')+    , ('\2641','\2641')     , ('\2672','\2673')+    , ('\2677','\2677')     , ('\2689','\2690')     , ('\2748','\2748')     , ('\2753','\2757')@@ -2125,9 +2565,10 @@     , ('\2817','\2817')     , ('\2876','\2876')     , ('\2879','\2879')-    , ('\2881','\2883')+    , ('\2881','\2884')     , ('\2893','\2893')     , ('\2902','\2902')+    , ('\2914','\2915')     , ('\2946','\2946')     , ('\3008','\3008')     , ('\3021','\3021')@@ -2135,13 +2576,15 @@     , ('\3142','\3144')     , ('\3146','\3149')     , ('\3157','\3158')+    , ('\3170','\3171')     , ('\3260','\3260')     , ('\3263','\3263')     , ('\3270','\3270')     , ('\3276','\3277')     , ('\3298','\3299')-    , ('\3393','\3395')+    , ('\3393','\3396')     , ('\3405','\3405')+    , ('\3426','\3427')     , ('\3530','\3530')     , ('\3538','\3540')     , ('\3542','\3542')@@ -2163,10 +2606,16 @@     , ('\3993','\4028')     , ('\4038','\4038')     , ('\4141','\4144')-    , ('\4146','\4146')-    , ('\4150','\4151')-    , ('\4153','\4153')+    , ('\4146','\4151')+    , ('\4153','\4154')+    , ('\4157','\4158')     , ('\4184','\4185')+    , ('\4190','\4192')+    , ('\4209','\4212')+    , ('\4226','\4226')+    , ('\4229','\4230')+    , ('\4237','\4237')+    , ('\4253','\4253')     , ('\4959','\4959')     , ('\5906','\5908')     , ('\5938','\5940')@@ -2183,30 +2632,77 @@     , ('\6450','\6450')     , ('\6457','\6459')     , ('\6679','\6680')+    , ('\6742','\6742')+    , ('\6744','\6750')+    , ('\6752','\6752')+    , ('\6754','\6754')+    , ('\6757','\6764')+    , ('\6771','\6780')+    , ('\6783','\6783')     , ('\6912','\6915')     , ('\6964','\6964')     , ('\6966','\6970')     , ('\6972','\6972')     , ('\6978','\6978')     , ('\7019','\7027')-    , ('\7616','\7626')-    , ('\7678','\7679')+    , ('\7040','\7041')+    , ('\7074','\7077')+    , ('\7080','\7081')+    , ('\7212','\7219')+    , ('\7222','\7223')+    , ('\7376','\7378')+    , ('\7380','\7392')+    , ('\7394','\7400')+    , ('\7405','\7405')+    , ('\7616','\7654')+    , ('\7677','\7679')     , ('\8400','\8412')     , ('\8417','\8417')-    , ('\8421','\8431')+    , ('\8421','\8432')+    , ('\11503','\11505')+    , ('\11744','\11775')     , ('\12330','\12335')     , ('\12441','\12442')+    , ('\42607','\42607')+    , ('\42620','\42621')+    , ('\42736','\42737')+    , ('\43010','\43010')     , ('\43014','\43014')     , ('\43019','\43019')     , ('\43045','\43046')+    , ('\43204','\43204')+    , ('\43232','\43249')+    , ('\43302','\43309')+    , ('\43335','\43345')+    , ('\43392','\43394')+    , ('\43443','\43443')+    , ('\43446','\43449')+    , ('\43452','\43452')+    , ('\43561','\43566')+    , ('\43569','\43570')+    , ('\43573','\43574')+    , ('\43587','\43587')+    , ('\43596','\43596')+    , ('\43696','\43696')+    , ('\43698','\43700')+    , ('\43703','\43704')+    , ('\43710','\43711')+    , ('\43713','\43713')+    , ('\44005','\44005')+    , ('\44008','\44008')+    , ('\44013','\44013')     , ('\64286','\64286')     , ('\65024','\65039')-    , ('\65056','\65059')+    , ('\65056','\65062')+    , ('\66045','\66045')     , ('\68097','\68099')     , ('\68101','\68102')     , ('\68108','\68111')     , ('\68152','\68154')     , ('\68159','\68159')+    , ('\69760','\69761')+    , ('\69811','\69814')+    , ('\69817','\69818')     , ('\119143','\119145')     , ('\119163','\119170')     , ('\119173','\119179')@@ -2235,24 +2731,32 @@     , ('\2918','\2927')     , ('\3046','\3058')     , ('\3174','\3183')+    , ('\3192','\3198')     , ('\3302','\3311')-    , ('\3430','\3439')+    , ('\3430','\3445')     , ('\3664','\3673')     , ('\3792','\3801')     , ('\3872','\3891')     , ('\4160','\4169')+    , ('\4240','\4249')     , ('\4969','\4988')     , ('\5870','\5872')     , ('\6112','\6121')     , ('\6128','\6137')     , ('\6160','\6169')     , ('\6470','\6479')-    , ('\6608','\6617')+    , ('\6608','\6618')+    , ('\6784','\6793')+    , ('\6800','\6809')     , ('\6992','\7001')+    , ('\7088','\7097')+    , ('\7232','\7241')+    , ('\7248','\7257')     , ('\8304','\8304')     , ('\8308','\8313')     , ('\8320','\8329')-    , ('\8531','\8578')+    , ('\8528','\8578')+    , ('\8581','\8585')     , ('\9312','\9371')     , ('\9450','\9471')     , ('\10102','\10131')@@ -2265,6 +2769,14 @@     , ('\12881','\12895')     , ('\12928','\12937')     , ('\12977','\12991')+    , ('\42528','\42537')+    , ('\42726','\42735')+    , ('\43056','\43061')+    , ('\43216','\43225')+    , ('\43264','\43273')+    , ('\43472','\43481')+    , ('\43600','\43609')+    , ('\44016','\44025')     , ('\65296','\65305')     , ('\65799','\65843')     , ('\65856','\65912')@@ -2274,11 +2786,17 @@     , ('\66378','\66378')     , ('\66513','\66517')     , ('\66720','\66729')-    , ('\67862','\67865')+    , ('\67672','\67679')+    , ('\67862','\67867')     , ('\68160','\68167')+    , ('\68221','\68222')+    , ('\68440','\68447')+    , ('\68472','\68479')+    , ('\69216','\69246')     , ('\74752','\74850')     , ('\119648','\119665')     , ('\120782','\120831')+    , ('\127232','\127242')     ]  -- ------------------------------------------------------------@@ -2303,11 +2821,23 @@     , ('\3792','\3801')     , ('\3872','\3881')     , ('\4160','\4169')+    , ('\4240','\4249')     , ('\6112','\6121')     , ('\6160','\6169')     , ('\6470','\6479')-    , ('\6608','\6617')+    , ('\6608','\6618')+    , ('\6784','\6793')+    , ('\6800','\6809')     , ('\6992','\7001')+    , ('\7088','\7097')+    , ('\7232','\7241')+    , ('\7248','\7257')+    , ('\42528','\42537')+    , ('\43216','\43225')+    , ('\43264','\43273')+    , ('\43472','\43481')+    , ('\43600','\43609')+    , ('\44016','\44025')     , ('\65296','\65305')     , ('\66720','\66729')     , ('\120782','\120831')@@ -2320,9 +2850,11 @@   = isInList c     [ ('\5870','\5872')     , ('\8544','\8578')+    , ('\8581','\8584')     , ('\12295','\12295')     , ('\12321','\12329')     , ('\12344','\12346')+    , ('\42726','\42735')     , ('\65856','\65908')     , ('\66369','\66369')     , ('\66378','\66378')@@ -2340,13 +2872,16 @@     , ('\188','\190')     , ('\2548','\2553')     , ('\3056','\3058')+    , ('\3192','\3198')+    , ('\3440','\3445')     , ('\3882','\3891')     , ('\4969','\4988')     , ('\6128','\6137')     , ('\8304','\8304')     , ('\8308','\8313')     , ('\8320','\8329')-    , ('\8531','\8543')+    , ('\8528','\8543')+    , ('\8585','\8585')     , ('\9312','\9371')     , ('\9450','\9471')     , ('\10102','\10131')@@ -2356,13 +2891,20 @@     , ('\12881','\12895')     , ('\12928','\12937')     , ('\12977','\12991')+    , ('\43056','\43061')     , ('\65799','\65843')     , ('\65909','\65912')     , ('\65930','\65930')     , ('\66336','\66339')-    , ('\67862','\67865')+    , ('\67672','\67679')+    , ('\67862','\67867')     , ('\68160','\68167')+    , ('\68221','\68222')+    , ('\68440','\68447')+    , ('\68472','\68479')+    , ('\69216','\69246')     , ('\119648','\119665')+    , ('\127232','\127242')     ]  -- ------------------------------------------------------------@@ -2393,6 +2935,7 @@     , ('\1475','\1475')     , ('\1478','\1478')     , ('\1523','\1524')+    , ('\1545','\1546')     , ('\1548','\1549')     , ('\1563','\1563')     , ('\1566','\1567')@@ -2400,6 +2943,7 @@     , ('\1748','\1748')     , ('\1792','\1805')     , ('\2039','\2041')+    , ('\2096','\2110')     , ('\2404','\2405')     , ('\2416','\2416')     , ('\3572','\3572')@@ -2408,10 +2952,11 @@     , ('\3844','\3858')     , ('\3898','\3901')     , ('\3973','\3973')-    , ('\4048','\4049')+    , ('\4048','\4052')     , ('\4170','\4175')     , ('\4347','\4347')     , ('\4961','\4968')+    , ('\5120','\5120')     , ('\5741','\5742')     , ('\5787','\5788')     , ('\5867','\5869')@@ -2422,7 +2967,12 @@     , ('\6468','\6469')     , ('\6622','\6623')     , ('\6686','\6687')+    , ('\6816','\6822')+    , ('\6824','\6829')     , ('\7002','\7008')+    , ('\7227','\7231')+    , ('\7294','\7295')+    , ('\7379','\7379')     , ('\8208','\8231')     , ('\8240','\8259')     , ('\8261','\8273')@@ -2432,14 +2982,14 @@     , ('\9001','\9002')     , ('\10088','\10101')     , ('\10181','\10182')-    , ('\10214','\10219')+    , ('\10214','\10223')     , ('\10627','\10648')     , ('\10712','\10715')     , ('\10748','\10749')     , ('\11513','\11516')     , ('\11518','\11519')-    , ('\11776','\11799')-    , ('\11804','\11805')+    , ('\11776','\11822')+    , ('\11824','\11825')     , ('\12289','\12291')     , ('\12296','\12305')     , ('\12308','\12319')@@ -2447,7 +2997,21 @@     , ('\12349','\12349')     , ('\12448','\12448')     , ('\12539','\12539')+    , ('\42238','\42239')+    , ('\42509','\42511')+    , ('\42611','\42611')+    , ('\42622','\42622')+    , ('\42738','\42743')     , ('\43124','\43127')+    , ('\43214','\43215')+    , ('\43256','\43258')+    , ('\43310','\43311')+    , ('\43359','\43359')+    , ('\43457','\43469')+    , ('\43486','\43487')+    , ('\43612','\43615')+    , ('\43742','\43743')+    , ('\44011','\44011')     , ('\64830','\64831')     , ('\65040','\65049')     , ('\65072','\65106')@@ -2468,8 +3032,14 @@     , ('\65792','\65793')     , ('\66463','\66463')     , ('\66512','\66512')+    , ('\67671','\67671')     , ('\67871','\67871')+    , ('\67903','\67903')     , ('\68176','\68184')+    , ('\68223','\68223')+    , ('\68409','\68415')+    , ('\69819','\69820')+    , ('\69822','\69825')     , ('\74864','\74867')     ] @@ -2493,9 +3063,12 @@   = isInList c     [ ('-','-')     , ('\1418','\1418')+    , ('\1470','\1470')+    , ('\5120','\5120')     , ('\6150','\6150')     , ('\8208','\8213')     , ('\11799','\11799')+    , ('\11802','\11802')     , ('\12316','\12316')     , ('\12336','\12336')     , ('\12448','\12448')@@ -2531,6 +3104,8 @@     , ('\10215','\10215')     , ('\10217','\10217')     , ('\10219','\10219')+    , ('\10221','\10221')+    , ('\10223','\10223')     , ('\10628','\10628')     , ('\10630','\10630')     , ('\10632','\10632')@@ -2545,6 +3120,10 @@     , ('\10713','\10713')     , ('\10715','\10715')     , ('\10749','\10749')+    , ('\11811','\11811')+    , ('\11813','\11813')+    , ('\11815','\11815')+    , ('\11817','\11817')     , ('\12297','\12297')     , ('\12299','\12299')     , ('\12301','\12301')@@ -2590,6 +3169,7 @@     , ('\11786','\11786')     , ('\11789','\11789')     , ('\11805','\11805')+    , ('\11809','\11809')     ]  -- ------------------------------------------------------------@@ -2607,6 +3187,7 @@     , ('\11785','\11785')     , ('\11788','\11788')     , ('\11804','\11804')+    , ('\11808','\11808')     ]  -- ------------------------------------------------------------@@ -2629,11 +3210,11 @@     , ('\903','\903')     , ('\1370','\1375')     , ('\1417','\1417')-    , ('\1470','\1470')     , ('\1472','\1472')     , ('\1475','\1475')     , ('\1478','\1478')     , ('\1523','\1524')+    , ('\1545','\1546')     , ('\1548','\1549')     , ('\1563','\1563')     , ('\1566','\1567')@@ -2641,6 +3222,7 @@     , ('\1748','\1748')     , ('\1792','\1805')     , ('\2039','\2041')+    , ('\2096','\2110')     , ('\2404','\2405')     , ('\2416','\2416')     , ('\3572','\3572')@@ -2648,7 +3230,7 @@     , ('\3674','\3675')     , ('\3844','\3858')     , ('\3973','\3973')-    , ('\4048','\4049')+    , ('\4048','\4052')     , ('\4170','\4175')     , ('\4347','\4347')     , ('\4961','\4968')@@ -2662,7 +3244,12 @@     , ('\6468','\6469')     , ('\6622','\6623')     , ('\6686','\6687')+    , ('\6816','\6822')+    , ('\6824','\6829')     , ('\7002','\7008')+    , ('\7227','\7231')+    , ('\7294','\7295')+    , ('\7379','\7379')     , ('\8214','\8215')     , ('\8224','\8231')     , ('\8240','\8248')@@ -2677,10 +3264,29 @@     , ('\11782','\11784')     , ('\11787','\11787')     , ('\11790','\11798')+    , ('\11800','\11801')+    , ('\11803','\11803')+    , ('\11806','\11807')+    , ('\11818','\11822')+    , ('\11824','\11825')     , ('\12289','\12291')     , ('\12349','\12349')     , ('\12539','\12539')+    , ('\42238','\42239')+    , ('\42509','\42511')+    , ('\42611','\42611')+    , ('\42622','\42622')+    , ('\42738','\42743')     , ('\43124','\43127')+    , ('\43214','\43215')+    , ('\43256','\43258')+    , ('\43310','\43311')+    , ('\43359','\43359')+    , ('\43457','\43469')+    , ('\43486','\43487')+    , ('\43612','\43615')+    , ('\43742','\43743')+    , ('\44011','\44011')     , ('\65040','\65046')     , ('\65049','\65049')     , ('\65072','\65072')@@ -2704,8 +3310,14 @@     , ('\65792','\65793')     , ('\66463','\66463')     , ('\66512','\66512')+    , ('\67671','\67671')     , ('\67871','\67871')+    , ('\67903','\67903')     , ('\68176','\68184')+    , ('\68223','\68223')+    , ('\68409','\68415')+    , ('\69819','\69820')+    , ('\69822','\69825')     , ('\74864','\74867')     ] @@ -2737,6 +3349,8 @@     , ('\10214','\10214')     , ('\10216','\10216')     , ('\10218','\10218')+    , ('\10220','\10220')+    , ('\10222','\10222')     , ('\10627','\10627')     , ('\10629','\10629')     , ('\10631','\10631')@@ -2751,6 +3365,10 @@     , ('\10712','\10712')     , ('\10714','\10714')     , ('\10748','\10748')+    , ('\11810','\11810')+    , ('\11812','\11812')+    , ('\11814','\11814')+    , ('\11816','\11816')     , ('\12296','\12296')     , ('\12298','\12298')     , ('\12300','\12300')@@ -2804,23 +3422,27 @@     , ('\247','\247')     , ('\706','\709')     , ('\722','\735')-    , ('\741','\749')+    , ('\741','\747')+    , ('\749','\749')     , ('\751','\767')-    , ('\884','\885')+    , ('\885','\885')     , ('\900','\901')     , ('\1014','\1014')     , ('\1154','\1154')+    , ('\1542','\1544')     , ('\1547','\1547')     , ('\1550','\1551')     , ('\1769','\1769')     , ('\1789','\1790')     , ('\2038','\2038')     , ('\2546','\2547')-    , ('\2554','\2554')+    , ('\2554','\2555')     , ('\2801','\2801')     , ('\2928','\2928')     , ('\3059','\3066')+    , ('\3199','\3199')     , ('\3313','\3314')+    , ('\3449','\3449')     , ('\3647','\3647')     , ('\3841','\3843')     , ('\3859','\3863')@@ -2830,7 +3452,9 @@     , ('\3896','\3896')     , ('\4030','\4037')     , ('\4039','\4044')-    , ('\4047','\4047')+    , ('\4046','\4047')+    , ('\4053','\4056')+    , ('\4254','\4255')     , ('\4960','\4960')     , ('\5008','\5017')     , ('\6107','\6107')@@ -2848,7 +3472,7 @@     , ('\8274','\8274')     , ('\8314','\8316')     , ('\8330','\8332')-    , ('\8352','\8373')+    , ('\8352','\8376')     , ('\8448','\8449')     , ('\8451','\8454')     , ('\8456','\8457')@@ -2862,33 +3486,36 @@     , ('\8506','\8507')     , ('\8512','\8516')     , ('\8522','\8525')+    , ('\8527','\8527')     , ('\8592','\9000')-    , ('\9003','\9191')+    , ('\9003','\9192')     , ('\9216','\9254')     , ('\9280','\9290')     , ('\9372','\9449')-    , ('\9472','\9884')-    , ('\9888','\9906')+    , ('\9472','\9933')+    , ('\9935','\9953')+    , ('\9955','\9955')+    , ('\9960','\9983')     , ('\9985','\9988')     , ('\9990','\9993')     , ('\9996','\10023')     , ('\10025','\10059')     , ('\10061','\10061')     , ('\10063','\10066')-    , ('\10070','\10070')-    , ('\10072','\10078')+    , ('\10070','\10078')     , ('\10081','\10087')     , ('\10132','\10132')     , ('\10136','\10159')     , ('\10161','\10174')     , ('\10176','\10180')     , ('\10183','\10186')+    , ('\10188','\10188')     , ('\10192','\10213')     , ('\10224','\10626')     , ('\10649','\10711')     , ('\10716','\10747')-    , ('\10750','\11034')-    , ('\11040','\11043')+    , ('\10750','\11084')+    , ('\11088','\11097')     , ('\11493','\11498')     , ('\11904','\11929')     , ('\11931','\12019')@@ -2902,10 +3529,9 @@     , ('\12443','\12444')     , ('\12688','\12689')     , ('\12694','\12703')-    , ('\12736','\12751')+    , ('\12736','\12771')     , ('\12800','\12830')-    , ('\12842','\12867')-    , ('\12880','\12880')+    , ('\12842','\12880')     , ('\12896','\12927')     , ('\12938','\12976')     , ('\12992','\13054')@@ -2914,7 +3540,10 @@     , ('\42128','\42182')     , ('\42752','\42774')     , ('\42784','\42785')+    , ('\42889','\42890')     , ('\43048','\43051')+    , ('\43062','\43065')+    , ('\43639','\43641')     , ('\64297','\64297')     , ('\65020','\65021')     , ('\65122','\65122')@@ -2933,9 +3562,11 @@     , ('\65794','\65794')     , ('\65847','\65855')     , ('\65913','\65929')+    , ('\65936','\65947')+    , ('\66000','\66044')     , ('\118784','\119029')     , ('\119040','\119078')-    , ('\119082','\119140')+    , ('\119081','\119140')     , ('\119146','\119148')     , ('\119171','\119172')     , ('\119180','\119209')@@ -2953,6 +3584,25 @@     , ('\120713','\120713')     , ('\120745','\120745')     , ('\120771','\120771')+    , ('\126976','\127019')+    , ('\127024','\127123')+    , ('\127248','\127278')+    , ('\127281','\127281')+    , ('\127293','\127293')+    , ('\127295','\127295')+    , ('\127298','\127298')+    , ('\127302','\127302')+    , ('\127306','\127310')+    , ('\127319','\127319')+    , ('\127327','\127327')+    , ('\127353','\127353')+    , ('\127355','\127356')+    , ('\127359','\127359')+    , ('\127370','\127373')+    , ('\127376','\127376')+    , ('\127488','\127488')+    , ('\127504','\127537')+    , ('\127552','\127560')     ]  -- ------------------------------------------------------------@@ -2964,11 +3614,13 @@     , ('\162','\165')     , ('\1547','\1547')     , ('\2546','\2547')+    , ('\2555','\2555')     , ('\2801','\2801')     , ('\3065','\3065')     , ('\3647','\3647')     , ('\6107','\6107')-    , ('\8352','\8373')+    , ('\8352','\8376')+    , ('\43064','\43064')     , ('\65020','\65020')     , ('\65129','\65129')     , ('\65284','\65284')@@ -2989,9 +3641,10 @@     , ('\184','\184')     , ('\706','\709')     , ('\722','\735')-    , ('\741','\749')+    , ('\741','\747')+    , ('\749','\749')     , ('\751','\767')-    , ('\884','\885')+    , ('\885','\885')     , ('\900','\901')     , ('\8125','\8125')     , ('\8127','\8129')@@ -3002,6 +3655,7 @@     , ('\12443','\12444')     , ('\42752','\42774')     , ('\42784','\42785')+    , ('\42889','\42890')     , ('\65342','\65342')     , ('\65344','\65344')     , ('\65507','\65507')@@ -3021,6 +3675,7 @@     , ('\215','\215')     , ('\247','\247')     , ('\1014','\1014')+    , ('\1542','\1544')     , ('\8260','\8260')     , ('\8274','\8274')     , ('\8314','\8316')@@ -3048,12 +3703,15 @@     , ('\9839','\9839')     , ('\10176','\10180')     , ('\10183','\10186')+    , ('\10188','\10188')     , ('\10192','\10213')     , ('\10224','\10239')     , ('\10496','\10626')     , ('\10649','\10711')     , ('\10716','\10747')     , ('\10750','\11007')+    , ('\11056','\11076')+    , ('\11079','\11084')     , ('\64297','\64297')     , ('\65122','\65122')     , ('\65124','\65126')@@ -3094,7 +3752,9 @@     , ('\2928','\2928')     , ('\3059','\3064')     , ('\3066','\3066')+    , ('\3199','\3199')     , ('\3313','\3314')+    , ('\3449','\3449')     , ('\3841','\3843')     , ('\3859','\3863')     , ('\3866','\3871')@@ -3103,7 +3763,9 @@     , ('\3896','\3896')     , ('\4030','\4037')     , ('\4039','\4044')-    , ('\4047','\4047')+    , ('\4046','\4047')+    , ('\4053','\4056')+    , ('\4254','\4255')     , ('\4960','\4960')     , ('\5008','\5017')     , ('\6464','\6464')@@ -3123,6 +3785,7 @@     , ('\8506','\8507')     , ('\8522','\8522')     , ('\8524','\8525')+    , ('\8527','\8527')     , ('\8597','\8601')     , ('\8604','\8607')     , ('\8609','\8610')@@ -3138,7 +3801,7 @@     , ('\9003','\9083')     , ('\9085','\9114')     , ('\9140','\9179')-    , ('\9186','\9191')+    , ('\9186','\9192')     , ('\9216','\9254')     , ('\9280','\9290')     , ('\9372','\9449')@@ -3146,23 +3809,25 @@     , ('\9656','\9664')     , ('\9666','\9719')     , ('\9728','\9838')-    , ('\9840','\9884')-    , ('\9888','\9906')+    , ('\9840','\9933')+    , ('\9935','\9953')+    , ('\9955','\9955')+    , ('\9960','\9983')     , ('\9985','\9988')     , ('\9990','\9993')     , ('\9996','\10023')     , ('\10025','\10059')     , ('\10061','\10061')     , ('\10063','\10066')-    , ('\10070','\10070')-    , ('\10072','\10078')+    , ('\10070','\10078')     , ('\10081','\10087')     , ('\10132','\10132')     , ('\10136','\10159')     , ('\10161','\10174')     , ('\10240','\10495')-    , ('\11008','\11034')-    , ('\11040','\11043')+    , ('\11008','\11055')+    , ('\11077','\11078')+    , ('\11088','\11097')     , ('\11493','\11498')     , ('\11904','\11929')     , ('\11931','\12019')@@ -3175,10 +3840,9 @@     , ('\12350','\12351')     , ('\12688','\12689')     , ('\12694','\12703')-    , ('\12736','\12751')+    , ('\12736','\12771')     , ('\12800','\12830')-    , ('\12842','\12867')-    , ('\12880','\12880')+    , ('\12842','\12880')     , ('\12896','\12927')     , ('\12938','\12976')     , ('\12992','\13054')@@ -3186,6 +3850,9 @@     , ('\19904','\19967')     , ('\42128','\42182')     , ('\43048','\43051')+    , ('\43062','\43063')+    , ('\43065','\43065')+    , ('\43639','\43641')     , ('\65021','\65021')     , ('\65508','\65508')     , ('\65512','\65512')@@ -3194,9 +3861,11 @@     , ('\65794','\65794')     , ('\65847','\65855')     , ('\65913','\65929')+    , ('\65936','\65947')+    , ('\66000','\66044')     , ('\118784','\119029')     , ('\119040','\119078')-    , ('\119082','\119140')+    , ('\119081','\119140')     , ('\119146','\119148')     , ('\119171','\119172')     , ('\119180','\119209')@@ -3204,6 +3873,25 @@     , ('\119296','\119361')     , ('\119365','\119365')     , ('\119552','\119638')+    , ('\126976','\127019')+    , ('\127024','\127123')+    , ('\127248','\127278')+    , ('\127281','\127281')+    , ('\127293','\127293')+    , ('\127295','\127295')+    , ('\127298','\127298')+    , ('\127302','\127302')+    , ('\127306','\127310')+    , ('\127319','\127319')+    , ('\127327','\127327')+    , ('\127353','\127353')+    , ('\127355','\127356')+    , ('\127359','\127359')+    , ('\127370','\127373')+    , ('\127376','\127376')+    , ('\127488','\127488')+    , ('\127504','\127537')+    , ('\127552','\127560')     ]  -- ------------------------------------------------------------
− src/Text/XML/HXT/RelaxNG/Unicode/GenBlocks.hs
@@ -1,96 +0,0 @@--- --------------------------------------------------------------{- |-   Module     : GenBlocks-   Copyright  : Copyright (C) 2005 Uwe Schmidt-   License    : MIT--   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-   Stability  : experimental-   Portability: portable-   Version    : $Id$--   Generator for Unicode Blocks---}---- --------------------------------------------------------------module Main-where--import System.IO--main :: IO ()-main-    = do-      c <- readFile "Blocks.txt"-      putStrLn $ genBlocks c--genBlocks	:: String -> String-genBlocks-    = ( header ++)-      . (++ trailer)-      . processBlockDefs-      . filter isBlock-      . lines-    where-    isBlock l-	= take 1 l /= ['#']-	  &&-	  not (all (`elem` " \t") l)-    header-	= unlines-	  [ cmt-	  , ""-	  , "{- |"-	  , "   Module     : Text.XML.HXT.RelaxNG.Unicode.Blocks"-	  , "   Copyright  : Copyright (C) 2005 Uwe Schmidt"-	  , "   License    : MIT"-	  , ""-	  , "   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)"-	  , "   Stability  : experimental"-	  , "   Portability: portable"-	  , "   Version    : $Id$"-	  , ""-	  , "   Unicode Code Blocks"-	  , ""-	  , "   don't edit this module"-	  , "   it's generated from 'http:\\/\\/www.unicode.org\\/Public\\/UNIDATA\\/Blocks.txt'"-	  , "-}"-	  , ""-	  , cmt-	  , ""-	  , "module Text.XML.HXT.RelaxNG.Unicode.Blocks"-	  , "  ( codeBlocks )"-	  , "where"-	  , ""-	  , cmt-	  , ""-	  , "codeBlocks	:: [(String, (Char, Char))]"-	  , "codeBlocks ="-	  ]-    trailer-	= unlines-	  [ ""-	  , cmt-	  ]-    processBlockDefs ls-	= "    [ " ++ join "\n    , " (map entry ls) ++ "\n    ]\n"-	where-	join js-	    = foldr1 (\ x y -> x ++ js ++ y)-	entry l-	    = "( " ++ show name ++ ",\t( '\\x" ++ lb ++ "', '\\x" ++ ub ++ "') )"-	    where-	    (rng, name') = break (==';') l-	    (lb,ub')     = break (=='.') rng-	    ub           = drop 2 ub'-	    name         = filter legalChar . drop 1 $ name'-	    legalChar c	 = 'A' <= c && c <= 'Z' ||-			   'a' <= c && c <= 'z' ||-			   '0' <= c && c <= '9' ||-			   '-' == c-	    -cmt :: String-cmt = "-- " ++ replicate 60 '-'
− src/Text/XML/HXT/RelaxNG/Unicode/GenCharProps.hs
@@ -1,154 +0,0 @@--- --------------------------------------------------------------{- |-   Module     : GenCharProps-   Copyright  : Copyright (C) 2005 Uwe Schmidt-   License    : MIT--   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-   Stability  : experimental-   Portability: portable-   Version    : $Id$--   Generator for Unicode Character Properties---}---- --------------------------------------------------------------module Main-where--import qualified Data.Map  as M-import qualified Data.List as L--import System.IO--main :: IO()-main-    = do-      c <- readFile "UnicodeData.txt"-      putStr $ genCharProps c--genCharProps	:: String -> String-genCharProps-    = unlines-      . processCharProps-      . concatMap parseCharDescr-      . lines-    where-    parseCharDescr	:: String -> [(String, Char)]-    parseCharDescr l-	| length cols < 3-	    = []-	| otherwise-	    =  [(nn,c),(n,c)]-	where-	cols = columns (== ';') l-	c    :: Char-	c    = read ("'\\x" ++ head  cols ++ "'")-	nn   = cols !! 2-	n    = take 1 nn-    processCharProps l-	= ( header1-	    ++-	    [ genExp . map fst $ l1 ]-	    ++-	    header2-	    ++-	    map (uncurry genPred) l1-	  )-	where-        l1 = mkRng . M.toAscList . mkCharMap $ l--header1, header2 :: [String]-header1-    =  [ cmt-       , ""-       , "{- |"-       , "   Module     : Text.XML.HXT.RelaxNG.Unicode.CharProps"-       , "   Copyright  : Copyright (C) 2005 Uwe Schmidt"-       , "   License    : MIT"-       , ""-       , "   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)"-       , "   Stability  : experimental"-       , "   Portability: portable"-       , "   Version    : $Id$"-       , ""-       , "   Unicode character properties"-       , ""-       , "   don't edit this module"-       , "   it's generated from 'http:\\/\\/www.unicode.org\\/Public\\/UNIDATA\\/UnicodeData.txt'"-       , ""-       , "-}"-       , ""-       , cmt-       , ""-       , "module Text.XML.HXT.RelaxNG.Unicode.CharProps"-       ]--header2-    = [ "where"-      , ""-      , cmt-      , ""-      , "isInList	:: Char -> [(Char, Char)] -> Bool"-      , "isInList i ="-      , "   foldr (\\(lb, ub) b -> i >= lb && (i <= ub || b)) False"-      , ""-      , cmt-      , ""-      ]--cmt :: String-cmt = "-- " ++ replicate 60 '-'-	-columns	:: (Char -> Bool) -> String -> [String]-columns _ [] = []-columns p xs-    = c : columns p (drop 1 r)-    where-    (c, r) = break p xs--type CharMap	= M.Map String [Char]--mkCharMap	:: [(String, Char)] -> CharMap-mkCharMap-    = foldl ins M.empty-    where-    ins :: CharMap -> (String, Char) -> CharMap-    ins m (k, v)-	= M.insertWith (++) k [v] m--mkRng	:: [(String,[Char])] -> [(String,[(Char, Char)])]-mkRng l-    = zip (map fst l) (map (charRngs . L.sort . snd) l)--charRngs	:: [Char] -> [(Char, Char)]-charRngs []	= []-charRngs (x:xs)	= charRng x xs-                  where-		  charRng y []		= (x,y) : []-		  charRng y xs'@(x1:xs1)-		      | x1 == succ y	= charRng x1 xs1-		      | otherwise	= (x,y) : charRngs xs'--genPred	:: String -> [(Char, Char)] -> String-genPred n rngs-    = unlines $-      [ "isUnicode" ++ n ++ "\t:: Char -> Bool"-      , "isUnicode" ++ n ++ " c"-      , "  = isInList c"-      , "    [ " ++ (join "\n    , " . map show) rngs-      , "    ]"-      , ""-      , cmt-      ]--join	:: String -> [String] -> String-join js-    = foldr1 (\ x y -> x ++ js ++ y)--genExp	:: [String] -> String-genExp ns-    = "  ( " ++ join "\n  , " (map ("isUnicode" ++) ns) ++ "\n  )"
− src/Text/XML/HXT/RelaxNG/Unicode/Makefile
@@ -1,32 +0,0 @@--target1 = ./Blocks.hs-target2 = ./CharProps.hs--targets = $(target1) $(target2)--targetDir = $(shell dirname $(target1))--all : $(targets)--Blocks.txt	:-	wget http://www.unicode.org/Public/UNIDATA/Blocks.txt--UnicodeData.txt	:-	wget http://www.unicode.org/Public/UNIDATA/UnicodeData.txt--$(target1)	: Blocks.txt ./genBlocks-	[ -d $(targetDir) ] || mkdir -p $(targetDir)-	./genBlocks > $@--$(target2)	: UnicodeData.txt ./genCharProps-	[ -d $(targetDir) ] || mkdir -p $(targetDir)-	./genCharProps > $@--./genBlocks	: GenBlocks.hs-	ghc -Wall --make -o $@ $<--./genCharProps	: GenCharProps.hs-	ghc -Wall --make -o $@ $<--clean	:-	rm -f $(targets) ./genBlocks ./genCharProps
− src/Text/XML/HXT/RelaxNG/Unicode/UnicodeData.txt
@@ -1,17720 +0,0 @@-0000;<control>;Cc;0;BN;;;;;N;NULL;;;;-0001;<control>;Cc;0;BN;;;;;N;START OF HEADING;;;;-0002;<control>;Cc;0;BN;;;;;N;START OF TEXT;;;;-0003;<control>;Cc;0;BN;;;;;N;END OF TEXT;;;;-0004;<control>;Cc;0;BN;;;;;N;END OF TRANSMISSION;;;;-0005;<control>;Cc;0;BN;;;;;N;ENQUIRY;;;;-0006;<control>;Cc;0;BN;;;;;N;ACKNOWLEDGE;;;;-0007;<control>;Cc;0;BN;;;;;N;BELL;;;;-0008;<control>;Cc;0;BN;;;;;N;BACKSPACE;;;;-0009;<control>;Cc;0;S;;;;;N;CHARACTER TABULATION;;;;-000A;<control>;Cc;0;B;;;;;N;LINE FEED (LF);;;;-000B;<control>;Cc;0;S;;;;;N;LINE TABULATION;;;;-000C;<control>;Cc;0;WS;;;;;N;FORM FEED (FF);;;;-000D;<control>;Cc;0;B;;;;;N;CARRIAGE RETURN (CR);;;;-000E;<control>;Cc;0;BN;;;;;N;SHIFT OUT;;;;-000F;<control>;Cc;0;BN;;;;;N;SHIFT IN;;;;-0010;<control>;Cc;0;BN;;;;;N;DATA LINK ESCAPE;;;;-0011;<control>;Cc;0;BN;;;;;N;DEVICE CONTROL ONE;;;;-0012;<control>;Cc;0;BN;;;;;N;DEVICE CONTROL TWO;;;;-0013;<control>;Cc;0;BN;;;;;N;DEVICE CONTROL THREE;;;;-0014;<control>;Cc;0;BN;;;;;N;DEVICE CONTROL FOUR;;;;-0015;<control>;Cc;0;BN;;;;;N;NEGATIVE ACKNOWLEDGE;;;;-0016;<control>;Cc;0;BN;;;;;N;SYNCHRONOUS IDLE;;;;-0017;<control>;Cc;0;BN;;;;;N;END OF TRANSMISSION BLOCK;;;;-0018;<control>;Cc;0;BN;;;;;N;CANCEL;;;;-0019;<control>;Cc;0;BN;;;;;N;END OF MEDIUM;;;;-001A;<control>;Cc;0;BN;;;;;N;SUBSTITUTE;;;;-001B;<control>;Cc;0;BN;;;;;N;ESCAPE;;;;-001C;<control>;Cc;0;B;;;;;N;INFORMATION SEPARATOR FOUR;;;;-001D;<control>;Cc;0;B;;;;;N;INFORMATION SEPARATOR THREE;;;;-001E;<control>;Cc;0;B;;;;;N;INFORMATION SEPARATOR TWO;;;;-001F;<control>;Cc;0;S;;;;;N;INFORMATION SEPARATOR ONE;;;;-0020;SPACE;Zs;0;WS;;;;;N;;;;;-0021;EXCLAMATION MARK;Po;0;ON;;;;;N;;;;;-0022;QUOTATION MARK;Po;0;ON;;;;;N;;;;;-0023;NUMBER SIGN;Po;0;ET;;;;;N;;;;;-0024;DOLLAR SIGN;Sc;0;ET;;;;;N;;;;;-0025;PERCENT SIGN;Po;0;ET;;;;;N;;;;;-0026;AMPERSAND;Po;0;ON;;;;;N;;;;;-0027;APOSTROPHE;Po;0;ON;;;;;N;APOSTROPHE-QUOTE;;;;-0028;LEFT PARENTHESIS;Ps;0;ON;;;;;Y;OPENING PARENTHESIS;;;;-0029;RIGHT PARENTHESIS;Pe;0;ON;;;;;Y;CLOSING PARENTHESIS;;;;-002A;ASTERISK;Po;0;ON;;;;;N;;;;;-002B;PLUS SIGN;Sm;0;ES;;;;;N;;;;;-002C;COMMA;Po;0;CS;;;;;N;;;;;-002D;HYPHEN-MINUS;Pd;0;ES;;;;;N;;;;;-002E;FULL STOP;Po;0;CS;;;;;N;PERIOD;;;;-002F;SOLIDUS;Po;0;CS;;;;;N;SLASH;;;;-0030;DIGIT ZERO;Nd;0;EN;;0;0;0;N;;;;;-0031;DIGIT ONE;Nd;0;EN;;1;1;1;N;;;;;-0032;DIGIT TWO;Nd;0;EN;;2;2;2;N;;;;;-0033;DIGIT THREE;Nd;0;EN;;3;3;3;N;;;;;-0034;DIGIT FOUR;Nd;0;EN;;4;4;4;N;;;;;-0035;DIGIT FIVE;Nd;0;EN;;5;5;5;N;;;;;-0036;DIGIT SIX;Nd;0;EN;;6;6;6;N;;;;;-0037;DIGIT SEVEN;Nd;0;EN;;7;7;7;N;;;;;-0038;DIGIT EIGHT;Nd;0;EN;;8;8;8;N;;;;;-0039;DIGIT NINE;Nd;0;EN;;9;9;9;N;;;;;-003A;COLON;Po;0;CS;;;;;N;;;;;-003B;SEMICOLON;Po;0;ON;;;;;N;;;;;-003C;LESS-THAN SIGN;Sm;0;ON;;;;;Y;;;;;-003D;EQUALS SIGN;Sm;0;ON;;;;;N;;;;;-003E;GREATER-THAN SIGN;Sm;0;ON;;;;;Y;;;;;-003F;QUESTION MARK;Po;0;ON;;;;;N;;;;;-0040;COMMERCIAL AT;Po;0;ON;;;;;N;;;;;-0041;LATIN CAPITAL LETTER A;Lu;0;L;;;;;N;;;;0061;-0042;LATIN CAPITAL LETTER B;Lu;0;L;;;;;N;;;;0062;-0043;LATIN CAPITAL LETTER C;Lu;0;L;;;;;N;;;;0063;-0044;LATIN CAPITAL LETTER D;Lu;0;L;;;;;N;;;;0064;-0045;LATIN CAPITAL LETTER E;Lu;0;L;;;;;N;;;;0065;-0046;LATIN CAPITAL LETTER F;Lu;0;L;;;;;N;;;;0066;-0047;LATIN CAPITAL LETTER G;Lu;0;L;;;;;N;;;;0067;-0048;LATIN CAPITAL LETTER H;Lu;0;L;;;;;N;;;;0068;-0049;LATIN CAPITAL LETTER I;Lu;0;L;;;;;N;;;;0069;-004A;LATIN CAPITAL LETTER J;Lu;0;L;;;;;N;;;;006A;-004B;LATIN CAPITAL LETTER K;Lu;0;L;;;;;N;;;;006B;-004C;LATIN CAPITAL LETTER L;Lu;0;L;;;;;N;;;;006C;-004D;LATIN CAPITAL LETTER M;Lu;0;L;;;;;N;;;;006D;-004E;LATIN CAPITAL LETTER N;Lu;0;L;;;;;N;;;;006E;-004F;LATIN CAPITAL LETTER O;Lu;0;L;;;;;N;;;;006F;-0050;LATIN CAPITAL LETTER P;Lu;0;L;;;;;N;;;;0070;-0051;LATIN CAPITAL LETTER Q;Lu;0;L;;;;;N;;;;0071;-0052;LATIN CAPITAL LETTER R;Lu;0;L;;;;;N;;;;0072;-0053;LATIN CAPITAL LETTER S;Lu;0;L;;;;;N;;;;0073;-0054;LATIN CAPITAL LETTER T;Lu;0;L;;;;;N;;;;0074;-0055;LATIN CAPITAL LETTER U;Lu;0;L;;;;;N;;;;0075;-0056;LATIN CAPITAL LETTER V;Lu;0;L;;;;;N;;;;0076;-0057;LATIN CAPITAL LETTER W;Lu;0;L;;;;;N;;;;0077;-0058;LATIN CAPITAL LETTER X;Lu;0;L;;;;;N;;;;0078;-0059;LATIN CAPITAL LETTER Y;Lu;0;L;;;;;N;;;;0079;-005A;LATIN CAPITAL LETTER Z;Lu;0;L;;;;;N;;;;007A;-005B;LEFT SQUARE BRACKET;Ps;0;ON;;;;;Y;OPENING SQUARE BRACKET;;;;-005C;REVERSE SOLIDUS;Po;0;ON;;;;;N;BACKSLASH;;;;-005D;RIGHT SQUARE BRACKET;Pe;0;ON;;;;;Y;CLOSING SQUARE BRACKET;;;;-005E;CIRCUMFLEX ACCENT;Sk;0;ON;;;;;N;SPACING CIRCUMFLEX;;;;-005F;LOW LINE;Pc;0;ON;;;;;N;SPACING UNDERSCORE;;;;-0060;GRAVE ACCENT;Sk;0;ON;;;;;N;SPACING GRAVE;;;;-0061;LATIN SMALL LETTER A;Ll;0;L;;;;;N;;;0041;;0041-0062;LATIN SMALL LETTER B;Ll;0;L;;;;;N;;;0042;;0042-0063;LATIN SMALL LETTER C;Ll;0;L;;;;;N;;;0043;;0043-0064;LATIN SMALL LETTER D;Ll;0;L;;;;;N;;;0044;;0044-0065;LATIN SMALL LETTER E;Ll;0;L;;;;;N;;;0045;;0045-0066;LATIN SMALL LETTER F;Ll;0;L;;;;;N;;;0046;;0046-0067;LATIN SMALL LETTER G;Ll;0;L;;;;;N;;;0047;;0047-0068;LATIN SMALL LETTER H;Ll;0;L;;;;;N;;;0048;;0048-0069;LATIN SMALL LETTER I;Ll;0;L;;;;;N;;;0049;;0049-006A;LATIN SMALL LETTER J;Ll;0;L;;;;;N;;;004A;;004A-006B;LATIN SMALL LETTER K;Ll;0;L;;;;;N;;;004B;;004B-006C;LATIN SMALL LETTER L;Ll;0;L;;;;;N;;;004C;;004C-006D;LATIN SMALL LETTER M;Ll;0;L;;;;;N;;;004D;;004D-006E;LATIN SMALL LETTER N;Ll;0;L;;;;;N;;;004E;;004E-006F;LATIN SMALL LETTER O;Ll;0;L;;;;;N;;;004F;;004F-0070;LATIN SMALL LETTER P;Ll;0;L;;;;;N;;;0050;;0050-0071;LATIN SMALL LETTER Q;Ll;0;L;;;;;N;;;0051;;0051-0072;LATIN SMALL LETTER R;Ll;0;L;;;;;N;;;0052;;0052-0073;LATIN SMALL LETTER S;Ll;0;L;;;;;N;;;0053;;0053-0074;LATIN SMALL LETTER T;Ll;0;L;;;;;N;;;0054;;0054-0075;LATIN SMALL LETTER U;Ll;0;L;;;;;N;;;0055;;0055-0076;LATIN SMALL LETTER V;Ll;0;L;;;;;N;;;0056;;0056-0077;LATIN SMALL LETTER W;Ll;0;L;;;;;N;;;0057;;0057-0078;LATIN SMALL LETTER X;Ll;0;L;;;;;N;;;0058;;0058-0079;LATIN SMALL LETTER Y;Ll;0;L;;;;;N;;;0059;;0059-007A;LATIN SMALL LETTER Z;Ll;0;L;;;;;N;;;005A;;005A-007B;LEFT CURLY BRACKET;Ps;0;ON;;;;;Y;OPENING CURLY BRACKET;;;;-007C;VERTICAL LINE;Sm;0;ON;;;;;N;VERTICAL BAR;;;;-007D;RIGHT CURLY BRACKET;Pe;0;ON;;;;;Y;CLOSING CURLY BRACKET;;;;-007E;TILDE;Sm;0;ON;;;;;N;;;;;-007F;<control>;Cc;0;BN;;;;;N;DELETE;;;;-0080;<control>;Cc;0;BN;;;;;N;;;;;-0081;<control>;Cc;0;BN;;;;;N;;;;;-0082;<control>;Cc;0;BN;;;;;N;BREAK PERMITTED HERE;;;;-0083;<control>;Cc;0;BN;;;;;N;NO BREAK HERE;;;;-0084;<control>;Cc;0;BN;;;;;N;;;;;-0085;<control>;Cc;0;B;;;;;N;NEXT LINE (NEL);;;;-0086;<control>;Cc;0;BN;;;;;N;START OF SELECTED AREA;;;;-0087;<control>;Cc;0;BN;;;;;N;END OF SELECTED AREA;;;;-0088;<control>;Cc;0;BN;;;;;N;CHARACTER TABULATION SET;;;;-0089;<control>;Cc;0;BN;;;;;N;CHARACTER TABULATION WITH JUSTIFICATION;;;;-008A;<control>;Cc;0;BN;;;;;N;LINE TABULATION SET;;;;-008B;<control>;Cc;0;BN;;;;;N;PARTIAL LINE FORWARD;;;;-008C;<control>;Cc;0;BN;;;;;N;PARTIAL LINE BACKWARD;;;;-008D;<control>;Cc;0;BN;;;;;N;REVERSE LINE FEED;;;;-008E;<control>;Cc;0;BN;;;;;N;SINGLE SHIFT TWO;;;;-008F;<control>;Cc;0;BN;;;;;N;SINGLE SHIFT THREE;;;;-0090;<control>;Cc;0;BN;;;;;N;DEVICE CONTROL STRING;;;;-0091;<control>;Cc;0;BN;;;;;N;PRIVATE USE ONE;;;;-0092;<control>;Cc;0;BN;;;;;N;PRIVATE USE TWO;;;;-0093;<control>;Cc;0;BN;;;;;N;SET TRANSMIT STATE;;;;-0094;<control>;Cc;0;BN;;;;;N;CANCEL CHARACTER;;;;-0095;<control>;Cc;0;BN;;;;;N;MESSAGE WAITING;;;;-0096;<control>;Cc;0;BN;;;;;N;START OF GUARDED AREA;;;;-0097;<control>;Cc;0;BN;;;;;N;END OF GUARDED AREA;;;;-0098;<control>;Cc;0;BN;;;;;N;START OF STRING;;;;-0099;<control>;Cc;0;BN;;;;;N;;;;;-009A;<control>;Cc;0;BN;;;;;N;SINGLE CHARACTER INTRODUCER;;;;-009B;<control>;Cc;0;BN;;;;;N;CONTROL SEQUENCE INTRODUCER;;;;-009C;<control>;Cc;0;BN;;;;;N;STRING TERMINATOR;;;;-009D;<control>;Cc;0;BN;;;;;N;OPERATING SYSTEM COMMAND;;;;-009E;<control>;Cc;0;BN;;;;;N;PRIVACY MESSAGE;;;;-009F;<control>;Cc;0;BN;;;;;N;APPLICATION PROGRAM COMMAND;;;;-00A0;NO-BREAK SPACE;Zs;0;CS;<noBreak> 0020;;;;N;NON-BREAKING SPACE;;;;-00A1;INVERTED EXCLAMATION MARK;Po;0;ON;;;;;N;;;;;-00A2;CENT SIGN;Sc;0;ET;;;;;N;;;;;-00A3;POUND SIGN;Sc;0;ET;;;;;N;;;;;-00A4;CURRENCY SIGN;Sc;0;ET;;;;;N;;;;;-00A5;YEN SIGN;Sc;0;ET;;;;;N;;;;;-00A6;BROKEN BAR;So;0;ON;;;;;N;BROKEN VERTICAL BAR;;;;-00A7;SECTION SIGN;So;0;ON;;;;;N;;;;;-00A8;DIAERESIS;Sk;0;ON;<compat> 0020 0308;;;;N;SPACING DIAERESIS;;;;-00A9;COPYRIGHT SIGN;So;0;ON;;;;;N;;;;;-00AA;FEMININE ORDINAL INDICATOR;Ll;0;L;<super> 0061;;;;N;;;;;-00AB;LEFT-POINTING DOUBLE ANGLE QUOTATION MARK;Pi;0;ON;;;;;Y;LEFT POINTING GUILLEMET;*;;;-00AC;NOT SIGN;Sm;0;ON;;;;;N;;;;;-00AD;SOFT HYPHEN;Cf;0;BN;;;;;N;;;;;-00AE;REGISTERED SIGN;So;0;ON;;;;;N;REGISTERED TRADE MARK SIGN;;;;-00AF;MACRON;Sk;0;ON;<compat> 0020 0304;;;;N;SPACING MACRON;;;;-00B0;DEGREE SIGN;So;0;ET;;;;;N;;;;;-00B1;PLUS-MINUS SIGN;Sm;0;ET;;;;;N;PLUS-OR-MINUS SIGN;;;;-00B2;SUPERSCRIPT TWO;No;0;EN;<super> 0032;;2;2;N;SUPERSCRIPT DIGIT TWO;;;;-00B3;SUPERSCRIPT THREE;No;0;EN;<super> 0033;;3;3;N;SUPERSCRIPT DIGIT THREE;;;;-00B4;ACUTE ACCENT;Sk;0;ON;<compat> 0020 0301;;;;N;SPACING ACUTE;;;;-00B5;MICRO SIGN;Ll;0;L;<compat> 03BC;;;;N;;;039C;;039C-00B6;PILCROW SIGN;So;0;ON;;;;;N;PARAGRAPH SIGN;;;;-00B7;MIDDLE DOT;Po;0;ON;;;;;N;;;;;-00B8;CEDILLA;Sk;0;ON;<compat> 0020 0327;;;;N;SPACING CEDILLA;;;;-00B9;SUPERSCRIPT ONE;No;0;EN;<super> 0031;;1;1;N;SUPERSCRIPT DIGIT ONE;;;;-00BA;MASCULINE ORDINAL INDICATOR;Ll;0;L;<super> 006F;;;;N;;;;;-00BB;RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK;Pf;0;ON;;;;;Y;RIGHT POINTING GUILLEMET;*;;;-00BC;VULGAR FRACTION ONE QUARTER;No;0;ON;<fraction> 0031 2044 0034;;;1/4;N;FRACTION ONE QUARTER;;;;-00BD;VULGAR FRACTION ONE HALF;No;0;ON;<fraction> 0031 2044 0032;;;1/2;N;FRACTION ONE HALF;;;;-00BE;VULGAR FRACTION THREE QUARTERS;No;0;ON;<fraction> 0033 2044 0034;;;3/4;N;FRACTION THREE QUARTERS;;;;-00BF;INVERTED QUESTION MARK;Po;0;ON;;;;;N;;;;;-00C0;LATIN CAPITAL LETTER A WITH GRAVE;Lu;0;L;0041 0300;;;;N;LATIN CAPITAL LETTER A GRAVE;;;00E0;-00C1;LATIN CAPITAL LETTER A WITH ACUTE;Lu;0;L;0041 0301;;;;N;LATIN CAPITAL LETTER A ACUTE;;;00E1;-00C2;LATIN CAPITAL LETTER A WITH CIRCUMFLEX;Lu;0;L;0041 0302;;;;N;LATIN CAPITAL LETTER A CIRCUMFLEX;;;00E2;-00C3;LATIN CAPITAL LETTER A WITH TILDE;Lu;0;L;0041 0303;;;;N;LATIN CAPITAL LETTER A TILDE;;;00E3;-00C4;LATIN CAPITAL LETTER A WITH DIAERESIS;Lu;0;L;0041 0308;;;;N;LATIN CAPITAL LETTER A DIAERESIS;;;00E4;-00C5;LATIN CAPITAL LETTER A WITH RING ABOVE;Lu;0;L;0041 030A;;;;N;LATIN CAPITAL LETTER A RING;;;00E5;-00C6;LATIN CAPITAL LETTER AE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER A E;ash *;;00E6;-00C7;LATIN CAPITAL LETTER C WITH CEDILLA;Lu;0;L;0043 0327;;;;N;LATIN CAPITAL LETTER C CEDILLA;;;00E7;-00C8;LATIN CAPITAL LETTER E WITH GRAVE;Lu;0;L;0045 0300;;;;N;LATIN CAPITAL LETTER E GRAVE;;;00E8;-00C9;LATIN CAPITAL LETTER E WITH ACUTE;Lu;0;L;0045 0301;;;;N;LATIN CAPITAL LETTER E ACUTE;;;00E9;-00CA;LATIN CAPITAL LETTER E WITH CIRCUMFLEX;Lu;0;L;0045 0302;;;;N;LATIN CAPITAL LETTER E CIRCUMFLEX;;;00EA;-00CB;LATIN CAPITAL LETTER E WITH DIAERESIS;Lu;0;L;0045 0308;;;;N;LATIN CAPITAL LETTER E DIAERESIS;;;00EB;-00CC;LATIN CAPITAL LETTER I WITH GRAVE;Lu;0;L;0049 0300;;;;N;LATIN CAPITAL LETTER I GRAVE;;;00EC;-00CD;LATIN CAPITAL LETTER I WITH ACUTE;Lu;0;L;0049 0301;;;;N;LATIN CAPITAL LETTER I ACUTE;;;00ED;-00CE;LATIN CAPITAL LETTER I WITH CIRCUMFLEX;Lu;0;L;0049 0302;;;;N;LATIN CAPITAL LETTER I CIRCUMFLEX;;;00EE;-00CF;LATIN CAPITAL LETTER I WITH DIAERESIS;Lu;0;L;0049 0308;;;;N;LATIN CAPITAL LETTER I DIAERESIS;;;00EF;-00D0;LATIN CAPITAL LETTER ETH;Lu;0;L;;;;;N;;Icelandic;;00F0;-00D1;LATIN CAPITAL LETTER N WITH TILDE;Lu;0;L;004E 0303;;;;N;LATIN CAPITAL LETTER N TILDE;;;00F1;-00D2;LATIN CAPITAL LETTER O WITH GRAVE;Lu;0;L;004F 0300;;;;N;LATIN CAPITAL LETTER O GRAVE;;;00F2;-00D3;LATIN CAPITAL LETTER O WITH ACUTE;Lu;0;L;004F 0301;;;;N;LATIN CAPITAL LETTER O ACUTE;;;00F3;-00D4;LATIN CAPITAL LETTER O WITH CIRCUMFLEX;Lu;0;L;004F 0302;;;;N;LATIN CAPITAL LETTER O CIRCUMFLEX;;;00F4;-00D5;LATIN CAPITAL LETTER O WITH TILDE;Lu;0;L;004F 0303;;;;N;LATIN CAPITAL LETTER O TILDE;;;00F5;-00D6;LATIN CAPITAL LETTER O WITH DIAERESIS;Lu;0;L;004F 0308;;;;N;LATIN CAPITAL LETTER O DIAERESIS;;;00F6;-00D7;MULTIPLICATION SIGN;Sm;0;ON;;;;;N;;;;;-00D8;LATIN CAPITAL LETTER O WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER O SLASH;;;00F8;-00D9;LATIN CAPITAL LETTER U WITH GRAVE;Lu;0;L;0055 0300;;;;N;LATIN CAPITAL LETTER U GRAVE;;;00F9;-00DA;LATIN CAPITAL LETTER U WITH ACUTE;Lu;0;L;0055 0301;;;;N;LATIN CAPITAL LETTER U ACUTE;;;00FA;-00DB;LATIN CAPITAL LETTER U WITH CIRCUMFLEX;Lu;0;L;0055 0302;;;;N;LATIN CAPITAL LETTER U CIRCUMFLEX;;;00FB;-00DC;LATIN CAPITAL LETTER U WITH DIAERESIS;Lu;0;L;0055 0308;;;;N;LATIN CAPITAL LETTER U DIAERESIS;;;00FC;-00DD;LATIN CAPITAL LETTER Y WITH ACUTE;Lu;0;L;0059 0301;;;;N;LATIN CAPITAL LETTER Y ACUTE;;;00FD;-00DE;LATIN CAPITAL LETTER THORN;Lu;0;L;;;;;N;;Icelandic;;00FE;-00DF;LATIN SMALL LETTER SHARP S;Ll;0;L;;;;;N;;German;;;-00E0;LATIN SMALL LETTER A WITH GRAVE;Ll;0;L;0061 0300;;;;N;LATIN SMALL LETTER A GRAVE;;00C0;;00C0-00E1;LATIN SMALL LETTER A WITH ACUTE;Ll;0;L;0061 0301;;;;N;LATIN SMALL LETTER A ACUTE;;00C1;;00C1-00E2;LATIN SMALL LETTER A WITH CIRCUMFLEX;Ll;0;L;0061 0302;;;;N;LATIN SMALL LETTER A CIRCUMFLEX;;00C2;;00C2-00E3;LATIN SMALL LETTER A WITH TILDE;Ll;0;L;0061 0303;;;;N;LATIN SMALL LETTER A TILDE;;00C3;;00C3-00E4;LATIN SMALL LETTER A WITH DIAERESIS;Ll;0;L;0061 0308;;;;N;LATIN SMALL LETTER A DIAERESIS;;00C4;;00C4-00E5;LATIN SMALL LETTER A WITH RING ABOVE;Ll;0;L;0061 030A;;;;N;LATIN SMALL LETTER A RING;;00C5;;00C5-00E6;LATIN SMALL LETTER AE;Ll;0;L;;;;;N;LATIN SMALL LETTER A E;ash *;00C6;;00C6-00E7;LATIN SMALL LETTER C WITH CEDILLA;Ll;0;L;0063 0327;;;;N;LATIN SMALL LETTER C CEDILLA;;00C7;;00C7-00E8;LATIN SMALL LETTER E WITH GRAVE;Ll;0;L;0065 0300;;;;N;LATIN SMALL LETTER E GRAVE;;00C8;;00C8-00E9;LATIN SMALL LETTER E WITH ACUTE;Ll;0;L;0065 0301;;;;N;LATIN SMALL LETTER E ACUTE;;00C9;;00C9-00EA;LATIN SMALL LETTER E WITH CIRCUMFLEX;Ll;0;L;0065 0302;;;;N;LATIN SMALL LETTER E CIRCUMFLEX;;00CA;;00CA-00EB;LATIN SMALL LETTER E WITH DIAERESIS;Ll;0;L;0065 0308;;;;N;LATIN SMALL LETTER E DIAERESIS;;00CB;;00CB-00EC;LATIN SMALL LETTER I WITH GRAVE;Ll;0;L;0069 0300;;;;N;LATIN SMALL LETTER I GRAVE;;00CC;;00CC-00ED;LATIN SMALL LETTER I WITH ACUTE;Ll;0;L;0069 0301;;;;N;LATIN SMALL LETTER I ACUTE;;00CD;;00CD-00EE;LATIN SMALL LETTER I WITH CIRCUMFLEX;Ll;0;L;0069 0302;;;;N;LATIN SMALL LETTER I CIRCUMFLEX;;00CE;;00CE-00EF;LATIN SMALL LETTER I WITH DIAERESIS;Ll;0;L;0069 0308;;;;N;LATIN SMALL LETTER I DIAERESIS;;00CF;;00CF-00F0;LATIN SMALL LETTER ETH;Ll;0;L;;;;;N;;Icelandic;00D0;;00D0-00F1;LATIN SMALL LETTER N WITH TILDE;Ll;0;L;006E 0303;;;;N;LATIN SMALL LETTER N TILDE;;00D1;;00D1-00F2;LATIN SMALL LETTER O WITH GRAVE;Ll;0;L;006F 0300;;;;N;LATIN SMALL LETTER O GRAVE;;00D2;;00D2-00F3;LATIN SMALL LETTER O WITH ACUTE;Ll;0;L;006F 0301;;;;N;LATIN SMALL LETTER O ACUTE;;00D3;;00D3-00F4;LATIN SMALL LETTER O WITH CIRCUMFLEX;Ll;0;L;006F 0302;;;;N;LATIN SMALL LETTER O CIRCUMFLEX;;00D4;;00D4-00F5;LATIN SMALL LETTER O WITH TILDE;Ll;0;L;006F 0303;;;;N;LATIN SMALL LETTER O TILDE;;00D5;;00D5-00F6;LATIN SMALL LETTER O WITH DIAERESIS;Ll;0;L;006F 0308;;;;N;LATIN SMALL LETTER O DIAERESIS;;00D6;;00D6-00F7;DIVISION SIGN;Sm;0;ON;;;;;N;;;;;-00F8;LATIN SMALL LETTER O WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER O SLASH;;00D8;;00D8-00F9;LATIN SMALL LETTER U WITH GRAVE;Ll;0;L;0075 0300;;;;N;LATIN SMALL LETTER U GRAVE;;00D9;;00D9-00FA;LATIN SMALL LETTER U WITH ACUTE;Ll;0;L;0075 0301;;;;N;LATIN SMALL LETTER U ACUTE;;00DA;;00DA-00FB;LATIN SMALL LETTER U WITH CIRCUMFLEX;Ll;0;L;0075 0302;;;;N;LATIN SMALL LETTER U CIRCUMFLEX;;00DB;;00DB-00FC;LATIN SMALL LETTER U WITH DIAERESIS;Ll;0;L;0075 0308;;;;N;LATIN SMALL LETTER U DIAERESIS;;00DC;;00DC-00FD;LATIN SMALL LETTER Y WITH ACUTE;Ll;0;L;0079 0301;;;;N;LATIN SMALL LETTER Y ACUTE;;00DD;;00DD-00FE;LATIN SMALL LETTER THORN;Ll;0;L;;;;;N;;Icelandic;00DE;;00DE-00FF;LATIN SMALL LETTER Y WITH DIAERESIS;Ll;0;L;0079 0308;;;;N;LATIN SMALL LETTER Y DIAERESIS;;0178;;0178-0100;LATIN CAPITAL LETTER A WITH MACRON;Lu;0;L;0041 0304;;;;N;LATIN CAPITAL LETTER A MACRON;;;0101;-0101;LATIN SMALL LETTER A WITH MACRON;Ll;0;L;0061 0304;;;;N;LATIN SMALL LETTER A MACRON;;0100;;0100-0102;LATIN CAPITAL LETTER A WITH BREVE;Lu;0;L;0041 0306;;;;N;LATIN CAPITAL LETTER A BREVE;;;0103;-0103;LATIN SMALL LETTER A WITH BREVE;Ll;0;L;0061 0306;;;;N;LATIN SMALL LETTER A BREVE;;0102;;0102-0104;LATIN CAPITAL LETTER A WITH OGONEK;Lu;0;L;0041 0328;;;;N;LATIN CAPITAL LETTER A OGONEK;;;0105;-0105;LATIN SMALL LETTER A WITH OGONEK;Ll;0;L;0061 0328;;;;N;LATIN SMALL LETTER A OGONEK;;0104;;0104-0106;LATIN CAPITAL LETTER C WITH ACUTE;Lu;0;L;0043 0301;;;;N;LATIN CAPITAL LETTER C ACUTE;;;0107;-0107;LATIN SMALL LETTER C WITH ACUTE;Ll;0;L;0063 0301;;;;N;LATIN SMALL LETTER C ACUTE;;0106;;0106-0108;LATIN CAPITAL LETTER C WITH CIRCUMFLEX;Lu;0;L;0043 0302;;;;N;LATIN CAPITAL LETTER C CIRCUMFLEX;;;0109;-0109;LATIN SMALL LETTER C WITH CIRCUMFLEX;Ll;0;L;0063 0302;;;;N;LATIN SMALL LETTER C CIRCUMFLEX;;0108;;0108-010A;LATIN CAPITAL LETTER C WITH DOT ABOVE;Lu;0;L;0043 0307;;;;N;LATIN CAPITAL LETTER C DOT;;;010B;-010B;LATIN SMALL LETTER C WITH DOT ABOVE;Ll;0;L;0063 0307;;;;N;LATIN SMALL LETTER C DOT;;010A;;010A-010C;LATIN CAPITAL LETTER C WITH CARON;Lu;0;L;0043 030C;;;;N;LATIN CAPITAL LETTER C HACEK;;;010D;-010D;LATIN SMALL LETTER C WITH CARON;Ll;0;L;0063 030C;;;;N;LATIN SMALL LETTER C HACEK;;010C;;010C-010E;LATIN CAPITAL LETTER D WITH CARON;Lu;0;L;0044 030C;;;;N;LATIN CAPITAL LETTER D HACEK;;;010F;-010F;LATIN SMALL LETTER D WITH CARON;Ll;0;L;0064 030C;;;;N;LATIN SMALL LETTER D HACEK;;010E;;010E-0110;LATIN CAPITAL LETTER D WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER D BAR;;;0111;-0111;LATIN SMALL LETTER D WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER D BAR;;0110;;0110-0112;LATIN CAPITAL LETTER E WITH MACRON;Lu;0;L;0045 0304;;;;N;LATIN CAPITAL LETTER E MACRON;;;0113;-0113;LATIN SMALL LETTER E WITH MACRON;Ll;0;L;0065 0304;;;;N;LATIN SMALL LETTER E MACRON;;0112;;0112-0114;LATIN CAPITAL LETTER E WITH BREVE;Lu;0;L;0045 0306;;;;N;LATIN CAPITAL LETTER E BREVE;;;0115;-0115;LATIN SMALL LETTER E WITH BREVE;Ll;0;L;0065 0306;;;;N;LATIN SMALL LETTER E BREVE;;0114;;0114-0116;LATIN CAPITAL LETTER E WITH DOT ABOVE;Lu;0;L;0045 0307;;;;N;LATIN CAPITAL LETTER E DOT;;;0117;-0117;LATIN SMALL LETTER E WITH DOT ABOVE;Ll;0;L;0065 0307;;;;N;LATIN SMALL LETTER E DOT;;0116;;0116-0118;LATIN CAPITAL LETTER E WITH OGONEK;Lu;0;L;0045 0328;;;;N;LATIN CAPITAL LETTER E OGONEK;;;0119;-0119;LATIN SMALL LETTER E WITH OGONEK;Ll;0;L;0065 0328;;;;N;LATIN SMALL LETTER E OGONEK;;0118;;0118-011A;LATIN CAPITAL LETTER E WITH CARON;Lu;0;L;0045 030C;;;;N;LATIN CAPITAL LETTER E HACEK;;;011B;-011B;LATIN SMALL LETTER E WITH CARON;Ll;0;L;0065 030C;;;;N;LATIN SMALL LETTER E HACEK;;011A;;011A-011C;LATIN CAPITAL LETTER G WITH CIRCUMFLEX;Lu;0;L;0047 0302;;;;N;LATIN CAPITAL LETTER G CIRCUMFLEX;;;011D;-011D;LATIN SMALL LETTER G WITH CIRCUMFLEX;Ll;0;L;0067 0302;;;;N;LATIN SMALL LETTER G CIRCUMFLEX;;011C;;011C-011E;LATIN CAPITAL LETTER G WITH BREVE;Lu;0;L;0047 0306;;;;N;LATIN CAPITAL LETTER G BREVE;;;011F;-011F;LATIN SMALL LETTER G WITH BREVE;Ll;0;L;0067 0306;;;;N;LATIN SMALL LETTER G BREVE;;011E;;011E-0120;LATIN CAPITAL LETTER G WITH DOT ABOVE;Lu;0;L;0047 0307;;;;N;LATIN CAPITAL LETTER G DOT;;;0121;-0121;LATIN SMALL LETTER G WITH DOT ABOVE;Ll;0;L;0067 0307;;;;N;LATIN SMALL LETTER G DOT;;0120;;0120-0122;LATIN CAPITAL LETTER G WITH CEDILLA;Lu;0;L;0047 0327;;;;N;LATIN CAPITAL LETTER G CEDILLA;;;0123;-0123;LATIN SMALL LETTER G WITH CEDILLA;Ll;0;L;0067 0327;;;;N;LATIN SMALL LETTER G CEDILLA;;0122;;0122-0124;LATIN CAPITAL LETTER H WITH CIRCUMFLEX;Lu;0;L;0048 0302;;;;N;LATIN CAPITAL LETTER H CIRCUMFLEX;;;0125;-0125;LATIN SMALL LETTER H WITH CIRCUMFLEX;Ll;0;L;0068 0302;;;;N;LATIN SMALL LETTER H CIRCUMFLEX;;0124;;0124-0126;LATIN CAPITAL LETTER H WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER H BAR;;;0127;-0127;LATIN SMALL LETTER H WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER H BAR;;0126;;0126-0128;LATIN CAPITAL LETTER I WITH TILDE;Lu;0;L;0049 0303;;;;N;LATIN CAPITAL LETTER I TILDE;;;0129;-0129;LATIN SMALL LETTER I WITH TILDE;Ll;0;L;0069 0303;;;;N;LATIN SMALL LETTER I TILDE;;0128;;0128-012A;LATIN CAPITAL LETTER I WITH MACRON;Lu;0;L;0049 0304;;;;N;LATIN CAPITAL LETTER I MACRON;;;012B;-012B;LATIN SMALL LETTER I WITH MACRON;Ll;0;L;0069 0304;;;;N;LATIN SMALL LETTER I MACRON;;012A;;012A-012C;LATIN CAPITAL LETTER I WITH BREVE;Lu;0;L;0049 0306;;;;N;LATIN CAPITAL LETTER I BREVE;;;012D;-012D;LATIN SMALL LETTER I WITH BREVE;Ll;0;L;0069 0306;;;;N;LATIN SMALL LETTER I BREVE;;012C;;012C-012E;LATIN CAPITAL LETTER I WITH OGONEK;Lu;0;L;0049 0328;;;;N;LATIN CAPITAL LETTER I OGONEK;;;012F;-012F;LATIN SMALL LETTER I WITH OGONEK;Ll;0;L;0069 0328;;;;N;LATIN SMALL LETTER I OGONEK;;012E;;012E-0130;LATIN CAPITAL LETTER I WITH DOT ABOVE;Lu;0;L;0049 0307;;;;N;LATIN CAPITAL LETTER I DOT;;;0069;-0131;LATIN SMALL LETTER DOTLESS I;Ll;0;L;;;;;N;;;0049;;0049-0132;LATIN CAPITAL LIGATURE IJ;Lu;0;L;<compat> 0049 004A;;;;N;LATIN CAPITAL LETTER I J;;;0133;-0133;LATIN SMALL LIGATURE IJ;Ll;0;L;<compat> 0069 006A;;;;N;LATIN SMALL LETTER I J;;0132;;0132-0134;LATIN CAPITAL LETTER J WITH CIRCUMFLEX;Lu;0;L;004A 0302;;;;N;LATIN CAPITAL LETTER J CIRCUMFLEX;;;0135;-0135;LATIN SMALL LETTER J WITH CIRCUMFLEX;Ll;0;L;006A 0302;;;;N;LATIN SMALL LETTER J CIRCUMFLEX;;0134;;0134-0136;LATIN CAPITAL LETTER K WITH CEDILLA;Lu;0;L;004B 0327;;;;N;LATIN CAPITAL LETTER K CEDILLA;;;0137;-0137;LATIN SMALL LETTER K WITH CEDILLA;Ll;0;L;006B 0327;;;;N;LATIN SMALL LETTER K CEDILLA;;0136;;0136-0138;LATIN SMALL LETTER KRA;Ll;0;L;;;;;N;;Greenlandic;;;-0139;LATIN CAPITAL LETTER L WITH ACUTE;Lu;0;L;004C 0301;;;;N;LATIN CAPITAL LETTER L ACUTE;;;013A;-013A;LATIN SMALL LETTER L WITH ACUTE;Ll;0;L;006C 0301;;;;N;LATIN SMALL LETTER L ACUTE;;0139;;0139-013B;LATIN CAPITAL LETTER L WITH CEDILLA;Lu;0;L;004C 0327;;;;N;LATIN CAPITAL LETTER L CEDILLA;;;013C;-013C;LATIN SMALL LETTER L WITH CEDILLA;Ll;0;L;006C 0327;;;;N;LATIN SMALL LETTER L CEDILLA;;013B;;013B-013D;LATIN CAPITAL LETTER L WITH CARON;Lu;0;L;004C 030C;;;;N;LATIN CAPITAL LETTER L HACEK;;;013E;-013E;LATIN SMALL LETTER L WITH CARON;Ll;0;L;006C 030C;;;;N;LATIN SMALL LETTER L HACEK;;013D;;013D-013F;LATIN CAPITAL LETTER L WITH MIDDLE DOT;Lu;0;L;<compat> 004C 00B7;;;;N;;;;0140;-0140;LATIN SMALL LETTER L WITH MIDDLE DOT;Ll;0;L;<compat> 006C 00B7;;;;N;;;013F;;013F-0141;LATIN CAPITAL LETTER L WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER L SLASH;;;0142;-0142;LATIN SMALL LETTER L WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER L SLASH;;0141;;0141-0143;LATIN CAPITAL LETTER N WITH ACUTE;Lu;0;L;004E 0301;;;;N;LATIN CAPITAL LETTER N ACUTE;;;0144;-0144;LATIN SMALL LETTER N WITH ACUTE;Ll;0;L;006E 0301;;;;N;LATIN SMALL LETTER N ACUTE;;0143;;0143-0145;LATIN CAPITAL LETTER N WITH CEDILLA;Lu;0;L;004E 0327;;;;N;LATIN CAPITAL LETTER N CEDILLA;;;0146;-0146;LATIN SMALL LETTER N WITH CEDILLA;Ll;0;L;006E 0327;;;;N;LATIN SMALL LETTER N CEDILLA;;0145;;0145-0147;LATIN CAPITAL LETTER N WITH CARON;Lu;0;L;004E 030C;;;;N;LATIN CAPITAL LETTER N HACEK;;;0148;-0148;LATIN SMALL LETTER N WITH CARON;Ll;0;L;006E 030C;;;;N;LATIN SMALL LETTER N HACEK;;0147;;0147-0149;LATIN SMALL LETTER N PRECEDED BY APOSTROPHE;Ll;0;L;<compat> 02BC 006E;;;;N;LATIN SMALL LETTER APOSTROPHE N;;;;-014A;LATIN CAPITAL LETTER ENG;Lu;0;L;;;;;N;;Sami;;014B;-014B;LATIN SMALL LETTER ENG;Ll;0;L;;;;;N;;Sami;014A;;014A-014C;LATIN CAPITAL LETTER O WITH MACRON;Lu;0;L;004F 0304;;;;N;LATIN CAPITAL LETTER O MACRON;;;014D;-014D;LATIN SMALL LETTER O WITH MACRON;Ll;0;L;006F 0304;;;;N;LATIN SMALL LETTER O MACRON;;014C;;014C-014E;LATIN CAPITAL LETTER O WITH BREVE;Lu;0;L;004F 0306;;;;N;LATIN CAPITAL LETTER O BREVE;;;014F;-014F;LATIN SMALL LETTER O WITH BREVE;Ll;0;L;006F 0306;;;;N;LATIN SMALL LETTER O BREVE;;014E;;014E-0150;LATIN CAPITAL LETTER O WITH DOUBLE ACUTE;Lu;0;L;004F 030B;;;;N;LATIN CAPITAL LETTER O DOUBLE ACUTE;;;0151;-0151;LATIN SMALL LETTER O WITH DOUBLE ACUTE;Ll;0;L;006F 030B;;;;N;LATIN SMALL LETTER O DOUBLE ACUTE;;0150;;0150-0152;LATIN CAPITAL LIGATURE OE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER O E;;;0153;-0153;LATIN SMALL LIGATURE OE;Ll;0;L;;;;;N;LATIN SMALL LETTER O E;;0152;;0152-0154;LATIN CAPITAL LETTER R WITH ACUTE;Lu;0;L;0052 0301;;;;N;LATIN CAPITAL LETTER R ACUTE;;;0155;-0155;LATIN SMALL LETTER R WITH ACUTE;Ll;0;L;0072 0301;;;;N;LATIN SMALL LETTER R ACUTE;;0154;;0154-0156;LATIN CAPITAL LETTER R WITH CEDILLA;Lu;0;L;0052 0327;;;;N;LATIN CAPITAL LETTER R CEDILLA;;;0157;-0157;LATIN SMALL LETTER R WITH CEDILLA;Ll;0;L;0072 0327;;;;N;LATIN SMALL LETTER R CEDILLA;;0156;;0156-0158;LATIN CAPITAL LETTER R WITH CARON;Lu;0;L;0052 030C;;;;N;LATIN CAPITAL LETTER R HACEK;;;0159;-0159;LATIN SMALL LETTER R WITH CARON;Ll;0;L;0072 030C;;;;N;LATIN SMALL LETTER R HACEK;;0158;;0158-015A;LATIN CAPITAL LETTER S WITH ACUTE;Lu;0;L;0053 0301;;;;N;LATIN CAPITAL LETTER S ACUTE;;;015B;-015B;LATIN SMALL LETTER S WITH ACUTE;Ll;0;L;0073 0301;;;;N;LATIN SMALL LETTER S ACUTE;;015A;;015A-015C;LATIN CAPITAL LETTER S WITH CIRCUMFLEX;Lu;0;L;0053 0302;;;;N;LATIN CAPITAL LETTER S CIRCUMFLEX;;;015D;-015D;LATIN SMALL LETTER S WITH CIRCUMFLEX;Ll;0;L;0073 0302;;;;N;LATIN SMALL LETTER S CIRCUMFLEX;;015C;;015C-015E;LATIN CAPITAL LETTER S WITH CEDILLA;Lu;0;L;0053 0327;;;;N;LATIN CAPITAL LETTER S CEDILLA;*;;015F;-015F;LATIN SMALL LETTER S WITH CEDILLA;Ll;0;L;0073 0327;;;;N;LATIN SMALL LETTER S CEDILLA;*;015E;;015E-0160;LATIN CAPITAL LETTER S WITH CARON;Lu;0;L;0053 030C;;;;N;LATIN CAPITAL LETTER S HACEK;;;0161;-0161;LATIN SMALL LETTER S WITH CARON;Ll;0;L;0073 030C;;;;N;LATIN SMALL LETTER S HACEK;;0160;;0160-0162;LATIN CAPITAL LETTER T WITH CEDILLA;Lu;0;L;0054 0327;;;;N;LATIN CAPITAL LETTER T CEDILLA;*;;0163;-0163;LATIN SMALL LETTER T WITH CEDILLA;Ll;0;L;0074 0327;;;;N;LATIN SMALL LETTER T CEDILLA;*;0162;;0162-0164;LATIN CAPITAL LETTER T WITH CARON;Lu;0;L;0054 030C;;;;N;LATIN CAPITAL LETTER T HACEK;;;0165;-0165;LATIN SMALL LETTER T WITH CARON;Ll;0;L;0074 030C;;;;N;LATIN SMALL LETTER T HACEK;;0164;;0164-0166;LATIN CAPITAL LETTER T WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER T BAR;;;0167;-0167;LATIN SMALL LETTER T WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER T BAR;;0166;;0166-0168;LATIN CAPITAL LETTER U WITH TILDE;Lu;0;L;0055 0303;;;;N;LATIN CAPITAL LETTER U TILDE;;;0169;-0169;LATIN SMALL LETTER U WITH TILDE;Ll;0;L;0075 0303;;;;N;LATIN SMALL LETTER U TILDE;;0168;;0168-016A;LATIN CAPITAL LETTER U WITH MACRON;Lu;0;L;0055 0304;;;;N;LATIN CAPITAL LETTER U MACRON;;;016B;-016B;LATIN SMALL LETTER U WITH MACRON;Ll;0;L;0075 0304;;;;N;LATIN SMALL LETTER U MACRON;;016A;;016A-016C;LATIN CAPITAL LETTER U WITH BREVE;Lu;0;L;0055 0306;;;;N;LATIN CAPITAL LETTER U BREVE;;;016D;-016D;LATIN SMALL LETTER U WITH BREVE;Ll;0;L;0075 0306;;;;N;LATIN SMALL LETTER U BREVE;;016C;;016C-016E;LATIN CAPITAL LETTER U WITH RING ABOVE;Lu;0;L;0055 030A;;;;N;LATIN CAPITAL LETTER U RING;;;016F;-016F;LATIN SMALL LETTER U WITH RING ABOVE;Ll;0;L;0075 030A;;;;N;LATIN SMALL LETTER U RING;;016E;;016E-0170;LATIN CAPITAL LETTER U WITH DOUBLE ACUTE;Lu;0;L;0055 030B;;;;N;LATIN CAPITAL LETTER U DOUBLE ACUTE;;;0171;-0171;LATIN SMALL LETTER U WITH DOUBLE ACUTE;Ll;0;L;0075 030B;;;;N;LATIN SMALL LETTER U DOUBLE ACUTE;;0170;;0170-0172;LATIN CAPITAL LETTER U WITH OGONEK;Lu;0;L;0055 0328;;;;N;LATIN CAPITAL LETTER U OGONEK;;;0173;-0173;LATIN SMALL LETTER U WITH OGONEK;Ll;0;L;0075 0328;;;;N;LATIN SMALL LETTER U OGONEK;;0172;;0172-0174;LATIN CAPITAL LETTER W WITH CIRCUMFLEX;Lu;0;L;0057 0302;;;;N;LATIN CAPITAL LETTER W CIRCUMFLEX;;;0175;-0175;LATIN SMALL LETTER W WITH CIRCUMFLEX;Ll;0;L;0077 0302;;;;N;LATIN SMALL LETTER W CIRCUMFLEX;;0174;;0174-0176;LATIN CAPITAL LETTER Y WITH CIRCUMFLEX;Lu;0;L;0059 0302;;;;N;LATIN CAPITAL LETTER Y CIRCUMFLEX;;;0177;-0177;LATIN SMALL LETTER Y WITH CIRCUMFLEX;Ll;0;L;0079 0302;;;;N;LATIN SMALL LETTER Y CIRCUMFLEX;;0176;;0176-0178;LATIN CAPITAL LETTER Y WITH DIAERESIS;Lu;0;L;0059 0308;;;;N;LATIN CAPITAL LETTER Y DIAERESIS;;;00FF;-0179;LATIN CAPITAL LETTER Z WITH ACUTE;Lu;0;L;005A 0301;;;;N;LATIN CAPITAL LETTER Z ACUTE;;;017A;-017A;LATIN SMALL LETTER Z WITH ACUTE;Ll;0;L;007A 0301;;;;N;LATIN SMALL LETTER Z ACUTE;;0179;;0179-017B;LATIN CAPITAL LETTER Z WITH DOT ABOVE;Lu;0;L;005A 0307;;;;N;LATIN CAPITAL LETTER Z DOT;;;017C;-017C;LATIN SMALL LETTER Z WITH DOT ABOVE;Ll;0;L;007A 0307;;;;N;LATIN SMALL LETTER Z DOT;;017B;;017B-017D;LATIN CAPITAL LETTER Z WITH CARON;Lu;0;L;005A 030C;;;;N;LATIN CAPITAL LETTER Z HACEK;;;017E;-017E;LATIN SMALL LETTER Z WITH CARON;Ll;0;L;007A 030C;;;;N;LATIN SMALL LETTER Z HACEK;;017D;;017D-017F;LATIN SMALL LETTER LONG S;Ll;0;L;<compat> 0073;;;;N;;;0053;;0053-0180;LATIN SMALL LETTER B WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER B BAR;;0243;;0243-0181;LATIN CAPITAL LETTER B WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER B HOOK;;;0253;-0182;LATIN CAPITAL LETTER B WITH TOPBAR;Lu;0;L;;;;;N;LATIN CAPITAL LETTER B TOPBAR;;;0183;-0183;LATIN SMALL LETTER B WITH TOPBAR;Ll;0;L;;;;;N;LATIN SMALL LETTER B TOPBAR;;0182;;0182-0184;LATIN CAPITAL LETTER TONE SIX;Lu;0;L;;;;;N;;;;0185;-0185;LATIN SMALL LETTER TONE SIX;Ll;0;L;;;;;N;;;0184;;0184-0186;LATIN CAPITAL LETTER OPEN O;Lu;0;L;;;;;N;;;;0254;-0187;LATIN CAPITAL LETTER C WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER C HOOK;;;0188;-0188;LATIN SMALL LETTER C WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER C HOOK;;0187;;0187-0189;LATIN CAPITAL LETTER AFRICAN D;Lu;0;L;;;;;N;;*;;0256;-018A;LATIN CAPITAL LETTER D WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER D HOOK;;;0257;-018B;LATIN CAPITAL LETTER D WITH TOPBAR;Lu;0;L;;;;;N;LATIN CAPITAL LETTER D TOPBAR;;;018C;-018C;LATIN SMALL LETTER D WITH TOPBAR;Ll;0;L;;;;;N;LATIN SMALL LETTER D TOPBAR;;018B;;018B-018D;LATIN SMALL LETTER TURNED DELTA;Ll;0;L;;;;;N;;;;;-018E;LATIN CAPITAL LETTER REVERSED E;Lu;0;L;;;;;N;LATIN CAPITAL LETTER TURNED E;;;01DD;-018F;LATIN CAPITAL LETTER SCHWA;Lu;0;L;;;;;N;;;;0259;-0190;LATIN CAPITAL LETTER OPEN E;Lu;0;L;;;;;N;LATIN CAPITAL LETTER EPSILON;;;025B;-0191;LATIN CAPITAL LETTER F WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER F HOOK;;;0192;-0192;LATIN SMALL LETTER F WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER SCRIPT F;;0191;;0191-0193;LATIN CAPITAL LETTER G WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER G HOOK;;;0260;-0194;LATIN CAPITAL LETTER GAMMA;Lu;0;L;;;;;N;;;;0263;-0195;LATIN SMALL LETTER HV;Ll;0;L;;;;;N;LATIN SMALL LETTER H V;hwair;01F6;;01F6-0196;LATIN CAPITAL LETTER IOTA;Lu;0;L;;;;;N;;;;0269;-0197;LATIN CAPITAL LETTER I WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER BARRED I;;;0268;-0198;LATIN CAPITAL LETTER K WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER K HOOK;;;0199;-0199;LATIN SMALL LETTER K WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER K HOOK;;0198;;0198-019A;LATIN SMALL LETTER L WITH BAR;Ll;0;L;;;;;N;LATIN SMALL LETTER BARRED L;;023D;;023D-019B;LATIN SMALL LETTER LAMBDA WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER BARRED LAMBDA;;;;-019C;LATIN CAPITAL LETTER TURNED M;Lu;0;L;;;;;N;;;;026F;-019D;LATIN CAPITAL LETTER N WITH LEFT HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER N HOOK;;;0272;-019E;LATIN SMALL LETTER N WITH LONG RIGHT LEG;Ll;0;L;;;;;N;;;0220;;0220-019F;LATIN CAPITAL LETTER O WITH MIDDLE TILDE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER BARRED O;*;;0275;-01A0;LATIN CAPITAL LETTER O WITH HORN;Lu;0;L;004F 031B;;;;N;LATIN CAPITAL LETTER O HORN;;;01A1;-01A1;LATIN SMALL LETTER O WITH HORN;Ll;0;L;006F 031B;;;;N;LATIN SMALL LETTER O HORN;;01A0;;01A0-01A2;LATIN CAPITAL LETTER OI;Lu;0;L;;;;;N;LATIN CAPITAL LETTER O I;gha;;01A3;-01A3;LATIN SMALL LETTER OI;Ll;0;L;;;;;N;LATIN SMALL LETTER O I;gha;01A2;;01A2-01A4;LATIN CAPITAL LETTER P WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER P HOOK;;;01A5;-01A5;LATIN SMALL LETTER P WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER P HOOK;;01A4;;01A4-01A6;LATIN LETTER YR;Lu;0;L;;;;;N;LATIN LETTER Y R;*;;0280;-01A7;LATIN CAPITAL LETTER TONE TWO;Lu;0;L;;;;;N;;;;01A8;-01A8;LATIN SMALL LETTER TONE TWO;Ll;0;L;;;;;N;;;01A7;;01A7-01A9;LATIN CAPITAL LETTER ESH;Lu;0;L;;;;;N;;;;0283;-01AA;LATIN LETTER REVERSED ESH LOOP;Ll;0;L;;;;;N;;;;;-01AB;LATIN SMALL LETTER T WITH PALATAL HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER T PALATAL HOOK;;;;-01AC;LATIN CAPITAL LETTER T WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER T HOOK;;;01AD;-01AD;LATIN SMALL LETTER T WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER T HOOK;;01AC;;01AC-01AE;LATIN CAPITAL LETTER T WITH RETROFLEX HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER T RETROFLEX HOOK;;;0288;-01AF;LATIN CAPITAL LETTER U WITH HORN;Lu;0;L;0055 031B;;;;N;LATIN CAPITAL LETTER U HORN;;;01B0;-01B0;LATIN SMALL LETTER U WITH HORN;Ll;0;L;0075 031B;;;;N;LATIN SMALL LETTER U HORN;;01AF;;01AF-01B1;LATIN CAPITAL LETTER UPSILON;Lu;0;L;;;;;N;;;;028A;-01B2;LATIN CAPITAL LETTER V WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER SCRIPT V;;;028B;-01B3;LATIN CAPITAL LETTER Y WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER Y HOOK;;;01B4;-01B4;LATIN SMALL LETTER Y WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER Y HOOK;;01B3;;01B3-01B5;LATIN CAPITAL LETTER Z WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER Z BAR;;;01B6;-01B6;LATIN SMALL LETTER Z WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER Z BAR;;01B5;;01B5-01B7;LATIN CAPITAL LETTER EZH;Lu;0;L;;;;;N;LATIN CAPITAL LETTER YOGH;;;0292;-01B8;LATIN CAPITAL LETTER EZH REVERSED;Lu;0;L;;;;;N;LATIN CAPITAL LETTER REVERSED YOGH;;;01B9;-01B9;LATIN SMALL LETTER EZH REVERSED;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED YOGH;;01B8;;01B8-01BA;LATIN SMALL LETTER EZH WITH TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER YOGH WITH TAIL;;;;-01BB;LATIN LETTER TWO WITH STROKE;Lo;0;L;;;;;N;LATIN LETTER TWO BAR;;;;-01BC;LATIN CAPITAL LETTER TONE FIVE;Lu;0;L;;;;;N;;;;01BD;-01BD;LATIN SMALL LETTER TONE FIVE;Ll;0;L;;;;;N;;;01BC;;01BC-01BE;LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE;Ll;0;L;;;;;N;LATIN LETTER INVERTED GLOTTAL STOP BAR;;;;-01BF;LATIN LETTER WYNN;Ll;0;L;;;;;N;;;01F7;;01F7-01C0;LATIN LETTER DENTAL CLICK;Lo;0;L;;;;;N;LATIN LETTER PIPE;;;;-01C1;LATIN LETTER LATERAL CLICK;Lo;0;L;;;;;N;LATIN LETTER DOUBLE PIPE;;;;-01C2;LATIN LETTER ALVEOLAR CLICK;Lo;0;L;;;;;N;LATIN LETTER PIPE DOUBLE BAR;;;;-01C3;LATIN LETTER RETROFLEX CLICK;Lo;0;L;;;;;N;LATIN LETTER EXCLAMATION MARK;;;;-01C4;LATIN CAPITAL LETTER DZ WITH CARON;Lu;0;L;<compat> 0044 017D;;;;N;LATIN CAPITAL LETTER D Z HACEK;;;01C6;01C5-01C5;LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON;Lt;0;L;<compat> 0044 017E;;;;N;LATIN LETTER CAPITAL D SMALL Z HACEK;;01C4;01C6;01C5-01C6;LATIN SMALL LETTER DZ WITH CARON;Ll;0;L;<compat> 0064 017E;;;;N;LATIN SMALL LETTER D Z HACEK;;01C4;;01C5-01C7;LATIN CAPITAL LETTER LJ;Lu;0;L;<compat> 004C 004A;;;;N;LATIN CAPITAL LETTER L J;;;01C9;01C8-01C8;LATIN CAPITAL LETTER L WITH SMALL LETTER J;Lt;0;L;<compat> 004C 006A;;;;N;LATIN LETTER CAPITAL L SMALL J;;01C7;01C9;01C8-01C9;LATIN SMALL LETTER LJ;Ll;0;L;<compat> 006C 006A;;;;N;LATIN SMALL LETTER L J;;01C7;;01C8-01CA;LATIN CAPITAL LETTER NJ;Lu;0;L;<compat> 004E 004A;;;;N;LATIN CAPITAL LETTER N J;;;01CC;01CB-01CB;LATIN CAPITAL LETTER N WITH SMALL LETTER J;Lt;0;L;<compat> 004E 006A;;;;N;LATIN LETTER CAPITAL N SMALL J;;01CA;01CC;01CB-01CC;LATIN SMALL LETTER NJ;Ll;0;L;<compat> 006E 006A;;;;N;LATIN SMALL LETTER N J;;01CA;;01CB-01CD;LATIN CAPITAL LETTER A WITH CARON;Lu;0;L;0041 030C;;;;N;LATIN CAPITAL LETTER A HACEK;;;01CE;-01CE;LATIN SMALL LETTER A WITH CARON;Ll;0;L;0061 030C;;;;N;LATIN SMALL LETTER A HACEK;;01CD;;01CD-01CF;LATIN CAPITAL LETTER I WITH CARON;Lu;0;L;0049 030C;;;;N;LATIN CAPITAL LETTER I HACEK;;;01D0;-01D0;LATIN SMALL LETTER I WITH CARON;Ll;0;L;0069 030C;;;;N;LATIN SMALL LETTER I HACEK;;01CF;;01CF-01D1;LATIN CAPITAL LETTER O WITH CARON;Lu;0;L;004F 030C;;;;N;LATIN CAPITAL LETTER O HACEK;;;01D2;-01D2;LATIN SMALL LETTER O WITH CARON;Ll;0;L;006F 030C;;;;N;LATIN SMALL LETTER O HACEK;;01D1;;01D1-01D3;LATIN CAPITAL LETTER U WITH CARON;Lu;0;L;0055 030C;;;;N;LATIN CAPITAL LETTER U HACEK;;;01D4;-01D4;LATIN SMALL LETTER U WITH CARON;Ll;0;L;0075 030C;;;;N;LATIN SMALL LETTER U HACEK;;01D3;;01D3-01D5;LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON;Lu;0;L;00DC 0304;;;;N;LATIN CAPITAL LETTER U DIAERESIS MACRON;;;01D6;-01D6;LATIN SMALL LETTER U WITH DIAERESIS AND MACRON;Ll;0;L;00FC 0304;;;;N;LATIN SMALL LETTER U DIAERESIS MACRON;;01D5;;01D5-01D7;LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE;Lu;0;L;00DC 0301;;;;N;LATIN CAPITAL LETTER U DIAERESIS ACUTE;;;01D8;-01D8;LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE;Ll;0;L;00FC 0301;;;;N;LATIN SMALL LETTER U DIAERESIS ACUTE;;01D7;;01D7-01D9;LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON;Lu;0;L;00DC 030C;;;;N;LATIN CAPITAL LETTER U DIAERESIS HACEK;;;01DA;-01DA;LATIN SMALL LETTER U WITH DIAERESIS AND CARON;Ll;0;L;00FC 030C;;;;N;LATIN SMALL LETTER U DIAERESIS HACEK;;01D9;;01D9-01DB;LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE;Lu;0;L;00DC 0300;;;;N;LATIN CAPITAL LETTER U DIAERESIS GRAVE;;;01DC;-01DC;LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE;Ll;0;L;00FC 0300;;;;N;LATIN SMALL LETTER U DIAERESIS GRAVE;;01DB;;01DB-01DD;LATIN SMALL LETTER TURNED E;Ll;0;L;;;;;N;;;018E;;018E-01DE;LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON;Lu;0;L;00C4 0304;;;;N;LATIN CAPITAL LETTER A DIAERESIS MACRON;;;01DF;-01DF;LATIN SMALL LETTER A WITH DIAERESIS AND MACRON;Ll;0;L;00E4 0304;;;;N;LATIN SMALL LETTER A DIAERESIS MACRON;;01DE;;01DE-01E0;LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON;Lu;0;L;0226 0304;;;;N;LATIN CAPITAL LETTER A DOT MACRON;;;01E1;-01E1;LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON;Ll;0;L;0227 0304;;;;N;LATIN SMALL LETTER A DOT MACRON;;01E0;;01E0-01E2;LATIN CAPITAL LETTER AE WITH MACRON;Lu;0;L;00C6 0304;;;;N;LATIN CAPITAL LETTER A E MACRON;ash *;;01E3;-01E3;LATIN SMALL LETTER AE WITH MACRON;Ll;0;L;00E6 0304;;;;N;LATIN SMALL LETTER A E MACRON;ash *;01E2;;01E2-01E4;LATIN CAPITAL LETTER G WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER G BAR;;;01E5;-01E5;LATIN SMALL LETTER G WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER G BAR;;01E4;;01E4-01E6;LATIN CAPITAL LETTER G WITH CARON;Lu;0;L;0047 030C;;;;N;LATIN CAPITAL LETTER G HACEK;;;01E7;-01E7;LATIN SMALL LETTER G WITH CARON;Ll;0;L;0067 030C;;;;N;LATIN SMALL LETTER G HACEK;;01E6;;01E6-01E8;LATIN CAPITAL LETTER K WITH CARON;Lu;0;L;004B 030C;;;;N;LATIN CAPITAL LETTER K HACEK;;;01E9;-01E9;LATIN SMALL LETTER K WITH CARON;Ll;0;L;006B 030C;;;;N;LATIN SMALL LETTER K HACEK;;01E8;;01E8-01EA;LATIN CAPITAL LETTER O WITH OGONEK;Lu;0;L;004F 0328;;;;N;LATIN CAPITAL LETTER O OGONEK;;;01EB;-01EB;LATIN SMALL LETTER O WITH OGONEK;Ll;0;L;006F 0328;;;;N;LATIN SMALL LETTER O OGONEK;;01EA;;01EA-01EC;LATIN CAPITAL LETTER O WITH OGONEK AND MACRON;Lu;0;L;01EA 0304;;;;N;LATIN CAPITAL LETTER O OGONEK MACRON;;;01ED;-01ED;LATIN SMALL LETTER O WITH OGONEK AND MACRON;Ll;0;L;01EB 0304;;;;N;LATIN SMALL LETTER O OGONEK MACRON;;01EC;;01EC-01EE;LATIN CAPITAL LETTER EZH WITH CARON;Lu;0;L;01B7 030C;;;;N;LATIN CAPITAL LETTER YOGH HACEK;;;01EF;-01EF;LATIN SMALL LETTER EZH WITH CARON;Ll;0;L;0292 030C;;;;N;LATIN SMALL LETTER YOGH HACEK;;01EE;;01EE-01F0;LATIN SMALL LETTER J WITH CARON;Ll;0;L;006A 030C;;;;N;LATIN SMALL LETTER J HACEK;;;;-01F1;LATIN CAPITAL LETTER DZ;Lu;0;L;<compat> 0044 005A;;;;N;;;;01F3;01F2-01F2;LATIN CAPITAL LETTER D WITH SMALL LETTER Z;Lt;0;L;<compat> 0044 007A;;;;N;;;01F1;01F3;01F2-01F3;LATIN SMALL LETTER DZ;Ll;0;L;<compat> 0064 007A;;;;N;;;01F1;;01F2-01F4;LATIN CAPITAL LETTER G WITH ACUTE;Lu;0;L;0047 0301;;;;N;;;;01F5;-01F5;LATIN SMALL LETTER G WITH ACUTE;Ll;0;L;0067 0301;;;;N;;;01F4;;01F4-01F6;LATIN CAPITAL LETTER HWAIR;Lu;0;L;;;;;N;;;;0195;-01F7;LATIN CAPITAL LETTER WYNN;Lu;0;L;;;;;N;;;;01BF;-01F8;LATIN CAPITAL LETTER N WITH GRAVE;Lu;0;L;004E 0300;;;;N;;;;01F9;-01F9;LATIN SMALL LETTER N WITH GRAVE;Ll;0;L;006E 0300;;;;N;;;01F8;;01F8-01FA;LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE;Lu;0;L;00C5 0301;;;;N;;;;01FB;-01FB;LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE;Ll;0;L;00E5 0301;;;;N;;;01FA;;01FA-01FC;LATIN CAPITAL LETTER AE WITH ACUTE;Lu;0;L;00C6 0301;;;;N;;ash *;;01FD;-01FD;LATIN SMALL LETTER AE WITH ACUTE;Ll;0;L;00E6 0301;;;;N;;ash *;01FC;;01FC-01FE;LATIN CAPITAL LETTER O WITH STROKE AND ACUTE;Lu;0;L;00D8 0301;;;;N;;;;01FF;-01FF;LATIN SMALL LETTER O WITH STROKE AND ACUTE;Ll;0;L;00F8 0301;;;;N;;;01FE;;01FE-0200;LATIN CAPITAL LETTER A WITH DOUBLE GRAVE;Lu;0;L;0041 030F;;;;N;;;;0201;-0201;LATIN SMALL LETTER A WITH DOUBLE GRAVE;Ll;0;L;0061 030F;;;;N;;;0200;;0200-0202;LATIN CAPITAL LETTER A WITH INVERTED BREVE;Lu;0;L;0041 0311;;;;N;;;;0203;-0203;LATIN SMALL LETTER A WITH INVERTED BREVE;Ll;0;L;0061 0311;;;;N;;;0202;;0202-0204;LATIN CAPITAL LETTER E WITH DOUBLE GRAVE;Lu;0;L;0045 030F;;;;N;;;;0205;-0205;LATIN SMALL LETTER E WITH DOUBLE GRAVE;Ll;0;L;0065 030F;;;;N;;;0204;;0204-0206;LATIN CAPITAL LETTER E WITH INVERTED BREVE;Lu;0;L;0045 0311;;;;N;;;;0207;-0207;LATIN SMALL LETTER E WITH INVERTED BREVE;Ll;0;L;0065 0311;;;;N;;;0206;;0206-0208;LATIN CAPITAL LETTER I WITH DOUBLE GRAVE;Lu;0;L;0049 030F;;;;N;;;;0209;-0209;LATIN SMALL LETTER I WITH DOUBLE GRAVE;Ll;0;L;0069 030F;;;;N;;;0208;;0208-020A;LATIN CAPITAL LETTER I WITH INVERTED BREVE;Lu;0;L;0049 0311;;;;N;;;;020B;-020B;LATIN SMALL LETTER I WITH INVERTED BREVE;Ll;0;L;0069 0311;;;;N;;;020A;;020A-020C;LATIN CAPITAL LETTER O WITH DOUBLE GRAVE;Lu;0;L;004F 030F;;;;N;;;;020D;-020D;LATIN SMALL LETTER O WITH DOUBLE GRAVE;Ll;0;L;006F 030F;;;;N;;;020C;;020C-020E;LATIN CAPITAL LETTER O WITH INVERTED BREVE;Lu;0;L;004F 0311;;;;N;;;;020F;-020F;LATIN SMALL LETTER O WITH INVERTED BREVE;Ll;0;L;006F 0311;;;;N;;;020E;;020E-0210;LATIN CAPITAL LETTER R WITH DOUBLE GRAVE;Lu;0;L;0052 030F;;;;N;;;;0211;-0211;LATIN SMALL LETTER R WITH DOUBLE GRAVE;Ll;0;L;0072 030F;;;;N;;;0210;;0210-0212;LATIN CAPITAL LETTER R WITH INVERTED BREVE;Lu;0;L;0052 0311;;;;N;;;;0213;-0213;LATIN SMALL LETTER R WITH INVERTED BREVE;Ll;0;L;0072 0311;;;;N;;;0212;;0212-0214;LATIN CAPITAL LETTER U WITH DOUBLE GRAVE;Lu;0;L;0055 030F;;;;N;;;;0215;-0215;LATIN SMALL LETTER U WITH DOUBLE GRAVE;Ll;0;L;0075 030F;;;;N;;;0214;;0214-0216;LATIN CAPITAL LETTER U WITH INVERTED BREVE;Lu;0;L;0055 0311;;;;N;;;;0217;-0217;LATIN SMALL LETTER U WITH INVERTED BREVE;Ll;0;L;0075 0311;;;;N;;;0216;;0216-0218;LATIN CAPITAL LETTER S WITH COMMA BELOW;Lu;0;L;0053 0326;;;;N;;*;;0219;-0219;LATIN SMALL LETTER S WITH COMMA BELOW;Ll;0;L;0073 0326;;;;N;;*;0218;;0218-021A;LATIN CAPITAL LETTER T WITH COMMA BELOW;Lu;0;L;0054 0326;;;;N;;*;;021B;-021B;LATIN SMALL LETTER T WITH COMMA BELOW;Ll;0;L;0074 0326;;;;N;;*;021A;;021A-021C;LATIN CAPITAL LETTER YOGH;Lu;0;L;;;;;N;;;;021D;-021D;LATIN SMALL LETTER YOGH;Ll;0;L;;;;;N;;;021C;;021C-021E;LATIN CAPITAL LETTER H WITH CARON;Lu;0;L;0048 030C;;;;N;;;;021F;-021F;LATIN SMALL LETTER H WITH CARON;Ll;0;L;0068 030C;;;;N;;;021E;;021E-0220;LATIN CAPITAL LETTER N WITH LONG RIGHT LEG;Lu;0;L;;;;;N;;;;019E;-0221;LATIN SMALL LETTER D WITH CURL;Ll;0;L;;;;;N;;;;;-0222;LATIN CAPITAL LETTER OU;Lu;0;L;;;;;N;;;;0223;-0223;LATIN SMALL LETTER OU;Ll;0;L;;;;;N;;;0222;;0222-0224;LATIN CAPITAL LETTER Z WITH HOOK;Lu;0;L;;;;;N;;;;0225;-0225;LATIN SMALL LETTER Z WITH HOOK;Ll;0;L;;;;;N;;;0224;;0224-0226;LATIN CAPITAL LETTER A WITH DOT ABOVE;Lu;0;L;0041 0307;;;;N;;;;0227;-0227;LATIN SMALL LETTER A WITH DOT ABOVE;Ll;0;L;0061 0307;;;;N;;;0226;;0226-0228;LATIN CAPITAL LETTER E WITH CEDILLA;Lu;0;L;0045 0327;;;;N;;;;0229;-0229;LATIN SMALL LETTER E WITH CEDILLA;Ll;0;L;0065 0327;;;;N;;;0228;;0228-022A;LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON;Lu;0;L;00D6 0304;;;;N;;;;022B;-022B;LATIN SMALL LETTER O WITH DIAERESIS AND MACRON;Ll;0;L;00F6 0304;;;;N;;;022A;;022A-022C;LATIN CAPITAL LETTER O WITH TILDE AND MACRON;Lu;0;L;00D5 0304;;;;N;;;;022D;-022D;LATIN SMALL LETTER O WITH TILDE AND MACRON;Ll;0;L;00F5 0304;;;;N;;;022C;;022C-022E;LATIN CAPITAL LETTER O WITH DOT ABOVE;Lu;0;L;004F 0307;;;;N;;;;022F;-022F;LATIN SMALL LETTER O WITH DOT ABOVE;Ll;0;L;006F 0307;;;;N;;;022E;;022E-0230;LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON;Lu;0;L;022E 0304;;;;N;;;;0231;-0231;LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON;Ll;0;L;022F 0304;;;;N;;;0230;;0230-0232;LATIN CAPITAL LETTER Y WITH MACRON;Lu;0;L;0059 0304;;;;N;;;;0233;-0233;LATIN SMALL LETTER Y WITH MACRON;Ll;0;L;0079 0304;;;;N;;;0232;;0232-0234;LATIN SMALL LETTER L WITH CURL;Ll;0;L;;;;;N;;;;;-0235;LATIN SMALL LETTER N WITH CURL;Ll;0;L;;;;;N;;;;;-0236;LATIN SMALL LETTER T WITH CURL;Ll;0;L;;;;;N;;;;;-0237;LATIN SMALL LETTER DOTLESS J;Ll;0;L;;;;;N;;;;;-0238;LATIN SMALL LETTER DB DIGRAPH;Ll;0;L;;;;;N;;;;;-0239;LATIN SMALL LETTER QP DIGRAPH;Ll;0;L;;;;;N;;;;;-023A;LATIN CAPITAL LETTER A WITH STROKE;Lu;0;L;;;;;N;;;;2C65;-023B;LATIN CAPITAL LETTER C WITH STROKE;Lu;0;L;;;;;N;;;;023C;-023C;LATIN SMALL LETTER C WITH STROKE;Ll;0;L;;;;;N;;;023B;;023B-023D;LATIN CAPITAL LETTER L WITH BAR;Lu;0;L;;;;;N;;;;019A;-023E;LATIN CAPITAL LETTER T WITH DIAGONAL STROKE;Lu;0;L;;;;;N;;;;2C66;-023F;LATIN SMALL LETTER S WITH SWASH TAIL;Ll;0;L;;;;;N;;;;;-0240;LATIN SMALL LETTER Z WITH SWASH TAIL;Ll;0;L;;;;;N;;;;;-0241;LATIN CAPITAL LETTER GLOTTAL STOP;Lu;0;L;;;;;N;;;;0242;-0242;LATIN SMALL LETTER GLOTTAL STOP;Ll;0;L;;;;;N;;;0241;;0241-0243;LATIN CAPITAL LETTER B WITH STROKE;Lu;0;L;;;;;N;;;;0180;-0244;LATIN CAPITAL LETTER U BAR;Lu;0;L;;;;;N;;;;0289;-0245;LATIN CAPITAL LETTER TURNED V;Lu;0;L;;;;;N;;;;028C;-0246;LATIN CAPITAL LETTER E WITH STROKE;Lu;0;L;;;;;N;;;;0247;-0247;LATIN SMALL LETTER E WITH STROKE;Ll;0;L;;;;;N;;;0246;;0246-0248;LATIN CAPITAL LETTER J WITH STROKE;Lu;0;L;;;;;N;;;;0249;-0249;LATIN SMALL LETTER J WITH STROKE;Ll;0;L;;;;;N;;;0248;;0248-024A;LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL;Lu;0;L;;;;;N;;;;024B;-024B;LATIN SMALL LETTER Q WITH HOOK TAIL;Ll;0;L;;;;;N;;;024A;;024A-024C;LATIN CAPITAL LETTER R WITH STROKE;Lu;0;L;;;;;N;;;;024D;-024D;LATIN SMALL LETTER R WITH STROKE;Ll;0;L;;;;;N;;;024C;;024C-024E;LATIN CAPITAL LETTER Y WITH STROKE;Lu;0;L;;;;;N;;;;024F;-024F;LATIN SMALL LETTER Y WITH STROKE;Ll;0;L;;;;;N;;;024E;;024E-0250;LATIN SMALL LETTER TURNED A;Ll;0;L;;;;;N;;;;;-0251;LATIN SMALL LETTER ALPHA;Ll;0;L;;;;;N;LATIN SMALL LETTER SCRIPT A;;;;-0252;LATIN SMALL LETTER TURNED ALPHA;Ll;0;L;;;;;N;LATIN SMALL LETTER TURNED SCRIPT A;;;;-0253;LATIN SMALL LETTER B WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER B HOOK;;0181;;0181-0254;LATIN SMALL LETTER OPEN O;Ll;0;L;;;;;N;;;0186;;0186-0255;LATIN SMALL LETTER C WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER C CURL;;;;-0256;LATIN SMALL LETTER D WITH TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER D RETROFLEX HOOK;;0189;;0189-0257;LATIN SMALL LETTER D WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER D HOOK;;018A;;018A-0258;LATIN SMALL LETTER REVERSED E;Ll;0;L;;;;;N;;;;;-0259;LATIN SMALL LETTER SCHWA;Ll;0;L;;;;;N;;;018F;;018F-025A;LATIN SMALL LETTER SCHWA WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER SCHWA HOOK;;;;-025B;LATIN SMALL LETTER OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER EPSILON;;0190;;0190-025C;LATIN SMALL LETTER REVERSED OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED EPSILON;;;;-025D;LATIN SMALL LETTER REVERSED OPEN E WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED EPSILON HOOK;;;;-025E;LATIN SMALL LETTER CLOSED REVERSED OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER CLOSED REVERSED EPSILON;;;;-025F;LATIN SMALL LETTER DOTLESS J WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER DOTLESS J BAR;;;;-0260;LATIN SMALL LETTER G WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER G HOOK;;0193;;0193-0261;LATIN SMALL LETTER SCRIPT G;Ll;0;L;;;;;N;;;;;-0262;LATIN LETTER SMALL CAPITAL G;Ll;0;L;;;;;N;;;;;-0263;LATIN SMALL LETTER GAMMA;Ll;0;L;;;;;N;;;0194;;0194-0264;LATIN SMALL LETTER RAMS HORN;Ll;0;L;;;;;N;LATIN SMALL LETTER BABY GAMMA;;;;-0265;LATIN SMALL LETTER TURNED H;Ll;0;L;;;;;N;;;;;-0266;LATIN SMALL LETTER H WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER H HOOK;;;;-0267;LATIN SMALL LETTER HENG WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER HENG HOOK;;;;-0268;LATIN SMALL LETTER I WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER BARRED I;;0197;;0197-0269;LATIN SMALL LETTER IOTA;Ll;0;L;;;;;N;;;0196;;0196-026A;LATIN LETTER SMALL CAPITAL I;Ll;0;L;;;;;N;;;;;-026B;LATIN SMALL LETTER L WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;2C62;;2C62-026C;LATIN SMALL LETTER L WITH BELT;Ll;0;L;;;;;N;LATIN SMALL LETTER L BELT;;;;-026D;LATIN SMALL LETTER L WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER L RETROFLEX HOOK;;;;-026E;LATIN SMALL LETTER LEZH;Ll;0;L;;;;;N;LATIN SMALL LETTER L YOGH;;;;-026F;LATIN SMALL LETTER TURNED M;Ll;0;L;;;;;N;;;019C;;019C-0270;LATIN SMALL LETTER TURNED M WITH LONG LEG;Ll;0;L;;;;;N;;;;;-0271;LATIN SMALL LETTER M WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER M HOOK;;;;-0272;LATIN SMALL LETTER N WITH LEFT HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER N HOOK;;019D;;019D-0273;LATIN SMALL LETTER N WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER N RETROFLEX HOOK;;;;-0274;LATIN LETTER SMALL CAPITAL N;Ll;0;L;;;;;N;;;;;-0275;LATIN SMALL LETTER BARRED O;Ll;0;L;;;;;N;;;019F;;019F-0276;LATIN LETTER SMALL CAPITAL OE;Ll;0;L;;;;;N;LATIN LETTER SMALL CAPITAL O E;;;;-0277;LATIN SMALL LETTER CLOSED OMEGA;Ll;0;L;;;;;N;;;;;-0278;LATIN SMALL LETTER PHI;Ll;0;L;;;;;N;;;;;-0279;LATIN SMALL LETTER TURNED R;Ll;0;L;;;;;N;;;;;-027A;LATIN SMALL LETTER TURNED R WITH LONG LEG;Ll;0;L;;;;;N;;;;;-027B;LATIN SMALL LETTER TURNED R WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER TURNED R HOOK;;;;-027C;LATIN SMALL LETTER R WITH LONG LEG;Ll;0;L;;;;;N;;;;;-027D;LATIN SMALL LETTER R WITH TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER R HOOK;;2C64;;2C64-027E;LATIN SMALL LETTER R WITH FISHHOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER FISHHOOK R;;;;-027F;LATIN SMALL LETTER REVERSED R WITH FISHHOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED FISHHOOK R;;;;-0280;LATIN LETTER SMALL CAPITAL R;Ll;0;L;;;;;N;;*;01A6;;01A6-0281;LATIN LETTER SMALL CAPITAL INVERTED R;Ll;0;L;;;;;N;;;;;-0282;LATIN SMALL LETTER S WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER S HOOK;;;;-0283;LATIN SMALL LETTER ESH;Ll;0;L;;;;;N;;;01A9;;01A9-0284;LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER DOTLESS J BAR HOOK;;;;-0285;LATIN SMALL LETTER SQUAT REVERSED ESH;Ll;0;L;;;;;N;;;;;-0286;LATIN SMALL LETTER ESH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER ESH CURL;;;;-0287;LATIN SMALL LETTER TURNED T;Ll;0;L;;;;;N;;;;;-0288;LATIN SMALL LETTER T WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER T RETROFLEX HOOK;;01AE;;01AE-0289;LATIN SMALL LETTER U BAR;Ll;0;L;;;;;N;;;0244;;0244-028A;LATIN SMALL LETTER UPSILON;Ll;0;L;;;;;N;;;01B1;;01B1-028B;LATIN SMALL LETTER V WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER SCRIPT V;;01B2;;01B2-028C;LATIN SMALL LETTER TURNED V;Ll;0;L;;;;;N;;;0245;;0245-028D;LATIN SMALL LETTER TURNED W;Ll;0;L;;;;;N;;;;;-028E;LATIN SMALL LETTER TURNED Y;Ll;0;L;;;;;N;;;;;-028F;LATIN LETTER SMALL CAPITAL Y;Ll;0;L;;;;;N;;;;;-0290;LATIN SMALL LETTER Z WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER Z RETROFLEX HOOK;;;;-0291;LATIN SMALL LETTER Z WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER Z CURL;;;;-0292;LATIN SMALL LETTER EZH;Ll;0;L;;;;;N;LATIN SMALL LETTER YOGH;;01B7;;01B7-0293;LATIN SMALL LETTER EZH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER YOGH CURL;;;;-0294;LATIN LETTER GLOTTAL STOP;Lo;0;L;;;;;N;;;;;-0295;LATIN LETTER PHARYNGEAL VOICED FRICATIVE;Ll;0;L;;;;;N;LATIN LETTER REVERSED GLOTTAL STOP;;;;-0296;LATIN LETTER INVERTED GLOTTAL STOP;Ll;0;L;;;;;N;;;;;-0297;LATIN LETTER STRETCHED C;Ll;0;L;;;;;N;;;;;-0298;LATIN LETTER BILABIAL CLICK;Ll;0;L;;;;;N;LATIN LETTER BULLSEYE;;;;-0299;LATIN LETTER SMALL CAPITAL B;Ll;0;L;;;;;N;;;;;-029A;LATIN SMALL LETTER CLOSED OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER CLOSED EPSILON;;;;-029B;LATIN LETTER SMALL CAPITAL G WITH HOOK;Ll;0;L;;;;;N;LATIN LETTER SMALL CAPITAL G HOOK;;;;-029C;LATIN LETTER SMALL CAPITAL H;Ll;0;L;;;;;N;;;;;-029D;LATIN SMALL LETTER J WITH CROSSED-TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER CROSSED-TAIL J;;;;-029E;LATIN SMALL LETTER TURNED K;Ll;0;L;;;;;N;;;;;-029F;LATIN LETTER SMALL CAPITAL L;Ll;0;L;;;;;N;;;;;-02A0;LATIN SMALL LETTER Q WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER Q HOOK;;;;-02A1;LATIN LETTER GLOTTAL STOP WITH STROKE;Ll;0;L;;;;;N;LATIN LETTER GLOTTAL STOP BAR;;;;-02A2;LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE;Ll;0;L;;;;;N;LATIN LETTER REVERSED GLOTTAL STOP BAR;;;;-02A3;LATIN SMALL LETTER DZ DIGRAPH;Ll;0;L;;;;;N;LATIN SMALL LETTER D Z;;;;-02A4;LATIN SMALL LETTER DEZH DIGRAPH;Ll;0;L;;;;;N;LATIN SMALL LETTER D YOGH;;;;-02A5;LATIN SMALL LETTER DZ DIGRAPH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER D Z CURL;;;;-02A6;LATIN SMALL LETTER TS DIGRAPH;Ll;0;L;;;;;N;LATIN SMALL LETTER T S;;;;-02A7;LATIN SMALL LETTER TESH DIGRAPH;Ll;0;L;;;;;N;LATIN SMALL LETTER T ESH;;;;-02A8;LATIN SMALL LETTER TC DIGRAPH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER T C CURL;;;;-02A9;LATIN SMALL LETTER FENG DIGRAPH;Ll;0;L;;;;;N;;;;;-02AA;LATIN SMALL LETTER LS DIGRAPH;Ll;0;L;;;;;N;;;;;-02AB;LATIN SMALL LETTER LZ DIGRAPH;Ll;0;L;;;;;N;;;;;-02AC;LATIN LETTER BILABIAL PERCUSSIVE;Ll;0;L;;;;;N;;;;;-02AD;LATIN LETTER BIDENTAL PERCUSSIVE;Ll;0;L;;;;;N;;;;;-02AE;LATIN SMALL LETTER TURNED H WITH FISHHOOK;Ll;0;L;;;;;N;;;;;-02AF;LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL;Ll;0;L;;;;;N;;;;;-02B0;MODIFIER LETTER SMALL H;Lm;0;L;<super> 0068;;;;N;;;;;-02B1;MODIFIER LETTER SMALL H WITH HOOK;Lm;0;L;<super> 0266;;;;N;MODIFIER LETTER SMALL H HOOK;;;;-02B2;MODIFIER LETTER SMALL J;Lm;0;L;<super> 006A;;;;N;;;;;-02B3;MODIFIER LETTER SMALL R;Lm;0;L;<super> 0072;;;;N;;;;;-02B4;MODIFIER LETTER SMALL TURNED R;Lm;0;L;<super> 0279;;;;N;;;;;-02B5;MODIFIER LETTER SMALL TURNED R WITH HOOK;Lm;0;L;<super> 027B;;;;N;MODIFIER LETTER SMALL TURNED R HOOK;;;;-02B6;MODIFIER LETTER SMALL CAPITAL INVERTED R;Lm;0;L;<super> 0281;;;;N;;;;;-02B7;MODIFIER LETTER SMALL W;Lm;0;L;<super> 0077;;;;N;;;;;-02B8;MODIFIER LETTER SMALL Y;Lm;0;L;<super> 0079;;;;N;;;;;-02B9;MODIFIER LETTER PRIME;Lm;0;ON;;;;;N;;;;;-02BA;MODIFIER LETTER DOUBLE PRIME;Lm;0;ON;;;;;N;;;;;-02BB;MODIFIER LETTER TURNED COMMA;Lm;0;L;;;;;N;;;;;-02BC;MODIFIER LETTER APOSTROPHE;Lm;0;L;;;;;N;;;;;-02BD;MODIFIER LETTER REVERSED COMMA;Lm;0;L;;;;;N;;;;;-02BE;MODIFIER LETTER RIGHT HALF RING;Lm;0;L;;;;;N;;;;;-02BF;MODIFIER LETTER LEFT HALF RING;Lm;0;L;;;;;N;;;;;-02C0;MODIFIER LETTER GLOTTAL STOP;Lm;0;L;;;;;N;;;;;-02C1;MODIFIER LETTER REVERSED GLOTTAL STOP;Lm;0;L;;;;;N;;;;;-02C2;MODIFIER LETTER LEFT ARROWHEAD;Sk;0;ON;;;;;N;;;;;-02C3;MODIFIER LETTER RIGHT ARROWHEAD;Sk;0;ON;;;;;N;;;;;-02C4;MODIFIER LETTER UP ARROWHEAD;Sk;0;ON;;;;;N;;;;;-02C5;MODIFIER LETTER DOWN ARROWHEAD;Sk;0;ON;;;;;N;;;;;-02C6;MODIFIER LETTER CIRCUMFLEX ACCENT;Lm;0;ON;;;;;N;MODIFIER LETTER CIRCUMFLEX;;;;-02C7;CARON;Lm;0;ON;;;;;N;MODIFIER LETTER HACEK;Mandarin Chinese third tone;;;-02C8;MODIFIER LETTER VERTICAL LINE;Lm;0;ON;;;;;N;;;;;-02C9;MODIFIER LETTER MACRON;Lm;0;ON;;;;;N;;Mandarin Chinese first tone;;;-02CA;MODIFIER LETTER ACUTE ACCENT;Lm;0;ON;;;;;N;MODIFIER LETTER ACUTE;Mandarin Chinese second tone;;;-02CB;MODIFIER LETTER GRAVE ACCENT;Lm;0;ON;;;;;N;MODIFIER LETTER GRAVE;Mandarin Chinese fourth tone;;;-02CC;MODIFIER LETTER LOW VERTICAL LINE;Lm;0;ON;;;;;N;;;;;-02CD;MODIFIER LETTER LOW MACRON;Lm;0;ON;;;;;N;;;;;-02CE;MODIFIER LETTER LOW GRAVE ACCENT;Lm;0;ON;;;;;N;MODIFIER LETTER LOW GRAVE;;;;-02CF;MODIFIER LETTER LOW ACUTE ACCENT;Lm;0;ON;;;;;N;MODIFIER LETTER LOW ACUTE;;;;-02D0;MODIFIER LETTER TRIANGULAR COLON;Lm;0;L;;;;;N;;;;;-02D1;MODIFIER LETTER HALF TRIANGULAR COLON;Lm;0;L;;;;;N;;;;;-02D2;MODIFIER LETTER CENTRED RIGHT HALF RING;Sk;0;ON;;;;;N;MODIFIER LETTER CENTERED RIGHT HALF RING;;;;-02D3;MODIFIER LETTER CENTRED LEFT HALF RING;Sk;0;ON;;;;;N;MODIFIER LETTER CENTERED LEFT HALF RING;;;;-02D4;MODIFIER LETTER UP TACK;Sk;0;ON;;;;;N;;;;;-02D5;MODIFIER LETTER DOWN TACK;Sk;0;ON;;;;;N;;;;;-02D6;MODIFIER LETTER PLUS SIGN;Sk;0;ON;;;;;N;;;;;-02D7;MODIFIER LETTER MINUS SIGN;Sk;0;ON;;;;;N;;;;;-02D8;BREVE;Sk;0;ON;<compat> 0020 0306;;;;N;SPACING BREVE;;;;-02D9;DOT ABOVE;Sk;0;ON;<compat> 0020 0307;;;;N;SPACING DOT ABOVE;Mandarin Chinese light tone;;;-02DA;RING ABOVE;Sk;0;ON;<compat> 0020 030A;;;;N;SPACING RING ABOVE;;;;-02DB;OGONEK;Sk;0;ON;<compat> 0020 0328;;;;N;SPACING OGONEK;;;;-02DC;SMALL TILDE;Sk;0;ON;<compat> 0020 0303;;;;N;SPACING TILDE;;;;-02DD;DOUBLE ACUTE ACCENT;Sk;0;ON;<compat> 0020 030B;;;;N;SPACING DOUBLE ACUTE;;;;-02DE;MODIFIER LETTER RHOTIC HOOK;Sk;0;ON;;;;;N;;;;;-02DF;MODIFIER LETTER CROSS ACCENT;Sk;0;ON;;;;;N;;;;;-02E0;MODIFIER LETTER SMALL GAMMA;Lm;0;L;<super> 0263;;;;N;;;;;-02E1;MODIFIER LETTER SMALL L;Lm;0;L;<super> 006C;;;;N;;;;;-02E2;MODIFIER LETTER SMALL S;Lm;0;L;<super> 0073;;;;N;;;;;-02E3;MODIFIER LETTER SMALL X;Lm;0;L;<super> 0078;;;;N;;;;;-02E4;MODIFIER LETTER SMALL REVERSED GLOTTAL STOP;Lm;0;L;<super> 0295;;;;N;;;;;-02E5;MODIFIER LETTER EXTRA-HIGH TONE BAR;Sk;0;ON;;;;;N;;;;;-02E6;MODIFIER LETTER HIGH TONE BAR;Sk;0;ON;;;;;N;;;;;-02E7;MODIFIER LETTER MID TONE BAR;Sk;0;ON;;;;;N;;;;;-02E8;MODIFIER LETTER LOW TONE BAR;Sk;0;ON;;;;;N;;;;;-02E9;MODIFIER LETTER EXTRA-LOW TONE BAR;Sk;0;ON;;;;;N;;;;;-02EA;MODIFIER LETTER YIN DEPARTING TONE MARK;Sk;0;ON;;;;;N;;;;;-02EB;MODIFIER LETTER YANG DEPARTING TONE MARK;Sk;0;ON;;;;;N;;;;;-02EC;MODIFIER LETTER VOICING;Sk;0;ON;;;;;N;;;;;-02ED;MODIFIER LETTER UNASPIRATED;Sk;0;ON;;;;;N;;;;;-02EE;MODIFIER LETTER DOUBLE APOSTROPHE;Lm;0;L;;;;;N;;;;;-02EF;MODIFIER LETTER LOW DOWN ARROWHEAD;Sk;0;ON;;;;;N;;;;;-02F0;MODIFIER LETTER LOW UP ARROWHEAD;Sk;0;ON;;;;;N;;;;;-02F1;MODIFIER LETTER LOW LEFT ARROWHEAD;Sk;0;ON;;;;;N;;;;;-02F2;MODIFIER LETTER LOW RIGHT ARROWHEAD;Sk;0;ON;;;;;N;;;;;-02F3;MODIFIER LETTER LOW RING;Sk;0;ON;;;;;N;;;;;-02F4;MODIFIER LETTER MIDDLE GRAVE ACCENT;Sk;0;ON;;;;;N;;;;;-02F5;MODIFIER LETTER MIDDLE DOUBLE GRAVE ACCENT;Sk;0;ON;;;;;N;;;;;-02F6;MODIFIER LETTER MIDDLE DOUBLE ACUTE ACCENT;Sk;0;ON;;;;;N;;;;;-02F7;MODIFIER LETTER LOW TILDE;Sk;0;ON;;;;;N;;;;;-02F8;MODIFIER LETTER RAISED COLON;Sk;0;ON;;;;;N;;;;;-02F9;MODIFIER LETTER BEGIN HIGH TONE;Sk;0;ON;;;;;N;;;;;-02FA;MODIFIER LETTER END HIGH TONE;Sk;0;ON;;;;;N;;;;;-02FB;MODIFIER LETTER BEGIN LOW TONE;Sk;0;ON;;;;;N;;;;;-02FC;MODIFIER LETTER END LOW TONE;Sk;0;ON;;;;;N;;;;;-02FD;MODIFIER LETTER SHELF;Sk;0;ON;;;;;N;;;;;-02FE;MODIFIER LETTER OPEN SHELF;Sk;0;ON;;;;;N;;;;;-02FF;MODIFIER LETTER LOW LEFT ARROW;Sk;0;ON;;;;;N;;;;;-0300;COMBINING GRAVE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING GRAVE;Varia;;;-0301;COMBINING ACUTE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING ACUTE;Oxia, Tonos;;;-0302;COMBINING CIRCUMFLEX ACCENT;Mn;230;NSM;;;;;N;NON-SPACING CIRCUMFLEX;;;;-0303;COMBINING TILDE;Mn;230;NSM;;;;;N;NON-SPACING TILDE;;;;-0304;COMBINING MACRON;Mn;230;NSM;;;;;N;NON-SPACING MACRON;;;;-0305;COMBINING OVERLINE;Mn;230;NSM;;;;;N;NON-SPACING OVERSCORE;;;;-0306;COMBINING BREVE;Mn;230;NSM;;;;;N;NON-SPACING BREVE;Vrachy;;;-0307;COMBINING DOT ABOVE;Mn;230;NSM;;;;;N;NON-SPACING DOT ABOVE;;;;-0308;COMBINING DIAERESIS;Mn;230;NSM;;;;;N;NON-SPACING DIAERESIS;Dialytika;;;-0309;COMBINING HOOK ABOVE;Mn;230;NSM;;;;;N;NON-SPACING HOOK ABOVE;;;;-030A;COMBINING RING ABOVE;Mn;230;NSM;;;;;N;NON-SPACING RING ABOVE;;;;-030B;COMBINING DOUBLE ACUTE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING DOUBLE ACUTE;;;;-030C;COMBINING CARON;Mn;230;NSM;;;;;N;NON-SPACING HACEK;;;;-030D;COMBINING VERTICAL LINE ABOVE;Mn;230;NSM;;;;;N;NON-SPACING VERTICAL LINE ABOVE;;;;-030E;COMBINING DOUBLE VERTICAL LINE ABOVE;Mn;230;NSM;;;;;N;NON-SPACING DOUBLE VERTICAL LINE ABOVE;;;;-030F;COMBINING DOUBLE GRAVE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING DOUBLE GRAVE;;;;-0310;COMBINING CANDRABINDU;Mn;230;NSM;;;;;N;NON-SPACING CANDRABINDU;;;;-0311;COMBINING INVERTED BREVE;Mn;230;NSM;;;;;N;NON-SPACING INVERTED BREVE;;;;-0312;COMBINING TURNED COMMA ABOVE;Mn;230;NSM;;;;;N;NON-SPACING TURNED COMMA ABOVE;;;;-0313;COMBINING COMMA ABOVE;Mn;230;NSM;;;;;N;NON-SPACING COMMA ABOVE;Psili;;;-0314;COMBINING REVERSED COMMA ABOVE;Mn;230;NSM;;;;;N;NON-SPACING REVERSED COMMA ABOVE;Dasia;;;-0315;COMBINING COMMA ABOVE RIGHT;Mn;232;NSM;;;;;N;NON-SPACING COMMA ABOVE RIGHT;;;;-0316;COMBINING GRAVE ACCENT BELOW;Mn;220;NSM;;;;;N;NON-SPACING GRAVE BELOW;;;;-0317;COMBINING ACUTE ACCENT BELOW;Mn;220;NSM;;;;;N;NON-SPACING ACUTE BELOW;;;;-0318;COMBINING LEFT TACK BELOW;Mn;220;NSM;;;;;N;NON-SPACING LEFT TACK BELOW;;;;-0319;COMBINING RIGHT TACK BELOW;Mn;220;NSM;;;;;N;NON-SPACING RIGHT TACK BELOW;;;;-031A;COMBINING LEFT ANGLE ABOVE;Mn;232;NSM;;;;;N;NON-SPACING LEFT ANGLE ABOVE;;;;-031B;COMBINING HORN;Mn;216;NSM;;;;;N;NON-SPACING HORN;;;;-031C;COMBINING LEFT HALF RING BELOW;Mn;220;NSM;;;;;N;NON-SPACING LEFT HALF RING BELOW;;;;-031D;COMBINING UP TACK BELOW;Mn;220;NSM;;;;;N;NON-SPACING UP TACK BELOW;;;;-031E;COMBINING DOWN TACK BELOW;Mn;220;NSM;;;;;N;NON-SPACING DOWN TACK BELOW;;;;-031F;COMBINING PLUS SIGN BELOW;Mn;220;NSM;;;;;N;NON-SPACING PLUS SIGN BELOW;;;;-0320;COMBINING MINUS SIGN BELOW;Mn;220;NSM;;;;;N;NON-SPACING MINUS SIGN BELOW;;;;-0321;COMBINING PALATALIZED HOOK BELOW;Mn;202;NSM;;;;;N;NON-SPACING PALATALIZED HOOK BELOW;;;;-0322;COMBINING RETROFLEX HOOK BELOW;Mn;202;NSM;;;;;N;NON-SPACING RETROFLEX HOOK BELOW;;;;-0323;COMBINING DOT BELOW;Mn;220;NSM;;;;;N;NON-SPACING DOT BELOW;;;;-0324;COMBINING DIAERESIS BELOW;Mn;220;NSM;;;;;N;NON-SPACING DOUBLE DOT BELOW;;;;-0325;COMBINING RING BELOW;Mn;220;NSM;;;;;N;NON-SPACING RING BELOW;;;;-0326;COMBINING COMMA BELOW;Mn;220;NSM;;;;;N;NON-SPACING COMMA BELOW;;;;-0327;COMBINING CEDILLA;Mn;202;NSM;;;;;N;NON-SPACING CEDILLA;;;;-0328;COMBINING OGONEK;Mn;202;NSM;;;;;N;NON-SPACING OGONEK;;;;-0329;COMBINING VERTICAL LINE BELOW;Mn;220;NSM;;;;;N;NON-SPACING VERTICAL LINE BELOW;;;;-032A;COMBINING BRIDGE BELOW;Mn;220;NSM;;;;;N;NON-SPACING BRIDGE BELOW;;;;-032B;COMBINING INVERTED DOUBLE ARCH BELOW;Mn;220;NSM;;;;;N;NON-SPACING INVERTED DOUBLE ARCH BELOW;;;;-032C;COMBINING CARON BELOW;Mn;220;NSM;;;;;N;NON-SPACING HACEK BELOW;;;;-032D;COMBINING CIRCUMFLEX ACCENT BELOW;Mn;220;NSM;;;;;N;NON-SPACING CIRCUMFLEX BELOW;;;;-032E;COMBINING BREVE BELOW;Mn;220;NSM;;;;;N;NON-SPACING BREVE BELOW;;;;-032F;COMBINING INVERTED BREVE BELOW;Mn;220;NSM;;;;;N;NON-SPACING INVERTED BREVE BELOW;;;;-0330;COMBINING TILDE BELOW;Mn;220;NSM;;;;;N;NON-SPACING TILDE BELOW;;;;-0331;COMBINING MACRON BELOW;Mn;220;NSM;;;;;N;NON-SPACING MACRON BELOW;;;;-0332;COMBINING LOW LINE;Mn;220;NSM;;;;;N;NON-SPACING UNDERSCORE;;;;-0333;COMBINING DOUBLE LOW LINE;Mn;220;NSM;;;;;N;NON-SPACING DOUBLE UNDERSCORE;;;;-0334;COMBINING TILDE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING TILDE OVERLAY;;;;-0335;COMBINING SHORT STROKE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING SHORT BAR OVERLAY;;;;-0336;COMBINING LONG STROKE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING LONG BAR OVERLAY;;;;-0337;COMBINING SHORT SOLIDUS OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING SHORT SLASH OVERLAY;;;;-0338;COMBINING LONG SOLIDUS OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING LONG SLASH OVERLAY;;;;-0339;COMBINING RIGHT HALF RING BELOW;Mn;220;NSM;;;;;N;NON-SPACING RIGHT HALF RING BELOW;;;;-033A;COMBINING INVERTED BRIDGE BELOW;Mn;220;NSM;;;;;N;NON-SPACING INVERTED BRIDGE BELOW;;;;-033B;COMBINING SQUARE BELOW;Mn;220;NSM;;;;;N;NON-SPACING SQUARE BELOW;;;;-033C;COMBINING SEAGULL BELOW;Mn;220;NSM;;;;;N;NON-SPACING SEAGULL BELOW;;;;-033D;COMBINING X ABOVE;Mn;230;NSM;;;;;N;NON-SPACING X ABOVE;;;;-033E;COMBINING VERTICAL TILDE;Mn;230;NSM;;;;;N;NON-SPACING VERTICAL TILDE;;;;-033F;COMBINING DOUBLE OVERLINE;Mn;230;NSM;;;;;N;NON-SPACING DOUBLE OVERSCORE;;;;-0340;COMBINING GRAVE TONE MARK;Mn;230;NSM;0300;;;;N;NON-SPACING GRAVE TONE MARK;Vietnamese;;;-0341;COMBINING ACUTE TONE MARK;Mn;230;NSM;0301;;;;N;NON-SPACING ACUTE TONE MARK;Vietnamese;;;-0342;COMBINING GREEK PERISPOMENI;Mn;230;NSM;;;;;N;;;;;-0343;COMBINING GREEK KORONIS;Mn;230;NSM;0313;;;;N;;;;;-0344;COMBINING GREEK DIALYTIKA TONOS;Mn;230;NSM;0308 0301;;;;N;GREEK NON-SPACING DIAERESIS TONOS;;;;-0345;COMBINING GREEK YPOGEGRAMMENI;Mn;240;NSM;;;;;N;GREEK NON-SPACING IOTA BELOW;;0399;;0399-0346;COMBINING BRIDGE ABOVE;Mn;230;NSM;;;;;N;;;;;-0347;COMBINING EQUALS SIGN BELOW;Mn;220;NSM;;;;;N;;;;;-0348;COMBINING DOUBLE VERTICAL LINE BELOW;Mn;220;NSM;;;;;N;;;;;-0349;COMBINING LEFT ANGLE BELOW;Mn;220;NSM;;;;;N;;;;;-034A;COMBINING NOT TILDE ABOVE;Mn;230;NSM;;;;;N;;;;;-034B;COMBINING HOMOTHETIC ABOVE;Mn;230;NSM;;;;;N;;;;;-034C;COMBINING ALMOST EQUAL TO ABOVE;Mn;230;NSM;;;;;N;;;;;-034D;COMBINING LEFT RIGHT ARROW BELOW;Mn;220;NSM;;;;;N;;;;;-034E;COMBINING UPWARDS ARROW BELOW;Mn;220;NSM;;;;;N;;;;;-034F;COMBINING GRAPHEME JOINER;Mn;0;NSM;;;;;N;;;;;-0350;COMBINING RIGHT ARROWHEAD ABOVE;Mn;230;NSM;;;;;N;;;;;-0351;COMBINING LEFT HALF RING ABOVE;Mn;230;NSM;;;;;N;;;;;-0352;COMBINING FERMATA;Mn;230;NSM;;;;;N;;;;;-0353;COMBINING X BELOW;Mn;220;NSM;;;;;N;;;;;-0354;COMBINING LEFT ARROWHEAD BELOW;Mn;220;NSM;;;;;N;;;;;-0355;COMBINING RIGHT ARROWHEAD BELOW;Mn;220;NSM;;;;;N;;;;;-0356;COMBINING RIGHT ARROWHEAD AND UP ARROWHEAD BELOW;Mn;220;NSM;;;;;N;;;;;-0357;COMBINING RIGHT HALF RING ABOVE;Mn;230;NSM;;;;;N;;;;;-0358;COMBINING DOT ABOVE RIGHT;Mn;232;NSM;;;;;N;;;;;-0359;COMBINING ASTERISK BELOW;Mn;220;NSM;;;;;N;;;;;-035A;COMBINING DOUBLE RING BELOW;Mn;220;NSM;;;;;N;;;;;-035B;COMBINING ZIGZAG ABOVE;Mn;230;NSM;;;;;N;;;;;-035C;COMBINING DOUBLE BREVE BELOW;Mn;233;NSM;;;;;N;;;;;-035D;COMBINING DOUBLE BREVE;Mn;234;NSM;;;;;N;;;;;-035E;COMBINING DOUBLE MACRON;Mn;234;NSM;;;;;N;;;;;-035F;COMBINING DOUBLE MACRON BELOW;Mn;233;NSM;;;;;N;;;;;-0360;COMBINING DOUBLE TILDE;Mn;234;NSM;;;;;N;;;;;-0361;COMBINING DOUBLE INVERTED BREVE;Mn;234;NSM;;;;;N;;;;;-0362;COMBINING DOUBLE RIGHTWARDS ARROW BELOW;Mn;233;NSM;;;;;N;;;;;-0363;COMBINING LATIN SMALL LETTER A;Mn;230;NSM;;;;;N;;;;;-0364;COMBINING LATIN SMALL LETTER E;Mn;230;NSM;;;;;N;;;;;-0365;COMBINING LATIN SMALL LETTER I;Mn;230;NSM;;;;;N;;;;;-0366;COMBINING LATIN SMALL LETTER O;Mn;230;NSM;;;;;N;;;;;-0367;COMBINING LATIN SMALL LETTER U;Mn;230;NSM;;;;;N;;;;;-0368;COMBINING LATIN SMALL LETTER C;Mn;230;NSM;;;;;N;;;;;-0369;COMBINING LATIN SMALL LETTER D;Mn;230;NSM;;;;;N;;;;;-036A;COMBINING LATIN SMALL LETTER H;Mn;230;NSM;;;;;N;;;;;-036B;COMBINING LATIN SMALL LETTER M;Mn;230;NSM;;;;;N;;;;;-036C;COMBINING LATIN SMALL LETTER R;Mn;230;NSM;;;;;N;;;;;-036D;COMBINING LATIN SMALL LETTER T;Mn;230;NSM;;;;;N;;;;;-036E;COMBINING LATIN SMALL LETTER V;Mn;230;NSM;;;;;N;;;;;-036F;COMBINING LATIN SMALL LETTER X;Mn;230;NSM;;;;;N;;;;;-0374;GREEK NUMERAL SIGN;Sk;0;ON;02B9;;;;N;GREEK UPPER NUMERAL SIGN;Dexia keraia;;;-0375;GREEK LOWER NUMERAL SIGN;Sk;0;ON;;;;;N;;Aristeri keraia;;;-037A;GREEK YPOGEGRAMMENI;Lm;0;L;<compat> 0020 0345;;;;N;GREEK SPACING IOTA BELOW;;;;-037B;GREEK SMALL REVERSED LUNATE SIGMA SYMBOL;Ll;0;L;;;;;N;;;03FD;;03FD-037C;GREEK SMALL DOTTED LUNATE SIGMA SYMBOL;Ll;0;L;;;;;N;;;03FE;;03FE-037D;GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL;Ll;0;L;;;;;N;;;03FF;;03FF-037E;GREEK QUESTION MARK;Po;0;ON;003B;;;;N;;Erotimatiko;;;-0384;GREEK TONOS;Sk;0;ON;<compat> 0020 0301;;;;N;GREEK SPACING TONOS;;;;-0385;GREEK DIALYTIKA TONOS;Sk;0;ON;00A8 0301;;;;N;GREEK SPACING DIAERESIS TONOS;;;;-0386;GREEK CAPITAL LETTER ALPHA WITH TONOS;Lu;0;L;0391 0301;;;;N;GREEK CAPITAL LETTER ALPHA TONOS;;;03AC;-0387;GREEK ANO TELEIA;Po;0;ON;00B7;;;;N;;;;;-0388;GREEK CAPITAL LETTER EPSILON WITH TONOS;Lu;0;L;0395 0301;;;;N;GREEK CAPITAL LETTER EPSILON TONOS;;;03AD;-0389;GREEK CAPITAL LETTER ETA WITH TONOS;Lu;0;L;0397 0301;;;;N;GREEK CAPITAL LETTER ETA TONOS;;;03AE;-038A;GREEK CAPITAL LETTER IOTA WITH TONOS;Lu;0;L;0399 0301;;;;N;GREEK CAPITAL LETTER IOTA TONOS;;;03AF;-038C;GREEK CAPITAL LETTER OMICRON WITH TONOS;Lu;0;L;039F 0301;;;;N;GREEK CAPITAL LETTER OMICRON TONOS;;;03CC;-038E;GREEK CAPITAL LETTER UPSILON WITH TONOS;Lu;0;L;03A5 0301;;;;N;GREEK CAPITAL LETTER UPSILON TONOS;;;03CD;-038F;GREEK CAPITAL LETTER OMEGA WITH TONOS;Lu;0;L;03A9 0301;;;;N;GREEK CAPITAL LETTER OMEGA TONOS;;;03CE;-0390;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS;Ll;0;L;03CA 0301;;;;N;GREEK SMALL LETTER IOTA DIAERESIS TONOS;;;;-0391;GREEK CAPITAL LETTER ALPHA;Lu;0;L;;;;;N;;;;03B1;-0392;GREEK CAPITAL LETTER BETA;Lu;0;L;;;;;N;;;;03B2;-0393;GREEK CAPITAL LETTER GAMMA;Lu;0;L;;;;;N;;;;03B3;-0394;GREEK CAPITAL LETTER DELTA;Lu;0;L;;;;;N;;;;03B4;-0395;GREEK CAPITAL LETTER EPSILON;Lu;0;L;;;;;N;;;;03B5;-0396;GREEK CAPITAL LETTER ZETA;Lu;0;L;;;;;N;;;;03B6;-0397;GREEK CAPITAL LETTER ETA;Lu;0;L;;;;;N;;;;03B7;-0398;GREEK CAPITAL LETTER THETA;Lu;0;L;;;;;N;;;;03B8;-0399;GREEK CAPITAL LETTER IOTA;Lu;0;L;;;;;N;;;;03B9;-039A;GREEK CAPITAL LETTER KAPPA;Lu;0;L;;;;;N;;;;03BA;-039B;GREEK CAPITAL LETTER LAMDA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER LAMBDA;;;03BB;-039C;GREEK CAPITAL LETTER MU;Lu;0;L;;;;;N;;;;03BC;-039D;GREEK CAPITAL LETTER NU;Lu;0;L;;;;;N;;;;03BD;-039E;GREEK CAPITAL LETTER XI;Lu;0;L;;;;;N;;;;03BE;-039F;GREEK CAPITAL LETTER OMICRON;Lu;0;L;;;;;N;;;;03BF;-03A0;GREEK CAPITAL LETTER PI;Lu;0;L;;;;;N;;;;03C0;-03A1;GREEK CAPITAL LETTER RHO;Lu;0;L;;;;;N;;;;03C1;-03A3;GREEK CAPITAL LETTER SIGMA;Lu;0;L;;;;;N;;;;03C3;-03A4;GREEK CAPITAL LETTER TAU;Lu;0;L;;;;;N;;;;03C4;-03A5;GREEK CAPITAL LETTER UPSILON;Lu;0;L;;;;;N;;;;03C5;-03A6;GREEK CAPITAL LETTER PHI;Lu;0;L;;;;;N;;;;03C6;-03A7;GREEK CAPITAL LETTER CHI;Lu;0;L;;;;;N;;;;03C7;-03A8;GREEK CAPITAL LETTER PSI;Lu;0;L;;;;;N;;;;03C8;-03A9;GREEK CAPITAL LETTER OMEGA;Lu;0;L;;;;;N;;;;03C9;-03AA;GREEK CAPITAL LETTER IOTA WITH DIALYTIKA;Lu;0;L;0399 0308;;;;N;GREEK CAPITAL LETTER IOTA DIAERESIS;;;03CA;-03AB;GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA;Lu;0;L;03A5 0308;;;;N;GREEK CAPITAL LETTER UPSILON DIAERESIS;;;03CB;-03AC;GREEK SMALL LETTER ALPHA WITH TONOS;Ll;0;L;03B1 0301;;;;N;GREEK SMALL LETTER ALPHA TONOS;;0386;;0386-03AD;GREEK SMALL LETTER EPSILON WITH TONOS;Ll;0;L;03B5 0301;;;;N;GREEK SMALL LETTER EPSILON TONOS;;0388;;0388-03AE;GREEK SMALL LETTER ETA WITH TONOS;Ll;0;L;03B7 0301;;;;N;GREEK SMALL LETTER ETA TONOS;;0389;;0389-03AF;GREEK SMALL LETTER IOTA WITH TONOS;Ll;0;L;03B9 0301;;;;N;GREEK SMALL LETTER IOTA TONOS;;038A;;038A-03B0;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS;Ll;0;L;03CB 0301;;;;N;GREEK SMALL LETTER UPSILON DIAERESIS TONOS;;;;-03B1;GREEK SMALL LETTER ALPHA;Ll;0;L;;;;;N;;;0391;;0391-03B2;GREEK SMALL LETTER BETA;Ll;0;L;;;;;N;;;0392;;0392-03B3;GREEK SMALL LETTER GAMMA;Ll;0;L;;;;;N;;;0393;;0393-03B4;GREEK SMALL LETTER DELTA;Ll;0;L;;;;;N;;;0394;;0394-03B5;GREEK SMALL LETTER EPSILON;Ll;0;L;;;;;N;;;0395;;0395-03B6;GREEK SMALL LETTER ZETA;Ll;0;L;;;;;N;;;0396;;0396-03B7;GREEK SMALL LETTER ETA;Ll;0;L;;;;;N;;;0397;;0397-03B8;GREEK SMALL LETTER THETA;Ll;0;L;;;;;N;;;0398;;0398-03B9;GREEK SMALL LETTER IOTA;Ll;0;L;;;;;N;;;0399;;0399-03BA;GREEK SMALL LETTER KAPPA;Ll;0;L;;;;;N;;;039A;;039A-03BB;GREEK SMALL LETTER LAMDA;Ll;0;L;;;;;N;GREEK SMALL LETTER LAMBDA;;039B;;039B-03BC;GREEK SMALL LETTER MU;Ll;0;L;;;;;N;;;039C;;039C-03BD;GREEK SMALL LETTER NU;Ll;0;L;;;;;N;;;039D;;039D-03BE;GREEK SMALL LETTER XI;Ll;0;L;;;;;N;;;039E;;039E-03BF;GREEK SMALL LETTER OMICRON;Ll;0;L;;;;;N;;;039F;;039F-03C0;GREEK SMALL LETTER PI;Ll;0;L;;;;;N;;;03A0;;03A0-03C1;GREEK SMALL LETTER RHO;Ll;0;L;;;;;N;;;03A1;;03A1-03C2;GREEK SMALL LETTER FINAL SIGMA;Ll;0;L;;;;;N;;;03A3;;03A3-03C3;GREEK SMALL LETTER SIGMA;Ll;0;L;;;;;N;;;03A3;;03A3-03C4;GREEK SMALL LETTER TAU;Ll;0;L;;;;;N;;;03A4;;03A4-03C5;GREEK SMALL LETTER UPSILON;Ll;0;L;;;;;N;;;03A5;;03A5-03C6;GREEK SMALL LETTER PHI;Ll;0;L;;;;;N;;;03A6;;03A6-03C7;GREEK SMALL LETTER CHI;Ll;0;L;;;;;N;;;03A7;;03A7-03C8;GREEK SMALL LETTER PSI;Ll;0;L;;;;;N;;;03A8;;03A8-03C9;GREEK SMALL LETTER OMEGA;Ll;0;L;;;;;N;;;03A9;;03A9-03CA;GREEK SMALL LETTER IOTA WITH DIALYTIKA;Ll;0;L;03B9 0308;;;;N;GREEK SMALL LETTER IOTA DIAERESIS;;03AA;;03AA-03CB;GREEK SMALL LETTER UPSILON WITH DIALYTIKA;Ll;0;L;03C5 0308;;;;N;GREEK SMALL LETTER UPSILON DIAERESIS;;03AB;;03AB-03CC;GREEK SMALL LETTER OMICRON WITH TONOS;Ll;0;L;03BF 0301;;;;N;GREEK SMALL LETTER OMICRON TONOS;;038C;;038C-03CD;GREEK SMALL LETTER UPSILON WITH TONOS;Ll;0;L;03C5 0301;;;;N;GREEK SMALL LETTER UPSILON TONOS;;038E;;038E-03CE;GREEK SMALL LETTER OMEGA WITH TONOS;Ll;0;L;03C9 0301;;;;N;GREEK SMALL LETTER OMEGA TONOS;;038F;;038F-03D0;GREEK BETA SYMBOL;Ll;0;L;<compat> 03B2;;;;N;GREEK SMALL LETTER CURLED BETA;;0392;;0392-03D1;GREEK THETA SYMBOL;Ll;0;L;<compat> 03B8;;;;N;GREEK SMALL LETTER SCRIPT THETA;;0398;;0398-03D2;GREEK UPSILON WITH HOOK SYMBOL;Lu;0;L;<compat> 03A5;;;;N;GREEK CAPITAL LETTER UPSILON HOOK;;;;-03D3;GREEK UPSILON WITH ACUTE AND HOOK SYMBOL;Lu;0;L;03D2 0301;;;;N;GREEK CAPITAL LETTER UPSILON HOOK TONOS;;;;-03D4;GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL;Lu;0;L;03D2 0308;;;;N;GREEK CAPITAL LETTER UPSILON HOOK DIAERESIS;;;;-03D5;GREEK PHI SYMBOL;Ll;0;L;<compat> 03C6;;;;N;GREEK SMALL LETTER SCRIPT PHI;;03A6;;03A6-03D6;GREEK PI SYMBOL;Ll;0;L;<compat> 03C0;;;;N;GREEK SMALL LETTER OMEGA PI;;03A0;;03A0-03D7;GREEK KAI SYMBOL;Ll;0;L;;;;;N;;;;;-03D8;GREEK LETTER ARCHAIC KOPPA;Lu;0;L;;;;;N;;*;;03D9;-03D9;GREEK SMALL LETTER ARCHAIC KOPPA;Ll;0;L;;;;;N;;*;03D8;;03D8-03DA;GREEK LETTER STIGMA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER STIGMA;;;03DB;-03DB;GREEK SMALL LETTER STIGMA;Ll;0;L;;;;;N;;;03DA;;03DA-03DC;GREEK LETTER DIGAMMA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER DIGAMMA;;;03DD;-03DD;GREEK SMALL LETTER DIGAMMA;Ll;0;L;;;;;N;;;03DC;;03DC-03DE;GREEK LETTER KOPPA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER KOPPA;;;03DF;-03DF;GREEK SMALL LETTER KOPPA;Ll;0;L;;;;;N;;;03DE;;03DE-03E0;GREEK LETTER SAMPI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER SAMPI;;;03E1;-03E1;GREEK SMALL LETTER SAMPI;Ll;0;L;;;;;N;;;03E0;;03E0-03E2;COPTIC CAPITAL LETTER SHEI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER SHEI;;;03E3;-03E3;COPTIC SMALL LETTER SHEI;Ll;0;L;;;;;N;GREEK SMALL LETTER SHEI;;03E2;;03E2-03E4;COPTIC CAPITAL LETTER FEI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER FEI;;;03E5;-03E5;COPTIC SMALL LETTER FEI;Ll;0;L;;;;;N;GREEK SMALL LETTER FEI;;03E4;;03E4-03E6;COPTIC CAPITAL LETTER KHEI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER KHEI;;;03E7;-03E7;COPTIC SMALL LETTER KHEI;Ll;0;L;;;;;N;GREEK SMALL LETTER KHEI;;03E6;;03E6-03E8;COPTIC CAPITAL LETTER HORI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER HORI;;;03E9;-03E9;COPTIC SMALL LETTER HORI;Ll;0;L;;;;;N;GREEK SMALL LETTER HORI;;03E8;;03E8-03EA;COPTIC CAPITAL LETTER GANGIA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER GANGIA;;;03EB;-03EB;COPTIC SMALL LETTER GANGIA;Ll;0;L;;;;;N;GREEK SMALL LETTER GANGIA;;03EA;;03EA-03EC;COPTIC CAPITAL LETTER SHIMA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER SHIMA;;;03ED;-03ED;COPTIC SMALL LETTER SHIMA;Ll;0;L;;;;;N;GREEK SMALL LETTER SHIMA;;03EC;;03EC-03EE;COPTIC CAPITAL LETTER DEI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER DEI;;;03EF;-03EF;COPTIC SMALL LETTER DEI;Ll;0;L;;;;;N;GREEK SMALL LETTER DEI;;03EE;;03EE-03F0;GREEK KAPPA SYMBOL;Ll;0;L;<compat> 03BA;;;;N;GREEK SMALL LETTER SCRIPT KAPPA;;039A;;039A-03F1;GREEK RHO SYMBOL;Ll;0;L;<compat> 03C1;;;;N;GREEK SMALL LETTER TAILED RHO;;03A1;;03A1-03F2;GREEK LUNATE SIGMA SYMBOL;Ll;0;L;<compat> 03C2;;;;N;GREEK SMALL LETTER LUNATE SIGMA;;03F9;;03F9-03F3;GREEK LETTER YOT;Ll;0;L;;;;;N;;;;;-03F4;GREEK CAPITAL THETA SYMBOL;Lu;0;L;<compat> 0398;;;;N;;;;03B8;-03F5;GREEK LUNATE EPSILON SYMBOL;Ll;0;L;<compat> 03B5;;;;N;;;0395;;0395-03F6;GREEK REVERSED LUNATE EPSILON SYMBOL;Sm;0;ON;;;;;N;;;;;-03F7;GREEK CAPITAL LETTER SHO;Lu;0;L;;;;;N;;;;03F8;-03F8;GREEK SMALL LETTER SHO;Ll;0;L;;;;;N;;;03F7;;03F7-03F9;GREEK CAPITAL LUNATE SIGMA SYMBOL;Lu;0;L;<compat> 03A3;;;;N;;;;03F2;-03FA;GREEK CAPITAL LETTER SAN;Lu;0;L;;;;;N;;;;03FB;-03FB;GREEK SMALL LETTER SAN;Ll;0;L;;;;;N;;;03FA;;03FA-03FC;GREEK RHO WITH STROKE SYMBOL;Ll;0;L;;;;;N;;;;;-03FD;GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL;Lu;0;L;;;;;N;;;;037B;-03FE;GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL;Lu;0;L;;;;;N;;;;037C;-03FF;GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL;Lu;0;L;;;;;N;;;;037D;-0400;CYRILLIC CAPITAL LETTER IE WITH GRAVE;Lu;0;L;0415 0300;;;;N;;;;0450;-0401;CYRILLIC CAPITAL LETTER IO;Lu;0;L;0415 0308;;;;N;;;;0451;-0402;CYRILLIC CAPITAL LETTER DJE;Lu;0;L;;;;;N;;Serbocroatian;;0452;-0403;CYRILLIC CAPITAL LETTER GJE;Lu;0;L;0413 0301;;;;N;;;;0453;-0404;CYRILLIC CAPITAL LETTER UKRAINIAN IE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER E;;;0454;-0405;CYRILLIC CAPITAL LETTER DZE;Lu;0;L;;;;;N;;;;0455;-0406;CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER I;;;0456;-0407;CYRILLIC CAPITAL LETTER YI;Lu;0;L;0406 0308;;;;N;;Ukrainian;;0457;-0408;CYRILLIC CAPITAL LETTER JE;Lu;0;L;;;;;N;;;;0458;-0409;CYRILLIC CAPITAL LETTER LJE;Lu;0;L;;;;;N;;;;0459;-040A;CYRILLIC CAPITAL LETTER NJE;Lu;0;L;;;;;N;;;;045A;-040B;CYRILLIC CAPITAL LETTER TSHE;Lu;0;L;;;;;N;;Serbocroatian;;045B;-040C;CYRILLIC CAPITAL LETTER KJE;Lu;0;L;041A 0301;;;;N;;;;045C;-040D;CYRILLIC CAPITAL LETTER I WITH GRAVE;Lu;0;L;0418 0300;;;;N;;;;045D;-040E;CYRILLIC CAPITAL LETTER SHORT U;Lu;0;L;0423 0306;;;;N;;Byelorussian;;045E;-040F;CYRILLIC CAPITAL LETTER DZHE;Lu;0;L;;;;;N;;;;045F;-0410;CYRILLIC CAPITAL LETTER A;Lu;0;L;;;;;N;;;;0430;-0411;CYRILLIC CAPITAL LETTER BE;Lu;0;L;;;;;N;;;;0431;-0412;CYRILLIC CAPITAL LETTER VE;Lu;0;L;;;;;N;;;;0432;-0413;CYRILLIC CAPITAL LETTER GHE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER GE;;;0433;-0414;CYRILLIC CAPITAL LETTER DE;Lu;0;L;;;;;N;;;;0434;-0415;CYRILLIC CAPITAL LETTER IE;Lu;0;L;;;;;N;;;;0435;-0416;CYRILLIC CAPITAL LETTER ZHE;Lu;0;L;;;;;N;;;;0436;-0417;CYRILLIC CAPITAL LETTER ZE;Lu;0;L;;;;;N;;;;0437;-0418;CYRILLIC CAPITAL LETTER I;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER II;;;0438;-0419;CYRILLIC CAPITAL LETTER SHORT I;Lu;0;L;0418 0306;;;;N;CYRILLIC CAPITAL LETTER SHORT II;;;0439;-041A;CYRILLIC CAPITAL LETTER KA;Lu;0;L;;;;;N;;;;043A;-041B;CYRILLIC CAPITAL LETTER EL;Lu;0;L;;;;;N;;;;043B;-041C;CYRILLIC CAPITAL LETTER EM;Lu;0;L;;;;;N;;;;043C;-041D;CYRILLIC CAPITAL LETTER EN;Lu;0;L;;;;;N;;;;043D;-041E;CYRILLIC CAPITAL LETTER O;Lu;0;L;;;;;N;;;;043E;-041F;CYRILLIC CAPITAL LETTER PE;Lu;0;L;;;;;N;;;;043F;-0420;CYRILLIC CAPITAL LETTER ER;Lu;0;L;;;;;N;;;;0440;-0421;CYRILLIC CAPITAL LETTER ES;Lu;0;L;;;;;N;;;;0441;-0422;CYRILLIC CAPITAL LETTER TE;Lu;0;L;;;;;N;;;;0442;-0423;CYRILLIC CAPITAL LETTER U;Lu;0;L;;;;;N;;;;0443;-0424;CYRILLIC CAPITAL LETTER EF;Lu;0;L;;;;;N;;;;0444;-0425;CYRILLIC CAPITAL LETTER HA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KHA;;;0445;-0426;CYRILLIC CAPITAL LETTER TSE;Lu;0;L;;;;;N;;;;0446;-0427;CYRILLIC CAPITAL LETTER CHE;Lu;0;L;;;;;N;;;;0447;-0428;CYRILLIC CAPITAL LETTER SHA;Lu;0;L;;;;;N;;;;0448;-0429;CYRILLIC CAPITAL LETTER SHCHA;Lu;0;L;;;;;N;;;;0449;-042A;CYRILLIC CAPITAL LETTER HARD SIGN;Lu;0;L;;;;;N;;;;044A;-042B;CYRILLIC CAPITAL LETTER YERU;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER YERI;;;044B;-042C;CYRILLIC CAPITAL LETTER SOFT SIGN;Lu;0;L;;;;;N;;;;044C;-042D;CYRILLIC CAPITAL LETTER E;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER REVERSED E;;;044D;-042E;CYRILLIC CAPITAL LETTER YU;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER IU;;;044E;-042F;CYRILLIC CAPITAL LETTER YA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER IA;;;044F;-0430;CYRILLIC SMALL LETTER A;Ll;0;L;;;;;N;;;0410;;0410-0431;CYRILLIC SMALL LETTER BE;Ll;0;L;;;;;N;;;0411;;0411-0432;CYRILLIC SMALL LETTER VE;Ll;0;L;;;;;N;;;0412;;0412-0433;CYRILLIC SMALL LETTER GHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER GE;;0413;;0413-0434;CYRILLIC SMALL LETTER DE;Ll;0;L;;;;;N;;;0414;;0414-0435;CYRILLIC SMALL LETTER IE;Ll;0;L;;;;;N;;;0415;;0415-0436;CYRILLIC SMALL LETTER ZHE;Ll;0;L;;;;;N;;;0416;;0416-0437;CYRILLIC SMALL LETTER ZE;Ll;0;L;;;;;N;;;0417;;0417-0438;CYRILLIC SMALL LETTER I;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER II;;0418;;0418-0439;CYRILLIC SMALL LETTER SHORT I;Ll;0;L;0438 0306;;;;N;CYRILLIC SMALL LETTER SHORT II;;0419;;0419-043A;CYRILLIC SMALL LETTER KA;Ll;0;L;;;;;N;;;041A;;041A-043B;CYRILLIC SMALL LETTER EL;Ll;0;L;;;;;N;;;041B;;041B-043C;CYRILLIC SMALL LETTER EM;Ll;0;L;;;;;N;;;041C;;041C-043D;CYRILLIC SMALL LETTER EN;Ll;0;L;;;;;N;;;041D;;041D-043E;CYRILLIC SMALL LETTER O;Ll;0;L;;;;;N;;;041E;;041E-043F;CYRILLIC SMALL LETTER PE;Ll;0;L;;;;;N;;;041F;;041F-0440;CYRILLIC SMALL LETTER ER;Ll;0;L;;;;;N;;;0420;;0420-0441;CYRILLIC SMALL LETTER ES;Ll;0;L;;;;;N;;;0421;;0421-0442;CYRILLIC SMALL LETTER TE;Ll;0;L;;;;;N;;;0422;;0422-0443;CYRILLIC SMALL LETTER U;Ll;0;L;;;;;N;;;0423;;0423-0444;CYRILLIC SMALL LETTER EF;Ll;0;L;;;;;N;;;0424;;0424-0445;CYRILLIC SMALL LETTER HA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KHA;;0425;;0425-0446;CYRILLIC SMALL LETTER TSE;Ll;0;L;;;;;N;;;0426;;0426-0447;CYRILLIC SMALL LETTER CHE;Ll;0;L;;;;;N;;;0427;;0427-0448;CYRILLIC SMALL LETTER SHA;Ll;0;L;;;;;N;;;0428;;0428-0449;CYRILLIC SMALL LETTER SHCHA;Ll;0;L;;;;;N;;;0429;;0429-044A;CYRILLIC SMALL LETTER HARD SIGN;Ll;0;L;;;;;N;;;042A;;042A-044B;CYRILLIC SMALL LETTER YERU;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER YERI;;042B;;042B-044C;CYRILLIC SMALL LETTER SOFT SIGN;Ll;0;L;;;;;N;;;042C;;042C-044D;CYRILLIC SMALL LETTER E;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER REVERSED E;;042D;;042D-044E;CYRILLIC SMALL LETTER YU;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IU;;042E;;042E-044F;CYRILLIC SMALL LETTER YA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IA;;042F;;042F-0450;CYRILLIC SMALL LETTER IE WITH GRAVE;Ll;0;L;0435 0300;;;;N;;;0400;;0400-0451;CYRILLIC SMALL LETTER IO;Ll;0;L;0435 0308;;;;N;;;0401;;0401-0452;CYRILLIC SMALL LETTER DJE;Ll;0;L;;;;;N;;Serbocroatian;0402;;0402-0453;CYRILLIC SMALL LETTER GJE;Ll;0;L;0433 0301;;;;N;;;0403;;0403-0454;CYRILLIC SMALL LETTER UKRAINIAN IE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER E;;0404;;0404-0455;CYRILLIC SMALL LETTER DZE;Ll;0;L;;;;;N;;;0405;;0405-0456;CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER I;;0406;;0406-0457;CYRILLIC SMALL LETTER YI;Ll;0;L;0456 0308;;;;N;;Ukrainian;0407;;0407-0458;CYRILLIC SMALL LETTER JE;Ll;0;L;;;;;N;;;0408;;0408-0459;CYRILLIC SMALL LETTER LJE;Ll;0;L;;;;;N;;;0409;;0409-045A;CYRILLIC SMALL LETTER NJE;Ll;0;L;;;;;N;;;040A;;040A-045B;CYRILLIC SMALL LETTER TSHE;Ll;0;L;;;;;N;;Serbocroatian;040B;;040B-045C;CYRILLIC SMALL LETTER KJE;Ll;0;L;043A 0301;;;;N;;;040C;;040C-045D;CYRILLIC SMALL LETTER I WITH GRAVE;Ll;0;L;0438 0300;;;;N;;;040D;;040D-045E;CYRILLIC SMALL LETTER SHORT U;Ll;0;L;0443 0306;;;;N;;Byelorussian;040E;;040E-045F;CYRILLIC SMALL LETTER DZHE;Ll;0;L;;;;;N;;;040F;;040F-0460;CYRILLIC CAPITAL LETTER OMEGA;Lu;0;L;;;;;N;;;;0461;-0461;CYRILLIC SMALL LETTER OMEGA;Ll;0;L;;;;;N;;;0460;;0460-0462;CYRILLIC CAPITAL LETTER YAT;Lu;0;L;;;;;N;;;;0463;-0463;CYRILLIC SMALL LETTER YAT;Ll;0;L;;;;;N;;;0462;;0462-0464;CYRILLIC CAPITAL LETTER IOTIFIED E;Lu;0;L;;;;;N;;;;0465;-0465;CYRILLIC SMALL LETTER IOTIFIED E;Ll;0;L;;;;;N;;;0464;;0464-0466;CYRILLIC CAPITAL LETTER LITTLE YUS;Lu;0;L;;;;;N;;;;0467;-0467;CYRILLIC SMALL LETTER LITTLE YUS;Ll;0;L;;;;;N;;;0466;;0466-0468;CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS;Lu;0;L;;;;;N;;;;0469;-0469;CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS;Ll;0;L;;;;;N;;;0468;;0468-046A;CYRILLIC CAPITAL LETTER BIG YUS;Lu;0;L;;;;;N;;;;046B;-046B;CYRILLIC SMALL LETTER BIG YUS;Ll;0;L;;;;;N;;;046A;;046A-046C;CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS;Lu;0;L;;;;;N;;;;046D;-046D;CYRILLIC SMALL LETTER IOTIFIED BIG YUS;Ll;0;L;;;;;N;;;046C;;046C-046E;CYRILLIC CAPITAL LETTER KSI;Lu;0;L;;;;;N;;;;046F;-046F;CYRILLIC SMALL LETTER KSI;Ll;0;L;;;;;N;;;046E;;046E-0470;CYRILLIC CAPITAL LETTER PSI;Lu;0;L;;;;;N;;;;0471;-0471;CYRILLIC SMALL LETTER PSI;Ll;0;L;;;;;N;;;0470;;0470-0472;CYRILLIC CAPITAL LETTER FITA;Lu;0;L;;;;;N;;;;0473;-0473;CYRILLIC SMALL LETTER FITA;Ll;0;L;;;;;N;;;0472;;0472-0474;CYRILLIC CAPITAL LETTER IZHITSA;Lu;0;L;;;;;N;;;;0475;-0475;CYRILLIC SMALL LETTER IZHITSA;Ll;0;L;;;;;N;;;0474;;0474-0476;CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT;Lu;0;L;0474 030F;;;;N;CYRILLIC CAPITAL LETTER IZHITSA DOUBLE GRAVE;;;0477;-0477;CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT;Ll;0;L;0475 030F;;;;N;CYRILLIC SMALL LETTER IZHITSA DOUBLE GRAVE;;0476;;0476-0478;CYRILLIC CAPITAL LETTER UK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER UK DIGRAPH;;;0479;-0479;CYRILLIC SMALL LETTER UK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER UK DIGRAPH;;0478;;0478-047A;CYRILLIC CAPITAL LETTER ROUND OMEGA;Lu;0;L;;;;;N;;;;047B;-047B;CYRILLIC SMALL LETTER ROUND OMEGA;Ll;0;L;;;;;N;;;047A;;047A-047C;CYRILLIC CAPITAL LETTER OMEGA WITH TITLO;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER OMEGA TITLO;;;047D;-047D;CYRILLIC SMALL LETTER OMEGA WITH TITLO;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER OMEGA TITLO;;047C;;047C-047E;CYRILLIC CAPITAL LETTER OT;Lu;0;L;;;;;N;;;;047F;-047F;CYRILLIC SMALL LETTER OT;Ll;0;L;;;;;N;;;047E;;047E-0480;CYRILLIC CAPITAL LETTER KOPPA;Lu;0;L;;;;;N;;;;0481;-0481;CYRILLIC SMALL LETTER KOPPA;Ll;0;L;;;;;N;;;0480;;0480-0482;CYRILLIC THOUSANDS SIGN;So;0;L;;;;;N;;;;;-0483;COMBINING CYRILLIC TITLO;Mn;230;NSM;;;;;N;CYRILLIC NON-SPACING TITLO;;;;-0484;COMBINING CYRILLIC PALATALIZATION;Mn;230;NSM;;;;;N;CYRILLIC NON-SPACING PALATALIZATION;;;;-0485;COMBINING CYRILLIC DASIA PNEUMATA;Mn;230;NSM;;;;;N;CYRILLIC NON-SPACING DASIA PNEUMATA;;;;-0486;COMBINING CYRILLIC PSILI PNEUMATA;Mn;230;NSM;;;;;N;CYRILLIC NON-SPACING PSILI PNEUMATA;;;;-0488;COMBINING CYRILLIC HUNDRED THOUSANDS SIGN;Me;0;NSM;;;;;N;;;;;-0489;COMBINING CYRILLIC MILLIONS SIGN;Me;0;NSM;;;;;N;;;;;-048A;CYRILLIC CAPITAL LETTER SHORT I WITH TAIL;Lu;0;L;;;;;N;;;;048B;-048B;CYRILLIC SMALL LETTER SHORT I WITH TAIL;Ll;0;L;;;;;N;;;048A;;048A-048C;CYRILLIC CAPITAL LETTER SEMISOFT SIGN;Lu;0;L;;;;;N;;;;048D;-048D;CYRILLIC SMALL LETTER SEMISOFT SIGN;Ll;0;L;;;;;N;;;048C;;048C-048E;CYRILLIC CAPITAL LETTER ER WITH TICK;Lu;0;L;;;;;N;;;;048F;-048F;CYRILLIC SMALL LETTER ER WITH TICK;Ll;0;L;;;;;N;;;048E;;048E-0490;CYRILLIC CAPITAL LETTER GHE WITH UPTURN;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER GE WITH UPTURN;;;0491;-0491;CYRILLIC SMALL LETTER GHE WITH UPTURN;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER GE WITH UPTURN;;0490;;0490-0492;CYRILLIC CAPITAL LETTER GHE WITH STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER GE BAR;;;0493;-0493;CYRILLIC SMALL LETTER GHE WITH STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER GE BAR;;0492;;0492-0494;CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER GE HOOK;;;0495;-0495;CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER GE HOOK;;0494;;0494-0496;CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER ZHE WITH RIGHT DESCENDER;;;0497;-0497;CYRILLIC SMALL LETTER ZHE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER ZHE WITH RIGHT DESCENDER;;0496;;0496-0498;CYRILLIC CAPITAL LETTER ZE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER ZE CEDILLA;;;0499;-0499;CYRILLIC SMALL LETTER ZE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER ZE CEDILLA;;0498;;0498-049A;CYRILLIC CAPITAL LETTER KA WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KA WITH RIGHT DESCENDER;;;049B;-049B;CYRILLIC SMALL LETTER KA WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KA WITH RIGHT DESCENDER;;049A;;049A-049C;CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KA VERTICAL BAR;;;049D;-049D;CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KA VERTICAL BAR;;049C;;049C-049E;CYRILLIC CAPITAL LETTER KA WITH STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KA BAR;;;049F;-049F;CYRILLIC SMALL LETTER KA WITH STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KA BAR;;049E;;049E-04A0;CYRILLIC CAPITAL LETTER BASHKIR KA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER REVERSED GE KA;;;04A1;-04A1;CYRILLIC SMALL LETTER BASHKIR KA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER REVERSED GE KA;;04A0;;04A0-04A2;CYRILLIC CAPITAL LETTER EN WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER EN WITH RIGHT DESCENDER;;;04A3;-04A3;CYRILLIC SMALL LETTER EN WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER EN WITH RIGHT DESCENDER;;04A2;;04A2-04A4;CYRILLIC CAPITAL LIGATURE EN GHE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER EN GE;;;04A5;-04A5;CYRILLIC SMALL LIGATURE EN GHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER EN GE;;04A4;;04A4-04A6;CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER PE HOOK;Abkhasian;;04A7;-04A7;CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER PE HOOK;Abkhasian;04A6;;04A6-04A8;CYRILLIC CAPITAL LETTER ABKHASIAN HA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER O HOOK;;;04A9;-04A9;CYRILLIC SMALL LETTER ABKHASIAN HA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER O HOOK;;04A8;;04A8-04AA;CYRILLIC CAPITAL LETTER ES WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER ES CEDILLA;;;04AB;-04AB;CYRILLIC SMALL LETTER ES WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER ES CEDILLA;;04AA;;04AA-04AC;CYRILLIC CAPITAL LETTER TE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER TE WITH RIGHT DESCENDER;;;04AD;-04AD;CYRILLIC SMALL LETTER TE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER TE WITH RIGHT DESCENDER;;04AC;;04AC-04AE;CYRILLIC CAPITAL LETTER STRAIGHT U;Lu;0;L;;;;;N;;;;04AF;-04AF;CYRILLIC SMALL LETTER STRAIGHT U;Ll;0;L;;;;;N;;;04AE;;04AE-04B0;CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER STRAIGHT U BAR;;;04B1;-04B1;CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER STRAIGHT U BAR;;04B0;;04B0-04B2;CYRILLIC CAPITAL LETTER HA WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KHA WITH RIGHT DESCENDER;;;04B3;-04B3;CYRILLIC SMALL LETTER HA WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KHA WITH RIGHT DESCENDER;;04B2;;04B2-04B4;CYRILLIC CAPITAL LIGATURE TE TSE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER TE TSE;Abkhasian;;04B5;-04B5;CYRILLIC SMALL LIGATURE TE TSE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER TE TSE;Abkhasian;04B4;;04B4-04B6;CYRILLIC CAPITAL LETTER CHE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER CHE WITH RIGHT DESCENDER;;;04B7;-04B7;CYRILLIC SMALL LETTER CHE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER CHE WITH RIGHT DESCENDER;;04B6;;04B6-04B8;CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER CHE VERTICAL BAR;;;04B9;-04B9;CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER CHE VERTICAL BAR;;04B8;;04B8-04BA;CYRILLIC CAPITAL LETTER SHHA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER H;;;04BB;-04BB;CYRILLIC SMALL LETTER SHHA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER H;;04BA;;04BA-04BC;CYRILLIC CAPITAL LETTER ABKHASIAN CHE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER IE HOOK;;;04BD;-04BD;CYRILLIC SMALL LETTER ABKHASIAN CHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IE HOOK;;04BC;;04BC-04BE;CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER IE HOOK OGONEK;;;04BF;-04BF;CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IE HOOK OGONEK;;04BE;;04BE-04C0;CYRILLIC LETTER PALOCHKA;Lu;0;L;;;;;N;CYRILLIC LETTER I;;;04CF;-04C1;CYRILLIC CAPITAL LETTER ZHE WITH BREVE;Lu;0;L;0416 0306;;;;N;CYRILLIC CAPITAL LETTER SHORT ZHE;;;04C2;-04C2;CYRILLIC SMALL LETTER ZHE WITH BREVE;Ll;0;L;0436 0306;;;;N;CYRILLIC SMALL LETTER SHORT ZHE;;04C1;;04C1-04C3;CYRILLIC CAPITAL LETTER KA WITH HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KA HOOK;;;04C4;-04C4;CYRILLIC SMALL LETTER KA WITH HOOK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KA HOOK;;04C3;;04C3-04C5;CYRILLIC CAPITAL LETTER EL WITH TAIL;Lu;0;L;;;;;N;;;;04C6;-04C6;CYRILLIC SMALL LETTER EL WITH TAIL;Ll;0;L;;;;;N;;;04C5;;04C5-04C7;CYRILLIC CAPITAL LETTER EN WITH HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER EN HOOK;;;04C8;-04C8;CYRILLIC SMALL LETTER EN WITH HOOK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER EN HOOK;;04C7;;04C7-04C9;CYRILLIC CAPITAL LETTER EN WITH TAIL;Lu;0;L;;;;;N;;;;04CA;-04CA;CYRILLIC SMALL LETTER EN WITH TAIL;Ll;0;L;;;;;N;;;04C9;;04C9-04CB;CYRILLIC CAPITAL LETTER KHAKASSIAN CHE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER CHE WITH LEFT DESCENDER;;;04CC;-04CC;CYRILLIC SMALL LETTER KHAKASSIAN CHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER CHE WITH LEFT DESCENDER;;04CB;;04CB-04CD;CYRILLIC CAPITAL LETTER EM WITH TAIL;Lu;0;L;;;;;N;;;;04CE;-04CE;CYRILLIC SMALL LETTER EM WITH TAIL;Ll;0;L;;;;;N;;;04CD;;04CD-04CF;CYRILLIC SMALL LETTER PALOCHKA;Ll;0;L;;;;;N;;;04C0;;04C0-04D0;CYRILLIC CAPITAL LETTER A WITH BREVE;Lu;0;L;0410 0306;;;;N;;;;04D1;-04D1;CYRILLIC SMALL LETTER A WITH BREVE;Ll;0;L;0430 0306;;;;N;;;04D0;;04D0-04D2;CYRILLIC CAPITAL LETTER A WITH DIAERESIS;Lu;0;L;0410 0308;;;;N;;;;04D3;-04D3;CYRILLIC SMALL LETTER A WITH DIAERESIS;Ll;0;L;0430 0308;;;;N;;;04D2;;04D2-04D4;CYRILLIC CAPITAL LIGATURE A IE;Lu;0;L;;;;;N;;;;04D5;-04D5;CYRILLIC SMALL LIGATURE A IE;Ll;0;L;;;;;N;;;04D4;;04D4-04D6;CYRILLIC CAPITAL LETTER IE WITH BREVE;Lu;0;L;0415 0306;;;;N;;;;04D7;-04D7;CYRILLIC SMALL LETTER IE WITH BREVE;Ll;0;L;0435 0306;;;;N;;;04D6;;04D6-04D8;CYRILLIC CAPITAL LETTER SCHWA;Lu;0;L;;;;;N;;;;04D9;-04D9;CYRILLIC SMALL LETTER SCHWA;Ll;0;L;;;;;N;;;04D8;;04D8-04DA;CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS;Lu;0;L;04D8 0308;;;;N;;;;04DB;-04DB;CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS;Ll;0;L;04D9 0308;;;;N;;;04DA;;04DA-04DC;CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS;Lu;0;L;0416 0308;;;;N;;;;04DD;-04DD;CYRILLIC SMALL LETTER ZHE WITH DIAERESIS;Ll;0;L;0436 0308;;;;N;;;04DC;;04DC-04DE;CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS;Lu;0;L;0417 0308;;;;N;;;;04DF;-04DF;CYRILLIC SMALL LETTER ZE WITH DIAERESIS;Ll;0;L;0437 0308;;;;N;;;04DE;;04DE-04E0;CYRILLIC CAPITAL LETTER ABKHASIAN DZE;Lu;0;L;;;;;N;;;;04E1;-04E1;CYRILLIC SMALL LETTER ABKHASIAN DZE;Ll;0;L;;;;;N;;;04E0;;04E0-04E2;CYRILLIC CAPITAL LETTER I WITH MACRON;Lu;0;L;0418 0304;;;;N;;;;04E3;-04E3;CYRILLIC SMALL LETTER I WITH MACRON;Ll;0;L;0438 0304;;;;N;;;04E2;;04E2-04E4;CYRILLIC CAPITAL LETTER I WITH DIAERESIS;Lu;0;L;0418 0308;;;;N;;;;04E5;-04E5;CYRILLIC SMALL LETTER I WITH DIAERESIS;Ll;0;L;0438 0308;;;;N;;;04E4;;04E4-04E6;CYRILLIC CAPITAL LETTER O WITH DIAERESIS;Lu;0;L;041E 0308;;;;N;;;;04E7;-04E7;CYRILLIC SMALL LETTER O WITH DIAERESIS;Ll;0;L;043E 0308;;;;N;;;04E6;;04E6-04E8;CYRILLIC CAPITAL LETTER BARRED O;Lu;0;L;;;;;N;;;;04E9;-04E9;CYRILLIC SMALL LETTER BARRED O;Ll;0;L;;;;;N;;;04E8;;04E8-04EA;CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS;Lu;0;L;04E8 0308;;;;N;;;;04EB;-04EB;CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS;Ll;0;L;04E9 0308;;;;N;;;04EA;;04EA-04EC;CYRILLIC CAPITAL LETTER E WITH DIAERESIS;Lu;0;L;042D 0308;;;;N;;;;04ED;-04ED;CYRILLIC SMALL LETTER E WITH DIAERESIS;Ll;0;L;044D 0308;;;;N;;;04EC;;04EC-04EE;CYRILLIC CAPITAL LETTER U WITH MACRON;Lu;0;L;0423 0304;;;;N;;;;04EF;-04EF;CYRILLIC SMALL LETTER U WITH MACRON;Ll;0;L;0443 0304;;;;N;;;04EE;;04EE-04F0;CYRILLIC CAPITAL LETTER U WITH DIAERESIS;Lu;0;L;0423 0308;;;;N;;;;04F1;-04F1;CYRILLIC SMALL LETTER U WITH DIAERESIS;Ll;0;L;0443 0308;;;;N;;;04F0;;04F0-04F2;CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE;Lu;0;L;0423 030B;;;;N;;;;04F3;-04F3;CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE;Ll;0;L;0443 030B;;;;N;;;04F2;;04F2-04F4;CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS;Lu;0;L;0427 0308;;;;N;;;;04F5;-04F5;CYRILLIC SMALL LETTER CHE WITH DIAERESIS;Ll;0;L;0447 0308;;;;N;;;04F4;;04F4-04F6;CYRILLIC CAPITAL LETTER GHE WITH DESCENDER;Lu;0;L;;;;;N;;;;04F7;-04F7;CYRILLIC SMALL LETTER GHE WITH DESCENDER;Ll;0;L;;;;;N;;;04F6;;04F6-04F8;CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS;Lu;0;L;042B 0308;;;;N;;;;04F9;-04F9;CYRILLIC SMALL LETTER YERU WITH DIAERESIS;Ll;0;L;044B 0308;;;;N;;;04F8;;04F8-04FA;CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK;Lu;0;L;;;;;N;;;;04FB;-04FB;CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK;Ll;0;L;;;;;N;;;04FA;;04FA-04FC;CYRILLIC CAPITAL LETTER HA WITH HOOK;Lu;0;L;;;;;N;;;;04FD;-04FD;CYRILLIC SMALL LETTER HA WITH HOOK;Ll;0;L;;;;;N;;;04FC;;04FC-04FE;CYRILLIC CAPITAL LETTER HA WITH STROKE;Lu;0;L;;;;;N;;;;04FF;-04FF;CYRILLIC SMALL LETTER HA WITH STROKE;Ll;0;L;;;;;N;;;04FE;;04FE-0500;CYRILLIC CAPITAL LETTER KOMI DE;Lu;0;L;;;;;N;;;;0501;-0501;CYRILLIC SMALL LETTER KOMI DE;Ll;0;L;;;;;N;;;0500;;0500-0502;CYRILLIC CAPITAL LETTER KOMI DJE;Lu;0;L;;;;;N;;;;0503;-0503;CYRILLIC SMALL LETTER KOMI DJE;Ll;0;L;;;;;N;;;0502;;0502-0504;CYRILLIC CAPITAL LETTER KOMI ZJE;Lu;0;L;;;;;N;;;;0505;-0505;CYRILLIC SMALL LETTER KOMI ZJE;Ll;0;L;;;;;N;;;0504;;0504-0506;CYRILLIC CAPITAL LETTER KOMI DZJE;Lu;0;L;;;;;N;;;;0507;-0507;CYRILLIC SMALL LETTER KOMI DZJE;Ll;0;L;;;;;N;;;0506;;0506-0508;CYRILLIC CAPITAL LETTER KOMI LJE;Lu;0;L;;;;;N;;;;0509;-0509;CYRILLIC SMALL LETTER KOMI LJE;Ll;0;L;;;;;N;;;0508;;0508-050A;CYRILLIC CAPITAL LETTER KOMI NJE;Lu;0;L;;;;;N;;;;050B;-050B;CYRILLIC SMALL LETTER KOMI NJE;Ll;0;L;;;;;N;;;050A;;050A-050C;CYRILLIC CAPITAL LETTER KOMI SJE;Lu;0;L;;;;;N;;;;050D;-050D;CYRILLIC SMALL LETTER KOMI SJE;Ll;0;L;;;;;N;;;050C;;050C-050E;CYRILLIC CAPITAL LETTER KOMI TJE;Lu;0;L;;;;;N;;;;050F;-050F;CYRILLIC SMALL LETTER KOMI TJE;Ll;0;L;;;;;N;;;050E;;050E-0510;CYRILLIC CAPITAL LETTER REVERSED ZE;Lu;0;L;;;;;N;;;;0511;-0511;CYRILLIC SMALL LETTER REVERSED ZE;Ll;0;L;;;;;N;;;0510;;0510-0512;CYRILLIC CAPITAL LETTER EL WITH HOOK;Lu;0;L;;;;;N;;;;0513;-0513;CYRILLIC SMALL LETTER EL WITH HOOK;Ll;0;L;;;;;N;;;0512;;0512-0531;ARMENIAN CAPITAL LETTER AYB;Lu;0;L;;;;;N;;;;0561;-0532;ARMENIAN CAPITAL LETTER BEN;Lu;0;L;;;;;N;;;;0562;-0533;ARMENIAN CAPITAL LETTER GIM;Lu;0;L;;;;;N;;;;0563;-0534;ARMENIAN CAPITAL LETTER DA;Lu;0;L;;;;;N;;;;0564;-0535;ARMENIAN CAPITAL LETTER ECH;Lu;0;L;;;;;N;;;;0565;-0536;ARMENIAN CAPITAL LETTER ZA;Lu;0;L;;;;;N;;;;0566;-0537;ARMENIAN CAPITAL LETTER EH;Lu;0;L;;;;;N;;;;0567;-0538;ARMENIAN CAPITAL LETTER ET;Lu;0;L;;;;;N;;;;0568;-0539;ARMENIAN CAPITAL LETTER TO;Lu;0;L;;;;;N;;;;0569;-053A;ARMENIAN CAPITAL LETTER ZHE;Lu;0;L;;;;;N;;;;056A;-053B;ARMENIAN CAPITAL LETTER INI;Lu;0;L;;;;;N;;;;056B;-053C;ARMENIAN CAPITAL LETTER LIWN;Lu;0;L;;;;;N;;;;056C;-053D;ARMENIAN CAPITAL LETTER XEH;Lu;0;L;;;;;N;;;;056D;-053E;ARMENIAN CAPITAL LETTER CA;Lu;0;L;;;;;N;;;;056E;-053F;ARMENIAN CAPITAL LETTER KEN;Lu;0;L;;;;;N;;;;056F;-0540;ARMENIAN CAPITAL LETTER HO;Lu;0;L;;;;;N;;;;0570;-0541;ARMENIAN CAPITAL LETTER JA;Lu;0;L;;;;;N;;;;0571;-0542;ARMENIAN CAPITAL LETTER GHAD;Lu;0;L;;;;;N;ARMENIAN CAPITAL LETTER LAD;;;0572;-0543;ARMENIAN CAPITAL LETTER CHEH;Lu;0;L;;;;;N;;;;0573;-0544;ARMENIAN CAPITAL LETTER MEN;Lu;0;L;;;;;N;;;;0574;-0545;ARMENIAN CAPITAL LETTER YI;Lu;0;L;;;;;N;;;;0575;-0546;ARMENIAN CAPITAL LETTER NOW;Lu;0;L;;;;;N;;;;0576;-0547;ARMENIAN CAPITAL LETTER SHA;Lu;0;L;;;;;N;;;;0577;-0548;ARMENIAN CAPITAL LETTER VO;Lu;0;L;;;;;N;;;;0578;-0549;ARMENIAN CAPITAL LETTER CHA;Lu;0;L;;;;;N;;;;0579;-054A;ARMENIAN CAPITAL LETTER PEH;Lu;0;L;;;;;N;;;;057A;-054B;ARMENIAN CAPITAL LETTER JHEH;Lu;0;L;;;;;N;;;;057B;-054C;ARMENIAN CAPITAL LETTER RA;Lu;0;L;;;;;N;;;;057C;-054D;ARMENIAN CAPITAL LETTER SEH;Lu;0;L;;;;;N;;;;057D;-054E;ARMENIAN CAPITAL LETTER VEW;Lu;0;L;;;;;N;;;;057E;-054F;ARMENIAN CAPITAL LETTER TIWN;Lu;0;L;;;;;N;;;;057F;-0550;ARMENIAN CAPITAL LETTER REH;Lu;0;L;;;;;N;;;;0580;-0551;ARMENIAN CAPITAL LETTER CO;Lu;0;L;;;;;N;;;;0581;-0552;ARMENIAN CAPITAL LETTER YIWN;Lu;0;L;;;;;N;;;;0582;-0553;ARMENIAN CAPITAL LETTER PIWR;Lu;0;L;;;;;N;;;;0583;-0554;ARMENIAN CAPITAL LETTER KEH;Lu;0;L;;;;;N;;;;0584;-0555;ARMENIAN CAPITAL LETTER OH;Lu;0;L;;;;;N;;;;0585;-0556;ARMENIAN CAPITAL LETTER FEH;Lu;0;L;;;;;N;;;;0586;-0559;ARMENIAN MODIFIER LETTER LEFT HALF RING;Lm;0;L;;;;;N;;;;;-055A;ARMENIAN APOSTROPHE;Po;0;L;;;;;N;ARMENIAN MODIFIER LETTER RIGHT HALF RING;;;;-055B;ARMENIAN EMPHASIS MARK;Po;0;L;;;;;N;;;;;-055C;ARMENIAN EXCLAMATION MARK;Po;0;L;;;;;N;;;;;-055D;ARMENIAN COMMA;Po;0;L;;;;;N;;;;;-055E;ARMENIAN QUESTION MARK;Po;0;L;;;;;N;;;;;-055F;ARMENIAN ABBREVIATION MARK;Po;0;L;;;;;N;;;;;-0561;ARMENIAN SMALL LETTER AYB;Ll;0;L;;;;;N;;;0531;;0531-0562;ARMENIAN SMALL LETTER BEN;Ll;0;L;;;;;N;;;0532;;0532-0563;ARMENIAN SMALL LETTER GIM;Ll;0;L;;;;;N;;;0533;;0533-0564;ARMENIAN SMALL LETTER DA;Ll;0;L;;;;;N;;;0534;;0534-0565;ARMENIAN SMALL LETTER ECH;Ll;0;L;;;;;N;;;0535;;0535-0566;ARMENIAN SMALL LETTER ZA;Ll;0;L;;;;;N;;;0536;;0536-0567;ARMENIAN SMALL LETTER EH;Ll;0;L;;;;;N;;;0537;;0537-0568;ARMENIAN SMALL LETTER ET;Ll;0;L;;;;;N;;;0538;;0538-0569;ARMENIAN SMALL LETTER TO;Ll;0;L;;;;;N;;;0539;;0539-056A;ARMENIAN SMALL LETTER ZHE;Ll;0;L;;;;;N;;;053A;;053A-056B;ARMENIAN SMALL LETTER INI;Ll;0;L;;;;;N;;;053B;;053B-056C;ARMENIAN SMALL LETTER LIWN;Ll;0;L;;;;;N;;;053C;;053C-056D;ARMENIAN SMALL LETTER XEH;Ll;0;L;;;;;N;;;053D;;053D-056E;ARMENIAN SMALL LETTER CA;Ll;0;L;;;;;N;;;053E;;053E-056F;ARMENIAN SMALL LETTER KEN;Ll;0;L;;;;;N;;;053F;;053F-0570;ARMENIAN SMALL LETTER HO;Ll;0;L;;;;;N;;;0540;;0540-0571;ARMENIAN SMALL LETTER JA;Ll;0;L;;;;;N;;;0541;;0541-0572;ARMENIAN SMALL LETTER GHAD;Ll;0;L;;;;;N;ARMENIAN SMALL LETTER LAD;;0542;;0542-0573;ARMENIAN SMALL LETTER CHEH;Ll;0;L;;;;;N;;;0543;;0543-0574;ARMENIAN SMALL LETTER MEN;Ll;0;L;;;;;N;;;0544;;0544-0575;ARMENIAN SMALL LETTER YI;Ll;0;L;;;;;N;;;0545;;0545-0576;ARMENIAN SMALL LETTER NOW;Ll;0;L;;;;;N;;;0546;;0546-0577;ARMENIAN SMALL LETTER SHA;Ll;0;L;;;;;N;;;0547;;0547-0578;ARMENIAN SMALL LETTER VO;Ll;0;L;;;;;N;;;0548;;0548-0579;ARMENIAN SMALL LETTER CHA;Ll;0;L;;;;;N;;;0549;;0549-057A;ARMENIAN SMALL LETTER PEH;Ll;0;L;;;;;N;;;054A;;054A-057B;ARMENIAN SMALL LETTER JHEH;Ll;0;L;;;;;N;;;054B;;054B-057C;ARMENIAN SMALL LETTER RA;Ll;0;L;;;;;N;;;054C;;054C-057D;ARMENIAN SMALL LETTER SEH;Ll;0;L;;;;;N;;;054D;;054D-057E;ARMENIAN SMALL LETTER VEW;Ll;0;L;;;;;N;;;054E;;054E-057F;ARMENIAN SMALL LETTER TIWN;Ll;0;L;;;;;N;;;054F;;054F-0580;ARMENIAN SMALL LETTER REH;Ll;0;L;;;;;N;;;0550;;0550-0581;ARMENIAN SMALL LETTER CO;Ll;0;L;;;;;N;;;0551;;0551-0582;ARMENIAN SMALL LETTER YIWN;Ll;0;L;;;;;N;;;0552;;0552-0583;ARMENIAN SMALL LETTER PIWR;Ll;0;L;;;;;N;;;0553;;0553-0584;ARMENIAN SMALL LETTER KEH;Ll;0;L;;;;;N;;;0554;;0554-0585;ARMENIAN SMALL LETTER OH;Ll;0;L;;;;;N;;;0555;;0555-0586;ARMENIAN SMALL LETTER FEH;Ll;0;L;;;;;N;;;0556;;0556-0587;ARMENIAN SMALL LIGATURE ECH YIWN;Ll;0;L;<compat> 0565 0582;;;;N;;;;;-0589;ARMENIAN FULL STOP;Po;0;L;;;;;N;ARMENIAN PERIOD;;;;-058A;ARMENIAN HYPHEN;Pd;0;ON;;;;;N;;;;;-0591;HEBREW ACCENT ETNAHTA;Mn;220;NSM;;;;;N;;;;;-0592;HEBREW ACCENT SEGOL;Mn;230;NSM;;;;;N;;;;;-0593;HEBREW ACCENT SHALSHELET;Mn;230;NSM;;;;;N;;;;;-0594;HEBREW ACCENT ZAQEF QATAN;Mn;230;NSM;;;;;N;;;;;-0595;HEBREW ACCENT ZAQEF GADOL;Mn;230;NSM;;;;;N;;;;;-0596;HEBREW ACCENT TIPEHA;Mn;220;NSM;;;;;N;;*;;;-0597;HEBREW ACCENT REVIA;Mn;230;NSM;;;;;N;;;;;-0598;HEBREW ACCENT ZARQA;Mn;230;NSM;;;;;N;;*;;;-0599;HEBREW ACCENT PASHTA;Mn;230;NSM;;;;;N;;;;;-059A;HEBREW ACCENT YETIV;Mn;222;NSM;;;;;N;;;;;-059B;HEBREW ACCENT TEVIR;Mn;220;NSM;;;;;N;;;;;-059C;HEBREW ACCENT GERESH;Mn;230;NSM;;;;;N;;;;;-059D;HEBREW ACCENT GERESH MUQDAM;Mn;230;NSM;;;;;N;;;;;-059E;HEBREW ACCENT GERSHAYIM;Mn;230;NSM;;;;;N;;;;;-059F;HEBREW ACCENT QARNEY PARA;Mn;230;NSM;;;;;N;;;;;-05A0;HEBREW ACCENT TELISHA GEDOLA;Mn;230;NSM;;;;;N;;;;;-05A1;HEBREW ACCENT PAZER;Mn;230;NSM;;;;;N;;;;;-05A2;HEBREW ACCENT ATNAH HAFUKH;Mn;220;NSM;;;;;N;;;;;-05A3;HEBREW ACCENT MUNAH;Mn;220;NSM;;;;;N;;;;;-05A4;HEBREW ACCENT MAHAPAKH;Mn;220;NSM;;;;;N;;;;;-05A5;HEBREW ACCENT MERKHA;Mn;220;NSM;;;;;N;;*;;;-05A6;HEBREW ACCENT MERKHA KEFULA;Mn;220;NSM;;;;;N;;;;;-05A7;HEBREW ACCENT DARGA;Mn;220;NSM;;;;;N;;;;;-05A8;HEBREW ACCENT QADMA;Mn;230;NSM;;;;;N;;*;;;-05A9;HEBREW ACCENT TELISHA QETANA;Mn;230;NSM;;;;;N;;;;;-05AA;HEBREW ACCENT YERAH BEN YOMO;Mn;220;NSM;;;;;N;;*;;;-05AB;HEBREW ACCENT OLE;Mn;230;NSM;;;;;N;;;;;-05AC;HEBREW ACCENT ILUY;Mn;230;NSM;;;;;N;;;;;-05AD;HEBREW ACCENT DEHI;Mn;222;NSM;;;;;N;;;;;-05AE;HEBREW ACCENT ZINOR;Mn;228;NSM;;;;;N;;;;;-05AF;HEBREW MARK MASORA CIRCLE;Mn;230;NSM;;;;;N;;;;;-05B0;HEBREW POINT SHEVA;Mn;10;NSM;;;;;N;;;;;-05B1;HEBREW POINT HATAF SEGOL;Mn;11;NSM;;;;;N;;;;;-05B2;HEBREW POINT HATAF PATAH;Mn;12;NSM;;;;;N;;;;;-05B3;HEBREW POINT HATAF QAMATS;Mn;13;NSM;;;;;N;;;;;-05B4;HEBREW POINT HIRIQ;Mn;14;NSM;;;;;N;;;;;-05B5;HEBREW POINT TSERE;Mn;15;NSM;;;;;N;;;;;-05B6;HEBREW POINT SEGOL;Mn;16;NSM;;;;;N;;;;;-05B7;HEBREW POINT PATAH;Mn;17;NSM;;;;;N;;;;;-05B8;HEBREW POINT QAMATS;Mn;18;NSM;;;;;N;;;;;-05B9;HEBREW POINT HOLAM;Mn;19;NSM;;;;;N;;;;;-05BA;HEBREW POINT HOLAM HASER FOR VAV;Mn;19;NSM;;;;;N;;;;;-05BB;HEBREW POINT QUBUTS;Mn;20;NSM;;;;;N;;;;;-05BC;HEBREW POINT DAGESH OR MAPIQ;Mn;21;NSM;;;;;N;HEBREW POINT DAGESH;or shuruq;;;-05BD;HEBREW POINT METEG;Mn;22;NSM;;;;;N;;*;;;-05BE;HEBREW PUNCTUATION MAQAF;Po;0;R;;;;;N;;;;;-05BF;HEBREW POINT RAFE;Mn;23;NSM;;;;;N;;;;;-05C0;HEBREW PUNCTUATION PASEQ;Po;0;R;;;;;N;HEBREW POINT PASEQ;*;;;-05C1;HEBREW POINT SHIN DOT;Mn;24;NSM;;;;;N;;;;;-05C2;HEBREW POINT SIN DOT;Mn;25;NSM;;;;;N;;;;;-05C3;HEBREW PUNCTUATION SOF PASUQ;Po;0;R;;;;;N;;*;;;-05C4;HEBREW MARK UPPER DOT;Mn;230;NSM;;;;;N;;;;;-05C5;HEBREW MARK LOWER DOT;Mn;220;NSM;;;;;N;;;;;-05C6;HEBREW PUNCTUATION NUN HAFUKHA;Po;0;R;;;;;N;;;;;-05C7;HEBREW POINT QAMATS QATAN;Mn;18;NSM;;;;;N;;;;;-05D0;HEBREW LETTER ALEF;Lo;0;R;;;;;N;;;;;-05D1;HEBREW LETTER BET;Lo;0;R;;;;;N;;;;;-05D2;HEBREW LETTER GIMEL;Lo;0;R;;;;;N;;;;;-05D3;HEBREW LETTER DALET;Lo;0;R;;;;;N;;;;;-05D4;HEBREW LETTER HE;Lo;0;R;;;;;N;;;;;-05D5;HEBREW LETTER VAV;Lo;0;R;;;;;N;;;;;-05D6;HEBREW LETTER ZAYIN;Lo;0;R;;;;;N;;;;;-05D7;HEBREW LETTER HET;Lo;0;R;;;;;N;;;;;-05D8;HEBREW LETTER TET;Lo;0;R;;;;;N;;;;;-05D9;HEBREW LETTER YOD;Lo;0;R;;;;;N;;;;;-05DA;HEBREW LETTER FINAL KAF;Lo;0;R;;;;;N;;;;;-05DB;HEBREW LETTER KAF;Lo;0;R;;;;;N;;;;;-05DC;HEBREW LETTER LAMED;Lo;0;R;;;;;N;;;;;-05DD;HEBREW LETTER FINAL MEM;Lo;0;R;;;;;N;;;;;-05DE;HEBREW LETTER MEM;Lo;0;R;;;;;N;;;;;-05DF;HEBREW LETTER FINAL NUN;Lo;0;R;;;;;N;;;;;-05E0;HEBREW LETTER NUN;Lo;0;R;;;;;N;;;;;-05E1;HEBREW LETTER SAMEKH;Lo;0;R;;;;;N;;;;;-05E2;HEBREW LETTER AYIN;Lo;0;R;;;;;N;;;;;-05E3;HEBREW LETTER FINAL PE;Lo;0;R;;;;;N;;;;;-05E4;HEBREW LETTER PE;Lo;0;R;;;;;N;;;;;-05E5;HEBREW LETTER FINAL TSADI;Lo;0;R;;;;;N;;;;;-05E6;HEBREW LETTER TSADI;Lo;0;R;;;;;N;;;;;-05E7;HEBREW LETTER QOF;Lo;0;R;;;;;N;;;;;-05E8;HEBREW LETTER RESH;Lo;0;R;;;;;N;;;;;-05E9;HEBREW LETTER SHIN;Lo;0;R;;;;;N;;;;;-05EA;HEBREW LETTER TAV;Lo;0;R;;;;;N;;;;;-05F0;HEBREW LIGATURE YIDDISH DOUBLE VAV;Lo;0;R;;;;;N;HEBREW LETTER DOUBLE VAV;;;;-05F1;HEBREW LIGATURE YIDDISH VAV YOD;Lo;0;R;;;;;N;HEBREW LETTER VAV YOD;;;;-05F2;HEBREW LIGATURE YIDDISH DOUBLE YOD;Lo;0;R;;;;;N;HEBREW LETTER DOUBLE YOD;;;;-05F3;HEBREW PUNCTUATION GERESH;Po;0;R;;;;;N;;;;;-05F4;HEBREW PUNCTUATION GERSHAYIM;Po;0;R;;;;;N;;;;;-0600;ARABIC NUMBER SIGN;Cf;0;AL;;;;;N;;;;;-0601;ARABIC SIGN SANAH;Cf;0;AL;;;;;N;;;;;-0602;ARABIC FOOTNOTE MARKER;Cf;0;AL;;;;;N;;;;;-0603;ARABIC SIGN SAFHA;Cf;0;AL;;;;;N;;;;;-060B;AFGHANI SIGN;Sc;0;AL;;;;;N;;;;;-060C;ARABIC COMMA;Po;0;CS;;;;;N;;;;;-060D;ARABIC DATE SEPARATOR;Po;0;AL;;;;;N;;;;;-060E;ARABIC POETIC VERSE SIGN;So;0;ON;;;;;N;;;;;-060F;ARABIC SIGN MISRA;So;0;ON;;;;;N;;;;;-0610;ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM;Mn;230;NSM;;;;;N;;;;;-0611;ARABIC SIGN ALAYHE ASSALLAM;Mn;230;NSM;;;;;N;;;;;-0612;ARABIC SIGN RAHMATULLAH ALAYHE;Mn;230;NSM;;;;;N;;;;;-0613;ARABIC SIGN RADI ALLAHOU ANHU;Mn;230;NSM;;;;;N;;;;;-0614;ARABIC SIGN TAKHALLUS;Mn;230;NSM;;;;;N;;;;;-0615;ARABIC SMALL HIGH TAH;Mn;230;NSM;;;;;N;;;;;-061B;ARABIC SEMICOLON;Po;0;AL;;;;;N;;;;;-061E;ARABIC TRIPLE DOT PUNCTUATION MARK;Po;0;AL;;;;;N;;;;;-061F;ARABIC QUESTION MARK;Po;0;AL;;;;;N;;;;;-0621;ARABIC LETTER HAMZA;Lo;0;AL;;;;;N;ARABIC LETTER HAMZAH;;;;-0622;ARABIC LETTER ALEF WITH MADDA ABOVE;Lo;0;AL;0627 0653;;;;N;ARABIC LETTER MADDAH ON ALEF;;;;-0623;ARABIC LETTER ALEF WITH HAMZA ABOVE;Lo;0;AL;0627 0654;;;;N;ARABIC LETTER HAMZAH ON ALEF;;;;-0624;ARABIC LETTER WAW WITH HAMZA ABOVE;Lo;0;AL;0648 0654;;;;N;ARABIC LETTER HAMZAH ON WAW;;;;-0625;ARABIC LETTER ALEF WITH HAMZA BELOW;Lo;0;AL;0627 0655;;;;N;ARABIC LETTER HAMZAH UNDER ALEF;;;;-0626;ARABIC LETTER YEH WITH HAMZA ABOVE;Lo;0;AL;064A 0654;;;;N;ARABIC LETTER HAMZAH ON YA;;;;-0627;ARABIC LETTER ALEF;Lo;0;AL;;;;;N;;;;;-0628;ARABIC LETTER BEH;Lo;0;AL;;;;;N;ARABIC LETTER BAA;;;;-0629;ARABIC LETTER TEH MARBUTA;Lo;0;AL;;;;;N;ARABIC LETTER TAA MARBUTAH;;;;-062A;ARABIC LETTER TEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA;;;;-062B;ARABIC LETTER THEH;Lo;0;AL;;;;;N;ARABIC LETTER THAA;;;;-062C;ARABIC LETTER JEEM;Lo;0;AL;;;;;N;;;;;-062D;ARABIC LETTER HAH;Lo;0;AL;;;;;N;ARABIC LETTER HAA;;;;-062E;ARABIC LETTER KHAH;Lo;0;AL;;;;;N;ARABIC LETTER KHAA;;;;-062F;ARABIC LETTER DAL;Lo;0;AL;;;;;N;;;;;-0630;ARABIC LETTER THAL;Lo;0;AL;;;;;N;;;;;-0631;ARABIC LETTER REH;Lo;0;AL;;;;;N;ARABIC LETTER RA;;;;-0632;ARABIC LETTER ZAIN;Lo;0;AL;;;;;N;;;;;-0633;ARABIC LETTER SEEN;Lo;0;AL;;;;;N;;;;;-0634;ARABIC LETTER SHEEN;Lo;0;AL;;;;;N;;;;;-0635;ARABIC LETTER SAD;Lo;0;AL;;;;;N;;;;;-0636;ARABIC LETTER DAD;Lo;0;AL;;;;;N;;;;;-0637;ARABIC LETTER TAH;Lo;0;AL;;;;;N;;;;;-0638;ARABIC LETTER ZAH;Lo;0;AL;;;;;N;ARABIC LETTER DHAH;;;;-0639;ARABIC LETTER AIN;Lo;0;AL;;;;;N;;;;;-063A;ARABIC LETTER GHAIN;Lo;0;AL;;;;;N;;;;;-0640;ARABIC TATWEEL;Lm;0;AL;;;;;N;;;;;-0641;ARABIC LETTER FEH;Lo;0;AL;;;;;N;ARABIC LETTER FA;;;;-0642;ARABIC LETTER QAF;Lo;0;AL;;;;;N;;;;;-0643;ARABIC LETTER KAF;Lo;0;AL;;;;;N;ARABIC LETTER CAF;;;;-0644;ARABIC LETTER LAM;Lo;0;AL;;;;;N;;;;;-0645;ARABIC LETTER MEEM;Lo;0;AL;;;;;N;;;;;-0646;ARABIC LETTER NOON;Lo;0;AL;;;;;N;;;;;-0647;ARABIC LETTER HEH;Lo;0;AL;;;;;N;ARABIC LETTER HA;;;;-0648;ARABIC LETTER WAW;Lo;0;AL;;;;;N;;;;;-0649;ARABIC LETTER ALEF MAKSURA;Lo;0;AL;;;;;N;ARABIC LETTER ALEF MAQSURAH;;;;-064A;ARABIC LETTER YEH;Lo;0;AL;;;;;N;ARABIC LETTER YA;;;;-064B;ARABIC FATHATAN;Mn;27;NSM;;;;;N;;;;;-064C;ARABIC DAMMATAN;Mn;28;NSM;;;;;N;;;;;-064D;ARABIC KASRATAN;Mn;29;NSM;;;;;N;;;;;-064E;ARABIC FATHA;Mn;30;NSM;;;;;N;ARABIC FATHAH;;;;-064F;ARABIC DAMMA;Mn;31;NSM;;;;;N;ARABIC DAMMAH;;;;-0650;ARABIC KASRA;Mn;32;NSM;;;;;N;ARABIC KASRAH;;;;-0651;ARABIC SHADDA;Mn;33;NSM;;;;;N;ARABIC SHADDAH;;;;-0652;ARABIC SUKUN;Mn;34;NSM;;;;;N;;;;;-0653;ARABIC MADDAH ABOVE;Mn;230;NSM;;;;;N;;;;;-0654;ARABIC HAMZA ABOVE;Mn;230;NSM;;;;;N;;;;;-0655;ARABIC HAMZA BELOW;Mn;220;NSM;;;;;N;;;;;-0656;ARABIC SUBSCRIPT ALEF;Mn;220;NSM;;;;;N;;;;;-0657;ARABIC INVERTED DAMMA;Mn;230;NSM;;;;;N;;;;;-0658;ARABIC MARK NOON GHUNNA;Mn;230;NSM;;;;;N;;;;;-0659;ARABIC ZWARAKAY;Mn;230;NSM;;;;;N;;;;;-065A;ARABIC VOWEL SIGN SMALL V ABOVE;Mn;230;NSM;;;;;N;;;;;-065B;ARABIC VOWEL SIGN INVERTED SMALL V ABOVE;Mn;230;NSM;;;;;N;;;;;-065C;ARABIC VOWEL SIGN DOT BELOW;Mn;220;NSM;;;;;N;;;;;-065D;ARABIC REVERSED DAMMA;Mn;230;NSM;;;;;N;;;;;-065E;ARABIC FATHA WITH TWO DOTS;Mn;230;NSM;;;;;N;;;;;-0660;ARABIC-INDIC DIGIT ZERO;Nd;0;AN;;0;0;0;N;;;;;-0661;ARABIC-INDIC DIGIT ONE;Nd;0;AN;;1;1;1;N;;;;;-0662;ARABIC-INDIC DIGIT TWO;Nd;0;AN;;2;2;2;N;;;;;-0663;ARABIC-INDIC DIGIT THREE;Nd;0;AN;;3;3;3;N;;;;;-0664;ARABIC-INDIC DIGIT FOUR;Nd;0;AN;;4;4;4;N;;;;;-0665;ARABIC-INDIC DIGIT FIVE;Nd;0;AN;;5;5;5;N;;;;;-0666;ARABIC-INDIC DIGIT SIX;Nd;0;AN;;6;6;6;N;;;;;-0667;ARABIC-INDIC DIGIT SEVEN;Nd;0;AN;;7;7;7;N;;;;;-0668;ARABIC-INDIC DIGIT EIGHT;Nd;0;AN;;8;8;8;N;;;;;-0669;ARABIC-INDIC DIGIT NINE;Nd;0;AN;;9;9;9;N;;;;;-066A;ARABIC PERCENT SIGN;Po;0;ET;;;;;N;;;;;-066B;ARABIC DECIMAL SEPARATOR;Po;0;AN;;;;;N;;;;;-066C;ARABIC THOUSANDS SEPARATOR;Po;0;AN;;;;;N;;;;;-066D;ARABIC FIVE POINTED STAR;Po;0;AL;;;;;N;;;;;-066E;ARABIC LETTER DOTLESS BEH;Lo;0;AL;;;;;N;;;;;-066F;ARABIC LETTER DOTLESS QAF;Lo;0;AL;;;;;N;;;;;-0670;ARABIC LETTER SUPERSCRIPT ALEF;Mn;35;NSM;;;;;N;ARABIC ALEF ABOVE;;;;-0671;ARABIC LETTER ALEF WASLA;Lo;0;AL;;;;;N;ARABIC LETTER HAMZAT WASL ON ALEF;;;;-0672;ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER WAVY HAMZAH ON ALEF;;;;-0673;ARABIC LETTER ALEF WITH WAVY HAMZA BELOW;Lo;0;AL;;;;;N;ARABIC LETTER WAVY HAMZAH UNDER ALEF;;;;-0674;ARABIC LETTER HIGH HAMZA;Lo;0;AL;;;;;N;ARABIC LETTER HIGH HAMZAH;;;;-0675;ARABIC LETTER HIGH HAMZA ALEF;Lo;0;AL;<compat> 0627 0674;;;;N;ARABIC LETTER HIGH HAMZAH ALEF;;;;-0676;ARABIC LETTER HIGH HAMZA WAW;Lo;0;AL;<compat> 0648 0674;;;;N;ARABIC LETTER HIGH HAMZAH WAW;;;;-0677;ARABIC LETTER U WITH HAMZA ABOVE;Lo;0;AL;<compat> 06C7 0674;;;;N;ARABIC LETTER HIGH HAMZAH WAW WITH DAMMAH;;;;-0678;ARABIC LETTER HIGH HAMZA YEH;Lo;0;AL;<compat> 064A 0674;;;;N;ARABIC LETTER HIGH HAMZAH YA;;;;-0679;ARABIC LETTER TTEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH SMALL TAH;;;;-067A;ARABIC LETTER TTEHEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH TWO DOTS VERTICAL ABOVE;;;;-067B;ARABIC LETTER BEEH;Lo;0;AL;;;;;N;ARABIC LETTER BAA WITH TWO DOTS VERTICAL BELOW;;;;-067C;ARABIC LETTER TEH WITH RING;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH RING;;;;-067D;ARABIC LETTER TEH WITH THREE DOTS ABOVE DOWNWARDS;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH THREE DOTS ABOVE DOWNWARD;;;;-067E;ARABIC LETTER PEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH THREE DOTS BELOW;;;;-067F;ARABIC LETTER TEHEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH FOUR DOTS ABOVE;;;;-0680;ARABIC LETTER BEHEH;Lo;0;AL;;;;;N;ARABIC LETTER BAA WITH FOUR DOTS BELOW;;;;-0681;ARABIC LETTER HAH WITH HAMZA ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER HAMZAH ON HAA;;;;-0682;ARABIC LETTER HAH WITH TWO DOTS VERTICAL ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH TWO DOTS VERTICAL ABOVE;;;;-0683;ARABIC LETTER NYEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE TWO DOTS;;;;-0684;ARABIC LETTER DYEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE TWO DOTS VERTICAL;;;;-0685;ARABIC LETTER HAH WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH THREE DOTS ABOVE;;;;-0686;ARABIC LETTER TCHEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE THREE DOTS DOWNWARD;;;;-0687;ARABIC LETTER TCHEHEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE FOUR DOTS;;;;-0688;ARABIC LETTER DDAL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH SMALL TAH;;;;-0689;ARABIC LETTER DAL WITH RING;Lo;0;AL;;;;;N;;;;;-068A;ARABIC LETTER DAL WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;-068B;ARABIC LETTER DAL WITH DOT BELOW AND SMALL TAH;Lo;0;AL;;;;;N;;;;;-068C;ARABIC LETTER DAHAL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH TWO DOTS ABOVE;;;;-068D;ARABIC LETTER DDAHAL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH TWO DOTS BELOW;;;;-068E;ARABIC LETTER DUL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH THREE DOTS ABOVE;;;;-068F;ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARDS;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARD;;;;-0690;ARABIC LETTER DAL WITH FOUR DOTS ABOVE;Lo;0;AL;;;;;N;;;;;-0691;ARABIC LETTER RREH;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH SMALL TAH;;;;-0692;ARABIC LETTER REH WITH SMALL V;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH SMALL V;;;;-0693;ARABIC LETTER REH WITH RING;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH RING;;;;-0694;ARABIC LETTER REH WITH DOT BELOW;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH DOT BELOW;;;;-0695;ARABIC LETTER REH WITH SMALL V BELOW;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH SMALL V BELOW;;;;-0696;ARABIC LETTER REH WITH DOT BELOW AND DOT ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH DOT BELOW AND DOT ABOVE;;;;-0697;ARABIC LETTER REH WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH TWO DOTS ABOVE;;;;-0698;ARABIC LETTER JEH;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH THREE DOTS ABOVE;;;;-0699;ARABIC LETTER REH WITH FOUR DOTS ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH FOUR DOTS ABOVE;;;;-069A;ARABIC LETTER SEEN WITH DOT BELOW AND DOT ABOVE;Lo;0;AL;;;;;N;;;;;-069B;ARABIC LETTER SEEN WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;;;;;-069C;ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;-069D;ARABIC LETTER SAD WITH TWO DOTS BELOW;Lo;0;AL;;;;;N;;;;;-069E;ARABIC LETTER SAD WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;-069F;ARABIC LETTER TAH WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;-06A0;ARABIC LETTER AIN WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;-06A1;ARABIC LETTER DOTLESS FEH;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS FA;;;;-06A2;ARABIC LETTER FEH WITH DOT MOVED BELOW;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH DOT MOVED BELOW;;;;-06A3;ARABIC LETTER FEH WITH DOT BELOW;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH DOT BELOW;;;;-06A4;ARABIC LETTER VEH;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH THREE DOTS ABOVE;;;;-06A5;ARABIC LETTER FEH WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH THREE DOTS BELOW;;;;-06A6;ARABIC LETTER PEHEH;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH FOUR DOTS ABOVE;;;;-06A7;ARABIC LETTER QAF WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;;-06A8;ARABIC LETTER QAF WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;-06A9;ARABIC LETTER KEHEH;Lo;0;AL;;;;;N;ARABIC LETTER OPEN CAF;;;;-06AA;ARABIC LETTER SWASH KAF;Lo;0;AL;;;;;N;ARABIC LETTER SWASH CAF;;;;-06AB;ARABIC LETTER KAF WITH RING;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH RING;;;;-06AC;ARABIC LETTER KAF WITH DOT ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH DOT ABOVE;;;;-06AD;ARABIC LETTER NG;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH THREE DOTS ABOVE;;;;-06AE;ARABIC LETTER KAF WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH THREE DOTS BELOW;;;;-06AF;ARABIC LETTER GAF;Lo;0;AL;;;;;N;;*;;;-06B0;ARABIC LETTER GAF WITH RING;Lo;0;AL;;;;;N;;;;;-06B1;ARABIC LETTER NGOEH;Lo;0;AL;;;;;N;ARABIC LETTER GAF WITH TWO DOTS ABOVE;;;;-06B2;ARABIC LETTER GAF WITH TWO DOTS BELOW;Lo;0;AL;;;;;N;;;;;-06B3;ARABIC LETTER GUEH;Lo;0;AL;;;;;N;ARABIC LETTER GAF WITH TWO DOTS VERTICAL BELOW;;;;-06B4;ARABIC LETTER GAF WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;-06B5;ARABIC LETTER LAM WITH SMALL V;Lo;0;AL;;;;;N;;;;;-06B6;ARABIC LETTER LAM WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;;-06B7;ARABIC LETTER LAM WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;-06B8;ARABIC LETTER LAM WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;;;;;-06B9;ARABIC LETTER NOON WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;-06BA;ARABIC LETTER NOON GHUNNA;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS NOON;;;;-06BB;ARABIC LETTER RNOON;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS NOON WITH SMALL TAH;;;;-06BC;ARABIC LETTER NOON WITH RING;Lo;0;AL;;;;;N;;;;;-06BD;ARABIC LETTER NOON WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;-06BE;ARABIC LETTER HEH DOACHASHMEE;Lo;0;AL;;;;;N;ARABIC LETTER KNOTTED HA;;;;-06BF;ARABIC LETTER TCHEH WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;;-06C0;ARABIC LETTER HEH WITH YEH ABOVE;Lo;0;AL;06D5 0654;;;;N;ARABIC LETTER HAMZAH ON HA;;;;-06C1;ARABIC LETTER HEH GOAL;Lo;0;AL;;;;;N;ARABIC LETTER HA GOAL;;;;-06C2;ARABIC LETTER HEH GOAL WITH HAMZA ABOVE;Lo;0;AL;06C1 0654;;;;N;ARABIC LETTER HAMZAH ON HA GOAL;;;;-06C3;ARABIC LETTER TEH MARBUTA GOAL;Lo;0;AL;;;;;N;ARABIC LETTER TAA MARBUTAH GOAL;;;;-06C4;ARABIC LETTER WAW WITH RING;Lo;0;AL;;;;;N;;;;;-06C5;ARABIC LETTER KIRGHIZ OE;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH BAR;;;;-06C6;ARABIC LETTER OE;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH SMALL V;;;;-06C7;ARABIC LETTER U;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH DAMMAH;;;;-06C8;ARABIC LETTER YU;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH ALEF ABOVE;;;;-06C9;ARABIC LETTER KIRGHIZ YU;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH INVERTED SMALL V;;;;-06CA;ARABIC LETTER WAW WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;;-06CB;ARABIC LETTER VE;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH THREE DOTS ABOVE;;;;-06CC;ARABIC LETTER FARSI YEH;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS YA;;;;-06CD;ARABIC LETTER YEH WITH TAIL;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH TAIL;;;;-06CE;ARABIC LETTER YEH WITH SMALL V;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH SMALL V;;;;-06CF;ARABIC LETTER WAW WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;;-06D0;ARABIC LETTER E;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH TWO DOTS VERTICAL BELOW;*;;;-06D1;ARABIC LETTER YEH WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH THREE DOTS BELOW;;;;-06D2;ARABIC LETTER YEH BARREE;Lo;0;AL;;;;;N;ARABIC LETTER YA BARREE;;;;-06D3;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE;Lo;0;AL;06D2 0654;;;;N;ARABIC LETTER HAMZAH ON YA BARREE;;;;-06D4;ARABIC FULL STOP;Po;0;AL;;;;;N;ARABIC PERIOD;;;;-06D5;ARABIC LETTER AE;Lo;0;AL;;;;;N;;;;;-06D6;ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA;Mn;230;NSM;;;;;N;;;;;-06D7;ARABIC SMALL HIGH LIGATURE QAF WITH LAM WITH ALEF MAKSURA;Mn;230;NSM;;;;;N;;;;;-06D8;ARABIC SMALL HIGH MEEM INITIAL FORM;Mn;230;NSM;;;;;N;;;;;-06D9;ARABIC SMALL HIGH LAM ALEF;Mn;230;NSM;;;;;N;;;;;-06DA;ARABIC SMALL HIGH JEEM;Mn;230;NSM;;;;;N;;;;;-06DB;ARABIC SMALL HIGH THREE DOTS;Mn;230;NSM;;;;;N;;;;;-06DC;ARABIC SMALL HIGH SEEN;Mn;230;NSM;;;;;N;;;;;-06DD;ARABIC END OF AYAH;Cf;0;AL;;;;;N;;;;;-06DE;ARABIC START OF RUB EL HIZB;Me;0;NSM;;;;;N;;;;;-06DF;ARABIC SMALL HIGH ROUNDED ZERO;Mn;230;NSM;;;;;N;;;;;-06E0;ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO;Mn;230;NSM;;;;;N;;;;;-06E1;ARABIC SMALL HIGH DOTLESS HEAD OF KHAH;Mn;230;NSM;;;;;N;;;;;-06E2;ARABIC SMALL HIGH MEEM ISOLATED FORM;Mn;230;NSM;;;;;N;;;;;-06E3;ARABIC SMALL LOW SEEN;Mn;220;NSM;;;;;N;;;;;-06E4;ARABIC SMALL HIGH MADDA;Mn;230;NSM;;;;;N;;;;;-06E5;ARABIC SMALL WAW;Lm;0;AL;;;;;N;;;;;-06E6;ARABIC SMALL YEH;Lm;0;AL;;;;;N;;;;;-06E7;ARABIC SMALL HIGH YEH;Mn;230;NSM;;;;;N;;;;;-06E8;ARABIC SMALL HIGH NOON;Mn;230;NSM;;;;;N;;;;;-06E9;ARABIC PLACE OF SAJDAH;So;0;ON;;;;;N;;;;;-06EA;ARABIC EMPTY CENTRE LOW STOP;Mn;220;NSM;;;;;N;;;;;-06EB;ARABIC EMPTY CENTRE HIGH STOP;Mn;230;NSM;;;;;N;;;;;-06EC;ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE;Mn;230;NSM;;;;;N;;;;;-06ED;ARABIC SMALL LOW MEEM;Mn;220;NSM;;;;;N;;;;;-06EE;ARABIC LETTER DAL WITH INVERTED V;Lo;0;AL;;;;;N;;;;;-06EF;ARABIC LETTER REH WITH INVERTED V;Lo;0;AL;;;;;N;;;;;-06F0;EXTENDED ARABIC-INDIC DIGIT ZERO;Nd;0;EN;;0;0;0;N;EASTERN ARABIC-INDIC DIGIT ZERO;;;;-06F1;EXTENDED ARABIC-INDIC DIGIT ONE;Nd;0;EN;;1;1;1;N;EASTERN ARABIC-INDIC DIGIT ONE;;;;-06F2;EXTENDED ARABIC-INDIC DIGIT TWO;Nd;0;EN;;2;2;2;N;EASTERN ARABIC-INDIC DIGIT TWO;;;;-06F3;EXTENDED ARABIC-INDIC DIGIT THREE;Nd;0;EN;;3;3;3;N;EASTERN ARABIC-INDIC DIGIT THREE;;;;-06F4;EXTENDED ARABIC-INDIC DIGIT FOUR;Nd;0;EN;;4;4;4;N;EASTERN ARABIC-INDIC DIGIT FOUR;;;;-06F5;EXTENDED ARABIC-INDIC DIGIT FIVE;Nd;0;EN;;5;5;5;N;EASTERN ARABIC-INDIC DIGIT FIVE;;;;-06F6;EXTENDED ARABIC-INDIC DIGIT SIX;Nd;0;EN;;6;6;6;N;EASTERN ARABIC-INDIC DIGIT SIX;;;;-06F7;EXTENDED ARABIC-INDIC DIGIT SEVEN;Nd;0;EN;;7;7;7;N;EASTERN ARABIC-INDIC DIGIT SEVEN;;;;-06F8;EXTENDED ARABIC-INDIC DIGIT EIGHT;Nd;0;EN;;8;8;8;N;EASTERN ARABIC-INDIC DIGIT EIGHT;;;;-06F9;EXTENDED ARABIC-INDIC DIGIT NINE;Nd;0;EN;;9;9;9;N;EASTERN ARABIC-INDIC DIGIT NINE;;;;-06FA;ARABIC LETTER SHEEN WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;-06FB;ARABIC LETTER DAD WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;-06FC;ARABIC LETTER GHAIN WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;-06FD;ARABIC SIGN SINDHI AMPERSAND;So;0;AL;;;;;N;;;;;-06FE;ARABIC SIGN SINDHI POSTPOSITION MEN;So;0;AL;;;;;N;;;;;-06FF;ARABIC LETTER HEH WITH INVERTED V;Lo;0;AL;;;;;N;;;;;-0700;SYRIAC END OF PARAGRAPH;Po;0;AL;;;;;N;;;;;-0701;SYRIAC SUPRALINEAR FULL STOP;Po;0;AL;;;;;N;;;;;-0702;SYRIAC SUBLINEAR FULL STOP;Po;0;AL;;;;;N;;;;;-0703;SYRIAC SUPRALINEAR COLON;Po;0;AL;;;;;N;;;;;-0704;SYRIAC SUBLINEAR COLON;Po;0;AL;;;;;N;;;;;-0705;SYRIAC HORIZONTAL COLON;Po;0;AL;;;;;N;;;;;-0706;SYRIAC COLON SKEWED LEFT;Po;0;AL;;;;;N;;;;;-0707;SYRIAC COLON SKEWED RIGHT;Po;0;AL;;;;;N;;;;;-0708;SYRIAC SUPRALINEAR COLON SKEWED LEFT;Po;0;AL;;;;;N;;;;;-0709;SYRIAC SUBLINEAR COLON SKEWED RIGHT;Po;0;AL;;;;;N;;;;;-070A;SYRIAC CONTRACTION;Po;0;AL;;;;;N;;;;;-070B;SYRIAC HARKLEAN OBELUS;Po;0;AL;;;;;N;;;;;-070C;SYRIAC HARKLEAN METOBELUS;Po;0;AL;;;;;N;;;;;-070D;SYRIAC HARKLEAN ASTERISCUS;Po;0;AL;;;;;N;;;;;-070F;SYRIAC ABBREVIATION MARK;Cf;0;BN;;;;;N;;;;;-0710;SYRIAC LETTER ALAPH;Lo;0;AL;;;;;N;;;;;-0711;SYRIAC LETTER SUPERSCRIPT ALAPH;Mn;36;NSM;;;;;N;;;;;-0712;SYRIAC LETTER BETH;Lo;0;AL;;;;;N;;;;;-0713;SYRIAC LETTER GAMAL;Lo;0;AL;;;;;N;;;;;-0714;SYRIAC LETTER GAMAL GARSHUNI;Lo;0;AL;;;;;N;;;;;-0715;SYRIAC LETTER DALATH;Lo;0;AL;;;;;N;;;;;-0716;SYRIAC LETTER DOTLESS DALATH RISH;Lo;0;AL;;;;;N;;;;;-0717;SYRIAC LETTER HE;Lo;0;AL;;;;;N;;;;;-0718;SYRIAC LETTER WAW;Lo;0;AL;;;;;N;;;;;-0719;SYRIAC LETTER ZAIN;Lo;0;AL;;;;;N;;;;;-071A;SYRIAC LETTER HETH;Lo;0;AL;;;;;N;;;;;-071B;SYRIAC LETTER TETH;Lo;0;AL;;;;;N;;;;;-071C;SYRIAC LETTER TETH GARSHUNI;Lo;0;AL;;;;;N;;;;;-071D;SYRIAC LETTER YUDH;Lo;0;AL;;;;;N;;;;;-071E;SYRIAC LETTER YUDH HE;Lo;0;AL;;;;;N;;;;;-071F;SYRIAC LETTER KAPH;Lo;0;AL;;;;;N;;;;;-0720;SYRIAC LETTER LAMADH;Lo;0;AL;;;;;N;;;;;-0721;SYRIAC LETTER MIM;Lo;0;AL;;;;;N;;;;;-0722;SYRIAC LETTER NUN;Lo;0;AL;;;;;N;;;;;-0723;SYRIAC LETTER SEMKATH;Lo;0;AL;;;;;N;;;;;-0724;SYRIAC LETTER FINAL SEMKATH;Lo;0;AL;;;;;N;;;;;-0725;SYRIAC LETTER E;Lo;0;AL;;;;;N;;;;;-0726;SYRIAC LETTER PE;Lo;0;AL;;;;;N;;;;;-0727;SYRIAC LETTER REVERSED PE;Lo;0;AL;;;;;N;;;;;-0728;SYRIAC LETTER SADHE;Lo;0;AL;;;;;N;;;;;-0729;SYRIAC LETTER QAPH;Lo;0;AL;;;;;N;;;;;-072A;SYRIAC LETTER RISH;Lo;0;AL;;;;;N;;;;;-072B;SYRIAC LETTER SHIN;Lo;0;AL;;;;;N;;;;;-072C;SYRIAC LETTER TAW;Lo;0;AL;;;;;N;;;;;-072D;SYRIAC LETTER PERSIAN BHETH;Lo;0;AL;;;;;N;;;;;-072E;SYRIAC LETTER PERSIAN GHAMAL;Lo;0;AL;;;;;N;;;;;-072F;SYRIAC LETTER PERSIAN DHALATH;Lo;0;AL;;;;;N;;;;;-0730;SYRIAC PTHAHA ABOVE;Mn;230;NSM;;;;;N;;;;;-0731;SYRIAC PTHAHA BELOW;Mn;220;NSM;;;;;N;;;;;-0732;SYRIAC PTHAHA DOTTED;Mn;230;NSM;;;;;N;;;;;-0733;SYRIAC ZQAPHA ABOVE;Mn;230;NSM;;;;;N;;;;;-0734;SYRIAC ZQAPHA BELOW;Mn;220;NSM;;;;;N;;;;;-0735;SYRIAC ZQAPHA DOTTED;Mn;230;NSM;;;;;N;;;;;-0736;SYRIAC RBASA ABOVE;Mn;230;NSM;;;;;N;;;;;-0737;SYRIAC RBASA BELOW;Mn;220;NSM;;;;;N;;;;;-0738;SYRIAC DOTTED ZLAMA HORIZONTAL;Mn;220;NSM;;;;;N;;;;;-0739;SYRIAC DOTTED ZLAMA ANGULAR;Mn;220;NSM;;;;;N;;;;;-073A;SYRIAC HBASA ABOVE;Mn;230;NSM;;;;;N;;;;;-073B;SYRIAC HBASA BELOW;Mn;220;NSM;;;;;N;;;;;-073C;SYRIAC HBASA-ESASA DOTTED;Mn;220;NSM;;;;;N;;;;;-073D;SYRIAC ESASA ABOVE;Mn;230;NSM;;;;;N;;;;;-073E;SYRIAC ESASA BELOW;Mn;220;NSM;;;;;N;;;;;-073F;SYRIAC RWAHA;Mn;230;NSM;;;;;N;;;;;-0740;SYRIAC FEMININE DOT;Mn;230;NSM;;;;;N;;;;;-0741;SYRIAC QUSHSHAYA;Mn;230;NSM;;;;;N;;;;;-0742;SYRIAC RUKKAKHA;Mn;220;NSM;;;;;N;;;;;-0743;SYRIAC TWO VERTICAL DOTS ABOVE;Mn;230;NSM;;;;;N;;;;;-0744;SYRIAC TWO VERTICAL DOTS BELOW;Mn;220;NSM;;;;;N;;;;;-0745;SYRIAC THREE DOTS ABOVE;Mn;230;NSM;;;;;N;;;;;-0746;SYRIAC THREE DOTS BELOW;Mn;220;NSM;;;;;N;;;;;-0747;SYRIAC OBLIQUE LINE ABOVE;Mn;230;NSM;;;;;N;;;;;-0748;SYRIAC OBLIQUE LINE BELOW;Mn;220;NSM;;;;;N;;;;;-0749;SYRIAC MUSIC;Mn;230;NSM;;;;;N;;;;;-074A;SYRIAC BARREKH;Mn;230;NSM;;;;;N;;;;;-074D;SYRIAC LETTER SOGDIAN ZHAIN;Lo;0;AL;;;;;N;;;;;-074E;SYRIAC LETTER SOGDIAN KHAPH;Lo;0;AL;;;;;N;;;;;-074F;SYRIAC LETTER SOGDIAN FE;Lo;0;AL;;;;;N;;;;;-0750;ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW;Lo;0;AL;;;;;N;;;;;-0751;ARABIC LETTER BEH WITH DOT BELOW AND THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;-0752;ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW;Lo;0;AL;;;;;N;;;;;-0753;ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW AND TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;;-0754;ARABIC LETTER BEH WITH TWO DOTS BELOW AND DOT ABOVE;Lo;0;AL;;;;;N;;;;;-0755;ARABIC LETTER BEH WITH INVERTED SMALL V BELOW;Lo;0;AL;;;;;N;;;;;-0756;ARABIC LETTER BEH WITH SMALL V;Lo;0;AL;;;;;N;;;;;-0757;ARABIC LETTER HAH WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;;-0758;ARABIC LETTER HAH WITH THREE DOTS POINTING UPWARDS BELOW;Lo;0;AL;;;;;N;;;;;-0759;ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW AND SMALL TAH;Lo;0;AL;;;;;N;;;;;-075A;ARABIC LETTER DAL WITH INVERTED SMALL V BELOW;Lo;0;AL;;;;;N;;;;;-075B;ARABIC LETTER REH WITH STROKE;Lo;0;AL;;;;;N;;;;;-075C;ARABIC LETTER SEEN WITH FOUR DOTS ABOVE;Lo;0;AL;;;;;N;;;;;-075D;ARABIC LETTER AIN WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;;-075E;ARABIC LETTER AIN WITH THREE DOTS POINTING DOWNWARDS ABOVE;Lo;0;AL;;;;;N;;;;;-075F;ARABIC LETTER AIN WITH TWO DOTS VERTICALLY ABOVE;Lo;0;AL;;;;;N;;;;;-0760;ARABIC LETTER FEH WITH TWO DOTS BELOW;Lo;0;AL;;;;;N;;;;;-0761;ARABIC LETTER FEH WITH THREE DOTS POINTING UPWARDS BELOW;Lo;0;AL;;;;;N;;;;;-0762;ARABIC LETTER KEHEH WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;;-0763;ARABIC LETTER KEHEH WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;-0764;ARABIC LETTER KEHEH WITH THREE DOTS POINTING UPWARDS BELOW;Lo;0;AL;;;;;N;;;;;-0765;ARABIC LETTER MEEM WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;;-0766;ARABIC LETTER MEEM WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;-0767;ARABIC LETTER NOON WITH TWO DOTS BELOW;Lo;0;AL;;;;;N;;;;;-0768;ARABIC LETTER NOON WITH SMALL TAH;Lo;0;AL;;;;;N;;;;;-0769;ARABIC LETTER NOON WITH SMALL V;Lo;0;AL;;;;;N;;;;;-076A;ARABIC LETTER LAM WITH BAR;Lo;0;AL;;;;;N;;;;;-076B;ARABIC LETTER REH WITH TWO DOTS VERTICALLY ABOVE;Lo;0;AL;;;;;N;;;;;-076C;ARABIC LETTER REH WITH HAMZA ABOVE;Lo;0;AL;;;;;N;;;;;-076D;ARABIC LETTER SEEN WITH TWO DOTS VERTICALLY ABOVE;Lo;0;AL;;;;;N;;;;;-0780;THAANA LETTER HAA;Lo;0;AL;;;;;N;;;;;-0781;THAANA LETTER SHAVIYANI;Lo;0;AL;;;;;N;;;;;-0782;THAANA LETTER NOONU;Lo;0;AL;;;;;N;;;;;-0783;THAANA LETTER RAA;Lo;0;AL;;;;;N;;;;;-0784;THAANA LETTER BAA;Lo;0;AL;;;;;N;;;;;-0785;THAANA LETTER LHAVIYANI;Lo;0;AL;;;;;N;;;;;-0786;THAANA LETTER KAAFU;Lo;0;AL;;;;;N;;;;;-0787;THAANA LETTER ALIFU;Lo;0;AL;;;;;N;;;;;-0788;THAANA LETTER VAAVU;Lo;0;AL;;;;;N;;;;;-0789;THAANA LETTER MEEMU;Lo;0;AL;;;;;N;;;;;-078A;THAANA LETTER FAAFU;Lo;0;AL;;;;;N;;;;;-078B;THAANA LETTER DHAALU;Lo;0;AL;;;;;N;;;;;-078C;THAANA LETTER THAA;Lo;0;AL;;;;;N;;;;;-078D;THAANA LETTER LAAMU;Lo;0;AL;;;;;N;;;;;-078E;THAANA LETTER GAAFU;Lo;0;AL;;;;;N;;;;;-078F;THAANA LETTER GNAVIYANI;Lo;0;AL;;;;;N;;;;;-0790;THAANA LETTER SEENU;Lo;0;AL;;;;;N;;;;;-0791;THAANA LETTER DAVIYANI;Lo;0;AL;;;;;N;;;;;-0792;THAANA LETTER ZAVIYANI;Lo;0;AL;;;;;N;;;;;-0793;THAANA LETTER TAVIYANI;Lo;0;AL;;;;;N;;;;;-0794;THAANA LETTER YAA;Lo;0;AL;;;;;N;;;;;-0795;THAANA LETTER PAVIYANI;Lo;0;AL;;;;;N;;;;;-0796;THAANA LETTER JAVIYANI;Lo;0;AL;;;;;N;;;;;-0797;THAANA LETTER CHAVIYANI;Lo;0;AL;;;;;N;;;;;-0798;THAANA LETTER TTAA;Lo;0;AL;;;;;N;;;;;-0799;THAANA LETTER HHAA;Lo;0;AL;;;;;N;;;;;-079A;THAANA LETTER KHAA;Lo;0;AL;;;;;N;;;;;-079B;THAANA LETTER THAALU;Lo;0;AL;;;;;N;;;;;-079C;THAANA LETTER ZAA;Lo;0;AL;;;;;N;;;;;-079D;THAANA LETTER SHEENU;Lo;0;AL;;;;;N;;;;;-079E;THAANA LETTER SAADHU;Lo;0;AL;;;;;N;;;;;-079F;THAANA LETTER DAADHU;Lo;0;AL;;;;;N;;;;;-07A0;THAANA LETTER TO;Lo;0;AL;;;;;N;;;;;-07A1;THAANA LETTER ZO;Lo;0;AL;;;;;N;;;;;-07A2;THAANA LETTER AINU;Lo;0;AL;;;;;N;;;;;-07A3;THAANA LETTER GHAINU;Lo;0;AL;;;;;N;;;;;-07A4;THAANA LETTER QAAFU;Lo;0;AL;;;;;N;;;;;-07A5;THAANA LETTER WAAVU;Lo;0;AL;;;;;N;;;;;-07A6;THAANA ABAFILI;Mn;0;NSM;;;;;N;;;;;-07A7;THAANA AABAAFILI;Mn;0;NSM;;;;;N;;;;;-07A8;THAANA IBIFILI;Mn;0;NSM;;;;;N;;;;;-07A9;THAANA EEBEEFILI;Mn;0;NSM;;;;;N;;;;;-07AA;THAANA UBUFILI;Mn;0;NSM;;;;;N;;;;;-07AB;THAANA OOBOOFILI;Mn;0;NSM;;;;;N;;;;;-07AC;THAANA EBEFILI;Mn;0;NSM;;;;;N;;;;;-07AD;THAANA EYBEYFILI;Mn;0;NSM;;;;;N;;;;;-07AE;THAANA OBOFILI;Mn;0;NSM;;;;;N;;;;;-07AF;THAANA OABOAFILI;Mn;0;NSM;;;;;N;;;;;-07B0;THAANA SUKUN;Mn;0;NSM;;;;;N;;;;;-07B1;THAANA LETTER NAA;Lo;0;AL;;;;;N;;;;;-07C0;NKO DIGIT ZERO;Nd;0;R;;0;0;0;N;;;;;-07C1;NKO DIGIT ONE;Nd;0;R;;1;1;1;N;;;;;-07C2;NKO DIGIT TWO;Nd;0;R;;2;2;2;N;;;;;-07C3;NKO DIGIT THREE;Nd;0;R;;3;3;3;N;;;;;-07C4;NKO DIGIT FOUR;Nd;0;R;;4;4;4;N;;;;;-07C5;NKO DIGIT FIVE;Nd;0;R;;5;5;5;N;;;;;-07C6;NKO DIGIT SIX;Nd;0;R;;6;6;6;N;;;;;-07C7;NKO DIGIT SEVEN;Nd;0;R;;7;7;7;N;;;;;-07C8;NKO DIGIT EIGHT;Nd;0;R;;8;8;8;N;;;;;-07C9;NKO DIGIT NINE;Nd;0;R;;9;9;9;N;;;;;-07CA;NKO LETTER A;Lo;0;R;;;;;N;;;;;-07CB;NKO LETTER EE;Lo;0;R;;;;;N;;;;;-07CC;NKO LETTER I;Lo;0;R;;;;;N;;;;;-07CD;NKO LETTER E;Lo;0;R;;;;;N;;;;;-07CE;NKO LETTER U;Lo;0;R;;;;;N;;;;;-07CF;NKO LETTER OO;Lo;0;R;;;;;N;;;;;-07D0;NKO LETTER O;Lo;0;R;;;;;N;;;;;-07D1;NKO LETTER DAGBASINNA;Lo;0;R;;;;;N;;;;;-07D2;NKO LETTER N;Lo;0;R;;;;;N;;;;;-07D3;NKO LETTER BA;Lo;0;R;;;;;N;;;;;-07D4;NKO LETTER PA;Lo;0;R;;;;;N;;;;;-07D5;NKO LETTER TA;Lo;0;R;;;;;N;;;;;-07D6;NKO LETTER JA;Lo;0;R;;;;;N;;;;;-07D7;NKO LETTER CHA;Lo;0;R;;;;;N;;;;;-07D8;NKO LETTER DA;Lo;0;R;;;;;N;;;;;-07D9;NKO LETTER RA;Lo;0;R;;;;;N;;;;;-07DA;NKO LETTER RRA;Lo;0;R;;;;;N;;;;;-07DB;NKO LETTER SA;Lo;0;R;;;;;N;;;;;-07DC;NKO LETTER GBA;Lo;0;R;;;;;N;;;;;-07DD;NKO LETTER FA;Lo;0;R;;;;;N;;;;;-07DE;NKO LETTER KA;Lo;0;R;;;;;N;;;;;-07DF;NKO LETTER LA;Lo;0;R;;;;;N;;;;;-07E0;NKO LETTER NA WOLOSO;Lo;0;R;;;;;N;;;;;-07E1;NKO LETTER MA;Lo;0;R;;;;;N;;;;;-07E2;NKO LETTER NYA;Lo;0;R;;;;;N;;;;;-07E3;NKO LETTER NA;Lo;0;R;;;;;N;;;;;-07E4;NKO LETTER HA;Lo;0;R;;;;;N;;;;;-07E5;NKO LETTER WA;Lo;0;R;;;;;N;;;;;-07E6;NKO LETTER YA;Lo;0;R;;;;;N;;;;;-07E7;NKO LETTER NYA WOLOSO;Lo;0;R;;;;;N;;;;;-07E8;NKO LETTER JONA JA;Lo;0;R;;;;;N;;;;;-07E9;NKO LETTER JONA CHA;Lo;0;R;;;;;N;;;;;-07EA;NKO LETTER JONA RA;Lo;0;R;;;;;N;;;;;-07EB;NKO COMBINING SHORT HIGH TONE;Mn;230;NSM;;;;;N;;;;;-07EC;NKO COMBINING SHORT LOW TONE;Mn;230;NSM;;;;;N;;;;;-07ED;NKO COMBINING SHORT RISING TONE;Mn;230;NSM;;;;;N;;;;;-07EE;NKO COMBINING LONG DESCENDING TONE;Mn;230;NSM;;;;;N;;;;;-07EF;NKO COMBINING LONG HIGH TONE;Mn;230;NSM;;;;;N;;;;;-07F0;NKO COMBINING LONG LOW TONE;Mn;230;NSM;;;;;N;;;;;-07F1;NKO COMBINING LONG RISING TONE;Mn;230;NSM;;;;;N;;;;;-07F2;NKO COMBINING NASALIZATION MARK;Mn;220;NSM;;;;;N;;;;;-07F3;NKO COMBINING DOUBLE DOT ABOVE;Mn;230;NSM;;;;;N;;;;;-07F4;NKO HIGH TONE APOSTROPHE;Lm;0;R;;;;;N;;;;;-07F5;NKO LOW TONE APOSTROPHE;Lm;0;R;;;;;N;;;;;-07F6;NKO SYMBOL OO DENNEN;So;0;ON;;;;;N;;;;;-07F7;NKO SYMBOL GBAKURUNEN;Po;0;ON;;;;;N;;;;;-07F8;NKO COMMA;Po;0;ON;;;;;N;;;;;-07F9;NKO EXCLAMATION MARK;Po;0;ON;;;;;N;;;;;-07FA;NKO LAJANYALAN;Lm;0;R;;;;;N;;;;;-0901;DEVANAGARI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;-0902;DEVANAGARI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;-0903;DEVANAGARI SIGN VISARGA;Mc;0;L;;;;;N;;;;;-0904;DEVANAGARI LETTER SHORT A;Lo;0;L;;;;;N;;;;;-0905;DEVANAGARI LETTER A;Lo;0;L;;;;;N;;;;;-0906;DEVANAGARI LETTER AA;Lo;0;L;;;;;N;;;;;-0907;DEVANAGARI LETTER I;Lo;0;L;;;;;N;;;;;-0908;DEVANAGARI LETTER II;Lo;0;L;;;;;N;;;;;-0909;DEVANAGARI LETTER U;Lo;0;L;;;;;N;;;;;-090A;DEVANAGARI LETTER UU;Lo;0;L;;;;;N;;;;;-090B;DEVANAGARI LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;-090C;DEVANAGARI LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;-090D;DEVANAGARI LETTER CANDRA E;Lo;0;L;;;;;N;;;;;-090E;DEVANAGARI LETTER SHORT E;Lo;0;L;;;;;N;;;;;-090F;DEVANAGARI LETTER E;Lo;0;L;;;;;N;;;;;-0910;DEVANAGARI LETTER AI;Lo;0;L;;;;;N;;;;;-0911;DEVANAGARI LETTER CANDRA O;Lo;0;L;;;;;N;;;;;-0912;DEVANAGARI LETTER SHORT O;Lo;0;L;;;;;N;;;;;-0913;DEVANAGARI LETTER O;Lo;0;L;;;;;N;;;;;-0914;DEVANAGARI LETTER AU;Lo;0;L;;;;;N;;;;;-0915;DEVANAGARI LETTER KA;Lo;0;L;;;;;N;;;;;-0916;DEVANAGARI LETTER KHA;Lo;0;L;;;;;N;;;;;-0917;DEVANAGARI LETTER GA;Lo;0;L;;;;;N;;;;;-0918;DEVANAGARI LETTER GHA;Lo;0;L;;;;;N;;;;;-0919;DEVANAGARI LETTER NGA;Lo;0;L;;;;;N;;;;;-091A;DEVANAGARI LETTER CA;Lo;0;L;;;;;N;;;;;-091B;DEVANAGARI LETTER CHA;Lo;0;L;;;;;N;;;;;-091C;DEVANAGARI LETTER JA;Lo;0;L;;;;;N;;;;;-091D;DEVANAGARI LETTER JHA;Lo;0;L;;;;;N;;;;;-091E;DEVANAGARI LETTER NYA;Lo;0;L;;;;;N;;;;;-091F;DEVANAGARI LETTER TTA;Lo;0;L;;;;;N;;;;;-0920;DEVANAGARI LETTER TTHA;Lo;0;L;;;;;N;;;;;-0921;DEVANAGARI LETTER DDA;Lo;0;L;;;;;N;;;;;-0922;DEVANAGARI LETTER DDHA;Lo;0;L;;;;;N;;;;;-0923;DEVANAGARI LETTER NNA;Lo;0;L;;;;;N;;;;;-0924;DEVANAGARI LETTER TA;Lo;0;L;;;;;N;;;;;-0925;DEVANAGARI LETTER THA;Lo;0;L;;;;;N;;;;;-0926;DEVANAGARI LETTER DA;Lo;0;L;;;;;N;;;;;-0927;DEVANAGARI LETTER DHA;Lo;0;L;;;;;N;;;;;-0928;DEVANAGARI LETTER NA;Lo;0;L;;;;;N;;;;;-0929;DEVANAGARI LETTER NNNA;Lo;0;L;0928 093C;;;;N;;;;;-092A;DEVANAGARI LETTER PA;Lo;0;L;;;;;N;;;;;-092B;DEVANAGARI LETTER PHA;Lo;0;L;;;;;N;;;;;-092C;DEVANAGARI LETTER BA;Lo;0;L;;;;;N;;;;;-092D;DEVANAGARI LETTER BHA;Lo;0;L;;;;;N;;;;;-092E;DEVANAGARI LETTER MA;Lo;0;L;;;;;N;;;;;-092F;DEVANAGARI LETTER YA;Lo;0;L;;;;;N;;;;;-0930;DEVANAGARI LETTER RA;Lo;0;L;;;;;N;;;;;-0931;DEVANAGARI LETTER RRA;Lo;0;L;0930 093C;;;;N;;;;;-0932;DEVANAGARI LETTER LA;Lo;0;L;;;;;N;;;;;-0933;DEVANAGARI LETTER LLA;Lo;0;L;;;;;N;;;;;-0934;DEVANAGARI LETTER LLLA;Lo;0;L;0933 093C;;;;N;;;;;-0935;DEVANAGARI LETTER VA;Lo;0;L;;;;;N;;;;;-0936;DEVANAGARI LETTER SHA;Lo;0;L;;;;;N;;;;;-0937;DEVANAGARI LETTER SSA;Lo;0;L;;;;;N;;;;;-0938;DEVANAGARI LETTER SA;Lo;0;L;;;;;N;;;;;-0939;DEVANAGARI LETTER HA;Lo;0;L;;;;;N;;;;;-093C;DEVANAGARI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;-093D;DEVANAGARI SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;-093E;DEVANAGARI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;-093F;DEVANAGARI VOWEL SIGN I;Mc;0;L;;;;;N;;;;;-0940;DEVANAGARI VOWEL SIGN II;Mc;0;L;;;;;N;;;;;-0941;DEVANAGARI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;-0942;DEVANAGARI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;-0943;DEVANAGARI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;-0944;DEVANAGARI VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;;-0945;DEVANAGARI VOWEL SIGN CANDRA E;Mn;0;NSM;;;;;N;;;;;-0946;DEVANAGARI VOWEL SIGN SHORT E;Mn;0;NSM;;;;;N;;;;;-0947;DEVANAGARI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;-0948;DEVANAGARI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;-0949;DEVANAGARI VOWEL SIGN CANDRA O;Mc;0;L;;;;;N;;;;;-094A;DEVANAGARI VOWEL SIGN SHORT O;Mc;0;L;;;;;N;;;;;-094B;DEVANAGARI VOWEL SIGN O;Mc;0;L;;;;;N;;;;;-094C;DEVANAGARI VOWEL SIGN AU;Mc;0;L;;;;;N;;;;;-094D;DEVANAGARI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;-0950;DEVANAGARI OM;Lo;0;L;;;;;N;;;;;-0951;DEVANAGARI STRESS SIGN UDATTA;Mn;230;NSM;;;;;N;;;;;-0952;DEVANAGARI STRESS SIGN ANUDATTA;Mn;220;NSM;;;;;N;;;;;-0953;DEVANAGARI GRAVE ACCENT;Mn;230;NSM;;;;;N;;;;;-0954;DEVANAGARI ACUTE ACCENT;Mn;230;NSM;;;;;N;;;;;-0958;DEVANAGARI LETTER QA;Lo;0;L;0915 093C;;;;N;;;;;-0959;DEVANAGARI LETTER KHHA;Lo;0;L;0916 093C;;;;N;;;;;-095A;DEVANAGARI LETTER GHHA;Lo;0;L;0917 093C;;;;N;;;;;-095B;DEVANAGARI LETTER ZA;Lo;0;L;091C 093C;;;;N;;;;;-095C;DEVANAGARI LETTER DDDHA;Lo;0;L;0921 093C;;;;N;;;;;-095D;DEVANAGARI LETTER RHA;Lo;0;L;0922 093C;;;;N;;;;;-095E;DEVANAGARI LETTER FA;Lo;0;L;092B 093C;;;;N;;;;;-095F;DEVANAGARI LETTER YYA;Lo;0;L;092F 093C;;;;N;;;;;-0960;DEVANAGARI LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;-0961;DEVANAGARI LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;-0962;DEVANAGARI VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;-0963;DEVANAGARI VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;-0964;DEVANAGARI DANDA;Po;0;L;;;;;N;;;;;-0965;DEVANAGARI DOUBLE DANDA;Po;0;L;;;;;N;;;;;-0966;DEVANAGARI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;-0967;DEVANAGARI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;-0968;DEVANAGARI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;-0969;DEVANAGARI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;-096A;DEVANAGARI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;-096B;DEVANAGARI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;-096C;DEVANAGARI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;-096D;DEVANAGARI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;-096E;DEVANAGARI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;-096F;DEVANAGARI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;-0970;DEVANAGARI ABBREVIATION SIGN;Po;0;L;;;;;N;;;;;-097B;DEVANAGARI LETTER GGA;Lo;0;L;;;;;N;;;;;-097C;DEVANAGARI LETTER JJA;Lo;0;L;;;;;N;;;;;-097D;DEVANAGARI LETTER GLOTTAL STOP;Lo;0;L;;;;;N;;;;;-097E;DEVANAGARI LETTER DDDA;Lo;0;L;;;;;N;;;;;-097F;DEVANAGARI LETTER BBA;Lo;0;L;;;;;N;;;;;-0981;BENGALI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;-0982;BENGALI SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;-0983;BENGALI SIGN VISARGA;Mc;0;L;;;;;N;;;;;-0985;BENGALI LETTER A;Lo;0;L;;;;;N;;;;;-0986;BENGALI LETTER AA;Lo;0;L;;;;;N;;;;;-0987;BENGALI LETTER I;Lo;0;L;;;;;N;;;;;-0988;BENGALI LETTER II;Lo;0;L;;;;;N;;;;;-0989;BENGALI LETTER U;Lo;0;L;;;;;N;;;;;-098A;BENGALI LETTER UU;Lo;0;L;;;;;N;;;;;-098B;BENGALI LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;-098C;BENGALI LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;-098F;BENGALI LETTER E;Lo;0;L;;;;;N;;;;;-0990;BENGALI LETTER AI;Lo;0;L;;;;;N;;;;;-0993;BENGALI LETTER O;Lo;0;L;;;;;N;;;;;-0994;BENGALI LETTER AU;Lo;0;L;;;;;N;;;;;-0995;BENGALI LETTER KA;Lo;0;L;;;;;N;;;;;-0996;BENGALI LETTER KHA;Lo;0;L;;;;;N;;;;;-0997;BENGALI LETTER GA;Lo;0;L;;;;;N;;;;;-0998;BENGALI LETTER GHA;Lo;0;L;;;;;N;;;;;-0999;BENGALI LETTER NGA;Lo;0;L;;;;;N;;;;;-099A;BENGALI LETTER CA;Lo;0;L;;;;;N;;;;;-099B;BENGALI LETTER CHA;Lo;0;L;;;;;N;;;;;-099C;BENGALI LETTER JA;Lo;0;L;;;;;N;;;;;-099D;BENGALI LETTER JHA;Lo;0;L;;;;;N;;;;;-099E;BENGALI LETTER NYA;Lo;0;L;;;;;N;;;;;-099F;BENGALI LETTER TTA;Lo;0;L;;;;;N;;;;;-09A0;BENGALI LETTER TTHA;Lo;0;L;;;;;N;;;;;-09A1;BENGALI LETTER DDA;Lo;0;L;;;;;N;;;;;-09A2;BENGALI LETTER DDHA;Lo;0;L;;;;;N;;;;;-09A3;BENGALI LETTER NNA;Lo;0;L;;;;;N;;;;;-09A4;BENGALI LETTER TA;Lo;0;L;;;;;N;;;;;-09A5;BENGALI LETTER THA;Lo;0;L;;;;;N;;;;;-09A6;BENGALI LETTER DA;Lo;0;L;;;;;N;;;;;-09A7;BENGALI LETTER DHA;Lo;0;L;;;;;N;;;;;-09A8;BENGALI LETTER NA;Lo;0;L;;;;;N;;;;;-09AA;BENGALI LETTER PA;Lo;0;L;;;;;N;;;;;-09AB;BENGALI LETTER PHA;Lo;0;L;;;;;N;;;;;-09AC;BENGALI LETTER BA;Lo;0;L;;;;;N;;;;;-09AD;BENGALI LETTER BHA;Lo;0;L;;;;;N;;;;;-09AE;BENGALI LETTER MA;Lo;0;L;;;;;N;;;;;-09AF;BENGALI LETTER YA;Lo;0;L;;;;;N;;;;;-09B0;BENGALI LETTER RA;Lo;0;L;;;;;N;;;;;-09B2;BENGALI LETTER LA;Lo;0;L;;;;;N;;;;;-09B6;BENGALI LETTER SHA;Lo;0;L;;;;;N;;;;;-09B7;BENGALI LETTER SSA;Lo;0;L;;;;;N;;;;;-09B8;BENGALI LETTER SA;Lo;0;L;;;;;N;;;;;-09B9;BENGALI LETTER HA;Lo;0;L;;;;;N;;;;;-09BC;BENGALI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;-09BD;BENGALI SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;-09BE;BENGALI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;-09BF;BENGALI VOWEL SIGN I;Mc;0;L;;;;;N;;;;;-09C0;BENGALI VOWEL SIGN II;Mc;0;L;;;;;N;;;;;-09C1;BENGALI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;-09C2;BENGALI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;-09C3;BENGALI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;-09C4;BENGALI VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;;-09C7;BENGALI VOWEL SIGN E;Mc;0;L;;;;;N;;;;;-09C8;BENGALI VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;-09CB;BENGALI VOWEL SIGN O;Mc;0;L;09C7 09BE;;;;N;;;;;-09CC;BENGALI VOWEL SIGN AU;Mc;0;L;09C7 09D7;;;;N;;;;;-09CD;BENGALI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;-09CE;BENGALI LETTER KHANDA TA;Lo;0;L;;;;;N;;;;;-09D7;BENGALI AU LENGTH MARK;Mc;0;L;;;;;N;;;;;-09DC;BENGALI LETTER RRA;Lo;0;L;09A1 09BC;;;;N;;;;;-09DD;BENGALI LETTER RHA;Lo;0;L;09A2 09BC;;;;N;;;;;-09DF;BENGALI LETTER YYA;Lo;0;L;09AF 09BC;;;;N;;;;;-09E0;BENGALI LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;-09E1;BENGALI LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;-09E2;BENGALI VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;-09E3;BENGALI VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;-09E6;BENGALI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;-09E7;BENGALI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;-09E8;BENGALI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;-09E9;BENGALI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;-09EA;BENGALI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;-09EB;BENGALI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;-09EC;BENGALI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;-09ED;BENGALI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;-09EE;BENGALI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;-09EF;BENGALI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;-09F0;BENGALI LETTER RA WITH MIDDLE DIAGONAL;Lo;0;L;;;;;N;;Assamese;;;-09F1;BENGALI LETTER RA WITH LOWER DIAGONAL;Lo;0;L;;;;;N;BENGALI LETTER VA WITH LOWER DIAGONAL;Assamese;;;-09F2;BENGALI RUPEE MARK;Sc;0;ET;;;;;N;;;;;-09F3;BENGALI RUPEE SIGN;Sc;0;ET;;;;;N;;;;;-09F4;BENGALI CURRENCY NUMERATOR ONE;No;0;L;;;;1;N;;;;;-09F5;BENGALI CURRENCY NUMERATOR TWO;No;0;L;;;;2;N;;;;;-09F6;BENGALI CURRENCY NUMERATOR THREE;No;0;L;;;;3;N;;;;;-09F7;BENGALI CURRENCY NUMERATOR FOUR;No;0;L;;;;4;N;;;;;-09F8;BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR;No;0;L;;;;;N;;;;;-09F9;BENGALI CURRENCY DENOMINATOR SIXTEEN;No;0;L;;;;16;N;;;;;-09FA;BENGALI ISSHAR;So;0;L;;;;;N;;;;;-0A01;GURMUKHI SIGN ADAK BINDI;Mn;0;NSM;;;;;N;;;;;-0A02;GURMUKHI SIGN BINDI;Mn;0;NSM;;;;;N;;;;;-0A03;GURMUKHI SIGN VISARGA;Mc;0;L;;;;;N;;;;;-0A05;GURMUKHI LETTER A;Lo;0;L;;;;;N;;;;;-0A06;GURMUKHI LETTER AA;Lo;0;L;;;;;N;;;;;-0A07;GURMUKHI LETTER I;Lo;0;L;;;;;N;;;;;-0A08;GURMUKHI LETTER II;Lo;0;L;;;;;N;;;;;-0A09;GURMUKHI LETTER U;Lo;0;L;;;;;N;;;;;-0A0A;GURMUKHI LETTER UU;Lo;0;L;;;;;N;;;;;-0A0F;GURMUKHI LETTER EE;Lo;0;L;;;;;N;;;;;-0A10;GURMUKHI LETTER AI;Lo;0;L;;;;;N;;;;;-0A13;GURMUKHI LETTER OO;Lo;0;L;;;;;N;;;;;-0A14;GURMUKHI LETTER AU;Lo;0;L;;;;;N;;;;;-0A15;GURMUKHI LETTER KA;Lo;0;L;;;;;N;;;;;-0A16;GURMUKHI LETTER KHA;Lo;0;L;;;;;N;;;;;-0A17;GURMUKHI LETTER GA;Lo;0;L;;;;;N;;;;;-0A18;GURMUKHI LETTER GHA;Lo;0;L;;;;;N;;;;;-0A19;GURMUKHI LETTER NGA;Lo;0;L;;;;;N;;;;;-0A1A;GURMUKHI LETTER CA;Lo;0;L;;;;;N;;;;;-0A1B;GURMUKHI LETTER CHA;Lo;0;L;;;;;N;;;;;-0A1C;GURMUKHI LETTER JA;Lo;0;L;;;;;N;;;;;-0A1D;GURMUKHI LETTER JHA;Lo;0;L;;;;;N;;;;;-0A1E;GURMUKHI LETTER NYA;Lo;0;L;;;;;N;;;;;-0A1F;GURMUKHI LETTER TTA;Lo;0;L;;;;;N;;;;;-0A20;GURMUKHI LETTER TTHA;Lo;0;L;;;;;N;;;;;-0A21;GURMUKHI LETTER DDA;Lo;0;L;;;;;N;;;;;-0A22;GURMUKHI LETTER DDHA;Lo;0;L;;;;;N;;;;;-0A23;GURMUKHI LETTER NNA;Lo;0;L;;;;;N;;;;;-0A24;GURMUKHI LETTER TA;Lo;0;L;;;;;N;;;;;-0A25;GURMUKHI LETTER THA;Lo;0;L;;;;;N;;;;;-0A26;GURMUKHI LETTER DA;Lo;0;L;;;;;N;;;;;-0A27;GURMUKHI LETTER DHA;Lo;0;L;;;;;N;;;;;-0A28;GURMUKHI LETTER NA;Lo;0;L;;;;;N;;;;;-0A2A;GURMUKHI LETTER PA;Lo;0;L;;;;;N;;;;;-0A2B;GURMUKHI LETTER PHA;Lo;0;L;;;;;N;;;;;-0A2C;GURMUKHI LETTER BA;Lo;0;L;;;;;N;;;;;-0A2D;GURMUKHI LETTER BHA;Lo;0;L;;;;;N;;;;;-0A2E;GURMUKHI LETTER MA;Lo;0;L;;;;;N;;;;;-0A2F;GURMUKHI LETTER YA;Lo;0;L;;;;;N;;;;;-0A30;GURMUKHI LETTER RA;Lo;0;L;;;;;N;;;;;-0A32;GURMUKHI LETTER LA;Lo;0;L;;;;;N;;;;;-0A33;GURMUKHI LETTER LLA;Lo;0;L;0A32 0A3C;;;;N;;;;;-0A35;GURMUKHI LETTER VA;Lo;0;L;;;;;N;;;;;-0A36;GURMUKHI LETTER SHA;Lo;0;L;0A38 0A3C;;;;N;;;;;-0A38;GURMUKHI LETTER SA;Lo;0;L;;;;;N;;;;;-0A39;GURMUKHI LETTER HA;Lo;0;L;;;;;N;;;;;-0A3C;GURMUKHI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;-0A3E;GURMUKHI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;-0A3F;GURMUKHI VOWEL SIGN I;Mc;0;L;;;;;N;;;;;-0A40;GURMUKHI VOWEL SIGN II;Mc;0;L;;;;;N;;;;;-0A41;GURMUKHI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;-0A42;GURMUKHI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;-0A47;GURMUKHI VOWEL SIGN EE;Mn;0;NSM;;;;;N;;;;;-0A48;GURMUKHI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;-0A4B;GURMUKHI VOWEL SIGN OO;Mn;0;NSM;;;;;N;;;;;-0A4C;GURMUKHI VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;;-0A4D;GURMUKHI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;-0A59;GURMUKHI LETTER KHHA;Lo;0;L;0A16 0A3C;;;;N;;;;;-0A5A;GURMUKHI LETTER GHHA;Lo;0;L;0A17 0A3C;;;;N;;;;;-0A5B;GURMUKHI LETTER ZA;Lo;0;L;0A1C 0A3C;;;;N;;;;;-0A5C;GURMUKHI LETTER RRA;Lo;0;L;;;;;N;;;;;-0A5E;GURMUKHI LETTER FA;Lo;0;L;0A2B 0A3C;;;;N;;;;;-0A66;GURMUKHI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;-0A67;GURMUKHI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;-0A68;GURMUKHI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;-0A69;GURMUKHI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;-0A6A;GURMUKHI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;-0A6B;GURMUKHI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;-0A6C;GURMUKHI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;-0A6D;GURMUKHI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;-0A6E;GURMUKHI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;-0A6F;GURMUKHI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;-0A70;GURMUKHI TIPPI;Mn;0;NSM;;;;;N;;;;;-0A71;GURMUKHI ADDAK;Mn;0;NSM;;;;;N;;;;;-0A72;GURMUKHI IRI;Lo;0;L;;;;;N;;;;;-0A73;GURMUKHI URA;Lo;0;L;;;;;N;;;;;-0A74;GURMUKHI EK ONKAR;Lo;0;L;;;;;N;;;;;-0A81;GUJARATI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;-0A82;GUJARATI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;-0A83;GUJARATI SIGN VISARGA;Mc;0;L;;;;;N;;;;;-0A85;GUJARATI LETTER A;Lo;0;L;;;;;N;;;;;-0A86;GUJARATI LETTER AA;Lo;0;L;;;;;N;;;;;-0A87;GUJARATI LETTER I;Lo;0;L;;;;;N;;;;;-0A88;GUJARATI LETTER II;Lo;0;L;;;;;N;;;;;-0A89;GUJARATI LETTER U;Lo;0;L;;;;;N;;;;;-0A8A;GUJARATI LETTER UU;Lo;0;L;;;;;N;;;;;-0A8B;GUJARATI LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;-0A8C;GUJARATI LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;-0A8D;GUJARATI VOWEL CANDRA E;Lo;0;L;;;;;N;;;;;-0A8F;GUJARATI LETTER E;Lo;0;L;;;;;N;;;;;-0A90;GUJARATI LETTER AI;Lo;0;L;;;;;N;;;;;-0A91;GUJARATI VOWEL CANDRA O;Lo;0;L;;;;;N;;;;;-0A93;GUJARATI LETTER O;Lo;0;L;;;;;N;;;;;-0A94;GUJARATI LETTER AU;Lo;0;L;;;;;N;;;;;-0A95;GUJARATI LETTER KA;Lo;0;L;;;;;N;;;;;-0A96;GUJARATI LETTER KHA;Lo;0;L;;;;;N;;;;;-0A97;GUJARATI LETTER GA;Lo;0;L;;;;;N;;;;;-0A98;GUJARATI LETTER GHA;Lo;0;L;;;;;N;;;;;-0A99;GUJARATI LETTER NGA;Lo;0;L;;;;;N;;;;;-0A9A;GUJARATI LETTER CA;Lo;0;L;;;;;N;;;;;-0A9B;GUJARATI LETTER CHA;Lo;0;L;;;;;N;;;;;-0A9C;GUJARATI LETTER JA;Lo;0;L;;;;;N;;;;;-0A9D;GUJARATI LETTER JHA;Lo;0;L;;;;;N;;;;;-0A9E;GUJARATI LETTER NYA;Lo;0;L;;;;;N;;;;;-0A9F;GUJARATI LETTER TTA;Lo;0;L;;;;;N;;;;;-0AA0;GUJARATI LETTER TTHA;Lo;0;L;;;;;N;;;;;-0AA1;GUJARATI LETTER DDA;Lo;0;L;;;;;N;;;;;-0AA2;GUJARATI LETTER DDHA;Lo;0;L;;;;;N;;;;;-0AA3;GUJARATI LETTER NNA;Lo;0;L;;;;;N;;;;;-0AA4;GUJARATI LETTER TA;Lo;0;L;;;;;N;;;;;-0AA5;GUJARATI LETTER THA;Lo;0;L;;;;;N;;;;;-0AA6;GUJARATI LETTER DA;Lo;0;L;;;;;N;;;;;-0AA7;GUJARATI LETTER DHA;Lo;0;L;;;;;N;;;;;-0AA8;GUJARATI LETTER NA;Lo;0;L;;;;;N;;;;;-0AAA;GUJARATI LETTER PA;Lo;0;L;;;;;N;;;;;-0AAB;GUJARATI LETTER PHA;Lo;0;L;;;;;N;;;;;-0AAC;GUJARATI LETTER BA;Lo;0;L;;;;;N;;;;;-0AAD;GUJARATI LETTER BHA;Lo;0;L;;;;;N;;;;;-0AAE;GUJARATI LETTER MA;Lo;0;L;;;;;N;;;;;-0AAF;GUJARATI LETTER YA;Lo;0;L;;;;;N;;;;;-0AB0;GUJARATI LETTER RA;Lo;0;L;;;;;N;;;;;-0AB2;GUJARATI LETTER LA;Lo;0;L;;;;;N;;;;;-0AB3;GUJARATI LETTER LLA;Lo;0;L;;;;;N;;;;;-0AB5;GUJARATI LETTER VA;Lo;0;L;;;;;N;;;;;-0AB6;GUJARATI LETTER SHA;Lo;0;L;;;;;N;;;;;-0AB7;GUJARATI LETTER SSA;Lo;0;L;;;;;N;;;;;-0AB8;GUJARATI LETTER SA;Lo;0;L;;;;;N;;;;;-0AB9;GUJARATI LETTER HA;Lo;0;L;;;;;N;;;;;-0ABC;GUJARATI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;-0ABD;GUJARATI SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;-0ABE;GUJARATI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;-0ABF;GUJARATI VOWEL SIGN I;Mc;0;L;;;;;N;;;;;-0AC0;GUJARATI VOWEL SIGN II;Mc;0;L;;;;;N;;;;;-0AC1;GUJARATI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;-0AC2;GUJARATI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;-0AC3;GUJARATI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;-0AC4;GUJARATI VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;;-0AC5;GUJARATI VOWEL SIGN CANDRA E;Mn;0;NSM;;;;;N;;;;;-0AC7;GUJARATI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;-0AC8;GUJARATI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;-0AC9;GUJARATI VOWEL SIGN CANDRA O;Mc;0;L;;;;;N;;;;;-0ACB;GUJARATI VOWEL SIGN O;Mc;0;L;;;;;N;;;;;-0ACC;GUJARATI VOWEL SIGN AU;Mc;0;L;;;;;N;;;;;-0ACD;GUJARATI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;-0AD0;GUJARATI OM;Lo;0;L;;;;;N;;;;;-0AE0;GUJARATI LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;-0AE1;GUJARATI LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;-0AE2;GUJARATI VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;-0AE3;GUJARATI VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;-0AE6;GUJARATI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;-0AE7;GUJARATI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;-0AE8;GUJARATI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;-0AE9;GUJARATI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;-0AEA;GUJARATI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;-0AEB;GUJARATI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;-0AEC;GUJARATI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;-0AED;GUJARATI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;-0AEE;GUJARATI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;-0AEF;GUJARATI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;-0AF1;GUJARATI RUPEE SIGN;Sc;0;ET;;;;;N;;;;;-0B01;ORIYA SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;-0B02;ORIYA SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;-0B03;ORIYA SIGN VISARGA;Mc;0;L;;;;;N;;;;;-0B05;ORIYA LETTER A;Lo;0;L;;;;;N;;;;;-0B06;ORIYA LETTER AA;Lo;0;L;;;;;N;;;;;-0B07;ORIYA LETTER I;Lo;0;L;;;;;N;;;;;-0B08;ORIYA LETTER II;Lo;0;L;;;;;N;;;;;-0B09;ORIYA LETTER U;Lo;0;L;;;;;N;;;;;-0B0A;ORIYA LETTER UU;Lo;0;L;;;;;N;;;;;-0B0B;ORIYA LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;-0B0C;ORIYA LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;-0B0F;ORIYA LETTER E;Lo;0;L;;;;;N;;;;;-0B10;ORIYA LETTER AI;Lo;0;L;;;;;N;;;;;-0B13;ORIYA LETTER O;Lo;0;L;;;;;N;;;;;-0B14;ORIYA LETTER AU;Lo;0;L;;;;;N;;;;;-0B15;ORIYA LETTER KA;Lo;0;L;;;;;N;;;;;-0B16;ORIYA LETTER KHA;Lo;0;L;;;;;N;;;;;-0B17;ORIYA LETTER GA;Lo;0;L;;;;;N;;;;;-0B18;ORIYA LETTER GHA;Lo;0;L;;;;;N;;;;;-0B19;ORIYA LETTER NGA;Lo;0;L;;;;;N;;;;;-0B1A;ORIYA LETTER CA;Lo;0;L;;;;;N;;;;;-0B1B;ORIYA LETTER CHA;Lo;0;L;;;;;N;;;;;-0B1C;ORIYA LETTER JA;Lo;0;L;;;;;N;;;;;-0B1D;ORIYA LETTER JHA;Lo;0;L;;;;;N;;;;;-0B1E;ORIYA LETTER NYA;Lo;0;L;;;;;N;;;;;-0B1F;ORIYA LETTER TTA;Lo;0;L;;;;;N;;;;;-0B20;ORIYA LETTER TTHA;Lo;0;L;;;;;N;;;;;-0B21;ORIYA LETTER DDA;Lo;0;L;;;;;N;;;;;-0B22;ORIYA LETTER DDHA;Lo;0;L;;;;;N;;;;;-0B23;ORIYA LETTER NNA;Lo;0;L;;;;;N;;;;;-0B24;ORIYA LETTER TA;Lo;0;L;;;;;N;;;;;-0B25;ORIYA LETTER THA;Lo;0;L;;;;;N;;;;;-0B26;ORIYA LETTER DA;Lo;0;L;;;;;N;;;;;-0B27;ORIYA LETTER DHA;Lo;0;L;;;;;N;;;;;-0B28;ORIYA LETTER NA;Lo;0;L;;;;;N;;;;;-0B2A;ORIYA LETTER PA;Lo;0;L;;;;;N;;;;;-0B2B;ORIYA LETTER PHA;Lo;0;L;;;;;N;;;;;-0B2C;ORIYA LETTER BA;Lo;0;L;;;;;N;;;;;-0B2D;ORIYA LETTER BHA;Lo;0;L;;;;;N;;;;;-0B2E;ORIYA LETTER MA;Lo;0;L;;;;;N;;;;;-0B2F;ORIYA LETTER YA;Lo;0;L;;;;;N;;;;;-0B30;ORIYA LETTER RA;Lo;0;L;;;;;N;;;;;-0B32;ORIYA LETTER LA;Lo;0;L;;;;;N;;;;;-0B33;ORIYA LETTER LLA;Lo;0;L;;;;;N;;;;;-0B35;ORIYA LETTER VA;Lo;0;L;;;;;N;;;;;-0B36;ORIYA LETTER SHA;Lo;0;L;;;;;N;;;;;-0B37;ORIYA LETTER SSA;Lo;0;L;;;;;N;;;;;-0B38;ORIYA LETTER SA;Lo;0;L;;;;;N;;;;;-0B39;ORIYA LETTER HA;Lo;0;L;;;;;N;;;;;-0B3C;ORIYA SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;-0B3D;ORIYA SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;-0B3E;ORIYA VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;-0B3F;ORIYA VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;-0B40;ORIYA VOWEL SIGN II;Mc;0;L;;;;;N;;;;;-0B41;ORIYA VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;-0B42;ORIYA VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;-0B43;ORIYA VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;-0B47;ORIYA VOWEL SIGN E;Mc;0;L;;;;;N;;;;;-0B48;ORIYA VOWEL SIGN AI;Mc;0;L;0B47 0B56;;;;N;;;;;-0B4B;ORIYA VOWEL SIGN O;Mc;0;L;0B47 0B3E;;;;N;;;;;-0B4C;ORIYA VOWEL SIGN AU;Mc;0;L;0B47 0B57;;;;N;;;;;-0B4D;ORIYA SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;-0B56;ORIYA AI LENGTH MARK;Mn;0;NSM;;;;;N;;;;;-0B57;ORIYA AU LENGTH MARK;Mc;0;L;;;;;N;;;;;-0B5C;ORIYA LETTER RRA;Lo;0;L;0B21 0B3C;;;;N;;;;;-0B5D;ORIYA LETTER RHA;Lo;0;L;0B22 0B3C;;;;N;;;;;-0B5F;ORIYA LETTER YYA;Lo;0;L;;;;;N;;;;;-0B60;ORIYA LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;-0B61;ORIYA LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;-0B66;ORIYA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;-0B67;ORIYA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;-0B68;ORIYA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;-0B69;ORIYA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;-0B6A;ORIYA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;-0B6B;ORIYA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;-0B6C;ORIYA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;-0B6D;ORIYA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;-0B6E;ORIYA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;-0B6F;ORIYA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;-0B70;ORIYA ISSHAR;So;0;L;;;;;N;;;;;-0B71;ORIYA LETTER WA;Lo;0;L;;;;;N;;;;;-0B82;TAMIL SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;-0B83;TAMIL SIGN VISARGA;Lo;0;L;;;;;N;;;;;-0B85;TAMIL LETTER A;Lo;0;L;;;;;N;;;;;-0B86;TAMIL LETTER AA;Lo;0;L;;;;;N;;;;;-0B87;TAMIL LETTER I;Lo;0;L;;;;;N;;;;;-0B88;TAMIL LETTER II;Lo;0;L;;;;;N;;;;;-0B89;TAMIL LETTER U;Lo;0;L;;;;;N;;;;;-0B8A;TAMIL LETTER UU;Lo;0;L;;;;;N;;;;;-0B8E;TAMIL LETTER E;Lo;0;L;;;;;N;;;;;-0B8F;TAMIL LETTER EE;Lo;0;L;;;;;N;;;;;-0B90;TAMIL LETTER AI;Lo;0;L;;;;;N;;;;;-0B92;TAMIL LETTER O;Lo;0;L;;;;;N;;;;;-0B93;TAMIL LETTER OO;Lo;0;L;;;;;N;;;;;-0B94;TAMIL LETTER AU;Lo;0;L;0B92 0BD7;;;;N;;;;;-0B95;TAMIL LETTER KA;Lo;0;L;;;;;N;;;;;-0B99;TAMIL LETTER NGA;Lo;0;L;;;;;N;;;;;-0B9A;TAMIL LETTER CA;Lo;0;L;;;;;N;;;;;-0B9C;TAMIL LETTER JA;Lo;0;L;;;;;N;;;;;-0B9E;TAMIL LETTER NYA;Lo;0;L;;;;;N;;;;;-0B9F;TAMIL LETTER TTA;Lo;0;L;;;;;N;;;;;-0BA3;TAMIL LETTER NNA;Lo;0;L;;;;;N;;;;;-0BA4;TAMIL LETTER TA;Lo;0;L;;;;;N;;;;;-0BA8;TAMIL LETTER NA;Lo;0;L;;;;;N;;;;;-0BA9;TAMIL LETTER NNNA;Lo;0;L;;;;;N;;;;;-0BAA;TAMIL LETTER PA;Lo;0;L;;;;;N;;;;;-0BAE;TAMIL LETTER MA;Lo;0;L;;;;;N;;;;;-0BAF;TAMIL LETTER YA;Lo;0;L;;;;;N;;;;;-0BB0;TAMIL LETTER RA;Lo;0;L;;;;;N;;;;;-0BB1;TAMIL LETTER RRA;Lo;0;L;;;;;N;;;;;-0BB2;TAMIL LETTER LA;Lo;0;L;;;;;N;;;;;-0BB3;TAMIL LETTER LLA;Lo;0;L;;;;;N;;;;;-0BB4;TAMIL LETTER LLLA;Lo;0;L;;;;;N;;;;;-0BB5;TAMIL LETTER VA;Lo;0;L;;;;;N;;;;;-0BB6;TAMIL LETTER SHA;Lo;0;L;;;;;N;;;;;-0BB7;TAMIL LETTER SSA;Lo;0;L;;;;;N;;;;;-0BB8;TAMIL LETTER SA;Lo;0;L;;;;;N;;;;;-0BB9;TAMIL LETTER HA;Lo;0;L;;;;;N;;;;;-0BBE;TAMIL VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;-0BBF;TAMIL VOWEL SIGN I;Mc;0;L;;;;;N;;;;;-0BC0;TAMIL VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;-0BC1;TAMIL VOWEL SIGN U;Mc;0;L;;;;;N;;;;;-0BC2;TAMIL VOWEL SIGN UU;Mc;0;L;;;;;N;;;;;-0BC6;TAMIL VOWEL SIGN E;Mc;0;L;;;;;N;;;;;-0BC7;TAMIL VOWEL SIGN EE;Mc;0;L;;;;;N;;;;;-0BC8;TAMIL VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;-0BCA;TAMIL VOWEL SIGN O;Mc;0;L;0BC6 0BBE;;;;N;;;;;-0BCB;TAMIL VOWEL SIGN OO;Mc;0;L;0BC7 0BBE;;;;N;;;;;-0BCC;TAMIL VOWEL SIGN AU;Mc;0;L;0BC6 0BD7;;;;N;;;;;-0BCD;TAMIL SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;-0BD7;TAMIL AU LENGTH MARK;Mc;0;L;;;;;N;;;;;-0BE6;TAMIL DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;-0BE7;TAMIL DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;-0BE8;TAMIL DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;-0BE9;TAMIL DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;-0BEA;TAMIL DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;-0BEB;TAMIL DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;-0BEC;TAMIL DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;-0BED;TAMIL DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;-0BEE;TAMIL DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;-0BEF;TAMIL DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;-0BF0;TAMIL NUMBER TEN;No;0;L;;;;10;N;;;;;-0BF1;TAMIL NUMBER ONE HUNDRED;No;0;L;;;;100;N;;;;;-0BF2;TAMIL NUMBER ONE THOUSAND;No;0;L;;;;1000;N;;;;;-0BF3;TAMIL DAY SIGN;So;0;ON;;;;;N;;Naal;;;-0BF4;TAMIL MONTH SIGN;So;0;ON;;;;;N;;Maatham;;;-0BF5;TAMIL YEAR SIGN;So;0;ON;;;;;N;;Varudam;;;-0BF6;TAMIL DEBIT SIGN;So;0;ON;;;;;N;;Patru;;;-0BF7;TAMIL CREDIT SIGN;So;0;ON;;;;;N;;Varavu;;;-0BF8;TAMIL AS ABOVE SIGN;So;0;ON;;;;;N;;Merpadi;;;-0BF9;TAMIL RUPEE SIGN;Sc;0;ET;;;;;N;;Rupai;;;-0BFA;TAMIL NUMBER SIGN;So;0;ON;;;;;N;;Enn;;;-0C01;TELUGU SIGN CANDRABINDU;Mc;0;L;;;;;N;;;;;-0C02;TELUGU SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;-0C03;TELUGU SIGN VISARGA;Mc;0;L;;;;;N;;;;;-0C05;TELUGU LETTER A;Lo;0;L;;;;;N;;;;;-0C06;TELUGU LETTER AA;Lo;0;L;;;;;N;;;;;-0C07;TELUGU LETTER I;Lo;0;L;;;;;N;;;;;-0C08;TELUGU LETTER II;Lo;0;L;;;;;N;;;;;-0C09;TELUGU LETTER U;Lo;0;L;;;;;N;;;;;-0C0A;TELUGU LETTER UU;Lo;0;L;;;;;N;;;;;-0C0B;TELUGU LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;-0C0C;TELUGU LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;-0C0E;TELUGU LETTER E;Lo;0;L;;;;;N;;;;;-0C0F;TELUGU LETTER EE;Lo;0;L;;;;;N;;;;;-0C10;TELUGU LETTER AI;Lo;0;L;;;;;N;;;;;-0C12;TELUGU LETTER O;Lo;0;L;;;;;N;;;;;-0C13;TELUGU LETTER OO;Lo;0;L;;;;;N;;;;;-0C14;TELUGU LETTER AU;Lo;0;L;;;;;N;;;;;-0C15;TELUGU LETTER KA;Lo;0;L;;;;;N;;;;;-0C16;TELUGU LETTER KHA;Lo;0;L;;;;;N;;;;;-0C17;TELUGU LETTER GA;Lo;0;L;;;;;N;;;;;-0C18;TELUGU LETTER GHA;Lo;0;L;;;;;N;;;;;-0C19;TELUGU LETTER NGA;Lo;0;L;;;;;N;;;;;-0C1A;TELUGU LETTER CA;Lo;0;L;;;;;N;;;;;-0C1B;TELUGU LETTER CHA;Lo;0;L;;;;;N;;;;;-0C1C;TELUGU LETTER JA;Lo;0;L;;;;;N;;;;;-0C1D;TELUGU LETTER JHA;Lo;0;L;;;;;N;;;;;-0C1E;TELUGU LETTER NYA;Lo;0;L;;;;;N;;;;;-0C1F;TELUGU LETTER TTA;Lo;0;L;;;;;N;;;;;-0C20;TELUGU LETTER TTHA;Lo;0;L;;;;;N;;;;;-0C21;TELUGU LETTER DDA;Lo;0;L;;;;;N;;;;;-0C22;TELUGU LETTER DDHA;Lo;0;L;;;;;N;;;;;-0C23;TELUGU LETTER NNA;Lo;0;L;;;;;N;;;;;-0C24;TELUGU LETTER TA;Lo;0;L;;;;;N;;;;;-0C25;TELUGU LETTER THA;Lo;0;L;;;;;N;;;;;-0C26;TELUGU LETTER DA;Lo;0;L;;;;;N;;;;;-0C27;TELUGU LETTER DHA;Lo;0;L;;;;;N;;;;;-0C28;TELUGU LETTER NA;Lo;0;L;;;;;N;;;;;-0C2A;TELUGU LETTER PA;Lo;0;L;;;;;N;;;;;-0C2B;TELUGU LETTER PHA;Lo;0;L;;;;;N;;;;;-0C2C;TELUGU LETTER BA;Lo;0;L;;;;;N;;;;;-0C2D;TELUGU LETTER BHA;Lo;0;L;;;;;N;;;;;-0C2E;TELUGU LETTER MA;Lo;0;L;;;;;N;;;;;-0C2F;TELUGU LETTER YA;Lo;0;L;;;;;N;;;;;-0C30;TELUGU LETTER RA;Lo;0;L;;;;;N;;;;;-0C31;TELUGU LETTER RRA;Lo;0;L;;;;;N;;;;;-0C32;TELUGU LETTER LA;Lo;0;L;;;;;N;;;;;-0C33;TELUGU LETTER LLA;Lo;0;L;;;;;N;;;;;-0C35;TELUGU LETTER VA;Lo;0;L;;;;;N;;;;;-0C36;TELUGU LETTER SHA;Lo;0;L;;;;;N;;;;;-0C37;TELUGU LETTER SSA;Lo;0;L;;;;;N;;;;;-0C38;TELUGU LETTER SA;Lo;0;L;;;;;N;;;;;-0C39;TELUGU LETTER HA;Lo;0;L;;;;;N;;;;;-0C3E;TELUGU VOWEL SIGN AA;Mn;0;NSM;;;;;N;;;;;-0C3F;TELUGU VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;-0C40;TELUGU VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;-0C41;TELUGU VOWEL SIGN U;Mc;0;L;;;;;N;;;;;-0C42;TELUGU VOWEL SIGN UU;Mc;0;L;;;;;N;;;;;-0C43;TELUGU VOWEL SIGN VOCALIC R;Mc;0;L;;;;;N;;;;;-0C44;TELUGU VOWEL SIGN VOCALIC RR;Mc;0;L;;;;;N;;;;;-0C46;TELUGU VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;-0C47;TELUGU VOWEL SIGN EE;Mn;0;NSM;;;;;N;;;;;-0C48;TELUGU VOWEL SIGN AI;Mn;0;NSM;0C46 0C56;;;;N;;;;;-0C4A;TELUGU VOWEL SIGN O;Mn;0;NSM;;;;;N;;;;;-0C4B;TELUGU VOWEL SIGN OO;Mn;0;NSM;;;;;N;;;;;-0C4C;TELUGU VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;;-0C4D;TELUGU SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;-0C55;TELUGU LENGTH MARK;Mn;84;NSM;;;;;N;;;;;-0C56;TELUGU AI LENGTH MARK;Mn;91;NSM;;;;;N;;;;;-0C60;TELUGU LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;-0C61;TELUGU LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;-0C66;TELUGU DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;-0C67;TELUGU DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;-0C68;TELUGU DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;-0C69;TELUGU DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;-0C6A;TELUGU DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;-0C6B;TELUGU DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;-0C6C;TELUGU DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;-0C6D;TELUGU DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;-0C6E;TELUGU DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;-0C6F;TELUGU DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;-0C82;KANNADA SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;-0C83;KANNADA SIGN VISARGA;Mc;0;L;;;;;N;;;;;-0C85;KANNADA LETTER A;Lo;0;L;;;;;N;;;;;-0C86;KANNADA LETTER AA;Lo;0;L;;;;;N;;;;;-0C87;KANNADA LETTER I;Lo;0;L;;;;;N;;;;;-0C88;KANNADA LETTER II;Lo;0;L;;;;;N;;;;;-0C89;KANNADA LETTER U;Lo;0;L;;;;;N;;;;;-0C8A;KANNADA LETTER UU;Lo;0;L;;;;;N;;;;;-0C8B;KANNADA LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;-0C8C;KANNADA LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;-0C8E;KANNADA LETTER E;Lo;0;L;;;;;N;;;;;-0C8F;KANNADA LETTER EE;Lo;0;L;;;;;N;;;;;-0C90;KANNADA LETTER AI;Lo;0;L;;;;;N;;;;;-0C92;KANNADA LETTER O;Lo;0;L;;;;;N;;;;;-0C93;KANNADA LETTER OO;Lo;0;L;;;;;N;;;;;-0C94;KANNADA LETTER AU;Lo;0;L;;;;;N;;;;;-0C95;KANNADA LETTER KA;Lo;0;L;;;;;N;;;;;-0C96;KANNADA LETTER KHA;Lo;0;L;;;;;N;;;;;-0C97;KANNADA LETTER GA;Lo;0;L;;;;;N;;;;;-0C98;KANNADA LETTER GHA;Lo;0;L;;;;;N;;;;;-0C99;KANNADA LETTER NGA;Lo;0;L;;;;;N;;;;;-0C9A;KANNADA LETTER CA;Lo;0;L;;;;;N;;;;;-0C9B;KANNADA LETTER CHA;Lo;0;L;;;;;N;;;;;-0C9C;KANNADA LETTER JA;Lo;0;L;;;;;N;;;;;-0C9D;KANNADA LETTER JHA;Lo;0;L;;;;;N;;;;;-0C9E;KANNADA LETTER NYA;Lo;0;L;;;;;N;;;;;-0C9F;KANNADA LETTER TTA;Lo;0;L;;;;;N;;;;;-0CA0;KANNADA LETTER TTHA;Lo;0;L;;;;;N;;;;;-0CA1;KANNADA LETTER DDA;Lo;0;L;;;;;N;;;;;-0CA2;KANNADA LETTER DDHA;Lo;0;L;;;;;N;;;;;-0CA3;KANNADA LETTER NNA;Lo;0;L;;;;;N;;;;;-0CA4;KANNADA LETTER TA;Lo;0;L;;;;;N;;;;;-0CA5;KANNADA LETTER THA;Lo;0;L;;;;;N;;;;;-0CA6;KANNADA LETTER DA;Lo;0;L;;;;;N;;;;;-0CA7;KANNADA LETTER DHA;Lo;0;L;;;;;N;;;;;-0CA8;KANNADA LETTER NA;Lo;0;L;;;;;N;;;;;-0CAA;KANNADA LETTER PA;Lo;0;L;;;;;N;;;;;-0CAB;KANNADA LETTER PHA;Lo;0;L;;;;;N;;;;;-0CAC;KANNADA LETTER BA;Lo;0;L;;;;;N;;;;;-0CAD;KANNADA LETTER BHA;Lo;0;L;;;;;N;;;;;-0CAE;KANNADA LETTER MA;Lo;0;L;;;;;N;;;;;-0CAF;KANNADA LETTER YA;Lo;0;L;;;;;N;;;;;-0CB0;KANNADA LETTER RA;Lo;0;L;;;;;N;;;;;-0CB1;KANNADA LETTER RRA;Lo;0;L;;;;;N;;;;;-0CB2;KANNADA LETTER LA;Lo;0;L;;;;;N;;;;;-0CB3;KANNADA LETTER LLA;Lo;0;L;;;;;N;;;;;-0CB5;KANNADA LETTER VA;Lo;0;L;;;;;N;;;;;-0CB6;KANNADA LETTER SHA;Lo;0;L;;;;;N;;;;;-0CB7;KANNADA LETTER SSA;Lo;0;L;;;;;N;;;;;-0CB8;KANNADA LETTER SA;Lo;0;L;;;;;N;;;;;-0CB9;KANNADA LETTER HA;Lo;0;L;;;;;N;;;;;-0CBC;KANNADA SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;-0CBD;KANNADA SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;-0CBE;KANNADA VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;-0CBF;KANNADA VOWEL SIGN I;Mn;0;L;;;;;N;;;;;-0CC0;KANNADA VOWEL SIGN II;Mc;0;L;0CBF 0CD5;;;;N;;;;;-0CC1;KANNADA VOWEL SIGN U;Mc;0;L;;;;;N;;;;;-0CC2;KANNADA VOWEL SIGN UU;Mc;0;L;;;;;N;;;;;-0CC3;KANNADA VOWEL SIGN VOCALIC R;Mc;0;L;;;;;N;;;;;-0CC4;KANNADA VOWEL SIGN VOCALIC RR;Mc;0;L;;;;;N;;;;;-0CC6;KANNADA VOWEL SIGN E;Mn;0;L;;;;;N;;;;;-0CC7;KANNADA VOWEL SIGN EE;Mc;0;L;0CC6 0CD5;;;;N;;;;;-0CC8;KANNADA VOWEL SIGN AI;Mc;0;L;0CC6 0CD6;;;;N;;;;;-0CCA;KANNADA VOWEL SIGN O;Mc;0;L;0CC6 0CC2;;;;N;;;;;-0CCB;KANNADA VOWEL SIGN OO;Mc;0;L;0CCA 0CD5;;;;N;;;;;-0CCC;KANNADA VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;;-0CCD;KANNADA SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;-0CD5;KANNADA LENGTH MARK;Mc;0;L;;;;;N;;;;;-0CD6;KANNADA AI LENGTH MARK;Mc;0;L;;;;;N;;;;;-0CDE;KANNADA LETTER FA;Lo;0;L;;;;;N;;;;;-0CE0;KANNADA LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;-0CE1;KANNADA LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;-0CE2;KANNADA VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;-0CE3;KANNADA VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;-0CE6;KANNADA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;-0CE7;KANNADA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;-0CE8;KANNADA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;-0CE9;KANNADA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;-0CEA;KANNADA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;-0CEB;KANNADA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;-0CEC;KANNADA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;-0CED;KANNADA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;-0CEE;KANNADA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;-0CEF;KANNADA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;-0CF1;KANNADA SIGN JIHVAMULIYA;So;0;ON;;;;;N;;;;;-0CF2;KANNADA SIGN UPADHMANIYA;So;0;ON;;;;;N;;;;;-0D02;MALAYALAM SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;-0D03;MALAYALAM SIGN VISARGA;Mc;0;L;;;;;N;;;;;-0D05;MALAYALAM LETTER A;Lo;0;L;;;;;N;;;;;-0D06;MALAYALAM LETTER AA;Lo;0;L;;;;;N;;;;;-0D07;MALAYALAM LETTER I;Lo;0;L;;;;;N;;;;;-0D08;MALAYALAM LETTER II;Lo;0;L;;;;;N;;;;;-0D09;MALAYALAM LETTER U;Lo;0;L;;;;;N;;;;;-0D0A;MALAYALAM LETTER UU;Lo;0;L;;;;;N;;;;;-0D0B;MALAYALAM LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;-0D0C;MALAYALAM LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;-0D0E;MALAYALAM LETTER E;Lo;0;L;;;;;N;;;;;-0D0F;MALAYALAM LETTER EE;Lo;0;L;;;;;N;;;;;-0D10;MALAYALAM LETTER AI;Lo;0;L;;;;;N;;;;;-0D12;MALAYALAM LETTER O;Lo;0;L;;;;;N;;;;;-0D13;MALAYALAM LETTER OO;Lo;0;L;;;;;N;;;;;-0D14;MALAYALAM LETTER AU;Lo;0;L;;;;;N;;;;;-0D15;MALAYALAM LETTER KA;Lo;0;L;;;;;N;;;;;-0D16;MALAYALAM LETTER KHA;Lo;0;L;;;;;N;;;;;-0D17;MALAYALAM LETTER GA;Lo;0;L;;;;;N;;;;;-0D18;MALAYALAM LETTER GHA;Lo;0;L;;;;;N;;;;;-0D19;MALAYALAM LETTER NGA;Lo;0;L;;;;;N;;;;;-0D1A;MALAYALAM LETTER CA;Lo;0;L;;;;;N;;;;;-0D1B;MALAYALAM LETTER CHA;Lo;0;L;;;;;N;;;;;-0D1C;MALAYALAM LETTER JA;Lo;0;L;;;;;N;;;;;-0D1D;MALAYALAM LETTER JHA;Lo;0;L;;;;;N;;;;;-0D1E;MALAYALAM LETTER NYA;Lo;0;L;;;;;N;;;;;-0D1F;MALAYALAM LETTER TTA;Lo;0;L;;;;;N;;;;;-0D20;MALAYALAM LETTER TTHA;Lo;0;L;;;;;N;;;;;-0D21;MALAYALAM LETTER DDA;Lo;0;L;;;;;N;;;;;-0D22;MALAYALAM LETTER DDHA;Lo;0;L;;;;;N;;;;;-0D23;MALAYALAM LETTER NNA;Lo;0;L;;;;;N;;;;;-0D24;MALAYALAM LETTER TA;Lo;0;L;;;;;N;;;;;-0D25;MALAYALAM LETTER THA;Lo;0;L;;;;;N;;;;;-0D26;MALAYALAM LETTER DA;Lo;0;L;;;;;N;;;;;-0D27;MALAYALAM LETTER DHA;Lo;0;L;;;;;N;;;;;-0D28;MALAYALAM LETTER NA;Lo;0;L;;;;;N;;;;;-0D2A;MALAYALAM LETTER PA;Lo;0;L;;;;;N;;;;;-0D2B;MALAYALAM LETTER PHA;Lo;0;L;;;;;N;;;;;-0D2C;MALAYALAM LETTER BA;Lo;0;L;;;;;N;;;;;-0D2D;MALAYALAM LETTER BHA;Lo;0;L;;;;;N;;;;;-0D2E;MALAYALAM LETTER MA;Lo;0;L;;;;;N;;;;;-0D2F;MALAYALAM LETTER YA;Lo;0;L;;;;;N;;;;;-0D30;MALAYALAM LETTER RA;Lo;0;L;;;;;N;;;;;-0D31;MALAYALAM LETTER RRA;Lo;0;L;;;;;N;;;;;-0D32;MALAYALAM LETTER LA;Lo;0;L;;;;;N;;;;;-0D33;MALAYALAM LETTER LLA;Lo;0;L;;;;;N;;;;;-0D34;MALAYALAM LETTER LLLA;Lo;0;L;;;;;N;;;;;-0D35;MALAYALAM LETTER VA;Lo;0;L;;;;;N;;;;;-0D36;MALAYALAM LETTER SHA;Lo;0;L;;;;;N;;;;;-0D37;MALAYALAM LETTER SSA;Lo;0;L;;;;;N;;;;;-0D38;MALAYALAM LETTER SA;Lo;0;L;;;;;N;;;;;-0D39;MALAYALAM LETTER HA;Lo;0;L;;;;;N;;;;;-0D3E;MALAYALAM VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;-0D3F;MALAYALAM VOWEL SIGN I;Mc;0;L;;;;;N;;;;;-0D40;MALAYALAM VOWEL SIGN II;Mc;0;L;;;;;N;;;;;-0D41;MALAYALAM VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;-0D42;MALAYALAM VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;-0D43;MALAYALAM VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;-0D46;MALAYALAM VOWEL SIGN E;Mc;0;L;;;;;N;;;;;-0D47;MALAYALAM VOWEL SIGN EE;Mc;0;L;;;;;N;;;;;-0D48;MALAYALAM VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;-0D4A;MALAYALAM VOWEL SIGN O;Mc;0;L;0D46 0D3E;;;;N;;;;;-0D4B;MALAYALAM VOWEL SIGN OO;Mc;0;L;0D47 0D3E;;;;N;;;;;-0D4C;MALAYALAM VOWEL SIGN AU;Mc;0;L;0D46 0D57;;;;N;;;;;-0D4D;MALAYALAM SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;-0D57;MALAYALAM AU LENGTH MARK;Mc;0;L;;;;;N;;;;;-0D60;MALAYALAM LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;-0D61;MALAYALAM LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;-0D66;MALAYALAM DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;-0D67;MALAYALAM DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;-0D68;MALAYALAM DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;-0D69;MALAYALAM DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;-0D6A;MALAYALAM DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;-0D6B;MALAYALAM DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;-0D6C;MALAYALAM DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;-0D6D;MALAYALAM DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;-0D6E;MALAYALAM DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;-0D6F;MALAYALAM DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;-0D82;SINHALA SIGN ANUSVARAYA;Mc;0;L;;;;;N;;;;;-0D83;SINHALA SIGN VISARGAYA;Mc;0;L;;;;;N;;;;;-0D85;SINHALA LETTER AYANNA;Lo;0;L;;;;;N;;;;;-0D86;SINHALA LETTER AAYANNA;Lo;0;L;;;;;N;;;;;-0D87;SINHALA LETTER AEYANNA;Lo;0;L;;;;;N;;;;;-0D88;SINHALA LETTER AEEYANNA;Lo;0;L;;;;;N;;;;;-0D89;SINHALA LETTER IYANNA;Lo;0;L;;;;;N;;;;;-0D8A;SINHALA LETTER IIYANNA;Lo;0;L;;;;;N;;;;;-0D8B;SINHALA LETTER UYANNA;Lo;0;L;;;;;N;;;;;-0D8C;SINHALA LETTER UUYANNA;Lo;0;L;;;;;N;;;;;-0D8D;SINHALA LETTER IRUYANNA;Lo;0;L;;;;;N;;;;;-0D8E;SINHALA LETTER IRUUYANNA;Lo;0;L;;;;;N;;;;;-0D8F;SINHALA LETTER ILUYANNA;Lo;0;L;;;;;N;;;;;-0D90;SINHALA LETTER ILUUYANNA;Lo;0;L;;;;;N;;;;;-0D91;SINHALA LETTER EYANNA;Lo;0;L;;;;;N;;;;;-0D92;SINHALA LETTER EEYANNA;Lo;0;L;;;;;N;;;;;-0D93;SINHALA LETTER AIYANNA;Lo;0;L;;;;;N;;;;;-0D94;SINHALA LETTER OYANNA;Lo;0;L;;;;;N;;;;;-0D95;SINHALA LETTER OOYANNA;Lo;0;L;;;;;N;;;;;-0D96;SINHALA LETTER AUYANNA;Lo;0;L;;;;;N;;;;;-0D9A;SINHALA LETTER ALPAPRAANA KAYANNA;Lo;0;L;;;;;N;;;;;-0D9B;SINHALA LETTER MAHAAPRAANA KAYANNA;Lo;0;L;;;;;N;;;;;-0D9C;SINHALA LETTER ALPAPRAANA GAYANNA;Lo;0;L;;;;;N;;;;;-0D9D;SINHALA LETTER MAHAAPRAANA GAYANNA;Lo;0;L;;;;;N;;;;;-0D9E;SINHALA LETTER KANTAJA NAASIKYAYA;Lo;0;L;;;;;N;;;;;-0D9F;SINHALA LETTER SANYAKA GAYANNA;Lo;0;L;;;;;N;;;;;-0DA0;SINHALA LETTER ALPAPRAANA CAYANNA;Lo;0;L;;;;;N;;;;;-0DA1;SINHALA LETTER MAHAAPRAANA CAYANNA;Lo;0;L;;;;;N;;;;;-0DA2;SINHALA LETTER ALPAPRAANA JAYANNA;Lo;0;L;;;;;N;;;;;-0DA3;SINHALA LETTER MAHAAPRAANA JAYANNA;Lo;0;L;;;;;N;;;;;-0DA4;SINHALA LETTER TAALUJA NAASIKYAYA;Lo;0;L;;;;;N;;;;;-0DA5;SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA;Lo;0;L;;;;;N;;;;;-0DA6;SINHALA LETTER SANYAKA JAYANNA;Lo;0;L;;;;;N;;;;;-0DA7;SINHALA LETTER ALPAPRAANA TTAYANNA;Lo;0;L;;;;;N;;;;;-0DA8;SINHALA LETTER MAHAAPRAANA TTAYANNA;Lo;0;L;;;;;N;;;;;-0DA9;SINHALA LETTER ALPAPRAANA DDAYANNA;Lo;0;L;;;;;N;;;;;-0DAA;SINHALA LETTER MAHAAPRAANA DDAYANNA;Lo;0;L;;;;;N;;;;;-0DAB;SINHALA LETTER MUURDHAJA NAYANNA;Lo;0;L;;;;;N;;;;;-0DAC;SINHALA LETTER SANYAKA DDAYANNA;Lo;0;L;;;;;N;;;;;-0DAD;SINHALA LETTER ALPAPRAANA TAYANNA;Lo;0;L;;;;;N;;;;;-0DAE;SINHALA LETTER MAHAAPRAANA TAYANNA;Lo;0;L;;;;;N;;;;;-0DAF;SINHALA LETTER ALPAPRAANA DAYANNA;Lo;0;L;;;;;N;;;;;-0DB0;SINHALA LETTER MAHAAPRAANA DAYANNA;Lo;0;L;;;;;N;;;;;-0DB1;SINHALA LETTER DANTAJA NAYANNA;Lo;0;L;;;;;N;;;;;-0DB3;SINHALA LETTER SANYAKA DAYANNA;Lo;0;L;;;;;N;;;;;-0DB4;SINHALA LETTER ALPAPRAANA PAYANNA;Lo;0;L;;;;;N;;;;;-0DB5;SINHALA LETTER MAHAAPRAANA PAYANNA;Lo;0;L;;;;;N;;;;;-0DB6;SINHALA LETTER ALPAPRAANA BAYANNA;Lo;0;L;;;;;N;;;;;-0DB7;SINHALA LETTER MAHAAPRAANA BAYANNA;Lo;0;L;;;;;N;;;;;-0DB8;SINHALA LETTER MAYANNA;Lo;0;L;;;;;N;;;;;-0DB9;SINHALA LETTER AMBA BAYANNA;Lo;0;L;;;;;N;;;;;-0DBA;SINHALA LETTER YAYANNA;Lo;0;L;;;;;N;;;;;-0DBB;SINHALA LETTER RAYANNA;Lo;0;L;;;;;N;;;;;-0DBD;SINHALA LETTER DANTAJA LAYANNA;Lo;0;L;;;;;N;;;;;-0DC0;SINHALA LETTER VAYANNA;Lo;0;L;;;;;N;;;;;-0DC1;SINHALA LETTER TAALUJA SAYANNA;Lo;0;L;;;;;N;;;;;-0DC2;SINHALA LETTER MUURDHAJA SAYANNA;Lo;0;L;;;;;N;;;;;-0DC3;SINHALA LETTER DANTAJA SAYANNA;Lo;0;L;;;;;N;;;;;-0DC4;SINHALA LETTER HAYANNA;Lo;0;L;;;;;N;;;;;-0DC5;SINHALA LETTER MUURDHAJA LAYANNA;Lo;0;L;;;;;N;;;;;-0DC6;SINHALA LETTER FAYANNA;Lo;0;L;;;;;N;;;;;-0DCA;SINHALA SIGN AL-LAKUNA;Mn;9;NSM;;;;;N;;;;;-0DCF;SINHALA VOWEL SIGN AELA-PILLA;Mc;0;L;;;;;N;;;;;-0DD0;SINHALA VOWEL SIGN KETTI AEDA-PILLA;Mc;0;L;;;;;N;;;;;-0DD1;SINHALA VOWEL SIGN DIGA AEDA-PILLA;Mc;0;L;;;;;N;;;;;-0DD2;SINHALA VOWEL SIGN KETTI IS-PILLA;Mn;0;NSM;;;;;N;;;;;-0DD3;SINHALA VOWEL SIGN DIGA IS-PILLA;Mn;0;NSM;;;;;N;;;;;-0DD4;SINHALA VOWEL SIGN KETTI PAA-PILLA;Mn;0;NSM;;;;;N;;;;;-0DD6;SINHALA VOWEL SIGN DIGA PAA-PILLA;Mn;0;NSM;;;;;N;;;;;-0DD8;SINHALA VOWEL SIGN GAETTA-PILLA;Mc;0;L;;;;;N;;;;;-0DD9;SINHALA VOWEL SIGN KOMBUVA;Mc;0;L;;;;;N;;;;;-0DDA;SINHALA VOWEL SIGN DIGA KOMBUVA;Mc;0;L;0DD9 0DCA;;;;N;;;;;-0DDB;SINHALA VOWEL SIGN KOMBU DEKA;Mc;0;L;;;;;N;;;;;-0DDC;SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA;Mc;0;L;0DD9 0DCF;;;;N;;;;;-0DDD;SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA;Mc;0;L;0DDC 0DCA;;;;N;;;;;-0DDE;SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA;Mc;0;L;0DD9 0DDF;;;;N;;;;;-0DDF;SINHALA VOWEL SIGN GAYANUKITTA;Mc;0;L;;;;;N;;;;;-0DF2;SINHALA VOWEL SIGN DIGA GAETTA-PILLA;Mc;0;L;;;;;N;;;;;-0DF3;SINHALA VOWEL SIGN DIGA GAYANUKITTA;Mc;0;L;;;;;N;;;;;-0DF4;SINHALA PUNCTUATION KUNDDALIYA;Po;0;L;;;;;N;;;;;-0E01;THAI CHARACTER KO KAI;Lo;0;L;;;;;N;THAI LETTER KO KAI;;;;-0E02;THAI CHARACTER KHO KHAI;Lo;0;L;;;;;N;THAI LETTER KHO KHAI;;;;-0E03;THAI CHARACTER KHO KHUAT;Lo;0;L;;;;;N;THAI LETTER KHO KHUAT;;;;-0E04;THAI CHARACTER KHO KHWAI;Lo;0;L;;;;;N;THAI LETTER KHO KHWAI;;;;-0E05;THAI CHARACTER KHO KHON;Lo;0;L;;;;;N;THAI LETTER KHO KHON;;;;-0E06;THAI CHARACTER KHO RAKHANG;Lo;0;L;;;;;N;THAI LETTER KHO RAKHANG;;;;-0E07;THAI CHARACTER NGO NGU;Lo;0;L;;;;;N;THAI LETTER NGO NGU;;;;-0E08;THAI CHARACTER CHO CHAN;Lo;0;L;;;;;N;THAI LETTER CHO CHAN;;;;-0E09;THAI CHARACTER CHO CHING;Lo;0;L;;;;;N;THAI LETTER CHO CHING;;;;-0E0A;THAI CHARACTER CHO CHANG;Lo;0;L;;;;;N;THAI LETTER CHO CHANG;;;;-0E0B;THAI CHARACTER SO SO;Lo;0;L;;;;;N;THAI LETTER SO SO;;;;-0E0C;THAI CHARACTER CHO CHOE;Lo;0;L;;;;;N;THAI LETTER CHO CHOE;;;;-0E0D;THAI CHARACTER YO YING;Lo;0;L;;;;;N;THAI LETTER YO YING;;;;-0E0E;THAI CHARACTER DO CHADA;Lo;0;L;;;;;N;THAI LETTER DO CHADA;;;;-0E0F;THAI CHARACTER TO PATAK;Lo;0;L;;;;;N;THAI LETTER TO PATAK;;;;-0E10;THAI CHARACTER THO THAN;Lo;0;L;;;;;N;THAI LETTER THO THAN;;;;-0E11;THAI CHARACTER THO NANGMONTHO;Lo;0;L;;;;;N;THAI LETTER THO NANGMONTHO;;;;-0E12;THAI CHARACTER THO PHUTHAO;Lo;0;L;;;;;N;THAI LETTER THO PHUTHAO;;;;-0E13;THAI CHARACTER NO NEN;Lo;0;L;;;;;N;THAI LETTER NO NEN;;;;-0E14;THAI CHARACTER DO DEK;Lo;0;L;;;;;N;THAI LETTER DO DEK;;;;-0E15;THAI CHARACTER TO TAO;Lo;0;L;;;;;N;THAI LETTER TO TAO;;;;-0E16;THAI CHARACTER THO THUNG;Lo;0;L;;;;;N;THAI LETTER THO THUNG;;;;-0E17;THAI CHARACTER THO THAHAN;Lo;0;L;;;;;N;THAI LETTER THO THAHAN;;;;-0E18;THAI CHARACTER THO THONG;Lo;0;L;;;;;N;THAI LETTER THO THONG;;;;-0E19;THAI CHARACTER NO NU;Lo;0;L;;;;;N;THAI LETTER NO NU;;;;-0E1A;THAI CHARACTER BO BAIMAI;Lo;0;L;;;;;N;THAI LETTER BO BAIMAI;;;;-0E1B;THAI CHARACTER PO PLA;Lo;0;L;;;;;N;THAI LETTER PO PLA;;;;-0E1C;THAI CHARACTER PHO PHUNG;Lo;0;L;;;;;N;THAI LETTER PHO PHUNG;;;;-0E1D;THAI CHARACTER FO FA;Lo;0;L;;;;;N;THAI LETTER FO FA;;;;-0E1E;THAI CHARACTER PHO PHAN;Lo;0;L;;;;;N;THAI LETTER PHO PHAN;;;;-0E1F;THAI CHARACTER FO FAN;Lo;0;L;;;;;N;THAI LETTER FO FAN;;;;-0E20;THAI CHARACTER PHO SAMPHAO;Lo;0;L;;;;;N;THAI LETTER PHO SAMPHAO;;;;-0E21;THAI CHARACTER MO MA;Lo;0;L;;;;;N;THAI LETTER MO MA;;;;-0E22;THAI CHARACTER YO YAK;Lo;0;L;;;;;N;THAI LETTER YO YAK;;;;-0E23;THAI CHARACTER RO RUA;Lo;0;L;;;;;N;THAI LETTER RO RUA;;;;-0E24;THAI CHARACTER RU;Lo;0;L;;;;;N;THAI LETTER RU;;;;-0E25;THAI CHARACTER LO LING;Lo;0;L;;;;;N;THAI LETTER LO LING;;;;-0E26;THAI CHARACTER LU;Lo;0;L;;;;;N;THAI LETTER LU;;;;-0E27;THAI CHARACTER WO WAEN;Lo;0;L;;;;;N;THAI LETTER WO WAEN;;;;-0E28;THAI CHARACTER SO SALA;Lo;0;L;;;;;N;THAI LETTER SO SALA;;;;-0E29;THAI CHARACTER SO RUSI;Lo;0;L;;;;;N;THAI LETTER SO RUSI;;;;-0E2A;THAI CHARACTER SO SUA;Lo;0;L;;;;;N;THAI LETTER SO SUA;;;;-0E2B;THAI CHARACTER HO HIP;Lo;0;L;;;;;N;THAI LETTER HO HIP;;;;-0E2C;THAI CHARACTER LO CHULA;Lo;0;L;;;;;N;THAI LETTER LO CHULA;;;;-0E2D;THAI CHARACTER O ANG;Lo;0;L;;;;;N;THAI LETTER O ANG;;;;-0E2E;THAI CHARACTER HO NOKHUK;Lo;0;L;;;;;N;THAI LETTER HO NOK HUK;;;;-0E2F;THAI CHARACTER PAIYANNOI;Lo;0;L;;;;;N;THAI PAI YAN NOI;paiyan noi;;;-0E30;THAI CHARACTER SARA A;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA A;;;;-0E31;THAI CHARACTER MAI HAN-AKAT;Mn;0;NSM;;;;;N;THAI VOWEL SIGN MAI HAN-AKAT;;;;-0E32;THAI CHARACTER SARA AA;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA AA;;;;-0E33;THAI CHARACTER SARA AM;Lo;0;L;<compat> 0E4D 0E32;;;;N;THAI VOWEL SIGN SARA AM;;;;-0E34;THAI CHARACTER SARA I;Mn;0;NSM;;;;;N;THAI VOWEL SIGN SARA I;;;;-0E35;THAI CHARACTER SARA II;Mn;0;NSM;;;;;N;THAI VOWEL SIGN SARA II;;;;-0E36;THAI CHARACTER SARA UE;Mn;0;NSM;;;;;N;THAI VOWEL SIGN SARA UE;;;;-0E37;THAI CHARACTER SARA UEE;Mn;0;NSM;;;;;N;THAI VOWEL SIGN SARA UEE;sara uue;;;-0E38;THAI CHARACTER SARA U;Mn;103;NSM;;;;;N;THAI VOWEL SIGN SARA U;;;;-0E39;THAI CHARACTER SARA UU;Mn;103;NSM;;;;;N;THAI VOWEL SIGN SARA UU;;;;-0E3A;THAI CHARACTER PHINTHU;Mn;9;NSM;;;;;N;THAI VOWEL SIGN PHINTHU;;;;-0E3F;THAI CURRENCY SYMBOL BAHT;Sc;0;ET;;;;;N;THAI BAHT SIGN;;;;-0E40;THAI CHARACTER SARA E;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA E;;;;-0E41;THAI CHARACTER SARA AE;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA AE;;;;-0E42;THAI CHARACTER SARA O;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA O;;;;-0E43;THAI CHARACTER SARA AI MAIMUAN;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA MAI MUAN;sara ai mai muan;;;-0E44;THAI CHARACTER SARA AI MAIMALAI;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA MAI MALAI;sara ai mai malai;;;-0E45;THAI CHARACTER LAKKHANGYAO;Lo;0;L;;;;;N;THAI LAK KHANG YAO;lakkhang yao;;;-0E46;THAI CHARACTER MAIYAMOK;Lm;0;L;;;;;N;THAI MAI YAMOK;mai yamok;;;-0E47;THAI CHARACTER MAITAIKHU;Mn;0;NSM;;;;;N;THAI VOWEL SIGN MAI TAI KHU;mai taikhu;;;-0E48;THAI CHARACTER MAI EK;Mn;107;NSM;;;;;N;THAI TONE MAI EK;;;;-0E49;THAI CHARACTER MAI THO;Mn;107;NSM;;;;;N;THAI TONE MAI THO;;;;-0E4A;THAI CHARACTER MAI TRI;Mn;107;NSM;;;;;N;THAI TONE MAI TRI;;;;-0E4B;THAI CHARACTER MAI CHATTAWA;Mn;107;NSM;;;;;N;THAI TONE MAI CHATTAWA;;;;-0E4C;THAI CHARACTER THANTHAKHAT;Mn;0;NSM;;;;;N;THAI THANTHAKHAT;;;;-0E4D;THAI CHARACTER NIKHAHIT;Mn;0;NSM;;;;;N;THAI NIKKHAHIT;nikkhahit;;;-0E4E;THAI CHARACTER YAMAKKAN;Mn;0;NSM;;;;;N;THAI YAMAKKAN;;;;-0E4F;THAI CHARACTER FONGMAN;Po;0;L;;;;;N;THAI FONGMAN;;;;-0E50;THAI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;-0E51;THAI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;-0E52;THAI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;-0E53;THAI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;-0E54;THAI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;-0E55;THAI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;-0E56;THAI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;-0E57;THAI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;-0E58;THAI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;-0E59;THAI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;-0E5A;THAI CHARACTER ANGKHANKHU;Po;0;L;;;;;N;THAI ANGKHANKHU;;;;-0E5B;THAI CHARACTER KHOMUT;Po;0;L;;;;;N;THAI KHOMUT;;;;-0E81;LAO LETTER KO;Lo;0;L;;;;;N;;;;;-0E82;LAO LETTER KHO SUNG;Lo;0;L;;;;;N;;;;;-0E84;LAO LETTER KHO TAM;Lo;0;L;;;;;N;;;;;-0E87;LAO LETTER NGO;Lo;0;L;;;;;N;;;;;-0E88;LAO LETTER CO;Lo;0;L;;;;;N;;;;;-0E8A;LAO LETTER SO TAM;Lo;0;L;;;;;N;;;;;-0E8D;LAO LETTER NYO;Lo;0;L;;;;;N;;;;;-0E94;LAO LETTER DO;Lo;0;L;;;;;N;;;;;-0E95;LAO LETTER TO;Lo;0;L;;;;;N;;;;;-0E96;LAO LETTER THO SUNG;Lo;0;L;;;;;N;;;;;-0E97;LAO LETTER THO TAM;Lo;0;L;;;;;N;;;;;-0E99;LAO LETTER NO;Lo;0;L;;;;;N;;;;;-0E9A;LAO LETTER BO;Lo;0;L;;;;;N;;;;;-0E9B;LAO LETTER PO;Lo;0;L;;;;;N;;;;;-0E9C;LAO LETTER PHO SUNG;Lo;0;L;;;;;N;;;;;-0E9D;LAO LETTER FO TAM;Lo;0;L;;;;;N;;;;;-0E9E;LAO LETTER PHO TAM;Lo;0;L;;;;;N;;;;;-0E9F;LAO LETTER FO SUNG;Lo;0;L;;;;;N;;;;;-0EA1;LAO LETTER MO;Lo;0;L;;;;;N;;;;;-0EA2;LAO LETTER YO;Lo;0;L;;;;;N;;;;;-0EA3;LAO LETTER LO LING;Lo;0;L;;;;;N;;;;;-0EA5;LAO LETTER LO LOOT;Lo;0;L;;;;;N;;;;;-0EA7;LAO LETTER WO;Lo;0;L;;;;;N;;;;;-0EAA;LAO LETTER SO SUNG;Lo;0;L;;;;;N;;;;;-0EAB;LAO LETTER HO SUNG;Lo;0;L;;;;;N;;;;;-0EAD;LAO LETTER O;Lo;0;L;;;;;N;;;;;-0EAE;LAO LETTER HO TAM;Lo;0;L;;;;;N;;;;;-0EAF;LAO ELLIPSIS;Lo;0;L;;;;;N;;;;;-0EB0;LAO VOWEL SIGN A;Lo;0;L;;;;;N;;;;;-0EB1;LAO VOWEL SIGN MAI KAN;Mn;0;NSM;;;;;N;;;;;-0EB2;LAO VOWEL SIGN AA;Lo;0;L;;;;;N;;;;;-0EB3;LAO VOWEL SIGN AM;Lo;0;L;<compat> 0ECD 0EB2;;;;N;;;;;-0EB4;LAO VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;-0EB5;LAO VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;-0EB6;LAO VOWEL SIGN Y;Mn;0;NSM;;;;;N;;;;;-0EB7;LAO VOWEL SIGN YY;Mn;0;NSM;;;;;N;;;;;-0EB8;LAO VOWEL SIGN U;Mn;118;NSM;;;;;N;;;;;-0EB9;LAO VOWEL SIGN UU;Mn;118;NSM;;;;;N;;;;;-0EBB;LAO VOWEL SIGN MAI KON;Mn;0;NSM;;;;;N;;;;;-0EBC;LAO SEMIVOWEL SIGN LO;Mn;0;NSM;;;;;N;;;;;-0EBD;LAO SEMIVOWEL SIGN NYO;Lo;0;L;;;;;N;;;;;-0EC0;LAO VOWEL SIGN E;Lo;0;L;;;;;N;;;;;-0EC1;LAO VOWEL SIGN EI;Lo;0;L;;;;;N;;;;;-0EC2;LAO VOWEL SIGN O;Lo;0;L;;;;;N;;;;;-0EC3;LAO VOWEL SIGN AY;Lo;0;L;;;;;N;;;;;-0EC4;LAO VOWEL SIGN AI;Lo;0;L;;;;;N;;;;;-0EC6;LAO KO LA;Lm;0;L;;;;;N;;;;;-0EC8;LAO TONE MAI EK;Mn;122;NSM;;;;;N;;;;;-0EC9;LAO TONE MAI THO;Mn;122;NSM;;;;;N;;;;;-0ECA;LAO TONE MAI TI;Mn;122;NSM;;;;;N;;;;;-0ECB;LAO TONE MAI CATAWA;Mn;122;NSM;;;;;N;;;;;-0ECC;LAO CANCELLATION MARK;Mn;0;NSM;;;;;N;;;;;-0ECD;LAO NIGGAHITA;Mn;0;NSM;;;;;N;;;;;-0ED0;LAO DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;-0ED1;LAO DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;-0ED2;LAO DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;-0ED3;LAO DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;-0ED4;LAO DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;-0ED5;LAO DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;-0ED6;LAO DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;-0ED7;LAO DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;-0ED8;LAO DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;-0ED9;LAO DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;-0EDC;LAO HO NO;Lo;0;L;<compat> 0EAB 0E99;;;;N;;;;;-0EDD;LAO HO MO;Lo;0;L;<compat> 0EAB 0EA1;;;;N;;;;;-0F00;TIBETAN SYLLABLE OM;Lo;0;L;;;;;N;;;;;-0F01;TIBETAN MARK GTER YIG MGO TRUNCATED A;So;0;L;;;;;N;;ter yik go a thung;;;-0F02;TIBETAN MARK GTER YIG MGO -UM RNAM BCAD MA;So;0;L;;;;;N;;ter yik go wum nam chey ma;;;-0F03;TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA;So;0;L;;;;;N;;ter yik go wum ter tsek ma;;;-0F04;TIBETAN MARK INITIAL YIG MGO MDUN MA;Po;0;L;;;;;N;TIBETAN SINGLE ORNAMENT;yik go dun ma;;;-0F05;TIBETAN MARK CLOSING YIG MGO SGAB MA;Po;0;L;;;;;N;;yik go kab ma;;;-0F06;TIBETAN MARK CARET YIG MGO PHUR SHAD MA;Po;0;L;;;;;N;;yik go pur shey ma;;;-0F07;TIBETAN MARK YIG MGO TSHEG SHAD MA;Po;0;L;;;;;N;;yik go tsek shey ma;;;-0F08;TIBETAN MARK SBRUL SHAD;Po;0;L;;;;;N;TIBETAN RGYANSHAD;drul shey;;;-0F09;TIBETAN MARK BSKUR YIG MGO;Po;0;L;;;;;N;;kur yik go;;;-0F0A;TIBETAN MARK BKA- SHOG YIG MGO;Po;0;L;;;;;N;;ka sho yik go;;;-0F0B;TIBETAN MARK INTERSYLLABIC TSHEG;Po;0;L;;;;;N;TIBETAN TSEG;tsek;;;-0F0C;TIBETAN MARK DELIMITER TSHEG BSTAR;Po;0;L;<noBreak> 0F0B;;;;N;;tsek tar;;;-0F0D;TIBETAN MARK SHAD;Po;0;L;;;;;N;TIBETAN SHAD;shey;;;-0F0E;TIBETAN MARK NYIS SHAD;Po;0;L;;;;;N;TIBETAN DOUBLE SHAD;nyi shey;;;-0F0F;TIBETAN MARK TSHEG SHAD;Po;0;L;;;;;N;;tsek shey;;;-0F10;TIBETAN MARK NYIS TSHEG SHAD;Po;0;L;;;;;N;;nyi tsek shey;;;-0F11;TIBETAN MARK RIN CHEN SPUNGS SHAD;Po;0;L;;;;;N;TIBETAN RINCHANPHUNGSHAD;rinchen pung shey;;;-0F12;TIBETAN MARK RGYA GRAM SHAD;Po;0;L;;;;;N;;gya tram shey;;;-0F13;TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN;So;0;L;;;;;N;;dzu ta me long chen;;;-0F14;TIBETAN MARK GTER TSHEG;So;0;L;;;;;N;TIBETAN COMMA;ter tsek;;;-0F15;TIBETAN LOGOTYPE SIGN CHAD RTAGS;So;0;L;;;;;N;;che ta;;;-0F16;TIBETAN LOGOTYPE SIGN LHAG RTAGS;So;0;L;;;;;N;;hlak ta;;;-0F17;TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS;So;0;L;;;;;N;;trachen char ta;;;-0F18;TIBETAN ASTROLOGICAL SIGN -KHYUD PA;Mn;220;NSM;;;;;N;;kyu pa;;;-0F19;TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS;Mn;220;NSM;;;;;N;;dong tsu;;;-0F1A;TIBETAN SIGN RDEL DKAR GCIG;So;0;L;;;;;N;;deka chig;;;-0F1B;TIBETAN SIGN RDEL DKAR GNYIS;So;0;L;;;;;N;;deka nyi;;;-0F1C;TIBETAN SIGN RDEL DKAR GSUM;So;0;L;;;;;N;;deka sum;;;-0F1D;TIBETAN SIGN RDEL NAG GCIG;So;0;L;;;;;N;;dena chig;;;-0F1E;TIBETAN SIGN RDEL NAG GNYIS;So;0;L;;;;;N;;dena nyi;;;-0F1F;TIBETAN SIGN RDEL DKAR RDEL NAG;So;0;L;;;;;N;;deka dena;;;-0F20;TIBETAN DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;-0F21;TIBETAN DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;-0F22;TIBETAN DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;-0F23;TIBETAN DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;-0F24;TIBETAN DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;-0F25;TIBETAN DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;-0F26;TIBETAN DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;-0F27;TIBETAN DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;-0F28;TIBETAN DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;-0F29;TIBETAN DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;-0F2A;TIBETAN DIGIT HALF ONE;No;0;L;;;;1/2;N;;;;;-0F2B;TIBETAN DIGIT HALF TWO;No;0;L;;;;3/2;N;;;;;-0F2C;TIBETAN DIGIT HALF THREE;No;0;L;;;;5/2;N;;;;;-0F2D;TIBETAN DIGIT HALF FOUR;No;0;L;;;;7/2;N;;;;;-0F2E;TIBETAN DIGIT HALF FIVE;No;0;L;;;;9/2;N;;;;;-0F2F;TIBETAN DIGIT HALF SIX;No;0;L;;;;11/2;N;;;;;-0F30;TIBETAN DIGIT HALF SEVEN;No;0;L;;;;13/2;N;;;;;-0F31;TIBETAN DIGIT HALF EIGHT;No;0;L;;;;15/2;N;;;;;-0F32;TIBETAN DIGIT HALF NINE;No;0;L;;;;17/2;N;;;;;-0F33;TIBETAN DIGIT HALF ZERO;No;0;L;;;;-1/2;N;;;;;-0F34;TIBETAN MARK BSDUS RTAGS;So;0;L;;;;;N;;du ta;;;-0F35;TIBETAN MARK NGAS BZUNG NYI ZLA;Mn;220;NSM;;;;;N;TIBETAN HONORIFIC UNDER RING;nge zung nyi da;;;-0F36;TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN;So;0;L;;;;;N;;dzu ta shi mig chen;;;-0F37;TIBETAN MARK NGAS BZUNG SGOR RTAGS;Mn;220;NSM;;;;;N;TIBETAN UNDER RING;nge zung gor ta;;;-0F38;TIBETAN MARK CHE MGO;So;0;L;;;;;N;;che go;;;-0F39;TIBETAN MARK TSA -PHRU;Mn;216;NSM;;;;;N;TIBETAN LENITION MARK;tsa tru;;;-0F3A;TIBETAN MARK GUG RTAGS GYON;Ps;0;ON;;;;;Y;;gug ta yun;;;-0F3B;TIBETAN MARK GUG RTAGS GYAS;Pe;0;ON;;;;;Y;;gug ta ye;;;-0F3C;TIBETAN MARK ANG KHANG GYON;Ps;0;ON;;;;;Y;TIBETAN LEFT BRACE;ang kang yun;;;-0F3D;TIBETAN MARK ANG KHANG GYAS;Pe;0;ON;;;;;Y;TIBETAN RIGHT BRACE;ang kang ye;;;-0F3E;TIBETAN SIGN YAR TSHES;Mc;0;L;;;;;N;;yar tse;;;-0F3F;TIBETAN SIGN MAR TSHES;Mc;0;L;;;;;N;;mar tse;;;-0F40;TIBETAN LETTER KA;Lo;0;L;;;;;N;;;;;-0F41;TIBETAN LETTER KHA;Lo;0;L;;;;;N;;;;;-0F42;TIBETAN LETTER GA;Lo;0;L;;;;;N;;;;;-0F43;TIBETAN LETTER GHA;Lo;0;L;0F42 0FB7;;;;N;;;;;-0F44;TIBETAN LETTER NGA;Lo;0;L;;;;;N;;;;;-0F45;TIBETAN LETTER CA;Lo;0;L;;;;;N;;;;;-0F46;TIBETAN LETTER CHA;Lo;0;L;;;;;N;;;;;-0F47;TIBETAN LETTER JA;Lo;0;L;;;;;N;;;;;-0F49;TIBETAN LETTER NYA;Lo;0;L;;;;;N;;;;;-0F4A;TIBETAN LETTER TTA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED TA;;;;-0F4B;TIBETAN LETTER TTHA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED THA;;;;-0F4C;TIBETAN LETTER DDA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED DA;;;;-0F4D;TIBETAN LETTER DDHA;Lo;0;L;0F4C 0FB7;;;;N;;;;;-0F4E;TIBETAN LETTER NNA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED NA;;;;-0F4F;TIBETAN LETTER TA;Lo;0;L;;;;;N;;;;;-0F50;TIBETAN LETTER THA;Lo;0;L;;;;;N;;;;;-0F51;TIBETAN LETTER DA;Lo;0;L;;;;;N;;;;;-0F52;TIBETAN LETTER DHA;Lo;0;L;0F51 0FB7;;;;N;;;;;-0F53;TIBETAN LETTER NA;Lo;0;L;;;;;N;;;;;-0F54;TIBETAN LETTER PA;Lo;0;L;;;;;N;;;;;-0F55;TIBETAN LETTER PHA;Lo;0;L;;;;;N;;;;;-0F56;TIBETAN LETTER BA;Lo;0;L;;;;;N;;;;;-0F57;TIBETAN LETTER BHA;Lo;0;L;0F56 0FB7;;;;N;;;;;-0F58;TIBETAN LETTER MA;Lo;0;L;;;;;N;;;;;-0F59;TIBETAN LETTER TSA;Lo;0;L;;;;;N;;;;;-0F5A;TIBETAN LETTER TSHA;Lo;0;L;;;;;N;;;;;-0F5B;TIBETAN LETTER DZA;Lo;0;L;;;;;N;;;;;-0F5C;TIBETAN LETTER DZHA;Lo;0;L;0F5B 0FB7;;;;N;;;;;-0F5D;TIBETAN LETTER WA;Lo;0;L;;;;;N;;;;;-0F5E;TIBETAN LETTER ZHA;Lo;0;L;;;;;N;;;;;-0F5F;TIBETAN LETTER ZA;Lo;0;L;;;;;N;;;;;-0F60;TIBETAN LETTER -A;Lo;0;L;;;;;N;TIBETAN LETTER AA;;;;-0F61;TIBETAN LETTER YA;Lo;0;L;;;;;N;;;;;-0F62;TIBETAN LETTER RA;Lo;0;L;;;;;N;;*;;;-0F63;TIBETAN LETTER LA;Lo;0;L;;;;;N;;;;;-0F64;TIBETAN LETTER SHA;Lo;0;L;;;;;N;;;;;-0F65;TIBETAN LETTER SSA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED SHA;;;;-0F66;TIBETAN LETTER SA;Lo;0;L;;;;;N;;;;;-0F67;TIBETAN LETTER HA;Lo;0;L;;;;;N;;;;;-0F68;TIBETAN LETTER A;Lo;0;L;;;;;N;;;;;-0F69;TIBETAN LETTER KSSA;Lo;0;L;0F40 0FB5;;;;N;;;;;-0F6A;TIBETAN LETTER FIXED-FORM RA;Lo;0;L;;;;;N;;*;;;-0F71;TIBETAN VOWEL SIGN AA;Mn;129;NSM;;;;;N;;;;;-0F72;TIBETAN VOWEL SIGN I;Mn;130;NSM;;;;;N;;;;;-0F73;TIBETAN VOWEL SIGN II;Mn;0;NSM;0F71 0F72;;;;N;;;;;-0F74;TIBETAN VOWEL SIGN U;Mn;132;NSM;;;;;N;;;;;-0F75;TIBETAN VOWEL SIGN UU;Mn;0;NSM;0F71 0F74;;;;N;;;;;-0F76;TIBETAN VOWEL SIGN VOCALIC R;Mn;0;NSM;0FB2 0F80;;;;N;;;;;-0F77;TIBETAN VOWEL SIGN VOCALIC RR;Mn;0;NSM;<compat> 0FB2 0F81;;;;N;;;;;-0F78;TIBETAN VOWEL SIGN VOCALIC L;Mn;0;NSM;0FB3 0F80;;;;N;;;;;-0F79;TIBETAN VOWEL SIGN VOCALIC LL;Mn;0;NSM;<compat> 0FB3 0F81;;;;N;;;;;-0F7A;TIBETAN VOWEL SIGN E;Mn;130;NSM;;;;;N;;;;;-0F7B;TIBETAN VOWEL SIGN EE;Mn;130;NSM;;;;;N;TIBETAN VOWEL SIGN AI;;;;-0F7C;TIBETAN VOWEL SIGN O;Mn;130;NSM;;;;;N;;;;;-0F7D;TIBETAN VOWEL SIGN OO;Mn;130;NSM;;;;;N;TIBETAN VOWEL SIGN AU;;;;-0F7E;TIBETAN SIGN RJES SU NGA RO;Mn;0;NSM;;;;;N;TIBETAN ANUSVARA;je su nga ro;;;-0F7F;TIBETAN SIGN RNAM BCAD;Mc;0;L;;;;;N;TIBETAN VISARGA;nam chey;;;-0F80;TIBETAN VOWEL SIGN REVERSED I;Mn;130;NSM;;;;;N;TIBETAN VOWEL SIGN SHORT I;;;;-0F81;TIBETAN VOWEL SIGN REVERSED II;Mn;0;NSM;0F71 0F80;;;;N;;;;;-0F82;TIBETAN SIGN NYI ZLA NAA DA;Mn;230;NSM;;;;;N;TIBETAN CANDRABINDU WITH ORNAMENT;nyi da na da;;;-0F83;TIBETAN SIGN SNA LDAN;Mn;230;NSM;;;;;N;TIBETAN CANDRABINDU;nan de;;;-0F84;TIBETAN MARK HALANTA;Mn;9;NSM;;;;;N;TIBETAN VIRAMA;;;;-0F85;TIBETAN MARK PALUTA;Po;0;L;;;;;N;TIBETAN CHUCHENYIGE;;;;-0F86;TIBETAN SIGN LCI RTAGS;Mn;230;NSM;;;;;N;;ji ta;;;-0F87;TIBETAN SIGN YANG RTAGS;Mn;230;NSM;;;;;N;;yang ta;;;-0F88;TIBETAN SIGN LCE TSA CAN;Lo;0;L;;;;;N;;che tsa chen;;;-0F89;TIBETAN SIGN MCHU CAN;Lo;0;L;;;;;N;;chu chen;;;-0F8A;TIBETAN SIGN GRU CAN RGYINGS;Lo;0;L;;;;;N;;tru chen ging;;;-0F8B;TIBETAN SIGN GRU MED RGYINGS;Lo;0;L;;;;;N;;tru me ging;;;-0F90;TIBETAN SUBJOINED LETTER KA;Mn;0;NSM;;;;;N;;;;;-0F91;TIBETAN SUBJOINED LETTER KHA;Mn;0;NSM;;;;;N;;;;;-0F92;TIBETAN SUBJOINED LETTER GA;Mn;0;NSM;;;;;N;;;;;-0F93;TIBETAN SUBJOINED LETTER GHA;Mn;0;NSM;0F92 0FB7;;;;N;;;;;-0F94;TIBETAN SUBJOINED LETTER NGA;Mn;0;NSM;;;;;N;;;;;-0F95;TIBETAN SUBJOINED LETTER CA;Mn;0;NSM;;;;;N;;;;;-0F96;TIBETAN SUBJOINED LETTER CHA;Mn;0;NSM;;;;;N;;;;;-0F97;TIBETAN SUBJOINED LETTER JA;Mn;0;NSM;;;;;N;;;;;-0F99;TIBETAN SUBJOINED LETTER NYA;Mn;0;NSM;;;;;N;;;;;-0F9A;TIBETAN SUBJOINED LETTER TTA;Mn;0;NSM;;;;;N;;;;;-0F9B;TIBETAN SUBJOINED LETTER TTHA;Mn;0;NSM;;;;;N;;;;;-0F9C;TIBETAN SUBJOINED LETTER DDA;Mn;0;NSM;;;;;N;;;;;-0F9D;TIBETAN SUBJOINED LETTER DDHA;Mn;0;NSM;0F9C 0FB7;;;;N;;;;;-0F9E;TIBETAN SUBJOINED LETTER NNA;Mn;0;NSM;;;;;N;;;;;-0F9F;TIBETAN SUBJOINED LETTER TA;Mn;0;NSM;;;;;N;;;;;-0FA0;TIBETAN SUBJOINED LETTER THA;Mn;0;NSM;;;;;N;;;;;-0FA1;TIBETAN SUBJOINED LETTER DA;Mn;0;NSM;;;;;N;;;;;-0FA2;TIBETAN SUBJOINED LETTER DHA;Mn;0;NSM;0FA1 0FB7;;;;N;;;;;-0FA3;TIBETAN SUBJOINED LETTER NA;Mn;0;NSM;;;;;N;;;;;-0FA4;TIBETAN SUBJOINED LETTER PA;Mn;0;NSM;;;;;N;;;;;-0FA5;TIBETAN SUBJOINED LETTER PHA;Mn;0;NSM;;;;;N;;;;;-0FA6;TIBETAN SUBJOINED LETTER BA;Mn;0;NSM;;;;;N;;;;;-0FA7;TIBETAN SUBJOINED LETTER BHA;Mn;0;NSM;0FA6 0FB7;;;;N;;;;;-0FA8;TIBETAN SUBJOINED LETTER MA;Mn;0;NSM;;;;;N;;;;;-0FA9;TIBETAN SUBJOINED LETTER TSA;Mn;0;NSM;;;;;N;;;;;-0FAA;TIBETAN SUBJOINED LETTER TSHA;Mn;0;NSM;;;;;N;;;;;-0FAB;TIBETAN SUBJOINED LETTER DZA;Mn;0;NSM;;;;;N;;;;;-0FAC;TIBETAN SUBJOINED LETTER DZHA;Mn;0;NSM;0FAB 0FB7;;;;N;;;;;-0FAD;TIBETAN SUBJOINED LETTER WA;Mn;0;NSM;;;;;N;;*;;;-0FAE;TIBETAN SUBJOINED LETTER ZHA;Mn;0;NSM;;;;;N;;;;;-0FAF;TIBETAN SUBJOINED LETTER ZA;Mn;0;NSM;;;;;N;;;;;-0FB0;TIBETAN SUBJOINED LETTER -A;Mn;0;NSM;;;;;N;;;;;-0FB1;TIBETAN SUBJOINED LETTER YA;Mn;0;NSM;;;;;N;;*;;;-0FB2;TIBETAN SUBJOINED LETTER RA;Mn;0;NSM;;;;;N;;*;;;-0FB3;TIBETAN SUBJOINED LETTER LA;Mn;0;NSM;;;;;N;;;;;-0FB4;TIBETAN SUBJOINED LETTER SHA;Mn;0;NSM;;;;;N;;;;;-0FB5;TIBETAN SUBJOINED LETTER SSA;Mn;0;NSM;;;;;N;;;;;-0FB6;TIBETAN SUBJOINED LETTER SA;Mn;0;NSM;;;;;N;;;;;-0FB7;TIBETAN SUBJOINED LETTER HA;Mn;0;NSM;;;;;N;;;;;-0FB8;TIBETAN SUBJOINED LETTER A;Mn;0;NSM;;;;;N;;;;;-0FB9;TIBETAN SUBJOINED LETTER KSSA;Mn;0;NSM;0F90 0FB5;;;;N;;;;;-0FBA;TIBETAN SUBJOINED LETTER FIXED-FORM WA;Mn;0;NSM;;;;;N;;*;;;-0FBB;TIBETAN SUBJOINED LETTER FIXED-FORM YA;Mn;0;NSM;;;;;N;;*;;;-0FBC;TIBETAN SUBJOINED LETTER FIXED-FORM RA;Mn;0;NSM;;;;;N;;*;;;-0FBE;TIBETAN KU RU KHA;So;0;L;;;;;N;;kuruka;;;-0FBF;TIBETAN KU RU KHA BZHI MIG CAN;So;0;L;;;;;N;;kuruka shi mik chen;;;-0FC0;TIBETAN CANTILLATION SIGN HEAVY BEAT;So;0;L;;;;;N;;;;;-0FC1;TIBETAN CANTILLATION SIGN LIGHT BEAT;So;0;L;;;;;N;;;;;-0FC2;TIBETAN CANTILLATION SIGN CANG TE-U;So;0;L;;;;;N;;chang tyu;;;-0FC3;TIBETAN CANTILLATION SIGN SBUB -CHAL;So;0;L;;;;;N;;bub chey;;;-0FC4;TIBETAN SYMBOL DRIL BU;So;0;L;;;;;N;;drilbu;;;-0FC5;TIBETAN SYMBOL RDO RJE;So;0;L;;;;;N;;dorje;;;-0FC6;TIBETAN SYMBOL PADMA GDAN;Mn;220;NSM;;;;;N;;pema den;;;-0FC7;TIBETAN SYMBOL RDO RJE RGYA GRAM;So;0;L;;;;;N;;dorje gya dram;;;-0FC8;TIBETAN SYMBOL PHUR PA;So;0;L;;;;;N;;phurba;;;-0FC9;TIBETAN SYMBOL NOR BU;So;0;L;;;;;N;;norbu;;;-0FCA;TIBETAN SYMBOL NOR BU NYIS -KHYIL;So;0;L;;;;;N;;norbu nyi khyi;;;-0FCB;TIBETAN SYMBOL NOR BU GSUM -KHYIL;So;0;L;;;;;N;;norbu sum khyi;;;-0FCC;TIBETAN SYMBOL NOR BU BZHI -KHYIL;So;0;L;;;;;N;;norbu shi khyi;;;-0FCF;TIBETAN SIGN RDEL NAG GSUM;So;0;L;;;;;N;;dena sum;;;-0FD0;TIBETAN MARK BSKA- SHOG GI MGO RGYAN;Po;0;L;;;;;N;;ka shog gi go gyen;;;-0FD1;TIBETAN MARK MNYAM YIG GI MGO RGYAN;Po;0;L;;;;;N;;nyam yig gi go gyen;;;-1000;MYANMAR LETTER KA;Lo;0;L;;;;;N;;;;;-1001;MYANMAR LETTER KHA;Lo;0;L;;;;;N;;;;;-1002;MYANMAR LETTER GA;Lo;0;L;;;;;N;;;;;-1003;MYANMAR LETTER GHA;Lo;0;L;;;;;N;;;;;-1004;MYANMAR LETTER NGA;Lo;0;L;;;;;N;;;;;-1005;MYANMAR LETTER CA;Lo;0;L;;;;;N;;;;;-1006;MYANMAR LETTER CHA;Lo;0;L;;;;;N;;;;;-1007;MYANMAR LETTER JA;Lo;0;L;;;;;N;;;;;-1008;MYANMAR LETTER JHA;Lo;0;L;;;;;N;;;;;-1009;MYANMAR LETTER NYA;Lo;0;L;;;;;N;;;;;-100A;MYANMAR LETTER NNYA;Lo;0;L;;;;;N;;;;;-100B;MYANMAR LETTER TTA;Lo;0;L;;;;;N;;;;;-100C;MYANMAR LETTER TTHA;Lo;0;L;;;;;N;;;;;-100D;MYANMAR LETTER DDA;Lo;0;L;;;;;N;;;;;-100E;MYANMAR LETTER DDHA;Lo;0;L;;;;;N;;;;;-100F;MYANMAR LETTER NNA;Lo;0;L;;;;;N;;;;;-1010;MYANMAR LETTER TA;Lo;0;L;;;;;N;;;;;-1011;MYANMAR LETTER THA;Lo;0;L;;;;;N;;;;;-1012;MYANMAR LETTER DA;Lo;0;L;;;;;N;;;;;-1013;MYANMAR LETTER DHA;Lo;0;L;;;;;N;;;;;-1014;MYANMAR LETTER NA;Lo;0;L;;;;;N;;;;;-1015;MYANMAR LETTER PA;Lo;0;L;;;;;N;;;;;-1016;MYANMAR LETTER PHA;Lo;0;L;;;;;N;;;;;-1017;MYANMAR LETTER BA;Lo;0;L;;;;;N;;;;;-1018;MYANMAR LETTER BHA;Lo;0;L;;;;;N;;;;;-1019;MYANMAR LETTER MA;Lo;0;L;;;;;N;;;;;-101A;MYANMAR LETTER YA;Lo;0;L;;;;;N;;;;;-101B;MYANMAR LETTER RA;Lo;0;L;;;;;N;;;;;-101C;MYANMAR LETTER LA;Lo;0;L;;;;;N;;;;;-101D;MYANMAR LETTER WA;Lo;0;L;;;;;N;;;;;-101E;MYANMAR LETTER SA;Lo;0;L;;;;;N;;;;;-101F;MYANMAR LETTER HA;Lo;0;L;;;;;N;;;;;-1020;MYANMAR LETTER LLA;Lo;0;L;;;;;N;;;;;-1021;MYANMAR LETTER A;Lo;0;L;;;;;N;;;;;-1023;MYANMAR LETTER I;Lo;0;L;;;;;N;;;;;-1024;MYANMAR LETTER II;Lo;0;L;;;;;N;;;;;-1025;MYANMAR LETTER U;Lo;0;L;;;;;N;;;;;-1026;MYANMAR LETTER UU;Lo;0;L;1025 102E;;;;N;;;;;-1027;MYANMAR LETTER E;Lo;0;L;;;;;N;;;;;-1029;MYANMAR LETTER O;Lo;0;L;;;;;N;;;;;-102A;MYANMAR LETTER AU;Lo;0;L;;;;;N;;;;;-102C;MYANMAR VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;-102D;MYANMAR VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;-102E;MYANMAR VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;-102F;MYANMAR VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;-1030;MYANMAR VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;-1031;MYANMAR VOWEL SIGN E;Mc;0;L;;;;;N;;;;;-1032;MYANMAR VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;-1036;MYANMAR SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;-1037;MYANMAR SIGN DOT BELOW;Mn;7;NSM;;;;;N;;;;;-1038;MYANMAR SIGN VISARGA;Mc;0;L;;;;;N;;;;;-1039;MYANMAR SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;-1040;MYANMAR DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;-1041;MYANMAR DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;-1042;MYANMAR DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;-1043;MYANMAR DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;-1044;MYANMAR DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;-1045;MYANMAR DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;-1046;MYANMAR DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;-1047;MYANMAR DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;-1048;MYANMAR DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;-1049;MYANMAR DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;-104A;MYANMAR SIGN LITTLE SECTION;Po;0;L;;;;;N;;;;;-104B;MYANMAR SIGN SECTION;Po;0;L;;;;;N;;;;;-104C;MYANMAR SYMBOL LOCATIVE;Po;0;L;;;;;N;;;;;-104D;MYANMAR SYMBOL COMPLETED;Po;0;L;;;;;N;;;;;-104E;MYANMAR SYMBOL AFOREMENTIONED;Po;0;L;;;;;N;;;;;-104F;MYANMAR SYMBOL GENITIVE;Po;0;L;;;;;N;;;;;-1050;MYANMAR LETTER SHA;Lo;0;L;;;;;N;;;;;-1051;MYANMAR LETTER SSA;Lo;0;L;;;;;N;;;;;-1052;MYANMAR LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;-1053;MYANMAR LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;-1054;MYANMAR LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;-1055;MYANMAR LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;-1056;MYANMAR VOWEL SIGN VOCALIC R;Mc;0;L;;;;;N;;;;;-1057;MYANMAR VOWEL SIGN VOCALIC RR;Mc;0;L;;;;;N;;;;;-1058;MYANMAR VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;-1059;MYANMAR VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;-10A0;GEORGIAN CAPITAL LETTER AN;Lu;0;L;;;;;N;;Khutsuri;;2D00;-10A1;GEORGIAN CAPITAL LETTER BAN;Lu;0;L;;;;;N;;Khutsuri;;2D01;-10A2;GEORGIAN CAPITAL LETTER GAN;Lu;0;L;;;;;N;;Khutsuri;;2D02;-10A3;GEORGIAN CAPITAL LETTER DON;Lu;0;L;;;;;N;;Khutsuri;;2D03;-10A4;GEORGIAN CAPITAL LETTER EN;Lu;0;L;;;;;N;;Khutsuri;;2D04;-10A5;GEORGIAN CAPITAL LETTER VIN;Lu;0;L;;;;;N;;Khutsuri;;2D05;-10A6;GEORGIAN CAPITAL LETTER ZEN;Lu;0;L;;;;;N;;Khutsuri;;2D06;-10A7;GEORGIAN CAPITAL LETTER TAN;Lu;0;L;;;;;N;;Khutsuri;;2D07;-10A8;GEORGIAN CAPITAL LETTER IN;Lu;0;L;;;;;N;;Khutsuri;;2D08;-10A9;GEORGIAN CAPITAL LETTER KAN;Lu;0;L;;;;;N;;Khutsuri;;2D09;-10AA;GEORGIAN CAPITAL LETTER LAS;Lu;0;L;;;;;N;;Khutsuri;;2D0A;-10AB;GEORGIAN CAPITAL LETTER MAN;Lu;0;L;;;;;N;;Khutsuri;;2D0B;-10AC;GEORGIAN CAPITAL LETTER NAR;Lu;0;L;;;;;N;;Khutsuri;;2D0C;-10AD;GEORGIAN CAPITAL LETTER ON;Lu;0;L;;;;;N;;Khutsuri;;2D0D;-10AE;GEORGIAN CAPITAL LETTER PAR;Lu;0;L;;;;;N;;Khutsuri;;2D0E;-10AF;GEORGIAN CAPITAL LETTER ZHAR;Lu;0;L;;;;;N;;Khutsuri;;2D0F;-10B0;GEORGIAN CAPITAL LETTER RAE;Lu;0;L;;;;;N;;Khutsuri;;2D10;-10B1;GEORGIAN CAPITAL LETTER SAN;Lu;0;L;;;;;N;;Khutsuri;;2D11;-10B2;GEORGIAN CAPITAL LETTER TAR;Lu;0;L;;;;;N;;Khutsuri;;2D12;-10B3;GEORGIAN CAPITAL LETTER UN;Lu;0;L;;;;;N;;Khutsuri;;2D13;-10B4;GEORGIAN CAPITAL LETTER PHAR;Lu;0;L;;;;;N;;Khutsuri;;2D14;-10B5;GEORGIAN CAPITAL LETTER KHAR;Lu;0;L;;;;;N;;Khutsuri;;2D15;-10B6;GEORGIAN CAPITAL LETTER GHAN;Lu;0;L;;;;;N;;Khutsuri;;2D16;-10B7;GEORGIAN CAPITAL LETTER QAR;Lu;0;L;;;;;N;;Khutsuri;;2D17;-10B8;GEORGIAN CAPITAL LETTER SHIN;Lu;0;L;;;;;N;;Khutsuri;;2D18;-10B9;GEORGIAN CAPITAL LETTER CHIN;Lu;0;L;;;;;N;;Khutsuri;;2D19;-10BA;GEORGIAN CAPITAL LETTER CAN;Lu;0;L;;;;;N;;Khutsuri;;2D1A;-10BB;GEORGIAN CAPITAL LETTER JIL;Lu;0;L;;;;;N;;Khutsuri;;2D1B;-10BC;GEORGIAN CAPITAL LETTER CIL;Lu;0;L;;;;;N;;Khutsuri;;2D1C;-10BD;GEORGIAN CAPITAL LETTER CHAR;Lu;0;L;;;;;N;;Khutsuri;;2D1D;-10BE;GEORGIAN CAPITAL LETTER XAN;Lu;0;L;;;;;N;;Khutsuri;;2D1E;-10BF;GEORGIAN CAPITAL LETTER JHAN;Lu;0;L;;;;;N;;Khutsuri;;2D1F;-10C0;GEORGIAN CAPITAL LETTER HAE;Lu;0;L;;;;;N;;Khutsuri;;2D20;-10C1;GEORGIAN CAPITAL LETTER HE;Lu;0;L;;;;;N;;Khutsuri;;2D21;-10C2;GEORGIAN CAPITAL LETTER HIE;Lu;0;L;;;;;N;;Khutsuri;;2D22;-10C3;GEORGIAN CAPITAL LETTER WE;Lu;0;L;;;;;N;;Khutsuri;;2D23;-10C4;GEORGIAN CAPITAL LETTER HAR;Lu;0;L;;;;;N;;Khutsuri;;2D24;-10C5;GEORGIAN CAPITAL LETTER HOE;Lu;0;L;;;;;N;;Khutsuri;;2D25;-10D0;GEORGIAN LETTER AN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER AN;;;;-10D1;GEORGIAN LETTER BAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER BAN;;;;-10D2;GEORGIAN LETTER GAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER GAN;;;;-10D3;GEORGIAN LETTER DON;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER DON;;;;-10D4;GEORGIAN LETTER EN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER EN;;;;-10D5;GEORGIAN LETTER VIN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER VIN;;;;-10D6;GEORGIAN LETTER ZEN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER ZEN;;;;-10D7;GEORGIAN LETTER TAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER TAN;;;;-10D8;GEORGIAN LETTER IN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER IN;;;;-10D9;GEORGIAN LETTER KAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER KAN;;;;-10DA;GEORGIAN LETTER LAS;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER LAS;;;;-10DB;GEORGIAN LETTER MAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER MAN;;;;-10DC;GEORGIAN LETTER NAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER NAR;;;;-10DD;GEORGIAN LETTER ON;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER ON;;;;-10DE;GEORGIAN LETTER PAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER PAR;;;;-10DF;GEORGIAN LETTER ZHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER ZHAR;;;;-10E0;GEORGIAN LETTER RAE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER RAE;;;;-10E1;GEORGIAN LETTER SAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER SAN;;;;-10E2;GEORGIAN LETTER TAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER TAR;;;;-10E3;GEORGIAN LETTER UN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER UN;;;;-10E4;GEORGIAN LETTER PHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER PHAR;;;;-10E5;GEORGIAN LETTER KHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER KHAR;;;;-10E6;GEORGIAN LETTER GHAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER GHAN;;;;-10E7;GEORGIAN LETTER QAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER QAR;;;;-10E8;GEORGIAN LETTER SHIN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER SHIN;;;;-10E9;GEORGIAN LETTER CHIN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CHIN;;;;-10EA;GEORGIAN LETTER CAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CAN;;;;-10EB;GEORGIAN LETTER JIL;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER JIL;;;;-10EC;GEORGIAN LETTER CIL;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CIL;;;;-10ED;GEORGIAN LETTER CHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CHAR;;;;-10EE;GEORGIAN LETTER XAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER XAN;;;;-10EF;GEORGIAN LETTER JHAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER JHAN;;;;-10F0;GEORGIAN LETTER HAE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HAE;;;;-10F1;GEORGIAN LETTER HE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HE;;;;-10F2;GEORGIAN LETTER HIE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HIE;;;;-10F3;GEORGIAN LETTER WE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER WE;;;;-10F4;GEORGIAN LETTER HAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HAR;;;;-10F5;GEORGIAN LETTER HOE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HOE;;;;-10F6;GEORGIAN LETTER FI;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER FI;;;;-10F7;GEORGIAN LETTER YN;Lo;0;L;;;;;N;;;;;-10F8;GEORGIAN LETTER ELIFI;Lo;0;L;;;;;N;;;;;-10F9;GEORGIAN LETTER TURNED GAN;Lo;0;L;;;;;N;;;;;-10FA;GEORGIAN LETTER AIN;Lo;0;L;;;;;N;;;;;-10FB;GEORGIAN PARAGRAPH SEPARATOR;Po;0;L;;;;;N;;;;;-10FC;MODIFIER LETTER GEORGIAN NAR;Lm;0;L;<super> 10DC;;;;N;;;;;-1100;HANGUL CHOSEONG KIYEOK;Lo;0;L;;;;;N;;g *;;;-1101;HANGUL CHOSEONG SSANGKIYEOK;Lo;0;L;;;;;N;;gg *;;;-1102;HANGUL CHOSEONG NIEUN;Lo;0;L;;;;;N;;n *;;;-1103;HANGUL CHOSEONG TIKEUT;Lo;0;L;;;;;N;;d *;;;-1104;HANGUL CHOSEONG SSANGTIKEUT;Lo;0;L;;;;;N;;dd *;;;-1105;HANGUL CHOSEONG RIEUL;Lo;0;L;;;;;N;;r *;;;-1106;HANGUL CHOSEONG MIEUM;Lo;0;L;;;;;N;;m *;;;-1107;HANGUL CHOSEONG PIEUP;Lo;0;L;;;;;N;;b *;;;-1108;HANGUL CHOSEONG SSANGPIEUP;Lo;0;L;;;;;N;;bb *;;;-1109;HANGUL CHOSEONG SIOS;Lo;0;L;;;;;N;;s *;;;-110A;HANGUL CHOSEONG SSANGSIOS;Lo;0;L;;;;;N;;ss *;;;-110B;HANGUL CHOSEONG IEUNG;Lo;0;L;;;;;N;;;;;-110C;HANGUL CHOSEONG CIEUC;Lo;0;L;;;;;N;;j *;;;-110D;HANGUL CHOSEONG SSANGCIEUC;Lo;0;L;;;;;N;;jj *;;;-110E;HANGUL CHOSEONG CHIEUCH;Lo;0;L;;;;;N;;c *;;;-110F;HANGUL CHOSEONG KHIEUKH;Lo;0;L;;;;;N;;k *;;;-1110;HANGUL CHOSEONG THIEUTH;Lo;0;L;;;;;N;;t *;;;-1111;HANGUL CHOSEONG PHIEUPH;Lo;0;L;;;;;N;;p *;;;-1112;HANGUL CHOSEONG HIEUH;Lo;0;L;;;;;N;;h *;;;-1113;HANGUL CHOSEONG NIEUN-KIYEOK;Lo;0;L;;;;;N;;;;;-1114;HANGUL CHOSEONG SSANGNIEUN;Lo;0;L;;;;;N;;;;;-1115;HANGUL CHOSEONG NIEUN-TIKEUT;Lo;0;L;;;;;N;;;;;-1116;HANGUL CHOSEONG NIEUN-PIEUP;Lo;0;L;;;;;N;;;;;-1117;HANGUL CHOSEONG TIKEUT-KIYEOK;Lo;0;L;;;;;N;;;;;-1118;HANGUL CHOSEONG RIEUL-NIEUN;Lo;0;L;;;;;N;;;;;-1119;HANGUL CHOSEONG SSANGRIEUL;Lo;0;L;;;;;N;;;;;-111A;HANGUL CHOSEONG RIEUL-HIEUH;Lo;0;L;;;;;N;;;;;-111B;HANGUL CHOSEONG KAPYEOUNRIEUL;Lo;0;L;;;;;N;;;;;-111C;HANGUL CHOSEONG MIEUM-PIEUP;Lo;0;L;;;;;N;;;;;-111D;HANGUL CHOSEONG KAPYEOUNMIEUM;Lo;0;L;;;;;N;;;;;-111E;HANGUL CHOSEONG PIEUP-KIYEOK;Lo;0;L;;;;;N;;;;;-111F;HANGUL CHOSEONG PIEUP-NIEUN;Lo;0;L;;;;;N;;;;;-1120;HANGUL CHOSEONG PIEUP-TIKEUT;Lo;0;L;;;;;N;;;;;-1121;HANGUL CHOSEONG PIEUP-SIOS;Lo;0;L;;;;;N;;;;;-1122;HANGUL CHOSEONG PIEUP-SIOS-KIYEOK;Lo;0;L;;;;;N;;;;;-1123;HANGUL CHOSEONG PIEUP-SIOS-TIKEUT;Lo;0;L;;;;;N;;;;;-1124;HANGUL CHOSEONG PIEUP-SIOS-PIEUP;Lo;0;L;;;;;N;;;;;-1125;HANGUL CHOSEONG PIEUP-SSANGSIOS;Lo;0;L;;;;;N;;;;;-1126;HANGUL CHOSEONG PIEUP-SIOS-CIEUC;Lo;0;L;;;;;N;;;;;-1127;HANGUL CHOSEONG PIEUP-CIEUC;Lo;0;L;;;;;N;;;;;-1128;HANGUL CHOSEONG PIEUP-CHIEUCH;Lo;0;L;;;;;N;;;;;-1129;HANGUL CHOSEONG PIEUP-THIEUTH;Lo;0;L;;;;;N;;;;;-112A;HANGUL CHOSEONG PIEUP-PHIEUPH;Lo;0;L;;;;;N;;;;;-112B;HANGUL CHOSEONG KAPYEOUNPIEUP;Lo;0;L;;;;;N;;;;;-112C;HANGUL CHOSEONG KAPYEOUNSSANGPIEUP;Lo;0;L;;;;;N;;;;;-112D;HANGUL CHOSEONG SIOS-KIYEOK;Lo;0;L;;;;;N;;;;;-112E;HANGUL CHOSEONG SIOS-NIEUN;Lo;0;L;;;;;N;;;;;-112F;HANGUL CHOSEONG SIOS-TIKEUT;Lo;0;L;;;;;N;;;;;-1130;HANGUL CHOSEONG SIOS-RIEUL;Lo;0;L;;;;;N;;;;;-1131;HANGUL CHOSEONG SIOS-MIEUM;Lo;0;L;;;;;N;;;;;-1132;HANGUL CHOSEONG SIOS-PIEUP;Lo;0;L;;;;;N;;;;;-1133;HANGUL CHOSEONG SIOS-PIEUP-KIYEOK;Lo;0;L;;;;;N;;;;;-1134;HANGUL CHOSEONG SIOS-SSANGSIOS;Lo;0;L;;;;;N;;;;;-1135;HANGUL CHOSEONG SIOS-IEUNG;Lo;0;L;;;;;N;;;;;-1136;HANGUL CHOSEONG SIOS-CIEUC;Lo;0;L;;;;;N;;;;;-1137;HANGUL CHOSEONG SIOS-CHIEUCH;Lo;0;L;;;;;N;;;;;-1138;HANGUL CHOSEONG SIOS-KHIEUKH;Lo;0;L;;;;;N;;;;;-1139;HANGUL CHOSEONG SIOS-THIEUTH;Lo;0;L;;;;;N;;;;;-113A;HANGUL CHOSEONG SIOS-PHIEUPH;Lo;0;L;;;;;N;;;;;-113B;HANGUL CHOSEONG SIOS-HIEUH;Lo;0;L;;;;;N;;;;;-113C;HANGUL CHOSEONG CHITUEUMSIOS;Lo;0;L;;;;;N;;;;;-113D;HANGUL CHOSEONG CHITUEUMSSANGSIOS;Lo;0;L;;;;;N;;;;;-113E;HANGUL CHOSEONG CEONGCHIEUMSIOS;Lo;0;L;;;;;N;;;;;-113F;HANGUL CHOSEONG CEONGCHIEUMSSANGSIOS;Lo;0;L;;;;;N;;;;;-1140;HANGUL CHOSEONG PANSIOS;Lo;0;L;;;;;N;;;;;-1141;HANGUL CHOSEONG IEUNG-KIYEOK;Lo;0;L;;;;;N;;;;;-1142;HANGUL CHOSEONG IEUNG-TIKEUT;Lo;0;L;;;;;N;;;;;-1143;HANGUL CHOSEONG IEUNG-MIEUM;Lo;0;L;;;;;N;;;;;-1144;HANGUL CHOSEONG IEUNG-PIEUP;Lo;0;L;;;;;N;;;;;-1145;HANGUL CHOSEONG IEUNG-SIOS;Lo;0;L;;;;;N;;;;;-1146;HANGUL CHOSEONG IEUNG-PANSIOS;Lo;0;L;;;;;N;;;;;-1147;HANGUL CHOSEONG SSANGIEUNG;Lo;0;L;;;;;N;;;;;-1148;HANGUL CHOSEONG IEUNG-CIEUC;Lo;0;L;;;;;N;;;;;-1149;HANGUL CHOSEONG IEUNG-CHIEUCH;Lo;0;L;;;;;N;;;;;-114A;HANGUL CHOSEONG IEUNG-THIEUTH;Lo;0;L;;;;;N;;;;;-114B;HANGUL CHOSEONG IEUNG-PHIEUPH;Lo;0;L;;;;;N;;;;;-114C;HANGUL CHOSEONG YESIEUNG;Lo;0;L;;;;;N;;;;;-114D;HANGUL CHOSEONG CIEUC-IEUNG;Lo;0;L;;;;;N;;;;;-114E;HANGUL CHOSEONG CHITUEUMCIEUC;Lo;0;L;;;;;N;;;;;-114F;HANGUL CHOSEONG CHITUEUMSSANGCIEUC;Lo;0;L;;;;;N;;;;;-1150;HANGUL CHOSEONG CEONGCHIEUMCIEUC;Lo;0;L;;;;;N;;;;;-1151;HANGUL CHOSEONG CEONGCHIEUMSSANGCIEUC;Lo;0;L;;;;;N;;;;;-1152;HANGUL CHOSEONG CHIEUCH-KHIEUKH;Lo;0;L;;;;;N;;;;;-1153;HANGUL CHOSEONG CHIEUCH-HIEUH;Lo;0;L;;;;;N;;;;;-1154;HANGUL CHOSEONG CHITUEUMCHIEUCH;Lo;0;L;;;;;N;;;;;-1155;HANGUL CHOSEONG CEONGCHIEUMCHIEUCH;Lo;0;L;;;;;N;;;;;-1156;HANGUL CHOSEONG PHIEUPH-PIEUP;Lo;0;L;;;;;N;;;;;-1157;HANGUL CHOSEONG KAPYEOUNPHIEUPH;Lo;0;L;;;;;N;;;;;-1158;HANGUL CHOSEONG SSANGHIEUH;Lo;0;L;;;;;N;;;;;-1159;HANGUL CHOSEONG YEORINHIEUH;Lo;0;L;;;;;N;;;;;-115F;HANGUL CHOSEONG FILLER;Lo;0;L;;;;;N;;;;;-1160;HANGUL JUNGSEONG FILLER;Lo;0;L;;;;;N;;;;;-1161;HANGUL JUNGSEONG A;Lo;0;L;;;;;N;;;;;-1162;HANGUL JUNGSEONG AE;Lo;0;L;;;;;N;;;;;-1163;HANGUL JUNGSEONG YA;Lo;0;L;;;;;N;;;;;-1164;HANGUL JUNGSEONG YAE;Lo;0;L;;;;;N;;;;;-1165;HANGUL JUNGSEONG EO;Lo;0;L;;;;;N;;;;;-1166;HANGUL JUNGSEONG E;Lo;0;L;;;;;N;;;;;-1167;HANGUL JUNGSEONG YEO;Lo;0;L;;;;;N;;;;;-1168;HANGUL JUNGSEONG YE;Lo;0;L;;;;;N;;;;;-1169;HANGUL JUNGSEONG O;Lo;0;L;;;;;N;;;;;-116A;HANGUL JUNGSEONG WA;Lo;0;L;;;;;N;;;;;-116B;HANGUL JUNGSEONG WAE;Lo;0;L;;;;;N;;;;;-116C;HANGUL JUNGSEONG OE;Lo;0;L;;;;;N;;;;;-116D;HANGUL JUNGSEONG YO;Lo;0;L;;;;;N;;;;;-116E;HANGUL JUNGSEONG U;Lo;0;L;;;;;N;;;;;-116F;HANGUL JUNGSEONG WEO;Lo;0;L;;;;;N;;;;;-1170;HANGUL JUNGSEONG WE;Lo;0;L;;;;;N;;;;;-1171;HANGUL JUNGSEONG WI;Lo;0;L;;;;;N;;;;;-1172;HANGUL JUNGSEONG YU;Lo;0;L;;;;;N;;;;;-1173;HANGUL JUNGSEONG EU;Lo;0;L;;;;;N;;;;;-1174;HANGUL JUNGSEONG YI;Lo;0;L;;;;;N;;;;;-1175;HANGUL JUNGSEONG I;Lo;0;L;;;;;N;;;;;-1176;HANGUL JUNGSEONG A-O;Lo;0;L;;;;;N;;;;;-1177;HANGUL JUNGSEONG A-U;Lo;0;L;;;;;N;;;;;-1178;HANGUL JUNGSEONG YA-O;Lo;0;L;;;;;N;;;;;-1179;HANGUL JUNGSEONG YA-YO;Lo;0;L;;;;;N;;;;;-117A;HANGUL JUNGSEONG EO-O;Lo;0;L;;;;;N;;;;;-117B;HANGUL JUNGSEONG EO-U;Lo;0;L;;;;;N;;;;;-117C;HANGUL JUNGSEONG EO-EU;Lo;0;L;;;;;N;;;;;-117D;HANGUL JUNGSEONG YEO-O;Lo;0;L;;;;;N;;;;;-117E;HANGUL JUNGSEONG YEO-U;Lo;0;L;;;;;N;;;;;-117F;HANGUL JUNGSEONG O-EO;Lo;0;L;;;;;N;;;;;-1180;HANGUL JUNGSEONG O-E;Lo;0;L;;;;;N;;;;;-1181;HANGUL JUNGSEONG O-YE;Lo;0;L;;;;;N;;;;;-1182;HANGUL JUNGSEONG O-O;Lo;0;L;;;;;N;;;;;-1183;HANGUL JUNGSEONG O-U;Lo;0;L;;;;;N;;;;;-1184;HANGUL JUNGSEONG YO-YA;Lo;0;L;;;;;N;;;;;-1185;HANGUL JUNGSEONG YO-YAE;Lo;0;L;;;;;N;;;;;-1186;HANGUL JUNGSEONG YO-YEO;Lo;0;L;;;;;N;;;;;-1187;HANGUL JUNGSEONG YO-O;Lo;0;L;;;;;N;;;;;-1188;HANGUL JUNGSEONG YO-I;Lo;0;L;;;;;N;;;;;-1189;HANGUL JUNGSEONG U-A;Lo;0;L;;;;;N;;;;;-118A;HANGUL JUNGSEONG U-AE;Lo;0;L;;;;;N;;;;;-118B;HANGUL JUNGSEONG U-EO-EU;Lo;0;L;;;;;N;;;;;-118C;HANGUL JUNGSEONG U-YE;Lo;0;L;;;;;N;;;;;-118D;HANGUL JUNGSEONG U-U;Lo;0;L;;;;;N;;;;;-118E;HANGUL JUNGSEONG YU-A;Lo;0;L;;;;;N;;;;;-118F;HANGUL JUNGSEONG YU-EO;Lo;0;L;;;;;N;;;;;-1190;HANGUL JUNGSEONG YU-E;Lo;0;L;;;;;N;;;;;-1191;HANGUL JUNGSEONG YU-YEO;Lo;0;L;;;;;N;;;;;-1192;HANGUL JUNGSEONG YU-YE;Lo;0;L;;;;;N;;;;;-1193;HANGUL JUNGSEONG YU-U;Lo;0;L;;;;;N;;;;;-1194;HANGUL JUNGSEONG YU-I;Lo;0;L;;;;;N;;;;;-1195;HANGUL JUNGSEONG EU-U;Lo;0;L;;;;;N;;;;;-1196;HANGUL JUNGSEONG EU-EU;Lo;0;L;;;;;N;;;;;-1197;HANGUL JUNGSEONG YI-U;Lo;0;L;;;;;N;;;;;-1198;HANGUL JUNGSEONG I-A;Lo;0;L;;;;;N;;;;;-1199;HANGUL JUNGSEONG I-YA;Lo;0;L;;;;;N;;;;;-119A;HANGUL JUNGSEONG I-O;Lo;0;L;;;;;N;;;;;-119B;HANGUL JUNGSEONG I-U;Lo;0;L;;;;;N;;;;;-119C;HANGUL JUNGSEONG I-EU;Lo;0;L;;;;;N;;;;;-119D;HANGUL JUNGSEONG I-ARAEA;Lo;0;L;;;;;N;;;;;-119E;HANGUL JUNGSEONG ARAEA;Lo;0;L;;;;;N;;;;;-119F;HANGUL JUNGSEONG ARAEA-EO;Lo;0;L;;;;;N;;;;;-11A0;HANGUL JUNGSEONG ARAEA-U;Lo;0;L;;;;;N;;;;;-11A1;HANGUL JUNGSEONG ARAEA-I;Lo;0;L;;;;;N;;;;;-11A2;HANGUL JUNGSEONG SSANGARAEA;Lo;0;L;;;;;N;;;;;-11A8;HANGUL JONGSEONG KIYEOK;Lo;0;L;;;;;N;;g *;;;-11A9;HANGUL JONGSEONG SSANGKIYEOK;Lo;0;L;;;;;N;;gg *;;;-11AA;HANGUL JONGSEONG KIYEOK-SIOS;Lo;0;L;;;;;N;;gs *;;;-11AB;HANGUL JONGSEONG NIEUN;Lo;0;L;;;;;N;;n *;;;-11AC;HANGUL JONGSEONG NIEUN-CIEUC;Lo;0;L;;;;;N;;nj *;;;-11AD;HANGUL JONGSEONG NIEUN-HIEUH;Lo;0;L;;;;;N;;nh *;;;-11AE;HANGUL JONGSEONG TIKEUT;Lo;0;L;;;;;N;;d *;;;-11AF;HANGUL JONGSEONG RIEUL;Lo;0;L;;;;;N;;l *;;;-11B0;HANGUL JONGSEONG RIEUL-KIYEOK;Lo;0;L;;;;;N;;lg *;;;-11B1;HANGUL JONGSEONG RIEUL-MIEUM;Lo;0;L;;;;;N;;lm *;;;-11B2;HANGUL JONGSEONG RIEUL-PIEUP;Lo;0;L;;;;;N;;lb *;;;-11B3;HANGUL JONGSEONG RIEUL-SIOS;Lo;0;L;;;;;N;;ls *;;;-11B4;HANGUL JONGSEONG RIEUL-THIEUTH;Lo;0;L;;;;;N;;lt *;;;-11B5;HANGUL JONGSEONG RIEUL-PHIEUPH;Lo;0;L;;;;;N;;lp *;;;-11B6;HANGUL JONGSEONG RIEUL-HIEUH;Lo;0;L;;;;;N;;lh *;;;-11B7;HANGUL JONGSEONG MIEUM;Lo;0;L;;;;;N;;m *;;;-11B8;HANGUL JONGSEONG PIEUP;Lo;0;L;;;;;N;;b *;;;-11B9;HANGUL JONGSEONG PIEUP-SIOS;Lo;0;L;;;;;N;;bs *;;;-11BA;HANGUL JONGSEONG SIOS;Lo;0;L;;;;;N;;s *;;;-11BB;HANGUL JONGSEONG SSANGSIOS;Lo;0;L;;;;;N;;ss *;;;-11BC;HANGUL JONGSEONG IEUNG;Lo;0;L;;;;;N;;ng *;;;-11BD;HANGUL JONGSEONG CIEUC;Lo;0;L;;;;;N;;j *;;;-11BE;HANGUL JONGSEONG CHIEUCH;Lo;0;L;;;;;N;;c *;;;-11BF;HANGUL JONGSEONG KHIEUKH;Lo;0;L;;;;;N;;k *;;;-11C0;HANGUL JONGSEONG THIEUTH;Lo;0;L;;;;;N;;t *;;;-11C1;HANGUL JONGSEONG PHIEUPH;Lo;0;L;;;;;N;;p *;;;-11C2;HANGUL JONGSEONG HIEUH;Lo;0;L;;;;;N;;h *;;;-11C3;HANGUL JONGSEONG KIYEOK-RIEUL;Lo;0;L;;;;;N;;;;;-11C4;HANGUL JONGSEONG KIYEOK-SIOS-KIYEOK;Lo;0;L;;;;;N;;;;;-11C5;HANGUL JONGSEONG NIEUN-KIYEOK;Lo;0;L;;;;;N;;;;;-11C6;HANGUL JONGSEONG NIEUN-TIKEUT;Lo;0;L;;;;;N;;;;;-11C7;HANGUL JONGSEONG NIEUN-SIOS;Lo;0;L;;;;;N;;;;;-11C8;HANGUL JONGSEONG NIEUN-PANSIOS;Lo;0;L;;;;;N;;;;;-11C9;HANGUL JONGSEONG NIEUN-THIEUTH;Lo;0;L;;;;;N;;;;;-11CA;HANGUL JONGSEONG TIKEUT-KIYEOK;Lo;0;L;;;;;N;;;;;-11CB;HANGUL JONGSEONG TIKEUT-RIEUL;Lo;0;L;;;;;N;;;;;-11CC;HANGUL JONGSEONG RIEUL-KIYEOK-SIOS;Lo;0;L;;;;;N;;;;;-11CD;HANGUL JONGSEONG RIEUL-NIEUN;Lo;0;L;;;;;N;;;;;-11CE;HANGUL JONGSEONG RIEUL-TIKEUT;Lo;0;L;;;;;N;;;;;-11CF;HANGUL JONGSEONG RIEUL-TIKEUT-HIEUH;Lo;0;L;;;;;N;;;;;-11D0;HANGUL JONGSEONG SSANGRIEUL;Lo;0;L;;;;;N;;;;;-11D1;HANGUL JONGSEONG RIEUL-MIEUM-KIYEOK;Lo;0;L;;;;;N;;;;;-11D2;HANGUL JONGSEONG RIEUL-MIEUM-SIOS;Lo;0;L;;;;;N;;;;;-11D3;HANGUL JONGSEONG RIEUL-PIEUP-SIOS;Lo;0;L;;;;;N;;;;;-11D4;HANGUL JONGSEONG RIEUL-PIEUP-HIEUH;Lo;0;L;;;;;N;;;;;-11D5;HANGUL JONGSEONG RIEUL-KAPYEOUNPIEUP;Lo;0;L;;;;;N;;;;;-11D6;HANGUL JONGSEONG RIEUL-SSANGSIOS;Lo;0;L;;;;;N;;;;;-11D7;HANGUL JONGSEONG RIEUL-PANSIOS;Lo;0;L;;;;;N;;;;;-11D8;HANGUL JONGSEONG RIEUL-KHIEUKH;Lo;0;L;;;;;N;;;;;-11D9;HANGUL JONGSEONG RIEUL-YEORINHIEUH;Lo;0;L;;;;;N;;;;;-11DA;HANGUL JONGSEONG MIEUM-KIYEOK;Lo;0;L;;;;;N;;;;;-11DB;HANGUL JONGSEONG MIEUM-RIEUL;Lo;0;L;;;;;N;;;;;-11DC;HANGUL JONGSEONG MIEUM-PIEUP;Lo;0;L;;;;;N;;;;;-11DD;HANGUL JONGSEONG MIEUM-SIOS;Lo;0;L;;;;;N;;;;;-11DE;HANGUL JONGSEONG MIEUM-SSANGSIOS;Lo;0;L;;;;;N;;;;;-11DF;HANGUL JONGSEONG MIEUM-PANSIOS;Lo;0;L;;;;;N;;;;;-11E0;HANGUL JONGSEONG MIEUM-CHIEUCH;Lo;0;L;;;;;N;;;;;-11E1;HANGUL JONGSEONG MIEUM-HIEUH;Lo;0;L;;;;;N;;;;;-11E2;HANGUL JONGSEONG KAPYEOUNMIEUM;Lo;0;L;;;;;N;;;;;-11E3;HANGUL JONGSEONG PIEUP-RIEUL;Lo;0;L;;;;;N;;;;;-11E4;HANGUL JONGSEONG PIEUP-PHIEUPH;Lo;0;L;;;;;N;;;;;-11E5;HANGUL JONGSEONG PIEUP-HIEUH;Lo;0;L;;;;;N;;;;;-11E6;HANGUL JONGSEONG KAPYEOUNPIEUP;Lo;0;L;;;;;N;;;;;-11E7;HANGUL JONGSEONG SIOS-KIYEOK;Lo;0;L;;;;;N;;;;;-11E8;HANGUL JONGSEONG SIOS-TIKEUT;Lo;0;L;;;;;N;;;;;-11E9;HANGUL JONGSEONG SIOS-RIEUL;Lo;0;L;;;;;N;;;;;-11EA;HANGUL JONGSEONG SIOS-PIEUP;Lo;0;L;;;;;N;;;;;-11EB;HANGUL JONGSEONG PANSIOS;Lo;0;L;;;;;N;;;;;-11EC;HANGUL JONGSEONG IEUNG-KIYEOK;Lo;0;L;;;;;N;;;;;-11ED;HANGUL JONGSEONG IEUNG-SSANGKIYEOK;Lo;0;L;;;;;N;;;;;-11EE;HANGUL JONGSEONG SSANGIEUNG;Lo;0;L;;;;;N;;;;;-11EF;HANGUL JONGSEONG IEUNG-KHIEUKH;Lo;0;L;;;;;N;;;;;-11F0;HANGUL JONGSEONG YESIEUNG;Lo;0;L;;;;;N;;;;;-11F1;HANGUL JONGSEONG YESIEUNG-SIOS;Lo;0;L;;;;;N;;;;;-11F2;HANGUL JONGSEONG YESIEUNG-PANSIOS;Lo;0;L;;;;;N;;;;;-11F3;HANGUL JONGSEONG PHIEUPH-PIEUP;Lo;0;L;;;;;N;;;;;-11F4;HANGUL JONGSEONG KAPYEOUNPHIEUPH;Lo;0;L;;;;;N;;;;;-11F5;HANGUL JONGSEONG HIEUH-NIEUN;Lo;0;L;;;;;N;;;;;-11F6;HANGUL JONGSEONG HIEUH-RIEUL;Lo;0;L;;;;;N;;;;;-11F7;HANGUL JONGSEONG HIEUH-MIEUM;Lo;0;L;;;;;N;;;;;-11F8;HANGUL JONGSEONG HIEUH-PIEUP;Lo;0;L;;;;;N;;;;;-11F9;HANGUL JONGSEONG YEORINHIEUH;Lo;0;L;;;;;N;;;;;-1200;ETHIOPIC SYLLABLE HA;Lo;0;L;;;;;N;;;;;-1201;ETHIOPIC SYLLABLE HU;Lo;0;L;;;;;N;;;;;-1202;ETHIOPIC SYLLABLE HI;Lo;0;L;;;;;N;;;;;-1203;ETHIOPIC SYLLABLE HAA;Lo;0;L;;;;;N;;;;;-1204;ETHIOPIC SYLLABLE HEE;Lo;0;L;;;;;N;;;;;-1205;ETHIOPIC SYLLABLE HE;Lo;0;L;;;;;N;;;;;-1206;ETHIOPIC SYLLABLE HO;Lo;0;L;;;;;N;;;;;-1207;ETHIOPIC SYLLABLE HOA;Lo;0;L;;;;;N;;;;;-1208;ETHIOPIC SYLLABLE LA;Lo;0;L;;;;;N;;;;;-1209;ETHIOPIC SYLLABLE LU;Lo;0;L;;;;;N;;;;;-120A;ETHIOPIC SYLLABLE LI;Lo;0;L;;;;;N;;;;;-120B;ETHIOPIC SYLLABLE LAA;Lo;0;L;;;;;N;;;;;-120C;ETHIOPIC SYLLABLE LEE;Lo;0;L;;;;;N;;;;;-120D;ETHIOPIC SYLLABLE LE;Lo;0;L;;;;;N;;;;;-120E;ETHIOPIC SYLLABLE LO;Lo;0;L;;;;;N;;;;;-120F;ETHIOPIC SYLLABLE LWA;Lo;0;L;;;;;N;;;;;-1210;ETHIOPIC SYLLABLE HHA;Lo;0;L;;;;;N;;;;;-1211;ETHIOPIC SYLLABLE HHU;Lo;0;L;;;;;N;;;;;-1212;ETHIOPIC SYLLABLE HHI;Lo;0;L;;;;;N;;;;;-1213;ETHIOPIC SYLLABLE HHAA;Lo;0;L;;;;;N;;;;;-1214;ETHIOPIC SYLLABLE HHEE;Lo;0;L;;;;;N;;;;;-1215;ETHIOPIC SYLLABLE HHE;Lo;0;L;;;;;N;;;;;-1216;ETHIOPIC SYLLABLE HHO;Lo;0;L;;;;;N;;;;;-1217;ETHIOPIC SYLLABLE HHWA;Lo;0;L;;;;;N;;;;;-1218;ETHIOPIC SYLLABLE MA;Lo;0;L;;;;;N;;;;;-1219;ETHIOPIC SYLLABLE MU;Lo;0;L;;;;;N;;;;;-121A;ETHIOPIC SYLLABLE MI;Lo;0;L;;;;;N;;;;;-121B;ETHIOPIC SYLLABLE MAA;Lo;0;L;;;;;N;;;;;-121C;ETHIOPIC SYLLABLE MEE;Lo;0;L;;;;;N;;;;;-121D;ETHIOPIC SYLLABLE ME;Lo;0;L;;;;;N;;;;;-121E;ETHIOPIC SYLLABLE MO;Lo;0;L;;;;;N;;;;;-121F;ETHIOPIC SYLLABLE MWA;Lo;0;L;;;;;N;;;;;-1220;ETHIOPIC SYLLABLE SZA;Lo;0;L;;;;;N;;;;;-1221;ETHIOPIC SYLLABLE SZU;Lo;0;L;;;;;N;;;;;-1222;ETHIOPIC SYLLABLE SZI;Lo;0;L;;;;;N;;;;;-1223;ETHIOPIC SYLLABLE SZAA;Lo;0;L;;;;;N;;;;;-1224;ETHIOPIC SYLLABLE SZEE;Lo;0;L;;;;;N;;;;;-1225;ETHIOPIC SYLLABLE SZE;Lo;0;L;;;;;N;;;;;-1226;ETHIOPIC SYLLABLE SZO;Lo;0;L;;;;;N;;;;;-1227;ETHIOPIC SYLLABLE SZWA;Lo;0;L;;;;;N;;;;;-1228;ETHIOPIC SYLLABLE RA;Lo;0;L;;;;;N;;;;;-1229;ETHIOPIC SYLLABLE RU;Lo;0;L;;;;;N;;;;;-122A;ETHIOPIC SYLLABLE RI;Lo;0;L;;;;;N;;;;;-122B;ETHIOPIC SYLLABLE RAA;Lo;0;L;;;;;N;;;;;-122C;ETHIOPIC SYLLABLE REE;Lo;0;L;;;;;N;;;;;-122D;ETHIOPIC SYLLABLE RE;Lo;0;L;;;;;N;;;;;-122E;ETHIOPIC SYLLABLE RO;Lo;0;L;;;;;N;;;;;-122F;ETHIOPIC SYLLABLE RWA;Lo;0;L;;;;;N;;;;;-1230;ETHIOPIC SYLLABLE SA;Lo;0;L;;;;;N;;;;;-1231;ETHIOPIC SYLLABLE SU;Lo;0;L;;;;;N;;;;;-1232;ETHIOPIC SYLLABLE SI;Lo;0;L;;;;;N;;;;;-1233;ETHIOPIC SYLLABLE SAA;Lo;0;L;;;;;N;;;;;-1234;ETHIOPIC SYLLABLE SEE;Lo;0;L;;;;;N;;;;;-1235;ETHIOPIC SYLLABLE SE;Lo;0;L;;;;;N;;;;;-1236;ETHIOPIC SYLLABLE SO;Lo;0;L;;;;;N;;;;;-1237;ETHIOPIC SYLLABLE SWA;Lo;0;L;;;;;N;;;;;-1238;ETHIOPIC SYLLABLE SHA;Lo;0;L;;;;;N;;;;;-1239;ETHIOPIC SYLLABLE SHU;Lo;0;L;;;;;N;;;;;-123A;ETHIOPIC SYLLABLE SHI;Lo;0;L;;;;;N;;;;;-123B;ETHIOPIC SYLLABLE SHAA;Lo;0;L;;;;;N;;;;;-123C;ETHIOPIC SYLLABLE SHEE;Lo;0;L;;;;;N;;;;;-123D;ETHIOPIC SYLLABLE SHE;Lo;0;L;;;;;N;;;;;-123E;ETHIOPIC SYLLABLE SHO;Lo;0;L;;;;;N;;;;;-123F;ETHIOPIC SYLLABLE SHWA;Lo;0;L;;;;;N;;;;;-1240;ETHIOPIC SYLLABLE QA;Lo;0;L;;;;;N;;;;;-1241;ETHIOPIC SYLLABLE QU;Lo;0;L;;;;;N;;;;;-1242;ETHIOPIC SYLLABLE QI;Lo;0;L;;;;;N;;;;;-1243;ETHIOPIC SYLLABLE QAA;Lo;0;L;;;;;N;;;;;-1244;ETHIOPIC SYLLABLE QEE;Lo;0;L;;;;;N;;;;;-1245;ETHIOPIC SYLLABLE QE;Lo;0;L;;;;;N;;;;;-1246;ETHIOPIC SYLLABLE QO;Lo;0;L;;;;;N;;;;;-1247;ETHIOPIC SYLLABLE QOA;Lo;0;L;;;;;N;;;;;-1248;ETHIOPIC SYLLABLE QWA;Lo;0;L;;;;;N;;;;;-124A;ETHIOPIC SYLLABLE QWI;Lo;0;L;;;;;N;;;;;-124B;ETHIOPIC SYLLABLE QWAA;Lo;0;L;;;;;N;;;;;-124C;ETHIOPIC SYLLABLE QWEE;Lo;0;L;;;;;N;;;;;-124D;ETHIOPIC SYLLABLE QWE;Lo;0;L;;;;;N;;;;;-1250;ETHIOPIC SYLLABLE QHA;Lo;0;L;;;;;N;;;;;-1251;ETHIOPIC SYLLABLE QHU;Lo;0;L;;;;;N;;;;;-1252;ETHIOPIC SYLLABLE QHI;Lo;0;L;;;;;N;;;;;-1253;ETHIOPIC SYLLABLE QHAA;Lo;0;L;;;;;N;;;;;-1254;ETHIOPIC SYLLABLE QHEE;Lo;0;L;;;;;N;;;;;-1255;ETHIOPIC SYLLABLE QHE;Lo;0;L;;;;;N;;;;;-1256;ETHIOPIC SYLLABLE QHO;Lo;0;L;;;;;N;;;;;-1258;ETHIOPIC SYLLABLE QHWA;Lo;0;L;;;;;N;;;;;-125A;ETHIOPIC SYLLABLE QHWI;Lo;0;L;;;;;N;;;;;-125B;ETHIOPIC SYLLABLE QHWAA;Lo;0;L;;;;;N;;;;;-125C;ETHIOPIC SYLLABLE QHWEE;Lo;0;L;;;;;N;;;;;-125D;ETHIOPIC SYLLABLE QHWE;Lo;0;L;;;;;N;;;;;-1260;ETHIOPIC SYLLABLE BA;Lo;0;L;;;;;N;;;;;-1261;ETHIOPIC SYLLABLE BU;Lo;0;L;;;;;N;;;;;-1262;ETHIOPIC SYLLABLE BI;Lo;0;L;;;;;N;;;;;-1263;ETHIOPIC SYLLABLE BAA;Lo;0;L;;;;;N;;;;;-1264;ETHIOPIC SYLLABLE BEE;Lo;0;L;;;;;N;;;;;-1265;ETHIOPIC SYLLABLE BE;Lo;0;L;;;;;N;;;;;-1266;ETHIOPIC SYLLABLE BO;Lo;0;L;;;;;N;;;;;-1267;ETHIOPIC SYLLABLE BWA;Lo;0;L;;;;;N;;;;;-1268;ETHIOPIC SYLLABLE VA;Lo;0;L;;;;;N;;;;;-1269;ETHIOPIC SYLLABLE VU;Lo;0;L;;;;;N;;;;;-126A;ETHIOPIC SYLLABLE VI;Lo;0;L;;;;;N;;;;;-126B;ETHIOPIC SYLLABLE VAA;Lo;0;L;;;;;N;;;;;-126C;ETHIOPIC SYLLABLE VEE;Lo;0;L;;;;;N;;;;;-126D;ETHIOPIC SYLLABLE VE;Lo;0;L;;;;;N;;;;;-126E;ETHIOPIC SYLLABLE VO;Lo;0;L;;;;;N;;;;;-126F;ETHIOPIC SYLLABLE VWA;Lo;0;L;;;;;N;;;;;-1270;ETHIOPIC SYLLABLE TA;Lo;0;L;;;;;N;;;;;-1271;ETHIOPIC SYLLABLE TU;Lo;0;L;;;;;N;;;;;-1272;ETHIOPIC SYLLABLE TI;Lo;0;L;;;;;N;;;;;-1273;ETHIOPIC SYLLABLE TAA;Lo;0;L;;;;;N;;;;;-1274;ETHIOPIC SYLLABLE TEE;Lo;0;L;;;;;N;;;;;-1275;ETHIOPIC SYLLABLE TE;Lo;0;L;;;;;N;;;;;-1276;ETHIOPIC SYLLABLE TO;Lo;0;L;;;;;N;;;;;-1277;ETHIOPIC SYLLABLE TWA;Lo;0;L;;;;;N;;;;;-1278;ETHIOPIC SYLLABLE CA;Lo;0;L;;;;;N;;;;;-1279;ETHIOPIC SYLLABLE CU;Lo;0;L;;;;;N;;;;;-127A;ETHIOPIC SYLLABLE CI;Lo;0;L;;;;;N;;;;;-127B;ETHIOPIC SYLLABLE CAA;Lo;0;L;;;;;N;;;;;-127C;ETHIOPIC SYLLABLE CEE;Lo;0;L;;;;;N;;;;;-127D;ETHIOPIC SYLLABLE CE;Lo;0;L;;;;;N;;;;;-127E;ETHIOPIC SYLLABLE CO;Lo;0;L;;;;;N;;;;;-127F;ETHIOPIC SYLLABLE CWA;Lo;0;L;;;;;N;;;;;-1280;ETHIOPIC SYLLABLE XA;Lo;0;L;;;;;N;;;;;-1281;ETHIOPIC SYLLABLE XU;Lo;0;L;;;;;N;;;;;-1282;ETHIOPIC SYLLABLE XI;Lo;0;L;;;;;N;;;;;-1283;ETHIOPIC SYLLABLE XAA;Lo;0;L;;;;;N;;;;;-1284;ETHIOPIC SYLLABLE XEE;Lo;0;L;;;;;N;;;;;-1285;ETHIOPIC SYLLABLE XE;Lo;0;L;;;;;N;;;;;-1286;ETHIOPIC SYLLABLE XO;Lo;0;L;;;;;N;;;;;-1287;ETHIOPIC SYLLABLE XOA;Lo;0;L;;;;;N;;;;;-1288;ETHIOPIC SYLLABLE XWA;Lo;0;L;;;;;N;;;;;-128A;ETHIOPIC SYLLABLE XWI;Lo;0;L;;;;;N;;;;;-128B;ETHIOPIC SYLLABLE XWAA;Lo;0;L;;;;;N;;;;;-128C;ETHIOPIC SYLLABLE XWEE;Lo;0;L;;;;;N;;;;;-128D;ETHIOPIC SYLLABLE XWE;Lo;0;L;;;;;N;;;;;-1290;ETHIOPIC SYLLABLE NA;Lo;0;L;;;;;N;;;;;-1291;ETHIOPIC SYLLABLE NU;Lo;0;L;;;;;N;;;;;-1292;ETHIOPIC SYLLABLE NI;Lo;0;L;;;;;N;;;;;-1293;ETHIOPIC SYLLABLE NAA;Lo;0;L;;;;;N;;;;;-1294;ETHIOPIC SYLLABLE NEE;Lo;0;L;;;;;N;;;;;-1295;ETHIOPIC SYLLABLE NE;Lo;0;L;;;;;N;;;;;-1296;ETHIOPIC SYLLABLE NO;Lo;0;L;;;;;N;;;;;-1297;ETHIOPIC SYLLABLE NWA;Lo;0;L;;;;;N;;;;;-1298;ETHIOPIC SYLLABLE NYA;Lo;0;L;;;;;N;;;;;-1299;ETHIOPIC SYLLABLE NYU;Lo;0;L;;;;;N;;;;;-129A;ETHIOPIC SYLLABLE NYI;Lo;0;L;;;;;N;;;;;-129B;ETHIOPIC SYLLABLE NYAA;Lo;0;L;;;;;N;;;;;-129C;ETHIOPIC SYLLABLE NYEE;Lo;0;L;;;;;N;;;;;-129D;ETHIOPIC SYLLABLE NYE;Lo;0;L;;;;;N;;;;;-129E;ETHIOPIC SYLLABLE NYO;Lo;0;L;;;;;N;;;;;-129F;ETHIOPIC SYLLABLE NYWA;Lo;0;L;;;;;N;;;;;-12A0;ETHIOPIC SYLLABLE GLOTTAL A;Lo;0;L;;;;;N;;;;;-12A1;ETHIOPIC SYLLABLE GLOTTAL U;Lo;0;L;;;;;N;;;;;-12A2;ETHIOPIC SYLLABLE GLOTTAL I;Lo;0;L;;;;;N;;;;;-12A3;ETHIOPIC SYLLABLE GLOTTAL AA;Lo;0;L;;;;;N;;;;;-12A4;ETHIOPIC SYLLABLE GLOTTAL EE;Lo;0;L;;;;;N;;;;;-12A5;ETHIOPIC SYLLABLE GLOTTAL E;Lo;0;L;;;;;N;;;;;-12A6;ETHIOPIC SYLLABLE GLOTTAL O;Lo;0;L;;;;;N;;;;;-12A7;ETHIOPIC SYLLABLE GLOTTAL WA;Lo;0;L;;;;;N;;;;;-12A8;ETHIOPIC SYLLABLE KA;Lo;0;L;;;;;N;;;;;-12A9;ETHIOPIC SYLLABLE KU;Lo;0;L;;;;;N;;;;;-12AA;ETHIOPIC SYLLABLE KI;Lo;0;L;;;;;N;;;;;-12AB;ETHIOPIC SYLLABLE KAA;Lo;0;L;;;;;N;;;;;-12AC;ETHIOPIC SYLLABLE KEE;Lo;0;L;;;;;N;;;;;-12AD;ETHIOPIC SYLLABLE KE;Lo;0;L;;;;;N;;;;;-12AE;ETHIOPIC SYLLABLE KO;Lo;0;L;;;;;N;;;;;-12AF;ETHIOPIC SYLLABLE KOA;Lo;0;L;;;;;N;;;;;-12B0;ETHIOPIC SYLLABLE KWA;Lo;0;L;;;;;N;;;;;-12B2;ETHIOPIC SYLLABLE KWI;Lo;0;L;;;;;N;;;;;-12B3;ETHIOPIC SYLLABLE KWAA;Lo;0;L;;;;;N;;;;;-12B4;ETHIOPIC SYLLABLE KWEE;Lo;0;L;;;;;N;;;;;-12B5;ETHIOPIC SYLLABLE KWE;Lo;0;L;;;;;N;;;;;-12B8;ETHIOPIC SYLLABLE KXA;Lo;0;L;;;;;N;;;;;-12B9;ETHIOPIC SYLLABLE KXU;Lo;0;L;;;;;N;;;;;-12BA;ETHIOPIC SYLLABLE KXI;Lo;0;L;;;;;N;;;;;-12BB;ETHIOPIC SYLLABLE KXAA;Lo;0;L;;;;;N;;;;;-12BC;ETHIOPIC SYLLABLE KXEE;Lo;0;L;;;;;N;;;;;-12BD;ETHIOPIC SYLLABLE KXE;Lo;0;L;;;;;N;;;;;-12BE;ETHIOPIC SYLLABLE KXO;Lo;0;L;;;;;N;;;;;-12C0;ETHIOPIC SYLLABLE KXWA;Lo;0;L;;;;;N;;;;;-12C2;ETHIOPIC SYLLABLE KXWI;Lo;0;L;;;;;N;;;;;-12C3;ETHIOPIC SYLLABLE KXWAA;Lo;0;L;;;;;N;;;;;-12C4;ETHIOPIC SYLLABLE KXWEE;Lo;0;L;;;;;N;;;;;-12C5;ETHIOPIC SYLLABLE KXWE;Lo;0;L;;;;;N;;;;;-12C8;ETHIOPIC SYLLABLE WA;Lo;0;L;;;;;N;;;;;-12C9;ETHIOPIC SYLLABLE WU;Lo;0;L;;;;;N;;;;;-12CA;ETHIOPIC SYLLABLE WI;Lo;0;L;;;;;N;;;;;-12CB;ETHIOPIC SYLLABLE WAA;Lo;0;L;;;;;N;;;;;-12CC;ETHIOPIC SYLLABLE WEE;Lo;0;L;;;;;N;;;;;-12CD;ETHIOPIC SYLLABLE WE;Lo;0;L;;;;;N;;;;;-12CE;ETHIOPIC SYLLABLE WO;Lo;0;L;;;;;N;;;;;-12CF;ETHIOPIC SYLLABLE WOA;Lo;0;L;;;;;N;;;;;-12D0;ETHIOPIC SYLLABLE PHARYNGEAL A;Lo;0;L;;;;;N;;;;;-12D1;ETHIOPIC SYLLABLE PHARYNGEAL U;Lo;0;L;;;;;N;;;;;-12D2;ETHIOPIC SYLLABLE PHARYNGEAL I;Lo;0;L;;;;;N;;;;;-12D3;ETHIOPIC SYLLABLE PHARYNGEAL AA;Lo;0;L;;;;;N;;;;;-12D4;ETHIOPIC SYLLABLE PHARYNGEAL EE;Lo;0;L;;;;;N;;;;;-12D5;ETHIOPIC SYLLABLE PHARYNGEAL E;Lo;0;L;;;;;N;;;;;-12D6;ETHIOPIC SYLLABLE PHARYNGEAL O;Lo;0;L;;;;;N;;;;;-12D8;ETHIOPIC SYLLABLE ZA;Lo;0;L;;;;;N;;;;;-12D9;ETHIOPIC SYLLABLE ZU;Lo;0;L;;;;;N;;;;;-12DA;ETHIOPIC SYLLABLE ZI;Lo;0;L;;;;;N;;;;;-12DB;ETHIOPIC SYLLABLE ZAA;Lo;0;L;;;;;N;;;;;-12DC;ETHIOPIC SYLLABLE ZEE;Lo;0;L;;;;;N;;;;;-12DD;ETHIOPIC SYLLABLE ZE;Lo;0;L;;;;;N;;;;;-12DE;ETHIOPIC SYLLABLE ZO;Lo;0;L;;;;;N;;;;;-12DF;ETHIOPIC SYLLABLE ZWA;Lo;0;L;;;;;N;;;;;-12E0;ETHIOPIC SYLLABLE ZHA;Lo;0;L;;;;;N;;;;;-12E1;ETHIOPIC SYLLABLE ZHU;Lo;0;L;;;;;N;;;;;-12E2;ETHIOPIC SYLLABLE ZHI;Lo;0;L;;;;;N;;;;;-12E3;ETHIOPIC SYLLABLE ZHAA;Lo;0;L;;;;;N;;;;;-12E4;ETHIOPIC SYLLABLE ZHEE;Lo;0;L;;;;;N;;;;;-12E5;ETHIOPIC SYLLABLE ZHE;Lo;0;L;;;;;N;;;;;-12E6;ETHIOPIC SYLLABLE ZHO;Lo;0;L;;;;;N;;;;;-12E7;ETHIOPIC SYLLABLE ZHWA;Lo;0;L;;;;;N;;;;;-12E8;ETHIOPIC SYLLABLE YA;Lo;0;L;;;;;N;;;;;-12E9;ETHIOPIC SYLLABLE YU;Lo;0;L;;;;;N;;;;;-12EA;ETHIOPIC SYLLABLE YI;Lo;0;L;;;;;N;;;;;-12EB;ETHIOPIC SYLLABLE YAA;Lo;0;L;;;;;N;;;;;-12EC;ETHIOPIC SYLLABLE YEE;Lo;0;L;;;;;N;;;;;-12ED;ETHIOPIC SYLLABLE YE;Lo;0;L;;;;;N;;;;;-12EE;ETHIOPIC SYLLABLE YO;Lo;0;L;;;;;N;;;;;-12EF;ETHIOPIC SYLLABLE YOA;Lo;0;L;;;;;N;;;;;-12F0;ETHIOPIC SYLLABLE DA;Lo;0;L;;;;;N;;;;;-12F1;ETHIOPIC SYLLABLE DU;Lo;0;L;;;;;N;;;;;-12F2;ETHIOPIC SYLLABLE DI;Lo;0;L;;;;;N;;;;;-12F3;ETHIOPIC SYLLABLE DAA;Lo;0;L;;;;;N;;;;;-12F4;ETHIOPIC SYLLABLE DEE;Lo;0;L;;;;;N;;;;;-12F5;ETHIOPIC SYLLABLE DE;Lo;0;L;;;;;N;;;;;-12F6;ETHIOPIC SYLLABLE DO;Lo;0;L;;;;;N;;;;;-12F7;ETHIOPIC SYLLABLE DWA;Lo;0;L;;;;;N;;;;;-12F8;ETHIOPIC SYLLABLE DDA;Lo;0;L;;;;;N;;;;;-12F9;ETHIOPIC SYLLABLE DDU;Lo;0;L;;;;;N;;;;;-12FA;ETHIOPIC SYLLABLE DDI;Lo;0;L;;;;;N;;;;;-12FB;ETHIOPIC SYLLABLE DDAA;Lo;0;L;;;;;N;;;;;-12FC;ETHIOPIC SYLLABLE DDEE;Lo;0;L;;;;;N;;;;;-12FD;ETHIOPIC SYLLABLE DDE;Lo;0;L;;;;;N;;;;;-12FE;ETHIOPIC SYLLABLE DDO;Lo;0;L;;;;;N;;;;;-12FF;ETHIOPIC SYLLABLE DDWA;Lo;0;L;;;;;N;;;;;-1300;ETHIOPIC SYLLABLE JA;Lo;0;L;;;;;N;;;;;-1301;ETHIOPIC SYLLABLE JU;Lo;0;L;;;;;N;;;;;-1302;ETHIOPIC SYLLABLE JI;Lo;0;L;;;;;N;;;;;-1303;ETHIOPIC SYLLABLE JAA;Lo;0;L;;;;;N;;;;;-1304;ETHIOPIC SYLLABLE JEE;Lo;0;L;;;;;N;;;;;-1305;ETHIOPIC SYLLABLE JE;Lo;0;L;;;;;N;;;;;-1306;ETHIOPIC SYLLABLE JO;Lo;0;L;;;;;N;;;;;-1307;ETHIOPIC SYLLABLE JWA;Lo;0;L;;;;;N;;;;;-1308;ETHIOPIC SYLLABLE GA;Lo;0;L;;;;;N;;;;;-1309;ETHIOPIC SYLLABLE GU;Lo;0;L;;;;;N;;;;;-130A;ETHIOPIC SYLLABLE GI;Lo;0;L;;;;;N;;;;;-130B;ETHIOPIC SYLLABLE GAA;Lo;0;L;;;;;N;;;;;-130C;ETHIOPIC SYLLABLE GEE;Lo;0;L;;;;;N;;;;;-130D;ETHIOPIC SYLLABLE GE;Lo;0;L;;;;;N;;;;;-130E;ETHIOPIC SYLLABLE GO;Lo;0;L;;;;;N;;;;;-130F;ETHIOPIC SYLLABLE GOA;Lo;0;L;;;;;N;;;;;-1310;ETHIOPIC SYLLABLE GWA;Lo;0;L;;;;;N;;;;;-1312;ETHIOPIC SYLLABLE GWI;Lo;0;L;;;;;N;;;;;-1313;ETHIOPIC SYLLABLE GWAA;Lo;0;L;;;;;N;;;;;-1314;ETHIOPIC SYLLABLE GWEE;Lo;0;L;;;;;N;;;;;-1315;ETHIOPIC SYLLABLE GWE;Lo;0;L;;;;;N;;;;;-1318;ETHIOPIC SYLLABLE GGA;Lo;0;L;;;;;N;;;;;-1319;ETHIOPIC SYLLABLE GGU;Lo;0;L;;;;;N;;;;;-131A;ETHIOPIC SYLLABLE GGI;Lo;0;L;;;;;N;;;;;-131B;ETHIOPIC SYLLABLE GGAA;Lo;0;L;;;;;N;;;;;-131C;ETHIOPIC SYLLABLE GGEE;Lo;0;L;;;;;N;;;;;-131D;ETHIOPIC SYLLABLE GGE;Lo;0;L;;;;;N;;;;;-131E;ETHIOPIC SYLLABLE GGO;Lo;0;L;;;;;N;;;;;-131F;ETHIOPIC SYLLABLE GGWAA;Lo;0;L;;;;;N;;;;;-1320;ETHIOPIC SYLLABLE THA;Lo;0;L;;;;;N;;;;;-1321;ETHIOPIC SYLLABLE THU;Lo;0;L;;;;;N;;;;;-1322;ETHIOPIC SYLLABLE THI;Lo;0;L;;;;;N;;;;;-1323;ETHIOPIC SYLLABLE THAA;Lo;0;L;;;;;N;;;;;-1324;ETHIOPIC SYLLABLE THEE;Lo;0;L;;;;;N;;;;;-1325;ETHIOPIC SYLLABLE THE;Lo;0;L;;;;;N;;;;;-1326;ETHIOPIC SYLLABLE THO;Lo;0;L;;;;;N;;;;;-1327;ETHIOPIC SYLLABLE THWA;Lo;0;L;;;;;N;;;;;-1328;ETHIOPIC SYLLABLE CHA;Lo;0;L;;;;;N;;;;;-1329;ETHIOPIC SYLLABLE CHU;Lo;0;L;;;;;N;;;;;-132A;ETHIOPIC SYLLABLE CHI;Lo;0;L;;;;;N;;;;;-132B;ETHIOPIC SYLLABLE CHAA;Lo;0;L;;;;;N;;;;;-132C;ETHIOPIC SYLLABLE CHEE;Lo;0;L;;;;;N;;;;;-132D;ETHIOPIC SYLLABLE CHE;Lo;0;L;;;;;N;;;;;-132E;ETHIOPIC SYLLABLE CHO;Lo;0;L;;;;;N;;;;;-132F;ETHIOPIC SYLLABLE CHWA;Lo;0;L;;;;;N;;;;;-1330;ETHIOPIC SYLLABLE PHA;Lo;0;L;;;;;N;;;;;-1331;ETHIOPIC SYLLABLE PHU;Lo;0;L;;;;;N;;;;;-1332;ETHIOPIC SYLLABLE PHI;Lo;0;L;;;;;N;;;;;-1333;ETHIOPIC SYLLABLE PHAA;Lo;0;L;;;;;N;;;;;-1334;ETHIOPIC SYLLABLE PHEE;Lo;0;L;;;;;N;;;;;-1335;ETHIOPIC SYLLABLE PHE;Lo;0;L;;;;;N;;;;;-1336;ETHIOPIC SYLLABLE PHO;Lo;0;L;;;;;N;;;;;-1337;ETHIOPIC SYLLABLE PHWA;Lo;0;L;;;;;N;;;;;-1338;ETHIOPIC SYLLABLE TSA;Lo;0;L;;;;;N;;;;;-1339;ETHIOPIC SYLLABLE TSU;Lo;0;L;;;;;N;;;;;-133A;ETHIOPIC SYLLABLE TSI;Lo;0;L;;;;;N;;;;;-133B;ETHIOPIC SYLLABLE TSAA;Lo;0;L;;;;;N;;;;;-133C;ETHIOPIC SYLLABLE TSEE;Lo;0;L;;;;;N;;;;;-133D;ETHIOPIC SYLLABLE TSE;Lo;0;L;;;;;N;;;;;-133E;ETHIOPIC SYLLABLE TSO;Lo;0;L;;;;;N;;;;;-133F;ETHIOPIC SYLLABLE TSWA;Lo;0;L;;;;;N;;;;;-1340;ETHIOPIC SYLLABLE TZA;Lo;0;L;;;;;N;;;;;-1341;ETHIOPIC SYLLABLE TZU;Lo;0;L;;;;;N;;;;;-1342;ETHIOPIC SYLLABLE TZI;Lo;0;L;;;;;N;;;;;-1343;ETHIOPIC SYLLABLE TZAA;Lo;0;L;;;;;N;;;;;-1344;ETHIOPIC SYLLABLE TZEE;Lo;0;L;;;;;N;;;;;-1345;ETHIOPIC SYLLABLE TZE;Lo;0;L;;;;;N;;;;;-1346;ETHIOPIC SYLLABLE TZO;Lo;0;L;;;;;N;;;;;-1347;ETHIOPIC SYLLABLE TZOA;Lo;0;L;;;;;N;;;;;-1348;ETHIOPIC SYLLABLE FA;Lo;0;L;;;;;N;;;;;-1349;ETHIOPIC SYLLABLE FU;Lo;0;L;;;;;N;;;;;-134A;ETHIOPIC SYLLABLE FI;Lo;0;L;;;;;N;;;;;-134B;ETHIOPIC SYLLABLE FAA;Lo;0;L;;;;;N;;;;;-134C;ETHIOPIC SYLLABLE FEE;Lo;0;L;;;;;N;;;;;-134D;ETHIOPIC SYLLABLE FE;Lo;0;L;;;;;N;;;;;-134E;ETHIOPIC SYLLABLE FO;Lo;0;L;;;;;N;;;;;-134F;ETHIOPIC SYLLABLE FWA;Lo;0;L;;;;;N;;;;;-1350;ETHIOPIC SYLLABLE PA;Lo;0;L;;;;;N;;;;;-1351;ETHIOPIC SYLLABLE PU;Lo;0;L;;;;;N;;;;;-1352;ETHIOPIC SYLLABLE PI;Lo;0;L;;;;;N;;;;;-1353;ETHIOPIC SYLLABLE PAA;Lo;0;L;;;;;N;;;;;-1354;ETHIOPIC SYLLABLE PEE;Lo;0;L;;;;;N;;;;;-1355;ETHIOPIC SYLLABLE PE;Lo;0;L;;;;;N;;;;;-1356;ETHIOPIC SYLLABLE PO;Lo;0;L;;;;;N;;;;;-1357;ETHIOPIC SYLLABLE PWA;Lo;0;L;;;;;N;;;;;-1358;ETHIOPIC SYLLABLE RYA;Lo;0;L;;;;;N;;;;;-1359;ETHIOPIC SYLLABLE MYA;Lo;0;L;;;;;N;;;;;-135A;ETHIOPIC SYLLABLE FYA;Lo;0;L;;;;;N;;;;;-135F;ETHIOPIC COMBINING GEMINATION MARK;Mn;230;NSM;;;;;N;;;;;-1360;ETHIOPIC SECTION MARK;So;0;L;;;;;N;;;;;-1361;ETHIOPIC WORDSPACE;Po;0;L;;;;;N;;;;;-1362;ETHIOPIC FULL STOP;Po;0;L;;;;;N;;;;;-1363;ETHIOPIC COMMA;Po;0;L;;;;;N;;;;;-1364;ETHIOPIC SEMICOLON;Po;0;L;;;;;N;;;;;-1365;ETHIOPIC COLON;Po;0;L;;;;;N;;;;;-1366;ETHIOPIC PREFACE COLON;Po;0;L;;;;;N;;;;;-1367;ETHIOPIC QUESTION MARK;Po;0;L;;;;;N;;;;;-1368;ETHIOPIC PARAGRAPH SEPARATOR;Po;0;L;;;;;N;;;;;-1369;ETHIOPIC DIGIT ONE;No;0;L;;;1;1;N;;;;;-136A;ETHIOPIC DIGIT TWO;No;0;L;;;2;2;N;;;;;-136B;ETHIOPIC DIGIT THREE;No;0;L;;;3;3;N;;;;;-136C;ETHIOPIC DIGIT FOUR;No;0;L;;;4;4;N;;;;;-136D;ETHIOPIC DIGIT FIVE;No;0;L;;;5;5;N;;;;;-136E;ETHIOPIC DIGIT SIX;No;0;L;;;6;6;N;;;;;-136F;ETHIOPIC DIGIT SEVEN;No;0;L;;;7;7;N;;;;;-1370;ETHIOPIC DIGIT EIGHT;No;0;L;;;8;8;N;;;;;-1371;ETHIOPIC DIGIT NINE;No;0;L;;;9;9;N;;;;;-1372;ETHIOPIC NUMBER TEN;No;0;L;;;;10;N;;;;;-1373;ETHIOPIC NUMBER TWENTY;No;0;L;;;;20;N;;;;;-1374;ETHIOPIC NUMBER THIRTY;No;0;L;;;;30;N;;;;;-1375;ETHIOPIC NUMBER FORTY;No;0;L;;;;40;N;;;;;-1376;ETHIOPIC NUMBER FIFTY;No;0;L;;;;50;N;;;;;-1377;ETHIOPIC NUMBER SIXTY;No;0;L;;;;60;N;;;;;-1378;ETHIOPIC NUMBER SEVENTY;No;0;L;;;;70;N;;;;;-1379;ETHIOPIC NUMBER EIGHTY;No;0;L;;;;80;N;;;;;-137A;ETHIOPIC NUMBER NINETY;No;0;L;;;;90;N;;;;;-137B;ETHIOPIC NUMBER HUNDRED;No;0;L;;;;100;N;;;;;-137C;ETHIOPIC NUMBER TEN THOUSAND;No;0;L;;;;10000;N;;;;;-1380;ETHIOPIC SYLLABLE SEBATBEIT MWA;Lo;0;L;;;;;N;;;;;-1381;ETHIOPIC SYLLABLE MWI;Lo;0;L;;;;;N;;;;;-1382;ETHIOPIC SYLLABLE MWEE;Lo;0;L;;;;;N;;;;;-1383;ETHIOPIC SYLLABLE MWE;Lo;0;L;;;;;N;;;;;-1384;ETHIOPIC SYLLABLE SEBATBEIT BWA;Lo;0;L;;;;;N;;;;;-1385;ETHIOPIC SYLLABLE BWI;Lo;0;L;;;;;N;;;;;-1386;ETHIOPIC SYLLABLE BWEE;Lo;0;L;;;;;N;;;;;-1387;ETHIOPIC SYLLABLE BWE;Lo;0;L;;;;;N;;;;;-1388;ETHIOPIC SYLLABLE SEBATBEIT FWA;Lo;0;L;;;;;N;;;;;-1389;ETHIOPIC SYLLABLE FWI;Lo;0;L;;;;;N;;;;;-138A;ETHIOPIC SYLLABLE FWEE;Lo;0;L;;;;;N;;;;;-138B;ETHIOPIC SYLLABLE FWE;Lo;0;L;;;;;N;;;;;-138C;ETHIOPIC SYLLABLE SEBATBEIT PWA;Lo;0;L;;;;;N;;;;;-138D;ETHIOPIC SYLLABLE PWI;Lo;0;L;;;;;N;;;;;-138E;ETHIOPIC SYLLABLE PWEE;Lo;0;L;;;;;N;;;;;-138F;ETHIOPIC SYLLABLE PWE;Lo;0;L;;;;;N;;;;;-1390;ETHIOPIC TONAL MARK YIZET;So;0;ON;;;;;N;;;;;-1391;ETHIOPIC TONAL MARK DERET;So;0;ON;;;;;N;;;;;-1392;ETHIOPIC TONAL MARK RIKRIK;So;0;ON;;;;;N;;;;;-1393;ETHIOPIC TONAL MARK SHORT RIKRIK;So;0;ON;;;;;N;;;;;-1394;ETHIOPIC TONAL MARK DIFAT;So;0;ON;;;;;N;;;;;-1395;ETHIOPIC TONAL MARK KENAT;So;0;ON;;;;;N;;;;;-1396;ETHIOPIC TONAL MARK CHIRET;So;0;ON;;;;;N;;;;;-1397;ETHIOPIC TONAL MARK HIDET;So;0;ON;;;;;N;;;;;-1398;ETHIOPIC TONAL MARK DERET-HIDET;So;0;ON;;;;;N;;;;;-1399;ETHIOPIC TONAL MARK KURT;So;0;ON;;;;;N;;;;;-13A0;CHEROKEE LETTER A;Lo;0;L;;;;;N;;;;;-13A1;CHEROKEE LETTER E;Lo;0;L;;;;;N;;;;;-13A2;CHEROKEE LETTER I;Lo;0;L;;;;;N;;;;;-13A3;CHEROKEE LETTER O;Lo;0;L;;;;;N;;;;;-13A4;CHEROKEE LETTER U;Lo;0;L;;;;;N;;;;;-13A5;CHEROKEE LETTER V;Lo;0;L;;;;;N;;;;;-13A6;CHEROKEE LETTER GA;Lo;0;L;;;;;N;;;;;-13A7;CHEROKEE LETTER KA;Lo;0;L;;;;;N;;;;;-13A8;CHEROKEE LETTER GE;Lo;0;L;;;;;N;;;;;-13A9;CHEROKEE LETTER GI;Lo;0;L;;;;;N;;;;;-13AA;CHEROKEE LETTER GO;Lo;0;L;;;;;N;;;;;-13AB;CHEROKEE LETTER GU;Lo;0;L;;;;;N;;;;;-13AC;CHEROKEE LETTER GV;Lo;0;L;;;;;N;;;;;-13AD;CHEROKEE LETTER HA;Lo;0;L;;;;;N;;;;;-13AE;CHEROKEE LETTER HE;Lo;0;L;;;;;N;;;;;-13AF;CHEROKEE LETTER HI;Lo;0;L;;;;;N;;;;;-13B0;CHEROKEE LETTER HO;Lo;0;L;;;;;N;;;;;-13B1;CHEROKEE LETTER HU;Lo;0;L;;;;;N;;;;;-13B2;CHEROKEE LETTER HV;Lo;0;L;;;;;N;;;;;-13B3;CHEROKEE LETTER LA;Lo;0;L;;;;;N;;;;;-13B4;CHEROKEE LETTER LE;Lo;0;L;;;;;N;;;;;-13B5;CHEROKEE LETTER LI;Lo;0;L;;;;;N;;;;;-13B6;CHEROKEE LETTER LO;Lo;0;L;;;;;N;;;;;-13B7;CHEROKEE LETTER LU;Lo;0;L;;;;;N;;;;;-13B8;CHEROKEE LETTER LV;Lo;0;L;;;;;N;;;;;-13B9;CHEROKEE LETTER MA;Lo;0;L;;;;;N;;;;;-13BA;CHEROKEE LETTER ME;Lo;0;L;;;;;N;;;;;-13BB;CHEROKEE LETTER MI;Lo;0;L;;;;;N;;;;;-13BC;CHEROKEE LETTER MO;Lo;0;L;;;;;N;;;;;-13BD;CHEROKEE LETTER MU;Lo;0;L;;;;;N;;;;;-13BE;CHEROKEE LETTER NA;Lo;0;L;;;;;N;;;;;-13BF;CHEROKEE LETTER HNA;Lo;0;L;;;;;N;;;;;-13C0;CHEROKEE LETTER NAH;Lo;0;L;;;;;N;;;;;-13C1;CHEROKEE LETTER NE;Lo;0;L;;;;;N;;;;;-13C2;CHEROKEE LETTER NI;Lo;0;L;;;;;N;;;;;-13C3;CHEROKEE LETTER NO;Lo;0;L;;;;;N;;;;;-13C4;CHEROKEE LETTER NU;Lo;0;L;;;;;N;;;;;-13C5;CHEROKEE LETTER NV;Lo;0;L;;;;;N;;;;;-13C6;CHEROKEE LETTER QUA;Lo;0;L;;;;;N;;;;;-13C7;CHEROKEE LETTER QUE;Lo;0;L;;;;;N;;;;;-13C8;CHEROKEE LETTER QUI;Lo;0;L;;;;;N;;;;;-13C9;CHEROKEE LETTER QUO;Lo;0;L;;;;;N;;;;;-13CA;CHEROKEE LETTER QUU;Lo;0;L;;;;;N;;;;;-13CB;CHEROKEE LETTER QUV;Lo;0;L;;;;;N;;;;;-13CC;CHEROKEE LETTER SA;Lo;0;L;;;;;N;;;;;-13CD;CHEROKEE LETTER S;Lo;0;L;;;;;N;;;;;-13CE;CHEROKEE LETTER SE;Lo;0;L;;;;;N;;;;;-13CF;CHEROKEE LETTER SI;Lo;0;L;;;;;N;;;;;-13D0;CHEROKEE LETTER SO;Lo;0;L;;;;;N;;;;;-13D1;CHEROKEE LETTER SU;Lo;0;L;;;;;N;;;;;-13D2;CHEROKEE LETTER SV;Lo;0;L;;;;;N;;;;;-13D3;CHEROKEE LETTER DA;Lo;0;L;;;;;N;;;;;-13D4;CHEROKEE LETTER TA;Lo;0;L;;;;;N;;;;;-13D5;CHEROKEE LETTER DE;Lo;0;L;;;;;N;;;;;-13D6;CHEROKEE LETTER TE;Lo;0;L;;;;;N;;;;;-13D7;CHEROKEE LETTER DI;Lo;0;L;;;;;N;;;;;-13D8;CHEROKEE LETTER TI;Lo;0;L;;;;;N;;;;;-13D9;CHEROKEE LETTER DO;Lo;0;L;;;;;N;;;;;-13DA;CHEROKEE LETTER DU;Lo;0;L;;;;;N;;;;;-13DB;CHEROKEE LETTER DV;Lo;0;L;;;;;N;;;;;-13DC;CHEROKEE LETTER DLA;Lo;0;L;;;;;N;;;;;-13DD;CHEROKEE LETTER TLA;Lo;0;L;;;;;N;;;;;-13DE;CHEROKEE LETTER TLE;Lo;0;L;;;;;N;;;;;-13DF;CHEROKEE LETTER TLI;Lo;0;L;;;;;N;;;;;-13E0;CHEROKEE LETTER TLO;Lo;0;L;;;;;N;;;;;-13E1;CHEROKEE LETTER TLU;Lo;0;L;;;;;N;;;;;-13E2;CHEROKEE LETTER TLV;Lo;0;L;;;;;N;;;;;-13E3;CHEROKEE LETTER TSA;Lo;0;L;;;;;N;;;;;-13E4;CHEROKEE LETTER TSE;Lo;0;L;;;;;N;;;;;-13E5;CHEROKEE LETTER TSI;Lo;0;L;;;;;N;;;;;-13E6;CHEROKEE LETTER TSO;Lo;0;L;;;;;N;;;;;-13E7;CHEROKEE LETTER TSU;Lo;0;L;;;;;N;;;;;-13E8;CHEROKEE LETTER TSV;Lo;0;L;;;;;N;;;;;-13E9;CHEROKEE LETTER WA;Lo;0;L;;;;;N;;;;;-13EA;CHEROKEE LETTER WE;Lo;0;L;;;;;N;;;;;-13EB;CHEROKEE LETTER WI;Lo;0;L;;;;;N;;;;;-13EC;CHEROKEE LETTER WO;Lo;0;L;;;;;N;;;;;-13ED;CHEROKEE LETTER WU;Lo;0;L;;;;;N;;;;;-13EE;CHEROKEE LETTER WV;Lo;0;L;;;;;N;;;;;-13EF;CHEROKEE LETTER YA;Lo;0;L;;;;;N;;;;;-13F0;CHEROKEE LETTER YE;Lo;0;L;;;;;N;;;;;-13F1;CHEROKEE LETTER YI;Lo;0;L;;;;;N;;;;;-13F2;CHEROKEE LETTER YO;Lo;0;L;;;;;N;;;;;-13F3;CHEROKEE LETTER YU;Lo;0;L;;;;;N;;;;;-13F4;CHEROKEE LETTER YV;Lo;0;L;;;;;N;;;;;-1401;CANADIAN SYLLABICS E;Lo;0;L;;;;;N;;;;;-1402;CANADIAN SYLLABICS AAI;Lo;0;L;;;;;N;;;;;-1403;CANADIAN SYLLABICS I;Lo;0;L;;;;;N;;;;;-1404;CANADIAN SYLLABICS II;Lo;0;L;;;;;N;;;;;-1405;CANADIAN SYLLABICS O;Lo;0;L;;;;;N;;;;;-1406;CANADIAN SYLLABICS OO;Lo;0;L;;;;;N;;;;;-1407;CANADIAN SYLLABICS Y-CREE OO;Lo;0;L;;;;;N;;;;;-1408;CANADIAN SYLLABICS CARRIER EE;Lo;0;L;;;;;N;;;;;-1409;CANADIAN SYLLABICS CARRIER I;Lo;0;L;;;;;N;;;;;-140A;CANADIAN SYLLABICS A;Lo;0;L;;;;;N;;;;;-140B;CANADIAN SYLLABICS AA;Lo;0;L;;;;;N;;;;;-140C;CANADIAN SYLLABICS WE;Lo;0;L;;;;;N;;;;;-140D;CANADIAN SYLLABICS WEST-CREE WE;Lo;0;L;;;;;N;;;;;-140E;CANADIAN SYLLABICS WI;Lo;0;L;;;;;N;;;;;-140F;CANADIAN SYLLABICS WEST-CREE WI;Lo;0;L;;;;;N;;;;;-1410;CANADIAN SYLLABICS WII;Lo;0;L;;;;;N;;;;;-1411;CANADIAN SYLLABICS WEST-CREE WII;Lo;0;L;;;;;N;;;;;-1412;CANADIAN SYLLABICS WO;Lo;0;L;;;;;N;;;;;-1413;CANADIAN SYLLABICS WEST-CREE WO;Lo;0;L;;;;;N;;;;;-1414;CANADIAN SYLLABICS WOO;Lo;0;L;;;;;N;;;;;-1415;CANADIAN SYLLABICS WEST-CREE WOO;Lo;0;L;;;;;N;;;;;-1416;CANADIAN SYLLABICS NASKAPI WOO;Lo;0;L;;;;;N;;;;;-1417;CANADIAN SYLLABICS WA;Lo;0;L;;;;;N;;;;;-1418;CANADIAN SYLLABICS WEST-CREE WA;Lo;0;L;;;;;N;;;;;-1419;CANADIAN SYLLABICS WAA;Lo;0;L;;;;;N;;;;;-141A;CANADIAN SYLLABICS WEST-CREE WAA;Lo;0;L;;;;;N;;;;;-141B;CANADIAN SYLLABICS NASKAPI WAA;Lo;0;L;;;;;N;;;;;-141C;CANADIAN SYLLABICS AI;Lo;0;L;;;;;N;;;;;-141D;CANADIAN SYLLABICS Y-CREE W;Lo;0;L;;;;;N;;;;;-141E;CANADIAN SYLLABICS GLOTTAL STOP;Lo;0;L;;;;;N;;;;;-141F;CANADIAN SYLLABICS FINAL ACUTE;Lo;0;L;;;;;N;;;;;-1420;CANADIAN SYLLABICS FINAL GRAVE;Lo;0;L;;;;;N;;;;;-1421;CANADIAN SYLLABICS FINAL BOTTOM HALF RING;Lo;0;L;;;;;N;;;;;-1422;CANADIAN SYLLABICS FINAL TOP HALF RING;Lo;0;L;;;;;N;;;;;-1423;CANADIAN SYLLABICS FINAL RIGHT HALF RING;Lo;0;L;;;;;N;;;;;-1424;CANADIAN SYLLABICS FINAL RING;Lo;0;L;;;;;N;;;;;-1425;CANADIAN SYLLABICS FINAL DOUBLE ACUTE;Lo;0;L;;;;;N;;;;;-1426;CANADIAN SYLLABICS FINAL DOUBLE SHORT VERTICAL STROKES;Lo;0;L;;;;;N;;;;;-1427;CANADIAN SYLLABICS FINAL MIDDLE DOT;Lo;0;L;;;;;N;;;;;-1428;CANADIAN SYLLABICS FINAL SHORT HORIZONTAL STROKE;Lo;0;L;;;;;N;;;;;-1429;CANADIAN SYLLABICS FINAL PLUS;Lo;0;L;;;;;N;;;;;-142A;CANADIAN SYLLABICS FINAL DOWN TACK;Lo;0;L;;;;;N;;;;;-142B;CANADIAN SYLLABICS EN;Lo;0;L;;;;;N;;;;;-142C;CANADIAN SYLLABICS IN;Lo;0;L;;;;;N;;;;;-142D;CANADIAN SYLLABICS ON;Lo;0;L;;;;;N;;;;;-142E;CANADIAN SYLLABICS AN;Lo;0;L;;;;;N;;;;;-142F;CANADIAN SYLLABICS PE;Lo;0;L;;;;;N;;;;;-1430;CANADIAN SYLLABICS PAAI;Lo;0;L;;;;;N;;;;;-1431;CANADIAN SYLLABICS PI;Lo;0;L;;;;;N;;;;;-1432;CANADIAN SYLLABICS PII;Lo;0;L;;;;;N;;;;;-1433;CANADIAN SYLLABICS PO;Lo;0;L;;;;;N;;;;;-1434;CANADIAN SYLLABICS POO;Lo;0;L;;;;;N;;;;;-1435;CANADIAN SYLLABICS Y-CREE POO;Lo;0;L;;;;;N;;;;;-1436;CANADIAN SYLLABICS CARRIER HEE;Lo;0;L;;;;;N;;;;;-1437;CANADIAN SYLLABICS CARRIER HI;Lo;0;L;;;;;N;;;;;-1438;CANADIAN SYLLABICS PA;Lo;0;L;;;;;N;;;;;-1439;CANADIAN SYLLABICS PAA;Lo;0;L;;;;;N;;;;;-143A;CANADIAN SYLLABICS PWE;Lo;0;L;;;;;N;;;;;-143B;CANADIAN SYLLABICS WEST-CREE PWE;Lo;0;L;;;;;N;;;;;-143C;CANADIAN SYLLABICS PWI;Lo;0;L;;;;;N;;;;;-143D;CANADIAN SYLLABICS WEST-CREE PWI;Lo;0;L;;;;;N;;;;;-143E;CANADIAN SYLLABICS PWII;Lo;0;L;;;;;N;;;;;-143F;CANADIAN SYLLABICS WEST-CREE PWII;Lo;0;L;;;;;N;;;;;-1440;CANADIAN SYLLABICS PWO;Lo;0;L;;;;;N;;;;;-1441;CANADIAN SYLLABICS WEST-CREE PWO;Lo;0;L;;;;;N;;;;;-1442;CANADIAN SYLLABICS PWOO;Lo;0;L;;;;;N;;;;;-1443;CANADIAN SYLLABICS WEST-CREE PWOO;Lo;0;L;;;;;N;;;;;-1444;CANADIAN SYLLABICS PWA;Lo;0;L;;;;;N;;;;;-1445;CANADIAN SYLLABICS WEST-CREE PWA;Lo;0;L;;;;;N;;;;;-1446;CANADIAN SYLLABICS PWAA;Lo;0;L;;;;;N;;;;;-1447;CANADIAN SYLLABICS WEST-CREE PWAA;Lo;0;L;;;;;N;;;;;-1448;CANADIAN SYLLABICS Y-CREE PWAA;Lo;0;L;;;;;N;;;;;-1449;CANADIAN SYLLABICS P;Lo;0;L;;;;;N;;;;;-144A;CANADIAN SYLLABICS WEST-CREE P;Lo;0;L;;;;;N;;;;;-144B;CANADIAN SYLLABICS CARRIER H;Lo;0;L;;;;;N;;;;;-144C;CANADIAN SYLLABICS TE;Lo;0;L;;;;;N;;;;;-144D;CANADIAN SYLLABICS TAAI;Lo;0;L;;;;;N;;;;;-144E;CANADIAN SYLLABICS TI;Lo;0;L;;;;;N;;;;;-144F;CANADIAN SYLLABICS TII;Lo;0;L;;;;;N;;;;;-1450;CANADIAN SYLLABICS TO;Lo;0;L;;;;;N;;;;;-1451;CANADIAN SYLLABICS TOO;Lo;0;L;;;;;N;;;;;-1452;CANADIAN SYLLABICS Y-CREE TOO;Lo;0;L;;;;;N;;;;;-1453;CANADIAN SYLLABICS CARRIER DEE;Lo;0;L;;;;;N;;;;;-1454;CANADIAN SYLLABICS CARRIER DI;Lo;0;L;;;;;N;;;;;-1455;CANADIAN SYLLABICS TA;Lo;0;L;;;;;N;;;;;-1456;CANADIAN SYLLABICS TAA;Lo;0;L;;;;;N;;;;;-1457;CANADIAN SYLLABICS TWE;Lo;0;L;;;;;N;;;;;-1458;CANADIAN SYLLABICS WEST-CREE TWE;Lo;0;L;;;;;N;;;;;-1459;CANADIAN SYLLABICS TWI;Lo;0;L;;;;;N;;;;;-145A;CANADIAN SYLLABICS WEST-CREE TWI;Lo;0;L;;;;;N;;;;;-145B;CANADIAN SYLLABICS TWII;Lo;0;L;;;;;N;;;;;-145C;CANADIAN SYLLABICS WEST-CREE TWII;Lo;0;L;;;;;N;;;;;-145D;CANADIAN SYLLABICS TWO;Lo;0;L;;;;;N;;;;;-145E;CANADIAN SYLLABICS WEST-CREE TWO;Lo;0;L;;;;;N;;;;;-145F;CANADIAN SYLLABICS TWOO;Lo;0;L;;;;;N;;;;;-1460;CANADIAN SYLLABICS WEST-CREE TWOO;Lo;0;L;;;;;N;;;;;-1461;CANADIAN SYLLABICS TWA;Lo;0;L;;;;;N;;;;;-1462;CANADIAN SYLLABICS WEST-CREE TWA;Lo;0;L;;;;;N;;;;;-1463;CANADIAN SYLLABICS TWAA;Lo;0;L;;;;;N;;;;;-1464;CANADIAN SYLLABICS WEST-CREE TWAA;Lo;0;L;;;;;N;;;;;-1465;CANADIAN SYLLABICS NASKAPI TWAA;Lo;0;L;;;;;N;;;;;-1466;CANADIAN SYLLABICS T;Lo;0;L;;;;;N;;;;;-1467;CANADIAN SYLLABICS TTE;Lo;0;L;;;;;N;;;;;-1468;CANADIAN SYLLABICS TTI;Lo;0;L;;;;;N;;;;;-1469;CANADIAN SYLLABICS TTO;Lo;0;L;;;;;N;;;;;-146A;CANADIAN SYLLABICS TTA;Lo;0;L;;;;;N;;;;;-146B;CANADIAN SYLLABICS KE;Lo;0;L;;;;;N;;;;;-146C;CANADIAN SYLLABICS KAAI;Lo;0;L;;;;;N;;;;;-146D;CANADIAN SYLLABICS KI;Lo;0;L;;;;;N;;;;;-146E;CANADIAN SYLLABICS KII;Lo;0;L;;;;;N;;;;;-146F;CANADIAN SYLLABICS KO;Lo;0;L;;;;;N;;;;;-1470;CANADIAN SYLLABICS KOO;Lo;0;L;;;;;N;;;;;-1471;CANADIAN SYLLABICS Y-CREE KOO;Lo;0;L;;;;;N;;;;;-1472;CANADIAN SYLLABICS KA;Lo;0;L;;;;;N;;;;;-1473;CANADIAN SYLLABICS KAA;Lo;0;L;;;;;N;;;;;-1474;CANADIAN SYLLABICS KWE;Lo;0;L;;;;;N;;;;;-1475;CANADIAN SYLLABICS WEST-CREE KWE;Lo;0;L;;;;;N;;;;;-1476;CANADIAN SYLLABICS KWI;Lo;0;L;;;;;N;;;;;-1477;CANADIAN SYLLABICS WEST-CREE KWI;Lo;0;L;;;;;N;;;;;-1478;CANADIAN SYLLABICS KWII;Lo;0;L;;;;;N;;;;;-1479;CANADIAN SYLLABICS WEST-CREE KWII;Lo;0;L;;;;;N;;;;;-147A;CANADIAN SYLLABICS KWO;Lo;0;L;;;;;N;;;;;-147B;CANADIAN SYLLABICS WEST-CREE KWO;Lo;0;L;;;;;N;;;;;-147C;CANADIAN SYLLABICS KWOO;Lo;0;L;;;;;N;;;;;-147D;CANADIAN SYLLABICS WEST-CREE KWOO;Lo;0;L;;;;;N;;;;;-147E;CANADIAN SYLLABICS KWA;Lo;0;L;;;;;N;;;;;-147F;CANADIAN SYLLABICS WEST-CREE KWA;Lo;0;L;;;;;N;;;;;-1480;CANADIAN SYLLABICS KWAA;Lo;0;L;;;;;N;;;;;-1481;CANADIAN SYLLABICS WEST-CREE KWAA;Lo;0;L;;;;;N;;;;;-1482;CANADIAN SYLLABICS NASKAPI KWAA;Lo;0;L;;;;;N;;;;;-1483;CANADIAN SYLLABICS K;Lo;0;L;;;;;N;;;;;-1484;CANADIAN SYLLABICS KW;Lo;0;L;;;;;N;;;;;-1485;CANADIAN SYLLABICS SOUTH-SLAVEY KEH;Lo;0;L;;;;;N;;;;;-1486;CANADIAN SYLLABICS SOUTH-SLAVEY KIH;Lo;0;L;;;;;N;;;;;-1487;CANADIAN SYLLABICS SOUTH-SLAVEY KOH;Lo;0;L;;;;;N;;;;;-1488;CANADIAN SYLLABICS SOUTH-SLAVEY KAH;Lo;0;L;;;;;N;;;;;-1489;CANADIAN SYLLABICS CE;Lo;0;L;;;;;N;;;;;-148A;CANADIAN SYLLABICS CAAI;Lo;0;L;;;;;N;;;;;-148B;CANADIAN SYLLABICS CI;Lo;0;L;;;;;N;;;;;-148C;CANADIAN SYLLABICS CII;Lo;0;L;;;;;N;;;;;-148D;CANADIAN SYLLABICS CO;Lo;0;L;;;;;N;;;;;-148E;CANADIAN SYLLABICS COO;Lo;0;L;;;;;N;;;;;-148F;CANADIAN SYLLABICS Y-CREE COO;Lo;0;L;;;;;N;;;;;-1490;CANADIAN SYLLABICS CA;Lo;0;L;;;;;N;;;;;-1491;CANADIAN SYLLABICS CAA;Lo;0;L;;;;;N;;;;;-1492;CANADIAN SYLLABICS CWE;Lo;0;L;;;;;N;;;;;-1493;CANADIAN SYLLABICS WEST-CREE CWE;Lo;0;L;;;;;N;;;;;-1494;CANADIAN SYLLABICS CWI;Lo;0;L;;;;;N;;;;;-1495;CANADIAN SYLLABICS WEST-CREE CWI;Lo;0;L;;;;;N;;;;;-1496;CANADIAN SYLLABICS CWII;Lo;0;L;;;;;N;;;;;-1497;CANADIAN SYLLABICS WEST-CREE CWII;Lo;0;L;;;;;N;;;;;-1498;CANADIAN SYLLABICS CWO;Lo;0;L;;;;;N;;;;;-1499;CANADIAN SYLLABICS WEST-CREE CWO;Lo;0;L;;;;;N;;;;;-149A;CANADIAN SYLLABICS CWOO;Lo;0;L;;;;;N;;;;;-149B;CANADIAN SYLLABICS WEST-CREE CWOO;Lo;0;L;;;;;N;;;;;-149C;CANADIAN SYLLABICS CWA;Lo;0;L;;;;;N;;;;;-149D;CANADIAN SYLLABICS WEST-CREE CWA;Lo;0;L;;;;;N;;;;;-149E;CANADIAN SYLLABICS CWAA;Lo;0;L;;;;;N;;;;;-149F;CANADIAN SYLLABICS WEST-CREE CWAA;Lo;0;L;;;;;N;;;;;-14A0;CANADIAN SYLLABICS NASKAPI CWAA;Lo;0;L;;;;;N;;;;;-14A1;CANADIAN SYLLABICS C;Lo;0;L;;;;;N;;;;;-14A2;CANADIAN SYLLABICS SAYISI TH;Lo;0;L;;;;;N;;;;;-14A3;CANADIAN SYLLABICS ME;Lo;0;L;;;;;N;;;;;-14A4;CANADIAN SYLLABICS MAAI;Lo;0;L;;;;;N;;;;;-14A5;CANADIAN SYLLABICS MI;Lo;0;L;;;;;N;;;;;-14A6;CANADIAN SYLLABICS MII;Lo;0;L;;;;;N;;;;;-14A7;CANADIAN SYLLABICS MO;Lo;0;L;;;;;N;;;;;-14A8;CANADIAN SYLLABICS MOO;Lo;0;L;;;;;N;;;;;-14A9;CANADIAN SYLLABICS Y-CREE MOO;Lo;0;L;;;;;N;;;;;-14AA;CANADIAN SYLLABICS MA;Lo;0;L;;;;;N;;;;;-14AB;CANADIAN SYLLABICS MAA;Lo;0;L;;;;;N;;;;;-14AC;CANADIAN SYLLABICS MWE;Lo;0;L;;;;;N;;;;;-14AD;CANADIAN SYLLABICS WEST-CREE MWE;Lo;0;L;;;;;N;;;;;-14AE;CANADIAN SYLLABICS MWI;Lo;0;L;;;;;N;;;;;-14AF;CANADIAN SYLLABICS WEST-CREE MWI;Lo;0;L;;;;;N;;;;;-14B0;CANADIAN SYLLABICS MWII;Lo;0;L;;;;;N;;;;;-14B1;CANADIAN SYLLABICS WEST-CREE MWII;Lo;0;L;;;;;N;;;;;-14B2;CANADIAN SYLLABICS MWO;Lo;0;L;;;;;N;;;;;-14B3;CANADIAN SYLLABICS WEST-CREE MWO;Lo;0;L;;;;;N;;;;;-14B4;CANADIAN SYLLABICS MWOO;Lo;0;L;;;;;N;;;;;-14B5;CANADIAN SYLLABICS WEST-CREE MWOO;Lo;0;L;;;;;N;;;;;-14B6;CANADIAN SYLLABICS MWA;Lo;0;L;;;;;N;;;;;-14B7;CANADIAN SYLLABICS WEST-CREE MWA;Lo;0;L;;;;;N;;;;;-14B8;CANADIAN SYLLABICS MWAA;Lo;0;L;;;;;N;;;;;-14B9;CANADIAN SYLLABICS WEST-CREE MWAA;Lo;0;L;;;;;N;;;;;-14BA;CANADIAN SYLLABICS NASKAPI MWAA;Lo;0;L;;;;;N;;;;;-14BB;CANADIAN SYLLABICS M;Lo;0;L;;;;;N;;;;;-14BC;CANADIAN SYLLABICS WEST-CREE M;Lo;0;L;;;;;N;;;;;-14BD;CANADIAN SYLLABICS MH;Lo;0;L;;;;;N;;;;;-14BE;CANADIAN SYLLABICS ATHAPASCAN M;Lo;0;L;;;;;N;;;;;-14BF;CANADIAN SYLLABICS SAYISI M;Lo;0;L;;;;;N;;;;;-14C0;CANADIAN SYLLABICS NE;Lo;0;L;;;;;N;;;;;-14C1;CANADIAN SYLLABICS NAAI;Lo;0;L;;;;;N;;;;;-14C2;CANADIAN SYLLABICS NI;Lo;0;L;;;;;N;;;;;-14C3;CANADIAN SYLLABICS NII;Lo;0;L;;;;;N;;;;;-14C4;CANADIAN SYLLABICS NO;Lo;0;L;;;;;N;;;;;-14C5;CANADIAN SYLLABICS NOO;Lo;0;L;;;;;N;;;;;-14C6;CANADIAN SYLLABICS Y-CREE NOO;Lo;0;L;;;;;N;;;;;-14C7;CANADIAN SYLLABICS NA;Lo;0;L;;;;;N;;;;;-14C8;CANADIAN SYLLABICS NAA;Lo;0;L;;;;;N;;;;;-14C9;CANADIAN SYLLABICS NWE;Lo;0;L;;;;;N;;;;;-14CA;CANADIAN SYLLABICS WEST-CREE NWE;Lo;0;L;;;;;N;;;;;-14CB;CANADIAN SYLLABICS NWA;Lo;0;L;;;;;N;;;;;-14CC;CANADIAN SYLLABICS WEST-CREE NWA;Lo;0;L;;;;;N;;;;;-14CD;CANADIAN SYLLABICS NWAA;Lo;0;L;;;;;N;;;;;-14CE;CANADIAN SYLLABICS WEST-CREE NWAA;Lo;0;L;;;;;N;;;;;-14CF;CANADIAN SYLLABICS NASKAPI NWAA;Lo;0;L;;;;;N;;;;;-14D0;CANADIAN SYLLABICS N;Lo;0;L;;;;;N;;;;;-14D1;CANADIAN SYLLABICS CARRIER NG;Lo;0;L;;;;;N;;;;;-14D2;CANADIAN SYLLABICS NH;Lo;0;L;;;;;N;;;;;-14D3;CANADIAN SYLLABICS LE;Lo;0;L;;;;;N;;;;;-14D4;CANADIAN SYLLABICS LAAI;Lo;0;L;;;;;N;;;;;-14D5;CANADIAN SYLLABICS LI;Lo;0;L;;;;;N;;;;;-14D6;CANADIAN SYLLABICS LII;Lo;0;L;;;;;N;;;;;-14D7;CANADIAN SYLLABICS LO;Lo;0;L;;;;;N;;;;;-14D8;CANADIAN SYLLABICS LOO;Lo;0;L;;;;;N;;;;;-14D9;CANADIAN SYLLABICS Y-CREE LOO;Lo;0;L;;;;;N;;;;;-14DA;CANADIAN SYLLABICS LA;Lo;0;L;;;;;N;;;;;-14DB;CANADIAN SYLLABICS LAA;Lo;0;L;;;;;N;;;;;-14DC;CANADIAN SYLLABICS LWE;Lo;0;L;;;;;N;;;;;-14DD;CANADIAN SYLLABICS WEST-CREE LWE;Lo;0;L;;;;;N;;;;;-14DE;CANADIAN SYLLABICS LWI;Lo;0;L;;;;;N;;;;;-14DF;CANADIAN SYLLABICS WEST-CREE LWI;Lo;0;L;;;;;N;;;;;-14E0;CANADIAN SYLLABICS LWII;Lo;0;L;;;;;N;;;;;-14E1;CANADIAN SYLLABICS WEST-CREE LWII;Lo;0;L;;;;;N;;;;;-14E2;CANADIAN SYLLABICS LWO;Lo;0;L;;;;;N;;;;;-14E3;CANADIAN SYLLABICS WEST-CREE LWO;Lo;0;L;;;;;N;;;;;-14E4;CANADIAN SYLLABICS LWOO;Lo;0;L;;;;;N;;;;;-14E5;CANADIAN SYLLABICS WEST-CREE LWOO;Lo;0;L;;;;;N;;;;;-14E6;CANADIAN SYLLABICS LWA;Lo;0;L;;;;;N;;;;;-14E7;CANADIAN SYLLABICS WEST-CREE LWA;Lo;0;L;;;;;N;;;;;-14E8;CANADIAN SYLLABICS LWAA;Lo;0;L;;;;;N;;;;;-14E9;CANADIAN SYLLABICS WEST-CREE LWAA;Lo;0;L;;;;;N;;;;;-14EA;CANADIAN SYLLABICS L;Lo;0;L;;;;;N;;;;;-14EB;CANADIAN SYLLABICS WEST-CREE L;Lo;0;L;;;;;N;;;;;-14EC;CANADIAN SYLLABICS MEDIAL L;Lo;0;L;;;;;N;;;;;-14ED;CANADIAN SYLLABICS SE;Lo;0;L;;;;;N;;;;;-14EE;CANADIAN SYLLABICS SAAI;Lo;0;L;;;;;N;;;;;-14EF;CANADIAN SYLLABICS SI;Lo;0;L;;;;;N;;;;;-14F0;CANADIAN SYLLABICS SII;Lo;0;L;;;;;N;;;;;-14F1;CANADIAN SYLLABICS SO;Lo;0;L;;;;;N;;;;;-14F2;CANADIAN SYLLABICS SOO;Lo;0;L;;;;;N;;;;;-14F3;CANADIAN SYLLABICS Y-CREE SOO;Lo;0;L;;;;;N;;;;;-14F4;CANADIAN SYLLABICS SA;Lo;0;L;;;;;N;;;;;-14F5;CANADIAN SYLLABICS SAA;Lo;0;L;;;;;N;;;;;-14F6;CANADIAN SYLLABICS SWE;Lo;0;L;;;;;N;;;;;-14F7;CANADIAN SYLLABICS WEST-CREE SWE;Lo;0;L;;;;;N;;;;;-14F8;CANADIAN SYLLABICS SWI;Lo;0;L;;;;;N;;;;;-14F9;CANADIAN SYLLABICS WEST-CREE SWI;Lo;0;L;;;;;N;;;;;-14FA;CANADIAN SYLLABICS SWII;Lo;0;L;;;;;N;;;;;-14FB;CANADIAN SYLLABICS WEST-CREE SWII;Lo;0;L;;;;;N;;;;;-14FC;CANADIAN SYLLABICS SWO;Lo;0;L;;;;;N;;;;;-14FD;CANADIAN SYLLABICS WEST-CREE SWO;Lo;0;L;;;;;N;;;;;-14FE;CANADIAN SYLLABICS SWOO;Lo;0;L;;;;;N;;;;;-14FF;CANADIAN SYLLABICS WEST-CREE SWOO;Lo;0;L;;;;;N;;;;;-1500;CANADIAN SYLLABICS SWA;Lo;0;L;;;;;N;;;;;-1501;CANADIAN SYLLABICS WEST-CREE SWA;Lo;0;L;;;;;N;;;;;-1502;CANADIAN SYLLABICS SWAA;Lo;0;L;;;;;N;;;;;-1503;CANADIAN SYLLABICS WEST-CREE SWAA;Lo;0;L;;;;;N;;;;;-1504;CANADIAN SYLLABICS NASKAPI SWAA;Lo;0;L;;;;;N;;;;;-1505;CANADIAN SYLLABICS S;Lo;0;L;;;;;N;;;;;-1506;CANADIAN SYLLABICS ATHAPASCAN S;Lo;0;L;;;;;N;;;;;-1507;CANADIAN SYLLABICS SW;Lo;0;L;;;;;N;;;;;-1508;CANADIAN SYLLABICS BLACKFOOT S;Lo;0;L;;;;;N;;;;;-1509;CANADIAN SYLLABICS MOOSE-CREE SK;Lo;0;L;;;;;N;;;;;-150A;CANADIAN SYLLABICS NASKAPI SKW;Lo;0;L;;;;;N;;;;;-150B;CANADIAN SYLLABICS NASKAPI S-W;Lo;0;L;;;;;N;;;;;-150C;CANADIAN SYLLABICS NASKAPI SPWA;Lo;0;L;;;;;N;;;;;-150D;CANADIAN SYLLABICS NASKAPI STWA;Lo;0;L;;;;;N;;;;;-150E;CANADIAN SYLLABICS NASKAPI SKWA;Lo;0;L;;;;;N;;;;;-150F;CANADIAN SYLLABICS NASKAPI SCWA;Lo;0;L;;;;;N;;;;;-1510;CANADIAN SYLLABICS SHE;Lo;0;L;;;;;N;;;;;-1511;CANADIAN SYLLABICS SHI;Lo;0;L;;;;;N;;;;;-1512;CANADIAN SYLLABICS SHII;Lo;0;L;;;;;N;;;;;-1513;CANADIAN SYLLABICS SHO;Lo;0;L;;;;;N;;;;;-1514;CANADIAN SYLLABICS SHOO;Lo;0;L;;;;;N;;;;;-1515;CANADIAN SYLLABICS SHA;Lo;0;L;;;;;N;;;;;-1516;CANADIAN SYLLABICS SHAA;Lo;0;L;;;;;N;;;;;-1517;CANADIAN SYLLABICS SHWE;Lo;0;L;;;;;N;;;;;-1518;CANADIAN SYLLABICS WEST-CREE SHWE;Lo;0;L;;;;;N;;;;;-1519;CANADIAN SYLLABICS SHWI;Lo;0;L;;;;;N;;;;;-151A;CANADIAN SYLLABICS WEST-CREE SHWI;Lo;0;L;;;;;N;;;;;-151B;CANADIAN SYLLABICS SHWII;Lo;0;L;;;;;N;;;;;-151C;CANADIAN SYLLABICS WEST-CREE SHWII;Lo;0;L;;;;;N;;;;;-151D;CANADIAN SYLLABICS SHWO;Lo;0;L;;;;;N;;;;;-151E;CANADIAN SYLLABICS WEST-CREE SHWO;Lo;0;L;;;;;N;;;;;-151F;CANADIAN SYLLABICS SHWOO;Lo;0;L;;;;;N;;;;;-1520;CANADIAN SYLLABICS WEST-CREE SHWOO;Lo;0;L;;;;;N;;;;;-1521;CANADIAN SYLLABICS SHWA;Lo;0;L;;;;;N;;;;;-1522;CANADIAN SYLLABICS WEST-CREE SHWA;Lo;0;L;;;;;N;;;;;-1523;CANADIAN SYLLABICS SHWAA;Lo;0;L;;;;;N;;;;;-1524;CANADIAN SYLLABICS WEST-CREE SHWAA;Lo;0;L;;;;;N;;;;;-1525;CANADIAN SYLLABICS SH;Lo;0;L;;;;;N;;;;;-1526;CANADIAN SYLLABICS YE;Lo;0;L;;;;;N;;;;;-1527;CANADIAN SYLLABICS YAAI;Lo;0;L;;;;;N;;;;;-1528;CANADIAN SYLLABICS YI;Lo;0;L;;;;;N;;;;;-1529;CANADIAN SYLLABICS YII;Lo;0;L;;;;;N;;;;;-152A;CANADIAN SYLLABICS YO;Lo;0;L;;;;;N;;;;;-152B;CANADIAN SYLLABICS YOO;Lo;0;L;;;;;N;;;;;-152C;CANADIAN SYLLABICS Y-CREE YOO;Lo;0;L;;;;;N;;;;;-152D;CANADIAN SYLLABICS YA;Lo;0;L;;;;;N;;;;;-152E;CANADIAN SYLLABICS YAA;Lo;0;L;;;;;N;;;;;-152F;CANADIAN SYLLABICS YWE;Lo;0;L;;;;;N;;;;;-1530;CANADIAN SYLLABICS WEST-CREE YWE;Lo;0;L;;;;;N;;;;;-1531;CANADIAN SYLLABICS YWI;Lo;0;L;;;;;N;;;;;-1532;CANADIAN SYLLABICS WEST-CREE YWI;Lo;0;L;;;;;N;;;;;-1533;CANADIAN SYLLABICS YWII;Lo;0;L;;;;;N;;;;;-1534;CANADIAN SYLLABICS WEST-CREE YWII;Lo;0;L;;;;;N;;;;;-1535;CANADIAN SYLLABICS YWO;Lo;0;L;;;;;N;;;;;-1536;CANADIAN SYLLABICS WEST-CREE YWO;Lo;0;L;;;;;N;;;;;-1537;CANADIAN SYLLABICS YWOO;Lo;0;L;;;;;N;;;;;-1538;CANADIAN SYLLABICS WEST-CREE YWOO;Lo;0;L;;;;;N;;;;;-1539;CANADIAN SYLLABICS YWA;Lo;0;L;;;;;N;;;;;-153A;CANADIAN SYLLABICS WEST-CREE YWA;Lo;0;L;;;;;N;;;;;-153B;CANADIAN SYLLABICS YWAA;Lo;0;L;;;;;N;;;;;-153C;CANADIAN SYLLABICS WEST-CREE YWAA;Lo;0;L;;;;;N;;;;;-153D;CANADIAN SYLLABICS NASKAPI YWAA;Lo;0;L;;;;;N;;;;;-153E;CANADIAN SYLLABICS Y;Lo;0;L;;;;;N;;;;;-153F;CANADIAN SYLLABICS BIBLE-CREE Y;Lo;0;L;;;;;N;;;;;-1540;CANADIAN SYLLABICS WEST-CREE Y;Lo;0;L;;;;;N;;;;;-1541;CANADIAN SYLLABICS SAYISI YI;Lo;0;L;;;;;N;;;;;-1542;CANADIAN SYLLABICS RE;Lo;0;L;;;;;N;;;;;-1543;CANADIAN SYLLABICS R-CREE RE;Lo;0;L;;;;;N;;;;;-1544;CANADIAN SYLLABICS WEST-CREE LE;Lo;0;L;;;;;N;;;;;-1545;CANADIAN SYLLABICS RAAI;Lo;0;L;;;;;N;;;;;-1546;CANADIAN SYLLABICS RI;Lo;0;L;;;;;N;;;;;-1547;CANADIAN SYLLABICS RII;Lo;0;L;;;;;N;;;;;-1548;CANADIAN SYLLABICS RO;Lo;0;L;;;;;N;;;;;-1549;CANADIAN SYLLABICS ROO;Lo;0;L;;;;;N;;;;;-154A;CANADIAN SYLLABICS WEST-CREE LO;Lo;0;L;;;;;N;;;;;-154B;CANADIAN SYLLABICS RA;Lo;0;L;;;;;N;;;;;-154C;CANADIAN SYLLABICS RAA;Lo;0;L;;;;;N;;;;;-154D;CANADIAN SYLLABICS WEST-CREE LA;Lo;0;L;;;;;N;;;;;-154E;CANADIAN SYLLABICS RWAA;Lo;0;L;;;;;N;;;;;-154F;CANADIAN SYLLABICS WEST-CREE RWAA;Lo;0;L;;;;;N;;;;;-1550;CANADIAN SYLLABICS R;Lo;0;L;;;;;N;;;;;-1551;CANADIAN SYLLABICS WEST-CREE R;Lo;0;L;;;;;N;;;;;-1552;CANADIAN SYLLABICS MEDIAL R;Lo;0;L;;;;;N;;;;;-1553;CANADIAN SYLLABICS FE;Lo;0;L;;;;;N;;;;;-1554;CANADIAN SYLLABICS FAAI;Lo;0;L;;;;;N;;;;;-1555;CANADIAN SYLLABICS FI;Lo;0;L;;;;;N;;;;;-1556;CANADIAN SYLLABICS FII;Lo;0;L;;;;;N;;;;;-1557;CANADIAN SYLLABICS FO;Lo;0;L;;;;;N;;;;;-1558;CANADIAN SYLLABICS FOO;Lo;0;L;;;;;N;;;;;-1559;CANADIAN SYLLABICS FA;Lo;0;L;;;;;N;;;;;-155A;CANADIAN SYLLABICS FAA;Lo;0;L;;;;;N;;;;;-155B;CANADIAN SYLLABICS FWAA;Lo;0;L;;;;;N;;;;;-155C;CANADIAN SYLLABICS WEST-CREE FWAA;Lo;0;L;;;;;N;;;;;-155D;CANADIAN SYLLABICS F;Lo;0;L;;;;;N;;;;;-155E;CANADIAN SYLLABICS THE;Lo;0;L;;;;;N;;;;;-155F;CANADIAN SYLLABICS N-CREE THE;Lo;0;L;;;;;N;;;;;-1560;CANADIAN SYLLABICS THI;Lo;0;L;;;;;N;;;;;-1561;CANADIAN SYLLABICS N-CREE THI;Lo;0;L;;;;;N;;;;;-1562;CANADIAN SYLLABICS THII;Lo;0;L;;;;;N;;;;;-1563;CANADIAN SYLLABICS N-CREE THII;Lo;0;L;;;;;N;;;;;-1564;CANADIAN SYLLABICS THO;Lo;0;L;;;;;N;;;;;-1565;CANADIAN SYLLABICS THOO;Lo;0;L;;;;;N;;;;;-1566;CANADIAN SYLLABICS THA;Lo;0;L;;;;;N;;;;;-1567;CANADIAN SYLLABICS THAA;Lo;0;L;;;;;N;;;;;-1568;CANADIAN SYLLABICS THWAA;Lo;0;L;;;;;N;;;;;-1569;CANADIAN SYLLABICS WEST-CREE THWAA;Lo;0;L;;;;;N;;;;;-156A;CANADIAN SYLLABICS TH;Lo;0;L;;;;;N;;;;;-156B;CANADIAN SYLLABICS TTHE;Lo;0;L;;;;;N;;;;;-156C;CANADIAN SYLLABICS TTHI;Lo;0;L;;;;;N;;;;;-156D;CANADIAN SYLLABICS TTHO;Lo;0;L;;;;;N;;;;;-156E;CANADIAN SYLLABICS TTHA;Lo;0;L;;;;;N;;;;;-156F;CANADIAN SYLLABICS TTH;Lo;0;L;;;;;N;;;;;-1570;CANADIAN SYLLABICS TYE;Lo;0;L;;;;;N;;;;;-1571;CANADIAN SYLLABICS TYI;Lo;0;L;;;;;N;;;;;-1572;CANADIAN SYLLABICS TYO;Lo;0;L;;;;;N;;;;;-1573;CANADIAN SYLLABICS TYA;Lo;0;L;;;;;N;;;;;-1574;CANADIAN SYLLABICS NUNAVIK HE;Lo;0;L;;;;;N;;;;;-1575;CANADIAN SYLLABICS NUNAVIK HI;Lo;0;L;;;;;N;;;;;-1576;CANADIAN SYLLABICS NUNAVIK HII;Lo;0;L;;;;;N;;;;;-1577;CANADIAN SYLLABICS NUNAVIK HO;Lo;0;L;;;;;N;;;;;-1578;CANADIAN SYLLABICS NUNAVIK HOO;Lo;0;L;;;;;N;;;;;-1579;CANADIAN SYLLABICS NUNAVIK HA;Lo;0;L;;;;;N;;;;;-157A;CANADIAN SYLLABICS NUNAVIK HAA;Lo;0;L;;;;;N;;;;;-157B;CANADIAN SYLLABICS NUNAVIK H;Lo;0;L;;;;;N;;;;;-157C;CANADIAN SYLLABICS NUNAVUT H;Lo;0;L;;;;;N;;;;;-157D;CANADIAN SYLLABICS HK;Lo;0;L;;;;;N;;;;;-157E;CANADIAN SYLLABICS QAAI;Lo;0;L;;;;;N;;;;;-157F;CANADIAN SYLLABICS QI;Lo;0;L;;;;;N;;;;;-1580;CANADIAN SYLLABICS QII;Lo;0;L;;;;;N;;;;;-1581;CANADIAN SYLLABICS QO;Lo;0;L;;;;;N;;;;;-1582;CANADIAN SYLLABICS QOO;Lo;0;L;;;;;N;;;;;-1583;CANADIAN SYLLABICS QA;Lo;0;L;;;;;N;;;;;-1584;CANADIAN SYLLABICS QAA;Lo;0;L;;;;;N;;;;;-1585;CANADIAN SYLLABICS Q;Lo;0;L;;;;;N;;;;;-1586;CANADIAN SYLLABICS TLHE;Lo;0;L;;;;;N;;;;;-1587;CANADIAN SYLLABICS TLHI;Lo;0;L;;;;;N;;;;;-1588;CANADIAN SYLLABICS TLHO;Lo;0;L;;;;;N;;;;;-1589;CANADIAN SYLLABICS TLHA;Lo;0;L;;;;;N;;;;;-158A;CANADIAN SYLLABICS WEST-CREE RE;Lo;0;L;;;;;N;;;;;-158B;CANADIAN SYLLABICS WEST-CREE RI;Lo;0;L;;;;;N;;;;;-158C;CANADIAN SYLLABICS WEST-CREE RO;Lo;0;L;;;;;N;;;;;-158D;CANADIAN SYLLABICS WEST-CREE RA;Lo;0;L;;;;;N;;;;;-158E;CANADIAN SYLLABICS NGAAI;Lo;0;L;;;;;N;;;;;-158F;CANADIAN SYLLABICS NGI;Lo;0;L;;;;;N;;;;;-1590;CANADIAN SYLLABICS NGII;Lo;0;L;;;;;N;;;;;-1591;CANADIAN SYLLABICS NGO;Lo;0;L;;;;;N;;;;;-1592;CANADIAN SYLLABICS NGOO;Lo;0;L;;;;;N;;;;;-1593;CANADIAN SYLLABICS NGA;Lo;0;L;;;;;N;;;;;-1594;CANADIAN SYLLABICS NGAA;Lo;0;L;;;;;N;;;;;-1595;CANADIAN SYLLABICS NG;Lo;0;L;;;;;N;;;;;-1596;CANADIAN SYLLABICS NNG;Lo;0;L;;;;;N;;;;;-1597;CANADIAN SYLLABICS SAYISI SHE;Lo;0;L;;;;;N;;;;;-1598;CANADIAN SYLLABICS SAYISI SHI;Lo;0;L;;;;;N;;;;;-1599;CANADIAN SYLLABICS SAYISI SHO;Lo;0;L;;;;;N;;;;;-159A;CANADIAN SYLLABICS SAYISI SHA;Lo;0;L;;;;;N;;;;;-159B;CANADIAN SYLLABICS WOODS-CREE THE;Lo;0;L;;;;;N;;;;;-159C;CANADIAN SYLLABICS WOODS-CREE THI;Lo;0;L;;;;;N;;;;;-159D;CANADIAN SYLLABICS WOODS-CREE THO;Lo;0;L;;;;;N;;;;;-159E;CANADIAN SYLLABICS WOODS-CREE THA;Lo;0;L;;;;;N;;;;;-159F;CANADIAN SYLLABICS WOODS-CREE TH;Lo;0;L;;;;;N;;;;;-15A0;CANADIAN SYLLABICS LHI;Lo;0;L;;;;;N;;;;;-15A1;CANADIAN SYLLABICS LHII;Lo;0;L;;;;;N;;;;;-15A2;CANADIAN SYLLABICS LHO;Lo;0;L;;;;;N;;;;;-15A3;CANADIAN SYLLABICS LHOO;Lo;0;L;;;;;N;;;;;-15A4;CANADIAN SYLLABICS LHA;Lo;0;L;;;;;N;;;;;-15A5;CANADIAN SYLLABICS LHAA;Lo;0;L;;;;;N;;;;;-15A6;CANADIAN SYLLABICS LH;Lo;0;L;;;;;N;;;;;-15A7;CANADIAN SYLLABICS TH-CREE THE;Lo;0;L;;;;;N;;;;;-15A8;CANADIAN SYLLABICS TH-CREE THI;Lo;0;L;;;;;N;;;;;-15A9;CANADIAN SYLLABICS TH-CREE THII;Lo;0;L;;;;;N;;;;;-15AA;CANADIAN SYLLABICS TH-CREE THO;Lo;0;L;;;;;N;;;;;-15AB;CANADIAN SYLLABICS TH-CREE THOO;Lo;0;L;;;;;N;;;;;-15AC;CANADIAN SYLLABICS TH-CREE THA;Lo;0;L;;;;;N;;;;;-15AD;CANADIAN SYLLABICS TH-CREE THAA;Lo;0;L;;;;;N;;;;;-15AE;CANADIAN SYLLABICS TH-CREE TH;Lo;0;L;;;;;N;;;;;-15AF;CANADIAN SYLLABICS AIVILIK B;Lo;0;L;;;;;N;;;;;-15B0;CANADIAN SYLLABICS BLACKFOOT E;Lo;0;L;;;;;N;;;;;-15B1;CANADIAN SYLLABICS BLACKFOOT I;Lo;0;L;;;;;N;;;;;-15B2;CANADIAN SYLLABICS BLACKFOOT O;Lo;0;L;;;;;N;;;;;-15B3;CANADIAN SYLLABICS BLACKFOOT A;Lo;0;L;;;;;N;;;;;-15B4;CANADIAN SYLLABICS BLACKFOOT WE;Lo;0;L;;;;;N;;;;;-15B5;CANADIAN SYLLABICS BLACKFOOT WI;Lo;0;L;;;;;N;;;;;-15B6;CANADIAN SYLLABICS BLACKFOOT WO;Lo;0;L;;;;;N;;;;;-15B7;CANADIAN SYLLABICS BLACKFOOT WA;Lo;0;L;;;;;N;;;;;-15B8;CANADIAN SYLLABICS BLACKFOOT NE;Lo;0;L;;;;;N;;;;;-15B9;CANADIAN SYLLABICS BLACKFOOT NI;Lo;0;L;;;;;N;;;;;-15BA;CANADIAN SYLLABICS BLACKFOOT NO;Lo;0;L;;;;;N;;;;;-15BB;CANADIAN SYLLABICS BLACKFOOT NA;Lo;0;L;;;;;N;;;;;-15BC;CANADIAN SYLLABICS BLACKFOOT KE;Lo;0;L;;;;;N;;;;;-15BD;CANADIAN SYLLABICS BLACKFOOT KI;Lo;0;L;;;;;N;;;;;-15BE;CANADIAN SYLLABICS BLACKFOOT KO;Lo;0;L;;;;;N;;;;;-15BF;CANADIAN SYLLABICS BLACKFOOT KA;Lo;0;L;;;;;N;;;;;-15C0;CANADIAN SYLLABICS SAYISI HE;Lo;0;L;;;;;N;;;;;-15C1;CANADIAN SYLLABICS SAYISI HI;Lo;0;L;;;;;N;;;;;-15C2;CANADIAN SYLLABICS SAYISI HO;Lo;0;L;;;;;N;;;;;-15C3;CANADIAN SYLLABICS SAYISI HA;Lo;0;L;;;;;N;;;;;-15C4;CANADIAN SYLLABICS CARRIER GHU;Lo;0;L;;;;;N;;;;;-15C5;CANADIAN SYLLABICS CARRIER GHO;Lo;0;L;;;;;N;;;;;-15C6;CANADIAN SYLLABICS CARRIER GHE;Lo;0;L;;;;;N;;;;;-15C7;CANADIAN SYLLABICS CARRIER GHEE;Lo;0;L;;;;;N;;;;;-15C8;CANADIAN SYLLABICS CARRIER GHI;Lo;0;L;;;;;N;;;;;-15C9;CANADIAN SYLLABICS CARRIER GHA;Lo;0;L;;;;;N;;;;;-15CA;CANADIAN SYLLABICS CARRIER RU;Lo;0;L;;;;;N;;;;;-15CB;CANADIAN SYLLABICS CARRIER RO;Lo;0;L;;;;;N;;;;;-15CC;CANADIAN SYLLABICS CARRIER RE;Lo;0;L;;;;;N;;;;;-15CD;CANADIAN SYLLABICS CARRIER REE;Lo;0;L;;;;;N;;;;;-15CE;CANADIAN SYLLABICS CARRIER RI;Lo;0;L;;;;;N;;;;;-15CF;CANADIAN SYLLABICS CARRIER RA;Lo;0;L;;;;;N;;;;;-15D0;CANADIAN SYLLABICS CARRIER WU;Lo;0;L;;;;;N;;;;;-15D1;CANADIAN SYLLABICS CARRIER WO;Lo;0;L;;;;;N;;;;;-15D2;CANADIAN SYLLABICS CARRIER WE;Lo;0;L;;;;;N;;;;;-15D3;CANADIAN SYLLABICS CARRIER WEE;Lo;0;L;;;;;N;;;;;-15D4;CANADIAN SYLLABICS CARRIER WI;Lo;0;L;;;;;N;;;;;-15D5;CANADIAN SYLLABICS CARRIER WA;Lo;0;L;;;;;N;;;;;-15D6;CANADIAN SYLLABICS CARRIER HWU;Lo;0;L;;;;;N;;;;;-15D7;CANADIAN SYLLABICS CARRIER HWO;Lo;0;L;;;;;N;;;;;-15D8;CANADIAN SYLLABICS CARRIER HWE;Lo;0;L;;;;;N;;;;;-15D9;CANADIAN SYLLABICS CARRIER HWEE;Lo;0;L;;;;;N;;;;;-15DA;CANADIAN SYLLABICS CARRIER HWI;Lo;0;L;;;;;N;;;;;-15DB;CANADIAN SYLLABICS CARRIER HWA;Lo;0;L;;;;;N;;;;;-15DC;CANADIAN SYLLABICS CARRIER THU;Lo;0;L;;;;;N;;;;;-15DD;CANADIAN SYLLABICS CARRIER THO;Lo;0;L;;;;;N;;;;;-15DE;CANADIAN SYLLABICS CARRIER THE;Lo;0;L;;;;;N;;;;;-15DF;CANADIAN SYLLABICS CARRIER THEE;Lo;0;L;;;;;N;;;;;-15E0;CANADIAN SYLLABICS CARRIER THI;Lo;0;L;;;;;N;;;;;-15E1;CANADIAN SYLLABICS CARRIER THA;Lo;0;L;;;;;N;;;;;-15E2;CANADIAN SYLLABICS CARRIER TTU;Lo;0;L;;;;;N;;;;;-15E3;CANADIAN SYLLABICS CARRIER TTO;Lo;0;L;;;;;N;;;;;-15E4;CANADIAN SYLLABICS CARRIER TTE;Lo;0;L;;;;;N;;;;;-15E5;CANADIAN SYLLABICS CARRIER TTEE;Lo;0;L;;;;;N;;;;;-15E6;CANADIAN SYLLABICS CARRIER TTI;Lo;0;L;;;;;N;;;;;-15E7;CANADIAN SYLLABICS CARRIER TTA;Lo;0;L;;;;;N;;;;;-15E8;CANADIAN SYLLABICS CARRIER PU;Lo;0;L;;;;;N;;;;;-15E9;CANADIAN SYLLABICS CARRIER PO;Lo;0;L;;;;;N;;;;;-15EA;CANADIAN SYLLABICS CARRIER PE;Lo;0;L;;;;;N;;;;;-15EB;CANADIAN SYLLABICS CARRIER PEE;Lo;0;L;;;;;N;;;;;-15EC;CANADIAN SYLLABICS CARRIER PI;Lo;0;L;;;;;N;;;;;-15ED;CANADIAN SYLLABICS CARRIER PA;Lo;0;L;;;;;N;;;;;-15EE;CANADIAN SYLLABICS CARRIER P;Lo;0;L;;;;;N;;;;;-15EF;CANADIAN SYLLABICS CARRIER GU;Lo;0;L;;;;;N;;;;;-15F0;CANADIAN SYLLABICS CARRIER GO;Lo;0;L;;;;;N;;;;;-15F1;CANADIAN SYLLABICS CARRIER GE;Lo;0;L;;;;;N;;;;;-15F2;CANADIAN SYLLABICS CARRIER GEE;Lo;0;L;;;;;N;;;;;-15F3;CANADIAN SYLLABICS CARRIER GI;Lo;0;L;;;;;N;;;;;-15F4;CANADIAN SYLLABICS CARRIER GA;Lo;0;L;;;;;N;;;;;-15F5;CANADIAN SYLLABICS CARRIER KHU;Lo;0;L;;;;;N;;;;;-15F6;CANADIAN SYLLABICS CARRIER KHO;Lo;0;L;;;;;N;;;;;-15F7;CANADIAN SYLLABICS CARRIER KHE;Lo;0;L;;;;;N;;;;;-15F8;CANADIAN SYLLABICS CARRIER KHEE;Lo;0;L;;;;;N;;;;;-15F9;CANADIAN SYLLABICS CARRIER KHI;Lo;0;L;;;;;N;;;;;-15FA;CANADIAN SYLLABICS CARRIER KHA;Lo;0;L;;;;;N;;;;;-15FB;CANADIAN SYLLABICS CARRIER KKU;Lo;0;L;;;;;N;;;;;-15FC;CANADIAN SYLLABICS CARRIER KKO;Lo;0;L;;;;;N;;;;;-15FD;CANADIAN SYLLABICS CARRIER KKE;Lo;0;L;;;;;N;;;;;-15FE;CANADIAN SYLLABICS CARRIER KKEE;Lo;0;L;;;;;N;;;;;-15FF;CANADIAN SYLLABICS CARRIER KKI;Lo;0;L;;;;;N;;;;;-1600;CANADIAN SYLLABICS CARRIER KKA;Lo;0;L;;;;;N;;;;;-1601;CANADIAN SYLLABICS CARRIER KK;Lo;0;L;;;;;N;;;;;-1602;CANADIAN SYLLABICS CARRIER NU;Lo;0;L;;;;;N;;;;;-1603;CANADIAN SYLLABICS CARRIER NO;Lo;0;L;;;;;N;;;;;-1604;CANADIAN SYLLABICS CARRIER NE;Lo;0;L;;;;;N;;;;;-1605;CANADIAN SYLLABICS CARRIER NEE;Lo;0;L;;;;;N;;;;;-1606;CANADIAN SYLLABICS CARRIER NI;Lo;0;L;;;;;N;;;;;-1607;CANADIAN SYLLABICS CARRIER NA;Lo;0;L;;;;;N;;;;;-1608;CANADIAN SYLLABICS CARRIER MU;Lo;0;L;;;;;N;;;;;-1609;CANADIAN SYLLABICS CARRIER MO;Lo;0;L;;;;;N;;;;;-160A;CANADIAN SYLLABICS CARRIER ME;Lo;0;L;;;;;N;;;;;-160B;CANADIAN SYLLABICS CARRIER MEE;Lo;0;L;;;;;N;;;;;-160C;CANADIAN SYLLABICS CARRIER MI;Lo;0;L;;;;;N;;;;;-160D;CANADIAN SYLLABICS CARRIER MA;Lo;0;L;;;;;N;;;;;-160E;CANADIAN SYLLABICS CARRIER YU;Lo;0;L;;;;;N;;;;;-160F;CANADIAN SYLLABICS CARRIER YO;Lo;0;L;;;;;N;;;;;-1610;CANADIAN SYLLABICS CARRIER YE;Lo;0;L;;;;;N;;;;;-1611;CANADIAN SYLLABICS CARRIER YEE;Lo;0;L;;;;;N;;;;;-1612;CANADIAN SYLLABICS CARRIER YI;Lo;0;L;;;;;N;;;;;-1613;CANADIAN SYLLABICS CARRIER YA;Lo;0;L;;;;;N;;;;;-1614;CANADIAN SYLLABICS CARRIER JU;Lo;0;L;;;;;N;;;;;-1615;CANADIAN SYLLABICS SAYISI JU;Lo;0;L;;;;;N;;;;;-1616;CANADIAN SYLLABICS CARRIER JO;Lo;0;L;;;;;N;;;;;-1617;CANADIAN SYLLABICS CARRIER JE;Lo;0;L;;;;;N;;;;;-1618;CANADIAN SYLLABICS CARRIER JEE;Lo;0;L;;;;;N;;;;;-1619;CANADIAN SYLLABICS CARRIER JI;Lo;0;L;;;;;N;;;;;-161A;CANADIAN SYLLABICS SAYISI JI;Lo;0;L;;;;;N;;;;;-161B;CANADIAN SYLLABICS CARRIER JA;Lo;0;L;;;;;N;;;;;-161C;CANADIAN SYLLABICS CARRIER JJU;Lo;0;L;;;;;N;;;;;-161D;CANADIAN SYLLABICS CARRIER JJO;Lo;0;L;;;;;N;;;;;-161E;CANADIAN SYLLABICS CARRIER JJE;Lo;0;L;;;;;N;;;;;-161F;CANADIAN SYLLABICS CARRIER JJEE;Lo;0;L;;;;;N;;;;;-1620;CANADIAN SYLLABICS CARRIER JJI;Lo;0;L;;;;;N;;;;;-1621;CANADIAN SYLLABICS CARRIER JJA;Lo;0;L;;;;;N;;;;;-1622;CANADIAN SYLLABICS CARRIER LU;Lo;0;L;;;;;N;;;;;-1623;CANADIAN SYLLABICS CARRIER LO;Lo;0;L;;;;;N;;;;;-1624;CANADIAN SYLLABICS CARRIER LE;Lo;0;L;;;;;N;;;;;-1625;CANADIAN SYLLABICS CARRIER LEE;Lo;0;L;;;;;N;;;;;-1626;CANADIAN SYLLABICS CARRIER LI;Lo;0;L;;;;;N;;;;;-1627;CANADIAN SYLLABICS CARRIER LA;Lo;0;L;;;;;N;;;;;-1628;CANADIAN SYLLABICS CARRIER DLU;Lo;0;L;;;;;N;;;;;-1629;CANADIAN SYLLABICS CARRIER DLO;Lo;0;L;;;;;N;;;;;-162A;CANADIAN SYLLABICS CARRIER DLE;Lo;0;L;;;;;N;;;;;-162B;CANADIAN SYLLABICS CARRIER DLEE;Lo;0;L;;;;;N;;;;;-162C;CANADIAN SYLLABICS CARRIER DLI;Lo;0;L;;;;;N;;;;;-162D;CANADIAN SYLLABICS CARRIER DLA;Lo;0;L;;;;;N;;;;;-162E;CANADIAN SYLLABICS CARRIER LHU;Lo;0;L;;;;;N;;;;;-162F;CANADIAN SYLLABICS CARRIER LHO;Lo;0;L;;;;;N;;;;;-1630;CANADIAN SYLLABICS CARRIER LHE;Lo;0;L;;;;;N;;;;;-1631;CANADIAN SYLLABICS CARRIER LHEE;Lo;0;L;;;;;N;;;;;-1632;CANADIAN SYLLABICS CARRIER LHI;Lo;0;L;;;;;N;;;;;-1633;CANADIAN SYLLABICS CARRIER LHA;Lo;0;L;;;;;N;;;;;-1634;CANADIAN SYLLABICS CARRIER TLHU;Lo;0;L;;;;;N;;;;;-1635;CANADIAN SYLLABICS CARRIER TLHO;Lo;0;L;;;;;N;;;;;-1636;CANADIAN SYLLABICS CARRIER TLHE;Lo;0;L;;;;;N;;;;;-1637;CANADIAN SYLLABICS CARRIER TLHEE;Lo;0;L;;;;;N;;;;;-1638;CANADIAN SYLLABICS CARRIER TLHI;Lo;0;L;;;;;N;;;;;-1639;CANADIAN SYLLABICS CARRIER TLHA;Lo;0;L;;;;;N;;;;;-163A;CANADIAN SYLLABICS CARRIER TLU;Lo;0;L;;;;;N;;;;;-163B;CANADIAN SYLLABICS CARRIER TLO;Lo;0;L;;;;;N;;;;;-163C;CANADIAN SYLLABICS CARRIER TLE;Lo;0;L;;;;;N;;;;;-163D;CANADIAN SYLLABICS CARRIER TLEE;Lo;0;L;;;;;N;;;;;-163E;CANADIAN SYLLABICS CARRIER TLI;Lo;0;L;;;;;N;;;;;-163F;CANADIAN SYLLABICS CARRIER TLA;Lo;0;L;;;;;N;;;;;-1640;CANADIAN SYLLABICS CARRIER ZU;Lo;0;L;;;;;N;;;;;-1641;CANADIAN SYLLABICS CARRIER ZO;Lo;0;L;;;;;N;;;;;-1642;CANADIAN SYLLABICS CARRIER ZE;Lo;0;L;;;;;N;;;;;-1643;CANADIAN SYLLABICS CARRIER ZEE;Lo;0;L;;;;;N;;;;;-1644;CANADIAN SYLLABICS CARRIER ZI;Lo;0;L;;;;;N;;;;;-1645;CANADIAN SYLLABICS CARRIER ZA;Lo;0;L;;;;;N;;;;;-1646;CANADIAN SYLLABICS CARRIER Z;Lo;0;L;;;;;N;;;;;-1647;CANADIAN SYLLABICS CARRIER INITIAL Z;Lo;0;L;;;;;N;;;;;-1648;CANADIAN SYLLABICS CARRIER DZU;Lo;0;L;;;;;N;;;;;-1649;CANADIAN SYLLABICS CARRIER DZO;Lo;0;L;;;;;N;;;;;-164A;CANADIAN SYLLABICS CARRIER DZE;Lo;0;L;;;;;N;;;;;-164B;CANADIAN SYLLABICS CARRIER DZEE;Lo;0;L;;;;;N;;;;;-164C;CANADIAN SYLLABICS CARRIER DZI;Lo;0;L;;;;;N;;;;;-164D;CANADIAN SYLLABICS CARRIER DZA;Lo;0;L;;;;;N;;;;;-164E;CANADIAN SYLLABICS CARRIER SU;Lo;0;L;;;;;N;;;;;-164F;CANADIAN SYLLABICS CARRIER SO;Lo;0;L;;;;;N;;;;;-1650;CANADIAN SYLLABICS CARRIER SE;Lo;0;L;;;;;N;;;;;-1651;CANADIAN SYLLABICS CARRIER SEE;Lo;0;L;;;;;N;;;;;-1652;CANADIAN SYLLABICS CARRIER SI;Lo;0;L;;;;;N;;;;;-1653;CANADIAN SYLLABICS CARRIER SA;Lo;0;L;;;;;N;;;;;-1654;CANADIAN SYLLABICS CARRIER SHU;Lo;0;L;;;;;N;;;;;-1655;CANADIAN SYLLABICS CARRIER SHO;Lo;0;L;;;;;N;;;;;-1656;CANADIAN SYLLABICS CARRIER SHE;Lo;0;L;;;;;N;;;;;-1657;CANADIAN SYLLABICS CARRIER SHEE;Lo;0;L;;;;;N;;;;;-1658;CANADIAN SYLLABICS CARRIER SHI;Lo;0;L;;;;;N;;;;;-1659;CANADIAN SYLLABICS CARRIER SHA;Lo;0;L;;;;;N;;;;;-165A;CANADIAN SYLLABICS CARRIER SH;Lo;0;L;;;;;N;;;;;-165B;CANADIAN SYLLABICS CARRIER TSU;Lo;0;L;;;;;N;;;;;-165C;CANADIAN SYLLABICS CARRIER TSO;Lo;0;L;;;;;N;;;;;-165D;CANADIAN SYLLABICS CARRIER TSE;Lo;0;L;;;;;N;;;;;-165E;CANADIAN SYLLABICS CARRIER TSEE;Lo;0;L;;;;;N;;;;;-165F;CANADIAN SYLLABICS CARRIER TSI;Lo;0;L;;;;;N;;;;;-1660;CANADIAN SYLLABICS CARRIER TSA;Lo;0;L;;;;;N;;;;;-1661;CANADIAN SYLLABICS CARRIER CHU;Lo;0;L;;;;;N;;;;;-1662;CANADIAN SYLLABICS CARRIER CHO;Lo;0;L;;;;;N;;;;;-1663;CANADIAN SYLLABICS CARRIER CHE;Lo;0;L;;;;;N;;;;;-1664;CANADIAN SYLLABICS CARRIER CHEE;Lo;0;L;;;;;N;;;;;-1665;CANADIAN SYLLABICS CARRIER CHI;Lo;0;L;;;;;N;;;;;-1666;CANADIAN SYLLABICS CARRIER CHA;Lo;0;L;;;;;N;;;;;-1667;CANADIAN SYLLABICS CARRIER TTSU;Lo;0;L;;;;;N;;;;;-1668;CANADIAN SYLLABICS CARRIER TTSO;Lo;0;L;;;;;N;;;;;-1669;CANADIAN SYLLABICS CARRIER TTSE;Lo;0;L;;;;;N;;;;;-166A;CANADIAN SYLLABICS CARRIER TTSEE;Lo;0;L;;;;;N;;;;;-166B;CANADIAN SYLLABICS CARRIER TTSI;Lo;0;L;;;;;N;;;;;-166C;CANADIAN SYLLABICS CARRIER TTSA;Lo;0;L;;;;;N;;;;;-166D;CANADIAN SYLLABICS CHI SIGN;Po;0;L;;;;;N;;;;;-166E;CANADIAN SYLLABICS FULL STOP;Po;0;L;;;;;N;;;;;-166F;CANADIAN SYLLABICS QAI;Lo;0;L;;;;;N;;;;;-1670;CANADIAN SYLLABICS NGAI;Lo;0;L;;;;;N;;;;;-1671;CANADIAN SYLLABICS NNGI;Lo;0;L;;;;;N;;;;;-1672;CANADIAN SYLLABICS NNGII;Lo;0;L;;;;;N;;;;;-1673;CANADIAN SYLLABICS NNGO;Lo;0;L;;;;;N;;;;;-1674;CANADIAN SYLLABICS NNGOO;Lo;0;L;;;;;N;;;;;-1675;CANADIAN SYLLABICS NNGA;Lo;0;L;;;;;N;;;;;-1676;CANADIAN SYLLABICS NNGAA;Lo;0;L;;;;;N;;;;;-1680;OGHAM SPACE MARK;Zs;0;WS;;;;;N;;;;;-1681;OGHAM LETTER BEITH;Lo;0;L;;;;;N;;;;;-1682;OGHAM LETTER LUIS;Lo;0;L;;;;;N;;;;;-1683;OGHAM LETTER FEARN;Lo;0;L;;;;;N;;;;;-1684;OGHAM LETTER SAIL;Lo;0;L;;;;;N;;;;;-1685;OGHAM LETTER NION;Lo;0;L;;;;;N;;;;;-1686;OGHAM LETTER UATH;Lo;0;L;;;;;N;;;;;-1687;OGHAM LETTER DAIR;Lo;0;L;;;;;N;;;;;-1688;OGHAM LETTER TINNE;Lo;0;L;;;;;N;;;;;-1689;OGHAM LETTER COLL;Lo;0;L;;;;;N;;;;;-168A;OGHAM LETTER CEIRT;Lo;0;L;;;;;N;;;;;-168B;OGHAM LETTER MUIN;Lo;0;L;;;;;N;;;;;-168C;OGHAM LETTER GORT;Lo;0;L;;;;;N;;;;;-168D;OGHAM LETTER NGEADAL;Lo;0;L;;;;;N;;;;;-168E;OGHAM LETTER STRAIF;Lo;0;L;;;;;N;;;;;-168F;OGHAM LETTER RUIS;Lo;0;L;;;;;N;;;;;-1690;OGHAM LETTER AILM;Lo;0;L;;;;;N;;;;;-1691;OGHAM LETTER ONN;Lo;0;L;;;;;N;;;;;-1692;OGHAM LETTER UR;Lo;0;L;;;;;N;;;;;-1693;OGHAM LETTER EADHADH;Lo;0;L;;;;;N;;;;;-1694;OGHAM LETTER IODHADH;Lo;0;L;;;;;N;;;;;-1695;OGHAM LETTER EABHADH;Lo;0;L;;;;;N;;;;;-1696;OGHAM LETTER OR;Lo;0;L;;;;;N;;;;;-1697;OGHAM LETTER UILLEANN;Lo;0;L;;;;;N;;;;;-1698;OGHAM LETTER IFIN;Lo;0;L;;;;;N;;;;;-1699;OGHAM LETTER EAMHANCHOLL;Lo;0;L;;;;;N;;;;;-169A;OGHAM LETTER PEITH;Lo;0;L;;;;;N;;;;;-169B;OGHAM FEATHER MARK;Ps;0;ON;;;;;Y;;;;;-169C;OGHAM REVERSED FEATHER MARK;Pe;0;ON;;;;;Y;;;;;-16A0;RUNIC LETTER FEHU FEOH FE F;Lo;0;L;;;;;N;;;;;-16A1;RUNIC LETTER V;Lo;0;L;;;;;N;;;;;-16A2;RUNIC LETTER URUZ UR U;Lo;0;L;;;;;N;;;;;-16A3;RUNIC LETTER YR;Lo;0;L;;;;;N;;;;;-16A4;RUNIC LETTER Y;Lo;0;L;;;;;N;;;;;-16A5;RUNIC LETTER W;Lo;0;L;;;;;N;;;;;-16A6;RUNIC LETTER THURISAZ THURS THORN;Lo;0;L;;;;;N;;;;;-16A7;RUNIC LETTER ETH;Lo;0;L;;;;;N;;;;;-16A8;RUNIC LETTER ANSUZ A;Lo;0;L;;;;;N;;;;;-16A9;RUNIC LETTER OS O;Lo;0;L;;;;;N;;;;;-16AA;RUNIC LETTER AC A;Lo;0;L;;;;;N;;;;;-16AB;RUNIC LETTER AESC;Lo;0;L;;;;;N;;;;;-16AC;RUNIC LETTER LONG-BRANCH-OSS O;Lo;0;L;;;;;N;;;;;-16AD;RUNIC LETTER SHORT-TWIG-OSS O;Lo;0;L;;;;;N;;;;;-16AE;RUNIC LETTER O;Lo;0;L;;;;;N;;;;;-16AF;RUNIC LETTER OE;Lo;0;L;;;;;N;;;;;-16B0;RUNIC LETTER ON;Lo;0;L;;;;;N;;;;;-16B1;RUNIC LETTER RAIDO RAD REID R;Lo;0;L;;;;;N;;;;;-16B2;RUNIC LETTER KAUNA;Lo;0;L;;;;;N;;;;;-16B3;RUNIC LETTER CEN;Lo;0;L;;;;;N;;;;;-16B4;RUNIC LETTER KAUN K;Lo;0;L;;;;;N;;;;;-16B5;RUNIC LETTER G;Lo;0;L;;;;;N;;;;;-16B6;RUNIC LETTER ENG;Lo;0;L;;;;;N;;;;;-16B7;RUNIC LETTER GEBO GYFU G;Lo;0;L;;;;;N;;;;;-16B8;RUNIC LETTER GAR;Lo;0;L;;;;;N;;;;;-16B9;RUNIC LETTER WUNJO WYNN W;Lo;0;L;;;;;N;;;;;-16BA;RUNIC LETTER HAGLAZ H;Lo;0;L;;;;;N;;;;;-16BB;RUNIC LETTER HAEGL H;Lo;0;L;;;;;N;;;;;-16BC;RUNIC LETTER LONG-BRANCH-HAGALL H;Lo;0;L;;;;;N;;;;;-16BD;RUNIC LETTER SHORT-TWIG-HAGALL H;Lo;0;L;;;;;N;;;;;-16BE;RUNIC LETTER NAUDIZ NYD NAUD N;Lo;0;L;;;;;N;;;;;-16BF;RUNIC LETTER SHORT-TWIG-NAUD N;Lo;0;L;;;;;N;;;;;-16C0;RUNIC LETTER DOTTED-N;Lo;0;L;;;;;N;;;;;-16C1;RUNIC LETTER ISAZ IS ISS I;Lo;0;L;;;;;N;;;;;-16C2;RUNIC LETTER E;Lo;0;L;;;;;N;;;;;-16C3;RUNIC LETTER JERAN J;Lo;0;L;;;;;N;;;;;-16C4;RUNIC LETTER GER;Lo;0;L;;;;;N;;;;;-16C5;RUNIC LETTER LONG-BRANCH-AR AE;Lo;0;L;;;;;N;;;;;-16C6;RUNIC LETTER SHORT-TWIG-AR A;Lo;0;L;;;;;N;;;;;-16C7;RUNIC LETTER IWAZ EOH;Lo;0;L;;;;;N;;;;;-16C8;RUNIC LETTER PERTHO PEORTH P;Lo;0;L;;;;;N;;;;;-16C9;RUNIC LETTER ALGIZ EOLHX;Lo;0;L;;;;;N;;;;;-16CA;RUNIC LETTER SOWILO S;Lo;0;L;;;;;N;;;;;-16CB;RUNIC LETTER SIGEL LONG-BRANCH-SOL S;Lo;0;L;;;;;N;;;;;-16CC;RUNIC LETTER SHORT-TWIG-SOL S;Lo;0;L;;;;;N;;;;;-16CD;RUNIC LETTER C;Lo;0;L;;;;;N;;;;;-16CE;RUNIC LETTER Z;Lo;0;L;;;;;N;;;;;-16CF;RUNIC LETTER TIWAZ TIR TYR T;Lo;0;L;;;;;N;;;;;-16D0;RUNIC LETTER SHORT-TWIG-TYR T;Lo;0;L;;;;;N;;;;;-16D1;RUNIC LETTER D;Lo;0;L;;;;;N;;;;;-16D2;RUNIC LETTER BERKANAN BEORC BJARKAN B;Lo;0;L;;;;;N;;;;;-16D3;RUNIC LETTER SHORT-TWIG-BJARKAN B;Lo;0;L;;;;;N;;;;;-16D4;RUNIC LETTER DOTTED-P;Lo;0;L;;;;;N;;;;;-16D5;RUNIC LETTER OPEN-P;Lo;0;L;;;;;N;;;;;-16D6;RUNIC LETTER EHWAZ EH E;Lo;0;L;;;;;N;;;;;-16D7;RUNIC LETTER MANNAZ MAN M;Lo;0;L;;;;;N;;;;;-16D8;RUNIC LETTER LONG-BRANCH-MADR M;Lo;0;L;;;;;N;;;;;-16D9;RUNIC LETTER SHORT-TWIG-MADR M;Lo;0;L;;;;;N;;;;;-16DA;RUNIC LETTER LAUKAZ LAGU LOGR L;Lo;0;L;;;;;N;;;;;-16DB;RUNIC LETTER DOTTED-L;Lo;0;L;;;;;N;;;;;-16DC;RUNIC LETTER INGWAZ;Lo;0;L;;;;;N;;;;;-16DD;RUNIC LETTER ING;Lo;0;L;;;;;N;;;;;-16DE;RUNIC LETTER DAGAZ DAEG D;Lo;0;L;;;;;N;;;;;-16DF;RUNIC LETTER OTHALAN ETHEL O;Lo;0;L;;;;;N;;;;;-16E0;RUNIC LETTER EAR;Lo;0;L;;;;;N;;;;;-16E1;RUNIC LETTER IOR;Lo;0;L;;;;;N;;;;;-16E2;RUNIC LETTER CWEORTH;Lo;0;L;;;;;N;;;;;-16E3;RUNIC LETTER CALC;Lo;0;L;;;;;N;;;;;-16E4;RUNIC LETTER CEALC;Lo;0;L;;;;;N;;;;;-16E5;RUNIC LETTER STAN;Lo;0;L;;;;;N;;;;;-16E6;RUNIC LETTER LONG-BRANCH-YR;Lo;0;L;;;;;N;;;;;-16E7;RUNIC LETTER SHORT-TWIG-YR;Lo;0;L;;;;;N;;;;;-16E8;RUNIC LETTER ICELANDIC-YR;Lo;0;L;;;;;N;;;;;-16E9;RUNIC LETTER Q;Lo;0;L;;;;;N;;;;;-16EA;RUNIC LETTER X;Lo;0;L;;;;;N;;;;;-16EB;RUNIC SINGLE PUNCTUATION;Po;0;L;;;;;N;;;;;-16EC;RUNIC MULTIPLE PUNCTUATION;Po;0;L;;;;;N;;;;;-16ED;RUNIC CROSS PUNCTUATION;Po;0;L;;;;;N;;;;;-16EE;RUNIC ARLAUG SYMBOL;Nl;0;L;;;;17;N;;golden number 17;;;-16EF;RUNIC TVIMADUR SYMBOL;Nl;0;L;;;;18;N;;golden number 18;;;-16F0;RUNIC BELGTHOR SYMBOL;Nl;0;L;;;;19;N;;golden number 19;;;-1700;TAGALOG LETTER A;Lo;0;L;;;;;N;;;;;-1701;TAGALOG LETTER I;Lo;0;L;;;;;N;;;;;-1702;TAGALOG LETTER U;Lo;0;L;;;;;N;;;;;-1703;TAGALOG LETTER KA;Lo;0;L;;;;;N;;;;;-1704;TAGALOG LETTER GA;Lo;0;L;;;;;N;;;;;-1705;TAGALOG LETTER NGA;Lo;0;L;;;;;N;;;;;-1706;TAGALOG LETTER TA;Lo;0;L;;;;;N;;;;;-1707;TAGALOG LETTER DA;Lo;0;L;;;;;N;;;;;-1708;TAGALOG LETTER NA;Lo;0;L;;;;;N;;;;;-1709;TAGALOG LETTER PA;Lo;0;L;;;;;N;;;;;-170A;TAGALOG LETTER BA;Lo;0;L;;;;;N;;;;;-170B;TAGALOG LETTER MA;Lo;0;L;;;;;N;;;;;-170C;TAGALOG LETTER YA;Lo;0;L;;;;;N;;;;;-170E;TAGALOG LETTER LA;Lo;0;L;;;;;N;;;;;-170F;TAGALOG LETTER WA;Lo;0;L;;;;;N;;;;;-1710;TAGALOG LETTER SA;Lo;0;L;;;;;N;;;;;-1711;TAGALOG LETTER HA;Lo;0;L;;;;;N;;;;;-1712;TAGALOG VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;-1713;TAGALOG VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;-1714;TAGALOG SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;-1720;HANUNOO LETTER A;Lo;0;L;;;;;N;;;;;-1721;HANUNOO LETTER I;Lo;0;L;;;;;N;;;;;-1722;HANUNOO LETTER U;Lo;0;L;;;;;N;;;;;-1723;HANUNOO LETTER KA;Lo;0;L;;;;;N;;;;;-1724;HANUNOO LETTER GA;Lo;0;L;;;;;N;;;;;-1725;HANUNOO LETTER NGA;Lo;0;L;;;;;N;;;;;-1726;HANUNOO LETTER TA;Lo;0;L;;;;;N;;;;;-1727;HANUNOO LETTER DA;Lo;0;L;;;;;N;;;;;-1728;HANUNOO LETTER NA;Lo;0;L;;;;;N;;;;;-1729;HANUNOO LETTER PA;Lo;0;L;;;;;N;;;;;-172A;HANUNOO LETTER BA;Lo;0;L;;;;;N;;;;;-172B;HANUNOO LETTER MA;Lo;0;L;;;;;N;;;;;-172C;HANUNOO LETTER YA;Lo;0;L;;;;;N;;;;;-172D;HANUNOO LETTER RA;Lo;0;L;;;;;N;;;;;-172E;HANUNOO LETTER LA;Lo;0;L;;;;;N;;;;;-172F;HANUNOO LETTER WA;Lo;0;L;;;;;N;;;;;-1730;HANUNOO LETTER SA;Lo;0;L;;;;;N;;;;;-1731;HANUNOO LETTER HA;Lo;0;L;;;;;N;;;;;-1732;HANUNOO VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;-1733;HANUNOO VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;-1734;HANUNOO SIGN PAMUDPOD;Mn;9;NSM;;;;;N;;;;;-1735;PHILIPPINE SINGLE PUNCTUATION;Po;0;L;;;;;N;;;;;-1736;PHILIPPINE DOUBLE PUNCTUATION;Po;0;L;;;;;N;;;;;-1740;BUHID LETTER A;Lo;0;L;;;;;N;;;;;-1741;BUHID LETTER I;Lo;0;L;;;;;N;;;;;-1742;BUHID LETTER U;Lo;0;L;;;;;N;;;;;-1743;BUHID LETTER KA;Lo;0;L;;;;;N;;;;;-1744;BUHID LETTER GA;Lo;0;L;;;;;N;;;;;-1745;BUHID LETTER NGA;Lo;0;L;;;;;N;;;;;-1746;BUHID LETTER TA;Lo;0;L;;;;;N;;;;;-1747;BUHID LETTER DA;Lo;0;L;;;;;N;;;;;-1748;BUHID LETTER NA;Lo;0;L;;;;;N;;;;;-1749;BUHID LETTER PA;Lo;0;L;;;;;N;;;;;-174A;BUHID LETTER BA;Lo;0;L;;;;;N;;;;;-174B;BUHID LETTER MA;Lo;0;L;;;;;N;;;;;-174C;BUHID LETTER YA;Lo;0;L;;;;;N;;;;;-174D;BUHID LETTER RA;Lo;0;L;;;;;N;;;;;-174E;BUHID LETTER LA;Lo;0;L;;;;;N;;;;;-174F;BUHID LETTER WA;Lo;0;L;;;;;N;;;;;-1750;BUHID LETTER SA;Lo;0;L;;;;;N;;;;;-1751;BUHID LETTER HA;Lo;0;L;;;;;N;;;;;-1752;BUHID VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;-1753;BUHID VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;-1760;TAGBANWA LETTER A;Lo;0;L;;;;;N;;;;;-1761;TAGBANWA LETTER I;Lo;0;L;;;;;N;;;;;-1762;TAGBANWA LETTER U;Lo;0;L;;;;;N;;;;;-1763;TAGBANWA LETTER KA;Lo;0;L;;;;;N;;;;;-1764;TAGBANWA LETTER GA;Lo;0;L;;;;;N;;;;;-1765;TAGBANWA LETTER NGA;Lo;0;L;;;;;N;;;;;-1766;TAGBANWA LETTER TA;Lo;0;L;;;;;N;;;;;-1767;TAGBANWA LETTER DA;Lo;0;L;;;;;N;;;;;-1768;TAGBANWA LETTER NA;Lo;0;L;;;;;N;;;;;-1769;TAGBANWA LETTER PA;Lo;0;L;;;;;N;;;;;-176A;TAGBANWA LETTER BA;Lo;0;L;;;;;N;;;;;-176B;TAGBANWA LETTER MA;Lo;0;L;;;;;N;;;;;-176C;TAGBANWA LETTER YA;Lo;0;L;;;;;N;;;;;-176E;TAGBANWA LETTER LA;Lo;0;L;;;;;N;;;;;-176F;TAGBANWA LETTER WA;Lo;0;L;;;;;N;;;;;-1770;TAGBANWA LETTER SA;Lo;0;L;;;;;N;;;;;-1772;TAGBANWA VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;-1773;TAGBANWA VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;-1780;KHMER LETTER KA;Lo;0;L;;;;;N;;;;;-1781;KHMER LETTER KHA;Lo;0;L;;;;;N;;;;;-1782;KHMER LETTER KO;Lo;0;L;;;;;N;;;;;-1783;KHMER LETTER KHO;Lo;0;L;;;;;N;;;;;-1784;KHMER LETTER NGO;Lo;0;L;;;;;N;;;;;-1785;KHMER LETTER CA;Lo;0;L;;;;;N;;;;;-1786;KHMER LETTER CHA;Lo;0;L;;;;;N;;;;;-1787;KHMER LETTER CO;Lo;0;L;;;;;N;;;;;-1788;KHMER LETTER CHO;Lo;0;L;;;;;N;;;;;-1789;KHMER LETTER NYO;Lo;0;L;;;;;N;;;;;-178A;KHMER LETTER DA;Lo;0;L;;;;;N;;;;;-178B;KHMER LETTER TTHA;Lo;0;L;;;;;N;;;;;-178C;KHMER LETTER DO;Lo;0;L;;;;;N;;;;;-178D;KHMER LETTER TTHO;Lo;0;L;;;;;N;;;;;-178E;KHMER LETTER NNO;Lo;0;L;;;;;N;;;;;-178F;KHMER LETTER TA;Lo;0;L;;;;;N;;;;;-1790;KHMER LETTER THA;Lo;0;L;;;;;N;;;;;-1791;KHMER LETTER TO;Lo;0;L;;;;;N;;;;;-1792;KHMER LETTER THO;Lo;0;L;;;;;N;;;;;-1793;KHMER LETTER NO;Lo;0;L;;;;;N;;;;;-1794;KHMER LETTER BA;Lo;0;L;;;;;N;;;;;-1795;KHMER LETTER PHA;Lo;0;L;;;;;N;;;;;-1796;KHMER LETTER PO;Lo;0;L;;;;;N;;;;;-1797;KHMER LETTER PHO;Lo;0;L;;;;;N;;;;;-1798;KHMER LETTER MO;Lo;0;L;;;;;N;;;;;-1799;KHMER LETTER YO;Lo;0;L;;;;;N;;;;;-179A;KHMER LETTER RO;Lo;0;L;;;;;N;;;;;-179B;KHMER LETTER LO;Lo;0;L;;;;;N;;;;;-179C;KHMER LETTER VO;Lo;0;L;;;;;N;;;;;-179D;KHMER LETTER SHA;Lo;0;L;;;;;N;;;;;-179E;KHMER LETTER SSO;Lo;0;L;;;;;N;;;;;-179F;KHMER LETTER SA;Lo;0;L;;;;;N;;;;;-17A0;KHMER LETTER HA;Lo;0;L;;;;;N;;;;;-17A1;KHMER LETTER LA;Lo;0;L;;;;;N;;;;;-17A2;KHMER LETTER QA;Lo;0;L;;;;;N;;;;;-17A3;KHMER INDEPENDENT VOWEL QAQ;Lo;0;L;;;;;N;;*;;;-17A4;KHMER INDEPENDENT VOWEL QAA;Lo;0;L;;;;;N;;*;;;-17A5;KHMER INDEPENDENT VOWEL QI;Lo;0;L;;;;;N;;;;;-17A6;KHMER INDEPENDENT VOWEL QII;Lo;0;L;;;;;N;;;;;-17A7;KHMER INDEPENDENT VOWEL QU;Lo;0;L;;;;;N;;;;;-17A8;KHMER INDEPENDENT VOWEL QUK;Lo;0;L;;;;;N;;;;;-17A9;KHMER INDEPENDENT VOWEL QUU;Lo;0;L;;;;;N;;;;;-17AA;KHMER INDEPENDENT VOWEL QUUV;Lo;0;L;;;;;N;;;;;-17AB;KHMER INDEPENDENT VOWEL RY;Lo;0;L;;;;;N;;;;;-17AC;KHMER INDEPENDENT VOWEL RYY;Lo;0;L;;;;;N;;;;;-17AD;KHMER INDEPENDENT VOWEL LY;Lo;0;L;;;;;N;;;;;-17AE;KHMER INDEPENDENT VOWEL LYY;Lo;0;L;;;;;N;;;;;-17AF;KHMER INDEPENDENT VOWEL QE;Lo;0;L;;;;;N;;;;;-17B0;KHMER INDEPENDENT VOWEL QAI;Lo;0;L;;;;;N;;;;;-17B1;KHMER INDEPENDENT VOWEL QOO TYPE ONE;Lo;0;L;;;;;N;;;;;-17B2;KHMER INDEPENDENT VOWEL QOO TYPE TWO;Lo;0;L;;;;;N;;;;;-17B3;KHMER INDEPENDENT VOWEL QAU;Lo;0;L;;;;;N;;;;;-17B4;KHMER VOWEL INHERENT AQ;Cf;0;L;;;;;N;;*;;;-17B5;KHMER VOWEL INHERENT AA;Cf;0;L;;;;;N;;*;;;-17B6;KHMER VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;-17B7;KHMER VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;-17B8;KHMER VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;-17B9;KHMER VOWEL SIGN Y;Mn;0;NSM;;;;;N;;;;;-17BA;KHMER VOWEL SIGN YY;Mn;0;NSM;;;;;N;;;;;-17BB;KHMER VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;-17BC;KHMER VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;-17BD;KHMER VOWEL SIGN UA;Mn;0;NSM;;;;;N;;;;;-17BE;KHMER VOWEL SIGN OE;Mc;0;L;;;;;N;;;;;-17BF;KHMER VOWEL SIGN YA;Mc;0;L;;;;;N;;;;;-17C0;KHMER VOWEL SIGN IE;Mc;0;L;;;;;N;;;;;-17C1;KHMER VOWEL SIGN E;Mc;0;L;;;;;N;;;;;-17C2;KHMER VOWEL SIGN AE;Mc;0;L;;;;;N;;;;;-17C3;KHMER VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;-17C4;KHMER VOWEL SIGN OO;Mc;0;L;;;;;N;;;;;-17C5;KHMER VOWEL SIGN AU;Mc;0;L;;;;;N;;;;;-17C6;KHMER SIGN NIKAHIT;Mn;0;NSM;;;;;N;;;;;-17C7;KHMER SIGN REAHMUK;Mc;0;L;;;;;N;;;;;-17C8;KHMER SIGN YUUKALEAPINTU;Mc;0;L;;;;;N;;;;;-17C9;KHMER SIGN MUUSIKATOAN;Mn;0;NSM;;;;;N;;;;;-17CA;KHMER SIGN TRIISAP;Mn;0;NSM;;;;;N;;;;;-17CB;KHMER SIGN BANTOC;Mn;0;NSM;;;;;N;;;;;-17CC;KHMER SIGN ROBAT;Mn;0;NSM;;;;;N;;;;;-17CD;KHMER SIGN TOANDAKHIAT;Mn;0;NSM;;;;;N;;;;;-17CE;KHMER SIGN KAKABAT;Mn;0;NSM;;;;;N;;;;;-17CF;KHMER SIGN AHSDA;Mn;0;NSM;;;;;N;;;;;-17D0;KHMER SIGN SAMYOK SANNYA;Mn;0;NSM;;;;;N;;;;;-17D1;KHMER SIGN VIRIAM;Mn;0;NSM;;;;;N;;;;;-17D2;KHMER SIGN COENG;Mn;9;NSM;;;;;N;;;;;-17D3;KHMER SIGN BATHAMASAT;Mn;0;NSM;;;;;N;;*;;;-17D4;KHMER SIGN KHAN;Po;0;L;;;;;N;;;;;-17D5;KHMER SIGN BARIYOOSAN;Po;0;L;;;;;N;;;;;-17D6;KHMER SIGN CAMNUC PII KUUH;Po;0;L;;;;;N;;;;;-17D7;KHMER SIGN LEK TOO;Lm;0;L;;;;;N;;;;;-17D8;KHMER SIGN BEYYAL;Po;0;L;;;;;N;;*;;;-17D9;KHMER SIGN PHNAEK MUAN;Po;0;L;;;;;N;;;;;-17DA;KHMER SIGN KOOMUUT;Po;0;L;;;;;N;;;;;-17DB;KHMER CURRENCY SYMBOL RIEL;Sc;0;ET;;;;;N;;;;;-17DC;KHMER SIGN AVAKRAHASANYA;Lo;0;L;;;;;N;;;;;-17DD;KHMER SIGN ATTHACAN;Mn;230;NSM;;;;;N;;;;;-17E0;KHMER DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;-17E1;KHMER DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;-17E2;KHMER DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;-17E3;KHMER DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;-17E4;KHMER DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;-17E5;KHMER DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;-17E6;KHMER DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;-17E7;KHMER DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;-17E8;KHMER DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;-17E9;KHMER DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;-17F0;KHMER SYMBOL LEK ATTAK SON;No;0;ON;;;;0;N;;;;;-17F1;KHMER SYMBOL LEK ATTAK MUOY;No;0;ON;;;;1;N;;;;;-17F2;KHMER SYMBOL LEK ATTAK PII;No;0;ON;;;;2;N;;;;;-17F3;KHMER SYMBOL LEK ATTAK BEI;No;0;ON;;;;3;N;;;;;-17F4;KHMER SYMBOL LEK ATTAK BUON;No;0;ON;;;;4;N;;;;;-17F5;KHMER SYMBOL LEK ATTAK PRAM;No;0;ON;;;;5;N;;;;;-17F6;KHMER SYMBOL LEK ATTAK PRAM-MUOY;No;0;ON;;;;6;N;;;;;-17F7;KHMER SYMBOL LEK ATTAK PRAM-PII;No;0;ON;;;;7;N;;;;;-17F8;KHMER SYMBOL LEK ATTAK PRAM-BEI;No;0;ON;;;;8;N;;;;;-17F9;KHMER SYMBOL LEK ATTAK PRAM-BUON;No;0;ON;;;;9;N;;;;;-1800;MONGOLIAN BIRGA;Po;0;ON;;;;;N;;;;;-1801;MONGOLIAN ELLIPSIS;Po;0;ON;;;;;N;;;;;-1802;MONGOLIAN COMMA;Po;0;ON;;;;;N;;;;;-1803;MONGOLIAN FULL STOP;Po;0;ON;;;;;N;;;;;-1804;MONGOLIAN COLON;Po;0;ON;;;;;N;;;;;-1805;MONGOLIAN FOUR DOTS;Po;0;ON;;;;;N;;;;;-1806;MONGOLIAN TODO SOFT HYPHEN;Pd;0;ON;;;;;N;;;;;-1807;MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER;Po;0;ON;;;;;N;;;;;-1808;MONGOLIAN MANCHU COMMA;Po;0;ON;;;;;N;;;;;-1809;MONGOLIAN MANCHU FULL STOP;Po;0;ON;;;;;N;;;;;-180A;MONGOLIAN NIRUGU;Po;0;ON;;;;;N;;;;;-180B;MONGOLIAN FREE VARIATION SELECTOR ONE;Mn;0;NSM;;;;;N;;;;;-180C;MONGOLIAN FREE VARIATION SELECTOR TWO;Mn;0;NSM;;;;;N;;;;;-180D;MONGOLIAN FREE VARIATION SELECTOR THREE;Mn;0;NSM;;;;;N;;;;;-180E;MONGOLIAN VOWEL SEPARATOR;Zs;0;WS;;;;;N;;;;;-1810;MONGOLIAN DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;-1811;MONGOLIAN DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;-1812;MONGOLIAN DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;-1813;MONGOLIAN DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;-1814;MONGOLIAN DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;-1815;MONGOLIAN DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;-1816;MONGOLIAN DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;-1817;MONGOLIAN DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;-1818;MONGOLIAN DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;-1819;MONGOLIAN DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;-1820;MONGOLIAN LETTER A;Lo;0;L;;;;;N;;;;;-1821;MONGOLIAN LETTER E;Lo;0;L;;;;;N;;;;;-1822;MONGOLIAN LETTER I;Lo;0;L;;;;;N;;;;;-1823;MONGOLIAN LETTER O;Lo;0;L;;;;;N;;;;;-1824;MONGOLIAN LETTER U;Lo;0;L;;;;;N;;;;;-1825;MONGOLIAN LETTER OE;Lo;0;L;;;;;N;;;;;-1826;MONGOLIAN LETTER UE;Lo;0;L;;;;;N;;;;;-1827;MONGOLIAN LETTER EE;Lo;0;L;;;;;N;;;;;-1828;MONGOLIAN LETTER NA;Lo;0;L;;;;;N;;;;;-1829;MONGOLIAN LETTER ANG;Lo;0;L;;;;;N;;;;;-182A;MONGOLIAN LETTER BA;Lo;0;L;;;;;N;;;;;-182B;MONGOLIAN LETTER PA;Lo;0;L;;;;;N;;;;;-182C;MONGOLIAN LETTER QA;Lo;0;L;;;;;N;;;;;-182D;MONGOLIAN LETTER GA;Lo;0;L;;;;;N;;;;;-182E;MONGOLIAN LETTER MA;Lo;0;L;;;;;N;;;;;-182F;MONGOLIAN LETTER LA;Lo;0;L;;;;;N;;;;;-1830;MONGOLIAN LETTER SA;Lo;0;L;;;;;N;;;;;-1831;MONGOLIAN LETTER SHA;Lo;0;L;;;;;N;;;;;-1832;MONGOLIAN LETTER TA;Lo;0;L;;;;;N;;;;;-1833;MONGOLIAN LETTER DA;Lo;0;L;;;;;N;;;;;-1834;MONGOLIAN LETTER CHA;Lo;0;L;;;;;N;;;;;-1835;MONGOLIAN LETTER JA;Lo;0;L;;;;;N;;;;;-1836;MONGOLIAN LETTER YA;Lo;0;L;;;;;N;;;;;-1837;MONGOLIAN LETTER RA;Lo;0;L;;;;;N;;;;;-1838;MONGOLIAN LETTER WA;Lo;0;L;;;;;N;;;;;-1839;MONGOLIAN LETTER FA;Lo;0;L;;;;;N;;;;;-183A;MONGOLIAN LETTER KA;Lo;0;L;;;;;N;;;;;-183B;MONGOLIAN LETTER KHA;Lo;0;L;;;;;N;;;;;-183C;MONGOLIAN LETTER TSA;Lo;0;L;;;;;N;;;;;-183D;MONGOLIAN LETTER ZA;Lo;0;L;;;;;N;;;;;-183E;MONGOLIAN LETTER HAA;Lo;0;L;;;;;N;;;;;-183F;MONGOLIAN LETTER ZRA;Lo;0;L;;;;;N;;;;;-1840;MONGOLIAN LETTER LHA;Lo;0;L;;;;;N;;;;;-1841;MONGOLIAN LETTER ZHI;Lo;0;L;;;;;N;;;;;-1842;MONGOLIAN LETTER CHI;Lo;0;L;;;;;N;;;;;-1843;MONGOLIAN LETTER TODO LONG VOWEL SIGN;Lm;0;L;;;;;N;;;;;-1844;MONGOLIAN LETTER TODO E;Lo;0;L;;;;;N;;;;;-1845;MONGOLIAN LETTER TODO I;Lo;0;L;;;;;N;;;;;-1846;MONGOLIAN LETTER TODO O;Lo;0;L;;;;;N;;;;;-1847;MONGOLIAN LETTER TODO U;Lo;0;L;;;;;N;;;;;-1848;MONGOLIAN LETTER TODO OE;Lo;0;L;;;;;N;;;;;-1849;MONGOLIAN LETTER TODO UE;Lo;0;L;;;;;N;;;;;-184A;MONGOLIAN LETTER TODO ANG;Lo;0;L;;;;;N;;;;;-184B;MONGOLIAN LETTER TODO BA;Lo;0;L;;;;;N;;;;;-184C;MONGOLIAN LETTER TODO PA;Lo;0;L;;;;;N;;;;;-184D;MONGOLIAN LETTER TODO QA;Lo;0;L;;;;;N;;;;;-184E;MONGOLIAN LETTER TODO GA;Lo;0;L;;;;;N;;;;;-184F;MONGOLIAN LETTER TODO MA;Lo;0;L;;;;;N;;;;;-1850;MONGOLIAN LETTER TODO TA;Lo;0;L;;;;;N;;;;;-1851;MONGOLIAN LETTER TODO DA;Lo;0;L;;;;;N;;;;;-1852;MONGOLIAN LETTER TODO CHA;Lo;0;L;;;;;N;;;;;-1853;MONGOLIAN LETTER TODO JA;Lo;0;L;;;;;N;;;;;-1854;MONGOLIAN LETTER TODO TSA;Lo;0;L;;;;;N;;;;;-1855;MONGOLIAN LETTER TODO YA;Lo;0;L;;;;;N;;;;;-1856;MONGOLIAN LETTER TODO WA;Lo;0;L;;;;;N;;;;;-1857;MONGOLIAN LETTER TODO KA;Lo;0;L;;;;;N;;;;;-1858;MONGOLIAN LETTER TODO GAA;Lo;0;L;;;;;N;;;;;-1859;MONGOLIAN LETTER TODO HAA;Lo;0;L;;;;;N;;;;;-185A;MONGOLIAN LETTER TODO JIA;Lo;0;L;;;;;N;;;;;-185B;MONGOLIAN LETTER TODO NIA;Lo;0;L;;;;;N;;;;;-185C;MONGOLIAN LETTER TODO DZA;Lo;0;L;;;;;N;;;;;-185D;MONGOLIAN LETTER SIBE E;Lo;0;L;;;;;N;;;;;-185E;MONGOLIAN LETTER SIBE I;Lo;0;L;;;;;N;;;;;-185F;MONGOLIAN LETTER SIBE IY;Lo;0;L;;;;;N;;;;;-1860;MONGOLIAN LETTER SIBE UE;Lo;0;L;;;;;N;;;;;-1861;MONGOLIAN LETTER SIBE U;Lo;0;L;;;;;N;;;;;-1862;MONGOLIAN LETTER SIBE ANG;Lo;0;L;;;;;N;;;;;-1863;MONGOLIAN LETTER SIBE KA;Lo;0;L;;;;;N;;;;;-1864;MONGOLIAN LETTER SIBE GA;Lo;0;L;;;;;N;;;;;-1865;MONGOLIAN LETTER SIBE HA;Lo;0;L;;;;;N;;;;;-1866;MONGOLIAN LETTER SIBE PA;Lo;0;L;;;;;N;;;;;-1867;MONGOLIAN LETTER SIBE SHA;Lo;0;L;;;;;N;;;;;-1868;MONGOLIAN LETTER SIBE TA;Lo;0;L;;;;;N;;;;;-1869;MONGOLIAN LETTER SIBE DA;Lo;0;L;;;;;N;;;;;-186A;MONGOLIAN LETTER SIBE JA;Lo;0;L;;;;;N;;;;;-186B;MONGOLIAN LETTER SIBE FA;Lo;0;L;;;;;N;;;;;-186C;MONGOLIAN LETTER SIBE GAA;Lo;0;L;;;;;N;;;;;-186D;MONGOLIAN LETTER SIBE HAA;Lo;0;L;;;;;N;;;;;-186E;MONGOLIAN LETTER SIBE TSA;Lo;0;L;;;;;N;;;;;-186F;MONGOLIAN LETTER SIBE ZA;Lo;0;L;;;;;N;;;;;-1870;MONGOLIAN LETTER SIBE RAA;Lo;0;L;;;;;N;;;;;-1871;MONGOLIAN LETTER SIBE CHA;Lo;0;L;;;;;N;;;;;-1872;MONGOLIAN LETTER SIBE ZHA;Lo;0;L;;;;;N;;;;;-1873;MONGOLIAN LETTER MANCHU I;Lo;0;L;;;;;N;;;;;-1874;MONGOLIAN LETTER MANCHU KA;Lo;0;L;;;;;N;;;;;-1875;MONGOLIAN LETTER MANCHU RA;Lo;0;L;;;;;N;;;;;-1876;MONGOLIAN LETTER MANCHU FA;Lo;0;L;;;;;N;;;;;-1877;MONGOLIAN LETTER MANCHU ZHA;Lo;0;L;;;;;N;;;;;-1880;MONGOLIAN LETTER ALI GALI ANUSVARA ONE;Lo;0;L;;;;;N;;;;;-1881;MONGOLIAN LETTER ALI GALI VISARGA ONE;Lo;0;L;;;;;N;;;;;-1882;MONGOLIAN LETTER ALI GALI DAMARU;Lo;0;L;;;;;N;;;;;-1883;MONGOLIAN LETTER ALI GALI UBADAMA;Lo;0;L;;;;;N;;;;;-1884;MONGOLIAN LETTER ALI GALI INVERTED UBADAMA;Lo;0;L;;;;;N;;;;;-1885;MONGOLIAN LETTER ALI GALI BALUDA;Lo;0;L;;;;;N;;;;;-1886;MONGOLIAN LETTER ALI GALI THREE BALUDA;Lo;0;L;;;;;N;;;;;-1887;MONGOLIAN LETTER ALI GALI A;Lo;0;L;;;;;N;;;;;-1888;MONGOLIAN LETTER ALI GALI I;Lo;0;L;;;;;N;;;;;-1889;MONGOLIAN LETTER ALI GALI KA;Lo;0;L;;;;;N;;;;;-188A;MONGOLIAN LETTER ALI GALI NGA;Lo;0;L;;;;;N;;;;;-188B;MONGOLIAN LETTER ALI GALI CA;Lo;0;L;;;;;N;;;;;-188C;MONGOLIAN LETTER ALI GALI TTA;Lo;0;L;;;;;N;;;;;-188D;MONGOLIAN LETTER ALI GALI TTHA;Lo;0;L;;;;;N;;;;;-188E;MONGOLIAN LETTER ALI GALI DDA;Lo;0;L;;;;;N;;;;;-188F;MONGOLIAN LETTER ALI GALI NNA;Lo;0;L;;;;;N;;;;;-1890;MONGOLIAN LETTER ALI GALI TA;Lo;0;L;;;;;N;;;;;-1891;MONGOLIAN LETTER ALI GALI DA;Lo;0;L;;;;;N;;;;;-1892;MONGOLIAN LETTER ALI GALI PA;Lo;0;L;;;;;N;;;;;-1893;MONGOLIAN LETTER ALI GALI PHA;Lo;0;L;;;;;N;;;;;-1894;MONGOLIAN LETTER ALI GALI SSA;Lo;0;L;;;;;N;;;;;-1895;MONGOLIAN LETTER ALI GALI ZHA;Lo;0;L;;;;;N;;;;;-1896;MONGOLIAN LETTER ALI GALI ZA;Lo;0;L;;;;;N;;;;;-1897;MONGOLIAN LETTER ALI GALI AH;Lo;0;L;;;;;N;;;;;-1898;MONGOLIAN LETTER TODO ALI GALI TA;Lo;0;L;;;;;N;;;;;-1899;MONGOLIAN LETTER TODO ALI GALI ZHA;Lo;0;L;;;;;N;;;;;-189A;MONGOLIAN LETTER MANCHU ALI GALI GHA;Lo;0;L;;;;;N;;;;;-189B;MONGOLIAN LETTER MANCHU ALI GALI NGA;Lo;0;L;;;;;N;;;;;-189C;MONGOLIAN LETTER MANCHU ALI GALI CA;Lo;0;L;;;;;N;;;;;-189D;MONGOLIAN LETTER MANCHU ALI GALI JHA;Lo;0;L;;;;;N;;;;;-189E;MONGOLIAN LETTER MANCHU ALI GALI TTA;Lo;0;L;;;;;N;;;;;-189F;MONGOLIAN LETTER MANCHU ALI GALI DDHA;Lo;0;L;;;;;N;;;;;-18A0;MONGOLIAN LETTER MANCHU ALI GALI TA;Lo;0;L;;;;;N;;;;;-18A1;MONGOLIAN LETTER MANCHU ALI GALI DHA;Lo;0;L;;;;;N;;;;;-18A2;MONGOLIAN LETTER MANCHU ALI GALI SSA;Lo;0;L;;;;;N;;;;;-18A3;MONGOLIAN LETTER MANCHU ALI GALI CYA;Lo;0;L;;;;;N;;;;;-18A4;MONGOLIAN LETTER MANCHU ALI GALI ZHA;Lo;0;L;;;;;N;;;;;-18A5;MONGOLIAN LETTER MANCHU ALI GALI ZA;Lo;0;L;;;;;N;;;;;-18A6;MONGOLIAN LETTER ALI GALI HALF U;Lo;0;L;;;;;N;;;;;-18A7;MONGOLIAN LETTER ALI GALI HALF YA;Lo;0;L;;;;;N;;;;;-18A8;MONGOLIAN LETTER MANCHU ALI GALI BHA;Lo;0;L;;;;;N;;;;;-18A9;MONGOLIAN LETTER ALI GALI DAGALGA;Mn;228;NSM;;;;;N;;;;;-1900;LIMBU VOWEL-CARRIER LETTER;Lo;0;L;;;;;N;;;;;-1901;LIMBU LETTER KA;Lo;0;L;;;;;N;;;;;-1902;LIMBU LETTER KHA;Lo;0;L;;;;;N;;;;;-1903;LIMBU LETTER GA;Lo;0;L;;;;;N;;;;;-1904;LIMBU LETTER GHA;Lo;0;L;;;;;N;;;;;-1905;LIMBU LETTER NGA;Lo;0;L;;;;;N;;;;;-1906;LIMBU LETTER CA;Lo;0;L;;;;;N;;;;;-1907;LIMBU LETTER CHA;Lo;0;L;;;;;N;;;;;-1908;LIMBU LETTER JA;Lo;0;L;;;;;N;;;;;-1909;LIMBU LETTER JHA;Lo;0;L;;;;;N;;;;;-190A;LIMBU LETTER YAN;Lo;0;L;;;;;N;;;;;-190B;LIMBU LETTER TA;Lo;0;L;;;;;N;;;;;-190C;LIMBU LETTER THA;Lo;0;L;;;;;N;;;;;-190D;LIMBU LETTER DA;Lo;0;L;;;;;N;;;;;-190E;LIMBU LETTER DHA;Lo;0;L;;;;;N;;;;;-190F;LIMBU LETTER NA;Lo;0;L;;;;;N;;;;;-1910;LIMBU LETTER PA;Lo;0;L;;;;;N;;;;;-1911;LIMBU LETTER PHA;Lo;0;L;;;;;N;;;;;-1912;LIMBU LETTER BA;Lo;0;L;;;;;N;;;;;-1913;LIMBU LETTER BHA;Lo;0;L;;;;;N;;;;;-1914;LIMBU LETTER MA;Lo;0;L;;;;;N;;;;;-1915;LIMBU LETTER YA;Lo;0;L;;;;;N;;;;;-1916;LIMBU LETTER RA;Lo;0;L;;;;;N;;;;;-1917;LIMBU LETTER LA;Lo;0;L;;;;;N;;;;;-1918;LIMBU LETTER WA;Lo;0;L;;;;;N;;;;;-1919;LIMBU LETTER SHA;Lo;0;L;;;;;N;;;;;-191A;LIMBU LETTER SSA;Lo;0;L;;;;;N;;;;;-191B;LIMBU LETTER SA;Lo;0;L;;;;;N;;;;;-191C;LIMBU LETTER HA;Lo;0;L;;;;;N;;;;;-1920;LIMBU VOWEL SIGN A;Mn;0;NSM;;;;;N;;;;;-1921;LIMBU VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;-1922;LIMBU VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;-1923;LIMBU VOWEL SIGN EE;Mc;0;L;;;;;N;;;;;-1924;LIMBU VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;-1925;LIMBU VOWEL SIGN OO;Mc;0;L;;;;;N;;;;;-1926;LIMBU VOWEL SIGN AU;Mc;0;L;;;;;N;;;;;-1927;LIMBU VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;-1928;LIMBU VOWEL SIGN O;Mn;0;NSM;;;;;N;;;;;-1929;LIMBU SUBJOINED LETTER YA;Mc;0;NSM;;;;;N;;;;;-192A;LIMBU SUBJOINED LETTER RA;Mc;0;NSM;;;;;N;;;;;-192B;LIMBU SUBJOINED LETTER WA;Mc;0;NSM;;;;;N;;;;;-1930;LIMBU SMALL LETTER KA;Mc;0;L;;;;;N;;;;;-1931;LIMBU SMALL LETTER NGA;Mc;0;L;;;;;N;;;;;-1932;LIMBU SMALL LETTER ANUSVARA;Mn;0;NSM;;;;;N;;;;;-1933;LIMBU SMALL LETTER TA;Mc;0;L;;;;;N;;;;;-1934;LIMBU SMALL LETTER NA;Mc;0;L;;;;;N;;;;;-1935;LIMBU SMALL LETTER PA;Mc;0;L;;;;;N;;;;;-1936;LIMBU SMALL LETTER MA;Mc;0;L;;;;;N;;;;;-1937;LIMBU SMALL LETTER RA;Mc;0;L;;;;;N;;;;;-1938;LIMBU SMALL LETTER LA;Mc;0;L;;;;;N;;;;;-1939;LIMBU SIGN MUKPHRENG;Mn;222;NSM;;;;;N;;;;;-193A;LIMBU SIGN KEMPHRENG;Mn;230;NSM;;;;;N;;;;;-193B;LIMBU SIGN SA-I;Mn;220;NSM;;;;;N;;;;;-1940;LIMBU SIGN LOO;So;0;ON;;;;;N;;;;;-1944;LIMBU EXCLAMATION MARK;Po;0;ON;;;;;N;;;;;-1945;LIMBU QUESTION MARK;Po;0;ON;;;;;N;;;;;-1946;LIMBU DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;-1947;LIMBU DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;-1948;LIMBU DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;-1949;LIMBU DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;-194A;LIMBU DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;-194B;LIMBU DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;-194C;LIMBU DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;-194D;LIMBU DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;-194E;LIMBU DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;-194F;LIMBU DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;-1950;TAI LE LETTER KA;Lo;0;L;;;;;N;;;;;-1951;TAI LE LETTER XA;Lo;0;L;;;;;N;;;;;-1952;TAI LE LETTER NGA;Lo;0;L;;;;;N;;;;;-1953;TAI LE LETTER TSA;Lo;0;L;;;;;N;;;;;-1954;TAI LE LETTER SA;Lo;0;L;;;;;N;;;;;-1955;TAI LE LETTER YA;Lo;0;L;;;;;N;;;;;-1956;TAI LE LETTER TA;Lo;0;L;;;;;N;;;;;-1957;TAI LE LETTER THA;Lo;0;L;;;;;N;;;;;-1958;TAI LE LETTER LA;Lo;0;L;;;;;N;;;;;-1959;TAI LE LETTER PA;Lo;0;L;;;;;N;;;;;-195A;TAI LE LETTER PHA;Lo;0;L;;;;;N;;;;;-195B;TAI LE LETTER MA;Lo;0;L;;;;;N;;;;;-195C;TAI LE LETTER FA;Lo;0;L;;;;;N;;;;;-195D;TAI LE LETTER VA;Lo;0;L;;;;;N;;;;;-195E;TAI LE LETTER HA;Lo;0;L;;;;;N;;;;;-195F;TAI LE LETTER QA;Lo;0;L;;;;;N;;;;;-1960;TAI LE LETTER KHA;Lo;0;L;;;;;N;;;;;-1961;TAI LE LETTER TSHA;Lo;0;L;;;;;N;;;;;-1962;TAI LE LETTER NA;Lo;0;L;;;;;N;;;;;-1963;TAI LE LETTER A;Lo;0;L;;;;;N;;;;;-1964;TAI LE LETTER I;Lo;0;L;;;;;N;;;;;-1965;TAI LE LETTER EE;Lo;0;L;;;;;N;;;;;-1966;TAI LE LETTER EH;Lo;0;L;;;;;N;;;;;-1967;TAI LE LETTER U;Lo;0;L;;;;;N;;;;;-1968;TAI LE LETTER OO;Lo;0;L;;;;;N;;;;;-1969;TAI LE LETTER O;Lo;0;L;;;;;N;;;;;-196A;TAI LE LETTER UE;Lo;0;L;;;;;N;;;;;-196B;TAI LE LETTER E;Lo;0;L;;;;;N;;;;;-196C;TAI LE LETTER AUE;Lo;0;L;;;;;N;;;;;-196D;TAI LE LETTER AI;Lo;0;L;;;;;N;;;;;-1970;TAI LE LETTER TONE-2;Lo;0;L;;;;;N;;;;;-1971;TAI LE LETTER TONE-3;Lo;0;L;;;;;N;;;;;-1972;TAI LE LETTER TONE-4;Lo;0;L;;;;;N;;;;;-1973;TAI LE LETTER TONE-5;Lo;0;L;;;;;N;;;;;-1974;TAI LE LETTER TONE-6;Lo;0;L;;;;;N;;;;;-1980;NEW TAI LUE LETTER HIGH QA;Lo;0;L;;;;;N;;;;;-1981;NEW TAI LUE LETTER LOW QA;Lo;0;L;;;;;N;;;;;-1982;NEW TAI LUE LETTER HIGH KA;Lo;0;L;;;;;N;;;;;-1983;NEW TAI LUE LETTER HIGH XA;Lo;0;L;;;;;N;;;;;-1984;NEW TAI LUE LETTER HIGH NGA;Lo;0;L;;;;;N;;;;;-1985;NEW TAI LUE LETTER LOW KA;Lo;0;L;;;;;N;;;;;-1986;NEW TAI LUE LETTER LOW XA;Lo;0;L;;;;;N;;;;;-1987;NEW TAI LUE LETTER LOW NGA;Lo;0;L;;;;;N;;;;;-1988;NEW TAI LUE LETTER HIGH TSA;Lo;0;L;;;;;N;;;;;-1989;NEW TAI LUE LETTER HIGH SA;Lo;0;L;;;;;N;;;;;-198A;NEW TAI LUE LETTER HIGH YA;Lo;0;L;;;;;N;;;;;-198B;NEW TAI LUE LETTER LOW TSA;Lo;0;L;;;;;N;;;;;-198C;NEW TAI LUE LETTER LOW SA;Lo;0;L;;;;;N;;;;;-198D;NEW TAI LUE LETTER LOW YA;Lo;0;L;;;;;N;;;;;-198E;NEW TAI LUE LETTER HIGH TA;Lo;0;L;;;;;N;;;;;-198F;NEW TAI LUE LETTER HIGH THA;Lo;0;L;;;;;N;;;;;-1990;NEW TAI LUE LETTER HIGH NA;Lo;0;L;;;;;N;;;;;-1991;NEW TAI LUE LETTER LOW TA;Lo;0;L;;;;;N;;;;;-1992;NEW TAI LUE LETTER LOW THA;Lo;0;L;;;;;N;;;;;-1993;NEW TAI LUE LETTER LOW NA;Lo;0;L;;;;;N;;;;;-1994;NEW TAI LUE LETTER HIGH PA;Lo;0;L;;;;;N;;;;;-1995;NEW TAI LUE LETTER HIGH PHA;Lo;0;L;;;;;N;;;;;-1996;NEW TAI LUE LETTER HIGH MA;Lo;0;L;;;;;N;;;;;-1997;NEW TAI LUE LETTER LOW PA;Lo;0;L;;;;;N;;;;;-1998;NEW TAI LUE LETTER LOW PHA;Lo;0;L;;;;;N;;;;;-1999;NEW TAI LUE LETTER LOW MA;Lo;0;L;;;;;N;;;;;-199A;NEW TAI LUE LETTER HIGH FA;Lo;0;L;;;;;N;;;;;-199B;NEW TAI LUE LETTER HIGH VA;Lo;0;L;;;;;N;;;;;-199C;NEW TAI LUE LETTER HIGH LA;Lo;0;L;;;;;N;;;;;-199D;NEW TAI LUE LETTER LOW FA;Lo;0;L;;;;;N;;;;;-199E;NEW TAI LUE LETTER LOW VA;Lo;0;L;;;;;N;;;;;-199F;NEW TAI LUE LETTER LOW LA;Lo;0;L;;;;;N;;;;;-19A0;NEW TAI LUE LETTER HIGH HA;Lo;0;L;;;;;N;;;;;-19A1;NEW TAI LUE LETTER HIGH DA;Lo;0;L;;;;;N;;;;;-19A2;NEW TAI LUE LETTER HIGH BA;Lo;0;L;;;;;N;;;;;-19A3;NEW TAI LUE LETTER LOW HA;Lo;0;L;;;;;N;;;;;-19A4;NEW TAI LUE LETTER LOW DA;Lo;0;L;;;;;N;;;;;-19A5;NEW TAI LUE LETTER LOW BA;Lo;0;L;;;;;N;;;;;-19A6;NEW TAI LUE LETTER HIGH KVA;Lo;0;L;;;;;N;;;;;-19A7;NEW TAI LUE LETTER HIGH XVA;Lo;0;L;;;;;N;;;;;-19A8;NEW TAI LUE LETTER LOW KVA;Lo;0;L;;;;;N;;;;;-19A9;NEW TAI LUE LETTER LOW XVA;Lo;0;L;;;;;N;;;;;-19B0;NEW TAI LUE VOWEL SIGN VOWEL SHORTENER;Mc;0;L;;;;;N;;;;;-19B1;NEW TAI LUE VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;-19B2;NEW TAI LUE VOWEL SIGN II;Mc;0;L;;;;;N;;;;;-19B3;NEW TAI LUE VOWEL SIGN U;Mc;0;L;;;;;N;;;;;-19B4;NEW TAI LUE VOWEL SIGN UU;Mc;0;L;;;;;N;;;;;-19B5;NEW TAI LUE VOWEL SIGN E;Mc;0;L;;;;;N;;;;;-19B6;NEW TAI LUE VOWEL SIGN AE;Mc;0;L;;;;;N;;;;;-19B7;NEW TAI LUE VOWEL SIGN O;Mc;0;L;;;;;N;;;;;-19B8;NEW TAI LUE VOWEL SIGN OA;Mc;0;L;;;;;N;;;;;-19B9;NEW TAI LUE VOWEL SIGN UE;Mc;0;L;;;;;N;;;;;-19BA;NEW TAI LUE VOWEL SIGN AY;Mc;0;L;;;;;N;;;;;-19BB;NEW TAI LUE VOWEL SIGN AAY;Mc;0;L;;;;;N;;;;;-19BC;NEW TAI LUE VOWEL SIGN UY;Mc;0;L;;;;;N;;;;;-19BD;NEW TAI LUE VOWEL SIGN OY;Mc;0;L;;;;;N;;;;;-19BE;NEW TAI LUE VOWEL SIGN OAY;Mc;0;L;;;;;N;;;;;-19BF;NEW TAI LUE VOWEL SIGN UEY;Mc;0;L;;;;;N;;;;;-19C0;NEW TAI LUE VOWEL SIGN IY;Mc;0;L;;;;;N;;;;;-19C1;NEW TAI LUE LETTER FINAL V;Lo;0;L;;;;;N;;;;;-19C2;NEW TAI LUE LETTER FINAL NG;Lo;0;L;;;;;N;;;;;-19C3;NEW TAI LUE LETTER FINAL N;Lo;0;L;;;;;N;;;;;-19C4;NEW TAI LUE LETTER FINAL M;Lo;0;L;;;;;N;;;;;-19C5;NEW TAI LUE LETTER FINAL K;Lo;0;L;;;;;N;;;;;-19C6;NEW TAI LUE LETTER FINAL D;Lo;0;L;;;;;N;;;;;-19C7;NEW TAI LUE LETTER FINAL B;Lo;0;L;;;;;N;;;;;-19C8;NEW TAI LUE TONE MARK-1;Mc;0;L;;;;;N;;;;;-19C9;NEW TAI LUE TONE MARK-2;Mc;0;L;;;;;N;;;;;-19D0;NEW TAI LUE DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;-19D1;NEW TAI LUE DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;-19D2;NEW TAI LUE DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;-19D3;NEW TAI LUE DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;-19D4;NEW TAI LUE DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;-19D5;NEW TAI LUE DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;-19D6;NEW TAI LUE DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;-19D7;NEW TAI LUE DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;-19D8;NEW TAI LUE DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;-19D9;NEW TAI LUE DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;-19DE;NEW TAI LUE SIGN LAE;Po;0;ON;;;;;N;;;;;-19DF;NEW TAI LUE SIGN LAEV;Po;0;ON;;;;;N;;;;;-19E0;KHMER SYMBOL PATHAMASAT;So;0;ON;;;;;N;;;;;-19E1;KHMER SYMBOL MUOY KOET;So;0;ON;;;;;N;;;;;-19E2;KHMER SYMBOL PII KOET;So;0;ON;;;;;N;;;;;-19E3;KHMER SYMBOL BEI KOET;So;0;ON;;;;;N;;;;;-19E4;KHMER SYMBOL BUON KOET;So;0;ON;;;;;N;;;;;-19E5;KHMER SYMBOL PRAM KOET;So;0;ON;;;;;N;;;;;-19E6;KHMER SYMBOL PRAM-MUOY KOET;So;0;ON;;;;;N;;;;;-19E7;KHMER SYMBOL PRAM-PII KOET;So;0;ON;;;;;N;;;;;-19E8;KHMER SYMBOL PRAM-BEI KOET;So;0;ON;;;;;N;;;;;-19E9;KHMER SYMBOL PRAM-BUON KOET;So;0;ON;;;;;N;;;;;-19EA;KHMER SYMBOL DAP KOET;So;0;ON;;;;;N;;;;;-19EB;KHMER SYMBOL DAP-MUOY KOET;So;0;ON;;;;;N;;;;;-19EC;KHMER SYMBOL DAP-PII KOET;So;0;ON;;;;;N;;;;;-19ED;KHMER SYMBOL DAP-BEI KOET;So;0;ON;;;;;N;;;;;-19EE;KHMER SYMBOL DAP-BUON KOET;So;0;ON;;;;;N;;;;;-19EF;KHMER SYMBOL DAP-PRAM KOET;So;0;ON;;;;;N;;;;;-19F0;KHMER SYMBOL TUTEYASAT;So;0;ON;;;;;N;;;;;-19F1;KHMER SYMBOL MUOY ROC;So;0;ON;;;;;N;;;;;-19F2;KHMER SYMBOL PII ROC;So;0;ON;;;;;N;;;;;-19F3;KHMER SYMBOL BEI ROC;So;0;ON;;;;;N;;;;;-19F4;KHMER SYMBOL BUON ROC;So;0;ON;;;;;N;;;;;-19F5;KHMER SYMBOL PRAM ROC;So;0;ON;;;;;N;;;;;-19F6;KHMER SYMBOL PRAM-MUOY ROC;So;0;ON;;;;;N;;;;;-19F7;KHMER SYMBOL PRAM-PII ROC;So;0;ON;;;;;N;;;;;-19F8;KHMER SYMBOL PRAM-BEI ROC;So;0;ON;;;;;N;;;;;-19F9;KHMER SYMBOL PRAM-BUON ROC;So;0;ON;;;;;N;;;;;-19FA;KHMER SYMBOL DAP ROC;So;0;ON;;;;;N;;;;;-19FB;KHMER SYMBOL DAP-MUOY ROC;So;0;ON;;;;;N;;;;;-19FC;KHMER SYMBOL DAP-PII ROC;So;0;ON;;;;;N;;;;;-19FD;KHMER SYMBOL DAP-BEI ROC;So;0;ON;;;;;N;;;;;-19FE;KHMER SYMBOL DAP-BUON ROC;So;0;ON;;;;;N;;;;;-19FF;KHMER SYMBOL DAP-PRAM ROC;So;0;ON;;;;;N;;;;;-1A00;BUGINESE LETTER KA;Lo;0;L;;;;;N;;;;;-1A01;BUGINESE LETTER GA;Lo;0;L;;;;;N;;;;;-1A02;BUGINESE LETTER NGA;Lo;0;L;;;;;N;;;;;-1A03;BUGINESE LETTER NGKA;Lo;0;L;;;;;N;;;;;-1A04;BUGINESE LETTER PA;Lo;0;L;;;;;N;;;;;-1A05;BUGINESE LETTER BA;Lo;0;L;;;;;N;;;;;-1A06;BUGINESE LETTER MA;Lo;0;L;;;;;N;;;;;-1A07;BUGINESE LETTER MPA;Lo;0;L;;;;;N;;;;;-1A08;BUGINESE LETTER TA;Lo;0;L;;;;;N;;;;;-1A09;BUGINESE LETTER DA;Lo;0;L;;;;;N;;;;;-1A0A;BUGINESE LETTER NA;Lo;0;L;;;;;N;;;;;-1A0B;BUGINESE LETTER NRA;Lo;0;L;;;;;N;;;;;-1A0C;BUGINESE LETTER CA;Lo;0;L;;;;;N;;;;;-1A0D;BUGINESE LETTER JA;Lo;0;L;;;;;N;;;;;-1A0E;BUGINESE LETTER NYA;Lo;0;L;;;;;N;;;;;-1A0F;BUGINESE LETTER NYCA;Lo;0;L;;;;;N;;;;;-1A10;BUGINESE LETTER YA;Lo;0;L;;;;;N;;;;;-1A11;BUGINESE LETTER RA;Lo;0;L;;;;;N;;;;;-1A12;BUGINESE LETTER LA;Lo;0;L;;;;;N;;;;;-1A13;BUGINESE LETTER VA;Lo;0;L;;;;;N;;;;;-1A14;BUGINESE LETTER SA;Lo;0;L;;;;;N;;;;;-1A15;BUGINESE LETTER A;Lo;0;L;;;;;N;;;;;-1A16;BUGINESE LETTER HA;Lo;0;L;;;;;N;;;;;-1A17;BUGINESE VOWEL SIGN I;Mn;230;NSM;;;;;N;;;;;-1A18;BUGINESE VOWEL SIGN U;Mn;220;NSM;;;;;N;;;;;-1A19;BUGINESE VOWEL SIGN E;Mc;0;L;;;;;N;;;;;-1A1A;BUGINESE VOWEL SIGN O;Mc;0;L;;;;;N;;;;;-1A1B;BUGINESE VOWEL SIGN AE;Mc;0;L;;;;;N;;;;;-1A1E;BUGINESE PALLAWA;Po;0;L;;;;;N;;;;;-1A1F;BUGINESE END OF SECTION;Po;0;L;;;;;N;;;;;-1B00;BALINESE SIGN ULU RICEM;Mn;0;NSM;;;;;N;;ardhacandra;;;-1B01;BALINESE SIGN ULU CANDRA;Mn;0;NSM;;;;;N;;candrabindu;;;-1B02;BALINESE SIGN CECEK;Mn;0;NSM;;;;;N;;anusvara;;;-1B03;BALINESE SIGN SURANG;Mn;0;NSM;;;;;N;;repha;;;-1B04;BALINESE SIGN BISAH;Mc;0;L;;;;;N;;visarga;;;-1B05;BALINESE LETTER AKARA;Lo;0;L;;;;;N;;a;;;-1B06;BALINESE LETTER AKARA TEDUNG;Lo;0;L;1B05 1B35;;;;N;;aa;;;-1B07;BALINESE LETTER IKARA;Lo;0;L;;;;;N;;i;;;-1B08;BALINESE LETTER IKARA TEDUNG;Lo;0;L;1B07 1B35;;;;N;;ii;;;-1B09;BALINESE LETTER UKARA;Lo;0;L;;;;;N;;u;;;-1B0A;BALINESE LETTER UKARA TEDUNG;Lo;0;L;1B09 1B35;;;;N;;uu;;;-1B0B;BALINESE LETTER RA REPA;Lo;0;L;;;;;N;;vocalic r;;;-1B0C;BALINESE LETTER RA REPA TEDUNG;Lo;0;L;1B0B 1B35;;;;N;;vocalic rr;;;-1B0D;BALINESE LETTER LA LENGA;Lo;0;L;;;;;N;;vocalic l;;;-1B0E;BALINESE LETTER LA LENGA TEDUNG;Lo;0;L;1B0D 1B35;;;;N;;vocalic ll;;;-1B0F;BALINESE LETTER EKARA;Lo;0;L;;;;;N;;e;;;-1B10;BALINESE LETTER AIKARA;Lo;0;L;;;;;N;;ai;;;-1B11;BALINESE LETTER OKARA;Lo;0;L;;;;;N;;o;;;-1B12;BALINESE LETTER OKARA TEDUNG;Lo;0;L;1B11 1B35;;;;N;;au;;;-1B13;BALINESE LETTER KA;Lo;0;L;;;;;N;;;;;-1B14;BALINESE LETTER KA MAHAPRANA;Lo;0;L;;;;;N;;kha;;;-1B15;BALINESE LETTER GA;Lo;0;L;;;;;N;;;;;-1B16;BALINESE LETTER GA GORA;Lo;0;L;;;;;N;;gha;;;-1B17;BALINESE LETTER NGA;Lo;0;L;;;;;N;;;;;-1B18;BALINESE LETTER CA;Lo;0;L;;;;;N;;;;;-1B19;BALINESE LETTER CA LACA;Lo;0;L;;;;;N;;cha;;;-1B1A;BALINESE LETTER JA;Lo;0;L;;;;;N;;;;;-1B1B;BALINESE LETTER JA JERA;Lo;0;L;;;;;N;;jha;;;-1B1C;BALINESE LETTER NYA;Lo;0;L;;;;;N;;;;;-1B1D;BALINESE LETTER TA LATIK;Lo;0;L;;;;;N;;tta;;;-1B1E;BALINESE LETTER TA MURDA MAHAPRANA;Lo;0;L;;;;;N;;ttha;;;-1B1F;BALINESE LETTER DA MURDA ALPAPRANA;Lo;0;L;;;;;N;;dda;;;-1B20;BALINESE LETTER DA MURDA MAHAPRANA;Lo;0;L;;;;;N;;ddha;;;-1B21;BALINESE LETTER NA RAMBAT;Lo;0;L;;;;;N;;nna;;;-1B22;BALINESE LETTER TA;Lo;0;L;;;;;N;;;;;-1B23;BALINESE LETTER TA TAWA;Lo;0;L;;;;;N;;tha;;;-1B24;BALINESE LETTER DA;Lo;0;L;;;;;N;;;;;-1B25;BALINESE LETTER DA MADU;Lo;0;L;;;;;N;;dha;;;-1B26;BALINESE LETTER NA;Lo;0;L;;;;;N;;;;;-1B27;BALINESE LETTER PA;Lo;0;L;;;;;N;;;;;-1B28;BALINESE LETTER PA KAPAL;Lo;0;L;;;;;N;;pha;;;-1B29;BALINESE LETTER BA;Lo;0;L;;;;;N;;;;;-1B2A;BALINESE LETTER BA KEMBANG;Lo;0;L;;;;;N;;bha;;;-1B2B;BALINESE LETTER MA;Lo;0;L;;;;;N;;;;;-1B2C;BALINESE LETTER YA;Lo;0;L;;;;;N;;;;;-1B2D;BALINESE LETTER RA;Lo;0;L;;;;;N;;;;;-1B2E;BALINESE LETTER LA;Lo;0;L;;;;;N;;;;;-1B2F;BALINESE LETTER WA;Lo;0;L;;;;;N;;;;;-1B30;BALINESE LETTER SA SAGA;Lo;0;L;;;;;N;;sha;;;-1B31;BALINESE LETTER SA SAPA;Lo;0;L;;;;;N;;ssa;;;-1B32;BALINESE LETTER SA;Lo;0;L;;;;;N;;;;;-1B33;BALINESE LETTER HA;Lo;0;L;;;;;N;;;;;-1B34;BALINESE SIGN REREKAN;Mn;7;NSM;;;;;N;;nukta;;;-1B35;BALINESE VOWEL SIGN TEDUNG;Mc;0;L;;;;;N;;aa;;;-1B36;BALINESE VOWEL SIGN ULU;Mn;0;NSM;;;;;N;;i;;;-1B37;BALINESE VOWEL SIGN ULU SARI;Mn;0;NSM;;;;;N;;ii;;;-1B38;BALINESE VOWEL SIGN SUKU;Mn;0;NSM;;;;;N;;u;;;-1B39;BALINESE VOWEL SIGN SUKU ILUT;Mn;0;NSM;;;;;N;;uu;;;-1B3A;BALINESE VOWEL SIGN RA REPA;Mn;0;NSM;;;;;N;;vocalic r;;;-1B3B;BALINESE VOWEL SIGN RA REPA TEDUNG;Mc;0;L;1B3A 1B35;;;;N;;vocalic rr;;;-1B3C;BALINESE VOWEL SIGN LA LENGA;Mn;0;NSM;;;;;N;;vocalic l;;;-1B3D;BALINESE VOWEL SIGN LA LENGA TEDUNG;Mc;0;L;1B3C 1B35;;;;N;;vocalic ll;;;-1B3E;BALINESE VOWEL SIGN TALING;Mc;0;L;;;;;N;;e;;;-1B3F;BALINESE VOWEL SIGN TALING REPA;Mc;0;L;;;;;N;;ai;;;-1B40;BALINESE VOWEL SIGN TALING TEDUNG;Mc;0;L;1B3E 1B35;;;;N;;o;;;-1B41;BALINESE VOWEL SIGN TALING REPA TEDUNG;Mc;0;L;1B3F 1B35;;;;N;;au;;;-1B42;BALINESE VOWEL SIGN PEPET;Mn;0;NSM;;;;;N;;ae;;;-1B43;BALINESE VOWEL SIGN PEPET TEDUNG;Mc;0;L;1B42 1B35;;;;N;;oe;;;-1B44;BALINESE ADEG ADEG;Mc;9;L;;;;;N;;virama;;;-1B45;BALINESE LETTER KAF SASAK;Lo;0;L;;;;;N;;;;;-1B46;BALINESE LETTER KHOT SASAK;Lo;0;L;;;;;N;;;;;-1B47;BALINESE LETTER TZIR SASAK;Lo;0;L;;;;;N;;;;;-1B48;BALINESE LETTER EF SASAK;Lo;0;L;;;;;N;;;;;-1B49;BALINESE LETTER VE SASAK;Lo;0;L;;;;;N;;;;;-1B4A;BALINESE LETTER ZAL SASAK;Lo;0;L;;;;;N;;;;;-1B4B;BALINESE LETTER ASYURA SASAK;Lo;0;L;;;;;N;;;;;-1B50;BALINESE DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;-1B51;BALINESE DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;-1B52;BALINESE DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;-1B53;BALINESE DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;-1B54;BALINESE DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;-1B55;BALINESE DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;-1B56;BALINESE DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;-1B57;BALINESE DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;-1B58;BALINESE DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;-1B59;BALINESE DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;-1B5A;BALINESE PANTI;Po;0;L;;;;;N;;section;;;-1B5B;BALINESE PAMADA;Po;0;L;;;;;N;;honorific section;;;-1B5C;BALINESE WINDU;Po;0;L;;;;;N;;punctuation ring;;;-1B5D;BALINESE CARIK PAMUNGKAH;Po;0;L;;;;;N;;colon;;;-1B5E;BALINESE CARIK SIKI;Po;0;L;;;;;N;;danda;;;-1B5F;BALINESE CARIK PAREREN;Po;0;L;;;;;N;;double danda;;;-1B60;BALINESE PAMENENG;Po;0;L;;;;;N;;line-breaking hyphen;;;-1B61;BALINESE MUSICAL SYMBOL DONG;So;0;L;;;;;N;;;;;-1B62;BALINESE MUSICAL SYMBOL DENG;So;0;L;;;;;N;;;;;-1B63;BALINESE MUSICAL SYMBOL DUNG;So;0;L;;;;;N;;;;;-1B64;BALINESE MUSICAL SYMBOL DANG;So;0;L;;;;;N;;;;;-1B65;BALINESE MUSICAL SYMBOL DANG SURANG;So;0;L;;;;;N;;;;;-1B66;BALINESE MUSICAL SYMBOL DING;So;0;L;;;;;N;;;;;-1B67;BALINESE MUSICAL SYMBOL DAENG;So;0;L;;;;;N;;;;;-1B68;BALINESE MUSICAL SYMBOL DEUNG;So;0;L;;;;;N;;;;;-1B69;BALINESE MUSICAL SYMBOL DAING;So;0;L;;;;;N;;;;;-1B6A;BALINESE MUSICAL SYMBOL DANG GEDE;So;0;L;;;;;N;;;;;-1B6B;BALINESE MUSICAL SYMBOL COMBINING TEGEH;Mn;230;NSM;;;;;N;;;;;-1B6C;BALINESE MUSICAL SYMBOL COMBINING ENDEP;Mn;220;NSM;;;;;N;;;;;-1B6D;BALINESE MUSICAL SYMBOL COMBINING KEMPUL;Mn;230;NSM;;;;;N;;;;;-1B6E;BALINESE MUSICAL SYMBOL COMBINING KEMPLI;Mn;230;NSM;;;;;N;;;;;-1B6F;BALINESE MUSICAL SYMBOL COMBINING JEGOGAN;Mn;230;NSM;;;;;N;;;;;-1B70;BALINESE MUSICAL SYMBOL COMBINING KEMPUL WITH JEGOGAN;Mn;230;NSM;;;;;N;;;;;-1B71;BALINESE MUSICAL SYMBOL COMBINING KEMPLI WITH JEGOGAN;Mn;230;NSM;;;;;N;;;;;-1B72;BALINESE MUSICAL SYMBOL COMBINING BENDE;Mn;230;NSM;;;;;N;;;;;-1B73;BALINESE MUSICAL SYMBOL COMBINING GONG;Mn;230;NSM;;;;;N;;;;;-1B74;BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG;So;0;L;;;;;N;;;;;-1B75;BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DAG;So;0;L;;;;;N;;;;;-1B76;BALINESE MUSICAL SYMBOL RIGHT-HAND CLOSED TUK;So;0;L;;;;;N;;;;;-1B77;BALINESE MUSICAL SYMBOL RIGHT-HAND CLOSED TAK;So;0;L;;;;;N;;;;;-1B78;BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PANG;So;0;L;;;;;N;;;;;-1B79;BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PUNG;So;0;L;;;;;N;;;;;-1B7A;BALINESE MUSICAL SYMBOL LEFT-HAND CLOSED PLAK;So;0;L;;;;;N;;;;;-1B7B;BALINESE MUSICAL SYMBOL LEFT-HAND CLOSED PLUK;So;0;L;;;;;N;;;;;-1B7C;BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING;So;0;L;;;;;N;;;;;-1D00;LATIN LETTER SMALL CAPITAL A;Ll;0;L;;;;;N;;;;;-1D01;LATIN LETTER SMALL CAPITAL AE;Ll;0;L;;;;;N;;;;;-1D02;LATIN SMALL LETTER TURNED AE;Ll;0;L;;;;;N;;;;;-1D03;LATIN LETTER SMALL CAPITAL BARRED B;Ll;0;L;;;;;N;;;;;-1D04;LATIN LETTER SMALL CAPITAL C;Ll;0;L;;;;;N;;;;;-1D05;LATIN LETTER SMALL CAPITAL D;Ll;0;L;;;;;N;;;;;-1D06;LATIN LETTER SMALL CAPITAL ETH;Ll;0;L;;;;;N;;;;;-1D07;LATIN LETTER SMALL CAPITAL E;Ll;0;L;;;;;N;;;;;-1D08;LATIN SMALL LETTER TURNED OPEN E;Ll;0;L;;;;;N;;;;;-1D09;LATIN SMALL LETTER TURNED I;Ll;0;L;;;;;N;;;;;-1D0A;LATIN LETTER SMALL CAPITAL J;Ll;0;L;;;;;N;;;;;-1D0B;LATIN LETTER SMALL CAPITAL K;Ll;0;L;;;;;N;;;;;-1D0C;LATIN LETTER SMALL CAPITAL L WITH STROKE;Ll;0;L;;;;;N;;;;;-1D0D;LATIN LETTER SMALL CAPITAL M;Ll;0;L;;;;;N;;;;;-1D0E;LATIN LETTER SMALL CAPITAL REVERSED N;Ll;0;L;;;;;N;;;;;-1D0F;LATIN LETTER SMALL CAPITAL O;Ll;0;L;;;;;N;;;;;-1D10;LATIN LETTER SMALL CAPITAL OPEN O;Ll;0;L;;;;;N;;;;;-1D11;LATIN SMALL LETTER SIDEWAYS O;Ll;0;L;;;;;N;;;;;-1D12;LATIN SMALL LETTER SIDEWAYS OPEN O;Ll;0;L;;;;;N;;;;;-1D13;LATIN SMALL LETTER SIDEWAYS O WITH STROKE;Ll;0;L;;;;;N;;;;;-1D14;LATIN SMALL LETTER TURNED OE;Ll;0;L;;;;;N;;;;;-1D15;LATIN LETTER SMALL CAPITAL OU;Ll;0;L;;;;;N;;;;;-1D16;LATIN SMALL LETTER TOP HALF O;Ll;0;L;;;;;N;;;;;-1D17;LATIN SMALL LETTER BOTTOM HALF O;Ll;0;L;;;;;N;;;;;-1D18;LATIN LETTER SMALL CAPITAL P;Ll;0;L;;;;;N;;;;;-1D19;LATIN LETTER SMALL CAPITAL REVERSED R;Ll;0;L;;;;;N;;;;;-1D1A;LATIN LETTER SMALL CAPITAL TURNED R;Ll;0;L;;;;;N;;;;;-1D1B;LATIN LETTER SMALL CAPITAL T;Ll;0;L;;;;;N;;;;;-1D1C;LATIN LETTER SMALL CAPITAL U;Ll;0;L;;;;;N;;;;;-1D1D;LATIN SMALL LETTER SIDEWAYS U;Ll;0;L;;;;;N;;;;;-1D1E;LATIN SMALL LETTER SIDEWAYS DIAERESIZED U;Ll;0;L;;;;;N;;;;;-1D1F;LATIN SMALL LETTER SIDEWAYS TURNED M;Ll;0;L;;;;;N;;;;;-1D20;LATIN LETTER SMALL CAPITAL V;Ll;0;L;;;;;N;;;;;-1D21;LATIN LETTER SMALL CAPITAL W;Ll;0;L;;;;;N;;;;;-1D22;LATIN LETTER SMALL CAPITAL Z;Ll;0;L;;;;;N;;;;;-1D23;LATIN LETTER SMALL CAPITAL EZH;Ll;0;L;;;;;N;;;;;-1D24;LATIN LETTER VOICED LARYNGEAL SPIRANT;Ll;0;L;;;;;N;;;;;-1D25;LATIN LETTER AIN;Ll;0;L;;;;;N;;;;;-1D26;GREEK LETTER SMALL CAPITAL GAMMA;Ll;0;L;;;;;N;;;;;-1D27;GREEK LETTER SMALL CAPITAL LAMDA;Ll;0;L;;;;;N;;;;;-1D28;GREEK LETTER SMALL CAPITAL PI;Ll;0;L;;;;;N;;;;;-1D29;GREEK LETTER SMALL CAPITAL RHO;Ll;0;L;;;;;N;;;;;-1D2A;GREEK LETTER SMALL CAPITAL PSI;Ll;0;L;;;;;N;;;;;-1D2B;CYRILLIC LETTER SMALL CAPITAL EL;Ll;0;L;;;;;N;;;;;-1D2C;MODIFIER LETTER CAPITAL A;Lm;0;L;<super> 0041;;;;N;;;;;-1D2D;MODIFIER LETTER CAPITAL AE;Lm;0;L;<super> 00C6;;;;N;;;;;-1D2E;MODIFIER LETTER CAPITAL B;Lm;0;L;<super> 0042;;;;N;;;;;-1D2F;MODIFIER LETTER CAPITAL BARRED B;Lm;0;L;;;;;N;;;;;-1D30;MODIFIER LETTER CAPITAL D;Lm;0;L;<super> 0044;;;;N;;;;;-1D31;MODIFIER LETTER CAPITAL E;Lm;0;L;<super> 0045;;;;N;;;;;-1D32;MODIFIER LETTER CAPITAL REVERSED E;Lm;0;L;<super> 018E;;;;N;;;;;-1D33;MODIFIER LETTER CAPITAL G;Lm;0;L;<super> 0047;;;;N;;;;;-1D34;MODIFIER LETTER CAPITAL H;Lm;0;L;<super> 0048;;;;N;;;;;-1D35;MODIFIER LETTER CAPITAL I;Lm;0;L;<super> 0049;;;;N;;;;;-1D36;MODIFIER LETTER CAPITAL J;Lm;0;L;<super> 004A;;;;N;;;;;-1D37;MODIFIER LETTER CAPITAL K;Lm;0;L;<super> 004B;;;;N;;;;;-1D38;MODIFIER LETTER CAPITAL L;Lm;0;L;<super> 004C;;;;N;;;;;-1D39;MODIFIER LETTER CAPITAL M;Lm;0;L;<super> 004D;;;;N;;;;;-1D3A;MODIFIER LETTER CAPITAL N;Lm;0;L;<super> 004E;;;;N;;;;;-1D3B;MODIFIER LETTER CAPITAL REVERSED N;Lm;0;L;;;;;N;;;;;-1D3C;MODIFIER LETTER CAPITAL O;Lm;0;L;<super> 004F;;;;N;;;;;-1D3D;MODIFIER LETTER CAPITAL OU;Lm;0;L;<super> 0222;;;;N;;;;;-1D3E;MODIFIER LETTER CAPITAL P;Lm;0;L;<super> 0050;;;;N;;;;;-1D3F;MODIFIER LETTER CAPITAL R;Lm;0;L;<super> 0052;;;;N;;;;;-1D40;MODIFIER LETTER CAPITAL T;Lm;0;L;<super> 0054;;;;N;;;;;-1D41;MODIFIER LETTER CAPITAL U;Lm;0;L;<super> 0055;;;;N;;;;;-1D42;MODIFIER LETTER CAPITAL W;Lm;0;L;<super> 0057;;;;N;;;;;-1D43;MODIFIER LETTER SMALL A;Lm;0;L;<super> 0061;;;;N;;;;;-1D44;MODIFIER LETTER SMALL TURNED A;Lm;0;L;<super> 0250;;;;N;;;;;-1D45;MODIFIER LETTER SMALL ALPHA;Lm;0;L;<super> 0251;;;;N;;;;;-1D46;MODIFIER LETTER SMALL TURNED AE;Lm;0;L;<super> 1D02;;;;N;;;;;-1D47;MODIFIER LETTER SMALL B;Lm;0;L;<super> 0062;;;;N;;;;;-1D48;MODIFIER LETTER SMALL D;Lm;0;L;<super> 0064;;;;N;;;;;-1D49;MODIFIER LETTER SMALL E;Lm;0;L;<super> 0065;;;;N;;;;;-1D4A;MODIFIER LETTER SMALL SCHWA;Lm;0;L;<super> 0259;;;;N;;;;;-1D4B;MODIFIER LETTER SMALL OPEN E;Lm;0;L;<super> 025B;;;;N;;;;;-1D4C;MODIFIER LETTER SMALL TURNED OPEN E;Lm;0;L;<super> 025C;;;;N;;;;;-1D4D;MODIFIER LETTER SMALL G;Lm;0;L;<super> 0067;;;;N;;;;;-1D4E;MODIFIER LETTER SMALL TURNED I;Lm;0;L;;;;;N;;;;;-1D4F;MODIFIER LETTER SMALL K;Lm;0;L;<super> 006B;;;;N;;;;;-1D50;MODIFIER LETTER SMALL M;Lm;0;L;<super> 006D;;;;N;;;;;-1D51;MODIFIER LETTER SMALL ENG;Lm;0;L;<super> 014B;;;;N;;;;;-1D52;MODIFIER LETTER SMALL O;Lm;0;L;<super> 006F;;;;N;;;;;-1D53;MODIFIER LETTER SMALL OPEN O;Lm;0;L;<super> 0254;;;;N;;;;;-1D54;MODIFIER LETTER SMALL TOP HALF O;Lm;0;L;<super> 1D16;;;;N;;;;;-1D55;MODIFIER LETTER SMALL BOTTOM HALF O;Lm;0;L;<super> 1D17;;;;N;;;;;-1D56;MODIFIER LETTER SMALL P;Lm;0;L;<super> 0070;;;;N;;;;;-1D57;MODIFIER LETTER SMALL T;Lm;0;L;<super> 0074;;;;N;;;;;-1D58;MODIFIER LETTER SMALL U;Lm;0;L;<super> 0075;;;;N;;;;;-1D59;MODIFIER LETTER SMALL SIDEWAYS U;Lm;0;L;<super> 1D1D;;;;N;;;;;-1D5A;MODIFIER LETTER SMALL TURNED M;Lm;0;L;<super> 026F;;;;N;;;;;-1D5B;MODIFIER LETTER SMALL V;Lm;0;L;<super> 0076;;;;N;;;;;-1D5C;MODIFIER LETTER SMALL AIN;Lm;0;L;<super> 1D25;;;;N;;;;;-1D5D;MODIFIER LETTER SMALL BETA;Lm;0;L;<super> 03B2;;;;N;;;;;-1D5E;MODIFIER LETTER SMALL GREEK GAMMA;Lm;0;L;<super> 03B3;;;;N;;;;;-1D5F;MODIFIER LETTER SMALL DELTA;Lm;0;L;<super> 03B4;;;;N;;;;;-1D60;MODIFIER LETTER SMALL GREEK PHI;Lm;0;L;<super> 03C6;;;;N;;;;;-1D61;MODIFIER LETTER SMALL CHI;Lm;0;L;<super> 03C7;;;;N;;;;;-1D62;LATIN SUBSCRIPT SMALL LETTER I;Ll;0;L;<sub> 0069;;;;N;;;;;-1D63;LATIN SUBSCRIPT SMALL LETTER R;Ll;0;L;<sub> 0072;;;;N;;;;;-1D64;LATIN SUBSCRIPT SMALL LETTER U;Ll;0;L;<sub> 0075;;;;N;;;;;-1D65;LATIN SUBSCRIPT SMALL LETTER V;Ll;0;L;<sub> 0076;;;;N;;;;;-1D66;GREEK SUBSCRIPT SMALL LETTER BETA;Ll;0;L;<sub> 03B2;;;;N;;;;;-1D67;GREEK SUBSCRIPT SMALL LETTER GAMMA;Ll;0;L;<sub> 03B3;;;;N;;;;;-1D68;GREEK SUBSCRIPT SMALL LETTER RHO;Ll;0;L;<sub> 03C1;;;;N;;;;;-1D69;GREEK SUBSCRIPT SMALL LETTER PHI;Ll;0;L;<sub> 03C6;;;;N;;;;;-1D6A;GREEK SUBSCRIPT SMALL LETTER CHI;Ll;0;L;<sub> 03C7;;;;N;;;;;-1D6B;LATIN SMALL LETTER UE;Ll;0;L;;;;;N;;;;;-1D6C;LATIN SMALL LETTER B WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;-1D6D;LATIN SMALL LETTER D WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;-1D6E;LATIN SMALL LETTER F WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;-1D6F;LATIN SMALL LETTER M WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;-1D70;LATIN SMALL LETTER N WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;-1D71;LATIN SMALL LETTER P WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;-1D72;LATIN SMALL LETTER R WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;-1D73;LATIN SMALL LETTER R WITH FISHHOOK AND MIDDLE TILDE;Ll;0;L;;;;;N;;;;;-1D74;LATIN SMALL LETTER S WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;-1D75;LATIN SMALL LETTER T WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;-1D76;LATIN SMALL LETTER Z WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;-1D77;LATIN SMALL LETTER TURNED G;Ll;0;L;;;;;N;;;;;-1D78;MODIFIER LETTER CYRILLIC EN;Lm;0;L;<super> 043D;;;;N;;;;;-1D79;LATIN SMALL LETTER INSULAR G;Ll;0;L;;;;;N;;;;;-1D7A;LATIN SMALL LETTER TH WITH STRIKETHROUGH;Ll;0;L;;;;;N;;;;;-1D7B;LATIN SMALL CAPITAL LETTER I WITH STROKE;Ll;0;L;;;;;N;;;;;-1D7C;LATIN SMALL LETTER IOTA WITH STROKE;Ll;0;L;;;;;N;;;;;-1D7D;LATIN SMALL LETTER P WITH STROKE;Ll;0;L;;;;;N;;;2C63;;2C63-1D7E;LATIN SMALL CAPITAL LETTER U WITH STROKE;Ll;0;L;;;;;N;;;;;-1D7F;LATIN SMALL LETTER UPSILON WITH STROKE;Ll;0;L;;;;;N;;;;;-1D80;LATIN SMALL LETTER B WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;-1D81;LATIN SMALL LETTER D WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;-1D82;LATIN SMALL LETTER F WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;-1D83;LATIN SMALL LETTER G WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;-1D84;LATIN SMALL LETTER K WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;-1D85;LATIN SMALL LETTER L WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;-1D86;LATIN SMALL LETTER M WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;-1D87;LATIN SMALL LETTER N WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;-1D88;LATIN SMALL LETTER P WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;-1D89;LATIN SMALL LETTER R WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;-1D8A;LATIN SMALL LETTER S WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;-1D8B;LATIN SMALL LETTER ESH WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;-1D8C;LATIN SMALL LETTER V WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;-1D8D;LATIN SMALL LETTER X WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;-1D8E;LATIN SMALL LETTER Z WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;-1D8F;LATIN SMALL LETTER A WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;-1D90;LATIN SMALL LETTER ALPHA WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;-1D91;LATIN SMALL LETTER D WITH HOOK AND TAIL;Ll;0;L;;;;;N;;;;;-1D92;LATIN SMALL LETTER E WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;-1D93;LATIN SMALL LETTER OPEN E WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;-1D94;LATIN SMALL LETTER REVERSED OPEN E WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;-1D95;LATIN SMALL LETTER SCHWA WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;-1D96;LATIN SMALL LETTER I WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;-1D97;LATIN SMALL LETTER OPEN O WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;-1D98;LATIN SMALL LETTER ESH WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;-1D99;LATIN SMALL LETTER U WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;-1D9A;LATIN SMALL LETTER EZH WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;-1D9B;MODIFIER LETTER SMALL TURNED ALPHA;Lm;0;L;<super> 0252;;;;N;;;;;-1D9C;MODIFIER LETTER SMALL C;Lm;0;L;<super> 0063;;;;N;;;;;-1D9D;MODIFIER LETTER SMALL C WITH CURL;Lm;0;L;<super> 0255;;;;N;;;;;-1D9E;MODIFIER LETTER SMALL ETH;Lm;0;L;<super> 00F0;;;;N;;;;;-1D9F;MODIFIER LETTER SMALL REVERSED OPEN E;Lm;0;L;<super> 025C;;;;N;;;;;-1DA0;MODIFIER LETTER SMALL F;Lm;0;L;<super> 0066;;;;N;;;;;-1DA1;MODIFIER LETTER SMALL DOTLESS J WITH STROKE;Lm;0;L;<super> 025F;;;;N;;;;;-1DA2;MODIFIER LETTER SMALL SCRIPT G;Lm;0;L;<super> 0261;;;;N;;;;;-1DA3;MODIFIER LETTER SMALL TURNED H;Lm;0;L;<super> 0265;;;;N;;;;;-1DA4;MODIFIER LETTER SMALL I WITH STROKE;Lm;0;L;<super> 0268;;;;N;;;;;-1DA5;MODIFIER LETTER SMALL IOTA;Lm;0;L;<super> 0269;;;;N;;;;;-1DA6;MODIFIER LETTER SMALL CAPITAL I;Lm;0;L;<super> 026A;;;;N;;;;;-1DA7;MODIFIER LETTER SMALL CAPITAL I WITH STROKE;Lm;0;L;<super> 1D7B;;;;N;;;;;-1DA8;MODIFIER LETTER SMALL J WITH CROSSED-TAIL;Lm;0;L;<super> 029D;;;;N;;;;;-1DA9;MODIFIER LETTER SMALL L WITH RETROFLEX HOOK;Lm;0;L;<super> 026D;;;;N;;;;;-1DAA;MODIFIER LETTER SMALL L WITH PALATAL HOOK;Lm;0;L;<super> 1D85;;;;N;;;;;-1DAB;MODIFIER LETTER SMALL CAPITAL L;Lm;0;L;<super> 029F;;;;N;;;;;-1DAC;MODIFIER LETTER SMALL M WITH HOOK;Lm;0;L;<super> 0271;;;;N;;;;;-1DAD;MODIFIER LETTER SMALL TURNED M WITH LONG LEG;Lm;0;L;<super> 0270;;;;N;;;;;-1DAE;MODIFIER LETTER SMALL N WITH LEFT HOOK;Lm;0;L;<super> 0272;;;;N;;;;;-1DAF;MODIFIER LETTER SMALL N WITH RETROFLEX HOOK;Lm;0;L;<super> 0273;;;;N;;;;;-1DB0;MODIFIER LETTER SMALL CAPITAL N;Lm;0;L;<super> 0274;;;;N;;;;;-1DB1;MODIFIER LETTER SMALL BARRED O;Lm;0;L;<super> 0275;;;;N;;;;;-1DB2;MODIFIER LETTER SMALL PHI;Lm;0;L;<super> 0278;;;;N;;;;;-1DB3;MODIFIER LETTER SMALL S WITH HOOK;Lm;0;L;<super> 0282;;;;N;;;;;-1DB4;MODIFIER LETTER SMALL ESH;Lm;0;L;<super> 0283;;;;N;;;;;-1DB5;MODIFIER LETTER SMALL T WITH PALATAL HOOK;Lm;0;L;<super> 01AB;;;;N;;;;;-1DB6;MODIFIER LETTER SMALL U BAR;Lm;0;L;<super> 0289;;;;N;;;;;-1DB7;MODIFIER LETTER SMALL UPSILON;Lm;0;L;<super> 028A;;;;N;;;;;-1DB8;MODIFIER LETTER SMALL CAPITAL U;Lm;0;L;<super> 1D1C;;;;N;;;;;-1DB9;MODIFIER LETTER SMALL V WITH HOOK;Lm;0;L;<super> 028B;;;;N;;;;;-1DBA;MODIFIER LETTER SMALL TURNED V;Lm;0;L;<super> 028C;;;;N;;;;;-1DBB;MODIFIER LETTER SMALL Z;Lm;0;L;<super> 007A;;;;N;;;;;-1DBC;MODIFIER LETTER SMALL Z WITH RETROFLEX HOOK;Lm;0;L;<super> 0290;;;;N;;;;;-1DBD;MODIFIER LETTER SMALL Z WITH CURL;Lm;0;L;<super> 0291;;;;N;;;;;-1DBE;MODIFIER LETTER SMALL EZH;Lm;0;L;<super> 0292;;;;N;;;;;-1DBF;MODIFIER LETTER SMALL THETA;Lm;0;L;<super> 03B8;;;;N;;;;;-1DC0;COMBINING DOTTED GRAVE ACCENT;Mn;230;NSM;;;;;N;;;;;-1DC1;COMBINING DOTTED ACUTE ACCENT;Mn;230;NSM;;;;;N;;;;;-1DC2;COMBINING SNAKE BELOW;Mn;220;NSM;;;;;N;;;;;-1DC3;COMBINING SUSPENSION MARK;Mn;230;NSM;;;;;N;;;;;-1DC4;COMBINING MACRON-ACUTE;Mn;230;NSM;;;;;N;;;;;-1DC5;COMBINING GRAVE-MACRON;Mn;230;NSM;;;;;N;;;;;-1DC6;COMBINING MACRON-GRAVE;Mn;230;NSM;;;;;N;;;;;-1DC7;COMBINING ACUTE-MACRON;Mn;230;NSM;;;;;N;;;;;-1DC8;COMBINING GRAVE-ACUTE-GRAVE;Mn;230;NSM;;;;;N;;;;;-1DC9;COMBINING ACUTE-GRAVE-ACUTE;Mn;230;NSM;;;;;N;;;;;-1DCA;COMBINING LATIN SMALL LETTER R BELOW;Mn;220;NSM;;;;;N;;;;;-1DFE;COMBINING LEFT ARROWHEAD ABOVE;Mn;230;NSM;;;;;N;;;;;-1DFF;COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW;Mn;220;NSM;;;;;N;;;;;-1E00;LATIN CAPITAL LETTER A WITH RING BELOW;Lu;0;L;0041 0325;;;;N;;;;1E01;-1E01;LATIN SMALL LETTER A WITH RING BELOW;Ll;0;L;0061 0325;;;;N;;;1E00;;1E00-1E02;LATIN CAPITAL LETTER B WITH DOT ABOVE;Lu;0;L;0042 0307;;;;N;;;;1E03;-1E03;LATIN SMALL LETTER B WITH DOT ABOVE;Ll;0;L;0062 0307;;;;N;;;1E02;;1E02-1E04;LATIN CAPITAL LETTER B WITH DOT BELOW;Lu;0;L;0042 0323;;;;N;;;;1E05;-1E05;LATIN SMALL LETTER B WITH DOT BELOW;Ll;0;L;0062 0323;;;;N;;;1E04;;1E04-1E06;LATIN CAPITAL LETTER B WITH LINE BELOW;Lu;0;L;0042 0331;;;;N;;;;1E07;-1E07;LATIN SMALL LETTER B WITH LINE BELOW;Ll;0;L;0062 0331;;;;N;;;1E06;;1E06-1E08;LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE;Lu;0;L;00C7 0301;;;;N;;;;1E09;-1E09;LATIN SMALL LETTER C WITH CEDILLA AND ACUTE;Ll;0;L;00E7 0301;;;;N;;;1E08;;1E08-1E0A;LATIN CAPITAL LETTER D WITH DOT ABOVE;Lu;0;L;0044 0307;;;;N;;;;1E0B;-1E0B;LATIN SMALL LETTER D WITH DOT ABOVE;Ll;0;L;0064 0307;;;;N;;;1E0A;;1E0A-1E0C;LATIN CAPITAL LETTER D WITH DOT BELOW;Lu;0;L;0044 0323;;;;N;;;;1E0D;-1E0D;LATIN SMALL LETTER D WITH DOT BELOW;Ll;0;L;0064 0323;;;;N;;;1E0C;;1E0C-1E0E;LATIN CAPITAL LETTER D WITH LINE BELOW;Lu;0;L;0044 0331;;;;N;;;;1E0F;-1E0F;LATIN SMALL LETTER D WITH LINE BELOW;Ll;0;L;0064 0331;;;;N;;;1E0E;;1E0E-1E10;LATIN CAPITAL LETTER D WITH CEDILLA;Lu;0;L;0044 0327;;;;N;;;;1E11;-1E11;LATIN SMALL LETTER D WITH CEDILLA;Ll;0;L;0064 0327;;;;N;;;1E10;;1E10-1E12;LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW;Lu;0;L;0044 032D;;;;N;;;;1E13;-1E13;LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW;Ll;0;L;0064 032D;;;;N;;;1E12;;1E12-1E14;LATIN CAPITAL LETTER E WITH MACRON AND GRAVE;Lu;0;L;0112 0300;;;;N;;;;1E15;-1E15;LATIN SMALL LETTER E WITH MACRON AND GRAVE;Ll;0;L;0113 0300;;;;N;;;1E14;;1E14-1E16;LATIN CAPITAL LETTER E WITH MACRON AND ACUTE;Lu;0;L;0112 0301;;;;N;;;;1E17;-1E17;LATIN SMALL LETTER E WITH MACRON AND ACUTE;Ll;0;L;0113 0301;;;;N;;;1E16;;1E16-1E18;LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW;Lu;0;L;0045 032D;;;;N;;;;1E19;-1E19;LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW;Ll;0;L;0065 032D;;;;N;;;1E18;;1E18-1E1A;LATIN CAPITAL LETTER E WITH TILDE BELOW;Lu;0;L;0045 0330;;;;N;;;;1E1B;-1E1B;LATIN SMALL LETTER E WITH TILDE BELOW;Ll;0;L;0065 0330;;;;N;;;1E1A;;1E1A-1E1C;LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE;Lu;0;L;0228 0306;;;;N;;;;1E1D;-1E1D;LATIN SMALL LETTER E WITH CEDILLA AND BREVE;Ll;0;L;0229 0306;;;;N;;;1E1C;;1E1C-1E1E;LATIN CAPITAL LETTER F WITH DOT ABOVE;Lu;0;L;0046 0307;;;;N;;;;1E1F;-1E1F;LATIN SMALL LETTER F WITH DOT ABOVE;Ll;0;L;0066 0307;;;;N;;;1E1E;;1E1E-1E20;LATIN CAPITAL LETTER G WITH MACRON;Lu;0;L;0047 0304;;;;N;;;;1E21;-1E21;LATIN SMALL LETTER G WITH MACRON;Ll;0;L;0067 0304;;;;N;;;1E20;;1E20-1E22;LATIN CAPITAL LETTER H WITH DOT ABOVE;Lu;0;L;0048 0307;;;;N;;;;1E23;-1E23;LATIN SMALL LETTER H WITH DOT ABOVE;Ll;0;L;0068 0307;;;;N;;;1E22;;1E22-1E24;LATIN CAPITAL LETTER H WITH DOT BELOW;Lu;0;L;0048 0323;;;;N;;;;1E25;-1E25;LATIN SMALL LETTER H WITH DOT BELOW;Ll;0;L;0068 0323;;;;N;;;1E24;;1E24-1E26;LATIN CAPITAL LETTER H WITH DIAERESIS;Lu;0;L;0048 0308;;;;N;;;;1E27;-1E27;LATIN SMALL LETTER H WITH DIAERESIS;Ll;0;L;0068 0308;;;;N;;;1E26;;1E26-1E28;LATIN CAPITAL LETTER H WITH CEDILLA;Lu;0;L;0048 0327;;;;N;;;;1E29;-1E29;LATIN SMALL LETTER H WITH CEDILLA;Ll;0;L;0068 0327;;;;N;;;1E28;;1E28-1E2A;LATIN CAPITAL LETTER H WITH BREVE BELOW;Lu;0;L;0048 032E;;;;N;;;;1E2B;-1E2B;LATIN SMALL LETTER H WITH BREVE BELOW;Ll;0;L;0068 032E;;;;N;;;1E2A;;1E2A-1E2C;LATIN CAPITAL LETTER I WITH TILDE BELOW;Lu;0;L;0049 0330;;;;N;;;;1E2D;-1E2D;LATIN SMALL LETTER I WITH TILDE BELOW;Ll;0;L;0069 0330;;;;N;;;1E2C;;1E2C-1E2E;LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE;Lu;0;L;00CF 0301;;;;N;;;;1E2F;-1E2F;LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE;Ll;0;L;00EF 0301;;;;N;;;1E2E;;1E2E-1E30;LATIN CAPITAL LETTER K WITH ACUTE;Lu;0;L;004B 0301;;;;N;;;;1E31;-1E31;LATIN SMALL LETTER K WITH ACUTE;Ll;0;L;006B 0301;;;;N;;;1E30;;1E30-1E32;LATIN CAPITAL LETTER K WITH DOT BELOW;Lu;0;L;004B 0323;;;;N;;;;1E33;-1E33;LATIN SMALL LETTER K WITH DOT BELOW;Ll;0;L;006B 0323;;;;N;;;1E32;;1E32-1E34;LATIN CAPITAL LETTER K WITH LINE BELOW;Lu;0;L;004B 0331;;;;N;;;;1E35;-1E35;LATIN SMALL LETTER K WITH LINE BELOW;Ll;0;L;006B 0331;;;;N;;;1E34;;1E34-1E36;LATIN CAPITAL LETTER L WITH DOT BELOW;Lu;0;L;004C 0323;;;;N;;;;1E37;-1E37;LATIN SMALL LETTER L WITH DOT BELOW;Ll;0;L;006C 0323;;;;N;;;1E36;;1E36-1E38;LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON;Lu;0;L;1E36 0304;;;;N;;;;1E39;-1E39;LATIN SMALL LETTER L WITH DOT BELOW AND MACRON;Ll;0;L;1E37 0304;;;;N;;;1E38;;1E38-1E3A;LATIN CAPITAL LETTER L WITH LINE BELOW;Lu;0;L;004C 0331;;;;N;;;;1E3B;-1E3B;LATIN SMALL LETTER L WITH LINE BELOW;Ll;0;L;006C 0331;;;;N;;;1E3A;;1E3A-1E3C;LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW;Lu;0;L;004C 032D;;;;N;;;;1E3D;-1E3D;LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW;Ll;0;L;006C 032D;;;;N;;;1E3C;;1E3C-1E3E;LATIN CAPITAL LETTER M WITH ACUTE;Lu;0;L;004D 0301;;;;N;;;;1E3F;-1E3F;LATIN SMALL LETTER M WITH ACUTE;Ll;0;L;006D 0301;;;;N;;;1E3E;;1E3E-1E40;LATIN CAPITAL LETTER M WITH DOT ABOVE;Lu;0;L;004D 0307;;;;N;;;;1E41;-1E41;LATIN SMALL LETTER M WITH DOT ABOVE;Ll;0;L;006D 0307;;;;N;;;1E40;;1E40-1E42;LATIN CAPITAL LETTER M WITH DOT BELOW;Lu;0;L;004D 0323;;;;N;;;;1E43;-1E43;LATIN SMALL LETTER M WITH DOT BELOW;Ll;0;L;006D 0323;;;;N;;;1E42;;1E42-1E44;LATIN CAPITAL LETTER N WITH DOT ABOVE;Lu;0;L;004E 0307;;;;N;;;;1E45;-1E45;LATIN SMALL LETTER N WITH DOT ABOVE;Ll;0;L;006E 0307;;;;N;;;1E44;;1E44-1E46;LATIN CAPITAL LETTER N WITH DOT BELOW;Lu;0;L;004E 0323;;;;N;;;;1E47;-1E47;LATIN SMALL LETTER N WITH DOT BELOW;Ll;0;L;006E 0323;;;;N;;;1E46;;1E46-1E48;LATIN CAPITAL LETTER N WITH LINE BELOW;Lu;0;L;004E 0331;;;;N;;;;1E49;-1E49;LATIN SMALL LETTER N WITH LINE BELOW;Ll;0;L;006E 0331;;;;N;;;1E48;;1E48-1E4A;LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW;Lu;0;L;004E 032D;;;;N;;;;1E4B;-1E4B;LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW;Ll;0;L;006E 032D;;;;N;;;1E4A;;1E4A-1E4C;LATIN CAPITAL LETTER O WITH TILDE AND ACUTE;Lu;0;L;00D5 0301;;;;N;;;;1E4D;-1E4D;LATIN SMALL LETTER O WITH TILDE AND ACUTE;Ll;0;L;00F5 0301;;;;N;;;1E4C;;1E4C-1E4E;LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS;Lu;0;L;00D5 0308;;;;N;;;;1E4F;-1E4F;LATIN SMALL LETTER O WITH TILDE AND DIAERESIS;Ll;0;L;00F5 0308;;;;N;;;1E4E;;1E4E-1E50;LATIN CAPITAL LETTER O WITH MACRON AND GRAVE;Lu;0;L;014C 0300;;;;N;;;;1E51;-1E51;LATIN SMALL LETTER O WITH MACRON AND GRAVE;Ll;0;L;014D 0300;;;;N;;;1E50;;1E50-1E52;LATIN CAPITAL LETTER O WITH MACRON AND ACUTE;Lu;0;L;014C 0301;;;;N;;;;1E53;-1E53;LATIN SMALL LETTER O WITH MACRON AND ACUTE;Ll;0;L;014D 0301;;;;N;;;1E52;;1E52-1E54;LATIN CAPITAL LETTER P WITH ACUTE;Lu;0;L;0050 0301;;;;N;;;;1E55;-1E55;LATIN SMALL LETTER P WITH ACUTE;Ll;0;L;0070 0301;;;;N;;;1E54;;1E54-1E56;LATIN CAPITAL LETTER P WITH DOT ABOVE;Lu;0;L;0050 0307;;;;N;;;;1E57;-1E57;LATIN SMALL LETTER P WITH DOT ABOVE;Ll;0;L;0070 0307;;;;N;;;1E56;;1E56-1E58;LATIN CAPITAL LETTER R WITH DOT ABOVE;Lu;0;L;0052 0307;;;;N;;;;1E59;-1E59;LATIN SMALL LETTER R WITH DOT ABOVE;Ll;0;L;0072 0307;;;;N;;;1E58;;1E58-1E5A;LATIN CAPITAL LETTER R WITH DOT BELOW;Lu;0;L;0052 0323;;;;N;;;;1E5B;-1E5B;LATIN SMALL LETTER R WITH DOT BELOW;Ll;0;L;0072 0323;;;;N;;;1E5A;;1E5A-1E5C;LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON;Lu;0;L;1E5A 0304;;;;N;;;;1E5D;-1E5D;LATIN SMALL LETTER R WITH DOT BELOW AND MACRON;Ll;0;L;1E5B 0304;;;;N;;;1E5C;;1E5C-1E5E;LATIN CAPITAL LETTER R WITH LINE BELOW;Lu;0;L;0052 0331;;;;N;;;;1E5F;-1E5F;LATIN SMALL LETTER R WITH LINE BELOW;Ll;0;L;0072 0331;;;;N;;;1E5E;;1E5E-1E60;LATIN CAPITAL LETTER S WITH DOT ABOVE;Lu;0;L;0053 0307;;;;N;;;;1E61;-1E61;LATIN SMALL LETTER S WITH DOT ABOVE;Ll;0;L;0073 0307;;;;N;;;1E60;;1E60-1E62;LATIN CAPITAL LETTER S WITH DOT BELOW;Lu;0;L;0053 0323;;;;N;;;;1E63;-1E63;LATIN SMALL LETTER S WITH DOT BELOW;Ll;0;L;0073 0323;;;;N;;;1E62;;1E62-1E64;LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE;Lu;0;L;015A 0307;;;;N;;;;1E65;-1E65;LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE;Ll;0;L;015B 0307;;;;N;;;1E64;;1E64-1E66;LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE;Lu;0;L;0160 0307;;;;N;;;;1E67;-1E67;LATIN SMALL LETTER S WITH CARON AND DOT ABOVE;Ll;0;L;0161 0307;;;;N;;;1E66;;1E66-1E68;LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE;Lu;0;L;1E62 0307;;;;N;;;;1E69;-1E69;LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE;Ll;0;L;1E63 0307;;;;N;;;1E68;;1E68-1E6A;LATIN CAPITAL LETTER T WITH DOT ABOVE;Lu;0;L;0054 0307;;;;N;;;;1E6B;-1E6B;LATIN SMALL LETTER T WITH DOT ABOVE;Ll;0;L;0074 0307;;;;N;;;1E6A;;1E6A-1E6C;LATIN CAPITAL LETTER T WITH DOT BELOW;Lu;0;L;0054 0323;;;;N;;;;1E6D;-1E6D;LATIN SMALL LETTER T WITH DOT BELOW;Ll;0;L;0074 0323;;;;N;;;1E6C;;1E6C-1E6E;LATIN CAPITAL LETTER T WITH LINE BELOW;Lu;0;L;0054 0331;;;;N;;;;1E6F;-1E6F;LATIN SMALL LETTER T WITH LINE BELOW;Ll;0;L;0074 0331;;;;N;;;1E6E;;1E6E-1E70;LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW;Lu;0;L;0054 032D;;;;N;;;;1E71;-1E71;LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW;Ll;0;L;0074 032D;;;;N;;;1E70;;1E70-1E72;LATIN CAPITAL LETTER U WITH DIAERESIS BELOW;Lu;0;L;0055 0324;;;;N;;;;1E73;-1E73;LATIN SMALL LETTER U WITH DIAERESIS BELOW;Ll;0;L;0075 0324;;;;N;;;1E72;;1E72-1E74;LATIN CAPITAL LETTER U WITH TILDE BELOW;Lu;0;L;0055 0330;;;;N;;;;1E75;-1E75;LATIN SMALL LETTER U WITH TILDE BELOW;Ll;0;L;0075 0330;;;;N;;;1E74;;1E74-1E76;LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW;Lu;0;L;0055 032D;;;;N;;;;1E77;-1E77;LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW;Ll;0;L;0075 032D;;;;N;;;1E76;;1E76-1E78;LATIN CAPITAL LETTER U WITH TILDE AND ACUTE;Lu;0;L;0168 0301;;;;N;;;;1E79;-1E79;LATIN SMALL LETTER U WITH TILDE AND ACUTE;Ll;0;L;0169 0301;;;;N;;;1E78;;1E78-1E7A;LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS;Lu;0;L;016A 0308;;;;N;;;;1E7B;-1E7B;LATIN SMALL LETTER U WITH MACRON AND DIAERESIS;Ll;0;L;016B 0308;;;;N;;;1E7A;;1E7A-1E7C;LATIN CAPITAL LETTER V WITH TILDE;Lu;0;L;0056 0303;;;;N;;;;1E7D;-1E7D;LATIN SMALL LETTER V WITH TILDE;Ll;0;L;0076 0303;;;;N;;;1E7C;;1E7C-1E7E;LATIN CAPITAL LETTER V WITH DOT BELOW;Lu;0;L;0056 0323;;;;N;;;;1E7F;-1E7F;LATIN SMALL LETTER V WITH DOT BELOW;Ll;0;L;0076 0323;;;;N;;;1E7E;;1E7E-1E80;LATIN CAPITAL LETTER W WITH GRAVE;Lu;0;L;0057 0300;;;;N;;;;1E81;-1E81;LATIN SMALL LETTER W WITH GRAVE;Ll;0;L;0077 0300;;;;N;;;1E80;;1E80-1E82;LATIN CAPITAL LETTER W WITH ACUTE;Lu;0;L;0057 0301;;;;N;;;;1E83;-1E83;LATIN SMALL LETTER W WITH ACUTE;Ll;0;L;0077 0301;;;;N;;;1E82;;1E82-1E84;LATIN CAPITAL LETTER W WITH DIAERESIS;Lu;0;L;0057 0308;;;;N;;;;1E85;-1E85;LATIN SMALL LETTER W WITH DIAERESIS;Ll;0;L;0077 0308;;;;N;;;1E84;;1E84-1E86;LATIN CAPITAL LETTER W WITH DOT ABOVE;Lu;0;L;0057 0307;;;;N;;;;1E87;-1E87;LATIN SMALL LETTER W WITH DOT ABOVE;Ll;0;L;0077 0307;;;;N;;;1E86;;1E86-1E88;LATIN CAPITAL LETTER W WITH DOT BELOW;Lu;0;L;0057 0323;;;;N;;;;1E89;-1E89;LATIN SMALL LETTER W WITH DOT BELOW;Ll;0;L;0077 0323;;;;N;;;1E88;;1E88-1E8A;LATIN CAPITAL LETTER X WITH DOT ABOVE;Lu;0;L;0058 0307;;;;N;;;;1E8B;-1E8B;LATIN SMALL LETTER X WITH DOT ABOVE;Ll;0;L;0078 0307;;;;N;;;1E8A;;1E8A-1E8C;LATIN CAPITAL LETTER X WITH DIAERESIS;Lu;0;L;0058 0308;;;;N;;;;1E8D;-1E8D;LATIN SMALL LETTER X WITH DIAERESIS;Ll;0;L;0078 0308;;;;N;;;1E8C;;1E8C-1E8E;LATIN CAPITAL LETTER Y WITH DOT ABOVE;Lu;0;L;0059 0307;;;;N;;;;1E8F;-1E8F;LATIN SMALL LETTER Y WITH DOT ABOVE;Ll;0;L;0079 0307;;;;N;;;1E8E;;1E8E-1E90;LATIN CAPITAL LETTER Z WITH CIRCUMFLEX;Lu;0;L;005A 0302;;;;N;;;;1E91;-1E91;LATIN SMALL LETTER Z WITH CIRCUMFLEX;Ll;0;L;007A 0302;;;;N;;;1E90;;1E90-1E92;LATIN CAPITAL LETTER Z WITH DOT BELOW;Lu;0;L;005A 0323;;;;N;;;;1E93;-1E93;LATIN SMALL LETTER Z WITH DOT BELOW;Ll;0;L;007A 0323;;;;N;;;1E92;;1E92-1E94;LATIN CAPITAL LETTER Z WITH LINE BELOW;Lu;0;L;005A 0331;;;;N;;;;1E95;-1E95;LATIN SMALL LETTER Z WITH LINE BELOW;Ll;0;L;007A 0331;;;;N;;;1E94;;1E94-1E96;LATIN SMALL LETTER H WITH LINE BELOW;Ll;0;L;0068 0331;;;;N;;;;;-1E97;LATIN SMALL LETTER T WITH DIAERESIS;Ll;0;L;0074 0308;;;;N;;;;;-1E98;LATIN SMALL LETTER W WITH RING ABOVE;Ll;0;L;0077 030A;;;;N;;;;;-1E99;LATIN SMALL LETTER Y WITH RING ABOVE;Ll;0;L;0079 030A;;;;N;;;;;-1E9A;LATIN SMALL LETTER A WITH RIGHT HALF RING;Ll;0;L;<compat> 0061 02BE;;;;N;;;;;-1E9B;LATIN SMALL LETTER LONG S WITH DOT ABOVE;Ll;0;L;017F 0307;;;;N;;;1E60;;1E60-1EA0;LATIN CAPITAL LETTER A WITH DOT BELOW;Lu;0;L;0041 0323;;;;N;;;;1EA1;-1EA1;LATIN SMALL LETTER A WITH DOT BELOW;Ll;0;L;0061 0323;;;;N;;;1EA0;;1EA0-1EA2;LATIN CAPITAL LETTER A WITH HOOK ABOVE;Lu;0;L;0041 0309;;;;N;;;;1EA3;-1EA3;LATIN SMALL LETTER A WITH HOOK ABOVE;Ll;0;L;0061 0309;;;;N;;;1EA2;;1EA2-1EA4;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE;Lu;0;L;00C2 0301;;;;N;;;;1EA5;-1EA5;LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE;Ll;0;L;00E2 0301;;;;N;;;1EA4;;1EA4-1EA6;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE;Lu;0;L;00C2 0300;;;;N;;;;1EA7;-1EA7;LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE;Ll;0;L;00E2 0300;;;;N;;;1EA6;;1EA6-1EA8;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE;Lu;0;L;00C2 0309;;;;N;;;;1EA9;-1EA9;LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE;Ll;0;L;00E2 0309;;;;N;;;1EA8;;1EA8-1EAA;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE;Lu;0;L;00C2 0303;;;;N;;;;1EAB;-1EAB;LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE;Ll;0;L;00E2 0303;;;;N;;;1EAA;;1EAA-1EAC;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW;Lu;0;L;1EA0 0302;;;;N;;;;1EAD;-1EAD;LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW;Ll;0;L;1EA1 0302;;;;N;;;1EAC;;1EAC-1EAE;LATIN CAPITAL LETTER A WITH BREVE AND ACUTE;Lu;0;L;0102 0301;;;;N;;;;1EAF;-1EAF;LATIN SMALL LETTER A WITH BREVE AND ACUTE;Ll;0;L;0103 0301;;;;N;;;1EAE;;1EAE-1EB0;LATIN CAPITAL LETTER A WITH BREVE AND GRAVE;Lu;0;L;0102 0300;;;;N;;;;1EB1;-1EB1;LATIN SMALL LETTER A WITH BREVE AND GRAVE;Ll;0;L;0103 0300;;;;N;;;1EB0;;1EB0-1EB2;LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE;Lu;0;L;0102 0309;;;;N;;;;1EB3;-1EB3;LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE;Ll;0;L;0103 0309;;;;N;;;1EB2;;1EB2-1EB4;LATIN CAPITAL LETTER A WITH BREVE AND TILDE;Lu;0;L;0102 0303;;;;N;;;;1EB5;-1EB5;LATIN SMALL LETTER A WITH BREVE AND TILDE;Ll;0;L;0103 0303;;;;N;;;1EB4;;1EB4-1EB6;LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW;Lu;0;L;1EA0 0306;;;;N;;;;1EB7;-1EB7;LATIN SMALL LETTER A WITH BREVE AND DOT BELOW;Ll;0;L;1EA1 0306;;;;N;;;1EB6;;1EB6-1EB8;LATIN CAPITAL LETTER E WITH DOT BELOW;Lu;0;L;0045 0323;;;;N;;;;1EB9;-1EB9;LATIN SMALL LETTER E WITH DOT BELOW;Ll;0;L;0065 0323;;;;N;;;1EB8;;1EB8-1EBA;LATIN CAPITAL LETTER E WITH HOOK ABOVE;Lu;0;L;0045 0309;;;;N;;;;1EBB;-1EBB;LATIN SMALL LETTER E WITH HOOK ABOVE;Ll;0;L;0065 0309;;;;N;;;1EBA;;1EBA-1EBC;LATIN CAPITAL LETTER E WITH TILDE;Lu;0;L;0045 0303;;;;N;;;;1EBD;-1EBD;LATIN SMALL LETTER E WITH TILDE;Ll;0;L;0065 0303;;;;N;;;1EBC;;1EBC-1EBE;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE;Lu;0;L;00CA 0301;;;;N;;;;1EBF;-1EBF;LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE;Ll;0;L;00EA 0301;;;;N;;;1EBE;;1EBE-1EC0;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE;Lu;0;L;00CA 0300;;;;N;;;;1EC1;-1EC1;LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE;Ll;0;L;00EA 0300;;;;N;;;1EC0;;1EC0-1EC2;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE;Lu;0;L;00CA 0309;;;;N;;;;1EC3;-1EC3;LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE;Ll;0;L;00EA 0309;;;;N;;;1EC2;;1EC2-1EC4;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE;Lu;0;L;00CA 0303;;;;N;;;;1EC5;-1EC5;LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE;Ll;0;L;00EA 0303;;;;N;;;1EC4;;1EC4-1EC6;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW;Lu;0;L;1EB8 0302;;;;N;;;;1EC7;-1EC7;LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW;Ll;0;L;1EB9 0302;;;;N;;;1EC6;;1EC6-1EC8;LATIN CAPITAL LETTER I WITH HOOK ABOVE;Lu;0;L;0049 0309;;;;N;;;;1EC9;-1EC9;LATIN SMALL LETTER I WITH HOOK ABOVE;Ll;0;L;0069 0309;;;;N;;;1EC8;;1EC8-1ECA;LATIN CAPITAL LETTER I WITH DOT BELOW;Lu;0;L;0049 0323;;;;N;;;;1ECB;-1ECB;LATIN SMALL LETTER I WITH DOT BELOW;Ll;0;L;0069 0323;;;;N;;;1ECA;;1ECA-1ECC;LATIN CAPITAL LETTER O WITH DOT BELOW;Lu;0;L;004F 0323;;;;N;;;;1ECD;-1ECD;LATIN SMALL LETTER O WITH DOT BELOW;Ll;0;L;006F 0323;;;;N;;;1ECC;;1ECC-1ECE;LATIN CAPITAL LETTER O WITH HOOK ABOVE;Lu;0;L;004F 0309;;;;N;;;;1ECF;-1ECF;LATIN SMALL LETTER O WITH HOOK ABOVE;Ll;0;L;006F 0309;;;;N;;;1ECE;;1ECE-1ED0;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE;Lu;0;L;00D4 0301;;;;N;;;;1ED1;-1ED1;LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE;Ll;0;L;00F4 0301;;;;N;;;1ED0;;1ED0-1ED2;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE;Lu;0;L;00D4 0300;;;;N;;;;1ED3;-1ED3;LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE;Ll;0;L;00F4 0300;;;;N;;;1ED2;;1ED2-1ED4;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE;Lu;0;L;00D4 0309;;;;N;;;;1ED5;-1ED5;LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE;Ll;0;L;00F4 0309;;;;N;;;1ED4;;1ED4-1ED6;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE;Lu;0;L;00D4 0303;;;;N;;;;1ED7;-1ED7;LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE;Ll;0;L;00F4 0303;;;;N;;;1ED6;;1ED6-1ED8;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW;Lu;0;L;1ECC 0302;;;;N;;;;1ED9;-1ED9;LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW;Ll;0;L;1ECD 0302;;;;N;;;1ED8;;1ED8-1EDA;LATIN CAPITAL LETTER O WITH HORN AND ACUTE;Lu;0;L;01A0 0301;;;;N;;;;1EDB;-1EDB;LATIN SMALL LETTER O WITH HORN AND ACUTE;Ll;0;L;01A1 0301;;;;N;;;1EDA;;1EDA-1EDC;LATIN CAPITAL LETTER O WITH HORN AND GRAVE;Lu;0;L;01A0 0300;;;;N;;;;1EDD;-1EDD;LATIN SMALL LETTER O WITH HORN AND GRAVE;Ll;0;L;01A1 0300;;;;N;;;1EDC;;1EDC-1EDE;LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE;Lu;0;L;01A0 0309;;;;N;;;;1EDF;-1EDF;LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE;Ll;0;L;01A1 0309;;;;N;;;1EDE;;1EDE-1EE0;LATIN CAPITAL LETTER O WITH HORN AND TILDE;Lu;0;L;01A0 0303;;;;N;;;;1EE1;-1EE1;LATIN SMALL LETTER O WITH HORN AND TILDE;Ll;0;L;01A1 0303;;;;N;;;1EE0;;1EE0-1EE2;LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW;Lu;0;L;01A0 0323;;;;N;;;;1EE3;-1EE3;LATIN SMALL LETTER O WITH HORN AND DOT BELOW;Ll;0;L;01A1 0323;;;;N;;;1EE2;;1EE2-1EE4;LATIN CAPITAL LETTER U WITH DOT BELOW;Lu;0;L;0055 0323;;;;N;;;;1EE5;-1EE5;LATIN SMALL LETTER U WITH DOT BELOW;Ll;0;L;0075 0323;;;;N;;;1EE4;;1EE4-1EE6;LATIN CAPITAL LETTER U WITH HOOK ABOVE;Lu;0;L;0055 0309;;;;N;;;;1EE7;-1EE7;LATIN SMALL LETTER U WITH HOOK ABOVE;Ll;0;L;0075 0309;;;;N;;;1EE6;;1EE6-1EE8;LATIN CAPITAL LETTER U WITH HORN AND ACUTE;Lu;0;L;01AF 0301;;;;N;;;;1EE9;-1EE9;LATIN SMALL LETTER U WITH HORN AND ACUTE;Ll;0;L;01B0 0301;;;;N;;;1EE8;;1EE8-1EEA;LATIN CAPITAL LETTER U WITH HORN AND GRAVE;Lu;0;L;01AF 0300;;;;N;;;;1EEB;-1EEB;LATIN SMALL LETTER U WITH HORN AND GRAVE;Ll;0;L;01B0 0300;;;;N;;;1EEA;;1EEA-1EEC;LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE;Lu;0;L;01AF 0309;;;;N;;;;1EED;-1EED;LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE;Ll;0;L;01B0 0309;;;;N;;;1EEC;;1EEC-1EEE;LATIN CAPITAL LETTER U WITH HORN AND TILDE;Lu;0;L;01AF 0303;;;;N;;;;1EEF;-1EEF;LATIN SMALL LETTER U WITH HORN AND TILDE;Ll;0;L;01B0 0303;;;;N;;;1EEE;;1EEE-1EF0;LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW;Lu;0;L;01AF 0323;;;;N;;;;1EF1;-1EF1;LATIN SMALL LETTER U WITH HORN AND DOT BELOW;Ll;0;L;01B0 0323;;;;N;;;1EF0;;1EF0-1EF2;LATIN CAPITAL LETTER Y WITH GRAVE;Lu;0;L;0059 0300;;;;N;;;;1EF3;-1EF3;LATIN SMALL LETTER Y WITH GRAVE;Ll;0;L;0079 0300;;;;N;;;1EF2;;1EF2-1EF4;LATIN CAPITAL LETTER Y WITH DOT BELOW;Lu;0;L;0059 0323;;;;N;;;;1EF5;-1EF5;LATIN SMALL LETTER Y WITH DOT BELOW;Ll;0;L;0079 0323;;;;N;;;1EF4;;1EF4-1EF6;LATIN CAPITAL LETTER Y WITH HOOK ABOVE;Lu;0;L;0059 0309;;;;N;;;;1EF7;-1EF7;LATIN SMALL LETTER Y WITH HOOK ABOVE;Ll;0;L;0079 0309;;;;N;;;1EF6;;1EF6-1EF8;LATIN CAPITAL LETTER Y WITH TILDE;Lu;0;L;0059 0303;;;;N;;;;1EF9;-1EF9;LATIN SMALL LETTER Y WITH TILDE;Ll;0;L;0079 0303;;;;N;;;1EF8;;1EF8-1F00;GREEK SMALL LETTER ALPHA WITH PSILI;Ll;0;L;03B1 0313;;;;N;;;1F08;;1F08-1F01;GREEK SMALL LETTER ALPHA WITH DASIA;Ll;0;L;03B1 0314;;;;N;;;1F09;;1F09-1F02;GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA;Ll;0;L;1F00 0300;;;;N;;;1F0A;;1F0A-1F03;GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA;Ll;0;L;1F01 0300;;;;N;;;1F0B;;1F0B-1F04;GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA;Ll;0;L;1F00 0301;;;;N;;;1F0C;;1F0C-1F05;GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA;Ll;0;L;1F01 0301;;;;N;;;1F0D;;1F0D-1F06;GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI;Ll;0;L;1F00 0342;;;;N;;;1F0E;;1F0E-1F07;GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI;Ll;0;L;1F01 0342;;;;N;;;1F0F;;1F0F-1F08;GREEK CAPITAL LETTER ALPHA WITH PSILI;Lu;0;L;0391 0313;;;;N;;;;1F00;-1F09;GREEK CAPITAL LETTER ALPHA WITH DASIA;Lu;0;L;0391 0314;;;;N;;;;1F01;-1F0A;GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA;Lu;0;L;1F08 0300;;;;N;;;;1F02;-1F0B;GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA;Lu;0;L;1F09 0300;;;;N;;;;1F03;-1F0C;GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA;Lu;0;L;1F08 0301;;;;N;;;;1F04;-1F0D;GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA;Lu;0;L;1F09 0301;;;;N;;;;1F05;-1F0E;GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI;Lu;0;L;1F08 0342;;;;N;;;;1F06;-1F0F;GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI;Lu;0;L;1F09 0342;;;;N;;;;1F07;-1F10;GREEK SMALL LETTER EPSILON WITH PSILI;Ll;0;L;03B5 0313;;;;N;;;1F18;;1F18-1F11;GREEK SMALL LETTER EPSILON WITH DASIA;Ll;0;L;03B5 0314;;;;N;;;1F19;;1F19-1F12;GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA;Ll;0;L;1F10 0300;;;;N;;;1F1A;;1F1A-1F13;GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA;Ll;0;L;1F11 0300;;;;N;;;1F1B;;1F1B-1F14;GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA;Ll;0;L;1F10 0301;;;;N;;;1F1C;;1F1C-1F15;GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA;Ll;0;L;1F11 0301;;;;N;;;1F1D;;1F1D-1F18;GREEK CAPITAL LETTER EPSILON WITH PSILI;Lu;0;L;0395 0313;;;;N;;;;1F10;-1F19;GREEK CAPITAL LETTER EPSILON WITH DASIA;Lu;0;L;0395 0314;;;;N;;;;1F11;-1F1A;GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA;Lu;0;L;1F18 0300;;;;N;;;;1F12;-1F1B;GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA;Lu;0;L;1F19 0300;;;;N;;;;1F13;-1F1C;GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA;Lu;0;L;1F18 0301;;;;N;;;;1F14;-1F1D;GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA;Lu;0;L;1F19 0301;;;;N;;;;1F15;-1F20;GREEK SMALL LETTER ETA WITH PSILI;Ll;0;L;03B7 0313;;;;N;;;1F28;;1F28-1F21;GREEK SMALL LETTER ETA WITH DASIA;Ll;0;L;03B7 0314;;;;N;;;1F29;;1F29-1F22;GREEK SMALL LETTER ETA WITH PSILI AND VARIA;Ll;0;L;1F20 0300;;;;N;;;1F2A;;1F2A-1F23;GREEK SMALL LETTER ETA WITH DASIA AND VARIA;Ll;0;L;1F21 0300;;;;N;;;1F2B;;1F2B-1F24;GREEK SMALL LETTER ETA WITH PSILI AND OXIA;Ll;0;L;1F20 0301;;;;N;;;1F2C;;1F2C-1F25;GREEK SMALL LETTER ETA WITH DASIA AND OXIA;Ll;0;L;1F21 0301;;;;N;;;1F2D;;1F2D-1F26;GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI;Ll;0;L;1F20 0342;;;;N;;;1F2E;;1F2E-1F27;GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI;Ll;0;L;1F21 0342;;;;N;;;1F2F;;1F2F-1F28;GREEK CAPITAL LETTER ETA WITH PSILI;Lu;0;L;0397 0313;;;;N;;;;1F20;-1F29;GREEK CAPITAL LETTER ETA WITH DASIA;Lu;0;L;0397 0314;;;;N;;;;1F21;-1F2A;GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA;Lu;0;L;1F28 0300;;;;N;;;;1F22;-1F2B;GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA;Lu;0;L;1F29 0300;;;;N;;;;1F23;-1F2C;GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA;Lu;0;L;1F28 0301;;;;N;;;;1F24;-1F2D;GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA;Lu;0;L;1F29 0301;;;;N;;;;1F25;-1F2E;GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI;Lu;0;L;1F28 0342;;;;N;;;;1F26;-1F2F;GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI;Lu;0;L;1F29 0342;;;;N;;;;1F27;-1F30;GREEK SMALL LETTER IOTA WITH PSILI;Ll;0;L;03B9 0313;;;;N;;;1F38;;1F38-1F31;GREEK SMALL LETTER IOTA WITH DASIA;Ll;0;L;03B9 0314;;;;N;;;1F39;;1F39-1F32;GREEK SMALL LETTER IOTA WITH PSILI AND VARIA;Ll;0;L;1F30 0300;;;;N;;;1F3A;;1F3A-1F33;GREEK SMALL LETTER IOTA WITH DASIA AND VARIA;Ll;0;L;1F31 0300;;;;N;;;1F3B;;1F3B-1F34;GREEK SMALL LETTER IOTA WITH PSILI AND OXIA;Ll;0;L;1F30 0301;;;;N;;;1F3C;;1F3C-1F35;GREEK SMALL LETTER IOTA WITH DASIA AND OXIA;Ll;0;L;1F31 0301;;;;N;;;1F3D;;1F3D-1F36;GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI;Ll;0;L;1F30 0342;;;;N;;;1F3E;;1F3E-1F37;GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI;Ll;0;L;1F31 0342;;;;N;;;1F3F;;1F3F-1F38;GREEK CAPITAL LETTER IOTA WITH PSILI;Lu;0;L;0399 0313;;;;N;;;;1F30;-1F39;GREEK CAPITAL LETTER IOTA WITH DASIA;Lu;0;L;0399 0314;;;;N;;;;1F31;-1F3A;GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA;Lu;0;L;1F38 0300;;;;N;;;;1F32;-1F3B;GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA;Lu;0;L;1F39 0300;;;;N;;;;1F33;-1F3C;GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA;Lu;0;L;1F38 0301;;;;N;;;;1F34;-1F3D;GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA;Lu;0;L;1F39 0301;;;;N;;;;1F35;-1F3E;GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI;Lu;0;L;1F38 0342;;;;N;;;;1F36;-1F3F;GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI;Lu;0;L;1F39 0342;;;;N;;;;1F37;-1F40;GREEK SMALL LETTER OMICRON WITH PSILI;Ll;0;L;03BF 0313;;;;N;;;1F48;;1F48-1F41;GREEK SMALL LETTER OMICRON WITH DASIA;Ll;0;L;03BF 0314;;;;N;;;1F49;;1F49-1F42;GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA;Ll;0;L;1F40 0300;;;;N;;;1F4A;;1F4A-1F43;GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA;Ll;0;L;1F41 0300;;;;N;;;1F4B;;1F4B-1F44;GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA;Ll;0;L;1F40 0301;;;;N;;;1F4C;;1F4C-1F45;GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA;Ll;0;L;1F41 0301;;;;N;;;1F4D;;1F4D-1F48;GREEK CAPITAL LETTER OMICRON WITH PSILI;Lu;0;L;039F 0313;;;;N;;;;1F40;-1F49;GREEK CAPITAL LETTER OMICRON WITH DASIA;Lu;0;L;039F 0314;;;;N;;;;1F41;-1F4A;GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA;Lu;0;L;1F48 0300;;;;N;;;;1F42;-1F4B;GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA;Lu;0;L;1F49 0300;;;;N;;;;1F43;-1F4C;GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA;Lu;0;L;1F48 0301;;;;N;;;;1F44;-1F4D;GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA;Lu;0;L;1F49 0301;;;;N;;;;1F45;-1F50;GREEK SMALL LETTER UPSILON WITH PSILI;Ll;0;L;03C5 0313;;;;N;;;;;-1F51;GREEK SMALL LETTER UPSILON WITH DASIA;Ll;0;L;03C5 0314;;;;N;;;1F59;;1F59-1F52;GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA;Ll;0;L;1F50 0300;;;;N;;;;;-1F53;GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA;Ll;0;L;1F51 0300;;;;N;;;1F5B;;1F5B-1F54;GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA;Ll;0;L;1F50 0301;;;;N;;;;;-1F55;GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA;Ll;0;L;1F51 0301;;;;N;;;1F5D;;1F5D-1F56;GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI;Ll;0;L;1F50 0342;;;;N;;;;;-1F57;GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI;Ll;0;L;1F51 0342;;;;N;;;1F5F;;1F5F-1F59;GREEK CAPITAL LETTER UPSILON WITH DASIA;Lu;0;L;03A5 0314;;;;N;;;;1F51;-1F5B;GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA;Lu;0;L;1F59 0300;;;;N;;;;1F53;-1F5D;GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA;Lu;0;L;1F59 0301;;;;N;;;;1F55;-1F5F;GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI;Lu;0;L;1F59 0342;;;;N;;;;1F57;-1F60;GREEK SMALL LETTER OMEGA WITH PSILI;Ll;0;L;03C9 0313;;;;N;;;1F68;;1F68-1F61;GREEK SMALL LETTER OMEGA WITH DASIA;Ll;0;L;03C9 0314;;;;N;;;1F69;;1F69-1F62;GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA;Ll;0;L;1F60 0300;;;;N;;;1F6A;;1F6A-1F63;GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA;Ll;0;L;1F61 0300;;;;N;;;1F6B;;1F6B-1F64;GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA;Ll;0;L;1F60 0301;;;;N;;;1F6C;;1F6C-1F65;GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA;Ll;0;L;1F61 0301;;;;N;;;1F6D;;1F6D-1F66;GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI;Ll;0;L;1F60 0342;;;;N;;;1F6E;;1F6E-1F67;GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI;Ll;0;L;1F61 0342;;;;N;;;1F6F;;1F6F-1F68;GREEK CAPITAL LETTER OMEGA WITH PSILI;Lu;0;L;03A9 0313;;;;N;;;;1F60;-1F69;GREEK CAPITAL LETTER OMEGA WITH DASIA;Lu;0;L;03A9 0314;;;;N;;;;1F61;-1F6A;GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA;Lu;0;L;1F68 0300;;;;N;;;;1F62;-1F6B;GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA;Lu;0;L;1F69 0300;;;;N;;;;1F63;-1F6C;GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA;Lu;0;L;1F68 0301;;;;N;;;;1F64;-1F6D;GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA;Lu;0;L;1F69 0301;;;;N;;;;1F65;-1F6E;GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI;Lu;0;L;1F68 0342;;;;N;;;;1F66;-1F6F;GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI;Lu;0;L;1F69 0342;;;;N;;;;1F67;-1F70;GREEK SMALL LETTER ALPHA WITH VARIA;Ll;0;L;03B1 0300;;;;N;;;1FBA;;1FBA-1F71;GREEK SMALL LETTER ALPHA WITH OXIA;Ll;0;L;03AC;;;;N;;;1FBB;;1FBB-1F72;GREEK SMALL LETTER EPSILON WITH VARIA;Ll;0;L;03B5 0300;;;;N;;;1FC8;;1FC8-1F73;GREEK SMALL LETTER EPSILON WITH OXIA;Ll;0;L;03AD;;;;N;;;1FC9;;1FC9-1F74;GREEK SMALL LETTER ETA WITH VARIA;Ll;0;L;03B7 0300;;;;N;;;1FCA;;1FCA-1F75;GREEK SMALL LETTER ETA WITH OXIA;Ll;0;L;03AE;;;;N;;;1FCB;;1FCB-1F76;GREEK SMALL LETTER IOTA WITH VARIA;Ll;0;L;03B9 0300;;;;N;;;1FDA;;1FDA-1F77;GREEK SMALL LETTER IOTA WITH OXIA;Ll;0;L;03AF;;;;N;;;1FDB;;1FDB-1F78;GREEK SMALL LETTER OMICRON WITH VARIA;Ll;0;L;03BF 0300;;;;N;;;1FF8;;1FF8-1F79;GREEK SMALL LETTER OMICRON WITH OXIA;Ll;0;L;03CC;;;;N;;;1FF9;;1FF9-1F7A;GREEK SMALL LETTER UPSILON WITH VARIA;Ll;0;L;03C5 0300;;;;N;;;1FEA;;1FEA-1F7B;GREEK SMALL LETTER UPSILON WITH OXIA;Ll;0;L;03CD;;;;N;;;1FEB;;1FEB-1F7C;GREEK SMALL LETTER OMEGA WITH VARIA;Ll;0;L;03C9 0300;;;;N;;;1FFA;;1FFA-1F7D;GREEK SMALL LETTER OMEGA WITH OXIA;Ll;0;L;03CE;;;;N;;;1FFB;;1FFB-1F80;GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI;Ll;0;L;1F00 0345;;;;N;;;1F88;;1F88-1F81;GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI;Ll;0;L;1F01 0345;;;;N;;;1F89;;1F89-1F82;GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F02 0345;;;;N;;;1F8A;;1F8A-1F83;GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F03 0345;;;;N;;;1F8B;;1F8B-1F84;GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F04 0345;;;;N;;;1F8C;;1F8C-1F85;GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F05 0345;;;;N;;;1F8D;;1F8D-1F86;GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F06 0345;;;;N;;;1F8E;;1F8E-1F87;GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F07 0345;;;;N;;;1F8F;;1F8F-1F88;GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI;Lt;0;L;1F08 0345;;;;N;;;;1F80;-1F89;GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI;Lt;0;L;1F09 0345;;;;N;;;;1F81;-1F8A;GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F0A 0345;;;;N;;;;1F82;-1F8B;GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F0B 0345;;;;N;;;;1F83;-1F8C;GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F0C 0345;;;;N;;;;1F84;-1F8D;GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F0D 0345;;;;N;;;;1F85;-1F8E;GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F0E 0345;;;;N;;;;1F86;-1F8F;GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F0F 0345;;;;N;;;;1F87;-1F90;GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI;Ll;0;L;1F20 0345;;;;N;;;1F98;;1F98-1F91;GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI;Ll;0;L;1F21 0345;;;;N;;;1F99;;1F99-1F92;GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F22 0345;;;;N;;;1F9A;;1F9A-1F93;GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F23 0345;;;;N;;;1F9B;;1F9B-1F94;GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F24 0345;;;;N;;;1F9C;;1F9C-1F95;GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F25 0345;;;;N;;;1F9D;;1F9D-1F96;GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F26 0345;;;;N;;;1F9E;;1F9E-1F97;GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F27 0345;;;;N;;;1F9F;;1F9F-1F98;GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI;Lt;0;L;1F28 0345;;;;N;;;;1F90;-1F99;GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI;Lt;0;L;1F29 0345;;;;N;;;;1F91;-1F9A;GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F2A 0345;;;;N;;;;1F92;-1F9B;GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F2B 0345;;;;N;;;;1F93;-1F9C;GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F2C 0345;;;;N;;;;1F94;-1F9D;GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F2D 0345;;;;N;;;;1F95;-1F9E;GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F2E 0345;;;;N;;;;1F96;-1F9F;GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F2F 0345;;;;N;;;;1F97;-1FA0;GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI;Ll;0;L;1F60 0345;;;;N;;;1FA8;;1FA8-1FA1;GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI;Ll;0;L;1F61 0345;;;;N;;;1FA9;;1FA9-1FA2;GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F62 0345;;;;N;;;1FAA;;1FAA-1FA3;GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F63 0345;;;;N;;;1FAB;;1FAB-1FA4;GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F64 0345;;;;N;;;1FAC;;1FAC-1FA5;GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F65 0345;;;;N;;;1FAD;;1FAD-1FA6;GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F66 0345;;;;N;;;1FAE;;1FAE-1FA7;GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F67 0345;;;;N;;;1FAF;;1FAF-1FA8;GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI;Lt;0;L;1F68 0345;;;;N;;;;1FA0;-1FA9;GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI;Lt;0;L;1F69 0345;;;;N;;;;1FA1;-1FAA;GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F6A 0345;;;;N;;;;1FA2;-1FAB;GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F6B 0345;;;;N;;;;1FA3;-1FAC;GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F6C 0345;;;;N;;;;1FA4;-1FAD;GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F6D 0345;;;;N;;;;1FA5;-1FAE;GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F6E 0345;;;;N;;;;1FA6;-1FAF;GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F6F 0345;;;;N;;;;1FA7;-1FB0;GREEK SMALL LETTER ALPHA WITH VRACHY;Ll;0;L;03B1 0306;;;;N;;;1FB8;;1FB8-1FB1;GREEK SMALL LETTER ALPHA WITH MACRON;Ll;0;L;03B1 0304;;;;N;;;1FB9;;1FB9-1FB2;GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI;Ll;0;L;1F70 0345;;;;N;;;;;-1FB3;GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI;Ll;0;L;03B1 0345;;;;N;;;1FBC;;1FBC-1FB4;GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI;Ll;0;L;03AC 0345;;;;N;;;;;-1FB6;GREEK SMALL LETTER ALPHA WITH PERISPOMENI;Ll;0;L;03B1 0342;;;;N;;;;;-1FB7;GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1FB6 0345;;;;N;;;;;-1FB8;GREEK CAPITAL LETTER ALPHA WITH VRACHY;Lu;0;L;0391 0306;;;;N;;;;1FB0;-1FB9;GREEK CAPITAL LETTER ALPHA WITH MACRON;Lu;0;L;0391 0304;;;;N;;;;1FB1;-1FBA;GREEK CAPITAL LETTER ALPHA WITH VARIA;Lu;0;L;0391 0300;;;;N;;;;1F70;-1FBB;GREEK CAPITAL LETTER ALPHA WITH OXIA;Lu;0;L;0386;;;;N;;;;1F71;-1FBC;GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI;Lt;0;L;0391 0345;;;;N;;;;1FB3;-1FBD;GREEK KORONIS;Sk;0;ON;<compat> 0020 0313;;;;N;;;;;-1FBE;GREEK PROSGEGRAMMENI;Ll;0;L;03B9;;;;N;;;0399;;0399-1FBF;GREEK PSILI;Sk;0;ON;<compat> 0020 0313;;;;N;;;;;-1FC0;GREEK PERISPOMENI;Sk;0;ON;<compat> 0020 0342;;;;N;;;;;-1FC1;GREEK DIALYTIKA AND PERISPOMENI;Sk;0;ON;00A8 0342;;;;N;;;;;-1FC2;GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI;Ll;0;L;1F74 0345;;;;N;;;;;-1FC3;GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI;Ll;0;L;03B7 0345;;;;N;;;1FCC;;1FCC-1FC4;GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI;Ll;0;L;03AE 0345;;;;N;;;;;-1FC6;GREEK SMALL LETTER ETA WITH PERISPOMENI;Ll;0;L;03B7 0342;;;;N;;;;;-1FC7;GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1FC6 0345;;;;N;;;;;-1FC8;GREEK CAPITAL LETTER EPSILON WITH VARIA;Lu;0;L;0395 0300;;;;N;;;;1F72;-1FC9;GREEK CAPITAL LETTER EPSILON WITH OXIA;Lu;0;L;0388;;;;N;;;;1F73;-1FCA;GREEK CAPITAL LETTER ETA WITH VARIA;Lu;0;L;0397 0300;;;;N;;;;1F74;-1FCB;GREEK CAPITAL LETTER ETA WITH OXIA;Lu;0;L;0389;;;;N;;;;1F75;-1FCC;GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI;Lt;0;L;0397 0345;;;;N;;;;1FC3;-1FCD;GREEK PSILI AND VARIA;Sk;0;ON;1FBF 0300;;;;N;;;;;-1FCE;GREEK PSILI AND OXIA;Sk;0;ON;1FBF 0301;;;;N;;;;;-1FCF;GREEK PSILI AND PERISPOMENI;Sk;0;ON;1FBF 0342;;;;N;;;;;-1FD0;GREEK SMALL LETTER IOTA WITH VRACHY;Ll;0;L;03B9 0306;;;;N;;;1FD8;;1FD8-1FD1;GREEK SMALL LETTER IOTA WITH MACRON;Ll;0;L;03B9 0304;;;;N;;;1FD9;;1FD9-1FD2;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA;Ll;0;L;03CA 0300;;;;N;;;;;-1FD3;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA;Ll;0;L;0390;;;;N;;;;;-1FD6;GREEK SMALL LETTER IOTA WITH PERISPOMENI;Ll;0;L;03B9 0342;;;;N;;;;;-1FD7;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI;Ll;0;L;03CA 0342;;;;N;;;;;-1FD8;GREEK CAPITAL LETTER IOTA WITH VRACHY;Lu;0;L;0399 0306;;;;N;;;;1FD0;-1FD9;GREEK CAPITAL LETTER IOTA WITH MACRON;Lu;0;L;0399 0304;;;;N;;;;1FD1;-1FDA;GREEK CAPITAL LETTER IOTA WITH VARIA;Lu;0;L;0399 0300;;;;N;;;;1F76;-1FDB;GREEK CAPITAL LETTER IOTA WITH OXIA;Lu;0;L;038A;;;;N;;;;1F77;-1FDD;GREEK DASIA AND VARIA;Sk;0;ON;1FFE 0300;;;;N;;;;;-1FDE;GREEK DASIA AND OXIA;Sk;0;ON;1FFE 0301;;;;N;;;;;-1FDF;GREEK DASIA AND PERISPOMENI;Sk;0;ON;1FFE 0342;;;;N;;;;;-1FE0;GREEK SMALL LETTER UPSILON WITH VRACHY;Ll;0;L;03C5 0306;;;;N;;;1FE8;;1FE8-1FE1;GREEK SMALL LETTER UPSILON WITH MACRON;Ll;0;L;03C5 0304;;;;N;;;1FE9;;1FE9-1FE2;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA;Ll;0;L;03CB 0300;;;;N;;;;;-1FE3;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA;Ll;0;L;03B0;;;;N;;;;;-1FE4;GREEK SMALL LETTER RHO WITH PSILI;Ll;0;L;03C1 0313;;;;N;;;;;-1FE5;GREEK SMALL LETTER RHO WITH DASIA;Ll;0;L;03C1 0314;;;;N;;;1FEC;;1FEC-1FE6;GREEK SMALL LETTER UPSILON WITH PERISPOMENI;Ll;0;L;03C5 0342;;;;N;;;;;-1FE7;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI;Ll;0;L;03CB 0342;;;;N;;;;;-1FE8;GREEK CAPITAL LETTER UPSILON WITH VRACHY;Lu;0;L;03A5 0306;;;;N;;;;1FE0;-1FE9;GREEK CAPITAL LETTER UPSILON WITH MACRON;Lu;0;L;03A5 0304;;;;N;;;;1FE1;-1FEA;GREEK CAPITAL LETTER UPSILON WITH VARIA;Lu;0;L;03A5 0300;;;;N;;;;1F7A;-1FEB;GREEK CAPITAL LETTER UPSILON WITH OXIA;Lu;0;L;038E;;;;N;;;;1F7B;-1FEC;GREEK CAPITAL LETTER RHO WITH DASIA;Lu;0;L;03A1 0314;;;;N;;;;1FE5;-1FED;GREEK DIALYTIKA AND VARIA;Sk;0;ON;00A8 0300;;;;N;;;;;-1FEE;GREEK DIALYTIKA AND OXIA;Sk;0;ON;0385;;;;N;;;;;-1FEF;GREEK VARIA;Sk;0;ON;0060;;;;N;;;;;-1FF2;GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI;Ll;0;L;1F7C 0345;;;;N;;;;;-1FF3;GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI;Ll;0;L;03C9 0345;;;;N;;;1FFC;;1FFC-1FF4;GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI;Ll;0;L;03CE 0345;;;;N;;;;;-1FF6;GREEK SMALL LETTER OMEGA WITH PERISPOMENI;Ll;0;L;03C9 0342;;;;N;;;;;-1FF7;GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1FF6 0345;;;;N;;;;;-1FF8;GREEK CAPITAL LETTER OMICRON WITH VARIA;Lu;0;L;039F 0300;;;;N;;;;1F78;-1FF9;GREEK CAPITAL LETTER OMICRON WITH OXIA;Lu;0;L;038C;;;;N;;;;1F79;-1FFA;GREEK CAPITAL LETTER OMEGA WITH VARIA;Lu;0;L;03A9 0300;;;;N;;;;1F7C;-1FFB;GREEK CAPITAL LETTER OMEGA WITH OXIA;Lu;0;L;038F;;;;N;;;;1F7D;-1FFC;GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI;Lt;0;L;03A9 0345;;;;N;;;;1FF3;-1FFD;GREEK OXIA;Sk;0;ON;00B4;;;;N;;;;;-1FFE;GREEK DASIA;Sk;0;ON;<compat> 0020 0314;;;;N;;;;;-2000;EN QUAD;Zs;0;WS;2002;;;;N;;;;;-2001;EM QUAD;Zs;0;WS;2003;;;;N;;;;;-2002;EN SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;-2003;EM SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;-2004;THREE-PER-EM SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;-2005;FOUR-PER-EM SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;-2006;SIX-PER-EM SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;-2007;FIGURE SPACE;Zs;0;WS;<noBreak> 0020;;;;N;;;;;-2008;PUNCTUATION SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;-2009;THIN SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;-200A;HAIR SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;-200B;ZERO WIDTH SPACE;Cf;0;BN;;;;;N;;;;;-200C;ZERO WIDTH NON-JOINER;Cf;0;BN;;;;;N;;;;;-200D;ZERO WIDTH JOINER;Cf;0;BN;;;;;N;;;;;-200E;LEFT-TO-RIGHT MARK;Cf;0;L;;;;;N;;;;;-200F;RIGHT-TO-LEFT MARK;Cf;0;R;;;;;N;;;;;-2010;HYPHEN;Pd;0;ON;;;;;N;;;;;-2011;NON-BREAKING HYPHEN;Pd;0;ON;<noBreak> 2010;;;;N;;;;;-2012;FIGURE DASH;Pd;0;ON;;;;;N;;;;;-2013;EN DASH;Pd;0;ON;;;;;N;;;;;-2014;EM DASH;Pd;0;ON;;;;;N;;;;;-2015;HORIZONTAL BAR;Pd;0;ON;;;;;N;QUOTATION DASH;;;;-2016;DOUBLE VERTICAL LINE;Po;0;ON;;;;;N;DOUBLE VERTICAL BAR;;;;-2017;DOUBLE LOW LINE;Po;0;ON;<compat> 0020 0333;;;;N;SPACING DOUBLE UNDERSCORE;;;;-2018;LEFT SINGLE QUOTATION MARK;Pi;0;ON;;;;;Y;SINGLE TURNED COMMA QUOTATION MARK;;;;-2019;RIGHT SINGLE QUOTATION MARK;Pf;0;ON;;;;;Y;SINGLE COMMA QUOTATION MARK;;;;-201A;SINGLE LOW-9 QUOTATION MARK;Ps;0;ON;;;;;Y;LOW SINGLE COMMA QUOTATION MARK;;;;-201B;SINGLE HIGH-REVERSED-9 QUOTATION MARK;Pi;0;ON;;;;;Y;SINGLE REVERSED COMMA QUOTATION MARK;;;;-201C;LEFT DOUBLE QUOTATION MARK;Pi;0;ON;;;;;Y;DOUBLE TURNED COMMA QUOTATION MARK;;;;-201D;RIGHT DOUBLE QUOTATION MARK;Pf;0;ON;;;;;Y;DOUBLE COMMA QUOTATION MARK;;;;-201E;DOUBLE LOW-9 QUOTATION MARK;Ps;0;ON;;;;;Y;LOW DOUBLE COMMA QUOTATION MARK;;;;-201F;DOUBLE HIGH-REVERSED-9 QUOTATION MARK;Pi;0;ON;;;;;Y;DOUBLE REVERSED COMMA QUOTATION MARK;;;;-2020;DAGGER;Po;0;ON;;;;;N;;;;;-2021;DOUBLE DAGGER;Po;0;ON;;;;;N;;;;;-2022;BULLET;Po;0;ON;;;;;N;;;;;-2023;TRIANGULAR BULLET;Po;0;ON;;;;;N;;;;;-2024;ONE DOT LEADER;Po;0;ON;<compat> 002E;;;;N;;;;;-2025;TWO DOT LEADER;Po;0;ON;<compat> 002E 002E;;;;N;;;;;-2026;HORIZONTAL ELLIPSIS;Po;0;ON;<compat> 002E 002E 002E;;;;N;;;;;-2027;HYPHENATION POINT;Po;0;ON;;;;;N;;;;;-2028;LINE SEPARATOR;Zl;0;WS;;;;;N;;;;;-2029;PARAGRAPH SEPARATOR;Zp;0;B;;;;;N;;;;;-202A;LEFT-TO-RIGHT EMBEDDING;Cf;0;LRE;;;;;N;;;;;-202B;RIGHT-TO-LEFT EMBEDDING;Cf;0;RLE;;;;;N;;;;;-202C;POP DIRECTIONAL FORMATTING;Cf;0;PDF;;;;;N;;;;;-202D;LEFT-TO-RIGHT OVERRIDE;Cf;0;LRO;;;;;N;;;;;-202E;RIGHT-TO-LEFT OVERRIDE;Cf;0;RLO;;;;;N;;;;;-202F;NARROW NO-BREAK SPACE;Zs;0;CS;<noBreak> 0020;;;;N;;;;;-2030;PER MILLE SIGN;Po;0;ET;;;;;N;;;;;-2031;PER TEN THOUSAND SIGN;Po;0;ET;;;;;N;;;;;-2032;PRIME;Po;0;ET;;;;;N;;;;;-2033;DOUBLE PRIME;Po;0;ET;<compat> 2032 2032;;;;N;;;;;-2034;TRIPLE PRIME;Po;0;ET;<compat> 2032 2032 2032;;;;N;;;;;-2035;REVERSED PRIME;Po;0;ON;;;;;N;;;;;-2036;REVERSED DOUBLE PRIME;Po;0;ON;<compat> 2035 2035;;;;N;;;;;-2037;REVERSED TRIPLE PRIME;Po;0;ON;<compat> 2035 2035 2035;;;;N;;;;;-2038;CARET;Po;0;ON;;;;;N;;;;;-2039;SINGLE LEFT-POINTING ANGLE QUOTATION MARK;Pi;0;ON;;;;;Y;LEFT POINTING SINGLE GUILLEMET;;;;-203A;SINGLE RIGHT-POINTING ANGLE QUOTATION MARK;Pf;0;ON;;;;;Y;RIGHT POINTING SINGLE GUILLEMET;;;;-203B;REFERENCE MARK;Po;0;ON;;;;;N;;;;;-203C;DOUBLE EXCLAMATION MARK;Po;0;ON;<compat> 0021 0021;;;;N;;;;;-203D;INTERROBANG;Po;0;ON;;;;;N;;;;;-203E;OVERLINE;Po;0;ON;<compat> 0020 0305;;;;N;SPACING OVERSCORE;;;;-203F;UNDERTIE;Pc;0;ON;;;;;N;;Enotikon;;;-2040;CHARACTER TIE;Pc;0;ON;;;;;N;;;;;-2041;CARET INSERTION POINT;Po;0;ON;;;;;N;;;;;-2042;ASTERISM;Po;0;ON;;;;;N;;;;;-2043;HYPHEN BULLET;Po;0;ON;;;;;N;;;;;-2044;FRACTION SLASH;Sm;0;CS;;;;;N;;;;;-2045;LEFT SQUARE BRACKET WITH QUILL;Ps;0;ON;;;;;Y;;;;;-2046;RIGHT SQUARE BRACKET WITH QUILL;Pe;0;ON;;;;;Y;;;;;-2047;DOUBLE QUESTION MARK;Po;0;ON;<compat> 003F 003F;;;;N;;;;;-2048;QUESTION EXCLAMATION MARK;Po;0;ON;<compat> 003F 0021;;;;N;;;;;-2049;EXCLAMATION QUESTION MARK;Po;0;ON;<compat> 0021 003F;;;;N;;;;;-204A;TIRONIAN SIGN ET;Po;0;ON;;;;;N;;;;;-204B;REVERSED PILCROW SIGN;Po;0;ON;;;;;N;;;;;-204C;BLACK LEFTWARDS BULLET;Po;0;ON;;;;;N;;;;;-204D;BLACK RIGHTWARDS BULLET;Po;0;ON;;;;;N;;;;;-204E;LOW ASTERISK;Po;0;ON;;;;;N;;;;;-204F;REVERSED SEMICOLON;Po;0;ON;;;;;N;;;;;-2050;CLOSE UP;Po;0;ON;;;;;N;;;;;-2051;TWO ASTERISKS ALIGNED VERTICALLY;Po;0;ON;;;;;N;;;;;-2052;COMMERCIAL MINUS SIGN;Sm;0;ON;;;;;N;;;;;-2053;SWUNG DASH;Po;0;ON;;;;;N;;;;;-2054;INVERTED UNDERTIE;Pc;0;ON;;;;;N;;;;;-2055;FLOWER PUNCTUATION MARK;Po;0;ON;;;;;N;;;;;-2056;THREE DOT PUNCTUATION;Po;0;ON;;;;;N;;;;;-2057;QUADRUPLE PRIME;Po;0;ON;<compat> 2032 2032 2032 2032;;;;N;;;;;-2058;FOUR DOT PUNCTUATION;Po;0;ON;;;;;N;;;;;-2059;FIVE DOT PUNCTUATION;Po;0;ON;;;;;N;;;;;-205A;TWO DOT PUNCTUATION;Po;0;ON;;;;;N;;;;;-205B;FOUR DOT MARK;Po;0;ON;;;;;N;;;;;-205C;DOTTED CROSS;Po;0;ON;;;;;N;;;;;-205D;TRICOLON;Po;0;ON;;;;;N;;;;;-205E;VERTICAL FOUR DOTS;Po;0;ON;;;;;N;;;;;-205F;MEDIUM MATHEMATICAL SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;-2060;WORD JOINER;Cf;0;BN;;;;;N;;;;;-2061;FUNCTION APPLICATION;Cf;0;BN;;;;;N;;;;;-2062;INVISIBLE TIMES;Cf;0;BN;;;;;N;;;;;-2063;INVISIBLE SEPARATOR;Cf;0;BN;;;;;N;;;;;-206A;INHIBIT SYMMETRIC SWAPPING;Cf;0;BN;;;;;N;;;;;-206B;ACTIVATE SYMMETRIC SWAPPING;Cf;0;BN;;;;;N;;;;;-206C;INHIBIT ARABIC FORM SHAPING;Cf;0;BN;;;;;N;;;;;-206D;ACTIVATE ARABIC FORM SHAPING;Cf;0;BN;;;;;N;;;;;-206E;NATIONAL DIGIT SHAPES;Cf;0;BN;;;;;N;;;;;-206F;NOMINAL DIGIT SHAPES;Cf;0;BN;;;;;N;;;;;-2070;SUPERSCRIPT ZERO;No;0;EN;<super> 0030;;0;0;N;SUPERSCRIPT DIGIT ZERO;;;;-2071;SUPERSCRIPT LATIN SMALL LETTER I;Ll;0;L;<super> 0069;;;;N;;;;;-2074;SUPERSCRIPT FOUR;No;0;EN;<super> 0034;;4;4;N;SUPERSCRIPT DIGIT FOUR;;;;-2075;SUPERSCRIPT FIVE;No;0;EN;<super> 0035;;5;5;N;SUPERSCRIPT DIGIT FIVE;;;;-2076;SUPERSCRIPT SIX;No;0;EN;<super> 0036;;6;6;N;SUPERSCRIPT DIGIT SIX;;;;-2077;SUPERSCRIPT SEVEN;No;0;EN;<super> 0037;;7;7;N;SUPERSCRIPT DIGIT SEVEN;;;;-2078;SUPERSCRIPT EIGHT;No;0;EN;<super> 0038;;8;8;N;SUPERSCRIPT DIGIT EIGHT;;;;-2079;SUPERSCRIPT NINE;No;0;EN;<super> 0039;;9;9;N;SUPERSCRIPT DIGIT NINE;;;;-207A;SUPERSCRIPT PLUS SIGN;Sm;0;ES;<super> 002B;;;;N;;;;;-207B;SUPERSCRIPT MINUS;Sm;0;ES;<super> 2212;;;;N;SUPERSCRIPT HYPHEN-MINUS;;;;-207C;SUPERSCRIPT EQUALS SIGN;Sm;0;ON;<super> 003D;;;;N;;;;;-207D;SUPERSCRIPT LEFT PARENTHESIS;Ps;0;ON;<super> 0028;;;;Y;SUPERSCRIPT OPENING PARENTHESIS;;;;-207E;SUPERSCRIPT RIGHT PARENTHESIS;Pe;0;ON;<super> 0029;;;;Y;SUPERSCRIPT CLOSING PARENTHESIS;;;;-207F;SUPERSCRIPT LATIN SMALL LETTER N;Ll;0;L;<super> 006E;;;;N;;;;;-2080;SUBSCRIPT ZERO;No;0;EN;<sub> 0030;;0;0;N;SUBSCRIPT DIGIT ZERO;;;;-2081;SUBSCRIPT ONE;No;0;EN;<sub> 0031;;1;1;N;SUBSCRIPT DIGIT ONE;;;;-2082;SUBSCRIPT TWO;No;0;EN;<sub> 0032;;2;2;N;SUBSCRIPT DIGIT TWO;;;;-2083;SUBSCRIPT THREE;No;0;EN;<sub> 0033;;3;3;N;SUBSCRIPT DIGIT THREE;;;;-2084;SUBSCRIPT FOUR;No;0;EN;<sub> 0034;;4;4;N;SUBSCRIPT DIGIT FOUR;;;;-2085;SUBSCRIPT FIVE;No;0;EN;<sub> 0035;;5;5;N;SUBSCRIPT DIGIT FIVE;;;;-2086;SUBSCRIPT SIX;No;0;EN;<sub> 0036;;6;6;N;SUBSCRIPT DIGIT SIX;;;;-2087;SUBSCRIPT SEVEN;No;0;EN;<sub> 0037;;7;7;N;SUBSCRIPT DIGIT SEVEN;;;;-2088;SUBSCRIPT EIGHT;No;0;EN;<sub> 0038;;8;8;N;SUBSCRIPT DIGIT EIGHT;;;;-2089;SUBSCRIPT NINE;No;0;EN;<sub> 0039;;9;9;N;SUBSCRIPT DIGIT NINE;;;;-208A;SUBSCRIPT PLUS SIGN;Sm;0;ES;<sub> 002B;;;;N;;;;;-208B;SUBSCRIPT MINUS;Sm;0;ES;<sub> 2212;;;;N;SUBSCRIPT HYPHEN-MINUS;;;;-208C;SUBSCRIPT EQUALS SIGN;Sm;0;ON;<sub> 003D;;;;N;;;;;-208D;SUBSCRIPT LEFT PARENTHESIS;Ps;0;ON;<sub> 0028;;;;Y;SUBSCRIPT OPENING PARENTHESIS;;;;-208E;SUBSCRIPT RIGHT PARENTHESIS;Pe;0;ON;<sub> 0029;;;;Y;SUBSCRIPT CLOSING PARENTHESIS;;;;-2090;LATIN SUBSCRIPT SMALL LETTER A;Lm;0;L;<sub> 0061;;;;N;;;;;-2091;LATIN SUBSCRIPT SMALL LETTER E;Lm;0;L;<sub> 0065;;;;N;;;;;-2092;LATIN SUBSCRIPT SMALL LETTER O;Lm;0;L;<sub> 006F;;;;N;;;;;-2093;LATIN SUBSCRIPT SMALL LETTER X;Lm;0;L;<sub> 0078;;;;N;;;;;-2094;LATIN SUBSCRIPT SMALL LETTER SCHWA;Lm;0;L;<sub> 0259;;;;N;;;;;-20A0;EURO-CURRENCY SIGN;Sc;0;ET;;;;;N;;;;;-20A1;COLON SIGN;Sc;0;ET;;;;;N;;;;;-20A2;CRUZEIRO SIGN;Sc;0;ET;;;;;N;;;;;-20A3;FRENCH FRANC SIGN;Sc;0;ET;;;;;N;;;;;-20A4;LIRA SIGN;Sc;0;ET;;;;;N;;;;;-20A5;MILL SIGN;Sc;0;ET;;;;;N;;;;;-20A6;NAIRA SIGN;Sc;0;ET;;;;;N;;;;;-20A7;PESETA SIGN;Sc;0;ET;;;;;N;;;;;-20A8;RUPEE SIGN;Sc;0;ET;<compat> 0052 0073;;;;N;;;;;-20A9;WON SIGN;Sc;0;ET;;;;;N;;;;;-20AA;NEW SHEQEL SIGN;Sc;0;ET;;;;;N;;;;;-20AB;DONG SIGN;Sc;0;ET;;;;;N;;;;;-20AC;EURO SIGN;Sc;0;ET;;;;;N;;;;;-20AD;KIP SIGN;Sc;0;ET;;;;;N;;;;;-20AE;TUGRIK SIGN;Sc;0;ET;;;;;N;;;;;-20AF;DRACHMA SIGN;Sc;0;ET;;;;;N;;;;;-20B0;GERMAN PENNY SIGN;Sc;0;ET;;;;;N;;;;;-20B1;PESO SIGN;Sc;0;ET;;;;;N;;;;;-20B2;GUARANI SIGN;Sc;0;ET;;;;;N;;;;;-20B3;AUSTRAL SIGN;Sc;0;ET;;;;;N;;;;;-20B4;HRYVNIA SIGN;Sc;0;ET;;;;;N;;;;;-20B5;CEDI SIGN;Sc;0;ET;;;;;N;;;;;-20D0;COMBINING LEFT HARPOON ABOVE;Mn;230;NSM;;;;;N;NON-SPACING LEFT HARPOON ABOVE;;;;-20D1;COMBINING RIGHT HARPOON ABOVE;Mn;230;NSM;;;;;N;NON-SPACING RIGHT HARPOON ABOVE;;;;-20D2;COMBINING LONG VERTICAL LINE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING LONG VERTICAL BAR OVERLAY;;;;-20D3;COMBINING SHORT VERTICAL LINE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING SHORT VERTICAL BAR OVERLAY;;;;-20D4;COMBINING ANTICLOCKWISE ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING ANTICLOCKWISE ARROW ABOVE;;;;-20D5;COMBINING CLOCKWISE ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING CLOCKWISE ARROW ABOVE;;;;-20D6;COMBINING LEFT ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING LEFT ARROW ABOVE;;;;-20D7;COMBINING RIGHT ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING RIGHT ARROW ABOVE;;;;-20D8;COMBINING RING OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING RING OVERLAY;;;;-20D9;COMBINING CLOCKWISE RING OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING CLOCKWISE RING OVERLAY;;;;-20DA;COMBINING ANTICLOCKWISE RING OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING ANTICLOCKWISE RING OVERLAY;;;;-20DB;COMBINING THREE DOTS ABOVE;Mn;230;NSM;;;;;N;NON-SPACING THREE DOTS ABOVE;;;;-20DC;COMBINING FOUR DOTS ABOVE;Mn;230;NSM;;;;;N;NON-SPACING FOUR DOTS ABOVE;;;;-20DD;COMBINING ENCLOSING CIRCLE;Me;0;NSM;;;;;N;ENCLOSING CIRCLE;;;;-20DE;COMBINING ENCLOSING SQUARE;Me;0;NSM;;;;;N;ENCLOSING SQUARE;;;;-20DF;COMBINING ENCLOSING DIAMOND;Me;0;NSM;;;;;N;ENCLOSING DIAMOND;;;;-20E0;COMBINING ENCLOSING CIRCLE BACKSLASH;Me;0;NSM;;;;;N;ENCLOSING CIRCLE SLASH;;;;-20E1;COMBINING LEFT RIGHT ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING LEFT RIGHT ARROW ABOVE;;;;-20E2;COMBINING ENCLOSING SCREEN;Me;0;NSM;;;;;N;;;;;-20E3;COMBINING ENCLOSING KEYCAP;Me;0;NSM;;;;;N;;;;;-20E4;COMBINING ENCLOSING UPWARD POINTING TRIANGLE;Me;0;NSM;;;;;N;;;;;-20E5;COMBINING REVERSE SOLIDUS OVERLAY;Mn;1;NSM;;;;;N;;;;;-20E6;COMBINING DOUBLE VERTICAL STROKE OVERLAY;Mn;1;NSM;;;;;N;;;;;-20E7;COMBINING ANNUITY SYMBOL;Mn;230;NSM;;;;;N;;;;;-20E8;COMBINING TRIPLE UNDERDOT;Mn;220;NSM;;;;;N;;;;;-20E9;COMBINING WIDE BRIDGE ABOVE;Mn;230;NSM;;;;;N;;;;;-20EA;COMBINING LEFTWARDS ARROW OVERLAY;Mn;1;NSM;;;;;N;;;;;-20EB;COMBINING LONG DOUBLE SOLIDUS OVERLAY;Mn;1;NSM;;;;;N;;;;;-20EC;COMBINING RIGHTWARDS HARPOON WITH BARB DOWNWARDS;Mn;220;NSM;;;;;N;;;;;-20ED;COMBINING LEFTWARDS HARPOON WITH BARB DOWNWARDS;Mn;220;NSM;;;;;N;;;;;-20EE;COMBINING LEFT ARROW BELOW;Mn;220;NSM;;;;;N;;;;;-20EF;COMBINING RIGHT ARROW BELOW;Mn;220;NSM;;;;;N;;;;;-2100;ACCOUNT OF;So;0;ON;<compat> 0061 002F 0063;;;;N;;;;;-2101;ADDRESSED TO THE SUBJECT;So;0;ON;<compat> 0061 002F 0073;;;;N;;;;;-2102;DOUBLE-STRUCK CAPITAL C;Lu;0;L;<font> 0043;;;;N;DOUBLE-STRUCK C;;;;-2103;DEGREE CELSIUS;So;0;ON;<compat> 00B0 0043;;;;N;DEGREES CENTIGRADE;;;;-2104;CENTRE LINE SYMBOL;So;0;ON;;;;;N;C L SYMBOL;;;;-2105;CARE OF;So;0;ON;<compat> 0063 002F 006F;;;;N;;;;;-2106;CADA UNA;So;0;ON;<compat> 0063 002F 0075;;;;N;;;;;-2107;EULER CONSTANT;Lu;0;L;<compat> 0190;;;;N;EULERS;;;;-2108;SCRUPLE;So;0;ON;;;;;N;;;;;-2109;DEGREE FAHRENHEIT;So;0;ON;<compat> 00B0 0046;;;;N;DEGREES FAHRENHEIT;;;;-210A;SCRIPT SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;-210B;SCRIPT CAPITAL H;Lu;0;L;<font> 0048;;;;N;SCRIPT H;;;;-210C;BLACK-LETTER CAPITAL H;Lu;0;L;<font> 0048;;;;N;BLACK-LETTER H;;;;-210D;DOUBLE-STRUCK CAPITAL H;Lu;0;L;<font> 0048;;;;N;DOUBLE-STRUCK H;;;;-210E;PLANCK CONSTANT;Ll;0;L;<font> 0068;;;;N;;;;;-210F;PLANCK CONSTANT OVER TWO PI;Ll;0;L;<font> 0127;;;;N;PLANCK CONSTANT OVER 2 PI;;;;-2110;SCRIPT CAPITAL I;Lu;0;L;<font> 0049;;;;N;SCRIPT I;;;;-2111;BLACK-LETTER CAPITAL I;Lu;0;L;<font> 0049;;;;N;BLACK-LETTER I;;;;-2112;SCRIPT CAPITAL L;Lu;0;L;<font> 004C;;;;N;SCRIPT L;;;;-2113;SCRIPT SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;-2114;L B BAR SYMBOL;So;0;ON;;;;;N;;;;;-2115;DOUBLE-STRUCK CAPITAL N;Lu;0;L;<font> 004E;;;;N;DOUBLE-STRUCK N;;;;-2116;NUMERO SIGN;So;0;ON;<compat> 004E 006F;;;;N;NUMERO;;;;-2117;SOUND RECORDING COPYRIGHT;So;0;ON;;;;;N;;;;;-2118;SCRIPT CAPITAL P;So;0;ON;;;;;N;SCRIPT P;;;;-2119;DOUBLE-STRUCK CAPITAL P;Lu;0;L;<font> 0050;;;;N;DOUBLE-STRUCK P;;;;-211A;DOUBLE-STRUCK CAPITAL Q;Lu;0;L;<font> 0051;;;;N;DOUBLE-STRUCK Q;;;;-211B;SCRIPT CAPITAL R;Lu;0;L;<font> 0052;;;;N;SCRIPT R;;;;-211C;BLACK-LETTER CAPITAL R;Lu;0;L;<font> 0052;;;;N;BLACK-LETTER R;;;;-211D;DOUBLE-STRUCK CAPITAL R;Lu;0;L;<font> 0052;;;;N;DOUBLE-STRUCK R;;;;-211E;PRESCRIPTION TAKE;So;0;ON;;;;;N;;;;;-211F;RESPONSE;So;0;ON;;;;;N;;;;;-2120;SERVICE MARK;So;0;ON;<super> 0053 004D;;;;N;;;;;-2121;TELEPHONE SIGN;So;0;ON;<compat> 0054 0045 004C;;;;N;T E L SYMBOL;;;;-2122;TRADE MARK SIGN;So;0;ON;<super> 0054 004D;;;;N;TRADEMARK;;;;-2123;VERSICLE;So;0;ON;;;;;N;;;;;-2124;DOUBLE-STRUCK CAPITAL Z;Lu;0;L;<font> 005A;;;;N;DOUBLE-STRUCK Z;;;;-2125;OUNCE SIGN;So;0;ON;;;;;N;OUNCE;;;;-2126;OHM SIGN;Lu;0;L;03A9;;;;N;OHM;;;03C9;-2127;INVERTED OHM SIGN;So;0;ON;;;;;N;MHO;;;;-2128;BLACK-LETTER CAPITAL Z;Lu;0;L;<font> 005A;;;;N;BLACK-LETTER Z;;;;-2129;TURNED GREEK SMALL LETTER IOTA;So;0;ON;;;;;N;;;;;-212A;KELVIN SIGN;Lu;0;L;004B;;;;N;DEGREES KELVIN;;;006B;-212B;ANGSTROM SIGN;Lu;0;L;00C5;;;;N;ANGSTROM UNIT;;;00E5;-212C;SCRIPT CAPITAL B;Lu;0;L;<font> 0042;;;;N;SCRIPT B;;;;-212D;BLACK-LETTER CAPITAL C;Lu;0;L;<font> 0043;;;;N;BLACK-LETTER C;;;;-212E;ESTIMATED SYMBOL;So;0;ET;;;;;N;;;;;-212F;SCRIPT SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;-2130;SCRIPT CAPITAL E;Lu;0;L;<font> 0045;;;;N;SCRIPT E;;;;-2131;SCRIPT CAPITAL F;Lu;0;L;<font> 0046;;;;N;SCRIPT F;;;;-2132;TURNED CAPITAL F;Lu;0;L;;;;;N;TURNED F;;;214E;-2133;SCRIPT CAPITAL M;Lu;0;L;<font> 004D;;;;N;SCRIPT M;;;;-2134;SCRIPT SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;-2135;ALEF SYMBOL;Lo;0;L;<compat> 05D0;;;;N;FIRST TRANSFINITE CARDINAL;;;;-2136;BET SYMBOL;Lo;0;L;<compat> 05D1;;;;N;SECOND TRANSFINITE CARDINAL;;;;-2137;GIMEL SYMBOL;Lo;0;L;<compat> 05D2;;;;N;THIRD TRANSFINITE CARDINAL;;;;-2138;DALET SYMBOL;Lo;0;L;<compat> 05D3;;;;N;FOURTH TRANSFINITE CARDINAL;;;;-2139;INFORMATION SOURCE;Ll;0;L;<font> 0069;;;;N;;;;;-213A;ROTATED CAPITAL Q;So;0;ON;;;;;N;;;;;-213B;FACSIMILE SIGN;So;0;ON;<compat> 0046 0041 0058;;;;N;;;;;-213C;DOUBLE-STRUCK SMALL PI;Ll;0;L;<font> 03C0;;;;N;;;;;-213D;DOUBLE-STRUCK SMALL GAMMA;Ll;0;L;<font> 03B3;;;;N;;;;;-213E;DOUBLE-STRUCK CAPITAL GAMMA;Lu;0;L;<font> 0393;;;;N;;;;;-213F;DOUBLE-STRUCK CAPITAL PI;Lu;0;L;<font> 03A0;;;;N;;;;;-2140;DOUBLE-STRUCK N-ARY SUMMATION;Sm;0;ON;<font> 2211;;;;Y;;;;;-2141;TURNED SANS-SERIF CAPITAL G;Sm;0;ON;;;;;N;;;;;-2142;TURNED SANS-SERIF CAPITAL L;Sm;0;ON;;;;;N;;;;;-2143;REVERSED SANS-SERIF CAPITAL L;Sm;0;ON;;;;;N;;;;;-2144;TURNED SANS-SERIF CAPITAL Y;Sm;0;ON;;;;;N;;;;;-2145;DOUBLE-STRUCK ITALIC CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;-2146;DOUBLE-STRUCK ITALIC SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;-2147;DOUBLE-STRUCK ITALIC SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;-2148;DOUBLE-STRUCK ITALIC SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;-2149;DOUBLE-STRUCK ITALIC SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;-214A;PROPERTY LINE;So;0;ON;;;;;N;;;;;-214B;TURNED AMPERSAND;Sm;0;ON;;;;;N;;;;;-214C;PER SIGN;So;0;ON;;;;;N;;;;;-214D;AKTIESELSKAB;So;0;ON;;;;;N;;;;;-214E;TURNED SMALL F;Ll;0;L;;;;;N;;;2132;;2132-2153;VULGAR FRACTION ONE THIRD;No;0;ON;<fraction> 0031 2044 0033;;;1/3;N;FRACTION ONE THIRD;;;;-2154;VULGAR FRACTION TWO THIRDS;No;0;ON;<fraction> 0032 2044 0033;;;2/3;N;FRACTION TWO THIRDS;;;;-2155;VULGAR FRACTION ONE FIFTH;No;0;ON;<fraction> 0031 2044 0035;;;1/5;N;FRACTION ONE FIFTH;;;;-2156;VULGAR FRACTION TWO FIFTHS;No;0;ON;<fraction> 0032 2044 0035;;;2/5;N;FRACTION TWO FIFTHS;;;;-2157;VULGAR FRACTION THREE FIFTHS;No;0;ON;<fraction> 0033 2044 0035;;;3/5;N;FRACTION THREE FIFTHS;;;;-2158;VULGAR FRACTION FOUR FIFTHS;No;0;ON;<fraction> 0034 2044 0035;;;4/5;N;FRACTION FOUR FIFTHS;;;;-2159;VULGAR FRACTION ONE SIXTH;No;0;ON;<fraction> 0031 2044 0036;;;1/6;N;FRACTION ONE SIXTH;;;;-215A;VULGAR FRACTION FIVE SIXTHS;No;0;ON;<fraction> 0035 2044 0036;;;5/6;N;FRACTION FIVE SIXTHS;;;;-215B;VULGAR FRACTION ONE EIGHTH;No;0;ON;<fraction> 0031 2044 0038;;;1/8;N;FRACTION ONE EIGHTH;;;;-215C;VULGAR FRACTION THREE EIGHTHS;No;0;ON;<fraction> 0033 2044 0038;;;3/8;N;FRACTION THREE EIGHTHS;;;;-215D;VULGAR FRACTION FIVE EIGHTHS;No;0;ON;<fraction> 0035 2044 0038;;;5/8;N;FRACTION FIVE EIGHTHS;;;;-215E;VULGAR FRACTION SEVEN EIGHTHS;No;0;ON;<fraction> 0037 2044 0038;;;7/8;N;FRACTION SEVEN EIGHTHS;;;;-215F;FRACTION NUMERATOR ONE;No;0;ON;<fraction> 0031 2044;;;1;N;;;;;-2160;ROMAN NUMERAL ONE;Nl;0;L;<compat> 0049;;;1;N;;;;2170;-2161;ROMAN NUMERAL TWO;Nl;0;L;<compat> 0049 0049;;;2;N;;;;2171;-2162;ROMAN NUMERAL THREE;Nl;0;L;<compat> 0049 0049 0049;;;3;N;;;;2172;-2163;ROMAN NUMERAL FOUR;Nl;0;L;<compat> 0049 0056;;;4;N;;;;2173;-2164;ROMAN NUMERAL FIVE;Nl;0;L;<compat> 0056;;;5;N;;;;2174;-2165;ROMAN NUMERAL SIX;Nl;0;L;<compat> 0056 0049;;;6;N;;;;2175;-2166;ROMAN NUMERAL SEVEN;Nl;0;L;<compat> 0056 0049 0049;;;7;N;;;;2176;-2167;ROMAN NUMERAL EIGHT;Nl;0;L;<compat> 0056 0049 0049 0049;;;8;N;;;;2177;-2168;ROMAN NUMERAL NINE;Nl;0;L;<compat> 0049 0058;;;9;N;;;;2178;-2169;ROMAN NUMERAL TEN;Nl;0;L;<compat> 0058;;;10;N;;;;2179;-216A;ROMAN NUMERAL ELEVEN;Nl;0;L;<compat> 0058 0049;;;11;N;;;;217A;-216B;ROMAN NUMERAL TWELVE;Nl;0;L;<compat> 0058 0049 0049;;;12;N;;;;217B;-216C;ROMAN NUMERAL FIFTY;Nl;0;L;<compat> 004C;;;50;N;;;;217C;-216D;ROMAN NUMERAL ONE HUNDRED;Nl;0;L;<compat> 0043;;;100;N;;;;217D;-216E;ROMAN NUMERAL FIVE HUNDRED;Nl;0;L;<compat> 0044;;;500;N;;;;217E;-216F;ROMAN NUMERAL ONE THOUSAND;Nl;0;L;<compat> 004D;;;1000;N;;;;217F;-2170;SMALL ROMAN NUMERAL ONE;Nl;0;L;<compat> 0069;;;1;N;;;2160;;2160-2171;SMALL ROMAN NUMERAL TWO;Nl;0;L;<compat> 0069 0069;;;2;N;;;2161;;2161-2172;SMALL ROMAN NUMERAL THREE;Nl;0;L;<compat> 0069 0069 0069;;;3;N;;;2162;;2162-2173;SMALL ROMAN NUMERAL FOUR;Nl;0;L;<compat> 0069 0076;;;4;N;;;2163;;2163-2174;SMALL ROMAN NUMERAL FIVE;Nl;0;L;<compat> 0076;;;5;N;;;2164;;2164-2175;SMALL ROMAN NUMERAL SIX;Nl;0;L;<compat> 0076 0069;;;6;N;;;2165;;2165-2176;SMALL ROMAN NUMERAL SEVEN;Nl;0;L;<compat> 0076 0069 0069;;;7;N;;;2166;;2166-2177;SMALL ROMAN NUMERAL EIGHT;Nl;0;L;<compat> 0076 0069 0069 0069;;;8;N;;;2167;;2167-2178;SMALL ROMAN NUMERAL NINE;Nl;0;L;<compat> 0069 0078;;;9;N;;;2168;;2168-2179;SMALL ROMAN NUMERAL TEN;Nl;0;L;<compat> 0078;;;10;N;;;2169;;2169-217A;SMALL ROMAN NUMERAL ELEVEN;Nl;0;L;<compat> 0078 0069;;;11;N;;;216A;;216A-217B;SMALL ROMAN NUMERAL TWELVE;Nl;0;L;<compat> 0078 0069 0069;;;12;N;;;216B;;216B-217C;SMALL ROMAN NUMERAL FIFTY;Nl;0;L;<compat> 006C;;;50;N;;;216C;;216C-217D;SMALL ROMAN NUMERAL ONE HUNDRED;Nl;0;L;<compat> 0063;;;100;N;;;216D;;216D-217E;SMALL ROMAN NUMERAL FIVE HUNDRED;Nl;0;L;<compat> 0064;;;500;N;;;216E;;216E-217F;SMALL ROMAN NUMERAL ONE THOUSAND;Nl;0;L;<compat> 006D;;;1000;N;;;216F;;216F-2180;ROMAN NUMERAL ONE THOUSAND C D;Nl;0;L;;;;1000;N;;;;;-2181;ROMAN NUMERAL FIVE THOUSAND;Nl;0;L;;;;5000;N;;;;;-2182;ROMAN NUMERAL TEN THOUSAND;Nl;0;L;;;;10000;N;;;;;-2183;ROMAN NUMERAL REVERSED ONE HUNDRED;Lu;0;L;;;;;N;;;;2184;-2184;LATIN SMALL LETTER REVERSED C;Ll;0;L;;;;;N;;;2183;;2183-2190;LEFTWARDS ARROW;Sm;0;ON;;;;;N;LEFT ARROW;;;;-2191;UPWARDS ARROW;Sm;0;ON;;;;;N;UP ARROW;;;;-2192;RIGHTWARDS ARROW;Sm;0;ON;;;;;N;RIGHT ARROW;;;;-2193;DOWNWARDS ARROW;Sm;0;ON;;;;;N;DOWN ARROW;;;;-2194;LEFT RIGHT ARROW;Sm;0;ON;;;;;N;;;;;-2195;UP DOWN ARROW;So;0;ON;;;;;N;;;;;-2196;NORTH WEST ARROW;So;0;ON;;;;;N;UPPER LEFT ARROW;;;;-2197;NORTH EAST ARROW;So;0;ON;;;;;N;UPPER RIGHT ARROW;;;;-2198;SOUTH EAST ARROW;So;0;ON;;;;;N;LOWER RIGHT ARROW;;;;-2199;SOUTH WEST ARROW;So;0;ON;;;;;N;LOWER LEFT ARROW;;;;-219A;LEFTWARDS ARROW WITH STROKE;Sm;0;ON;2190 0338;;;;N;LEFT ARROW WITH STROKE;;;;-219B;RIGHTWARDS ARROW WITH STROKE;Sm;0;ON;2192 0338;;;;N;RIGHT ARROW WITH STROKE;;;;-219C;LEFTWARDS WAVE ARROW;So;0;ON;;;;;N;LEFT WAVE ARROW;;;;-219D;RIGHTWARDS WAVE ARROW;So;0;ON;;;;;N;RIGHT WAVE ARROW;;;;-219E;LEFTWARDS TWO HEADED ARROW;So;0;ON;;;;;N;LEFT TWO HEADED ARROW;;;;-219F;UPWARDS TWO HEADED ARROW;So;0;ON;;;;;N;UP TWO HEADED ARROW;;;;-21A0;RIGHTWARDS TWO HEADED ARROW;Sm;0;ON;;;;;N;RIGHT TWO HEADED ARROW;;;;-21A1;DOWNWARDS TWO HEADED ARROW;So;0;ON;;;;;N;DOWN TWO HEADED ARROW;;;;-21A2;LEFTWARDS ARROW WITH TAIL;So;0;ON;;;;;N;LEFT ARROW WITH TAIL;;;;-21A3;RIGHTWARDS ARROW WITH TAIL;Sm;0;ON;;;;;N;RIGHT ARROW WITH TAIL;;;;-21A4;LEFTWARDS ARROW FROM BAR;So;0;ON;;;;;N;LEFT ARROW FROM BAR;;;;-21A5;UPWARDS ARROW FROM BAR;So;0;ON;;;;;N;UP ARROW FROM BAR;;;;-21A6;RIGHTWARDS ARROW FROM BAR;Sm;0;ON;;;;;N;RIGHT ARROW FROM BAR;;;;-21A7;DOWNWARDS ARROW FROM BAR;So;0;ON;;;;;N;DOWN ARROW FROM BAR;;;;-21A8;UP DOWN ARROW WITH BASE;So;0;ON;;;;;N;;;;;-21A9;LEFTWARDS ARROW WITH HOOK;So;0;ON;;;;;N;LEFT ARROW WITH HOOK;;;;-21AA;RIGHTWARDS ARROW WITH HOOK;So;0;ON;;;;;N;RIGHT ARROW WITH HOOK;;;;-21AB;LEFTWARDS ARROW WITH LOOP;So;0;ON;;;;;N;LEFT ARROW WITH LOOP;;;;-21AC;RIGHTWARDS ARROW WITH LOOP;So;0;ON;;;;;N;RIGHT ARROW WITH LOOP;;;;-21AD;LEFT RIGHT WAVE ARROW;So;0;ON;;;;;N;;;;;-21AE;LEFT RIGHT ARROW WITH STROKE;Sm;0;ON;2194 0338;;;;N;;;;;-21AF;DOWNWARDS ZIGZAG ARROW;So;0;ON;;;;;N;DOWN ZIGZAG ARROW;;;;-21B0;UPWARDS ARROW WITH TIP LEFTWARDS;So;0;ON;;;;;N;UP ARROW WITH TIP LEFT;;;;-21B1;UPWARDS ARROW WITH TIP RIGHTWARDS;So;0;ON;;;;;N;UP ARROW WITH TIP RIGHT;;;;-21B2;DOWNWARDS ARROW WITH TIP LEFTWARDS;So;0;ON;;;;;N;DOWN ARROW WITH TIP LEFT;;;;-21B3;DOWNWARDS ARROW WITH TIP RIGHTWARDS;So;0;ON;;;;;N;DOWN ARROW WITH TIP RIGHT;;;;-21B4;RIGHTWARDS ARROW WITH CORNER DOWNWARDS;So;0;ON;;;;;N;RIGHT ARROW WITH CORNER DOWN;;;;-21B5;DOWNWARDS ARROW WITH CORNER LEFTWARDS;So;0;ON;;;;;N;DOWN ARROW WITH CORNER LEFT;;;;-21B6;ANTICLOCKWISE TOP SEMICIRCLE ARROW;So;0;ON;;;;;N;;;;;-21B7;CLOCKWISE TOP SEMICIRCLE ARROW;So;0;ON;;;;;N;;;;;-21B8;NORTH WEST ARROW TO LONG BAR;So;0;ON;;;;;N;UPPER LEFT ARROW TO LONG BAR;;;;-21B9;LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR;So;0;ON;;;;;N;LEFT ARROW TO BAR OVER RIGHT ARROW TO BAR;;;;-21BA;ANTICLOCKWISE OPEN CIRCLE ARROW;So;0;ON;;;;;N;;;;;-21BB;CLOCKWISE OPEN CIRCLE ARROW;So;0;ON;;;;;N;;;;;-21BC;LEFTWARDS HARPOON WITH BARB UPWARDS;So;0;ON;;;;;N;LEFT HARPOON WITH BARB UP;;;;-21BD;LEFTWARDS HARPOON WITH BARB DOWNWARDS;So;0;ON;;;;;N;LEFT HARPOON WITH BARB DOWN;;;;-21BE;UPWARDS HARPOON WITH BARB RIGHTWARDS;So;0;ON;;;;;N;UP HARPOON WITH BARB RIGHT;;;;-21BF;UPWARDS HARPOON WITH BARB LEFTWARDS;So;0;ON;;;;;N;UP HARPOON WITH BARB LEFT;;;;-21C0;RIGHTWARDS HARPOON WITH BARB UPWARDS;So;0;ON;;;;;N;RIGHT HARPOON WITH BARB UP;;;;-21C1;RIGHTWARDS HARPOON WITH BARB DOWNWARDS;So;0;ON;;;;;N;RIGHT HARPOON WITH BARB DOWN;;;;-21C2;DOWNWARDS HARPOON WITH BARB RIGHTWARDS;So;0;ON;;;;;N;DOWN HARPOON WITH BARB RIGHT;;;;-21C3;DOWNWARDS HARPOON WITH BARB LEFTWARDS;So;0;ON;;;;;N;DOWN HARPOON WITH BARB LEFT;;;;-21C4;RIGHTWARDS ARROW OVER LEFTWARDS ARROW;So;0;ON;;;;;N;RIGHT ARROW OVER LEFT ARROW;;;;-21C5;UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW;So;0;ON;;;;;N;UP ARROW LEFT OF DOWN ARROW;;;;-21C6;LEFTWARDS ARROW OVER RIGHTWARDS ARROW;So;0;ON;;;;;N;LEFT ARROW OVER RIGHT ARROW;;;;-21C7;LEFTWARDS PAIRED ARROWS;So;0;ON;;;;;N;LEFT PAIRED ARROWS;;;;-21C8;UPWARDS PAIRED ARROWS;So;0;ON;;;;;N;UP PAIRED ARROWS;;;;-21C9;RIGHTWARDS PAIRED ARROWS;So;0;ON;;;;;N;RIGHT PAIRED ARROWS;;;;-21CA;DOWNWARDS PAIRED ARROWS;So;0;ON;;;;;N;DOWN PAIRED ARROWS;;;;-21CB;LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON;So;0;ON;;;;;N;LEFT HARPOON OVER RIGHT HARPOON;;;;-21CC;RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON;So;0;ON;;;;;N;RIGHT HARPOON OVER LEFT HARPOON;;;;-21CD;LEFTWARDS DOUBLE ARROW WITH STROKE;So;0;ON;21D0 0338;;;;N;LEFT DOUBLE ARROW WITH STROKE;;;;-21CE;LEFT RIGHT DOUBLE ARROW WITH STROKE;Sm;0;ON;21D4 0338;;;;N;;;;;-21CF;RIGHTWARDS DOUBLE ARROW WITH STROKE;Sm;0;ON;21D2 0338;;;;N;RIGHT DOUBLE ARROW WITH STROKE;;;;-21D0;LEFTWARDS DOUBLE ARROW;So;0;ON;;;;;N;LEFT DOUBLE ARROW;;;;-21D1;UPWARDS DOUBLE ARROW;So;0;ON;;;;;N;UP DOUBLE ARROW;;;;-21D2;RIGHTWARDS DOUBLE ARROW;Sm;0;ON;;;;;N;RIGHT DOUBLE ARROW;;;;-21D3;DOWNWARDS DOUBLE ARROW;So;0;ON;;;;;N;DOWN DOUBLE ARROW;;;;-21D4;LEFT RIGHT DOUBLE ARROW;Sm;0;ON;;;;;N;;;;;-21D5;UP DOWN DOUBLE ARROW;So;0;ON;;;;;N;;;;;-21D6;NORTH WEST DOUBLE ARROW;So;0;ON;;;;;N;UPPER LEFT DOUBLE ARROW;;;;-21D7;NORTH EAST DOUBLE ARROW;So;0;ON;;;;;N;UPPER RIGHT DOUBLE ARROW;;;;-21D8;SOUTH EAST DOUBLE ARROW;So;0;ON;;;;;N;LOWER RIGHT DOUBLE ARROW;;;;-21D9;SOUTH WEST DOUBLE ARROW;So;0;ON;;;;;N;LOWER LEFT DOUBLE ARROW;;;;-21DA;LEFTWARDS TRIPLE ARROW;So;0;ON;;;;;N;LEFT TRIPLE ARROW;;;;-21DB;RIGHTWARDS TRIPLE ARROW;So;0;ON;;;;;N;RIGHT TRIPLE ARROW;;;;-21DC;LEFTWARDS SQUIGGLE ARROW;So;0;ON;;;;;N;LEFT SQUIGGLE ARROW;;;;-21DD;RIGHTWARDS SQUIGGLE ARROW;So;0;ON;;;;;N;RIGHT SQUIGGLE ARROW;;;;-21DE;UPWARDS ARROW WITH DOUBLE STROKE;So;0;ON;;;;;N;UP ARROW WITH DOUBLE STROKE;;;;-21DF;DOWNWARDS ARROW WITH DOUBLE STROKE;So;0;ON;;;;;N;DOWN ARROW WITH DOUBLE STROKE;;;;-21E0;LEFTWARDS DASHED ARROW;So;0;ON;;;;;N;LEFT DASHED ARROW;;;;-21E1;UPWARDS DASHED ARROW;So;0;ON;;;;;N;UP DASHED ARROW;;;;-21E2;RIGHTWARDS DASHED ARROW;So;0;ON;;;;;N;RIGHT DASHED ARROW;;;;-21E3;DOWNWARDS DASHED ARROW;So;0;ON;;;;;N;DOWN DASHED ARROW;;;;-21E4;LEFTWARDS ARROW TO BAR;So;0;ON;;;;;N;LEFT ARROW TO BAR;;;;-21E5;RIGHTWARDS ARROW TO BAR;So;0;ON;;;;;N;RIGHT ARROW TO BAR;;;;-21E6;LEFTWARDS WHITE ARROW;So;0;ON;;;;;N;WHITE LEFT ARROW;;;;-21E7;UPWARDS WHITE ARROW;So;0;ON;;;;;N;WHITE UP ARROW;;;;-21E8;RIGHTWARDS WHITE ARROW;So;0;ON;;;;;N;WHITE RIGHT ARROW;;;;-21E9;DOWNWARDS WHITE ARROW;So;0;ON;;;;;N;WHITE DOWN ARROW;;;;-21EA;UPWARDS WHITE ARROW FROM BAR;So;0;ON;;;;;N;WHITE UP ARROW FROM BAR;;;;-21EB;UPWARDS WHITE ARROW ON PEDESTAL;So;0;ON;;;;;N;;;;;-21EC;UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR;So;0;ON;;;;;N;;;;;-21ED;UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR;So;0;ON;;;;;N;;;;;-21EE;UPWARDS WHITE DOUBLE ARROW;So;0;ON;;;;;N;;;;;-21EF;UPWARDS WHITE DOUBLE ARROW ON PEDESTAL;So;0;ON;;;;;N;;;;;-21F0;RIGHTWARDS WHITE ARROW FROM WALL;So;0;ON;;;;;N;;;;;-21F1;NORTH WEST ARROW TO CORNER;So;0;ON;;;;;N;;;;;-21F2;SOUTH EAST ARROW TO CORNER;So;0;ON;;;;;N;;;;;-21F3;UP DOWN WHITE ARROW;So;0;ON;;;;;N;;;;;-21F4;RIGHT ARROW WITH SMALL CIRCLE;Sm;0;ON;;;;;N;;;;;-21F5;DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW;Sm;0;ON;;;;;N;;;;;-21F6;THREE RIGHTWARDS ARROWS;Sm;0;ON;;;;;N;;;;;-21F7;LEFTWARDS ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;-21F8;RIGHTWARDS ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;-21F9;LEFT RIGHT ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;-21FA;LEFTWARDS ARROW WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;-21FB;RIGHTWARDS ARROW WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;-21FC;LEFT RIGHT ARROW WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;-21FD;LEFTWARDS OPEN-HEADED ARROW;Sm;0;ON;;;;;N;;;;;-21FE;RIGHTWARDS OPEN-HEADED ARROW;Sm;0;ON;;;;;N;;;;;-21FF;LEFT RIGHT OPEN-HEADED ARROW;Sm;0;ON;;;;;N;;;;;-2200;FOR ALL;Sm;0;ON;;;;;N;;;;;-2201;COMPLEMENT;Sm;0;ON;;;;;Y;;;;;-2202;PARTIAL DIFFERENTIAL;Sm;0;ON;;;;;Y;;;;;-2203;THERE EXISTS;Sm;0;ON;;;;;Y;;;;;-2204;THERE DOES NOT EXIST;Sm;0;ON;2203 0338;;;;Y;;;;;-2205;EMPTY SET;Sm;0;ON;;;;;N;;;;;-2206;INCREMENT;Sm;0;ON;;;;;N;;;;;-2207;NABLA;Sm;0;ON;;;;;N;;;;;-2208;ELEMENT OF;Sm;0;ON;;;;;Y;;;;;-2209;NOT AN ELEMENT OF;Sm;0;ON;2208 0338;;;;Y;;;;;-220A;SMALL ELEMENT OF;Sm;0;ON;;;;;Y;;;;;-220B;CONTAINS AS MEMBER;Sm;0;ON;;;;;Y;;;;;-220C;DOES NOT CONTAIN AS MEMBER;Sm;0;ON;220B 0338;;;;Y;;;;;-220D;SMALL CONTAINS AS MEMBER;Sm;0;ON;;;;;Y;;;;;-220E;END OF PROOF;Sm;0;ON;;;;;N;;;;;-220F;N-ARY PRODUCT;Sm;0;ON;;;;;N;;;;;-2210;N-ARY COPRODUCT;Sm;0;ON;;;;;N;;;;;-2211;N-ARY SUMMATION;Sm;0;ON;;;;;Y;;;;;-2212;MINUS SIGN;Sm;0;ES;;;;;N;;;;;-2213;MINUS-OR-PLUS SIGN;Sm;0;ET;;;;;N;;;;;-2214;DOT PLUS;Sm;0;ON;;;;;N;;;;;-2215;DIVISION SLASH;Sm;0;ON;;;;;Y;;;;;-2216;SET MINUS;Sm;0;ON;;;;;Y;;;;;-2217;ASTERISK OPERATOR;Sm;0;ON;;;;;N;;;;;-2218;RING OPERATOR;Sm;0;ON;;;;;N;;;;;-2219;BULLET OPERATOR;Sm;0;ON;;;;;N;;;;;-221A;SQUARE ROOT;Sm;0;ON;;;;;Y;;;;;-221B;CUBE ROOT;Sm;0;ON;;;;;Y;;;;;-221C;FOURTH ROOT;Sm;0;ON;;;;;Y;;;;;-221D;PROPORTIONAL TO;Sm;0;ON;;;;;Y;;;;;-221E;INFINITY;Sm;0;ON;;;;;N;;;;;-221F;RIGHT ANGLE;Sm;0;ON;;;;;Y;;;;;-2220;ANGLE;Sm;0;ON;;;;;Y;;;;;-2221;MEASURED ANGLE;Sm;0;ON;;;;;Y;;;;;-2222;SPHERICAL ANGLE;Sm;0;ON;;;;;Y;;;;;-2223;DIVIDES;Sm;0;ON;;;;;N;;;;;-2224;DOES NOT DIVIDE;Sm;0;ON;2223 0338;;;;Y;;;;;-2225;PARALLEL TO;Sm;0;ON;;;;;N;;;;;-2226;NOT PARALLEL TO;Sm;0;ON;2225 0338;;;;Y;;;;;-2227;LOGICAL AND;Sm;0;ON;;;;;N;;;;;-2228;LOGICAL OR;Sm;0;ON;;;;;N;;;;;-2229;INTERSECTION;Sm;0;ON;;;;;N;;;;;-222A;UNION;Sm;0;ON;;;;;N;;;;;-222B;INTEGRAL;Sm;0;ON;;;;;Y;;;;;-222C;DOUBLE INTEGRAL;Sm;0;ON;<compat> 222B 222B;;;;Y;;;;;-222D;TRIPLE INTEGRAL;Sm;0;ON;<compat> 222B 222B 222B;;;;Y;;;;;-222E;CONTOUR INTEGRAL;Sm;0;ON;;;;;Y;;;;;-222F;SURFACE INTEGRAL;Sm;0;ON;<compat> 222E 222E;;;;Y;;;;;-2230;VOLUME INTEGRAL;Sm;0;ON;<compat> 222E 222E 222E;;;;Y;;;;;-2231;CLOCKWISE INTEGRAL;Sm;0;ON;;;;;Y;;;;;-2232;CLOCKWISE CONTOUR INTEGRAL;Sm;0;ON;;;;;Y;;;;;-2233;ANTICLOCKWISE CONTOUR INTEGRAL;Sm;0;ON;;;;;Y;;;;;-2234;THEREFORE;Sm;0;ON;;;;;N;;;;;-2235;BECAUSE;Sm;0;ON;;;;;N;;;;;-2236;RATIO;Sm;0;ON;;;;;N;;;;;-2237;PROPORTION;Sm;0;ON;;;;;N;;;;;-2238;DOT MINUS;Sm;0;ON;;;;;N;;;;;-2239;EXCESS;Sm;0;ON;;;;;Y;;;;;-223A;GEOMETRIC PROPORTION;Sm;0;ON;;;;;N;;;;;-223B;HOMOTHETIC;Sm;0;ON;;;;;Y;;;;;-223C;TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;;-223D;REVERSED TILDE;Sm;0;ON;;;;;Y;;lazy S;;;-223E;INVERTED LAZY S;Sm;0;ON;;;;;Y;;;;;-223F;SINE WAVE;Sm;0;ON;;;;;Y;;;;;-2240;WREATH PRODUCT;Sm;0;ON;;;;;Y;;;;;-2241;NOT TILDE;Sm;0;ON;223C 0338;;;;Y;;;;;-2242;MINUS TILDE;Sm;0;ON;;;;;Y;;;;;-2243;ASYMPTOTICALLY EQUAL TO;Sm;0;ON;;;;;Y;;;;;-2244;NOT ASYMPTOTICALLY EQUAL TO;Sm;0;ON;2243 0338;;;;Y;;;;;-2245;APPROXIMATELY EQUAL TO;Sm;0;ON;;;;;Y;;;;;-2246;APPROXIMATELY BUT NOT ACTUALLY EQUAL TO;Sm;0;ON;;;;;Y;;;;;-2247;NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO;Sm;0;ON;2245 0338;;;;Y;;;;;-2248;ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;;-2249;NOT ALMOST EQUAL TO;Sm;0;ON;2248 0338;;;;Y;;;;;-224A;ALMOST EQUAL OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;-224B;TRIPLE TILDE;Sm;0;ON;;;;;Y;;;;;-224C;ALL EQUAL TO;Sm;0;ON;;;;;Y;;;;;-224D;EQUIVALENT TO;Sm;0;ON;;;;;N;;;;;-224E;GEOMETRICALLY EQUIVALENT TO;Sm;0;ON;;;;;N;;;;;-224F;DIFFERENCE BETWEEN;Sm;0;ON;;;;;N;;;;;-2250;APPROACHES THE LIMIT;Sm;0;ON;;;;;N;;;;;-2251;GEOMETRICALLY EQUAL TO;Sm;0;ON;;;;;N;;;;;-2252;APPROXIMATELY EQUAL TO OR THE IMAGE OF;Sm;0;ON;;;;;Y;;;;;-2253;IMAGE OF OR APPROXIMATELY EQUAL TO;Sm;0;ON;;;;;Y;;;;;-2254;COLON EQUALS;Sm;0;ON;;;;;Y;COLON EQUAL;;;;-2255;EQUALS COLON;Sm;0;ON;;;;;Y;EQUAL COLON;;;;-2256;RING IN EQUAL TO;Sm;0;ON;;;;;N;;;;;-2257;RING EQUAL TO;Sm;0;ON;;;;;N;;;;;-2258;CORRESPONDS TO;Sm;0;ON;;;;;N;;;;;-2259;ESTIMATES;Sm;0;ON;;;;;N;;;;;-225A;EQUIANGULAR TO;Sm;0;ON;;;;;N;;;;;-225B;STAR EQUALS;Sm;0;ON;;;;;N;;;;;-225C;DELTA EQUAL TO;Sm;0;ON;;;;;N;;;;;-225D;EQUAL TO BY DEFINITION;Sm;0;ON;;;;;N;;;;;-225E;MEASURED BY;Sm;0;ON;;;;;N;;;;;-225F;QUESTIONED EQUAL TO;Sm;0;ON;;;;;Y;;;;;-2260;NOT EQUAL TO;Sm;0;ON;003D 0338;;;;Y;;;;;-2261;IDENTICAL TO;Sm;0;ON;;;;;N;;;;;-2262;NOT IDENTICAL TO;Sm;0;ON;2261 0338;;;;Y;;;;;-2263;STRICTLY EQUIVALENT TO;Sm;0;ON;;;;;N;;;;;-2264;LESS-THAN OR EQUAL TO;Sm;0;ON;;;;;Y;LESS THAN OR EQUAL TO;;;;-2265;GREATER-THAN OR EQUAL TO;Sm;0;ON;;;;;Y;GREATER THAN OR EQUAL TO;;;;-2266;LESS-THAN OVER EQUAL TO;Sm;0;ON;;;;;Y;LESS THAN OVER EQUAL TO;;;;-2267;GREATER-THAN OVER EQUAL TO;Sm;0;ON;;;;;Y;GREATER THAN OVER EQUAL TO;;;;-2268;LESS-THAN BUT NOT EQUAL TO;Sm;0;ON;;;;;Y;LESS THAN BUT NOT EQUAL TO;;;;-2269;GREATER-THAN BUT NOT EQUAL TO;Sm;0;ON;;;;;Y;GREATER THAN BUT NOT EQUAL TO;;;;-226A;MUCH LESS-THAN;Sm;0;ON;;;;;Y;MUCH LESS THAN;;;;-226B;MUCH GREATER-THAN;Sm;0;ON;;;;;Y;MUCH GREATER THAN;;;;-226C;BETWEEN;Sm;0;ON;;;;;N;;;;;-226D;NOT EQUIVALENT TO;Sm;0;ON;224D 0338;;;;N;;;;;-226E;NOT LESS-THAN;Sm;0;ON;003C 0338;;;;Y;NOT LESS THAN;;;;-226F;NOT GREATER-THAN;Sm;0;ON;003E 0338;;;;Y;NOT GREATER THAN;;;;-2270;NEITHER LESS-THAN NOR EQUAL TO;Sm;0;ON;2264 0338;;;;Y;NEITHER LESS THAN NOR EQUAL TO;;;;-2271;NEITHER GREATER-THAN NOR EQUAL TO;Sm;0;ON;2265 0338;;;;Y;NEITHER GREATER THAN NOR EQUAL TO;;;;-2272;LESS-THAN OR EQUIVALENT TO;Sm;0;ON;;;;;Y;LESS THAN OR EQUIVALENT TO;;;;-2273;GREATER-THAN OR EQUIVALENT TO;Sm;0;ON;;;;;Y;GREATER THAN OR EQUIVALENT TO;;;;-2274;NEITHER LESS-THAN NOR EQUIVALENT TO;Sm;0;ON;2272 0338;;;;Y;NEITHER LESS THAN NOR EQUIVALENT TO;;;;-2275;NEITHER GREATER-THAN NOR EQUIVALENT TO;Sm;0;ON;2273 0338;;;;Y;NEITHER GREATER THAN NOR EQUIVALENT TO;;;;-2276;LESS-THAN OR GREATER-THAN;Sm;0;ON;;;;;Y;LESS THAN OR GREATER THAN;;;;-2277;GREATER-THAN OR LESS-THAN;Sm;0;ON;;;;;Y;GREATER THAN OR LESS THAN;;;;-2278;NEITHER LESS-THAN NOR GREATER-THAN;Sm;0;ON;2276 0338;;;;Y;NEITHER LESS THAN NOR GREATER THAN;;;;-2279;NEITHER GREATER-THAN NOR LESS-THAN;Sm;0;ON;2277 0338;;;;Y;NEITHER GREATER THAN NOR LESS THAN;;;;-227A;PRECEDES;Sm;0;ON;;;;;Y;;;;;-227B;SUCCEEDS;Sm;0;ON;;;;;Y;;;;;-227C;PRECEDES OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;-227D;SUCCEEDS OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;-227E;PRECEDES OR EQUIVALENT TO;Sm;0;ON;;;;;Y;;;;;-227F;SUCCEEDS OR EQUIVALENT TO;Sm;0;ON;;;;;Y;;;;;-2280;DOES NOT PRECEDE;Sm;0;ON;227A 0338;;;;Y;;;;;-2281;DOES NOT SUCCEED;Sm;0;ON;227B 0338;;;;Y;;;;;-2282;SUBSET OF;Sm;0;ON;;;;;Y;;;;;-2283;SUPERSET OF;Sm;0;ON;;;;;Y;;;;;-2284;NOT A SUBSET OF;Sm;0;ON;2282 0338;;;;Y;;;;;-2285;NOT A SUPERSET OF;Sm;0;ON;2283 0338;;;;Y;;;;;-2286;SUBSET OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;-2287;SUPERSET OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;-2288;NEITHER A SUBSET OF NOR EQUAL TO;Sm;0;ON;2286 0338;;;;Y;;;;;-2289;NEITHER A SUPERSET OF NOR EQUAL TO;Sm;0;ON;2287 0338;;;;Y;;;;;-228A;SUBSET OF WITH NOT EQUAL TO;Sm;0;ON;;;;;Y;SUBSET OF OR NOT EQUAL TO;;;;-228B;SUPERSET OF WITH NOT EQUAL TO;Sm;0;ON;;;;;Y;SUPERSET OF OR NOT EQUAL TO;;;;-228C;MULTISET;Sm;0;ON;;;;;Y;;;;;-228D;MULTISET MULTIPLICATION;Sm;0;ON;;;;;N;;;;;-228E;MULTISET UNION;Sm;0;ON;;;;;N;;;;;-228F;SQUARE IMAGE OF;Sm;0;ON;;;;;Y;;;;;-2290;SQUARE ORIGINAL OF;Sm;0;ON;;;;;Y;;;;;-2291;SQUARE IMAGE OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;-2292;SQUARE ORIGINAL OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;-2293;SQUARE CAP;Sm;0;ON;;;;;N;;;;;-2294;SQUARE CUP;Sm;0;ON;;;;;N;;;;;-2295;CIRCLED PLUS;Sm;0;ON;;;;;N;;;;;-2296;CIRCLED MINUS;Sm;0;ON;;;;;N;;;;;-2297;CIRCLED TIMES;Sm;0;ON;;;;;N;;;;;-2298;CIRCLED DIVISION SLASH;Sm;0;ON;;;;;Y;;;;;-2299;CIRCLED DOT OPERATOR;Sm;0;ON;;;;;N;;;;;-229A;CIRCLED RING OPERATOR;Sm;0;ON;;;;;N;;;;;-229B;CIRCLED ASTERISK OPERATOR;Sm;0;ON;;;;;N;;;;;-229C;CIRCLED EQUALS;Sm;0;ON;;;;;N;;;;;-229D;CIRCLED DASH;Sm;0;ON;;;;;N;;;;;-229E;SQUARED PLUS;Sm;0;ON;;;;;N;;;;;-229F;SQUARED MINUS;Sm;0;ON;;;;;N;;;;;-22A0;SQUARED TIMES;Sm;0;ON;;;;;N;;;;;-22A1;SQUARED DOT OPERATOR;Sm;0;ON;;;;;N;;;;;-22A2;RIGHT TACK;Sm;0;ON;;;;;Y;;;;;-22A3;LEFT TACK;Sm;0;ON;;;;;Y;;;;;-22A4;DOWN TACK;Sm;0;ON;;;;;N;;;;;-22A5;UP TACK;Sm;0;ON;;;;;N;;;;;-22A6;ASSERTION;Sm;0;ON;;;;;Y;;;;;-22A7;MODELS;Sm;0;ON;;;;;Y;;;;;-22A8;TRUE;Sm;0;ON;;;;;Y;;;;;-22A9;FORCES;Sm;0;ON;;;;;Y;;;;;-22AA;TRIPLE VERTICAL BAR RIGHT TURNSTILE;Sm;0;ON;;;;;Y;;;;;-22AB;DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE;Sm;0;ON;;;;;Y;;;;;-22AC;DOES NOT PROVE;Sm;0;ON;22A2 0338;;;;Y;;;;;-22AD;NOT TRUE;Sm;0;ON;22A8 0338;;;;Y;;;;;-22AE;DOES NOT FORCE;Sm;0;ON;22A9 0338;;;;Y;;;;;-22AF;NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE;Sm;0;ON;22AB 0338;;;;Y;;;;;-22B0;PRECEDES UNDER RELATION;Sm;0;ON;;;;;Y;;;;;-22B1;SUCCEEDS UNDER RELATION;Sm;0;ON;;;;;Y;;;;;-22B2;NORMAL SUBGROUP OF;Sm;0;ON;;;;;Y;;;;;-22B3;CONTAINS AS NORMAL SUBGROUP;Sm;0;ON;;;;;Y;;;;;-22B4;NORMAL SUBGROUP OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;-22B5;CONTAINS AS NORMAL SUBGROUP OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;-22B6;ORIGINAL OF;Sm;0;ON;;;;;Y;;;;;-22B7;IMAGE OF;Sm;0;ON;;;;;Y;;;;;-22B8;MULTIMAP;Sm;0;ON;;;;;Y;;;;;-22B9;HERMITIAN CONJUGATE MATRIX;Sm;0;ON;;;;;N;;;;;-22BA;INTERCALATE;Sm;0;ON;;;;;N;;;;;-22BB;XOR;Sm;0;ON;;;;;N;;;;;-22BC;NAND;Sm;0;ON;;;;;N;;;;;-22BD;NOR;Sm;0;ON;;;;;N;;;;;-22BE;RIGHT ANGLE WITH ARC;Sm;0;ON;;;;;Y;;;;;-22BF;RIGHT TRIANGLE;Sm;0;ON;;;;;Y;;;;;-22C0;N-ARY LOGICAL AND;Sm;0;ON;;;;;N;;;;;-22C1;N-ARY LOGICAL OR;Sm;0;ON;;;;;N;;;;;-22C2;N-ARY INTERSECTION;Sm;0;ON;;;;;N;;;;;-22C3;N-ARY UNION;Sm;0;ON;;;;;N;;;;;-22C4;DIAMOND OPERATOR;Sm;0;ON;;;;;N;;;;;-22C5;DOT OPERATOR;Sm;0;ON;;;;;N;;;;;-22C6;STAR OPERATOR;Sm;0;ON;;;;;N;;;;;-22C7;DIVISION TIMES;Sm;0;ON;;;;;N;;;;;-22C8;BOWTIE;Sm;0;ON;;;;;N;;;;;-22C9;LEFT NORMAL FACTOR SEMIDIRECT PRODUCT;Sm;0;ON;;;;;Y;;;;;-22CA;RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT;Sm;0;ON;;;;;Y;;;;;-22CB;LEFT SEMIDIRECT PRODUCT;Sm;0;ON;;;;;Y;;;;;-22CC;RIGHT SEMIDIRECT PRODUCT;Sm;0;ON;;;;;Y;;;;;-22CD;REVERSED TILDE EQUALS;Sm;0;ON;;;;;Y;;;;;-22CE;CURLY LOGICAL OR;Sm;0;ON;;;;;N;;;;;-22CF;CURLY LOGICAL AND;Sm;0;ON;;;;;N;;;;;-22D0;DOUBLE SUBSET;Sm;0;ON;;;;;Y;;;;;-22D1;DOUBLE SUPERSET;Sm;0;ON;;;;;Y;;;;;-22D2;DOUBLE INTERSECTION;Sm;0;ON;;;;;N;;;;;-22D3;DOUBLE UNION;Sm;0;ON;;;;;N;;;;;-22D4;PITCHFORK;Sm;0;ON;;;;;N;;;;;-22D5;EQUAL AND PARALLEL TO;Sm;0;ON;;;;;N;;;;;-22D6;LESS-THAN WITH DOT;Sm;0;ON;;;;;Y;LESS THAN WITH DOT;;;;-22D7;GREATER-THAN WITH DOT;Sm;0;ON;;;;;Y;GREATER THAN WITH DOT;;;;-22D8;VERY MUCH LESS-THAN;Sm;0;ON;;;;;Y;VERY MUCH LESS THAN;;;;-22D9;VERY MUCH GREATER-THAN;Sm;0;ON;;;;;Y;VERY MUCH GREATER THAN;;;;-22DA;LESS-THAN EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;LESS THAN EQUAL TO OR GREATER THAN;;;;-22DB;GREATER-THAN EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;GREATER THAN EQUAL TO OR LESS THAN;;;;-22DC;EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;EQUAL TO OR LESS THAN;;;;-22DD;EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;EQUAL TO OR GREATER THAN;;;;-22DE;EQUAL TO OR PRECEDES;Sm;0;ON;;;;;Y;;;;;-22DF;EQUAL TO OR SUCCEEDS;Sm;0;ON;;;;;Y;;;;;-22E0;DOES NOT PRECEDE OR EQUAL;Sm;0;ON;227C 0338;;;;Y;;;;;-22E1;DOES NOT SUCCEED OR EQUAL;Sm;0;ON;227D 0338;;;;Y;;;;;-22E2;NOT SQUARE IMAGE OF OR EQUAL TO;Sm;0;ON;2291 0338;;;;Y;;;;;-22E3;NOT SQUARE ORIGINAL OF OR EQUAL TO;Sm;0;ON;2292 0338;;;;Y;;;;;-22E4;SQUARE IMAGE OF OR NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;-22E5;SQUARE ORIGINAL OF OR NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;-22E6;LESS-THAN BUT NOT EQUIVALENT TO;Sm;0;ON;;;;;Y;LESS THAN BUT NOT EQUIVALENT TO;;;;-22E7;GREATER-THAN BUT NOT EQUIVALENT TO;Sm;0;ON;;;;;Y;GREATER THAN BUT NOT EQUIVALENT TO;;;;-22E8;PRECEDES BUT NOT EQUIVALENT TO;Sm;0;ON;;;;;Y;;;;;-22E9;SUCCEEDS BUT NOT EQUIVALENT TO;Sm;0;ON;;;;;Y;;;;;-22EA;NOT NORMAL SUBGROUP OF;Sm;0;ON;22B2 0338;;;;Y;;;;;-22EB;DOES NOT CONTAIN AS NORMAL SUBGROUP;Sm;0;ON;22B3 0338;;;;Y;;;;;-22EC;NOT NORMAL SUBGROUP OF OR EQUAL TO;Sm;0;ON;22B4 0338;;;;Y;;;;;-22ED;DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL;Sm;0;ON;22B5 0338;;;;Y;;;;;-22EE;VERTICAL ELLIPSIS;Sm;0;ON;;;;;N;;;;;-22EF;MIDLINE HORIZONTAL ELLIPSIS;Sm;0;ON;;;;;N;;;;;-22F0;UP RIGHT DIAGONAL ELLIPSIS;Sm;0;ON;;;;;Y;;;;;-22F1;DOWN RIGHT DIAGONAL ELLIPSIS;Sm;0;ON;;;;;Y;;;;;-22F2;ELEMENT OF WITH LONG HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;;-22F3;ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;;-22F4;SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;;-22F5;ELEMENT OF WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;;-22F6;ELEMENT OF WITH OVERBAR;Sm;0;ON;;;;;Y;;;;;-22F7;SMALL ELEMENT OF WITH OVERBAR;Sm;0;ON;;;;;Y;;;;;-22F8;ELEMENT OF WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;;-22F9;ELEMENT OF WITH TWO HORIZONTAL STROKES;Sm;0;ON;;;;;Y;;;;;-22FA;CONTAINS WITH LONG HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;;-22FB;CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;;-22FC;SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;;-22FD;CONTAINS WITH OVERBAR;Sm;0;ON;;;;;Y;;;;;-22FE;SMALL CONTAINS WITH OVERBAR;Sm;0;ON;;;;;Y;;;;;-22FF;Z NOTATION BAG MEMBERSHIP;Sm;0;ON;;;;;Y;;;;;-2300;DIAMETER SIGN;So;0;ON;;;;;N;;;;;-2301;ELECTRIC ARROW;So;0;ON;;;;;N;;;;;-2302;HOUSE;So;0;ON;;;;;N;;;;;-2303;UP ARROWHEAD;So;0;ON;;;;;N;;;;;-2304;DOWN ARROWHEAD;So;0;ON;;;;;N;;;;;-2305;PROJECTIVE;So;0;ON;;;;;N;;;;;-2306;PERSPECTIVE;So;0;ON;;;;;N;;;;;-2307;WAVY LINE;So;0;ON;;;;;N;;;;;-2308;LEFT CEILING;Sm;0;ON;;;;;Y;;;;;-2309;RIGHT CEILING;Sm;0;ON;;;;;Y;;;;;-230A;LEFT FLOOR;Sm;0;ON;;;;;Y;;;;;-230B;RIGHT FLOOR;Sm;0;ON;;;;;Y;;;;;-230C;BOTTOM RIGHT CROP;So;0;ON;;;;;N;;;;;-230D;BOTTOM LEFT CROP;So;0;ON;;;;;N;;;;;-230E;TOP RIGHT CROP;So;0;ON;;;;;N;;;;;-230F;TOP LEFT CROP;So;0;ON;;;;;N;;;;;-2310;REVERSED NOT SIGN;So;0;ON;;;;;N;;;;;-2311;SQUARE LOZENGE;So;0;ON;;;;;N;;;;;-2312;ARC;So;0;ON;;;;;N;;;;;-2313;SEGMENT;So;0;ON;;;;;N;;;;;-2314;SECTOR;So;0;ON;;;;;N;;;;;-2315;TELEPHONE RECORDER;So;0;ON;;;;;N;;;;;-2316;POSITION INDICATOR;So;0;ON;;;;;N;;;;;-2317;VIEWDATA SQUARE;So;0;ON;;;;;N;;;;;-2318;PLACE OF INTEREST SIGN;So;0;ON;;;;;N;COMMAND KEY;;;;-2319;TURNED NOT SIGN;So;0;ON;;;;;N;;;;;-231A;WATCH;So;0;ON;;;;;N;;;;;-231B;HOURGLASS;So;0;ON;;;;;N;;;;;-231C;TOP LEFT CORNER;So;0;ON;;;;;N;;;;;-231D;TOP RIGHT CORNER;So;0;ON;;;;;N;;;;;-231E;BOTTOM LEFT CORNER;So;0;ON;;;;;N;;;;;-231F;BOTTOM RIGHT CORNER;So;0;ON;;;;;N;;;;;-2320;TOP HALF INTEGRAL;Sm;0;ON;;;;;Y;;;;;-2321;BOTTOM HALF INTEGRAL;Sm;0;ON;;;;;Y;;;;;-2322;FROWN;So;0;ON;;;;;N;;;;;-2323;SMILE;So;0;ON;;;;;N;;;;;-2324;UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS;So;0;ON;;;;;N;ENTER KEY;;;;-2325;OPTION KEY;So;0;ON;;;;;N;;;;;-2326;ERASE TO THE RIGHT;So;0;ON;;;;;N;DELETE TO THE RIGHT KEY;;;;-2327;X IN A RECTANGLE BOX;So;0;ON;;;;;N;CLEAR KEY;;;;-2328;KEYBOARD;So;0;ON;;;;;N;;;;;-2329;LEFT-POINTING ANGLE BRACKET;Ps;0;ON;3008;;;;Y;BRA;;;;-232A;RIGHT-POINTING ANGLE BRACKET;Pe;0;ON;3009;;;;Y;KET;;;;-232B;ERASE TO THE LEFT;So;0;ON;;;;;N;DELETE TO THE LEFT KEY;;;;-232C;BENZENE RING;So;0;ON;;;;;N;;;;;-232D;CYLINDRICITY;So;0;ON;;;;;N;;;;;-232E;ALL AROUND-PROFILE;So;0;ON;;;;;N;;;;;-232F;SYMMETRY;So;0;ON;;;;;N;;;;;-2330;TOTAL RUNOUT;So;0;ON;;;;;N;;;;;-2331;DIMENSION ORIGIN;So;0;ON;;;;;N;;;;;-2332;CONICAL TAPER;So;0;ON;;;;;N;;;;;-2333;SLOPE;So;0;ON;;;;;N;;;;;-2334;COUNTERBORE;So;0;ON;;;;;N;;;;;-2335;COUNTERSINK;So;0;ON;;;;;N;;;;;-2336;APL FUNCTIONAL SYMBOL I-BEAM;So;0;L;;;;;N;;;;;-2337;APL FUNCTIONAL SYMBOL SQUISH QUAD;So;0;L;;;;;N;;;;;-2338;APL FUNCTIONAL SYMBOL QUAD EQUAL;So;0;L;;;;;N;;;;;-2339;APL FUNCTIONAL SYMBOL QUAD DIVIDE;So;0;L;;;;;N;;;;;-233A;APL FUNCTIONAL SYMBOL QUAD DIAMOND;So;0;L;;;;;N;;;;;-233B;APL FUNCTIONAL SYMBOL QUAD JOT;So;0;L;;;;;N;;;;;-233C;APL FUNCTIONAL SYMBOL QUAD CIRCLE;So;0;L;;;;;N;;;;;-233D;APL FUNCTIONAL SYMBOL CIRCLE STILE;So;0;L;;;;;N;;;;;-233E;APL FUNCTIONAL SYMBOL CIRCLE JOT;So;0;L;;;;;N;;;;;-233F;APL FUNCTIONAL SYMBOL SLASH BAR;So;0;L;;;;;N;;;;;-2340;APL FUNCTIONAL SYMBOL BACKSLASH BAR;So;0;L;;;;;N;;;;;-2341;APL FUNCTIONAL SYMBOL QUAD SLASH;So;0;L;;;;;N;;;;;-2342;APL FUNCTIONAL SYMBOL QUAD BACKSLASH;So;0;L;;;;;N;;;;;-2343;APL FUNCTIONAL SYMBOL QUAD LESS-THAN;So;0;L;;;;;N;;;;;-2344;APL FUNCTIONAL SYMBOL QUAD GREATER-THAN;So;0;L;;;;;N;;;;;-2345;APL FUNCTIONAL SYMBOL LEFTWARDS VANE;So;0;L;;;;;N;;;;;-2346;APL FUNCTIONAL SYMBOL RIGHTWARDS VANE;So;0;L;;;;;N;;;;;-2347;APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW;So;0;L;;;;;N;;;;;-2348;APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW;So;0;L;;;;;N;;;;;-2349;APL FUNCTIONAL SYMBOL CIRCLE BACKSLASH;So;0;L;;;;;N;;;;;-234A;APL FUNCTIONAL SYMBOL DOWN TACK UNDERBAR;So;0;L;;;;;N;;*;;;-234B;APL FUNCTIONAL SYMBOL DELTA STILE;So;0;L;;;;;N;;;;;-234C;APL FUNCTIONAL SYMBOL QUAD DOWN CARET;So;0;L;;;;;N;;;;;-234D;APL FUNCTIONAL SYMBOL QUAD DELTA;So;0;L;;;;;N;;;;;-234E;APL FUNCTIONAL SYMBOL DOWN TACK JOT;So;0;L;;;;;N;;*;;;-234F;APL FUNCTIONAL SYMBOL UPWARDS VANE;So;0;L;;;;;N;;;;;-2350;APL FUNCTIONAL SYMBOL QUAD UPWARDS ARROW;So;0;L;;;;;N;;;;;-2351;APL FUNCTIONAL SYMBOL UP TACK OVERBAR;So;0;L;;;;;N;;*;;;-2352;APL FUNCTIONAL SYMBOL DEL STILE;So;0;L;;;;;N;;;;;-2353;APL FUNCTIONAL SYMBOL QUAD UP CARET;So;0;L;;;;;N;;;;;-2354;APL FUNCTIONAL SYMBOL QUAD DEL;So;0;L;;;;;N;;;;;-2355;APL FUNCTIONAL SYMBOL UP TACK JOT;So;0;L;;;;;N;;*;;;-2356;APL FUNCTIONAL SYMBOL DOWNWARDS VANE;So;0;L;;;;;N;;;;;-2357;APL FUNCTIONAL SYMBOL QUAD DOWNWARDS ARROW;So;0;L;;;;;N;;;;;-2358;APL FUNCTIONAL SYMBOL QUOTE UNDERBAR;So;0;L;;;;;N;;;;;-2359;APL FUNCTIONAL SYMBOL DELTA UNDERBAR;So;0;L;;;;;N;;;;;-235A;APL FUNCTIONAL SYMBOL DIAMOND UNDERBAR;So;0;L;;;;;N;;;;;-235B;APL FUNCTIONAL SYMBOL JOT UNDERBAR;So;0;L;;;;;N;;;;;-235C;APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR;So;0;L;;;;;N;;;;;-235D;APL FUNCTIONAL SYMBOL UP SHOE JOT;So;0;L;;;;;N;;;;;-235E;APL FUNCTIONAL SYMBOL QUOTE QUAD;So;0;L;;;;;N;;;;;-235F;APL FUNCTIONAL SYMBOL CIRCLE STAR;So;0;L;;;;;N;;;;;-2360;APL FUNCTIONAL SYMBOL QUAD COLON;So;0;L;;;;;N;;;;;-2361;APL FUNCTIONAL SYMBOL UP TACK DIAERESIS;So;0;L;;;;;N;;*;;;-2362;APL FUNCTIONAL SYMBOL DEL DIAERESIS;So;0;L;;;;;N;;;;;-2363;APL FUNCTIONAL SYMBOL STAR DIAERESIS;So;0;L;;;;;N;;;;;-2364;APL FUNCTIONAL SYMBOL JOT DIAERESIS;So;0;L;;;;;N;;;;;-2365;APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS;So;0;L;;;;;N;;;;;-2366;APL FUNCTIONAL SYMBOL DOWN SHOE STILE;So;0;L;;;;;N;;;;;-2367;APL FUNCTIONAL SYMBOL LEFT SHOE STILE;So;0;L;;;;;N;;;;;-2368;APL FUNCTIONAL SYMBOL TILDE DIAERESIS;So;0;L;;;;;N;;;;;-2369;APL FUNCTIONAL SYMBOL GREATER-THAN DIAERESIS;So;0;L;;;;;N;;;;;-236A;APL FUNCTIONAL SYMBOL COMMA BAR;So;0;L;;;;;N;;;;;-236B;APL FUNCTIONAL SYMBOL DEL TILDE;So;0;L;;;;;N;;;;;-236C;APL FUNCTIONAL SYMBOL ZILDE;So;0;L;;;;;N;;;;;-236D;APL FUNCTIONAL SYMBOL STILE TILDE;So;0;L;;;;;N;;;;;-236E;APL FUNCTIONAL SYMBOL SEMICOLON UNDERBAR;So;0;L;;;;;N;;;;;-236F;APL FUNCTIONAL SYMBOL QUAD NOT EQUAL;So;0;L;;;;;N;;;;;-2370;APL FUNCTIONAL SYMBOL QUAD QUESTION;So;0;L;;;;;N;;;;;-2371;APL FUNCTIONAL SYMBOL DOWN CARET TILDE;So;0;L;;;;;N;;;;;-2372;APL FUNCTIONAL SYMBOL UP CARET TILDE;So;0;L;;;;;N;;;;;-2373;APL FUNCTIONAL SYMBOL IOTA;So;0;L;;;;;N;;;;;-2374;APL FUNCTIONAL SYMBOL RHO;So;0;L;;;;;N;;;;;-2375;APL FUNCTIONAL SYMBOL OMEGA;So;0;L;;;;;N;;;;;-2376;APL FUNCTIONAL SYMBOL ALPHA UNDERBAR;So;0;L;;;;;N;;;;;-2377;APL FUNCTIONAL SYMBOL EPSILON UNDERBAR;So;0;L;;;;;N;;;;;-2378;APL FUNCTIONAL SYMBOL IOTA UNDERBAR;So;0;L;;;;;N;;;;;-2379;APL FUNCTIONAL SYMBOL OMEGA UNDERBAR;So;0;L;;;;;N;;;;;-237A;APL FUNCTIONAL SYMBOL ALPHA;So;0;L;;;;;N;;;;;-237B;NOT CHECK MARK;So;0;ON;;;;;N;;;;;-237C;RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW;Sm;0;ON;;;;;N;;;;;-237D;SHOULDERED OPEN BOX;So;0;ON;;;;;N;;;;;-237E;BELL SYMBOL;So;0;ON;;;;;N;;;;;-237F;VERTICAL LINE WITH MIDDLE DOT;So;0;ON;;;;;N;;;;;-2380;INSERTION SYMBOL;So;0;ON;;;;;N;;;;;-2381;CONTINUOUS UNDERLINE SYMBOL;So;0;ON;;;;;N;;;;;-2382;DISCONTINUOUS UNDERLINE SYMBOL;So;0;ON;;;;;N;;;;;-2383;EMPHASIS SYMBOL;So;0;ON;;;;;N;;;;;-2384;COMPOSITION SYMBOL;So;0;ON;;;;;N;;;;;-2385;WHITE SQUARE WITH CENTRE VERTICAL LINE;So;0;ON;;;;;N;;;;;-2386;ENTER SYMBOL;So;0;ON;;;;;N;;;;;-2387;ALTERNATIVE KEY SYMBOL;So;0;ON;;;;;N;;;;;-2388;HELM SYMBOL;So;0;ON;;;;;N;;;;;-2389;CIRCLED HORIZONTAL BAR WITH NOTCH;So;0;ON;;;;;N;;pause;;;-238A;CIRCLED TRIANGLE DOWN;So;0;ON;;;;;N;;break;;;-238B;BROKEN CIRCLE WITH NORTHWEST ARROW;So;0;ON;;;;;N;;escape;;;-238C;UNDO SYMBOL;So;0;ON;;;;;N;;;;;-238D;MONOSTABLE SYMBOL;So;0;ON;;;;;N;;;;;-238E;HYSTERESIS SYMBOL;So;0;ON;;;;;N;;;;;-238F;OPEN-CIRCUIT-OUTPUT H-TYPE SYMBOL;So;0;ON;;;;;N;;;;;-2390;OPEN-CIRCUIT-OUTPUT L-TYPE SYMBOL;So;0;ON;;;;;N;;;;;-2391;PASSIVE-PULL-DOWN-OUTPUT SYMBOL;So;0;ON;;;;;N;;;;;-2392;PASSIVE-PULL-UP-OUTPUT SYMBOL;So;0;ON;;;;;N;;;;;-2393;DIRECT CURRENT SYMBOL FORM TWO;So;0;ON;;;;;N;;;;;-2394;SOFTWARE-FUNCTION SYMBOL;So;0;ON;;;;;N;;;;;-2395;APL FUNCTIONAL SYMBOL QUAD;So;0;L;;;;;N;;;;;-2396;DECIMAL SEPARATOR KEY SYMBOL;So;0;ON;;;;;N;;;;;-2397;PREVIOUS PAGE;So;0;ON;;;;;N;;;;;-2398;NEXT PAGE;So;0;ON;;;;;N;;;;;-2399;PRINT SCREEN SYMBOL;So;0;ON;;;;;N;;;;;-239A;CLEAR SCREEN SYMBOL;So;0;ON;;;;;N;;;;;-239B;LEFT PARENTHESIS UPPER HOOK;Sm;0;ON;;;;;N;;;;;-239C;LEFT PARENTHESIS EXTENSION;Sm;0;ON;;;;;N;;;;;-239D;LEFT PARENTHESIS LOWER HOOK;Sm;0;ON;;;;;N;;;;;-239E;RIGHT PARENTHESIS UPPER HOOK;Sm;0;ON;;;;;N;;;;;-239F;RIGHT PARENTHESIS EXTENSION;Sm;0;ON;;;;;N;;;;;-23A0;RIGHT PARENTHESIS LOWER HOOK;Sm;0;ON;;;;;N;;;;;-23A1;LEFT SQUARE BRACKET UPPER CORNER;Sm;0;ON;;;;;N;;;;;-23A2;LEFT SQUARE BRACKET EXTENSION;Sm;0;ON;;;;;N;;;;;-23A3;LEFT SQUARE BRACKET LOWER CORNER;Sm;0;ON;;;;;N;;;;;-23A4;RIGHT SQUARE BRACKET UPPER CORNER;Sm;0;ON;;;;;N;;;;;-23A5;RIGHT SQUARE BRACKET EXTENSION;Sm;0;ON;;;;;N;;;;;-23A6;RIGHT SQUARE BRACKET LOWER CORNER;Sm;0;ON;;;;;N;;;;;-23A7;LEFT CURLY BRACKET UPPER HOOK;Sm;0;ON;;;;;N;;;;;-23A8;LEFT CURLY BRACKET MIDDLE PIECE;Sm;0;ON;;;;;N;;;;;-23A9;LEFT CURLY BRACKET LOWER HOOK;Sm;0;ON;;;;;N;;;;;-23AA;CURLY BRACKET EXTENSION;Sm;0;ON;;;;;N;;;;;-23AB;RIGHT CURLY BRACKET UPPER HOOK;Sm;0;ON;;;;;N;;;;;-23AC;RIGHT CURLY BRACKET MIDDLE PIECE;Sm;0;ON;;;;;N;;;;;-23AD;RIGHT CURLY BRACKET LOWER HOOK;Sm;0;ON;;;;;N;;;;;-23AE;INTEGRAL EXTENSION;Sm;0;ON;;;;;N;;;;;-23AF;HORIZONTAL LINE EXTENSION;Sm;0;ON;;;;;N;;;;;-23B0;UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION;Sm;0;ON;;;;;N;;;;;-23B1;UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION;Sm;0;ON;;;;;N;;;;;-23B2;SUMMATION TOP;Sm;0;ON;;;;;N;;;;;-23B3;SUMMATION BOTTOM;Sm;0;ON;;;;;N;;;;;-23B4;TOP SQUARE BRACKET;So;0;ON;;;;;N;;;;;-23B5;BOTTOM SQUARE BRACKET;So;0;ON;;;;;N;;;;;-23B6;BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET;So;0;ON;;;;;N;;;;;-23B7;RADICAL SYMBOL BOTTOM;So;0;ON;;;;;N;;;;;-23B8;LEFT VERTICAL BOX LINE;So;0;ON;;;;;N;;;;;-23B9;RIGHT VERTICAL BOX LINE;So;0;ON;;;;;N;;;;;-23BA;HORIZONTAL SCAN LINE-1;So;0;ON;;;;;N;;;;;-23BB;HORIZONTAL SCAN LINE-3;So;0;ON;;;;;N;;;;;-23BC;HORIZONTAL SCAN LINE-7;So;0;ON;;;;;N;;;;;-23BD;HORIZONTAL SCAN LINE-9;So;0;ON;;;;;N;;;;;-23BE;DENTISTRY SYMBOL LIGHT VERTICAL AND TOP RIGHT;So;0;ON;;;;;N;;;;;-23BF;DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM RIGHT;So;0;ON;;;;;N;;;;;-23C0;DENTISTRY SYMBOL LIGHT VERTICAL WITH CIRCLE;So;0;ON;;;;;N;;;;;-23C1;DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH CIRCLE;So;0;ON;;;;;N;;;;;-23C2;DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH CIRCLE;So;0;ON;;;;;N;;;;;-23C3;DENTISTRY SYMBOL LIGHT VERTICAL WITH TRIANGLE;So;0;ON;;;;;N;;;;;-23C4;DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH TRIANGLE;So;0;ON;;;;;N;;;;;-23C5;DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH TRIANGLE;So;0;ON;;;;;N;;;;;-23C6;DENTISTRY SYMBOL LIGHT VERTICAL AND WAVE;So;0;ON;;;;;N;;;;;-23C7;DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH WAVE;So;0;ON;;;;;N;;;;;-23C8;DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH WAVE;So;0;ON;;;;;N;;;;;-23C9;DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL;So;0;ON;;;;;N;;;;;-23CA;DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL;So;0;ON;;;;;N;;;;;-23CB;DENTISTRY SYMBOL LIGHT VERTICAL AND TOP LEFT;So;0;ON;;;;;N;;;;;-23CC;DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM LEFT;So;0;ON;;;;;N;;;;;-23CD;SQUARE FOOT;So;0;ON;;;;;N;;;;;-23CE;RETURN SYMBOL;So;0;ON;;;;;N;;;;;-23CF;EJECT SYMBOL;So;0;ON;;;;;N;;;;;-23D0;VERTICAL LINE EXTENSION;So;0;ON;;;;;N;;;;;-23D1;METRICAL BREVE;So;0;ON;;;;;N;;;;;-23D2;METRICAL LONG OVER SHORT;So;0;ON;;;;;N;;;;;-23D3;METRICAL SHORT OVER LONG;So;0;ON;;;;;N;;;;;-23D4;METRICAL LONG OVER TWO SHORTS;So;0;ON;;;;;N;;;;;-23D5;METRICAL TWO SHORTS OVER LONG;So;0;ON;;;;;N;;;;;-23D6;METRICAL TWO SHORTS JOINED;So;0;ON;;;;;N;;;;;-23D7;METRICAL TRISEME;So;0;ON;;;;;N;;;;;-23D8;METRICAL TETRASEME;So;0;ON;;;;;N;;;;;-23D9;METRICAL PENTASEME;So;0;ON;;;;;N;;;;;-23DA;EARTH GROUND;So;0;ON;;;;;N;;;;;-23DB;FUSE;So;0;ON;;;;;N;;;;;-23DC;TOP PARENTHESIS;Sm;0;ON;;;;;N;;mathematical use;;;-23DD;BOTTOM PARENTHESIS;Sm;0;ON;;;;;N;;mathematical use;;;-23DE;TOP CURLY BRACKET;Sm;0;ON;;;;;N;;mathematical use;;;-23DF;BOTTOM CURLY BRACKET;Sm;0;ON;;;;;N;;mathematical use;;;-23E0;TOP TORTOISE SHELL BRACKET;Sm;0;ON;;;;;N;;mathematical use;;;-23E1;BOTTOM TORTOISE SHELL BRACKET;Sm;0;ON;;;;;N;;mathematical use;;;-23E2;WHITE TRAPEZIUM;So;0;ON;;;;;N;;;;;-23E3;BENZENE RING WITH CIRCLE;So;0;ON;;;;;N;;;;;-23E4;STRAIGHTNESS;So;0;ON;;;;;N;;;;;-23E5;FLATNESS;So;0;ON;;;;;N;;;;;-23E6;AC CURRENT;So;0;ON;;;;;N;;;;;-23E7;ELECTRICAL INTERSECTION;So;0;ON;;;;;N;;;;;-2400;SYMBOL FOR NULL;So;0;ON;;;;;N;GRAPHIC FOR NULL;;;;-2401;SYMBOL FOR START OF HEADING;So;0;ON;;;;;N;GRAPHIC FOR START OF HEADING;;;;-2402;SYMBOL FOR START OF TEXT;So;0;ON;;;;;N;GRAPHIC FOR START OF TEXT;;;;-2403;SYMBOL FOR END OF TEXT;So;0;ON;;;;;N;GRAPHIC FOR END OF TEXT;;;;-2404;SYMBOL FOR END OF TRANSMISSION;So;0;ON;;;;;N;GRAPHIC FOR END OF TRANSMISSION;;;;-2405;SYMBOL FOR ENQUIRY;So;0;ON;;;;;N;GRAPHIC FOR ENQUIRY;;;;-2406;SYMBOL FOR ACKNOWLEDGE;So;0;ON;;;;;N;GRAPHIC FOR ACKNOWLEDGE;;;;-2407;SYMBOL FOR BELL;So;0;ON;;;;;N;GRAPHIC FOR BELL;;;;-2408;SYMBOL FOR BACKSPACE;So;0;ON;;;;;N;GRAPHIC FOR BACKSPACE;;;;-2409;SYMBOL FOR HORIZONTAL TABULATION;So;0;ON;;;;;N;GRAPHIC FOR HORIZONTAL TABULATION;;;;-240A;SYMBOL FOR LINE FEED;So;0;ON;;;;;N;GRAPHIC FOR LINE FEED;;;;-240B;SYMBOL FOR VERTICAL TABULATION;So;0;ON;;;;;N;GRAPHIC FOR VERTICAL TABULATION;;;;-240C;SYMBOL FOR FORM FEED;So;0;ON;;;;;N;GRAPHIC FOR FORM FEED;;;;-240D;SYMBOL FOR CARRIAGE RETURN;So;0;ON;;;;;N;GRAPHIC FOR CARRIAGE RETURN;;;;-240E;SYMBOL FOR SHIFT OUT;So;0;ON;;;;;N;GRAPHIC FOR SHIFT OUT;;;;-240F;SYMBOL FOR SHIFT IN;So;0;ON;;;;;N;GRAPHIC FOR SHIFT IN;;;;-2410;SYMBOL FOR DATA LINK ESCAPE;So;0;ON;;;;;N;GRAPHIC FOR DATA LINK ESCAPE;;;;-2411;SYMBOL FOR DEVICE CONTROL ONE;So;0;ON;;;;;N;GRAPHIC FOR DEVICE CONTROL ONE;;;;-2412;SYMBOL FOR DEVICE CONTROL TWO;So;0;ON;;;;;N;GRAPHIC FOR DEVICE CONTROL TWO;;;;-2413;SYMBOL FOR DEVICE CONTROL THREE;So;0;ON;;;;;N;GRAPHIC FOR DEVICE CONTROL THREE;;;;-2414;SYMBOL FOR DEVICE CONTROL FOUR;So;0;ON;;;;;N;GRAPHIC FOR DEVICE CONTROL FOUR;;;;-2415;SYMBOL FOR NEGATIVE ACKNOWLEDGE;So;0;ON;;;;;N;GRAPHIC FOR NEGATIVE ACKNOWLEDGE;;;;-2416;SYMBOL FOR SYNCHRONOUS IDLE;So;0;ON;;;;;N;GRAPHIC FOR SYNCHRONOUS IDLE;;;;-2417;SYMBOL FOR END OF TRANSMISSION BLOCK;So;0;ON;;;;;N;GRAPHIC FOR END OF TRANSMISSION BLOCK;;;;-2418;SYMBOL FOR CANCEL;So;0;ON;;;;;N;GRAPHIC FOR CANCEL;;;;-2419;SYMBOL FOR END OF MEDIUM;So;0;ON;;;;;N;GRAPHIC FOR END OF MEDIUM;;;;-241A;SYMBOL FOR SUBSTITUTE;So;0;ON;;;;;N;GRAPHIC FOR SUBSTITUTE;;;;-241B;SYMBOL FOR ESCAPE;So;0;ON;;;;;N;GRAPHIC FOR ESCAPE;;;;-241C;SYMBOL FOR FILE SEPARATOR;So;0;ON;;;;;N;GRAPHIC FOR FILE SEPARATOR;;;;-241D;SYMBOL FOR GROUP SEPARATOR;So;0;ON;;;;;N;GRAPHIC FOR GROUP SEPARATOR;;;;-241E;SYMBOL FOR RECORD SEPARATOR;So;0;ON;;;;;N;GRAPHIC FOR RECORD SEPARATOR;;;;-241F;SYMBOL FOR UNIT SEPARATOR;So;0;ON;;;;;N;GRAPHIC FOR UNIT SEPARATOR;;;;-2420;SYMBOL FOR SPACE;So;0;ON;;;;;N;GRAPHIC FOR SPACE;;;;-2421;SYMBOL FOR DELETE;So;0;ON;;;;;N;GRAPHIC FOR DELETE;;;;-2422;BLANK SYMBOL;So;0;ON;;;;;N;BLANK;;;;-2423;OPEN BOX;So;0;ON;;;;;N;;;;;-2424;SYMBOL FOR NEWLINE;So;0;ON;;;;;N;GRAPHIC FOR NEWLINE;;;;-2425;SYMBOL FOR DELETE FORM TWO;So;0;ON;;;;;N;;;;;-2426;SYMBOL FOR SUBSTITUTE FORM TWO;So;0;ON;;;;;N;;;;;-2440;OCR HOOK;So;0;ON;;;;;N;;;;;-2441;OCR CHAIR;So;0;ON;;;;;N;;;;;-2442;OCR FORK;So;0;ON;;;;;N;;;;;-2443;OCR INVERTED FORK;So;0;ON;;;;;N;;;;;-2444;OCR BELT BUCKLE;So;0;ON;;;;;N;;;;;-2445;OCR BOW TIE;So;0;ON;;;;;N;;;;;-2446;OCR BRANCH BANK IDENTIFICATION;So;0;ON;;;;;N;;;;;-2447;OCR AMOUNT OF CHECK;So;0;ON;;;;;N;;;;;-2448;OCR DASH;So;0;ON;;;;;N;;;;;-2449;OCR CUSTOMER ACCOUNT NUMBER;So;0;ON;;;;;N;;;;;-244A;OCR DOUBLE BACKSLASH;So;0;ON;;;;;N;;;;;-2460;CIRCLED DIGIT ONE;No;0;ON;<circle> 0031;;1;1;N;;;;;-2461;CIRCLED DIGIT TWO;No;0;ON;<circle> 0032;;2;2;N;;;;;-2462;CIRCLED DIGIT THREE;No;0;ON;<circle> 0033;;3;3;N;;;;;-2463;CIRCLED DIGIT FOUR;No;0;ON;<circle> 0034;;4;4;N;;;;;-2464;CIRCLED DIGIT FIVE;No;0;ON;<circle> 0035;;5;5;N;;;;;-2465;CIRCLED DIGIT SIX;No;0;ON;<circle> 0036;;6;6;N;;;;;-2466;CIRCLED DIGIT SEVEN;No;0;ON;<circle> 0037;;7;7;N;;;;;-2467;CIRCLED DIGIT EIGHT;No;0;ON;<circle> 0038;;8;8;N;;;;;-2468;CIRCLED DIGIT NINE;No;0;ON;<circle> 0039;;9;9;N;;;;;-2469;CIRCLED NUMBER TEN;No;0;ON;<circle> 0031 0030;;;10;N;;;;;-246A;CIRCLED NUMBER ELEVEN;No;0;ON;<circle> 0031 0031;;;11;N;;;;;-246B;CIRCLED NUMBER TWELVE;No;0;ON;<circle> 0031 0032;;;12;N;;;;;-246C;CIRCLED NUMBER THIRTEEN;No;0;ON;<circle> 0031 0033;;;13;N;;;;;-246D;CIRCLED NUMBER FOURTEEN;No;0;ON;<circle> 0031 0034;;;14;N;;;;;-246E;CIRCLED NUMBER FIFTEEN;No;0;ON;<circle> 0031 0035;;;15;N;;;;;-246F;CIRCLED NUMBER SIXTEEN;No;0;ON;<circle> 0031 0036;;;16;N;;;;;-2470;CIRCLED NUMBER SEVENTEEN;No;0;ON;<circle> 0031 0037;;;17;N;;;;;-2471;CIRCLED NUMBER EIGHTEEN;No;0;ON;<circle> 0031 0038;;;18;N;;;;;-2472;CIRCLED NUMBER NINETEEN;No;0;ON;<circle> 0031 0039;;;19;N;;;;;-2473;CIRCLED NUMBER TWENTY;No;0;ON;<circle> 0032 0030;;;20;N;;;;;-2474;PARENTHESIZED DIGIT ONE;No;0;ON;<compat> 0028 0031 0029;;1;1;N;;;;;-2475;PARENTHESIZED DIGIT TWO;No;0;ON;<compat> 0028 0032 0029;;2;2;N;;;;;-2476;PARENTHESIZED DIGIT THREE;No;0;ON;<compat> 0028 0033 0029;;3;3;N;;;;;-2477;PARENTHESIZED DIGIT FOUR;No;0;ON;<compat> 0028 0034 0029;;4;4;N;;;;;-2478;PARENTHESIZED DIGIT FIVE;No;0;ON;<compat> 0028 0035 0029;;5;5;N;;;;;-2479;PARENTHESIZED DIGIT SIX;No;0;ON;<compat> 0028 0036 0029;;6;6;N;;;;;-247A;PARENTHESIZED DIGIT SEVEN;No;0;ON;<compat> 0028 0037 0029;;7;7;N;;;;;-247B;PARENTHESIZED DIGIT EIGHT;No;0;ON;<compat> 0028 0038 0029;;8;8;N;;;;;-247C;PARENTHESIZED DIGIT NINE;No;0;ON;<compat> 0028 0039 0029;;9;9;N;;;;;-247D;PARENTHESIZED NUMBER TEN;No;0;ON;<compat> 0028 0031 0030 0029;;;10;N;;;;;-247E;PARENTHESIZED NUMBER ELEVEN;No;0;ON;<compat> 0028 0031 0031 0029;;;11;N;;;;;-247F;PARENTHESIZED NUMBER TWELVE;No;0;ON;<compat> 0028 0031 0032 0029;;;12;N;;;;;-2480;PARENTHESIZED NUMBER THIRTEEN;No;0;ON;<compat> 0028 0031 0033 0029;;;13;N;;;;;-2481;PARENTHESIZED NUMBER FOURTEEN;No;0;ON;<compat> 0028 0031 0034 0029;;;14;N;;;;;-2482;PARENTHESIZED NUMBER FIFTEEN;No;0;ON;<compat> 0028 0031 0035 0029;;;15;N;;;;;-2483;PARENTHESIZED NUMBER SIXTEEN;No;0;ON;<compat> 0028 0031 0036 0029;;;16;N;;;;;-2484;PARENTHESIZED NUMBER SEVENTEEN;No;0;ON;<compat> 0028 0031 0037 0029;;;17;N;;;;;-2485;PARENTHESIZED NUMBER EIGHTEEN;No;0;ON;<compat> 0028 0031 0038 0029;;;18;N;;;;;-2486;PARENTHESIZED NUMBER NINETEEN;No;0;ON;<compat> 0028 0031 0039 0029;;;19;N;;;;;-2487;PARENTHESIZED NUMBER TWENTY;No;0;ON;<compat> 0028 0032 0030 0029;;;20;N;;;;;-2488;DIGIT ONE FULL STOP;No;0;EN;<compat> 0031 002E;;1;1;N;DIGIT ONE PERIOD;;;;-2489;DIGIT TWO FULL STOP;No;0;EN;<compat> 0032 002E;;2;2;N;DIGIT TWO PERIOD;;;;-248A;DIGIT THREE FULL STOP;No;0;EN;<compat> 0033 002E;;3;3;N;DIGIT THREE PERIOD;;;;-248B;DIGIT FOUR FULL STOP;No;0;EN;<compat> 0034 002E;;4;4;N;DIGIT FOUR PERIOD;;;;-248C;DIGIT FIVE FULL STOP;No;0;EN;<compat> 0035 002E;;5;5;N;DIGIT FIVE PERIOD;;;;-248D;DIGIT SIX FULL STOP;No;0;EN;<compat> 0036 002E;;6;6;N;DIGIT SIX PERIOD;;;;-248E;DIGIT SEVEN FULL STOP;No;0;EN;<compat> 0037 002E;;7;7;N;DIGIT SEVEN PERIOD;;;;-248F;DIGIT EIGHT FULL STOP;No;0;EN;<compat> 0038 002E;;8;8;N;DIGIT EIGHT PERIOD;;;;-2490;DIGIT NINE FULL STOP;No;0;EN;<compat> 0039 002E;;9;9;N;DIGIT NINE PERIOD;;;;-2491;NUMBER TEN FULL STOP;No;0;EN;<compat> 0031 0030 002E;;;10;N;NUMBER TEN PERIOD;;;;-2492;NUMBER ELEVEN FULL STOP;No;0;EN;<compat> 0031 0031 002E;;;11;N;NUMBER ELEVEN PERIOD;;;;-2493;NUMBER TWELVE FULL STOP;No;0;EN;<compat> 0031 0032 002E;;;12;N;NUMBER TWELVE PERIOD;;;;-2494;NUMBER THIRTEEN FULL STOP;No;0;EN;<compat> 0031 0033 002E;;;13;N;NUMBER THIRTEEN PERIOD;;;;-2495;NUMBER FOURTEEN FULL STOP;No;0;EN;<compat> 0031 0034 002E;;;14;N;NUMBER FOURTEEN PERIOD;;;;-2496;NUMBER FIFTEEN FULL STOP;No;0;EN;<compat> 0031 0035 002E;;;15;N;NUMBER FIFTEEN PERIOD;;;;-2497;NUMBER SIXTEEN FULL STOP;No;0;EN;<compat> 0031 0036 002E;;;16;N;NUMBER SIXTEEN PERIOD;;;;-2498;NUMBER SEVENTEEN FULL STOP;No;0;EN;<compat> 0031 0037 002E;;;17;N;NUMBER SEVENTEEN PERIOD;;;;-2499;NUMBER EIGHTEEN FULL STOP;No;0;EN;<compat> 0031 0038 002E;;;18;N;NUMBER EIGHTEEN PERIOD;;;;-249A;NUMBER NINETEEN FULL STOP;No;0;EN;<compat> 0031 0039 002E;;;19;N;NUMBER NINETEEN PERIOD;;;;-249B;NUMBER TWENTY FULL STOP;No;0;EN;<compat> 0032 0030 002E;;;20;N;NUMBER TWENTY PERIOD;;;;-249C;PARENTHESIZED LATIN SMALL LETTER A;So;0;L;<compat> 0028 0061 0029;;;;N;;;;;-249D;PARENTHESIZED LATIN SMALL LETTER B;So;0;L;<compat> 0028 0062 0029;;;;N;;;;;-249E;PARENTHESIZED LATIN SMALL LETTER C;So;0;L;<compat> 0028 0063 0029;;;;N;;;;;-249F;PARENTHESIZED LATIN SMALL LETTER D;So;0;L;<compat> 0028 0064 0029;;;;N;;;;;-24A0;PARENTHESIZED LATIN SMALL LETTER E;So;0;L;<compat> 0028 0065 0029;;;;N;;;;;-24A1;PARENTHESIZED LATIN SMALL LETTER F;So;0;L;<compat> 0028 0066 0029;;;;N;;;;;-24A2;PARENTHESIZED LATIN SMALL LETTER G;So;0;L;<compat> 0028 0067 0029;;;;N;;;;;-24A3;PARENTHESIZED LATIN SMALL LETTER H;So;0;L;<compat> 0028 0068 0029;;;;N;;;;;-24A4;PARENTHESIZED LATIN SMALL LETTER I;So;0;L;<compat> 0028 0069 0029;;;;N;;;;;-24A5;PARENTHESIZED LATIN SMALL LETTER J;So;0;L;<compat> 0028 006A 0029;;;;N;;;;;-24A6;PARENTHESIZED LATIN SMALL LETTER K;So;0;L;<compat> 0028 006B 0029;;;;N;;;;;-24A7;PARENTHESIZED LATIN SMALL LETTER L;So;0;L;<compat> 0028 006C 0029;;;;N;;;;;-24A8;PARENTHESIZED LATIN SMALL LETTER M;So;0;L;<compat> 0028 006D 0029;;;;N;;;;;-24A9;PARENTHESIZED LATIN SMALL LETTER N;So;0;L;<compat> 0028 006E 0029;;;;N;;;;;-24AA;PARENTHESIZED LATIN SMALL LETTER O;So;0;L;<compat> 0028 006F 0029;;;;N;;;;;-24AB;PARENTHESIZED LATIN SMALL LETTER P;So;0;L;<compat> 0028 0070 0029;;;;N;;;;;-24AC;PARENTHESIZED LATIN SMALL LETTER Q;So;0;L;<compat> 0028 0071 0029;;;;N;;;;;-24AD;PARENTHESIZED LATIN SMALL LETTER R;So;0;L;<compat> 0028 0072 0029;;;;N;;;;;-24AE;PARENTHESIZED LATIN SMALL LETTER S;So;0;L;<compat> 0028 0073 0029;;;;N;;;;;-24AF;PARENTHESIZED LATIN SMALL LETTER T;So;0;L;<compat> 0028 0074 0029;;;;N;;;;;-24B0;PARENTHESIZED LATIN SMALL LETTER U;So;0;L;<compat> 0028 0075 0029;;;;N;;;;;-24B1;PARENTHESIZED LATIN SMALL LETTER V;So;0;L;<compat> 0028 0076 0029;;;;N;;;;;-24B2;PARENTHESIZED LATIN SMALL LETTER W;So;0;L;<compat> 0028 0077 0029;;;;N;;;;;-24B3;PARENTHESIZED LATIN SMALL LETTER X;So;0;L;<compat> 0028 0078 0029;;;;N;;;;;-24B4;PARENTHESIZED LATIN SMALL LETTER Y;So;0;L;<compat> 0028 0079 0029;;;;N;;;;;-24B5;PARENTHESIZED LATIN SMALL LETTER Z;So;0;L;<compat> 0028 007A 0029;;;;N;;;;;-24B6;CIRCLED LATIN CAPITAL LETTER A;So;0;L;<circle> 0041;;;;N;;;;24D0;-24B7;CIRCLED LATIN CAPITAL LETTER B;So;0;L;<circle> 0042;;;;N;;;;24D1;-24B8;CIRCLED LATIN CAPITAL LETTER C;So;0;L;<circle> 0043;;;;N;;;;24D2;-24B9;CIRCLED LATIN CAPITAL LETTER D;So;0;L;<circle> 0044;;;;N;;;;24D3;-24BA;CIRCLED LATIN CAPITAL LETTER E;So;0;L;<circle> 0045;;;;N;;;;24D4;-24BB;CIRCLED LATIN CAPITAL LETTER F;So;0;L;<circle> 0046;;;;N;;;;24D5;-24BC;CIRCLED LATIN CAPITAL LETTER G;So;0;L;<circle> 0047;;;;N;;;;24D6;-24BD;CIRCLED LATIN CAPITAL LETTER H;So;0;L;<circle> 0048;;;;N;;;;24D7;-24BE;CIRCLED LATIN CAPITAL LETTER I;So;0;L;<circle> 0049;;;;N;;;;24D8;-24BF;CIRCLED LATIN CAPITAL LETTER J;So;0;L;<circle> 004A;;;;N;;;;24D9;-24C0;CIRCLED LATIN CAPITAL LETTER K;So;0;L;<circle> 004B;;;;N;;;;24DA;-24C1;CIRCLED LATIN CAPITAL LETTER L;So;0;L;<circle> 004C;;;;N;;;;24DB;-24C2;CIRCLED LATIN CAPITAL LETTER M;So;0;L;<circle> 004D;;;;N;;;;24DC;-24C3;CIRCLED LATIN CAPITAL LETTER N;So;0;L;<circle> 004E;;;;N;;;;24DD;-24C4;CIRCLED LATIN CAPITAL LETTER O;So;0;L;<circle> 004F;;;;N;;;;24DE;-24C5;CIRCLED LATIN CAPITAL LETTER P;So;0;L;<circle> 0050;;;;N;;;;24DF;-24C6;CIRCLED LATIN CAPITAL LETTER Q;So;0;L;<circle> 0051;;;;N;;;;24E0;-24C7;CIRCLED LATIN CAPITAL LETTER R;So;0;L;<circle> 0052;;;;N;;;;24E1;-24C8;CIRCLED LATIN CAPITAL LETTER S;So;0;L;<circle> 0053;;;;N;;;;24E2;-24C9;CIRCLED LATIN CAPITAL LETTER T;So;0;L;<circle> 0054;;;;N;;;;24E3;-24CA;CIRCLED LATIN CAPITAL LETTER U;So;0;L;<circle> 0055;;;;N;;;;24E4;-24CB;CIRCLED LATIN CAPITAL LETTER V;So;0;L;<circle> 0056;;;;N;;;;24E5;-24CC;CIRCLED LATIN CAPITAL LETTER W;So;0;L;<circle> 0057;;;;N;;;;24E6;-24CD;CIRCLED LATIN CAPITAL LETTER X;So;0;L;<circle> 0058;;;;N;;;;24E7;-24CE;CIRCLED LATIN CAPITAL LETTER Y;So;0;L;<circle> 0059;;;;N;;;;24E8;-24CF;CIRCLED LATIN CAPITAL LETTER Z;So;0;L;<circle> 005A;;;;N;;;;24E9;-24D0;CIRCLED LATIN SMALL LETTER A;So;0;L;<circle> 0061;;;;N;;;24B6;;24B6-24D1;CIRCLED LATIN SMALL LETTER B;So;0;L;<circle> 0062;;;;N;;;24B7;;24B7-24D2;CIRCLED LATIN SMALL LETTER C;So;0;L;<circle> 0063;;;;N;;;24B8;;24B8-24D3;CIRCLED LATIN SMALL LETTER D;So;0;L;<circle> 0064;;;;N;;;24B9;;24B9-24D4;CIRCLED LATIN SMALL LETTER E;So;0;L;<circle> 0065;;;;N;;;24BA;;24BA-24D5;CIRCLED LATIN SMALL LETTER F;So;0;L;<circle> 0066;;;;N;;;24BB;;24BB-24D6;CIRCLED LATIN SMALL LETTER G;So;0;L;<circle> 0067;;;;N;;;24BC;;24BC-24D7;CIRCLED LATIN SMALL LETTER H;So;0;L;<circle> 0068;;;;N;;;24BD;;24BD-24D8;CIRCLED LATIN SMALL LETTER I;So;0;L;<circle> 0069;;;;N;;;24BE;;24BE-24D9;CIRCLED LATIN SMALL LETTER J;So;0;L;<circle> 006A;;;;N;;;24BF;;24BF-24DA;CIRCLED LATIN SMALL LETTER K;So;0;L;<circle> 006B;;;;N;;;24C0;;24C0-24DB;CIRCLED LATIN SMALL LETTER L;So;0;L;<circle> 006C;;;;N;;;24C1;;24C1-24DC;CIRCLED LATIN SMALL LETTER M;So;0;L;<circle> 006D;;;;N;;;24C2;;24C2-24DD;CIRCLED LATIN SMALL LETTER N;So;0;L;<circle> 006E;;;;N;;;24C3;;24C3-24DE;CIRCLED LATIN SMALL LETTER O;So;0;L;<circle> 006F;;;;N;;;24C4;;24C4-24DF;CIRCLED LATIN SMALL LETTER P;So;0;L;<circle> 0070;;;;N;;;24C5;;24C5-24E0;CIRCLED LATIN SMALL LETTER Q;So;0;L;<circle> 0071;;;;N;;;24C6;;24C6-24E1;CIRCLED LATIN SMALL LETTER R;So;0;L;<circle> 0072;;;;N;;;24C7;;24C7-24E2;CIRCLED LATIN SMALL LETTER S;So;0;L;<circle> 0073;;;;N;;;24C8;;24C8-24E3;CIRCLED LATIN SMALL LETTER T;So;0;L;<circle> 0074;;;;N;;;24C9;;24C9-24E4;CIRCLED LATIN SMALL LETTER U;So;0;L;<circle> 0075;;;;N;;;24CA;;24CA-24E5;CIRCLED LATIN SMALL LETTER V;So;0;L;<circle> 0076;;;;N;;;24CB;;24CB-24E6;CIRCLED LATIN SMALL LETTER W;So;0;L;<circle> 0077;;;;N;;;24CC;;24CC-24E7;CIRCLED LATIN SMALL LETTER X;So;0;L;<circle> 0078;;;;N;;;24CD;;24CD-24E8;CIRCLED LATIN SMALL LETTER Y;So;0;L;<circle> 0079;;;;N;;;24CE;;24CE-24E9;CIRCLED LATIN SMALL LETTER Z;So;0;L;<circle> 007A;;;;N;;;24CF;;24CF-24EA;CIRCLED DIGIT ZERO;No;0;ON;<circle> 0030;;0;0;N;;;;;-24EB;NEGATIVE CIRCLED NUMBER ELEVEN;No;0;ON;;;;11;N;;;;;-24EC;NEGATIVE CIRCLED NUMBER TWELVE;No;0;ON;;;;12;N;;;;;-24ED;NEGATIVE CIRCLED NUMBER THIRTEEN;No;0;ON;;;;13;N;;;;;-24EE;NEGATIVE CIRCLED NUMBER FOURTEEN;No;0;ON;;;;14;N;;;;;-24EF;NEGATIVE CIRCLED NUMBER FIFTEEN;No;0;ON;;;;15;N;;;;;-24F0;NEGATIVE CIRCLED NUMBER SIXTEEN;No;0;ON;;;;16;N;;;;;-24F1;NEGATIVE CIRCLED NUMBER SEVENTEEN;No;0;ON;;;;17;N;;;;;-24F2;NEGATIVE CIRCLED NUMBER EIGHTEEN;No;0;ON;;;;18;N;;;;;-24F3;NEGATIVE CIRCLED NUMBER NINETEEN;No;0;ON;;;;19;N;;;;;-24F4;NEGATIVE CIRCLED NUMBER TWENTY;No;0;ON;;;;20;N;;;;;-24F5;DOUBLE CIRCLED DIGIT ONE;No;0;ON;;;1;1;N;;;;;-24F6;DOUBLE CIRCLED DIGIT TWO;No;0;ON;;;2;2;N;;;;;-24F7;DOUBLE CIRCLED DIGIT THREE;No;0;ON;;;3;3;N;;;;;-24F8;DOUBLE CIRCLED DIGIT FOUR;No;0;ON;;;4;4;N;;;;;-24F9;DOUBLE CIRCLED DIGIT FIVE;No;0;ON;;;5;5;N;;;;;-24FA;DOUBLE CIRCLED DIGIT SIX;No;0;ON;;;6;6;N;;;;;-24FB;DOUBLE CIRCLED DIGIT SEVEN;No;0;ON;;;7;7;N;;;;;-24FC;DOUBLE CIRCLED DIGIT EIGHT;No;0;ON;;;8;8;N;;;;;-24FD;DOUBLE CIRCLED DIGIT NINE;No;0;ON;;;9;9;N;;;;;-24FE;DOUBLE CIRCLED NUMBER TEN;No;0;ON;;;;10;N;;;;;-24FF;NEGATIVE CIRCLED DIGIT ZERO;No;0;ON;;;0;0;N;;;;;-2500;BOX DRAWINGS LIGHT HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT HORIZONTAL;;;;-2501;BOX DRAWINGS HEAVY HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY HORIZONTAL;;;;-2502;BOX DRAWINGS LIGHT VERTICAL;So;0;ON;;;;;N;FORMS LIGHT VERTICAL;;;;-2503;BOX DRAWINGS HEAVY VERTICAL;So;0;ON;;;;;N;FORMS HEAVY VERTICAL;;;;-2504;BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT TRIPLE DASH HORIZONTAL;;;;-2505;BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY TRIPLE DASH HORIZONTAL;;;;-2506;BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL;So;0;ON;;;;;N;FORMS LIGHT TRIPLE DASH VERTICAL;;;;-2507;BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL;So;0;ON;;;;;N;FORMS HEAVY TRIPLE DASH VERTICAL;;;;-2508;BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT QUADRUPLE DASH HORIZONTAL;;;;-2509;BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY QUADRUPLE DASH HORIZONTAL;;;;-250A;BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL;So;0;ON;;;;;N;FORMS LIGHT QUADRUPLE DASH VERTICAL;;;;-250B;BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL;So;0;ON;;;;;N;FORMS HEAVY QUADRUPLE DASH VERTICAL;;;;-250C;BOX DRAWINGS LIGHT DOWN AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT DOWN AND RIGHT;;;;-250D;BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND RIGHT HEAVY;;;;-250E;BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND RIGHT LIGHT;;;;-250F;BOX DRAWINGS HEAVY DOWN AND RIGHT;So;0;ON;;;;;N;FORMS HEAVY DOWN AND RIGHT;;;;-2510;BOX DRAWINGS LIGHT DOWN AND LEFT;So;0;ON;;;;;N;FORMS LIGHT DOWN AND LEFT;;;;-2511;BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND LEFT HEAVY;;;;-2512;BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND LEFT LIGHT;;;;-2513;BOX DRAWINGS HEAVY DOWN AND LEFT;So;0;ON;;;;;N;FORMS HEAVY DOWN AND LEFT;;;;-2514;BOX DRAWINGS LIGHT UP AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT UP AND RIGHT;;;;-2515;BOX DRAWINGS UP LIGHT AND RIGHT HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND RIGHT HEAVY;;;;-2516;BOX DRAWINGS UP HEAVY AND RIGHT LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND RIGHT LIGHT;;;;-2517;BOX DRAWINGS HEAVY UP AND RIGHT;So;0;ON;;;;;N;FORMS HEAVY UP AND RIGHT;;;;-2518;BOX DRAWINGS LIGHT UP AND LEFT;So;0;ON;;;;;N;FORMS LIGHT UP AND LEFT;;;;-2519;BOX DRAWINGS UP LIGHT AND LEFT HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND LEFT HEAVY;;;;-251A;BOX DRAWINGS UP HEAVY AND LEFT LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND LEFT LIGHT;;;;-251B;BOX DRAWINGS HEAVY UP AND LEFT;So;0;ON;;;;;N;FORMS HEAVY UP AND LEFT;;;;-251C;BOX DRAWINGS LIGHT VERTICAL AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT VERTICAL AND RIGHT;;;;-251D;BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY;So;0;ON;;;;;N;FORMS VERTICAL LIGHT AND RIGHT HEAVY;;;;-251E;BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND RIGHT DOWN LIGHT;;;;-251F;BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND RIGHT UP LIGHT;;;;-2520;BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT;So;0;ON;;;;;N;FORMS VERTICAL HEAVY AND RIGHT LIGHT;;;;-2521;BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND RIGHT UP HEAVY;;;;-2522;BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND RIGHT DOWN HEAVY;;;;-2523;BOX DRAWINGS HEAVY VERTICAL AND RIGHT;So;0;ON;;;;;N;FORMS HEAVY VERTICAL AND RIGHT;;;;-2524;BOX DRAWINGS LIGHT VERTICAL AND LEFT;So;0;ON;;;;;N;FORMS LIGHT VERTICAL AND LEFT;;;;-2525;BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY;So;0;ON;;;;;N;FORMS VERTICAL LIGHT AND LEFT HEAVY;;;;-2526;BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND LEFT DOWN LIGHT;;;;-2527;BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND LEFT UP LIGHT;;;;-2528;BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT;So;0;ON;;;;;N;FORMS VERTICAL HEAVY AND LEFT LIGHT;;;;-2529;BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND LEFT UP HEAVY;;;;-252A;BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND LEFT DOWN HEAVY;;;;-252B;BOX DRAWINGS HEAVY VERTICAL AND LEFT;So;0;ON;;;;;N;FORMS HEAVY VERTICAL AND LEFT;;;;-252C;BOX DRAWINGS LIGHT DOWN AND HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT DOWN AND HORIZONTAL;;;;-252D;BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT;So;0;ON;;;;;N;FORMS LEFT HEAVY AND RIGHT DOWN LIGHT;;;;-252E;BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT;So;0;ON;;;;;N;FORMS RIGHT HEAVY AND LEFT DOWN LIGHT;;;;-252F;BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND HORIZONTAL HEAVY;;;;-2530;BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND HORIZONTAL LIGHT;;;;-2531;BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY;So;0;ON;;;;;N;FORMS RIGHT LIGHT AND LEFT DOWN HEAVY;;;;-2532;BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY;So;0;ON;;;;;N;FORMS LEFT LIGHT AND RIGHT DOWN HEAVY;;;;-2533;BOX DRAWINGS HEAVY DOWN AND HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY DOWN AND HORIZONTAL;;;;-2534;BOX DRAWINGS LIGHT UP AND HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT UP AND HORIZONTAL;;;;-2535;BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT;So;0;ON;;;;;N;FORMS LEFT HEAVY AND RIGHT UP LIGHT;;;;-2536;BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT;So;0;ON;;;;;N;FORMS RIGHT HEAVY AND LEFT UP LIGHT;;;;-2537;BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND HORIZONTAL HEAVY;;;;-2538;BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND HORIZONTAL LIGHT;;;;-2539;BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY;So;0;ON;;;;;N;FORMS RIGHT LIGHT AND LEFT UP HEAVY;;;;-253A;BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY;So;0;ON;;;;;N;FORMS LEFT LIGHT AND RIGHT UP HEAVY;;;;-253B;BOX DRAWINGS HEAVY UP AND HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY UP AND HORIZONTAL;;;;-253C;BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT VERTICAL AND HORIZONTAL;;;;-253D;BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT;So;0;ON;;;;;N;FORMS LEFT HEAVY AND RIGHT VERTICAL LIGHT;;;;-253E;BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT;So;0;ON;;;;;N;FORMS RIGHT HEAVY AND LEFT VERTICAL LIGHT;;;;-253F;BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS VERTICAL LIGHT AND HORIZONTAL HEAVY;;;;-2540;BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND DOWN HORIZONTAL LIGHT;;;;-2541;BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND UP HORIZONTAL LIGHT;;;;-2542;BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS VERTICAL HEAVY AND HORIZONTAL LIGHT;;;;-2543;BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT;So;0;ON;;;;;N;FORMS LEFT UP HEAVY AND RIGHT DOWN LIGHT;;;;-2544;BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT;So;0;ON;;;;;N;FORMS RIGHT UP HEAVY AND LEFT DOWN LIGHT;;;;-2545;BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT;So;0;ON;;;;;N;FORMS LEFT DOWN HEAVY AND RIGHT UP LIGHT;;;;-2546;BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT;So;0;ON;;;;;N;FORMS RIGHT DOWN HEAVY AND LEFT UP LIGHT;;;;-2547;BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND UP HORIZONTAL HEAVY;;;;-2548;BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND DOWN HORIZONTAL HEAVY;;;;-2549;BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY;So;0;ON;;;;;N;FORMS RIGHT LIGHT AND LEFT VERTICAL HEAVY;;;;-254A;BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY;So;0;ON;;;;;N;FORMS LEFT LIGHT AND RIGHT VERTICAL HEAVY;;;;-254B;BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY VERTICAL AND HORIZONTAL;;;;-254C;BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT DOUBLE DASH HORIZONTAL;;;;-254D;BOX DRAWINGS HEAVY DOUBLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY DOUBLE DASH HORIZONTAL;;;;-254E;BOX DRAWINGS LIGHT DOUBLE DASH VERTICAL;So;0;ON;;;;;N;FORMS LIGHT DOUBLE DASH VERTICAL;;;;-254F;BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL;So;0;ON;;;;;N;FORMS HEAVY DOUBLE DASH VERTICAL;;;;-2550;BOX DRAWINGS DOUBLE HORIZONTAL;So;0;ON;;;;;N;FORMS DOUBLE HORIZONTAL;;;;-2551;BOX DRAWINGS DOUBLE VERTICAL;So;0;ON;;;;;N;FORMS DOUBLE VERTICAL;;;;-2552;BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE;So;0;ON;;;;;N;FORMS DOWN SINGLE AND RIGHT DOUBLE;;;;-2553;BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE;So;0;ON;;;;;N;FORMS DOWN DOUBLE AND RIGHT SINGLE;;;;-2554;BOX DRAWINGS DOUBLE DOWN AND RIGHT;So;0;ON;;;;;N;FORMS DOUBLE DOWN AND RIGHT;;;;-2555;BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE;So;0;ON;;;;;N;FORMS DOWN SINGLE AND LEFT DOUBLE;;;;-2556;BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE;So;0;ON;;;;;N;FORMS DOWN DOUBLE AND LEFT SINGLE;;;;-2557;BOX DRAWINGS DOUBLE DOWN AND LEFT;So;0;ON;;;;;N;FORMS DOUBLE DOWN AND LEFT;;;;-2558;BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE;So;0;ON;;;;;N;FORMS UP SINGLE AND RIGHT DOUBLE;;;;-2559;BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE;So;0;ON;;;;;N;FORMS UP DOUBLE AND RIGHT SINGLE;;;;-255A;BOX DRAWINGS DOUBLE UP AND RIGHT;So;0;ON;;;;;N;FORMS DOUBLE UP AND RIGHT;;;;-255B;BOX DRAWINGS UP SINGLE AND LEFT DOUBLE;So;0;ON;;;;;N;FORMS UP SINGLE AND LEFT DOUBLE;;;;-255C;BOX DRAWINGS UP DOUBLE AND LEFT SINGLE;So;0;ON;;;;;N;FORMS UP DOUBLE AND LEFT SINGLE;;;;-255D;BOX DRAWINGS DOUBLE UP AND LEFT;So;0;ON;;;;;N;FORMS DOUBLE UP AND LEFT;;;;-255E;BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE;So;0;ON;;;;;N;FORMS VERTICAL SINGLE AND RIGHT DOUBLE;;;;-255F;BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE;So;0;ON;;;;;N;FORMS VERTICAL DOUBLE AND RIGHT SINGLE;;;;-2560;BOX DRAWINGS DOUBLE VERTICAL AND RIGHT;So;0;ON;;;;;N;FORMS DOUBLE VERTICAL AND RIGHT;;;;-2561;BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE;So;0;ON;;;;;N;FORMS VERTICAL SINGLE AND LEFT DOUBLE;;;;-2562;BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE;So;0;ON;;;;;N;FORMS VERTICAL DOUBLE AND LEFT SINGLE;;;;-2563;BOX DRAWINGS DOUBLE VERTICAL AND LEFT;So;0;ON;;;;;N;FORMS DOUBLE VERTICAL AND LEFT;;;;-2564;BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE;So;0;ON;;;;;N;FORMS DOWN SINGLE AND HORIZONTAL DOUBLE;;;;-2565;BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE;So;0;ON;;;;;N;FORMS DOWN DOUBLE AND HORIZONTAL SINGLE;;;;-2566;BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL;So;0;ON;;;;;N;FORMS DOUBLE DOWN AND HORIZONTAL;;;;-2567;BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE;So;0;ON;;;;;N;FORMS UP SINGLE AND HORIZONTAL DOUBLE;;;;-2568;BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE;So;0;ON;;;;;N;FORMS UP DOUBLE AND HORIZONTAL SINGLE;;;;-2569;BOX DRAWINGS DOUBLE UP AND HORIZONTAL;So;0;ON;;;;;N;FORMS DOUBLE UP AND HORIZONTAL;;;;-256A;BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE;So;0;ON;;;;;N;FORMS VERTICAL SINGLE AND HORIZONTAL DOUBLE;;;;-256B;BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE;So;0;ON;;;;;N;FORMS VERTICAL DOUBLE AND HORIZONTAL SINGLE;;;;-256C;BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL;So;0;ON;;;;;N;FORMS DOUBLE VERTICAL AND HORIZONTAL;;;;-256D;BOX DRAWINGS LIGHT ARC DOWN AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT ARC DOWN AND RIGHT;;;;-256E;BOX DRAWINGS LIGHT ARC DOWN AND LEFT;So;0;ON;;;;;N;FORMS LIGHT ARC DOWN AND LEFT;;;;-256F;BOX DRAWINGS LIGHT ARC UP AND LEFT;So;0;ON;;;;;N;FORMS LIGHT ARC UP AND LEFT;;;;-2570;BOX DRAWINGS LIGHT ARC UP AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT ARC UP AND RIGHT;;;;-2571;BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT;So;0;ON;;;;;N;FORMS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT;;;;-2572;BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT;So;0;ON;;;;;N;FORMS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT;;;;-2573;BOX DRAWINGS LIGHT DIAGONAL CROSS;So;0;ON;;;;;N;FORMS LIGHT DIAGONAL CROSS;;;;-2574;BOX DRAWINGS LIGHT LEFT;So;0;ON;;;;;N;FORMS LIGHT LEFT;;;;-2575;BOX DRAWINGS LIGHT UP;So;0;ON;;;;;N;FORMS LIGHT UP;;;;-2576;BOX DRAWINGS LIGHT RIGHT;So;0;ON;;;;;N;FORMS LIGHT RIGHT;;;;-2577;BOX DRAWINGS LIGHT DOWN;So;0;ON;;;;;N;FORMS LIGHT DOWN;;;;-2578;BOX DRAWINGS HEAVY LEFT;So;0;ON;;;;;N;FORMS HEAVY LEFT;;;;-2579;BOX DRAWINGS HEAVY UP;So;0;ON;;;;;N;FORMS HEAVY UP;;;;-257A;BOX DRAWINGS HEAVY RIGHT;So;0;ON;;;;;N;FORMS HEAVY RIGHT;;;;-257B;BOX DRAWINGS HEAVY DOWN;So;0;ON;;;;;N;FORMS HEAVY DOWN;;;;-257C;BOX DRAWINGS LIGHT LEFT AND HEAVY RIGHT;So;0;ON;;;;;N;FORMS LIGHT LEFT AND HEAVY RIGHT;;;;-257D;BOX DRAWINGS LIGHT UP AND HEAVY DOWN;So;0;ON;;;;;N;FORMS LIGHT UP AND HEAVY DOWN;;;;-257E;BOX DRAWINGS HEAVY LEFT AND LIGHT RIGHT;So;0;ON;;;;;N;FORMS HEAVY LEFT AND LIGHT RIGHT;;;;-257F;BOX DRAWINGS HEAVY UP AND LIGHT DOWN;So;0;ON;;;;;N;FORMS HEAVY UP AND LIGHT DOWN;;;;-2580;UPPER HALF BLOCK;So;0;ON;;;;;N;;;;;-2581;LOWER ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;;-2582;LOWER ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;;-2583;LOWER THREE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;-2584;LOWER HALF BLOCK;So;0;ON;;;;;N;;;;;-2585;LOWER FIVE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;-2586;LOWER THREE QUARTERS BLOCK;So;0;ON;;;;;N;LOWER THREE QUARTER BLOCK;;;;-2587;LOWER SEVEN EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;-2588;FULL BLOCK;So;0;ON;;;;;N;;;;;-2589;LEFT SEVEN EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;-258A;LEFT THREE QUARTERS BLOCK;So;0;ON;;;;;N;LEFT THREE QUARTER BLOCK;;;;-258B;LEFT FIVE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;-258C;LEFT HALF BLOCK;So;0;ON;;;;;N;;;;;-258D;LEFT THREE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;-258E;LEFT ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;;-258F;LEFT ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;;-2590;RIGHT HALF BLOCK;So;0;ON;;;;;N;;;;;-2591;LIGHT SHADE;So;0;ON;;;;;N;;;;;-2592;MEDIUM SHADE;So;0;ON;;;;;N;;;;;-2593;DARK SHADE;So;0;ON;;;;;N;;;;;-2594;UPPER ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;;-2595;RIGHT ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;;-2596;QUADRANT LOWER LEFT;So;0;ON;;;;;N;;;;;-2597;QUADRANT LOWER RIGHT;So;0;ON;;;;;N;;;;;-2598;QUADRANT UPPER LEFT;So;0;ON;;;;;N;;;;;-2599;QUADRANT UPPER LEFT AND LOWER LEFT AND LOWER RIGHT;So;0;ON;;;;;N;;;;;-259A;QUADRANT UPPER LEFT AND LOWER RIGHT;So;0;ON;;;;;N;;;;;-259B;QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER LEFT;So;0;ON;;;;;N;;;;;-259C;QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER RIGHT;So;0;ON;;;;;N;;;;;-259D;QUADRANT UPPER RIGHT;So;0;ON;;;;;N;;;;;-259E;QUADRANT UPPER RIGHT AND LOWER LEFT;So;0;ON;;;;;N;;;;;-259F;QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT;So;0;ON;;;;;N;;;;;-25A0;BLACK SQUARE;So;0;ON;;;;;N;;;;;-25A1;WHITE SQUARE;So;0;ON;;;;;N;;;;;-25A2;WHITE SQUARE WITH ROUNDED CORNERS;So;0;ON;;;;;N;;;;;-25A3;WHITE SQUARE CONTAINING BLACK SMALL SQUARE;So;0;ON;;;;;N;;;;;-25A4;SQUARE WITH HORIZONTAL FILL;So;0;ON;;;;;N;;;;;-25A5;SQUARE WITH VERTICAL FILL;So;0;ON;;;;;N;;;;;-25A6;SQUARE WITH ORTHOGONAL CROSSHATCH FILL;So;0;ON;;;;;N;;;;;-25A7;SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL;So;0;ON;;;;;N;;;;;-25A8;SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL;So;0;ON;;;;;N;;;;;-25A9;SQUARE WITH DIAGONAL CROSSHATCH FILL;So;0;ON;;;;;N;;;;;-25AA;BLACK SMALL SQUARE;So;0;ON;;;;;N;;;;;-25AB;WHITE SMALL SQUARE;So;0;ON;;;;;N;;;;;-25AC;BLACK RECTANGLE;So;0;ON;;;;;N;;;;;-25AD;WHITE RECTANGLE;So;0;ON;;;;;N;;;;;-25AE;BLACK VERTICAL RECTANGLE;So;0;ON;;;;;N;;;;;-25AF;WHITE VERTICAL RECTANGLE;So;0;ON;;;;;N;;;;;-25B0;BLACK PARALLELOGRAM;So;0;ON;;;;;N;;;;;-25B1;WHITE PARALLELOGRAM;So;0;ON;;;;;N;;;;;-25B2;BLACK UP-POINTING TRIANGLE;So;0;ON;;;;;N;BLACK UP POINTING TRIANGLE;;;;-25B3;WHITE UP-POINTING TRIANGLE;So;0;ON;;;;;N;WHITE UP POINTING TRIANGLE;;;;-25B4;BLACK UP-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK UP POINTING SMALL TRIANGLE;;;;-25B5;WHITE UP-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE UP POINTING SMALL TRIANGLE;;;;-25B6;BLACK RIGHT-POINTING TRIANGLE;So;0;ON;;;;;N;BLACK RIGHT POINTING TRIANGLE;;;;-25B7;WHITE RIGHT-POINTING TRIANGLE;Sm;0;ON;;;;;N;WHITE RIGHT POINTING TRIANGLE;;;;-25B8;BLACK RIGHT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK RIGHT POINTING SMALL TRIANGLE;;;;-25B9;WHITE RIGHT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE RIGHT POINTING SMALL TRIANGLE;;;;-25BA;BLACK RIGHT-POINTING POINTER;So;0;ON;;;;;N;BLACK RIGHT POINTING POINTER;;;;-25BB;WHITE RIGHT-POINTING POINTER;So;0;ON;;;;;N;WHITE RIGHT POINTING POINTER;;;;-25BC;BLACK DOWN-POINTING TRIANGLE;So;0;ON;;;;;N;BLACK DOWN POINTING TRIANGLE;;;;-25BD;WHITE DOWN-POINTING TRIANGLE;So;0;ON;;;;;N;WHITE DOWN POINTING TRIANGLE;;;;-25BE;BLACK DOWN-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK DOWN POINTING SMALL TRIANGLE;;;;-25BF;WHITE DOWN-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE DOWN POINTING SMALL TRIANGLE;;;;-25C0;BLACK LEFT-POINTING TRIANGLE;So;0;ON;;;;;N;BLACK LEFT POINTING TRIANGLE;;;;-25C1;WHITE LEFT-POINTING TRIANGLE;Sm;0;ON;;;;;N;WHITE LEFT POINTING TRIANGLE;;;;-25C2;BLACK LEFT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK LEFT POINTING SMALL TRIANGLE;;;;-25C3;WHITE LEFT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE LEFT POINTING SMALL TRIANGLE;;;;-25C4;BLACK LEFT-POINTING POINTER;So;0;ON;;;;;N;BLACK LEFT POINTING POINTER;;;;-25C5;WHITE LEFT-POINTING POINTER;So;0;ON;;;;;N;WHITE LEFT POINTING POINTER;;;;-25C6;BLACK DIAMOND;So;0;ON;;;;;N;;;;;-25C7;WHITE DIAMOND;So;0;ON;;;;;N;;;;;-25C8;WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND;So;0;ON;;;;;N;;;;;-25C9;FISHEYE;So;0;ON;;;;;N;;;;;-25CA;LOZENGE;So;0;ON;;;;;N;;;;;-25CB;WHITE CIRCLE;So;0;ON;;;;;N;;;;;-25CC;DOTTED CIRCLE;So;0;ON;;;;;N;;;;;-25CD;CIRCLE WITH VERTICAL FILL;So;0;ON;;;;;N;;;;;-25CE;BULLSEYE;So;0;ON;;;;;N;;;;;-25CF;BLACK CIRCLE;So;0;ON;;;;;N;;;;;-25D0;CIRCLE WITH LEFT HALF BLACK;So;0;ON;;;;;N;;;;;-25D1;CIRCLE WITH RIGHT HALF BLACK;So;0;ON;;;;;N;;;;;-25D2;CIRCLE WITH LOWER HALF BLACK;So;0;ON;;;;;N;;;;;-25D3;CIRCLE WITH UPPER HALF BLACK;So;0;ON;;;;;N;;;;;-25D4;CIRCLE WITH UPPER RIGHT QUADRANT BLACK;So;0;ON;;;;;N;;;;;-25D5;CIRCLE WITH ALL BUT UPPER LEFT QUADRANT BLACK;So;0;ON;;;;;N;;;;;-25D6;LEFT HALF BLACK CIRCLE;So;0;ON;;;;;N;;;;;-25D7;RIGHT HALF BLACK CIRCLE;So;0;ON;;;;;N;;;;;-25D8;INVERSE BULLET;So;0;ON;;;;;N;;;;;-25D9;INVERSE WHITE CIRCLE;So;0;ON;;;;;N;;;;;-25DA;UPPER HALF INVERSE WHITE CIRCLE;So;0;ON;;;;;N;;;;;-25DB;LOWER HALF INVERSE WHITE CIRCLE;So;0;ON;;;;;N;;;;;-25DC;UPPER LEFT QUADRANT CIRCULAR ARC;So;0;ON;;;;;N;;;;;-25DD;UPPER RIGHT QUADRANT CIRCULAR ARC;So;0;ON;;;;;N;;;;;-25DE;LOWER RIGHT QUADRANT CIRCULAR ARC;So;0;ON;;;;;N;;;;;-25DF;LOWER LEFT QUADRANT CIRCULAR ARC;So;0;ON;;;;;N;;;;;-25E0;UPPER HALF CIRCLE;So;0;ON;;;;;N;;;;;-25E1;LOWER HALF CIRCLE;So;0;ON;;;;;N;;;;;-25E2;BLACK LOWER RIGHT TRIANGLE;So;0;ON;;;;;N;;;;;-25E3;BLACK LOWER LEFT TRIANGLE;So;0;ON;;;;;N;;;;;-25E4;BLACK UPPER LEFT TRIANGLE;So;0;ON;;;;;N;;;;;-25E5;BLACK UPPER RIGHT TRIANGLE;So;0;ON;;;;;N;;;;;-25E6;WHITE BULLET;So;0;ON;;;;;N;;;;;-25E7;SQUARE WITH LEFT HALF BLACK;So;0;ON;;;;;N;;;;;-25E8;SQUARE WITH RIGHT HALF BLACK;So;0;ON;;;;;N;;;;;-25E9;SQUARE WITH UPPER LEFT DIAGONAL HALF BLACK;So;0;ON;;;;;N;;;;;-25EA;SQUARE WITH LOWER RIGHT DIAGONAL HALF BLACK;So;0;ON;;;;;N;;;;;-25EB;WHITE SQUARE WITH VERTICAL BISECTING LINE;So;0;ON;;;;;N;;;;;-25EC;WHITE UP-POINTING TRIANGLE WITH DOT;So;0;ON;;;;;N;WHITE UP POINTING TRIANGLE WITH DOT;;;;-25ED;UP-POINTING TRIANGLE WITH LEFT HALF BLACK;So;0;ON;;;;;N;UP POINTING TRIANGLE WITH LEFT HALF BLACK;;;;-25EE;UP-POINTING TRIANGLE WITH RIGHT HALF BLACK;So;0;ON;;;;;N;UP POINTING TRIANGLE WITH RIGHT HALF BLACK;;;;-25EF;LARGE CIRCLE;So;0;ON;;;;;N;;;;;-25F0;WHITE SQUARE WITH UPPER LEFT QUADRANT;So;0;ON;;;;;N;;;;;-25F1;WHITE SQUARE WITH LOWER LEFT QUADRANT;So;0;ON;;;;;N;;;;;-25F2;WHITE SQUARE WITH LOWER RIGHT QUADRANT;So;0;ON;;;;;N;;;;;-25F3;WHITE SQUARE WITH UPPER RIGHT QUADRANT;So;0;ON;;;;;N;;;;;-25F4;WHITE CIRCLE WITH UPPER LEFT QUADRANT;So;0;ON;;;;;N;;;;;-25F5;WHITE CIRCLE WITH LOWER LEFT QUADRANT;So;0;ON;;;;;N;;;;;-25F6;WHITE CIRCLE WITH LOWER RIGHT QUADRANT;So;0;ON;;;;;N;;;;;-25F7;WHITE CIRCLE WITH UPPER RIGHT QUADRANT;So;0;ON;;;;;N;;;;;-25F8;UPPER LEFT TRIANGLE;Sm;0;ON;;;;;N;;;;;-25F9;UPPER RIGHT TRIANGLE;Sm;0;ON;;;;;N;;;;;-25FA;LOWER LEFT TRIANGLE;Sm;0;ON;;;;;N;;;;;-25FB;WHITE MEDIUM SQUARE;Sm;0;ON;;;;;N;;;;;-25FC;BLACK MEDIUM SQUARE;Sm;0;ON;;;;;N;;;;;-25FD;WHITE MEDIUM SMALL SQUARE;Sm;0;ON;;;;;N;;;;;-25FE;BLACK MEDIUM SMALL SQUARE;Sm;0;ON;;;;;N;;;;;-25FF;LOWER RIGHT TRIANGLE;Sm;0;ON;;;;;N;;;;;-2600;BLACK SUN WITH RAYS;So;0;ON;;;;;N;;;;;-2601;CLOUD;So;0;ON;;;;;N;;;;;-2602;UMBRELLA;So;0;ON;;;;;N;;;;;-2603;SNOWMAN;So;0;ON;;;;;N;;;;;-2604;COMET;So;0;ON;;;;;N;;;;;-2605;BLACK STAR;So;0;ON;;;;;N;;;;;-2606;WHITE STAR;So;0;ON;;;;;N;;;;;-2607;LIGHTNING;So;0;ON;;;;;N;;;;;-2608;THUNDERSTORM;So;0;ON;;;;;N;;;;;-2609;SUN;So;0;ON;;;;;N;;;;;-260A;ASCENDING NODE;So;0;ON;;;;;N;;;;;-260B;DESCENDING NODE;So;0;ON;;;;;N;;;;;-260C;CONJUNCTION;So;0;ON;;;;;N;;;;;-260D;OPPOSITION;So;0;ON;;;;;N;;;;;-260E;BLACK TELEPHONE;So;0;ON;;;;;N;;;;;-260F;WHITE TELEPHONE;So;0;ON;;;;;N;;;;;-2610;BALLOT BOX;So;0;ON;;;;;N;;;;;-2611;BALLOT BOX WITH CHECK;So;0;ON;;;;;N;;;;;-2612;BALLOT BOX WITH X;So;0;ON;;;;;N;;;;;-2613;SALTIRE;So;0;ON;;;;;N;;;;;-2614;UMBRELLA WITH RAIN DROPS;So;0;ON;;;;;N;;;;;-2615;HOT BEVERAGE;So;0;ON;;;;;N;;;;;-2616;WHITE SHOGI PIECE;So;0;ON;;;;;N;;;;;-2617;BLACK SHOGI PIECE;So;0;ON;;;;;N;;;;;-2618;SHAMROCK;So;0;ON;;;;;N;;;;;-2619;REVERSED ROTATED FLORAL HEART BULLET;So;0;ON;;;;;N;;;;;-261A;BLACK LEFT POINTING INDEX;So;0;ON;;;;;N;;;;;-261B;BLACK RIGHT POINTING INDEX;So;0;ON;;;;;N;;;;;-261C;WHITE LEFT POINTING INDEX;So;0;ON;;;;;N;;;;;-261D;WHITE UP POINTING INDEX;So;0;ON;;;;;N;;;;;-261E;WHITE RIGHT POINTING INDEX;So;0;ON;;;;;N;;;;;-261F;WHITE DOWN POINTING INDEX;So;0;ON;;;;;N;;;;;-2620;SKULL AND CROSSBONES;So;0;ON;;;;;N;;;;;-2621;CAUTION SIGN;So;0;ON;;;;;N;;;;;-2622;RADIOACTIVE SIGN;So;0;ON;;;;;N;;;;;-2623;BIOHAZARD SIGN;So;0;ON;;;;;N;;;;;-2624;CADUCEUS;So;0;ON;;;;;N;;;;;-2625;ANKH;So;0;ON;;;;;N;;;;;-2626;ORTHODOX CROSS;So;0;ON;;;;;N;;;;;-2627;CHI RHO;So;0;ON;;;;;N;;;;;-2628;CROSS OF LORRAINE;So;0;ON;;;;;N;;;;;-2629;CROSS OF JERUSALEM;So;0;ON;;;;;N;;;;;-262A;STAR AND CRESCENT;So;0;ON;;;;;N;;;;;-262B;FARSI SYMBOL;So;0;ON;;;;;N;SYMBOL OF IRAN;;;;-262C;ADI SHAKTI;So;0;ON;;;;;N;;;;;-262D;HAMMER AND SICKLE;So;0;ON;;;;;N;;;;;-262E;PEACE SYMBOL;So;0;ON;;;;;N;;;;;-262F;YIN YANG;So;0;ON;;;;;N;;;;;-2630;TRIGRAM FOR HEAVEN;So;0;ON;;;;;N;;;;;-2631;TRIGRAM FOR LAKE;So;0;ON;;;;;N;;;;;-2632;TRIGRAM FOR FIRE;So;0;ON;;;;;N;;;;;-2633;TRIGRAM FOR THUNDER;So;0;ON;;;;;N;;;;;-2634;TRIGRAM FOR WIND;So;0;ON;;;;;N;;;;;-2635;TRIGRAM FOR WATER;So;0;ON;;;;;N;;;;;-2636;TRIGRAM FOR MOUNTAIN;So;0;ON;;;;;N;;;;;-2637;TRIGRAM FOR EARTH;So;0;ON;;;;;N;;;;;-2638;WHEEL OF DHARMA;So;0;ON;;;;;N;;;;;-2639;WHITE FROWNING FACE;So;0;ON;;;;;N;;;;;-263A;WHITE SMILING FACE;So;0;ON;;;;;N;;;;;-263B;BLACK SMILING FACE;So;0;ON;;;;;N;;;;;-263C;WHITE SUN WITH RAYS;So;0;ON;;;;;N;;;;;-263D;FIRST QUARTER MOON;So;0;ON;;;;;N;;;;;-263E;LAST QUARTER MOON;So;0;ON;;;;;N;;;;;-263F;MERCURY;So;0;ON;;;;;N;;;;;-2640;FEMALE SIGN;So;0;ON;;;;;N;;;;;-2641;EARTH;So;0;ON;;;;;N;;;;;-2642;MALE SIGN;So;0;ON;;;;;N;;;;;-2643;JUPITER;So;0;ON;;;;;N;;;;;-2644;SATURN;So;0;ON;;;;;N;;;;;-2645;URANUS;So;0;ON;;;;;N;;;;;-2646;NEPTUNE;So;0;ON;;;;;N;;;;;-2647;PLUTO;So;0;ON;;;;;N;;;;;-2648;ARIES;So;0;ON;;;;;N;;;;;-2649;TAURUS;So;0;ON;;;;;N;;;;;-264A;GEMINI;So;0;ON;;;;;N;;;;;-264B;CANCER;So;0;ON;;;;;N;;;;;-264C;LEO;So;0;ON;;;;;N;;;;;-264D;VIRGO;So;0;ON;;;;;N;;;;;-264E;LIBRA;So;0;ON;;;;;N;;;;;-264F;SCORPIUS;So;0;ON;;;;;N;;;;;-2650;SAGITTARIUS;So;0;ON;;;;;N;;;;;-2651;CAPRICORN;So;0;ON;;;;;N;;;;;-2652;AQUARIUS;So;0;ON;;;;;N;;;;;-2653;PISCES;So;0;ON;;;;;N;;;;;-2654;WHITE CHESS KING;So;0;ON;;;;;N;;;;;-2655;WHITE CHESS QUEEN;So;0;ON;;;;;N;;;;;-2656;WHITE CHESS ROOK;So;0;ON;;;;;N;;;;;-2657;WHITE CHESS BISHOP;So;0;ON;;;;;N;;;;;-2658;WHITE CHESS KNIGHT;So;0;ON;;;;;N;;;;;-2659;WHITE CHESS PAWN;So;0;ON;;;;;N;;;;;-265A;BLACK CHESS KING;So;0;ON;;;;;N;;;;;-265B;BLACK CHESS QUEEN;So;0;ON;;;;;N;;;;;-265C;BLACK CHESS ROOK;So;0;ON;;;;;N;;;;;-265D;BLACK CHESS BISHOP;So;0;ON;;;;;N;;;;;-265E;BLACK CHESS KNIGHT;So;0;ON;;;;;N;;;;;-265F;BLACK CHESS PAWN;So;0;ON;;;;;N;;;;;-2660;BLACK SPADE SUIT;So;0;ON;;;;;N;;;;;-2661;WHITE HEART SUIT;So;0;ON;;;;;N;;;;;-2662;WHITE DIAMOND SUIT;So;0;ON;;;;;N;;;;;-2663;BLACK CLUB SUIT;So;0;ON;;;;;N;;;;;-2664;WHITE SPADE SUIT;So;0;ON;;;;;N;;;;;-2665;BLACK HEART SUIT;So;0;ON;;;;;N;;;;;-2666;BLACK DIAMOND SUIT;So;0;ON;;;;;N;;;;;-2667;WHITE CLUB SUIT;So;0;ON;;;;;N;;;;;-2668;HOT SPRINGS;So;0;ON;;;;;N;;;;;-2669;QUARTER NOTE;So;0;ON;;;;;N;;;;;-266A;EIGHTH NOTE;So;0;ON;;;;;N;;;;;-266B;BEAMED EIGHTH NOTES;So;0;ON;;;;;N;BARRED EIGHTH NOTES;;;;-266C;BEAMED SIXTEENTH NOTES;So;0;ON;;;;;N;BARRED SIXTEENTH NOTES;;;;-266D;MUSIC FLAT SIGN;So;0;ON;;;;;N;FLAT;;;;-266E;MUSIC NATURAL SIGN;So;0;ON;;;;;N;NATURAL;;;;-266F;MUSIC SHARP SIGN;Sm;0;ON;;;;;N;SHARP;;;;-2670;WEST SYRIAC CROSS;So;0;ON;;;;;N;;;;;-2671;EAST SYRIAC CROSS;So;0;ON;;;;;N;;;;;-2672;UNIVERSAL RECYCLING SYMBOL;So;0;ON;;;;;N;;;;;-2673;RECYCLING SYMBOL FOR TYPE-1 PLASTICS;So;0;ON;;;;;N;;pete;;;-2674;RECYCLING SYMBOL FOR TYPE-2 PLASTICS;So;0;ON;;;;;N;;hdpe;;;-2675;RECYCLING SYMBOL FOR TYPE-3 PLASTICS;So;0;ON;;;;;N;;pvc;;;-2676;RECYCLING SYMBOL FOR TYPE-4 PLASTICS;So;0;ON;;;;;N;;ldpe;;;-2677;RECYCLING SYMBOL FOR TYPE-5 PLASTICS;So;0;ON;;;;;N;;pp;;;-2678;RECYCLING SYMBOL FOR TYPE-6 PLASTICS;So;0;ON;;;;;N;;ps;;;-2679;RECYCLING SYMBOL FOR TYPE-7 PLASTICS;So;0;ON;;;;;N;;other;;;-267A;RECYCLING SYMBOL FOR GENERIC MATERIALS;So;0;ON;;;;;N;;;;;-267B;BLACK UNIVERSAL RECYCLING SYMBOL;So;0;ON;;;;;N;;;;;-267C;RECYCLED PAPER SYMBOL;So;0;ON;;;;;N;;;;;-267D;PARTIALLY-RECYCLED PAPER SYMBOL;So;0;ON;;;;;N;;;;;-267E;PERMANENT PAPER SIGN;So;0;ON;;;;;N;;;;;-267F;WHEELCHAIR SYMBOL;So;0;ON;;;;;N;;;;;-2680;DIE FACE-1;So;0;ON;;;;;N;;;;;-2681;DIE FACE-2;So;0;ON;;;;;N;;;;;-2682;DIE FACE-3;So;0;ON;;;;;N;;;;;-2683;DIE FACE-4;So;0;ON;;;;;N;;;;;-2684;DIE FACE-5;So;0;ON;;;;;N;;;;;-2685;DIE FACE-6;So;0;ON;;;;;N;;;;;-2686;WHITE CIRCLE WITH DOT RIGHT;So;0;ON;;;;;N;;;;;-2687;WHITE CIRCLE WITH TWO DOTS;So;0;ON;;;;;N;;;;;-2688;BLACK CIRCLE WITH WHITE DOT RIGHT;So;0;ON;;;;;N;;;;;-2689;BLACK CIRCLE WITH TWO WHITE DOTS;So;0;ON;;;;;N;;;;;-268A;MONOGRAM FOR YANG;So;0;ON;;;;;N;;;;;-268B;MONOGRAM FOR YIN;So;0;ON;;;;;N;;;;;-268C;DIGRAM FOR GREATER YANG;So;0;ON;;;;;N;;;;;-268D;DIGRAM FOR LESSER YIN;So;0;ON;;;;;N;;;;;-268E;DIGRAM FOR LESSER YANG;So;0;ON;;;;;N;;;;;-268F;DIGRAM FOR GREATER YIN;So;0;ON;;;;;N;;;;;-2690;WHITE FLAG;So;0;ON;;;;;N;;;;;-2691;BLACK FLAG;So;0;ON;;;;;N;;;;;-2692;HAMMER AND PICK;So;0;ON;;;;;N;;;;;-2693;ANCHOR;So;0;ON;;;;;N;;;;;-2694;CROSSED SWORDS;So;0;ON;;;;;N;;;;;-2695;STAFF OF AESCULAPIUS;So;0;ON;;;;;N;;;;;-2696;SCALES;So;0;ON;;;;;N;;;;;-2697;ALEMBIC;So;0;ON;;;;;N;;;;;-2698;FLOWER;So;0;ON;;;;;N;;;;;-2699;GEAR;So;0;ON;;;;;N;;;;;-269A;STAFF OF HERMES;So;0;ON;;;;;N;;;;;-269B;ATOM SYMBOL;So;0;ON;;;;;N;;;;;-269C;FLEUR-DE-LIS;So;0;ON;;;;;N;;;;;-26A0;WARNING SIGN;So;0;ON;;;;;N;;;;;-26A1;HIGH VOLTAGE SIGN;So;0;ON;;;;;N;;;;;-26A2;DOUBLED FEMALE SIGN;So;0;ON;;;;;N;;;;;-26A3;DOUBLED MALE SIGN;So;0;ON;;;;;N;;;;;-26A4;INTERLOCKED FEMALE AND MALE SIGN;So;0;ON;;;;;N;;;;;-26A5;MALE AND FEMALE SIGN;So;0;ON;;;;;N;;;;;-26A6;MALE WITH STROKE SIGN;So;0;ON;;;;;N;;;;;-26A7;MALE WITH STROKE AND MALE AND FEMALE SIGN;So;0;ON;;;;;N;;;;;-26A8;VERTICAL MALE WITH STROKE SIGN;So;0;ON;;;;;N;;;;;-26A9;HORIZONTAL MALE WITH STROKE SIGN;So;0;ON;;;;;N;;;;;-26AA;MEDIUM WHITE CIRCLE;So;0;ON;;;;;N;;;;;-26AB;MEDIUM BLACK CIRCLE;So;0;ON;;;;;N;;;;;-26AC;MEDIUM SMALL WHITE CIRCLE;So;0;L;;;;;N;;;;;-26AD;MARRIAGE SYMBOL;So;0;ON;;;;;N;;;;;-26AE;DIVORCE SYMBOL;So;0;ON;;;;;N;;;;;-26AF;UNMARRIED PARTNERSHIP SYMBOL;So;0;ON;;;;;N;;;;;-26B0;COFFIN;So;0;ON;;;;;N;;;;;-26B1;FUNERAL URN;So;0;ON;;;;;N;;;;;-26B2;NEUTER;So;0;ON;;;;;N;;;;;-2701;UPPER BLADE SCISSORS;So;0;ON;;;;;N;;;;;-2702;BLACK SCISSORS;So;0;ON;;;;;N;;;;;-2703;LOWER BLADE SCISSORS;So;0;ON;;;;;N;;;;;-2704;WHITE SCISSORS;So;0;ON;;;;;N;;;;;-2706;TELEPHONE LOCATION SIGN;So;0;ON;;;;;N;;;;;-2707;TAPE DRIVE;So;0;ON;;;;;N;;;;;-2708;AIRPLANE;So;0;ON;;;;;N;;;;;-2709;ENVELOPE;So;0;ON;;;;;N;;;;;-270C;VICTORY HAND;So;0;ON;;;;;N;;;;;-270D;WRITING HAND;So;0;ON;;;;;N;;;;;-270E;LOWER RIGHT PENCIL;So;0;ON;;;;;N;;;;;-270F;PENCIL;So;0;ON;;;;;N;;;;;-2710;UPPER RIGHT PENCIL;So;0;ON;;;;;N;;;;;-2711;WHITE NIB;So;0;ON;;;;;N;;;;;-2712;BLACK NIB;So;0;ON;;;;;N;;;;;-2713;CHECK MARK;So;0;ON;;;;;N;;;;;-2714;HEAVY CHECK MARK;So;0;ON;;;;;N;;;;;-2715;MULTIPLICATION X;So;0;ON;;;;;N;;;;;-2716;HEAVY MULTIPLICATION X;So;0;ON;;;;;N;;;;;-2717;BALLOT X;So;0;ON;;;;;N;;;;;-2718;HEAVY BALLOT X;So;0;ON;;;;;N;;;;;-2719;OUTLINED GREEK CROSS;So;0;ON;;;;;N;;;;;-271A;HEAVY GREEK CROSS;So;0;ON;;;;;N;;;;;-271B;OPEN CENTRE CROSS;So;0;ON;;;;;N;OPEN CENTER CROSS;;;;-271C;HEAVY OPEN CENTRE CROSS;So;0;ON;;;;;N;HEAVY OPEN CENTER CROSS;;;;-271D;LATIN CROSS;So;0;ON;;;;;N;;;;;-271E;SHADOWED WHITE LATIN CROSS;So;0;ON;;;;;N;;;;;-271F;OUTLINED LATIN CROSS;So;0;ON;;;;;N;;;;;-2720;MALTESE CROSS;So;0;ON;;;;;N;;;;;-2721;STAR OF DAVID;So;0;ON;;;;;N;;;;;-2722;FOUR TEARDROP-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;-2723;FOUR BALLOON-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;-2724;HEAVY FOUR BALLOON-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;-2725;FOUR CLUB-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;-2726;BLACK FOUR POINTED STAR;So;0;ON;;;;;N;;;;;-2727;WHITE FOUR POINTED STAR;So;0;ON;;;;;N;;;;;-2729;STRESS OUTLINED WHITE STAR;So;0;ON;;;;;N;;;;;-272A;CIRCLED WHITE STAR;So;0;ON;;;;;N;;;;;-272B;OPEN CENTRE BLACK STAR;So;0;ON;;;;;N;OPEN CENTER BLACK STAR;;;;-272C;BLACK CENTRE WHITE STAR;So;0;ON;;;;;N;BLACK CENTER WHITE STAR;;;;-272D;OUTLINED BLACK STAR;So;0;ON;;;;;N;;;;;-272E;HEAVY OUTLINED BLACK STAR;So;0;ON;;;;;N;;;;;-272F;PINWHEEL STAR;So;0;ON;;;;;N;;;;;-2730;SHADOWED WHITE STAR;So;0;ON;;;;;N;;;;;-2731;HEAVY ASTERISK;So;0;ON;;;;;N;;;;;-2732;OPEN CENTRE ASTERISK;So;0;ON;;;;;N;OPEN CENTER ASTERISK;;;;-2733;EIGHT SPOKED ASTERISK;So;0;ON;;;;;N;;;;;-2734;EIGHT POINTED BLACK STAR;So;0;ON;;;;;N;;;;;-2735;EIGHT POINTED PINWHEEL STAR;So;0;ON;;;;;N;;;;;-2736;SIX POINTED BLACK STAR;So;0;ON;;;;;N;;;;;-2737;EIGHT POINTED RECTILINEAR BLACK STAR;So;0;ON;;;;;N;;;;;-2738;HEAVY EIGHT POINTED RECTILINEAR BLACK STAR;So;0;ON;;;;;N;;;;;-2739;TWELVE POINTED BLACK STAR;So;0;ON;;;;;N;;;;;-273A;SIXTEEN POINTED ASTERISK;So;0;ON;;;;;N;;;;;-273B;TEARDROP-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;-273C;OPEN CENTRE TEARDROP-SPOKED ASTERISK;So;0;ON;;;;;N;OPEN CENTER TEARDROP-SPOKED ASTERISK;;;;-273D;HEAVY TEARDROP-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;-273E;SIX PETALLED BLACK AND WHITE FLORETTE;So;0;ON;;;;;N;;;;;-273F;BLACK FLORETTE;So;0;ON;;;;;N;;;;;-2740;WHITE FLORETTE;So;0;ON;;;;;N;;;;;-2741;EIGHT PETALLED OUTLINED BLACK FLORETTE;So;0;ON;;;;;N;;;;;-2742;CIRCLED OPEN CENTRE EIGHT POINTED STAR;So;0;ON;;;;;N;CIRCLED OPEN CENTER EIGHT POINTED STAR;;;;-2743;HEAVY TEARDROP-SPOKED PINWHEEL ASTERISK;So;0;ON;;;;;N;;;;;-2744;SNOWFLAKE;So;0;ON;;;;;N;;;;;-2745;TIGHT TRIFOLIATE SNOWFLAKE;So;0;ON;;;;;N;;;;;-2746;HEAVY CHEVRON SNOWFLAKE;So;0;ON;;;;;N;;;;;-2747;SPARKLE;So;0;ON;;;;;N;;;;;-2748;HEAVY SPARKLE;So;0;ON;;;;;N;;;;;-2749;BALLOON-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;-274A;EIGHT TEARDROP-SPOKED PROPELLER ASTERISK;So;0;ON;;;;;N;;;;;-274B;HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK;So;0;ON;;;;;N;;;;;-274D;SHADOWED WHITE CIRCLE;So;0;ON;;;;;N;;;;;-274F;LOWER RIGHT DROP-SHADOWED WHITE SQUARE;So;0;ON;;;;;N;;;;;-2750;UPPER RIGHT DROP-SHADOWED WHITE SQUARE;So;0;ON;;;;;N;;;;;-2751;LOWER RIGHT SHADOWED WHITE SQUARE;So;0;ON;;;;;N;;;;;-2752;UPPER RIGHT SHADOWED WHITE SQUARE;So;0;ON;;;;;N;;;;;-2756;BLACK DIAMOND MINUS WHITE X;So;0;ON;;;;;N;;;;;-2758;LIGHT VERTICAL BAR;So;0;ON;;;;;N;;;;;-2759;MEDIUM VERTICAL BAR;So;0;ON;;;;;N;;;;;-275A;HEAVY VERTICAL BAR;So;0;ON;;;;;N;;;;;-275B;HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;-275C;HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;-275D;HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;-275E;HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;-2761;CURVED STEM PARAGRAPH SIGN ORNAMENT;So;0;ON;;;;;N;;;;;-2762;HEAVY EXCLAMATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;-2763;HEAVY HEART EXCLAMATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;-2764;HEAVY BLACK HEART;So;0;ON;;;;;N;;;;;-2765;ROTATED HEAVY BLACK HEART BULLET;So;0;ON;;;;;N;;;;;-2766;FLORAL HEART;So;0;ON;;;;;N;;;;;-2767;ROTATED FLORAL HEART BULLET;So;0;ON;;;;;N;;;;;-2768;MEDIUM LEFT PARENTHESIS ORNAMENT;Ps;0;ON;;;;;Y;;;;;-2769;MEDIUM RIGHT PARENTHESIS ORNAMENT;Pe;0;ON;;;;;Y;;;;;-276A;MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT;Ps;0;ON;;;;;Y;;;;;-276B;MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT;Pe;0;ON;;;;;Y;;;;;-276C;MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT;Ps;0;ON;;;;;Y;;;;;-276D;MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT;Pe;0;ON;;;;;Y;;;;;-276E;HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT;Ps;0;ON;;;;;Y;;;;;-276F;HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT;Pe;0;ON;;;;;Y;;;;;-2770;HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT;Ps;0;ON;;;;;Y;;;;;-2771;HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT;Pe;0;ON;;;;;Y;;;;;-2772;LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT;Ps;0;ON;;;;;Y;;;;;-2773;LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT;Pe;0;ON;;;;;Y;;;;;-2774;MEDIUM LEFT CURLY BRACKET ORNAMENT;Ps;0;ON;;;;;Y;;;;;-2775;MEDIUM RIGHT CURLY BRACKET ORNAMENT;Pe;0;ON;;;;;Y;;;;;-2776;DINGBAT NEGATIVE CIRCLED DIGIT ONE;No;0;ON;;;1;1;N;INVERSE CIRCLED DIGIT ONE;;;;-2777;DINGBAT NEGATIVE CIRCLED DIGIT TWO;No;0;ON;;;2;2;N;INVERSE CIRCLED DIGIT TWO;;;;-2778;DINGBAT NEGATIVE CIRCLED DIGIT THREE;No;0;ON;;;3;3;N;INVERSE CIRCLED DIGIT THREE;;;;-2779;DINGBAT NEGATIVE CIRCLED DIGIT FOUR;No;0;ON;;;4;4;N;INVERSE CIRCLED DIGIT FOUR;;;;-277A;DINGBAT NEGATIVE CIRCLED DIGIT FIVE;No;0;ON;;;5;5;N;INVERSE CIRCLED DIGIT FIVE;;;;-277B;DINGBAT NEGATIVE CIRCLED DIGIT SIX;No;0;ON;;;6;6;N;INVERSE CIRCLED DIGIT SIX;;;;-277C;DINGBAT NEGATIVE CIRCLED DIGIT SEVEN;No;0;ON;;;7;7;N;INVERSE CIRCLED DIGIT SEVEN;;;;-277D;DINGBAT NEGATIVE CIRCLED DIGIT EIGHT;No;0;ON;;;8;8;N;INVERSE CIRCLED DIGIT EIGHT;;;;-277E;DINGBAT NEGATIVE CIRCLED DIGIT NINE;No;0;ON;;;9;9;N;INVERSE CIRCLED DIGIT NINE;;;;-277F;DINGBAT NEGATIVE CIRCLED NUMBER TEN;No;0;ON;;;;10;N;INVERSE CIRCLED NUMBER TEN;;;;-2780;DINGBAT CIRCLED SANS-SERIF DIGIT ONE;No;0;ON;;;1;1;N;CIRCLED SANS-SERIF DIGIT ONE;;;;-2781;DINGBAT CIRCLED SANS-SERIF DIGIT TWO;No;0;ON;;;2;2;N;CIRCLED SANS-SERIF DIGIT TWO;;;;-2782;DINGBAT CIRCLED SANS-SERIF DIGIT THREE;No;0;ON;;;3;3;N;CIRCLED SANS-SERIF DIGIT THREE;;;;-2783;DINGBAT CIRCLED SANS-SERIF DIGIT FOUR;No;0;ON;;;4;4;N;CIRCLED SANS-SERIF DIGIT FOUR;;;;-2784;DINGBAT CIRCLED SANS-SERIF DIGIT FIVE;No;0;ON;;;5;5;N;CIRCLED SANS-SERIF DIGIT FIVE;;;;-2785;DINGBAT CIRCLED SANS-SERIF DIGIT SIX;No;0;ON;;;6;6;N;CIRCLED SANS-SERIF DIGIT SIX;;;;-2786;DINGBAT CIRCLED SANS-SERIF DIGIT SEVEN;No;0;ON;;;7;7;N;CIRCLED SANS-SERIF DIGIT SEVEN;;;;-2787;DINGBAT CIRCLED SANS-SERIF DIGIT EIGHT;No;0;ON;;;8;8;N;CIRCLED SANS-SERIF DIGIT EIGHT;;;;-2788;DINGBAT CIRCLED SANS-SERIF DIGIT NINE;No;0;ON;;;9;9;N;CIRCLED SANS-SERIF DIGIT NINE;;;;-2789;DINGBAT CIRCLED SANS-SERIF NUMBER TEN;No;0;ON;;;;10;N;CIRCLED SANS-SERIF NUMBER TEN;;;;-278A;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ONE;No;0;ON;;;1;1;N;INVERSE CIRCLED SANS-SERIF DIGIT ONE;;;;-278B;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT TWO;No;0;ON;;;2;2;N;INVERSE CIRCLED SANS-SERIF DIGIT TWO;;;;-278C;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT THREE;No;0;ON;;;3;3;N;INVERSE CIRCLED SANS-SERIF DIGIT THREE;;;;-278D;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FOUR;No;0;ON;;;4;4;N;INVERSE CIRCLED SANS-SERIF DIGIT FOUR;;;;-278E;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FIVE;No;0;ON;;;5;5;N;INVERSE CIRCLED SANS-SERIF DIGIT FIVE;;;;-278F;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SIX;No;0;ON;;;6;6;N;INVERSE CIRCLED SANS-SERIF DIGIT SIX;;;;-2790;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SEVEN;No;0;ON;;;7;7;N;INVERSE CIRCLED SANS-SERIF DIGIT SEVEN;;;;-2791;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT EIGHT;No;0;ON;;;8;8;N;INVERSE CIRCLED SANS-SERIF DIGIT EIGHT;;;;-2792;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT NINE;No;0;ON;;;9;9;N;INVERSE CIRCLED SANS-SERIF DIGIT NINE;;;;-2793;DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN;No;0;ON;;;;10;N;INVERSE CIRCLED SANS-SERIF NUMBER TEN;;;;-2794;HEAVY WIDE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY WIDE-HEADED RIGHT ARROW;;;;-2798;HEAVY SOUTH EAST ARROW;So;0;ON;;;;;N;HEAVY LOWER RIGHT ARROW;;;;-2799;HEAVY RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY RIGHT ARROW;;;;-279A;HEAVY NORTH EAST ARROW;So;0;ON;;;;;N;HEAVY UPPER RIGHT ARROW;;;;-279B;DRAFTING POINT RIGHTWARDS ARROW;So;0;ON;;;;;N;DRAFTING POINT RIGHT ARROW;;;;-279C;HEAVY ROUND-TIPPED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY ROUND-TIPPED RIGHT ARROW;;;;-279D;TRIANGLE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;TRIANGLE-HEADED RIGHT ARROW;;;;-279E;HEAVY TRIANGLE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY TRIANGLE-HEADED RIGHT ARROW;;;;-279F;DASHED TRIANGLE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;DASHED TRIANGLE-HEADED RIGHT ARROW;;;;-27A0;HEAVY DASHED TRIANGLE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY DASHED TRIANGLE-HEADED RIGHT ARROW;;;;-27A1;BLACK RIGHTWARDS ARROW;So;0;ON;;;;;N;BLACK RIGHT ARROW;;;;-27A2;THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD;So;0;ON;;;;;N;THREE-D TOP-LIGHTED RIGHT ARROWHEAD;;;;-27A3;THREE-D BOTTOM-LIGHTED RIGHTWARDS ARROWHEAD;So;0;ON;;;;;N;THREE-D BOTTOM-LIGHTED RIGHT ARROWHEAD;;;;-27A4;BLACK RIGHTWARDS ARROWHEAD;So;0;ON;;;;;N;BLACK RIGHT ARROWHEAD;;;;-27A5;HEAVY BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY BLACK CURVED DOWN AND RIGHT ARROW;;;;-27A6;HEAVY BLACK CURVED UPWARDS AND RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY BLACK CURVED UP AND RIGHT ARROW;;;;-27A7;SQUAT BLACK RIGHTWARDS ARROW;So;0;ON;;;;;N;SQUAT BLACK RIGHT ARROW;;;;-27A8;HEAVY CONCAVE-POINTED BLACK RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY CONCAVE-POINTED BLACK RIGHT ARROW;;;;-27A9;RIGHT-SHADED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;RIGHT-SHADED WHITE RIGHT ARROW;;;;-27AA;LEFT-SHADED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;LEFT-SHADED WHITE RIGHT ARROW;;;;-27AB;BACK-TILTED SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;BACK-TILTED SHADOWED WHITE RIGHT ARROW;;;;-27AC;FRONT-TILTED SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;FRONT-TILTED SHADOWED WHITE RIGHT ARROW;;;;-27AD;HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY LOWER RIGHT-SHADOWED WHITE RIGHT ARROW;;;;-27AE;HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY UPPER RIGHT-SHADOWED WHITE RIGHT ARROW;;;;-27AF;NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHT ARROW;;;;-27B1;NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHT ARROW;;;;-27B2;CIRCLED HEAVY WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;CIRCLED HEAVY WHITE RIGHT ARROW;;;;-27B3;WHITE-FEATHERED RIGHTWARDS ARROW;So;0;ON;;;;;N;WHITE-FEATHERED RIGHT ARROW;;;;-27B4;BLACK-FEATHERED SOUTH EAST ARROW;So;0;ON;;;;;N;BLACK-FEATHERED LOWER RIGHT ARROW;;;;-27B5;BLACK-FEATHERED RIGHTWARDS ARROW;So;0;ON;;;;;N;BLACK-FEATHERED RIGHT ARROW;;;;-27B6;BLACK-FEATHERED NORTH EAST ARROW;So;0;ON;;;;;N;BLACK-FEATHERED UPPER RIGHT ARROW;;;;-27B7;HEAVY BLACK-FEATHERED SOUTH EAST ARROW;So;0;ON;;;;;N;HEAVY BLACK-FEATHERED LOWER RIGHT ARROW;;;;-27B8;HEAVY BLACK-FEATHERED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY BLACK-FEATHERED RIGHT ARROW;;;;-27B9;HEAVY BLACK-FEATHERED NORTH EAST ARROW;So;0;ON;;;;;N;HEAVY BLACK-FEATHERED UPPER RIGHT ARROW;;;;-27BA;TEARDROP-BARBED RIGHTWARDS ARROW;So;0;ON;;;;;N;TEARDROP-BARBED RIGHT ARROW;;;;-27BB;HEAVY TEARDROP-SHANKED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY TEARDROP-SHANKED RIGHT ARROW;;;;-27BC;WEDGE-TAILED RIGHTWARDS ARROW;So;0;ON;;;;;N;WEDGE-TAILED RIGHT ARROW;;;;-27BD;HEAVY WEDGE-TAILED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY WEDGE-TAILED RIGHT ARROW;;;;-27BE;OPEN-OUTLINED RIGHTWARDS ARROW;So;0;ON;;;;;N;OPEN-OUTLINED RIGHT ARROW;;;;-27C0;THREE DIMENSIONAL ANGLE;Sm;0;ON;;;;;Y;;;;;-27C1;WHITE TRIANGLE CONTAINING SMALL WHITE TRIANGLE;Sm;0;ON;;;;;N;;;;;-27C2;PERPENDICULAR;Sm;0;ON;;;;;N;;;;;-27C3;OPEN SUBSET;Sm;0;ON;;;;;Y;;;;;-27C4;OPEN SUPERSET;Sm;0;ON;;;;;Y;;;;;-27C5;LEFT S-SHAPED BAG DELIMITER;Ps;0;ON;;;;;Y;;;;;-27C6;RIGHT S-SHAPED BAG DELIMITER;Pe;0;ON;;;;;Y;;;;;-27C7;OR WITH DOT INSIDE;Sm;0;ON;;;;;N;;;;;-27C8;REVERSE SOLIDUS PRECEDING SUBSET;Sm;0;ON;;;;;N;;;;;-27C9;SUPERSET PRECEDING SOLIDUS;Sm;0;ON;;;;;N;;;;;-27CA;VERTICAL BAR WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;;-27D0;WHITE DIAMOND WITH CENTRED DOT;Sm;0;ON;;;;;N;;;;;-27D1;AND WITH DOT;Sm;0;ON;;;;;N;;;;;-27D2;ELEMENT OF OPENING UPWARDS;Sm;0;ON;;;;;N;;;;;-27D3;LOWER RIGHT CORNER WITH DOT;Sm;0;ON;;;;;Y;;;;;-27D4;UPPER LEFT CORNER WITH DOT;Sm;0;ON;;;;;Y;;;;;-27D5;LEFT OUTER JOIN;Sm;0;ON;;;;;Y;;;;;-27D6;RIGHT OUTER JOIN;Sm;0;ON;;;;;Y;;;;;-27D7;FULL OUTER JOIN;Sm;0;ON;;;;;N;;;;;-27D8;LARGE UP TACK;Sm;0;ON;;;;;N;;;;;-27D9;LARGE DOWN TACK;Sm;0;ON;;;;;N;;;;;-27DA;LEFT AND RIGHT DOUBLE TURNSTILE;Sm;0;ON;;;;;N;;;;;-27DB;LEFT AND RIGHT TACK;Sm;0;ON;;;;;N;;;;;-27DC;LEFT MULTIMAP;Sm;0;ON;;;;;Y;;;;;-27DD;LONG RIGHT TACK;Sm;0;ON;;;;;Y;;;;;-27DE;LONG LEFT TACK;Sm;0;ON;;;;;Y;;;;;-27DF;UP TACK WITH CIRCLE ABOVE;Sm;0;ON;;;;;N;;;;;-27E0;LOZENGE DIVIDED BY HORIZONTAL RULE;Sm;0;ON;;;;;N;;;;;-27E1;WHITE CONCAVE-SIDED DIAMOND;Sm;0;ON;;;;;N;;;;;-27E2;WHITE CONCAVE-SIDED DIAMOND WITH LEFTWARDS TICK;Sm;0;ON;;;;;Y;;;;;-27E3;WHITE CONCAVE-SIDED DIAMOND WITH RIGHTWARDS TICK;Sm;0;ON;;;;;Y;;;;;-27E4;WHITE SQUARE WITH LEFTWARDS TICK;Sm;0;ON;;;;;Y;;;;;-27E5;WHITE SQUARE WITH RIGHTWARDS TICK;Sm;0;ON;;;;;Y;;;;;-27E6;MATHEMATICAL LEFT WHITE SQUARE BRACKET;Ps;0;ON;;;;;Y;;;;;-27E7;MATHEMATICAL RIGHT WHITE SQUARE BRACKET;Pe;0;ON;;;;;Y;;;;;-27E8;MATHEMATICAL LEFT ANGLE BRACKET;Ps;0;ON;;;;;Y;;;;;-27E9;MATHEMATICAL RIGHT ANGLE BRACKET;Pe;0;ON;;;;;Y;;;;;-27EA;MATHEMATICAL LEFT DOUBLE ANGLE BRACKET;Ps;0;ON;;;;;Y;;;;;-27EB;MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET;Pe;0;ON;;;;;Y;;;;;-27F0;UPWARDS QUADRUPLE ARROW;Sm;0;ON;;;;;N;;;;;-27F1;DOWNWARDS QUADRUPLE ARROW;Sm;0;ON;;;;;N;;;;;-27F2;ANTICLOCKWISE GAPPED CIRCLE ARROW;Sm;0;ON;;;;;N;;;;;-27F3;CLOCKWISE GAPPED CIRCLE ARROW;Sm;0;ON;;;;;N;;;;;-27F4;RIGHT ARROW WITH CIRCLED PLUS;Sm;0;ON;;;;;N;;;;;-27F5;LONG LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;;-27F6;LONG RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;;-27F7;LONG LEFT RIGHT ARROW;Sm;0;ON;;;;;N;;;;;-27F8;LONG LEFTWARDS DOUBLE ARROW;Sm;0;ON;;;;;N;;;;;-27F9;LONG RIGHTWARDS DOUBLE ARROW;Sm;0;ON;;;;;N;;;;;-27FA;LONG LEFT RIGHT DOUBLE ARROW;Sm;0;ON;;;;;N;;;;;-27FB;LONG LEFTWARDS ARROW FROM BAR;Sm;0;ON;;;;;N;;;;;-27FC;LONG RIGHTWARDS ARROW FROM BAR;Sm;0;ON;;;;;N;;;;;-27FD;LONG LEFTWARDS DOUBLE ARROW FROM BAR;Sm;0;ON;;;;;N;;;;;-27FE;LONG RIGHTWARDS DOUBLE ARROW FROM BAR;Sm;0;ON;;;;;N;;;;;-27FF;LONG RIGHTWARDS SQUIGGLE ARROW;Sm;0;ON;;;;;N;;;;;-2800;BRAILLE PATTERN BLANK;So;0;L;;;;;N;;;;;-2801;BRAILLE PATTERN DOTS-1;So;0;L;;;;;N;;;;;-2802;BRAILLE PATTERN DOTS-2;So;0;L;;;;;N;;;;;-2803;BRAILLE PATTERN DOTS-12;So;0;L;;;;;N;;;;;-2804;BRAILLE PATTERN DOTS-3;So;0;L;;;;;N;;;;;-2805;BRAILLE PATTERN DOTS-13;So;0;L;;;;;N;;;;;-2806;BRAILLE PATTERN DOTS-23;So;0;L;;;;;N;;;;;-2807;BRAILLE PATTERN DOTS-123;So;0;L;;;;;N;;;;;-2808;BRAILLE PATTERN DOTS-4;So;0;L;;;;;N;;;;;-2809;BRAILLE PATTERN DOTS-14;So;0;L;;;;;N;;;;;-280A;BRAILLE PATTERN DOTS-24;So;0;L;;;;;N;;;;;-280B;BRAILLE PATTERN DOTS-124;So;0;L;;;;;N;;;;;-280C;BRAILLE PATTERN DOTS-34;So;0;L;;;;;N;;;;;-280D;BRAILLE PATTERN DOTS-134;So;0;L;;;;;N;;;;;-280E;BRAILLE PATTERN DOTS-234;So;0;L;;;;;N;;;;;-280F;BRAILLE PATTERN DOTS-1234;So;0;L;;;;;N;;;;;-2810;BRAILLE PATTERN DOTS-5;So;0;L;;;;;N;;;;;-2811;BRAILLE PATTERN DOTS-15;So;0;L;;;;;N;;;;;-2812;BRAILLE PATTERN DOTS-25;So;0;L;;;;;N;;;;;-2813;BRAILLE PATTERN DOTS-125;So;0;L;;;;;N;;;;;-2814;BRAILLE PATTERN DOTS-35;So;0;L;;;;;N;;;;;-2815;BRAILLE PATTERN DOTS-135;So;0;L;;;;;N;;;;;-2816;BRAILLE PATTERN DOTS-235;So;0;L;;;;;N;;;;;-2817;BRAILLE PATTERN DOTS-1235;So;0;L;;;;;N;;;;;-2818;BRAILLE PATTERN DOTS-45;So;0;L;;;;;N;;;;;-2819;BRAILLE PATTERN DOTS-145;So;0;L;;;;;N;;;;;-281A;BRAILLE PATTERN DOTS-245;So;0;L;;;;;N;;;;;-281B;BRAILLE PATTERN DOTS-1245;So;0;L;;;;;N;;;;;-281C;BRAILLE PATTERN DOTS-345;So;0;L;;;;;N;;;;;-281D;BRAILLE PATTERN DOTS-1345;So;0;L;;;;;N;;;;;-281E;BRAILLE PATTERN DOTS-2345;So;0;L;;;;;N;;;;;-281F;BRAILLE PATTERN DOTS-12345;So;0;L;;;;;N;;;;;-2820;BRAILLE PATTERN DOTS-6;So;0;L;;;;;N;;;;;-2821;BRAILLE PATTERN DOTS-16;So;0;L;;;;;N;;;;;-2822;BRAILLE PATTERN DOTS-26;So;0;L;;;;;N;;;;;-2823;BRAILLE PATTERN DOTS-126;So;0;L;;;;;N;;;;;-2824;BRAILLE PATTERN DOTS-36;So;0;L;;;;;N;;;;;-2825;BRAILLE PATTERN DOTS-136;So;0;L;;;;;N;;;;;-2826;BRAILLE PATTERN DOTS-236;So;0;L;;;;;N;;;;;-2827;BRAILLE PATTERN DOTS-1236;So;0;L;;;;;N;;;;;-2828;BRAILLE PATTERN DOTS-46;So;0;L;;;;;N;;;;;-2829;BRAILLE PATTERN DOTS-146;So;0;L;;;;;N;;;;;-282A;BRAILLE PATTERN DOTS-246;So;0;L;;;;;N;;;;;-282B;BRAILLE PATTERN DOTS-1246;So;0;L;;;;;N;;;;;-282C;BRAILLE PATTERN DOTS-346;So;0;L;;;;;N;;;;;-282D;BRAILLE PATTERN DOTS-1346;So;0;L;;;;;N;;;;;-282E;BRAILLE PATTERN DOTS-2346;So;0;L;;;;;N;;;;;-282F;BRAILLE PATTERN DOTS-12346;So;0;L;;;;;N;;;;;-2830;BRAILLE PATTERN DOTS-56;So;0;L;;;;;N;;;;;-2831;BRAILLE PATTERN DOTS-156;So;0;L;;;;;N;;;;;-2832;BRAILLE PATTERN DOTS-256;So;0;L;;;;;N;;;;;-2833;BRAILLE PATTERN DOTS-1256;So;0;L;;;;;N;;;;;-2834;BRAILLE PATTERN DOTS-356;So;0;L;;;;;N;;;;;-2835;BRAILLE PATTERN DOTS-1356;So;0;L;;;;;N;;;;;-2836;BRAILLE PATTERN DOTS-2356;So;0;L;;;;;N;;;;;-2837;BRAILLE PATTERN DOTS-12356;So;0;L;;;;;N;;;;;-2838;BRAILLE PATTERN DOTS-456;So;0;L;;;;;N;;;;;-2839;BRAILLE PATTERN DOTS-1456;So;0;L;;;;;N;;;;;-283A;BRAILLE PATTERN DOTS-2456;So;0;L;;;;;N;;;;;-283B;BRAILLE PATTERN DOTS-12456;So;0;L;;;;;N;;;;;-283C;BRAILLE PATTERN DOTS-3456;So;0;L;;;;;N;;;;;-283D;BRAILLE PATTERN DOTS-13456;So;0;L;;;;;N;;;;;-283E;BRAILLE PATTERN DOTS-23456;So;0;L;;;;;N;;;;;-283F;BRAILLE PATTERN DOTS-123456;So;0;L;;;;;N;;;;;-2840;BRAILLE PATTERN DOTS-7;So;0;L;;;;;N;;;;;-2841;BRAILLE PATTERN DOTS-17;So;0;L;;;;;N;;;;;-2842;BRAILLE PATTERN DOTS-27;So;0;L;;;;;N;;;;;-2843;BRAILLE PATTERN DOTS-127;So;0;L;;;;;N;;;;;-2844;BRAILLE PATTERN DOTS-37;So;0;L;;;;;N;;;;;-2845;BRAILLE PATTERN DOTS-137;So;0;L;;;;;N;;;;;-2846;BRAILLE PATTERN DOTS-237;So;0;L;;;;;N;;;;;-2847;BRAILLE PATTERN DOTS-1237;So;0;L;;;;;N;;;;;-2848;BRAILLE PATTERN DOTS-47;So;0;L;;;;;N;;;;;-2849;BRAILLE PATTERN DOTS-147;So;0;L;;;;;N;;;;;-284A;BRAILLE PATTERN DOTS-247;So;0;L;;;;;N;;;;;-284B;BRAILLE PATTERN DOTS-1247;So;0;L;;;;;N;;;;;-284C;BRAILLE PATTERN DOTS-347;So;0;L;;;;;N;;;;;-284D;BRAILLE PATTERN DOTS-1347;So;0;L;;;;;N;;;;;-284E;BRAILLE PATTERN DOTS-2347;So;0;L;;;;;N;;;;;-284F;BRAILLE PATTERN DOTS-12347;So;0;L;;;;;N;;;;;-2850;BRAILLE PATTERN DOTS-57;So;0;L;;;;;N;;;;;-2851;BRAILLE PATTERN DOTS-157;So;0;L;;;;;N;;;;;-2852;BRAILLE PATTERN DOTS-257;So;0;L;;;;;N;;;;;-2853;BRAILLE PATTERN DOTS-1257;So;0;L;;;;;N;;;;;-2854;BRAILLE PATTERN DOTS-357;So;0;L;;;;;N;;;;;-2855;BRAILLE PATTERN DOTS-1357;So;0;L;;;;;N;;;;;-2856;BRAILLE PATTERN DOTS-2357;So;0;L;;;;;N;;;;;-2857;BRAILLE PATTERN DOTS-12357;So;0;L;;;;;N;;;;;-2858;BRAILLE PATTERN DOTS-457;So;0;L;;;;;N;;;;;-2859;BRAILLE PATTERN DOTS-1457;So;0;L;;;;;N;;;;;-285A;BRAILLE PATTERN DOTS-2457;So;0;L;;;;;N;;;;;-285B;BRAILLE PATTERN DOTS-12457;So;0;L;;;;;N;;;;;-285C;BRAILLE PATTERN DOTS-3457;So;0;L;;;;;N;;;;;-285D;BRAILLE PATTERN DOTS-13457;So;0;L;;;;;N;;;;;-285E;BRAILLE PATTERN DOTS-23457;So;0;L;;;;;N;;;;;-285F;BRAILLE PATTERN DOTS-123457;So;0;L;;;;;N;;;;;-2860;BRAILLE PATTERN DOTS-67;So;0;L;;;;;N;;;;;-2861;BRAILLE PATTERN DOTS-167;So;0;L;;;;;N;;;;;-2862;BRAILLE PATTERN DOTS-267;So;0;L;;;;;N;;;;;-2863;BRAILLE PATTERN DOTS-1267;So;0;L;;;;;N;;;;;-2864;BRAILLE PATTERN DOTS-367;So;0;L;;;;;N;;;;;-2865;BRAILLE PATTERN DOTS-1367;So;0;L;;;;;N;;;;;-2866;BRAILLE PATTERN DOTS-2367;So;0;L;;;;;N;;;;;-2867;BRAILLE PATTERN DOTS-12367;So;0;L;;;;;N;;;;;-2868;BRAILLE PATTERN DOTS-467;So;0;L;;;;;N;;;;;-2869;BRAILLE PATTERN DOTS-1467;So;0;L;;;;;N;;;;;-286A;BRAILLE PATTERN DOTS-2467;So;0;L;;;;;N;;;;;-286B;BRAILLE PATTERN DOTS-12467;So;0;L;;;;;N;;;;;-286C;BRAILLE PATTERN DOTS-3467;So;0;L;;;;;N;;;;;-286D;BRAILLE PATTERN DOTS-13467;So;0;L;;;;;N;;;;;-286E;BRAILLE PATTERN DOTS-23467;So;0;L;;;;;N;;;;;-286F;BRAILLE PATTERN DOTS-123467;So;0;L;;;;;N;;;;;-2870;BRAILLE PATTERN DOTS-567;So;0;L;;;;;N;;;;;-2871;BRAILLE PATTERN DOTS-1567;So;0;L;;;;;N;;;;;-2872;BRAILLE PATTERN DOTS-2567;So;0;L;;;;;N;;;;;-2873;BRAILLE PATTERN DOTS-12567;So;0;L;;;;;N;;;;;-2874;BRAILLE PATTERN DOTS-3567;So;0;L;;;;;N;;;;;-2875;BRAILLE PATTERN DOTS-13567;So;0;L;;;;;N;;;;;-2876;BRAILLE PATTERN DOTS-23567;So;0;L;;;;;N;;;;;-2877;BRAILLE PATTERN DOTS-123567;So;0;L;;;;;N;;;;;-2878;BRAILLE PATTERN DOTS-4567;So;0;L;;;;;N;;;;;-2879;BRAILLE PATTERN DOTS-14567;So;0;L;;;;;N;;;;;-287A;BRAILLE PATTERN DOTS-24567;So;0;L;;;;;N;;;;;-287B;BRAILLE PATTERN DOTS-124567;So;0;L;;;;;N;;;;;-287C;BRAILLE PATTERN DOTS-34567;So;0;L;;;;;N;;;;;-287D;BRAILLE PATTERN DOTS-134567;So;0;L;;;;;N;;;;;-287E;BRAILLE PATTERN DOTS-234567;So;0;L;;;;;N;;;;;-287F;BRAILLE PATTERN DOTS-1234567;So;0;L;;;;;N;;;;;-2880;BRAILLE PATTERN DOTS-8;So;0;L;;;;;N;;;;;-2881;BRAILLE PATTERN DOTS-18;So;0;L;;;;;N;;;;;-2882;BRAILLE PATTERN DOTS-28;So;0;L;;;;;N;;;;;-2883;BRAILLE PATTERN DOTS-128;So;0;L;;;;;N;;;;;-2884;BRAILLE PATTERN DOTS-38;So;0;L;;;;;N;;;;;-2885;BRAILLE PATTERN DOTS-138;So;0;L;;;;;N;;;;;-2886;BRAILLE PATTERN DOTS-238;So;0;L;;;;;N;;;;;-2887;BRAILLE PATTERN DOTS-1238;So;0;L;;;;;N;;;;;-2888;BRAILLE PATTERN DOTS-48;So;0;L;;;;;N;;;;;-2889;BRAILLE PATTERN DOTS-148;So;0;L;;;;;N;;;;;-288A;BRAILLE PATTERN DOTS-248;So;0;L;;;;;N;;;;;-288B;BRAILLE PATTERN DOTS-1248;So;0;L;;;;;N;;;;;-288C;BRAILLE PATTERN DOTS-348;So;0;L;;;;;N;;;;;-288D;BRAILLE PATTERN DOTS-1348;So;0;L;;;;;N;;;;;-288E;BRAILLE PATTERN DOTS-2348;So;0;L;;;;;N;;;;;-288F;BRAILLE PATTERN DOTS-12348;So;0;L;;;;;N;;;;;-2890;BRAILLE PATTERN DOTS-58;So;0;L;;;;;N;;;;;-2891;BRAILLE PATTERN DOTS-158;So;0;L;;;;;N;;;;;-2892;BRAILLE PATTERN DOTS-258;So;0;L;;;;;N;;;;;-2893;BRAILLE PATTERN DOTS-1258;So;0;L;;;;;N;;;;;-2894;BRAILLE PATTERN DOTS-358;So;0;L;;;;;N;;;;;-2895;BRAILLE PATTERN DOTS-1358;So;0;L;;;;;N;;;;;-2896;BRAILLE PATTERN DOTS-2358;So;0;L;;;;;N;;;;;-2897;BRAILLE PATTERN DOTS-12358;So;0;L;;;;;N;;;;;-2898;BRAILLE PATTERN DOTS-458;So;0;L;;;;;N;;;;;-2899;BRAILLE PATTERN DOTS-1458;So;0;L;;;;;N;;;;;-289A;BRAILLE PATTERN DOTS-2458;So;0;L;;;;;N;;;;;-289B;BRAILLE PATTERN DOTS-12458;So;0;L;;;;;N;;;;;-289C;BRAILLE PATTERN DOTS-3458;So;0;L;;;;;N;;;;;-289D;BRAILLE PATTERN DOTS-13458;So;0;L;;;;;N;;;;;-289E;BRAILLE PATTERN DOTS-23458;So;0;L;;;;;N;;;;;-289F;BRAILLE PATTERN DOTS-123458;So;0;L;;;;;N;;;;;-28A0;BRAILLE PATTERN DOTS-68;So;0;L;;;;;N;;;;;-28A1;BRAILLE PATTERN DOTS-168;So;0;L;;;;;N;;;;;-28A2;BRAILLE PATTERN DOTS-268;So;0;L;;;;;N;;;;;-28A3;BRAILLE PATTERN DOTS-1268;So;0;L;;;;;N;;;;;-28A4;BRAILLE PATTERN DOTS-368;So;0;L;;;;;N;;;;;-28A5;BRAILLE PATTERN DOTS-1368;So;0;L;;;;;N;;;;;-28A6;BRAILLE PATTERN DOTS-2368;So;0;L;;;;;N;;;;;-28A7;BRAILLE PATTERN DOTS-12368;So;0;L;;;;;N;;;;;-28A8;BRAILLE PATTERN DOTS-468;So;0;L;;;;;N;;;;;-28A9;BRAILLE PATTERN DOTS-1468;So;0;L;;;;;N;;;;;-28AA;BRAILLE PATTERN DOTS-2468;So;0;L;;;;;N;;;;;-28AB;BRAILLE PATTERN DOTS-12468;So;0;L;;;;;N;;;;;-28AC;BRAILLE PATTERN DOTS-3468;So;0;L;;;;;N;;;;;-28AD;BRAILLE PATTERN DOTS-13468;So;0;L;;;;;N;;;;;-28AE;BRAILLE PATTERN DOTS-23468;So;0;L;;;;;N;;;;;-28AF;BRAILLE PATTERN DOTS-123468;So;0;L;;;;;N;;;;;-28B0;BRAILLE PATTERN DOTS-568;So;0;L;;;;;N;;;;;-28B1;BRAILLE PATTERN DOTS-1568;So;0;L;;;;;N;;;;;-28B2;BRAILLE PATTERN DOTS-2568;So;0;L;;;;;N;;;;;-28B3;BRAILLE PATTERN DOTS-12568;So;0;L;;;;;N;;;;;-28B4;BRAILLE PATTERN DOTS-3568;So;0;L;;;;;N;;;;;-28B5;BRAILLE PATTERN DOTS-13568;So;0;L;;;;;N;;;;;-28B6;BRAILLE PATTERN DOTS-23568;So;0;L;;;;;N;;;;;-28B7;BRAILLE PATTERN DOTS-123568;So;0;L;;;;;N;;;;;-28B8;BRAILLE PATTERN DOTS-4568;So;0;L;;;;;N;;;;;-28B9;BRAILLE PATTERN DOTS-14568;So;0;L;;;;;N;;;;;-28BA;BRAILLE PATTERN DOTS-24568;So;0;L;;;;;N;;;;;-28BB;BRAILLE PATTERN DOTS-124568;So;0;L;;;;;N;;;;;-28BC;BRAILLE PATTERN DOTS-34568;So;0;L;;;;;N;;;;;-28BD;BRAILLE PATTERN DOTS-134568;So;0;L;;;;;N;;;;;-28BE;BRAILLE PATTERN DOTS-234568;So;0;L;;;;;N;;;;;-28BF;BRAILLE PATTERN DOTS-1234568;So;0;L;;;;;N;;;;;-28C0;BRAILLE PATTERN DOTS-78;So;0;L;;;;;N;;;;;-28C1;BRAILLE PATTERN DOTS-178;So;0;L;;;;;N;;;;;-28C2;BRAILLE PATTERN DOTS-278;So;0;L;;;;;N;;;;;-28C3;BRAILLE PATTERN DOTS-1278;So;0;L;;;;;N;;;;;-28C4;BRAILLE PATTERN DOTS-378;So;0;L;;;;;N;;;;;-28C5;BRAILLE PATTERN DOTS-1378;So;0;L;;;;;N;;;;;-28C6;BRAILLE PATTERN DOTS-2378;So;0;L;;;;;N;;;;;-28C7;BRAILLE PATTERN DOTS-12378;So;0;L;;;;;N;;;;;-28C8;BRAILLE PATTERN DOTS-478;So;0;L;;;;;N;;;;;-28C9;BRAILLE PATTERN DOTS-1478;So;0;L;;;;;N;;;;;-28CA;BRAILLE PATTERN DOTS-2478;So;0;L;;;;;N;;;;;-28CB;BRAILLE PATTERN DOTS-12478;So;0;L;;;;;N;;;;;-28CC;BRAILLE PATTERN DOTS-3478;So;0;L;;;;;N;;;;;-28CD;BRAILLE PATTERN DOTS-13478;So;0;L;;;;;N;;;;;-28CE;BRAILLE PATTERN DOTS-23478;So;0;L;;;;;N;;;;;-28CF;BRAILLE PATTERN DOTS-123478;So;0;L;;;;;N;;;;;-28D0;BRAILLE PATTERN DOTS-578;So;0;L;;;;;N;;;;;-28D1;BRAILLE PATTERN DOTS-1578;So;0;L;;;;;N;;;;;-28D2;BRAILLE PATTERN DOTS-2578;So;0;L;;;;;N;;;;;-28D3;BRAILLE PATTERN DOTS-12578;So;0;L;;;;;N;;;;;-28D4;BRAILLE PATTERN DOTS-3578;So;0;L;;;;;N;;;;;-28D5;BRAILLE PATTERN DOTS-13578;So;0;L;;;;;N;;;;;-28D6;BRAILLE PATTERN DOTS-23578;So;0;L;;;;;N;;;;;-28D7;BRAILLE PATTERN DOTS-123578;So;0;L;;;;;N;;;;;-28D8;BRAILLE PATTERN DOTS-4578;So;0;L;;;;;N;;;;;-28D9;BRAILLE PATTERN DOTS-14578;So;0;L;;;;;N;;;;;-28DA;BRAILLE PATTERN DOTS-24578;So;0;L;;;;;N;;;;;-28DB;BRAILLE PATTERN DOTS-124578;So;0;L;;;;;N;;;;;-28DC;BRAILLE PATTERN DOTS-34578;So;0;L;;;;;N;;;;;-28DD;BRAILLE PATTERN DOTS-134578;So;0;L;;;;;N;;;;;-28DE;BRAILLE PATTERN DOTS-234578;So;0;L;;;;;N;;;;;-28DF;BRAILLE PATTERN DOTS-1234578;So;0;L;;;;;N;;;;;-28E0;BRAILLE PATTERN DOTS-678;So;0;L;;;;;N;;;;;-28E1;BRAILLE PATTERN DOTS-1678;So;0;L;;;;;N;;;;;-28E2;BRAILLE PATTERN DOTS-2678;So;0;L;;;;;N;;;;;-28E3;BRAILLE PATTERN DOTS-12678;So;0;L;;;;;N;;;;;-28E4;BRAILLE PATTERN DOTS-3678;So;0;L;;;;;N;;;;;-28E5;BRAILLE PATTERN DOTS-13678;So;0;L;;;;;N;;;;;-28E6;BRAILLE PATTERN DOTS-23678;So;0;L;;;;;N;;;;;-28E7;BRAILLE PATTERN DOTS-123678;So;0;L;;;;;N;;;;;-28E8;BRAILLE PATTERN DOTS-4678;So;0;L;;;;;N;;;;;-28E9;BRAILLE PATTERN DOTS-14678;So;0;L;;;;;N;;;;;-28EA;BRAILLE PATTERN DOTS-24678;So;0;L;;;;;N;;;;;-28EB;BRAILLE PATTERN DOTS-124678;So;0;L;;;;;N;;;;;-28EC;BRAILLE PATTERN DOTS-34678;So;0;L;;;;;N;;;;;-28ED;BRAILLE PATTERN DOTS-134678;So;0;L;;;;;N;;;;;-28EE;BRAILLE PATTERN DOTS-234678;So;0;L;;;;;N;;;;;-28EF;BRAILLE PATTERN DOTS-1234678;So;0;L;;;;;N;;;;;-28F0;BRAILLE PATTERN DOTS-5678;So;0;L;;;;;N;;;;;-28F1;BRAILLE PATTERN DOTS-15678;So;0;L;;;;;N;;;;;-28F2;BRAILLE PATTERN DOTS-25678;So;0;L;;;;;N;;;;;-28F3;BRAILLE PATTERN DOTS-125678;So;0;L;;;;;N;;;;;-28F4;BRAILLE PATTERN DOTS-35678;So;0;L;;;;;N;;;;;-28F5;BRAILLE PATTERN DOTS-135678;So;0;L;;;;;N;;;;;-28F6;BRAILLE PATTERN DOTS-235678;So;0;L;;;;;N;;;;;-28F7;BRAILLE PATTERN DOTS-1235678;So;0;L;;;;;N;;;;;-28F8;BRAILLE PATTERN DOTS-45678;So;0;L;;;;;N;;;;;-28F9;BRAILLE PATTERN DOTS-145678;So;0;L;;;;;N;;;;;-28FA;BRAILLE PATTERN DOTS-245678;So;0;L;;;;;N;;;;;-28FB;BRAILLE PATTERN DOTS-1245678;So;0;L;;;;;N;;;;;-28FC;BRAILLE PATTERN DOTS-345678;So;0;L;;;;;N;;;;;-28FD;BRAILLE PATTERN DOTS-1345678;So;0;L;;;;;N;;;;;-28FE;BRAILLE PATTERN DOTS-2345678;So;0;L;;;;;N;;;;;-28FF;BRAILLE PATTERN DOTS-12345678;So;0;L;;;;;N;;;;;-2900;RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;-2901;RIGHTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;-2902;LEFTWARDS DOUBLE ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;-2903;RIGHTWARDS DOUBLE ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;-2904;LEFT RIGHT DOUBLE ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;-2905;RIGHTWARDS TWO-HEADED ARROW FROM BAR;Sm;0;ON;;;;;N;;;;;-2906;LEFTWARDS DOUBLE ARROW FROM BAR;Sm;0;ON;;;;;N;;;;;-2907;RIGHTWARDS DOUBLE ARROW FROM BAR;Sm;0;ON;;;;;N;;;;;-2908;DOWNWARDS ARROW WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;;-2909;UPWARDS ARROW WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;;-290A;UPWARDS TRIPLE ARROW;Sm;0;ON;;;;;N;;;;;-290B;DOWNWARDS TRIPLE ARROW;Sm;0;ON;;;;;N;;;;;-290C;LEFTWARDS DOUBLE DASH ARROW;Sm;0;ON;;;;;N;;;;;-290D;RIGHTWARDS DOUBLE DASH ARROW;Sm;0;ON;;;;;N;;;;;-290E;LEFTWARDS TRIPLE DASH ARROW;Sm;0;ON;;;;;N;;;;;-290F;RIGHTWARDS TRIPLE DASH ARROW;Sm;0;ON;;;;;N;;;;;-2910;RIGHTWARDS TWO-HEADED TRIPLE DASH ARROW;Sm;0;ON;;;;;N;;;;;-2911;RIGHTWARDS ARROW WITH DOTTED STEM;Sm;0;ON;;;;;N;;;;;-2912;UPWARDS ARROW TO BAR;Sm;0;ON;;;;;N;;;;;-2913;DOWNWARDS ARROW TO BAR;Sm;0;ON;;;;;N;;;;;-2914;RIGHTWARDS ARROW WITH TAIL WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;-2915;RIGHTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;-2916;RIGHTWARDS TWO-HEADED ARROW WITH TAIL;Sm;0;ON;;;;;N;;;;;-2917;RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;-2918;RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;-2919;LEFTWARDS ARROW-TAIL;Sm;0;ON;;;;;N;;;;;-291A;RIGHTWARDS ARROW-TAIL;Sm;0;ON;;;;;N;;;;;-291B;LEFTWARDS DOUBLE ARROW-TAIL;Sm;0;ON;;;;;N;;;;;-291C;RIGHTWARDS DOUBLE ARROW-TAIL;Sm;0;ON;;;;;N;;;;;-291D;LEFTWARDS ARROW TO BLACK DIAMOND;Sm;0;ON;;;;;N;;;;;-291E;RIGHTWARDS ARROW TO BLACK DIAMOND;Sm;0;ON;;;;;N;;;;;-291F;LEFTWARDS ARROW FROM BAR TO BLACK DIAMOND;Sm;0;ON;;;;;N;;;;;-2920;RIGHTWARDS ARROW FROM BAR TO BLACK DIAMOND;Sm;0;ON;;;;;N;;;;;-2921;NORTH WEST AND SOUTH EAST ARROW;Sm;0;ON;;;;;N;;;;;-2922;NORTH EAST AND SOUTH WEST ARROW;Sm;0;ON;;;;;N;;;;;-2923;NORTH WEST ARROW WITH HOOK;Sm;0;ON;;;;;N;;;;;-2924;NORTH EAST ARROW WITH HOOK;Sm;0;ON;;;;;N;;;;;-2925;SOUTH EAST ARROW WITH HOOK;Sm;0;ON;;;;;N;;;;;-2926;SOUTH WEST ARROW WITH HOOK;Sm;0;ON;;;;;N;;;;;-2927;NORTH WEST ARROW AND NORTH EAST ARROW;Sm;0;ON;;;;;N;;;;;-2928;NORTH EAST ARROW AND SOUTH EAST ARROW;Sm;0;ON;;;;;N;;;;;-2929;SOUTH EAST ARROW AND SOUTH WEST ARROW;Sm;0;ON;;;;;N;;;;;-292A;SOUTH WEST ARROW AND NORTH WEST ARROW;Sm;0;ON;;;;;N;;;;;-292B;RISING DIAGONAL CROSSING FALLING DIAGONAL;Sm;0;ON;;;;;N;;;;;-292C;FALLING DIAGONAL CROSSING RISING DIAGONAL;Sm;0;ON;;;;;N;;;;;-292D;SOUTH EAST ARROW CROSSING NORTH EAST ARROW;Sm;0;ON;;;;;N;;;;;-292E;NORTH EAST ARROW CROSSING SOUTH EAST ARROW;Sm;0;ON;;;;;N;;;;;-292F;FALLING DIAGONAL CROSSING NORTH EAST ARROW;Sm;0;ON;;;;;N;;;;;-2930;RISING DIAGONAL CROSSING SOUTH EAST ARROW;Sm;0;ON;;;;;N;;;;;-2931;NORTH EAST ARROW CROSSING NORTH WEST ARROW;Sm;0;ON;;;;;N;;;;;-2932;NORTH WEST ARROW CROSSING NORTH EAST ARROW;Sm;0;ON;;;;;N;;;;;-2933;WAVE ARROW POINTING DIRECTLY RIGHT;Sm;0;ON;;;;;N;;;;;-2934;ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS;Sm;0;ON;;;;;N;;;;;-2935;ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS;Sm;0;ON;;;;;N;;;;;-2936;ARROW POINTING DOWNWARDS THEN CURVING LEFTWARDS;Sm;0;ON;;;;;N;;;;;-2937;ARROW POINTING DOWNWARDS THEN CURVING RIGHTWARDS;Sm;0;ON;;;;;N;;;;;-2938;RIGHT-SIDE ARC CLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;;-2939;LEFT-SIDE ARC ANTICLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;;-293A;TOP ARC ANTICLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;;-293B;BOTTOM ARC ANTICLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;;-293C;TOP ARC CLOCKWISE ARROW WITH MINUS;Sm;0;ON;;;;;N;;;;;-293D;TOP ARC ANTICLOCKWISE ARROW WITH PLUS;Sm;0;ON;;;;;N;;;;;-293E;LOWER RIGHT SEMICIRCULAR CLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;;-293F;LOWER LEFT SEMICIRCULAR ANTICLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;;-2940;ANTICLOCKWISE CLOSED CIRCLE ARROW;Sm;0;ON;;;;;N;;;;;-2941;CLOCKWISE CLOSED CIRCLE ARROW;Sm;0;ON;;;;;N;;;;;-2942;RIGHTWARDS ARROW ABOVE SHORT LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;;-2943;LEFTWARDS ARROW ABOVE SHORT RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;;-2944;SHORT RIGHTWARDS ARROW ABOVE LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;;-2945;RIGHTWARDS ARROW WITH PLUS BELOW;Sm;0;ON;;;;;N;;;;;-2946;LEFTWARDS ARROW WITH PLUS BELOW;Sm;0;ON;;;;;N;;;;;-2947;RIGHTWARDS ARROW THROUGH X;Sm;0;ON;;;;;N;;;;;-2948;LEFT RIGHT ARROW THROUGH SMALL CIRCLE;Sm;0;ON;;;;;N;;;;;-2949;UPWARDS TWO-HEADED ARROW FROM SMALL CIRCLE;Sm;0;ON;;;;;N;;;;;-294A;LEFT BARB UP RIGHT BARB DOWN HARPOON;Sm;0;ON;;;;;N;;;;;-294B;LEFT BARB DOWN RIGHT BARB UP HARPOON;Sm;0;ON;;;;;N;;;;;-294C;UP BARB RIGHT DOWN BARB LEFT HARPOON;Sm;0;ON;;;;;N;;;;;-294D;UP BARB LEFT DOWN BARB RIGHT HARPOON;Sm;0;ON;;;;;N;;;;;-294E;LEFT BARB UP RIGHT BARB UP HARPOON;Sm;0;ON;;;;;N;;;;;-294F;UP BARB RIGHT DOWN BARB RIGHT HARPOON;Sm;0;ON;;;;;N;;;;;-2950;LEFT BARB DOWN RIGHT BARB DOWN HARPOON;Sm;0;ON;;;;;N;;;;;-2951;UP BARB LEFT DOWN BARB LEFT HARPOON;Sm;0;ON;;;;;N;;;;;-2952;LEFTWARDS HARPOON WITH BARB UP TO BAR;Sm;0;ON;;;;;N;;;;;-2953;RIGHTWARDS HARPOON WITH BARB UP TO BAR;Sm;0;ON;;;;;N;;;;;-2954;UPWARDS HARPOON WITH BARB RIGHT TO BAR;Sm;0;ON;;;;;N;;;;;-2955;DOWNWARDS HARPOON WITH BARB RIGHT TO BAR;Sm;0;ON;;;;;N;;;;;-2956;LEFTWARDS HARPOON WITH BARB DOWN TO BAR;Sm;0;ON;;;;;N;;;;;-2957;RIGHTWARDS HARPOON WITH BARB DOWN TO BAR;Sm;0;ON;;;;;N;;;;;-2958;UPWARDS HARPOON WITH BARB LEFT TO BAR;Sm;0;ON;;;;;N;;;;;-2959;DOWNWARDS HARPOON WITH BARB LEFT TO BAR;Sm;0;ON;;;;;N;;;;;-295A;LEFTWARDS HARPOON WITH BARB UP FROM BAR;Sm;0;ON;;;;;N;;;;;-295B;RIGHTWARDS HARPOON WITH BARB UP FROM BAR;Sm;0;ON;;;;;N;;;;;-295C;UPWARDS HARPOON WITH BARB RIGHT FROM BAR;Sm;0;ON;;;;;N;;;;;-295D;DOWNWARDS HARPOON WITH BARB RIGHT FROM BAR;Sm;0;ON;;;;;N;;;;;-295E;LEFTWARDS HARPOON WITH BARB DOWN FROM BAR;Sm;0;ON;;;;;N;;;;;-295F;RIGHTWARDS HARPOON WITH BARB DOWN FROM BAR;Sm;0;ON;;;;;N;;;;;-2960;UPWARDS HARPOON WITH BARB LEFT FROM BAR;Sm;0;ON;;;;;N;;;;;-2961;DOWNWARDS HARPOON WITH BARB LEFT FROM BAR;Sm;0;ON;;;;;N;;;;;-2962;LEFTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB DOWN;Sm;0;ON;;;;;N;;;;;-2963;UPWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT;Sm;0;ON;;;;;N;;;;;-2964;RIGHTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB DOWN;Sm;0;ON;;;;;N;;;;;-2965;DOWNWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT;Sm;0;ON;;;;;N;;;;;-2966;LEFTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB UP;Sm;0;ON;;;;;N;;;;;-2967;LEFTWARDS HARPOON WITH BARB DOWN ABOVE RIGHTWARDS HARPOON WITH BARB DOWN;Sm;0;ON;;;;;N;;;;;-2968;RIGHTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB UP;Sm;0;ON;;;;;N;;;;;-2969;RIGHTWARDS HARPOON WITH BARB DOWN ABOVE LEFTWARDS HARPOON WITH BARB DOWN;Sm;0;ON;;;;;N;;;;;-296A;LEFTWARDS HARPOON WITH BARB UP ABOVE LONG DASH;Sm;0;ON;;;;;N;;;;;-296B;LEFTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH;Sm;0;ON;;;;;N;;;;;-296C;RIGHTWARDS HARPOON WITH BARB UP ABOVE LONG DASH;Sm;0;ON;;;;;N;;;;;-296D;RIGHTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH;Sm;0;ON;;;;;N;;;;;-296E;UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT;Sm;0;ON;;;;;N;;;;;-296F;DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT;Sm;0;ON;;;;;N;;;;;-2970;RIGHT DOUBLE ARROW WITH ROUNDED HEAD;Sm;0;ON;;;;;N;;;;;-2971;EQUALS SIGN ABOVE RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;;-2972;TILDE OPERATOR ABOVE RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;;-2973;LEFTWARDS ARROW ABOVE TILDE OPERATOR;Sm;0;ON;;;;;N;;;;;-2974;RIGHTWARDS ARROW ABOVE TILDE OPERATOR;Sm;0;ON;;;;;N;;;;;-2975;RIGHTWARDS ARROW ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;N;;;;;-2976;LESS-THAN ABOVE LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;;-2977;LEFTWARDS ARROW THROUGH LESS-THAN;Sm;0;ON;;;;;N;;;;;-2978;GREATER-THAN ABOVE RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;;-2979;SUBSET ABOVE RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;;-297A;LEFTWARDS ARROW THROUGH SUBSET;Sm;0;ON;;;;;N;;;;;-297B;SUPERSET ABOVE LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;;-297C;LEFT FISH TAIL;Sm;0;ON;;;;;N;;;;;-297D;RIGHT FISH TAIL;Sm;0;ON;;;;;N;;;;;-297E;UP FISH TAIL;Sm;0;ON;;;;;N;;;;;-297F;DOWN FISH TAIL;Sm;0;ON;;;;;N;;;;;-2980;TRIPLE VERTICAL BAR DELIMITER;Sm;0;ON;;;;;N;;;;;-2981;Z NOTATION SPOT;Sm;0;ON;;;;;N;;;;;-2982;Z NOTATION TYPE COLON;Sm;0;ON;;;;;N;;;;;-2983;LEFT WHITE CURLY BRACKET;Ps;0;ON;;;;;Y;;;;;-2984;RIGHT WHITE CURLY BRACKET;Pe;0;ON;;;;;Y;;;;;-2985;LEFT WHITE PARENTHESIS;Ps;0;ON;;;;;Y;;;;;-2986;RIGHT WHITE PARENTHESIS;Pe;0;ON;;;;;Y;;;;;-2987;Z NOTATION LEFT IMAGE BRACKET;Ps;0;ON;;;;;Y;;;;;-2988;Z NOTATION RIGHT IMAGE BRACKET;Pe;0;ON;;;;;Y;;;;;-2989;Z NOTATION LEFT BINDING BRACKET;Ps;0;ON;;;;;Y;;;;;-298A;Z NOTATION RIGHT BINDING BRACKET;Pe;0;ON;;;;;Y;;;;;-298B;LEFT SQUARE BRACKET WITH UNDERBAR;Ps;0;ON;;;;;Y;;;;;-298C;RIGHT SQUARE BRACKET WITH UNDERBAR;Pe;0;ON;;;;;Y;;;;;-298D;LEFT SQUARE BRACKET WITH TICK IN TOP CORNER;Ps;0;ON;;;;;Y;;;;;-298E;RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER;Pe;0;ON;;;;;Y;;;;;-298F;LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER;Ps;0;ON;;;;;Y;;;;;-2990;RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER;Pe;0;ON;;;;;Y;;;;;-2991;LEFT ANGLE BRACKET WITH DOT;Ps;0;ON;;;;;Y;;;;;-2992;RIGHT ANGLE BRACKET WITH DOT;Pe;0;ON;;;;;Y;;;;;-2993;LEFT ARC LESS-THAN BRACKET;Ps;0;ON;;;;;Y;;;;;-2994;RIGHT ARC GREATER-THAN BRACKET;Pe;0;ON;;;;;Y;;;;;-2995;DOUBLE LEFT ARC GREATER-THAN BRACKET;Ps;0;ON;;;;;Y;;;;;-2996;DOUBLE RIGHT ARC LESS-THAN BRACKET;Pe;0;ON;;;;;Y;;;;;-2997;LEFT BLACK TORTOISE SHELL BRACKET;Ps;0;ON;;;;;Y;;;;;-2998;RIGHT BLACK TORTOISE SHELL BRACKET;Pe;0;ON;;;;;Y;;;;;-2999;DOTTED FENCE;Sm;0;ON;;;;;N;;;;;-299A;VERTICAL ZIGZAG LINE;Sm;0;ON;;;;;N;;;;;-299B;MEASURED ANGLE OPENING LEFT;Sm;0;ON;;;;;Y;;;;;-299C;RIGHT ANGLE VARIANT WITH SQUARE;Sm;0;ON;;;;;Y;;;;;-299D;MEASURED RIGHT ANGLE WITH DOT;Sm;0;ON;;;;;Y;;;;;-299E;ANGLE WITH S INSIDE;Sm;0;ON;;;;;Y;;;;;-299F;ACUTE ANGLE;Sm;0;ON;;;;;Y;;;;;-29A0;SPHERICAL ANGLE OPENING LEFT;Sm;0;ON;;;;;Y;;;;;-29A1;SPHERICAL ANGLE OPENING UP;Sm;0;ON;;;;;Y;;;;;-29A2;TURNED ANGLE;Sm;0;ON;;;;;Y;;;;;-29A3;REVERSED ANGLE;Sm;0;ON;;;;;Y;;;;;-29A4;ANGLE WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;;-29A5;REVERSED ANGLE WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;;-29A6;OBLIQUE ANGLE OPENING UP;Sm;0;ON;;;;;Y;;;;;-29A7;OBLIQUE ANGLE OPENING DOWN;Sm;0;ON;;;;;Y;;;;;-29A8;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT;Sm;0;ON;;;;;Y;;;;;-29A9;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT;Sm;0;ON;;;;;Y;;;;;-29AA;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT;Sm;0;ON;;;;;Y;;;;;-29AB;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT;Sm;0;ON;;;;;Y;;;;;-29AC;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP;Sm;0;ON;;;;;Y;;;;;-29AD;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP;Sm;0;ON;;;;;Y;;;;;-29AE;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN;Sm;0;ON;;;;;Y;;;;;-29AF;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN;Sm;0;ON;;;;;Y;;;;;-29B0;REVERSED EMPTY SET;Sm;0;ON;;;;;N;;;;;-29B1;EMPTY SET WITH OVERBAR;Sm;0;ON;;;;;N;;;;;-29B2;EMPTY SET WITH SMALL CIRCLE ABOVE;Sm;0;ON;;;;;N;;;;;-29B3;EMPTY SET WITH RIGHT ARROW ABOVE;Sm;0;ON;;;;;N;;;;;-29B4;EMPTY SET WITH LEFT ARROW ABOVE;Sm;0;ON;;;;;N;;;;;-29B5;CIRCLE WITH HORIZONTAL BAR;Sm;0;ON;;;;;N;;;;;-29B6;CIRCLED VERTICAL BAR;Sm;0;ON;;;;;N;;;;;-29B7;CIRCLED PARALLEL;Sm;0;ON;;;;;N;;;;;-29B8;CIRCLED REVERSE SOLIDUS;Sm;0;ON;;;;;Y;;;;;-29B9;CIRCLED PERPENDICULAR;Sm;0;ON;;;;;N;;;;;-29BA;CIRCLE DIVIDED BY HORIZONTAL BAR AND TOP HALF DIVIDED BY VERTICAL BAR;Sm;0;ON;;;;;N;;;;;-29BB;CIRCLE WITH SUPERIMPOSED X;Sm;0;ON;;;;;N;;;;;-29BC;CIRCLED ANTICLOCKWISE-ROTATED DIVISION SIGN;Sm;0;ON;;;;;N;;;;;-29BD;UP ARROW THROUGH CIRCLE;Sm;0;ON;;;;;N;;;;;-29BE;CIRCLED WHITE BULLET;Sm;0;ON;;;;;N;;;;;-29BF;CIRCLED BULLET;Sm;0;ON;;;;;N;;;;;-29C0;CIRCLED LESS-THAN;Sm;0;ON;;;;;Y;;;;;-29C1;CIRCLED GREATER-THAN;Sm;0;ON;;;;;Y;;;;;-29C2;CIRCLE WITH SMALL CIRCLE TO THE RIGHT;Sm;0;ON;;;;;Y;;;;;-29C3;CIRCLE WITH TWO HORIZONTAL STROKES TO THE RIGHT;Sm;0;ON;;;;;Y;;;;;-29C4;SQUARED RISING DIAGONAL SLASH;Sm;0;ON;;;;;Y;;;;;-29C5;SQUARED FALLING DIAGONAL SLASH;Sm;0;ON;;;;;Y;;;;;-29C6;SQUARED ASTERISK;Sm;0;ON;;;;;N;;;;;-29C7;SQUARED SMALL CIRCLE;Sm;0;ON;;;;;N;;;;;-29C8;SQUARED SQUARE;Sm;0;ON;;;;;N;;;;;-29C9;TWO JOINED SQUARES;Sm;0;ON;;;;;Y;;;;;-29CA;TRIANGLE WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;;-29CB;TRIANGLE WITH UNDERBAR;Sm;0;ON;;;;;N;;;;;-29CC;S IN TRIANGLE;Sm;0;ON;;;;;N;;;;;-29CD;TRIANGLE WITH SERIFS AT BOTTOM;Sm;0;ON;;;;;N;;;;;-29CE;RIGHT TRIANGLE ABOVE LEFT TRIANGLE;Sm;0;ON;;;;;Y;;;;;-29CF;LEFT TRIANGLE BESIDE VERTICAL BAR;Sm;0;ON;;;;;Y;;;;;-29D0;VERTICAL BAR BESIDE RIGHT TRIANGLE;Sm;0;ON;;;;;Y;;;;;-29D1;BOWTIE WITH LEFT HALF BLACK;Sm;0;ON;;;;;Y;;;;;-29D2;BOWTIE WITH RIGHT HALF BLACK;Sm;0;ON;;;;;Y;;;;;-29D3;BLACK BOWTIE;Sm;0;ON;;;;;N;;;;;-29D4;TIMES WITH LEFT HALF BLACK;Sm;0;ON;;;;;Y;;;;;-29D5;TIMES WITH RIGHT HALF BLACK;Sm;0;ON;;;;;Y;;;;;-29D6;WHITE HOURGLASS;Sm;0;ON;;;;;N;;;;;-29D7;BLACK HOURGLASS;Sm;0;ON;;;;;N;;;;;-29D8;LEFT WIGGLY FENCE;Ps;0;ON;;;;;Y;;;;;-29D9;RIGHT WIGGLY FENCE;Pe;0;ON;;;;;Y;;;;;-29DA;LEFT DOUBLE WIGGLY FENCE;Ps;0;ON;;;;;Y;;;;;-29DB;RIGHT DOUBLE WIGGLY FENCE;Pe;0;ON;;;;;Y;;;;;-29DC;INCOMPLETE INFINITY;Sm;0;ON;;;;;Y;;;;;-29DD;TIE OVER INFINITY;Sm;0;ON;;;;;N;;;;;-29DE;INFINITY NEGATED WITH VERTICAL BAR;Sm;0;ON;;;;;N;;;;;-29DF;DOUBLE-ENDED MULTIMAP;Sm;0;ON;;;;;N;;;;;-29E0;SQUARE WITH CONTOURED OUTLINE;Sm;0;ON;;;;;N;;;;;-29E1;INCREASES AS;Sm;0;ON;;;;;Y;;;;;-29E2;SHUFFLE PRODUCT;Sm;0;ON;;;;;N;;;;;-29E3;EQUALS SIGN AND SLANTED PARALLEL;Sm;0;ON;;;;;Y;;;;;-29E4;EQUALS SIGN AND SLANTED PARALLEL WITH TILDE ABOVE;Sm;0;ON;;;;;Y;;;;;-29E5;IDENTICAL TO AND SLANTED PARALLEL;Sm;0;ON;;;;;Y;;;;;-29E6;GLEICH STARK;Sm;0;ON;;;;;N;;;;;-29E7;THERMODYNAMIC;Sm;0;ON;;;;;N;;;;;-29E8;DOWN-POINTING TRIANGLE WITH LEFT HALF BLACK;Sm;0;ON;;;;;Y;;;;;-29E9;DOWN-POINTING TRIANGLE WITH RIGHT HALF BLACK;Sm;0;ON;;;;;Y;;;;;-29EA;BLACK DIAMOND WITH DOWN ARROW;Sm;0;ON;;;;;N;;;;;-29EB;BLACK LOZENGE;Sm;0;ON;;;;;N;;;;;-29EC;WHITE CIRCLE WITH DOWN ARROW;Sm;0;ON;;;;;N;;;;;-29ED;BLACK CIRCLE WITH DOWN ARROW;Sm;0;ON;;;;;N;;;;;-29EE;ERROR-BARRED WHITE SQUARE;Sm;0;ON;;;;;N;;;;;-29EF;ERROR-BARRED BLACK SQUARE;Sm;0;ON;;;;;N;;;;;-29F0;ERROR-BARRED WHITE DIAMOND;Sm;0;ON;;;;;N;;;;;-29F1;ERROR-BARRED BLACK DIAMOND;Sm;0;ON;;;;;N;;;;;-29F2;ERROR-BARRED WHITE CIRCLE;Sm;0;ON;;;;;N;;;;;-29F3;ERROR-BARRED BLACK CIRCLE;Sm;0;ON;;;;;N;;;;;-29F4;RULE-DELAYED;Sm;0;ON;;;;;Y;;;;;-29F5;REVERSE SOLIDUS OPERATOR;Sm;0;ON;;;;;Y;;;;;-29F6;SOLIDUS WITH OVERBAR;Sm;0;ON;;;;;Y;;;;;-29F7;REVERSE SOLIDUS WITH HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;;-29F8;BIG SOLIDUS;Sm;0;ON;;;;;Y;;;;;-29F9;BIG REVERSE SOLIDUS;Sm;0;ON;;;;;Y;;;;;-29FA;DOUBLE PLUS;Sm;0;ON;;;;;N;;;;;-29FB;TRIPLE PLUS;Sm;0;ON;;;;;N;;;;;-29FC;LEFT-POINTING CURVED ANGLE BRACKET;Ps;0;ON;;;;;Y;;;;;-29FD;RIGHT-POINTING CURVED ANGLE BRACKET;Pe;0;ON;;;;;Y;;;;;-29FE;TINY;Sm;0;ON;;;;;N;;;;;-29FF;MINY;Sm;0;ON;;;;;N;;;;;-2A00;N-ARY CIRCLED DOT OPERATOR;Sm;0;ON;;;;;N;;;;;-2A01;N-ARY CIRCLED PLUS OPERATOR;Sm;0;ON;;;;;N;;;;;-2A02;N-ARY CIRCLED TIMES OPERATOR;Sm;0;ON;;;;;N;;;;;-2A03;N-ARY UNION OPERATOR WITH DOT;Sm;0;ON;;;;;N;;;;;-2A04;N-ARY UNION OPERATOR WITH PLUS;Sm;0;ON;;;;;N;;;;;-2A05;N-ARY SQUARE INTERSECTION OPERATOR;Sm;0;ON;;;;;N;;;;;-2A06;N-ARY SQUARE UNION OPERATOR;Sm;0;ON;;;;;N;;;;;-2A07;TWO LOGICAL AND OPERATOR;Sm;0;ON;;;;;N;;;;;-2A08;TWO LOGICAL OR OPERATOR;Sm;0;ON;;;;;N;;;;;-2A09;N-ARY TIMES OPERATOR;Sm;0;ON;;;;;N;;;;;-2A0A;MODULO TWO SUM;Sm;0;ON;;;;;Y;;;;;-2A0B;SUMMATION WITH INTEGRAL;Sm;0;ON;;;;;Y;;;;;-2A0C;QUADRUPLE INTEGRAL OPERATOR;Sm;0;ON;<compat> 222B 222B 222B 222B;;;;Y;;;;;-2A0D;FINITE PART INTEGRAL;Sm;0;ON;;;;;Y;;;;;-2A0E;INTEGRAL WITH DOUBLE STROKE;Sm;0;ON;;;;;Y;;;;;-2A0F;INTEGRAL AVERAGE WITH SLASH;Sm;0;ON;;;;;Y;;;;;-2A10;CIRCULATION FUNCTION;Sm;0;ON;;;;;Y;;;;;-2A11;ANTICLOCKWISE INTEGRATION;Sm;0;ON;;;;;Y;;;;;-2A12;LINE INTEGRATION WITH RECTANGULAR PATH AROUND POLE;Sm;0;ON;;;;;Y;;;;;-2A13;LINE INTEGRATION WITH SEMICIRCULAR PATH AROUND POLE;Sm;0;ON;;;;;Y;;;;;-2A14;LINE INTEGRATION NOT INCLUDING THE POLE;Sm;0;ON;;;;;Y;;;;;-2A15;INTEGRAL AROUND A POINT OPERATOR;Sm;0;ON;;;;;Y;;;;;-2A16;QUATERNION INTEGRAL OPERATOR;Sm;0;ON;;;;;Y;;;;;-2A17;INTEGRAL WITH LEFTWARDS ARROW WITH HOOK;Sm;0;ON;;;;;Y;;;;;-2A18;INTEGRAL WITH TIMES SIGN;Sm;0;ON;;;;;Y;;;;;-2A19;INTEGRAL WITH INTERSECTION;Sm;0;ON;;;;;Y;;;;;-2A1A;INTEGRAL WITH UNION;Sm;0;ON;;;;;Y;;;;;-2A1B;INTEGRAL WITH OVERBAR;Sm;0;ON;;;;;Y;;;;;-2A1C;INTEGRAL WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;;-2A1D;JOIN;Sm;0;ON;;;;;N;;;;;-2A1E;LARGE LEFT TRIANGLE OPERATOR;Sm;0;ON;;;;;Y;;;;;-2A1F;Z NOTATION SCHEMA COMPOSITION;Sm;0;ON;;;;;Y;;;;;-2A20;Z NOTATION SCHEMA PIPING;Sm;0;ON;;;;;Y;;;;;-2A21;Z NOTATION SCHEMA PROJECTION;Sm;0;ON;;;;;Y;;;;;-2A22;PLUS SIGN WITH SMALL CIRCLE ABOVE;Sm;0;ON;;;;;N;;;;;-2A23;PLUS SIGN WITH CIRCUMFLEX ACCENT ABOVE;Sm;0;ON;;;;;N;;;;;-2A24;PLUS SIGN WITH TILDE ABOVE;Sm;0;ON;;;;;Y;;;;;-2A25;PLUS SIGN WITH DOT BELOW;Sm;0;ON;;;;;N;;;;;-2A26;PLUS SIGN WITH TILDE BELOW;Sm;0;ON;;;;;Y;;;;;-2A27;PLUS SIGN WITH SUBSCRIPT TWO;Sm;0;ON;;;;;N;;;;;-2A28;PLUS SIGN WITH BLACK TRIANGLE;Sm;0;ON;;;;;N;;;;;-2A29;MINUS SIGN WITH COMMA ABOVE;Sm;0;ON;;;;;Y;;;;;-2A2A;MINUS SIGN WITH DOT BELOW;Sm;0;ON;;;;;N;;;;;-2A2B;MINUS SIGN WITH FALLING DOTS;Sm;0;ON;;;;;Y;;;;;-2A2C;MINUS SIGN WITH RISING DOTS;Sm;0;ON;;;;;Y;;;;;-2A2D;PLUS SIGN IN LEFT HALF CIRCLE;Sm;0;ON;;;;;Y;;;;;-2A2E;PLUS SIGN IN RIGHT HALF CIRCLE;Sm;0;ON;;;;;Y;;;;;-2A2F;VECTOR OR CROSS PRODUCT;Sm;0;ON;;;;;N;;;;;-2A30;MULTIPLICATION SIGN WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;;-2A31;MULTIPLICATION SIGN WITH UNDERBAR;Sm;0;ON;;;;;N;;;;;-2A32;SEMIDIRECT PRODUCT WITH BOTTOM CLOSED;Sm;0;ON;;;;;N;;;;;-2A33;SMASH PRODUCT;Sm;0;ON;;;;;N;;;;;-2A34;MULTIPLICATION SIGN IN LEFT HALF CIRCLE;Sm;0;ON;;;;;Y;;;;;-2A35;MULTIPLICATION SIGN IN RIGHT HALF CIRCLE;Sm;0;ON;;;;;Y;;;;;-2A36;CIRCLED MULTIPLICATION SIGN WITH CIRCUMFLEX ACCENT;Sm;0;ON;;;;;N;;;;;-2A37;MULTIPLICATION SIGN IN DOUBLE CIRCLE;Sm;0;ON;;;;;N;;;;;-2A38;CIRCLED DIVISION SIGN;Sm;0;ON;;;;;N;;;;;-2A39;PLUS SIGN IN TRIANGLE;Sm;0;ON;;;;;N;;;;;-2A3A;MINUS SIGN IN TRIANGLE;Sm;0;ON;;;;;N;;;;;-2A3B;MULTIPLICATION SIGN IN TRIANGLE;Sm;0;ON;;;;;N;;;;;-2A3C;INTERIOR PRODUCT;Sm;0;ON;;;;;Y;;;;;-2A3D;RIGHTHAND INTERIOR PRODUCT;Sm;0;ON;;;;;Y;;;;;-2A3E;Z NOTATION RELATIONAL COMPOSITION;Sm;0;ON;;;;;Y;;;;;-2A3F;AMALGAMATION OR COPRODUCT;Sm;0;ON;;;;;N;;;;;-2A40;INTERSECTION WITH DOT;Sm;0;ON;;;;;N;;;;;-2A41;UNION WITH MINUS SIGN;Sm;0;ON;;;;;N;;;;;-2A42;UNION WITH OVERBAR;Sm;0;ON;;;;;N;;;;;-2A43;INTERSECTION WITH OVERBAR;Sm;0;ON;;;;;N;;;;;-2A44;INTERSECTION WITH LOGICAL AND;Sm;0;ON;;;;;N;;;;;-2A45;UNION WITH LOGICAL OR;Sm;0;ON;;;;;N;;;;;-2A46;UNION ABOVE INTERSECTION;Sm;0;ON;;;;;N;;;;;-2A47;INTERSECTION ABOVE UNION;Sm;0;ON;;;;;N;;;;;-2A48;UNION ABOVE BAR ABOVE INTERSECTION;Sm;0;ON;;;;;N;;;;;-2A49;INTERSECTION ABOVE BAR ABOVE UNION;Sm;0;ON;;;;;N;;;;;-2A4A;UNION BESIDE AND JOINED WITH UNION;Sm;0;ON;;;;;N;;;;;-2A4B;INTERSECTION BESIDE AND JOINED WITH INTERSECTION;Sm;0;ON;;;;;N;;;;;-2A4C;CLOSED UNION WITH SERIFS;Sm;0;ON;;;;;N;;;;;-2A4D;CLOSED INTERSECTION WITH SERIFS;Sm;0;ON;;;;;N;;;;;-2A4E;DOUBLE SQUARE INTERSECTION;Sm;0;ON;;;;;N;;;;;-2A4F;DOUBLE SQUARE UNION;Sm;0;ON;;;;;N;;;;;-2A50;CLOSED UNION WITH SERIFS AND SMASH PRODUCT;Sm;0;ON;;;;;N;;;;;-2A51;LOGICAL AND WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;;-2A52;LOGICAL OR WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;;-2A53;DOUBLE LOGICAL AND;Sm;0;ON;;;;;N;;;;;-2A54;DOUBLE LOGICAL OR;Sm;0;ON;;;;;N;;;;;-2A55;TWO INTERSECTING LOGICAL AND;Sm;0;ON;;;;;N;;;;;-2A56;TWO INTERSECTING LOGICAL OR;Sm;0;ON;;;;;N;;;;;-2A57;SLOPING LARGE OR;Sm;0;ON;;;;;Y;;;;;-2A58;SLOPING LARGE AND;Sm;0;ON;;;;;Y;;;;;-2A59;LOGICAL OR OVERLAPPING LOGICAL AND;Sm;0;ON;;;;;N;;;;;-2A5A;LOGICAL AND WITH MIDDLE STEM;Sm;0;ON;;;;;N;;;;;-2A5B;LOGICAL OR WITH MIDDLE STEM;Sm;0;ON;;;;;N;;;;;-2A5C;LOGICAL AND WITH HORIZONTAL DASH;Sm;0;ON;;;;;N;;;;;-2A5D;LOGICAL OR WITH HORIZONTAL DASH;Sm;0;ON;;;;;N;;;;;-2A5E;LOGICAL AND WITH DOUBLE OVERBAR;Sm;0;ON;;;;;N;;;;;-2A5F;LOGICAL AND WITH UNDERBAR;Sm;0;ON;;;;;N;;;;;-2A60;LOGICAL AND WITH DOUBLE UNDERBAR;Sm;0;ON;;;;;N;;;;;-2A61;SMALL VEE WITH UNDERBAR;Sm;0;ON;;;;;N;;;;;-2A62;LOGICAL OR WITH DOUBLE OVERBAR;Sm;0;ON;;;;;N;;;;;-2A63;LOGICAL OR WITH DOUBLE UNDERBAR;Sm;0;ON;;;;;N;;;;;-2A64;Z NOTATION DOMAIN ANTIRESTRICTION;Sm;0;ON;;;;;Y;;;;;-2A65;Z NOTATION RANGE ANTIRESTRICTION;Sm;0;ON;;;;;Y;;;;;-2A66;EQUALS SIGN WITH DOT BELOW;Sm;0;ON;;;;;N;;;;;-2A67;IDENTICAL WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;;-2A68;TRIPLE HORIZONTAL BAR WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;-2A69;TRIPLE HORIZONTAL BAR WITH TRIPLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;-2A6A;TILDE OPERATOR WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;;-2A6B;TILDE OPERATOR WITH RISING DOTS;Sm;0;ON;;;;;Y;;;;;-2A6C;SIMILAR MINUS SIMILAR;Sm;0;ON;;;;;Y;;;;;-2A6D;CONGRUENT WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;;-2A6E;EQUALS WITH ASTERISK;Sm;0;ON;;;;;N;;;;;-2A6F;ALMOST EQUAL TO WITH CIRCUMFLEX ACCENT;Sm;0;ON;;;;;Y;;;;;-2A70;APPROXIMATELY EQUAL OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;-2A71;EQUALS SIGN ABOVE PLUS SIGN;Sm;0;ON;;;;;N;;;;;-2A72;PLUS SIGN ABOVE EQUALS SIGN;Sm;0;ON;;;;;N;;;;;-2A73;EQUALS SIGN ABOVE TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;;-2A74;DOUBLE COLON EQUAL;Sm;0;ON;<compat> 003A 003A 003D;;;;Y;;;;;-2A75;TWO CONSECUTIVE EQUALS SIGNS;Sm;0;ON;<compat> 003D 003D;;;;N;;;;;-2A76;THREE CONSECUTIVE EQUALS SIGNS;Sm;0;ON;<compat> 003D 003D 003D;;;;N;;;;;-2A77;EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW;Sm;0;ON;;;;;N;;;;;-2A78;EQUIVALENT WITH FOUR DOTS ABOVE;Sm;0;ON;;;;;N;;;;;-2A79;LESS-THAN WITH CIRCLE INSIDE;Sm;0;ON;;;;;Y;;;;;-2A7A;GREATER-THAN WITH CIRCLE INSIDE;Sm;0;ON;;;;;Y;;;;;-2A7B;LESS-THAN WITH QUESTION MARK ABOVE;Sm;0;ON;;;;;Y;;;;;-2A7C;GREATER-THAN WITH QUESTION MARK ABOVE;Sm;0;ON;;;;;Y;;;;;-2A7D;LESS-THAN OR SLANTED EQUAL TO;Sm;0;ON;;;;;Y;;;;;-2A7E;GREATER-THAN OR SLANTED EQUAL TO;Sm;0;ON;;;;;Y;;;;;-2A7F;LESS-THAN OR SLANTED EQUAL TO WITH DOT INSIDE;Sm;0;ON;;;;;Y;;;;;-2A80;GREATER-THAN OR SLANTED EQUAL TO WITH DOT INSIDE;Sm;0;ON;;;;;Y;;;;;-2A81;LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;;-2A82;GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;;-2A83;LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE RIGHT;Sm;0;ON;;;;;Y;;;;;-2A84;GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT;Sm;0;ON;;;;;Y;;;;;-2A85;LESS-THAN OR APPROXIMATE;Sm;0;ON;;;;;Y;;;;;-2A86;GREATER-THAN OR APPROXIMATE;Sm;0;ON;;;;;Y;;;;;-2A87;LESS-THAN AND SINGLE-LINE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;-2A88;GREATER-THAN AND SINGLE-LINE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;-2A89;LESS-THAN AND NOT APPROXIMATE;Sm;0;ON;;;;;Y;;;;;-2A8A;GREATER-THAN AND NOT APPROXIMATE;Sm;0;ON;;;;;Y;;;;;-2A8B;LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN;Sm;0;ON;;;;;Y;;;;;-2A8C;GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN;Sm;0;ON;;;;;Y;;;;;-2A8D;LESS-THAN ABOVE SIMILAR OR EQUAL;Sm;0;ON;;;;;Y;;;;;-2A8E;GREATER-THAN ABOVE SIMILAR OR EQUAL;Sm;0;ON;;;;;Y;;;;;-2A8F;LESS-THAN ABOVE SIMILAR ABOVE GREATER-THAN;Sm;0;ON;;;;;Y;;;;;-2A90;GREATER-THAN ABOVE SIMILAR ABOVE LESS-THAN;Sm;0;ON;;;;;Y;;;;;-2A91;LESS-THAN ABOVE GREATER-THAN ABOVE DOUBLE-LINE EQUAL;Sm;0;ON;;;;;Y;;;;;-2A92;GREATER-THAN ABOVE LESS-THAN ABOVE DOUBLE-LINE EQUAL;Sm;0;ON;;;;;Y;;;;;-2A93;LESS-THAN ABOVE SLANTED EQUAL ABOVE GREATER-THAN ABOVE SLANTED EQUAL;Sm;0;ON;;;;;Y;;;;;-2A94;GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL;Sm;0;ON;;;;;Y;;;;;-2A95;SLANTED EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;;;;;-2A96;SLANTED EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;;;;;-2A97;SLANTED EQUAL TO OR LESS-THAN WITH DOT INSIDE;Sm;0;ON;;;;;Y;;;;;-2A98;SLANTED EQUAL TO OR GREATER-THAN WITH DOT INSIDE;Sm;0;ON;;;;;Y;;;;;-2A99;DOUBLE-LINE EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;;;;;-2A9A;DOUBLE-LINE EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;;;;;-2A9B;DOUBLE-LINE SLANTED EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;;;;;-2A9C;DOUBLE-LINE SLANTED EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;;;;;-2A9D;SIMILAR OR LESS-THAN;Sm;0;ON;;;;;Y;;;;;-2A9E;SIMILAR OR GREATER-THAN;Sm;0;ON;;;;;Y;;;;;-2A9F;SIMILAR ABOVE LESS-THAN ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;-2AA0;SIMILAR ABOVE GREATER-THAN ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;-2AA1;DOUBLE NESTED LESS-THAN;Sm;0;ON;;;;;Y;;;;;-2AA2;DOUBLE NESTED GREATER-THAN;Sm;0;ON;;;;;Y;;;;;-2AA3;DOUBLE NESTED LESS-THAN WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;;-2AA4;GREATER-THAN OVERLAPPING LESS-THAN;Sm;0;ON;;;;;N;;;;;-2AA5;GREATER-THAN BESIDE LESS-THAN;Sm;0;ON;;;;;N;;;;;-2AA6;LESS-THAN CLOSED BY CURVE;Sm;0;ON;;;;;Y;;;;;-2AA7;GREATER-THAN CLOSED BY CURVE;Sm;0;ON;;;;;Y;;;;;-2AA8;LESS-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL;Sm;0;ON;;;;;Y;;;;;-2AA9;GREATER-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL;Sm;0;ON;;;;;Y;;;;;-2AAA;SMALLER THAN;Sm;0;ON;;;;;Y;;;;;-2AAB;LARGER THAN;Sm;0;ON;;;;;Y;;;;;-2AAC;SMALLER THAN OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;-2AAD;LARGER THAN OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;-2AAE;EQUALS SIGN WITH BUMPY ABOVE;Sm;0;ON;;;;;N;;;;;-2AAF;PRECEDES ABOVE SINGLE-LINE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;-2AB0;SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;-2AB1;PRECEDES ABOVE SINGLE-LINE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;-2AB2;SUCCEEDS ABOVE SINGLE-LINE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;-2AB3;PRECEDES ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;-2AB4;SUCCEEDS ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;-2AB5;PRECEDES ABOVE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;-2AB6;SUCCEEDS ABOVE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;-2AB7;PRECEDES ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;;-2AB8;SUCCEEDS ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;;-2AB9;PRECEDES ABOVE NOT ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;;-2ABA;SUCCEEDS ABOVE NOT ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;;-2ABB;DOUBLE PRECEDES;Sm;0;ON;;;;;Y;;;;;-2ABC;DOUBLE SUCCEEDS;Sm;0;ON;;;;;Y;;;;;-2ABD;SUBSET WITH DOT;Sm;0;ON;;;;;Y;;;;;-2ABE;SUPERSET WITH DOT;Sm;0;ON;;;;;Y;;;;;-2ABF;SUBSET WITH PLUS SIGN BELOW;Sm;0;ON;;;;;Y;;;;;-2AC0;SUPERSET WITH PLUS SIGN BELOW;Sm;0;ON;;;;;Y;;;;;-2AC1;SUBSET WITH MULTIPLICATION SIGN BELOW;Sm;0;ON;;;;;Y;;;;;-2AC2;SUPERSET WITH MULTIPLICATION SIGN BELOW;Sm;0;ON;;;;;Y;;;;;-2AC3;SUBSET OF OR EQUAL TO WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;;-2AC4;SUPERSET OF OR EQUAL TO WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;;-2AC5;SUBSET OF ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;-2AC6;SUPERSET OF ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;-2AC7;SUBSET OF ABOVE TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;;-2AC8;SUPERSET OF ABOVE TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;;-2AC9;SUBSET OF ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;;-2ACA;SUPERSET OF ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;;-2ACB;SUBSET OF ABOVE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;-2ACC;SUPERSET OF ABOVE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;-2ACD;SQUARE LEFT OPEN BOX OPERATOR;Sm;0;ON;;;;;Y;;;;;-2ACE;SQUARE RIGHT OPEN BOX OPERATOR;Sm;0;ON;;;;;Y;;;;;-2ACF;CLOSED SUBSET;Sm;0;ON;;;;;Y;;;;;-2AD0;CLOSED SUPERSET;Sm;0;ON;;;;;Y;;;;;-2AD1;CLOSED SUBSET OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;-2AD2;CLOSED SUPERSET OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;-2AD3;SUBSET ABOVE SUPERSET;Sm;0;ON;;;;;Y;;;;;-2AD4;SUPERSET ABOVE SUBSET;Sm;0;ON;;;;;Y;;;;;-2AD5;SUBSET ABOVE SUBSET;Sm;0;ON;;;;;Y;;;;;-2AD6;SUPERSET ABOVE SUPERSET;Sm;0;ON;;;;;Y;;;;;-2AD7;SUPERSET BESIDE SUBSET;Sm;0;ON;;;;;N;;;;;-2AD8;SUPERSET BESIDE AND JOINED BY DASH WITH SUBSET;Sm;0;ON;;;;;N;;;;;-2AD9;ELEMENT OF OPENING DOWNWARDS;Sm;0;ON;;;;;N;;;;;-2ADA;PITCHFORK WITH TEE TOP;Sm;0;ON;;;;;N;;;;;-2ADB;TRANSVERSAL INTERSECTION;Sm;0;ON;;;;;N;;;;;-2ADC;FORKING;Sm;0;ON;2ADD 0338;;;;Y;;not independent;;;-2ADD;NONFORKING;Sm;0;ON;;;;;N;;independent;;;-2ADE;SHORT LEFT TACK;Sm;0;ON;;;;;Y;;;;;-2ADF;SHORT DOWN TACK;Sm;0;ON;;;;;N;;;;;-2AE0;SHORT UP TACK;Sm;0;ON;;;;;N;;;;;-2AE1;PERPENDICULAR WITH S;Sm;0;ON;;;;;N;;;;;-2AE2;VERTICAL BAR TRIPLE RIGHT TURNSTILE;Sm;0;ON;;;;;Y;;;;;-2AE3;DOUBLE VERTICAL BAR LEFT TURNSTILE;Sm;0;ON;;;;;Y;;;;;-2AE4;VERTICAL BAR DOUBLE LEFT TURNSTILE;Sm;0;ON;;;;;Y;;;;;-2AE5;DOUBLE VERTICAL BAR DOUBLE LEFT TURNSTILE;Sm;0;ON;;;;;Y;;;;;-2AE6;LONG DASH FROM LEFT MEMBER OF DOUBLE VERTICAL;Sm;0;ON;;;;;Y;;;;;-2AE7;SHORT DOWN TACK WITH OVERBAR;Sm;0;ON;;;;;N;;;;;-2AE8;SHORT UP TACK WITH UNDERBAR;Sm;0;ON;;;;;N;;;;;-2AE9;SHORT UP TACK ABOVE SHORT DOWN TACK;Sm;0;ON;;;;;N;;;;;-2AEA;DOUBLE DOWN TACK;Sm;0;ON;;;;;N;;;;;-2AEB;DOUBLE UP TACK;Sm;0;ON;;;;;N;;;;;-2AEC;DOUBLE STROKE NOT SIGN;Sm;0;ON;;;;;Y;;;;;-2AED;REVERSED DOUBLE STROKE NOT SIGN;Sm;0;ON;;;;;Y;;;;;-2AEE;DOES NOT DIVIDE WITH REVERSED NEGATION SLASH;Sm;0;ON;;;;;Y;;;;;-2AEF;VERTICAL LINE WITH CIRCLE ABOVE;Sm;0;ON;;;;;N;;;;;-2AF0;VERTICAL LINE WITH CIRCLE BELOW;Sm;0;ON;;;;;N;;;;;-2AF1;DOWN TACK WITH CIRCLE BELOW;Sm;0;ON;;;;;N;;;;;-2AF2;PARALLEL WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;;-2AF3;PARALLEL WITH TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;;-2AF4;TRIPLE VERTICAL BAR BINARY RELATION;Sm;0;ON;;;;;N;;;;;-2AF5;TRIPLE VERTICAL BAR WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;;-2AF6;TRIPLE COLON OPERATOR;Sm;0;ON;;;;;N;;;;;-2AF7;TRIPLE NESTED LESS-THAN;Sm;0;ON;;;;;Y;;;;;-2AF8;TRIPLE NESTED GREATER-THAN;Sm;0;ON;;;;;Y;;;;;-2AF9;DOUBLE-LINE SLANTED LESS-THAN OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;-2AFA;DOUBLE-LINE SLANTED GREATER-THAN OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;-2AFB;TRIPLE SOLIDUS BINARY RELATION;Sm;0;ON;;;;;Y;;;;;-2AFC;LARGE TRIPLE VERTICAL BAR OPERATOR;Sm;0;ON;;;;;N;;;;;-2AFD;DOUBLE SOLIDUS OPERATOR;Sm;0;ON;;;;;Y;;;;;-2AFE;WHITE VERTICAL BAR;Sm;0;ON;;;;;N;;;;;-2AFF;N-ARY WHITE VERTICAL BAR;Sm;0;ON;;;;;N;;;;;-2B00;NORTH EAST WHITE ARROW;So;0;ON;;;;;N;;;;;-2B01;NORTH WEST WHITE ARROW;So;0;ON;;;;;N;;;;;-2B02;SOUTH EAST WHITE ARROW;So;0;ON;;;;;N;;;;;-2B03;SOUTH WEST WHITE ARROW;So;0;ON;;;;;N;;;;;-2B04;LEFT RIGHT WHITE ARROW;So;0;ON;;;;;N;;;;;-2B05;LEFTWARDS BLACK ARROW;So;0;ON;;;;;N;;;;;-2B06;UPWARDS BLACK ARROW;So;0;ON;;;;;N;;;;;-2B07;DOWNWARDS BLACK ARROW;So;0;ON;;;;;N;;;;;-2B08;NORTH EAST BLACK ARROW;So;0;ON;;;;;N;;;;;-2B09;NORTH WEST BLACK ARROW;So;0;ON;;;;;N;;;;;-2B0A;SOUTH EAST BLACK ARROW;So;0;ON;;;;;N;;;;;-2B0B;SOUTH WEST BLACK ARROW;So;0;ON;;;;;N;;;;;-2B0C;LEFT RIGHT BLACK ARROW;So;0;ON;;;;;N;;;;;-2B0D;UP DOWN BLACK ARROW;So;0;ON;;;;;N;;;;;-2B0E;RIGHTWARDS ARROW WITH TIP DOWNWARDS;So;0;ON;;;;;N;;;;;-2B0F;RIGHTWARDS ARROW WITH TIP UPWARDS;So;0;ON;;;;;N;;;;;-2B10;LEFTWARDS ARROW WITH TIP DOWNWARDS;So;0;ON;;;;;N;;;;;-2B11;LEFTWARDS ARROW WITH TIP UPWARDS;So;0;ON;;;;;N;;;;;-2B12;SQUARE WITH TOP HALF BLACK;So;0;ON;;;;;N;;;;;-2B13;SQUARE WITH BOTTOM HALF BLACK;So;0;ON;;;;;N;;;;;-2B14;SQUARE WITH UPPER RIGHT DIAGONAL HALF BLACK;So;0;ON;;;;;N;;;;;-2B15;SQUARE WITH LOWER LEFT DIAGONAL HALF BLACK;So;0;ON;;;;;N;;;;;-2B16;DIAMOND WITH LEFT HALF BLACK;So;0;ON;;;;;N;;;;;-2B17;DIAMOND WITH RIGHT HALF BLACK;So;0;ON;;;;;N;;;;;-2B18;DIAMOND WITH TOP HALF BLACK;So;0;ON;;;;;N;;;;;-2B19;DIAMOND WITH BOTTOM HALF BLACK;So;0;ON;;;;;N;;;;;-2B1A;DOTTED SQUARE;So;0;ON;;;;;N;;;;;-2B20;WHITE PENTAGON;So;0;ON;;;;;N;;;;;-2B21;WHITE HEXAGON;So;0;ON;;;;;N;;;;;-2B22;BLACK HEXAGON;So;0;ON;;;;;N;;;;;-2B23;HORIZONTAL BLACK HEXAGON;So;0;ON;;;;;N;;;;;-2C00;GLAGOLITIC CAPITAL LETTER AZU;Lu;0;L;;;;;N;;;;2C30;-2C01;GLAGOLITIC CAPITAL LETTER BUKY;Lu;0;L;;;;;N;;;;2C31;-2C02;GLAGOLITIC CAPITAL LETTER VEDE;Lu;0;L;;;;;N;;;;2C32;-2C03;GLAGOLITIC CAPITAL LETTER GLAGOLI;Lu;0;L;;;;;N;;;;2C33;-2C04;GLAGOLITIC CAPITAL LETTER DOBRO;Lu;0;L;;;;;N;;;;2C34;-2C05;GLAGOLITIC CAPITAL LETTER YESTU;Lu;0;L;;;;;N;;;;2C35;-2C06;GLAGOLITIC CAPITAL LETTER ZHIVETE;Lu;0;L;;;;;N;;;;2C36;-2C07;GLAGOLITIC CAPITAL LETTER DZELO;Lu;0;L;;;;;N;;;;2C37;-2C08;GLAGOLITIC CAPITAL LETTER ZEMLJA;Lu;0;L;;;;;N;;;;2C38;-2C09;GLAGOLITIC CAPITAL LETTER IZHE;Lu;0;L;;;;;N;;;;2C39;-2C0A;GLAGOLITIC CAPITAL LETTER INITIAL IZHE;Lu;0;L;;;;;N;;;;2C3A;-2C0B;GLAGOLITIC CAPITAL LETTER I;Lu;0;L;;;;;N;;;;2C3B;-2C0C;GLAGOLITIC CAPITAL LETTER DJERVI;Lu;0;L;;;;;N;;;;2C3C;-2C0D;GLAGOLITIC CAPITAL LETTER KAKO;Lu;0;L;;;;;N;;;;2C3D;-2C0E;GLAGOLITIC CAPITAL LETTER LJUDIJE;Lu;0;L;;;;;N;;;;2C3E;-2C0F;GLAGOLITIC CAPITAL LETTER MYSLITE;Lu;0;L;;;;;N;;;;2C3F;-2C10;GLAGOLITIC CAPITAL LETTER NASHI;Lu;0;L;;;;;N;;;;2C40;-2C11;GLAGOLITIC CAPITAL LETTER ONU;Lu;0;L;;;;;N;;;;2C41;-2C12;GLAGOLITIC CAPITAL LETTER POKOJI;Lu;0;L;;;;;N;;;;2C42;-2C13;GLAGOLITIC CAPITAL LETTER RITSI;Lu;0;L;;;;;N;;;;2C43;-2C14;GLAGOLITIC CAPITAL LETTER SLOVO;Lu;0;L;;;;;N;;;;2C44;-2C15;GLAGOLITIC CAPITAL LETTER TVRIDO;Lu;0;L;;;;;N;;;;2C45;-2C16;GLAGOLITIC CAPITAL LETTER UKU;Lu;0;L;;;;;N;;;;2C46;-2C17;GLAGOLITIC CAPITAL LETTER FRITU;Lu;0;L;;;;;N;;;;2C47;-2C18;GLAGOLITIC CAPITAL LETTER HERU;Lu;0;L;;;;;N;;;;2C48;-2C19;GLAGOLITIC CAPITAL LETTER OTU;Lu;0;L;;;;;N;;;;2C49;-2C1A;GLAGOLITIC CAPITAL LETTER PE;Lu;0;L;;;;;N;;;;2C4A;-2C1B;GLAGOLITIC CAPITAL LETTER SHTA;Lu;0;L;;;;;N;;;;2C4B;-2C1C;GLAGOLITIC CAPITAL LETTER TSI;Lu;0;L;;;;;N;;;;2C4C;-2C1D;GLAGOLITIC CAPITAL LETTER CHRIVI;Lu;0;L;;;;;N;;;;2C4D;-2C1E;GLAGOLITIC CAPITAL LETTER SHA;Lu;0;L;;;;;N;;;;2C4E;-2C1F;GLAGOLITIC CAPITAL LETTER YERU;Lu;0;L;;;;;N;;;;2C4F;-2C20;GLAGOLITIC CAPITAL LETTER YERI;Lu;0;L;;;;;N;;;;2C50;-2C21;GLAGOLITIC CAPITAL LETTER YATI;Lu;0;L;;;;;N;;;;2C51;-2C22;GLAGOLITIC CAPITAL LETTER SPIDERY HA;Lu;0;L;;;;;N;;;;2C52;-2C23;GLAGOLITIC CAPITAL LETTER YU;Lu;0;L;;;;;N;;;;2C53;-2C24;GLAGOLITIC CAPITAL LETTER SMALL YUS;Lu;0;L;;;;;N;;;;2C54;-2C25;GLAGOLITIC CAPITAL LETTER SMALL YUS WITH TAIL;Lu;0;L;;;;;N;;;;2C55;-2C26;GLAGOLITIC CAPITAL LETTER YO;Lu;0;L;;;;;N;;;;2C56;-2C27;GLAGOLITIC CAPITAL LETTER IOTATED SMALL YUS;Lu;0;L;;;;;N;;;;2C57;-2C28;GLAGOLITIC CAPITAL LETTER BIG YUS;Lu;0;L;;;;;N;;;;2C58;-2C29;GLAGOLITIC CAPITAL LETTER IOTATED BIG YUS;Lu;0;L;;;;;N;;;;2C59;-2C2A;GLAGOLITIC CAPITAL LETTER FITA;Lu;0;L;;;;;N;;;;2C5A;-2C2B;GLAGOLITIC CAPITAL LETTER IZHITSA;Lu;0;L;;;;;N;;;;2C5B;-2C2C;GLAGOLITIC CAPITAL LETTER SHTAPIC;Lu;0;L;;;;;N;;;;2C5C;-2C2D;GLAGOLITIC CAPITAL LETTER TROKUTASTI A;Lu;0;L;;;;;N;;;;2C5D;-2C2E;GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE;Lu;0;L;;;;;N;;;;2C5E;-2C30;GLAGOLITIC SMALL LETTER AZU;Ll;0;L;;;;;N;;;2C00;;2C00-2C31;GLAGOLITIC SMALL LETTER BUKY;Ll;0;L;;;;;N;;;2C01;;2C01-2C32;GLAGOLITIC SMALL LETTER VEDE;Ll;0;L;;;;;N;;;2C02;;2C02-2C33;GLAGOLITIC SMALL LETTER GLAGOLI;Ll;0;L;;;;;N;;;2C03;;2C03-2C34;GLAGOLITIC SMALL LETTER DOBRO;Ll;0;L;;;;;N;;;2C04;;2C04-2C35;GLAGOLITIC SMALL LETTER YESTU;Ll;0;L;;;;;N;;;2C05;;2C05-2C36;GLAGOLITIC SMALL LETTER ZHIVETE;Ll;0;L;;;;;N;;;2C06;;2C06-2C37;GLAGOLITIC SMALL LETTER DZELO;Ll;0;L;;;;;N;;;2C07;;2C07-2C38;GLAGOLITIC SMALL LETTER ZEMLJA;Ll;0;L;;;;;N;;;2C08;;2C08-2C39;GLAGOLITIC SMALL LETTER IZHE;Ll;0;L;;;;;N;;;2C09;;2C09-2C3A;GLAGOLITIC SMALL LETTER INITIAL IZHE;Ll;0;L;;;;;N;;;2C0A;;2C0A-2C3B;GLAGOLITIC SMALL LETTER I;Ll;0;L;;;;;N;;;2C0B;;2C0B-2C3C;GLAGOLITIC SMALL LETTER DJERVI;Ll;0;L;;;;;N;;;2C0C;;2C0C-2C3D;GLAGOLITIC SMALL LETTER KAKO;Ll;0;L;;;;;N;;;2C0D;;2C0D-2C3E;GLAGOLITIC SMALL LETTER LJUDIJE;Ll;0;L;;;;;N;;;2C0E;;2C0E-2C3F;GLAGOLITIC SMALL LETTER MYSLITE;Ll;0;L;;;;;N;;;2C0F;;2C0F-2C40;GLAGOLITIC SMALL LETTER NASHI;Ll;0;L;;;;;N;;;2C10;;2C10-2C41;GLAGOLITIC SMALL LETTER ONU;Ll;0;L;;;;;N;;;2C11;;2C11-2C42;GLAGOLITIC SMALL LETTER POKOJI;Ll;0;L;;;;;N;;;2C12;;2C12-2C43;GLAGOLITIC SMALL LETTER RITSI;Ll;0;L;;;;;N;;;2C13;;2C13-2C44;GLAGOLITIC SMALL LETTER SLOVO;Ll;0;L;;;;;N;;;2C14;;2C14-2C45;GLAGOLITIC SMALL LETTER TVRIDO;Ll;0;L;;;;;N;;;2C15;;2C15-2C46;GLAGOLITIC SMALL LETTER UKU;Ll;0;L;;;;;N;;;2C16;;2C16-2C47;GLAGOLITIC SMALL LETTER FRITU;Ll;0;L;;;;;N;;;2C17;;2C17-2C48;GLAGOLITIC SMALL LETTER HERU;Ll;0;L;;;;;N;;;2C18;;2C18-2C49;GLAGOLITIC SMALL LETTER OTU;Ll;0;L;;;;;N;;;2C19;;2C19-2C4A;GLAGOLITIC SMALL LETTER PE;Ll;0;L;;;;;N;;;2C1A;;2C1A-2C4B;GLAGOLITIC SMALL LETTER SHTA;Ll;0;L;;;;;N;;;2C1B;;2C1B-2C4C;GLAGOLITIC SMALL LETTER TSI;Ll;0;L;;;;;N;;;2C1C;;2C1C-2C4D;GLAGOLITIC SMALL LETTER CHRIVI;Ll;0;L;;;;;N;;;2C1D;;2C1D-2C4E;GLAGOLITIC SMALL LETTER SHA;Ll;0;L;;;;;N;;;2C1E;;2C1E-2C4F;GLAGOLITIC SMALL LETTER YERU;Ll;0;L;;;;;N;;;2C1F;;2C1F-2C50;GLAGOLITIC SMALL LETTER YERI;Ll;0;L;;;;;N;;;2C20;;2C20-2C51;GLAGOLITIC SMALL LETTER YATI;Ll;0;L;;;;;N;;;2C21;;2C21-2C52;GLAGOLITIC SMALL LETTER SPIDERY HA;Ll;0;L;;;;;N;;;2C22;;2C22-2C53;GLAGOLITIC SMALL LETTER YU;Ll;0;L;;;;;N;;;2C23;;2C23-2C54;GLAGOLITIC SMALL LETTER SMALL YUS;Ll;0;L;;;;;N;;;2C24;;2C24-2C55;GLAGOLITIC SMALL LETTER SMALL YUS WITH TAIL;Ll;0;L;;;;;N;;;2C25;;2C25-2C56;GLAGOLITIC SMALL LETTER YO;Ll;0;L;;;;;N;;;2C26;;2C26-2C57;GLAGOLITIC SMALL LETTER IOTATED SMALL YUS;Ll;0;L;;;;;N;;;2C27;;2C27-2C58;GLAGOLITIC SMALL LETTER BIG YUS;Ll;0;L;;;;;N;;;2C28;;2C28-2C59;GLAGOLITIC SMALL LETTER IOTATED BIG YUS;Ll;0;L;;;;;N;;;2C29;;2C29-2C5A;GLAGOLITIC SMALL LETTER FITA;Ll;0;L;;;;;N;;;2C2A;;2C2A-2C5B;GLAGOLITIC SMALL LETTER IZHITSA;Ll;0;L;;;;;N;;;2C2B;;2C2B-2C5C;GLAGOLITIC SMALL LETTER SHTAPIC;Ll;0;L;;;;;N;;;2C2C;;2C2C-2C5D;GLAGOLITIC SMALL LETTER TROKUTASTI A;Ll;0;L;;;;;N;;;2C2D;;2C2D-2C5E;GLAGOLITIC SMALL LETTER LATINATE MYSLITE;Ll;0;L;;;;;N;;;2C2E;;2C2E-2C60;LATIN CAPITAL LETTER L WITH DOUBLE BAR;Lu;0;L;;;;;N;;;;2C61;-2C61;LATIN SMALL LETTER L WITH DOUBLE BAR;Ll;0;L;;;;;N;;;2C60;;2C60-2C62;LATIN CAPITAL LETTER L WITH MIDDLE TILDE;Lu;0;L;;;;;N;;;;026B;-2C63;LATIN CAPITAL LETTER P WITH STROKE;Lu;0;L;;;;;N;;;;1D7D;-2C64;LATIN CAPITAL LETTER R WITH TAIL;Lu;0;L;;;;;N;;;;027D;-2C65;LATIN SMALL LETTER A WITH STROKE;Ll;0;L;;;;;N;;;023A;;023A-2C66;LATIN SMALL LETTER T WITH DIAGONAL STROKE;Ll;0;L;;;;;N;;;023E;;023E-2C67;LATIN CAPITAL LETTER H WITH DESCENDER;Lu;0;L;;;;;N;;;;2C68;-2C68;LATIN SMALL LETTER H WITH DESCENDER;Ll;0;L;;;;;N;;;2C67;;2C67-2C69;LATIN CAPITAL LETTER K WITH DESCENDER;Lu;0;L;;;;;N;;;;2C6A;-2C6A;LATIN SMALL LETTER K WITH DESCENDER;Ll;0;L;;;;;N;;;2C69;;2C69-2C6B;LATIN CAPITAL LETTER Z WITH DESCENDER;Lu;0;L;;;;;N;;;;2C6C;-2C6C;LATIN SMALL LETTER Z WITH DESCENDER;Ll;0;L;;;;;N;;;2C6B;;2C6B-2C74;LATIN SMALL LETTER V WITH CURL;Ll;0;L;;;;;N;;;;;-2C75;LATIN CAPITAL LETTER HALF H;Lu;0;L;;;;;N;;;;2C76;-2C76;LATIN SMALL LETTER HALF H;Ll;0;L;;;;;N;;;2C75;;2C75-2C77;LATIN SMALL LETTER TAILLESS PHI;Ll;0;L;;;;;N;;;;;-2C80;COPTIC CAPITAL LETTER ALFA;Lu;0;L;;;;;N;;;;2C81;-2C81;COPTIC SMALL LETTER ALFA;Ll;0;L;;;;;N;;;2C80;;2C80-2C82;COPTIC CAPITAL LETTER VIDA;Lu;0;L;;;;;N;;;;2C83;-2C83;COPTIC SMALL LETTER VIDA;Ll;0;L;;;;;N;;;2C82;;2C82-2C84;COPTIC CAPITAL LETTER GAMMA;Lu;0;L;;;;;N;;;;2C85;-2C85;COPTIC SMALL LETTER GAMMA;Ll;0;L;;;;;N;;;2C84;;2C84-2C86;COPTIC CAPITAL LETTER DALDA;Lu;0;L;;;;;N;;;;2C87;-2C87;COPTIC SMALL LETTER DALDA;Ll;0;L;;;;;N;;;2C86;;2C86-2C88;COPTIC CAPITAL LETTER EIE;Lu;0;L;;;;;N;;;;2C89;-2C89;COPTIC SMALL LETTER EIE;Ll;0;L;;;;;N;;;2C88;;2C88-2C8A;COPTIC CAPITAL LETTER SOU;Lu;0;L;;;;;N;;;;2C8B;-2C8B;COPTIC SMALL LETTER SOU;Ll;0;L;;;;;N;;;2C8A;;2C8A-2C8C;COPTIC CAPITAL LETTER ZATA;Lu;0;L;;;;;N;;;;2C8D;-2C8D;COPTIC SMALL LETTER ZATA;Ll;0;L;;;;;N;;;2C8C;;2C8C-2C8E;COPTIC CAPITAL LETTER HATE;Lu;0;L;;;;;N;;;;2C8F;-2C8F;COPTIC SMALL LETTER HATE;Ll;0;L;;;;;N;;;2C8E;;2C8E-2C90;COPTIC CAPITAL LETTER THETHE;Lu;0;L;;;;;N;;;;2C91;-2C91;COPTIC SMALL LETTER THETHE;Ll;0;L;;;;;N;;;2C90;;2C90-2C92;COPTIC CAPITAL LETTER IAUDA;Lu;0;L;;;;;N;;;;2C93;-2C93;COPTIC SMALL LETTER IAUDA;Ll;0;L;;;;;N;;;2C92;;2C92-2C94;COPTIC CAPITAL LETTER KAPA;Lu;0;L;;;;;N;;;;2C95;-2C95;COPTIC SMALL LETTER KAPA;Ll;0;L;;;;;N;;;2C94;;2C94-2C96;COPTIC CAPITAL LETTER LAULA;Lu;0;L;;;;;N;;;;2C97;-2C97;COPTIC SMALL LETTER LAULA;Ll;0;L;;;;;N;;;2C96;;2C96-2C98;COPTIC CAPITAL LETTER MI;Lu;0;L;;;;;N;;;;2C99;-2C99;COPTIC SMALL LETTER MI;Ll;0;L;;;;;N;;;2C98;;2C98-2C9A;COPTIC CAPITAL LETTER NI;Lu;0;L;;;;;N;;;;2C9B;-2C9B;COPTIC SMALL LETTER NI;Ll;0;L;;;;;N;;;2C9A;;2C9A-2C9C;COPTIC CAPITAL LETTER KSI;Lu;0;L;;;;;N;;;;2C9D;-2C9D;COPTIC SMALL LETTER KSI;Ll;0;L;;;;;N;;;2C9C;;2C9C-2C9E;COPTIC CAPITAL LETTER O;Lu;0;L;;;;;N;;;;2C9F;-2C9F;COPTIC SMALL LETTER O;Ll;0;L;;;;;N;;;2C9E;;2C9E-2CA0;COPTIC CAPITAL LETTER PI;Lu;0;L;;;;;N;;;;2CA1;-2CA1;COPTIC SMALL LETTER PI;Ll;0;L;;;;;N;;;2CA0;;2CA0-2CA2;COPTIC CAPITAL LETTER RO;Lu;0;L;;;;;N;;;;2CA3;-2CA3;COPTIC SMALL LETTER RO;Ll;0;L;;;;;N;;;2CA2;;2CA2-2CA4;COPTIC CAPITAL LETTER SIMA;Lu;0;L;;;;;N;;;;2CA5;-2CA5;COPTIC SMALL LETTER SIMA;Ll;0;L;;;;;N;;;2CA4;;2CA4-2CA6;COPTIC CAPITAL LETTER TAU;Lu;0;L;;;;;N;;;;2CA7;-2CA7;COPTIC SMALL LETTER TAU;Ll;0;L;;;;;N;;;2CA6;;2CA6-2CA8;COPTIC CAPITAL LETTER UA;Lu;0;L;;;;;N;;;;2CA9;-2CA9;COPTIC SMALL LETTER UA;Ll;0;L;;;;;N;;;2CA8;;2CA8-2CAA;COPTIC CAPITAL LETTER FI;Lu;0;L;;;;;N;;;;2CAB;-2CAB;COPTIC SMALL LETTER FI;Ll;0;L;;;;;N;;;2CAA;;2CAA-2CAC;COPTIC CAPITAL LETTER KHI;Lu;0;L;;;;;N;;;;2CAD;-2CAD;COPTIC SMALL LETTER KHI;Ll;0;L;;;;;N;;;2CAC;;2CAC-2CAE;COPTIC CAPITAL LETTER PSI;Lu;0;L;;;;;N;;;;2CAF;-2CAF;COPTIC SMALL LETTER PSI;Ll;0;L;;;;;N;;;2CAE;;2CAE-2CB0;COPTIC CAPITAL LETTER OOU;Lu;0;L;;;;;N;;;;2CB1;-2CB1;COPTIC SMALL LETTER OOU;Ll;0;L;;;;;N;;;2CB0;;2CB0-2CB2;COPTIC CAPITAL LETTER DIALECT-P ALEF;Lu;0;L;;;;;N;;;;2CB3;-2CB3;COPTIC SMALL LETTER DIALECT-P ALEF;Ll;0;L;;;;;N;;;2CB2;;2CB2-2CB4;COPTIC CAPITAL LETTER OLD COPTIC AIN;Lu;0;L;;;;;N;;;;2CB5;-2CB5;COPTIC SMALL LETTER OLD COPTIC AIN;Ll;0;L;;;;;N;;;2CB4;;2CB4-2CB6;COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE;Lu;0;L;;;;;N;;;;2CB7;-2CB7;COPTIC SMALL LETTER CRYPTOGRAMMIC EIE;Ll;0;L;;;;;N;;;2CB6;;2CB6-2CB8;COPTIC CAPITAL LETTER DIALECT-P KAPA;Lu;0;L;;;;;N;;;;2CB9;-2CB9;COPTIC SMALL LETTER DIALECT-P KAPA;Ll;0;L;;;;;N;;;2CB8;;2CB8-2CBA;COPTIC CAPITAL LETTER DIALECT-P NI;Lu;0;L;;;;;N;;;;2CBB;-2CBB;COPTIC SMALL LETTER DIALECT-P NI;Ll;0;L;;;;;N;;;2CBA;;2CBA-2CBC;COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI;Lu;0;L;;;;;N;;;;2CBD;-2CBD;COPTIC SMALL LETTER CRYPTOGRAMMIC NI;Ll;0;L;;;;;N;;;2CBC;;2CBC-2CBE;COPTIC CAPITAL LETTER OLD COPTIC OOU;Lu;0;L;;;;;N;;;;2CBF;-2CBF;COPTIC SMALL LETTER OLD COPTIC OOU;Ll;0;L;;;;;N;;;2CBE;;2CBE-2CC0;COPTIC CAPITAL LETTER SAMPI;Lu;0;L;;;;;N;;;;2CC1;-2CC1;COPTIC SMALL LETTER SAMPI;Ll;0;L;;;;;N;;;2CC0;;2CC0-2CC2;COPTIC CAPITAL LETTER CROSSED SHEI;Lu;0;L;;;;;N;;;;2CC3;-2CC3;COPTIC SMALL LETTER CROSSED SHEI;Ll;0;L;;;;;N;;;2CC2;;2CC2-2CC4;COPTIC CAPITAL LETTER OLD COPTIC SHEI;Lu;0;L;;;;;N;;;;2CC5;-2CC5;COPTIC SMALL LETTER OLD COPTIC SHEI;Ll;0;L;;;;;N;;;2CC4;;2CC4-2CC6;COPTIC CAPITAL LETTER OLD COPTIC ESH;Lu;0;L;;;;;N;;;;2CC7;-2CC7;COPTIC SMALL LETTER OLD COPTIC ESH;Ll;0;L;;;;;N;;;2CC6;;2CC6-2CC8;COPTIC CAPITAL LETTER AKHMIMIC KHEI;Lu;0;L;;;;;N;;;;2CC9;-2CC9;COPTIC SMALL LETTER AKHMIMIC KHEI;Ll;0;L;;;;;N;;;2CC8;;2CC8-2CCA;COPTIC CAPITAL LETTER DIALECT-P HORI;Lu;0;L;;;;;N;;;;2CCB;-2CCB;COPTIC SMALL LETTER DIALECT-P HORI;Ll;0;L;;;;;N;;;2CCA;;2CCA-2CCC;COPTIC CAPITAL LETTER OLD COPTIC HORI;Lu;0;L;;;;;N;;;;2CCD;-2CCD;COPTIC SMALL LETTER OLD COPTIC HORI;Ll;0;L;;;;;N;;;2CCC;;2CCC-2CCE;COPTIC CAPITAL LETTER OLD COPTIC HA;Lu;0;L;;;;;N;;;;2CCF;-2CCF;COPTIC SMALL LETTER OLD COPTIC HA;Ll;0;L;;;;;N;;;2CCE;;2CCE-2CD0;COPTIC CAPITAL LETTER L-SHAPED HA;Lu;0;L;;;;;N;;;;2CD1;-2CD1;COPTIC SMALL LETTER L-SHAPED HA;Ll;0;L;;;;;N;;;2CD0;;2CD0-2CD2;COPTIC CAPITAL LETTER OLD COPTIC HEI;Lu;0;L;;;;;N;;;;2CD3;-2CD3;COPTIC SMALL LETTER OLD COPTIC HEI;Ll;0;L;;;;;N;;;2CD2;;2CD2-2CD4;COPTIC CAPITAL LETTER OLD COPTIC HAT;Lu;0;L;;;;;N;;;;2CD5;-2CD5;COPTIC SMALL LETTER OLD COPTIC HAT;Ll;0;L;;;;;N;;;2CD4;;2CD4-2CD6;COPTIC CAPITAL LETTER OLD COPTIC GANGIA;Lu;0;L;;;;;N;;;;2CD7;-2CD7;COPTIC SMALL LETTER OLD COPTIC GANGIA;Ll;0;L;;;;;N;;;2CD6;;2CD6-2CD8;COPTIC CAPITAL LETTER OLD COPTIC DJA;Lu;0;L;;;;;N;;;;2CD9;-2CD9;COPTIC SMALL LETTER OLD COPTIC DJA;Ll;0;L;;;;;N;;;2CD8;;2CD8-2CDA;COPTIC CAPITAL LETTER OLD COPTIC SHIMA;Lu;0;L;;;;;N;;;;2CDB;-2CDB;COPTIC SMALL LETTER OLD COPTIC SHIMA;Ll;0;L;;;;;N;;;2CDA;;2CDA-2CDC;COPTIC CAPITAL LETTER OLD NUBIAN SHIMA;Lu;0;L;;;;;N;;;;2CDD;-2CDD;COPTIC SMALL LETTER OLD NUBIAN SHIMA;Ll;0;L;;;;;N;;;2CDC;;2CDC-2CDE;COPTIC CAPITAL LETTER OLD NUBIAN NGI;Lu;0;L;;;;;N;;;;2CDF;-2CDF;COPTIC SMALL LETTER OLD NUBIAN NGI;Ll;0;L;;;;;N;;;2CDE;;2CDE-2CE0;COPTIC CAPITAL LETTER OLD NUBIAN NYI;Lu;0;L;;;;;N;;;;2CE1;-2CE1;COPTIC SMALL LETTER OLD NUBIAN NYI;Ll;0;L;;;;;N;;;2CE0;;2CE0-2CE2;COPTIC CAPITAL LETTER OLD NUBIAN WAU;Lu;0;L;;;;;N;;;;2CE3;-2CE3;COPTIC SMALL LETTER OLD NUBIAN WAU;Ll;0;L;;;;;N;;;2CE2;;2CE2-2CE4;COPTIC SYMBOL KAI;Ll;0;L;;;;;N;;;;;-2CE5;COPTIC SYMBOL MI RO;So;0;ON;;;;;N;;;;;-2CE6;COPTIC SYMBOL PI RO;So;0;ON;;;;;N;;;;;-2CE7;COPTIC SYMBOL STAUROS;So;0;ON;;;;;N;;;;;-2CE8;COPTIC SYMBOL TAU RO;So;0;ON;;;;;N;;;;;-2CE9;COPTIC SYMBOL KHI RO;So;0;ON;;;;;N;;;;;-2CEA;COPTIC SYMBOL SHIMA SIMA;So;0;ON;;;;;N;;;;;-2CF9;COPTIC OLD NUBIAN FULL STOP;Po;0;ON;;;;;N;;;;;-2CFA;COPTIC OLD NUBIAN DIRECT QUESTION MARK;Po;0;ON;;;;;N;;;;;-2CFB;COPTIC OLD NUBIAN INDIRECT QUESTION MARK;Po;0;ON;;;;;N;;;;;-2CFC;COPTIC OLD NUBIAN VERSE DIVIDER;Po;0;ON;;;;;N;;;;;-2CFD;COPTIC FRACTION ONE HALF;No;0;ON;;;;1/2;N;;;;;-2CFE;COPTIC FULL STOP;Po;0;ON;;;;;N;;;;;-2CFF;COPTIC MORPHOLOGICAL DIVIDER;Po;0;ON;;;;;N;;;;;-2D00;GEORGIAN SMALL LETTER AN;Ll;0;L;;;;;N;;Khutsuri;10A0;;10A0-2D01;GEORGIAN SMALL LETTER BAN;Ll;0;L;;;;;N;;Khutsuri;10A1;;10A1-2D02;GEORGIAN SMALL LETTER GAN;Ll;0;L;;;;;N;;Khutsuri;10A2;;10A2-2D03;GEORGIAN SMALL LETTER DON;Ll;0;L;;;;;N;;Khutsuri;10A3;;10A3-2D04;GEORGIAN SMALL LETTER EN;Ll;0;L;;;;;N;;Khutsuri;10A4;;10A4-2D05;GEORGIAN SMALL LETTER VIN;Ll;0;L;;;;;N;;Khutsuri;10A5;;10A5-2D06;GEORGIAN SMALL LETTER ZEN;Ll;0;L;;;;;N;;Khutsuri;10A6;;10A6-2D07;GEORGIAN SMALL LETTER TAN;Ll;0;L;;;;;N;;Khutsuri;10A7;;10A7-2D08;GEORGIAN SMALL LETTER IN;Ll;0;L;;;;;N;;Khutsuri;10A8;;10A8-2D09;GEORGIAN SMALL LETTER KAN;Ll;0;L;;;;;N;;Khutsuri;10A9;;10A9-2D0A;GEORGIAN SMALL LETTER LAS;Ll;0;L;;;;;N;;Khutsuri;10AA;;10AA-2D0B;GEORGIAN SMALL LETTER MAN;Ll;0;L;;;;;N;;Khutsuri;10AB;;10AB-2D0C;GEORGIAN SMALL LETTER NAR;Ll;0;L;;;;;N;;Khutsuri;10AC;;10AC-2D0D;GEORGIAN SMALL LETTER ON;Ll;0;L;;;;;N;;Khutsuri;10AD;;10AD-2D0E;GEORGIAN SMALL LETTER PAR;Ll;0;L;;;;;N;;Khutsuri;10AE;;10AE-2D0F;GEORGIAN SMALL LETTER ZHAR;Ll;0;L;;;;;N;;Khutsuri;10AF;;10AF-2D10;GEORGIAN SMALL LETTER RAE;Ll;0;L;;;;;N;;Khutsuri;10B0;;10B0-2D11;GEORGIAN SMALL LETTER SAN;Ll;0;L;;;;;N;;Khutsuri;10B1;;10B1-2D12;GEORGIAN SMALL LETTER TAR;Ll;0;L;;;;;N;;Khutsuri;10B2;;10B2-2D13;GEORGIAN SMALL LETTER UN;Ll;0;L;;;;;N;;Khutsuri;10B3;;10B3-2D14;GEORGIAN SMALL LETTER PHAR;Ll;0;L;;;;;N;;Khutsuri;10B4;;10B4-2D15;GEORGIAN SMALL LETTER KHAR;Ll;0;L;;;;;N;;Khutsuri;10B5;;10B5-2D16;GEORGIAN SMALL LETTER GHAN;Ll;0;L;;;;;N;;Khutsuri;10B6;;10B6-2D17;GEORGIAN SMALL LETTER QAR;Ll;0;L;;;;;N;;Khutsuri;10B7;;10B7-2D18;GEORGIAN SMALL LETTER SHIN;Ll;0;L;;;;;N;;Khutsuri;10B8;;10B8-2D19;GEORGIAN SMALL LETTER CHIN;Ll;0;L;;;;;N;;Khutsuri;10B9;;10B9-2D1A;GEORGIAN SMALL LETTER CAN;Ll;0;L;;;;;N;;Khutsuri;10BA;;10BA-2D1B;GEORGIAN SMALL LETTER JIL;Ll;0;L;;;;;N;;Khutsuri;10BB;;10BB-2D1C;GEORGIAN SMALL LETTER CIL;Ll;0;L;;;;;N;;Khutsuri;10BC;;10BC-2D1D;GEORGIAN SMALL LETTER CHAR;Ll;0;L;;;;;N;;Khutsuri;10BD;;10BD-2D1E;GEORGIAN SMALL LETTER XAN;Ll;0;L;;;;;N;;Khutsuri;10BE;;10BE-2D1F;GEORGIAN SMALL LETTER JHAN;Ll;0;L;;;;;N;;Khutsuri;10BF;;10BF-2D20;GEORGIAN SMALL LETTER HAE;Ll;0;L;;;;;N;;Khutsuri;10C0;;10C0-2D21;GEORGIAN SMALL LETTER HE;Ll;0;L;;;;;N;;Khutsuri;10C1;;10C1-2D22;GEORGIAN SMALL LETTER HIE;Ll;0;L;;;;;N;;Khutsuri;10C2;;10C2-2D23;GEORGIAN SMALL LETTER WE;Ll;0;L;;;;;N;;Khutsuri;10C3;;10C3-2D24;GEORGIAN SMALL LETTER HAR;Ll;0;L;;;;;N;;Khutsuri;10C4;;10C4-2D25;GEORGIAN SMALL LETTER HOE;Ll;0;L;;;;;N;;Khutsuri;10C5;;10C5-2D30;TIFINAGH LETTER YA;Lo;0;L;;;;;N;;;;;-2D31;TIFINAGH LETTER YAB;Lo;0;L;;;;;N;;;;;-2D32;TIFINAGH LETTER YABH;Lo;0;L;;;;;N;;;;;-2D33;TIFINAGH LETTER YAG;Lo;0;L;;;;;N;;;;;-2D34;TIFINAGH LETTER YAGHH;Lo;0;L;;;;;N;;;;;-2D35;TIFINAGH LETTER BERBER ACADEMY YAJ;Lo;0;L;;;;;N;;;;;-2D36;TIFINAGH LETTER YAJ;Lo;0;L;;;;;N;;;;;-2D37;TIFINAGH LETTER YAD;Lo;0;L;;;;;N;;;;;-2D38;TIFINAGH LETTER YADH;Lo;0;L;;;;;N;;;;;-2D39;TIFINAGH LETTER YADD;Lo;0;L;;;;;N;;;;;-2D3A;TIFINAGH LETTER YADDH;Lo;0;L;;;;;N;;;;;-2D3B;TIFINAGH LETTER YEY;Lo;0;L;;;;;N;;;;;-2D3C;TIFINAGH LETTER YAF;Lo;0;L;;;;;N;;;;;-2D3D;TIFINAGH LETTER YAK;Lo;0;L;;;;;N;;;;;-2D3E;TIFINAGH LETTER TUAREG YAK;Lo;0;L;;;;;N;;;;;-2D3F;TIFINAGH LETTER YAKHH;Lo;0;L;;;;;N;;;;;-2D40;TIFINAGH LETTER YAH;Lo;0;L;;;;;N;;Tuareg yab;;;-2D41;TIFINAGH LETTER BERBER ACADEMY YAH;Lo;0;L;;;;;N;;;;;-2D42;TIFINAGH LETTER TUAREG YAH;Lo;0;L;;;;;N;;;;;-2D43;TIFINAGH LETTER YAHH;Lo;0;L;;;;;N;;;;;-2D44;TIFINAGH LETTER YAA;Lo;0;L;;;;;N;;;;;-2D45;TIFINAGH LETTER YAKH;Lo;0;L;;;;;N;;;;;-2D46;TIFINAGH LETTER TUAREG YAKH;Lo;0;L;;;;;N;;;;;-2D47;TIFINAGH LETTER YAQ;Lo;0;L;;;;;N;;;;;-2D48;TIFINAGH LETTER TUAREG YAQ;Lo;0;L;;;;;N;;;;;-2D49;TIFINAGH LETTER YI;Lo;0;L;;;;;N;;;;;-2D4A;TIFINAGH LETTER YAZH;Lo;0;L;;;;;N;;;;;-2D4B;TIFINAGH LETTER AHAGGAR YAZH;Lo;0;L;;;;;N;;;;;-2D4C;TIFINAGH LETTER TUAREG YAZH;Lo;0;L;;;;;N;;;;;-2D4D;TIFINAGH LETTER YAL;Lo;0;L;;;;;N;;;;;-2D4E;TIFINAGH LETTER YAM;Lo;0;L;;;;;N;;;;;-2D4F;TIFINAGH LETTER YAN;Lo;0;L;;;;;N;;;;;-2D50;TIFINAGH LETTER TUAREG YAGN;Lo;0;L;;;;;N;;;;;-2D51;TIFINAGH LETTER TUAREG YANG;Lo;0;L;;;;;N;;;;;-2D52;TIFINAGH LETTER YAP;Lo;0;L;;;;;N;;;;;-2D53;TIFINAGH LETTER YU;Lo;0;L;;;;;N;;Tuareg yaw;;;-2D54;TIFINAGH LETTER YAR;Lo;0;L;;;;;N;;;;;-2D55;TIFINAGH LETTER YARR;Lo;0;L;;;;;N;;;;;-2D56;TIFINAGH LETTER YAGH;Lo;0;L;;;;;N;;;;;-2D57;TIFINAGH LETTER TUAREG YAGH;Lo;0;L;;;;;N;;;;;-2D58;TIFINAGH LETTER AYER YAGH;Lo;0;L;;;;;N;;Adrar yaj;;;-2D59;TIFINAGH LETTER YAS;Lo;0;L;;;;;N;;;;;-2D5A;TIFINAGH LETTER YASS;Lo;0;L;;;;;N;;;;;-2D5B;TIFINAGH LETTER YASH;Lo;0;L;;;;;N;;;;;-2D5C;TIFINAGH LETTER YAT;Lo;0;L;;;;;N;;;;;-2D5D;TIFINAGH LETTER YATH;Lo;0;L;;;;;N;;;;;-2D5E;TIFINAGH LETTER YACH;Lo;0;L;;;;;N;;;;;-2D5F;TIFINAGH LETTER YATT;Lo;0;L;;;;;N;;;;;-2D60;TIFINAGH LETTER YAV;Lo;0;L;;;;;N;;;;;-2D61;TIFINAGH LETTER YAW;Lo;0;L;;;;;N;;;;;-2D62;TIFINAGH LETTER YAY;Lo;0;L;;;;;N;;;;;-2D63;TIFINAGH LETTER YAZ;Lo;0;L;;;;;N;;;;;-2D64;TIFINAGH LETTER TAWELLEMET YAZ;Lo;0;L;;;;;N;;harpoon yaz;;;-2D65;TIFINAGH LETTER YAZZ;Lo;0;L;;;;;N;;;;;-2D6F;TIFINAGH MODIFIER LETTER LABIALIZATION MARK;Lm;0;L;<super> 2D61;;;;N;;tamatart;;;-2D80;ETHIOPIC SYLLABLE LOA;Lo;0;L;;;;;N;;;;;-2D81;ETHIOPIC SYLLABLE MOA;Lo;0;L;;;;;N;;;;;-2D82;ETHIOPIC SYLLABLE ROA;Lo;0;L;;;;;N;;;;;-2D83;ETHIOPIC SYLLABLE SOA;Lo;0;L;;;;;N;;;;;-2D84;ETHIOPIC SYLLABLE SHOA;Lo;0;L;;;;;N;;;;;-2D85;ETHIOPIC SYLLABLE BOA;Lo;0;L;;;;;N;;;;;-2D86;ETHIOPIC SYLLABLE TOA;Lo;0;L;;;;;N;;;;;-2D87;ETHIOPIC SYLLABLE COA;Lo;0;L;;;;;N;;;;;-2D88;ETHIOPIC SYLLABLE NOA;Lo;0;L;;;;;N;;;;;-2D89;ETHIOPIC SYLLABLE NYOA;Lo;0;L;;;;;N;;;;;-2D8A;ETHIOPIC SYLLABLE GLOTTAL OA;Lo;0;L;;;;;N;;;;;-2D8B;ETHIOPIC SYLLABLE ZOA;Lo;0;L;;;;;N;;;;;-2D8C;ETHIOPIC SYLLABLE DOA;Lo;0;L;;;;;N;;;;;-2D8D;ETHIOPIC SYLLABLE DDOA;Lo;0;L;;;;;N;;;;;-2D8E;ETHIOPIC SYLLABLE JOA;Lo;0;L;;;;;N;;;;;-2D8F;ETHIOPIC SYLLABLE THOA;Lo;0;L;;;;;N;;;;;-2D90;ETHIOPIC SYLLABLE CHOA;Lo;0;L;;;;;N;;;;;-2D91;ETHIOPIC SYLLABLE PHOA;Lo;0;L;;;;;N;;;;;-2D92;ETHIOPIC SYLLABLE POA;Lo;0;L;;;;;N;;;;;-2D93;ETHIOPIC SYLLABLE GGWA;Lo;0;L;;;;;N;;;;;-2D94;ETHIOPIC SYLLABLE GGWI;Lo;0;L;;;;;N;;;;;-2D95;ETHIOPIC SYLLABLE GGWEE;Lo;0;L;;;;;N;;;;;-2D96;ETHIOPIC SYLLABLE GGWE;Lo;0;L;;;;;N;;;;;-2DA0;ETHIOPIC SYLLABLE SSA;Lo;0;L;;;;;N;;;;;-2DA1;ETHIOPIC SYLLABLE SSU;Lo;0;L;;;;;N;;;;;-2DA2;ETHIOPIC SYLLABLE SSI;Lo;0;L;;;;;N;;;;;-2DA3;ETHIOPIC SYLLABLE SSAA;Lo;0;L;;;;;N;;;;;-2DA4;ETHIOPIC SYLLABLE SSEE;Lo;0;L;;;;;N;;;;;-2DA5;ETHIOPIC SYLLABLE SSE;Lo;0;L;;;;;N;;;;;-2DA6;ETHIOPIC SYLLABLE SSO;Lo;0;L;;;;;N;;;;;-2DA8;ETHIOPIC SYLLABLE CCA;Lo;0;L;;;;;N;;;;;-2DA9;ETHIOPIC SYLLABLE CCU;Lo;0;L;;;;;N;;;;;-2DAA;ETHIOPIC SYLLABLE CCI;Lo;0;L;;;;;N;;;;;-2DAB;ETHIOPIC SYLLABLE CCAA;Lo;0;L;;;;;N;;;;;-2DAC;ETHIOPIC SYLLABLE CCEE;Lo;0;L;;;;;N;;;;;-2DAD;ETHIOPIC SYLLABLE CCE;Lo;0;L;;;;;N;;;;;-2DAE;ETHIOPIC SYLLABLE CCO;Lo;0;L;;;;;N;;;;;-2DB0;ETHIOPIC SYLLABLE ZZA;Lo;0;L;;;;;N;;;;;-2DB1;ETHIOPIC SYLLABLE ZZU;Lo;0;L;;;;;N;;;;;-2DB2;ETHIOPIC SYLLABLE ZZI;Lo;0;L;;;;;N;;;;;-2DB3;ETHIOPIC SYLLABLE ZZAA;Lo;0;L;;;;;N;;;;;-2DB4;ETHIOPIC SYLLABLE ZZEE;Lo;0;L;;;;;N;;;;;-2DB5;ETHIOPIC SYLLABLE ZZE;Lo;0;L;;;;;N;;;;;-2DB6;ETHIOPIC SYLLABLE ZZO;Lo;0;L;;;;;N;;;;;-2DB8;ETHIOPIC SYLLABLE CCHA;Lo;0;L;;;;;N;;;;;-2DB9;ETHIOPIC SYLLABLE CCHU;Lo;0;L;;;;;N;;;;;-2DBA;ETHIOPIC SYLLABLE CCHI;Lo;0;L;;;;;N;;;;;-2DBB;ETHIOPIC SYLLABLE CCHAA;Lo;0;L;;;;;N;;;;;-2DBC;ETHIOPIC SYLLABLE CCHEE;Lo;0;L;;;;;N;;;;;-2DBD;ETHIOPIC SYLLABLE CCHE;Lo;0;L;;;;;N;;;;;-2DBE;ETHIOPIC SYLLABLE CCHO;Lo;0;L;;;;;N;;;;;-2DC0;ETHIOPIC SYLLABLE QYA;Lo;0;L;;;;;N;;;;;-2DC1;ETHIOPIC SYLLABLE QYU;Lo;0;L;;;;;N;;;;;-2DC2;ETHIOPIC SYLLABLE QYI;Lo;0;L;;;;;N;;;;;-2DC3;ETHIOPIC SYLLABLE QYAA;Lo;0;L;;;;;N;;;;;-2DC4;ETHIOPIC SYLLABLE QYEE;Lo;0;L;;;;;N;;;;;-2DC5;ETHIOPIC SYLLABLE QYE;Lo;0;L;;;;;N;;;;;-2DC6;ETHIOPIC SYLLABLE QYO;Lo;0;L;;;;;N;;;;;-2DC8;ETHIOPIC SYLLABLE KYA;Lo;0;L;;;;;N;;;;;-2DC9;ETHIOPIC SYLLABLE KYU;Lo;0;L;;;;;N;;;;;-2DCA;ETHIOPIC SYLLABLE KYI;Lo;0;L;;;;;N;;;;;-2DCB;ETHIOPIC SYLLABLE KYAA;Lo;0;L;;;;;N;;;;;-2DCC;ETHIOPIC SYLLABLE KYEE;Lo;0;L;;;;;N;;;;;-2DCD;ETHIOPIC SYLLABLE KYE;Lo;0;L;;;;;N;;;;;-2DCE;ETHIOPIC SYLLABLE KYO;Lo;0;L;;;;;N;;;;;-2DD0;ETHIOPIC SYLLABLE XYA;Lo;0;L;;;;;N;;;;;-2DD1;ETHIOPIC SYLLABLE XYU;Lo;0;L;;;;;N;;;;;-2DD2;ETHIOPIC SYLLABLE XYI;Lo;0;L;;;;;N;;;;;-2DD3;ETHIOPIC SYLLABLE XYAA;Lo;0;L;;;;;N;;;;;-2DD4;ETHIOPIC SYLLABLE XYEE;Lo;0;L;;;;;N;;;;;-2DD5;ETHIOPIC SYLLABLE XYE;Lo;0;L;;;;;N;;;;;-2DD6;ETHIOPIC SYLLABLE XYO;Lo;0;L;;;;;N;;;;;-2DD8;ETHIOPIC SYLLABLE GYA;Lo;0;L;;;;;N;;;;;-2DD9;ETHIOPIC SYLLABLE GYU;Lo;0;L;;;;;N;;;;;-2DDA;ETHIOPIC SYLLABLE GYI;Lo;0;L;;;;;N;;;;;-2DDB;ETHIOPIC SYLLABLE GYAA;Lo;0;L;;;;;N;;;;;-2DDC;ETHIOPIC SYLLABLE GYEE;Lo;0;L;;;;;N;;;;;-2DDD;ETHIOPIC SYLLABLE GYE;Lo;0;L;;;;;N;;;;;-2DDE;ETHIOPIC SYLLABLE GYO;Lo;0;L;;;;;N;;;;;-2E00;RIGHT ANGLE SUBSTITUTION MARKER;Po;0;ON;;;;;N;;;;;-2E01;RIGHT ANGLE DOTTED SUBSTITUTION MARKER;Po;0;ON;;;;;N;;;;;-2E02;LEFT SUBSTITUTION BRACKET;Pi;0;ON;;;;;Y;;;;;-2E03;RIGHT SUBSTITUTION BRACKET;Pf;0;ON;;;;;Y;;;;;-2E04;LEFT DOTTED SUBSTITUTION BRACKET;Pi;0;ON;;;;;Y;;;;;-2E05;RIGHT DOTTED SUBSTITUTION BRACKET;Pf;0;ON;;;;;Y;;;;;-2E06;RAISED INTERPOLATION MARKER;Po;0;ON;;;;;N;;;;;-2E07;RAISED DOTTED INTERPOLATION MARKER;Po;0;ON;;;;;N;;;;;-2E08;DOTTED TRANSPOSITION MARKER;Po;0;ON;;;;;N;;;;;-2E09;LEFT TRANSPOSITION BRACKET;Pi;0;ON;;;;;Y;;;;;-2E0A;RIGHT TRANSPOSITION BRACKET;Pf;0;ON;;;;;Y;;;;;-2E0B;RAISED SQUARE;Po;0;ON;;;;;N;;;;;-2E0C;LEFT RAISED OMISSION BRACKET;Pi;0;ON;;;;;Y;;;;;-2E0D;RIGHT RAISED OMISSION BRACKET;Pf;0;ON;;;;;Y;;;;;-2E0E;EDITORIAL CORONIS;Po;0;ON;;;;;N;;;;;-2E0F;PARAGRAPHOS;Po;0;ON;;;;;N;;;;;-2E10;FORKED PARAGRAPHOS;Po;0;ON;;;;;N;;;;;-2E11;REVERSED FORKED PARAGRAPHOS;Po;0;ON;;;;;N;;;;;-2E12;HYPODIASTOLE;Po;0;ON;;;;;N;;;;;-2E13;DOTTED OBELOS;Po;0;ON;;;;;N;;;;;-2E14;DOWNWARDS ANCORA;Po;0;ON;;;;;N;;;;;-2E15;UPWARDS ANCORA;Po;0;ON;;;;;N;;;;;-2E16;DOTTED RIGHT-POINTING ANGLE;Po;0;ON;;;;;N;;;;;-2E17;DOUBLE OBLIQUE HYPHEN;Pd;0;ON;;;;;N;;;;;-2E1C;LEFT LOW PARAPHRASE BRACKET;Pi;0;ON;;;;;Y;;;;;-2E1D;RIGHT LOW PARAPHRASE BRACKET;Pf;0;ON;;;;;Y;;;;;-2E80;CJK RADICAL REPEAT;So;0;ON;;;;;N;;;;;-2E81;CJK RADICAL CLIFF;So;0;ON;;;;;N;;;;;-2E82;CJK RADICAL SECOND ONE;So;0;ON;;;;;N;;;;;-2E83;CJK RADICAL SECOND TWO;So;0;ON;;;;;N;;;;;-2E84;CJK RADICAL SECOND THREE;So;0;ON;;;;;N;;;;;-2E85;CJK RADICAL PERSON;So;0;ON;;;;;N;;;;;-2E86;CJK RADICAL BOX;So;0;ON;;;;;N;;;;;-2E87;CJK RADICAL TABLE;So;0;ON;;;;;N;;;;;-2E88;CJK RADICAL KNIFE ONE;So;0;ON;;;;;N;;;;;-2E89;CJK RADICAL KNIFE TWO;So;0;ON;;;;;N;;;;;-2E8A;CJK RADICAL DIVINATION;So;0;ON;;;;;N;;;;;-2E8B;CJK RADICAL SEAL;So;0;ON;;;;;N;;;;;-2E8C;CJK RADICAL SMALL ONE;So;0;ON;;;;;N;;;;;-2E8D;CJK RADICAL SMALL TWO;So;0;ON;;;;;N;;;;;-2E8E;CJK RADICAL LAME ONE;So;0;ON;;;;;N;;;;;-2E8F;CJK RADICAL LAME TWO;So;0;ON;;;;;N;;;;;-2E90;CJK RADICAL LAME THREE;So;0;ON;;;;;N;;;;;-2E91;CJK RADICAL LAME FOUR;So;0;ON;;;;;N;;;;;-2E92;CJK RADICAL SNAKE;So;0;ON;;;;;N;;;;;-2E93;CJK RADICAL THREAD;So;0;ON;;;;;N;;;;;-2E94;CJK RADICAL SNOUT ONE;So;0;ON;;;;;N;;;;;-2E95;CJK RADICAL SNOUT TWO;So;0;ON;;;;;N;;;;;-2E96;CJK RADICAL HEART ONE;So;0;ON;;;;;N;;;;;-2E97;CJK RADICAL HEART TWO;So;0;ON;;;;;N;;;;;-2E98;CJK RADICAL HAND;So;0;ON;;;;;N;;;;;-2E99;CJK RADICAL RAP;So;0;ON;;;;;N;;;;;-2E9B;CJK RADICAL CHOKE;So;0;ON;;;;;N;;;;;-2E9C;CJK RADICAL SUN;So;0;ON;;;;;N;;;;;-2E9D;CJK RADICAL MOON;So;0;ON;;;;;N;;;;;-2E9E;CJK RADICAL DEATH;So;0;ON;;;;;N;;;;;-2E9F;CJK RADICAL MOTHER;So;0;ON;<compat> 6BCD;;;;N;;;;;-2EA0;CJK RADICAL CIVILIAN;So;0;ON;;;;;N;;;;;-2EA1;CJK RADICAL WATER ONE;So;0;ON;;;;;N;;;;;-2EA2;CJK RADICAL WATER TWO;So;0;ON;;;;;N;;;;;-2EA3;CJK RADICAL FIRE;So;0;ON;;;;;N;;;;;-2EA4;CJK RADICAL PAW ONE;So;0;ON;;;;;N;;;;;-2EA5;CJK RADICAL PAW TWO;So;0;ON;;;;;N;;;;;-2EA6;CJK RADICAL SIMPLIFIED HALF TREE TRUNK;So;0;ON;;;;;N;;;;;-2EA7;CJK RADICAL COW;So;0;ON;;;;;N;;;;;-2EA8;CJK RADICAL DOG;So;0;ON;;;;;N;;;;;-2EA9;CJK RADICAL JADE;So;0;ON;;;;;N;;;;;-2EAA;CJK RADICAL BOLT OF CLOTH;So;0;ON;;;;;N;;;;;-2EAB;CJK RADICAL EYE;So;0;ON;;;;;N;;;;;-2EAC;CJK RADICAL SPIRIT ONE;So;0;ON;;;;;N;;;;;-2EAD;CJK RADICAL SPIRIT TWO;So;0;ON;;;;;N;;;;;-2EAE;CJK RADICAL BAMBOO;So;0;ON;;;;;N;;;;;-2EAF;CJK RADICAL SILK;So;0;ON;;;;;N;;;;;-2EB0;CJK RADICAL C-SIMPLIFIED SILK;So;0;ON;;;;;N;;;;;-2EB1;CJK RADICAL NET ONE;So;0;ON;;;;;N;;;;;-2EB2;CJK RADICAL NET TWO;So;0;ON;;;;;N;;;;;-2EB3;CJK RADICAL NET THREE;So;0;ON;;;;;N;;;;;-2EB4;CJK RADICAL NET FOUR;So;0;ON;;;;;N;;;;;-2EB5;CJK RADICAL MESH;So;0;ON;;;;;N;;;;;-2EB6;CJK RADICAL SHEEP;So;0;ON;;;;;N;;;;;-2EB7;CJK RADICAL RAM;So;0;ON;;;;;N;;;;;-2EB8;CJK RADICAL EWE;So;0;ON;;;;;N;;;;;-2EB9;CJK RADICAL OLD;So;0;ON;;;;;N;;;;;-2EBA;CJK RADICAL BRUSH ONE;So;0;ON;;;;;N;;;;;-2EBB;CJK RADICAL BRUSH TWO;So;0;ON;;;;;N;;;;;-2EBC;CJK RADICAL MEAT;So;0;ON;;;;;N;;;;;-2EBD;CJK RADICAL MORTAR;So;0;ON;;;;;N;;;;;-2EBE;CJK RADICAL GRASS ONE;So;0;ON;;;;;N;;;;;-2EBF;CJK RADICAL GRASS TWO;So;0;ON;;;;;N;;;;;-2EC0;CJK RADICAL GRASS THREE;So;0;ON;;;;;N;;;;;-2EC1;CJK RADICAL TIGER;So;0;ON;;;;;N;;;;;-2EC2;CJK RADICAL CLOTHES;So;0;ON;;;;;N;;;;;-2EC3;CJK RADICAL WEST ONE;So;0;ON;;;;;N;;;;;-2EC4;CJK RADICAL WEST TWO;So;0;ON;;;;;N;;;;;-2EC5;CJK RADICAL C-SIMPLIFIED SEE;So;0;ON;;;;;N;;;;;-2EC6;CJK RADICAL SIMPLIFIED HORN;So;0;ON;;;;;N;;;;;-2EC7;CJK RADICAL HORN;So;0;ON;;;;;N;;;;;-2EC8;CJK RADICAL C-SIMPLIFIED SPEECH;So;0;ON;;;;;N;;;;;-2EC9;CJK RADICAL C-SIMPLIFIED SHELL;So;0;ON;;;;;N;;;;;-2ECA;CJK RADICAL FOOT;So;0;ON;;;;;N;;;;;-2ECB;CJK RADICAL C-SIMPLIFIED CART;So;0;ON;;;;;N;;;;;-2ECC;CJK RADICAL SIMPLIFIED WALK;So;0;ON;;;;;N;;;;;-2ECD;CJK RADICAL WALK ONE;So;0;ON;;;;;N;;;;;-2ECE;CJK RADICAL WALK TWO;So;0;ON;;;;;N;;;;;-2ECF;CJK RADICAL CITY;So;0;ON;;;;;N;;;;;-2ED0;CJK RADICAL C-SIMPLIFIED GOLD;So;0;ON;;;;;N;;;;;-2ED1;CJK RADICAL LONG ONE;So;0;ON;;;;;N;;;;;-2ED2;CJK RADICAL LONG TWO;So;0;ON;;;;;N;;;;;-2ED3;CJK RADICAL C-SIMPLIFIED LONG;So;0;ON;;;;;N;;;;;-2ED4;CJK RADICAL C-SIMPLIFIED GATE;So;0;ON;;;;;N;;;;;-2ED5;CJK RADICAL MOUND ONE;So;0;ON;;;;;N;;;;;-2ED6;CJK RADICAL MOUND TWO;So;0;ON;;;;;N;;;;;-2ED7;CJK RADICAL RAIN;So;0;ON;;;;;N;;;;;-2ED8;CJK RADICAL BLUE;So;0;ON;;;;;N;;;;;-2ED9;CJK RADICAL C-SIMPLIFIED TANNED LEATHER;So;0;ON;;;;;N;;;;;-2EDA;CJK RADICAL C-SIMPLIFIED LEAF;So;0;ON;;;;;N;;;;;-2EDB;CJK RADICAL C-SIMPLIFIED WIND;So;0;ON;;;;;N;;;;;-2EDC;CJK RADICAL C-SIMPLIFIED FLY;So;0;ON;;;;;N;;;;;-2EDD;CJK RADICAL EAT ONE;So;0;ON;;;;;N;;;;;-2EDE;CJK RADICAL EAT TWO;So;0;ON;;;;;N;;;;;-2EDF;CJK RADICAL EAT THREE;So;0;ON;;;;;N;;;;;-2EE0;CJK RADICAL C-SIMPLIFIED EAT;So;0;ON;;;;;N;;;;;-2EE1;CJK RADICAL HEAD;So;0;ON;;;;;N;;;;;-2EE2;CJK RADICAL C-SIMPLIFIED HORSE;So;0;ON;;;;;N;;;;;-2EE3;CJK RADICAL BONE;So;0;ON;;;;;N;;;;;-2EE4;CJK RADICAL GHOST;So;0;ON;;;;;N;;;;;-2EE5;CJK RADICAL C-SIMPLIFIED FISH;So;0;ON;;;;;N;;;;;-2EE6;CJK RADICAL C-SIMPLIFIED BIRD;So;0;ON;;;;;N;;;;;-2EE7;CJK RADICAL C-SIMPLIFIED SALT;So;0;ON;;;;;N;;;;;-2EE8;CJK RADICAL SIMPLIFIED WHEAT;So;0;ON;;;;;N;;;;;-2EE9;CJK RADICAL SIMPLIFIED YELLOW;So;0;ON;;;;;N;;;;;-2EEA;CJK RADICAL C-SIMPLIFIED FROG;So;0;ON;;;;;N;;;;;-2EEB;CJK RADICAL J-SIMPLIFIED EVEN;So;0;ON;;;;;N;;;;;-2EEC;CJK RADICAL C-SIMPLIFIED EVEN;So;0;ON;;;;;N;;;;;-2EED;CJK RADICAL J-SIMPLIFIED TOOTH;So;0;ON;;;;;N;;;;;-2EEE;CJK RADICAL C-SIMPLIFIED TOOTH;So;0;ON;;;;;N;;;;;-2EEF;CJK RADICAL J-SIMPLIFIED DRAGON;So;0;ON;;;;;N;;;;;-2EF0;CJK RADICAL C-SIMPLIFIED DRAGON;So;0;ON;;;;;N;;;;;-2EF1;CJK RADICAL TURTLE;So;0;ON;;;;;N;;;;;-2EF2;CJK RADICAL J-SIMPLIFIED TURTLE;So;0;ON;;;;;N;;;;;-2EF3;CJK RADICAL C-SIMPLIFIED TURTLE;So;0;ON;<compat> 9F9F;;;;N;;;;;-2F00;KANGXI RADICAL ONE;So;0;ON;<compat> 4E00;;;;N;;;;;-2F01;KANGXI RADICAL LINE;So;0;ON;<compat> 4E28;;;;N;;;;;-2F02;KANGXI RADICAL DOT;So;0;ON;<compat> 4E36;;;;N;;;;;-2F03;KANGXI RADICAL SLASH;So;0;ON;<compat> 4E3F;;;;N;;;;;-2F04;KANGXI RADICAL SECOND;So;0;ON;<compat> 4E59;;;;N;;;;;-2F05;KANGXI RADICAL HOOK;So;0;ON;<compat> 4E85;;;;N;;;;;-2F06;KANGXI RADICAL TWO;So;0;ON;<compat> 4E8C;;;;N;;;;;-2F07;KANGXI RADICAL LID;So;0;ON;<compat> 4EA0;;;;N;;;;;-2F08;KANGXI RADICAL MAN;So;0;ON;<compat> 4EBA;;;;N;;;;;-2F09;KANGXI RADICAL LEGS;So;0;ON;<compat> 513F;;;;N;;;;;-2F0A;KANGXI RADICAL ENTER;So;0;ON;<compat> 5165;;;;N;;;;;-2F0B;KANGXI RADICAL EIGHT;So;0;ON;<compat> 516B;;;;N;;;;;-2F0C;KANGXI RADICAL DOWN BOX;So;0;ON;<compat> 5182;;;;N;;;;;-2F0D;KANGXI RADICAL COVER;So;0;ON;<compat> 5196;;;;N;;;;;-2F0E;KANGXI RADICAL ICE;So;0;ON;<compat> 51AB;;;;N;;;;;-2F0F;KANGXI RADICAL TABLE;So;0;ON;<compat> 51E0;;;;N;;;;;-2F10;KANGXI RADICAL OPEN BOX;So;0;ON;<compat> 51F5;;;;N;;;;;-2F11;KANGXI RADICAL KNIFE;So;0;ON;<compat> 5200;;;;N;;;;;-2F12;KANGXI RADICAL POWER;So;0;ON;<compat> 529B;;;;N;;;;;-2F13;KANGXI RADICAL WRAP;So;0;ON;<compat> 52F9;;;;N;;;;;-2F14;KANGXI RADICAL SPOON;So;0;ON;<compat> 5315;;;;N;;;;;-2F15;KANGXI RADICAL RIGHT OPEN BOX;So;0;ON;<compat> 531A;;;;N;;;;;-2F16;KANGXI RADICAL HIDING ENCLOSURE;So;0;ON;<compat> 5338;;;;N;;;;;-2F17;KANGXI RADICAL TEN;So;0;ON;<compat> 5341;;;;N;;;;;-2F18;KANGXI RADICAL DIVINATION;So;0;ON;<compat> 535C;;;;N;;;;;-2F19;KANGXI RADICAL SEAL;So;0;ON;<compat> 5369;;;;N;;;;;-2F1A;KANGXI RADICAL CLIFF;So;0;ON;<compat> 5382;;;;N;;;;;-2F1B;KANGXI RADICAL PRIVATE;So;0;ON;<compat> 53B6;;;;N;;;;;-2F1C;KANGXI RADICAL AGAIN;So;0;ON;<compat> 53C8;;;;N;;;;;-2F1D;KANGXI RADICAL MOUTH;So;0;ON;<compat> 53E3;;;;N;;;;;-2F1E;KANGXI RADICAL ENCLOSURE;So;0;ON;<compat> 56D7;;;;N;;;;;-2F1F;KANGXI RADICAL EARTH;So;0;ON;<compat> 571F;;;;N;;;;;-2F20;KANGXI RADICAL SCHOLAR;So;0;ON;<compat> 58EB;;;;N;;;;;-2F21;KANGXI RADICAL GO;So;0;ON;<compat> 5902;;;;N;;;;;-2F22;KANGXI RADICAL GO SLOWLY;So;0;ON;<compat> 590A;;;;N;;;;;-2F23;KANGXI RADICAL EVENING;So;0;ON;<compat> 5915;;;;N;;;;;-2F24;KANGXI RADICAL BIG;So;0;ON;<compat> 5927;;;;N;;;;;-2F25;KANGXI RADICAL WOMAN;So;0;ON;<compat> 5973;;;;N;;;;;-2F26;KANGXI RADICAL CHILD;So;0;ON;<compat> 5B50;;;;N;;;;;-2F27;KANGXI RADICAL ROOF;So;0;ON;<compat> 5B80;;;;N;;;;;-2F28;KANGXI RADICAL INCH;So;0;ON;<compat> 5BF8;;;;N;;;;;-2F29;KANGXI RADICAL SMALL;So;0;ON;<compat> 5C0F;;;;N;;;;;-2F2A;KANGXI RADICAL LAME;So;0;ON;<compat> 5C22;;;;N;;;;;-2F2B;KANGXI RADICAL CORPSE;So;0;ON;<compat> 5C38;;;;N;;;;;-2F2C;KANGXI RADICAL SPROUT;So;0;ON;<compat> 5C6E;;;;N;;;;;-2F2D;KANGXI RADICAL MOUNTAIN;So;0;ON;<compat> 5C71;;;;N;;;;;-2F2E;KANGXI RADICAL RIVER;So;0;ON;<compat> 5DDB;;;;N;;;;;-2F2F;KANGXI RADICAL WORK;So;0;ON;<compat> 5DE5;;;;N;;;;;-2F30;KANGXI RADICAL ONESELF;So;0;ON;<compat> 5DF1;;;;N;;;;;-2F31;KANGXI RADICAL TURBAN;So;0;ON;<compat> 5DFE;;;;N;;;;;-2F32;KANGXI RADICAL DRY;So;0;ON;<compat> 5E72;;;;N;;;;;-2F33;KANGXI RADICAL SHORT THREAD;So;0;ON;<compat> 5E7A;;;;N;;;;;-2F34;KANGXI RADICAL DOTTED CLIFF;So;0;ON;<compat> 5E7F;;;;N;;;;;-2F35;KANGXI RADICAL LONG STRIDE;So;0;ON;<compat> 5EF4;;;;N;;;;;-2F36;KANGXI RADICAL TWO HANDS;So;0;ON;<compat> 5EFE;;;;N;;;;;-2F37;KANGXI RADICAL SHOOT;So;0;ON;<compat> 5F0B;;;;N;;;;;-2F38;KANGXI RADICAL BOW;So;0;ON;<compat> 5F13;;;;N;;;;;-2F39;KANGXI RADICAL SNOUT;So;0;ON;<compat> 5F50;;;;N;;;;;-2F3A;KANGXI RADICAL BRISTLE;So;0;ON;<compat> 5F61;;;;N;;;;;-2F3B;KANGXI RADICAL STEP;So;0;ON;<compat> 5F73;;;;N;;;;;-2F3C;KANGXI RADICAL HEART;So;0;ON;<compat> 5FC3;;;;N;;;;;-2F3D;KANGXI RADICAL HALBERD;So;0;ON;<compat> 6208;;;;N;;;;;-2F3E;KANGXI RADICAL DOOR;So;0;ON;<compat> 6236;;;;N;;;;;-2F3F;KANGXI RADICAL HAND;So;0;ON;<compat> 624B;;;;N;;;;;-2F40;KANGXI RADICAL BRANCH;So;0;ON;<compat> 652F;;;;N;;;;;-2F41;KANGXI RADICAL RAP;So;0;ON;<compat> 6534;;;;N;;;;;-2F42;KANGXI RADICAL SCRIPT;So;0;ON;<compat> 6587;;;;N;;;;;-2F43;KANGXI RADICAL DIPPER;So;0;ON;<compat> 6597;;;;N;;;;;-2F44;KANGXI RADICAL AXE;So;0;ON;<compat> 65A4;;;;N;;;;;-2F45;KANGXI RADICAL SQUARE;So;0;ON;<compat> 65B9;;;;N;;;;;-2F46;KANGXI RADICAL NOT;So;0;ON;<compat> 65E0;;;;N;;;;;-2F47;KANGXI RADICAL SUN;So;0;ON;<compat> 65E5;;;;N;;;;;-2F48;KANGXI RADICAL SAY;So;0;ON;<compat> 66F0;;;;N;;;;;-2F49;KANGXI RADICAL MOON;So;0;ON;<compat> 6708;;;;N;;;;;-2F4A;KANGXI RADICAL TREE;So;0;ON;<compat> 6728;;;;N;;;;;-2F4B;KANGXI RADICAL LACK;So;0;ON;<compat> 6B20;;;;N;;;;;-2F4C;KANGXI RADICAL STOP;So;0;ON;<compat> 6B62;;;;N;;;;;-2F4D;KANGXI RADICAL DEATH;So;0;ON;<compat> 6B79;;;;N;;;;;-2F4E;KANGXI RADICAL WEAPON;So;0;ON;<compat> 6BB3;;;;N;;;;;-2F4F;KANGXI RADICAL DO NOT;So;0;ON;<compat> 6BCB;;;;N;;;;;-2F50;KANGXI RADICAL COMPARE;So;0;ON;<compat> 6BD4;;;;N;;;;;-2F51;KANGXI RADICAL FUR;So;0;ON;<compat> 6BDB;;;;N;;;;;-2F52;KANGXI RADICAL CLAN;So;0;ON;<compat> 6C0F;;;;N;;;;;-2F53;KANGXI RADICAL STEAM;So;0;ON;<compat> 6C14;;;;N;;;;;-2F54;KANGXI RADICAL WATER;So;0;ON;<compat> 6C34;;;;N;;;;;-2F55;KANGXI RADICAL FIRE;So;0;ON;<compat> 706B;;;;N;;;;;-2F56;KANGXI RADICAL CLAW;So;0;ON;<compat> 722A;;;;N;;;;;-2F57;KANGXI RADICAL FATHER;So;0;ON;<compat> 7236;;;;N;;;;;-2F58;KANGXI RADICAL DOUBLE X;So;0;ON;<compat> 723B;;;;N;;;;;-2F59;KANGXI RADICAL HALF TREE TRUNK;So;0;ON;<compat> 723F;;;;N;;;;;-2F5A;KANGXI RADICAL SLICE;So;0;ON;<compat> 7247;;;;N;;;;;-2F5B;KANGXI RADICAL FANG;So;0;ON;<compat> 7259;;;;N;;;;;-2F5C;KANGXI RADICAL COW;So;0;ON;<compat> 725B;;;;N;;;;;-2F5D;KANGXI RADICAL DOG;So;0;ON;<compat> 72AC;;;;N;;;;;-2F5E;KANGXI RADICAL PROFOUND;So;0;ON;<compat> 7384;;;;N;;;;;-2F5F;KANGXI RADICAL JADE;So;0;ON;<compat> 7389;;;;N;;;;;-2F60;KANGXI RADICAL MELON;So;0;ON;<compat> 74DC;;;;N;;;;;-2F61;KANGXI RADICAL TILE;So;0;ON;<compat> 74E6;;;;N;;;;;-2F62;KANGXI RADICAL SWEET;So;0;ON;<compat> 7518;;;;N;;;;;-2F63;KANGXI RADICAL LIFE;So;0;ON;<compat> 751F;;;;N;;;;;-2F64;KANGXI RADICAL USE;So;0;ON;<compat> 7528;;;;N;;;;;-2F65;KANGXI RADICAL FIELD;So;0;ON;<compat> 7530;;;;N;;;;;-2F66;KANGXI RADICAL BOLT OF CLOTH;So;0;ON;<compat> 758B;;;;N;;;;;-2F67;KANGXI RADICAL SICKNESS;So;0;ON;<compat> 7592;;;;N;;;;;-2F68;KANGXI RADICAL DOTTED TENT;So;0;ON;<compat> 7676;;;;N;;;;;-2F69;KANGXI RADICAL WHITE;So;0;ON;<compat> 767D;;;;N;;;;;-2F6A;KANGXI RADICAL SKIN;So;0;ON;<compat> 76AE;;;;N;;;;;-2F6B;KANGXI RADICAL DISH;So;0;ON;<compat> 76BF;;;;N;;;;;-2F6C;KANGXI RADICAL EYE;So;0;ON;<compat> 76EE;;;;N;;;;;-2F6D;KANGXI RADICAL SPEAR;So;0;ON;<compat> 77DB;;;;N;;;;;-2F6E;KANGXI RADICAL ARROW;So;0;ON;<compat> 77E2;;;;N;;;;;-2F6F;KANGXI RADICAL STONE;So;0;ON;<compat> 77F3;;;;N;;;;;-2F70;KANGXI RADICAL SPIRIT;So;0;ON;<compat> 793A;;;;N;;;;;-2F71;KANGXI RADICAL TRACK;So;0;ON;<compat> 79B8;;;;N;;;;;-2F72;KANGXI RADICAL GRAIN;So;0;ON;<compat> 79BE;;;;N;;;;;-2F73;KANGXI RADICAL CAVE;So;0;ON;<compat> 7A74;;;;N;;;;;-2F74;KANGXI RADICAL STAND;So;0;ON;<compat> 7ACB;;;;N;;;;;-2F75;KANGXI RADICAL BAMBOO;So;0;ON;<compat> 7AF9;;;;N;;;;;-2F76;KANGXI RADICAL RICE;So;0;ON;<compat> 7C73;;;;N;;;;;-2F77;KANGXI RADICAL SILK;So;0;ON;<compat> 7CF8;;;;N;;;;;-2F78;KANGXI RADICAL JAR;So;0;ON;<compat> 7F36;;;;N;;;;;-2F79;KANGXI RADICAL NET;So;0;ON;<compat> 7F51;;;;N;;;;;-2F7A;KANGXI RADICAL SHEEP;So;0;ON;<compat> 7F8A;;;;N;;;;;-2F7B;KANGXI RADICAL FEATHER;So;0;ON;<compat> 7FBD;;;;N;;;;;-2F7C;KANGXI RADICAL OLD;So;0;ON;<compat> 8001;;;;N;;;;;-2F7D;KANGXI RADICAL AND;So;0;ON;<compat> 800C;;;;N;;;;;-2F7E;KANGXI RADICAL PLOW;So;0;ON;<compat> 8012;;;;N;;;;;-2F7F;KANGXI RADICAL EAR;So;0;ON;<compat> 8033;;;;N;;;;;-2F80;KANGXI RADICAL BRUSH;So;0;ON;<compat> 807F;;;;N;;;;;-2F81;KANGXI RADICAL MEAT;So;0;ON;<compat> 8089;;;;N;;;;;-2F82;KANGXI RADICAL MINISTER;So;0;ON;<compat> 81E3;;;;N;;;;;-2F83;KANGXI RADICAL SELF;So;0;ON;<compat> 81EA;;;;N;;;;;-2F84;KANGXI RADICAL ARRIVE;So;0;ON;<compat> 81F3;;;;N;;;;;-2F85;KANGXI RADICAL MORTAR;So;0;ON;<compat> 81FC;;;;N;;;;;-2F86;KANGXI RADICAL TONGUE;So;0;ON;<compat> 820C;;;;N;;;;;-2F87;KANGXI RADICAL OPPOSE;So;0;ON;<compat> 821B;;;;N;;;;;-2F88;KANGXI RADICAL BOAT;So;0;ON;<compat> 821F;;;;N;;;;;-2F89;KANGXI RADICAL STOPPING;So;0;ON;<compat> 826E;;;;N;;;;;-2F8A;KANGXI RADICAL COLOR;So;0;ON;<compat> 8272;;;;N;;;;;-2F8B;KANGXI RADICAL GRASS;So;0;ON;<compat> 8278;;;;N;;;;;-2F8C;KANGXI RADICAL TIGER;So;0;ON;<compat> 864D;;;;N;;;;;-2F8D;KANGXI RADICAL INSECT;So;0;ON;<compat> 866B;;;;N;;;;;-2F8E;KANGXI RADICAL BLOOD;So;0;ON;<compat> 8840;;;;N;;;;;-2F8F;KANGXI RADICAL WALK ENCLOSURE;So;0;ON;<compat> 884C;;;;N;;;;;-2F90;KANGXI RADICAL CLOTHES;So;0;ON;<compat> 8863;;;;N;;;;;-2F91;KANGXI RADICAL WEST;So;0;ON;<compat> 897E;;;;N;;;;;-2F92;KANGXI RADICAL SEE;So;0;ON;<compat> 898B;;;;N;;;;;-2F93;KANGXI RADICAL HORN;So;0;ON;<compat> 89D2;;;;N;;;;;-2F94;KANGXI RADICAL SPEECH;So;0;ON;<compat> 8A00;;;;N;;;;;-2F95;KANGXI RADICAL VALLEY;So;0;ON;<compat> 8C37;;;;N;;;;;-2F96;KANGXI RADICAL BEAN;So;0;ON;<compat> 8C46;;;;N;;;;;-2F97;KANGXI RADICAL PIG;So;0;ON;<compat> 8C55;;;;N;;;;;-2F98;KANGXI RADICAL BADGER;So;0;ON;<compat> 8C78;;;;N;;;;;-2F99;KANGXI RADICAL SHELL;So;0;ON;<compat> 8C9D;;;;N;;;;;-2F9A;KANGXI RADICAL RED;So;0;ON;<compat> 8D64;;;;N;;;;;-2F9B;KANGXI RADICAL RUN;So;0;ON;<compat> 8D70;;;;N;;;;;-2F9C;KANGXI RADICAL FOOT;So;0;ON;<compat> 8DB3;;;;N;;;;;-2F9D;KANGXI RADICAL BODY;So;0;ON;<compat> 8EAB;;;;N;;;;;-2F9E;KANGXI RADICAL CART;So;0;ON;<compat> 8ECA;;;;N;;;;;-2F9F;KANGXI RADICAL BITTER;So;0;ON;<compat> 8F9B;;;;N;;;;;-2FA0;KANGXI RADICAL MORNING;So;0;ON;<compat> 8FB0;;;;N;;;;;-2FA1;KANGXI RADICAL WALK;So;0;ON;<compat> 8FB5;;;;N;;;;;-2FA2;KANGXI RADICAL CITY;So;0;ON;<compat> 9091;;;;N;;;;;-2FA3;KANGXI RADICAL WINE;So;0;ON;<compat> 9149;;;;N;;;;;-2FA4;KANGXI RADICAL DISTINGUISH;So;0;ON;<compat> 91C6;;;;N;;;;;-2FA5;KANGXI RADICAL VILLAGE;So;0;ON;<compat> 91CC;;;;N;;;;;-2FA6;KANGXI RADICAL GOLD;So;0;ON;<compat> 91D1;;;;N;;;;;-2FA7;KANGXI RADICAL LONG;So;0;ON;<compat> 9577;;;;N;;;;;-2FA8;KANGXI RADICAL GATE;So;0;ON;<compat> 9580;;;;N;;;;;-2FA9;KANGXI RADICAL MOUND;So;0;ON;<compat> 961C;;;;N;;;;;-2FAA;KANGXI RADICAL SLAVE;So;0;ON;<compat> 96B6;;;;N;;;;;-2FAB;KANGXI RADICAL SHORT TAILED BIRD;So;0;ON;<compat> 96B9;;;;N;;;;;-2FAC;KANGXI RADICAL RAIN;So;0;ON;<compat> 96E8;;;;N;;;;;-2FAD;KANGXI RADICAL BLUE;So;0;ON;<compat> 9751;;;;N;;;;;-2FAE;KANGXI RADICAL WRONG;So;0;ON;<compat> 975E;;;;N;;;;;-2FAF;KANGXI RADICAL FACE;So;0;ON;<compat> 9762;;;;N;;;;;-2FB0;KANGXI RADICAL LEATHER;So;0;ON;<compat> 9769;;;;N;;;;;-2FB1;KANGXI RADICAL TANNED LEATHER;So;0;ON;<compat> 97CB;;;;N;;;;;-2FB2;KANGXI RADICAL LEEK;So;0;ON;<compat> 97ED;;;;N;;;;;-2FB3;KANGXI RADICAL SOUND;So;0;ON;<compat> 97F3;;;;N;;;;;-2FB4;KANGXI RADICAL LEAF;So;0;ON;<compat> 9801;;;;N;;;;;-2FB5;KANGXI RADICAL WIND;So;0;ON;<compat> 98A8;;;;N;;;;;-2FB6;KANGXI RADICAL FLY;So;0;ON;<compat> 98DB;;;;N;;;;;-2FB7;KANGXI RADICAL EAT;So;0;ON;<compat> 98DF;;;;N;;;;;-2FB8;KANGXI RADICAL HEAD;So;0;ON;<compat> 9996;;;;N;;;;;-2FB9;KANGXI RADICAL FRAGRANT;So;0;ON;<compat> 9999;;;;N;;;;;-2FBA;KANGXI RADICAL HORSE;So;0;ON;<compat> 99AC;;;;N;;;;;-2FBB;KANGXI RADICAL BONE;So;0;ON;<compat> 9AA8;;;;N;;;;;-2FBC;KANGXI RADICAL TALL;So;0;ON;<compat> 9AD8;;;;N;;;;;-2FBD;KANGXI RADICAL HAIR;So;0;ON;<compat> 9ADF;;;;N;;;;;-2FBE;KANGXI RADICAL FIGHT;So;0;ON;<compat> 9B25;;;;N;;;;;-2FBF;KANGXI RADICAL SACRIFICIAL WINE;So;0;ON;<compat> 9B2F;;;;N;;;;;-2FC0;KANGXI RADICAL CAULDRON;So;0;ON;<compat> 9B32;;;;N;;;;;-2FC1;KANGXI RADICAL GHOST;So;0;ON;<compat> 9B3C;;;;N;;;;;-2FC2;KANGXI RADICAL FISH;So;0;ON;<compat> 9B5A;;;;N;;;;;-2FC3;KANGXI RADICAL BIRD;So;0;ON;<compat> 9CE5;;;;N;;;;;-2FC4;KANGXI RADICAL SALT;So;0;ON;<compat> 9E75;;;;N;;;;;-2FC5;KANGXI RADICAL DEER;So;0;ON;<compat> 9E7F;;;;N;;;;;-2FC6;KANGXI RADICAL WHEAT;So;0;ON;<compat> 9EA5;;;;N;;;;;-2FC7;KANGXI RADICAL HEMP;So;0;ON;<compat> 9EBB;;;;N;;;;;-2FC8;KANGXI RADICAL YELLOW;So;0;ON;<compat> 9EC3;;;;N;;;;;-2FC9;KANGXI RADICAL MILLET;So;0;ON;<compat> 9ECD;;;;N;;;;;-2FCA;KANGXI RADICAL BLACK;So;0;ON;<compat> 9ED1;;;;N;;;;;-2FCB;KANGXI RADICAL EMBROIDERY;So;0;ON;<compat> 9EF9;;;;N;;;;;-2FCC;KANGXI RADICAL FROG;So;0;ON;<compat> 9EFD;;;;N;;;;;-2FCD;KANGXI RADICAL TRIPOD;So;0;ON;<compat> 9F0E;;;;N;;;;;-2FCE;KANGXI RADICAL DRUM;So;0;ON;<compat> 9F13;;;;N;;;;;-2FCF;KANGXI RADICAL RAT;So;0;ON;<compat> 9F20;;;;N;;;;;-2FD0;KANGXI RADICAL NOSE;So;0;ON;<compat> 9F3B;;;;N;;;;;-2FD1;KANGXI RADICAL EVEN;So;0;ON;<compat> 9F4A;;;;N;;;;;-2FD2;KANGXI RADICAL TOOTH;So;0;ON;<compat> 9F52;;;;N;;;;;-2FD3;KANGXI RADICAL DRAGON;So;0;ON;<compat> 9F8D;;;;N;;;;;-2FD4;KANGXI RADICAL TURTLE;So;0;ON;<compat> 9F9C;;;;N;;;;;-2FD5;KANGXI RADICAL FLUTE;So;0;ON;<compat> 9FA0;;;;N;;;;;-2FF0;IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT;So;0;ON;;;;;N;;;;;-2FF1;IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO BELOW;So;0;ON;;;;;N;;;;;-2FF2;IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO MIDDLE AND RIGHT;So;0;ON;;;;;N;;;;;-2FF3;IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO MIDDLE AND BELOW;So;0;ON;;;;;N;;;;;-2FF4;IDEOGRAPHIC DESCRIPTION CHARACTER FULL SURROUND;So;0;ON;;;;;N;;;;;-2FF5;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM ABOVE;So;0;ON;;;;;N;;;;;-2FF6;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM BELOW;So;0;ON;;;;;N;;;;;-2FF7;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LEFT;So;0;ON;;;;;N;;;;;-2FF8;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER LEFT;So;0;ON;;;;;N;;;;;-2FF9;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER RIGHT;So;0;ON;;;;;N;;;;;-2FFA;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LOWER LEFT;So;0;ON;;;;;N;;;;;-2FFB;IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID;So;0;ON;;;;;N;;;;;-3000;IDEOGRAPHIC SPACE;Zs;0;WS;<wide> 0020;;;;N;;;;;-3001;IDEOGRAPHIC COMMA;Po;0;ON;;;;;N;;;;;-3002;IDEOGRAPHIC FULL STOP;Po;0;ON;;;;;N;IDEOGRAPHIC PERIOD;;;;-3003;DITTO MARK;Po;0;ON;;;;;N;;;;;-3004;JAPANESE INDUSTRIAL STANDARD SYMBOL;So;0;ON;;;;;N;;;;;-3005;IDEOGRAPHIC ITERATION MARK;Lm;0;L;;;;;N;;;;;-3006;IDEOGRAPHIC CLOSING MARK;Lo;0;L;;;;;N;;;;;-3007;IDEOGRAPHIC NUMBER ZERO;Nl;0;L;;;;0;N;;;;;-3008;LEFT ANGLE BRACKET;Ps;0;ON;;;;;Y;OPENING ANGLE BRACKET;;;;-3009;RIGHT ANGLE BRACKET;Pe;0;ON;;;;;Y;CLOSING ANGLE BRACKET;;;;-300A;LEFT DOUBLE ANGLE BRACKET;Ps;0;ON;;;;;Y;OPENING DOUBLE ANGLE BRACKET;;;;-300B;RIGHT DOUBLE ANGLE BRACKET;Pe;0;ON;;;;;Y;CLOSING DOUBLE ANGLE BRACKET;;;;-300C;LEFT CORNER BRACKET;Ps;0;ON;;;;;Y;OPENING CORNER BRACKET;;;;-300D;RIGHT CORNER BRACKET;Pe;0;ON;;;;;Y;CLOSING CORNER BRACKET;;;;-300E;LEFT WHITE CORNER BRACKET;Ps;0;ON;;;;;Y;OPENING WHITE CORNER BRACKET;;;;-300F;RIGHT WHITE CORNER BRACKET;Pe;0;ON;;;;;Y;CLOSING WHITE CORNER BRACKET;;;;-3010;LEFT BLACK LENTICULAR BRACKET;Ps;0;ON;;;;;Y;OPENING BLACK LENTICULAR BRACKET;;;;-3011;RIGHT BLACK LENTICULAR BRACKET;Pe;0;ON;;;;;Y;CLOSING BLACK LENTICULAR BRACKET;;;;-3012;POSTAL MARK;So;0;ON;;;;;N;;;;;-3013;GETA MARK;So;0;ON;;;;;N;;;;;-3014;LEFT TORTOISE SHELL BRACKET;Ps;0;ON;;;;;Y;OPENING TORTOISE SHELL BRACKET;;;;-3015;RIGHT TORTOISE SHELL BRACKET;Pe;0;ON;;;;;Y;CLOSING TORTOISE SHELL BRACKET;;;;-3016;LEFT WHITE LENTICULAR BRACKET;Ps;0;ON;;;;;Y;OPENING WHITE LENTICULAR BRACKET;;;;-3017;RIGHT WHITE LENTICULAR BRACKET;Pe;0;ON;;;;;Y;CLOSING WHITE LENTICULAR BRACKET;;;;-3018;LEFT WHITE TORTOISE SHELL BRACKET;Ps;0;ON;;;;;Y;OPENING WHITE TORTOISE SHELL BRACKET;;;;-3019;RIGHT WHITE TORTOISE SHELL BRACKET;Pe;0;ON;;;;;Y;CLOSING WHITE TORTOISE SHELL BRACKET;;;;-301A;LEFT WHITE SQUARE BRACKET;Ps;0;ON;;;;;Y;OPENING WHITE SQUARE BRACKET;;;;-301B;RIGHT WHITE SQUARE BRACKET;Pe;0;ON;;;;;Y;CLOSING WHITE SQUARE BRACKET;;;;-301C;WAVE DASH;Pd;0;ON;;;;;N;;;;;-301D;REVERSED DOUBLE PRIME QUOTATION MARK;Ps;0;ON;;;;;Y;;;;;-301E;DOUBLE PRIME QUOTATION MARK;Pe;0;ON;;;;;Y;;;;;-301F;LOW DOUBLE PRIME QUOTATION MARK;Pe;0;ON;;;;;Y;;;;;-3020;POSTAL MARK FACE;So;0;ON;;;;;N;;;;;-3021;HANGZHOU NUMERAL ONE;Nl;0;L;;;;1;N;;;;;-3022;HANGZHOU NUMERAL TWO;Nl;0;L;;;;2;N;;;;;-3023;HANGZHOU NUMERAL THREE;Nl;0;L;;;;3;N;;;;;-3024;HANGZHOU NUMERAL FOUR;Nl;0;L;;;;4;N;;;;;-3025;HANGZHOU NUMERAL FIVE;Nl;0;L;;;;5;N;;;;;-3026;HANGZHOU NUMERAL SIX;Nl;0;L;;;;6;N;;;;;-3027;HANGZHOU NUMERAL SEVEN;Nl;0;L;;;;7;N;;;;;-3028;HANGZHOU NUMERAL EIGHT;Nl;0;L;;;;8;N;;;;;-3029;HANGZHOU NUMERAL NINE;Nl;0;L;;;;9;N;;;;;-302A;IDEOGRAPHIC LEVEL TONE MARK;Mn;218;NSM;;;;;N;;;;;-302B;IDEOGRAPHIC RISING TONE MARK;Mn;228;NSM;;;;;N;;;;;-302C;IDEOGRAPHIC DEPARTING TONE MARK;Mn;232;NSM;;;;;N;;;;;-302D;IDEOGRAPHIC ENTERING TONE MARK;Mn;222;NSM;;;;;N;;;;;-302E;HANGUL SINGLE DOT TONE MARK;Mn;224;NSM;;;;;N;;;;;-302F;HANGUL DOUBLE DOT TONE MARK;Mn;224;NSM;;;;;N;;;;;-3030;WAVY DASH;Pd;0;ON;;;;;N;;;;;-3031;VERTICAL KANA REPEAT MARK;Lm;0;L;;;;;N;;;;;-3032;VERTICAL KANA REPEAT WITH VOICED SOUND MARK;Lm;0;L;;;;;N;;;;;-3033;VERTICAL KANA REPEAT MARK UPPER HALF;Lm;0;L;;;;;N;;;;;-3034;VERTICAL KANA REPEAT WITH VOICED SOUND MARK UPPER HALF;Lm;0;L;;;;;N;;;;;-3035;VERTICAL KANA REPEAT MARK LOWER HALF;Lm;0;L;;;;;N;;;;;-3036;CIRCLED POSTAL MARK;So;0;ON;<compat> 3012;;;;N;;;;;-3037;IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL;So;0;ON;;;;;N;;;;;-3038;HANGZHOU NUMERAL TEN;Nl;0;L;<compat> 5341;;;10;N;;;;;-3039;HANGZHOU NUMERAL TWENTY;Nl;0;L;<compat> 5344;;;20;N;;;;;-303A;HANGZHOU NUMERAL THIRTY;Nl;0;L;<compat> 5345;;;30;N;;;;;-303B;VERTICAL IDEOGRAPHIC ITERATION MARK;Lm;0;L;;;;;N;;;;;-303C;MASU MARK;Lo;0;L;;;;;N;;;;;-303D;PART ALTERNATION MARK;Po;0;ON;;;;;N;;;;;-303E;IDEOGRAPHIC VARIATION INDICATOR;So;0;ON;;;;;N;;;;;-303F;IDEOGRAPHIC HALF FILL SPACE;So;0;ON;;;;;N;;;;;-3041;HIRAGANA LETTER SMALL A;Lo;0;L;;;;;N;;;;;-3042;HIRAGANA LETTER A;Lo;0;L;;;;;N;;;;;-3043;HIRAGANA LETTER SMALL I;Lo;0;L;;;;;N;;;;;-3044;HIRAGANA LETTER I;Lo;0;L;;;;;N;;;;;-3045;HIRAGANA LETTER SMALL U;Lo;0;L;;;;;N;;;;;-3046;HIRAGANA LETTER U;Lo;0;L;;;;;N;;;;;-3047;HIRAGANA LETTER SMALL E;Lo;0;L;;;;;N;;;;;-3048;HIRAGANA LETTER E;Lo;0;L;;;;;N;;;;;-3049;HIRAGANA LETTER SMALL O;Lo;0;L;;;;;N;;;;;-304A;HIRAGANA LETTER O;Lo;0;L;;;;;N;;;;;-304B;HIRAGANA LETTER KA;Lo;0;L;;;;;N;;;;;-304C;HIRAGANA LETTER GA;Lo;0;L;304B 3099;;;;N;;;;;-304D;HIRAGANA LETTER KI;Lo;0;L;;;;;N;;;;;-304E;HIRAGANA LETTER GI;Lo;0;L;304D 3099;;;;N;;;;;-304F;HIRAGANA LETTER KU;Lo;0;L;;;;;N;;;;;-3050;HIRAGANA LETTER GU;Lo;0;L;304F 3099;;;;N;;;;;-3051;HIRAGANA LETTER KE;Lo;0;L;;;;;N;;;;;-3052;HIRAGANA LETTER GE;Lo;0;L;3051 3099;;;;N;;;;;-3053;HIRAGANA LETTER KO;Lo;0;L;;;;;N;;;;;-3054;HIRAGANA LETTER GO;Lo;0;L;3053 3099;;;;N;;;;;-3055;HIRAGANA LETTER SA;Lo;0;L;;;;;N;;;;;-3056;HIRAGANA LETTER ZA;Lo;0;L;3055 3099;;;;N;;;;;-3057;HIRAGANA LETTER SI;Lo;0;L;;;;;N;;;;;-3058;HIRAGANA LETTER ZI;Lo;0;L;3057 3099;;;;N;;;;;-3059;HIRAGANA LETTER SU;Lo;0;L;;;;;N;;;;;-305A;HIRAGANA LETTER ZU;Lo;0;L;3059 3099;;;;N;;;;;-305B;HIRAGANA LETTER SE;Lo;0;L;;;;;N;;;;;-305C;HIRAGANA LETTER ZE;Lo;0;L;305B 3099;;;;N;;;;;-305D;HIRAGANA LETTER SO;Lo;0;L;;;;;N;;;;;-305E;HIRAGANA LETTER ZO;Lo;0;L;305D 3099;;;;N;;;;;-305F;HIRAGANA LETTER TA;Lo;0;L;;;;;N;;;;;-3060;HIRAGANA LETTER DA;Lo;0;L;305F 3099;;;;N;;;;;-3061;HIRAGANA LETTER TI;Lo;0;L;;;;;N;;;;;-3062;HIRAGANA LETTER DI;Lo;0;L;3061 3099;;;;N;;;;;-3063;HIRAGANA LETTER SMALL TU;Lo;0;L;;;;;N;;;;;-3064;HIRAGANA LETTER TU;Lo;0;L;;;;;N;;;;;-3065;HIRAGANA LETTER DU;Lo;0;L;3064 3099;;;;N;;;;;-3066;HIRAGANA LETTER TE;Lo;0;L;;;;;N;;;;;-3067;HIRAGANA LETTER DE;Lo;0;L;3066 3099;;;;N;;;;;-3068;HIRAGANA LETTER TO;Lo;0;L;;;;;N;;;;;-3069;HIRAGANA LETTER DO;Lo;0;L;3068 3099;;;;N;;;;;-306A;HIRAGANA LETTER NA;Lo;0;L;;;;;N;;;;;-306B;HIRAGANA LETTER NI;Lo;0;L;;;;;N;;;;;-306C;HIRAGANA LETTER NU;Lo;0;L;;;;;N;;;;;-306D;HIRAGANA LETTER NE;Lo;0;L;;;;;N;;;;;-306E;HIRAGANA LETTER NO;Lo;0;L;;;;;N;;;;;-306F;HIRAGANA LETTER HA;Lo;0;L;;;;;N;;;;;-3070;HIRAGANA LETTER BA;Lo;0;L;306F 3099;;;;N;;;;;-3071;HIRAGANA LETTER PA;Lo;0;L;306F 309A;;;;N;;;;;-3072;HIRAGANA LETTER HI;Lo;0;L;;;;;N;;;;;-3073;HIRAGANA LETTER BI;Lo;0;L;3072 3099;;;;N;;;;;-3074;HIRAGANA LETTER PI;Lo;0;L;3072 309A;;;;N;;;;;-3075;HIRAGANA LETTER HU;Lo;0;L;;;;;N;;;;;-3076;HIRAGANA LETTER BU;Lo;0;L;3075 3099;;;;N;;;;;-3077;HIRAGANA LETTER PU;Lo;0;L;3075 309A;;;;N;;;;;-3078;HIRAGANA LETTER HE;Lo;0;L;;;;;N;;;;;-3079;HIRAGANA LETTER BE;Lo;0;L;3078 3099;;;;N;;;;;-307A;HIRAGANA LETTER PE;Lo;0;L;3078 309A;;;;N;;;;;-307B;HIRAGANA LETTER HO;Lo;0;L;;;;;N;;;;;-307C;HIRAGANA LETTER BO;Lo;0;L;307B 3099;;;;N;;;;;-307D;HIRAGANA LETTER PO;Lo;0;L;307B 309A;;;;N;;;;;-307E;HIRAGANA LETTER MA;Lo;0;L;;;;;N;;;;;-307F;HIRAGANA LETTER MI;Lo;0;L;;;;;N;;;;;-3080;HIRAGANA LETTER MU;Lo;0;L;;;;;N;;;;;-3081;HIRAGANA LETTER ME;Lo;0;L;;;;;N;;;;;-3082;HIRAGANA LETTER MO;Lo;0;L;;;;;N;;;;;-3083;HIRAGANA LETTER SMALL YA;Lo;0;L;;;;;N;;;;;-3084;HIRAGANA LETTER YA;Lo;0;L;;;;;N;;;;;-3085;HIRAGANA LETTER SMALL YU;Lo;0;L;;;;;N;;;;;-3086;HIRAGANA LETTER YU;Lo;0;L;;;;;N;;;;;-3087;HIRAGANA LETTER SMALL YO;Lo;0;L;;;;;N;;;;;-3088;HIRAGANA LETTER YO;Lo;0;L;;;;;N;;;;;-3089;HIRAGANA LETTER RA;Lo;0;L;;;;;N;;;;;-308A;HIRAGANA LETTER RI;Lo;0;L;;;;;N;;;;;-308B;HIRAGANA LETTER RU;Lo;0;L;;;;;N;;;;;-308C;HIRAGANA LETTER RE;Lo;0;L;;;;;N;;;;;-308D;HIRAGANA LETTER RO;Lo;0;L;;;;;N;;;;;-308E;HIRAGANA LETTER SMALL WA;Lo;0;L;;;;;N;;;;;-308F;HIRAGANA LETTER WA;Lo;0;L;;;;;N;;;;;-3090;HIRAGANA LETTER WI;Lo;0;L;;;;;N;;;;;-3091;HIRAGANA LETTER WE;Lo;0;L;;;;;N;;;;;-3092;HIRAGANA LETTER WO;Lo;0;L;;;;;N;;;;;-3093;HIRAGANA LETTER N;Lo;0;L;;;;;N;;;;;-3094;HIRAGANA LETTER VU;Lo;0;L;3046 3099;;;;N;;;;;-3095;HIRAGANA LETTER SMALL KA;Lo;0;L;;;;;N;;;;;-3096;HIRAGANA LETTER SMALL KE;Lo;0;L;;;;;N;;;;;-3099;COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK;Mn;8;NSM;;;;;N;NON-SPACING KATAKANA-HIRAGANA VOICED SOUND MARK;;;;-309A;COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK;Mn;8;NSM;;;;;N;NON-SPACING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK;;;;-309B;KATAKANA-HIRAGANA VOICED SOUND MARK;Sk;0;ON;<compat> 0020 3099;;;;N;;;;;-309C;KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK;Sk;0;ON;<compat> 0020 309A;;;;N;;;;;-309D;HIRAGANA ITERATION MARK;Lm;0;L;;;;;N;;;;;-309E;HIRAGANA VOICED ITERATION MARK;Lm;0;L;309D 3099;;;;N;;;;;-309F;HIRAGANA DIGRAPH YORI;Lo;0;L;<vertical> 3088 308A;;;;N;;;;;-30A0;KATAKANA-HIRAGANA DOUBLE HYPHEN;Pd;0;ON;;;;;N;;;;;-30A1;KATAKANA LETTER SMALL A;Lo;0;L;;;;;N;;;;;-30A2;KATAKANA LETTER A;Lo;0;L;;;;;N;;;;;-30A3;KATAKANA LETTER SMALL I;Lo;0;L;;;;;N;;;;;-30A4;KATAKANA LETTER I;Lo;0;L;;;;;N;;;;;-30A5;KATAKANA LETTER SMALL U;Lo;0;L;;;;;N;;;;;-30A6;KATAKANA LETTER U;Lo;0;L;;;;;N;;;;;-30A7;KATAKANA LETTER SMALL E;Lo;0;L;;;;;N;;;;;-30A8;KATAKANA LETTER E;Lo;0;L;;;;;N;;;;;-30A9;KATAKANA LETTER SMALL O;Lo;0;L;;;;;N;;;;;-30AA;KATAKANA LETTER O;Lo;0;L;;;;;N;;;;;-30AB;KATAKANA LETTER KA;Lo;0;L;;;;;N;;;;;-30AC;KATAKANA LETTER GA;Lo;0;L;30AB 3099;;;;N;;;;;-30AD;KATAKANA LETTER KI;Lo;0;L;;;;;N;;;;;-30AE;KATAKANA LETTER GI;Lo;0;L;30AD 3099;;;;N;;;;;-30AF;KATAKANA LETTER KU;Lo;0;L;;;;;N;;;;;-30B0;KATAKANA LETTER GU;Lo;0;L;30AF 3099;;;;N;;;;;-30B1;KATAKANA LETTER KE;Lo;0;L;;;;;N;;;;;-30B2;KATAKANA LETTER GE;Lo;0;L;30B1 3099;;;;N;;;;;-30B3;KATAKANA LETTER KO;Lo;0;L;;;;;N;;;;;-30B4;KATAKANA LETTER GO;Lo;0;L;30B3 3099;;;;N;;;;;-30B5;KATAKANA LETTER SA;Lo;0;L;;;;;N;;;;;-30B6;KATAKANA LETTER ZA;Lo;0;L;30B5 3099;;;;N;;;;;-30B7;KATAKANA LETTER SI;Lo;0;L;;;;;N;;;;;-30B8;KATAKANA LETTER ZI;Lo;0;L;30B7 3099;;;;N;;;;;-30B9;KATAKANA LETTER SU;Lo;0;L;;;;;N;;;;;-30BA;KATAKANA LETTER ZU;Lo;0;L;30B9 3099;;;;N;;;;;-30BB;KATAKANA LETTER SE;Lo;0;L;;;;;N;;;;;-30BC;KATAKANA LETTER ZE;Lo;0;L;30BB 3099;;;;N;;;;;-30BD;KATAKANA LETTER SO;Lo;0;L;;;;;N;;;;;-30BE;KATAKANA LETTER ZO;Lo;0;L;30BD 3099;;;;N;;;;;-30BF;KATAKANA LETTER TA;Lo;0;L;;;;;N;;;;;-30C0;KATAKANA LETTER DA;Lo;0;L;30BF 3099;;;;N;;;;;-30C1;KATAKANA LETTER TI;Lo;0;L;;;;;N;;;;;-30C2;KATAKANA LETTER DI;Lo;0;L;30C1 3099;;;;N;;;;;-30C3;KATAKANA LETTER SMALL TU;Lo;0;L;;;;;N;;;;;-30C4;KATAKANA LETTER TU;Lo;0;L;;;;;N;;;;;-30C5;KATAKANA LETTER DU;Lo;0;L;30C4 3099;;;;N;;;;;-30C6;KATAKANA LETTER TE;Lo;0;L;;;;;N;;;;;-30C7;KATAKANA LETTER DE;Lo;0;L;30C6 3099;;;;N;;;;;-30C8;KATAKANA LETTER TO;Lo;0;L;;;;;N;;;;;-30C9;KATAKANA LETTER DO;Lo;0;L;30C8 3099;;;;N;;;;;-30CA;KATAKANA LETTER NA;Lo;0;L;;;;;N;;;;;-30CB;KATAKANA LETTER NI;Lo;0;L;;;;;N;;;;;-30CC;KATAKANA LETTER NU;Lo;0;L;;;;;N;;;;;-30CD;KATAKANA LETTER NE;Lo;0;L;;;;;N;;;;;-30CE;KATAKANA LETTER NO;Lo;0;L;;;;;N;;;;;-30CF;KATAKANA LETTER HA;Lo;0;L;;;;;N;;;;;-30D0;KATAKANA LETTER BA;Lo;0;L;30CF 3099;;;;N;;;;;-30D1;KATAKANA LETTER PA;Lo;0;L;30CF 309A;;;;N;;;;;-30D2;KATAKANA LETTER HI;Lo;0;L;;;;;N;;;;;-30D3;KATAKANA LETTER BI;Lo;0;L;30D2 3099;;;;N;;;;;-30D4;KATAKANA LETTER PI;Lo;0;L;30D2 309A;;;;N;;;;;-30D5;KATAKANA LETTER HU;Lo;0;L;;;;;N;;;;;-30D6;KATAKANA LETTER BU;Lo;0;L;30D5 3099;;;;N;;;;;-30D7;KATAKANA LETTER PU;Lo;0;L;30D5 309A;;;;N;;;;;-30D8;KATAKANA LETTER HE;Lo;0;L;;;;;N;;;;;-30D9;KATAKANA LETTER BE;Lo;0;L;30D8 3099;;;;N;;;;;-30DA;KATAKANA LETTER PE;Lo;0;L;30D8 309A;;;;N;;;;;-30DB;KATAKANA LETTER HO;Lo;0;L;;;;;N;;;;;-30DC;KATAKANA LETTER BO;Lo;0;L;30DB 3099;;;;N;;;;;-30DD;KATAKANA LETTER PO;Lo;0;L;30DB 309A;;;;N;;;;;-30DE;KATAKANA LETTER MA;Lo;0;L;;;;;N;;;;;-30DF;KATAKANA LETTER MI;Lo;0;L;;;;;N;;;;;-30E0;KATAKANA LETTER MU;Lo;0;L;;;;;N;;;;;-30E1;KATAKANA LETTER ME;Lo;0;L;;;;;N;;;;;-30E2;KATAKANA LETTER MO;Lo;0;L;;;;;N;;;;;-30E3;KATAKANA LETTER SMALL YA;Lo;0;L;;;;;N;;;;;-30E4;KATAKANA LETTER YA;Lo;0;L;;;;;N;;;;;-30E5;KATAKANA LETTER SMALL YU;Lo;0;L;;;;;N;;;;;-30E6;KATAKANA LETTER YU;Lo;0;L;;;;;N;;;;;-30E7;KATAKANA LETTER SMALL YO;Lo;0;L;;;;;N;;;;;-30E8;KATAKANA LETTER YO;Lo;0;L;;;;;N;;;;;-30E9;KATAKANA LETTER RA;Lo;0;L;;;;;N;;;;;-30EA;KATAKANA LETTER RI;Lo;0;L;;;;;N;;;;;-30EB;KATAKANA LETTER RU;Lo;0;L;;;;;N;;;;;-30EC;KATAKANA LETTER RE;Lo;0;L;;;;;N;;;;;-30ED;KATAKANA LETTER RO;Lo;0;L;;;;;N;;;;;-30EE;KATAKANA LETTER SMALL WA;Lo;0;L;;;;;N;;;;;-30EF;KATAKANA LETTER WA;Lo;0;L;;;;;N;;;;;-30F0;KATAKANA LETTER WI;Lo;0;L;;;;;N;;;;;-30F1;KATAKANA LETTER WE;Lo;0;L;;;;;N;;;;;-30F2;KATAKANA LETTER WO;Lo;0;L;;;;;N;;;;;-30F3;KATAKANA LETTER N;Lo;0;L;;;;;N;;;;;-30F4;KATAKANA LETTER VU;Lo;0;L;30A6 3099;;;;N;;;;;-30F5;KATAKANA LETTER SMALL KA;Lo;0;L;;;;;N;;;;;-30F6;KATAKANA LETTER SMALL KE;Lo;0;L;;;;;N;;;;;-30F7;KATAKANA LETTER VA;Lo;0;L;30EF 3099;;;;N;;;;;-30F8;KATAKANA LETTER VI;Lo;0;L;30F0 3099;;;;N;;;;;-30F9;KATAKANA LETTER VE;Lo;0;L;30F1 3099;;;;N;;;;;-30FA;KATAKANA LETTER VO;Lo;0;L;30F2 3099;;;;N;;;;;-30FB;KATAKANA MIDDLE DOT;Po;0;ON;;;;;N;;;;;-30FC;KATAKANA-HIRAGANA PROLONGED SOUND MARK;Lm;0;L;;;;;N;;;;;-30FD;KATAKANA ITERATION MARK;Lm;0;L;;;;;N;;;;;-30FE;KATAKANA VOICED ITERATION MARK;Lm;0;L;30FD 3099;;;;N;;;;;-30FF;KATAKANA DIGRAPH KOTO;Lo;0;L;<vertical> 30B3 30C8;;;;N;;;;;-3105;BOPOMOFO LETTER B;Lo;0;L;;;;;N;;;;;-3106;BOPOMOFO LETTER P;Lo;0;L;;;;;N;;;;;-3107;BOPOMOFO LETTER M;Lo;0;L;;;;;N;;;;;-3108;BOPOMOFO LETTER F;Lo;0;L;;;;;N;;;;;-3109;BOPOMOFO LETTER D;Lo;0;L;;;;;N;;;;;-310A;BOPOMOFO LETTER T;Lo;0;L;;;;;N;;;;;-310B;BOPOMOFO LETTER N;Lo;0;L;;;;;N;;;;;-310C;BOPOMOFO LETTER L;Lo;0;L;;;;;N;;;;;-310D;BOPOMOFO LETTER G;Lo;0;L;;;;;N;;;;;-310E;BOPOMOFO LETTER K;Lo;0;L;;;;;N;;;;;-310F;BOPOMOFO LETTER H;Lo;0;L;;;;;N;;;;;-3110;BOPOMOFO LETTER J;Lo;0;L;;;;;N;;;;;-3111;BOPOMOFO LETTER Q;Lo;0;L;;;;;N;;;;;-3112;BOPOMOFO LETTER X;Lo;0;L;;;;;N;;;;;-3113;BOPOMOFO LETTER ZH;Lo;0;L;;;;;N;;;;;-3114;BOPOMOFO LETTER CH;Lo;0;L;;;;;N;;;;;-3115;BOPOMOFO LETTER SH;Lo;0;L;;;;;N;;;;;-3116;BOPOMOFO LETTER R;Lo;0;L;;;;;N;;;;;-3117;BOPOMOFO LETTER Z;Lo;0;L;;;;;N;;;;;-3118;BOPOMOFO LETTER C;Lo;0;L;;;;;N;;;;;-3119;BOPOMOFO LETTER S;Lo;0;L;;;;;N;;;;;-311A;BOPOMOFO LETTER A;Lo;0;L;;;;;N;;;;;-311B;BOPOMOFO LETTER O;Lo;0;L;;;;;N;;;;;-311C;BOPOMOFO LETTER E;Lo;0;L;;;;;N;;;;;-311D;BOPOMOFO LETTER EH;Lo;0;L;;;;;N;;;;;-311E;BOPOMOFO LETTER AI;Lo;0;L;;;;;N;;;;;-311F;BOPOMOFO LETTER EI;Lo;0;L;;;;;N;;;;;-3120;BOPOMOFO LETTER AU;Lo;0;L;;;;;N;;;;;-3121;BOPOMOFO LETTER OU;Lo;0;L;;;;;N;;;;;-3122;BOPOMOFO LETTER AN;Lo;0;L;;;;;N;;;;;-3123;BOPOMOFO LETTER EN;Lo;0;L;;;;;N;;;;;-3124;BOPOMOFO LETTER ANG;Lo;0;L;;;;;N;;;;;-3125;BOPOMOFO LETTER ENG;Lo;0;L;;;;;N;;;;;-3126;BOPOMOFO LETTER ER;Lo;0;L;;;;;N;;;;;-3127;BOPOMOFO LETTER I;Lo;0;L;;;;;N;;;;;-3128;BOPOMOFO LETTER U;Lo;0;L;;;;;N;;;;;-3129;BOPOMOFO LETTER IU;Lo;0;L;;;;;N;;;;;-312A;BOPOMOFO LETTER V;Lo;0;L;;;;;N;;;;;-312B;BOPOMOFO LETTER NG;Lo;0;L;;;;;N;;;;;-312C;BOPOMOFO LETTER GN;Lo;0;L;;;;;N;;;;;-3131;HANGUL LETTER KIYEOK;Lo;0;L;<compat> 1100;;;;N;HANGUL LETTER GIYEOG;;;;-3132;HANGUL LETTER SSANGKIYEOK;Lo;0;L;<compat> 1101;;;;N;HANGUL LETTER SSANG GIYEOG;;;;-3133;HANGUL LETTER KIYEOK-SIOS;Lo;0;L;<compat> 11AA;;;;N;HANGUL LETTER GIYEOG SIOS;;;;-3134;HANGUL LETTER NIEUN;Lo;0;L;<compat> 1102;;;;N;;;;;-3135;HANGUL LETTER NIEUN-CIEUC;Lo;0;L;<compat> 11AC;;;;N;HANGUL LETTER NIEUN JIEUJ;;;;-3136;HANGUL LETTER NIEUN-HIEUH;Lo;0;L;<compat> 11AD;;;;N;HANGUL LETTER NIEUN HIEUH;;;;-3137;HANGUL LETTER TIKEUT;Lo;0;L;<compat> 1103;;;;N;HANGUL LETTER DIGEUD;;;;-3138;HANGUL LETTER SSANGTIKEUT;Lo;0;L;<compat> 1104;;;;N;HANGUL LETTER SSANG DIGEUD;;;;-3139;HANGUL LETTER RIEUL;Lo;0;L;<compat> 1105;;;;N;HANGUL LETTER LIEUL;;;;-313A;HANGUL LETTER RIEUL-KIYEOK;Lo;0;L;<compat> 11B0;;;;N;HANGUL LETTER LIEUL GIYEOG;;;;-313B;HANGUL LETTER RIEUL-MIEUM;Lo;0;L;<compat> 11B1;;;;N;HANGUL LETTER LIEUL MIEUM;;;;-313C;HANGUL LETTER RIEUL-PIEUP;Lo;0;L;<compat> 11B2;;;;N;HANGUL LETTER LIEUL BIEUB;;;;-313D;HANGUL LETTER RIEUL-SIOS;Lo;0;L;<compat> 11B3;;;;N;HANGUL LETTER LIEUL SIOS;;;;-313E;HANGUL LETTER RIEUL-THIEUTH;Lo;0;L;<compat> 11B4;;;;N;HANGUL LETTER LIEUL TIEUT;;;;-313F;HANGUL LETTER RIEUL-PHIEUPH;Lo;0;L;<compat> 11B5;;;;N;HANGUL LETTER LIEUL PIEUP;;;;-3140;HANGUL LETTER RIEUL-HIEUH;Lo;0;L;<compat> 111A;;;;N;HANGUL LETTER LIEUL HIEUH;;;;-3141;HANGUL LETTER MIEUM;Lo;0;L;<compat> 1106;;;;N;;;;;-3142;HANGUL LETTER PIEUP;Lo;0;L;<compat> 1107;;;;N;HANGUL LETTER BIEUB;;;;-3143;HANGUL LETTER SSANGPIEUP;Lo;0;L;<compat> 1108;;;;N;HANGUL LETTER SSANG BIEUB;;;;-3144;HANGUL LETTER PIEUP-SIOS;Lo;0;L;<compat> 1121;;;;N;HANGUL LETTER BIEUB SIOS;;;;-3145;HANGUL LETTER SIOS;Lo;0;L;<compat> 1109;;;;N;;;;;-3146;HANGUL LETTER SSANGSIOS;Lo;0;L;<compat> 110A;;;;N;HANGUL LETTER SSANG SIOS;;;;-3147;HANGUL LETTER IEUNG;Lo;0;L;<compat> 110B;;;;N;;;;;-3148;HANGUL LETTER CIEUC;Lo;0;L;<compat> 110C;;;;N;HANGUL LETTER JIEUJ;;;;-3149;HANGUL LETTER SSANGCIEUC;Lo;0;L;<compat> 110D;;;;N;HANGUL LETTER SSANG JIEUJ;;;;-314A;HANGUL LETTER CHIEUCH;Lo;0;L;<compat> 110E;;;;N;HANGUL LETTER CIEUC;;;;-314B;HANGUL LETTER KHIEUKH;Lo;0;L;<compat> 110F;;;;N;HANGUL LETTER KIYEOK;;;;-314C;HANGUL LETTER THIEUTH;Lo;0;L;<compat> 1110;;;;N;HANGUL LETTER TIEUT;;;;-314D;HANGUL LETTER PHIEUPH;Lo;0;L;<compat> 1111;;;;N;HANGUL LETTER PIEUP;;;;-314E;HANGUL LETTER HIEUH;Lo;0;L;<compat> 1112;;;;N;;;;;-314F;HANGUL LETTER A;Lo;0;L;<compat> 1161;;;;N;;;;;-3150;HANGUL LETTER AE;Lo;0;L;<compat> 1162;;;;N;;;;;-3151;HANGUL LETTER YA;Lo;0;L;<compat> 1163;;;;N;;;;;-3152;HANGUL LETTER YAE;Lo;0;L;<compat> 1164;;;;N;;;;;-3153;HANGUL LETTER EO;Lo;0;L;<compat> 1165;;;;N;;;;;-3154;HANGUL LETTER E;Lo;0;L;<compat> 1166;;;;N;;;;;-3155;HANGUL LETTER YEO;Lo;0;L;<compat> 1167;;;;N;;;;;-3156;HANGUL LETTER YE;Lo;0;L;<compat> 1168;;;;N;;;;;-3157;HANGUL LETTER O;Lo;0;L;<compat> 1169;;;;N;;;;;-3158;HANGUL LETTER WA;Lo;0;L;<compat> 116A;;;;N;;;;;-3159;HANGUL LETTER WAE;Lo;0;L;<compat> 116B;;;;N;;;;;-315A;HANGUL LETTER OE;Lo;0;L;<compat> 116C;;;;N;;;;;-315B;HANGUL LETTER YO;Lo;0;L;<compat> 116D;;;;N;;;;;-315C;HANGUL LETTER U;Lo;0;L;<compat> 116E;;;;N;;;;;-315D;HANGUL LETTER WEO;Lo;0;L;<compat> 116F;;;;N;;;;;-315E;HANGUL LETTER WE;Lo;0;L;<compat> 1170;;;;N;;;;;-315F;HANGUL LETTER WI;Lo;0;L;<compat> 1171;;;;N;;;;;-3160;HANGUL LETTER YU;Lo;0;L;<compat> 1172;;;;N;;;;;-3161;HANGUL LETTER EU;Lo;0;L;<compat> 1173;;;;N;;;;;-3162;HANGUL LETTER YI;Lo;0;L;<compat> 1174;;;;N;;;;;-3163;HANGUL LETTER I;Lo;0;L;<compat> 1175;;;;N;;;;;-3164;HANGUL FILLER;Lo;0;L;<compat> 1160;;;;N;HANGUL CAE OM;;;;-3165;HANGUL LETTER SSANGNIEUN;Lo;0;L;<compat> 1114;;;;N;HANGUL LETTER SSANG NIEUN;;;;-3166;HANGUL LETTER NIEUN-TIKEUT;Lo;0;L;<compat> 1115;;;;N;HANGUL LETTER NIEUN DIGEUD;;;;-3167;HANGUL LETTER NIEUN-SIOS;Lo;0;L;<compat> 11C7;;;;N;HANGUL LETTER NIEUN SIOS;;;;-3168;HANGUL LETTER NIEUN-PANSIOS;Lo;0;L;<compat> 11C8;;;;N;HANGUL LETTER NIEUN BAN CHI EUM;;;;-3169;HANGUL LETTER RIEUL-KIYEOK-SIOS;Lo;0;L;<compat> 11CC;;;;N;HANGUL LETTER LIEUL GIYEOG SIOS;;;;-316A;HANGUL LETTER RIEUL-TIKEUT;Lo;0;L;<compat> 11CE;;;;N;HANGUL LETTER LIEUL DIGEUD;;;;-316B;HANGUL LETTER RIEUL-PIEUP-SIOS;Lo;0;L;<compat> 11D3;;;;N;HANGUL LETTER LIEUL BIEUB SIOS;;;;-316C;HANGUL LETTER RIEUL-PANSIOS;Lo;0;L;<compat> 11D7;;;;N;HANGUL LETTER LIEUL BAN CHI EUM;;;;-316D;HANGUL LETTER RIEUL-YEORINHIEUH;Lo;0;L;<compat> 11D9;;;;N;HANGUL LETTER LIEUL YEOLIN HIEUH;;;;-316E;HANGUL LETTER MIEUM-PIEUP;Lo;0;L;<compat> 111C;;;;N;HANGUL LETTER MIEUM BIEUB;;;;-316F;HANGUL LETTER MIEUM-SIOS;Lo;0;L;<compat> 11DD;;;;N;HANGUL LETTER MIEUM SIOS;;;;-3170;HANGUL LETTER MIEUM-PANSIOS;Lo;0;L;<compat> 11DF;;;;N;HANGUL LETTER BIEUB BAN CHI EUM;;;;-3171;HANGUL LETTER KAPYEOUNMIEUM;Lo;0;L;<compat> 111D;;;;N;HANGUL LETTER MIEUM SUN GYEONG EUM;;;;-3172;HANGUL LETTER PIEUP-KIYEOK;Lo;0;L;<compat> 111E;;;;N;HANGUL LETTER BIEUB GIYEOG;;;;-3173;HANGUL LETTER PIEUP-TIKEUT;Lo;0;L;<compat> 1120;;;;N;HANGUL LETTER BIEUB DIGEUD;;;;-3174;HANGUL LETTER PIEUP-SIOS-KIYEOK;Lo;0;L;<compat> 1122;;;;N;HANGUL LETTER BIEUB SIOS GIYEOG;;;;-3175;HANGUL LETTER PIEUP-SIOS-TIKEUT;Lo;0;L;<compat> 1123;;;;N;HANGUL LETTER BIEUB SIOS DIGEUD;;;;-3176;HANGUL LETTER PIEUP-CIEUC;Lo;0;L;<compat> 1127;;;;N;HANGUL LETTER BIEUB JIEUJ;;;;-3177;HANGUL LETTER PIEUP-THIEUTH;Lo;0;L;<compat> 1129;;;;N;HANGUL LETTER BIEUB TIEUT;;;;-3178;HANGUL LETTER KAPYEOUNPIEUP;Lo;0;L;<compat> 112B;;;;N;HANGUL LETTER BIEUB SUN GYEONG EUM;;;;-3179;HANGUL LETTER KAPYEOUNSSANGPIEUP;Lo;0;L;<compat> 112C;;;;N;HANGUL LETTER SSANG BIEUB SUN GYEONG EUM;;;;-317A;HANGUL LETTER SIOS-KIYEOK;Lo;0;L;<compat> 112D;;;;N;HANGUL LETTER SIOS GIYEOG;;;;-317B;HANGUL LETTER SIOS-NIEUN;Lo;0;L;<compat> 112E;;;;N;HANGUL LETTER SIOS NIEUN;;;;-317C;HANGUL LETTER SIOS-TIKEUT;Lo;0;L;<compat> 112F;;;;N;HANGUL LETTER SIOS DIGEUD;;;;-317D;HANGUL LETTER SIOS-PIEUP;Lo;0;L;<compat> 1132;;;;N;HANGUL LETTER SIOS BIEUB;;;;-317E;HANGUL LETTER SIOS-CIEUC;Lo;0;L;<compat> 1136;;;;N;HANGUL LETTER SIOS JIEUJ;;;;-317F;HANGUL LETTER PANSIOS;Lo;0;L;<compat> 1140;;;;N;HANGUL LETTER BAN CHI EUM;;;;-3180;HANGUL LETTER SSANGIEUNG;Lo;0;L;<compat> 1147;;;;N;HANGUL LETTER SSANG IEUNG;;;;-3181;HANGUL LETTER YESIEUNG;Lo;0;L;<compat> 114C;;;;N;HANGUL LETTER NGIEUNG;;;;-3182;HANGUL LETTER YESIEUNG-SIOS;Lo;0;L;<compat> 11F1;;;;N;HANGUL LETTER NGIEUNG SIOS;;;;-3183;HANGUL LETTER YESIEUNG-PANSIOS;Lo;0;L;<compat> 11F2;;;;N;HANGUL LETTER NGIEUNG BAN CHI EUM;;;;-3184;HANGUL LETTER KAPYEOUNPHIEUPH;Lo;0;L;<compat> 1157;;;;N;HANGUL LETTER PIEUP SUN GYEONG EUM;;;;-3185;HANGUL LETTER SSANGHIEUH;Lo;0;L;<compat> 1158;;;;N;HANGUL LETTER SSANG HIEUH;;;;-3186;HANGUL LETTER YEORINHIEUH;Lo;0;L;<compat> 1159;;;;N;HANGUL LETTER YEOLIN HIEUH;;;;-3187;HANGUL LETTER YO-YA;Lo;0;L;<compat> 1184;;;;N;HANGUL LETTER YOYA;;;;-3188;HANGUL LETTER YO-YAE;Lo;0;L;<compat> 1185;;;;N;HANGUL LETTER YOYAE;;;;-3189;HANGUL LETTER YO-I;Lo;0;L;<compat> 1188;;;;N;HANGUL LETTER YOI;;;;-318A;HANGUL LETTER YU-YEO;Lo;0;L;<compat> 1191;;;;N;HANGUL LETTER YUYEO;;;;-318B;HANGUL LETTER YU-YE;Lo;0;L;<compat> 1192;;;;N;HANGUL LETTER YUYE;;;;-318C;HANGUL LETTER YU-I;Lo;0;L;<compat> 1194;;;;N;HANGUL LETTER YUI;;;;-318D;HANGUL LETTER ARAEA;Lo;0;L;<compat> 119E;;;;N;HANGUL LETTER ALAE A;;;;-318E;HANGUL LETTER ARAEAE;Lo;0;L;<compat> 11A1;;;;N;HANGUL LETTER ALAE AE;;;;-3190;IDEOGRAPHIC ANNOTATION LINKING MARK;So;0;L;;;;;N;KANBUN TATETEN;Kanbun Tateten;;;-3191;IDEOGRAPHIC ANNOTATION REVERSE MARK;So;0;L;;;;;N;KAERITEN RE;Kaeriten;;;-3192;IDEOGRAPHIC ANNOTATION ONE MARK;No;0;L;<super> 4E00;;;1;N;KAERITEN ITI;Kaeriten;;;-3193;IDEOGRAPHIC ANNOTATION TWO MARK;No;0;L;<super> 4E8C;;;2;N;KAERITEN NI;Kaeriten;;;-3194;IDEOGRAPHIC ANNOTATION THREE MARK;No;0;L;<super> 4E09;;;3;N;KAERITEN SAN;Kaeriten;;;-3195;IDEOGRAPHIC ANNOTATION FOUR MARK;No;0;L;<super> 56DB;;;4;N;KAERITEN SI;Kaeriten;;;-3196;IDEOGRAPHIC ANNOTATION TOP MARK;So;0;L;<super> 4E0A;;;;N;KAERITEN ZYOU;Kaeriten;;;-3197;IDEOGRAPHIC ANNOTATION MIDDLE MARK;So;0;L;<super> 4E2D;;;;N;KAERITEN TYUU;Kaeriten;;;-3198;IDEOGRAPHIC ANNOTATION BOTTOM MARK;So;0;L;<super> 4E0B;;;;N;KAERITEN GE;Kaeriten;;;-3199;IDEOGRAPHIC ANNOTATION FIRST MARK;So;0;L;<super> 7532;;;;N;KAERITEN KOU;Kaeriten;;;-319A;IDEOGRAPHIC ANNOTATION SECOND MARK;So;0;L;<super> 4E59;;;;N;KAERITEN OTU;Kaeriten;;;-319B;IDEOGRAPHIC ANNOTATION THIRD MARK;So;0;L;<super> 4E19;;;;N;KAERITEN HEI;Kaeriten;;;-319C;IDEOGRAPHIC ANNOTATION FOURTH MARK;So;0;L;<super> 4E01;;;;N;KAERITEN TEI;Kaeriten;;;-319D;IDEOGRAPHIC ANNOTATION HEAVEN MARK;So;0;L;<super> 5929;;;;N;KAERITEN TEN;Kaeriten;;;-319E;IDEOGRAPHIC ANNOTATION EARTH MARK;So;0;L;<super> 5730;;;;N;KAERITEN TI;Kaeriten;;;-319F;IDEOGRAPHIC ANNOTATION MAN MARK;So;0;L;<super> 4EBA;;;;N;KAERITEN ZIN;Kaeriten;;;-31A0;BOPOMOFO LETTER BU;Lo;0;L;;;;;N;;;;;-31A1;BOPOMOFO LETTER ZI;Lo;0;L;;;;;N;;;;;-31A2;BOPOMOFO LETTER JI;Lo;0;L;;;;;N;;;;;-31A3;BOPOMOFO LETTER GU;Lo;0;L;;;;;N;;;;;-31A4;BOPOMOFO LETTER EE;Lo;0;L;;;;;N;;;;;-31A5;BOPOMOFO LETTER ENN;Lo;0;L;;;;;N;;;;;-31A6;BOPOMOFO LETTER OO;Lo;0;L;;;;;N;;;;;-31A7;BOPOMOFO LETTER ONN;Lo;0;L;;;;;N;;;;;-31A8;BOPOMOFO LETTER IR;Lo;0;L;;;;;N;;;;;-31A9;BOPOMOFO LETTER ANN;Lo;0;L;;;;;N;;;;;-31AA;BOPOMOFO LETTER INN;Lo;0;L;;;;;N;;;;;-31AB;BOPOMOFO LETTER UNN;Lo;0;L;;;;;N;;;;;-31AC;BOPOMOFO LETTER IM;Lo;0;L;;;;;N;;;;;-31AD;BOPOMOFO LETTER NGG;Lo;0;L;;;;;N;;;;;-31AE;BOPOMOFO LETTER AINN;Lo;0;L;;;;;N;;;;;-31AF;BOPOMOFO LETTER AUNN;Lo;0;L;;;;;N;;;;;-31B0;BOPOMOFO LETTER AM;Lo;0;L;;;;;N;;;;;-31B1;BOPOMOFO LETTER OM;Lo;0;L;;;;;N;;;;;-31B2;BOPOMOFO LETTER ONG;Lo;0;L;;;;;N;;;;;-31B3;BOPOMOFO LETTER INNN;Lo;0;L;;;;;N;;;;;-31B4;BOPOMOFO FINAL LETTER P;Lo;0;L;;;;;N;;;;;-31B5;BOPOMOFO FINAL LETTER T;Lo;0;L;;;;;N;;;;;-31B6;BOPOMOFO FINAL LETTER K;Lo;0;L;;;;;N;;;;;-31B7;BOPOMOFO FINAL LETTER H;Lo;0;L;;;;;N;;;;;-31C0;CJK STROKE T;So;0;ON;;;;;N;;;;;-31C1;CJK STROKE WG;So;0;ON;;;;;N;;;;;-31C2;CJK STROKE XG;So;0;ON;;;;;N;;;;;-31C3;CJK STROKE BXG;So;0;ON;;;;;N;;;;;-31C4;CJK STROKE SW;So;0;ON;;;;;N;;;;;-31C5;CJK STROKE HZZ;So;0;ON;;;;;N;;;;;-31C6;CJK STROKE HZG;So;0;ON;;;;;N;;;;;-31C7;CJK STROKE HP;So;0;ON;;;;;N;;;;;-31C8;CJK STROKE HZWG;So;0;ON;;;;;N;;;;;-31C9;CJK STROKE SZWG;So;0;ON;;;;;N;;;;;-31CA;CJK STROKE HZT;So;0;ON;;;;;N;;;;;-31CB;CJK STROKE HZZP;So;0;ON;;;;;N;;;;;-31CC;CJK STROKE HPWG;So;0;ON;;;;;N;;;;;-31CD;CJK STROKE HZW;So;0;ON;;;;;N;;;;;-31CE;CJK STROKE HZZZ;So;0;ON;;;;;N;;;;;-31CF;CJK STROKE N;So;0;ON;;;;;N;;;;;-31F0;KATAKANA LETTER SMALL KU;Lo;0;L;;;;;N;;;;;-31F1;KATAKANA LETTER SMALL SI;Lo;0;L;;;;;N;;;;;-31F2;KATAKANA LETTER SMALL SU;Lo;0;L;;;;;N;;;;;-31F3;KATAKANA LETTER SMALL TO;Lo;0;L;;;;;N;;;;;-31F4;KATAKANA LETTER SMALL NU;Lo;0;L;;;;;N;;;;;-31F5;KATAKANA LETTER SMALL HA;Lo;0;L;;;;;N;;;;;-31F6;KATAKANA LETTER SMALL HI;Lo;0;L;;;;;N;;;;;-31F7;KATAKANA LETTER SMALL HU;Lo;0;L;;;;;N;;;;;-31F8;KATAKANA LETTER SMALL HE;Lo;0;L;;;;;N;;;;;-31F9;KATAKANA LETTER SMALL HO;Lo;0;L;;;;;N;;;;;-31FA;KATAKANA LETTER SMALL MU;Lo;0;L;;;;;N;;;;;-31FB;KATAKANA LETTER SMALL RA;Lo;0;L;;;;;N;;;;;-31FC;KATAKANA LETTER SMALL RI;Lo;0;L;;;;;N;;;;;-31FD;KATAKANA LETTER SMALL RU;Lo;0;L;;;;;N;;;;;-31FE;KATAKANA LETTER SMALL RE;Lo;0;L;;;;;N;;;;;-31FF;KATAKANA LETTER SMALL RO;Lo;0;L;;;;;N;;;;;-3200;PARENTHESIZED HANGUL KIYEOK;So;0;L;<compat> 0028 1100 0029;;;;N;PARENTHESIZED HANGUL GIYEOG;;;;-3201;PARENTHESIZED HANGUL NIEUN;So;0;L;<compat> 0028 1102 0029;;;;N;;;;;-3202;PARENTHESIZED HANGUL TIKEUT;So;0;L;<compat> 0028 1103 0029;;;;N;PARENTHESIZED HANGUL DIGEUD;;;;-3203;PARENTHESIZED HANGUL RIEUL;So;0;L;<compat> 0028 1105 0029;;;;N;PARENTHESIZED HANGUL LIEUL;;;;-3204;PARENTHESIZED HANGUL MIEUM;So;0;L;<compat> 0028 1106 0029;;;;N;;;;;-3205;PARENTHESIZED HANGUL PIEUP;So;0;L;<compat> 0028 1107 0029;;;;N;PARENTHESIZED HANGUL BIEUB;;;;-3206;PARENTHESIZED HANGUL SIOS;So;0;L;<compat> 0028 1109 0029;;;;N;;;;;-3207;PARENTHESIZED HANGUL IEUNG;So;0;L;<compat> 0028 110B 0029;;;;N;;;;;-3208;PARENTHESIZED HANGUL CIEUC;So;0;L;<compat> 0028 110C 0029;;;;N;PARENTHESIZED HANGUL JIEUJ;;;;-3209;PARENTHESIZED HANGUL CHIEUCH;So;0;L;<compat> 0028 110E 0029;;;;N;PARENTHESIZED HANGUL CIEUC;;;;-320A;PARENTHESIZED HANGUL KHIEUKH;So;0;L;<compat> 0028 110F 0029;;;;N;PARENTHESIZED HANGUL KIYEOK;;;;-320B;PARENTHESIZED HANGUL THIEUTH;So;0;L;<compat> 0028 1110 0029;;;;N;PARENTHESIZED HANGUL TIEUT;;;;-320C;PARENTHESIZED HANGUL PHIEUPH;So;0;L;<compat> 0028 1111 0029;;;;N;PARENTHESIZED HANGUL PIEUP;;;;-320D;PARENTHESIZED HANGUL HIEUH;So;0;L;<compat> 0028 1112 0029;;;;N;;;;;-320E;PARENTHESIZED HANGUL KIYEOK A;So;0;L;<compat> 0028 1100 1161 0029;;;;N;PARENTHESIZED HANGUL GA;;;;-320F;PARENTHESIZED HANGUL NIEUN A;So;0;L;<compat> 0028 1102 1161 0029;;;;N;PARENTHESIZED HANGUL NA;;;;-3210;PARENTHESIZED HANGUL TIKEUT A;So;0;L;<compat> 0028 1103 1161 0029;;;;N;PARENTHESIZED HANGUL DA;;;;-3211;PARENTHESIZED HANGUL RIEUL A;So;0;L;<compat> 0028 1105 1161 0029;;;;N;PARENTHESIZED HANGUL LA;;;;-3212;PARENTHESIZED HANGUL MIEUM A;So;0;L;<compat> 0028 1106 1161 0029;;;;N;PARENTHESIZED HANGUL MA;;;;-3213;PARENTHESIZED HANGUL PIEUP A;So;0;L;<compat> 0028 1107 1161 0029;;;;N;PARENTHESIZED HANGUL BA;;;;-3214;PARENTHESIZED HANGUL SIOS A;So;0;L;<compat> 0028 1109 1161 0029;;;;N;PARENTHESIZED HANGUL SA;;;;-3215;PARENTHESIZED HANGUL IEUNG A;So;0;L;<compat> 0028 110B 1161 0029;;;;N;PARENTHESIZED HANGUL A;;;;-3216;PARENTHESIZED HANGUL CIEUC A;So;0;L;<compat> 0028 110C 1161 0029;;;;N;PARENTHESIZED HANGUL JA;;;;-3217;PARENTHESIZED HANGUL CHIEUCH A;So;0;L;<compat> 0028 110E 1161 0029;;;;N;PARENTHESIZED HANGUL CA;;;;-3218;PARENTHESIZED HANGUL KHIEUKH A;So;0;L;<compat> 0028 110F 1161 0029;;;;N;PARENTHESIZED HANGUL KA;;;;-3219;PARENTHESIZED HANGUL THIEUTH A;So;0;L;<compat> 0028 1110 1161 0029;;;;N;PARENTHESIZED HANGUL TA;;;;-321A;PARENTHESIZED HANGUL PHIEUPH A;So;0;L;<compat> 0028 1111 1161 0029;;;;N;PARENTHESIZED HANGUL PA;;;;-321B;PARENTHESIZED HANGUL HIEUH A;So;0;L;<compat> 0028 1112 1161 0029;;;;N;PARENTHESIZED HANGUL HA;;;;-321C;PARENTHESIZED HANGUL CIEUC U;So;0;L;<compat> 0028 110C 116E 0029;;;;N;PARENTHESIZED HANGUL JU;;;;-321D;PARENTHESIZED KOREAN CHARACTER OJEON;So;0;ON;<compat> 0028 110B 1169 110C 1165 11AB 0029;;;;N;;;;;-321E;PARENTHESIZED KOREAN CHARACTER O HU;So;0;ON;<compat> 0028 110B 1169 1112 116E 0029;;;;N;;;;;-3220;PARENTHESIZED IDEOGRAPH ONE;No;0;L;<compat> 0028 4E00 0029;;;1;N;;;;;-3221;PARENTHESIZED IDEOGRAPH TWO;No;0;L;<compat> 0028 4E8C 0029;;;2;N;;;;;-3222;PARENTHESIZED IDEOGRAPH THREE;No;0;L;<compat> 0028 4E09 0029;;;3;N;;;;;-3223;PARENTHESIZED IDEOGRAPH FOUR;No;0;L;<compat> 0028 56DB 0029;;;4;N;;;;;-3224;PARENTHESIZED IDEOGRAPH FIVE;No;0;L;<compat> 0028 4E94 0029;;;5;N;;;;;-3225;PARENTHESIZED IDEOGRAPH SIX;No;0;L;<compat> 0028 516D 0029;;;6;N;;;;;-3226;PARENTHESIZED IDEOGRAPH SEVEN;No;0;L;<compat> 0028 4E03 0029;;;7;N;;;;;-3227;PARENTHESIZED IDEOGRAPH EIGHT;No;0;L;<compat> 0028 516B 0029;;;8;N;;;;;-3228;PARENTHESIZED IDEOGRAPH NINE;No;0;L;<compat> 0028 4E5D 0029;;;9;N;;;;;-3229;PARENTHESIZED IDEOGRAPH TEN;No;0;L;<compat> 0028 5341 0029;;;10;N;;;;;-322A;PARENTHESIZED IDEOGRAPH MOON;So;0;L;<compat> 0028 6708 0029;;;;N;;;;;-322B;PARENTHESIZED IDEOGRAPH FIRE;So;0;L;<compat> 0028 706B 0029;;;;N;;;;;-322C;PARENTHESIZED IDEOGRAPH WATER;So;0;L;<compat> 0028 6C34 0029;;;;N;;;;;-322D;PARENTHESIZED IDEOGRAPH WOOD;So;0;L;<compat> 0028 6728 0029;;;;N;;;;;-322E;PARENTHESIZED IDEOGRAPH METAL;So;0;L;<compat> 0028 91D1 0029;;;;N;;;;;-322F;PARENTHESIZED IDEOGRAPH EARTH;So;0;L;<compat> 0028 571F 0029;;;;N;;;;;-3230;PARENTHESIZED IDEOGRAPH SUN;So;0;L;<compat> 0028 65E5 0029;;;;N;;;;;-3231;PARENTHESIZED IDEOGRAPH STOCK;So;0;L;<compat> 0028 682A 0029;;;;N;;;;;-3232;PARENTHESIZED IDEOGRAPH HAVE;So;0;L;<compat> 0028 6709 0029;;;;N;;;;;-3233;PARENTHESIZED IDEOGRAPH SOCIETY;So;0;L;<compat> 0028 793E 0029;;;;N;;;;;-3234;PARENTHESIZED IDEOGRAPH NAME;So;0;L;<compat> 0028 540D 0029;;;;N;;;;;-3235;PARENTHESIZED IDEOGRAPH SPECIAL;So;0;L;<compat> 0028 7279 0029;;;;N;;;;;-3236;PARENTHESIZED IDEOGRAPH FINANCIAL;So;0;L;<compat> 0028 8CA1 0029;;;;N;;;;;-3237;PARENTHESIZED IDEOGRAPH CONGRATULATION;So;0;L;<compat> 0028 795D 0029;;;;N;;;;;-3238;PARENTHESIZED IDEOGRAPH LABOR;So;0;L;<compat> 0028 52B4 0029;;;;N;;;;;-3239;PARENTHESIZED IDEOGRAPH REPRESENT;So;0;L;<compat> 0028 4EE3 0029;;;;N;;;;;-323A;PARENTHESIZED IDEOGRAPH CALL;So;0;L;<compat> 0028 547C 0029;;;;N;;;;;-323B;PARENTHESIZED IDEOGRAPH STUDY;So;0;L;<compat> 0028 5B66 0029;;;;N;;;;;-323C;PARENTHESIZED IDEOGRAPH SUPERVISE;So;0;L;<compat> 0028 76E3 0029;;;;N;;;;;-323D;PARENTHESIZED IDEOGRAPH ENTERPRISE;So;0;L;<compat> 0028 4F01 0029;;;;N;;;;;-323E;PARENTHESIZED IDEOGRAPH RESOURCE;So;0;L;<compat> 0028 8CC7 0029;;;;N;;;;;-323F;PARENTHESIZED IDEOGRAPH ALLIANCE;So;0;L;<compat> 0028 5354 0029;;;;N;;;;;-3240;PARENTHESIZED IDEOGRAPH FESTIVAL;So;0;L;<compat> 0028 796D 0029;;;;N;;;;;-3241;PARENTHESIZED IDEOGRAPH REST;So;0;L;<compat> 0028 4F11 0029;;;;N;;;;;-3242;PARENTHESIZED IDEOGRAPH SELF;So;0;L;<compat> 0028 81EA 0029;;;;N;;;;;-3243;PARENTHESIZED IDEOGRAPH REACH;So;0;L;<compat> 0028 81F3 0029;;;;N;;;;;-3250;PARTNERSHIP SIGN;So;0;ON;<square> 0050 0054 0045;;;;N;;;;;-3251;CIRCLED NUMBER TWENTY ONE;No;0;ON;<circle> 0032 0031;;;21;N;;;;;-3252;CIRCLED NUMBER TWENTY TWO;No;0;ON;<circle> 0032 0032;;;22;N;;;;;-3253;CIRCLED NUMBER TWENTY THREE;No;0;ON;<circle> 0032 0033;;;23;N;;;;;-3254;CIRCLED NUMBER TWENTY FOUR;No;0;ON;<circle> 0032 0034;;;24;N;;;;;-3255;CIRCLED NUMBER TWENTY FIVE;No;0;ON;<circle> 0032 0035;;;25;N;;;;;-3256;CIRCLED NUMBER TWENTY SIX;No;0;ON;<circle> 0032 0036;;;26;N;;;;;-3257;CIRCLED NUMBER TWENTY SEVEN;No;0;ON;<circle> 0032 0037;;;27;N;;;;;-3258;CIRCLED NUMBER TWENTY EIGHT;No;0;ON;<circle> 0032 0038;;;28;N;;;;;-3259;CIRCLED NUMBER TWENTY NINE;No;0;ON;<circle> 0032 0039;;;29;N;;;;;-325A;CIRCLED NUMBER THIRTY;No;0;ON;<circle> 0033 0030;;;30;N;;;;;-325B;CIRCLED NUMBER THIRTY ONE;No;0;ON;<circle> 0033 0031;;;31;N;;;;;-325C;CIRCLED NUMBER THIRTY TWO;No;0;ON;<circle> 0033 0032;;;32;N;;;;;-325D;CIRCLED NUMBER THIRTY THREE;No;0;ON;<circle> 0033 0033;;;33;N;;;;;-325E;CIRCLED NUMBER THIRTY FOUR;No;0;ON;<circle> 0033 0034;;;34;N;;;;;-325F;CIRCLED NUMBER THIRTY FIVE;No;0;ON;<circle> 0033 0035;;;35;N;;;;;-3260;CIRCLED HANGUL KIYEOK;So;0;L;<circle> 1100;;;;N;CIRCLED HANGUL GIYEOG;;;;-3261;CIRCLED HANGUL NIEUN;So;0;L;<circle> 1102;;;;N;;;;;-3262;CIRCLED HANGUL TIKEUT;So;0;L;<circle> 1103;;;;N;CIRCLED HANGUL DIGEUD;;;;-3263;CIRCLED HANGUL RIEUL;So;0;L;<circle> 1105;;;;N;CIRCLED HANGUL LIEUL;;;;-3264;CIRCLED HANGUL MIEUM;So;0;L;<circle> 1106;;;;N;;;;;-3265;CIRCLED HANGUL PIEUP;So;0;L;<circle> 1107;;;;N;CIRCLED HANGUL BIEUB;;;;-3266;CIRCLED HANGUL SIOS;So;0;L;<circle> 1109;;;;N;;;;;-3267;CIRCLED HANGUL IEUNG;So;0;L;<circle> 110B;;;;N;;;;;-3268;CIRCLED HANGUL CIEUC;So;0;L;<circle> 110C;;;;N;CIRCLED HANGUL JIEUJ;;;;-3269;CIRCLED HANGUL CHIEUCH;So;0;L;<circle> 110E;;;;N;CIRCLED HANGUL CIEUC;;;;-326A;CIRCLED HANGUL KHIEUKH;So;0;L;<circle> 110F;;;;N;CIRCLED HANGUL KIYEOK;;;;-326B;CIRCLED HANGUL THIEUTH;So;0;L;<circle> 1110;;;;N;CIRCLED HANGUL TIEUT;;;;-326C;CIRCLED HANGUL PHIEUPH;So;0;L;<circle> 1111;;;;N;CIRCLED HANGUL PIEUP;;;;-326D;CIRCLED HANGUL HIEUH;So;0;L;<circle> 1112;;;;N;;;;;-326E;CIRCLED HANGUL KIYEOK A;So;0;L;<circle> 1100 1161;;;;N;CIRCLED HANGUL GA;;;;-326F;CIRCLED HANGUL NIEUN A;So;0;L;<circle> 1102 1161;;;;N;CIRCLED HANGUL NA;;;;-3270;CIRCLED HANGUL TIKEUT A;So;0;L;<circle> 1103 1161;;;;N;CIRCLED HANGUL DA;;;;-3271;CIRCLED HANGUL RIEUL A;So;0;L;<circle> 1105 1161;;;;N;CIRCLED HANGUL LA;;;;-3272;CIRCLED HANGUL MIEUM A;So;0;L;<circle> 1106 1161;;;;N;CIRCLED HANGUL MA;;;;-3273;CIRCLED HANGUL PIEUP A;So;0;L;<circle> 1107 1161;;;;N;CIRCLED HANGUL BA;;;;-3274;CIRCLED HANGUL SIOS A;So;0;L;<circle> 1109 1161;;;;N;CIRCLED HANGUL SA;;;;-3275;CIRCLED HANGUL IEUNG A;So;0;L;<circle> 110B 1161;;;;N;CIRCLED HANGUL A;;;;-3276;CIRCLED HANGUL CIEUC A;So;0;L;<circle> 110C 1161;;;;N;CIRCLED HANGUL JA;;;;-3277;CIRCLED HANGUL CHIEUCH A;So;0;L;<circle> 110E 1161;;;;N;CIRCLED HANGUL CA;;;;-3278;CIRCLED HANGUL KHIEUKH A;So;0;L;<circle> 110F 1161;;;;N;CIRCLED HANGUL KA;;;;-3279;CIRCLED HANGUL THIEUTH A;So;0;L;<circle> 1110 1161;;;;N;CIRCLED HANGUL TA;;;;-327A;CIRCLED HANGUL PHIEUPH A;So;0;L;<circle> 1111 1161;;;;N;CIRCLED HANGUL PA;;;;-327B;CIRCLED HANGUL HIEUH A;So;0;L;<circle> 1112 1161;;;;N;CIRCLED HANGUL HA;;;;-327C;CIRCLED KOREAN CHARACTER CHAMKO;So;0;ON;<circle> 110E 1161 11B7 1100 1169;;;;N;;;;;-327D;CIRCLED KOREAN CHARACTER JUEUI;So;0;ON;<circle> 110C 116E 110B 1174;;;;N;;;;;-327E;CIRCLED HANGUL IEUNG U;So;0;ON;<circle> 110B 116E;;;;N;;;;;-327F;KOREAN STANDARD SYMBOL;So;0;L;;;;;N;;;;;-3280;CIRCLED IDEOGRAPH ONE;No;0;L;<circle> 4E00;;;1;N;;;;;-3281;CIRCLED IDEOGRAPH TWO;No;0;L;<circle> 4E8C;;;2;N;;;;;-3282;CIRCLED IDEOGRAPH THREE;No;0;L;<circle> 4E09;;;3;N;;;;;-3283;CIRCLED IDEOGRAPH FOUR;No;0;L;<circle> 56DB;;;4;N;;;;;-3284;CIRCLED IDEOGRAPH FIVE;No;0;L;<circle> 4E94;;;5;N;;;;;-3285;CIRCLED IDEOGRAPH SIX;No;0;L;<circle> 516D;;;6;N;;;;;-3286;CIRCLED IDEOGRAPH SEVEN;No;0;L;<circle> 4E03;;;7;N;;;;;-3287;CIRCLED IDEOGRAPH EIGHT;No;0;L;<circle> 516B;;;8;N;;;;;-3288;CIRCLED IDEOGRAPH NINE;No;0;L;<circle> 4E5D;;;9;N;;;;;-3289;CIRCLED IDEOGRAPH TEN;No;0;L;<circle> 5341;;;10;N;;;;;-328A;CIRCLED IDEOGRAPH MOON;So;0;L;<circle> 6708;;;;N;;;;;-328B;CIRCLED IDEOGRAPH FIRE;So;0;L;<circle> 706B;;;;N;;;;;-328C;CIRCLED IDEOGRAPH WATER;So;0;L;<circle> 6C34;;;;N;;;;;-328D;CIRCLED IDEOGRAPH WOOD;So;0;L;<circle> 6728;;;;N;;;;;-328E;CIRCLED IDEOGRAPH METAL;So;0;L;<circle> 91D1;;;;N;;;;;-328F;CIRCLED IDEOGRAPH EARTH;So;0;L;<circle> 571F;;;;N;;;;;-3290;CIRCLED IDEOGRAPH SUN;So;0;L;<circle> 65E5;;;;N;;;;;-3291;CIRCLED IDEOGRAPH STOCK;So;0;L;<circle> 682A;;;;N;;;;;-3292;CIRCLED IDEOGRAPH HAVE;So;0;L;<circle> 6709;;;;N;;;;;-3293;CIRCLED IDEOGRAPH SOCIETY;So;0;L;<circle> 793E;;;;N;;;;;-3294;CIRCLED IDEOGRAPH NAME;So;0;L;<circle> 540D;;;;N;;;;;-3295;CIRCLED IDEOGRAPH SPECIAL;So;0;L;<circle> 7279;;;;N;;;;;-3296;CIRCLED IDEOGRAPH FINANCIAL;So;0;L;<circle> 8CA1;;;;N;;;;;-3297;CIRCLED IDEOGRAPH CONGRATULATION;So;0;L;<circle> 795D;;;;N;;;;;-3298;CIRCLED IDEOGRAPH LABOR;So;0;L;<circle> 52B4;;;;N;;;;;-3299;CIRCLED IDEOGRAPH SECRET;So;0;L;<circle> 79D8;;;;N;;;;;-329A;CIRCLED IDEOGRAPH MALE;So;0;L;<circle> 7537;;;;N;;;;;-329B;CIRCLED IDEOGRAPH FEMALE;So;0;L;<circle> 5973;;;;N;;;;;-329C;CIRCLED IDEOGRAPH SUITABLE;So;0;L;<circle> 9069;;;;N;;;;;-329D;CIRCLED IDEOGRAPH EXCELLENT;So;0;L;<circle> 512A;;;;N;;;;;-329E;CIRCLED IDEOGRAPH PRINT;So;0;L;<circle> 5370;;;;N;;;;;-329F;CIRCLED IDEOGRAPH ATTENTION;So;0;L;<circle> 6CE8;;;;N;;;;;-32A0;CIRCLED IDEOGRAPH ITEM;So;0;L;<circle> 9805;;;;N;;;;;-32A1;CIRCLED IDEOGRAPH REST;So;0;L;<circle> 4F11;;;;N;;;;;-32A2;CIRCLED IDEOGRAPH COPY;So;0;L;<circle> 5199;;;;N;;;;;-32A3;CIRCLED IDEOGRAPH CORRECT;So;0;L;<circle> 6B63;;;;N;;;;;-32A4;CIRCLED IDEOGRAPH HIGH;So;0;L;<circle> 4E0A;;;;N;;;;;-32A5;CIRCLED IDEOGRAPH CENTRE;So;0;L;<circle> 4E2D;;;;N;CIRCLED IDEOGRAPH CENTER;;;;-32A6;CIRCLED IDEOGRAPH LOW;So;0;L;<circle> 4E0B;;;;N;;;;;-32A7;CIRCLED IDEOGRAPH LEFT;So;0;L;<circle> 5DE6;;;;N;;;;;-32A8;CIRCLED IDEOGRAPH RIGHT;So;0;L;<circle> 53F3;;;;N;;;;;-32A9;CIRCLED IDEOGRAPH MEDICINE;So;0;L;<circle> 533B;;;;N;;;;;-32AA;CIRCLED IDEOGRAPH RELIGION;So;0;L;<circle> 5B97;;;;N;;;;;-32AB;CIRCLED IDEOGRAPH STUDY;So;0;L;<circle> 5B66;;;;N;;;;;-32AC;CIRCLED IDEOGRAPH SUPERVISE;So;0;L;<circle> 76E3;;;;N;;;;;-32AD;CIRCLED IDEOGRAPH ENTERPRISE;So;0;L;<circle> 4F01;;;;N;;;;;-32AE;CIRCLED IDEOGRAPH RESOURCE;So;0;L;<circle> 8CC7;;;;N;;;;;-32AF;CIRCLED IDEOGRAPH ALLIANCE;So;0;L;<circle> 5354;;;;N;;;;;-32B0;CIRCLED IDEOGRAPH NIGHT;So;0;L;<circle> 591C;;;;N;;;;;-32B1;CIRCLED NUMBER THIRTY SIX;No;0;ON;<circle> 0033 0036;;;36;N;;;;;-32B2;CIRCLED NUMBER THIRTY SEVEN;No;0;ON;<circle> 0033 0037;;;37;N;;;;;-32B3;CIRCLED NUMBER THIRTY EIGHT;No;0;ON;<circle> 0033 0038;;;38;N;;;;;-32B4;CIRCLED NUMBER THIRTY NINE;No;0;ON;<circle> 0033 0039;;;39;N;;;;;-32B5;CIRCLED NUMBER FORTY;No;0;ON;<circle> 0034 0030;;;40;N;;;;;-32B6;CIRCLED NUMBER FORTY ONE;No;0;ON;<circle> 0034 0031;;;41;N;;;;;-32B7;CIRCLED NUMBER FORTY TWO;No;0;ON;<circle> 0034 0032;;;42;N;;;;;-32B8;CIRCLED NUMBER FORTY THREE;No;0;ON;<circle> 0034 0033;;;43;N;;;;;-32B9;CIRCLED NUMBER FORTY FOUR;No;0;ON;<circle> 0034 0034;;;44;N;;;;;-32BA;CIRCLED NUMBER FORTY FIVE;No;0;ON;<circle> 0034 0035;;;45;N;;;;;-32BB;CIRCLED NUMBER FORTY SIX;No;0;ON;<circle> 0034 0036;;;46;N;;;;;-32BC;CIRCLED NUMBER FORTY SEVEN;No;0;ON;<circle> 0034 0037;;;47;N;;;;;-32BD;CIRCLED NUMBER FORTY EIGHT;No;0;ON;<circle> 0034 0038;;;48;N;;;;;-32BE;CIRCLED NUMBER FORTY NINE;No;0;ON;<circle> 0034 0039;;;49;N;;;;;-32BF;CIRCLED NUMBER FIFTY;No;0;ON;<circle> 0035 0030;;;50;N;;;;;-32C0;IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY;So;0;L;<compat> 0031 6708;;;;N;;;;;-32C1;IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY;So;0;L;<compat> 0032 6708;;;;N;;;;;-32C2;IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH;So;0;L;<compat> 0033 6708;;;;N;;;;;-32C3;IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL;So;0;L;<compat> 0034 6708;;;;N;;;;;-32C4;IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY;So;0;L;<compat> 0035 6708;;;;N;;;;;-32C5;IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE;So;0;L;<compat> 0036 6708;;;;N;;;;;-32C6;IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY;So;0;L;<compat> 0037 6708;;;;N;;;;;-32C7;IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST;So;0;L;<compat> 0038 6708;;;;N;;;;;-32C8;IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER;So;0;L;<compat> 0039 6708;;;;N;;;;;-32C9;IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER;So;0;L;<compat> 0031 0030 6708;;;;N;;;;;-32CA;IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER;So;0;L;<compat> 0031 0031 6708;;;;N;;;;;-32CB;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER;So;0;L;<compat> 0031 0032 6708;;;;N;;;;;-32CC;SQUARE HG;So;0;ON;<square> 0048 0067;;;;N;;;;;-32CD;SQUARE ERG;So;0;ON;<square> 0065 0072 0067;;;;N;;;;;-32CE;SQUARE EV;So;0;ON;<square> 0065 0056;;;;N;;;;;-32CF;LIMITED LIABILITY SIGN;So;0;ON;<square> 004C 0054 0044;;;;N;;;;;-32D0;CIRCLED KATAKANA A;So;0;L;<circle> 30A2;;;;N;;;;;-32D1;CIRCLED KATAKANA I;So;0;L;<circle> 30A4;;;;N;;;;;-32D2;CIRCLED KATAKANA U;So;0;L;<circle> 30A6;;;;N;;;;;-32D3;CIRCLED KATAKANA E;So;0;L;<circle> 30A8;;;;N;;;;;-32D4;CIRCLED KATAKANA O;So;0;L;<circle> 30AA;;;;N;;;;;-32D5;CIRCLED KATAKANA KA;So;0;L;<circle> 30AB;;;;N;;;;;-32D6;CIRCLED KATAKANA KI;So;0;L;<circle> 30AD;;;;N;;;;;-32D7;CIRCLED KATAKANA KU;So;0;L;<circle> 30AF;;;;N;;;;;-32D8;CIRCLED KATAKANA KE;So;0;L;<circle> 30B1;;;;N;;;;;-32D9;CIRCLED KATAKANA KO;So;0;L;<circle> 30B3;;;;N;;;;;-32DA;CIRCLED KATAKANA SA;So;0;L;<circle> 30B5;;;;N;;;;;-32DB;CIRCLED KATAKANA SI;So;0;L;<circle> 30B7;;;;N;;;;;-32DC;CIRCLED KATAKANA SU;So;0;L;<circle> 30B9;;;;N;;;;;-32DD;CIRCLED KATAKANA SE;So;0;L;<circle> 30BB;;;;N;;;;;-32DE;CIRCLED KATAKANA SO;So;0;L;<circle> 30BD;;;;N;;;;;-32DF;CIRCLED KATAKANA TA;So;0;L;<circle> 30BF;;;;N;;;;;-32E0;CIRCLED KATAKANA TI;So;0;L;<circle> 30C1;;;;N;;;;;-32E1;CIRCLED KATAKANA TU;So;0;L;<circle> 30C4;;;;N;;;;;-32E2;CIRCLED KATAKANA TE;So;0;L;<circle> 30C6;;;;N;;;;;-32E3;CIRCLED KATAKANA TO;So;0;L;<circle> 30C8;;;;N;;;;;-32E4;CIRCLED KATAKANA NA;So;0;L;<circle> 30CA;;;;N;;;;;-32E5;CIRCLED KATAKANA NI;So;0;L;<circle> 30CB;;;;N;;;;;-32E6;CIRCLED KATAKANA NU;So;0;L;<circle> 30CC;;;;N;;;;;-32E7;CIRCLED KATAKANA NE;So;0;L;<circle> 30CD;;;;N;;;;;-32E8;CIRCLED KATAKANA NO;So;0;L;<circle> 30CE;;;;N;;;;;-32E9;CIRCLED KATAKANA HA;So;0;L;<circle> 30CF;;;;N;;;;;-32EA;CIRCLED KATAKANA HI;So;0;L;<circle> 30D2;;;;N;;;;;-32EB;CIRCLED KATAKANA HU;So;0;L;<circle> 30D5;;;;N;;;;;-32EC;CIRCLED KATAKANA HE;So;0;L;<circle> 30D8;;;;N;;;;;-32ED;CIRCLED KATAKANA HO;So;0;L;<circle> 30DB;;;;N;;;;;-32EE;CIRCLED KATAKANA MA;So;0;L;<circle> 30DE;;;;N;;;;;-32EF;CIRCLED KATAKANA MI;So;0;L;<circle> 30DF;;;;N;;;;;-32F0;CIRCLED KATAKANA MU;So;0;L;<circle> 30E0;;;;N;;;;;-32F1;CIRCLED KATAKANA ME;So;0;L;<circle> 30E1;;;;N;;;;;-32F2;CIRCLED KATAKANA MO;So;0;L;<circle> 30E2;;;;N;;;;;-32F3;CIRCLED KATAKANA YA;So;0;L;<circle> 30E4;;;;N;;;;;-32F4;CIRCLED KATAKANA YU;So;0;L;<circle> 30E6;;;;N;;;;;-32F5;CIRCLED KATAKANA YO;So;0;L;<circle> 30E8;;;;N;;;;;-32F6;CIRCLED KATAKANA RA;So;0;L;<circle> 30E9;;;;N;;;;;-32F7;CIRCLED KATAKANA RI;So;0;L;<circle> 30EA;;;;N;;;;;-32F8;CIRCLED KATAKANA RU;So;0;L;<circle> 30EB;;;;N;;;;;-32F9;CIRCLED KATAKANA RE;So;0;L;<circle> 30EC;;;;N;;;;;-32FA;CIRCLED KATAKANA RO;So;0;L;<circle> 30ED;;;;N;;;;;-32FB;CIRCLED KATAKANA WA;So;0;L;<circle> 30EF;;;;N;;;;;-32FC;CIRCLED KATAKANA WI;So;0;L;<circle> 30F0;;;;N;;;;;-32FD;CIRCLED KATAKANA WE;So;0;L;<circle> 30F1;;;;N;;;;;-32FE;CIRCLED KATAKANA WO;So;0;L;<circle> 30F2;;;;N;;;;;-3300;SQUARE APAATO;So;0;L;<square> 30A2 30D1 30FC 30C8;;;;N;SQUARED APAATO;;;;-3301;SQUARE ARUHUA;So;0;L;<square> 30A2 30EB 30D5 30A1;;;;N;SQUARED ARUHUA;;;;-3302;SQUARE ANPEA;So;0;L;<square> 30A2 30F3 30DA 30A2;;;;N;SQUARED ANPEA;;;;-3303;SQUARE AARU;So;0;L;<square> 30A2 30FC 30EB;;;;N;SQUARED AARU;;;;-3304;SQUARE ININGU;So;0;L;<square> 30A4 30CB 30F3 30B0;;;;N;SQUARED ININGU;;;;-3305;SQUARE INTI;So;0;L;<square> 30A4 30F3 30C1;;;;N;SQUARED INTI;;;;-3306;SQUARE UON;So;0;L;<square> 30A6 30A9 30F3;;;;N;SQUARED UON;;;;-3307;SQUARE ESUKUUDO;So;0;L;<square> 30A8 30B9 30AF 30FC 30C9;;;;N;SQUARED ESUKUUDO;;;;-3308;SQUARE EEKAA;So;0;L;<square> 30A8 30FC 30AB 30FC;;;;N;SQUARED EEKAA;;;;-3309;SQUARE ONSU;So;0;L;<square> 30AA 30F3 30B9;;;;N;SQUARED ONSU;;;;-330A;SQUARE OOMU;So;0;L;<square> 30AA 30FC 30E0;;;;N;SQUARED OOMU;;;;-330B;SQUARE KAIRI;So;0;L;<square> 30AB 30A4 30EA;;;;N;SQUARED KAIRI;;;;-330C;SQUARE KARATTO;So;0;L;<square> 30AB 30E9 30C3 30C8;;;;N;SQUARED KARATTO;;;;-330D;SQUARE KARORII;So;0;L;<square> 30AB 30ED 30EA 30FC;;;;N;SQUARED KARORII;;;;-330E;SQUARE GARON;So;0;L;<square> 30AC 30ED 30F3;;;;N;SQUARED GARON;;;;-330F;SQUARE GANMA;So;0;L;<square> 30AC 30F3 30DE;;;;N;SQUARED GANMA;;;;-3310;SQUARE GIGA;So;0;L;<square> 30AE 30AC;;;;N;SQUARED GIGA;;;;-3311;SQUARE GINII;So;0;L;<square> 30AE 30CB 30FC;;;;N;SQUARED GINII;;;;-3312;SQUARE KYURII;So;0;L;<square> 30AD 30E5 30EA 30FC;;;;N;SQUARED KYURII;;;;-3313;SQUARE GIRUDAA;So;0;L;<square> 30AE 30EB 30C0 30FC;;;;N;SQUARED GIRUDAA;;;;-3314;SQUARE KIRO;So;0;L;<square> 30AD 30ED;;;;N;SQUARED KIRO;;;;-3315;SQUARE KIROGURAMU;So;0;L;<square> 30AD 30ED 30B0 30E9 30E0;;;;N;SQUARED KIROGURAMU;;;;-3316;SQUARE KIROMEETORU;So;0;L;<square> 30AD 30ED 30E1 30FC 30C8 30EB;;;;N;SQUARED KIROMEETORU;;;;-3317;SQUARE KIROWATTO;So;0;L;<square> 30AD 30ED 30EF 30C3 30C8;;;;N;SQUARED KIROWATTO;;;;-3318;SQUARE GURAMU;So;0;L;<square> 30B0 30E9 30E0;;;;N;SQUARED GURAMU;;;;-3319;SQUARE GURAMUTON;So;0;L;<square> 30B0 30E9 30E0 30C8 30F3;;;;N;SQUARED GURAMUTON;;;;-331A;SQUARE KURUZEIRO;So;0;L;<square> 30AF 30EB 30BC 30A4 30ED;;;;N;SQUARED KURUZEIRO;;;;-331B;SQUARE KUROONE;So;0;L;<square> 30AF 30ED 30FC 30CD;;;;N;SQUARED KUROONE;;;;-331C;SQUARE KEESU;So;0;L;<square> 30B1 30FC 30B9;;;;N;SQUARED KEESU;;;;-331D;SQUARE KORUNA;So;0;L;<square> 30B3 30EB 30CA;;;;N;SQUARED KORUNA;;;;-331E;SQUARE KOOPO;So;0;L;<square> 30B3 30FC 30DD;;;;N;SQUARED KOOPO;;;;-331F;SQUARE SAIKURU;So;0;L;<square> 30B5 30A4 30AF 30EB;;;;N;SQUARED SAIKURU;;;;-3320;SQUARE SANTIIMU;So;0;L;<square> 30B5 30F3 30C1 30FC 30E0;;;;N;SQUARED SANTIIMU;;;;-3321;SQUARE SIRINGU;So;0;L;<square> 30B7 30EA 30F3 30B0;;;;N;SQUARED SIRINGU;;;;-3322;SQUARE SENTI;So;0;L;<square> 30BB 30F3 30C1;;;;N;SQUARED SENTI;;;;-3323;SQUARE SENTO;So;0;L;<square> 30BB 30F3 30C8;;;;N;SQUARED SENTO;;;;-3324;SQUARE DAASU;So;0;L;<square> 30C0 30FC 30B9;;;;N;SQUARED DAASU;;;;-3325;SQUARE DESI;So;0;L;<square> 30C7 30B7;;;;N;SQUARED DESI;;;;-3326;SQUARE DORU;So;0;L;<square> 30C9 30EB;;;;N;SQUARED DORU;;;;-3327;SQUARE TON;So;0;L;<square> 30C8 30F3;;;;N;SQUARED TON;;;;-3328;SQUARE NANO;So;0;L;<square> 30CA 30CE;;;;N;SQUARED NANO;;;;-3329;SQUARE NOTTO;So;0;L;<square> 30CE 30C3 30C8;;;;N;SQUARED NOTTO;;;;-332A;SQUARE HAITU;So;0;L;<square> 30CF 30A4 30C4;;;;N;SQUARED HAITU;;;;-332B;SQUARE PAASENTO;So;0;L;<square> 30D1 30FC 30BB 30F3 30C8;;;;N;SQUARED PAASENTO;;;;-332C;SQUARE PAATU;So;0;L;<square> 30D1 30FC 30C4;;;;N;SQUARED PAATU;;;;-332D;SQUARE BAARERU;So;0;L;<square> 30D0 30FC 30EC 30EB;;;;N;SQUARED BAARERU;;;;-332E;SQUARE PIASUTORU;So;0;L;<square> 30D4 30A2 30B9 30C8 30EB;;;;N;SQUARED PIASUTORU;;;;-332F;SQUARE PIKURU;So;0;L;<square> 30D4 30AF 30EB;;;;N;SQUARED PIKURU;;;;-3330;SQUARE PIKO;So;0;L;<square> 30D4 30B3;;;;N;SQUARED PIKO;;;;-3331;SQUARE BIRU;So;0;L;<square> 30D3 30EB;;;;N;SQUARED BIRU;;;;-3332;SQUARE HUARADDO;So;0;L;<square> 30D5 30A1 30E9 30C3 30C9;;;;N;SQUARED HUARADDO;;;;-3333;SQUARE HUIITO;So;0;L;<square> 30D5 30A3 30FC 30C8;;;;N;SQUARED HUIITO;;;;-3334;SQUARE BUSSYERU;So;0;L;<square> 30D6 30C3 30B7 30A7 30EB;;;;N;SQUARED BUSSYERU;;;;-3335;SQUARE HURAN;So;0;L;<square> 30D5 30E9 30F3;;;;N;SQUARED HURAN;;;;-3336;SQUARE HEKUTAARU;So;0;L;<square> 30D8 30AF 30BF 30FC 30EB;;;;N;SQUARED HEKUTAARU;;;;-3337;SQUARE PESO;So;0;L;<square> 30DA 30BD;;;;N;SQUARED PESO;;;;-3338;SQUARE PENIHI;So;0;L;<square> 30DA 30CB 30D2;;;;N;SQUARED PENIHI;;;;-3339;SQUARE HERUTU;So;0;L;<square> 30D8 30EB 30C4;;;;N;SQUARED HERUTU;;;;-333A;SQUARE PENSU;So;0;L;<square> 30DA 30F3 30B9;;;;N;SQUARED PENSU;;;;-333B;SQUARE PEEZI;So;0;L;<square> 30DA 30FC 30B8;;;;N;SQUARED PEEZI;;;;-333C;SQUARE BEETA;So;0;L;<square> 30D9 30FC 30BF;;;;N;SQUARED BEETA;;;;-333D;SQUARE POINTO;So;0;L;<square> 30DD 30A4 30F3 30C8;;;;N;SQUARED POINTO;;;;-333E;SQUARE BORUTO;So;0;L;<square> 30DC 30EB 30C8;;;;N;SQUARED BORUTO;;;;-333F;SQUARE HON;So;0;L;<square> 30DB 30F3;;;;N;SQUARED HON;;;;-3340;SQUARE PONDO;So;0;L;<square> 30DD 30F3 30C9;;;;N;SQUARED PONDO;;;;-3341;SQUARE HOORU;So;0;L;<square> 30DB 30FC 30EB;;;;N;SQUARED HOORU;;;;-3342;SQUARE HOON;So;0;L;<square> 30DB 30FC 30F3;;;;N;SQUARED HOON;;;;-3343;SQUARE MAIKURO;So;0;L;<square> 30DE 30A4 30AF 30ED;;;;N;SQUARED MAIKURO;;;;-3344;SQUARE MAIRU;So;0;L;<square> 30DE 30A4 30EB;;;;N;SQUARED MAIRU;;;;-3345;SQUARE MAHHA;So;0;L;<square> 30DE 30C3 30CF;;;;N;SQUARED MAHHA;;;;-3346;SQUARE MARUKU;So;0;L;<square> 30DE 30EB 30AF;;;;N;SQUARED MARUKU;;;;-3347;SQUARE MANSYON;So;0;L;<square> 30DE 30F3 30B7 30E7 30F3;;;;N;SQUARED MANSYON;;;;-3348;SQUARE MIKURON;So;0;L;<square> 30DF 30AF 30ED 30F3;;;;N;SQUARED MIKURON;;;;-3349;SQUARE MIRI;So;0;L;<square> 30DF 30EA;;;;N;SQUARED MIRI;;;;-334A;SQUARE MIRIBAARU;So;0;L;<square> 30DF 30EA 30D0 30FC 30EB;;;;N;SQUARED MIRIBAARU;;;;-334B;SQUARE MEGA;So;0;L;<square> 30E1 30AC;;;;N;SQUARED MEGA;;;;-334C;SQUARE MEGATON;So;0;L;<square> 30E1 30AC 30C8 30F3;;;;N;SQUARED MEGATON;;;;-334D;SQUARE MEETORU;So;0;L;<square> 30E1 30FC 30C8 30EB;;;;N;SQUARED MEETORU;;;;-334E;SQUARE YAADO;So;0;L;<square> 30E4 30FC 30C9;;;;N;SQUARED YAADO;;;;-334F;SQUARE YAARU;So;0;L;<square> 30E4 30FC 30EB;;;;N;SQUARED YAARU;;;;-3350;SQUARE YUAN;So;0;L;<square> 30E6 30A2 30F3;;;;N;SQUARED YUAN;;;;-3351;SQUARE RITTORU;So;0;L;<square> 30EA 30C3 30C8 30EB;;;;N;SQUARED RITTORU;;;;-3352;SQUARE RIRA;So;0;L;<square> 30EA 30E9;;;;N;SQUARED RIRA;;;;-3353;SQUARE RUPII;So;0;L;<square> 30EB 30D4 30FC;;;;N;SQUARED RUPII;;;;-3354;SQUARE RUUBURU;So;0;L;<square> 30EB 30FC 30D6 30EB;;;;N;SQUARED RUUBURU;;;;-3355;SQUARE REMU;So;0;L;<square> 30EC 30E0;;;;N;SQUARED REMU;;;;-3356;SQUARE RENTOGEN;So;0;L;<square> 30EC 30F3 30C8 30B2 30F3;;;;N;SQUARED RENTOGEN;;;;-3357;SQUARE WATTO;So;0;L;<square> 30EF 30C3 30C8;;;;N;SQUARED WATTO;;;;-3358;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO;So;0;L;<compat> 0030 70B9;;;;N;;;;;-3359;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE;So;0;L;<compat> 0031 70B9;;;;N;;;;;-335A;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO;So;0;L;<compat> 0032 70B9;;;;N;;;;;-335B;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE;So;0;L;<compat> 0033 70B9;;;;N;;;;;-335C;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR;So;0;L;<compat> 0034 70B9;;;;N;;;;;-335D;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE;So;0;L;<compat> 0035 70B9;;;;N;;;;;-335E;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX;So;0;L;<compat> 0036 70B9;;;;N;;;;;-335F;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN;So;0;L;<compat> 0037 70B9;;;;N;;;;;-3360;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT;So;0;L;<compat> 0038 70B9;;;;N;;;;;-3361;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE;So;0;L;<compat> 0039 70B9;;;;N;;;;;-3362;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN;So;0;L;<compat> 0031 0030 70B9;;;;N;;;;;-3363;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN;So;0;L;<compat> 0031 0031 70B9;;;;N;;;;;-3364;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE;So;0;L;<compat> 0031 0032 70B9;;;;N;;;;;-3365;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN;So;0;L;<compat> 0031 0033 70B9;;;;N;;;;;-3366;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN;So;0;L;<compat> 0031 0034 70B9;;;;N;;;;;-3367;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN;So;0;L;<compat> 0031 0035 70B9;;;;N;;;;;-3368;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN;So;0;L;<compat> 0031 0036 70B9;;;;N;;;;;-3369;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN;So;0;L;<compat> 0031 0037 70B9;;;;N;;;;;-336A;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN;So;0;L;<compat> 0031 0038 70B9;;;;N;;;;;-336B;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN;So;0;L;<compat> 0031 0039 70B9;;;;N;;;;;-336C;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY;So;0;L;<compat> 0032 0030 70B9;;;;N;;;;;-336D;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE;So;0;L;<compat> 0032 0031 70B9;;;;N;;;;;-336E;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO;So;0;L;<compat> 0032 0032 70B9;;;;N;;;;;-336F;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE;So;0;L;<compat> 0032 0033 70B9;;;;N;;;;;-3370;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR;So;0;L;<compat> 0032 0034 70B9;;;;N;;;;;-3371;SQUARE HPA;So;0;L;<square> 0068 0050 0061;;;;N;;;;;-3372;SQUARE DA;So;0;L;<square> 0064 0061;;;;N;;;;;-3373;SQUARE AU;So;0;L;<square> 0041 0055;;;;N;;;;;-3374;SQUARE BAR;So;0;L;<square> 0062 0061 0072;;;;N;;;;;-3375;SQUARE OV;So;0;L;<square> 006F 0056;;;;N;;;;;-3376;SQUARE PC;So;0;L;<square> 0070 0063;;;;N;;;;;-3377;SQUARE DM;So;0;ON;<square> 0064 006D;;;;N;;;;;-3378;SQUARE DM SQUARED;So;0;ON;<square> 0064 006D 00B2;;;;N;;;;;-3379;SQUARE DM CUBED;So;0;ON;<square> 0064 006D 00B3;;;;N;;;;;-337A;SQUARE IU;So;0;ON;<square> 0049 0055;;;;N;;;;;-337B;SQUARE ERA NAME HEISEI;So;0;L;<square> 5E73 6210;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME HEISEI;;;;-337C;SQUARE ERA NAME SYOUWA;So;0;L;<square> 662D 548C;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME SYOUWA;;;;-337D;SQUARE ERA NAME TAISYOU;So;0;L;<square> 5927 6B63;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME TAISYOU;;;;-337E;SQUARE ERA NAME MEIZI;So;0;L;<square> 660E 6CBB;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME MEIZI;;;;-337F;SQUARE CORPORATION;So;0;L;<square> 682A 5F0F 4F1A 793E;;;;N;SQUARED FOUR IDEOGRAPHS CORPORATION;;;;-3380;SQUARE PA AMPS;So;0;L;<square> 0070 0041;;;;N;SQUARED PA AMPS;;;;-3381;SQUARE NA;So;0;L;<square> 006E 0041;;;;N;SQUARED NA;;;;-3382;SQUARE MU A;So;0;L;<square> 03BC 0041;;;;N;SQUARED MU A;;;;-3383;SQUARE MA;So;0;L;<square> 006D 0041;;;;N;SQUARED MA;;;;-3384;SQUARE KA;So;0;L;<square> 006B 0041;;;;N;SQUARED KA;;;;-3385;SQUARE KB;So;0;L;<square> 004B 0042;;;;N;SQUARED KB;;;;-3386;SQUARE MB;So;0;L;<square> 004D 0042;;;;N;SQUARED MB;;;;-3387;SQUARE GB;So;0;L;<square> 0047 0042;;;;N;SQUARED GB;;;;-3388;SQUARE CAL;So;0;L;<square> 0063 0061 006C;;;;N;SQUARED CAL;;;;-3389;SQUARE KCAL;So;0;L;<square> 006B 0063 0061 006C;;;;N;SQUARED KCAL;;;;-338A;SQUARE PF;So;0;L;<square> 0070 0046;;;;N;SQUARED PF;;;;-338B;SQUARE NF;So;0;L;<square> 006E 0046;;;;N;SQUARED NF;;;;-338C;SQUARE MU F;So;0;L;<square> 03BC 0046;;;;N;SQUARED MU F;;;;-338D;SQUARE MU G;So;0;L;<square> 03BC 0067;;;;N;SQUARED MU G;;;;-338E;SQUARE MG;So;0;L;<square> 006D 0067;;;;N;SQUARED MG;;;;-338F;SQUARE KG;So;0;L;<square> 006B 0067;;;;N;SQUARED KG;;;;-3390;SQUARE HZ;So;0;L;<square> 0048 007A;;;;N;SQUARED HZ;;;;-3391;SQUARE KHZ;So;0;L;<square> 006B 0048 007A;;;;N;SQUARED KHZ;;;;-3392;SQUARE MHZ;So;0;L;<square> 004D 0048 007A;;;;N;SQUARED MHZ;;;;-3393;SQUARE GHZ;So;0;L;<square> 0047 0048 007A;;;;N;SQUARED GHZ;;;;-3394;SQUARE THZ;So;0;L;<square> 0054 0048 007A;;;;N;SQUARED THZ;;;;-3395;SQUARE MU L;So;0;L;<square> 03BC 2113;;;;N;SQUARED MU L;;;;-3396;SQUARE ML;So;0;L;<square> 006D 2113;;;;N;SQUARED ML;;;;-3397;SQUARE DL;So;0;L;<square> 0064 2113;;;;N;SQUARED DL;;;;-3398;SQUARE KL;So;0;L;<square> 006B 2113;;;;N;SQUARED KL;;;;-3399;SQUARE FM;So;0;L;<square> 0066 006D;;;;N;SQUARED FM;;;;-339A;SQUARE NM;So;0;L;<square> 006E 006D;;;;N;SQUARED NM;;;;-339B;SQUARE MU M;So;0;L;<square> 03BC 006D;;;;N;SQUARED MU M;;;;-339C;SQUARE MM;So;0;L;<square> 006D 006D;;;;N;SQUARED MM;;;;-339D;SQUARE CM;So;0;L;<square> 0063 006D;;;;N;SQUARED CM;;;;-339E;SQUARE KM;So;0;L;<square> 006B 006D;;;;N;SQUARED KM;;;;-339F;SQUARE MM SQUARED;So;0;L;<square> 006D 006D 00B2;;;;N;SQUARED MM SQUARED;;;;-33A0;SQUARE CM SQUARED;So;0;L;<square> 0063 006D 00B2;;;;N;SQUARED CM SQUARED;;;;-33A1;SQUARE M SQUARED;So;0;L;<square> 006D 00B2;;;;N;SQUARED M SQUARED;;;;-33A2;SQUARE KM SQUARED;So;0;L;<square> 006B 006D 00B2;;;;N;SQUARED KM SQUARED;;;;-33A3;SQUARE MM CUBED;So;0;L;<square> 006D 006D 00B3;;;;N;SQUARED MM CUBED;;;;-33A4;SQUARE CM CUBED;So;0;L;<square> 0063 006D 00B3;;;;N;SQUARED CM CUBED;;;;-33A5;SQUARE M CUBED;So;0;L;<square> 006D 00B3;;;;N;SQUARED M CUBED;;;;-33A6;SQUARE KM CUBED;So;0;L;<square> 006B 006D 00B3;;;;N;SQUARED KM CUBED;;;;-33A7;SQUARE M OVER S;So;0;L;<square> 006D 2215 0073;;;;N;SQUARED M OVER S;;;;-33A8;SQUARE M OVER S SQUARED;So;0;L;<square> 006D 2215 0073 00B2;;;;N;SQUARED M OVER S SQUARED;;;;-33A9;SQUARE PA;So;0;L;<square> 0050 0061;;;;N;SQUARED PA;;;;-33AA;SQUARE KPA;So;0;L;<square> 006B 0050 0061;;;;N;SQUARED KPA;;;;-33AB;SQUARE MPA;So;0;L;<square> 004D 0050 0061;;;;N;SQUARED MPA;;;;-33AC;SQUARE GPA;So;0;L;<square> 0047 0050 0061;;;;N;SQUARED GPA;;;;-33AD;SQUARE RAD;So;0;L;<square> 0072 0061 0064;;;;N;SQUARED RAD;;;;-33AE;SQUARE RAD OVER S;So;0;L;<square> 0072 0061 0064 2215 0073;;;;N;SQUARED RAD OVER S;;;;-33AF;SQUARE RAD OVER S SQUARED;So;0;L;<square> 0072 0061 0064 2215 0073 00B2;;;;N;SQUARED RAD OVER S SQUARED;;;;-33B0;SQUARE PS;So;0;L;<square> 0070 0073;;;;N;SQUARED PS;;;;-33B1;SQUARE NS;So;0;L;<square> 006E 0073;;;;N;SQUARED NS;;;;-33B2;SQUARE MU S;So;0;L;<square> 03BC 0073;;;;N;SQUARED MU S;;;;-33B3;SQUARE MS;So;0;L;<square> 006D 0073;;;;N;SQUARED MS;;;;-33B4;SQUARE PV;So;0;L;<square> 0070 0056;;;;N;SQUARED PV;;;;-33B5;SQUARE NV;So;0;L;<square> 006E 0056;;;;N;SQUARED NV;;;;-33B6;SQUARE MU V;So;0;L;<square> 03BC 0056;;;;N;SQUARED MU V;;;;-33B7;SQUARE MV;So;0;L;<square> 006D 0056;;;;N;SQUARED MV;;;;-33B8;SQUARE KV;So;0;L;<square> 006B 0056;;;;N;SQUARED KV;;;;-33B9;SQUARE MV MEGA;So;0;L;<square> 004D 0056;;;;N;SQUARED MV MEGA;;;;-33BA;SQUARE PW;So;0;L;<square> 0070 0057;;;;N;SQUARED PW;;;;-33BB;SQUARE NW;So;0;L;<square> 006E 0057;;;;N;SQUARED NW;;;;-33BC;SQUARE MU W;So;0;L;<square> 03BC 0057;;;;N;SQUARED MU W;;;;-33BD;SQUARE MW;So;0;L;<square> 006D 0057;;;;N;SQUARED MW;;;;-33BE;SQUARE KW;So;0;L;<square> 006B 0057;;;;N;SQUARED KW;;;;-33BF;SQUARE MW MEGA;So;0;L;<square> 004D 0057;;;;N;SQUARED MW MEGA;;;;-33C0;SQUARE K OHM;So;0;L;<square> 006B 03A9;;;;N;SQUARED K OHM;;;;-33C1;SQUARE M OHM;So;0;L;<square> 004D 03A9;;;;N;SQUARED M OHM;;;;-33C2;SQUARE AM;So;0;L;<square> 0061 002E 006D 002E;;;;N;SQUARED AM;;;;-33C3;SQUARE BQ;So;0;L;<square> 0042 0071;;;;N;SQUARED BQ;;;;-33C4;SQUARE CC;So;0;L;<square> 0063 0063;;;;N;SQUARED CC;;;;-33C5;SQUARE CD;So;0;L;<square> 0063 0064;;;;N;SQUARED CD;;;;-33C6;SQUARE C OVER KG;So;0;L;<square> 0043 2215 006B 0067;;;;N;SQUARED C OVER KG;;;;-33C7;SQUARE CO;So;0;L;<square> 0043 006F 002E;;;;N;SQUARED CO;;;;-33C8;SQUARE DB;So;0;L;<square> 0064 0042;;;;N;SQUARED DB;;;;-33C9;SQUARE GY;So;0;L;<square> 0047 0079;;;;N;SQUARED GY;;;;-33CA;SQUARE HA;So;0;L;<square> 0068 0061;;;;N;SQUARED HA;;;;-33CB;SQUARE HP;So;0;L;<square> 0048 0050;;;;N;SQUARED HP;;;;-33CC;SQUARE IN;So;0;L;<square> 0069 006E;;;;N;SQUARED IN;;;;-33CD;SQUARE KK;So;0;L;<square> 004B 004B;;;;N;SQUARED KK;;;;-33CE;SQUARE KM CAPITAL;So;0;L;<square> 004B 004D;;;;N;SQUARED KM CAPITAL;;;;-33CF;SQUARE KT;So;0;L;<square> 006B 0074;;;;N;SQUARED KT;;;;-33D0;SQUARE LM;So;0;L;<square> 006C 006D;;;;N;SQUARED LM;;;;-33D1;SQUARE LN;So;0;L;<square> 006C 006E;;;;N;SQUARED LN;;;;-33D2;SQUARE LOG;So;0;L;<square> 006C 006F 0067;;;;N;SQUARED LOG;;;;-33D3;SQUARE LX;So;0;L;<square> 006C 0078;;;;N;SQUARED LX;;;;-33D4;SQUARE MB SMALL;So;0;L;<square> 006D 0062;;;;N;SQUARED MB SMALL;;;;-33D5;SQUARE MIL;So;0;L;<square> 006D 0069 006C;;;;N;SQUARED MIL;;;;-33D6;SQUARE MOL;So;0;L;<square> 006D 006F 006C;;;;N;SQUARED MOL;;;;-33D7;SQUARE PH;So;0;L;<square> 0050 0048;;;;N;SQUARED PH;;;;-33D8;SQUARE PM;So;0;L;<square> 0070 002E 006D 002E;;;;N;SQUARED PM;;;;-33D9;SQUARE PPM;So;0;L;<square> 0050 0050 004D;;;;N;SQUARED PPM;;;;-33DA;SQUARE PR;So;0;L;<square> 0050 0052;;;;N;SQUARED PR;;;;-33DB;SQUARE SR;So;0;L;<square> 0073 0072;;;;N;SQUARED SR;;;;-33DC;SQUARE SV;So;0;L;<square> 0053 0076;;;;N;SQUARED SV;;;;-33DD;SQUARE WB;So;0;L;<square> 0057 0062;;;;N;SQUARED WB;;;;-33DE;SQUARE V OVER M;So;0;ON;<square> 0056 2215 006D;;;;N;;;;;-33DF;SQUARE A OVER M;So;0;ON;<square> 0041 2215 006D;;;;N;;;;;-33E0;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE;So;0;L;<compat> 0031 65E5;;;;N;;;;;-33E1;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO;So;0;L;<compat> 0032 65E5;;;;N;;;;;-33E2;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE;So;0;L;<compat> 0033 65E5;;;;N;;;;;-33E3;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR;So;0;L;<compat> 0034 65E5;;;;N;;;;;-33E4;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE;So;0;L;<compat> 0035 65E5;;;;N;;;;;-33E5;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX;So;0;L;<compat> 0036 65E5;;;;N;;;;;-33E6;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN;So;0;L;<compat> 0037 65E5;;;;N;;;;;-33E7;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT;So;0;L;<compat> 0038 65E5;;;;N;;;;;-33E8;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE;So;0;L;<compat> 0039 65E5;;;;N;;;;;-33E9;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN;So;0;L;<compat> 0031 0030 65E5;;;;N;;;;;-33EA;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN;So;0;L;<compat> 0031 0031 65E5;;;;N;;;;;-33EB;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE;So;0;L;<compat> 0031 0032 65E5;;;;N;;;;;-33EC;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN;So;0;L;<compat> 0031 0033 65E5;;;;N;;;;;-33ED;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN;So;0;L;<compat> 0031 0034 65E5;;;;N;;;;;-33EE;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN;So;0;L;<compat> 0031 0035 65E5;;;;N;;;;;-33EF;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN;So;0;L;<compat> 0031 0036 65E5;;;;N;;;;;-33F0;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN;So;0;L;<compat> 0031 0037 65E5;;;;N;;;;;-33F1;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN;So;0;L;<compat> 0031 0038 65E5;;;;N;;;;;-33F2;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN;So;0;L;<compat> 0031 0039 65E5;;;;N;;;;;-33F3;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY;So;0;L;<compat> 0032 0030 65E5;;;;N;;;;;-33F4;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE;So;0;L;<compat> 0032 0031 65E5;;;;N;;;;;-33F5;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO;So;0;L;<compat> 0032 0032 65E5;;;;N;;;;;-33F6;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE;So;0;L;<compat> 0032 0033 65E5;;;;N;;;;;-33F7;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR;So;0;L;<compat> 0032 0034 65E5;;;;N;;;;;-33F8;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE;So;0;L;<compat> 0032 0035 65E5;;;;N;;;;;-33F9;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX;So;0;L;<compat> 0032 0036 65E5;;;;N;;;;;-33FA;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN;So;0;L;<compat> 0032 0037 65E5;;;;N;;;;;-33FB;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT;So;0;L;<compat> 0032 0038 65E5;;;;N;;;;;-33FC;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE;So;0;L;<compat> 0032 0039 65E5;;;;N;;;;;-33FD;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY;So;0;L;<compat> 0033 0030 65E5;;;;N;;;;;-33FE;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE;So;0;L;<compat> 0033 0031 65E5;;;;N;;;;;-33FF;SQUARE GAL;So;0;ON;<square> 0067 0061 006C;;;;N;;;;;-3400;<CJK Ideograph Extension A, First>;Lo;0;L;;;;;N;;;;;-4DB5;<CJK Ideograph Extension A, Last>;Lo;0;L;;;;;N;;;;;-4DC0;HEXAGRAM FOR THE CREATIVE HEAVEN;So;0;ON;;;;;N;;;;;-4DC1;HEXAGRAM FOR THE RECEPTIVE EARTH;So;0;ON;;;;;N;;;;;-4DC2;HEXAGRAM FOR DIFFICULTY AT THE BEGINNING;So;0;ON;;;;;N;;;;;-4DC3;HEXAGRAM FOR YOUTHFUL FOLLY;So;0;ON;;;;;N;;;;;-4DC4;HEXAGRAM FOR WAITING;So;0;ON;;;;;N;;;;;-4DC5;HEXAGRAM FOR CONFLICT;So;0;ON;;;;;N;;;;;-4DC6;HEXAGRAM FOR THE ARMY;So;0;ON;;;;;N;;;;;-4DC7;HEXAGRAM FOR HOLDING TOGETHER;So;0;ON;;;;;N;;;;;-4DC8;HEXAGRAM FOR SMALL TAMING;So;0;ON;;;;;N;;;;;-4DC9;HEXAGRAM FOR TREADING;So;0;ON;;;;;N;;;;;-4DCA;HEXAGRAM FOR PEACE;So;0;ON;;;;;N;;;;;-4DCB;HEXAGRAM FOR STANDSTILL;So;0;ON;;;;;N;;;;;-4DCC;HEXAGRAM FOR FELLOWSHIP;So;0;ON;;;;;N;;;;;-4DCD;HEXAGRAM FOR GREAT POSSESSION;So;0;ON;;;;;N;;;;;-4DCE;HEXAGRAM FOR MODESTY;So;0;ON;;;;;N;;;;;-4DCF;HEXAGRAM FOR ENTHUSIASM;So;0;ON;;;;;N;;;;;-4DD0;HEXAGRAM FOR FOLLOWING;So;0;ON;;;;;N;;;;;-4DD1;HEXAGRAM FOR WORK ON THE DECAYED;So;0;ON;;;;;N;;;;;-4DD2;HEXAGRAM FOR APPROACH;So;0;ON;;;;;N;;;;;-4DD3;HEXAGRAM FOR CONTEMPLATION;So;0;ON;;;;;N;;;;;-4DD4;HEXAGRAM FOR BITING THROUGH;So;0;ON;;;;;N;;;;;-4DD5;HEXAGRAM FOR GRACE;So;0;ON;;;;;N;;;;;-4DD6;HEXAGRAM FOR SPLITTING APART;So;0;ON;;;;;N;;;;;-4DD7;HEXAGRAM FOR RETURN;So;0;ON;;;;;N;;;;;-4DD8;HEXAGRAM FOR INNOCENCE;So;0;ON;;;;;N;;;;;-4DD9;HEXAGRAM FOR GREAT TAMING;So;0;ON;;;;;N;;;;;-4DDA;HEXAGRAM FOR MOUTH CORNERS;So;0;ON;;;;;N;;;;;-4DDB;HEXAGRAM FOR GREAT PREPONDERANCE;So;0;ON;;;;;N;;;;;-4DDC;HEXAGRAM FOR THE ABYSMAL WATER;So;0;ON;;;;;N;;;;;-4DDD;HEXAGRAM FOR THE CLINGING FIRE;So;0;ON;;;;;N;;;;;-4DDE;HEXAGRAM FOR INFLUENCE;So;0;ON;;;;;N;;;;;-4DDF;HEXAGRAM FOR DURATION;So;0;ON;;;;;N;;;;;-4DE0;HEXAGRAM FOR RETREAT;So;0;ON;;;;;N;;;;;-4DE1;HEXAGRAM FOR GREAT POWER;So;0;ON;;;;;N;;;;;-4DE2;HEXAGRAM FOR PROGRESS;So;0;ON;;;;;N;;;;;-4DE3;HEXAGRAM FOR DARKENING OF THE LIGHT;So;0;ON;;;;;N;;;;;-4DE4;HEXAGRAM FOR THE FAMILY;So;0;ON;;;;;N;;;;;-4DE5;HEXAGRAM FOR OPPOSITION;So;0;ON;;;;;N;;;;;-4DE6;HEXAGRAM FOR OBSTRUCTION;So;0;ON;;;;;N;;;;;-4DE7;HEXAGRAM FOR DELIVERANCE;So;0;ON;;;;;N;;;;;-4DE8;HEXAGRAM FOR DECREASE;So;0;ON;;;;;N;;;;;-4DE9;HEXAGRAM FOR INCREASE;So;0;ON;;;;;N;;;;;-4DEA;HEXAGRAM FOR BREAKTHROUGH;So;0;ON;;;;;N;;;;;-4DEB;HEXAGRAM FOR COMING TO MEET;So;0;ON;;;;;N;;;;;-4DEC;HEXAGRAM FOR GATHERING TOGETHER;So;0;ON;;;;;N;;;;;-4DED;HEXAGRAM FOR PUSHING UPWARD;So;0;ON;;;;;N;;;;;-4DEE;HEXAGRAM FOR OPPRESSION;So;0;ON;;;;;N;;;;;-4DEF;HEXAGRAM FOR THE WELL;So;0;ON;;;;;N;;;;;-4DF0;HEXAGRAM FOR REVOLUTION;So;0;ON;;;;;N;;;;;-4DF1;HEXAGRAM FOR THE CAULDRON;So;0;ON;;;;;N;;;;;-4DF2;HEXAGRAM FOR THE AROUSING THUNDER;So;0;ON;;;;;N;;;;;-4DF3;HEXAGRAM FOR THE KEEPING STILL MOUNTAIN;So;0;ON;;;;;N;;;;;-4DF4;HEXAGRAM FOR DEVELOPMENT;So;0;ON;;;;;N;;;;;-4DF5;HEXAGRAM FOR THE MARRYING MAIDEN;So;0;ON;;;;;N;;;;;-4DF6;HEXAGRAM FOR ABUNDANCE;So;0;ON;;;;;N;;;;;-4DF7;HEXAGRAM FOR THE WANDERER;So;0;ON;;;;;N;;;;;-4DF8;HEXAGRAM FOR THE GENTLE WIND;So;0;ON;;;;;N;;;;;-4DF9;HEXAGRAM FOR THE JOYOUS LAKE;So;0;ON;;;;;N;;;;;-4DFA;HEXAGRAM FOR DISPERSION;So;0;ON;;;;;N;;;;;-4DFB;HEXAGRAM FOR LIMITATION;So;0;ON;;;;;N;;;;;-4DFC;HEXAGRAM FOR INNER TRUTH;So;0;ON;;;;;N;;;;;-4DFD;HEXAGRAM FOR SMALL PREPONDERANCE;So;0;ON;;;;;N;;;;;-4DFE;HEXAGRAM FOR AFTER COMPLETION;So;0;ON;;;;;N;;;;;-4DFF;HEXAGRAM FOR BEFORE COMPLETION;So;0;ON;;;;;N;;;;;-4E00;<CJK Ideograph, First>;Lo;0;L;;;;;N;;;;;-9FBB;<CJK Ideograph, Last>;Lo;0;L;;;;;N;;;;;-A000;YI SYLLABLE IT;Lo;0;L;;;;;N;;;;;-A001;YI SYLLABLE IX;Lo;0;L;;;;;N;;;;;-A002;YI SYLLABLE I;Lo;0;L;;;;;N;;;;;-A003;YI SYLLABLE IP;Lo;0;L;;;;;N;;;;;-A004;YI SYLLABLE IET;Lo;0;L;;;;;N;;;;;-A005;YI SYLLABLE IEX;Lo;0;L;;;;;N;;;;;-A006;YI SYLLABLE IE;Lo;0;L;;;;;N;;;;;-A007;YI SYLLABLE IEP;Lo;0;L;;;;;N;;;;;-A008;YI SYLLABLE AT;Lo;0;L;;;;;N;;;;;-A009;YI SYLLABLE AX;Lo;0;L;;;;;N;;;;;-A00A;YI SYLLABLE A;Lo;0;L;;;;;N;;;;;-A00B;YI SYLLABLE AP;Lo;0;L;;;;;N;;;;;-A00C;YI SYLLABLE UOX;Lo;0;L;;;;;N;;;;;-A00D;YI SYLLABLE UO;Lo;0;L;;;;;N;;;;;-A00E;YI SYLLABLE UOP;Lo;0;L;;;;;N;;;;;-A00F;YI SYLLABLE OT;Lo;0;L;;;;;N;;;;;-A010;YI SYLLABLE OX;Lo;0;L;;;;;N;;;;;-A011;YI SYLLABLE O;Lo;0;L;;;;;N;;;;;-A012;YI SYLLABLE OP;Lo;0;L;;;;;N;;;;;-A013;YI SYLLABLE EX;Lo;0;L;;;;;N;;;;;-A014;YI SYLLABLE E;Lo;0;L;;;;;N;;;;;-A015;YI SYLLABLE WU;Lm;0;L;;;;;N;;;;;-A016;YI SYLLABLE BIT;Lo;0;L;;;;;N;;;;;-A017;YI SYLLABLE BIX;Lo;0;L;;;;;N;;;;;-A018;YI SYLLABLE BI;Lo;0;L;;;;;N;;;;;-A019;YI SYLLABLE BIP;Lo;0;L;;;;;N;;;;;-A01A;YI SYLLABLE BIET;Lo;0;L;;;;;N;;;;;-A01B;YI SYLLABLE BIEX;Lo;0;L;;;;;N;;;;;-A01C;YI SYLLABLE BIE;Lo;0;L;;;;;N;;;;;-A01D;YI SYLLABLE BIEP;Lo;0;L;;;;;N;;;;;-A01E;YI SYLLABLE BAT;Lo;0;L;;;;;N;;;;;-A01F;YI SYLLABLE BAX;Lo;0;L;;;;;N;;;;;-A020;YI SYLLABLE BA;Lo;0;L;;;;;N;;;;;-A021;YI SYLLABLE BAP;Lo;0;L;;;;;N;;;;;-A022;YI SYLLABLE BUOX;Lo;0;L;;;;;N;;;;;-A023;YI SYLLABLE BUO;Lo;0;L;;;;;N;;;;;-A024;YI SYLLABLE BUOP;Lo;0;L;;;;;N;;;;;-A025;YI SYLLABLE BOT;Lo;0;L;;;;;N;;;;;-A026;YI SYLLABLE BOX;Lo;0;L;;;;;N;;;;;-A027;YI SYLLABLE BO;Lo;0;L;;;;;N;;;;;-A028;YI SYLLABLE BOP;Lo;0;L;;;;;N;;;;;-A029;YI SYLLABLE BEX;Lo;0;L;;;;;N;;;;;-A02A;YI SYLLABLE BE;Lo;0;L;;;;;N;;;;;-A02B;YI SYLLABLE BEP;Lo;0;L;;;;;N;;;;;-A02C;YI SYLLABLE BUT;Lo;0;L;;;;;N;;;;;-A02D;YI SYLLABLE BUX;Lo;0;L;;;;;N;;;;;-A02E;YI SYLLABLE BU;Lo;0;L;;;;;N;;;;;-A02F;YI SYLLABLE BUP;Lo;0;L;;;;;N;;;;;-A030;YI SYLLABLE BURX;Lo;0;L;;;;;N;;;;;-A031;YI SYLLABLE BUR;Lo;0;L;;;;;N;;;;;-A032;YI SYLLABLE BYT;Lo;0;L;;;;;N;;;;;-A033;YI SYLLABLE BYX;Lo;0;L;;;;;N;;;;;-A034;YI SYLLABLE BY;Lo;0;L;;;;;N;;;;;-A035;YI SYLLABLE BYP;Lo;0;L;;;;;N;;;;;-A036;YI SYLLABLE BYRX;Lo;0;L;;;;;N;;;;;-A037;YI SYLLABLE BYR;Lo;0;L;;;;;N;;;;;-A038;YI SYLLABLE PIT;Lo;0;L;;;;;N;;;;;-A039;YI SYLLABLE PIX;Lo;0;L;;;;;N;;;;;-A03A;YI SYLLABLE PI;Lo;0;L;;;;;N;;;;;-A03B;YI SYLLABLE PIP;Lo;0;L;;;;;N;;;;;-A03C;YI SYLLABLE PIEX;Lo;0;L;;;;;N;;;;;-A03D;YI SYLLABLE PIE;Lo;0;L;;;;;N;;;;;-A03E;YI SYLLABLE PIEP;Lo;0;L;;;;;N;;;;;-A03F;YI SYLLABLE PAT;Lo;0;L;;;;;N;;;;;-A040;YI SYLLABLE PAX;Lo;0;L;;;;;N;;;;;-A041;YI SYLLABLE PA;Lo;0;L;;;;;N;;;;;-A042;YI SYLLABLE PAP;Lo;0;L;;;;;N;;;;;-A043;YI SYLLABLE PUOX;Lo;0;L;;;;;N;;;;;-A044;YI SYLLABLE PUO;Lo;0;L;;;;;N;;;;;-A045;YI SYLLABLE PUOP;Lo;0;L;;;;;N;;;;;-A046;YI SYLLABLE POT;Lo;0;L;;;;;N;;;;;-A047;YI SYLLABLE POX;Lo;0;L;;;;;N;;;;;-A048;YI SYLLABLE PO;Lo;0;L;;;;;N;;;;;-A049;YI SYLLABLE POP;Lo;0;L;;;;;N;;;;;-A04A;YI SYLLABLE PUT;Lo;0;L;;;;;N;;;;;-A04B;YI SYLLABLE PUX;Lo;0;L;;;;;N;;;;;-A04C;YI SYLLABLE PU;Lo;0;L;;;;;N;;;;;-A04D;YI SYLLABLE PUP;Lo;0;L;;;;;N;;;;;-A04E;YI SYLLABLE PURX;Lo;0;L;;;;;N;;;;;-A04F;YI SYLLABLE PUR;Lo;0;L;;;;;N;;;;;-A050;YI SYLLABLE PYT;Lo;0;L;;;;;N;;;;;-A051;YI SYLLABLE PYX;Lo;0;L;;;;;N;;;;;-A052;YI SYLLABLE PY;Lo;0;L;;;;;N;;;;;-A053;YI SYLLABLE PYP;Lo;0;L;;;;;N;;;;;-A054;YI SYLLABLE PYRX;Lo;0;L;;;;;N;;;;;-A055;YI SYLLABLE PYR;Lo;0;L;;;;;N;;;;;-A056;YI SYLLABLE BBIT;Lo;0;L;;;;;N;;;;;-A057;YI SYLLABLE BBIX;Lo;0;L;;;;;N;;;;;-A058;YI SYLLABLE BBI;Lo;0;L;;;;;N;;;;;-A059;YI SYLLABLE BBIP;Lo;0;L;;;;;N;;;;;-A05A;YI SYLLABLE BBIET;Lo;0;L;;;;;N;;;;;-A05B;YI SYLLABLE BBIEX;Lo;0;L;;;;;N;;;;;-A05C;YI SYLLABLE BBIE;Lo;0;L;;;;;N;;;;;-A05D;YI SYLLABLE BBIEP;Lo;0;L;;;;;N;;;;;-A05E;YI SYLLABLE BBAT;Lo;0;L;;;;;N;;;;;-A05F;YI SYLLABLE BBAX;Lo;0;L;;;;;N;;;;;-A060;YI SYLLABLE BBA;Lo;0;L;;;;;N;;;;;-A061;YI SYLLABLE BBAP;Lo;0;L;;;;;N;;;;;-A062;YI SYLLABLE BBUOX;Lo;0;L;;;;;N;;;;;-A063;YI SYLLABLE BBUO;Lo;0;L;;;;;N;;;;;-A064;YI SYLLABLE BBUOP;Lo;0;L;;;;;N;;;;;-A065;YI SYLLABLE BBOT;Lo;0;L;;;;;N;;;;;-A066;YI SYLLABLE BBOX;Lo;0;L;;;;;N;;;;;-A067;YI SYLLABLE BBO;Lo;0;L;;;;;N;;;;;-A068;YI SYLLABLE BBOP;Lo;0;L;;;;;N;;;;;-A069;YI SYLLABLE BBEX;Lo;0;L;;;;;N;;;;;-A06A;YI SYLLABLE BBE;Lo;0;L;;;;;N;;;;;-A06B;YI SYLLABLE BBEP;Lo;0;L;;;;;N;;;;;-A06C;YI SYLLABLE BBUT;Lo;0;L;;;;;N;;;;;-A06D;YI SYLLABLE BBUX;Lo;0;L;;;;;N;;;;;-A06E;YI SYLLABLE BBU;Lo;0;L;;;;;N;;;;;-A06F;YI SYLLABLE BBUP;Lo;0;L;;;;;N;;;;;-A070;YI SYLLABLE BBURX;Lo;0;L;;;;;N;;;;;-A071;YI SYLLABLE BBUR;Lo;0;L;;;;;N;;;;;-A072;YI SYLLABLE BBYT;Lo;0;L;;;;;N;;;;;-A073;YI SYLLABLE BBYX;Lo;0;L;;;;;N;;;;;-A074;YI SYLLABLE BBY;Lo;0;L;;;;;N;;;;;-A075;YI SYLLABLE BBYP;Lo;0;L;;;;;N;;;;;-A076;YI SYLLABLE NBIT;Lo;0;L;;;;;N;;;;;-A077;YI SYLLABLE NBIX;Lo;0;L;;;;;N;;;;;-A078;YI SYLLABLE NBI;Lo;0;L;;;;;N;;;;;-A079;YI SYLLABLE NBIP;Lo;0;L;;;;;N;;;;;-A07A;YI SYLLABLE NBIEX;Lo;0;L;;;;;N;;;;;-A07B;YI SYLLABLE NBIE;Lo;0;L;;;;;N;;;;;-A07C;YI SYLLABLE NBIEP;Lo;0;L;;;;;N;;;;;-A07D;YI SYLLABLE NBAT;Lo;0;L;;;;;N;;;;;-A07E;YI SYLLABLE NBAX;Lo;0;L;;;;;N;;;;;-A07F;YI SYLLABLE NBA;Lo;0;L;;;;;N;;;;;-A080;YI SYLLABLE NBAP;Lo;0;L;;;;;N;;;;;-A081;YI SYLLABLE NBOT;Lo;0;L;;;;;N;;;;;-A082;YI SYLLABLE NBOX;Lo;0;L;;;;;N;;;;;-A083;YI SYLLABLE NBO;Lo;0;L;;;;;N;;;;;-A084;YI SYLLABLE NBOP;Lo;0;L;;;;;N;;;;;-A085;YI SYLLABLE NBUT;Lo;0;L;;;;;N;;;;;-A086;YI SYLLABLE NBUX;Lo;0;L;;;;;N;;;;;-A087;YI SYLLABLE NBU;Lo;0;L;;;;;N;;;;;-A088;YI SYLLABLE NBUP;Lo;0;L;;;;;N;;;;;-A089;YI SYLLABLE NBURX;Lo;0;L;;;;;N;;;;;-A08A;YI SYLLABLE NBUR;Lo;0;L;;;;;N;;;;;-A08B;YI SYLLABLE NBYT;Lo;0;L;;;;;N;;;;;-A08C;YI SYLLABLE NBYX;Lo;0;L;;;;;N;;;;;-A08D;YI SYLLABLE NBY;Lo;0;L;;;;;N;;;;;-A08E;YI SYLLABLE NBYP;Lo;0;L;;;;;N;;;;;-A08F;YI SYLLABLE NBYRX;Lo;0;L;;;;;N;;;;;-A090;YI SYLLABLE NBYR;Lo;0;L;;;;;N;;;;;-A091;YI SYLLABLE HMIT;Lo;0;L;;;;;N;;;;;-A092;YI SYLLABLE HMIX;Lo;0;L;;;;;N;;;;;-A093;YI SYLLABLE HMI;Lo;0;L;;;;;N;;;;;-A094;YI SYLLABLE HMIP;Lo;0;L;;;;;N;;;;;-A095;YI SYLLABLE HMIEX;Lo;0;L;;;;;N;;;;;-A096;YI SYLLABLE HMIE;Lo;0;L;;;;;N;;;;;-A097;YI SYLLABLE HMIEP;Lo;0;L;;;;;N;;;;;-A098;YI SYLLABLE HMAT;Lo;0;L;;;;;N;;;;;-A099;YI SYLLABLE HMAX;Lo;0;L;;;;;N;;;;;-A09A;YI SYLLABLE HMA;Lo;0;L;;;;;N;;;;;-A09B;YI SYLLABLE HMAP;Lo;0;L;;;;;N;;;;;-A09C;YI SYLLABLE HMUOX;Lo;0;L;;;;;N;;;;;-A09D;YI SYLLABLE HMUO;Lo;0;L;;;;;N;;;;;-A09E;YI SYLLABLE HMUOP;Lo;0;L;;;;;N;;;;;-A09F;YI SYLLABLE HMOT;Lo;0;L;;;;;N;;;;;-A0A0;YI SYLLABLE HMOX;Lo;0;L;;;;;N;;;;;-A0A1;YI SYLLABLE HMO;Lo;0;L;;;;;N;;;;;-A0A2;YI SYLLABLE HMOP;Lo;0;L;;;;;N;;;;;-A0A3;YI SYLLABLE HMUT;Lo;0;L;;;;;N;;;;;-A0A4;YI SYLLABLE HMUX;Lo;0;L;;;;;N;;;;;-A0A5;YI SYLLABLE HMU;Lo;0;L;;;;;N;;;;;-A0A6;YI SYLLABLE HMUP;Lo;0;L;;;;;N;;;;;-A0A7;YI SYLLABLE HMURX;Lo;0;L;;;;;N;;;;;-A0A8;YI SYLLABLE HMUR;Lo;0;L;;;;;N;;;;;-A0A9;YI SYLLABLE HMYX;Lo;0;L;;;;;N;;;;;-A0AA;YI SYLLABLE HMY;Lo;0;L;;;;;N;;;;;-A0AB;YI SYLLABLE HMYP;Lo;0;L;;;;;N;;;;;-A0AC;YI SYLLABLE HMYRX;Lo;0;L;;;;;N;;;;;-A0AD;YI SYLLABLE HMYR;Lo;0;L;;;;;N;;;;;-A0AE;YI SYLLABLE MIT;Lo;0;L;;;;;N;;;;;-A0AF;YI SYLLABLE MIX;Lo;0;L;;;;;N;;;;;-A0B0;YI SYLLABLE MI;Lo;0;L;;;;;N;;;;;-A0B1;YI SYLLABLE MIP;Lo;0;L;;;;;N;;;;;-A0B2;YI SYLLABLE MIEX;Lo;0;L;;;;;N;;;;;-A0B3;YI SYLLABLE MIE;Lo;0;L;;;;;N;;;;;-A0B4;YI SYLLABLE MIEP;Lo;0;L;;;;;N;;;;;-A0B5;YI SYLLABLE MAT;Lo;0;L;;;;;N;;;;;-A0B6;YI SYLLABLE MAX;Lo;0;L;;;;;N;;;;;-A0B7;YI SYLLABLE MA;Lo;0;L;;;;;N;;;;;-A0B8;YI SYLLABLE MAP;Lo;0;L;;;;;N;;;;;-A0B9;YI SYLLABLE MUOT;Lo;0;L;;;;;N;;;;;-A0BA;YI SYLLABLE MUOX;Lo;0;L;;;;;N;;;;;-A0BB;YI SYLLABLE MUO;Lo;0;L;;;;;N;;;;;-A0BC;YI SYLLABLE MUOP;Lo;0;L;;;;;N;;;;;-A0BD;YI SYLLABLE MOT;Lo;0;L;;;;;N;;;;;-A0BE;YI SYLLABLE MOX;Lo;0;L;;;;;N;;;;;-A0BF;YI SYLLABLE MO;Lo;0;L;;;;;N;;;;;-A0C0;YI SYLLABLE MOP;Lo;0;L;;;;;N;;;;;-A0C1;YI SYLLABLE MEX;Lo;0;L;;;;;N;;;;;-A0C2;YI SYLLABLE ME;Lo;0;L;;;;;N;;;;;-A0C3;YI SYLLABLE MUT;Lo;0;L;;;;;N;;;;;-A0C4;YI SYLLABLE MUX;Lo;0;L;;;;;N;;;;;-A0C5;YI SYLLABLE MU;Lo;0;L;;;;;N;;;;;-A0C6;YI SYLLABLE MUP;Lo;0;L;;;;;N;;;;;-A0C7;YI SYLLABLE MURX;Lo;0;L;;;;;N;;;;;-A0C8;YI SYLLABLE MUR;Lo;0;L;;;;;N;;;;;-A0C9;YI SYLLABLE MYT;Lo;0;L;;;;;N;;;;;-A0CA;YI SYLLABLE MYX;Lo;0;L;;;;;N;;;;;-A0CB;YI SYLLABLE MY;Lo;0;L;;;;;N;;;;;-A0CC;YI SYLLABLE MYP;Lo;0;L;;;;;N;;;;;-A0CD;YI SYLLABLE FIT;Lo;0;L;;;;;N;;;;;-A0CE;YI SYLLABLE FIX;Lo;0;L;;;;;N;;;;;-A0CF;YI SYLLABLE FI;Lo;0;L;;;;;N;;;;;-A0D0;YI SYLLABLE FIP;Lo;0;L;;;;;N;;;;;-A0D1;YI SYLLABLE FAT;Lo;0;L;;;;;N;;;;;-A0D2;YI SYLLABLE FAX;Lo;0;L;;;;;N;;;;;-A0D3;YI SYLLABLE FA;Lo;0;L;;;;;N;;;;;-A0D4;YI SYLLABLE FAP;Lo;0;L;;;;;N;;;;;-A0D5;YI SYLLABLE FOX;Lo;0;L;;;;;N;;;;;-A0D6;YI SYLLABLE FO;Lo;0;L;;;;;N;;;;;-A0D7;YI SYLLABLE FOP;Lo;0;L;;;;;N;;;;;-A0D8;YI SYLLABLE FUT;Lo;0;L;;;;;N;;;;;-A0D9;YI SYLLABLE FUX;Lo;0;L;;;;;N;;;;;-A0DA;YI SYLLABLE FU;Lo;0;L;;;;;N;;;;;-A0DB;YI SYLLABLE FUP;Lo;0;L;;;;;N;;;;;-A0DC;YI SYLLABLE FURX;Lo;0;L;;;;;N;;;;;-A0DD;YI SYLLABLE FUR;Lo;0;L;;;;;N;;;;;-A0DE;YI SYLLABLE FYT;Lo;0;L;;;;;N;;;;;-A0DF;YI SYLLABLE FYX;Lo;0;L;;;;;N;;;;;-A0E0;YI SYLLABLE FY;Lo;0;L;;;;;N;;;;;-A0E1;YI SYLLABLE FYP;Lo;0;L;;;;;N;;;;;-A0E2;YI SYLLABLE VIT;Lo;0;L;;;;;N;;;;;-A0E3;YI SYLLABLE VIX;Lo;0;L;;;;;N;;;;;-A0E4;YI SYLLABLE VI;Lo;0;L;;;;;N;;;;;-A0E5;YI SYLLABLE VIP;Lo;0;L;;;;;N;;;;;-A0E6;YI SYLLABLE VIET;Lo;0;L;;;;;N;;;;;-A0E7;YI SYLLABLE VIEX;Lo;0;L;;;;;N;;;;;-A0E8;YI SYLLABLE VIE;Lo;0;L;;;;;N;;;;;-A0E9;YI SYLLABLE VIEP;Lo;0;L;;;;;N;;;;;-A0EA;YI SYLLABLE VAT;Lo;0;L;;;;;N;;;;;-A0EB;YI SYLLABLE VAX;Lo;0;L;;;;;N;;;;;-A0EC;YI SYLLABLE VA;Lo;0;L;;;;;N;;;;;-A0ED;YI SYLLABLE VAP;Lo;0;L;;;;;N;;;;;-A0EE;YI SYLLABLE VOT;Lo;0;L;;;;;N;;;;;-A0EF;YI SYLLABLE VOX;Lo;0;L;;;;;N;;;;;-A0F0;YI SYLLABLE VO;Lo;0;L;;;;;N;;;;;-A0F1;YI SYLLABLE VOP;Lo;0;L;;;;;N;;;;;-A0F2;YI SYLLABLE VEX;Lo;0;L;;;;;N;;;;;-A0F3;YI SYLLABLE VEP;Lo;0;L;;;;;N;;;;;-A0F4;YI SYLLABLE VUT;Lo;0;L;;;;;N;;;;;-A0F5;YI SYLLABLE VUX;Lo;0;L;;;;;N;;;;;-A0F6;YI SYLLABLE VU;Lo;0;L;;;;;N;;;;;-A0F7;YI SYLLABLE VUP;Lo;0;L;;;;;N;;;;;-A0F8;YI SYLLABLE VURX;Lo;0;L;;;;;N;;;;;-A0F9;YI SYLLABLE VUR;Lo;0;L;;;;;N;;;;;-A0FA;YI SYLLABLE VYT;Lo;0;L;;;;;N;;;;;-A0FB;YI SYLLABLE VYX;Lo;0;L;;;;;N;;;;;-A0FC;YI SYLLABLE VY;Lo;0;L;;;;;N;;;;;-A0FD;YI SYLLABLE VYP;Lo;0;L;;;;;N;;;;;-A0FE;YI SYLLABLE VYRX;Lo;0;L;;;;;N;;;;;-A0FF;YI SYLLABLE VYR;Lo;0;L;;;;;N;;;;;-A100;YI SYLLABLE DIT;Lo;0;L;;;;;N;;;;;-A101;YI SYLLABLE DIX;Lo;0;L;;;;;N;;;;;-A102;YI SYLLABLE DI;Lo;0;L;;;;;N;;;;;-A103;YI SYLLABLE DIP;Lo;0;L;;;;;N;;;;;-A104;YI SYLLABLE DIEX;Lo;0;L;;;;;N;;;;;-A105;YI SYLLABLE DIE;Lo;0;L;;;;;N;;;;;-A106;YI SYLLABLE DIEP;Lo;0;L;;;;;N;;;;;-A107;YI SYLLABLE DAT;Lo;0;L;;;;;N;;;;;-A108;YI SYLLABLE DAX;Lo;0;L;;;;;N;;;;;-A109;YI SYLLABLE DA;Lo;0;L;;;;;N;;;;;-A10A;YI SYLLABLE DAP;Lo;0;L;;;;;N;;;;;-A10B;YI SYLLABLE DUOX;Lo;0;L;;;;;N;;;;;-A10C;YI SYLLABLE DUO;Lo;0;L;;;;;N;;;;;-A10D;YI SYLLABLE DOT;Lo;0;L;;;;;N;;;;;-A10E;YI SYLLABLE DOX;Lo;0;L;;;;;N;;;;;-A10F;YI SYLLABLE DO;Lo;0;L;;;;;N;;;;;-A110;YI SYLLABLE DOP;Lo;0;L;;;;;N;;;;;-A111;YI SYLLABLE DEX;Lo;0;L;;;;;N;;;;;-A112;YI SYLLABLE DE;Lo;0;L;;;;;N;;;;;-A113;YI SYLLABLE DEP;Lo;0;L;;;;;N;;;;;-A114;YI SYLLABLE DUT;Lo;0;L;;;;;N;;;;;-A115;YI SYLLABLE DUX;Lo;0;L;;;;;N;;;;;-A116;YI SYLLABLE DU;Lo;0;L;;;;;N;;;;;-A117;YI SYLLABLE DUP;Lo;0;L;;;;;N;;;;;-A118;YI SYLLABLE DURX;Lo;0;L;;;;;N;;;;;-A119;YI SYLLABLE DUR;Lo;0;L;;;;;N;;;;;-A11A;YI SYLLABLE TIT;Lo;0;L;;;;;N;;;;;-A11B;YI SYLLABLE TIX;Lo;0;L;;;;;N;;;;;-A11C;YI SYLLABLE TI;Lo;0;L;;;;;N;;;;;-A11D;YI SYLLABLE TIP;Lo;0;L;;;;;N;;;;;-A11E;YI SYLLABLE TIEX;Lo;0;L;;;;;N;;;;;-A11F;YI SYLLABLE TIE;Lo;0;L;;;;;N;;;;;-A120;YI SYLLABLE TIEP;Lo;0;L;;;;;N;;;;;-A121;YI SYLLABLE TAT;Lo;0;L;;;;;N;;;;;-A122;YI SYLLABLE TAX;Lo;0;L;;;;;N;;;;;-A123;YI SYLLABLE TA;Lo;0;L;;;;;N;;;;;-A124;YI SYLLABLE TAP;Lo;0;L;;;;;N;;;;;-A125;YI SYLLABLE TUOT;Lo;0;L;;;;;N;;;;;-A126;YI SYLLABLE TUOX;Lo;0;L;;;;;N;;;;;-A127;YI SYLLABLE TUO;Lo;0;L;;;;;N;;;;;-A128;YI SYLLABLE TUOP;Lo;0;L;;;;;N;;;;;-A129;YI SYLLABLE TOT;Lo;0;L;;;;;N;;;;;-A12A;YI SYLLABLE TOX;Lo;0;L;;;;;N;;;;;-A12B;YI SYLLABLE TO;Lo;0;L;;;;;N;;;;;-A12C;YI SYLLABLE TOP;Lo;0;L;;;;;N;;;;;-A12D;YI SYLLABLE TEX;Lo;0;L;;;;;N;;;;;-A12E;YI SYLLABLE TE;Lo;0;L;;;;;N;;;;;-A12F;YI SYLLABLE TEP;Lo;0;L;;;;;N;;;;;-A130;YI SYLLABLE TUT;Lo;0;L;;;;;N;;;;;-A131;YI SYLLABLE TUX;Lo;0;L;;;;;N;;;;;-A132;YI SYLLABLE TU;Lo;0;L;;;;;N;;;;;-A133;YI SYLLABLE TUP;Lo;0;L;;;;;N;;;;;-A134;YI SYLLABLE TURX;Lo;0;L;;;;;N;;;;;-A135;YI SYLLABLE TUR;Lo;0;L;;;;;N;;;;;-A136;YI SYLLABLE DDIT;Lo;0;L;;;;;N;;;;;-A137;YI SYLLABLE DDIX;Lo;0;L;;;;;N;;;;;-A138;YI SYLLABLE DDI;Lo;0;L;;;;;N;;;;;-A139;YI SYLLABLE DDIP;Lo;0;L;;;;;N;;;;;-A13A;YI SYLLABLE DDIEX;Lo;0;L;;;;;N;;;;;-A13B;YI SYLLABLE DDIE;Lo;0;L;;;;;N;;;;;-A13C;YI SYLLABLE DDIEP;Lo;0;L;;;;;N;;;;;-A13D;YI SYLLABLE DDAT;Lo;0;L;;;;;N;;;;;-A13E;YI SYLLABLE DDAX;Lo;0;L;;;;;N;;;;;-A13F;YI SYLLABLE DDA;Lo;0;L;;;;;N;;;;;-A140;YI SYLLABLE DDAP;Lo;0;L;;;;;N;;;;;-A141;YI SYLLABLE DDUOX;Lo;0;L;;;;;N;;;;;-A142;YI SYLLABLE DDUO;Lo;0;L;;;;;N;;;;;-A143;YI SYLLABLE DDUOP;Lo;0;L;;;;;N;;;;;-A144;YI SYLLABLE DDOT;Lo;0;L;;;;;N;;;;;-A145;YI SYLLABLE DDOX;Lo;0;L;;;;;N;;;;;-A146;YI SYLLABLE DDO;Lo;0;L;;;;;N;;;;;-A147;YI SYLLABLE DDOP;Lo;0;L;;;;;N;;;;;-A148;YI SYLLABLE DDEX;Lo;0;L;;;;;N;;;;;-A149;YI SYLLABLE DDE;Lo;0;L;;;;;N;;;;;-A14A;YI SYLLABLE DDEP;Lo;0;L;;;;;N;;;;;-A14B;YI SYLLABLE DDUT;Lo;0;L;;;;;N;;;;;-A14C;YI SYLLABLE DDUX;Lo;0;L;;;;;N;;;;;-A14D;YI SYLLABLE DDU;Lo;0;L;;;;;N;;;;;-A14E;YI SYLLABLE DDUP;Lo;0;L;;;;;N;;;;;-A14F;YI SYLLABLE DDURX;Lo;0;L;;;;;N;;;;;-A150;YI SYLLABLE DDUR;Lo;0;L;;;;;N;;;;;-A151;YI SYLLABLE NDIT;Lo;0;L;;;;;N;;;;;-A152;YI SYLLABLE NDIX;Lo;0;L;;;;;N;;;;;-A153;YI SYLLABLE NDI;Lo;0;L;;;;;N;;;;;-A154;YI SYLLABLE NDIP;Lo;0;L;;;;;N;;;;;-A155;YI SYLLABLE NDIEX;Lo;0;L;;;;;N;;;;;-A156;YI SYLLABLE NDIE;Lo;0;L;;;;;N;;;;;-A157;YI SYLLABLE NDAT;Lo;0;L;;;;;N;;;;;-A158;YI SYLLABLE NDAX;Lo;0;L;;;;;N;;;;;-A159;YI SYLLABLE NDA;Lo;0;L;;;;;N;;;;;-A15A;YI SYLLABLE NDAP;Lo;0;L;;;;;N;;;;;-A15B;YI SYLLABLE NDOT;Lo;0;L;;;;;N;;;;;-A15C;YI SYLLABLE NDOX;Lo;0;L;;;;;N;;;;;-A15D;YI SYLLABLE NDO;Lo;0;L;;;;;N;;;;;-A15E;YI SYLLABLE NDOP;Lo;0;L;;;;;N;;;;;-A15F;YI SYLLABLE NDEX;Lo;0;L;;;;;N;;;;;-A160;YI SYLLABLE NDE;Lo;0;L;;;;;N;;;;;-A161;YI SYLLABLE NDEP;Lo;0;L;;;;;N;;;;;-A162;YI SYLLABLE NDUT;Lo;0;L;;;;;N;;;;;-A163;YI SYLLABLE NDUX;Lo;0;L;;;;;N;;;;;-A164;YI SYLLABLE NDU;Lo;0;L;;;;;N;;;;;-A165;YI SYLLABLE NDUP;Lo;0;L;;;;;N;;;;;-A166;YI SYLLABLE NDURX;Lo;0;L;;;;;N;;;;;-A167;YI SYLLABLE NDUR;Lo;0;L;;;;;N;;;;;-A168;YI SYLLABLE HNIT;Lo;0;L;;;;;N;;;;;-A169;YI SYLLABLE HNIX;Lo;0;L;;;;;N;;;;;-A16A;YI SYLLABLE HNI;Lo;0;L;;;;;N;;;;;-A16B;YI SYLLABLE HNIP;Lo;0;L;;;;;N;;;;;-A16C;YI SYLLABLE HNIET;Lo;0;L;;;;;N;;;;;-A16D;YI SYLLABLE HNIEX;Lo;0;L;;;;;N;;;;;-A16E;YI SYLLABLE HNIE;Lo;0;L;;;;;N;;;;;-A16F;YI SYLLABLE HNIEP;Lo;0;L;;;;;N;;;;;-A170;YI SYLLABLE HNAT;Lo;0;L;;;;;N;;;;;-A171;YI SYLLABLE HNAX;Lo;0;L;;;;;N;;;;;-A172;YI SYLLABLE HNA;Lo;0;L;;;;;N;;;;;-A173;YI SYLLABLE HNAP;Lo;0;L;;;;;N;;;;;-A174;YI SYLLABLE HNUOX;Lo;0;L;;;;;N;;;;;-A175;YI SYLLABLE HNUO;Lo;0;L;;;;;N;;;;;-A176;YI SYLLABLE HNOT;Lo;0;L;;;;;N;;;;;-A177;YI SYLLABLE HNOX;Lo;0;L;;;;;N;;;;;-A178;YI SYLLABLE HNOP;Lo;0;L;;;;;N;;;;;-A179;YI SYLLABLE HNEX;Lo;0;L;;;;;N;;;;;-A17A;YI SYLLABLE HNE;Lo;0;L;;;;;N;;;;;-A17B;YI SYLLABLE HNEP;Lo;0;L;;;;;N;;;;;-A17C;YI SYLLABLE HNUT;Lo;0;L;;;;;N;;;;;-A17D;YI SYLLABLE NIT;Lo;0;L;;;;;N;;;;;-A17E;YI SYLLABLE NIX;Lo;0;L;;;;;N;;;;;-A17F;YI SYLLABLE NI;Lo;0;L;;;;;N;;;;;-A180;YI SYLLABLE NIP;Lo;0;L;;;;;N;;;;;-A181;YI SYLLABLE NIEX;Lo;0;L;;;;;N;;;;;-A182;YI SYLLABLE NIE;Lo;0;L;;;;;N;;;;;-A183;YI SYLLABLE NIEP;Lo;0;L;;;;;N;;;;;-A184;YI SYLLABLE NAX;Lo;0;L;;;;;N;;;;;-A185;YI SYLLABLE NA;Lo;0;L;;;;;N;;;;;-A186;YI SYLLABLE NAP;Lo;0;L;;;;;N;;;;;-A187;YI SYLLABLE NUOX;Lo;0;L;;;;;N;;;;;-A188;YI SYLLABLE NUO;Lo;0;L;;;;;N;;;;;-A189;YI SYLLABLE NUOP;Lo;0;L;;;;;N;;;;;-A18A;YI SYLLABLE NOT;Lo;0;L;;;;;N;;;;;-A18B;YI SYLLABLE NOX;Lo;0;L;;;;;N;;;;;-A18C;YI SYLLABLE NO;Lo;0;L;;;;;N;;;;;-A18D;YI SYLLABLE NOP;Lo;0;L;;;;;N;;;;;-A18E;YI SYLLABLE NEX;Lo;0;L;;;;;N;;;;;-A18F;YI SYLLABLE NE;Lo;0;L;;;;;N;;;;;-A190;YI SYLLABLE NEP;Lo;0;L;;;;;N;;;;;-A191;YI SYLLABLE NUT;Lo;0;L;;;;;N;;;;;-A192;YI SYLLABLE NUX;Lo;0;L;;;;;N;;;;;-A193;YI SYLLABLE NU;Lo;0;L;;;;;N;;;;;-A194;YI SYLLABLE NUP;Lo;0;L;;;;;N;;;;;-A195;YI SYLLABLE NURX;Lo;0;L;;;;;N;;;;;-A196;YI SYLLABLE NUR;Lo;0;L;;;;;N;;;;;-A197;YI SYLLABLE HLIT;Lo;0;L;;;;;N;;;;;-A198;YI SYLLABLE HLIX;Lo;0;L;;;;;N;;;;;-A199;YI SYLLABLE HLI;Lo;0;L;;;;;N;;;;;-A19A;YI SYLLABLE HLIP;Lo;0;L;;;;;N;;;;;-A19B;YI SYLLABLE HLIEX;Lo;0;L;;;;;N;;;;;-A19C;YI SYLLABLE HLIE;Lo;0;L;;;;;N;;;;;-A19D;YI SYLLABLE HLIEP;Lo;0;L;;;;;N;;;;;-A19E;YI SYLLABLE HLAT;Lo;0;L;;;;;N;;;;;-A19F;YI SYLLABLE HLAX;Lo;0;L;;;;;N;;;;;-A1A0;YI SYLLABLE HLA;Lo;0;L;;;;;N;;;;;-A1A1;YI SYLLABLE HLAP;Lo;0;L;;;;;N;;;;;-A1A2;YI SYLLABLE HLUOX;Lo;0;L;;;;;N;;;;;-A1A3;YI SYLLABLE HLUO;Lo;0;L;;;;;N;;;;;-A1A4;YI SYLLABLE HLUOP;Lo;0;L;;;;;N;;;;;-A1A5;YI SYLLABLE HLOX;Lo;0;L;;;;;N;;;;;-A1A6;YI SYLLABLE HLO;Lo;0;L;;;;;N;;;;;-A1A7;YI SYLLABLE HLOP;Lo;0;L;;;;;N;;;;;-A1A8;YI SYLLABLE HLEX;Lo;0;L;;;;;N;;;;;-A1A9;YI SYLLABLE HLE;Lo;0;L;;;;;N;;;;;-A1AA;YI SYLLABLE HLEP;Lo;0;L;;;;;N;;;;;-A1AB;YI SYLLABLE HLUT;Lo;0;L;;;;;N;;;;;-A1AC;YI SYLLABLE HLUX;Lo;0;L;;;;;N;;;;;-A1AD;YI SYLLABLE HLU;Lo;0;L;;;;;N;;;;;-A1AE;YI SYLLABLE HLUP;Lo;0;L;;;;;N;;;;;-A1AF;YI SYLLABLE HLURX;Lo;0;L;;;;;N;;;;;-A1B0;YI SYLLABLE HLUR;Lo;0;L;;;;;N;;;;;-A1B1;YI SYLLABLE HLYT;Lo;0;L;;;;;N;;;;;-A1B2;YI SYLLABLE HLYX;Lo;0;L;;;;;N;;;;;-A1B3;YI SYLLABLE HLY;Lo;0;L;;;;;N;;;;;-A1B4;YI SYLLABLE HLYP;Lo;0;L;;;;;N;;;;;-A1B5;YI SYLLABLE HLYRX;Lo;0;L;;;;;N;;;;;-A1B6;YI SYLLABLE HLYR;Lo;0;L;;;;;N;;;;;-A1B7;YI SYLLABLE LIT;Lo;0;L;;;;;N;;;;;-A1B8;YI SYLLABLE LIX;Lo;0;L;;;;;N;;;;;-A1B9;YI SYLLABLE LI;Lo;0;L;;;;;N;;;;;-A1BA;YI SYLLABLE LIP;Lo;0;L;;;;;N;;;;;-A1BB;YI SYLLABLE LIET;Lo;0;L;;;;;N;;;;;-A1BC;YI SYLLABLE LIEX;Lo;0;L;;;;;N;;;;;-A1BD;YI SYLLABLE LIE;Lo;0;L;;;;;N;;;;;-A1BE;YI SYLLABLE LIEP;Lo;0;L;;;;;N;;;;;-A1BF;YI SYLLABLE LAT;Lo;0;L;;;;;N;;;;;-A1C0;YI SYLLABLE LAX;Lo;0;L;;;;;N;;;;;-A1C1;YI SYLLABLE LA;Lo;0;L;;;;;N;;;;;-A1C2;YI SYLLABLE LAP;Lo;0;L;;;;;N;;;;;-A1C3;YI SYLLABLE LUOT;Lo;0;L;;;;;N;;;;;-A1C4;YI SYLLABLE LUOX;Lo;0;L;;;;;N;;;;;-A1C5;YI SYLLABLE LUO;Lo;0;L;;;;;N;;;;;-A1C6;YI SYLLABLE LUOP;Lo;0;L;;;;;N;;;;;-A1C7;YI SYLLABLE LOT;Lo;0;L;;;;;N;;;;;-A1C8;YI SYLLABLE LOX;Lo;0;L;;;;;N;;;;;-A1C9;YI SYLLABLE LO;Lo;0;L;;;;;N;;;;;-A1CA;YI SYLLABLE LOP;Lo;0;L;;;;;N;;;;;-A1CB;YI SYLLABLE LEX;Lo;0;L;;;;;N;;;;;-A1CC;YI SYLLABLE LE;Lo;0;L;;;;;N;;;;;-A1CD;YI SYLLABLE LEP;Lo;0;L;;;;;N;;;;;-A1CE;YI SYLLABLE LUT;Lo;0;L;;;;;N;;;;;-A1CF;YI SYLLABLE LUX;Lo;0;L;;;;;N;;;;;-A1D0;YI SYLLABLE LU;Lo;0;L;;;;;N;;;;;-A1D1;YI SYLLABLE LUP;Lo;0;L;;;;;N;;;;;-A1D2;YI SYLLABLE LURX;Lo;0;L;;;;;N;;;;;-A1D3;YI SYLLABLE LUR;Lo;0;L;;;;;N;;;;;-A1D4;YI SYLLABLE LYT;Lo;0;L;;;;;N;;;;;-A1D5;YI SYLLABLE LYX;Lo;0;L;;;;;N;;;;;-A1D6;YI SYLLABLE LY;Lo;0;L;;;;;N;;;;;-A1D7;YI SYLLABLE LYP;Lo;0;L;;;;;N;;;;;-A1D8;YI SYLLABLE LYRX;Lo;0;L;;;;;N;;;;;-A1D9;YI SYLLABLE LYR;Lo;0;L;;;;;N;;;;;-A1DA;YI SYLLABLE GIT;Lo;0;L;;;;;N;;;;;-A1DB;YI SYLLABLE GIX;Lo;0;L;;;;;N;;;;;-A1DC;YI SYLLABLE GI;Lo;0;L;;;;;N;;;;;-A1DD;YI SYLLABLE GIP;Lo;0;L;;;;;N;;;;;-A1DE;YI SYLLABLE GIET;Lo;0;L;;;;;N;;;;;-A1DF;YI SYLLABLE GIEX;Lo;0;L;;;;;N;;;;;-A1E0;YI SYLLABLE GIE;Lo;0;L;;;;;N;;;;;-A1E1;YI SYLLABLE GIEP;Lo;0;L;;;;;N;;;;;-A1E2;YI SYLLABLE GAT;Lo;0;L;;;;;N;;;;;-A1E3;YI SYLLABLE GAX;Lo;0;L;;;;;N;;;;;-A1E4;YI SYLLABLE GA;Lo;0;L;;;;;N;;;;;-A1E5;YI SYLLABLE GAP;Lo;0;L;;;;;N;;;;;-A1E6;YI SYLLABLE GUOT;Lo;0;L;;;;;N;;;;;-A1E7;YI SYLLABLE GUOX;Lo;0;L;;;;;N;;;;;-A1E8;YI SYLLABLE GUO;Lo;0;L;;;;;N;;;;;-A1E9;YI SYLLABLE GUOP;Lo;0;L;;;;;N;;;;;-A1EA;YI SYLLABLE GOT;Lo;0;L;;;;;N;;;;;-A1EB;YI SYLLABLE GOX;Lo;0;L;;;;;N;;;;;-A1EC;YI SYLLABLE GO;Lo;0;L;;;;;N;;;;;-A1ED;YI SYLLABLE GOP;Lo;0;L;;;;;N;;;;;-A1EE;YI SYLLABLE GET;Lo;0;L;;;;;N;;;;;-A1EF;YI SYLLABLE GEX;Lo;0;L;;;;;N;;;;;-A1F0;YI SYLLABLE GE;Lo;0;L;;;;;N;;;;;-A1F1;YI SYLLABLE GEP;Lo;0;L;;;;;N;;;;;-A1F2;YI SYLLABLE GUT;Lo;0;L;;;;;N;;;;;-A1F3;YI SYLLABLE GUX;Lo;0;L;;;;;N;;;;;-A1F4;YI SYLLABLE GU;Lo;0;L;;;;;N;;;;;-A1F5;YI SYLLABLE GUP;Lo;0;L;;;;;N;;;;;-A1F6;YI SYLLABLE GURX;Lo;0;L;;;;;N;;;;;-A1F7;YI SYLLABLE GUR;Lo;0;L;;;;;N;;;;;-A1F8;YI SYLLABLE KIT;Lo;0;L;;;;;N;;;;;-A1F9;YI SYLLABLE KIX;Lo;0;L;;;;;N;;;;;-A1FA;YI SYLLABLE KI;Lo;0;L;;;;;N;;;;;-A1FB;YI SYLLABLE KIP;Lo;0;L;;;;;N;;;;;-A1FC;YI SYLLABLE KIEX;Lo;0;L;;;;;N;;;;;-A1FD;YI SYLLABLE KIE;Lo;0;L;;;;;N;;;;;-A1FE;YI SYLLABLE KIEP;Lo;0;L;;;;;N;;;;;-A1FF;YI SYLLABLE KAT;Lo;0;L;;;;;N;;;;;-A200;YI SYLLABLE KAX;Lo;0;L;;;;;N;;;;;-A201;YI SYLLABLE KA;Lo;0;L;;;;;N;;;;;-A202;YI SYLLABLE KAP;Lo;0;L;;;;;N;;;;;-A203;YI SYLLABLE KUOX;Lo;0;L;;;;;N;;;;;-A204;YI SYLLABLE KUO;Lo;0;L;;;;;N;;;;;-A205;YI SYLLABLE KUOP;Lo;0;L;;;;;N;;;;;-A206;YI SYLLABLE KOT;Lo;0;L;;;;;N;;;;;-A207;YI SYLLABLE KOX;Lo;0;L;;;;;N;;;;;-A208;YI SYLLABLE KO;Lo;0;L;;;;;N;;;;;-A209;YI SYLLABLE KOP;Lo;0;L;;;;;N;;;;;-A20A;YI SYLLABLE KET;Lo;0;L;;;;;N;;;;;-A20B;YI SYLLABLE KEX;Lo;0;L;;;;;N;;;;;-A20C;YI SYLLABLE KE;Lo;0;L;;;;;N;;;;;-A20D;YI SYLLABLE KEP;Lo;0;L;;;;;N;;;;;-A20E;YI SYLLABLE KUT;Lo;0;L;;;;;N;;;;;-A20F;YI SYLLABLE KUX;Lo;0;L;;;;;N;;;;;-A210;YI SYLLABLE KU;Lo;0;L;;;;;N;;;;;-A211;YI SYLLABLE KUP;Lo;0;L;;;;;N;;;;;-A212;YI SYLLABLE KURX;Lo;0;L;;;;;N;;;;;-A213;YI SYLLABLE KUR;Lo;0;L;;;;;N;;;;;-A214;YI SYLLABLE GGIT;Lo;0;L;;;;;N;;;;;-A215;YI SYLLABLE GGIX;Lo;0;L;;;;;N;;;;;-A216;YI SYLLABLE GGI;Lo;0;L;;;;;N;;;;;-A217;YI SYLLABLE GGIEX;Lo;0;L;;;;;N;;;;;-A218;YI SYLLABLE GGIE;Lo;0;L;;;;;N;;;;;-A219;YI SYLLABLE GGIEP;Lo;0;L;;;;;N;;;;;-A21A;YI SYLLABLE GGAT;Lo;0;L;;;;;N;;;;;-A21B;YI SYLLABLE GGAX;Lo;0;L;;;;;N;;;;;-A21C;YI SYLLABLE GGA;Lo;0;L;;;;;N;;;;;-A21D;YI SYLLABLE GGAP;Lo;0;L;;;;;N;;;;;-A21E;YI SYLLABLE GGUOT;Lo;0;L;;;;;N;;;;;-A21F;YI SYLLABLE GGUOX;Lo;0;L;;;;;N;;;;;-A220;YI SYLLABLE GGUO;Lo;0;L;;;;;N;;;;;-A221;YI SYLLABLE GGUOP;Lo;0;L;;;;;N;;;;;-A222;YI SYLLABLE GGOT;Lo;0;L;;;;;N;;;;;-A223;YI SYLLABLE GGOX;Lo;0;L;;;;;N;;;;;-A224;YI SYLLABLE GGO;Lo;0;L;;;;;N;;;;;-A225;YI SYLLABLE GGOP;Lo;0;L;;;;;N;;;;;-A226;YI SYLLABLE GGET;Lo;0;L;;;;;N;;;;;-A227;YI SYLLABLE GGEX;Lo;0;L;;;;;N;;;;;-A228;YI SYLLABLE GGE;Lo;0;L;;;;;N;;;;;-A229;YI SYLLABLE GGEP;Lo;0;L;;;;;N;;;;;-A22A;YI SYLLABLE GGUT;Lo;0;L;;;;;N;;;;;-A22B;YI SYLLABLE GGUX;Lo;0;L;;;;;N;;;;;-A22C;YI SYLLABLE GGU;Lo;0;L;;;;;N;;;;;-A22D;YI SYLLABLE GGUP;Lo;0;L;;;;;N;;;;;-A22E;YI SYLLABLE GGURX;Lo;0;L;;;;;N;;;;;-A22F;YI SYLLABLE GGUR;Lo;0;L;;;;;N;;;;;-A230;YI SYLLABLE MGIEX;Lo;0;L;;;;;N;;;;;-A231;YI SYLLABLE MGIE;Lo;0;L;;;;;N;;;;;-A232;YI SYLLABLE MGAT;Lo;0;L;;;;;N;;;;;-A233;YI SYLLABLE MGAX;Lo;0;L;;;;;N;;;;;-A234;YI SYLLABLE MGA;Lo;0;L;;;;;N;;;;;-A235;YI SYLLABLE MGAP;Lo;0;L;;;;;N;;;;;-A236;YI SYLLABLE MGUOX;Lo;0;L;;;;;N;;;;;-A237;YI SYLLABLE MGUO;Lo;0;L;;;;;N;;;;;-A238;YI SYLLABLE MGUOP;Lo;0;L;;;;;N;;;;;-A239;YI SYLLABLE MGOT;Lo;0;L;;;;;N;;;;;-A23A;YI SYLLABLE MGOX;Lo;0;L;;;;;N;;;;;-A23B;YI SYLLABLE MGO;Lo;0;L;;;;;N;;;;;-A23C;YI SYLLABLE MGOP;Lo;0;L;;;;;N;;;;;-A23D;YI SYLLABLE MGEX;Lo;0;L;;;;;N;;;;;-A23E;YI SYLLABLE MGE;Lo;0;L;;;;;N;;;;;-A23F;YI SYLLABLE MGEP;Lo;0;L;;;;;N;;;;;-A240;YI SYLLABLE MGUT;Lo;0;L;;;;;N;;;;;-A241;YI SYLLABLE MGUX;Lo;0;L;;;;;N;;;;;-A242;YI SYLLABLE MGU;Lo;0;L;;;;;N;;;;;-A243;YI SYLLABLE MGUP;Lo;0;L;;;;;N;;;;;-A244;YI SYLLABLE MGURX;Lo;0;L;;;;;N;;;;;-A245;YI SYLLABLE MGUR;Lo;0;L;;;;;N;;;;;-A246;YI SYLLABLE HXIT;Lo;0;L;;;;;N;;;;;-A247;YI SYLLABLE HXIX;Lo;0;L;;;;;N;;;;;-A248;YI SYLLABLE HXI;Lo;0;L;;;;;N;;;;;-A249;YI SYLLABLE HXIP;Lo;0;L;;;;;N;;;;;-A24A;YI SYLLABLE HXIET;Lo;0;L;;;;;N;;;;;-A24B;YI SYLLABLE HXIEX;Lo;0;L;;;;;N;;;;;-A24C;YI SYLLABLE HXIE;Lo;0;L;;;;;N;;;;;-A24D;YI SYLLABLE HXIEP;Lo;0;L;;;;;N;;;;;-A24E;YI SYLLABLE HXAT;Lo;0;L;;;;;N;;;;;-A24F;YI SYLLABLE HXAX;Lo;0;L;;;;;N;;;;;-A250;YI SYLLABLE HXA;Lo;0;L;;;;;N;;;;;-A251;YI SYLLABLE HXAP;Lo;0;L;;;;;N;;;;;-A252;YI SYLLABLE HXUOT;Lo;0;L;;;;;N;;;;;-A253;YI SYLLABLE HXUOX;Lo;0;L;;;;;N;;;;;-A254;YI SYLLABLE HXUO;Lo;0;L;;;;;N;;;;;-A255;YI SYLLABLE HXUOP;Lo;0;L;;;;;N;;;;;-A256;YI SYLLABLE HXOT;Lo;0;L;;;;;N;;;;;-A257;YI SYLLABLE HXOX;Lo;0;L;;;;;N;;;;;-A258;YI SYLLABLE HXO;Lo;0;L;;;;;N;;;;;-A259;YI SYLLABLE HXOP;Lo;0;L;;;;;N;;;;;-A25A;YI SYLLABLE HXEX;Lo;0;L;;;;;N;;;;;-A25B;YI SYLLABLE HXE;Lo;0;L;;;;;N;;;;;-A25C;YI SYLLABLE HXEP;Lo;0;L;;;;;N;;;;;-A25D;YI SYLLABLE NGIEX;Lo;0;L;;;;;N;;;;;-A25E;YI SYLLABLE NGIE;Lo;0;L;;;;;N;;;;;-A25F;YI SYLLABLE NGIEP;Lo;0;L;;;;;N;;;;;-A260;YI SYLLABLE NGAT;Lo;0;L;;;;;N;;;;;-A261;YI SYLLABLE NGAX;Lo;0;L;;;;;N;;;;;-A262;YI SYLLABLE NGA;Lo;0;L;;;;;N;;;;;-A263;YI SYLLABLE NGAP;Lo;0;L;;;;;N;;;;;-A264;YI SYLLABLE NGUOT;Lo;0;L;;;;;N;;;;;-A265;YI SYLLABLE NGUOX;Lo;0;L;;;;;N;;;;;-A266;YI SYLLABLE NGUO;Lo;0;L;;;;;N;;;;;-A267;YI SYLLABLE NGOT;Lo;0;L;;;;;N;;;;;-A268;YI SYLLABLE NGOX;Lo;0;L;;;;;N;;;;;-A269;YI SYLLABLE NGO;Lo;0;L;;;;;N;;;;;-A26A;YI SYLLABLE NGOP;Lo;0;L;;;;;N;;;;;-A26B;YI SYLLABLE NGEX;Lo;0;L;;;;;N;;;;;-A26C;YI SYLLABLE NGE;Lo;0;L;;;;;N;;;;;-A26D;YI SYLLABLE NGEP;Lo;0;L;;;;;N;;;;;-A26E;YI SYLLABLE HIT;Lo;0;L;;;;;N;;;;;-A26F;YI SYLLABLE HIEX;Lo;0;L;;;;;N;;;;;-A270;YI SYLLABLE HIE;Lo;0;L;;;;;N;;;;;-A271;YI SYLLABLE HAT;Lo;0;L;;;;;N;;;;;-A272;YI SYLLABLE HAX;Lo;0;L;;;;;N;;;;;-A273;YI SYLLABLE HA;Lo;0;L;;;;;N;;;;;-A274;YI SYLLABLE HAP;Lo;0;L;;;;;N;;;;;-A275;YI SYLLABLE HUOT;Lo;0;L;;;;;N;;;;;-A276;YI SYLLABLE HUOX;Lo;0;L;;;;;N;;;;;-A277;YI SYLLABLE HUO;Lo;0;L;;;;;N;;;;;-A278;YI SYLLABLE HUOP;Lo;0;L;;;;;N;;;;;-A279;YI SYLLABLE HOT;Lo;0;L;;;;;N;;;;;-A27A;YI SYLLABLE HOX;Lo;0;L;;;;;N;;;;;-A27B;YI SYLLABLE HO;Lo;0;L;;;;;N;;;;;-A27C;YI SYLLABLE HOP;Lo;0;L;;;;;N;;;;;-A27D;YI SYLLABLE HEX;Lo;0;L;;;;;N;;;;;-A27E;YI SYLLABLE HE;Lo;0;L;;;;;N;;;;;-A27F;YI SYLLABLE HEP;Lo;0;L;;;;;N;;;;;-A280;YI SYLLABLE WAT;Lo;0;L;;;;;N;;;;;-A281;YI SYLLABLE WAX;Lo;0;L;;;;;N;;;;;-A282;YI SYLLABLE WA;Lo;0;L;;;;;N;;;;;-A283;YI SYLLABLE WAP;Lo;0;L;;;;;N;;;;;-A284;YI SYLLABLE WUOX;Lo;0;L;;;;;N;;;;;-A285;YI SYLLABLE WUO;Lo;0;L;;;;;N;;;;;-A286;YI SYLLABLE WUOP;Lo;0;L;;;;;N;;;;;-A287;YI SYLLABLE WOX;Lo;0;L;;;;;N;;;;;-A288;YI SYLLABLE WO;Lo;0;L;;;;;N;;;;;-A289;YI SYLLABLE WOP;Lo;0;L;;;;;N;;;;;-A28A;YI SYLLABLE WEX;Lo;0;L;;;;;N;;;;;-A28B;YI SYLLABLE WE;Lo;0;L;;;;;N;;;;;-A28C;YI SYLLABLE WEP;Lo;0;L;;;;;N;;;;;-A28D;YI SYLLABLE ZIT;Lo;0;L;;;;;N;;;;;-A28E;YI SYLLABLE ZIX;Lo;0;L;;;;;N;;;;;-A28F;YI SYLLABLE ZI;Lo;0;L;;;;;N;;;;;-A290;YI SYLLABLE ZIP;Lo;0;L;;;;;N;;;;;-A291;YI SYLLABLE ZIEX;Lo;0;L;;;;;N;;;;;-A292;YI SYLLABLE ZIE;Lo;0;L;;;;;N;;;;;-A293;YI SYLLABLE ZIEP;Lo;0;L;;;;;N;;;;;-A294;YI SYLLABLE ZAT;Lo;0;L;;;;;N;;;;;-A295;YI SYLLABLE ZAX;Lo;0;L;;;;;N;;;;;-A296;YI SYLLABLE ZA;Lo;0;L;;;;;N;;;;;-A297;YI SYLLABLE ZAP;Lo;0;L;;;;;N;;;;;-A298;YI SYLLABLE ZUOX;Lo;0;L;;;;;N;;;;;-A299;YI SYLLABLE ZUO;Lo;0;L;;;;;N;;;;;-A29A;YI SYLLABLE ZUOP;Lo;0;L;;;;;N;;;;;-A29B;YI SYLLABLE ZOT;Lo;0;L;;;;;N;;;;;-A29C;YI SYLLABLE ZOX;Lo;0;L;;;;;N;;;;;-A29D;YI SYLLABLE ZO;Lo;0;L;;;;;N;;;;;-A29E;YI SYLLABLE ZOP;Lo;0;L;;;;;N;;;;;-A29F;YI SYLLABLE ZEX;Lo;0;L;;;;;N;;;;;-A2A0;YI SYLLABLE ZE;Lo;0;L;;;;;N;;;;;-A2A1;YI SYLLABLE ZEP;Lo;0;L;;;;;N;;;;;-A2A2;YI SYLLABLE ZUT;Lo;0;L;;;;;N;;;;;-A2A3;YI SYLLABLE ZUX;Lo;0;L;;;;;N;;;;;-A2A4;YI SYLLABLE ZU;Lo;0;L;;;;;N;;;;;-A2A5;YI SYLLABLE ZUP;Lo;0;L;;;;;N;;;;;-A2A6;YI SYLLABLE ZURX;Lo;0;L;;;;;N;;;;;-A2A7;YI SYLLABLE ZUR;Lo;0;L;;;;;N;;;;;-A2A8;YI SYLLABLE ZYT;Lo;0;L;;;;;N;;;;;-A2A9;YI SYLLABLE ZYX;Lo;0;L;;;;;N;;;;;-A2AA;YI SYLLABLE ZY;Lo;0;L;;;;;N;;;;;-A2AB;YI SYLLABLE ZYP;Lo;0;L;;;;;N;;;;;-A2AC;YI SYLLABLE ZYRX;Lo;0;L;;;;;N;;;;;-A2AD;YI SYLLABLE ZYR;Lo;0;L;;;;;N;;;;;-A2AE;YI SYLLABLE CIT;Lo;0;L;;;;;N;;;;;-A2AF;YI SYLLABLE CIX;Lo;0;L;;;;;N;;;;;-A2B0;YI SYLLABLE CI;Lo;0;L;;;;;N;;;;;-A2B1;YI SYLLABLE CIP;Lo;0;L;;;;;N;;;;;-A2B2;YI SYLLABLE CIET;Lo;0;L;;;;;N;;;;;-A2B3;YI SYLLABLE CIEX;Lo;0;L;;;;;N;;;;;-A2B4;YI SYLLABLE CIE;Lo;0;L;;;;;N;;;;;-A2B5;YI SYLLABLE CIEP;Lo;0;L;;;;;N;;;;;-A2B6;YI SYLLABLE CAT;Lo;0;L;;;;;N;;;;;-A2B7;YI SYLLABLE CAX;Lo;0;L;;;;;N;;;;;-A2B8;YI SYLLABLE CA;Lo;0;L;;;;;N;;;;;-A2B9;YI SYLLABLE CAP;Lo;0;L;;;;;N;;;;;-A2BA;YI SYLLABLE CUOX;Lo;0;L;;;;;N;;;;;-A2BB;YI SYLLABLE CUO;Lo;0;L;;;;;N;;;;;-A2BC;YI SYLLABLE CUOP;Lo;0;L;;;;;N;;;;;-A2BD;YI SYLLABLE COT;Lo;0;L;;;;;N;;;;;-A2BE;YI SYLLABLE COX;Lo;0;L;;;;;N;;;;;-A2BF;YI SYLLABLE CO;Lo;0;L;;;;;N;;;;;-A2C0;YI SYLLABLE COP;Lo;0;L;;;;;N;;;;;-A2C1;YI SYLLABLE CEX;Lo;0;L;;;;;N;;;;;-A2C2;YI SYLLABLE CE;Lo;0;L;;;;;N;;;;;-A2C3;YI SYLLABLE CEP;Lo;0;L;;;;;N;;;;;-A2C4;YI SYLLABLE CUT;Lo;0;L;;;;;N;;;;;-A2C5;YI SYLLABLE CUX;Lo;0;L;;;;;N;;;;;-A2C6;YI SYLLABLE CU;Lo;0;L;;;;;N;;;;;-A2C7;YI SYLLABLE CUP;Lo;0;L;;;;;N;;;;;-A2C8;YI SYLLABLE CURX;Lo;0;L;;;;;N;;;;;-A2C9;YI SYLLABLE CUR;Lo;0;L;;;;;N;;;;;-A2CA;YI SYLLABLE CYT;Lo;0;L;;;;;N;;;;;-A2CB;YI SYLLABLE CYX;Lo;0;L;;;;;N;;;;;-A2CC;YI SYLLABLE CY;Lo;0;L;;;;;N;;;;;-A2CD;YI SYLLABLE CYP;Lo;0;L;;;;;N;;;;;-A2CE;YI SYLLABLE CYRX;Lo;0;L;;;;;N;;;;;-A2CF;YI SYLLABLE CYR;Lo;0;L;;;;;N;;;;;-A2D0;YI SYLLABLE ZZIT;Lo;0;L;;;;;N;;;;;-A2D1;YI SYLLABLE ZZIX;Lo;0;L;;;;;N;;;;;-A2D2;YI SYLLABLE ZZI;Lo;0;L;;;;;N;;;;;-A2D3;YI SYLLABLE ZZIP;Lo;0;L;;;;;N;;;;;-A2D4;YI SYLLABLE ZZIET;Lo;0;L;;;;;N;;;;;-A2D5;YI SYLLABLE ZZIEX;Lo;0;L;;;;;N;;;;;-A2D6;YI SYLLABLE ZZIE;Lo;0;L;;;;;N;;;;;-A2D7;YI SYLLABLE ZZIEP;Lo;0;L;;;;;N;;;;;-A2D8;YI SYLLABLE ZZAT;Lo;0;L;;;;;N;;;;;-A2D9;YI SYLLABLE ZZAX;Lo;0;L;;;;;N;;;;;-A2DA;YI SYLLABLE ZZA;Lo;0;L;;;;;N;;;;;-A2DB;YI SYLLABLE ZZAP;Lo;0;L;;;;;N;;;;;-A2DC;YI SYLLABLE ZZOX;Lo;0;L;;;;;N;;;;;-A2DD;YI SYLLABLE ZZO;Lo;0;L;;;;;N;;;;;-A2DE;YI SYLLABLE ZZOP;Lo;0;L;;;;;N;;;;;-A2DF;YI SYLLABLE ZZEX;Lo;0;L;;;;;N;;;;;-A2E0;YI SYLLABLE ZZE;Lo;0;L;;;;;N;;;;;-A2E1;YI SYLLABLE ZZEP;Lo;0;L;;;;;N;;;;;-A2E2;YI SYLLABLE ZZUX;Lo;0;L;;;;;N;;;;;-A2E3;YI SYLLABLE ZZU;Lo;0;L;;;;;N;;;;;-A2E4;YI SYLLABLE ZZUP;Lo;0;L;;;;;N;;;;;-A2E5;YI SYLLABLE ZZURX;Lo;0;L;;;;;N;;;;;-A2E6;YI SYLLABLE ZZUR;Lo;0;L;;;;;N;;;;;-A2E7;YI SYLLABLE ZZYT;Lo;0;L;;;;;N;;;;;-A2E8;YI SYLLABLE ZZYX;Lo;0;L;;;;;N;;;;;-A2E9;YI SYLLABLE ZZY;Lo;0;L;;;;;N;;;;;-A2EA;YI SYLLABLE ZZYP;Lo;0;L;;;;;N;;;;;-A2EB;YI SYLLABLE ZZYRX;Lo;0;L;;;;;N;;;;;-A2EC;YI SYLLABLE ZZYR;Lo;0;L;;;;;N;;;;;-A2ED;YI SYLLABLE NZIT;Lo;0;L;;;;;N;;;;;-A2EE;YI SYLLABLE NZIX;Lo;0;L;;;;;N;;;;;-A2EF;YI SYLLABLE NZI;Lo;0;L;;;;;N;;;;;-A2F0;YI SYLLABLE NZIP;Lo;0;L;;;;;N;;;;;-A2F1;YI SYLLABLE NZIEX;Lo;0;L;;;;;N;;;;;-A2F2;YI SYLLABLE NZIE;Lo;0;L;;;;;N;;;;;-A2F3;YI SYLLABLE NZIEP;Lo;0;L;;;;;N;;;;;-A2F4;YI SYLLABLE NZAT;Lo;0;L;;;;;N;;;;;-A2F5;YI SYLLABLE NZAX;Lo;0;L;;;;;N;;;;;-A2F6;YI SYLLABLE NZA;Lo;0;L;;;;;N;;;;;-A2F7;YI SYLLABLE NZAP;Lo;0;L;;;;;N;;;;;-A2F8;YI SYLLABLE NZUOX;Lo;0;L;;;;;N;;;;;-A2F9;YI SYLLABLE NZUO;Lo;0;L;;;;;N;;;;;-A2FA;YI SYLLABLE NZOX;Lo;0;L;;;;;N;;;;;-A2FB;YI SYLLABLE NZOP;Lo;0;L;;;;;N;;;;;-A2FC;YI SYLLABLE NZEX;Lo;0;L;;;;;N;;;;;-A2FD;YI SYLLABLE NZE;Lo;0;L;;;;;N;;;;;-A2FE;YI SYLLABLE NZUX;Lo;0;L;;;;;N;;;;;-A2FF;YI SYLLABLE NZU;Lo;0;L;;;;;N;;;;;-A300;YI SYLLABLE NZUP;Lo;0;L;;;;;N;;;;;-A301;YI SYLLABLE NZURX;Lo;0;L;;;;;N;;;;;-A302;YI SYLLABLE NZUR;Lo;0;L;;;;;N;;;;;-A303;YI SYLLABLE NZYT;Lo;0;L;;;;;N;;;;;-A304;YI SYLLABLE NZYX;Lo;0;L;;;;;N;;;;;-A305;YI SYLLABLE NZY;Lo;0;L;;;;;N;;;;;-A306;YI SYLLABLE NZYP;Lo;0;L;;;;;N;;;;;-A307;YI SYLLABLE NZYRX;Lo;0;L;;;;;N;;;;;-A308;YI SYLLABLE NZYR;Lo;0;L;;;;;N;;;;;-A309;YI SYLLABLE SIT;Lo;0;L;;;;;N;;;;;-A30A;YI SYLLABLE SIX;Lo;0;L;;;;;N;;;;;-A30B;YI SYLLABLE SI;Lo;0;L;;;;;N;;;;;-A30C;YI SYLLABLE SIP;Lo;0;L;;;;;N;;;;;-A30D;YI SYLLABLE SIEX;Lo;0;L;;;;;N;;;;;-A30E;YI SYLLABLE SIE;Lo;0;L;;;;;N;;;;;-A30F;YI SYLLABLE SIEP;Lo;0;L;;;;;N;;;;;-A310;YI SYLLABLE SAT;Lo;0;L;;;;;N;;;;;-A311;YI SYLLABLE SAX;Lo;0;L;;;;;N;;;;;-A312;YI SYLLABLE SA;Lo;0;L;;;;;N;;;;;-A313;YI SYLLABLE SAP;Lo;0;L;;;;;N;;;;;-A314;YI SYLLABLE SUOX;Lo;0;L;;;;;N;;;;;-A315;YI SYLLABLE SUO;Lo;0;L;;;;;N;;;;;-A316;YI SYLLABLE SUOP;Lo;0;L;;;;;N;;;;;-A317;YI SYLLABLE SOT;Lo;0;L;;;;;N;;;;;-A318;YI SYLLABLE SOX;Lo;0;L;;;;;N;;;;;-A319;YI SYLLABLE SO;Lo;0;L;;;;;N;;;;;-A31A;YI SYLLABLE SOP;Lo;0;L;;;;;N;;;;;-A31B;YI SYLLABLE SEX;Lo;0;L;;;;;N;;;;;-A31C;YI SYLLABLE SE;Lo;0;L;;;;;N;;;;;-A31D;YI SYLLABLE SEP;Lo;0;L;;;;;N;;;;;-A31E;YI SYLLABLE SUT;Lo;0;L;;;;;N;;;;;-A31F;YI SYLLABLE SUX;Lo;0;L;;;;;N;;;;;-A320;YI SYLLABLE SU;Lo;0;L;;;;;N;;;;;-A321;YI SYLLABLE SUP;Lo;0;L;;;;;N;;;;;-A322;YI SYLLABLE SURX;Lo;0;L;;;;;N;;;;;-A323;YI SYLLABLE SUR;Lo;0;L;;;;;N;;;;;-A324;YI SYLLABLE SYT;Lo;0;L;;;;;N;;;;;-A325;YI SYLLABLE SYX;Lo;0;L;;;;;N;;;;;-A326;YI SYLLABLE SY;Lo;0;L;;;;;N;;;;;-A327;YI SYLLABLE SYP;Lo;0;L;;;;;N;;;;;-A328;YI SYLLABLE SYRX;Lo;0;L;;;;;N;;;;;-A329;YI SYLLABLE SYR;Lo;0;L;;;;;N;;;;;-A32A;YI SYLLABLE SSIT;Lo;0;L;;;;;N;;;;;-A32B;YI SYLLABLE SSIX;Lo;0;L;;;;;N;;;;;-A32C;YI SYLLABLE SSI;Lo;0;L;;;;;N;;;;;-A32D;YI SYLLABLE SSIP;Lo;0;L;;;;;N;;;;;-A32E;YI SYLLABLE SSIEX;Lo;0;L;;;;;N;;;;;-A32F;YI SYLLABLE SSIE;Lo;0;L;;;;;N;;;;;-A330;YI SYLLABLE SSIEP;Lo;0;L;;;;;N;;;;;-A331;YI SYLLABLE SSAT;Lo;0;L;;;;;N;;;;;-A332;YI SYLLABLE SSAX;Lo;0;L;;;;;N;;;;;-A333;YI SYLLABLE SSA;Lo;0;L;;;;;N;;;;;-A334;YI SYLLABLE SSAP;Lo;0;L;;;;;N;;;;;-A335;YI SYLLABLE SSOT;Lo;0;L;;;;;N;;;;;-A336;YI SYLLABLE SSOX;Lo;0;L;;;;;N;;;;;-A337;YI SYLLABLE SSO;Lo;0;L;;;;;N;;;;;-A338;YI SYLLABLE SSOP;Lo;0;L;;;;;N;;;;;-A339;YI SYLLABLE SSEX;Lo;0;L;;;;;N;;;;;-A33A;YI SYLLABLE SSE;Lo;0;L;;;;;N;;;;;-A33B;YI SYLLABLE SSEP;Lo;0;L;;;;;N;;;;;-A33C;YI SYLLABLE SSUT;Lo;0;L;;;;;N;;;;;-A33D;YI SYLLABLE SSUX;Lo;0;L;;;;;N;;;;;-A33E;YI SYLLABLE SSU;Lo;0;L;;;;;N;;;;;-A33F;YI SYLLABLE SSUP;Lo;0;L;;;;;N;;;;;-A340;YI SYLLABLE SSYT;Lo;0;L;;;;;N;;;;;-A341;YI SYLLABLE SSYX;Lo;0;L;;;;;N;;;;;-A342;YI SYLLABLE SSY;Lo;0;L;;;;;N;;;;;-A343;YI SYLLABLE SSYP;Lo;0;L;;;;;N;;;;;-A344;YI SYLLABLE SSYRX;Lo;0;L;;;;;N;;;;;-A345;YI SYLLABLE SSYR;Lo;0;L;;;;;N;;;;;-A346;YI SYLLABLE ZHAT;Lo;0;L;;;;;N;;;;;-A347;YI SYLLABLE ZHAX;Lo;0;L;;;;;N;;;;;-A348;YI SYLLABLE ZHA;Lo;0;L;;;;;N;;;;;-A349;YI SYLLABLE ZHAP;Lo;0;L;;;;;N;;;;;-A34A;YI SYLLABLE ZHUOX;Lo;0;L;;;;;N;;;;;-A34B;YI SYLLABLE ZHUO;Lo;0;L;;;;;N;;;;;-A34C;YI SYLLABLE ZHUOP;Lo;0;L;;;;;N;;;;;-A34D;YI SYLLABLE ZHOT;Lo;0;L;;;;;N;;;;;-A34E;YI SYLLABLE ZHOX;Lo;0;L;;;;;N;;;;;-A34F;YI SYLLABLE ZHO;Lo;0;L;;;;;N;;;;;-A350;YI SYLLABLE ZHOP;Lo;0;L;;;;;N;;;;;-A351;YI SYLLABLE ZHET;Lo;0;L;;;;;N;;;;;-A352;YI SYLLABLE ZHEX;Lo;0;L;;;;;N;;;;;-A353;YI SYLLABLE ZHE;Lo;0;L;;;;;N;;;;;-A354;YI SYLLABLE ZHEP;Lo;0;L;;;;;N;;;;;-A355;YI SYLLABLE ZHUT;Lo;0;L;;;;;N;;;;;-A356;YI SYLLABLE ZHUX;Lo;0;L;;;;;N;;;;;-A357;YI SYLLABLE ZHU;Lo;0;L;;;;;N;;;;;-A358;YI SYLLABLE ZHUP;Lo;0;L;;;;;N;;;;;-A359;YI SYLLABLE ZHURX;Lo;0;L;;;;;N;;;;;-A35A;YI SYLLABLE ZHUR;Lo;0;L;;;;;N;;;;;-A35B;YI SYLLABLE ZHYT;Lo;0;L;;;;;N;;;;;-A35C;YI SYLLABLE ZHYX;Lo;0;L;;;;;N;;;;;-A35D;YI SYLLABLE ZHY;Lo;0;L;;;;;N;;;;;-A35E;YI SYLLABLE ZHYP;Lo;0;L;;;;;N;;;;;-A35F;YI SYLLABLE ZHYRX;Lo;0;L;;;;;N;;;;;-A360;YI SYLLABLE ZHYR;Lo;0;L;;;;;N;;;;;-A361;YI SYLLABLE CHAT;Lo;0;L;;;;;N;;;;;-A362;YI SYLLABLE CHAX;Lo;0;L;;;;;N;;;;;-A363;YI SYLLABLE CHA;Lo;0;L;;;;;N;;;;;-A364;YI SYLLABLE CHAP;Lo;0;L;;;;;N;;;;;-A365;YI SYLLABLE CHUOT;Lo;0;L;;;;;N;;;;;-A366;YI SYLLABLE CHUOX;Lo;0;L;;;;;N;;;;;-A367;YI SYLLABLE CHUO;Lo;0;L;;;;;N;;;;;-A368;YI SYLLABLE CHUOP;Lo;0;L;;;;;N;;;;;-A369;YI SYLLABLE CHOT;Lo;0;L;;;;;N;;;;;-A36A;YI SYLLABLE CHOX;Lo;0;L;;;;;N;;;;;-A36B;YI SYLLABLE CHO;Lo;0;L;;;;;N;;;;;-A36C;YI SYLLABLE CHOP;Lo;0;L;;;;;N;;;;;-A36D;YI SYLLABLE CHET;Lo;0;L;;;;;N;;;;;-A36E;YI SYLLABLE CHEX;Lo;0;L;;;;;N;;;;;-A36F;YI SYLLABLE CHE;Lo;0;L;;;;;N;;;;;-A370;YI SYLLABLE CHEP;Lo;0;L;;;;;N;;;;;-A371;YI SYLLABLE CHUX;Lo;0;L;;;;;N;;;;;-A372;YI SYLLABLE CHU;Lo;0;L;;;;;N;;;;;-A373;YI SYLLABLE CHUP;Lo;0;L;;;;;N;;;;;-A374;YI SYLLABLE CHURX;Lo;0;L;;;;;N;;;;;-A375;YI SYLLABLE CHUR;Lo;0;L;;;;;N;;;;;-A376;YI SYLLABLE CHYT;Lo;0;L;;;;;N;;;;;-A377;YI SYLLABLE CHYX;Lo;0;L;;;;;N;;;;;-A378;YI SYLLABLE CHY;Lo;0;L;;;;;N;;;;;-A379;YI SYLLABLE CHYP;Lo;0;L;;;;;N;;;;;-A37A;YI SYLLABLE CHYRX;Lo;0;L;;;;;N;;;;;-A37B;YI SYLLABLE CHYR;Lo;0;L;;;;;N;;;;;-A37C;YI SYLLABLE RRAX;Lo;0;L;;;;;N;;;;;-A37D;YI SYLLABLE RRA;Lo;0;L;;;;;N;;;;;-A37E;YI SYLLABLE RRUOX;Lo;0;L;;;;;N;;;;;-A37F;YI SYLLABLE RRUO;Lo;0;L;;;;;N;;;;;-A380;YI SYLLABLE RROT;Lo;0;L;;;;;N;;;;;-A381;YI SYLLABLE RROX;Lo;0;L;;;;;N;;;;;-A382;YI SYLLABLE RRO;Lo;0;L;;;;;N;;;;;-A383;YI SYLLABLE RROP;Lo;0;L;;;;;N;;;;;-A384;YI SYLLABLE RRET;Lo;0;L;;;;;N;;;;;-A385;YI SYLLABLE RREX;Lo;0;L;;;;;N;;;;;-A386;YI SYLLABLE RRE;Lo;0;L;;;;;N;;;;;-A387;YI SYLLABLE RREP;Lo;0;L;;;;;N;;;;;-A388;YI SYLLABLE RRUT;Lo;0;L;;;;;N;;;;;-A389;YI SYLLABLE RRUX;Lo;0;L;;;;;N;;;;;-A38A;YI SYLLABLE RRU;Lo;0;L;;;;;N;;;;;-A38B;YI SYLLABLE RRUP;Lo;0;L;;;;;N;;;;;-A38C;YI SYLLABLE RRURX;Lo;0;L;;;;;N;;;;;-A38D;YI SYLLABLE RRUR;Lo;0;L;;;;;N;;;;;-A38E;YI SYLLABLE RRYT;Lo;0;L;;;;;N;;;;;-A38F;YI SYLLABLE RRYX;Lo;0;L;;;;;N;;;;;-A390;YI SYLLABLE RRY;Lo;0;L;;;;;N;;;;;-A391;YI SYLLABLE RRYP;Lo;0;L;;;;;N;;;;;-A392;YI SYLLABLE RRYRX;Lo;0;L;;;;;N;;;;;-A393;YI SYLLABLE RRYR;Lo;0;L;;;;;N;;;;;-A394;YI SYLLABLE NRAT;Lo;0;L;;;;;N;;;;;-A395;YI SYLLABLE NRAX;Lo;0;L;;;;;N;;;;;-A396;YI SYLLABLE NRA;Lo;0;L;;;;;N;;;;;-A397;YI SYLLABLE NRAP;Lo;0;L;;;;;N;;;;;-A398;YI SYLLABLE NROX;Lo;0;L;;;;;N;;;;;-A399;YI SYLLABLE NRO;Lo;0;L;;;;;N;;;;;-A39A;YI SYLLABLE NROP;Lo;0;L;;;;;N;;;;;-A39B;YI SYLLABLE NRET;Lo;0;L;;;;;N;;;;;-A39C;YI SYLLABLE NREX;Lo;0;L;;;;;N;;;;;-A39D;YI SYLLABLE NRE;Lo;0;L;;;;;N;;;;;-A39E;YI SYLLABLE NREP;Lo;0;L;;;;;N;;;;;-A39F;YI SYLLABLE NRUT;Lo;0;L;;;;;N;;;;;-A3A0;YI SYLLABLE NRUX;Lo;0;L;;;;;N;;;;;-A3A1;YI SYLLABLE NRU;Lo;0;L;;;;;N;;;;;-A3A2;YI SYLLABLE NRUP;Lo;0;L;;;;;N;;;;;-A3A3;YI SYLLABLE NRURX;Lo;0;L;;;;;N;;;;;-A3A4;YI SYLLABLE NRUR;Lo;0;L;;;;;N;;;;;-A3A5;YI SYLLABLE NRYT;Lo;0;L;;;;;N;;;;;-A3A6;YI SYLLABLE NRYX;Lo;0;L;;;;;N;;;;;-A3A7;YI SYLLABLE NRY;Lo;0;L;;;;;N;;;;;-A3A8;YI SYLLABLE NRYP;Lo;0;L;;;;;N;;;;;-A3A9;YI SYLLABLE NRYRX;Lo;0;L;;;;;N;;;;;-A3AA;YI SYLLABLE NRYR;Lo;0;L;;;;;N;;;;;-A3AB;YI SYLLABLE SHAT;Lo;0;L;;;;;N;;;;;-A3AC;YI SYLLABLE SHAX;Lo;0;L;;;;;N;;;;;-A3AD;YI SYLLABLE SHA;Lo;0;L;;;;;N;;;;;-A3AE;YI SYLLABLE SHAP;Lo;0;L;;;;;N;;;;;-A3AF;YI SYLLABLE SHUOX;Lo;0;L;;;;;N;;;;;-A3B0;YI SYLLABLE SHUO;Lo;0;L;;;;;N;;;;;-A3B1;YI SYLLABLE SHUOP;Lo;0;L;;;;;N;;;;;-A3B2;YI SYLLABLE SHOT;Lo;0;L;;;;;N;;;;;-A3B3;YI SYLLABLE SHOX;Lo;0;L;;;;;N;;;;;-A3B4;YI SYLLABLE SHO;Lo;0;L;;;;;N;;;;;-A3B5;YI SYLLABLE SHOP;Lo;0;L;;;;;N;;;;;-A3B6;YI SYLLABLE SHET;Lo;0;L;;;;;N;;;;;-A3B7;YI SYLLABLE SHEX;Lo;0;L;;;;;N;;;;;-A3B8;YI SYLLABLE SHE;Lo;0;L;;;;;N;;;;;-A3B9;YI SYLLABLE SHEP;Lo;0;L;;;;;N;;;;;-A3BA;YI SYLLABLE SHUT;Lo;0;L;;;;;N;;;;;-A3BB;YI SYLLABLE SHUX;Lo;0;L;;;;;N;;;;;-A3BC;YI SYLLABLE SHU;Lo;0;L;;;;;N;;;;;-A3BD;YI SYLLABLE SHUP;Lo;0;L;;;;;N;;;;;-A3BE;YI SYLLABLE SHURX;Lo;0;L;;;;;N;;;;;-A3BF;YI SYLLABLE SHUR;Lo;0;L;;;;;N;;;;;-A3C0;YI SYLLABLE SHYT;Lo;0;L;;;;;N;;;;;-A3C1;YI SYLLABLE SHYX;Lo;0;L;;;;;N;;;;;-A3C2;YI SYLLABLE SHY;Lo;0;L;;;;;N;;;;;-A3C3;YI SYLLABLE SHYP;Lo;0;L;;;;;N;;;;;-A3C4;YI SYLLABLE SHYRX;Lo;0;L;;;;;N;;;;;-A3C5;YI SYLLABLE SHYR;Lo;0;L;;;;;N;;;;;-A3C6;YI SYLLABLE RAT;Lo;0;L;;;;;N;;;;;-A3C7;YI SYLLABLE RAX;Lo;0;L;;;;;N;;;;;-A3C8;YI SYLLABLE RA;Lo;0;L;;;;;N;;;;;-A3C9;YI SYLLABLE RAP;Lo;0;L;;;;;N;;;;;-A3CA;YI SYLLABLE RUOX;Lo;0;L;;;;;N;;;;;-A3CB;YI SYLLABLE RUO;Lo;0;L;;;;;N;;;;;-A3CC;YI SYLLABLE RUOP;Lo;0;L;;;;;N;;;;;-A3CD;YI SYLLABLE ROT;Lo;0;L;;;;;N;;;;;-A3CE;YI SYLLABLE ROX;Lo;0;L;;;;;N;;;;;-A3CF;YI SYLLABLE RO;Lo;0;L;;;;;N;;;;;-A3D0;YI SYLLABLE ROP;Lo;0;L;;;;;N;;;;;-A3D1;YI SYLLABLE REX;Lo;0;L;;;;;N;;;;;-A3D2;YI SYLLABLE RE;Lo;0;L;;;;;N;;;;;-A3D3;YI SYLLABLE REP;Lo;0;L;;;;;N;;;;;-A3D4;YI SYLLABLE RUT;Lo;0;L;;;;;N;;;;;-A3D5;YI SYLLABLE RUX;Lo;0;L;;;;;N;;;;;-A3D6;YI SYLLABLE RU;Lo;0;L;;;;;N;;;;;-A3D7;YI SYLLABLE RUP;Lo;0;L;;;;;N;;;;;-A3D8;YI SYLLABLE RURX;Lo;0;L;;;;;N;;;;;-A3D9;YI SYLLABLE RUR;Lo;0;L;;;;;N;;;;;-A3DA;YI SYLLABLE RYT;Lo;0;L;;;;;N;;;;;-A3DB;YI SYLLABLE RYX;Lo;0;L;;;;;N;;;;;-A3DC;YI SYLLABLE RY;Lo;0;L;;;;;N;;;;;-A3DD;YI SYLLABLE RYP;Lo;0;L;;;;;N;;;;;-A3DE;YI SYLLABLE RYRX;Lo;0;L;;;;;N;;;;;-A3DF;YI SYLLABLE RYR;Lo;0;L;;;;;N;;;;;-A3E0;YI SYLLABLE JIT;Lo;0;L;;;;;N;;;;;-A3E1;YI SYLLABLE JIX;Lo;0;L;;;;;N;;;;;-A3E2;YI SYLLABLE JI;Lo;0;L;;;;;N;;;;;-A3E3;YI SYLLABLE JIP;Lo;0;L;;;;;N;;;;;-A3E4;YI SYLLABLE JIET;Lo;0;L;;;;;N;;;;;-A3E5;YI SYLLABLE JIEX;Lo;0;L;;;;;N;;;;;-A3E6;YI SYLLABLE JIE;Lo;0;L;;;;;N;;;;;-A3E7;YI SYLLABLE JIEP;Lo;0;L;;;;;N;;;;;-A3E8;YI SYLLABLE JUOT;Lo;0;L;;;;;N;;;;;-A3E9;YI SYLLABLE JUOX;Lo;0;L;;;;;N;;;;;-A3EA;YI SYLLABLE JUO;Lo;0;L;;;;;N;;;;;-A3EB;YI SYLLABLE JUOP;Lo;0;L;;;;;N;;;;;-A3EC;YI SYLLABLE JOT;Lo;0;L;;;;;N;;;;;-A3ED;YI SYLLABLE JOX;Lo;0;L;;;;;N;;;;;-A3EE;YI SYLLABLE JO;Lo;0;L;;;;;N;;;;;-A3EF;YI SYLLABLE JOP;Lo;0;L;;;;;N;;;;;-A3F0;YI SYLLABLE JUT;Lo;0;L;;;;;N;;;;;-A3F1;YI SYLLABLE JUX;Lo;0;L;;;;;N;;;;;-A3F2;YI SYLLABLE JU;Lo;0;L;;;;;N;;;;;-A3F3;YI SYLLABLE JUP;Lo;0;L;;;;;N;;;;;-A3F4;YI SYLLABLE JURX;Lo;0;L;;;;;N;;;;;-A3F5;YI SYLLABLE JUR;Lo;0;L;;;;;N;;;;;-A3F6;YI SYLLABLE JYT;Lo;0;L;;;;;N;;;;;-A3F7;YI SYLLABLE JYX;Lo;0;L;;;;;N;;;;;-A3F8;YI SYLLABLE JY;Lo;0;L;;;;;N;;;;;-A3F9;YI SYLLABLE JYP;Lo;0;L;;;;;N;;;;;-A3FA;YI SYLLABLE JYRX;Lo;0;L;;;;;N;;;;;-A3FB;YI SYLLABLE JYR;Lo;0;L;;;;;N;;;;;-A3FC;YI SYLLABLE QIT;Lo;0;L;;;;;N;;;;;-A3FD;YI SYLLABLE QIX;Lo;0;L;;;;;N;;;;;-A3FE;YI SYLLABLE QI;Lo;0;L;;;;;N;;;;;-A3FF;YI SYLLABLE QIP;Lo;0;L;;;;;N;;;;;-A400;YI SYLLABLE QIET;Lo;0;L;;;;;N;;;;;-A401;YI SYLLABLE QIEX;Lo;0;L;;;;;N;;;;;-A402;YI SYLLABLE QIE;Lo;0;L;;;;;N;;;;;-A403;YI SYLLABLE QIEP;Lo;0;L;;;;;N;;;;;-A404;YI SYLLABLE QUOT;Lo;0;L;;;;;N;;;;;-A405;YI SYLLABLE QUOX;Lo;0;L;;;;;N;;;;;-A406;YI SYLLABLE QUO;Lo;0;L;;;;;N;;;;;-A407;YI SYLLABLE QUOP;Lo;0;L;;;;;N;;;;;-A408;YI SYLLABLE QOT;Lo;0;L;;;;;N;;;;;-A409;YI SYLLABLE QOX;Lo;0;L;;;;;N;;;;;-A40A;YI SYLLABLE QO;Lo;0;L;;;;;N;;;;;-A40B;YI SYLLABLE QOP;Lo;0;L;;;;;N;;;;;-A40C;YI SYLLABLE QUT;Lo;0;L;;;;;N;;;;;-A40D;YI SYLLABLE QUX;Lo;0;L;;;;;N;;;;;-A40E;YI SYLLABLE QU;Lo;0;L;;;;;N;;;;;-A40F;YI SYLLABLE QUP;Lo;0;L;;;;;N;;;;;-A410;YI SYLLABLE QURX;Lo;0;L;;;;;N;;;;;-A411;YI SYLLABLE QUR;Lo;0;L;;;;;N;;;;;-A412;YI SYLLABLE QYT;Lo;0;L;;;;;N;;;;;-A413;YI SYLLABLE QYX;Lo;0;L;;;;;N;;;;;-A414;YI SYLLABLE QY;Lo;0;L;;;;;N;;;;;-A415;YI SYLLABLE QYP;Lo;0;L;;;;;N;;;;;-A416;YI SYLLABLE QYRX;Lo;0;L;;;;;N;;;;;-A417;YI SYLLABLE QYR;Lo;0;L;;;;;N;;;;;-A418;YI SYLLABLE JJIT;Lo;0;L;;;;;N;;;;;-A419;YI SYLLABLE JJIX;Lo;0;L;;;;;N;;;;;-A41A;YI SYLLABLE JJI;Lo;0;L;;;;;N;;;;;-A41B;YI SYLLABLE JJIP;Lo;0;L;;;;;N;;;;;-A41C;YI SYLLABLE JJIET;Lo;0;L;;;;;N;;;;;-A41D;YI SYLLABLE JJIEX;Lo;0;L;;;;;N;;;;;-A41E;YI SYLLABLE JJIE;Lo;0;L;;;;;N;;;;;-A41F;YI SYLLABLE JJIEP;Lo;0;L;;;;;N;;;;;-A420;YI SYLLABLE JJUOX;Lo;0;L;;;;;N;;;;;-A421;YI SYLLABLE JJUO;Lo;0;L;;;;;N;;;;;-A422;YI SYLLABLE JJUOP;Lo;0;L;;;;;N;;;;;-A423;YI SYLLABLE JJOT;Lo;0;L;;;;;N;;;;;-A424;YI SYLLABLE JJOX;Lo;0;L;;;;;N;;;;;-A425;YI SYLLABLE JJO;Lo;0;L;;;;;N;;;;;-A426;YI SYLLABLE JJOP;Lo;0;L;;;;;N;;;;;-A427;YI SYLLABLE JJUT;Lo;0;L;;;;;N;;;;;-A428;YI SYLLABLE JJUX;Lo;0;L;;;;;N;;;;;-A429;YI SYLLABLE JJU;Lo;0;L;;;;;N;;;;;-A42A;YI SYLLABLE JJUP;Lo;0;L;;;;;N;;;;;-A42B;YI SYLLABLE JJURX;Lo;0;L;;;;;N;;;;;-A42C;YI SYLLABLE JJUR;Lo;0;L;;;;;N;;;;;-A42D;YI SYLLABLE JJYT;Lo;0;L;;;;;N;;;;;-A42E;YI SYLLABLE JJYX;Lo;0;L;;;;;N;;;;;-A42F;YI SYLLABLE JJY;Lo;0;L;;;;;N;;;;;-A430;YI SYLLABLE JJYP;Lo;0;L;;;;;N;;;;;-A431;YI SYLLABLE NJIT;Lo;0;L;;;;;N;;;;;-A432;YI SYLLABLE NJIX;Lo;0;L;;;;;N;;;;;-A433;YI SYLLABLE NJI;Lo;0;L;;;;;N;;;;;-A434;YI SYLLABLE NJIP;Lo;0;L;;;;;N;;;;;-A435;YI SYLLABLE NJIET;Lo;0;L;;;;;N;;;;;-A436;YI SYLLABLE NJIEX;Lo;0;L;;;;;N;;;;;-A437;YI SYLLABLE NJIE;Lo;0;L;;;;;N;;;;;-A438;YI SYLLABLE NJIEP;Lo;0;L;;;;;N;;;;;-A439;YI SYLLABLE NJUOX;Lo;0;L;;;;;N;;;;;-A43A;YI SYLLABLE NJUO;Lo;0;L;;;;;N;;;;;-A43B;YI SYLLABLE NJOT;Lo;0;L;;;;;N;;;;;-A43C;YI SYLLABLE NJOX;Lo;0;L;;;;;N;;;;;-A43D;YI SYLLABLE NJO;Lo;0;L;;;;;N;;;;;-A43E;YI SYLLABLE NJOP;Lo;0;L;;;;;N;;;;;-A43F;YI SYLLABLE NJUX;Lo;0;L;;;;;N;;;;;-A440;YI SYLLABLE NJU;Lo;0;L;;;;;N;;;;;-A441;YI SYLLABLE NJUP;Lo;0;L;;;;;N;;;;;-A442;YI SYLLABLE NJURX;Lo;0;L;;;;;N;;;;;-A443;YI SYLLABLE NJUR;Lo;0;L;;;;;N;;;;;-A444;YI SYLLABLE NJYT;Lo;0;L;;;;;N;;;;;-A445;YI SYLLABLE NJYX;Lo;0;L;;;;;N;;;;;-A446;YI SYLLABLE NJY;Lo;0;L;;;;;N;;;;;-A447;YI SYLLABLE NJYP;Lo;0;L;;;;;N;;;;;-A448;YI SYLLABLE NJYRX;Lo;0;L;;;;;N;;;;;-A449;YI SYLLABLE NJYR;Lo;0;L;;;;;N;;;;;-A44A;YI SYLLABLE NYIT;Lo;0;L;;;;;N;;;;;-A44B;YI SYLLABLE NYIX;Lo;0;L;;;;;N;;;;;-A44C;YI SYLLABLE NYI;Lo;0;L;;;;;N;;;;;-A44D;YI SYLLABLE NYIP;Lo;0;L;;;;;N;;;;;-A44E;YI SYLLABLE NYIET;Lo;0;L;;;;;N;;;;;-A44F;YI SYLLABLE NYIEX;Lo;0;L;;;;;N;;;;;-A450;YI SYLLABLE NYIE;Lo;0;L;;;;;N;;;;;-A451;YI SYLLABLE NYIEP;Lo;0;L;;;;;N;;;;;-A452;YI SYLLABLE NYUOX;Lo;0;L;;;;;N;;;;;-A453;YI SYLLABLE NYUO;Lo;0;L;;;;;N;;;;;-A454;YI SYLLABLE NYUOP;Lo;0;L;;;;;N;;;;;-A455;YI SYLLABLE NYOT;Lo;0;L;;;;;N;;;;;-A456;YI SYLLABLE NYOX;Lo;0;L;;;;;N;;;;;-A457;YI SYLLABLE NYO;Lo;0;L;;;;;N;;;;;-A458;YI SYLLABLE NYOP;Lo;0;L;;;;;N;;;;;-A459;YI SYLLABLE NYUT;Lo;0;L;;;;;N;;;;;-A45A;YI SYLLABLE NYUX;Lo;0;L;;;;;N;;;;;-A45B;YI SYLLABLE NYU;Lo;0;L;;;;;N;;;;;-A45C;YI SYLLABLE NYUP;Lo;0;L;;;;;N;;;;;-A45D;YI SYLLABLE XIT;Lo;0;L;;;;;N;;;;;-A45E;YI SYLLABLE XIX;Lo;0;L;;;;;N;;;;;-A45F;YI SYLLABLE XI;Lo;0;L;;;;;N;;;;;-A460;YI SYLLABLE XIP;Lo;0;L;;;;;N;;;;;-A461;YI SYLLABLE XIET;Lo;0;L;;;;;N;;;;;-A462;YI SYLLABLE XIEX;Lo;0;L;;;;;N;;;;;-A463;YI SYLLABLE XIE;Lo;0;L;;;;;N;;;;;-A464;YI SYLLABLE XIEP;Lo;0;L;;;;;N;;;;;-A465;YI SYLLABLE XUOX;Lo;0;L;;;;;N;;;;;-A466;YI SYLLABLE XUO;Lo;0;L;;;;;N;;;;;-A467;YI SYLLABLE XOT;Lo;0;L;;;;;N;;;;;-A468;YI SYLLABLE XOX;Lo;0;L;;;;;N;;;;;-A469;YI SYLLABLE XO;Lo;0;L;;;;;N;;;;;-A46A;YI SYLLABLE XOP;Lo;0;L;;;;;N;;;;;-A46B;YI SYLLABLE XYT;Lo;0;L;;;;;N;;;;;-A46C;YI SYLLABLE XYX;Lo;0;L;;;;;N;;;;;-A46D;YI SYLLABLE XY;Lo;0;L;;;;;N;;;;;-A46E;YI SYLLABLE XYP;Lo;0;L;;;;;N;;;;;-A46F;YI SYLLABLE XYRX;Lo;0;L;;;;;N;;;;;-A470;YI SYLLABLE XYR;Lo;0;L;;;;;N;;;;;-A471;YI SYLLABLE YIT;Lo;0;L;;;;;N;;;;;-A472;YI SYLLABLE YIX;Lo;0;L;;;;;N;;;;;-A473;YI SYLLABLE YI;Lo;0;L;;;;;N;;;;;-A474;YI SYLLABLE YIP;Lo;0;L;;;;;N;;;;;-A475;YI SYLLABLE YIET;Lo;0;L;;;;;N;;;;;-A476;YI SYLLABLE YIEX;Lo;0;L;;;;;N;;;;;-A477;YI SYLLABLE YIE;Lo;0;L;;;;;N;;;;;-A478;YI SYLLABLE YIEP;Lo;0;L;;;;;N;;;;;-A479;YI SYLLABLE YUOT;Lo;0;L;;;;;N;;;;;-A47A;YI SYLLABLE YUOX;Lo;0;L;;;;;N;;;;;-A47B;YI SYLLABLE YUO;Lo;0;L;;;;;N;;;;;-A47C;YI SYLLABLE YUOP;Lo;0;L;;;;;N;;;;;-A47D;YI SYLLABLE YOT;Lo;0;L;;;;;N;;;;;-A47E;YI SYLLABLE YOX;Lo;0;L;;;;;N;;;;;-A47F;YI SYLLABLE YO;Lo;0;L;;;;;N;;;;;-A480;YI SYLLABLE YOP;Lo;0;L;;;;;N;;;;;-A481;YI SYLLABLE YUT;Lo;0;L;;;;;N;;;;;-A482;YI SYLLABLE YUX;Lo;0;L;;;;;N;;;;;-A483;YI SYLLABLE YU;Lo;0;L;;;;;N;;;;;-A484;YI SYLLABLE YUP;Lo;0;L;;;;;N;;;;;-A485;YI SYLLABLE YURX;Lo;0;L;;;;;N;;;;;-A486;YI SYLLABLE YUR;Lo;0;L;;;;;N;;;;;-A487;YI SYLLABLE YYT;Lo;0;L;;;;;N;;;;;-A488;YI SYLLABLE YYX;Lo;0;L;;;;;N;;;;;-A489;YI SYLLABLE YY;Lo;0;L;;;;;N;;;;;-A48A;YI SYLLABLE YYP;Lo;0;L;;;;;N;;;;;-A48B;YI SYLLABLE YYRX;Lo;0;L;;;;;N;;;;;-A48C;YI SYLLABLE YYR;Lo;0;L;;;;;N;;;;;-A490;YI RADICAL QOT;So;0;ON;;;;;N;;;;;-A491;YI RADICAL LI;So;0;ON;;;;;N;;;;;-A492;YI RADICAL KIT;So;0;ON;;;;;N;;;;;-A493;YI RADICAL NYIP;So;0;ON;;;;;N;;;;;-A494;YI RADICAL CYP;So;0;ON;;;;;N;;;;;-A495;YI RADICAL SSI;So;0;ON;;;;;N;;;;;-A496;YI RADICAL GGOP;So;0;ON;;;;;N;;;;;-A497;YI RADICAL GEP;So;0;ON;;;;;N;;;;;-A498;YI RADICAL MI;So;0;ON;;;;;N;;;;;-A499;YI RADICAL HXIT;So;0;ON;;;;;N;;;;;-A49A;YI RADICAL LYR;So;0;ON;;;;;N;;;;;-A49B;YI RADICAL BBUT;So;0;ON;;;;;N;;;;;-A49C;YI RADICAL MOP;So;0;ON;;;;;N;;;;;-A49D;YI RADICAL YO;So;0;ON;;;;;N;;;;;-A49E;YI RADICAL PUT;So;0;ON;;;;;N;;;;;-A49F;YI RADICAL HXUO;So;0;ON;;;;;N;;;;;-A4A0;YI RADICAL TAT;So;0;ON;;;;;N;;;;;-A4A1;YI RADICAL GA;So;0;ON;;;;;N;;;;;-A4A2;YI RADICAL ZUP;So;0;ON;;;;;N;;;;;-A4A3;YI RADICAL CYT;So;0;ON;;;;;N;;;;;-A4A4;YI RADICAL DDUR;So;0;ON;;;;;N;;;;;-A4A5;YI RADICAL BUR;So;0;ON;;;;;N;;;;;-A4A6;YI RADICAL GGUO;So;0;ON;;;;;N;;;;;-A4A7;YI RADICAL NYOP;So;0;ON;;;;;N;;;;;-A4A8;YI RADICAL TU;So;0;ON;;;;;N;;;;;-A4A9;YI RADICAL OP;So;0;ON;;;;;N;;;;;-A4AA;YI RADICAL JJUT;So;0;ON;;;;;N;;;;;-A4AB;YI RADICAL ZOT;So;0;ON;;;;;N;;;;;-A4AC;YI RADICAL PYT;So;0;ON;;;;;N;;;;;-A4AD;YI RADICAL HMO;So;0;ON;;;;;N;;;;;-A4AE;YI RADICAL YIT;So;0;ON;;;;;N;;;;;-A4AF;YI RADICAL VUR;So;0;ON;;;;;N;;;;;-A4B0;YI RADICAL SHY;So;0;ON;;;;;N;;;;;-A4B1;YI RADICAL VEP;So;0;ON;;;;;N;;;;;-A4B2;YI RADICAL ZA;So;0;ON;;;;;N;;;;;-A4B3;YI RADICAL JO;So;0;ON;;;;;N;;;;;-A4B4;YI RADICAL NZUP;So;0;ON;;;;;N;;;;;-A4B5;YI RADICAL JJY;So;0;ON;;;;;N;;;;;-A4B6;YI RADICAL GOT;So;0;ON;;;;;N;;;;;-A4B7;YI RADICAL JJIE;So;0;ON;;;;;N;;;;;-A4B8;YI RADICAL WO;So;0;ON;;;;;N;;;;;-A4B9;YI RADICAL DU;So;0;ON;;;;;N;;;;;-A4BA;YI RADICAL SHUR;So;0;ON;;;;;N;;;;;-A4BB;YI RADICAL LIE;So;0;ON;;;;;N;;;;;-A4BC;YI RADICAL CY;So;0;ON;;;;;N;;;;;-A4BD;YI RADICAL CUOP;So;0;ON;;;;;N;;;;;-A4BE;YI RADICAL CIP;So;0;ON;;;;;N;;;;;-A4BF;YI RADICAL HXOP;So;0;ON;;;;;N;;;;;-A4C0;YI RADICAL SHAT;So;0;ON;;;;;N;;;;;-A4C1;YI RADICAL ZUR;So;0;ON;;;;;N;;;;;-A4C2;YI RADICAL SHOP;So;0;ON;;;;;N;;;;;-A4C3;YI RADICAL CHE;So;0;ON;;;;;N;;;;;-A4C4;YI RADICAL ZZIET;So;0;ON;;;;;N;;;;;-A4C5;YI RADICAL NBIE;So;0;ON;;;;;N;;;;;-A4C6;YI RADICAL KE;So;0;ON;;;;;N;;;;;-A700;MODIFIER LETTER CHINESE TONE YIN PING;Sk;0;ON;;;;;N;;;;;-A701;MODIFIER LETTER CHINESE TONE YANG PING;Sk;0;ON;;;;;N;;;;;-A702;MODIFIER LETTER CHINESE TONE YIN SHANG;Sk;0;ON;;;;;N;;;;;-A703;MODIFIER LETTER CHINESE TONE YANG SHANG;Sk;0;ON;;;;;N;;;;;-A704;MODIFIER LETTER CHINESE TONE YIN QU;Sk;0;ON;;;;;N;;;;;-A705;MODIFIER LETTER CHINESE TONE YANG QU;Sk;0;ON;;;;;N;;;;;-A706;MODIFIER LETTER CHINESE TONE YIN RU;Sk;0;ON;;;;;N;;;;;-A707;MODIFIER LETTER CHINESE TONE YANG RU;Sk;0;ON;;;;;N;;;;;-A708;MODIFIER LETTER EXTRA-HIGH DOTTED TONE BAR;Sk;0;ON;;;;;N;;;;;-A709;MODIFIER LETTER HIGH DOTTED TONE BAR;Sk;0;ON;;;;;N;;;;;-A70A;MODIFIER LETTER MID DOTTED TONE BAR;Sk;0;ON;;;;;N;;;;;-A70B;MODIFIER LETTER LOW DOTTED TONE BAR;Sk;0;ON;;;;;N;;;;;-A70C;MODIFIER LETTER EXTRA-LOW DOTTED TONE BAR;Sk;0;ON;;;;;N;;;;;-A70D;MODIFIER LETTER EXTRA-HIGH DOTTED LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;-A70E;MODIFIER LETTER HIGH DOTTED LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;-A70F;MODIFIER LETTER MID DOTTED LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;-A710;MODIFIER LETTER LOW DOTTED LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;-A711;MODIFIER LETTER EXTRA-LOW DOTTED LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;-A712;MODIFIER LETTER EXTRA-HIGH LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;-A713;MODIFIER LETTER HIGH LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;-A714;MODIFIER LETTER MID LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;-A715;MODIFIER LETTER LOW LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;-A716;MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;-A717;MODIFIER LETTER DOT VERTICAL BAR;Lm;0;ON;;;;;N;;;;;-A718;MODIFIER LETTER DOT SLASH;Lm;0;ON;;;;;N;;;;;-A719;MODIFIER LETTER DOT HORIZONTAL BAR;Lm;0;ON;;;;;N;;;;;-A71A;MODIFIER LETTER LOWER RIGHT CORNER ANGLE;Lm;0;ON;;;;;N;;;;;-A720;MODIFIER LETTER STRESS AND HIGH TONE;Sk;0;ON;;;;;N;;;;;-A721;MODIFIER LETTER STRESS AND LOW TONE;Sk;0;ON;;;;;N;;;;;-A800;SYLOTI NAGRI LETTER A;Lo;0;L;;;;;N;;;;;-A801;SYLOTI NAGRI LETTER I;Lo;0;L;;;;;N;;;;;-A802;SYLOTI NAGRI SIGN DVISVARA;Mc;0;NSM;;;;;N;;;;;-A803;SYLOTI NAGRI LETTER U;Lo;0;L;;;;;N;;;;;-A804;SYLOTI NAGRI LETTER E;Lo;0;L;;;;;N;;;;;-A805;SYLOTI NAGRI LETTER O;Lo;0;L;;;;;N;;;;;-A806;SYLOTI NAGRI SIGN HASANTA;Mn;9;NSM;;;;;N;;;;;-A807;SYLOTI NAGRI LETTER KO;Lo;0;L;;;;;N;;;;;-A808;SYLOTI NAGRI LETTER KHO;Lo;0;L;;;;;N;;;;;-A809;SYLOTI NAGRI LETTER GO;Lo;0;L;;;;;N;;;;;-A80A;SYLOTI NAGRI LETTER GHO;Lo;0;L;;;;;N;;;;;-A80B;SYLOTI NAGRI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;-A80C;SYLOTI NAGRI LETTER CO;Lo;0;L;;;;;N;;;;;-A80D;SYLOTI NAGRI LETTER CHO;Lo;0;L;;;;;N;;;;;-A80E;SYLOTI NAGRI LETTER JO;Lo;0;L;;;;;N;;;;;-A80F;SYLOTI NAGRI LETTER JHO;Lo;0;L;;;;;N;;;;;-A810;SYLOTI NAGRI LETTER TTO;Lo;0;L;;;;;N;;;;;-A811;SYLOTI NAGRI LETTER TTHO;Lo;0;L;;;;;N;;;;;-A812;SYLOTI NAGRI LETTER DDO;Lo;0;L;;;;;N;;;;;-A813;SYLOTI NAGRI LETTER DDHO;Lo;0;L;;;;;N;;;;;-A814;SYLOTI NAGRI LETTER TO;Lo;0;L;;;;;N;;;;;-A815;SYLOTI NAGRI LETTER THO;Lo;0;L;;;;;N;;;;;-A816;SYLOTI NAGRI LETTER DO;Lo;0;L;;;;;N;;;;;-A817;SYLOTI NAGRI LETTER DHO;Lo;0;L;;;;;N;;;;;-A818;SYLOTI NAGRI LETTER NO;Lo;0;L;;;;;N;;;;;-A819;SYLOTI NAGRI LETTER PO;Lo;0;L;;;;;N;;;;;-A81A;SYLOTI NAGRI LETTER PHO;Lo;0;L;;;;;N;;;;;-A81B;SYLOTI NAGRI LETTER BO;Lo;0;L;;;;;N;;;;;-A81C;SYLOTI NAGRI LETTER BHO;Lo;0;L;;;;;N;;;;;-A81D;SYLOTI NAGRI LETTER MO;Lo;0;L;;;;;N;;;;;-A81E;SYLOTI NAGRI LETTER RO;Lo;0;L;;;;;N;;;;;-A81F;SYLOTI NAGRI LETTER LO;Lo;0;L;;;;;N;;;;;-A820;SYLOTI NAGRI LETTER RRO;Lo;0;L;;;;;N;;;;;-A821;SYLOTI NAGRI LETTER SO;Lo;0;L;;;;;N;;;;;-A822;SYLOTI NAGRI LETTER HO;Lo;0;L;;;;;N;;;;;-A823;SYLOTI NAGRI VOWEL SIGN A;Mc;0;L;;;;;N;;;;;-A824;SYLOTI NAGRI VOWEL SIGN I;Mc;0;L;;;;;N;;;;;-A825;SYLOTI NAGRI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;-A826;SYLOTI NAGRI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;-A827;SYLOTI NAGRI VOWEL SIGN OO;Mc;0;L;;;;;N;;;;;-A828;SYLOTI NAGRI POETRY MARK-1;So;0;ON;;;;;N;;;;;-A829;SYLOTI NAGRI POETRY MARK-2;So;0;ON;;;;;N;;;;;-A82A;SYLOTI NAGRI POETRY MARK-3;So;0;ON;;;;;N;;;;;-A82B;SYLOTI NAGRI POETRY MARK-4;So;0;ON;;;;;N;;;;;-A840;PHAGS-PA LETTER KA;Lo;0;L;;;;;N;;;;;-A841;PHAGS-PA LETTER KHA;Lo;0;L;;;;;N;;;;;-A842;PHAGS-PA LETTER GA;Lo;0;L;;;;;N;;;;;-A843;PHAGS-PA LETTER NGA;Lo;0;L;;;;;N;;;;;-A844;PHAGS-PA LETTER CA;Lo;0;L;;;;;N;;;;;-A845;PHAGS-PA LETTER CHA;Lo;0;L;;;;;N;;;;;-A846;PHAGS-PA LETTER JA;Lo;0;L;;;;;N;;;;;-A847;PHAGS-PA LETTER NYA;Lo;0;L;;;;;N;;;;;-A848;PHAGS-PA LETTER TA;Lo;0;L;;;;;N;;;;;-A849;PHAGS-PA LETTER THA;Lo;0;L;;;;;N;;;;;-A84A;PHAGS-PA LETTER DA;Lo;0;L;;;;;N;;;;;-A84B;PHAGS-PA LETTER NA;Lo;0;L;;;;;N;;;;;-A84C;PHAGS-PA LETTER PA;Lo;0;L;;;;;N;;;;;-A84D;PHAGS-PA LETTER PHA;Lo;0;L;;;;;N;;;;;-A84E;PHAGS-PA LETTER BA;Lo;0;L;;;;;N;;;;;-A84F;PHAGS-PA LETTER MA;Lo;0;L;;;;;N;;;;;-A850;PHAGS-PA LETTER TSA;Lo;0;L;;;;;N;;;;;-A851;PHAGS-PA LETTER TSHA;Lo;0;L;;;;;N;;;;;-A852;PHAGS-PA LETTER DZA;Lo;0;L;;;;;N;;;;;-A853;PHAGS-PA LETTER WA;Lo;0;L;;;;;N;;;;;-A854;PHAGS-PA LETTER ZHA;Lo;0;L;;;;;N;;;;;-A855;PHAGS-PA LETTER ZA;Lo;0;L;;;;;N;;;;;-A856;PHAGS-PA LETTER SMALL A;Lo;0;L;;;;;N;;;;;-A857;PHAGS-PA LETTER YA;Lo;0;L;;;;;N;;;;;-A858;PHAGS-PA LETTER RA;Lo;0;L;;;;;N;;;;;-A859;PHAGS-PA LETTER LA;Lo;0;L;;;;;N;;;;;-A85A;PHAGS-PA LETTER SHA;Lo;0;L;;;;;N;;;;;-A85B;PHAGS-PA LETTER SA;Lo;0;L;;;;;N;;;;;-A85C;PHAGS-PA LETTER HA;Lo;0;L;;;;;N;;;;;-A85D;PHAGS-PA LETTER A;Lo;0;L;;;;;N;;;;;-A85E;PHAGS-PA LETTER I;Lo;0;L;;;;;N;;;;;-A85F;PHAGS-PA LETTER U;Lo;0;L;;;;;N;;;;;-A860;PHAGS-PA LETTER E;Lo;0;L;;;;;N;;;;;-A861;PHAGS-PA LETTER O;Lo;0;L;;;;;N;;;;;-A862;PHAGS-PA LETTER QA;Lo;0;L;;;;;N;;;;;-A863;PHAGS-PA LETTER XA;Lo;0;L;;;;;N;;;;;-A864;PHAGS-PA LETTER FA;Lo;0;L;;;;;N;;;;;-A865;PHAGS-PA LETTER GGA;Lo;0;L;;;;;N;;;;;-A866;PHAGS-PA LETTER EE;Lo;0;L;;;;;N;;;;;-A867;PHAGS-PA SUBJOINED LETTER WA;Lo;0;L;;;;;N;;;;;-A868;PHAGS-PA SUBJOINED LETTER YA;Lo;0;L;;;;;N;;;;;-A869;PHAGS-PA LETTER TTA;Lo;0;L;;;;;N;;;;;-A86A;PHAGS-PA LETTER TTHA;Lo;0;L;;;;;N;;;;;-A86B;PHAGS-PA LETTER DDA;Lo;0;L;;;;;N;;;;;-A86C;PHAGS-PA LETTER NNA;Lo;0;L;;;;;N;;;;;-A86D;PHAGS-PA LETTER ALTERNATE YA;Lo;0;L;;;;;N;;;;;-A86E;PHAGS-PA LETTER VOICELESS SHA;Lo;0;L;;;;;N;;;;;-A86F;PHAGS-PA LETTER VOICED HA;Lo;0;L;;;;;N;;;;;-A870;PHAGS-PA LETTER ASPIRATED FA;Lo;0;L;;;;;N;;;;;-A871;PHAGS-PA SUBJOINED LETTER RA;Lo;0;L;;;;;N;;;;;-A872;PHAGS-PA SUPERFIXED LETTER RA;Lo;0;L;;;;;N;;;;;-A873;PHAGS-PA LETTER CANDRABINDU;Lo;0;L;;;;;N;;;;;-A874;PHAGS-PA SINGLE HEAD MARK;Po;0;ON;;;;;N;;;;;-A875;PHAGS-PA DOUBLE HEAD MARK;Po;0;ON;;;;;N;;;;;-A876;PHAGS-PA MARK SHAD;Po;0;ON;;;;;N;;;;;-A877;PHAGS-PA MARK DOUBLE SHAD;Po;0;ON;;;;;N;;;;;-AC00;<Hangul Syllable, First>;Lo;0;L;;;;;N;;;;;-D7A3;<Hangul Syllable, Last>;Lo;0;L;;;;;N;;;;;-D800;<Non Private Use High Surrogate, First>;Cs;0;L;;;;;N;;;;;-DB7F;<Non Private Use High Surrogate, Last>;Cs;0;L;;;;;N;;;;;-DB80;<Private Use High Surrogate, First>;Cs;0;L;;;;;N;;;;;-DBFF;<Private Use High Surrogate, Last>;Cs;0;L;;;;;N;;;;;-DC00;<Low Surrogate, First>;Cs;0;L;;;;;N;;;;;-DFFF;<Low Surrogate, Last>;Cs;0;L;;;;;N;;;;;-E000;<Private Use, First>;Co;0;L;;;;;N;;;;;-F8FF;<Private Use, Last>;Co;0;L;;;;;N;;;;;-F900;CJK COMPATIBILITY IDEOGRAPH-F900;Lo;0;L;8C48;;;;N;;;;;-F901;CJK COMPATIBILITY IDEOGRAPH-F901;Lo;0;L;66F4;;;;N;;;;;-F902;CJK COMPATIBILITY IDEOGRAPH-F902;Lo;0;L;8ECA;;;;N;;;;;-F903;CJK COMPATIBILITY IDEOGRAPH-F903;Lo;0;L;8CC8;;;;N;;;;;-F904;CJK COMPATIBILITY IDEOGRAPH-F904;Lo;0;L;6ED1;;;;N;;;;;-F905;CJK COMPATIBILITY IDEOGRAPH-F905;Lo;0;L;4E32;;;;N;;;;;-F906;CJK COMPATIBILITY IDEOGRAPH-F906;Lo;0;L;53E5;;;;N;;;;;-F907;CJK COMPATIBILITY IDEOGRAPH-F907;Lo;0;L;9F9C;;;;N;;;;;-F908;CJK COMPATIBILITY IDEOGRAPH-F908;Lo;0;L;9F9C;;;;N;;;;;-F909;CJK COMPATIBILITY IDEOGRAPH-F909;Lo;0;L;5951;;;;N;;;;;-F90A;CJK COMPATIBILITY IDEOGRAPH-F90A;Lo;0;L;91D1;;;;N;;;;;-F90B;CJK COMPATIBILITY IDEOGRAPH-F90B;Lo;0;L;5587;;;;N;;;;;-F90C;CJK COMPATIBILITY IDEOGRAPH-F90C;Lo;0;L;5948;;;;N;;;;;-F90D;CJK COMPATIBILITY IDEOGRAPH-F90D;Lo;0;L;61F6;;;;N;;;;;-F90E;CJK COMPATIBILITY IDEOGRAPH-F90E;Lo;0;L;7669;;;;N;;;;;-F90F;CJK COMPATIBILITY IDEOGRAPH-F90F;Lo;0;L;7F85;;;;N;;;;;-F910;CJK COMPATIBILITY IDEOGRAPH-F910;Lo;0;L;863F;;;;N;;;;;-F911;CJK COMPATIBILITY IDEOGRAPH-F911;Lo;0;L;87BA;;;;N;;;;;-F912;CJK COMPATIBILITY IDEOGRAPH-F912;Lo;0;L;88F8;;;;N;;;;;-F913;CJK COMPATIBILITY IDEOGRAPH-F913;Lo;0;L;908F;;;;N;;;;;-F914;CJK COMPATIBILITY IDEOGRAPH-F914;Lo;0;L;6A02;;;;N;;;;;-F915;CJK COMPATIBILITY IDEOGRAPH-F915;Lo;0;L;6D1B;;;;N;;;;;-F916;CJK COMPATIBILITY IDEOGRAPH-F916;Lo;0;L;70D9;;;;N;;;;;-F917;CJK COMPATIBILITY IDEOGRAPH-F917;Lo;0;L;73DE;;;;N;;;;;-F918;CJK COMPATIBILITY IDEOGRAPH-F918;Lo;0;L;843D;;;;N;;;;;-F919;CJK COMPATIBILITY IDEOGRAPH-F919;Lo;0;L;916A;;;;N;;;;;-F91A;CJK COMPATIBILITY IDEOGRAPH-F91A;Lo;0;L;99F1;;;;N;;;;;-F91B;CJK COMPATIBILITY IDEOGRAPH-F91B;Lo;0;L;4E82;;;;N;;;;;-F91C;CJK COMPATIBILITY IDEOGRAPH-F91C;Lo;0;L;5375;;;;N;;;;;-F91D;CJK COMPATIBILITY IDEOGRAPH-F91D;Lo;0;L;6B04;;;;N;;;;;-F91E;CJK COMPATIBILITY IDEOGRAPH-F91E;Lo;0;L;721B;;;;N;;;;;-F91F;CJK COMPATIBILITY IDEOGRAPH-F91F;Lo;0;L;862D;;;;N;;;;;-F920;CJK COMPATIBILITY IDEOGRAPH-F920;Lo;0;L;9E1E;;;;N;;;;;-F921;CJK COMPATIBILITY IDEOGRAPH-F921;Lo;0;L;5D50;;;;N;;;;;-F922;CJK COMPATIBILITY IDEOGRAPH-F922;Lo;0;L;6FEB;;;;N;;;;;-F923;CJK COMPATIBILITY IDEOGRAPH-F923;Lo;0;L;85CD;;;;N;;;;;-F924;CJK COMPATIBILITY IDEOGRAPH-F924;Lo;0;L;8964;;;;N;;;;;-F925;CJK COMPATIBILITY IDEOGRAPH-F925;Lo;0;L;62C9;;;;N;;;;;-F926;CJK COMPATIBILITY IDEOGRAPH-F926;Lo;0;L;81D8;;;;N;;;;;-F927;CJK COMPATIBILITY IDEOGRAPH-F927;Lo;0;L;881F;;;;N;;;;;-F928;CJK COMPATIBILITY IDEOGRAPH-F928;Lo;0;L;5ECA;;;;N;;;;;-F929;CJK COMPATIBILITY IDEOGRAPH-F929;Lo;0;L;6717;;;;N;;;;;-F92A;CJK COMPATIBILITY IDEOGRAPH-F92A;Lo;0;L;6D6A;;;;N;;;;;-F92B;CJK COMPATIBILITY IDEOGRAPH-F92B;Lo;0;L;72FC;;;;N;;;;;-F92C;CJK COMPATIBILITY IDEOGRAPH-F92C;Lo;0;L;90CE;;;;N;;;;;-F92D;CJK COMPATIBILITY IDEOGRAPH-F92D;Lo;0;L;4F86;;;;N;;;;;-F92E;CJK COMPATIBILITY IDEOGRAPH-F92E;Lo;0;L;51B7;;;;N;;;;;-F92F;CJK COMPATIBILITY IDEOGRAPH-F92F;Lo;0;L;52DE;;;;N;;;;;-F930;CJK COMPATIBILITY IDEOGRAPH-F930;Lo;0;L;64C4;;;;N;;;;;-F931;CJK COMPATIBILITY IDEOGRAPH-F931;Lo;0;L;6AD3;;;;N;;;;;-F932;CJK COMPATIBILITY IDEOGRAPH-F932;Lo;0;L;7210;;;;N;;;;;-F933;CJK COMPATIBILITY IDEOGRAPH-F933;Lo;0;L;76E7;;;;N;;;;;-F934;CJK COMPATIBILITY IDEOGRAPH-F934;Lo;0;L;8001;;;;N;;;;;-F935;CJK COMPATIBILITY IDEOGRAPH-F935;Lo;0;L;8606;;;;N;;;;;-F936;CJK COMPATIBILITY IDEOGRAPH-F936;Lo;0;L;865C;;;;N;;;;;-F937;CJK COMPATIBILITY IDEOGRAPH-F937;Lo;0;L;8DEF;;;;N;;;;;-F938;CJK COMPATIBILITY IDEOGRAPH-F938;Lo;0;L;9732;;;;N;;;;;-F939;CJK COMPATIBILITY IDEOGRAPH-F939;Lo;0;L;9B6F;;;;N;;;;;-F93A;CJK COMPATIBILITY IDEOGRAPH-F93A;Lo;0;L;9DFA;;;;N;;;;;-F93B;CJK COMPATIBILITY IDEOGRAPH-F93B;Lo;0;L;788C;;;;N;;;;;-F93C;CJK COMPATIBILITY IDEOGRAPH-F93C;Lo;0;L;797F;;;;N;;;;;-F93D;CJK COMPATIBILITY IDEOGRAPH-F93D;Lo;0;L;7DA0;;;;N;;;;;-F93E;CJK COMPATIBILITY IDEOGRAPH-F93E;Lo;0;L;83C9;;;;N;;;;;-F93F;CJK COMPATIBILITY IDEOGRAPH-F93F;Lo;0;L;9304;;;;N;;;;;-F940;CJK COMPATIBILITY IDEOGRAPH-F940;Lo;0;L;9E7F;;;;N;;;;;-F941;CJK COMPATIBILITY IDEOGRAPH-F941;Lo;0;L;8AD6;;;;N;;;;;-F942;CJK COMPATIBILITY IDEOGRAPH-F942;Lo;0;L;58DF;;;;N;;;;;-F943;CJK COMPATIBILITY IDEOGRAPH-F943;Lo;0;L;5F04;;;;N;;;;;-F944;CJK COMPATIBILITY IDEOGRAPH-F944;Lo;0;L;7C60;;;;N;;;;;-F945;CJK COMPATIBILITY IDEOGRAPH-F945;Lo;0;L;807E;;;;N;;;;;-F946;CJK COMPATIBILITY IDEOGRAPH-F946;Lo;0;L;7262;;;;N;;;;;-F947;CJK COMPATIBILITY IDEOGRAPH-F947;Lo;0;L;78CA;;;;N;;;;;-F948;CJK COMPATIBILITY IDEOGRAPH-F948;Lo;0;L;8CC2;;;;N;;;;;-F949;CJK COMPATIBILITY IDEOGRAPH-F949;Lo;0;L;96F7;;;;N;;;;;-F94A;CJK COMPATIBILITY IDEOGRAPH-F94A;Lo;0;L;58D8;;;;N;;;;;-F94B;CJK COMPATIBILITY IDEOGRAPH-F94B;Lo;0;L;5C62;;;;N;;;;;-F94C;CJK COMPATIBILITY IDEOGRAPH-F94C;Lo;0;L;6A13;;;;N;;;;;-F94D;CJK COMPATIBILITY IDEOGRAPH-F94D;Lo;0;L;6DDA;;;;N;;;;;-F94E;CJK COMPATIBILITY IDEOGRAPH-F94E;Lo;0;L;6F0F;;;;N;;;;;-F94F;CJK COMPATIBILITY IDEOGRAPH-F94F;Lo;0;L;7D2F;;;;N;;;;;-F950;CJK COMPATIBILITY IDEOGRAPH-F950;Lo;0;L;7E37;;;;N;;;;;-F951;CJK COMPATIBILITY IDEOGRAPH-F951;Lo;0;L;964B;;;;N;;;;;-F952;CJK COMPATIBILITY IDEOGRAPH-F952;Lo;0;L;52D2;;;;N;;;;;-F953;CJK COMPATIBILITY IDEOGRAPH-F953;Lo;0;L;808B;;;;N;;;;;-F954;CJK COMPATIBILITY IDEOGRAPH-F954;Lo;0;L;51DC;;;;N;;;;;-F955;CJK COMPATIBILITY IDEOGRAPH-F955;Lo;0;L;51CC;;;;N;;;;;-F956;CJK COMPATIBILITY IDEOGRAPH-F956;Lo;0;L;7A1C;;;;N;;;;;-F957;CJK COMPATIBILITY IDEOGRAPH-F957;Lo;0;L;7DBE;;;;N;;;;;-F958;CJK COMPATIBILITY IDEOGRAPH-F958;Lo;0;L;83F1;;;;N;;;;;-F959;CJK COMPATIBILITY IDEOGRAPH-F959;Lo;0;L;9675;;;;N;;;;;-F95A;CJK COMPATIBILITY IDEOGRAPH-F95A;Lo;0;L;8B80;;;;N;;;;;-F95B;CJK COMPATIBILITY IDEOGRAPH-F95B;Lo;0;L;62CF;;;;N;;;;;-F95C;CJK COMPATIBILITY IDEOGRAPH-F95C;Lo;0;L;6A02;;;;N;;;;;-F95D;CJK COMPATIBILITY IDEOGRAPH-F95D;Lo;0;L;8AFE;;;;N;;;;;-F95E;CJK COMPATIBILITY IDEOGRAPH-F95E;Lo;0;L;4E39;;;;N;;;;;-F95F;CJK COMPATIBILITY IDEOGRAPH-F95F;Lo;0;L;5BE7;;;;N;;;;;-F960;CJK COMPATIBILITY IDEOGRAPH-F960;Lo;0;L;6012;;;;N;;;;;-F961;CJK COMPATIBILITY IDEOGRAPH-F961;Lo;0;L;7387;;;;N;;;;;-F962;CJK COMPATIBILITY IDEOGRAPH-F962;Lo;0;L;7570;;;;N;;;;;-F963;CJK COMPATIBILITY IDEOGRAPH-F963;Lo;0;L;5317;;;;N;;;;;-F964;CJK COMPATIBILITY IDEOGRAPH-F964;Lo;0;L;78FB;;;;N;;;;;-F965;CJK COMPATIBILITY IDEOGRAPH-F965;Lo;0;L;4FBF;;;;N;;;;;-F966;CJK COMPATIBILITY IDEOGRAPH-F966;Lo;0;L;5FA9;;;;N;;;;;-F967;CJK COMPATIBILITY IDEOGRAPH-F967;Lo;0;L;4E0D;;;;N;;;;;-F968;CJK COMPATIBILITY IDEOGRAPH-F968;Lo;0;L;6CCC;;;;N;;;;;-F969;CJK COMPATIBILITY IDEOGRAPH-F969;Lo;0;L;6578;;;;N;;;;;-F96A;CJK COMPATIBILITY IDEOGRAPH-F96A;Lo;0;L;7D22;;;;N;;;;;-F96B;CJK COMPATIBILITY IDEOGRAPH-F96B;Lo;0;L;53C3;;;;N;;;;;-F96C;CJK COMPATIBILITY IDEOGRAPH-F96C;Lo;0;L;585E;;;;N;;;;;-F96D;CJK COMPATIBILITY IDEOGRAPH-F96D;Lo;0;L;7701;;;;N;;;;;-F96E;CJK COMPATIBILITY IDEOGRAPH-F96E;Lo;0;L;8449;;;;N;;;;;-F96F;CJK COMPATIBILITY IDEOGRAPH-F96F;Lo;0;L;8AAA;;;;N;;;;;-F970;CJK COMPATIBILITY IDEOGRAPH-F970;Lo;0;L;6BBA;;;;N;;;;;-F971;CJK COMPATIBILITY IDEOGRAPH-F971;Lo;0;L;8FB0;;;;N;;;;;-F972;CJK COMPATIBILITY IDEOGRAPH-F972;Lo;0;L;6C88;;;;N;;;;;-F973;CJK COMPATIBILITY IDEOGRAPH-F973;Lo;0;L;62FE;;;;N;;;;;-F974;CJK COMPATIBILITY IDEOGRAPH-F974;Lo;0;L;82E5;;;;N;;;;;-F975;CJK COMPATIBILITY IDEOGRAPH-F975;Lo;0;L;63A0;;;;N;;;;;-F976;CJK COMPATIBILITY IDEOGRAPH-F976;Lo;0;L;7565;;;;N;;;;;-F977;CJK COMPATIBILITY IDEOGRAPH-F977;Lo;0;L;4EAE;;;;N;;;;;-F978;CJK COMPATIBILITY IDEOGRAPH-F978;Lo;0;L;5169;;;;N;;;;;-F979;CJK COMPATIBILITY IDEOGRAPH-F979;Lo;0;L;51C9;;;;N;;;;;-F97A;CJK COMPATIBILITY IDEOGRAPH-F97A;Lo;0;L;6881;;;;N;;;;;-F97B;CJK COMPATIBILITY IDEOGRAPH-F97B;Lo;0;L;7CE7;;;;N;;;;;-F97C;CJK COMPATIBILITY IDEOGRAPH-F97C;Lo;0;L;826F;;;;N;;;;;-F97D;CJK COMPATIBILITY IDEOGRAPH-F97D;Lo;0;L;8AD2;;;;N;;;;;-F97E;CJK COMPATIBILITY IDEOGRAPH-F97E;Lo;0;L;91CF;;;;N;;;;;-F97F;CJK COMPATIBILITY IDEOGRAPH-F97F;Lo;0;L;52F5;;;;N;;;;;-F980;CJK COMPATIBILITY IDEOGRAPH-F980;Lo;0;L;5442;;;;N;;;;;-F981;CJK COMPATIBILITY IDEOGRAPH-F981;Lo;0;L;5973;;;;N;;;;;-F982;CJK COMPATIBILITY IDEOGRAPH-F982;Lo;0;L;5EEC;;;;N;;;;;-F983;CJK COMPATIBILITY IDEOGRAPH-F983;Lo;0;L;65C5;;;;N;;;;;-F984;CJK COMPATIBILITY IDEOGRAPH-F984;Lo;0;L;6FFE;;;;N;;;;;-F985;CJK COMPATIBILITY IDEOGRAPH-F985;Lo;0;L;792A;;;;N;;;;;-F986;CJK COMPATIBILITY IDEOGRAPH-F986;Lo;0;L;95AD;;;;N;;;;;-F987;CJK COMPATIBILITY IDEOGRAPH-F987;Lo;0;L;9A6A;;;;N;;;;;-F988;CJK COMPATIBILITY IDEOGRAPH-F988;Lo;0;L;9E97;;;;N;;;;;-F989;CJK COMPATIBILITY IDEOGRAPH-F989;Lo;0;L;9ECE;;;;N;;;;;-F98A;CJK COMPATIBILITY IDEOGRAPH-F98A;Lo;0;L;529B;;;;N;;;;;-F98B;CJK COMPATIBILITY IDEOGRAPH-F98B;Lo;0;L;66C6;;;;N;;;;;-F98C;CJK COMPATIBILITY IDEOGRAPH-F98C;Lo;0;L;6B77;;;;N;;;;;-F98D;CJK COMPATIBILITY IDEOGRAPH-F98D;Lo;0;L;8F62;;;;N;;;;;-F98E;CJK COMPATIBILITY IDEOGRAPH-F98E;Lo;0;L;5E74;;;;N;;;;;-F98F;CJK COMPATIBILITY IDEOGRAPH-F98F;Lo;0;L;6190;;;;N;;;;;-F990;CJK COMPATIBILITY IDEOGRAPH-F990;Lo;0;L;6200;;;;N;;;;;-F991;CJK COMPATIBILITY IDEOGRAPH-F991;Lo;0;L;649A;;;;N;;;;;-F992;CJK COMPATIBILITY IDEOGRAPH-F992;Lo;0;L;6F23;;;;N;;;;;-F993;CJK COMPATIBILITY IDEOGRAPH-F993;Lo;0;L;7149;;;;N;;;;;-F994;CJK COMPATIBILITY IDEOGRAPH-F994;Lo;0;L;7489;;;;N;;;;;-F995;CJK COMPATIBILITY IDEOGRAPH-F995;Lo;0;L;79CA;;;;N;;;;;-F996;CJK COMPATIBILITY IDEOGRAPH-F996;Lo;0;L;7DF4;;;;N;;;;;-F997;CJK COMPATIBILITY IDEOGRAPH-F997;Lo;0;L;806F;;;;N;;;;;-F998;CJK COMPATIBILITY IDEOGRAPH-F998;Lo;0;L;8F26;;;;N;;;;;-F999;CJK COMPATIBILITY IDEOGRAPH-F999;Lo;0;L;84EE;;;;N;;;;;-F99A;CJK COMPATIBILITY IDEOGRAPH-F99A;Lo;0;L;9023;;;;N;;;;;-F99B;CJK COMPATIBILITY IDEOGRAPH-F99B;Lo;0;L;934A;;;;N;;;;;-F99C;CJK COMPATIBILITY IDEOGRAPH-F99C;Lo;0;L;5217;;;;N;;;;;-F99D;CJK COMPATIBILITY IDEOGRAPH-F99D;Lo;0;L;52A3;;;;N;;;;;-F99E;CJK COMPATIBILITY IDEOGRAPH-F99E;Lo;0;L;54BD;;;;N;;;;;-F99F;CJK COMPATIBILITY IDEOGRAPH-F99F;Lo;0;L;70C8;;;;N;;;;;-F9A0;CJK COMPATIBILITY IDEOGRAPH-F9A0;Lo;0;L;88C2;;;;N;;;;;-F9A1;CJK COMPATIBILITY IDEOGRAPH-F9A1;Lo;0;L;8AAA;;;;N;;;;;-F9A2;CJK COMPATIBILITY IDEOGRAPH-F9A2;Lo;0;L;5EC9;;;;N;;;;;-F9A3;CJK COMPATIBILITY IDEOGRAPH-F9A3;Lo;0;L;5FF5;;;;N;;;;;-F9A4;CJK COMPATIBILITY IDEOGRAPH-F9A4;Lo;0;L;637B;;;;N;;;;;-F9A5;CJK COMPATIBILITY IDEOGRAPH-F9A5;Lo;0;L;6BAE;;;;N;;;;;-F9A6;CJK COMPATIBILITY IDEOGRAPH-F9A6;Lo;0;L;7C3E;;;;N;;;;;-F9A7;CJK COMPATIBILITY IDEOGRAPH-F9A7;Lo;0;L;7375;;;;N;;;;;-F9A8;CJK COMPATIBILITY IDEOGRAPH-F9A8;Lo;0;L;4EE4;;;;N;;;;;-F9A9;CJK COMPATIBILITY IDEOGRAPH-F9A9;Lo;0;L;56F9;;;;N;;;;;-F9AA;CJK COMPATIBILITY IDEOGRAPH-F9AA;Lo;0;L;5BE7;;;;N;;;;;-F9AB;CJK COMPATIBILITY IDEOGRAPH-F9AB;Lo;0;L;5DBA;;;;N;;;;;-F9AC;CJK COMPATIBILITY IDEOGRAPH-F9AC;Lo;0;L;601C;;;;N;;;;;-F9AD;CJK COMPATIBILITY IDEOGRAPH-F9AD;Lo;0;L;73B2;;;;N;;;;;-F9AE;CJK COMPATIBILITY IDEOGRAPH-F9AE;Lo;0;L;7469;;;;N;;;;;-F9AF;CJK COMPATIBILITY IDEOGRAPH-F9AF;Lo;0;L;7F9A;;;;N;;;;;-F9B0;CJK COMPATIBILITY IDEOGRAPH-F9B0;Lo;0;L;8046;;;;N;;;;;-F9B1;CJK COMPATIBILITY IDEOGRAPH-F9B1;Lo;0;L;9234;;;;N;;;;;-F9B2;CJK COMPATIBILITY IDEOGRAPH-F9B2;Lo;0;L;96F6;;;;N;;;;;-F9B3;CJK COMPATIBILITY IDEOGRAPH-F9B3;Lo;0;L;9748;;;;N;;;;;-F9B4;CJK COMPATIBILITY IDEOGRAPH-F9B4;Lo;0;L;9818;;;;N;;;;;-F9B5;CJK COMPATIBILITY IDEOGRAPH-F9B5;Lo;0;L;4F8B;;;;N;;;;;-F9B6;CJK COMPATIBILITY IDEOGRAPH-F9B6;Lo;0;L;79AE;;;;N;;;;;-F9B7;CJK COMPATIBILITY IDEOGRAPH-F9B7;Lo;0;L;91B4;;;;N;;;;;-F9B8;CJK COMPATIBILITY IDEOGRAPH-F9B8;Lo;0;L;96B8;;;;N;;;;;-F9B9;CJK COMPATIBILITY IDEOGRAPH-F9B9;Lo;0;L;60E1;;;;N;;;;;-F9BA;CJK COMPATIBILITY IDEOGRAPH-F9BA;Lo;0;L;4E86;;;;N;;;;;-F9BB;CJK COMPATIBILITY IDEOGRAPH-F9BB;Lo;0;L;50DA;;;;N;;;;;-F9BC;CJK COMPATIBILITY IDEOGRAPH-F9BC;Lo;0;L;5BEE;;;;N;;;;;-F9BD;CJK COMPATIBILITY IDEOGRAPH-F9BD;Lo;0;L;5C3F;;;;N;;;;;-F9BE;CJK COMPATIBILITY IDEOGRAPH-F9BE;Lo;0;L;6599;;;;N;;;;;-F9BF;CJK COMPATIBILITY IDEOGRAPH-F9BF;Lo;0;L;6A02;;;;N;;;;;-F9C0;CJK COMPATIBILITY IDEOGRAPH-F9C0;Lo;0;L;71CE;;;;N;;;;;-F9C1;CJK COMPATIBILITY IDEOGRAPH-F9C1;Lo;0;L;7642;;;;N;;;;;-F9C2;CJK COMPATIBILITY IDEOGRAPH-F9C2;Lo;0;L;84FC;;;;N;;;;;-F9C3;CJK COMPATIBILITY IDEOGRAPH-F9C3;Lo;0;L;907C;;;;N;;;;;-F9C4;CJK COMPATIBILITY IDEOGRAPH-F9C4;Lo;0;L;9F8D;;;;N;;;;;-F9C5;CJK COMPATIBILITY IDEOGRAPH-F9C5;Lo;0;L;6688;;;;N;;;;;-F9C6;CJK COMPATIBILITY IDEOGRAPH-F9C6;Lo;0;L;962E;;;;N;;;;;-F9C7;CJK COMPATIBILITY IDEOGRAPH-F9C7;Lo;0;L;5289;;;;N;;;;;-F9C8;CJK COMPATIBILITY IDEOGRAPH-F9C8;Lo;0;L;677B;;;;N;;;;;-F9C9;CJK COMPATIBILITY IDEOGRAPH-F9C9;Lo;0;L;67F3;;;;N;;;;;-F9CA;CJK COMPATIBILITY IDEOGRAPH-F9CA;Lo;0;L;6D41;;;;N;;;;;-F9CB;CJK COMPATIBILITY IDEOGRAPH-F9CB;Lo;0;L;6E9C;;;;N;;;;;-F9CC;CJK COMPATIBILITY IDEOGRAPH-F9CC;Lo;0;L;7409;;;;N;;;;;-F9CD;CJK COMPATIBILITY IDEOGRAPH-F9CD;Lo;0;L;7559;;;;N;;;;;-F9CE;CJK COMPATIBILITY IDEOGRAPH-F9CE;Lo;0;L;786B;;;;N;;;;;-F9CF;CJK COMPATIBILITY IDEOGRAPH-F9CF;Lo;0;L;7D10;;;;N;;;;;-F9D0;CJK COMPATIBILITY IDEOGRAPH-F9D0;Lo;0;L;985E;;;;N;;;;;-F9D1;CJK COMPATIBILITY IDEOGRAPH-F9D1;Lo;0;L;516D;;;;N;;;;;-F9D2;CJK COMPATIBILITY IDEOGRAPH-F9D2;Lo;0;L;622E;;;;N;;;;;-F9D3;CJK COMPATIBILITY IDEOGRAPH-F9D3;Lo;0;L;9678;;;;N;;;;;-F9D4;CJK COMPATIBILITY IDEOGRAPH-F9D4;Lo;0;L;502B;;;;N;;;;;-F9D5;CJK COMPATIBILITY IDEOGRAPH-F9D5;Lo;0;L;5D19;;;;N;;;;;-F9D6;CJK COMPATIBILITY IDEOGRAPH-F9D6;Lo;0;L;6DEA;;;;N;;;;;-F9D7;CJK COMPATIBILITY IDEOGRAPH-F9D7;Lo;0;L;8F2A;;;;N;;;;;-F9D8;CJK COMPATIBILITY IDEOGRAPH-F9D8;Lo;0;L;5F8B;;;;N;;;;;-F9D9;CJK COMPATIBILITY IDEOGRAPH-F9D9;Lo;0;L;6144;;;;N;;;;;-F9DA;CJK COMPATIBILITY IDEOGRAPH-F9DA;Lo;0;L;6817;;;;N;;;;;-F9DB;CJK COMPATIBILITY IDEOGRAPH-F9DB;Lo;0;L;7387;;;;N;;;;;-F9DC;CJK COMPATIBILITY IDEOGRAPH-F9DC;Lo;0;L;9686;;;;N;;;;;-F9DD;CJK COMPATIBILITY IDEOGRAPH-F9DD;Lo;0;L;5229;;;;N;;;;;-F9DE;CJK COMPATIBILITY IDEOGRAPH-F9DE;Lo;0;L;540F;;;;N;;;;;-F9DF;CJK COMPATIBILITY IDEOGRAPH-F9DF;Lo;0;L;5C65;;;;N;;;;;-F9E0;CJK COMPATIBILITY IDEOGRAPH-F9E0;Lo;0;L;6613;;;;N;;;;;-F9E1;CJK COMPATIBILITY IDEOGRAPH-F9E1;Lo;0;L;674E;;;;N;;;;;-F9E2;CJK COMPATIBILITY IDEOGRAPH-F9E2;Lo;0;L;68A8;;;;N;;;;;-F9E3;CJK COMPATIBILITY IDEOGRAPH-F9E3;Lo;0;L;6CE5;;;;N;;;;;-F9E4;CJK COMPATIBILITY IDEOGRAPH-F9E4;Lo;0;L;7406;;;;N;;;;;-F9E5;CJK COMPATIBILITY IDEOGRAPH-F9E5;Lo;0;L;75E2;;;;N;;;;;-F9E6;CJK COMPATIBILITY IDEOGRAPH-F9E6;Lo;0;L;7F79;;;;N;;;;;-F9E7;CJK COMPATIBILITY IDEOGRAPH-F9E7;Lo;0;L;88CF;;;;N;;;;;-F9E8;CJK COMPATIBILITY IDEOGRAPH-F9E8;Lo;0;L;88E1;;;;N;;;;;-F9E9;CJK COMPATIBILITY IDEOGRAPH-F9E9;Lo;0;L;91CC;;;;N;;;;;-F9EA;CJK COMPATIBILITY IDEOGRAPH-F9EA;Lo;0;L;96E2;;;;N;;;;;-F9EB;CJK COMPATIBILITY IDEOGRAPH-F9EB;Lo;0;L;533F;;;;N;;;;;-F9EC;CJK COMPATIBILITY IDEOGRAPH-F9EC;Lo;0;L;6EBA;;;;N;;;;;-F9ED;CJK COMPATIBILITY IDEOGRAPH-F9ED;Lo;0;L;541D;;;;N;;;;;-F9EE;CJK COMPATIBILITY IDEOGRAPH-F9EE;Lo;0;L;71D0;;;;N;;;;;-F9EF;CJK COMPATIBILITY IDEOGRAPH-F9EF;Lo;0;L;7498;;;;N;;;;;-F9F0;CJK COMPATIBILITY IDEOGRAPH-F9F0;Lo;0;L;85FA;;;;N;;;;;-F9F1;CJK COMPATIBILITY IDEOGRAPH-F9F1;Lo;0;L;96A3;;;;N;;;;;-F9F2;CJK COMPATIBILITY IDEOGRAPH-F9F2;Lo;0;L;9C57;;;;N;;;;;-F9F3;CJK COMPATIBILITY IDEOGRAPH-F9F3;Lo;0;L;9E9F;;;;N;;;;;-F9F4;CJK COMPATIBILITY IDEOGRAPH-F9F4;Lo;0;L;6797;;;;N;;;;;-F9F5;CJK COMPATIBILITY IDEOGRAPH-F9F5;Lo;0;L;6DCB;;;;N;;;;;-F9F6;CJK COMPATIBILITY IDEOGRAPH-F9F6;Lo;0;L;81E8;;;;N;;;;;-F9F7;CJK COMPATIBILITY IDEOGRAPH-F9F7;Lo;0;L;7ACB;;;;N;;;;;-F9F8;CJK COMPATIBILITY IDEOGRAPH-F9F8;Lo;0;L;7B20;;;;N;;;;;-F9F9;CJK COMPATIBILITY IDEOGRAPH-F9F9;Lo;0;L;7C92;;;;N;;;;;-F9FA;CJK COMPATIBILITY IDEOGRAPH-F9FA;Lo;0;L;72C0;;;;N;;;;;-F9FB;CJK COMPATIBILITY IDEOGRAPH-F9FB;Lo;0;L;7099;;;;N;;;;;-F9FC;CJK COMPATIBILITY IDEOGRAPH-F9FC;Lo;0;L;8B58;;;;N;;;;;-F9FD;CJK COMPATIBILITY IDEOGRAPH-F9FD;Lo;0;L;4EC0;;;;N;;;;;-F9FE;CJK COMPATIBILITY IDEOGRAPH-F9FE;Lo;0;L;8336;;;;N;;;;;-F9FF;CJK COMPATIBILITY IDEOGRAPH-F9FF;Lo;0;L;523A;;;;N;;;;;-FA00;CJK COMPATIBILITY IDEOGRAPH-FA00;Lo;0;L;5207;;;;N;;;;;-FA01;CJK COMPATIBILITY IDEOGRAPH-FA01;Lo;0;L;5EA6;;;;N;;;;;-FA02;CJK COMPATIBILITY IDEOGRAPH-FA02;Lo;0;L;62D3;;;;N;;;;;-FA03;CJK COMPATIBILITY IDEOGRAPH-FA03;Lo;0;L;7CD6;;;;N;;;;;-FA04;CJK COMPATIBILITY IDEOGRAPH-FA04;Lo;0;L;5B85;;;;N;;;;;-FA05;CJK COMPATIBILITY IDEOGRAPH-FA05;Lo;0;L;6D1E;;;;N;;;;;-FA06;CJK COMPATIBILITY IDEOGRAPH-FA06;Lo;0;L;66B4;;;;N;;;;;-FA07;CJK COMPATIBILITY IDEOGRAPH-FA07;Lo;0;L;8F3B;;;;N;;;;;-FA08;CJK COMPATIBILITY IDEOGRAPH-FA08;Lo;0;L;884C;;;;N;;;;;-FA09;CJK COMPATIBILITY IDEOGRAPH-FA09;Lo;0;L;964D;;;;N;;;;;-FA0A;CJK COMPATIBILITY IDEOGRAPH-FA0A;Lo;0;L;898B;;;;N;;;;;-FA0B;CJK COMPATIBILITY IDEOGRAPH-FA0B;Lo;0;L;5ED3;;;;N;;;;;-FA0C;CJK COMPATIBILITY IDEOGRAPH-FA0C;Lo;0;L;5140;;;;N;;;;;-FA0D;CJK COMPATIBILITY IDEOGRAPH-FA0D;Lo;0;L;55C0;;;;N;;;;;-FA0E;CJK COMPATIBILITY IDEOGRAPH-FA0E;Lo;0;L;;;;;N;;;;;-FA0F;CJK COMPATIBILITY IDEOGRAPH-FA0F;Lo;0;L;;;;;N;;;;;-FA10;CJK COMPATIBILITY IDEOGRAPH-FA10;Lo;0;L;585A;;;;N;;;;;-FA11;CJK COMPATIBILITY IDEOGRAPH-FA11;Lo;0;L;;;;;N;;;;;-FA12;CJK COMPATIBILITY IDEOGRAPH-FA12;Lo;0;L;6674;;;;N;;;;;-FA13;CJK COMPATIBILITY IDEOGRAPH-FA13;Lo;0;L;;;;;N;;;;;-FA14;CJK COMPATIBILITY IDEOGRAPH-FA14;Lo;0;L;;;;;N;;;;;-FA15;CJK COMPATIBILITY IDEOGRAPH-FA15;Lo;0;L;51DE;;;;N;;;;;-FA16;CJK COMPATIBILITY IDEOGRAPH-FA16;Lo;0;L;732A;;;;N;;;;;-FA17;CJK COMPATIBILITY IDEOGRAPH-FA17;Lo;0;L;76CA;;;;N;;;;;-FA18;CJK COMPATIBILITY IDEOGRAPH-FA18;Lo;0;L;793C;;;;N;;;;;-FA19;CJK COMPATIBILITY IDEOGRAPH-FA19;Lo;0;L;795E;;;;N;;;;;-FA1A;CJK COMPATIBILITY IDEOGRAPH-FA1A;Lo;0;L;7965;;;;N;;;;;-FA1B;CJK COMPATIBILITY IDEOGRAPH-FA1B;Lo;0;L;798F;;;;N;;;;;-FA1C;CJK COMPATIBILITY IDEOGRAPH-FA1C;Lo;0;L;9756;;;;N;;;;;-FA1D;CJK COMPATIBILITY IDEOGRAPH-FA1D;Lo;0;L;7CBE;;;;N;;;;;-FA1E;CJK COMPATIBILITY IDEOGRAPH-FA1E;Lo;0;L;7FBD;;;;N;;;;;-FA1F;CJK COMPATIBILITY IDEOGRAPH-FA1F;Lo;0;L;;;;;N;;*;;;-FA20;CJK COMPATIBILITY IDEOGRAPH-FA20;Lo;0;L;8612;;;;N;;;;;-FA21;CJK COMPATIBILITY IDEOGRAPH-FA21;Lo;0;L;;;;;N;;;;;-FA22;CJK COMPATIBILITY IDEOGRAPH-FA22;Lo;0;L;8AF8;;;;N;;;;;-FA23;CJK COMPATIBILITY IDEOGRAPH-FA23;Lo;0;L;;;;;N;;*;;;-FA24;CJK COMPATIBILITY IDEOGRAPH-FA24;Lo;0;L;;;;;N;;;;;-FA25;CJK COMPATIBILITY IDEOGRAPH-FA25;Lo;0;L;9038;;;;N;;;;;-FA26;CJK COMPATIBILITY IDEOGRAPH-FA26;Lo;0;L;90FD;;;;N;;;;;-FA27;CJK COMPATIBILITY IDEOGRAPH-FA27;Lo;0;L;;;;;N;;;;;-FA28;CJK COMPATIBILITY IDEOGRAPH-FA28;Lo;0;L;;;;;N;;;;;-FA29;CJK COMPATIBILITY IDEOGRAPH-FA29;Lo;0;L;;;;;N;;;;;-FA2A;CJK COMPATIBILITY IDEOGRAPH-FA2A;Lo;0;L;98EF;;;;N;;;;;-FA2B;CJK COMPATIBILITY IDEOGRAPH-FA2B;Lo;0;L;98FC;;;;N;;;;;-FA2C;CJK COMPATIBILITY IDEOGRAPH-FA2C;Lo;0;L;9928;;;;N;;;;;-FA2D;CJK COMPATIBILITY IDEOGRAPH-FA2D;Lo;0;L;9DB4;;;;N;;;;;-FA30;CJK COMPATIBILITY IDEOGRAPH-FA30;Lo;0;L;4FAE;;;;N;;;;;-FA31;CJK COMPATIBILITY IDEOGRAPH-FA31;Lo;0;L;50E7;;;;N;;;;;-FA32;CJK COMPATIBILITY IDEOGRAPH-FA32;Lo;0;L;514D;;;;N;;;;;-FA33;CJK COMPATIBILITY IDEOGRAPH-FA33;Lo;0;L;52C9;;;;N;;;;;-FA34;CJK COMPATIBILITY IDEOGRAPH-FA34;Lo;0;L;52E4;;;;N;;;;;-FA35;CJK COMPATIBILITY IDEOGRAPH-FA35;Lo;0;L;5351;;;;N;;;;;-FA36;CJK COMPATIBILITY IDEOGRAPH-FA36;Lo;0;L;559D;;;;N;;;;;-FA37;CJK COMPATIBILITY IDEOGRAPH-FA37;Lo;0;L;5606;;;;N;;;;;-FA38;CJK COMPATIBILITY IDEOGRAPH-FA38;Lo;0;L;5668;;;;N;;;;;-FA39;CJK COMPATIBILITY IDEOGRAPH-FA39;Lo;0;L;5840;;;;N;;;;;-FA3A;CJK COMPATIBILITY IDEOGRAPH-FA3A;Lo;0;L;58A8;;;;N;;;;;-FA3B;CJK COMPATIBILITY IDEOGRAPH-FA3B;Lo;0;L;5C64;;;;N;;;;;-FA3C;CJK COMPATIBILITY IDEOGRAPH-FA3C;Lo;0;L;5C6E;;;;N;;;;;-FA3D;CJK COMPATIBILITY IDEOGRAPH-FA3D;Lo;0;L;6094;;;;N;;;;;-FA3E;CJK COMPATIBILITY IDEOGRAPH-FA3E;Lo;0;L;6168;;;;N;;;;;-FA3F;CJK COMPATIBILITY IDEOGRAPH-FA3F;Lo;0;L;618E;;;;N;;;;;-FA40;CJK COMPATIBILITY IDEOGRAPH-FA40;Lo;0;L;61F2;;;;N;;;;;-FA41;CJK COMPATIBILITY IDEOGRAPH-FA41;Lo;0;L;654F;;;;N;;;;;-FA42;CJK COMPATIBILITY IDEOGRAPH-FA42;Lo;0;L;65E2;;;;N;;;;;-FA43;CJK COMPATIBILITY IDEOGRAPH-FA43;Lo;0;L;6691;;;;N;;;;;-FA44;CJK COMPATIBILITY IDEOGRAPH-FA44;Lo;0;L;6885;;;;N;;;;;-FA45;CJK COMPATIBILITY IDEOGRAPH-FA45;Lo;0;L;6D77;;;;N;;;;;-FA46;CJK COMPATIBILITY IDEOGRAPH-FA46;Lo;0;L;6E1A;;;;N;;;;;-FA47;CJK COMPATIBILITY IDEOGRAPH-FA47;Lo;0;L;6F22;;;;N;;;;;-FA48;CJK COMPATIBILITY IDEOGRAPH-FA48;Lo;0;L;716E;;;;N;;;;;-FA49;CJK COMPATIBILITY IDEOGRAPH-FA49;Lo;0;L;722B;;;;N;;;;;-FA4A;CJK COMPATIBILITY IDEOGRAPH-FA4A;Lo;0;L;7422;;;;N;;;;;-FA4B;CJK COMPATIBILITY IDEOGRAPH-FA4B;Lo;0;L;7891;;;;N;;;;;-FA4C;CJK COMPATIBILITY IDEOGRAPH-FA4C;Lo;0;L;793E;;;;N;;;;;-FA4D;CJK COMPATIBILITY IDEOGRAPH-FA4D;Lo;0;L;7949;;;;N;;;;;-FA4E;CJK COMPATIBILITY IDEOGRAPH-FA4E;Lo;0;L;7948;;;;N;;;;;-FA4F;CJK COMPATIBILITY IDEOGRAPH-FA4F;Lo;0;L;7950;;;;N;;;;;-FA50;CJK COMPATIBILITY IDEOGRAPH-FA50;Lo;0;L;7956;;;;N;;;;;-FA51;CJK COMPATIBILITY IDEOGRAPH-FA51;Lo;0;L;795D;;;;N;;;;;-FA52;CJK COMPATIBILITY IDEOGRAPH-FA52;Lo;0;L;798D;;;;N;;;;;-FA53;CJK COMPATIBILITY IDEOGRAPH-FA53;Lo;0;L;798E;;;;N;;;;;-FA54;CJK COMPATIBILITY IDEOGRAPH-FA54;Lo;0;L;7A40;;;;N;;;;;-FA55;CJK COMPATIBILITY IDEOGRAPH-FA55;Lo;0;L;7A81;;;;N;;;;;-FA56;CJK COMPATIBILITY IDEOGRAPH-FA56;Lo;0;L;7BC0;;;;N;;;;;-FA57;CJK COMPATIBILITY IDEOGRAPH-FA57;Lo;0;L;7DF4;;;;N;;;;;-FA58;CJK COMPATIBILITY IDEOGRAPH-FA58;Lo;0;L;7E09;;;;N;;;;;-FA59;CJK COMPATIBILITY IDEOGRAPH-FA59;Lo;0;L;7E41;;;;N;;;;;-FA5A;CJK COMPATIBILITY IDEOGRAPH-FA5A;Lo;0;L;7F72;;;;N;;;;;-FA5B;CJK COMPATIBILITY IDEOGRAPH-FA5B;Lo;0;L;8005;;;;N;;;;;-FA5C;CJK COMPATIBILITY IDEOGRAPH-FA5C;Lo;0;L;81ED;;;;N;;;;;-FA5D;CJK COMPATIBILITY IDEOGRAPH-FA5D;Lo;0;L;8279;;;;N;;;;;-FA5E;CJK COMPATIBILITY IDEOGRAPH-FA5E;Lo;0;L;8279;;;;N;;;;;-FA5F;CJK COMPATIBILITY IDEOGRAPH-FA5F;Lo;0;L;8457;;;;N;;;;;-FA60;CJK COMPATIBILITY IDEOGRAPH-FA60;Lo;0;L;8910;;;;N;;;;;-FA61;CJK COMPATIBILITY IDEOGRAPH-FA61;Lo;0;L;8996;;;;N;;;;;-FA62;CJK COMPATIBILITY IDEOGRAPH-FA62;Lo;0;L;8B01;;;;N;;;;;-FA63;CJK COMPATIBILITY IDEOGRAPH-FA63;Lo;0;L;8B39;;;;N;;;;;-FA64;CJK COMPATIBILITY IDEOGRAPH-FA64;Lo;0;L;8CD3;;;;N;;;;;-FA65;CJK COMPATIBILITY IDEOGRAPH-FA65;Lo;0;L;8D08;;;;N;;;;;-FA66;CJK COMPATIBILITY IDEOGRAPH-FA66;Lo;0;L;8FB6;;;;N;;;;;-FA67;CJK COMPATIBILITY IDEOGRAPH-FA67;Lo;0;L;9038;;;;N;;;;;-FA68;CJK COMPATIBILITY IDEOGRAPH-FA68;Lo;0;L;96E3;;;;N;;;;;-FA69;CJK COMPATIBILITY IDEOGRAPH-FA69;Lo;0;L;97FF;;;;N;;;;;-FA6A;CJK COMPATIBILITY IDEOGRAPH-FA6A;Lo;0;L;983B;;;;N;;;;;-FA70;CJK COMPATIBILITY IDEOGRAPH-FA70;Lo;0;L;4E26;;;;N;;;;;-FA71;CJK COMPATIBILITY IDEOGRAPH-FA71;Lo;0;L;51B5;;;;N;;;;;-FA72;CJK COMPATIBILITY IDEOGRAPH-FA72;Lo;0;L;5168;;;;N;;;;;-FA73;CJK COMPATIBILITY IDEOGRAPH-FA73;Lo;0;L;4F80;;;;N;;;;;-FA74;CJK COMPATIBILITY IDEOGRAPH-FA74;Lo;0;L;5145;;;;N;;;;;-FA75;CJK COMPATIBILITY IDEOGRAPH-FA75;Lo;0;L;5180;;;;N;;;;;-FA76;CJK COMPATIBILITY IDEOGRAPH-FA76;Lo;0;L;52C7;;;;N;;;;;-FA77;CJK COMPATIBILITY IDEOGRAPH-FA77;Lo;0;L;52FA;;;;N;;;;;-FA78;CJK COMPATIBILITY IDEOGRAPH-FA78;Lo;0;L;559D;;;;N;;;;;-FA79;CJK COMPATIBILITY IDEOGRAPH-FA79;Lo;0;L;5555;;;;N;;;;;-FA7A;CJK COMPATIBILITY IDEOGRAPH-FA7A;Lo;0;L;5599;;;;N;;;;;-FA7B;CJK COMPATIBILITY IDEOGRAPH-FA7B;Lo;0;L;55E2;;;;N;;;;;-FA7C;CJK COMPATIBILITY IDEOGRAPH-FA7C;Lo;0;L;585A;;;;N;;;;;-FA7D;CJK COMPATIBILITY IDEOGRAPH-FA7D;Lo;0;L;58B3;;;;N;;;;;-FA7E;CJK COMPATIBILITY IDEOGRAPH-FA7E;Lo;0;L;5944;;;;N;;;;;-FA7F;CJK COMPATIBILITY IDEOGRAPH-FA7F;Lo;0;L;5954;;;;N;;;;;-FA80;CJK COMPATIBILITY IDEOGRAPH-FA80;Lo;0;L;5A62;;;;N;;;;;-FA81;CJK COMPATIBILITY IDEOGRAPH-FA81;Lo;0;L;5B28;;;;N;;;;;-FA82;CJK COMPATIBILITY IDEOGRAPH-FA82;Lo;0;L;5ED2;;;;N;;;;;-FA83;CJK COMPATIBILITY IDEOGRAPH-FA83;Lo;0;L;5ED9;;;;N;;;;;-FA84;CJK COMPATIBILITY IDEOGRAPH-FA84;Lo;0;L;5F69;;;;N;;;;;-FA85;CJK COMPATIBILITY IDEOGRAPH-FA85;Lo;0;L;5FAD;;;;N;;;;;-FA86;CJK COMPATIBILITY IDEOGRAPH-FA86;Lo;0;L;60D8;;;;N;;;;;-FA87;CJK COMPATIBILITY IDEOGRAPH-FA87;Lo;0;L;614E;;;;N;;;;;-FA88;CJK COMPATIBILITY IDEOGRAPH-FA88;Lo;0;L;6108;;;;N;;;;;-FA89;CJK COMPATIBILITY IDEOGRAPH-FA89;Lo;0;L;618E;;;;N;;;;;-FA8A;CJK COMPATIBILITY IDEOGRAPH-FA8A;Lo;0;L;6160;;;;N;;;;;-FA8B;CJK COMPATIBILITY IDEOGRAPH-FA8B;Lo;0;L;61F2;;;;N;;;;;-FA8C;CJK COMPATIBILITY IDEOGRAPH-FA8C;Lo;0;L;6234;;;;N;;;;;-FA8D;CJK COMPATIBILITY IDEOGRAPH-FA8D;Lo;0;L;63C4;;;;N;;;;;-FA8E;CJK COMPATIBILITY IDEOGRAPH-FA8E;Lo;0;L;641C;;;;N;;;;;-FA8F;CJK COMPATIBILITY IDEOGRAPH-FA8F;Lo;0;L;6452;;;;N;;;;;-FA90;CJK COMPATIBILITY IDEOGRAPH-FA90;Lo;0;L;6556;;;;N;;;;;-FA91;CJK COMPATIBILITY IDEOGRAPH-FA91;Lo;0;L;6674;;;;N;;;;;-FA92;CJK COMPATIBILITY IDEOGRAPH-FA92;Lo;0;L;6717;;;;N;;;;;-FA93;CJK COMPATIBILITY IDEOGRAPH-FA93;Lo;0;L;671B;;;;N;;;;;-FA94;CJK COMPATIBILITY IDEOGRAPH-FA94;Lo;0;L;6756;;;;N;;;;;-FA95;CJK COMPATIBILITY IDEOGRAPH-FA95;Lo;0;L;6B79;;;;N;;;;;-FA96;CJK COMPATIBILITY IDEOGRAPH-FA96;Lo;0;L;6BBA;;;;N;;;;;-FA97;CJK COMPATIBILITY IDEOGRAPH-FA97;Lo;0;L;6D41;;;;N;;;;;-FA98;CJK COMPATIBILITY IDEOGRAPH-FA98;Lo;0;L;6EDB;;;;N;;;;;-FA99;CJK COMPATIBILITY IDEOGRAPH-FA99;Lo;0;L;6ECB;;;;N;;;;;-FA9A;CJK COMPATIBILITY IDEOGRAPH-FA9A;Lo;0;L;6F22;;;;N;;;;;-FA9B;CJK COMPATIBILITY IDEOGRAPH-FA9B;Lo;0;L;701E;;;;N;;;;;-FA9C;CJK COMPATIBILITY IDEOGRAPH-FA9C;Lo;0;L;716E;;;;N;;;;;-FA9D;CJK COMPATIBILITY IDEOGRAPH-FA9D;Lo;0;L;77A7;;;;N;;;;;-FA9E;CJK COMPATIBILITY IDEOGRAPH-FA9E;Lo;0;L;7235;;;;N;;;;;-FA9F;CJK COMPATIBILITY IDEOGRAPH-FA9F;Lo;0;L;72AF;;;;N;;;;;-FAA0;CJK COMPATIBILITY IDEOGRAPH-FAA0;Lo;0;L;732A;;;;N;;;;;-FAA1;CJK COMPATIBILITY IDEOGRAPH-FAA1;Lo;0;L;7471;;;;N;;;;;-FAA2;CJK COMPATIBILITY IDEOGRAPH-FAA2;Lo;0;L;7506;;;;N;;;;;-FAA3;CJK COMPATIBILITY IDEOGRAPH-FAA3;Lo;0;L;753B;;;;N;;;;;-FAA4;CJK COMPATIBILITY IDEOGRAPH-FAA4;Lo;0;L;761D;;;;N;;;;;-FAA5;CJK COMPATIBILITY IDEOGRAPH-FAA5;Lo;0;L;761F;;;;N;;;;;-FAA6;CJK COMPATIBILITY IDEOGRAPH-FAA6;Lo;0;L;76CA;;;;N;;;;;-FAA7;CJK COMPATIBILITY IDEOGRAPH-FAA7;Lo;0;L;76DB;;;;N;;;;;-FAA8;CJK COMPATIBILITY IDEOGRAPH-FAA8;Lo;0;L;76F4;;;;N;;;;;-FAA9;CJK COMPATIBILITY IDEOGRAPH-FAA9;Lo;0;L;774A;;;;N;;;;;-FAAA;CJK COMPATIBILITY IDEOGRAPH-FAAA;Lo;0;L;7740;;;;N;;;;;-FAAB;CJK COMPATIBILITY IDEOGRAPH-FAAB;Lo;0;L;78CC;;;;N;;;;;-FAAC;CJK COMPATIBILITY IDEOGRAPH-FAAC;Lo;0;L;7AB1;;;;N;;;;;-FAAD;CJK COMPATIBILITY IDEOGRAPH-FAAD;Lo;0;L;7BC0;;;;N;;;;;-FAAE;CJK COMPATIBILITY IDEOGRAPH-FAAE;Lo;0;L;7C7B;;;;N;;;;;-FAAF;CJK COMPATIBILITY IDEOGRAPH-FAAF;Lo;0;L;7D5B;;;;N;;;;;-FAB0;CJK COMPATIBILITY IDEOGRAPH-FAB0;Lo;0;L;7DF4;;;;N;;;;;-FAB1;CJK COMPATIBILITY IDEOGRAPH-FAB1;Lo;0;L;7F3E;;;;N;;;;;-FAB2;CJK COMPATIBILITY IDEOGRAPH-FAB2;Lo;0;L;8005;;;;N;;;;;-FAB3;CJK COMPATIBILITY IDEOGRAPH-FAB3;Lo;0;L;8352;;;;N;;;;;-FAB4;CJK COMPATIBILITY IDEOGRAPH-FAB4;Lo;0;L;83EF;;;;N;;;;;-FAB5;CJK COMPATIBILITY IDEOGRAPH-FAB5;Lo;0;L;8779;;;;N;;;;;-FAB6;CJK COMPATIBILITY IDEOGRAPH-FAB6;Lo;0;L;8941;;;;N;;;;;-FAB7;CJK COMPATIBILITY IDEOGRAPH-FAB7;Lo;0;L;8986;;;;N;;;;;-FAB8;CJK COMPATIBILITY IDEOGRAPH-FAB8;Lo;0;L;8996;;;;N;;;;;-FAB9;CJK COMPATIBILITY IDEOGRAPH-FAB9;Lo;0;L;8ABF;;;;N;;;;;-FABA;CJK COMPATIBILITY IDEOGRAPH-FABA;Lo;0;L;8AF8;;;;N;;;;;-FABB;CJK COMPATIBILITY IDEOGRAPH-FABB;Lo;0;L;8ACB;;;;N;;;;;-FABC;CJK COMPATIBILITY IDEOGRAPH-FABC;Lo;0;L;8B01;;;;N;;;;;-FABD;CJK COMPATIBILITY IDEOGRAPH-FABD;Lo;0;L;8AFE;;;;N;;;;;-FABE;CJK COMPATIBILITY IDEOGRAPH-FABE;Lo;0;L;8AED;;;;N;;;;;-FABF;CJK COMPATIBILITY IDEOGRAPH-FABF;Lo;0;L;8B39;;;;N;;;;;-FAC0;CJK COMPATIBILITY IDEOGRAPH-FAC0;Lo;0;L;8B8A;;;;N;;;;;-FAC1;CJK COMPATIBILITY IDEOGRAPH-FAC1;Lo;0;L;8D08;;;;N;;;;;-FAC2;CJK COMPATIBILITY IDEOGRAPH-FAC2;Lo;0;L;8F38;;;;N;;;;;-FAC3;CJK COMPATIBILITY IDEOGRAPH-FAC3;Lo;0;L;9072;;;;N;;;;;-FAC4;CJK COMPATIBILITY IDEOGRAPH-FAC4;Lo;0;L;9199;;;;N;;;;;-FAC5;CJK COMPATIBILITY IDEOGRAPH-FAC5;Lo;0;L;9276;;;;N;;;;;-FAC6;CJK COMPATIBILITY IDEOGRAPH-FAC6;Lo;0;L;967C;;;;N;;;;;-FAC7;CJK COMPATIBILITY IDEOGRAPH-FAC7;Lo;0;L;96E3;;;;N;;;;;-FAC8;CJK COMPATIBILITY IDEOGRAPH-FAC8;Lo;0;L;9756;;;;N;;;;;-FAC9;CJK COMPATIBILITY IDEOGRAPH-FAC9;Lo;0;L;97DB;;;;N;;;;;-FACA;CJK COMPATIBILITY IDEOGRAPH-FACA;Lo;0;L;97FF;;;;N;;;;;-FACB;CJK COMPATIBILITY IDEOGRAPH-FACB;Lo;0;L;980B;;;;N;;;;;-FACC;CJK COMPATIBILITY IDEOGRAPH-FACC;Lo;0;L;983B;;;;N;;;;;-FACD;CJK COMPATIBILITY IDEOGRAPH-FACD;Lo;0;L;9B12;;;;N;;;;;-FACE;CJK COMPATIBILITY IDEOGRAPH-FACE;Lo;0;L;9F9C;;;;N;;;;;-FACF;CJK COMPATIBILITY IDEOGRAPH-FACF;Lo;0;L;2284A;;;;N;;;;;-FAD0;CJK COMPATIBILITY IDEOGRAPH-FAD0;Lo;0;L;22844;;;;N;;;;;-FAD1;CJK COMPATIBILITY IDEOGRAPH-FAD1;Lo;0;L;233D5;;;;N;;;;;-FAD2;CJK COMPATIBILITY IDEOGRAPH-FAD2;Lo;0;L;3B9D;;;;N;;;;;-FAD3;CJK COMPATIBILITY IDEOGRAPH-FAD3;Lo;0;L;4018;;;;N;;;;;-FAD4;CJK COMPATIBILITY IDEOGRAPH-FAD4;Lo;0;L;4039;;;;N;;;;;-FAD5;CJK COMPATIBILITY IDEOGRAPH-FAD5;Lo;0;L;25249;;;;N;;;;;-FAD6;CJK COMPATIBILITY IDEOGRAPH-FAD6;Lo;0;L;25CD0;;;;N;;;;;-FAD7;CJK COMPATIBILITY IDEOGRAPH-FAD7;Lo;0;L;27ED3;;;;N;;;;;-FAD8;CJK COMPATIBILITY IDEOGRAPH-FAD8;Lo;0;L;9F43;;;;N;;;;;-FAD9;CJK COMPATIBILITY IDEOGRAPH-FAD9;Lo;0;L;9F8E;;;;N;;;;;-FB00;LATIN SMALL LIGATURE FF;Ll;0;L;<compat> 0066 0066;;;;N;;;;;-FB01;LATIN SMALL LIGATURE FI;Ll;0;L;<compat> 0066 0069;;;;N;;;;;-FB02;LATIN SMALL LIGATURE FL;Ll;0;L;<compat> 0066 006C;;;;N;;;;;-FB03;LATIN SMALL LIGATURE FFI;Ll;0;L;<compat> 0066 0066 0069;;;;N;;;;;-FB04;LATIN SMALL LIGATURE FFL;Ll;0;L;<compat> 0066 0066 006C;;;;N;;;;;-FB05;LATIN SMALL LIGATURE LONG S T;Ll;0;L;<compat> 017F 0074;;;;N;;;;;-FB06;LATIN SMALL LIGATURE ST;Ll;0;L;<compat> 0073 0074;;;;N;;;;;-FB13;ARMENIAN SMALL LIGATURE MEN NOW;Ll;0;L;<compat> 0574 0576;;;;N;;;;;-FB14;ARMENIAN SMALL LIGATURE MEN ECH;Ll;0;L;<compat> 0574 0565;;;;N;;;;;-FB15;ARMENIAN SMALL LIGATURE MEN INI;Ll;0;L;<compat> 0574 056B;;;;N;;;;;-FB16;ARMENIAN SMALL LIGATURE VEW NOW;Ll;0;L;<compat> 057E 0576;;;;N;;;;;-FB17;ARMENIAN SMALL LIGATURE MEN XEH;Ll;0;L;<compat> 0574 056D;;;;N;;;;;-FB1D;HEBREW LETTER YOD WITH HIRIQ;Lo;0;R;05D9 05B4;;;;N;;;;;-FB1E;HEBREW POINT JUDEO-SPANISH VARIKA;Mn;26;NSM;;;;;N;HEBREW POINT VARIKA;;;;-FB1F;HEBREW LIGATURE YIDDISH YOD YOD PATAH;Lo;0;R;05F2 05B7;;;;N;;;;;-FB20;HEBREW LETTER ALTERNATIVE AYIN;Lo;0;R;<font> 05E2;;;;N;;;;;-FB21;HEBREW LETTER WIDE ALEF;Lo;0;R;<font> 05D0;;;;N;;;;;-FB22;HEBREW LETTER WIDE DALET;Lo;0;R;<font> 05D3;;;;N;;;;;-FB23;HEBREW LETTER WIDE HE;Lo;0;R;<font> 05D4;;;;N;;;;;-FB24;HEBREW LETTER WIDE KAF;Lo;0;R;<font> 05DB;;;;N;;;;;-FB25;HEBREW LETTER WIDE LAMED;Lo;0;R;<font> 05DC;;;;N;;;;;-FB26;HEBREW LETTER WIDE FINAL MEM;Lo;0;R;<font> 05DD;;;;N;;;;;-FB27;HEBREW LETTER WIDE RESH;Lo;0;R;<font> 05E8;;;;N;;;;;-FB28;HEBREW LETTER WIDE TAV;Lo;0;R;<font> 05EA;;;;N;;;;;-FB29;HEBREW LETTER ALTERNATIVE PLUS SIGN;Sm;0;ES;<font> 002B;;;;N;;;;;-FB2A;HEBREW LETTER SHIN WITH SHIN DOT;Lo;0;R;05E9 05C1;;;;N;;;;;-FB2B;HEBREW LETTER SHIN WITH SIN DOT;Lo;0;R;05E9 05C2;;;;N;;;;;-FB2C;HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT;Lo;0;R;FB49 05C1;;;;N;;;;;-FB2D;HEBREW LETTER SHIN WITH DAGESH AND SIN DOT;Lo;0;R;FB49 05C2;;;;N;;;;;-FB2E;HEBREW LETTER ALEF WITH PATAH;Lo;0;R;05D0 05B7;;;;N;;;;;-FB2F;HEBREW LETTER ALEF WITH QAMATS;Lo;0;R;05D0 05B8;;;;N;;;;;-FB30;HEBREW LETTER ALEF WITH MAPIQ;Lo;0;R;05D0 05BC;;;;N;;;;;-FB31;HEBREW LETTER BET WITH DAGESH;Lo;0;R;05D1 05BC;;;;N;;;;;-FB32;HEBREW LETTER GIMEL WITH DAGESH;Lo;0;R;05D2 05BC;;;;N;;;;;-FB33;HEBREW LETTER DALET WITH DAGESH;Lo;0;R;05D3 05BC;;;;N;;;;;-FB34;HEBREW LETTER HE WITH MAPIQ;Lo;0;R;05D4 05BC;;;;N;;;;;-FB35;HEBREW LETTER VAV WITH DAGESH;Lo;0;R;05D5 05BC;;;;N;;;;;-FB36;HEBREW LETTER ZAYIN WITH DAGESH;Lo;0;R;05D6 05BC;;;;N;;;;;-FB38;HEBREW LETTER TET WITH DAGESH;Lo;0;R;05D8 05BC;;;;N;;;;;-FB39;HEBREW LETTER YOD WITH DAGESH;Lo;0;R;05D9 05BC;;;;N;;;;;-FB3A;HEBREW LETTER FINAL KAF WITH DAGESH;Lo;0;R;05DA 05BC;;;;N;;;;;-FB3B;HEBREW LETTER KAF WITH DAGESH;Lo;0;R;05DB 05BC;;;;N;;;;;-FB3C;HEBREW LETTER LAMED WITH DAGESH;Lo;0;R;05DC 05BC;;;;N;;;;;-FB3E;HEBREW LETTER MEM WITH DAGESH;Lo;0;R;05DE 05BC;;;;N;;;;;-FB40;HEBREW LETTER NUN WITH DAGESH;Lo;0;R;05E0 05BC;;;;N;;;;;-FB41;HEBREW LETTER SAMEKH WITH DAGESH;Lo;0;R;05E1 05BC;;;;N;;;;;-FB43;HEBREW LETTER FINAL PE WITH DAGESH;Lo;0;R;05E3 05BC;;;;N;;;;;-FB44;HEBREW LETTER PE WITH DAGESH;Lo;0;R;05E4 05BC;;;;N;;;;;-FB46;HEBREW LETTER TSADI WITH DAGESH;Lo;0;R;05E6 05BC;;;;N;;;;;-FB47;HEBREW LETTER QOF WITH DAGESH;Lo;0;R;05E7 05BC;;;;N;;;;;-FB48;HEBREW LETTER RESH WITH DAGESH;Lo;0;R;05E8 05BC;;;;N;;;;;-FB49;HEBREW LETTER SHIN WITH DAGESH;Lo;0;R;05E9 05BC;;;;N;;;;;-FB4A;HEBREW LETTER TAV WITH DAGESH;Lo;0;R;05EA 05BC;;;;N;;;;;-FB4B;HEBREW LETTER VAV WITH HOLAM;Lo;0;R;05D5 05B9;;;;N;;;;;-FB4C;HEBREW LETTER BET WITH RAFE;Lo;0;R;05D1 05BF;;;;N;;;;;-FB4D;HEBREW LETTER KAF WITH RAFE;Lo;0;R;05DB 05BF;;;;N;;;;;-FB4E;HEBREW LETTER PE WITH RAFE;Lo;0;R;05E4 05BF;;;;N;;;;;-FB4F;HEBREW LIGATURE ALEF LAMED;Lo;0;R;<compat> 05D0 05DC;;;;N;;;;;-FB50;ARABIC LETTER ALEF WASLA ISOLATED FORM;Lo;0;AL;<isolated> 0671;;;;N;;;;;-FB51;ARABIC LETTER ALEF WASLA FINAL FORM;Lo;0;AL;<final> 0671;;;;N;;;;;-FB52;ARABIC LETTER BEEH ISOLATED FORM;Lo;0;AL;<isolated> 067B;;;;N;;;;;-FB53;ARABIC LETTER BEEH FINAL FORM;Lo;0;AL;<final> 067B;;;;N;;;;;-FB54;ARABIC LETTER BEEH INITIAL FORM;Lo;0;AL;<initial> 067B;;;;N;;;;;-FB55;ARABIC LETTER BEEH MEDIAL FORM;Lo;0;AL;<medial> 067B;;;;N;;;;;-FB56;ARABIC LETTER PEH ISOLATED FORM;Lo;0;AL;<isolated> 067E;;;;N;;;;;-FB57;ARABIC LETTER PEH FINAL FORM;Lo;0;AL;<final> 067E;;;;N;;;;;-FB58;ARABIC LETTER PEH INITIAL FORM;Lo;0;AL;<initial> 067E;;;;N;;;;;-FB59;ARABIC LETTER PEH MEDIAL FORM;Lo;0;AL;<medial> 067E;;;;N;;;;;-FB5A;ARABIC LETTER BEHEH ISOLATED FORM;Lo;0;AL;<isolated> 0680;;;;N;;;;;-FB5B;ARABIC LETTER BEHEH FINAL FORM;Lo;0;AL;<final> 0680;;;;N;;;;;-FB5C;ARABIC LETTER BEHEH INITIAL FORM;Lo;0;AL;<initial> 0680;;;;N;;;;;-FB5D;ARABIC LETTER BEHEH MEDIAL FORM;Lo;0;AL;<medial> 0680;;;;N;;;;;-FB5E;ARABIC LETTER TTEHEH ISOLATED FORM;Lo;0;AL;<isolated> 067A;;;;N;;;;;-FB5F;ARABIC LETTER TTEHEH FINAL FORM;Lo;0;AL;<final> 067A;;;;N;;;;;-FB60;ARABIC LETTER TTEHEH INITIAL FORM;Lo;0;AL;<initial> 067A;;;;N;;;;;-FB61;ARABIC LETTER TTEHEH MEDIAL FORM;Lo;0;AL;<medial> 067A;;;;N;;;;;-FB62;ARABIC LETTER TEHEH ISOLATED FORM;Lo;0;AL;<isolated> 067F;;;;N;;;;;-FB63;ARABIC LETTER TEHEH FINAL FORM;Lo;0;AL;<final> 067F;;;;N;;;;;-FB64;ARABIC LETTER TEHEH INITIAL FORM;Lo;0;AL;<initial> 067F;;;;N;;;;;-FB65;ARABIC LETTER TEHEH MEDIAL FORM;Lo;0;AL;<medial> 067F;;;;N;;;;;-FB66;ARABIC LETTER TTEH ISOLATED FORM;Lo;0;AL;<isolated> 0679;;;;N;;;;;-FB67;ARABIC LETTER TTEH FINAL FORM;Lo;0;AL;<final> 0679;;;;N;;;;;-FB68;ARABIC LETTER TTEH INITIAL FORM;Lo;0;AL;<initial> 0679;;;;N;;;;;-FB69;ARABIC LETTER TTEH MEDIAL FORM;Lo;0;AL;<medial> 0679;;;;N;;;;;-FB6A;ARABIC LETTER VEH ISOLATED FORM;Lo;0;AL;<isolated> 06A4;;;;N;;;;;-FB6B;ARABIC LETTER VEH FINAL FORM;Lo;0;AL;<final> 06A4;;;;N;;;;;-FB6C;ARABIC LETTER VEH INITIAL FORM;Lo;0;AL;<initial> 06A4;;;;N;;;;;-FB6D;ARABIC LETTER VEH MEDIAL FORM;Lo;0;AL;<medial> 06A4;;;;N;;;;;-FB6E;ARABIC LETTER PEHEH ISOLATED FORM;Lo;0;AL;<isolated> 06A6;;;;N;;;;;-FB6F;ARABIC LETTER PEHEH FINAL FORM;Lo;0;AL;<final> 06A6;;;;N;;;;;-FB70;ARABIC LETTER PEHEH INITIAL FORM;Lo;0;AL;<initial> 06A6;;;;N;;;;;-FB71;ARABIC LETTER PEHEH MEDIAL FORM;Lo;0;AL;<medial> 06A6;;;;N;;;;;-FB72;ARABIC LETTER DYEH ISOLATED FORM;Lo;0;AL;<isolated> 0684;;;;N;;;;;-FB73;ARABIC LETTER DYEH FINAL FORM;Lo;0;AL;<final> 0684;;;;N;;;;;-FB74;ARABIC LETTER DYEH INITIAL FORM;Lo;0;AL;<initial> 0684;;;;N;;;;;-FB75;ARABIC LETTER DYEH MEDIAL FORM;Lo;0;AL;<medial> 0684;;;;N;;;;;-FB76;ARABIC LETTER NYEH ISOLATED FORM;Lo;0;AL;<isolated> 0683;;;;N;;;;;-FB77;ARABIC LETTER NYEH FINAL FORM;Lo;0;AL;<final> 0683;;;;N;;;;;-FB78;ARABIC LETTER NYEH INITIAL FORM;Lo;0;AL;<initial> 0683;;;;N;;;;;-FB79;ARABIC LETTER NYEH MEDIAL FORM;Lo;0;AL;<medial> 0683;;;;N;;;;;-FB7A;ARABIC LETTER TCHEH ISOLATED FORM;Lo;0;AL;<isolated> 0686;;;;N;;;;;-FB7B;ARABIC LETTER TCHEH FINAL FORM;Lo;0;AL;<final> 0686;;;;N;;;;;-FB7C;ARABIC LETTER TCHEH INITIAL FORM;Lo;0;AL;<initial> 0686;;;;N;;;;;-FB7D;ARABIC LETTER TCHEH MEDIAL FORM;Lo;0;AL;<medial> 0686;;;;N;;;;;-FB7E;ARABIC LETTER TCHEHEH ISOLATED FORM;Lo;0;AL;<isolated> 0687;;;;N;;;;;-FB7F;ARABIC LETTER TCHEHEH FINAL FORM;Lo;0;AL;<final> 0687;;;;N;;;;;-FB80;ARABIC LETTER TCHEHEH INITIAL FORM;Lo;0;AL;<initial> 0687;;;;N;;;;;-FB81;ARABIC LETTER TCHEHEH MEDIAL FORM;Lo;0;AL;<medial> 0687;;;;N;;;;;-FB82;ARABIC LETTER DDAHAL ISOLATED FORM;Lo;0;AL;<isolated> 068D;;;;N;;;;;-FB83;ARABIC LETTER DDAHAL FINAL FORM;Lo;0;AL;<final> 068D;;;;N;;;;;-FB84;ARABIC LETTER DAHAL ISOLATED FORM;Lo;0;AL;<isolated> 068C;;;;N;;;;;-FB85;ARABIC LETTER DAHAL FINAL FORM;Lo;0;AL;<final> 068C;;;;N;;;;;-FB86;ARABIC LETTER DUL ISOLATED FORM;Lo;0;AL;<isolated> 068E;;;;N;;;;;-FB87;ARABIC LETTER DUL FINAL FORM;Lo;0;AL;<final> 068E;;;;N;;;;;-FB88;ARABIC LETTER DDAL ISOLATED FORM;Lo;0;AL;<isolated> 0688;;;;N;;;;;-FB89;ARABIC LETTER DDAL FINAL FORM;Lo;0;AL;<final> 0688;;;;N;;;;;-FB8A;ARABIC LETTER JEH ISOLATED FORM;Lo;0;AL;<isolated> 0698;;;;N;;;;;-FB8B;ARABIC LETTER JEH FINAL FORM;Lo;0;AL;<final> 0698;;;;N;;;;;-FB8C;ARABIC LETTER RREH ISOLATED FORM;Lo;0;AL;<isolated> 0691;;;;N;;;;;-FB8D;ARABIC LETTER RREH FINAL FORM;Lo;0;AL;<final> 0691;;;;N;;;;;-FB8E;ARABIC LETTER KEHEH ISOLATED FORM;Lo;0;AL;<isolated> 06A9;;;;N;;;;;-FB8F;ARABIC LETTER KEHEH FINAL FORM;Lo;0;AL;<final> 06A9;;;;N;;;;;-FB90;ARABIC LETTER KEHEH INITIAL FORM;Lo;0;AL;<initial> 06A9;;;;N;;;;;-FB91;ARABIC LETTER KEHEH MEDIAL FORM;Lo;0;AL;<medial> 06A9;;;;N;;;;;-FB92;ARABIC LETTER GAF ISOLATED FORM;Lo;0;AL;<isolated> 06AF;;;;N;;;;;-FB93;ARABIC LETTER GAF FINAL FORM;Lo;0;AL;<final> 06AF;;;;N;;;;;-FB94;ARABIC LETTER GAF INITIAL FORM;Lo;0;AL;<initial> 06AF;;;;N;;;;;-FB95;ARABIC LETTER GAF MEDIAL FORM;Lo;0;AL;<medial> 06AF;;;;N;;;;;-FB96;ARABIC LETTER GUEH ISOLATED FORM;Lo;0;AL;<isolated> 06B3;;;;N;;;;;-FB97;ARABIC LETTER GUEH FINAL FORM;Lo;0;AL;<final> 06B3;;;;N;;;;;-FB98;ARABIC LETTER GUEH INITIAL FORM;Lo;0;AL;<initial> 06B3;;;;N;;;;;-FB99;ARABIC LETTER GUEH MEDIAL FORM;Lo;0;AL;<medial> 06B3;;;;N;;;;;-FB9A;ARABIC LETTER NGOEH ISOLATED FORM;Lo;0;AL;<isolated> 06B1;;;;N;;;;;-FB9B;ARABIC LETTER NGOEH FINAL FORM;Lo;0;AL;<final> 06B1;;;;N;;;;;-FB9C;ARABIC LETTER NGOEH INITIAL FORM;Lo;0;AL;<initial> 06B1;;;;N;;;;;-FB9D;ARABIC LETTER NGOEH MEDIAL FORM;Lo;0;AL;<medial> 06B1;;;;N;;;;;-FB9E;ARABIC LETTER NOON GHUNNA ISOLATED FORM;Lo;0;AL;<isolated> 06BA;;;;N;;;;;-FB9F;ARABIC LETTER NOON GHUNNA FINAL FORM;Lo;0;AL;<final> 06BA;;;;N;;;;;-FBA0;ARABIC LETTER RNOON ISOLATED FORM;Lo;0;AL;<isolated> 06BB;;;;N;;;;;-FBA1;ARABIC LETTER RNOON FINAL FORM;Lo;0;AL;<final> 06BB;;;;N;;;;;-FBA2;ARABIC LETTER RNOON INITIAL FORM;Lo;0;AL;<initial> 06BB;;;;N;;;;;-FBA3;ARABIC LETTER RNOON MEDIAL FORM;Lo;0;AL;<medial> 06BB;;;;N;;;;;-FBA4;ARABIC LETTER HEH WITH YEH ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 06C0;;;;N;;;;;-FBA5;ARABIC LETTER HEH WITH YEH ABOVE FINAL FORM;Lo;0;AL;<final> 06C0;;;;N;;;;;-FBA6;ARABIC LETTER HEH GOAL ISOLATED FORM;Lo;0;AL;<isolated> 06C1;;;;N;;;;;-FBA7;ARABIC LETTER HEH GOAL FINAL FORM;Lo;0;AL;<final> 06C1;;;;N;;;;;-FBA8;ARABIC LETTER HEH GOAL INITIAL FORM;Lo;0;AL;<initial> 06C1;;;;N;;;;;-FBA9;ARABIC LETTER HEH GOAL MEDIAL FORM;Lo;0;AL;<medial> 06C1;;;;N;;;;;-FBAA;ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM;Lo;0;AL;<isolated> 06BE;;;;N;;;;;-FBAB;ARABIC LETTER HEH DOACHASHMEE FINAL FORM;Lo;0;AL;<final> 06BE;;;;N;;;;;-FBAC;ARABIC LETTER HEH DOACHASHMEE INITIAL FORM;Lo;0;AL;<initial> 06BE;;;;N;;;;;-FBAD;ARABIC LETTER HEH DOACHASHMEE MEDIAL FORM;Lo;0;AL;<medial> 06BE;;;;N;;;;;-FBAE;ARABIC LETTER YEH BARREE ISOLATED FORM;Lo;0;AL;<isolated> 06D2;;;;N;;;;;-FBAF;ARABIC LETTER YEH BARREE FINAL FORM;Lo;0;AL;<final> 06D2;;;;N;;;;;-FBB0;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 06D3;;;;N;;;;;-FBB1;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;<final> 06D3;;;;N;;;;;-FBD3;ARABIC LETTER NG ISOLATED FORM;Lo;0;AL;<isolated> 06AD;;;;N;;;;;-FBD4;ARABIC LETTER NG FINAL FORM;Lo;0;AL;<final> 06AD;;;;N;;;;;-FBD5;ARABIC LETTER NG INITIAL FORM;Lo;0;AL;<initial> 06AD;;;;N;;;;;-FBD6;ARABIC LETTER NG MEDIAL FORM;Lo;0;AL;<medial> 06AD;;;;N;;;;;-FBD7;ARABIC LETTER U ISOLATED FORM;Lo;0;AL;<isolated> 06C7;;;;N;;;;;-FBD8;ARABIC LETTER U FINAL FORM;Lo;0;AL;<final> 06C7;;;;N;;;;;-FBD9;ARABIC LETTER OE ISOLATED FORM;Lo;0;AL;<isolated> 06C6;;;;N;;;;;-FBDA;ARABIC LETTER OE FINAL FORM;Lo;0;AL;<final> 06C6;;;;N;;;;;-FBDB;ARABIC LETTER YU ISOLATED FORM;Lo;0;AL;<isolated> 06C8;;;;N;;;;;-FBDC;ARABIC LETTER YU FINAL FORM;Lo;0;AL;<final> 06C8;;;;N;;;;;-FBDD;ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0677;;;;N;;;;;-FBDE;ARABIC LETTER VE ISOLATED FORM;Lo;0;AL;<isolated> 06CB;;;;N;;;;;-FBDF;ARABIC LETTER VE FINAL FORM;Lo;0;AL;<final> 06CB;;;;N;;;;;-FBE0;ARABIC LETTER KIRGHIZ OE ISOLATED FORM;Lo;0;AL;<isolated> 06C5;;;;N;;;;;-FBE1;ARABIC LETTER KIRGHIZ OE FINAL FORM;Lo;0;AL;<final> 06C5;;;;N;;;;;-FBE2;ARABIC LETTER KIRGHIZ YU ISOLATED FORM;Lo;0;AL;<isolated> 06C9;;;;N;;;;;-FBE3;ARABIC LETTER KIRGHIZ YU FINAL FORM;Lo;0;AL;<final> 06C9;;;;N;;;;;-FBE4;ARABIC LETTER E ISOLATED FORM;Lo;0;AL;<isolated> 06D0;;;;N;;;;;-FBE5;ARABIC LETTER E FINAL FORM;Lo;0;AL;<final> 06D0;;;;N;;;;;-FBE6;ARABIC LETTER E INITIAL FORM;Lo;0;AL;<initial> 06D0;;;;N;;;;;-FBE7;ARABIC LETTER E MEDIAL FORM;Lo;0;AL;<medial> 06D0;;;;N;;;;;-FBE8;ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM;Lo;0;AL;<initial> 0649;;;;N;;;;;-FBE9;ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM;Lo;0;AL;<medial> 0649;;;;N;;;;;-FBEA;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0626 0627;;;;N;;;;;-FBEB;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF FINAL FORM;Lo;0;AL;<final> 0626 0627;;;;N;;;;;-FBEC;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE ISOLATED FORM;Lo;0;AL;<isolated> 0626 06D5;;;;N;;;;;-FBED;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE FINAL FORM;Lo;0;AL;<final> 0626 06D5;;;;N;;;;;-FBEE;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW ISOLATED FORM;Lo;0;AL;<isolated> 0626 0648;;;;N;;;;;-FBEF;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW FINAL FORM;Lo;0;AL;<final> 0626 0648;;;;N;;;;;-FBF0;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U ISOLATED FORM;Lo;0;AL;<isolated> 0626 06C7;;;;N;;;;;-FBF1;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U FINAL FORM;Lo;0;AL;<final> 0626 06C7;;;;N;;;;;-FBF2;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE ISOLATED FORM;Lo;0;AL;<isolated> 0626 06C6;;;;N;;;;;-FBF3;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE FINAL FORM;Lo;0;AL;<final> 0626 06C6;;;;N;;;;;-FBF4;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU ISOLATED FORM;Lo;0;AL;<isolated> 0626 06C8;;;;N;;;;;-FBF5;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU FINAL FORM;Lo;0;AL;<final> 0626 06C8;;;;N;;;;;-FBF6;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E ISOLATED FORM;Lo;0;AL;<isolated> 0626 06D0;;;;N;;;;;-FBF7;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E FINAL FORM;Lo;0;AL;<final> 0626 06D0;;;;N;;;;;-FBF8;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E INITIAL FORM;Lo;0;AL;<initial> 0626 06D0;;;;N;;;;;-FBF9;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0626 0649;;;;N;;;;;-FBFA;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0626 0649;;;;N;;;;;-FBFB;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM;Lo;0;AL;<initial> 0626 0649;;;;N;;;;;-FBFC;ARABIC LETTER FARSI YEH ISOLATED FORM;Lo;0;AL;<isolated> 06CC;;;;N;;;;;-FBFD;ARABIC LETTER FARSI YEH FINAL FORM;Lo;0;AL;<final> 06CC;;;;N;;;;;-FBFE;ARABIC LETTER FARSI YEH INITIAL FORM;Lo;0;AL;<initial> 06CC;;;;N;;;;;-FBFF;ARABIC LETTER FARSI YEH MEDIAL FORM;Lo;0;AL;<medial> 06CC;;;;N;;;;;-FC00;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0626 062C;;;;N;;;;;-FC01;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0626 062D;;;;N;;;;;-FC02;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0626 0645;;;;N;;;;;-FC03;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0626 0649;;;;N;;;;;-FC04;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0626 064A;;;;N;;;;;-FC05;ARABIC LIGATURE BEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0628 062C;;;;N;;;;;-FC06;ARABIC LIGATURE BEH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0628 062D;;;;N;;;;;-FC07;ARABIC LIGATURE BEH WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0628 062E;;;;N;;;;;-FC08;ARABIC LIGATURE BEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0628 0645;;;;N;;;;;-FC09;ARABIC LIGATURE BEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0628 0649;;;;N;;;;;-FC0A;ARABIC LIGATURE BEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0628 064A;;;;N;;;;;-FC0B;ARABIC LIGATURE TEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 062A 062C;;;;N;;;;;-FC0C;ARABIC LIGATURE TEH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 062A 062D;;;;N;;;;;-FC0D;ARABIC LIGATURE TEH WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 062A 062E;;;;N;;;;;-FC0E;ARABIC LIGATURE TEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 062A 0645;;;;N;;;;;-FC0F;ARABIC LIGATURE TEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 062A 0649;;;;N;;;;;-FC10;ARABIC LIGATURE TEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 062A 064A;;;;N;;;;;-FC11;ARABIC LIGATURE THEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 062B 062C;;;;N;;;;;-FC12;ARABIC LIGATURE THEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 062B 0645;;;;N;;;;;-FC13;ARABIC LIGATURE THEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 062B 0649;;;;N;;;;;-FC14;ARABIC LIGATURE THEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 062B 064A;;;;N;;;;;-FC15;ARABIC LIGATURE JEEM WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 062C 062D;;;;N;;;;;-FC16;ARABIC LIGATURE JEEM WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 062C 0645;;;;N;;;;;-FC17;ARABIC LIGATURE HAH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 062D 062C;;;;N;;;;;-FC18;ARABIC LIGATURE HAH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 062D 0645;;;;N;;;;;-FC19;ARABIC LIGATURE KHAH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 062E 062C;;;;N;;;;;-FC1A;ARABIC LIGATURE KHAH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 062E 062D;;;;N;;;;;-FC1B;ARABIC LIGATURE KHAH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 062E 0645;;;;N;;;;;-FC1C;ARABIC LIGATURE SEEN WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0633 062C;;;;N;;;;;-FC1D;ARABIC LIGATURE SEEN WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0633 062D;;;;N;;;;;-FC1E;ARABIC LIGATURE SEEN WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0633 062E;;;;N;;;;;-FC1F;ARABIC LIGATURE SEEN WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0633 0645;;;;N;;;;;-FC20;ARABIC LIGATURE SAD WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0635 062D;;;;N;;;;;-FC21;ARABIC LIGATURE SAD WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0635 0645;;;;N;;;;;-FC22;ARABIC LIGATURE DAD WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0636 062C;;;;N;;;;;-FC23;ARABIC LIGATURE DAD WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0636 062D;;;;N;;;;;-FC24;ARABIC LIGATURE DAD WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0636 062E;;;;N;;;;;-FC25;ARABIC LIGATURE DAD WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0636 0645;;;;N;;;;;-FC26;ARABIC LIGATURE TAH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0637 062D;;;;N;;;;;-FC27;ARABIC LIGATURE TAH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0637 0645;;;;N;;;;;-FC28;ARABIC LIGATURE ZAH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0638 0645;;;;N;;;;;-FC29;ARABIC LIGATURE AIN WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0639 062C;;;;N;;;;;-FC2A;ARABIC LIGATURE AIN WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0639 0645;;;;N;;;;;-FC2B;ARABIC LIGATURE GHAIN WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 063A 062C;;;;N;;;;;-FC2C;ARABIC LIGATURE GHAIN WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 063A 0645;;;;N;;;;;-FC2D;ARABIC LIGATURE FEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0641 062C;;;;N;;;;;-FC2E;ARABIC LIGATURE FEH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0641 062D;;;;N;;;;;-FC2F;ARABIC LIGATURE FEH WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0641 062E;;;;N;;;;;-FC30;ARABIC LIGATURE FEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0641 0645;;;;N;;;;;-FC31;ARABIC LIGATURE FEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0641 0649;;;;N;;;;;-FC32;ARABIC LIGATURE FEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0641 064A;;;;N;;;;;-FC33;ARABIC LIGATURE QAF WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0642 062D;;;;N;;;;;-FC34;ARABIC LIGATURE QAF WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0642 0645;;;;N;;;;;-FC35;ARABIC LIGATURE QAF WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0642 0649;;;;N;;;;;-FC36;ARABIC LIGATURE QAF WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0642 064A;;;;N;;;;;-FC37;ARABIC LIGATURE KAF WITH ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0643 0627;;;;N;;;;;-FC38;ARABIC LIGATURE KAF WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0643 062C;;;;N;;;;;-FC39;ARABIC LIGATURE KAF WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0643 062D;;;;N;;;;;-FC3A;ARABIC LIGATURE KAF WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0643 062E;;;;N;;;;;-FC3B;ARABIC LIGATURE KAF WITH LAM ISOLATED FORM;Lo;0;AL;<isolated> 0643 0644;;;;N;;;;;-FC3C;ARABIC LIGATURE KAF WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0643 0645;;;;N;;;;;-FC3D;ARABIC LIGATURE KAF WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0643 0649;;;;N;;;;;-FC3E;ARABIC LIGATURE KAF WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0643 064A;;;;N;;;;;-FC3F;ARABIC LIGATURE LAM WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0644 062C;;;;N;;;;;-FC40;ARABIC LIGATURE LAM WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0644 062D;;;;N;;;;;-FC41;ARABIC LIGATURE LAM WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0644 062E;;;;N;;;;;-FC42;ARABIC LIGATURE LAM WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0644 0645;;;;N;;;;;-FC43;ARABIC LIGATURE LAM WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0644 0649;;;;N;;;;;-FC44;ARABIC LIGATURE LAM WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0644 064A;;;;N;;;;;-FC45;ARABIC LIGATURE MEEM WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0645 062C;;;;N;;;;;-FC46;ARABIC LIGATURE MEEM WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0645 062D;;;;N;;;;;-FC47;ARABIC LIGATURE MEEM WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0645 062E;;;;N;;;;;-FC48;ARABIC LIGATURE MEEM WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0645 0645;;;;N;;;;;-FC49;ARABIC LIGATURE MEEM WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0645 0649;;;;N;;;;;-FC4A;ARABIC LIGATURE MEEM WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0645 064A;;;;N;;;;;-FC4B;ARABIC LIGATURE NOON WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0646 062C;;;;N;;;;;-FC4C;ARABIC LIGATURE NOON WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0646 062D;;;;N;;;;;-FC4D;ARABIC LIGATURE NOON WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0646 062E;;;;N;;;;;-FC4E;ARABIC LIGATURE NOON WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0646 0645;;;;N;;;;;-FC4F;ARABIC LIGATURE NOON WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0646 0649;;;;N;;;;;-FC50;ARABIC LIGATURE NOON WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0646 064A;;;;N;;;;;-FC51;ARABIC LIGATURE HEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0647 062C;;;;N;;;;;-FC52;ARABIC LIGATURE HEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0647 0645;;;;N;;;;;-FC53;ARABIC LIGATURE HEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0647 0649;;;;N;;;;;-FC54;ARABIC LIGATURE HEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0647 064A;;;;N;;;;;-FC55;ARABIC LIGATURE YEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 064A 062C;;;;N;;;;;-FC56;ARABIC LIGATURE YEH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 064A 062D;;;;N;;;;;-FC57;ARABIC LIGATURE YEH WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 064A 062E;;;;N;;;;;-FC58;ARABIC LIGATURE YEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 064A 0645;;;;N;;;;;-FC59;ARABIC LIGATURE YEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 064A 0649;;;;N;;;;;-FC5A;ARABIC LIGATURE YEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 064A 064A;;;;N;;;;;-FC5B;ARABIC LIGATURE THAL WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0630 0670;;;;N;;;;;-FC5C;ARABIC LIGATURE REH WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0631 0670;;;;N;;;;;-FC5D;ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0649 0670;;;;N;;;;;-FC5E;ARABIC LIGATURE SHADDA WITH DAMMATAN ISOLATED FORM;Lo;0;AL;<isolated> 0020 064C 0651;;;;N;;;;;-FC5F;ARABIC LIGATURE SHADDA WITH KASRATAN ISOLATED FORM;Lo;0;AL;<isolated> 0020 064D 0651;;;;N;;;;;-FC60;ARABIC LIGATURE SHADDA WITH FATHA ISOLATED FORM;Lo;0;AL;<isolated> 0020 064E 0651;;;;N;;;;;-FC61;ARABIC LIGATURE SHADDA WITH DAMMA ISOLATED FORM;Lo;0;AL;<isolated> 0020 064F 0651;;;;N;;;;;-FC62;ARABIC LIGATURE SHADDA WITH KASRA ISOLATED FORM;Lo;0;AL;<isolated> 0020 0650 0651;;;;N;;;;;-FC63;ARABIC LIGATURE SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0020 0651 0670;;;;N;;;;;-FC64;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH REH FINAL FORM;Lo;0;AL;<final> 0626 0631;;;;N;;;;;-FC65;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ZAIN FINAL FORM;Lo;0;AL;<final> 0626 0632;;;;N;;;;;-FC66;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM FINAL FORM;Lo;0;AL;<final> 0626 0645;;;;N;;;;;-FC67;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH NOON FINAL FORM;Lo;0;AL;<final> 0626 0646;;;;N;;;;;-FC68;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0626 0649;;;;N;;;;;-FC69;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH FINAL FORM;Lo;0;AL;<final> 0626 064A;;;;N;;;;;-FC6A;ARABIC LIGATURE BEH WITH REH FINAL FORM;Lo;0;AL;<final> 0628 0631;;;;N;;;;;-FC6B;ARABIC LIGATURE BEH WITH ZAIN FINAL FORM;Lo;0;AL;<final> 0628 0632;;;;N;;;;;-FC6C;ARABIC LIGATURE BEH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0628 0645;;;;N;;;;;-FC6D;ARABIC LIGATURE BEH WITH NOON FINAL FORM;Lo;0;AL;<final> 0628 0646;;;;N;;;;;-FC6E;ARABIC LIGATURE BEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0628 0649;;;;N;;;;;-FC6F;ARABIC LIGATURE BEH WITH YEH FINAL FORM;Lo;0;AL;<final> 0628 064A;;;;N;;;;;-FC70;ARABIC LIGATURE TEH WITH REH FINAL FORM;Lo;0;AL;<final> 062A 0631;;;;N;;;;;-FC71;ARABIC LIGATURE TEH WITH ZAIN FINAL FORM;Lo;0;AL;<final> 062A 0632;;;;N;;;;;-FC72;ARABIC LIGATURE TEH WITH MEEM FINAL FORM;Lo;0;AL;<final> 062A 0645;;;;N;;;;;-FC73;ARABIC LIGATURE TEH WITH NOON FINAL FORM;Lo;0;AL;<final> 062A 0646;;;;N;;;;;-FC74;ARABIC LIGATURE TEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062A 0649;;;;N;;;;;-FC75;ARABIC LIGATURE TEH WITH YEH FINAL FORM;Lo;0;AL;<final> 062A 064A;;;;N;;;;;-FC76;ARABIC LIGATURE THEH WITH REH FINAL FORM;Lo;0;AL;<final> 062B 0631;;;;N;;;;;-FC77;ARABIC LIGATURE THEH WITH ZAIN FINAL FORM;Lo;0;AL;<final> 062B 0632;;;;N;;;;;-FC78;ARABIC LIGATURE THEH WITH MEEM FINAL FORM;Lo;0;AL;<final> 062B 0645;;;;N;;;;;-FC79;ARABIC LIGATURE THEH WITH NOON FINAL FORM;Lo;0;AL;<final> 062B 0646;;;;N;;;;;-FC7A;ARABIC LIGATURE THEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062B 0649;;;;N;;;;;-FC7B;ARABIC LIGATURE THEH WITH YEH FINAL FORM;Lo;0;AL;<final> 062B 064A;;;;N;;;;;-FC7C;ARABIC LIGATURE FEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0641 0649;;;;N;;;;;-FC7D;ARABIC LIGATURE FEH WITH YEH FINAL FORM;Lo;0;AL;<final> 0641 064A;;;;N;;;;;-FC7E;ARABIC LIGATURE QAF WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0642 0649;;;;N;;;;;-FC7F;ARABIC LIGATURE QAF WITH YEH FINAL FORM;Lo;0;AL;<final> 0642 064A;;;;N;;;;;-FC80;ARABIC LIGATURE KAF WITH ALEF FINAL FORM;Lo;0;AL;<final> 0643 0627;;;;N;;;;;-FC81;ARABIC LIGATURE KAF WITH LAM FINAL FORM;Lo;0;AL;<final> 0643 0644;;;;N;;;;;-FC82;ARABIC LIGATURE KAF WITH MEEM FINAL FORM;Lo;0;AL;<final> 0643 0645;;;;N;;;;;-FC83;ARABIC LIGATURE KAF WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0643 0649;;;;N;;;;;-FC84;ARABIC LIGATURE KAF WITH YEH FINAL FORM;Lo;0;AL;<final> 0643 064A;;;;N;;;;;-FC85;ARABIC LIGATURE LAM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0644 0645;;;;N;;;;;-FC86;ARABIC LIGATURE LAM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0644 0649;;;;N;;;;;-FC87;ARABIC LIGATURE LAM WITH YEH FINAL FORM;Lo;0;AL;<final> 0644 064A;;;;N;;;;;-FC88;ARABIC LIGATURE MEEM WITH ALEF FINAL FORM;Lo;0;AL;<final> 0645 0627;;;;N;;;;;-FC89;ARABIC LIGATURE MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0645 0645;;;;N;;;;;-FC8A;ARABIC LIGATURE NOON WITH REH FINAL FORM;Lo;0;AL;<final> 0646 0631;;;;N;;;;;-FC8B;ARABIC LIGATURE NOON WITH ZAIN FINAL FORM;Lo;0;AL;<final> 0646 0632;;;;N;;;;;-FC8C;ARABIC LIGATURE NOON WITH MEEM FINAL FORM;Lo;0;AL;<final> 0646 0645;;;;N;;;;;-FC8D;ARABIC LIGATURE NOON WITH NOON FINAL FORM;Lo;0;AL;<final> 0646 0646;;;;N;;;;;-FC8E;ARABIC LIGATURE NOON WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0646 0649;;;;N;;;;;-FC8F;ARABIC LIGATURE NOON WITH YEH FINAL FORM;Lo;0;AL;<final> 0646 064A;;;;N;;;;;-FC90;ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM;Lo;0;AL;<final> 0649 0670;;;;N;;;;;-FC91;ARABIC LIGATURE YEH WITH REH FINAL FORM;Lo;0;AL;<final> 064A 0631;;;;N;;;;;-FC92;ARABIC LIGATURE YEH WITH ZAIN FINAL FORM;Lo;0;AL;<final> 064A 0632;;;;N;;;;;-FC93;ARABIC LIGATURE YEH WITH MEEM FINAL FORM;Lo;0;AL;<final> 064A 0645;;;;N;;;;;-FC94;ARABIC LIGATURE YEH WITH NOON FINAL FORM;Lo;0;AL;<final> 064A 0646;;;;N;;;;;-FC95;ARABIC LIGATURE YEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 064A 0649;;;;N;;;;;-FC96;ARABIC LIGATURE YEH WITH YEH FINAL FORM;Lo;0;AL;<final> 064A 064A;;;;N;;;;;-FC97;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0626 062C;;;;N;;;;;-FC98;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0626 062D;;;;N;;;;;-FC99;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0626 062E;;;;N;;;;;-FC9A;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0626 0645;;;;N;;;;;-FC9B;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0626 0647;;;;N;;;;;-FC9C;ARABIC LIGATURE BEH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0628 062C;;;;N;;;;;-FC9D;ARABIC LIGATURE BEH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0628 062D;;;;N;;;;;-FC9E;ARABIC LIGATURE BEH WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0628 062E;;;;N;;;;;-FC9F;ARABIC LIGATURE BEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0628 0645;;;;N;;;;;-FCA0;ARABIC LIGATURE BEH WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0628 0647;;;;N;;;;;-FCA1;ARABIC LIGATURE TEH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 062A 062C;;;;N;;;;;-FCA2;ARABIC LIGATURE TEH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 062A 062D;;;;N;;;;;-FCA3;ARABIC LIGATURE TEH WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 062A 062E;;;;N;;;;;-FCA4;ARABIC LIGATURE TEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062A 0645;;;;N;;;;;-FCA5;ARABIC LIGATURE TEH WITH HEH INITIAL FORM;Lo;0;AL;<initial> 062A 0647;;;;N;;;;;-FCA6;ARABIC LIGATURE THEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062B 0645;;;;N;;;;;-FCA7;ARABIC LIGATURE JEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 062C 062D;;;;N;;;;;-FCA8;ARABIC LIGATURE JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062C 0645;;;;N;;;;;-FCA9;ARABIC LIGATURE HAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 062D 062C;;;;N;;;;;-FCAA;ARABIC LIGATURE HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062D 0645;;;;N;;;;;-FCAB;ARABIC LIGATURE KHAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 062E 062C;;;;N;;;;;-FCAC;ARABIC LIGATURE KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062E 0645;;;;N;;;;;-FCAD;ARABIC LIGATURE SEEN WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0633 062C;;;;N;;;;;-FCAE;ARABIC LIGATURE SEEN WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0633 062D;;;;N;;;;;-FCAF;ARABIC LIGATURE SEEN WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0633 062E;;;;N;;;;;-FCB0;ARABIC LIGATURE SEEN WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0633 0645;;;;N;;;;;-FCB1;ARABIC LIGATURE SAD WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0635 062D;;;;N;;;;;-FCB2;ARABIC LIGATURE SAD WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0635 062E;;;;N;;;;;-FCB3;ARABIC LIGATURE SAD WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0635 0645;;;;N;;;;;-FCB4;ARABIC LIGATURE DAD WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0636 062C;;;;N;;;;;-FCB5;ARABIC LIGATURE DAD WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0636 062D;;;;N;;;;;-FCB6;ARABIC LIGATURE DAD WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0636 062E;;;;N;;;;;-FCB7;ARABIC LIGATURE DAD WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0636 0645;;;;N;;;;;-FCB8;ARABIC LIGATURE TAH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0637 062D;;;;N;;;;;-FCB9;ARABIC LIGATURE ZAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0638 0645;;;;N;;;;;-FCBA;ARABIC LIGATURE AIN WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0639 062C;;;;N;;;;;-FCBB;ARABIC LIGATURE AIN WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0639 0645;;;;N;;;;;-FCBC;ARABIC LIGATURE GHAIN WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 063A 062C;;;;N;;;;;-FCBD;ARABIC LIGATURE GHAIN WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 063A 0645;;;;N;;;;;-FCBE;ARABIC LIGATURE FEH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0641 062C;;;;N;;;;;-FCBF;ARABIC LIGATURE FEH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0641 062D;;;;N;;;;;-FCC0;ARABIC LIGATURE FEH WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0641 062E;;;;N;;;;;-FCC1;ARABIC LIGATURE FEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0641 0645;;;;N;;;;;-FCC2;ARABIC LIGATURE QAF WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0642 062D;;;;N;;;;;-FCC3;ARABIC LIGATURE QAF WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0642 0645;;;;N;;;;;-FCC4;ARABIC LIGATURE KAF WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0643 062C;;;;N;;;;;-FCC5;ARABIC LIGATURE KAF WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0643 062D;;;;N;;;;;-FCC6;ARABIC LIGATURE KAF WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0643 062E;;;;N;;;;;-FCC7;ARABIC LIGATURE KAF WITH LAM INITIAL FORM;Lo;0;AL;<initial> 0643 0644;;;;N;;;;;-FCC8;ARABIC LIGATURE KAF WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0643 0645;;;;N;;;;;-FCC9;ARABIC LIGATURE LAM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0644 062C;;;;N;;;;;-FCCA;ARABIC LIGATURE LAM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0644 062D;;;;N;;;;;-FCCB;ARABIC LIGATURE LAM WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0644 062E;;;;N;;;;;-FCCC;ARABIC LIGATURE LAM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0644 0645;;;;N;;;;;-FCCD;ARABIC LIGATURE LAM WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0644 0647;;;;N;;;;;-FCCE;ARABIC LIGATURE MEEM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062C;;;;N;;;;;-FCCF;ARABIC LIGATURE MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0645 062D;;;;N;;;;;-FCD0;ARABIC LIGATURE MEEM WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0645 062E;;;;N;;;;;-FCD1;ARABIC LIGATURE MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0645 0645;;;;N;;;;;-FCD2;ARABIC LIGATURE NOON WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0646 062C;;;;N;;;;;-FCD3;ARABIC LIGATURE NOON WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0646 062D;;;;N;;;;;-FCD4;ARABIC LIGATURE NOON WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0646 062E;;;;N;;;;;-FCD5;ARABIC LIGATURE NOON WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0646 0645;;;;N;;;;;-FCD6;ARABIC LIGATURE NOON WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0646 0647;;;;N;;;;;-FCD7;ARABIC LIGATURE HEH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0647 062C;;;;N;;;;;-FCD8;ARABIC LIGATURE HEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0647 0645;;;;N;;;;;-FCD9;ARABIC LIGATURE HEH WITH SUPERSCRIPT ALEF INITIAL FORM;Lo;0;AL;<initial> 0647 0670;;;;N;;;;;-FCDA;ARABIC LIGATURE YEH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 064A 062C;;;;N;;;;;-FCDB;ARABIC LIGATURE YEH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 064A 062D;;;;N;;;;;-FCDC;ARABIC LIGATURE YEH WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 064A 062E;;;;N;;;;;-FCDD;ARABIC LIGATURE YEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 064A 0645;;;;N;;;;;-FCDE;ARABIC LIGATURE YEH WITH HEH INITIAL FORM;Lo;0;AL;<initial> 064A 0647;;;;N;;;;;-FCDF;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0626 0645;;;;N;;;;;-FCE0;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 0626 0647;;;;N;;;;;-FCE1;ARABIC LIGATURE BEH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0628 0645;;;;N;;;;;-FCE2;ARABIC LIGATURE BEH WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 0628 0647;;;;N;;;;;-FCE3;ARABIC LIGATURE TEH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 062A 0645;;;;N;;;;;-FCE4;ARABIC LIGATURE TEH WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 062A 0647;;;;N;;;;;-FCE5;ARABIC LIGATURE THEH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 062B 0645;;;;N;;;;;-FCE6;ARABIC LIGATURE THEH WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 062B 0647;;;;N;;;;;-FCE7;ARABIC LIGATURE SEEN WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0633 0645;;;;N;;;;;-FCE8;ARABIC LIGATURE SEEN WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 0633 0647;;;;N;;;;;-FCE9;ARABIC LIGATURE SHEEN WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0634 0645;;;;N;;;;;-FCEA;ARABIC LIGATURE SHEEN WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 0634 0647;;;;N;;;;;-FCEB;ARABIC LIGATURE KAF WITH LAM MEDIAL FORM;Lo;0;AL;<medial> 0643 0644;;;;N;;;;;-FCEC;ARABIC LIGATURE KAF WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0643 0645;;;;N;;;;;-FCED;ARABIC LIGATURE LAM WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0644 0645;;;;N;;;;;-FCEE;ARABIC LIGATURE NOON WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0646 0645;;;;N;;;;;-FCEF;ARABIC LIGATURE NOON WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 0646 0647;;;;N;;;;;-FCF0;ARABIC LIGATURE YEH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 064A 0645;;;;N;;;;;-FCF1;ARABIC LIGATURE YEH WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 064A 0647;;;;N;;;;;-FCF2;ARABIC LIGATURE SHADDA WITH FATHA MEDIAL FORM;Lo;0;AL;<medial> 0640 064E 0651;;;;N;;;;;-FCF3;ARABIC LIGATURE SHADDA WITH DAMMA MEDIAL FORM;Lo;0;AL;<medial> 0640 064F 0651;;;;N;;;;;-FCF4;ARABIC LIGATURE SHADDA WITH KASRA MEDIAL FORM;Lo;0;AL;<medial> 0640 0650 0651;;;;N;;;;;-FCF5;ARABIC LIGATURE TAH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0637 0649;;;;N;;;;;-FCF6;ARABIC LIGATURE TAH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0637 064A;;;;N;;;;;-FCF7;ARABIC LIGATURE AIN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0639 0649;;;;N;;;;;-FCF8;ARABIC LIGATURE AIN WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0639 064A;;;;N;;;;;-FCF9;ARABIC LIGATURE GHAIN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 063A 0649;;;;N;;;;;-FCFA;ARABIC LIGATURE GHAIN WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 063A 064A;;;;N;;;;;-FCFB;ARABIC LIGATURE SEEN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0633 0649;;;;N;;;;;-FCFC;ARABIC LIGATURE SEEN WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0633 064A;;;;N;;;;;-FCFD;ARABIC LIGATURE SHEEN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0634 0649;;;;N;;;;;-FCFE;ARABIC LIGATURE SHEEN WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0634 064A;;;;N;;;;;-FCFF;ARABIC LIGATURE HAH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 062D 0649;;;;N;;;;;-FD00;ARABIC LIGATURE HAH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 062D 064A;;;;N;;;;;-FD01;ARABIC LIGATURE JEEM WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 062C 0649;;;;N;;;;;-FD02;ARABIC LIGATURE JEEM WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 062C 064A;;;;N;;;;;-FD03;ARABIC LIGATURE KHAH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 062E 0649;;;;N;;;;;-FD04;ARABIC LIGATURE KHAH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 062E 064A;;;;N;;;;;-FD05;ARABIC LIGATURE SAD WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0635 0649;;;;N;;;;;-FD06;ARABIC LIGATURE SAD WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0635 064A;;;;N;;;;;-FD07;ARABIC LIGATURE DAD WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0636 0649;;;;N;;;;;-FD08;ARABIC LIGATURE DAD WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0636 064A;;;;N;;;;;-FD09;ARABIC LIGATURE SHEEN WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0634 062C;;;;N;;;;;-FD0A;ARABIC LIGATURE SHEEN WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0634 062D;;;;N;;;;;-FD0B;ARABIC LIGATURE SHEEN WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0634 062E;;;;N;;;;;-FD0C;ARABIC LIGATURE SHEEN WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0634 0645;;;;N;;;;;-FD0D;ARABIC LIGATURE SHEEN WITH REH ISOLATED FORM;Lo;0;AL;<isolated> 0634 0631;;;;N;;;;;-FD0E;ARABIC LIGATURE SEEN WITH REH ISOLATED FORM;Lo;0;AL;<isolated> 0633 0631;;;;N;;;;;-FD0F;ARABIC LIGATURE SAD WITH REH ISOLATED FORM;Lo;0;AL;<isolated> 0635 0631;;;;N;;;;;-FD10;ARABIC LIGATURE DAD WITH REH ISOLATED FORM;Lo;0;AL;<isolated> 0636 0631;;;;N;;;;;-FD11;ARABIC LIGATURE TAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0637 0649;;;;N;;;;;-FD12;ARABIC LIGATURE TAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0637 064A;;;;N;;;;;-FD13;ARABIC LIGATURE AIN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0639 0649;;;;N;;;;;-FD14;ARABIC LIGATURE AIN WITH YEH FINAL FORM;Lo;0;AL;<final> 0639 064A;;;;N;;;;;-FD15;ARABIC LIGATURE GHAIN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 063A 0649;;;;N;;;;;-FD16;ARABIC LIGATURE GHAIN WITH YEH FINAL FORM;Lo;0;AL;<final> 063A 064A;;;;N;;;;;-FD17;ARABIC LIGATURE SEEN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0633 0649;;;;N;;;;;-FD18;ARABIC LIGATURE SEEN WITH YEH FINAL FORM;Lo;0;AL;<final> 0633 064A;;;;N;;;;;-FD19;ARABIC LIGATURE SHEEN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0634 0649;;;;N;;;;;-FD1A;ARABIC LIGATURE SHEEN WITH YEH FINAL FORM;Lo;0;AL;<final> 0634 064A;;;;N;;;;;-FD1B;ARABIC LIGATURE HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062D 0649;;;;N;;;;;-FD1C;ARABIC LIGATURE HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 062D 064A;;;;N;;;;;-FD1D;ARABIC LIGATURE JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062C 0649;;;;N;;;;;-FD1E;ARABIC LIGATURE JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062C 064A;;;;N;;;;;-FD1F;ARABIC LIGATURE KHAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062E 0649;;;;N;;;;;-FD20;ARABIC LIGATURE KHAH WITH YEH FINAL FORM;Lo;0;AL;<final> 062E 064A;;;;N;;;;;-FD21;ARABIC LIGATURE SAD WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0635 0649;;;;N;;;;;-FD22;ARABIC LIGATURE SAD WITH YEH FINAL FORM;Lo;0;AL;<final> 0635 064A;;;;N;;;;;-FD23;ARABIC LIGATURE DAD WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0636 0649;;;;N;;;;;-FD24;ARABIC LIGATURE DAD WITH YEH FINAL FORM;Lo;0;AL;<final> 0636 064A;;;;N;;;;;-FD25;ARABIC LIGATURE SHEEN WITH JEEM FINAL FORM;Lo;0;AL;<final> 0634 062C;;;;N;;;;;-FD26;ARABIC LIGATURE SHEEN WITH HAH FINAL FORM;Lo;0;AL;<final> 0634 062D;;;;N;;;;;-FD27;ARABIC LIGATURE SHEEN WITH KHAH FINAL FORM;Lo;0;AL;<final> 0634 062E;;;;N;;;;;-FD28;ARABIC LIGATURE SHEEN WITH MEEM FINAL FORM;Lo;0;AL;<final> 0634 0645;;;;N;;;;;-FD29;ARABIC LIGATURE SHEEN WITH REH FINAL FORM;Lo;0;AL;<final> 0634 0631;;;;N;;;;;-FD2A;ARABIC LIGATURE SEEN WITH REH FINAL FORM;Lo;0;AL;<final> 0633 0631;;;;N;;;;;-FD2B;ARABIC LIGATURE SAD WITH REH FINAL FORM;Lo;0;AL;<final> 0635 0631;;;;N;;;;;-FD2C;ARABIC LIGATURE DAD WITH REH FINAL FORM;Lo;0;AL;<final> 0636 0631;;;;N;;;;;-FD2D;ARABIC LIGATURE SHEEN WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0634 062C;;;;N;;;;;-FD2E;ARABIC LIGATURE SHEEN WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0634 062D;;;;N;;;;;-FD2F;ARABIC LIGATURE SHEEN WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0634 062E;;;;N;;;;;-FD30;ARABIC LIGATURE SHEEN WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0634 0645;;;;N;;;;;-FD31;ARABIC LIGATURE SEEN WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0633 0647;;;;N;;;;;-FD32;ARABIC LIGATURE SHEEN WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0634 0647;;;;N;;;;;-FD33;ARABIC LIGATURE TAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0637 0645;;;;N;;;;;-FD34;ARABIC LIGATURE SEEN WITH JEEM MEDIAL FORM;Lo;0;AL;<medial> 0633 062C;;;;N;;;;;-FD35;ARABIC LIGATURE SEEN WITH HAH MEDIAL FORM;Lo;0;AL;<medial> 0633 062D;;;;N;;;;;-FD36;ARABIC LIGATURE SEEN WITH KHAH MEDIAL FORM;Lo;0;AL;<medial> 0633 062E;;;;N;;;;;-FD37;ARABIC LIGATURE SHEEN WITH JEEM MEDIAL FORM;Lo;0;AL;<medial> 0634 062C;;;;N;;;;;-FD38;ARABIC LIGATURE SHEEN WITH HAH MEDIAL FORM;Lo;0;AL;<medial> 0634 062D;;;;N;;;;;-FD39;ARABIC LIGATURE SHEEN WITH KHAH MEDIAL FORM;Lo;0;AL;<medial> 0634 062E;;;;N;;;;;-FD3A;ARABIC LIGATURE TAH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0637 0645;;;;N;;;;;-FD3B;ARABIC LIGATURE ZAH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0638 0645;;;;N;;;;;-FD3C;ARABIC LIGATURE ALEF WITH FATHATAN FINAL FORM;Lo;0;AL;<final> 0627 064B;;;;N;;;;;-FD3D;ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM;Lo;0;AL;<isolated> 0627 064B;;;;N;;;;;-FD3E;ORNATE LEFT PARENTHESIS;Ps;0;ON;;;;;N;;;;;-FD3F;ORNATE RIGHT PARENTHESIS;Pe;0;ON;;;;;N;;;;;-FD50;ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062A 062C 0645;;;;N;;;;;-FD51;ARABIC LIGATURE TEH WITH HAH WITH JEEM FINAL FORM;Lo;0;AL;<final> 062A 062D 062C;;;;N;;;;;-FD52;ARABIC LIGATURE TEH WITH HAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 062A 062D 062C;;;;N;;;;;-FD53;ARABIC LIGATURE TEH WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062A 062D 0645;;;;N;;;;;-FD54;ARABIC LIGATURE TEH WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062A 062E 0645;;;;N;;;;;-FD55;ARABIC LIGATURE TEH WITH MEEM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 062A 0645 062C;;;;N;;;;;-FD56;ARABIC LIGATURE TEH WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 062A 0645 062D;;;;N;;;;;-FD57;ARABIC LIGATURE TEH WITH MEEM WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 062A 0645 062E;;;;N;;;;;-FD58;ARABIC LIGATURE JEEM WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 062C 0645 062D;;;;N;;;;;-FD59;ARABIC LIGATURE JEEM WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 062C 0645 062D;;;;N;;;;;-FD5A;ARABIC LIGATURE HAH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062D 0645 064A;;;;N;;;;;-FD5B;ARABIC LIGATURE HAH WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062D 0645 0649;;;;N;;;;;-FD5C;ARABIC LIGATURE SEEN WITH HAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0633 062D 062C;;;;N;;;;;-FD5D;ARABIC LIGATURE SEEN WITH JEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0633 062C 062D;;;;N;;;;;-FD5E;ARABIC LIGATURE SEEN WITH JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0633 062C 0649;;;;N;;;;;-FD5F;ARABIC LIGATURE SEEN WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 0633 0645 062D;;;;N;;;;;-FD60;ARABIC LIGATURE SEEN WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0633 0645 062D;;;;N;;;;;-FD61;ARABIC LIGATURE SEEN WITH MEEM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0633 0645 062C;;;;N;;;;;-FD62;ARABIC LIGATURE SEEN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0633 0645 0645;;;;N;;;;;-FD63;ARABIC LIGATURE SEEN WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0633 0645 0645;;;;N;;;;;-FD64;ARABIC LIGATURE SAD WITH HAH WITH HAH FINAL FORM;Lo;0;AL;<final> 0635 062D 062D;;;;N;;;;;-FD65;ARABIC LIGATURE SAD WITH HAH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0635 062D 062D;;;;N;;;;;-FD66;ARABIC LIGATURE SAD WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0635 0645 0645;;;;N;;;;;-FD67;ARABIC LIGATURE SHEEN WITH HAH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0634 062D 0645;;;;N;;;;;-FD68;ARABIC LIGATURE SHEEN WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0634 062D 0645;;;;N;;;;;-FD69;ARABIC LIGATURE SHEEN WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0634 062C 064A;;;;N;;;;;-FD6A;ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH FINAL FORM;Lo;0;AL;<final> 0634 0645 062E;;;;N;;;;;-FD6B;ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0634 0645 062E;;;;N;;;;;-FD6C;ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0634 0645 0645;;;;N;;;;;-FD6D;ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0634 0645 0645;;;;N;;;;;-FD6E;ARABIC LIGATURE DAD WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0636 062D 0649;;;;N;;;;;-FD6F;ARABIC LIGATURE DAD WITH KHAH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0636 062E 0645;;;;N;;;;;-FD70;ARABIC LIGATURE DAD WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0636 062E 0645;;;;N;;;;;-FD71;ARABIC LIGATURE TAH WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 0637 0645 062D;;;;N;;;;;-FD72;ARABIC LIGATURE TAH WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0637 0645 062D;;;;N;;;;;-FD73;ARABIC LIGATURE TAH WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0637 0645 0645;;;;N;;;;;-FD74;ARABIC LIGATURE TAH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0637 0645 064A;;;;N;;;;;-FD75;ARABIC LIGATURE AIN WITH JEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0639 062C 0645;;;;N;;;;;-FD76;ARABIC LIGATURE AIN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0639 0645 0645;;;;N;;;;;-FD77;ARABIC LIGATURE AIN WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0639 0645 0645;;;;N;;;;;-FD78;ARABIC LIGATURE AIN WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0639 0645 0649;;;;N;;;;;-FD79;ARABIC LIGATURE GHAIN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 063A 0645 0645;;;;N;;;;;-FD7A;ARABIC LIGATURE GHAIN WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 063A 0645 064A;;;;N;;;;;-FD7B;ARABIC LIGATURE GHAIN WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 063A 0645 0649;;;;N;;;;;-FD7C;ARABIC LIGATURE FEH WITH KHAH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0641 062E 0645;;;;N;;;;;-FD7D;ARABIC LIGATURE FEH WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0641 062E 0645;;;;N;;;;;-FD7E;ARABIC LIGATURE QAF WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 0642 0645 062D;;;;N;;;;;-FD7F;ARABIC LIGATURE QAF WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0642 0645 0645;;;;N;;;;;-FD80;ARABIC LIGATURE LAM WITH HAH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0644 062D 0645;;;;N;;;;;-FD81;ARABIC LIGATURE LAM WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0644 062D 064A;;;;N;;;;;-FD82;ARABIC LIGATURE LAM WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0644 062D 0649;;;;N;;;;;-FD83;ARABIC LIGATURE LAM WITH JEEM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0644 062C 062C;;;;N;;;;;-FD84;ARABIC LIGATURE LAM WITH JEEM WITH JEEM FINAL FORM;Lo;0;AL;<final> 0644 062C 062C;;;;N;;;;;-FD85;ARABIC LIGATURE LAM WITH KHAH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0644 062E 0645;;;;N;;;;;-FD86;ARABIC LIGATURE LAM WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0644 062E 0645;;;;N;;;;;-FD87;ARABIC LIGATURE LAM WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 0644 0645 062D;;;;N;;;;;-FD88;ARABIC LIGATURE LAM WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0644 0645 062D;;;;N;;;;;-FD89;ARABIC LIGATURE MEEM WITH HAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062D 062C;;;;N;;;;;-FD8A;ARABIC LIGATURE MEEM WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062D 0645;;;;N;;;;;-FD8B;ARABIC LIGATURE MEEM WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0645 062D 064A;;;;N;;;;;-FD8C;ARABIC LIGATURE MEEM WITH JEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0645 062C 062D;;;;N;;;;;-FD8D;ARABIC LIGATURE MEEM WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062C 0645;;;;N;;;;;-FD8E;ARABIC LIGATURE MEEM WITH KHAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062E 062C;;;;N;;;;;-FD8F;ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062E 0645;;;;N;;;;;-FD92;ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0645 062C 062E;;;;N;;;;;-FD93;ARABIC LIGATURE HEH WITH MEEM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0647 0645 062C;;;;N;;;;;-FD94;ARABIC LIGATURE HEH WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0647 0645 0645;;;;N;;;;;-FD95;ARABIC LIGATURE NOON WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0646 062D 0645;;;;N;;;;;-FD96;ARABIC LIGATURE NOON WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0646 062D 0649;;;;N;;;;;-FD97;ARABIC LIGATURE NOON WITH JEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0646 062C 0645;;;;N;;;;;-FD98;ARABIC LIGATURE NOON WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0646 062C 0645;;;;N;;;;;-FD99;ARABIC LIGATURE NOON WITH JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0646 062C 0649;;;;N;;;;;-FD9A;ARABIC LIGATURE NOON WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0646 0645 064A;;;;N;;;;;-FD9B;ARABIC LIGATURE NOON WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0646 0645 0649;;;;N;;;;;-FD9C;ARABIC LIGATURE YEH WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 064A 0645 0645;;;;N;;;;;-FD9D;ARABIC LIGATURE YEH WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 064A 0645 0645;;;;N;;;;;-FD9E;ARABIC LIGATURE BEH WITH KHAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0628 062E 064A;;;;N;;;;;-FD9F;ARABIC LIGATURE TEH WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062A 062C 064A;;;;N;;;;;-FDA0;ARABIC LIGATURE TEH WITH JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062A 062C 0649;;;;N;;;;;-FDA1;ARABIC LIGATURE TEH WITH KHAH WITH YEH FINAL FORM;Lo;0;AL;<final> 062A 062E 064A;;;;N;;;;;-FDA2;ARABIC LIGATURE TEH WITH KHAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062A 062E 0649;;;;N;;;;;-FDA3;ARABIC LIGATURE TEH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062A 0645 064A;;;;N;;;;;-FDA4;ARABIC LIGATURE TEH WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062A 0645 0649;;;;N;;;;;-FDA5;ARABIC LIGATURE JEEM WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062C 0645 064A;;;;N;;;;;-FDA6;ARABIC LIGATURE JEEM WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062C 062D 0649;;;;N;;;;;-FDA7;ARABIC LIGATURE JEEM WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062C 0645 0649;;;;N;;;;;-FDA8;ARABIC LIGATURE SEEN WITH KHAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0633 062E 0649;;;;N;;;;;-FDA9;ARABIC LIGATURE SAD WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0635 062D 064A;;;;N;;;;;-FDAA;ARABIC LIGATURE SHEEN WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0634 062D 064A;;;;N;;;;;-FDAB;ARABIC LIGATURE DAD WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0636 062D 064A;;;;N;;;;;-FDAC;ARABIC LIGATURE LAM WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0644 062C 064A;;;;N;;;;;-FDAD;ARABIC LIGATURE LAM WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0644 0645 064A;;;;N;;;;;-FDAE;ARABIC LIGATURE YEH WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 064A 062D 064A;;;;N;;;;;-FDAF;ARABIC LIGATURE YEH WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 064A 062C 064A;;;;N;;;;;-FDB0;ARABIC LIGATURE YEH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 064A 0645 064A;;;;N;;;;;-FDB1;ARABIC LIGATURE MEEM WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0645 0645 064A;;;;N;;;;;-FDB2;ARABIC LIGATURE QAF WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0642 0645 064A;;;;N;;;;;-FDB3;ARABIC LIGATURE NOON WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0646 062D 064A;;;;N;;;;;-FDB4;ARABIC LIGATURE QAF WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0642 0645 062D;;;;N;;;;;-FDB5;ARABIC LIGATURE LAM WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0644 062D 0645;;;;N;;;;;-FDB6;ARABIC LIGATURE AIN WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0639 0645 064A;;;;N;;;;;-FDB7;ARABIC LIGATURE KAF WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0643 0645 064A;;;;N;;;;;-FDB8;ARABIC LIGATURE NOON WITH JEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0646 062C 062D;;;;N;;;;;-FDB9;ARABIC LIGATURE MEEM WITH KHAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0645 062E 064A;;;;N;;;;;-FDBA;ARABIC LIGATURE LAM WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0644 062C 0645;;;;N;;;;;-FDBB;ARABIC LIGATURE KAF WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0643 0645 0645;;;;N;;;;;-FDBC;ARABIC LIGATURE LAM WITH JEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0644 062C 0645;;;;N;;;;;-FDBD;ARABIC LIGATURE NOON WITH JEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 0646 062C 062D;;;;N;;;;;-FDBE;ARABIC LIGATURE JEEM WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 062C 062D 064A;;;;N;;;;;-FDBF;ARABIC LIGATURE HAH WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062D 062C 064A;;;;N;;;;;-FDC0;ARABIC LIGATURE MEEM WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0645 062C 064A;;;;N;;;;;-FDC1;ARABIC LIGATURE FEH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0641 0645 064A;;;;N;;;;;-FDC2;ARABIC LIGATURE BEH WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0628 062D 064A;;;;N;;;;;-FDC3;ARABIC LIGATURE KAF WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0643 0645 0645;;;;N;;;;;-FDC4;ARABIC LIGATURE AIN WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0639 062C 0645;;;;N;;;;;-FDC5;ARABIC LIGATURE SAD WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0635 0645 0645;;;;N;;;;;-FDC6;ARABIC LIGATURE SEEN WITH KHAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0633 062E 064A;;;;N;;;;;-FDC7;ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0646 062C 064A;;;;N;;;;;-FDF0;ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM;Lo;0;AL;<isolated> 0635 0644 06D2;;;;N;;;;;-FDF1;ARABIC LIGATURE QALA USED AS KORANIC STOP SIGN ISOLATED FORM;Lo;0;AL;<isolated> 0642 0644 06D2;;;;N;;;;;-FDF2;ARABIC LIGATURE ALLAH ISOLATED FORM;Lo;0;AL;<isolated> 0627 0644 0644 0647;;;;N;;;;;-FDF3;ARABIC LIGATURE AKBAR ISOLATED FORM;Lo;0;AL;<isolated> 0627 0643 0628 0631;;;;N;;;;;-FDF4;ARABIC LIGATURE MOHAMMAD ISOLATED FORM;Lo;0;AL;<isolated> 0645 062D 0645 062F;;;;N;;;;;-FDF5;ARABIC LIGATURE SALAM ISOLATED FORM;Lo;0;AL;<isolated> 0635 0644 0639 0645;;;;N;;;;;-FDF6;ARABIC LIGATURE RASOUL ISOLATED FORM;Lo;0;AL;<isolated> 0631 0633 0648 0644;;;;N;;;;;-FDF7;ARABIC LIGATURE ALAYHE ISOLATED FORM;Lo;0;AL;<isolated> 0639 0644 064A 0647;;;;N;;;;;-FDF8;ARABIC LIGATURE WASALLAM ISOLATED FORM;Lo;0;AL;<isolated> 0648 0633 0644 0645;;;;N;;;;;-FDF9;ARABIC LIGATURE SALLA ISOLATED FORM;Lo;0;AL;<isolated> 0635 0644 0649;;;;N;;;;;-FDFA;ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM;Lo;0;AL;<isolated> 0635 0644 0649 0020 0627 0644 0644 0647 0020 0639 0644 064A 0647 0020 0648 0633 0644 0645;;;;N;ARABIC LETTER SALLALLAHOU ALAYHE WASALLAM;;;;-FDFB;ARABIC LIGATURE JALLAJALALOUHOU;Lo;0;AL;<isolated> 062C 0644 0020 062C 0644 0627 0644 0647;;;;N;ARABIC LETTER JALLAJALALOUHOU;;;;-FDFC;RIAL SIGN;Sc;0;AL;<isolated> 0631 06CC 0627 0644;;;;N;;;;;-FDFD;ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM;So;0;ON;;;;;N;;;;;-FE00;VARIATION SELECTOR-1;Mn;0;NSM;;;;;N;;;;;-FE01;VARIATION SELECTOR-2;Mn;0;NSM;;;;;N;;;;;-FE02;VARIATION SELECTOR-3;Mn;0;NSM;;;;;N;;;;;-FE03;VARIATION SELECTOR-4;Mn;0;NSM;;;;;N;;;;;-FE04;VARIATION SELECTOR-5;Mn;0;NSM;;;;;N;;;;;-FE05;VARIATION SELECTOR-6;Mn;0;NSM;;;;;N;;;;;-FE06;VARIATION SELECTOR-7;Mn;0;NSM;;;;;N;;;;;-FE07;VARIATION SELECTOR-8;Mn;0;NSM;;;;;N;;;;;-FE08;VARIATION SELECTOR-9;Mn;0;NSM;;;;;N;;;;;-FE09;VARIATION SELECTOR-10;Mn;0;NSM;;;;;N;;;;;-FE0A;VARIATION SELECTOR-11;Mn;0;NSM;;;;;N;;;;;-FE0B;VARIATION SELECTOR-12;Mn;0;NSM;;;;;N;;;;;-FE0C;VARIATION SELECTOR-13;Mn;0;NSM;;;;;N;;;;;-FE0D;VARIATION SELECTOR-14;Mn;0;NSM;;;;;N;;;;;-FE0E;VARIATION SELECTOR-15;Mn;0;NSM;;;;;N;;;;;-FE0F;VARIATION SELECTOR-16;Mn;0;NSM;;;;;N;;;;;-FE10;PRESENTATION FORM FOR VERTICAL COMMA;Po;0;ON;<vertical> 002C;;;;N;;;;;-FE11;PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC COMMA;Po;0;ON;<vertical> 3001;;;;N;;;;;-FE12;PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC FULL STOP;Po;0;ON;<vertical> 3002;;;;N;;;;;-FE13;PRESENTATION FORM FOR VERTICAL COLON;Po;0;ON;<vertical> 003A;;;;N;;;;;-FE14;PRESENTATION FORM FOR VERTICAL SEMICOLON;Po;0;ON;<vertical> 003B;;;;N;;;;;-FE15;PRESENTATION FORM FOR VERTICAL EXCLAMATION MARK;Po;0;ON;<vertical> 0021;;;;N;;;;;-FE16;PRESENTATION FORM FOR VERTICAL QUESTION MARK;Po;0;ON;<vertical> 003F;;;;N;;;;;-FE17;PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET;Ps;0;ON;<vertical> 3016;;;;N;;;;;-FE18;PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET;Pe;0;ON;<vertical> 3017;;;;N;;;;;-FE19;PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS;Po;0;ON;<vertical> 2026;;;;N;;;;;-FE20;COMBINING LIGATURE LEFT HALF;Mn;230;NSM;;;;;N;;;;;-FE21;COMBINING LIGATURE RIGHT HALF;Mn;230;NSM;;;;;N;;;;;-FE22;COMBINING DOUBLE TILDE LEFT HALF;Mn;230;NSM;;;;;N;;;;;-FE23;COMBINING DOUBLE TILDE RIGHT HALF;Mn;230;NSM;;;;;N;;;;;-FE30;PRESENTATION FORM FOR VERTICAL TWO DOT LEADER;Po;0;ON;<vertical> 2025;;;;N;GLYPH FOR VERTICAL TWO DOT LEADER;;;;-FE31;PRESENTATION FORM FOR VERTICAL EM DASH;Pd;0;ON;<vertical> 2014;;;;N;GLYPH FOR VERTICAL EM DASH;;;;-FE32;PRESENTATION FORM FOR VERTICAL EN DASH;Pd;0;ON;<vertical> 2013;;;;N;GLYPH FOR VERTICAL EN DASH;;;;-FE33;PRESENTATION FORM FOR VERTICAL LOW LINE;Pc;0;ON;<vertical> 005F;;;;N;GLYPH FOR VERTICAL SPACING UNDERSCORE;;;;-FE34;PRESENTATION FORM FOR VERTICAL WAVY LOW LINE;Pc;0;ON;<vertical> 005F;;;;N;GLYPH FOR VERTICAL SPACING WAVY UNDERSCORE;;;;-FE35;PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS;Ps;0;ON;<vertical> 0028;;;;N;GLYPH FOR VERTICAL OPENING PARENTHESIS;;;;-FE36;PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS;Pe;0;ON;<vertical> 0029;;;;N;GLYPH FOR VERTICAL CLOSING PARENTHESIS;;;;-FE37;PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET;Ps;0;ON;<vertical> 007B;;;;N;GLYPH FOR VERTICAL OPENING CURLY BRACKET;;;;-FE38;PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET;Pe;0;ON;<vertical> 007D;;;;N;GLYPH FOR VERTICAL CLOSING CURLY BRACKET;;;;-FE39;PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET;Ps;0;ON;<vertical> 3014;;;;N;GLYPH FOR VERTICAL OPENING TORTOISE SHELL BRACKET;;;;-FE3A;PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET;Pe;0;ON;<vertical> 3015;;;;N;GLYPH FOR VERTICAL CLOSING TORTOISE SHELL BRACKET;;;;-FE3B;PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET;Ps;0;ON;<vertical> 3010;;;;N;GLYPH FOR VERTICAL OPENING BLACK LENTICULAR BRACKET;;;;-FE3C;PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET;Pe;0;ON;<vertical> 3011;;;;N;GLYPH FOR VERTICAL CLOSING BLACK LENTICULAR BRACKET;;;;-FE3D;PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET;Ps;0;ON;<vertical> 300A;;;;N;GLYPH FOR VERTICAL OPENING DOUBLE ANGLE BRACKET;;;;-FE3E;PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET;Pe;0;ON;<vertical> 300B;;;;N;GLYPH FOR VERTICAL CLOSING DOUBLE ANGLE BRACKET;;;;-FE3F;PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET;Ps;0;ON;<vertical> 3008;;;;N;GLYPH FOR VERTICAL OPENING ANGLE BRACKET;;;;-FE40;PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET;Pe;0;ON;<vertical> 3009;;;;N;GLYPH FOR VERTICAL CLOSING ANGLE BRACKET;;;;-FE41;PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET;Ps;0;ON;<vertical> 300C;;;;N;GLYPH FOR VERTICAL OPENING CORNER BRACKET;;;;-FE42;PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET;Pe;0;ON;<vertical> 300D;;;;N;GLYPH FOR VERTICAL CLOSING CORNER BRACKET;;;;-FE43;PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET;Ps;0;ON;<vertical> 300E;;;;N;GLYPH FOR VERTICAL OPENING WHITE CORNER BRACKET;;;;-FE44;PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET;Pe;0;ON;<vertical> 300F;;;;N;GLYPH FOR VERTICAL CLOSING WHITE CORNER BRACKET;;;;-FE45;SESAME DOT;Po;0;ON;;;;;N;;;;;-FE46;WHITE SESAME DOT;Po;0;ON;;;;;N;;;;;-FE47;PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET;Ps;0;ON;<vertical> 005B;;;;N;;;;;-FE48;PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET;Pe;0;ON;<vertical> 005D;;;;N;;;;;-FE49;DASHED OVERLINE;Po;0;ON;<compat> 203E;;;;N;SPACING DASHED OVERSCORE;;;;-FE4A;CENTRELINE OVERLINE;Po;0;ON;<compat> 203E;;;;N;SPACING CENTERLINE OVERSCORE;;;;-FE4B;WAVY OVERLINE;Po;0;ON;<compat> 203E;;;;N;SPACING WAVY OVERSCORE;;;;-FE4C;DOUBLE WAVY OVERLINE;Po;0;ON;<compat> 203E;;;;N;SPACING DOUBLE WAVY OVERSCORE;;;;-FE4D;DASHED LOW LINE;Pc;0;ON;<compat> 005F;;;;N;SPACING DASHED UNDERSCORE;;;;-FE4E;CENTRELINE LOW LINE;Pc;0;ON;<compat> 005F;;;;N;SPACING CENTERLINE UNDERSCORE;;;;-FE4F;WAVY LOW LINE;Pc;0;ON;<compat> 005F;;;;N;SPACING WAVY UNDERSCORE;;;;-FE50;SMALL COMMA;Po;0;CS;<small> 002C;;;;N;;;;;-FE51;SMALL IDEOGRAPHIC COMMA;Po;0;ON;<small> 3001;;;;N;;;;;-FE52;SMALL FULL STOP;Po;0;CS;<small> 002E;;;;N;SMALL PERIOD;;;;-FE54;SMALL SEMICOLON;Po;0;ON;<small> 003B;;;;N;;;;;-FE55;SMALL COLON;Po;0;CS;<small> 003A;;;;N;;;;;-FE56;SMALL QUESTION MARK;Po;0;ON;<small> 003F;;;;N;;;;;-FE57;SMALL EXCLAMATION MARK;Po;0;ON;<small> 0021;;;;N;;;;;-FE58;SMALL EM DASH;Pd;0;ON;<small> 2014;;;;N;;;;;-FE59;SMALL LEFT PARENTHESIS;Ps;0;ON;<small> 0028;;;;Y;SMALL OPENING PARENTHESIS;;;;-FE5A;SMALL RIGHT PARENTHESIS;Pe;0;ON;<small> 0029;;;;Y;SMALL CLOSING PARENTHESIS;;;;-FE5B;SMALL LEFT CURLY BRACKET;Ps;0;ON;<small> 007B;;;;Y;SMALL OPENING CURLY BRACKET;;;;-FE5C;SMALL RIGHT CURLY BRACKET;Pe;0;ON;<small> 007D;;;;Y;SMALL CLOSING CURLY BRACKET;;;;-FE5D;SMALL LEFT TORTOISE SHELL BRACKET;Ps;0;ON;<small> 3014;;;;Y;SMALL OPENING TORTOISE SHELL BRACKET;;;;-FE5E;SMALL RIGHT TORTOISE SHELL BRACKET;Pe;0;ON;<small> 3015;;;;Y;SMALL CLOSING TORTOISE SHELL BRACKET;;;;-FE5F;SMALL NUMBER SIGN;Po;0;ET;<small> 0023;;;;N;;;;;-FE60;SMALL AMPERSAND;Po;0;ON;<small> 0026;;;;N;;;;;-FE61;SMALL ASTERISK;Po;0;ON;<small> 002A;;;;N;;;;;-FE62;SMALL PLUS SIGN;Sm;0;ES;<small> 002B;;;;N;;;;;-FE63;SMALL HYPHEN-MINUS;Pd;0;ES;<small> 002D;;;;N;;;;;-FE64;SMALL LESS-THAN SIGN;Sm;0;ON;<small> 003C;;;;Y;;;;;-FE65;SMALL GREATER-THAN SIGN;Sm;0;ON;<small> 003E;;;;Y;;;;;-FE66;SMALL EQUALS SIGN;Sm;0;ON;<small> 003D;;;;N;;;;;-FE68;SMALL REVERSE SOLIDUS;Po;0;ON;<small> 005C;;;;N;SMALL BACKSLASH;;;;-FE69;SMALL DOLLAR SIGN;Sc;0;ET;<small> 0024;;;;N;;;;;-FE6A;SMALL PERCENT SIGN;Po;0;ET;<small> 0025;;;;N;;;;;-FE6B;SMALL COMMERCIAL AT;Po;0;ON;<small> 0040;;;;N;;;;;-FE70;ARABIC FATHATAN ISOLATED FORM;Lo;0;AL;<isolated> 0020 064B;;;;N;ARABIC SPACING FATHATAN;;;;-FE71;ARABIC TATWEEL WITH FATHATAN ABOVE;Lo;0;AL;<medial> 0640 064B;;;;N;ARABIC FATHATAN ON TATWEEL;;;;-FE72;ARABIC DAMMATAN ISOLATED FORM;Lo;0;AL;<isolated> 0020 064C;;;;N;ARABIC SPACING DAMMATAN;;;;-FE73;ARABIC TAIL FRAGMENT;Lo;0;AL;;;;;N;;;;;-FE74;ARABIC KASRATAN ISOLATED FORM;Lo;0;AL;<isolated> 0020 064D;;;;N;ARABIC SPACING KASRATAN;;;;-FE76;ARABIC FATHA ISOLATED FORM;Lo;0;AL;<isolated> 0020 064E;;;;N;ARABIC SPACING FATHAH;;;;-FE77;ARABIC FATHA MEDIAL FORM;Lo;0;AL;<medial> 0640 064E;;;;N;ARABIC FATHAH ON TATWEEL;;;;-FE78;ARABIC DAMMA ISOLATED FORM;Lo;0;AL;<isolated> 0020 064F;;;;N;ARABIC SPACING DAMMAH;;;;-FE79;ARABIC DAMMA MEDIAL FORM;Lo;0;AL;<medial> 0640 064F;;;;N;ARABIC DAMMAH ON TATWEEL;;;;-FE7A;ARABIC KASRA ISOLATED FORM;Lo;0;AL;<isolated> 0020 0650;;;;N;ARABIC SPACING KASRAH;;;;-FE7B;ARABIC KASRA MEDIAL FORM;Lo;0;AL;<medial> 0640 0650;;;;N;ARABIC KASRAH ON TATWEEL;;;;-FE7C;ARABIC SHADDA ISOLATED FORM;Lo;0;AL;<isolated> 0020 0651;;;;N;ARABIC SPACING SHADDAH;;;;-FE7D;ARABIC SHADDA MEDIAL FORM;Lo;0;AL;<medial> 0640 0651;;;;N;ARABIC SHADDAH ON TATWEEL;;;;-FE7E;ARABIC SUKUN ISOLATED FORM;Lo;0;AL;<isolated> 0020 0652;;;;N;ARABIC SPACING SUKUN;;;;-FE7F;ARABIC SUKUN MEDIAL FORM;Lo;0;AL;<medial> 0640 0652;;;;N;ARABIC SUKUN ON TATWEEL;;;;-FE80;ARABIC LETTER HAMZA ISOLATED FORM;Lo;0;AL;<isolated> 0621;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH;;;;-FE81;ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0622;;;;N;GLYPH FOR ISOLATE ARABIC MADDAH ON ALEF;;;;-FE82;ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM;Lo;0;AL;<final> 0622;;;;N;GLYPH FOR FINAL ARABIC MADDAH ON ALEF;;;;-FE83;ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0623;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON ALEF;;;;-FE84;ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;<final> 0623;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON ALEF;;;;-FE85;ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0624;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON WAW;;;;-FE86;ARABIC LETTER WAW WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;<final> 0624;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON WAW;;;;-FE87;ARABIC LETTER ALEF WITH HAMZA BELOW ISOLATED FORM;Lo;0;AL;<isolated> 0625;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH UNDER ALEF;;;;-FE88;ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM;Lo;0;AL;<final> 0625;;;;N;GLYPH FOR FINAL ARABIC HAMZAH UNDER ALEF;;;;-FE89;ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0626;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON YA;;;;-FE8A;ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;<final> 0626;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON YA;;;;-FE8B;ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM;Lo;0;AL;<initial> 0626;;;;N;GLYPH FOR INITIAL ARABIC HAMZAH ON YA;;;;-FE8C;ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM;Lo;0;AL;<medial> 0626;;;;N;GLYPH FOR MEDIAL ARABIC HAMZAH ON YA;;;;-FE8D;ARABIC LETTER ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0627;;;;N;GLYPH FOR ISOLATE ARABIC ALEF;;;;-FE8E;ARABIC LETTER ALEF FINAL FORM;Lo;0;AL;<final> 0627;;;;N;GLYPH FOR FINAL ARABIC ALEF;;;;-FE8F;ARABIC LETTER BEH ISOLATED FORM;Lo;0;AL;<isolated> 0628;;;;N;GLYPH FOR ISOLATE ARABIC BAA;;;;-FE90;ARABIC LETTER BEH FINAL FORM;Lo;0;AL;<final> 0628;;;;N;GLYPH FOR FINAL ARABIC BAA;;;;-FE91;ARABIC LETTER BEH INITIAL FORM;Lo;0;AL;<initial> 0628;;;;N;GLYPH FOR INITIAL ARABIC BAA;;;;-FE92;ARABIC LETTER BEH MEDIAL FORM;Lo;0;AL;<medial> 0628;;;;N;GLYPH FOR MEDIAL ARABIC BAA;;;;-FE93;ARABIC LETTER TEH MARBUTA ISOLATED FORM;Lo;0;AL;<isolated> 0629;;;;N;GLYPH FOR ISOLATE ARABIC TAA MARBUTAH;;;;-FE94;ARABIC LETTER TEH MARBUTA FINAL FORM;Lo;0;AL;<final> 0629;;;;N;GLYPH FOR FINAL ARABIC TAA MARBUTAH;;;;-FE95;ARABIC LETTER TEH ISOLATED FORM;Lo;0;AL;<isolated> 062A;;;;N;GLYPH FOR ISOLATE ARABIC TAA;;;;-FE96;ARABIC LETTER TEH FINAL FORM;Lo;0;AL;<final> 062A;;;;N;GLYPH FOR FINAL ARABIC TAA;;;;-FE97;ARABIC LETTER TEH INITIAL FORM;Lo;0;AL;<initial> 062A;;;;N;GLYPH FOR INITIAL ARABIC TAA;;;;-FE98;ARABIC LETTER TEH MEDIAL FORM;Lo;0;AL;<medial> 062A;;;;N;GLYPH FOR MEDIAL ARABIC TAA;;;;-FE99;ARABIC LETTER THEH ISOLATED FORM;Lo;0;AL;<isolated> 062B;;;;N;GLYPH FOR ISOLATE ARABIC THAA;;;;-FE9A;ARABIC LETTER THEH FINAL FORM;Lo;0;AL;<final> 062B;;;;N;GLYPH FOR FINAL ARABIC THAA;;;;-FE9B;ARABIC LETTER THEH INITIAL FORM;Lo;0;AL;<initial> 062B;;;;N;GLYPH FOR INITIAL ARABIC THAA;;;;-FE9C;ARABIC LETTER THEH MEDIAL FORM;Lo;0;AL;<medial> 062B;;;;N;GLYPH FOR MEDIAL ARABIC THAA;;;;-FE9D;ARABIC LETTER JEEM ISOLATED FORM;Lo;0;AL;<isolated> 062C;;;;N;GLYPH FOR ISOLATE ARABIC JEEM;;;;-FE9E;ARABIC LETTER JEEM FINAL FORM;Lo;0;AL;<final> 062C;;;;N;GLYPH FOR FINAL ARABIC JEEM;;;;-FE9F;ARABIC LETTER JEEM INITIAL FORM;Lo;0;AL;<initial> 062C;;;;N;GLYPH FOR INITIAL ARABIC JEEM;;;;-FEA0;ARABIC LETTER JEEM MEDIAL FORM;Lo;0;AL;<medial> 062C;;;;N;GLYPH FOR MEDIAL ARABIC JEEM;;;;-FEA1;ARABIC LETTER HAH ISOLATED FORM;Lo;0;AL;<isolated> 062D;;;;N;GLYPH FOR ISOLATE ARABIC HAA;;;;-FEA2;ARABIC LETTER HAH FINAL FORM;Lo;0;AL;<final> 062D;;;;N;GLYPH FOR FINAL ARABIC HAA;;;;-FEA3;ARABIC LETTER HAH INITIAL FORM;Lo;0;AL;<initial> 062D;;;;N;GLYPH FOR INITIAL ARABIC HAA;;;;-FEA4;ARABIC LETTER HAH MEDIAL FORM;Lo;0;AL;<medial> 062D;;;;N;GLYPH FOR MEDIAL ARABIC HAA;;;;-FEA5;ARABIC LETTER KHAH ISOLATED FORM;Lo;0;AL;<isolated> 062E;;;;N;GLYPH FOR ISOLATE ARABIC KHAA;;;;-FEA6;ARABIC LETTER KHAH FINAL FORM;Lo;0;AL;<final> 062E;;;;N;GLYPH FOR FINAL ARABIC KHAA;;;;-FEA7;ARABIC LETTER KHAH INITIAL FORM;Lo;0;AL;<initial> 062E;;;;N;GLYPH FOR INITIAL ARABIC KHAA;;;;-FEA8;ARABIC LETTER KHAH MEDIAL FORM;Lo;0;AL;<medial> 062E;;;;N;GLYPH FOR MEDIAL ARABIC KHAA;;;;-FEA9;ARABIC LETTER DAL ISOLATED FORM;Lo;0;AL;<isolated> 062F;;;;N;GLYPH FOR ISOLATE ARABIC DAL;;;;-FEAA;ARABIC LETTER DAL FINAL FORM;Lo;0;AL;<final> 062F;;;;N;GLYPH FOR FINAL ARABIC DAL;;;;-FEAB;ARABIC LETTER THAL ISOLATED FORM;Lo;0;AL;<isolated> 0630;;;;N;GLYPH FOR ISOLATE ARABIC THAL;;;;-FEAC;ARABIC LETTER THAL FINAL FORM;Lo;0;AL;<final> 0630;;;;N;GLYPH FOR FINAL ARABIC THAL;;;;-FEAD;ARABIC LETTER REH ISOLATED FORM;Lo;0;AL;<isolated> 0631;;;;N;GLYPH FOR ISOLATE ARABIC RA;;;;-FEAE;ARABIC LETTER REH FINAL FORM;Lo;0;AL;<final> 0631;;;;N;GLYPH FOR FINAL ARABIC RA;;;;-FEAF;ARABIC LETTER ZAIN ISOLATED FORM;Lo;0;AL;<isolated> 0632;;;;N;GLYPH FOR ISOLATE ARABIC ZAIN;;;;-FEB0;ARABIC LETTER ZAIN FINAL FORM;Lo;0;AL;<final> 0632;;;;N;GLYPH FOR FINAL ARABIC ZAIN;;;;-FEB1;ARABIC LETTER SEEN ISOLATED FORM;Lo;0;AL;<isolated> 0633;;;;N;GLYPH FOR ISOLATE ARABIC SEEN;;;;-FEB2;ARABIC LETTER SEEN FINAL FORM;Lo;0;AL;<final> 0633;;;;N;GLYPH FOR FINAL ARABIC SEEN;;;;-FEB3;ARABIC LETTER SEEN INITIAL FORM;Lo;0;AL;<initial> 0633;;;;N;GLYPH FOR INITIAL ARABIC SEEN;;;;-FEB4;ARABIC LETTER SEEN MEDIAL FORM;Lo;0;AL;<medial> 0633;;;;N;GLYPH FOR MEDIAL ARABIC SEEN;;;;-FEB5;ARABIC LETTER SHEEN ISOLATED FORM;Lo;0;AL;<isolated> 0634;;;;N;GLYPH FOR ISOLATE ARABIC SHEEN;;;;-FEB6;ARABIC LETTER SHEEN FINAL FORM;Lo;0;AL;<final> 0634;;;;N;GLYPH FOR FINAL ARABIC SHEEN;;;;-FEB7;ARABIC LETTER SHEEN INITIAL FORM;Lo;0;AL;<initial> 0634;;;;N;GLYPH FOR INITIAL ARABIC SHEEN;;;;-FEB8;ARABIC LETTER SHEEN MEDIAL FORM;Lo;0;AL;<medial> 0634;;;;N;GLYPH FOR MEDIAL ARABIC SHEEN;;;;-FEB9;ARABIC LETTER SAD ISOLATED FORM;Lo;0;AL;<isolated> 0635;;;;N;GLYPH FOR ISOLATE ARABIC SAD;;;;-FEBA;ARABIC LETTER SAD FINAL FORM;Lo;0;AL;<final> 0635;;;;N;GLYPH FOR FINAL ARABIC SAD;;;;-FEBB;ARABIC LETTER SAD INITIAL FORM;Lo;0;AL;<initial> 0635;;;;N;GLYPH FOR INITIAL ARABIC SAD;;;;-FEBC;ARABIC LETTER SAD MEDIAL FORM;Lo;0;AL;<medial> 0635;;;;N;GLYPH FOR MEDIAL ARABIC SAD;;;;-FEBD;ARABIC LETTER DAD ISOLATED FORM;Lo;0;AL;<isolated> 0636;;;;N;GLYPH FOR ISOLATE ARABIC DAD;;;;-FEBE;ARABIC LETTER DAD FINAL FORM;Lo;0;AL;<final> 0636;;;;N;GLYPH FOR FINAL ARABIC DAD;;;;-FEBF;ARABIC LETTER DAD INITIAL FORM;Lo;0;AL;<initial> 0636;;;;N;GLYPH FOR INITIAL ARABIC DAD;;;;-FEC0;ARABIC LETTER DAD MEDIAL FORM;Lo;0;AL;<medial> 0636;;;;N;GLYPH FOR MEDIAL ARABIC DAD;;;;-FEC1;ARABIC LETTER TAH ISOLATED FORM;Lo;0;AL;<isolated> 0637;;;;N;GLYPH FOR ISOLATE ARABIC TAH;;;;-FEC2;ARABIC LETTER TAH FINAL FORM;Lo;0;AL;<final> 0637;;;;N;GLYPH FOR FINAL ARABIC TAH;;;;-FEC3;ARABIC LETTER TAH INITIAL FORM;Lo;0;AL;<initial> 0637;;;;N;GLYPH FOR INITIAL ARABIC TAH;;;;-FEC4;ARABIC LETTER TAH MEDIAL FORM;Lo;0;AL;<medial> 0637;;;;N;GLYPH FOR MEDIAL ARABIC TAH;;;;-FEC5;ARABIC LETTER ZAH ISOLATED FORM;Lo;0;AL;<isolated> 0638;;;;N;GLYPH FOR ISOLATE ARABIC DHAH;;;;-FEC6;ARABIC LETTER ZAH FINAL FORM;Lo;0;AL;<final> 0638;;;;N;GLYPH FOR FINAL ARABIC DHAH;;;;-FEC7;ARABIC LETTER ZAH INITIAL FORM;Lo;0;AL;<initial> 0638;;;;N;GLYPH FOR INITIAL ARABIC DHAH;;;;-FEC8;ARABIC LETTER ZAH MEDIAL FORM;Lo;0;AL;<medial> 0638;;;;N;GLYPH FOR MEDIAL ARABIC DHAH;;;;-FEC9;ARABIC LETTER AIN ISOLATED FORM;Lo;0;AL;<isolated> 0639;;;;N;GLYPH FOR ISOLATE ARABIC AIN;;;;-FECA;ARABIC LETTER AIN FINAL FORM;Lo;0;AL;<final> 0639;;;;N;GLYPH FOR FINAL ARABIC AIN;;;;-FECB;ARABIC LETTER AIN INITIAL FORM;Lo;0;AL;<initial> 0639;;;;N;GLYPH FOR INITIAL ARABIC AIN;;;;-FECC;ARABIC LETTER AIN MEDIAL FORM;Lo;0;AL;<medial> 0639;;;;N;GLYPH FOR MEDIAL ARABIC AIN;;;;-FECD;ARABIC LETTER GHAIN ISOLATED FORM;Lo;0;AL;<isolated> 063A;;;;N;GLYPH FOR ISOLATE ARABIC GHAIN;;;;-FECE;ARABIC LETTER GHAIN FINAL FORM;Lo;0;AL;<final> 063A;;;;N;GLYPH FOR FINAL ARABIC GHAIN;;;;-FECF;ARABIC LETTER GHAIN INITIAL FORM;Lo;0;AL;<initial> 063A;;;;N;GLYPH FOR INITIAL ARABIC GHAIN;;;;-FED0;ARABIC LETTER GHAIN MEDIAL FORM;Lo;0;AL;<medial> 063A;;;;N;GLYPH FOR MEDIAL ARABIC GHAIN;;;;-FED1;ARABIC LETTER FEH ISOLATED FORM;Lo;0;AL;<isolated> 0641;;;;N;GLYPH FOR ISOLATE ARABIC FA;;;;-FED2;ARABIC LETTER FEH FINAL FORM;Lo;0;AL;<final> 0641;;;;N;GLYPH FOR FINAL ARABIC FA;;;;-FED3;ARABIC LETTER FEH INITIAL FORM;Lo;0;AL;<initial> 0641;;;;N;GLYPH FOR INITIAL ARABIC FA;;;;-FED4;ARABIC LETTER FEH MEDIAL FORM;Lo;0;AL;<medial> 0641;;;;N;GLYPH FOR MEDIAL ARABIC FA;;;;-FED5;ARABIC LETTER QAF ISOLATED FORM;Lo;0;AL;<isolated> 0642;;;;N;GLYPH FOR ISOLATE ARABIC QAF;;;;-FED6;ARABIC LETTER QAF FINAL FORM;Lo;0;AL;<final> 0642;;;;N;GLYPH FOR FINAL ARABIC QAF;;;;-FED7;ARABIC LETTER QAF INITIAL FORM;Lo;0;AL;<initial> 0642;;;;N;GLYPH FOR INITIAL ARABIC QAF;;;;-FED8;ARABIC LETTER QAF MEDIAL FORM;Lo;0;AL;<medial> 0642;;;;N;GLYPH FOR MEDIAL ARABIC QAF;;;;-FED9;ARABIC LETTER KAF ISOLATED FORM;Lo;0;AL;<isolated> 0643;;;;N;GLYPH FOR ISOLATE ARABIC CAF;;;;-FEDA;ARABIC LETTER KAF FINAL FORM;Lo;0;AL;<final> 0643;;;;N;GLYPH FOR FINAL ARABIC CAF;;;;-FEDB;ARABIC LETTER KAF INITIAL FORM;Lo;0;AL;<initial> 0643;;;;N;GLYPH FOR INITIAL ARABIC CAF;;;;-FEDC;ARABIC LETTER KAF MEDIAL FORM;Lo;0;AL;<medial> 0643;;;;N;GLYPH FOR MEDIAL ARABIC CAF;;;;-FEDD;ARABIC LETTER LAM ISOLATED FORM;Lo;0;AL;<isolated> 0644;;;;N;GLYPH FOR ISOLATE ARABIC LAM;;;;-FEDE;ARABIC LETTER LAM FINAL FORM;Lo;0;AL;<final> 0644;;;;N;GLYPH FOR FINAL ARABIC LAM;;;;-FEDF;ARABIC LETTER LAM INITIAL FORM;Lo;0;AL;<initial> 0644;;;;N;GLYPH FOR INITIAL ARABIC LAM;;;;-FEE0;ARABIC LETTER LAM MEDIAL FORM;Lo;0;AL;<medial> 0644;;;;N;GLYPH FOR MEDIAL ARABIC LAM;;;;-FEE1;ARABIC LETTER MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0645;;;;N;GLYPH FOR ISOLATE ARABIC MEEM;;;;-FEE2;ARABIC LETTER MEEM FINAL FORM;Lo;0;AL;<final> 0645;;;;N;GLYPH FOR FINAL ARABIC MEEM;;;;-FEE3;ARABIC LETTER MEEM INITIAL FORM;Lo;0;AL;<initial> 0645;;;;N;GLYPH FOR INITIAL ARABIC MEEM;;;;-FEE4;ARABIC LETTER MEEM MEDIAL FORM;Lo;0;AL;<medial> 0645;;;;N;GLYPH FOR MEDIAL ARABIC MEEM;;;;-FEE5;ARABIC LETTER NOON ISOLATED FORM;Lo;0;AL;<isolated> 0646;;;;N;GLYPH FOR ISOLATE ARABIC NOON;;;;-FEE6;ARABIC LETTER NOON FINAL FORM;Lo;0;AL;<final> 0646;;;;N;GLYPH FOR FINAL ARABIC NOON;;;;-FEE7;ARABIC LETTER NOON INITIAL FORM;Lo;0;AL;<initial> 0646;;;;N;GLYPH FOR INITIAL ARABIC NOON;;;;-FEE8;ARABIC LETTER NOON MEDIAL FORM;Lo;0;AL;<medial> 0646;;;;N;GLYPH FOR MEDIAL ARABIC NOON;;;;-FEE9;ARABIC LETTER HEH ISOLATED FORM;Lo;0;AL;<isolated> 0647;;;;N;GLYPH FOR ISOLATE ARABIC HA;;;;-FEEA;ARABIC LETTER HEH FINAL FORM;Lo;0;AL;<final> 0647;;;;N;GLYPH FOR FINAL ARABIC HA;;;;-FEEB;ARABIC LETTER HEH INITIAL FORM;Lo;0;AL;<initial> 0647;;;;N;GLYPH FOR INITIAL ARABIC HA;;;;-FEEC;ARABIC LETTER HEH MEDIAL FORM;Lo;0;AL;<medial> 0647;;;;N;GLYPH FOR MEDIAL ARABIC HA;;;;-FEED;ARABIC LETTER WAW ISOLATED FORM;Lo;0;AL;<isolated> 0648;;;;N;GLYPH FOR ISOLATE ARABIC WAW;;;;-FEEE;ARABIC LETTER WAW FINAL FORM;Lo;0;AL;<final> 0648;;;;N;GLYPH FOR FINAL ARABIC WAW;;;;-FEEF;ARABIC LETTER ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0649;;;;N;GLYPH FOR ISOLATE ARABIC ALEF MAQSURAH;;;;-FEF0;ARABIC LETTER ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0649;;;;N;GLYPH FOR FINAL ARABIC ALEF MAQSURAH;;;;-FEF1;ARABIC LETTER YEH ISOLATED FORM;Lo;0;AL;<isolated> 064A;;;;N;GLYPH FOR ISOLATE ARABIC YA;;;;-FEF2;ARABIC LETTER YEH FINAL FORM;Lo;0;AL;<final> 064A;;;;N;GLYPH FOR FINAL ARABIC YA;;;;-FEF3;ARABIC LETTER YEH INITIAL FORM;Lo;0;AL;<initial> 064A;;;;N;GLYPH FOR INITIAL ARABIC YA;;;;-FEF4;ARABIC LETTER YEH MEDIAL FORM;Lo;0;AL;<medial> 064A;;;;N;GLYPH FOR MEDIAL ARABIC YA;;;;-FEF5;ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0644 0622;;;;N;GLYPH FOR ISOLATE ARABIC MADDAH ON LIGATURE LAM ALEF;;;;-FEF6;ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM;Lo;0;AL;<final> 0644 0622;;;;N;GLYPH FOR FINAL ARABIC MADDAH ON LIGATURE LAM ALEF;;;;-FEF7;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0644 0623;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON LIGATURE LAM ALEF;;;;-FEF8;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;<final> 0644 0623;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON LIGATURE LAM ALEF;;;;-FEF9;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM;Lo;0;AL;<isolated> 0644 0625;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH UNDER LIGATURE LAM ALEF;;;;-FEFA;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM;Lo;0;AL;<final> 0644 0625;;;;N;GLYPH FOR FINAL ARABIC HAMZAH UNDER LIGATURE LAM ALEF;;;;-FEFB;ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0644 0627;;;;N;GLYPH FOR ISOLATE ARABIC LIGATURE LAM ALEF;;;;-FEFC;ARABIC LIGATURE LAM WITH ALEF FINAL FORM;Lo;0;AL;<final> 0644 0627;;;;N;GLYPH FOR FINAL ARABIC LIGATURE LAM ALEF;;;;-FEFF;ZERO WIDTH NO-BREAK SPACE;Cf;0;BN;;;;;N;BYTE ORDER MARK;;;;-FF01;FULLWIDTH EXCLAMATION MARK;Po;0;ON;<wide> 0021;;;;N;;;;;-FF02;FULLWIDTH QUOTATION MARK;Po;0;ON;<wide> 0022;;;;N;;;;;-FF03;FULLWIDTH NUMBER SIGN;Po;0;ET;<wide> 0023;;;;N;;;;;-FF04;FULLWIDTH DOLLAR SIGN;Sc;0;ET;<wide> 0024;;;;N;;;;;-FF05;FULLWIDTH PERCENT SIGN;Po;0;ET;<wide> 0025;;;;N;;;;;-FF06;FULLWIDTH AMPERSAND;Po;0;ON;<wide> 0026;;;;N;;;;;-FF07;FULLWIDTH APOSTROPHE;Po;0;ON;<wide> 0027;;;;N;;;;;-FF08;FULLWIDTH LEFT PARENTHESIS;Ps;0;ON;<wide> 0028;;;;Y;FULLWIDTH OPENING PARENTHESIS;;;;-FF09;FULLWIDTH RIGHT PARENTHESIS;Pe;0;ON;<wide> 0029;;;;Y;FULLWIDTH CLOSING PARENTHESIS;;;;-FF0A;FULLWIDTH ASTERISK;Po;0;ON;<wide> 002A;;;;N;;;;;-FF0B;FULLWIDTH PLUS SIGN;Sm;0;ES;<wide> 002B;;;;N;;;;;-FF0C;FULLWIDTH COMMA;Po;0;CS;<wide> 002C;;;;N;;;;;-FF0D;FULLWIDTH HYPHEN-MINUS;Pd;0;ES;<wide> 002D;;;;N;;;;;-FF0E;FULLWIDTH FULL STOP;Po;0;CS;<wide> 002E;;;;N;FULLWIDTH PERIOD;;;;-FF0F;FULLWIDTH SOLIDUS;Po;0;CS;<wide> 002F;;;;N;FULLWIDTH SLASH;;;;-FF10;FULLWIDTH DIGIT ZERO;Nd;0;EN;<wide> 0030;0;0;0;N;;;;;-FF11;FULLWIDTH DIGIT ONE;Nd;0;EN;<wide> 0031;1;1;1;N;;;;;-FF12;FULLWIDTH DIGIT TWO;Nd;0;EN;<wide> 0032;2;2;2;N;;;;;-FF13;FULLWIDTH DIGIT THREE;Nd;0;EN;<wide> 0033;3;3;3;N;;;;;-FF14;FULLWIDTH DIGIT FOUR;Nd;0;EN;<wide> 0034;4;4;4;N;;;;;-FF15;FULLWIDTH DIGIT FIVE;Nd;0;EN;<wide> 0035;5;5;5;N;;;;;-FF16;FULLWIDTH DIGIT SIX;Nd;0;EN;<wide> 0036;6;6;6;N;;;;;-FF17;FULLWIDTH DIGIT SEVEN;Nd;0;EN;<wide> 0037;7;7;7;N;;;;;-FF18;FULLWIDTH DIGIT EIGHT;Nd;0;EN;<wide> 0038;8;8;8;N;;;;;-FF19;FULLWIDTH DIGIT NINE;Nd;0;EN;<wide> 0039;9;9;9;N;;;;;-FF1A;FULLWIDTH COLON;Po;0;CS;<wide> 003A;;;;N;;;;;-FF1B;FULLWIDTH SEMICOLON;Po;0;ON;<wide> 003B;;;;N;;;;;-FF1C;FULLWIDTH LESS-THAN SIGN;Sm;0;ON;<wide> 003C;;;;Y;;;;;-FF1D;FULLWIDTH EQUALS SIGN;Sm;0;ON;<wide> 003D;;;;N;;;;;-FF1E;FULLWIDTH GREATER-THAN SIGN;Sm;0;ON;<wide> 003E;;;;Y;;;;;-FF1F;FULLWIDTH QUESTION MARK;Po;0;ON;<wide> 003F;;;;N;;;;;-FF20;FULLWIDTH COMMERCIAL AT;Po;0;ON;<wide> 0040;;;;N;;;;;-FF21;FULLWIDTH LATIN CAPITAL LETTER A;Lu;0;L;<wide> 0041;;;;N;;;;FF41;-FF22;FULLWIDTH LATIN CAPITAL LETTER B;Lu;0;L;<wide> 0042;;;;N;;;;FF42;-FF23;FULLWIDTH LATIN CAPITAL LETTER C;Lu;0;L;<wide> 0043;;;;N;;;;FF43;-FF24;FULLWIDTH LATIN CAPITAL LETTER D;Lu;0;L;<wide> 0044;;;;N;;;;FF44;-FF25;FULLWIDTH LATIN CAPITAL LETTER E;Lu;0;L;<wide> 0045;;;;N;;;;FF45;-FF26;FULLWIDTH LATIN CAPITAL LETTER F;Lu;0;L;<wide> 0046;;;;N;;;;FF46;-FF27;FULLWIDTH LATIN CAPITAL LETTER G;Lu;0;L;<wide> 0047;;;;N;;;;FF47;-FF28;FULLWIDTH LATIN CAPITAL LETTER H;Lu;0;L;<wide> 0048;;;;N;;;;FF48;-FF29;FULLWIDTH LATIN CAPITAL LETTER I;Lu;0;L;<wide> 0049;;;;N;;;;FF49;-FF2A;FULLWIDTH LATIN CAPITAL LETTER J;Lu;0;L;<wide> 004A;;;;N;;;;FF4A;-FF2B;FULLWIDTH LATIN CAPITAL LETTER K;Lu;0;L;<wide> 004B;;;;N;;;;FF4B;-FF2C;FULLWIDTH LATIN CAPITAL LETTER L;Lu;0;L;<wide> 004C;;;;N;;;;FF4C;-FF2D;FULLWIDTH LATIN CAPITAL LETTER M;Lu;0;L;<wide> 004D;;;;N;;;;FF4D;-FF2E;FULLWIDTH LATIN CAPITAL LETTER N;Lu;0;L;<wide> 004E;;;;N;;;;FF4E;-FF2F;FULLWIDTH LATIN CAPITAL LETTER O;Lu;0;L;<wide> 004F;;;;N;;;;FF4F;-FF30;FULLWIDTH LATIN CAPITAL LETTER P;Lu;0;L;<wide> 0050;;;;N;;;;FF50;-FF31;FULLWIDTH LATIN CAPITAL LETTER Q;Lu;0;L;<wide> 0051;;;;N;;;;FF51;-FF32;FULLWIDTH LATIN CAPITAL LETTER R;Lu;0;L;<wide> 0052;;;;N;;;;FF52;-FF33;FULLWIDTH LATIN CAPITAL LETTER S;Lu;0;L;<wide> 0053;;;;N;;;;FF53;-FF34;FULLWIDTH LATIN CAPITAL LETTER T;Lu;0;L;<wide> 0054;;;;N;;;;FF54;-FF35;FULLWIDTH LATIN CAPITAL LETTER U;Lu;0;L;<wide> 0055;;;;N;;;;FF55;-FF36;FULLWIDTH LATIN CAPITAL LETTER V;Lu;0;L;<wide> 0056;;;;N;;;;FF56;-FF37;FULLWIDTH LATIN CAPITAL LETTER W;Lu;0;L;<wide> 0057;;;;N;;;;FF57;-FF38;FULLWIDTH LATIN CAPITAL LETTER X;Lu;0;L;<wide> 0058;;;;N;;;;FF58;-FF39;FULLWIDTH LATIN CAPITAL LETTER Y;Lu;0;L;<wide> 0059;;;;N;;;;FF59;-FF3A;FULLWIDTH LATIN CAPITAL LETTER Z;Lu;0;L;<wide> 005A;;;;N;;;;FF5A;-FF3B;FULLWIDTH LEFT SQUARE BRACKET;Ps;0;ON;<wide> 005B;;;;Y;FULLWIDTH OPENING SQUARE BRACKET;;;;-FF3C;FULLWIDTH REVERSE SOLIDUS;Po;0;ON;<wide> 005C;;;;N;FULLWIDTH BACKSLASH;;;;-FF3D;FULLWIDTH RIGHT SQUARE BRACKET;Pe;0;ON;<wide> 005D;;;;Y;FULLWIDTH CLOSING SQUARE BRACKET;;;;-FF3E;FULLWIDTH CIRCUMFLEX ACCENT;Sk;0;ON;<wide> 005E;;;;N;FULLWIDTH SPACING CIRCUMFLEX;;;;-FF3F;FULLWIDTH LOW LINE;Pc;0;ON;<wide> 005F;;;;N;FULLWIDTH SPACING UNDERSCORE;;;;-FF40;FULLWIDTH GRAVE ACCENT;Sk;0;ON;<wide> 0060;;;;N;FULLWIDTH SPACING GRAVE;;;;-FF41;FULLWIDTH LATIN SMALL LETTER A;Ll;0;L;<wide> 0061;;;;N;;;FF21;;FF21-FF42;FULLWIDTH LATIN SMALL LETTER B;Ll;0;L;<wide> 0062;;;;N;;;FF22;;FF22-FF43;FULLWIDTH LATIN SMALL LETTER C;Ll;0;L;<wide> 0063;;;;N;;;FF23;;FF23-FF44;FULLWIDTH LATIN SMALL LETTER D;Ll;0;L;<wide> 0064;;;;N;;;FF24;;FF24-FF45;FULLWIDTH LATIN SMALL LETTER E;Ll;0;L;<wide> 0065;;;;N;;;FF25;;FF25-FF46;FULLWIDTH LATIN SMALL LETTER F;Ll;0;L;<wide> 0066;;;;N;;;FF26;;FF26-FF47;FULLWIDTH LATIN SMALL LETTER G;Ll;0;L;<wide> 0067;;;;N;;;FF27;;FF27-FF48;FULLWIDTH LATIN SMALL LETTER H;Ll;0;L;<wide> 0068;;;;N;;;FF28;;FF28-FF49;FULLWIDTH LATIN SMALL LETTER I;Ll;0;L;<wide> 0069;;;;N;;;FF29;;FF29-FF4A;FULLWIDTH LATIN SMALL LETTER J;Ll;0;L;<wide> 006A;;;;N;;;FF2A;;FF2A-FF4B;FULLWIDTH LATIN SMALL LETTER K;Ll;0;L;<wide> 006B;;;;N;;;FF2B;;FF2B-FF4C;FULLWIDTH LATIN SMALL LETTER L;Ll;0;L;<wide> 006C;;;;N;;;FF2C;;FF2C-FF4D;FULLWIDTH LATIN SMALL LETTER M;Ll;0;L;<wide> 006D;;;;N;;;FF2D;;FF2D-FF4E;FULLWIDTH LATIN SMALL LETTER N;Ll;0;L;<wide> 006E;;;;N;;;FF2E;;FF2E-FF4F;FULLWIDTH LATIN SMALL LETTER O;Ll;0;L;<wide> 006F;;;;N;;;FF2F;;FF2F-FF50;FULLWIDTH LATIN SMALL LETTER P;Ll;0;L;<wide> 0070;;;;N;;;FF30;;FF30-FF51;FULLWIDTH LATIN SMALL LETTER Q;Ll;0;L;<wide> 0071;;;;N;;;FF31;;FF31-FF52;FULLWIDTH LATIN SMALL LETTER R;Ll;0;L;<wide> 0072;;;;N;;;FF32;;FF32-FF53;FULLWIDTH LATIN SMALL LETTER S;Ll;0;L;<wide> 0073;;;;N;;;FF33;;FF33-FF54;FULLWIDTH LATIN SMALL LETTER T;Ll;0;L;<wide> 0074;;;;N;;;FF34;;FF34-FF55;FULLWIDTH LATIN SMALL LETTER U;Ll;0;L;<wide> 0075;;;;N;;;FF35;;FF35-FF56;FULLWIDTH LATIN SMALL LETTER V;Ll;0;L;<wide> 0076;;;;N;;;FF36;;FF36-FF57;FULLWIDTH LATIN SMALL LETTER W;Ll;0;L;<wide> 0077;;;;N;;;FF37;;FF37-FF58;FULLWIDTH LATIN SMALL LETTER X;Ll;0;L;<wide> 0078;;;;N;;;FF38;;FF38-FF59;FULLWIDTH LATIN SMALL LETTER Y;Ll;0;L;<wide> 0079;;;;N;;;FF39;;FF39-FF5A;FULLWIDTH LATIN SMALL LETTER Z;Ll;0;L;<wide> 007A;;;;N;;;FF3A;;FF3A-FF5B;FULLWIDTH LEFT CURLY BRACKET;Ps;0;ON;<wide> 007B;;;;Y;FULLWIDTH OPENING CURLY BRACKET;;;;-FF5C;FULLWIDTH VERTICAL LINE;Sm;0;ON;<wide> 007C;;;;N;FULLWIDTH VERTICAL BAR;;;;-FF5D;FULLWIDTH RIGHT CURLY BRACKET;Pe;0;ON;<wide> 007D;;;;Y;FULLWIDTH CLOSING CURLY BRACKET;;;;-FF5E;FULLWIDTH TILDE;Sm;0;ON;<wide> 007E;;;;N;FULLWIDTH SPACING TILDE;;;;-FF5F;FULLWIDTH LEFT WHITE PARENTHESIS;Ps;0;ON;<wide> 2985;;;;Y;;*;;;-FF60;FULLWIDTH RIGHT WHITE PARENTHESIS;Pe;0;ON;<wide> 2986;;;;Y;;*;;;-FF61;HALFWIDTH IDEOGRAPHIC FULL STOP;Po;0;ON;<narrow> 3002;;;;N;HALFWIDTH IDEOGRAPHIC PERIOD;;;;-FF62;HALFWIDTH LEFT CORNER BRACKET;Ps;0;ON;<narrow> 300C;;;;Y;HALFWIDTH OPENING CORNER BRACKET;;;;-FF63;HALFWIDTH RIGHT CORNER BRACKET;Pe;0;ON;<narrow> 300D;;;;Y;HALFWIDTH CLOSING CORNER BRACKET;;;;-FF64;HALFWIDTH IDEOGRAPHIC COMMA;Po;0;ON;<narrow> 3001;;;;N;;;;;-FF65;HALFWIDTH KATAKANA MIDDLE DOT;Po;0;ON;<narrow> 30FB;;;;N;;;;;-FF66;HALFWIDTH KATAKANA LETTER WO;Lo;0;L;<narrow> 30F2;;;;N;;;;;-FF67;HALFWIDTH KATAKANA LETTER SMALL A;Lo;0;L;<narrow> 30A1;;;;N;;;;;-FF68;HALFWIDTH KATAKANA LETTER SMALL I;Lo;0;L;<narrow> 30A3;;;;N;;;;;-FF69;HALFWIDTH KATAKANA LETTER SMALL U;Lo;0;L;<narrow> 30A5;;;;N;;;;;-FF6A;HALFWIDTH KATAKANA LETTER SMALL E;Lo;0;L;<narrow> 30A7;;;;N;;;;;-FF6B;HALFWIDTH KATAKANA LETTER SMALL O;Lo;0;L;<narrow> 30A9;;;;N;;;;;-FF6C;HALFWIDTH KATAKANA LETTER SMALL YA;Lo;0;L;<narrow> 30E3;;;;N;;;;;-FF6D;HALFWIDTH KATAKANA LETTER SMALL YU;Lo;0;L;<narrow> 30E5;;;;N;;;;;-FF6E;HALFWIDTH KATAKANA LETTER SMALL YO;Lo;0;L;<narrow> 30E7;;;;N;;;;;-FF6F;HALFWIDTH KATAKANA LETTER SMALL TU;Lo;0;L;<narrow> 30C3;;;;N;;;;;-FF70;HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK;Lm;0;L;<narrow> 30FC;;;;N;;;;;-FF71;HALFWIDTH KATAKANA LETTER A;Lo;0;L;<narrow> 30A2;;;;N;;;;;-FF72;HALFWIDTH KATAKANA LETTER I;Lo;0;L;<narrow> 30A4;;;;N;;;;;-FF73;HALFWIDTH KATAKANA LETTER U;Lo;0;L;<narrow> 30A6;;;;N;;;;;-FF74;HALFWIDTH KATAKANA LETTER E;Lo;0;L;<narrow> 30A8;;;;N;;;;;-FF75;HALFWIDTH KATAKANA LETTER O;Lo;0;L;<narrow> 30AA;;;;N;;;;;-FF76;HALFWIDTH KATAKANA LETTER KA;Lo;0;L;<narrow> 30AB;;;;N;;;;;-FF77;HALFWIDTH KATAKANA LETTER KI;Lo;0;L;<narrow> 30AD;;;;N;;;;;-FF78;HALFWIDTH KATAKANA LETTER KU;Lo;0;L;<narrow> 30AF;;;;N;;;;;-FF79;HALFWIDTH KATAKANA LETTER KE;Lo;0;L;<narrow> 30B1;;;;N;;;;;-FF7A;HALFWIDTH KATAKANA LETTER KO;Lo;0;L;<narrow> 30B3;;;;N;;;;;-FF7B;HALFWIDTH KATAKANA LETTER SA;Lo;0;L;<narrow> 30B5;;;;N;;;;;-FF7C;HALFWIDTH KATAKANA LETTER SI;Lo;0;L;<narrow> 30B7;;;;N;;;;;-FF7D;HALFWIDTH KATAKANA LETTER SU;Lo;0;L;<narrow> 30B9;;;;N;;;;;-FF7E;HALFWIDTH KATAKANA LETTER SE;Lo;0;L;<narrow> 30BB;;;;N;;;;;-FF7F;HALFWIDTH KATAKANA LETTER SO;Lo;0;L;<narrow> 30BD;;;;N;;;;;-FF80;HALFWIDTH KATAKANA LETTER TA;Lo;0;L;<narrow> 30BF;;;;N;;;;;-FF81;HALFWIDTH KATAKANA LETTER TI;Lo;0;L;<narrow> 30C1;;;;N;;;;;-FF82;HALFWIDTH KATAKANA LETTER TU;Lo;0;L;<narrow> 30C4;;;;N;;;;;-FF83;HALFWIDTH KATAKANA LETTER TE;Lo;0;L;<narrow> 30C6;;;;N;;;;;-FF84;HALFWIDTH KATAKANA LETTER TO;Lo;0;L;<narrow> 30C8;;;;N;;;;;-FF85;HALFWIDTH KATAKANA LETTER NA;Lo;0;L;<narrow> 30CA;;;;N;;;;;-FF86;HALFWIDTH KATAKANA LETTER NI;Lo;0;L;<narrow> 30CB;;;;N;;;;;-FF87;HALFWIDTH KATAKANA LETTER NU;Lo;0;L;<narrow> 30CC;;;;N;;;;;-FF88;HALFWIDTH KATAKANA LETTER NE;Lo;0;L;<narrow> 30CD;;;;N;;;;;-FF89;HALFWIDTH KATAKANA LETTER NO;Lo;0;L;<narrow> 30CE;;;;N;;;;;-FF8A;HALFWIDTH KATAKANA LETTER HA;Lo;0;L;<narrow> 30CF;;;;N;;;;;-FF8B;HALFWIDTH KATAKANA LETTER HI;Lo;0;L;<narrow> 30D2;;;;N;;;;;-FF8C;HALFWIDTH KATAKANA LETTER HU;Lo;0;L;<narrow> 30D5;;;;N;;;;;-FF8D;HALFWIDTH KATAKANA LETTER HE;Lo;0;L;<narrow> 30D8;;;;N;;;;;-FF8E;HALFWIDTH KATAKANA LETTER HO;Lo;0;L;<narrow> 30DB;;;;N;;;;;-FF8F;HALFWIDTH KATAKANA LETTER MA;Lo;0;L;<narrow> 30DE;;;;N;;;;;-FF90;HALFWIDTH KATAKANA LETTER MI;Lo;0;L;<narrow> 30DF;;;;N;;;;;-FF91;HALFWIDTH KATAKANA LETTER MU;Lo;0;L;<narrow> 30E0;;;;N;;;;;-FF92;HALFWIDTH KATAKANA LETTER ME;Lo;0;L;<narrow> 30E1;;;;N;;;;;-FF93;HALFWIDTH KATAKANA LETTER MO;Lo;0;L;<narrow> 30E2;;;;N;;;;;-FF94;HALFWIDTH KATAKANA LETTER YA;Lo;0;L;<narrow> 30E4;;;;N;;;;;-FF95;HALFWIDTH KATAKANA LETTER YU;Lo;0;L;<narrow> 30E6;;;;N;;;;;-FF96;HALFWIDTH KATAKANA LETTER YO;Lo;0;L;<narrow> 30E8;;;;N;;;;;-FF97;HALFWIDTH KATAKANA LETTER RA;Lo;0;L;<narrow> 30E9;;;;N;;;;;-FF98;HALFWIDTH KATAKANA LETTER RI;Lo;0;L;<narrow> 30EA;;;;N;;;;;-FF99;HALFWIDTH KATAKANA LETTER RU;Lo;0;L;<narrow> 30EB;;;;N;;;;;-FF9A;HALFWIDTH KATAKANA LETTER RE;Lo;0;L;<narrow> 30EC;;;;N;;;;;-FF9B;HALFWIDTH KATAKANA LETTER RO;Lo;0;L;<narrow> 30ED;;;;N;;;;;-FF9C;HALFWIDTH KATAKANA LETTER WA;Lo;0;L;<narrow> 30EF;;;;N;;;;;-FF9D;HALFWIDTH KATAKANA LETTER N;Lo;0;L;<narrow> 30F3;;;;N;;;;;-FF9E;HALFWIDTH KATAKANA VOICED SOUND MARK;Lm;0;L;<narrow> 3099;;;;N;;halfwidth katakana-hiragana voiced sound mark;;;-FF9F;HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK;Lm;0;L;<narrow> 309A;;;;N;;halfwidth katakana-hiragana semi-voiced sound mark;;;-FFA0;HALFWIDTH HANGUL FILLER;Lo;0;L;<narrow> 3164;;;;N;HALFWIDTH HANGUL CAE OM;;;;-FFA1;HALFWIDTH HANGUL LETTER KIYEOK;Lo;0;L;<narrow> 3131;;;;N;HALFWIDTH HANGUL LETTER GIYEOG;;;;-FFA2;HALFWIDTH HANGUL LETTER SSANGKIYEOK;Lo;0;L;<narrow> 3132;;;;N;HALFWIDTH HANGUL LETTER SSANG GIYEOG;;;;-FFA3;HALFWIDTH HANGUL LETTER KIYEOK-SIOS;Lo;0;L;<narrow> 3133;;;;N;HALFWIDTH HANGUL LETTER GIYEOG SIOS;;;;-FFA4;HALFWIDTH HANGUL LETTER NIEUN;Lo;0;L;<narrow> 3134;;;;N;;;;;-FFA5;HALFWIDTH HANGUL LETTER NIEUN-CIEUC;Lo;0;L;<narrow> 3135;;;;N;HALFWIDTH HANGUL LETTER NIEUN JIEUJ;;;;-FFA6;HALFWIDTH HANGUL LETTER NIEUN-HIEUH;Lo;0;L;<narrow> 3136;;;;N;HALFWIDTH HANGUL LETTER NIEUN HIEUH;;;;-FFA7;HALFWIDTH HANGUL LETTER TIKEUT;Lo;0;L;<narrow> 3137;;;;N;HALFWIDTH HANGUL LETTER DIGEUD;;;;-FFA8;HALFWIDTH HANGUL LETTER SSANGTIKEUT;Lo;0;L;<narrow> 3138;;;;N;HALFWIDTH HANGUL LETTER SSANG DIGEUD;;;;-FFA9;HALFWIDTH HANGUL LETTER RIEUL;Lo;0;L;<narrow> 3139;;;;N;HALFWIDTH HANGUL LETTER LIEUL;;;;-FFAA;HALFWIDTH HANGUL LETTER RIEUL-KIYEOK;Lo;0;L;<narrow> 313A;;;;N;HALFWIDTH HANGUL LETTER LIEUL GIYEOG;;;;-FFAB;HALFWIDTH HANGUL LETTER RIEUL-MIEUM;Lo;0;L;<narrow> 313B;;;;N;HALFWIDTH HANGUL LETTER LIEUL MIEUM;;;;-FFAC;HALFWIDTH HANGUL LETTER RIEUL-PIEUP;Lo;0;L;<narrow> 313C;;;;N;HALFWIDTH HANGUL LETTER LIEUL BIEUB;;;;-FFAD;HALFWIDTH HANGUL LETTER RIEUL-SIOS;Lo;0;L;<narrow> 313D;;;;N;HALFWIDTH HANGUL LETTER LIEUL SIOS;;;;-FFAE;HALFWIDTH HANGUL LETTER RIEUL-THIEUTH;Lo;0;L;<narrow> 313E;;;;N;HALFWIDTH HANGUL LETTER LIEUL TIEUT;;;;-FFAF;HALFWIDTH HANGUL LETTER RIEUL-PHIEUPH;Lo;0;L;<narrow> 313F;;;;N;HALFWIDTH HANGUL LETTER LIEUL PIEUP;;;;-FFB0;HALFWIDTH HANGUL LETTER RIEUL-HIEUH;Lo;0;L;<narrow> 3140;;;;N;HALFWIDTH HANGUL LETTER LIEUL HIEUH;;;;-FFB1;HALFWIDTH HANGUL LETTER MIEUM;Lo;0;L;<narrow> 3141;;;;N;;;;;-FFB2;HALFWIDTH HANGUL LETTER PIEUP;Lo;0;L;<narrow> 3142;;;;N;HALFWIDTH HANGUL LETTER BIEUB;;;;-FFB3;HALFWIDTH HANGUL LETTER SSANGPIEUP;Lo;0;L;<narrow> 3143;;;;N;HALFWIDTH HANGUL LETTER SSANG BIEUB;;;;-FFB4;HALFWIDTH HANGUL LETTER PIEUP-SIOS;Lo;0;L;<narrow> 3144;;;;N;HALFWIDTH HANGUL LETTER BIEUB SIOS;;;;-FFB5;HALFWIDTH HANGUL LETTER SIOS;Lo;0;L;<narrow> 3145;;;;N;;;;;-FFB6;HALFWIDTH HANGUL LETTER SSANGSIOS;Lo;0;L;<narrow> 3146;;;;N;HALFWIDTH HANGUL LETTER SSANG SIOS;;;;-FFB7;HALFWIDTH HANGUL LETTER IEUNG;Lo;0;L;<narrow> 3147;;;;N;;;;;-FFB8;HALFWIDTH HANGUL LETTER CIEUC;Lo;0;L;<narrow> 3148;;;;N;HALFWIDTH HANGUL LETTER JIEUJ;;;;-FFB9;HALFWIDTH HANGUL LETTER SSANGCIEUC;Lo;0;L;<narrow> 3149;;;;N;HALFWIDTH HANGUL LETTER SSANG JIEUJ;;;;-FFBA;HALFWIDTH HANGUL LETTER CHIEUCH;Lo;0;L;<narrow> 314A;;;;N;HALFWIDTH HANGUL LETTER CIEUC;;;;-FFBB;HALFWIDTH HANGUL LETTER KHIEUKH;Lo;0;L;<narrow> 314B;;;;N;HALFWIDTH HANGUL LETTER KIYEOK;;;;-FFBC;HALFWIDTH HANGUL LETTER THIEUTH;Lo;0;L;<narrow> 314C;;;;N;HALFWIDTH HANGUL LETTER TIEUT;;;;-FFBD;HALFWIDTH HANGUL LETTER PHIEUPH;Lo;0;L;<narrow> 314D;;;;N;HALFWIDTH HANGUL LETTER PIEUP;;;;-FFBE;HALFWIDTH HANGUL LETTER HIEUH;Lo;0;L;<narrow> 314E;;;;N;;;;;-FFC2;HALFWIDTH HANGUL LETTER A;Lo;0;L;<narrow> 314F;;;;N;;;;;-FFC3;HALFWIDTH HANGUL LETTER AE;Lo;0;L;<narrow> 3150;;;;N;;;;;-FFC4;HALFWIDTH HANGUL LETTER YA;Lo;0;L;<narrow> 3151;;;;N;;;;;-FFC5;HALFWIDTH HANGUL LETTER YAE;Lo;0;L;<narrow> 3152;;;;N;;;;;-FFC6;HALFWIDTH HANGUL LETTER EO;Lo;0;L;<narrow> 3153;;;;N;;;;;-FFC7;HALFWIDTH HANGUL LETTER E;Lo;0;L;<narrow> 3154;;;;N;;;;;-FFCA;HALFWIDTH HANGUL LETTER YEO;Lo;0;L;<narrow> 3155;;;;N;;;;;-FFCB;HALFWIDTH HANGUL LETTER YE;Lo;0;L;<narrow> 3156;;;;N;;;;;-FFCC;HALFWIDTH HANGUL LETTER O;Lo;0;L;<narrow> 3157;;;;N;;;;;-FFCD;HALFWIDTH HANGUL LETTER WA;Lo;0;L;<narrow> 3158;;;;N;;;;;-FFCE;HALFWIDTH HANGUL LETTER WAE;Lo;0;L;<narrow> 3159;;;;N;;;;;-FFCF;HALFWIDTH HANGUL LETTER OE;Lo;0;L;<narrow> 315A;;;;N;;;;;-FFD2;HALFWIDTH HANGUL LETTER YO;Lo;0;L;<narrow> 315B;;;;N;;;;;-FFD3;HALFWIDTH HANGUL LETTER U;Lo;0;L;<narrow> 315C;;;;N;;;;;-FFD4;HALFWIDTH HANGUL LETTER WEO;Lo;0;L;<narrow> 315D;;;;N;;;;;-FFD5;HALFWIDTH HANGUL LETTER WE;Lo;0;L;<narrow> 315E;;;;N;;;;;-FFD6;HALFWIDTH HANGUL LETTER WI;Lo;0;L;<narrow> 315F;;;;N;;;;;-FFD7;HALFWIDTH HANGUL LETTER YU;Lo;0;L;<narrow> 3160;;;;N;;;;;-FFDA;HALFWIDTH HANGUL LETTER EU;Lo;0;L;<narrow> 3161;;;;N;;;;;-FFDB;HALFWIDTH HANGUL LETTER YI;Lo;0;L;<narrow> 3162;;;;N;;;;;-FFDC;HALFWIDTH HANGUL LETTER I;Lo;0;L;<narrow> 3163;;;;N;;;;;-FFE0;FULLWIDTH CENT SIGN;Sc;0;ET;<wide> 00A2;;;;N;;;;;-FFE1;FULLWIDTH POUND SIGN;Sc;0;ET;<wide> 00A3;;;;N;;;;;-FFE2;FULLWIDTH NOT SIGN;Sm;0;ON;<wide> 00AC;;;;N;;;;;-FFE3;FULLWIDTH MACRON;Sk;0;ON;<wide> 00AF;;;;N;FULLWIDTH SPACING MACRON;*;;;-FFE4;FULLWIDTH BROKEN BAR;So;0;ON;<wide> 00A6;;;;N;FULLWIDTH BROKEN VERTICAL BAR;;;;-FFE5;FULLWIDTH YEN SIGN;Sc;0;ET;<wide> 00A5;;;;N;;;;;-FFE6;FULLWIDTH WON SIGN;Sc;0;ET;<wide> 20A9;;;;N;;;;;-FFE8;HALFWIDTH FORMS LIGHT VERTICAL;So;0;ON;<narrow> 2502;;;;N;;;;;-FFE9;HALFWIDTH LEFTWARDS ARROW;Sm;0;ON;<narrow> 2190;;;;N;;;;;-FFEA;HALFWIDTH UPWARDS ARROW;Sm;0;ON;<narrow> 2191;;;;N;;;;;-FFEB;HALFWIDTH RIGHTWARDS ARROW;Sm;0;ON;<narrow> 2192;;;;N;;;;;-FFEC;HALFWIDTH DOWNWARDS ARROW;Sm;0;ON;<narrow> 2193;;;;N;;;;;-FFED;HALFWIDTH BLACK SQUARE;So;0;ON;<narrow> 25A0;;;;N;;;;;-FFEE;HALFWIDTH WHITE CIRCLE;So;0;ON;<narrow> 25CB;;;;N;;;;;-FFF9;INTERLINEAR ANNOTATION ANCHOR;Cf;0;ON;;;;;N;;;;;-FFFA;INTERLINEAR ANNOTATION SEPARATOR;Cf;0;ON;;;;;N;;;;;-FFFB;INTERLINEAR ANNOTATION TERMINATOR;Cf;0;ON;;;;;N;;;;;-FFFC;OBJECT REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;-FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;-10000;LINEAR B SYLLABLE B008 A;Lo;0;L;;;;;N;;;;;-10001;LINEAR B SYLLABLE B038 E;Lo;0;L;;;;;N;;;;;-10002;LINEAR B SYLLABLE B028 I;Lo;0;L;;;;;N;;;;;-10003;LINEAR B SYLLABLE B061 O;Lo;0;L;;;;;N;;;;;-10004;LINEAR B SYLLABLE B010 U;Lo;0;L;;;;;N;;;;;-10005;LINEAR B SYLLABLE B001 DA;Lo;0;L;;;;;N;;;;;-10006;LINEAR B SYLLABLE B045 DE;Lo;0;L;;;;;N;;;;;-10007;LINEAR B SYLLABLE B007 DI;Lo;0;L;;;;;N;;;;;-10008;LINEAR B SYLLABLE B014 DO;Lo;0;L;;;;;N;;;;;-10009;LINEAR B SYLLABLE B051 DU;Lo;0;L;;;;;N;;;;;-1000A;LINEAR B SYLLABLE B057 JA;Lo;0;L;;;;;N;;;;;-1000B;LINEAR B SYLLABLE B046 JE;Lo;0;L;;;;;N;;;;;-1000D;LINEAR B SYLLABLE B036 JO;Lo;0;L;;;;;N;;;;;-1000E;LINEAR B SYLLABLE B065 JU;Lo;0;L;;;;;N;;;;;-1000F;LINEAR B SYLLABLE B077 KA;Lo;0;L;;;;;N;;;;;-10010;LINEAR B SYLLABLE B044 KE;Lo;0;L;;;;;N;;;;;-10011;LINEAR B SYLLABLE B067 KI;Lo;0;L;;;;;N;;;;;-10012;LINEAR B SYLLABLE B070 KO;Lo;0;L;;;;;N;;;;;-10013;LINEAR B SYLLABLE B081 KU;Lo;0;L;;;;;N;;;;;-10014;LINEAR B SYLLABLE B080 MA;Lo;0;L;;;;;N;;;;;-10015;LINEAR B SYLLABLE B013 ME;Lo;0;L;;;;;N;;;;;-10016;LINEAR B SYLLABLE B073 MI;Lo;0;L;;;;;N;;;;;-10017;LINEAR B SYLLABLE B015 MO;Lo;0;L;;;;;N;;;;;-10018;LINEAR B SYLLABLE B023 MU;Lo;0;L;;;;;N;;;;;-10019;LINEAR B SYLLABLE B006 NA;Lo;0;L;;;;;N;;;;;-1001A;LINEAR B SYLLABLE B024 NE;Lo;0;L;;;;;N;;;;;-1001B;LINEAR B SYLLABLE B030 NI;Lo;0;L;;;;;N;;;;;-1001C;LINEAR B SYLLABLE B052 NO;Lo;0;L;;;;;N;;;;;-1001D;LINEAR B SYLLABLE B055 NU;Lo;0;L;;;;;N;;;;;-1001E;LINEAR B SYLLABLE B003 PA;Lo;0;L;;;;;N;;;;;-1001F;LINEAR B SYLLABLE B072 PE;Lo;0;L;;;;;N;;;;;-10020;LINEAR B SYLLABLE B039 PI;Lo;0;L;;;;;N;;;;;-10021;LINEAR B SYLLABLE B011 PO;Lo;0;L;;;;;N;;;;;-10022;LINEAR B SYLLABLE B050 PU;Lo;0;L;;;;;N;;;;;-10023;LINEAR B SYLLABLE B016 QA;Lo;0;L;;;;;N;;;;;-10024;LINEAR B SYLLABLE B078 QE;Lo;0;L;;;;;N;;;;;-10025;LINEAR B SYLLABLE B021 QI;Lo;0;L;;;;;N;;;;;-10026;LINEAR B SYLLABLE B032 QO;Lo;0;L;;;;;N;;;;;-10028;LINEAR B SYLLABLE B060 RA;Lo;0;L;;;;;N;;;;;-10029;LINEAR B SYLLABLE B027 RE;Lo;0;L;;;;;N;;;;;-1002A;LINEAR B SYLLABLE B053 RI;Lo;0;L;;;;;N;;;;;-1002B;LINEAR B SYLLABLE B002 RO;Lo;0;L;;;;;N;;;;;-1002C;LINEAR B SYLLABLE B026 RU;Lo;0;L;;;;;N;;;;;-1002D;LINEAR B SYLLABLE B031 SA;Lo;0;L;;;;;N;;;;;-1002E;LINEAR B SYLLABLE B009 SE;Lo;0;L;;;;;N;;;;;-1002F;LINEAR B SYLLABLE B041 SI;Lo;0;L;;;;;N;;;;;-10030;LINEAR B SYLLABLE B012 SO;Lo;0;L;;;;;N;;;;;-10031;LINEAR B SYLLABLE B058 SU;Lo;0;L;;;;;N;;;;;-10032;LINEAR B SYLLABLE B059 TA;Lo;0;L;;;;;N;;;;;-10033;LINEAR B SYLLABLE B004 TE;Lo;0;L;;;;;N;;;;;-10034;LINEAR B SYLLABLE B037 TI;Lo;0;L;;;;;N;;;;;-10035;LINEAR B SYLLABLE B005 TO;Lo;0;L;;;;;N;;;;;-10036;LINEAR B SYLLABLE B069 TU;Lo;0;L;;;;;N;;;;;-10037;LINEAR B SYLLABLE B054 WA;Lo;0;L;;;;;N;;;;;-10038;LINEAR B SYLLABLE B075 WE;Lo;0;L;;;;;N;;;;;-10039;LINEAR B SYLLABLE B040 WI;Lo;0;L;;;;;N;;;;;-1003A;LINEAR B SYLLABLE B042 WO;Lo;0;L;;;;;N;;;;;-1003C;LINEAR B SYLLABLE B017 ZA;Lo;0;L;;;;;N;;;;;-1003D;LINEAR B SYLLABLE B074 ZE;Lo;0;L;;;;;N;;;;;-1003F;LINEAR B SYLLABLE B020 ZO;Lo;0;L;;;;;N;;;;;-10040;LINEAR B SYLLABLE B025 A2;Lo;0;L;;;;;N;;;;;-10041;LINEAR B SYLLABLE B043 A3;Lo;0;L;;;;;N;;;;;-10042;LINEAR B SYLLABLE B085 AU;Lo;0;L;;;;;N;;;;;-10043;LINEAR B SYLLABLE B071 DWE;Lo;0;L;;;;;N;;;;;-10044;LINEAR B SYLLABLE B090 DWO;Lo;0;L;;;;;N;;;;;-10045;LINEAR B SYLLABLE B048 NWA;Lo;0;L;;;;;N;;;;;-10046;LINEAR B SYLLABLE B029 PU2;Lo;0;L;;;;;N;;;;;-10047;LINEAR B SYLLABLE B062 PTE;Lo;0;L;;;;;N;;;;;-10048;LINEAR B SYLLABLE B076 RA2;Lo;0;L;;;;;N;;;;;-10049;LINEAR B SYLLABLE B033 RA3;Lo;0;L;;;;;N;;;;;-1004A;LINEAR B SYLLABLE B068 RO2;Lo;0;L;;;;;N;;;;;-1004B;LINEAR B SYLLABLE B066 TA2;Lo;0;L;;;;;N;;;;;-1004C;LINEAR B SYLLABLE B087 TWE;Lo;0;L;;;;;N;;;;;-1004D;LINEAR B SYLLABLE B091 TWO;Lo;0;L;;;;;N;;;;;-10050;LINEAR B SYMBOL B018;Lo;0;L;;;;;N;;;;;-10051;LINEAR B SYMBOL B019;Lo;0;L;;;;;N;;;;;-10052;LINEAR B SYMBOL B022;Lo;0;L;;;;;N;;;;;-10053;LINEAR B SYMBOL B034;Lo;0;L;;;;;N;;;;;-10054;LINEAR B SYMBOL B047;Lo;0;L;;;;;N;;;;;-10055;LINEAR B SYMBOL B049;Lo;0;L;;;;;N;;;;;-10056;LINEAR B SYMBOL B056;Lo;0;L;;;;;N;;;;;-10057;LINEAR B SYMBOL B063;Lo;0;L;;;;;N;;;;;-10058;LINEAR B SYMBOL B064;Lo;0;L;;;;;N;;;;;-10059;LINEAR B SYMBOL B079;Lo;0;L;;;;;N;;;;;-1005A;LINEAR B SYMBOL B082;Lo;0;L;;;;;N;;;;;-1005B;LINEAR B SYMBOL B083;Lo;0;L;;;;;N;;;;;-1005C;LINEAR B SYMBOL B086;Lo;0;L;;;;;N;;;;;-1005D;LINEAR B SYMBOL B089;Lo;0;L;;;;;N;;;;;-10080;LINEAR B IDEOGRAM B100 MAN;Lo;0;L;;;;;N;;;;;-10081;LINEAR B IDEOGRAM B102 WOMAN;Lo;0;L;;;;;N;;;;;-10082;LINEAR B IDEOGRAM B104 DEER;Lo;0;L;;;;;N;;;;;-10083;LINEAR B IDEOGRAM B105 EQUID;Lo;0;L;;;;;N;;;;;-10084;LINEAR B IDEOGRAM B105F MARE;Lo;0;L;;;;;N;;;;;-10085;LINEAR B IDEOGRAM B105M STALLION;Lo;0;L;;;;;N;;;;;-10086;LINEAR B IDEOGRAM B106F EWE;Lo;0;L;;;;;N;;;;;-10087;LINEAR B IDEOGRAM B106M RAM;Lo;0;L;;;;;N;;;;;-10088;LINEAR B IDEOGRAM B107F SHE-GOAT;Lo;0;L;;;;;N;;;;;-10089;LINEAR B IDEOGRAM B107M HE-GOAT;Lo;0;L;;;;;N;;;;;-1008A;LINEAR B IDEOGRAM B108F SOW;Lo;0;L;;;;;N;;;;;-1008B;LINEAR B IDEOGRAM B108M BOAR;Lo;0;L;;;;;N;;;;;-1008C;LINEAR B IDEOGRAM B109F COW;Lo;0;L;;;;;N;;;;;-1008D;LINEAR B IDEOGRAM B109M BULL;Lo;0;L;;;;;N;;;;;-1008E;LINEAR B IDEOGRAM B120 WHEAT;Lo;0;L;;;;;N;;;;;-1008F;LINEAR B IDEOGRAM B121 BARLEY;Lo;0;L;;;;;N;;;;;-10090;LINEAR B IDEOGRAM B122 OLIVE;Lo;0;L;;;;;N;;;;;-10091;LINEAR B IDEOGRAM B123 SPICE;Lo;0;L;;;;;N;;;;;-10092;LINEAR B IDEOGRAM B125 CYPERUS;Lo;0;L;;;;;N;;;;;-10093;LINEAR B MONOGRAM B127 KAPO;Lo;0;L;;;;;N;;;;;-10094;LINEAR B MONOGRAM B128 KANAKO;Lo;0;L;;;;;N;;;;;-10095;LINEAR B IDEOGRAM B130 OIL;Lo;0;L;;;;;N;;;;;-10096;LINEAR B IDEOGRAM B131 WINE;Lo;0;L;;;;;N;;;;;-10097;LINEAR B IDEOGRAM B132;Lo;0;L;;;;;N;;;;;-10098;LINEAR B MONOGRAM B133 AREPA;Lo;0;L;;;;;N;;;;;-10099;LINEAR B MONOGRAM B135 MERI;Lo;0;L;;;;;N;;;;;-1009A;LINEAR B IDEOGRAM B140 BRONZE;Lo;0;L;;;;;N;;;;;-1009B;LINEAR B IDEOGRAM B141 GOLD;Lo;0;L;;;;;N;;;;;-1009C;LINEAR B IDEOGRAM B142;Lo;0;L;;;;;N;;;;;-1009D;LINEAR B IDEOGRAM B145 WOOL;Lo;0;L;;;;;N;;;;;-1009E;LINEAR B IDEOGRAM B146;Lo;0;L;;;;;N;;;;;-1009F;LINEAR B IDEOGRAM B150;Lo;0;L;;;;;N;;;;;-100A0;LINEAR B IDEOGRAM B151 HORN;Lo;0;L;;;;;N;;;;;-100A1;LINEAR B IDEOGRAM B152;Lo;0;L;;;;;N;;;;;-100A2;LINEAR B IDEOGRAM B153;Lo;0;L;;;;;N;;;;;-100A3;LINEAR B IDEOGRAM B154;Lo;0;L;;;;;N;;;;;-100A4;LINEAR B MONOGRAM B156 TURO2;Lo;0;L;;;;;N;;;;;-100A5;LINEAR B IDEOGRAM B157;Lo;0;L;;;;;N;;;;;-100A6;LINEAR B IDEOGRAM B158;Lo;0;L;;;;;N;;;;;-100A7;LINEAR B IDEOGRAM B159 CLOTH;Lo;0;L;;;;;N;;;;;-100A8;LINEAR B IDEOGRAM B160;Lo;0;L;;;;;N;;;;;-100A9;LINEAR B IDEOGRAM B161;Lo;0;L;;;;;N;;;;;-100AA;LINEAR B IDEOGRAM B162 GARMENT;Lo;0;L;;;;;N;;;;;-100AB;LINEAR B IDEOGRAM B163 ARMOUR;Lo;0;L;;;;;N;;;;;-100AC;LINEAR B IDEOGRAM B164;Lo;0;L;;;;;N;;;;;-100AD;LINEAR B IDEOGRAM B165;Lo;0;L;;;;;N;;;;;-100AE;LINEAR B IDEOGRAM B166;Lo;0;L;;;;;N;;;;;-100AF;LINEAR B IDEOGRAM B167;Lo;0;L;;;;;N;;;;;-100B0;LINEAR B IDEOGRAM B168;Lo;0;L;;;;;N;;;;;-100B1;LINEAR B IDEOGRAM B169;Lo;0;L;;;;;N;;;;;-100B2;LINEAR B IDEOGRAM B170;Lo;0;L;;;;;N;;;;;-100B3;LINEAR B IDEOGRAM B171;Lo;0;L;;;;;N;;;;;-100B4;LINEAR B IDEOGRAM B172;Lo;0;L;;;;;N;;;;;-100B5;LINEAR B IDEOGRAM B173 MONTH;Lo;0;L;;;;;N;;;;;-100B6;LINEAR B IDEOGRAM B174;Lo;0;L;;;;;N;;;;;-100B7;LINEAR B IDEOGRAM B176 TREE;Lo;0;L;;;;;N;;;;;-100B8;LINEAR B IDEOGRAM B177;Lo;0;L;;;;;N;;;;;-100B9;LINEAR B IDEOGRAM B178;Lo;0;L;;;;;N;;;;;-100BA;LINEAR B IDEOGRAM B179;Lo;0;L;;;;;N;;;;;-100BB;LINEAR B IDEOGRAM B180;Lo;0;L;;;;;N;;;;;-100BC;LINEAR B IDEOGRAM B181;Lo;0;L;;;;;N;;;;;-100BD;LINEAR B IDEOGRAM B182;Lo;0;L;;;;;N;;;;;-100BE;LINEAR B IDEOGRAM B183;Lo;0;L;;;;;N;;;;;-100BF;LINEAR B IDEOGRAM B184;Lo;0;L;;;;;N;;;;;-100C0;LINEAR B IDEOGRAM B185;Lo;0;L;;;;;N;;;;;-100C1;LINEAR B IDEOGRAM B189;Lo;0;L;;;;;N;;;;;-100C2;LINEAR B IDEOGRAM B190;Lo;0;L;;;;;N;;;;;-100C3;LINEAR B IDEOGRAM B191 HELMET;Lo;0;L;;;;;N;;;;;-100C4;LINEAR B IDEOGRAM B220 FOOTSTOOL;Lo;0;L;;;;;N;;;;;-100C5;LINEAR B IDEOGRAM B225 BATHTUB;Lo;0;L;;;;;N;;;;;-100C6;LINEAR B IDEOGRAM B230 SPEAR;Lo;0;L;;;;;N;;;;;-100C7;LINEAR B IDEOGRAM B231 ARROW;Lo;0;L;;;;;N;;;;;-100C8;LINEAR B IDEOGRAM B232;Lo;0;L;;;;;N;;;;;-100C9;LINEAR B IDEOGRAM B233 SWORD;Lo;0;L;;;;;N;;pug;;;-100CA;LINEAR B IDEOGRAM B234;Lo;0;L;;;;;N;;;;;-100CB;LINEAR B IDEOGRAM B236;Lo;0;L;;;;;N;;gup;;;-100CC;LINEAR B IDEOGRAM B240 WHEELED CHARIOT;Lo;0;L;;;;;N;;;;;-100CD;LINEAR B IDEOGRAM B241 CHARIOT;Lo;0;L;;;;;N;;;;;-100CE;LINEAR B IDEOGRAM B242 CHARIOT FRAME;Lo;0;L;;;;;N;;;;;-100CF;LINEAR B IDEOGRAM B243 WHEEL;Lo;0;L;;;;;N;;;;;-100D0;LINEAR B IDEOGRAM B245;Lo;0;L;;;;;N;;;;;-100D1;LINEAR B IDEOGRAM B246;Lo;0;L;;;;;N;;;;;-100D2;LINEAR B MONOGRAM B247 DIPTE;Lo;0;L;;;;;N;;;;;-100D3;LINEAR B IDEOGRAM B248;Lo;0;L;;;;;N;;;;;-100D4;LINEAR B IDEOGRAM B249;Lo;0;L;;;;;N;;;;;-100D5;LINEAR B IDEOGRAM B251;Lo;0;L;;;;;N;;;;;-100D6;LINEAR B IDEOGRAM B252;Lo;0;L;;;;;N;;;;;-100D7;LINEAR B IDEOGRAM B253;Lo;0;L;;;;;N;;;;;-100D8;LINEAR B IDEOGRAM B254 DART;Lo;0;L;;;;;N;;;;;-100D9;LINEAR B IDEOGRAM B255;Lo;0;L;;;;;N;;;;;-100DA;LINEAR B IDEOGRAM B256;Lo;0;L;;;;;N;;;;;-100DB;LINEAR B IDEOGRAM B257;Lo;0;L;;;;;N;;;;;-100DC;LINEAR B IDEOGRAM B258;Lo;0;L;;;;;N;;;;;-100DD;LINEAR B IDEOGRAM B259;Lo;0;L;;;;;N;;;;;-100DE;LINEAR B IDEOGRAM VESSEL B155;Lo;0;L;;;;;N;;;;;-100DF;LINEAR B IDEOGRAM VESSEL B200;Lo;0;L;;;;;N;;;;;-100E0;LINEAR B IDEOGRAM VESSEL B201;Lo;0;L;;;;;N;;;;;-100E1;LINEAR B IDEOGRAM VESSEL B202;Lo;0;L;;;;;N;;;;;-100E2;LINEAR B IDEOGRAM VESSEL B203;Lo;0;L;;;;;N;;;;;-100E3;LINEAR B IDEOGRAM VESSEL B204;Lo;0;L;;;;;N;;;;;-100E4;LINEAR B IDEOGRAM VESSEL B205;Lo;0;L;;;;;N;;;;;-100E5;LINEAR B IDEOGRAM VESSEL B206;Lo;0;L;;;;;N;;;;;-100E6;LINEAR B IDEOGRAM VESSEL B207;Lo;0;L;;;;;N;;;;;-100E7;LINEAR B IDEOGRAM VESSEL B208;Lo;0;L;;;;;N;;;;;-100E8;LINEAR B IDEOGRAM VESSEL B209;Lo;0;L;;;;;N;;;;;-100E9;LINEAR B IDEOGRAM VESSEL B210;Lo;0;L;;;;;N;;;;;-100EA;LINEAR B IDEOGRAM VESSEL B211;Lo;0;L;;;;;N;;;;;-100EB;LINEAR B IDEOGRAM VESSEL B212;Lo;0;L;;;;;N;;;;;-100EC;LINEAR B IDEOGRAM VESSEL B213;Lo;0;L;;;;;N;;;;;-100ED;LINEAR B IDEOGRAM VESSEL B214;Lo;0;L;;;;;N;;;;;-100EE;LINEAR B IDEOGRAM VESSEL B215;Lo;0;L;;;;;N;;;;;-100EF;LINEAR B IDEOGRAM VESSEL B216;Lo;0;L;;;;;N;;;;;-100F0;LINEAR B IDEOGRAM VESSEL B217;Lo;0;L;;;;;N;;;;;-100F1;LINEAR B IDEOGRAM VESSEL B218;Lo;0;L;;;;;N;;;;;-100F2;LINEAR B IDEOGRAM VESSEL B219;Lo;0;L;;;;;N;;;;;-100F3;LINEAR B IDEOGRAM VESSEL B221;Lo;0;L;;;;;N;;;;;-100F4;LINEAR B IDEOGRAM VESSEL B222;Lo;0;L;;;;;N;;;;;-100F5;LINEAR B IDEOGRAM VESSEL B226;Lo;0;L;;;;;N;;;;;-100F6;LINEAR B IDEOGRAM VESSEL B227;Lo;0;L;;;;;N;;;;;-100F7;LINEAR B IDEOGRAM VESSEL B228;Lo;0;L;;;;;N;;;;;-100F8;LINEAR B IDEOGRAM VESSEL B229;Lo;0;L;;;;;N;;;;;-100F9;LINEAR B IDEOGRAM VESSEL B250;Lo;0;L;;;;;N;;;;;-100FA;LINEAR B IDEOGRAM VESSEL B305;Lo;0;L;;;;;N;;;;;-10100;AEGEAN WORD SEPARATOR LINE;Po;0;L;;;;;N;;;;;-10101;AEGEAN WORD SEPARATOR DOT;Po;0;ON;;;;;N;;;;;-10102;AEGEAN CHECK MARK;So;0;L;;;;;N;;;;;-10107;AEGEAN NUMBER ONE;No;0;L;;;;1;N;;;;;-10108;AEGEAN NUMBER TWO;No;0;L;;;;2;N;;;;;-10109;AEGEAN NUMBER THREE;No;0;L;;;;3;N;;;;;-1010A;AEGEAN NUMBER FOUR;No;0;L;;;;4;N;;;;;-1010B;AEGEAN NUMBER FIVE;No;0;L;;;;5;N;;;;;-1010C;AEGEAN NUMBER SIX;No;0;L;;;;6;N;;;;;-1010D;AEGEAN NUMBER SEVEN;No;0;L;;;;7;N;;;;;-1010E;AEGEAN NUMBER EIGHT;No;0;L;;;;8;N;;;;;-1010F;AEGEAN NUMBER NINE;No;0;L;;;;9;N;;;;;-10110;AEGEAN NUMBER TEN;No;0;L;;;;10;N;;;;;-10111;AEGEAN NUMBER TWENTY;No;0;L;;;;20;N;;;;;-10112;AEGEAN NUMBER THIRTY;No;0;L;;;;30;N;;;;;-10113;AEGEAN NUMBER FORTY;No;0;L;;;;40;N;;;;;-10114;AEGEAN NUMBER FIFTY;No;0;L;;;;50;N;;;;;-10115;AEGEAN NUMBER SIXTY;No;0;L;;;;60;N;;;;;-10116;AEGEAN NUMBER SEVENTY;No;0;L;;;;70;N;;;;;-10117;AEGEAN NUMBER EIGHTY;No;0;L;;;;80;N;;;;;-10118;AEGEAN NUMBER NINETY;No;0;L;;;;90;N;;;;;-10119;AEGEAN NUMBER ONE HUNDRED;No;0;L;;;;100;N;;;;;-1011A;AEGEAN NUMBER TWO HUNDRED;No;0;L;;;;200;N;;;;;-1011B;AEGEAN NUMBER THREE HUNDRED;No;0;L;;;;300;N;;;;;-1011C;AEGEAN NUMBER FOUR HUNDRED;No;0;L;;;;400;N;;;;;-1011D;AEGEAN NUMBER FIVE HUNDRED;No;0;L;;;;500;N;;;;;-1011E;AEGEAN NUMBER SIX HUNDRED;No;0;L;;;;600;N;;;;;-1011F;AEGEAN NUMBER SEVEN HUNDRED;No;0;L;;;;700;N;;;;;-10120;AEGEAN NUMBER EIGHT HUNDRED;No;0;L;;;;800;N;;;;;-10121;AEGEAN NUMBER NINE HUNDRED;No;0;L;;;;900;N;;;;;-10122;AEGEAN NUMBER ONE THOUSAND;No;0;L;;;;1000;N;;;;;-10123;AEGEAN NUMBER TWO THOUSAND;No;0;L;;;;2000;N;;;;;-10124;AEGEAN NUMBER THREE THOUSAND;No;0;L;;;;3000;N;;;;;-10125;AEGEAN NUMBER FOUR THOUSAND;No;0;L;;;;4000;N;;;;;-10126;AEGEAN NUMBER FIVE THOUSAND;No;0;L;;;;5000;N;;;;;-10127;AEGEAN NUMBER SIX THOUSAND;No;0;L;;;;6000;N;;;;;-10128;AEGEAN NUMBER SEVEN THOUSAND;No;0;L;;;;7000;N;;;;;-10129;AEGEAN NUMBER EIGHT THOUSAND;No;0;L;;;;8000;N;;;;;-1012A;AEGEAN NUMBER NINE THOUSAND;No;0;L;;;;9000;N;;;;;-1012B;AEGEAN NUMBER TEN THOUSAND;No;0;L;;;;10000;N;;;;;-1012C;AEGEAN NUMBER TWENTY THOUSAND;No;0;L;;;;20000;N;;;;;-1012D;AEGEAN NUMBER THIRTY THOUSAND;No;0;L;;;;30000;N;;;;;-1012E;AEGEAN NUMBER FORTY THOUSAND;No;0;L;;;;40000;N;;;;;-1012F;AEGEAN NUMBER FIFTY THOUSAND;No;0;L;;;;50000;N;;;;;-10130;AEGEAN NUMBER SIXTY THOUSAND;No;0;L;;;;60000;N;;;;;-10131;AEGEAN NUMBER SEVENTY THOUSAND;No;0;L;;;;70000;N;;;;;-10132;AEGEAN NUMBER EIGHTY THOUSAND;No;0;L;;;;80000;N;;;;;-10133;AEGEAN NUMBER NINETY THOUSAND;No;0;L;;;;90000;N;;;;;-10137;AEGEAN WEIGHT BASE UNIT;So;0;L;;;;;N;;;;;-10138;AEGEAN WEIGHT FIRST SUBUNIT;So;0;L;;;;;N;;;;;-10139;AEGEAN WEIGHT SECOND SUBUNIT;So;0;L;;;;;N;;;;;-1013A;AEGEAN WEIGHT THIRD SUBUNIT;So;0;L;;;;;N;;;;;-1013B;AEGEAN WEIGHT FOURTH SUBUNIT;So;0;L;;;;;N;;;;;-1013C;AEGEAN DRY MEASURE FIRST SUBUNIT;So;0;L;;;;;N;;;;;-1013D;AEGEAN LIQUID MEASURE FIRST SUBUNIT;So;0;L;;;;;N;;;;;-1013E;AEGEAN MEASURE SECOND SUBUNIT;So;0;L;;;;;N;;;;;-1013F;AEGEAN MEASURE THIRD SUBUNIT;So;0;L;;;;;N;;;;;-10140;GREEK ACROPHONIC ATTIC ONE QUARTER;Nl;0;ON;;;;1/4;N;;;;;-10141;GREEK ACROPHONIC ATTIC ONE HALF;Nl;0;ON;;;;1/2;N;;;;;-10142;GREEK ACROPHONIC ATTIC ONE DRACHMA;Nl;0;ON;;;;1;N;;;;;-10143;GREEK ACROPHONIC ATTIC FIVE;Nl;0;ON;;;;5;N;;;;;-10144;GREEK ACROPHONIC ATTIC FIFTY;Nl;0;ON;;;;50;N;;;;;-10145;GREEK ACROPHONIC ATTIC FIVE HUNDRED;Nl;0;ON;;;;500;N;;;;;-10146;GREEK ACROPHONIC ATTIC FIVE THOUSAND;Nl;0;ON;;;;5000;N;;;;;-10147;GREEK ACROPHONIC ATTIC FIFTY THOUSAND;Nl;0;ON;;;;50000;N;;;;;-10148;GREEK ACROPHONIC ATTIC FIVE TALENTS;Nl;0;ON;;;;5;N;;;;;-10149;GREEK ACROPHONIC ATTIC TEN TALENTS;Nl;0;ON;;;;10;N;;;;;-1014A;GREEK ACROPHONIC ATTIC FIFTY TALENTS;Nl;0;ON;;;;50;N;;;;;-1014B;GREEK ACROPHONIC ATTIC ONE HUNDRED TALENTS;Nl;0;ON;;;;100;N;;;;;-1014C;GREEK ACROPHONIC ATTIC FIVE HUNDRED TALENTS;Nl;0;ON;;;;500;N;;;;;-1014D;GREEK ACROPHONIC ATTIC ONE THOUSAND TALENTS;Nl;0;ON;;;;1000;N;;;;;-1014E;GREEK ACROPHONIC ATTIC FIVE THOUSAND TALENTS;Nl;0;ON;;;;5000;N;;;;;-1014F;GREEK ACROPHONIC ATTIC FIVE STATERS;Nl;0;ON;;;;5;N;;;;;-10150;GREEK ACROPHONIC ATTIC TEN STATERS;Nl;0;ON;;;;10;N;;;;;-10151;GREEK ACROPHONIC ATTIC FIFTY STATERS;Nl;0;ON;;;;50;N;;;;;-10152;GREEK ACROPHONIC ATTIC ONE HUNDRED STATERS;Nl;0;ON;;;;100;N;;;;;-10153;GREEK ACROPHONIC ATTIC FIVE HUNDRED STATERS;Nl;0;ON;;;;500;N;;;;;-10154;GREEK ACROPHONIC ATTIC ONE THOUSAND STATERS;Nl;0;ON;;;;1000;N;;;;;-10155;GREEK ACROPHONIC ATTIC TEN THOUSAND STATERS;Nl;0;ON;;;;10000;N;;;;;-10156;GREEK ACROPHONIC ATTIC FIFTY THOUSAND STATERS;Nl;0;ON;;;;50000;N;;;;;-10157;GREEK ACROPHONIC ATTIC TEN MNAS;Nl;0;ON;;;;10;N;;;;;-10158;GREEK ACROPHONIC HERAEUM ONE PLETHRON;Nl;0;ON;;;;1;N;;;;;-10159;GREEK ACROPHONIC THESPIAN ONE;Nl;0;ON;;;;1;N;;;;;-1015A;GREEK ACROPHONIC HERMIONIAN ONE;Nl;0;ON;;;;1;N;;;;;-1015B;GREEK ACROPHONIC EPIDAUREAN TWO;Nl;0;ON;;;;2;N;;;;;-1015C;GREEK ACROPHONIC THESPIAN TWO;Nl;0;ON;;;;2;N;;;;;-1015D;GREEK ACROPHONIC CYRENAIC TWO DRACHMAS;Nl;0;ON;;;;2;N;;;;;-1015E;GREEK ACROPHONIC EPIDAUREAN TWO DRACHMAS;Nl;0;ON;;;;2;N;;;;;-1015F;GREEK ACROPHONIC TROEZENIAN FIVE;Nl;0;ON;;;;5;N;;;;;-10160;GREEK ACROPHONIC TROEZENIAN TEN;Nl;0;ON;;;;10;N;;;;;-10161;GREEK ACROPHONIC TROEZENIAN TEN ALTERNATE FORM;Nl;0;ON;;;;10;N;;;;;-10162;GREEK ACROPHONIC HERMIONIAN TEN;Nl;0;ON;;;;10;N;;;;;-10163;GREEK ACROPHONIC MESSENIAN TEN;Nl;0;ON;;;;10;N;;;;;-10164;GREEK ACROPHONIC THESPIAN TEN;Nl;0;ON;;;;10;N;;;;;-10165;GREEK ACROPHONIC THESPIAN THIRTY;Nl;0;ON;;;;30;N;;;;;-10166;GREEK ACROPHONIC TROEZENIAN FIFTY;Nl;0;ON;;;;50;N;;;;;-10167;GREEK ACROPHONIC TROEZENIAN FIFTY ALTERNATE FORM;Nl;0;ON;;;;50;N;;;;;-10168;GREEK ACROPHONIC HERMIONIAN FIFTY;Nl;0;ON;;;;50;N;;;;;-10169;GREEK ACROPHONIC THESPIAN FIFTY;Nl;0;ON;;;;50;N;;;;;-1016A;GREEK ACROPHONIC THESPIAN ONE HUNDRED;Nl;0;ON;;;;100;N;;;;;-1016B;GREEK ACROPHONIC THESPIAN THREE HUNDRED;Nl;0;ON;;;;300;N;;;;;-1016C;GREEK ACROPHONIC EPIDAUREAN FIVE HUNDRED;Nl;0;ON;;;;500;N;;;;;-1016D;GREEK ACROPHONIC TROEZENIAN FIVE HUNDRED;Nl;0;ON;;;;500;N;;;;;-1016E;GREEK ACROPHONIC THESPIAN FIVE HUNDRED;Nl;0;ON;;;;500;N;;;;;-1016F;GREEK ACROPHONIC CARYSTIAN FIVE HUNDRED;Nl;0;ON;;;;500;N;;;;;-10170;GREEK ACROPHONIC NAXIAN FIVE HUNDRED;Nl;0;ON;;;;500;N;;;;;-10171;GREEK ACROPHONIC THESPIAN ONE THOUSAND;Nl;0;ON;;;;1000;N;;;;;-10172;GREEK ACROPHONIC THESPIAN FIVE THOUSAND;Nl;0;ON;;;;5000;N;;;;;-10173;GREEK ACROPHONIC DELPHIC FIVE MNAS;Nl;0;ON;;;;5;N;;;;;-10174;GREEK ACROPHONIC STRATIAN FIFTY MNAS;Nl;0;ON;;;;50;N;;;;;-10175;GREEK ONE HALF SIGN;No;0;ON;;;;1/2;N;;;;;-10176;GREEK ONE HALF SIGN ALTERNATE FORM;No;0;ON;;;;1/2;N;;;;;-10177;GREEK TWO THIRDS SIGN;No;0;ON;;;;2/3;N;;;;;-10178;GREEK THREE QUARTERS SIGN;No;0;ON;;;;3/4;N;;;;;-10179;GREEK YEAR SIGN;So;0;ON;;;;;N;;;;;-1017A;GREEK TALENT SIGN;So;0;ON;;;;;N;;;;;-1017B;GREEK DRACHMA SIGN;So;0;ON;;;;;N;;;;;-1017C;GREEK OBOL SIGN;So;0;ON;;;;;N;;;;;-1017D;GREEK TWO OBOLS SIGN;So;0;ON;;;;;N;;;;;-1017E;GREEK THREE OBOLS SIGN;So;0;ON;;;;;N;;;;;-1017F;GREEK FOUR OBOLS SIGN;So;0;ON;;;;;N;;;;;-10180;GREEK FIVE OBOLS SIGN;So;0;ON;;;;;N;;;;;-10181;GREEK METRETES SIGN;So;0;ON;;;;;N;;;;;-10182;GREEK KYATHOS BASE SIGN;So;0;ON;;;;;N;;;;;-10183;GREEK LITRA SIGN;So;0;ON;;;;;N;;;;;-10184;GREEK OUNKIA SIGN;So;0;ON;;;;;N;;;;;-10185;GREEK XESTES SIGN;So;0;ON;;;;;N;;;;;-10186;GREEK ARTABE SIGN;So;0;ON;;;;;N;;;;;-10187;GREEK AROURA SIGN;So;0;ON;;;;;N;;;;;-10188;GREEK GRAMMA SIGN;So;0;ON;;;;;N;;;;;-10189;GREEK TRYBLION BASE SIGN;So;0;ON;;;;;N;;;;;-1018A;GREEK ZERO SIGN;No;0;ON;;;;0;N;;;;;-10300;OLD ITALIC LETTER A;Lo;0;L;;;;;N;;;;;-10301;OLD ITALIC LETTER BE;Lo;0;L;;;;;N;;;;;-10302;OLD ITALIC LETTER KE;Lo;0;L;;;;;N;;;;;-10303;OLD ITALIC LETTER DE;Lo;0;L;;;;;N;;;;;-10304;OLD ITALIC LETTER E;Lo;0;L;;;;;N;;;;;-10305;OLD ITALIC LETTER VE;Lo;0;L;;;;;N;;;;;-10306;OLD ITALIC LETTER ZE;Lo;0;L;;;;;N;;;;;-10307;OLD ITALIC LETTER HE;Lo;0;L;;;;;N;;;;;-10308;OLD ITALIC LETTER THE;Lo;0;L;;;;;N;;;;;-10309;OLD ITALIC LETTER I;Lo;0;L;;;;;N;;;;;-1030A;OLD ITALIC LETTER KA;Lo;0;L;;;;;N;;;;;-1030B;OLD ITALIC LETTER EL;Lo;0;L;;;;;N;;;;;-1030C;OLD ITALIC LETTER EM;Lo;0;L;;;;;N;;;;;-1030D;OLD ITALIC LETTER EN;Lo;0;L;;;;;N;;;;;-1030E;OLD ITALIC LETTER ESH;Lo;0;L;;;;;N;;;;;-1030F;OLD ITALIC LETTER O;Lo;0;L;;;;;N;;Faliscan;;;-10310;OLD ITALIC LETTER PE;Lo;0;L;;;;;N;;;;;-10311;OLD ITALIC LETTER SHE;Lo;0;L;;;;;N;;;;;-10312;OLD ITALIC LETTER KU;Lo;0;L;;;;;N;;;;;-10313;OLD ITALIC LETTER ER;Lo;0;L;;;;;N;;;;;-10314;OLD ITALIC LETTER ES;Lo;0;L;;;;;N;;;;;-10315;OLD ITALIC LETTER TE;Lo;0;L;;;;;N;;;;;-10316;OLD ITALIC LETTER U;Lo;0;L;;;;;N;;;;;-10317;OLD ITALIC LETTER EKS;Lo;0;L;;;;;N;;Faliscan;;;-10318;OLD ITALIC LETTER PHE;Lo;0;L;;;;;N;;;;;-10319;OLD ITALIC LETTER KHE;Lo;0;L;;;;;N;;;;;-1031A;OLD ITALIC LETTER EF;Lo;0;L;;;;;N;;;;;-1031B;OLD ITALIC LETTER ERS;Lo;0;L;;;;;N;;Umbrian;;;-1031C;OLD ITALIC LETTER CHE;Lo;0;L;;;;;N;;Umbrian;;;-1031D;OLD ITALIC LETTER II;Lo;0;L;;;;;N;;Oscan;;;-1031E;OLD ITALIC LETTER UU;Lo;0;L;;;;;N;;Oscan;;;-10320;OLD ITALIC NUMERAL ONE;No;0;L;;;;1;N;;;;;-10321;OLD ITALIC NUMERAL FIVE;No;0;L;;;;5;N;;;;;-10322;OLD ITALIC NUMERAL TEN;No;0;L;;;;10;N;;;;;-10323;OLD ITALIC NUMERAL FIFTY;No;0;L;;;;50;N;;;;;-10330;GOTHIC LETTER AHSA;Lo;0;L;;;;;N;;;;;-10331;GOTHIC LETTER BAIRKAN;Lo;0;L;;;;;N;;;;;-10332;GOTHIC LETTER GIBA;Lo;0;L;;;;;N;;;;;-10333;GOTHIC LETTER DAGS;Lo;0;L;;;;;N;;;;;-10334;GOTHIC LETTER AIHVUS;Lo;0;L;;;;;N;;;;;-10335;GOTHIC LETTER QAIRTHRA;Lo;0;L;;;;;N;;;;;-10336;GOTHIC LETTER IUJA;Lo;0;L;;;;;N;;;;;-10337;GOTHIC LETTER HAGL;Lo;0;L;;;;;N;;;;;-10338;GOTHIC LETTER THIUTH;Lo;0;L;;;;;N;;;;;-10339;GOTHIC LETTER EIS;Lo;0;L;;;;;N;;;;;-1033A;GOTHIC LETTER KUSMA;Lo;0;L;;;;;N;;;;;-1033B;GOTHIC LETTER LAGUS;Lo;0;L;;;;;N;;;;;-1033C;GOTHIC LETTER MANNA;Lo;0;L;;;;;N;;;;;-1033D;GOTHIC LETTER NAUTHS;Lo;0;L;;;;;N;;;;;-1033E;GOTHIC LETTER JER;Lo;0;L;;;;;N;;;;;-1033F;GOTHIC LETTER URUS;Lo;0;L;;;;;N;;;;;-10340;GOTHIC LETTER PAIRTHRA;Lo;0;L;;;;;N;;;;;-10341;GOTHIC LETTER NINETY;Nl;0;L;;;;90;N;;;;;-10342;GOTHIC LETTER RAIDA;Lo;0;L;;;;;N;;;;;-10343;GOTHIC LETTER SAUIL;Lo;0;L;;;;;N;;;;;-10344;GOTHIC LETTER TEIWS;Lo;0;L;;;;;N;;;;;-10345;GOTHIC LETTER WINJA;Lo;0;L;;;;;N;;;;;-10346;GOTHIC LETTER FAIHU;Lo;0;L;;;;;N;;;;;-10347;GOTHIC LETTER IGGWS;Lo;0;L;;;;;N;;;;;-10348;GOTHIC LETTER HWAIR;Lo;0;L;;;;;N;;;;;-10349;GOTHIC LETTER OTHAL;Lo;0;L;;;;;N;;;;;-1034A;GOTHIC LETTER NINE HUNDRED;Nl;0;L;;;;900;N;;;;;-10380;UGARITIC LETTER ALPA;Lo;0;L;;;;;N;;;;;-10381;UGARITIC LETTER BETA;Lo;0;L;;;;;N;;;;;-10382;UGARITIC LETTER GAMLA;Lo;0;L;;;;;N;;;;;-10383;UGARITIC LETTER KHA;Lo;0;L;;;;;N;;;;;-10384;UGARITIC LETTER DELTA;Lo;0;L;;;;;N;;;;;-10385;UGARITIC LETTER HO;Lo;0;L;;;;;N;;;;;-10386;UGARITIC LETTER WO;Lo;0;L;;;;;N;;;;;-10387;UGARITIC LETTER ZETA;Lo;0;L;;;;;N;;;;;-10388;UGARITIC LETTER HOTA;Lo;0;L;;;;;N;;;;;-10389;UGARITIC LETTER TET;Lo;0;L;;;;;N;;;;;-1038A;UGARITIC LETTER YOD;Lo;0;L;;;;;N;;;;;-1038B;UGARITIC LETTER KAF;Lo;0;L;;;;;N;;;;;-1038C;UGARITIC LETTER SHIN;Lo;0;L;;;;;N;;;;;-1038D;UGARITIC LETTER LAMDA;Lo;0;L;;;;;N;;;;;-1038E;UGARITIC LETTER MEM;Lo;0;L;;;;;N;;;;;-1038F;UGARITIC LETTER DHAL;Lo;0;L;;;;;N;;;;;-10390;UGARITIC LETTER NUN;Lo;0;L;;;;;N;;;;;-10391;UGARITIC LETTER ZU;Lo;0;L;;;;;N;;;;;-10392;UGARITIC LETTER SAMKA;Lo;0;L;;;;;N;;;;;-10393;UGARITIC LETTER AIN;Lo;0;L;;;;;N;;;;;-10394;UGARITIC LETTER PU;Lo;0;L;;;;;N;;;;;-10395;UGARITIC LETTER SADE;Lo;0;L;;;;;N;;;;;-10396;UGARITIC LETTER QOPA;Lo;0;L;;;;;N;;;;;-10397;UGARITIC LETTER RASHA;Lo;0;L;;;;;N;;;;;-10398;UGARITIC LETTER THANNA;Lo;0;L;;;;;N;;;;;-10399;UGARITIC LETTER GHAIN;Lo;0;L;;;;;N;;;;;-1039A;UGARITIC LETTER TO;Lo;0;L;;;;;N;;;;;-1039B;UGARITIC LETTER I;Lo;0;L;;;;;N;;;;;-1039C;UGARITIC LETTER U;Lo;0;L;;;;;N;;;;;-1039D;UGARITIC LETTER SSU;Lo;0;L;;;;;N;;;;;-1039F;UGARITIC WORD DIVIDER;Po;0;L;;;;;N;;;;;-103A0;OLD PERSIAN SIGN A;Lo;0;L;;;;;N;;;;;-103A1;OLD PERSIAN SIGN I;Lo;0;L;;;;;N;;;;;-103A2;OLD PERSIAN SIGN U;Lo;0;L;;;;;N;;;;;-103A3;OLD PERSIAN SIGN KA;Lo;0;L;;;;;N;;;;;-103A4;OLD PERSIAN SIGN KU;Lo;0;L;;;;;N;;;;;-103A5;OLD PERSIAN SIGN GA;Lo;0;L;;;;;N;;;;;-103A6;OLD PERSIAN SIGN GU;Lo;0;L;;;;;N;;;;;-103A7;OLD PERSIAN SIGN XA;Lo;0;L;;;;;N;;;;;-103A8;OLD PERSIAN SIGN CA;Lo;0;L;;;;;N;;;;;-103A9;OLD PERSIAN SIGN JA;Lo;0;L;;;;;N;;;;;-103AA;OLD PERSIAN SIGN JI;Lo;0;L;;;;;N;;;;;-103AB;OLD PERSIAN SIGN TA;Lo;0;L;;;;;N;;;;;-103AC;OLD PERSIAN SIGN TU;Lo;0;L;;;;;N;;;;;-103AD;OLD PERSIAN SIGN DA;Lo;0;L;;;;;N;;;;;-103AE;OLD PERSIAN SIGN DI;Lo;0;L;;;;;N;;;;;-103AF;OLD PERSIAN SIGN DU;Lo;0;L;;;;;N;;;;;-103B0;OLD PERSIAN SIGN THA;Lo;0;L;;;;;N;;;;;-103B1;OLD PERSIAN SIGN PA;Lo;0;L;;;;;N;;;;;-103B2;OLD PERSIAN SIGN BA;Lo;0;L;;;;;N;;;;;-103B3;OLD PERSIAN SIGN FA;Lo;0;L;;;;;N;;;;;-103B4;OLD PERSIAN SIGN NA;Lo;0;L;;;;;N;;;;;-103B5;OLD PERSIAN SIGN NU;Lo;0;L;;;;;N;;;;;-103B6;OLD PERSIAN SIGN MA;Lo;0;L;;;;;N;;;;;-103B7;OLD PERSIAN SIGN MI;Lo;0;L;;;;;N;;;;;-103B8;OLD PERSIAN SIGN MU;Lo;0;L;;;;;N;;;;;-103B9;OLD PERSIAN SIGN YA;Lo;0;L;;;;;N;;;;;-103BA;OLD PERSIAN SIGN VA;Lo;0;L;;;;;N;;;;;-103BB;OLD PERSIAN SIGN VI;Lo;0;L;;;;;N;;;;;-103BC;OLD PERSIAN SIGN RA;Lo;0;L;;;;;N;;;;;-103BD;OLD PERSIAN SIGN RU;Lo;0;L;;;;;N;;;;;-103BE;OLD PERSIAN SIGN LA;Lo;0;L;;;;;N;;;;;-103BF;OLD PERSIAN SIGN SA;Lo;0;L;;;;;N;;;;;-103C0;OLD PERSIAN SIGN ZA;Lo;0;L;;;;;N;;;;;-103C1;OLD PERSIAN SIGN SHA;Lo;0;L;;;;;N;;;;;-103C2;OLD PERSIAN SIGN SSA;Lo;0;L;;;;;N;;;;;-103C3;OLD PERSIAN SIGN HA;Lo;0;L;;;;;N;;;;;-103C8;OLD PERSIAN SIGN AURAMAZDAA;Lo;0;L;;;;;N;;;;;-103C9;OLD PERSIAN SIGN AURAMAZDAA-2;Lo;0;L;;;;;N;;;;;-103CA;OLD PERSIAN SIGN AURAMAZDAAHA;Lo;0;L;;;;;N;;;;;-103CB;OLD PERSIAN SIGN XSHAAYATHIYA;Lo;0;L;;;;;N;;;;;-103CC;OLD PERSIAN SIGN DAHYAAUSH;Lo;0;L;;;;;N;;;;;-103CD;OLD PERSIAN SIGN DAHYAAUSH-2;Lo;0;L;;;;;N;;;;;-103CE;OLD PERSIAN SIGN BAGA;Lo;0;L;;;;;N;;;;;-103CF;OLD PERSIAN SIGN BUUMISH;Lo;0;L;;;;;N;;;;;-103D0;OLD PERSIAN WORD DIVIDER;Po;0;L;;;;;N;;;;;-103D1;OLD PERSIAN NUMBER ONE;Nl;0;L;;;;1;N;;;;;-103D2;OLD PERSIAN NUMBER TWO;Nl;0;L;;;;2;N;;;;;-103D3;OLD PERSIAN NUMBER TEN;Nl;0;L;;;;10;N;;;;;-103D4;OLD PERSIAN NUMBER TWENTY;Nl;0;L;;;;20;N;;;;;-103D5;OLD PERSIAN NUMBER HUNDRED;Nl;0;L;;;;100;N;;;;;-10400;DESERET CAPITAL LETTER LONG I;Lu;0;L;;;;;N;;;;10428;-10401;DESERET CAPITAL LETTER LONG E;Lu;0;L;;;;;N;;;;10429;-10402;DESERET CAPITAL LETTER LONG A;Lu;0;L;;;;;N;;;;1042A;-10403;DESERET CAPITAL LETTER LONG AH;Lu;0;L;;;;;N;;;;1042B;-10404;DESERET CAPITAL LETTER LONG O;Lu;0;L;;;;;N;;;;1042C;-10405;DESERET CAPITAL LETTER LONG OO;Lu;0;L;;;;;N;;;;1042D;-10406;DESERET CAPITAL LETTER SHORT I;Lu;0;L;;;;;N;;;;1042E;-10407;DESERET CAPITAL LETTER SHORT E;Lu;0;L;;;;;N;;;;1042F;-10408;DESERET CAPITAL LETTER SHORT A;Lu;0;L;;;;;N;;;;10430;-10409;DESERET CAPITAL LETTER SHORT AH;Lu;0;L;;;;;N;;;;10431;-1040A;DESERET CAPITAL LETTER SHORT O;Lu;0;L;;;;;N;;;;10432;-1040B;DESERET CAPITAL LETTER SHORT OO;Lu;0;L;;;;;N;;;;10433;-1040C;DESERET CAPITAL LETTER AY;Lu;0;L;;;;;N;;;;10434;-1040D;DESERET CAPITAL LETTER OW;Lu;0;L;;;;;N;;;;10435;-1040E;DESERET CAPITAL LETTER WU;Lu;0;L;;;;;N;;;;10436;-1040F;DESERET CAPITAL LETTER YEE;Lu;0;L;;;;;N;;;;10437;-10410;DESERET CAPITAL LETTER H;Lu;0;L;;;;;N;;;;10438;-10411;DESERET CAPITAL LETTER PEE;Lu;0;L;;;;;N;;;;10439;-10412;DESERET CAPITAL LETTER BEE;Lu;0;L;;;;;N;;;;1043A;-10413;DESERET CAPITAL LETTER TEE;Lu;0;L;;;;;N;;;;1043B;-10414;DESERET CAPITAL LETTER DEE;Lu;0;L;;;;;N;;;;1043C;-10415;DESERET CAPITAL LETTER CHEE;Lu;0;L;;;;;N;;;;1043D;-10416;DESERET CAPITAL LETTER JEE;Lu;0;L;;;;;N;;;;1043E;-10417;DESERET CAPITAL LETTER KAY;Lu;0;L;;;;;N;;;;1043F;-10418;DESERET CAPITAL LETTER GAY;Lu;0;L;;;;;N;;;;10440;-10419;DESERET CAPITAL LETTER EF;Lu;0;L;;;;;N;;;;10441;-1041A;DESERET CAPITAL LETTER VEE;Lu;0;L;;;;;N;;;;10442;-1041B;DESERET CAPITAL LETTER ETH;Lu;0;L;;;;;N;;;;10443;-1041C;DESERET CAPITAL LETTER THEE;Lu;0;L;;;;;N;;;;10444;-1041D;DESERET CAPITAL LETTER ES;Lu;0;L;;;;;N;;;;10445;-1041E;DESERET CAPITAL LETTER ZEE;Lu;0;L;;;;;N;;;;10446;-1041F;DESERET CAPITAL LETTER ESH;Lu;0;L;;;;;N;;;;10447;-10420;DESERET CAPITAL LETTER ZHEE;Lu;0;L;;;;;N;;;;10448;-10421;DESERET CAPITAL LETTER ER;Lu;0;L;;;;;N;;;;10449;-10422;DESERET CAPITAL LETTER EL;Lu;0;L;;;;;N;;;;1044A;-10423;DESERET CAPITAL LETTER EM;Lu;0;L;;;;;N;;;;1044B;-10424;DESERET CAPITAL LETTER EN;Lu;0;L;;;;;N;;;;1044C;-10425;DESERET CAPITAL LETTER ENG;Lu;0;L;;;;;N;;;;1044D;-10426;DESERET CAPITAL LETTER OI;Lu;0;L;;;;;N;;;;1044E;-10427;DESERET CAPITAL LETTER EW;Lu;0;L;;;;;N;;;;1044F;-10428;DESERET SMALL LETTER LONG I;Ll;0;L;;;;;N;;;10400;;10400-10429;DESERET SMALL LETTER LONG E;Ll;0;L;;;;;N;;;10401;;10401-1042A;DESERET SMALL LETTER LONG A;Ll;0;L;;;;;N;;;10402;;10402-1042B;DESERET SMALL LETTER LONG AH;Ll;0;L;;;;;N;;;10403;;10403-1042C;DESERET SMALL LETTER LONG O;Ll;0;L;;;;;N;;;10404;;10404-1042D;DESERET SMALL LETTER LONG OO;Ll;0;L;;;;;N;;;10405;;10405-1042E;DESERET SMALL LETTER SHORT I;Ll;0;L;;;;;N;;;10406;;10406-1042F;DESERET SMALL LETTER SHORT E;Ll;0;L;;;;;N;;;10407;;10407-10430;DESERET SMALL LETTER SHORT A;Ll;0;L;;;;;N;;;10408;;10408-10431;DESERET SMALL LETTER SHORT AH;Ll;0;L;;;;;N;;;10409;;10409-10432;DESERET SMALL LETTER SHORT O;Ll;0;L;;;;;N;;;1040A;;1040A-10433;DESERET SMALL LETTER SHORT OO;Ll;0;L;;;;;N;;;1040B;;1040B-10434;DESERET SMALL LETTER AY;Ll;0;L;;;;;N;;;1040C;;1040C-10435;DESERET SMALL LETTER OW;Ll;0;L;;;;;N;;;1040D;;1040D-10436;DESERET SMALL LETTER WU;Ll;0;L;;;;;N;;;1040E;;1040E-10437;DESERET SMALL LETTER YEE;Ll;0;L;;;;;N;;;1040F;;1040F-10438;DESERET SMALL LETTER H;Ll;0;L;;;;;N;;;10410;;10410-10439;DESERET SMALL LETTER PEE;Ll;0;L;;;;;N;;;10411;;10411-1043A;DESERET SMALL LETTER BEE;Ll;0;L;;;;;N;;;10412;;10412-1043B;DESERET SMALL LETTER TEE;Ll;0;L;;;;;N;;;10413;;10413-1043C;DESERET SMALL LETTER DEE;Ll;0;L;;;;;N;;;10414;;10414-1043D;DESERET SMALL LETTER CHEE;Ll;0;L;;;;;N;;;10415;;10415-1043E;DESERET SMALL LETTER JEE;Ll;0;L;;;;;N;;;10416;;10416-1043F;DESERET SMALL LETTER KAY;Ll;0;L;;;;;N;;;10417;;10417-10440;DESERET SMALL LETTER GAY;Ll;0;L;;;;;N;;;10418;;10418-10441;DESERET SMALL LETTER EF;Ll;0;L;;;;;N;;;10419;;10419-10442;DESERET SMALL LETTER VEE;Ll;0;L;;;;;N;;;1041A;;1041A-10443;DESERET SMALL LETTER ETH;Ll;0;L;;;;;N;;;1041B;;1041B-10444;DESERET SMALL LETTER THEE;Ll;0;L;;;;;N;;;1041C;;1041C-10445;DESERET SMALL LETTER ES;Ll;0;L;;;;;N;;;1041D;;1041D-10446;DESERET SMALL LETTER ZEE;Ll;0;L;;;;;N;;;1041E;;1041E-10447;DESERET SMALL LETTER ESH;Ll;0;L;;;;;N;;;1041F;;1041F-10448;DESERET SMALL LETTER ZHEE;Ll;0;L;;;;;N;;;10420;;10420-10449;DESERET SMALL LETTER ER;Ll;0;L;;;;;N;;;10421;;10421-1044A;DESERET SMALL LETTER EL;Ll;0;L;;;;;N;;;10422;;10422-1044B;DESERET SMALL LETTER EM;Ll;0;L;;;;;N;;;10423;;10423-1044C;DESERET SMALL LETTER EN;Ll;0;L;;;;;N;;;10424;;10424-1044D;DESERET SMALL LETTER ENG;Ll;0;L;;;;;N;;;10425;;10425-1044E;DESERET SMALL LETTER OI;Ll;0;L;;;;;N;;;10426;;10426-1044F;DESERET SMALL LETTER EW;Ll;0;L;;;;;N;;;10427;;10427-10450;SHAVIAN LETTER PEEP;Lo;0;L;;;;;N;;;;;-10451;SHAVIAN LETTER TOT;Lo;0;L;;;;;N;;;;;-10452;SHAVIAN LETTER KICK;Lo;0;L;;;;;N;;;;;-10453;SHAVIAN LETTER FEE;Lo;0;L;;;;;N;;;;;-10454;SHAVIAN LETTER THIGH;Lo;0;L;;;;;N;;;;;-10455;SHAVIAN LETTER SO;Lo;0;L;;;;;N;;;;;-10456;SHAVIAN LETTER SURE;Lo;0;L;;;;;N;;;;;-10457;SHAVIAN LETTER CHURCH;Lo;0;L;;;;;N;;;;;-10458;SHAVIAN LETTER YEA;Lo;0;L;;;;;N;;;;;-10459;SHAVIAN LETTER HUNG;Lo;0;L;;;;;N;;;;;-1045A;SHAVIAN LETTER BIB;Lo;0;L;;;;;N;;;;;-1045B;SHAVIAN LETTER DEAD;Lo;0;L;;;;;N;;;;;-1045C;SHAVIAN LETTER GAG;Lo;0;L;;;;;N;;;;;-1045D;SHAVIAN LETTER VOW;Lo;0;L;;;;;N;;;;;-1045E;SHAVIAN LETTER THEY;Lo;0;L;;;;;N;;;;;-1045F;SHAVIAN LETTER ZOO;Lo;0;L;;;;;N;;;;;-10460;SHAVIAN LETTER MEASURE;Lo;0;L;;;;;N;;;;;-10461;SHAVIAN LETTER JUDGE;Lo;0;L;;;;;N;;;;;-10462;SHAVIAN LETTER WOE;Lo;0;L;;;;;N;;;;;-10463;SHAVIAN LETTER HA-HA;Lo;0;L;;;;;N;;;;;-10464;SHAVIAN LETTER LOLL;Lo;0;L;;;;;N;;;;;-10465;SHAVIAN LETTER MIME;Lo;0;L;;;;;N;;;;;-10466;SHAVIAN LETTER IF;Lo;0;L;;;;;N;;;;;-10467;SHAVIAN LETTER EGG;Lo;0;L;;;;;N;;;;;-10468;SHAVIAN LETTER ASH;Lo;0;L;;;;;N;;;;;-10469;SHAVIAN LETTER ADO;Lo;0;L;;;;;N;;;;;-1046A;SHAVIAN LETTER ON;Lo;0;L;;;;;N;;;;;-1046B;SHAVIAN LETTER WOOL;Lo;0;L;;;;;N;;;;;-1046C;SHAVIAN LETTER OUT;Lo;0;L;;;;;N;;;;;-1046D;SHAVIAN LETTER AH;Lo;0;L;;;;;N;;;;;-1046E;SHAVIAN LETTER ROAR;Lo;0;L;;;;;N;;;;;-1046F;SHAVIAN LETTER NUN;Lo;0;L;;;;;N;;;;;-10470;SHAVIAN LETTER EAT;Lo;0;L;;;;;N;;;;;-10471;SHAVIAN LETTER AGE;Lo;0;L;;;;;N;;;;;-10472;SHAVIAN LETTER ICE;Lo;0;L;;;;;N;;;;;-10473;SHAVIAN LETTER UP;Lo;0;L;;;;;N;;;;;-10474;SHAVIAN LETTER OAK;Lo;0;L;;;;;N;;;;;-10475;SHAVIAN LETTER OOZE;Lo;0;L;;;;;N;;;;;-10476;SHAVIAN LETTER OIL;Lo;0;L;;;;;N;;;;;-10477;SHAVIAN LETTER AWE;Lo;0;L;;;;;N;;;;;-10478;SHAVIAN LETTER ARE;Lo;0;L;;;;;N;;;;;-10479;SHAVIAN LETTER OR;Lo;0;L;;;;;N;;;;;-1047A;SHAVIAN LETTER AIR;Lo;0;L;;;;;N;;;;;-1047B;SHAVIAN LETTER ERR;Lo;0;L;;;;;N;;;;;-1047C;SHAVIAN LETTER ARRAY;Lo;0;L;;;;;N;;;;;-1047D;SHAVIAN LETTER EAR;Lo;0;L;;;;;N;;;;;-1047E;SHAVIAN LETTER IAN;Lo;0;L;;;;;N;;;;;-1047F;SHAVIAN LETTER YEW;Lo;0;L;;;;;N;;;;;-10480;OSMANYA LETTER ALEF;Lo;0;L;;;;;N;;;;;-10481;OSMANYA LETTER BA;Lo;0;L;;;;;N;;;;;-10482;OSMANYA LETTER TA;Lo;0;L;;;;;N;;;;;-10483;OSMANYA LETTER JA;Lo;0;L;;;;;N;;;;;-10484;OSMANYA LETTER XA;Lo;0;L;;;;;N;;;;;-10485;OSMANYA LETTER KHA;Lo;0;L;;;;;N;;;;;-10486;OSMANYA LETTER DEEL;Lo;0;L;;;;;N;;;;;-10487;OSMANYA LETTER RA;Lo;0;L;;;;;N;;;;;-10488;OSMANYA LETTER SA;Lo;0;L;;;;;N;;;;;-10489;OSMANYA LETTER SHIIN;Lo;0;L;;;;;N;;;;;-1048A;OSMANYA LETTER DHA;Lo;0;L;;;;;N;;;;;-1048B;OSMANYA LETTER CAYN;Lo;0;L;;;;;N;;;;;-1048C;OSMANYA LETTER GA;Lo;0;L;;;;;N;;;;;-1048D;OSMANYA LETTER FA;Lo;0;L;;;;;N;;;;;-1048E;OSMANYA LETTER QAAF;Lo;0;L;;;;;N;;;;;-1048F;OSMANYA LETTER KAAF;Lo;0;L;;;;;N;;;;;-10490;OSMANYA LETTER LAAN;Lo;0;L;;;;;N;;;;;-10491;OSMANYA LETTER MIIN;Lo;0;L;;;;;N;;;;;-10492;OSMANYA LETTER NUUN;Lo;0;L;;;;;N;;;;;-10493;OSMANYA LETTER WAW;Lo;0;L;;;;;N;;;;;-10494;OSMANYA LETTER HA;Lo;0;L;;;;;N;;;;;-10495;OSMANYA LETTER YA;Lo;0;L;;;;;N;;;;;-10496;OSMANYA LETTER A;Lo;0;L;;;;;N;;;;;-10497;OSMANYA LETTER E;Lo;0;L;;;;;N;;;;;-10498;OSMANYA LETTER I;Lo;0;L;;;;;N;;;;;-10499;OSMANYA LETTER O;Lo;0;L;;;;;N;;;;;-1049A;OSMANYA LETTER U;Lo;0;L;;;;;N;;;;;-1049B;OSMANYA LETTER AA;Lo;0;L;;;;;N;;;;;-1049C;OSMANYA LETTER EE;Lo;0;L;;;;;N;;;;;-1049D;OSMANYA LETTER OO;Lo;0;L;;;;;N;;;;;-104A0;OSMANYA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;-104A1;OSMANYA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;-104A2;OSMANYA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;-104A3;OSMANYA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;-104A4;OSMANYA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;-104A5;OSMANYA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;-104A6;OSMANYA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;-104A7;OSMANYA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;-104A8;OSMANYA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;-104A9;OSMANYA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;-10800;CYPRIOT SYLLABLE A;Lo;0;R;;;;;N;;;;;-10801;CYPRIOT SYLLABLE E;Lo;0;R;;;;;N;;;;;-10802;CYPRIOT SYLLABLE I;Lo;0;R;;;;;N;;;;;-10803;CYPRIOT SYLLABLE O;Lo;0;R;;;;;N;;;;;-10804;CYPRIOT SYLLABLE U;Lo;0;R;;;;;N;;;;;-10805;CYPRIOT SYLLABLE JA;Lo;0;R;;;;;N;;;;;-10808;CYPRIOT SYLLABLE JO;Lo;0;R;;;;;N;;;;;-1080A;CYPRIOT SYLLABLE KA;Lo;0;R;;;;;N;;;;;-1080B;CYPRIOT SYLLABLE KE;Lo;0;R;;;;;N;;;;;-1080C;CYPRIOT SYLLABLE KI;Lo;0;R;;;;;N;;;;;-1080D;CYPRIOT SYLLABLE KO;Lo;0;R;;;;;N;;;;;-1080E;CYPRIOT SYLLABLE KU;Lo;0;R;;;;;N;;;;;-1080F;CYPRIOT SYLLABLE LA;Lo;0;R;;;;;N;;;;;-10810;CYPRIOT SYLLABLE LE;Lo;0;R;;;;;N;;;;;-10811;CYPRIOT SYLLABLE LI;Lo;0;R;;;;;N;;;;;-10812;CYPRIOT SYLLABLE LO;Lo;0;R;;;;;N;;;;;-10813;CYPRIOT SYLLABLE LU;Lo;0;R;;;;;N;;;;;-10814;CYPRIOT SYLLABLE MA;Lo;0;R;;;;;N;;;;;-10815;CYPRIOT SYLLABLE ME;Lo;0;R;;;;;N;;;;;-10816;CYPRIOT SYLLABLE MI;Lo;0;R;;;;;N;;;;;-10817;CYPRIOT SYLLABLE MO;Lo;0;R;;;;;N;;;;;-10818;CYPRIOT SYLLABLE MU;Lo;0;R;;;;;N;;;;;-10819;CYPRIOT SYLLABLE NA;Lo;0;R;;;;;N;;;;;-1081A;CYPRIOT SYLLABLE NE;Lo;0;R;;;;;N;;;;;-1081B;CYPRIOT SYLLABLE NI;Lo;0;R;;;;;N;;;;;-1081C;CYPRIOT SYLLABLE NO;Lo;0;R;;;;;N;;;;;-1081D;CYPRIOT SYLLABLE NU;Lo;0;R;;;;;N;;;;;-1081E;CYPRIOT SYLLABLE PA;Lo;0;R;;;;;N;;;;;-1081F;CYPRIOT SYLLABLE PE;Lo;0;R;;;;;N;;;;;-10820;CYPRIOT SYLLABLE PI;Lo;0;R;;;;;N;;;;;-10821;CYPRIOT SYLLABLE PO;Lo;0;R;;;;;N;;;;;-10822;CYPRIOT SYLLABLE PU;Lo;0;R;;;;;N;;;;;-10823;CYPRIOT SYLLABLE RA;Lo;0;R;;;;;N;;;;;-10824;CYPRIOT SYLLABLE RE;Lo;0;R;;;;;N;;;;;-10825;CYPRIOT SYLLABLE RI;Lo;0;R;;;;;N;;;;;-10826;CYPRIOT SYLLABLE RO;Lo;0;R;;;;;N;;;;;-10827;CYPRIOT SYLLABLE RU;Lo;0;R;;;;;N;;;;;-10828;CYPRIOT SYLLABLE SA;Lo;0;R;;;;;N;;;;;-10829;CYPRIOT SYLLABLE SE;Lo;0;R;;;;;N;;;;;-1082A;CYPRIOT SYLLABLE SI;Lo;0;R;;;;;N;;;;;-1082B;CYPRIOT SYLLABLE SO;Lo;0;R;;;;;N;;;;;-1082C;CYPRIOT SYLLABLE SU;Lo;0;R;;;;;N;;;;;-1082D;CYPRIOT SYLLABLE TA;Lo;0;R;;;;;N;;;;;-1082E;CYPRIOT SYLLABLE TE;Lo;0;R;;;;;N;;;;;-1082F;CYPRIOT SYLLABLE TI;Lo;0;R;;;;;N;;;;;-10830;CYPRIOT SYLLABLE TO;Lo;0;R;;;;;N;;;;;-10831;CYPRIOT SYLLABLE TU;Lo;0;R;;;;;N;;;;;-10832;CYPRIOT SYLLABLE WA;Lo;0;R;;;;;N;;;;;-10833;CYPRIOT SYLLABLE WE;Lo;0;R;;;;;N;;;;;-10834;CYPRIOT SYLLABLE WI;Lo;0;R;;;;;N;;;;;-10835;CYPRIOT SYLLABLE WO;Lo;0;R;;;;;N;;;;;-10837;CYPRIOT SYLLABLE XA;Lo;0;R;;;;;N;;;;;-10838;CYPRIOT SYLLABLE XE;Lo;0;R;;;;;N;;;;;-1083C;CYPRIOT SYLLABLE ZA;Lo;0;R;;;;;N;;;;;-1083F;CYPRIOT SYLLABLE ZO;Lo;0;R;;;;;N;;;;;-10900;PHOENICIAN LETTER ALF;Lo;0;R;;;;;N;;;;;-10901;PHOENICIAN LETTER BET;Lo;0;R;;;;;N;;;;;-10902;PHOENICIAN LETTER GAML;Lo;0;R;;;;;N;;;;;-10903;PHOENICIAN LETTER DELT;Lo;0;R;;;;;N;;;;;-10904;PHOENICIAN LETTER HE;Lo;0;R;;;;;N;;;;;-10905;PHOENICIAN LETTER WAU;Lo;0;R;;;;;N;;;;;-10906;PHOENICIAN LETTER ZAI;Lo;0;R;;;;;N;;;;;-10907;PHOENICIAN LETTER HET;Lo;0;R;;;;;N;;;;;-10908;PHOENICIAN LETTER TET;Lo;0;R;;;;;N;;;;;-10909;PHOENICIAN LETTER YOD;Lo;0;R;;;;;N;;;;;-1090A;PHOENICIAN LETTER KAF;Lo;0;R;;;;;N;;;;;-1090B;PHOENICIAN LETTER LAMD;Lo;0;R;;;;;N;;;;;-1090C;PHOENICIAN LETTER MEM;Lo;0;R;;;;;N;;;;;-1090D;PHOENICIAN LETTER NUN;Lo;0;R;;;;;N;;;;;-1090E;PHOENICIAN LETTER SEMK;Lo;0;R;;;;;N;;;;;-1090F;PHOENICIAN LETTER AIN;Lo;0;R;;;;;N;;;;;-10910;PHOENICIAN LETTER PE;Lo;0;R;;;;;N;;;;;-10911;PHOENICIAN LETTER SADE;Lo;0;R;;;;;N;;;;;-10912;PHOENICIAN LETTER QOF;Lo;0;R;;;;;N;;;;;-10913;PHOENICIAN LETTER ROSH;Lo;0;R;;;;;N;;;;;-10914;PHOENICIAN LETTER SHIN;Lo;0;R;;;;;N;;;;;-10915;PHOENICIAN LETTER TAU;Lo;0;R;;;;;N;;;;;-10916;PHOENICIAN NUMBER ONE;No;0;R;;;;1;N;;;;;-10917;PHOENICIAN NUMBER TEN;No;0;R;;;;10;N;;;;;-10918;PHOENICIAN NUMBER TWENTY;No;0;R;;;;20;N;;;;;-10919;PHOENICIAN NUMBER ONE HUNDRED;No;0;R;;;;100;N;;;;;-1091F;PHOENICIAN WORD SEPARATOR;Po;0;ON;;;;;N;;;;;-10A00;KHAROSHTHI LETTER A;Lo;0;R;;;;;N;;;;;-10A01;KHAROSHTHI VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;-10A02;KHAROSHTHI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;-10A03;KHAROSHTHI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;-10A05;KHAROSHTHI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;-10A06;KHAROSHTHI VOWEL SIGN O;Mn;0;NSM;;;;;N;;;;;-10A0C;KHAROSHTHI VOWEL LENGTH MARK;Mn;0;NSM;;;;;N;;;;;-10A0D;KHAROSHTHI SIGN DOUBLE RING BELOW;Mn;220;NSM;;;;;N;;;;;-10A0E;KHAROSHTHI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;-10A0F;KHAROSHTHI SIGN VISARGA;Mn;230;NSM;;;;;N;;;;;-10A10;KHAROSHTHI LETTER KA;Lo;0;R;;;;;N;;;;;-10A11;KHAROSHTHI LETTER KHA;Lo;0;R;;;;;N;;;;;-10A12;KHAROSHTHI LETTER GA;Lo;0;R;;;;;N;;;;;-10A13;KHAROSHTHI LETTER GHA;Lo;0;R;;;;;N;;;;;-10A15;KHAROSHTHI LETTER CA;Lo;0;R;;;;;N;;;;;-10A16;KHAROSHTHI LETTER CHA;Lo;0;R;;;;;N;;;;;-10A17;KHAROSHTHI LETTER JA;Lo;0;R;;;;;N;;;;;-10A19;KHAROSHTHI LETTER NYA;Lo;0;R;;;;;N;;;;;-10A1A;KHAROSHTHI LETTER TTA;Lo;0;R;;;;;N;;;;;-10A1B;KHAROSHTHI LETTER TTHA;Lo;0;R;;;;;N;;;;;-10A1C;KHAROSHTHI LETTER DDA;Lo;0;R;;;;;N;;;;;-10A1D;KHAROSHTHI LETTER DDHA;Lo;0;R;;;;;N;;;;;-10A1E;KHAROSHTHI LETTER NNA;Lo;0;R;;;;;N;;;;;-10A1F;KHAROSHTHI LETTER TA;Lo;0;R;;;;;N;;;;;-10A20;KHAROSHTHI LETTER THA;Lo;0;R;;;;;N;;;;;-10A21;KHAROSHTHI LETTER DA;Lo;0;R;;;;;N;;;;;-10A22;KHAROSHTHI LETTER DHA;Lo;0;R;;;;;N;;;;;-10A23;KHAROSHTHI LETTER NA;Lo;0;R;;;;;N;;;;;-10A24;KHAROSHTHI LETTER PA;Lo;0;R;;;;;N;;;;;-10A25;KHAROSHTHI LETTER PHA;Lo;0;R;;;;;N;;;;;-10A26;KHAROSHTHI LETTER BA;Lo;0;R;;;;;N;;;;;-10A27;KHAROSHTHI LETTER BHA;Lo;0;R;;;;;N;;;;;-10A28;KHAROSHTHI LETTER MA;Lo;0;R;;;;;N;;;;;-10A29;KHAROSHTHI LETTER YA;Lo;0;R;;;;;N;;;;;-10A2A;KHAROSHTHI LETTER RA;Lo;0;R;;;;;N;;;;;-10A2B;KHAROSHTHI LETTER LA;Lo;0;R;;;;;N;;;;;-10A2C;KHAROSHTHI LETTER VA;Lo;0;R;;;;;N;;;;;-10A2D;KHAROSHTHI LETTER SHA;Lo;0;R;;;;;N;;;;;-10A2E;KHAROSHTHI LETTER SSA;Lo;0;R;;;;;N;;;;;-10A2F;KHAROSHTHI LETTER SA;Lo;0;R;;;;;N;;;;;-10A30;KHAROSHTHI LETTER ZA;Lo;0;R;;;;;N;;;;;-10A31;KHAROSHTHI LETTER HA;Lo;0;R;;;;;N;;;;;-10A32;KHAROSHTHI LETTER KKA;Lo;0;R;;;;;N;;;;;-10A33;KHAROSHTHI LETTER TTTHA;Lo;0;R;;;;;N;;;;;-10A38;KHAROSHTHI SIGN BAR ABOVE;Mn;230;NSM;;;;;N;;;;;-10A39;KHAROSHTHI SIGN CAUDA;Mn;1;NSM;;;;;N;;;;;-10A3A;KHAROSHTHI SIGN DOT BELOW;Mn;220;NSM;;;;;N;;;;;-10A3F;KHAROSHTHI VIRAMA;Mn;9;NSM;;;;;N;;;;;-10A40;KHAROSHTHI DIGIT ONE;No;0;R;;;1;1;N;;;;;-10A41;KHAROSHTHI DIGIT TWO;No;0;R;;;2;2;N;;;;;-10A42;KHAROSHTHI DIGIT THREE;No;0;R;;;3;3;N;;;;;-10A43;KHAROSHTHI DIGIT FOUR;No;0;R;;;4;4;N;;;;;-10A44;KHAROSHTHI NUMBER TEN;No;0;R;;;;10;N;;;;;-10A45;KHAROSHTHI NUMBER TWENTY;No;0;R;;;;20;N;;;;;-10A46;KHAROSHTHI NUMBER ONE HUNDRED;No;0;R;;;;100;N;;;;;-10A47;KHAROSHTHI NUMBER ONE THOUSAND;No;0;R;;;;1000;N;;;;;-10A50;KHAROSHTHI PUNCTUATION DOT;Po;0;R;;;;;N;;;;;-10A51;KHAROSHTHI PUNCTUATION SMALL CIRCLE;Po;0;R;;;;;N;;;;;-10A52;KHAROSHTHI PUNCTUATION CIRCLE;Po;0;R;;;;;N;;;;;-10A53;KHAROSHTHI PUNCTUATION CRESCENT BAR;Po;0;R;;;;;N;;;;;-10A54;KHAROSHTHI PUNCTUATION MANGALAM;Po;0;R;;;;;N;;;;;-10A55;KHAROSHTHI PUNCTUATION LOTUS;Po;0;R;;;;;N;;;;;-10A56;KHAROSHTHI PUNCTUATION DANDA;Po;0;R;;;;;N;;;;;-10A57;KHAROSHTHI PUNCTUATION DOUBLE DANDA;Po;0;R;;;;;N;;;;;-10A58;KHAROSHTHI PUNCTUATION LINES;Po;0;R;;;;;N;;;;;-12000;CUNEIFORM SIGN A;Lo;0;L;;;;;N;;;;;-12001;CUNEIFORM SIGN A TIMES A;Lo;0;L;;;;;N;;;;;-12002;CUNEIFORM SIGN A TIMES BAD;Lo;0;L;;;;;N;;;;;-12003;CUNEIFORM SIGN A TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;-12004;CUNEIFORM SIGN A TIMES HA;Lo;0;L;;;;;N;;;;;-12005;CUNEIFORM SIGN A TIMES IGI;Lo;0;L;;;;;N;;;;;-12006;CUNEIFORM SIGN A TIMES LAGAR GUNU;Lo;0;L;;;;;N;;;;;-12007;CUNEIFORM SIGN A TIMES MUSH;Lo;0;L;;;;;N;;;;;-12008;CUNEIFORM SIGN A TIMES SAG;Lo;0;L;;;;;N;;;;;-12009;CUNEIFORM SIGN A2;Lo;0;L;;;;;N;;;;;-1200A;CUNEIFORM SIGN AB;Lo;0;L;;;;;N;;;;;-1200B;CUNEIFORM SIGN AB TIMES ASH2;Lo;0;L;;;;;N;;;;;-1200C;CUNEIFORM SIGN AB TIMES DUN3 GUNU;Lo;0;L;;;;;N;;;;;-1200D;CUNEIFORM SIGN AB TIMES GAL;Lo;0;L;;;;;N;;;;;-1200E;CUNEIFORM SIGN AB TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;-1200F;CUNEIFORM SIGN AB TIMES HA;Lo;0;L;;;;;N;;;;;-12010;CUNEIFORM SIGN AB TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;-12011;CUNEIFORM SIGN AB TIMES IMIN;Lo;0;L;;;;;N;;;;;-12012;CUNEIFORM SIGN AB TIMES LAGAB;Lo;0;L;;;;;N;;;;;-12013;CUNEIFORM SIGN AB TIMES SHESH;Lo;0;L;;;;;N;;;;;-12014;CUNEIFORM SIGN AB TIMES U PLUS U PLUS U;Lo;0;L;;;;;N;;;;;-12015;CUNEIFORM SIGN AB GUNU;Lo;0;L;;;;;N;;;;;-12016;CUNEIFORM SIGN AB2;Lo;0;L;;;;;N;;;;;-12017;CUNEIFORM SIGN AB2 TIMES BALAG;Lo;0;L;;;;;N;;;;;-12018;CUNEIFORM SIGN AB2 TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;-12019;CUNEIFORM SIGN AB2 TIMES ME PLUS EN;Lo;0;L;;;;;N;;;;;-1201A;CUNEIFORM SIGN AB2 TIMES SHA3;Lo;0;L;;;;;N;;;;;-1201B;CUNEIFORM SIGN AB2 TIMES TAK4;Lo;0;L;;;;;N;;;;;-1201C;CUNEIFORM SIGN AD;Lo;0;L;;;;;N;;;;;-1201D;CUNEIFORM SIGN AK;Lo;0;L;;;;;N;;;;;-1201E;CUNEIFORM SIGN AK TIMES ERIN2;Lo;0;L;;;;;N;;;;;-1201F;CUNEIFORM SIGN AK TIMES SHITA PLUS GISH;Lo;0;L;;;;;N;;;;;-12020;CUNEIFORM SIGN AL;Lo;0;L;;;;;N;;;;;-12021;CUNEIFORM SIGN AL TIMES AL;Lo;0;L;;;;;N;;;;;-12022;CUNEIFORM SIGN AL TIMES DIM2;Lo;0;L;;;;;N;;;;;-12023;CUNEIFORM SIGN AL TIMES GISH;Lo;0;L;;;;;N;;;;;-12024;CUNEIFORM SIGN AL TIMES HA;Lo;0;L;;;;;N;;;;;-12025;CUNEIFORM SIGN AL TIMES KAD3;Lo;0;L;;;;;N;;;;;-12026;CUNEIFORM SIGN AL TIMES KI;Lo;0;L;;;;;N;;;;;-12027;CUNEIFORM SIGN AL TIMES SHE;Lo;0;L;;;;;N;;;;;-12028;CUNEIFORM SIGN AL TIMES USH;Lo;0;L;;;;;N;;;;;-12029;CUNEIFORM SIGN ALAN;Lo;0;L;;;;;N;;;;;-1202A;CUNEIFORM SIGN ALEPH;Lo;0;L;;;;;N;;;;;-1202B;CUNEIFORM SIGN AMAR;Lo;0;L;;;;;N;;;;;-1202C;CUNEIFORM SIGN AMAR TIMES SHE;Lo;0;L;;;;;N;;;;;-1202D;CUNEIFORM SIGN AN;Lo;0;L;;;;;N;;;;;-1202E;CUNEIFORM SIGN AN OVER AN;Lo;0;L;;;;;N;;;;;-1202F;CUNEIFORM SIGN AN THREE TIMES;Lo;0;L;;;;;N;;;;;-12030;CUNEIFORM SIGN AN PLUS NAGA OPPOSING AN PLUS NAGA;Lo;0;L;;;;;N;;;;;-12031;CUNEIFORM SIGN AN PLUS NAGA SQUARED;Lo;0;L;;;;;N;;;;;-12032;CUNEIFORM SIGN ANSHE;Lo;0;L;;;;;N;;;;;-12033;CUNEIFORM SIGN APIN;Lo;0;L;;;;;N;;;;;-12034;CUNEIFORM SIGN ARAD;Lo;0;L;;;;;N;;;;;-12035;CUNEIFORM SIGN ARAD TIMES KUR;Lo;0;L;;;;;N;;;;;-12036;CUNEIFORM SIGN ARKAB;Lo;0;L;;;;;N;;;;;-12037;CUNEIFORM SIGN ASAL2;Lo;0;L;;;;;N;;;;;-12038;CUNEIFORM SIGN ASH;Lo;0;L;;;;;N;;;;;-12039;CUNEIFORM SIGN ASH ZIDA TENU;Lo;0;L;;;;;N;;;;;-1203A;CUNEIFORM SIGN ASH KABA TENU;Lo;0;L;;;;;N;;;;;-1203B;CUNEIFORM SIGN ASH OVER ASH TUG2 OVER TUG2 TUG2 OVER TUG2 PAP;Lo;0;L;;;;;N;;;;;-1203C;CUNEIFORM SIGN ASH OVER ASH OVER ASH;Lo;0;L;;;;;N;;;;;-1203D;CUNEIFORM SIGN ASH OVER ASH OVER ASH CROSSING ASH OVER ASH OVER ASH;Lo;0;L;;;;;N;;;;;-1203E;CUNEIFORM SIGN ASH2;Lo;0;L;;;;;N;;;;;-1203F;CUNEIFORM SIGN ASHGAB;Lo;0;L;;;;;N;;;;;-12040;CUNEIFORM SIGN BA;Lo;0;L;;;;;N;;;;;-12041;CUNEIFORM SIGN BAD;Lo;0;L;;;;;N;;;;;-12042;CUNEIFORM SIGN BAG3;Lo;0;L;;;;;N;;;;;-12043;CUNEIFORM SIGN BAHAR2;Lo;0;L;;;;;N;;;;;-12044;CUNEIFORM SIGN BAL;Lo;0;L;;;;;N;;;;;-12045;CUNEIFORM SIGN BAL OVER BAL;Lo;0;L;;;;;N;;;;;-12046;CUNEIFORM SIGN BALAG;Lo;0;L;;;;;N;;;;;-12047;CUNEIFORM SIGN BAR;Lo;0;L;;;;;N;;;;;-12048;CUNEIFORM SIGN BARA2;Lo;0;L;;;;;N;;;;;-12049;CUNEIFORM SIGN BI;Lo;0;L;;;;;N;;;;;-1204A;CUNEIFORM SIGN BI TIMES A;Lo;0;L;;;;;N;;;;;-1204B;CUNEIFORM SIGN BI TIMES GAR;Lo;0;L;;;;;N;;;;;-1204C;CUNEIFORM SIGN BI TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;-1204D;CUNEIFORM SIGN BU;Lo;0;L;;;;;N;;;;;-1204E;CUNEIFORM SIGN BU OVER BU AB;Lo;0;L;;;;;N;;;;;-1204F;CUNEIFORM SIGN BU OVER BU UN;Lo;0;L;;;;;N;;;;;-12050;CUNEIFORM SIGN BU CROSSING BU;Lo;0;L;;;;;N;;;;;-12051;CUNEIFORM SIGN BULUG;Lo;0;L;;;;;N;;;;;-12052;CUNEIFORM SIGN BULUG OVER BULUG;Lo;0;L;;;;;N;;;;;-12053;CUNEIFORM SIGN BUR;Lo;0;L;;;;;N;;;;;-12054;CUNEIFORM SIGN BUR2;Lo;0;L;;;;;N;;;;;-12055;CUNEIFORM SIGN DA;Lo;0;L;;;;;N;;;;;-12056;CUNEIFORM SIGN DAG;Lo;0;L;;;;;N;;;;;-12057;CUNEIFORM SIGN DAG KISIM5 TIMES A PLUS MASH;Lo;0;L;;;;;N;;;;;-12058;CUNEIFORM SIGN DAG KISIM5 TIMES AMAR;Lo;0;L;;;;;N;;;;;-12059;CUNEIFORM SIGN DAG KISIM5 TIMES BALAG;Lo;0;L;;;;;N;;;;;-1205A;CUNEIFORM SIGN DAG KISIM5 TIMES BI;Lo;0;L;;;;;N;;;;;-1205B;CUNEIFORM SIGN DAG KISIM5 TIMES GA;Lo;0;L;;;;;N;;;;;-1205C;CUNEIFORM SIGN DAG KISIM5 TIMES GA PLUS MASH;Lo;0;L;;;;;N;;;;;-1205D;CUNEIFORM SIGN DAG KISIM5 TIMES GI;Lo;0;L;;;;;N;;;;;-1205E;CUNEIFORM SIGN DAG KISIM5 TIMES GIR2;Lo;0;L;;;;;N;;;;;-1205F;CUNEIFORM SIGN DAG KISIM5 TIMES GUD;Lo;0;L;;;;;N;;;;;-12060;CUNEIFORM SIGN DAG KISIM5 TIMES HA;Lo;0;L;;;;;N;;;;;-12061;CUNEIFORM SIGN DAG KISIM5 TIMES IR;Lo;0;L;;;;;N;;;;;-12062;CUNEIFORM SIGN DAG KISIM5 TIMES IR PLUS LU;Lo;0;L;;;;;N;;;;;-12063;CUNEIFORM SIGN DAG KISIM5 TIMES KAK;Lo;0;L;;;;;N;;;;;-12064;CUNEIFORM SIGN DAG KISIM5 TIMES LA;Lo;0;L;;;;;N;;;;;-12065;CUNEIFORM SIGN DAG KISIM5 TIMES LU;Lo;0;L;;;;;N;;;;;-12066;CUNEIFORM SIGN DAG KISIM5 TIMES LU PLUS MASH2;Lo;0;L;;;;;N;;;;;-12067;CUNEIFORM SIGN DAG KISIM5 TIMES LUM;Lo;0;L;;;;;N;;;;;-12068;CUNEIFORM SIGN DAG KISIM5 TIMES NE;Lo;0;L;;;;;N;;;;;-12069;CUNEIFORM SIGN DAG KISIM5 TIMES PAP PLUS PAP;Lo;0;L;;;;;N;;;;;-1206A;CUNEIFORM SIGN DAG KISIM5 TIMES SI;Lo;0;L;;;;;N;;;;;-1206B;CUNEIFORM SIGN DAG KISIM5 TIMES TAK4;Lo;0;L;;;;;N;;;;;-1206C;CUNEIFORM SIGN DAG KISIM5 TIMES U2 PLUS GIR2;Lo;0;L;;;;;N;;;;;-1206D;CUNEIFORM SIGN DAG KISIM5 TIMES USH;Lo;0;L;;;;;N;;;;;-1206E;CUNEIFORM SIGN DAM;Lo;0;L;;;;;N;;;;;-1206F;CUNEIFORM SIGN DAR;Lo;0;L;;;;;N;;;;;-12070;CUNEIFORM SIGN DARA3;Lo;0;L;;;;;N;;;;;-12071;CUNEIFORM SIGN DARA4;Lo;0;L;;;;;N;;;;;-12072;CUNEIFORM SIGN DI;Lo;0;L;;;;;N;;;;;-12073;CUNEIFORM SIGN DIB;Lo;0;L;;;;;N;;;;;-12074;CUNEIFORM SIGN DIM;Lo;0;L;;;;;N;;;;;-12075;CUNEIFORM SIGN DIM TIMES SHE;Lo;0;L;;;;;N;;;;;-12076;CUNEIFORM SIGN DIM2;Lo;0;L;;;;;N;;;;;-12077;CUNEIFORM SIGN DIN;Lo;0;L;;;;;N;;;;;-12078;CUNEIFORM SIGN DIN KASKAL U GUNU DISH;Lo;0;L;;;;;N;;;;;-12079;CUNEIFORM SIGN DISH;Lo;0;L;;;;;N;;;;;-1207A;CUNEIFORM SIGN DU;Lo;0;L;;;;;N;;;;;-1207B;CUNEIFORM SIGN DU OVER DU;Lo;0;L;;;;;N;;;;;-1207C;CUNEIFORM SIGN DU GUNU;Lo;0;L;;;;;N;;;;;-1207D;CUNEIFORM SIGN DU SHESHIG;Lo;0;L;;;;;N;;;;;-1207E;CUNEIFORM SIGN DUB;Lo;0;L;;;;;N;;;;;-1207F;CUNEIFORM SIGN DUB TIMES ESH2;Lo;0;L;;;;;N;;;;;-12080;CUNEIFORM SIGN DUB2;Lo;0;L;;;;;N;;;;;-12081;CUNEIFORM SIGN DUG;Lo;0;L;;;;;N;;;;;-12082;CUNEIFORM SIGN DUGUD;Lo;0;L;;;;;N;;;;;-12083;CUNEIFORM SIGN DUH;Lo;0;L;;;;;N;;;;;-12084;CUNEIFORM SIGN DUN;Lo;0;L;;;;;N;;;;;-12085;CUNEIFORM SIGN DUN3;Lo;0;L;;;;;N;;;;;-12086;CUNEIFORM SIGN DUN3 GUNU;Lo;0;L;;;;;N;;;;;-12087;CUNEIFORM SIGN DUN3 GUNU GUNU;Lo;0;L;;;;;N;;;;;-12088;CUNEIFORM SIGN DUN4;Lo;0;L;;;;;N;;;;;-12089;CUNEIFORM SIGN DUR2;Lo;0;L;;;;;N;;;;;-1208A;CUNEIFORM SIGN E;Lo;0;L;;;;;N;;;;;-1208B;CUNEIFORM SIGN E TIMES PAP;Lo;0;L;;;;;N;;;;;-1208C;CUNEIFORM SIGN E OVER E NUN OVER NUN;Lo;0;L;;;;;N;;;;;-1208D;CUNEIFORM SIGN E2;Lo;0;L;;;;;N;;;;;-1208E;CUNEIFORM SIGN E2 TIMES A PLUS HA PLUS DA;Lo;0;L;;;;;N;;;;;-1208F;CUNEIFORM SIGN E2 TIMES GAR;Lo;0;L;;;;;N;;;;;-12090;CUNEIFORM SIGN E2 TIMES MI;Lo;0;L;;;;;N;;;;;-12091;CUNEIFORM SIGN E2 TIMES SAL;Lo;0;L;;;;;N;;;;;-12092;CUNEIFORM SIGN E2 TIMES SHE;Lo;0;L;;;;;N;;;;;-12093;CUNEIFORM SIGN E2 TIMES U;Lo;0;L;;;;;N;;;;;-12094;CUNEIFORM SIGN EDIN;Lo;0;L;;;;;N;;;;;-12095;CUNEIFORM SIGN EGIR;Lo;0;L;;;;;N;;;;;-12096;CUNEIFORM SIGN EL;Lo;0;L;;;;;N;;;;;-12097;CUNEIFORM SIGN EN;Lo;0;L;;;;;N;;;;;-12098;CUNEIFORM SIGN EN TIMES GAN2;Lo;0;L;;;;;N;;;;;-12099;CUNEIFORM SIGN EN TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;-1209A;CUNEIFORM SIGN EN TIMES ME;Lo;0;L;;;;;N;;;;;-1209B;CUNEIFORM SIGN EN CROSSING EN;Lo;0;L;;;;;N;;;;;-1209C;CUNEIFORM SIGN EN OPPOSING EN;Lo;0;L;;;;;N;;;;;-1209D;CUNEIFORM SIGN EN SQUARED;Lo;0;L;;;;;N;;;;;-1209E;CUNEIFORM SIGN EREN;Lo;0;L;;;;;N;;;;;-1209F;CUNEIFORM SIGN ERIN2;Lo;0;L;;;;;N;;;;;-120A0;CUNEIFORM SIGN ESH2;Lo;0;L;;;;;N;;;;;-120A1;CUNEIFORM SIGN EZEN;Lo;0;L;;;;;N;;;;;-120A2;CUNEIFORM SIGN EZEN TIMES A;Lo;0;L;;;;;N;;;;;-120A3;CUNEIFORM SIGN EZEN TIMES A PLUS LAL;Lo;0;L;;;;;N;;;;;-120A4;CUNEIFORM SIGN EZEN TIMES A PLUS LAL TIMES LAL;Lo;0;L;;;;;N;;;;;-120A5;CUNEIFORM SIGN EZEN TIMES AN;Lo;0;L;;;;;N;;;;;-120A6;CUNEIFORM SIGN EZEN TIMES BAD;Lo;0;L;;;;;N;;;;;-120A7;CUNEIFORM SIGN EZEN TIMES DUN3 GUNU;Lo;0;L;;;;;N;;;;;-120A8;CUNEIFORM SIGN EZEN TIMES DUN3 GUNU GUNU;Lo;0;L;;;;;N;;;;;-120A9;CUNEIFORM SIGN EZEN TIMES HA;Lo;0;L;;;;;N;;;;;-120AA;CUNEIFORM SIGN EZEN TIMES HA GUNU;Lo;0;L;;;;;N;;;;;-120AB;CUNEIFORM SIGN EZEN TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;-120AC;CUNEIFORM SIGN EZEN TIMES KASKAL;Lo;0;L;;;;;N;;;;;-120AD;CUNEIFORM SIGN EZEN TIMES KASKAL SQUARED;Lo;0;L;;;;;N;;;;;-120AE;CUNEIFORM SIGN EZEN TIMES KU3;Lo;0;L;;;;;N;;;;;-120AF;CUNEIFORM SIGN EZEN TIMES LA;Lo;0;L;;;;;N;;;;;-120B0;CUNEIFORM SIGN EZEN TIMES LAL TIMES LAL;Lo;0;L;;;;;N;;;;;-120B1;CUNEIFORM SIGN EZEN TIMES LI;Lo;0;L;;;;;N;;;;;-120B2;CUNEIFORM SIGN EZEN TIMES LU;Lo;0;L;;;;;N;;;;;-120B3;CUNEIFORM SIGN EZEN TIMES U2;Lo;0;L;;;;;N;;;;;-120B4;CUNEIFORM SIGN EZEN TIMES UD;Lo;0;L;;;;;N;;;;;-120B5;CUNEIFORM SIGN GA;Lo;0;L;;;;;N;;;;;-120B6;CUNEIFORM SIGN GA GUNU;Lo;0;L;;;;;N;;;;;-120B7;CUNEIFORM SIGN GA2;Lo;0;L;;;;;N;;;;;-120B8;CUNEIFORM SIGN GA2 TIMES A PLUS DA PLUS HA;Lo;0;L;;;;;N;;;;;-120B9;CUNEIFORM SIGN GA2 TIMES A PLUS HA;Lo;0;L;;;;;N;;;;;-120BA;CUNEIFORM SIGN GA2 TIMES A PLUS IGI;Lo;0;L;;;;;N;;;;;-120BB;CUNEIFORM SIGN GA2 TIMES AB2 TENU PLUS TAB;Lo;0;L;;;;;N;;;;;-120BC;CUNEIFORM SIGN GA2 TIMES AN;Lo;0;L;;;;;N;;;;;-120BD;CUNEIFORM SIGN GA2 TIMES ASH;Lo;0;L;;;;;N;;;;;-120BE;CUNEIFORM SIGN GA2 TIMES ASH2 PLUS GAL;Lo;0;L;;;;;N;;;;;-120BF;CUNEIFORM SIGN GA2 TIMES BAD;Lo;0;L;;;;;N;;;;;-120C0;CUNEIFORM SIGN GA2 TIMES BAR PLUS RA;Lo;0;L;;;;;N;;;;;-120C1;CUNEIFORM SIGN GA2 TIMES BUR;Lo;0;L;;;;;N;;;;;-120C2;CUNEIFORM SIGN GA2 TIMES BUR PLUS RA;Lo;0;L;;;;;N;;;;;-120C3;CUNEIFORM SIGN GA2 TIMES DA;Lo;0;L;;;;;N;;;;;-120C4;CUNEIFORM SIGN GA2 TIMES DI;Lo;0;L;;;;;N;;;;;-120C5;CUNEIFORM SIGN GA2 TIMES DIM TIMES SHE;Lo;0;L;;;;;N;;;;;-120C6;CUNEIFORM SIGN GA2 TIMES DUB;Lo;0;L;;;;;N;;;;;-120C7;CUNEIFORM SIGN GA2 TIMES EL;Lo;0;L;;;;;N;;;;;-120C8;CUNEIFORM SIGN GA2 TIMES EL PLUS LA;Lo;0;L;;;;;N;;;;;-120C9;CUNEIFORM SIGN GA2 TIMES EN;Lo;0;L;;;;;N;;;;;-120CA;CUNEIFORM SIGN GA2 TIMES EN TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;-120CB;CUNEIFORM SIGN GA2 TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;-120CC;CUNEIFORM SIGN GA2 TIMES GAR;Lo;0;L;;;;;N;;;;;-120CD;CUNEIFORM SIGN GA2 TIMES GI;Lo;0;L;;;;;N;;;;;-120CE;CUNEIFORM SIGN GA2 TIMES GI4;Lo;0;L;;;;;N;;;;;-120CF;CUNEIFORM SIGN GA2 TIMES GI4 PLUS A;Lo;0;L;;;;;N;;;;;-120D0;CUNEIFORM SIGN GA2 TIMES GIR2 PLUS SU;Lo;0;L;;;;;N;;;;;-120D1;CUNEIFORM SIGN GA2 TIMES HA PLUS LU PLUS ESH2;Lo;0;L;;;;;N;;;;;-120D2;CUNEIFORM SIGN GA2 TIMES HAL;Lo;0;L;;;;;N;;;;;-120D3;CUNEIFORM SIGN GA2 TIMES HAL PLUS LA;Lo;0;L;;;;;N;;;;;-120D4;CUNEIFORM SIGN GA2 TIMES HI PLUS LI;Lo;0;L;;;;;N;;;;;-120D5;CUNEIFORM SIGN GA2 TIMES HUB2;Lo;0;L;;;;;N;;;;;-120D6;CUNEIFORM SIGN GA2 TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;-120D7;CUNEIFORM SIGN GA2 TIMES ISH PLUS HU PLUS ASH;Lo;0;L;;;;;N;;;;;-120D8;CUNEIFORM SIGN GA2 TIMES KAK;Lo;0;L;;;;;N;;;;;-120D9;CUNEIFORM SIGN GA2 TIMES KASKAL;Lo;0;L;;;;;N;;;;;-120DA;CUNEIFORM SIGN GA2 TIMES KID;Lo;0;L;;;;;N;;;;;-120DB;CUNEIFORM SIGN GA2 TIMES KID PLUS LAL;Lo;0;L;;;;;N;;;;;-120DC;CUNEIFORM SIGN GA2 TIMES KU3 PLUS AN;Lo;0;L;;;;;N;;;;;-120DD;CUNEIFORM SIGN GA2 TIMES LA;Lo;0;L;;;;;N;;;;;-120DE;CUNEIFORM SIGN GA2 TIMES ME PLUS EN;Lo;0;L;;;;;N;;;;;-120DF;CUNEIFORM SIGN GA2 TIMES MI;Lo;0;L;;;;;N;;;;;-120E0;CUNEIFORM SIGN GA2 TIMES NUN;Lo;0;L;;;;;N;;;;;-120E1;CUNEIFORM SIGN GA2 TIMES NUN OVER NUN;Lo;0;L;;;;;N;;;;;-120E2;CUNEIFORM SIGN GA2 TIMES PA;Lo;0;L;;;;;N;;;;;-120E3;CUNEIFORM SIGN GA2 TIMES SAL;Lo;0;L;;;;;N;;;;;-120E4;CUNEIFORM SIGN GA2 TIMES SAR;Lo;0;L;;;;;N;;;;;-120E5;CUNEIFORM SIGN GA2 TIMES SHE;Lo;0;L;;;;;N;;;;;-120E6;CUNEIFORM SIGN GA2 TIMES SHE PLUS TUR;Lo;0;L;;;;;N;;;;;-120E7;CUNEIFORM SIGN GA2 TIMES SHID;Lo;0;L;;;;;N;;;;;-120E8;CUNEIFORM SIGN GA2 TIMES SUM;Lo;0;L;;;;;N;;;;;-120E9;CUNEIFORM SIGN GA2 TIMES TAK4;Lo;0;L;;;;;N;;;;;-120EA;CUNEIFORM SIGN GA2 TIMES U;Lo;0;L;;;;;N;;;;;-120EB;CUNEIFORM SIGN GA2 TIMES UD;Lo;0;L;;;;;N;;;;;-120EC;CUNEIFORM SIGN GA2 TIMES UD PLUS DU;Lo;0;L;;;;;N;;;;;-120ED;CUNEIFORM SIGN GA2 OVER GA2;Lo;0;L;;;;;N;;;;;-120EE;CUNEIFORM SIGN GABA;Lo;0;L;;;;;N;;;;;-120EF;CUNEIFORM SIGN GABA CROSSING GABA;Lo;0;L;;;;;N;;;;;-120F0;CUNEIFORM SIGN GAD;Lo;0;L;;;;;N;;;;;-120F1;CUNEIFORM SIGN GAD OVER GAD GAR OVER GAR;Lo;0;L;;;;;N;;;;;-120F2;CUNEIFORM SIGN GAL;Lo;0;L;;;;;N;;;;;-120F3;CUNEIFORM SIGN GAL GAD OVER GAD GAR OVER GAR;Lo;0;L;;;;;N;;;;;-120F4;CUNEIFORM SIGN GALAM;Lo;0;L;;;;;N;;;;;-120F5;CUNEIFORM SIGN GAM;Lo;0;L;;;;;N;;;;;-120F6;CUNEIFORM SIGN GAN;Lo;0;L;;;;;N;;;;;-120F7;CUNEIFORM SIGN GAN2;Lo;0;L;;;;;N;;;;;-120F8;CUNEIFORM SIGN GAN2 TENU;Lo;0;L;;;;;N;;;;;-120F9;CUNEIFORM SIGN GAN2 OVER GAN2;Lo;0;L;;;;;N;;;;;-120FA;CUNEIFORM SIGN GAN2 CROSSING GAN2;Lo;0;L;;;;;N;;;;;-120FB;CUNEIFORM SIGN GAR;Lo;0;L;;;;;N;;;;;-120FC;CUNEIFORM SIGN GAR3;Lo;0;L;;;;;N;;;;;-120FD;CUNEIFORM SIGN GASHAN;Lo;0;L;;;;;N;;;;;-120FE;CUNEIFORM SIGN GESHTIN;Lo;0;L;;;;;N;;;;;-120FF;CUNEIFORM SIGN GESHTIN TIMES KUR;Lo;0;L;;;;;N;;;;;-12100;CUNEIFORM SIGN GI;Lo;0;L;;;;;N;;;;;-12101;CUNEIFORM SIGN GI TIMES E;Lo;0;L;;;;;N;;;;;-12102;CUNEIFORM SIGN GI TIMES U;Lo;0;L;;;;;N;;;;;-12103;CUNEIFORM SIGN GI CROSSING GI;Lo;0;L;;;;;N;;;;;-12104;CUNEIFORM SIGN GI4;Lo;0;L;;;;;N;;;;;-12105;CUNEIFORM SIGN GI4 OVER GI4;Lo;0;L;;;;;N;;;;;-12106;CUNEIFORM SIGN GI4 CROSSING GI4;Lo;0;L;;;;;N;;;;;-12107;CUNEIFORM SIGN GIDIM;Lo;0;L;;;;;N;;;;;-12108;CUNEIFORM SIGN GIR2;Lo;0;L;;;;;N;;;;;-12109;CUNEIFORM SIGN GIR2 GUNU;Lo;0;L;;;;;N;;;;;-1210A;CUNEIFORM SIGN GIR3;Lo;0;L;;;;;N;;;;;-1210B;CUNEIFORM SIGN GIR3 TIMES A PLUS IGI;Lo;0;L;;;;;N;;;;;-1210C;CUNEIFORM SIGN GIR3 TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;-1210D;CUNEIFORM SIGN GIR3 TIMES IGI;Lo;0;L;;;;;N;;;;;-1210E;CUNEIFORM SIGN GIR3 TIMES LU PLUS IGI;Lo;0;L;;;;;N;;;;;-1210F;CUNEIFORM SIGN GIR3 TIMES PA;Lo;0;L;;;;;N;;;;;-12110;CUNEIFORM SIGN GISAL;Lo;0;L;;;;;N;;;;;-12111;CUNEIFORM SIGN GISH;Lo;0;L;;;;;N;;;;;-12112;CUNEIFORM SIGN GISH CROSSING GISH;Lo;0;L;;;;;N;;;;;-12113;CUNEIFORM SIGN GISH TIMES BAD;Lo;0;L;;;;;N;;;;;-12114;CUNEIFORM SIGN GISH TIMES TAK4;Lo;0;L;;;;;N;;;;;-12115;CUNEIFORM SIGN GISH TENU;Lo;0;L;;;;;N;;;;;-12116;CUNEIFORM SIGN GU;Lo;0;L;;;;;N;;;;;-12117;CUNEIFORM SIGN GU CROSSING GU;Lo;0;L;;;;;N;;;;;-12118;CUNEIFORM SIGN GU2;Lo;0;L;;;;;N;;;;;-12119;CUNEIFORM SIGN GU2 TIMES KAK;Lo;0;L;;;;;N;;;;;-1211A;CUNEIFORM SIGN GU2 TIMES KAK TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;-1211B;CUNEIFORM SIGN GU2 TIMES NUN;Lo;0;L;;;;;N;;;;;-1211C;CUNEIFORM SIGN GU2 TIMES SAL PLUS TUG2;Lo;0;L;;;;;N;;;;;-1211D;CUNEIFORM SIGN GU2 GUNU;Lo;0;L;;;;;N;;;;;-1211E;CUNEIFORM SIGN GUD;Lo;0;L;;;;;N;;;;;-1211F;CUNEIFORM SIGN GUD TIMES A PLUS KUR;Lo;0;L;;;;;N;;;;;-12120;CUNEIFORM SIGN GUD TIMES KUR;Lo;0;L;;;;;N;;;;;-12121;CUNEIFORM SIGN GUD OVER GUD LUGAL;Lo;0;L;;;;;N;;;;;-12122;CUNEIFORM SIGN GUL;Lo;0;L;;;;;N;;;;;-12123;CUNEIFORM SIGN GUM;Lo;0;L;;;;;N;;;;;-12124;CUNEIFORM SIGN GUM TIMES SHE;Lo;0;L;;;;;N;;;;;-12125;CUNEIFORM SIGN GUR;Lo;0;L;;;;;N;;;;;-12126;CUNEIFORM SIGN GUR7;Lo;0;L;;;;;N;;;;;-12127;CUNEIFORM SIGN GURUN;Lo;0;L;;;;;N;;;;;-12128;CUNEIFORM SIGN GURUSH;Lo;0;L;;;;;N;;;;;-12129;CUNEIFORM SIGN HA;Lo;0;L;;;;;N;;;;;-1212A;CUNEIFORM SIGN HA TENU;Lo;0;L;;;;;N;;;;;-1212B;CUNEIFORM SIGN HA GUNU;Lo;0;L;;;;;N;;;;;-1212C;CUNEIFORM SIGN HAL;Lo;0;L;;;;;N;;;;;-1212D;CUNEIFORM SIGN HI;Lo;0;L;;;;;N;;;;;-1212E;CUNEIFORM SIGN HI TIMES ASH;Lo;0;L;;;;;N;;;;;-1212F;CUNEIFORM SIGN HI TIMES ASH2;Lo;0;L;;;;;N;;;;;-12130;CUNEIFORM SIGN HI TIMES BAD;Lo;0;L;;;;;N;;;;;-12131;CUNEIFORM SIGN HI TIMES DISH;Lo;0;L;;;;;N;;;;;-12132;CUNEIFORM SIGN HI TIMES GAD;Lo;0;L;;;;;N;;;;;-12133;CUNEIFORM SIGN HI TIMES KIN;Lo;0;L;;;;;N;;;;;-12134;CUNEIFORM SIGN HI TIMES NUN;Lo;0;L;;;;;N;;;;;-12135;CUNEIFORM SIGN HI TIMES SHE;Lo;0;L;;;;;N;;;;;-12136;CUNEIFORM SIGN HI TIMES U;Lo;0;L;;;;;N;;;;;-12137;CUNEIFORM SIGN HU;Lo;0;L;;;;;N;;;;;-12138;CUNEIFORM SIGN HUB2;Lo;0;L;;;;;N;;;;;-12139;CUNEIFORM SIGN HUB2 TIMES AN;Lo;0;L;;;;;N;;;;;-1213A;CUNEIFORM SIGN HUB2 TIMES HAL;Lo;0;L;;;;;N;;;;;-1213B;CUNEIFORM SIGN HUB2 TIMES KASKAL;Lo;0;L;;;;;N;;;;;-1213C;CUNEIFORM SIGN HUB2 TIMES LISH;Lo;0;L;;;;;N;;;;;-1213D;CUNEIFORM SIGN HUB2 TIMES UD;Lo;0;L;;;;;N;;;;;-1213E;CUNEIFORM SIGN HUL2;Lo;0;L;;;;;N;;;;;-1213F;CUNEIFORM SIGN I;Lo;0;L;;;;;N;;;;;-12140;CUNEIFORM SIGN I A;Lo;0;L;;;;;N;;;;;-12141;CUNEIFORM SIGN IB;Lo;0;L;;;;;N;;;;;-12142;CUNEIFORM SIGN IDIM;Lo;0;L;;;;;N;;;;;-12143;CUNEIFORM SIGN IDIM OVER IDIM BUR;Lo;0;L;;;;;N;;;;;-12144;CUNEIFORM SIGN IDIM OVER IDIM SQUARED;Lo;0;L;;;;;N;;;;;-12145;CUNEIFORM SIGN IG;Lo;0;L;;;;;N;;;;;-12146;CUNEIFORM SIGN IGI;Lo;0;L;;;;;N;;;;;-12147;CUNEIFORM SIGN IGI DIB;Lo;0;L;;;;;N;;;;;-12148;CUNEIFORM SIGN IGI RI;Lo;0;L;;;;;N;;;;;-12149;CUNEIFORM SIGN IGI OVER IGI SHIR OVER SHIR UD OVER UD;Lo;0;L;;;;;N;;;;;-1214A;CUNEIFORM SIGN IGI GUNU;Lo;0;L;;;;;N;;;;;-1214B;CUNEIFORM SIGN IL;Lo;0;L;;;;;N;;;;;-1214C;CUNEIFORM SIGN IL TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;-1214D;CUNEIFORM SIGN IL2;Lo;0;L;;;;;N;;;;;-1214E;CUNEIFORM SIGN IM;Lo;0;L;;;;;N;;;;;-1214F;CUNEIFORM SIGN IM TIMES TAK4;Lo;0;L;;;;;N;;;;;-12150;CUNEIFORM SIGN IM CROSSING IM;Lo;0;L;;;;;N;;;;;-12151;CUNEIFORM SIGN IM OPPOSING IM;Lo;0;L;;;;;N;;;;;-12152;CUNEIFORM SIGN IM SQUARED;Lo;0;L;;;;;N;;;;;-12153;CUNEIFORM SIGN IMIN;Lo;0;L;;;;;N;;;;;-12154;CUNEIFORM SIGN IN;Lo;0;L;;;;;N;;;;;-12155;CUNEIFORM SIGN IR;Lo;0;L;;;;;N;;;;;-12156;CUNEIFORM SIGN ISH;Lo;0;L;;;;;N;;;;;-12157;CUNEIFORM SIGN KA;Lo;0;L;;;;;N;;;;;-12158;CUNEIFORM SIGN KA TIMES A;Lo;0;L;;;;;N;;;;;-12159;CUNEIFORM SIGN KA TIMES AD;Lo;0;L;;;;;N;;;;;-1215A;CUNEIFORM SIGN KA TIMES AD PLUS KU3;Lo;0;L;;;;;N;;;;;-1215B;CUNEIFORM SIGN KA TIMES ASH2;Lo;0;L;;;;;N;;;;;-1215C;CUNEIFORM SIGN KA TIMES BAD;Lo;0;L;;;;;N;;;;;-1215D;CUNEIFORM SIGN KA TIMES BALAG;Lo;0;L;;;;;N;;;;;-1215E;CUNEIFORM SIGN KA TIMES BAR;Lo;0;L;;;;;N;;;;;-1215F;CUNEIFORM SIGN KA TIMES BI;Lo;0;L;;;;;N;;;;;-12160;CUNEIFORM SIGN KA TIMES ERIN2;Lo;0;L;;;;;N;;;;;-12161;CUNEIFORM SIGN KA TIMES ESH2;Lo;0;L;;;;;N;;;;;-12162;CUNEIFORM SIGN KA TIMES GA;Lo;0;L;;;;;N;;;;;-12163;CUNEIFORM SIGN KA TIMES GAL;Lo;0;L;;;;;N;;;;;-12164;CUNEIFORM SIGN KA TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;-12165;CUNEIFORM SIGN KA TIMES GAR;Lo;0;L;;;;;N;;;;;-12166;CUNEIFORM SIGN KA TIMES GAR PLUS SHA3 PLUS A;Lo;0;L;;;;;N;;;;;-12167;CUNEIFORM SIGN KA TIMES GI;Lo;0;L;;;;;N;;;;;-12168;CUNEIFORM SIGN KA TIMES GIR2;Lo;0;L;;;;;N;;;;;-12169;CUNEIFORM SIGN KA TIMES GISH PLUS SAR;Lo;0;L;;;;;N;;;;;-1216A;CUNEIFORM SIGN KA TIMES GISH CROSSING GISH;Lo;0;L;;;;;N;;;;;-1216B;CUNEIFORM SIGN KA TIMES GU;Lo;0;L;;;;;N;;;;;-1216C;CUNEIFORM SIGN KA TIMES GUR7;Lo;0;L;;;;;N;;;;;-1216D;CUNEIFORM SIGN KA TIMES IGI;Lo;0;L;;;;;N;;;;;-1216E;CUNEIFORM SIGN KA TIMES IM;Lo;0;L;;;;;N;;;;;-1216F;CUNEIFORM SIGN KA TIMES KAK;Lo;0;L;;;;;N;;;;;-12170;CUNEIFORM SIGN KA TIMES KI;Lo;0;L;;;;;N;;;;;-12171;CUNEIFORM SIGN KA TIMES KID;Lo;0;L;;;;;N;;;;;-12172;CUNEIFORM SIGN KA TIMES LI;Lo;0;L;;;;;N;;;;;-12173;CUNEIFORM SIGN KA TIMES LU;Lo;0;L;;;;;N;;;;;-12174;CUNEIFORM SIGN KA TIMES ME;Lo;0;L;;;;;N;;;;;-12175;CUNEIFORM SIGN KA TIMES ME PLUS DU;Lo;0;L;;;;;N;;;;;-12176;CUNEIFORM SIGN KA TIMES ME PLUS GI;Lo;0;L;;;;;N;;;;;-12177;CUNEIFORM SIGN KA TIMES ME PLUS TE;Lo;0;L;;;;;N;;;;;-12178;CUNEIFORM SIGN KA TIMES MI;Lo;0;L;;;;;N;;;;;-12179;CUNEIFORM SIGN KA TIMES MI PLUS NUNUZ;Lo;0;L;;;;;N;;;;;-1217A;CUNEIFORM SIGN KA TIMES NE;Lo;0;L;;;;;N;;;;;-1217B;CUNEIFORM SIGN KA TIMES NUN;Lo;0;L;;;;;N;;;;;-1217C;CUNEIFORM SIGN KA TIMES PI;Lo;0;L;;;;;N;;;;;-1217D;CUNEIFORM SIGN KA TIMES RU;Lo;0;L;;;;;N;;;;;-1217E;CUNEIFORM SIGN KA TIMES SA;Lo;0;L;;;;;N;;;;;-1217F;CUNEIFORM SIGN KA TIMES SAR;Lo;0;L;;;;;N;;;;;-12180;CUNEIFORM SIGN KA TIMES SHA;Lo;0;L;;;;;N;;;;;-12181;CUNEIFORM SIGN KA TIMES SHE;Lo;0;L;;;;;N;;;;;-12182;CUNEIFORM SIGN KA TIMES SHID;Lo;0;L;;;;;N;;;;;-12183;CUNEIFORM SIGN KA TIMES SHU;Lo;0;L;;;;;N;;;;;-12184;CUNEIFORM SIGN KA TIMES SIG;Lo;0;L;;;;;N;;;;;-12185;CUNEIFORM SIGN KA TIMES SUHUR;Lo;0;L;;;;;N;;;;;-12186;CUNEIFORM SIGN KA TIMES TAR;Lo;0;L;;;;;N;;;;;-12187;CUNEIFORM SIGN KA TIMES U;Lo;0;L;;;;;N;;;;;-12188;CUNEIFORM SIGN KA TIMES U2;Lo;0;L;;;;;N;;;;;-12189;CUNEIFORM SIGN KA TIMES UD;Lo;0;L;;;;;N;;;;;-1218A;CUNEIFORM SIGN KA TIMES UMUM TIMES PA;Lo;0;L;;;;;N;;;;;-1218B;CUNEIFORM SIGN KA TIMES USH;Lo;0;L;;;;;N;;;;;-1218C;CUNEIFORM SIGN KA TIMES ZI;Lo;0;L;;;;;N;;;;;-1218D;CUNEIFORM SIGN KA2;Lo;0;L;;;;;N;;;;;-1218E;CUNEIFORM SIGN KA2 CROSSING KA2;Lo;0;L;;;;;N;;;;;-1218F;CUNEIFORM SIGN KAB;Lo;0;L;;;;;N;;;;;-12190;CUNEIFORM SIGN KAD2;Lo;0;L;;;;;N;;;;;-12191;CUNEIFORM SIGN KAD3;Lo;0;L;;;;;N;;;;;-12192;CUNEIFORM SIGN KAD4;Lo;0;L;;;;;N;;;;;-12193;CUNEIFORM SIGN KAD5;Lo;0;L;;;;;N;;;;;-12194;CUNEIFORM SIGN KAD5 OVER KAD5;Lo;0;L;;;;;N;;;;;-12195;CUNEIFORM SIGN KAK;Lo;0;L;;;;;N;;;;;-12196;CUNEIFORM SIGN KAK TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;-12197;CUNEIFORM SIGN KAL;Lo;0;L;;;;;N;;;;;-12198;CUNEIFORM SIGN KAL TIMES BAD;Lo;0;L;;;;;N;;;;;-12199;CUNEIFORM SIGN KAL CROSSING KAL;Lo;0;L;;;;;N;;;;;-1219A;CUNEIFORM SIGN KAM2;Lo;0;L;;;;;N;;;;;-1219B;CUNEIFORM SIGN KAM4;Lo;0;L;;;;;N;;;;;-1219C;CUNEIFORM SIGN KASKAL;Lo;0;L;;;;;N;;;;;-1219D;CUNEIFORM SIGN KASKAL LAGAB TIMES U OVER LAGAB TIMES U;Lo;0;L;;;;;N;;;;;-1219E;CUNEIFORM SIGN KASKAL OVER KASKAL LAGAB TIMES U OVER LAGAB TIMES U;Lo;0;L;;;;;N;;;;;-1219F;CUNEIFORM SIGN KESH2;Lo;0;L;;;;;N;;;;;-121A0;CUNEIFORM SIGN KI;Lo;0;L;;;;;N;;;;;-121A1;CUNEIFORM SIGN KI TIMES BAD;Lo;0;L;;;;;N;;;;;-121A2;CUNEIFORM SIGN KI TIMES U;Lo;0;L;;;;;N;;;;;-121A3;CUNEIFORM SIGN KI TIMES UD;Lo;0;L;;;;;N;;;;;-121A4;CUNEIFORM SIGN KID;Lo;0;L;;;;;N;;;;;-121A5;CUNEIFORM SIGN KIN;Lo;0;L;;;;;N;;;;;-121A6;CUNEIFORM SIGN KISAL;Lo;0;L;;;;;N;;;;;-121A7;CUNEIFORM SIGN KISH;Lo;0;L;;;;;N;;;;;-121A8;CUNEIFORM SIGN KISIM5;Lo;0;L;;;;;N;;;;;-121A9;CUNEIFORM SIGN KISIM5 OVER KISIM5;Lo;0;L;;;;;N;;;;;-121AA;CUNEIFORM SIGN KU;Lo;0;L;;;;;N;;;;;-121AB;CUNEIFORM SIGN KU OVER HI TIMES ASH2 KU OVER HI TIMES ASH2;Lo;0;L;;;;;N;;;;;-121AC;CUNEIFORM SIGN KU3;Lo;0;L;;;;;N;;;;;-121AD;CUNEIFORM SIGN KU4;Lo;0;L;;;;;N;;;;;-121AE;CUNEIFORM SIGN KU4 VARIANT FORM;Lo;0;L;;;;;N;;;;;-121AF;CUNEIFORM SIGN KU7;Lo;0;L;;;;;N;;;;;-121B0;CUNEIFORM SIGN KUL;Lo;0;L;;;;;N;;;;;-121B1;CUNEIFORM SIGN KUL GUNU;Lo;0;L;;;;;N;;;;;-121B2;CUNEIFORM SIGN KUN;Lo;0;L;;;;;N;;;;;-121B3;CUNEIFORM SIGN KUR;Lo;0;L;;;;;N;;;;;-121B4;CUNEIFORM SIGN KUR OPPOSING KUR;Lo;0;L;;;;;N;;;;;-121B5;CUNEIFORM SIGN KUSHU2;Lo;0;L;;;;;N;;;;;-121B6;CUNEIFORM SIGN KWU318;Lo;0;L;;;;;N;;;;;-121B7;CUNEIFORM SIGN LA;Lo;0;L;;;;;N;;;;;-121B8;CUNEIFORM SIGN LAGAB;Lo;0;L;;;;;N;;;;;-121B9;CUNEIFORM SIGN LAGAB TIMES A;Lo;0;L;;;;;N;;;;;-121BA;CUNEIFORM SIGN LAGAB TIMES A PLUS DA PLUS HA;Lo;0;L;;;;;N;;;;;-121BB;CUNEIFORM SIGN LAGAB TIMES A PLUS GAR;Lo;0;L;;;;;N;;;;;-121BC;CUNEIFORM SIGN LAGAB TIMES A PLUS LAL;Lo;0;L;;;;;N;;;;;-121BD;CUNEIFORM SIGN LAGAB TIMES AL;Lo;0;L;;;;;N;;;;;-121BE;CUNEIFORM SIGN LAGAB TIMES AN;Lo;0;L;;;;;N;;;;;-121BF;CUNEIFORM SIGN LAGAB TIMES ASH ZIDA TENU;Lo;0;L;;;;;N;;;;;-121C0;CUNEIFORM SIGN LAGAB TIMES BAD;Lo;0;L;;;;;N;;;;;-121C1;CUNEIFORM SIGN LAGAB TIMES BI;Lo;0;L;;;;;N;;;;;-121C2;CUNEIFORM SIGN LAGAB TIMES DAR;Lo;0;L;;;;;N;;;;;-121C3;CUNEIFORM SIGN LAGAB TIMES EN;Lo;0;L;;;;;N;;;;;-121C4;CUNEIFORM SIGN LAGAB TIMES GA;Lo;0;L;;;;;N;;;;;-121C5;CUNEIFORM SIGN LAGAB TIMES GAR;Lo;0;L;;;;;N;;;;;-121C6;CUNEIFORM SIGN LAGAB TIMES GUD;Lo;0;L;;;;;N;;;;;-121C7;CUNEIFORM SIGN LAGAB TIMES GUD PLUS GUD;Lo;0;L;;;;;N;;;;;-121C8;CUNEIFORM SIGN LAGAB TIMES HA;Lo;0;L;;;;;N;;;;;-121C9;CUNEIFORM SIGN LAGAB TIMES HAL;Lo;0;L;;;;;N;;;;;-121CA;CUNEIFORM SIGN LAGAB TIMES HI TIMES NUN;Lo;0;L;;;;;N;;;;;-121CB;CUNEIFORM SIGN LAGAB TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;-121CC;CUNEIFORM SIGN LAGAB TIMES IM;Lo;0;L;;;;;N;;;;;-121CD;CUNEIFORM SIGN LAGAB TIMES IM PLUS HA;Lo;0;L;;;;;N;;;;;-121CE;CUNEIFORM SIGN LAGAB TIMES IM PLUS LU;Lo;0;L;;;;;N;;;;;-121CF;CUNEIFORM SIGN LAGAB TIMES KI;Lo;0;L;;;;;N;;;;;-121D0;CUNEIFORM SIGN LAGAB TIMES KIN;Lo;0;L;;;;;N;;;;;-121D1;CUNEIFORM SIGN LAGAB TIMES KU3;Lo;0;L;;;;;N;;;;;-121D2;CUNEIFORM SIGN LAGAB TIMES KUL;Lo;0;L;;;;;N;;;;;-121D3;CUNEIFORM SIGN LAGAB TIMES KUL PLUS HI PLUS A;Lo;0;L;;;;;N;;;;;-121D4;CUNEIFORM SIGN LAGAB TIMES LAGAB;Lo;0;L;;;;;N;;;;;-121D5;CUNEIFORM SIGN LAGAB TIMES LISH;Lo;0;L;;;;;N;;;;;-121D6;CUNEIFORM SIGN LAGAB TIMES LU;Lo;0;L;;;;;N;;;;;-121D7;CUNEIFORM SIGN LAGAB TIMES LUL;Lo;0;L;;;;;N;;;;;-121D8;CUNEIFORM SIGN LAGAB TIMES ME;Lo;0;L;;;;;N;;;;;-121D9;CUNEIFORM SIGN LAGAB TIMES ME PLUS EN;Lo;0;L;;;;;N;;;;;-121DA;CUNEIFORM SIGN LAGAB TIMES MUSH;Lo;0;L;;;;;N;;;;;-121DB;CUNEIFORM SIGN LAGAB TIMES NE;Lo;0;L;;;;;N;;;;;-121DC;CUNEIFORM SIGN LAGAB TIMES SHE PLUS SUM;Lo;0;L;;;;;N;;;;;-121DD;CUNEIFORM SIGN LAGAB TIMES SHITA PLUS GISH PLUS ERIN2;Lo;0;L;;;;;N;;;;;-121DE;CUNEIFORM SIGN LAGAB TIMES SHITA PLUS GISH TENU;Lo;0;L;;;;;N;;;;;-121DF;CUNEIFORM SIGN LAGAB TIMES SHU2;Lo;0;L;;;;;N;;;;;-121E0;CUNEIFORM SIGN LAGAB TIMES SHU2 PLUS SHU2;Lo;0;L;;;;;N;;;;;-121E1;CUNEIFORM SIGN LAGAB TIMES SUM;Lo;0;L;;;;;N;;;;;-121E2;CUNEIFORM SIGN LAGAB TIMES TAG;Lo;0;L;;;;;N;;;;;-121E3;CUNEIFORM SIGN LAGAB TIMES TAK4;Lo;0;L;;;;;N;;;;;-121E4;CUNEIFORM SIGN LAGAB TIMES TE PLUS A PLUS SU PLUS NA;Lo;0;L;;;;;N;;;;;-121E5;CUNEIFORM SIGN LAGAB TIMES U;Lo;0;L;;;;;N;;;;;-121E6;CUNEIFORM SIGN LAGAB TIMES U PLUS A;Lo;0;L;;;;;N;;;;;-121E7;CUNEIFORM SIGN LAGAB TIMES U PLUS U PLUS U;Lo;0;L;;;;;N;;;;;-121E8;CUNEIFORM SIGN LAGAB TIMES U2 PLUS ASH;Lo;0;L;;;;;N;;;;;-121E9;CUNEIFORM SIGN LAGAB TIMES UD;Lo;0;L;;;;;N;;;;;-121EA;CUNEIFORM SIGN LAGAB TIMES USH;Lo;0;L;;;;;N;;;;;-121EB;CUNEIFORM SIGN LAGAB SQUARED;Lo;0;L;;;;;N;;;;;-121EC;CUNEIFORM SIGN LAGAR;Lo;0;L;;;;;N;;;;;-121ED;CUNEIFORM SIGN LAGAR TIMES SHE;Lo;0;L;;;;;N;;;;;-121EE;CUNEIFORM SIGN LAGAR TIMES SHE PLUS SUM;Lo;0;L;;;;;N;;;;;-121EF;CUNEIFORM SIGN LAGAR GUNU;Lo;0;L;;;;;N;;;;;-121F0;CUNEIFORM SIGN LAGAR GUNU OVER LAGAR GUNU SHE;Lo;0;L;;;;;N;;;;;-121F1;CUNEIFORM SIGN LAHSHU;Lo;0;L;;;;;N;;;;;-121F2;CUNEIFORM SIGN LAL;Lo;0;L;;;;;N;;;;;-121F3;CUNEIFORM SIGN LAL TIMES LAL;Lo;0;L;;;;;N;;;;;-121F4;CUNEIFORM SIGN LAM;Lo;0;L;;;;;N;;;;;-121F5;CUNEIFORM SIGN LAM TIMES KUR;Lo;0;L;;;;;N;;;;;-121F6;CUNEIFORM SIGN LAM TIMES KUR PLUS RU;Lo;0;L;;;;;N;;;;;-121F7;CUNEIFORM SIGN LI;Lo;0;L;;;;;N;;;;;-121F8;CUNEIFORM SIGN LIL;Lo;0;L;;;;;N;;;;;-121F9;CUNEIFORM SIGN LIMMU2;Lo;0;L;;;;;N;;;;;-121FA;CUNEIFORM SIGN LISH;Lo;0;L;;;;;N;;;;;-121FB;CUNEIFORM SIGN LU;Lo;0;L;;;;;N;;;;;-121FC;CUNEIFORM SIGN LU TIMES BAD;Lo;0;L;;;;;N;;;;;-121FD;CUNEIFORM SIGN LU2;Lo;0;L;;;;;N;;;;;-121FE;CUNEIFORM SIGN LU2 TIMES AL;Lo;0;L;;;;;N;;;;;-121FF;CUNEIFORM SIGN LU2 TIMES BAD;Lo;0;L;;;;;N;;;;;-12200;CUNEIFORM SIGN LU2 TIMES ESH2;Lo;0;L;;;;;N;;;;;-12201;CUNEIFORM SIGN LU2 TIMES ESH2 TENU;Lo;0;L;;;;;N;;;;;-12202;CUNEIFORM SIGN LU2 TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;-12203;CUNEIFORM SIGN LU2 TIMES HI TIMES BAD;Lo;0;L;;;;;N;;;;;-12204;CUNEIFORM SIGN LU2 TIMES IM;Lo;0;L;;;;;N;;;;;-12205;CUNEIFORM SIGN LU2 TIMES KAD2;Lo;0;L;;;;;N;;;;;-12206;CUNEIFORM SIGN LU2 TIMES KAD3;Lo;0;L;;;;;N;;;;;-12207;CUNEIFORM SIGN LU2 TIMES KAD3 PLUS ASH;Lo;0;L;;;;;N;;;;;-12208;CUNEIFORM SIGN LU2 TIMES KI;Lo;0;L;;;;;N;;;;;-12209;CUNEIFORM SIGN LU2 TIMES LA PLUS ASH;Lo;0;L;;;;;N;;;;;-1220A;CUNEIFORM SIGN LU2 TIMES LAGAB;Lo;0;L;;;;;N;;;;;-1220B;CUNEIFORM SIGN LU2 TIMES ME PLUS EN;Lo;0;L;;;;;N;;;;;-1220C;CUNEIFORM SIGN LU2 TIMES NE;Lo;0;L;;;;;N;;;;;-1220D;CUNEIFORM SIGN LU2 TIMES NU;Lo;0;L;;;;;N;;;;;-1220E;CUNEIFORM SIGN LU2 TIMES SI PLUS ASH;Lo;0;L;;;;;N;;;;;-1220F;CUNEIFORM SIGN LU2 TIMES SIK2 PLUS BU;Lo;0;L;;;;;N;;;;;-12210;CUNEIFORM SIGN LU2 TIMES TUG2;Lo;0;L;;;;;N;;;;;-12211;CUNEIFORM SIGN LU2 TENU;Lo;0;L;;;;;N;;;;;-12212;CUNEIFORM SIGN LU2 CROSSING LU2;Lo;0;L;;;;;N;;;;;-12213;CUNEIFORM SIGN LU2 OPPOSING LU2;Lo;0;L;;;;;N;;;;;-12214;CUNEIFORM SIGN LU2 SQUARED;Lo;0;L;;;;;N;;;;;-12215;CUNEIFORM SIGN LU2 SHESHIG;Lo;0;L;;;;;N;;;;;-12216;CUNEIFORM SIGN LU3;Lo;0;L;;;;;N;;;;;-12217;CUNEIFORM SIGN LUGAL;Lo;0;L;;;;;N;;;;;-12218;CUNEIFORM SIGN LUGAL OVER LUGAL;Lo;0;L;;;;;N;;;;;-12219;CUNEIFORM SIGN LUGAL OPPOSING LUGAL;Lo;0;L;;;;;N;;;;;-1221A;CUNEIFORM SIGN LUGAL SHESHIG;Lo;0;L;;;;;N;;;;;-1221B;CUNEIFORM SIGN LUH;Lo;0;L;;;;;N;;;;;-1221C;CUNEIFORM SIGN LUL;Lo;0;L;;;;;N;;;;;-1221D;CUNEIFORM SIGN LUM;Lo;0;L;;;;;N;;;;;-1221E;CUNEIFORM SIGN LUM OVER LUM;Lo;0;L;;;;;N;;;;;-1221F;CUNEIFORM SIGN LUM OVER LUM GAR OVER GAR;Lo;0;L;;;;;N;;;;;-12220;CUNEIFORM SIGN MA;Lo;0;L;;;;;N;;;;;-12221;CUNEIFORM SIGN MA TIMES TAK4;Lo;0;L;;;;;N;;;;;-12222;CUNEIFORM SIGN MA GUNU;Lo;0;L;;;;;N;;;;;-12223;CUNEIFORM SIGN MA2;Lo;0;L;;;;;N;;;;;-12224;CUNEIFORM SIGN MAH;Lo;0;L;;;;;N;;;;;-12225;CUNEIFORM SIGN MAR;Lo;0;L;;;;;N;;;;;-12226;CUNEIFORM SIGN MASH;Lo;0;L;;;;;N;;;;;-12227;CUNEIFORM SIGN MASH2;Lo;0;L;;;;;N;;;;;-12228;CUNEIFORM SIGN ME;Lo;0;L;;;;;N;;;;;-12229;CUNEIFORM SIGN MES;Lo;0;L;;;;;N;;;;;-1222A;CUNEIFORM SIGN MI;Lo;0;L;;;;;N;;;;;-1222B;CUNEIFORM SIGN MIN;Lo;0;L;;;;;N;;;;;-1222C;CUNEIFORM SIGN MU;Lo;0;L;;;;;N;;;;;-1222D;CUNEIFORM SIGN MU OVER MU;Lo;0;L;;;;;N;;;;;-1222E;CUNEIFORM SIGN MUG;Lo;0;L;;;;;N;;;;;-1222F;CUNEIFORM SIGN MUG GUNU;Lo;0;L;;;;;N;;;;;-12230;CUNEIFORM SIGN MUNSUB;Lo;0;L;;;;;N;;;;;-12231;CUNEIFORM SIGN MURGU2;Lo;0;L;;;;;N;;;;;-12232;CUNEIFORM SIGN MUSH;Lo;0;L;;;;;N;;;;;-12233;CUNEIFORM SIGN MUSH TIMES A;Lo;0;L;;;;;N;;;;;-12234;CUNEIFORM SIGN MUSH TIMES KUR;Lo;0;L;;;;;N;;;;;-12235;CUNEIFORM SIGN MUSH TIMES ZA;Lo;0;L;;;;;N;;;;;-12236;CUNEIFORM SIGN MUSH OVER MUSH;Lo;0;L;;;;;N;;;;;-12237;CUNEIFORM SIGN MUSH OVER MUSH TIMES A PLUS NA;Lo;0;L;;;;;N;;;;;-12238;CUNEIFORM SIGN MUSH CROSSING MUSH;Lo;0;L;;;;;N;;;;;-12239;CUNEIFORM SIGN MUSH3;Lo;0;L;;;;;N;;;;;-1223A;CUNEIFORM SIGN MUSH3 TIMES A;Lo;0;L;;;;;N;;;;;-1223B;CUNEIFORM SIGN MUSH3 TIMES A PLUS DI;Lo;0;L;;;;;N;;;;;-1223C;CUNEIFORM SIGN MUSH3 TIMES DI;Lo;0;L;;;;;N;;;;;-1223D;CUNEIFORM SIGN MUSH3 GUNU;Lo;0;L;;;;;N;;;;;-1223E;CUNEIFORM SIGN NA;Lo;0;L;;;;;N;;;;;-1223F;CUNEIFORM SIGN NA2;Lo;0;L;;;;;N;;;;;-12240;CUNEIFORM SIGN NAGA;Lo;0;L;;;;;N;;;;;-12241;CUNEIFORM SIGN NAGA INVERTED;Lo;0;L;;;;;N;;;;;-12242;CUNEIFORM SIGN NAGA TIMES SHU TENU;Lo;0;L;;;;;N;;;;;-12243;CUNEIFORM SIGN NAGA OPPOSING NAGA;Lo;0;L;;;;;N;;;;;-12244;CUNEIFORM SIGN NAGAR;Lo;0;L;;;;;N;;;;;-12245;CUNEIFORM SIGN NAM NUTILLU;Lo;0;L;;;;;N;;;;;-12246;CUNEIFORM SIGN NAM;Lo;0;L;;;;;N;;;;;-12247;CUNEIFORM SIGN NAM2;Lo;0;L;;;;;N;;;;;-12248;CUNEIFORM SIGN NE;Lo;0;L;;;;;N;;;;;-12249;CUNEIFORM SIGN NE TIMES A;Lo;0;L;;;;;N;;;;;-1224A;CUNEIFORM SIGN NE TIMES UD;Lo;0;L;;;;;N;;;;;-1224B;CUNEIFORM SIGN NE SHESHIG;Lo;0;L;;;;;N;;;;;-1224C;CUNEIFORM SIGN NI;Lo;0;L;;;;;N;;;;;-1224D;CUNEIFORM SIGN NI TIMES E;Lo;0;L;;;;;N;;;;;-1224E;CUNEIFORM SIGN NI2;Lo;0;L;;;;;N;;;;;-1224F;CUNEIFORM SIGN NIM;Lo;0;L;;;;;N;;;;;-12250;CUNEIFORM SIGN NIM TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;-12251;CUNEIFORM SIGN NIM TIMES GAR PLUS GAN2 TENU;Lo;0;L;;;;;N;;;;;-12252;CUNEIFORM SIGN NINDA2;Lo;0;L;;;;;N;;;;;-12253;CUNEIFORM SIGN NINDA2 TIMES AN;Lo;0;L;;;;;N;;;;;-12254;CUNEIFORM SIGN NINDA2 TIMES ASH;Lo;0;L;;;;;N;;;;;-12255;CUNEIFORM SIGN NINDA2 TIMES ASH PLUS ASH;Lo;0;L;;;;;N;;;;;-12256;CUNEIFORM SIGN NINDA2 TIMES GUD;Lo;0;L;;;;;N;;;;;-12257;CUNEIFORM SIGN NINDA2 TIMES ME PLUS GAN2 TENU;Lo;0;L;;;;;N;;;;;-12258;CUNEIFORM SIGN NINDA2 TIMES NE;Lo;0;L;;;;;N;;;;;-12259;CUNEIFORM SIGN NINDA2 TIMES NUN;Lo;0;L;;;;;N;;;;;-1225A;CUNEIFORM SIGN NINDA2 TIMES SHE;Lo;0;L;;;;;N;;;;;-1225B;CUNEIFORM SIGN NINDA2 TIMES SHE PLUS A AN;Lo;0;L;;;;;N;;;;;-1225C;CUNEIFORM SIGN NINDA2 TIMES SHE PLUS ASH;Lo;0;L;;;;;N;;;;;-1225D;CUNEIFORM SIGN NINDA2 TIMES SHE PLUS ASH PLUS ASH;Lo;0;L;;;;;N;;;;;-1225E;CUNEIFORM SIGN NINDA2 TIMES U2 PLUS ASH;Lo;0;L;;;;;N;;;;;-1225F;CUNEIFORM SIGN NINDA2 TIMES USH;Lo;0;L;;;;;N;;;;;-12260;CUNEIFORM SIGN NISAG;Lo;0;L;;;;;N;;;;;-12261;CUNEIFORM SIGN NU;Lo;0;L;;;;;N;;;;;-12262;CUNEIFORM SIGN NU11;Lo;0;L;;;;;N;;;;;-12263;CUNEIFORM SIGN NUN;Lo;0;L;;;;;N;;;;;-12264;CUNEIFORM SIGN NUN LAGAR TIMES GAR;Lo;0;L;;;;;N;;;;;-12265;CUNEIFORM SIGN NUN LAGAR TIMES MASH;Lo;0;L;;;;;N;;;;;-12266;CUNEIFORM SIGN NUN LAGAR TIMES SAL;Lo;0;L;;;;;N;;;;;-12267;CUNEIFORM SIGN NUN LAGAR TIMES SAL OVER NUN LAGAR TIMES SAL;Lo;0;L;;;;;N;;;;;-12268;CUNEIFORM SIGN NUN LAGAR TIMES USH;Lo;0;L;;;;;N;;;;;-12269;CUNEIFORM SIGN NUN TENU;Lo;0;L;;;;;N;;;;;-1226A;CUNEIFORM SIGN NUN OVER NUN;Lo;0;L;;;;;N;;;;;-1226B;CUNEIFORM SIGN NUN CROSSING NUN;Lo;0;L;;;;;N;;;;;-1226C;CUNEIFORM SIGN NUN CROSSING NUN LAGAR OVER LAGAR;Lo;0;L;;;;;N;;;;;-1226D;CUNEIFORM SIGN NUNUZ;Lo;0;L;;;;;N;;;;;-1226E;CUNEIFORM SIGN NUNUZ AB2 TIMES ASHGAB;Lo;0;L;;;;;N;;;;;-1226F;CUNEIFORM SIGN NUNUZ AB2 TIMES BI;Lo;0;L;;;;;N;;;;;-12270;CUNEIFORM SIGN NUNUZ AB2 TIMES DUG;Lo;0;L;;;;;N;;;;;-12271;CUNEIFORM SIGN NUNUZ AB2 TIMES GUD;Lo;0;L;;;;;N;;;;;-12272;CUNEIFORM SIGN NUNUZ AB2 TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;-12273;CUNEIFORM SIGN NUNUZ AB2 TIMES KAD3;Lo;0;L;;;;;N;;;;;-12274;CUNEIFORM SIGN NUNUZ AB2 TIMES LA;Lo;0;L;;;;;N;;;;;-12275;CUNEIFORM SIGN NUNUZ AB2 TIMES NE;Lo;0;L;;;;;N;;;;;-12276;CUNEIFORM SIGN NUNUZ AB2 TIMES SILA3;Lo;0;L;;;;;N;;;;;-12277;CUNEIFORM SIGN NUNUZ AB2 TIMES U2;Lo;0;L;;;;;N;;;;;-12278;CUNEIFORM SIGN NUNUZ KISIM5 TIMES BI;Lo;0;L;;;;;N;;;;;-12279;CUNEIFORM SIGN NUNUZ KISIM5 TIMES BI U;Lo;0;L;;;;;N;;;;;-1227A;CUNEIFORM SIGN PA;Lo;0;L;;;;;N;;;;;-1227B;CUNEIFORM SIGN PAD;Lo;0;L;;;;;N;;;;;-1227C;CUNEIFORM SIGN PAN;Lo;0;L;;;;;N;;;;;-1227D;CUNEIFORM SIGN PAP;Lo;0;L;;;;;N;;;;;-1227E;CUNEIFORM SIGN PESH2;Lo;0;L;;;;;N;;;;;-1227F;CUNEIFORM SIGN PI;Lo;0;L;;;;;N;;;;;-12280;CUNEIFORM SIGN PI TIMES A;Lo;0;L;;;;;N;;;;;-12281;CUNEIFORM SIGN PI TIMES AB;Lo;0;L;;;;;N;;;;;-12282;CUNEIFORM SIGN PI TIMES BI;Lo;0;L;;;;;N;;;;;-12283;CUNEIFORM SIGN PI TIMES BU;Lo;0;L;;;;;N;;;;;-12284;CUNEIFORM SIGN PI TIMES E;Lo;0;L;;;;;N;;;;;-12285;CUNEIFORM SIGN PI TIMES I;Lo;0;L;;;;;N;;;;;-12286;CUNEIFORM SIGN PI TIMES IB;Lo;0;L;;;;;N;;;;;-12287;CUNEIFORM SIGN PI TIMES U;Lo;0;L;;;;;N;;;;;-12288;CUNEIFORM SIGN PI TIMES U2;Lo;0;L;;;;;N;;;;;-12289;CUNEIFORM SIGN PI CROSSING PI;Lo;0;L;;;;;N;;;;;-1228A;CUNEIFORM SIGN PIRIG;Lo;0;L;;;;;N;;;;;-1228B;CUNEIFORM SIGN PIRIG TIMES KAL;Lo;0;L;;;;;N;;;;;-1228C;CUNEIFORM SIGN PIRIG TIMES UD;Lo;0;L;;;;;N;;;;;-1228D;CUNEIFORM SIGN PIRIG TIMES ZA;Lo;0;L;;;;;N;;;;;-1228E;CUNEIFORM SIGN PIRIG OPPOSING PIRIG;Lo;0;L;;;;;N;;;;;-1228F;CUNEIFORM SIGN RA;Lo;0;L;;;;;N;;;;;-12290;CUNEIFORM SIGN RAB;Lo;0;L;;;;;N;;;;;-12291;CUNEIFORM SIGN RI;Lo;0;L;;;;;N;;;;;-12292;CUNEIFORM SIGN RU;Lo;0;L;;;;;N;;;;;-12293;CUNEIFORM SIGN SA;Lo;0;L;;;;;N;;;;;-12294;CUNEIFORM SIGN SAG NUTILLU;Lo;0;L;;;;;N;;;;;-12295;CUNEIFORM SIGN SAG;Lo;0;L;;;;;N;;;;;-12296;CUNEIFORM SIGN SAG TIMES A;Lo;0;L;;;;;N;;;;;-12297;CUNEIFORM SIGN SAG TIMES DU;Lo;0;L;;;;;N;;;;;-12298;CUNEIFORM SIGN SAG TIMES DUB;Lo;0;L;;;;;N;;;;;-12299;CUNEIFORM SIGN SAG TIMES HA;Lo;0;L;;;;;N;;;;;-1229A;CUNEIFORM SIGN SAG TIMES KAK;Lo;0;L;;;;;N;;;;;-1229B;CUNEIFORM SIGN SAG TIMES KUR;Lo;0;L;;;;;N;;;;;-1229C;CUNEIFORM SIGN SAG TIMES LUM;Lo;0;L;;;;;N;;;;;-1229D;CUNEIFORM SIGN SAG TIMES MI;Lo;0;L;;;;;N;;;;;-1229E;CUNEIFORM SIGN SAG TIMES NUN;Lo;0;L;;;;;N;;;;;-1229F;CUNEIFORM SIGN SAG TIMES SAL;Lo;0;L;;;;;N;;;;;-122A0;CUNEIFORM SIGN SAG TIMES SHID;Lo;0;L;;;;;N;;;;;-122A1;CUNEIFORM SIGN SAG TIMES TAB;Lo;0;L;;;;;N;;;;;-122A2;CUNEIFORM SIGN SAG TIMES U2;Lo;0;L;;;;;N;;;;;-122A3;CUNEIFORM SIGN SAG TIMES UB;Lo;0;L;;;;;N;;;;;-122A4;CUNEIFORM SIGN SAG TIMES UM;Lo;0;L;;;;;N;;;;;-122A5;CUNEIFORM SIGN SAG TIMES UR;Lo;0;L;;;;;N;;;;;-122A6;CUNEIFORM SIGN SAG TIMES USH;Lo;0;L;;;;;N;;;;;-122A7;CUNEIFORM SIGN SAG OVER SAG;Lo;0;L;;;;;N;;;;;-122A8;CUNEIFORM SIGN SAG GUNU;Lo;0;L;;;;;N;;;;;-122A9;CUNEIFORM SIGN SAL;Lo;0;L;;;;;N;;;;;-122AA;CUNEIFORM SIGN SAL LAGAB TIMES ASH2;Lo;0;L;;;;;N;;;;;-122AB;CUNEIFORM SIGN SANGA2;Lo;0;L;;;;;N;;;;;-122AC;CUNEIFORM SIGN SAR;Lo;0;L;;;;;N;;;;;-122AD;CUNEIFORM SIGN SHA;Lo;0;L;;;;;N;;;;;-122AE;CUNEIFORM SIGN SHA3;Lo;0;L;;;;;N;;;;;-122AF;CUNEIFORM SIGN SHA3 TIMES A;Lo;0;L;;;;;N;;;;;-122B0;CUNEIFORM SIGN SHA3 TIMES BAD;Lo;0;L;;;;;N;;;;;-122B1;CUNEIFORM SIGN SHA3 TIMES GISH;Lo;0;L;;;;;N;;;;;-122B2;CUNEIFORM SIGN SHA3 TIMES NE;Lo;0;L;;;;;N;;;;;-122B3;CUNEIFORM SIGN SHA3 TIMES SHU2;Lo;0;L;;;;;N;;;;;-122B4;CUNEIFORM SIGN SHA3 TIMES TUR;Lo;0;L;;;;;N;;;;;-122B5;CUNEIFORM SIGN SHA3 TIMES U;Lo;0;L;;;;;N;;;;;-122B6;CUNEIFORM SIGN SHA3 TIMES U PLUS A;Lo;0;L;;;;;N;;;;;-122B7;CUNEIFORM SIGN SHA6;Lo;0;L;;;;;N;;;;;-122B8;CUNEIFORM SIGN SHAB6;Lo;0;L;;;;;N;;;;;-122B9;CUNEIFORM SIGN SHAR2;Lo;0;L;;;;;N;;;;;-122BA;CUNEIFORM SIGN SHE;Lo;0;L;;;;;N;;;;;-122BB;CUNEIFORM SIGN SHE HU;Lo;0;L;;;;;N;;;;;-122BC;CUNEIFORM SIGN SHE OVER SHE GAD OVER GAD GAR OVER GAR;Lo;0;L;;;;;N;;;;;-122BD;CUNEIFORM SIGN SHE OVER SHE TAB OVER TAB GAR OVER GAR;Lo;0;L;;;;;N;;;;;-122BE;CUNEIFORM SIGN SHEG9;Lo;0;L;;;;;N;;;;;-122BF;CUNEIFORM SIGN SHEN;Lo;0;L;;;;;N;;;;;-122C0;CUNEIFORM SIGN SHESH;Lo;0;L;;;;;N;;;;;-122C1;CUNEIFORM SIGN SHESH2;Lo;0;L;;;;;N;;;;;-122C2;CUNEIFORM SIGN SHESHLAM;Lo;0;L;;;;;N;;;;;-122C3;CUNEIFORM SIGN SHID;Lo;0;L;;;;;N;;;;;-122C4;CUNEIFORM SIGN SHID TIMES A;Lo;0;L;;;;;N;;;;;-122C5;CUNEIFORM SIGN SHID TIMES IM;Lo;0;L;;;;;N;;;;;-122C6;CUNEIFORM SIGN SHIM;Lo;0;L;;;;;N;;;;;-122C7;CUNEIFORM SIGN SHIM TIMES A;Lo;0;L;;;;;N;;;;;-122C8;CUNEIFORM SIGN SHIM TIMES BAL;Lo;0;L;;;;;N;;;;;-122C9;CUNEIFORM SIGN SHIM TIMES BULUG;Lo;0;L;;;;;N;;;;;-122CA;CUNEIFORM SIGN SHIM TIMES DIN;Lo;0;L;;;;;N;;;;;-122CB;CUNEIFORM SIGN SHIM TIMES GAR;Lo;0;L;;;;;N;;;;;-122CC;CUNEIFORM SIGN SHIM TIMES IGI;Lo;0;L;;;;;N;;;;;-122CD;CUNEIFORM SIGN SHIM TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;-122CE;CUNEIFORM SIGN SHIM TIMES KUSHU2;Lo;0;L;;;;;N;;;;;-122CF;CUNEIFORM SIGN SHIM TIMES LUL;Lo;0;L;;;;;N;;;;;-122D0;CUNEIFORM SIGN SHIM TIMES MUG;Lo;0;L;;;;;N;;;;;-122D1;CUNEIFORM SIGN SHIM TIMES SAL;Lo;0;L;;;;;N;;;;;-122D2;CUNEIFORM SIGN SHINIG;Lo;0;L;;;;;N;;;;;-122D3;CUNEIFORM SIGN SHIR;Lo;0;L;;;;;N;;;;;-122D4;CUNEIFORM SIGN SHIR TENU;Lo;0;L;;;;;N;;;;;-122D5;CUNEIFORM SIGN SHIR OVER SHIR BUR OVER BUR;Lo;0;L;;;;;N;;;;;-122D6;CUNEIFORM SIGN SHITA;Lo;0;L;;;;;N;;;;;-122D7;CUNEIFORM SIGN SHU;Lo;0;L;;;;;N;;;;;-122D8;CUNEIFORM SIGN SHU OVER INVERTED SHU;Lo;0;L;;;;;N;;;;;-122D9;CUNEIFORM SIGN SHU2;Lo;0;L;;;;;N;;;;;-122DA;CUNEIFORM SIGN SHUBUR;Lo;0;L;;;;;N;;;;;-122DB;CUNEIFORM SIGN SI;Lo;0;L;;;;;N;;;;;-122DC;CUNEIFORM SIGN SI GUNU;Lo;0;L;;;;;N;;;;;-122DD;CUNEIFORM SIGN SIG;Lo;0;L;;;;;N;;;;;-122DE;CUNEIFORM SIGN SIG4;Lo;0;L;;;;;N;;;;;-122DF;CUNEIFORM SIGN SIG4 OVER SIG4 SHU2;Lo;0;L;;;;;N;;;;;-122E0;CUNEIFORM SIGN SIK2;Lo;0;L;;;;;N;;;;;-122E1;CUNEIFORM SIGN SILA3;Lo;0;L;;;;;N;;;;;-122E2;CUNEIFORM SIGN SU;Lo;0;L;;;;;N;;;;;-122E3;CUNEIFORM SIGN SU OVER SU;Lo;0;L;;;;;N;;;;;-122E4;CUNEIFORM SIGN SUD;Lo;0;L;;;;;N;;;;;-122E5;CUNEIFORM SIGN SUD2;Lo;0;L;;;;;N;;;;;-122E6;CUNEIFORM SIGN SUHUR;Lo;0;L;;;;;N;;;;;-122E7;CUNEIFORM SIGN SUM;Lo;0;L;;;;;N;;;;;-122E8;CUNEIFORM SIGN SUMASH;Lo;0;L;;;;;N;;;;;-122E9;CUNEIFORM SIGN SUR;Lo;0;L;;;;;N;;;;;-122EA;CUNEIFORM SIGN SUR9;Lo;0;L;;;;;N;;;;;-122EB;CUNEIFORM SIGN TA;Lo;0;L;;;;;N;;;;;-122EC;CUNEIFORM SIGN TA ASTERISK;Lo;0;L;;;;;N;;;;;-122ED;CUNEIFORM SIGN TA TIMES HI;Lo;0;L;;;;;N;;;;;-122EE;CUNEIFORM SIGN TA TIMES MI;Lo;0;L;;;;;N;;;;;-122EF;CUNEIFORM SIGN TA GUNU;Lo;0;L;;;;;N;;;;;-122F0;CUNEIFORM SIGN TAB;Lo;0;L;;;;;N;;;;;-122F1;CUNEIFORM SIGN TAB OVER TAB NI OVER NI DISH OVER DISH;Lo;0;L;;;;;N;;;;;-122F2;CUNEIFORM SIGN TAB SQUARED;Lo;0;L;;;;;N;;;;;-122F3;CUNEIFORM SIGN TAG;Lo;0;L;;;;;N;;;;;-122F4;CUNEIFORM SIGN TAG TIMES BI;Lo;0;L;;;;;N;;;;;-122F5;CUNEIFORM SIGN TAG TIMES GUD;Lo;0;L;;;;;N;;;;;-122F6;CUNEIFORM SIGN TAG TIMES SHE;Lo;0;L;;;;;N;;;;;-122F7;CUNEIFORM SIGN TAG TIMES SHU;Lo;0;L;;;;;N;;;;;-122F8;CUNEIFORM SIGN TAG TIMES TUG2;Lo;0;L;;;;;N;;;;;-122F9;CUNEIFORM SIGN TAG TIMES UD;Lo;0;L;;;;;N;;;;;-122FA;CUNEIFORM SIGN TAK4;Lo;0;L;;;;;N;;;;;-122FB;CUNEIFORM SIGN TAR;Lo;0;L;;;;;N;;;;;-122FC;CUNEIFORM SIGN TE;Lo;0;L;;;;;N;;;;;-122FD;CUNEIFORM SIGN TE GUNU;Lo;0;L;;;;;N;;;;;-122FE;CUNEIFORM SIGN TI;Lo;0;L;;;;;N;;;;;-122FF;CUNEIFORM SIGN TI TENU;Lo;0;L;;;;;N;;;;;-12300;CUNEIFORM SIGN TIL;Lo;0;L;;;;;N;;;;;-12301;CUNEIFORM SIGN TIR;Lo;0;L;;;;;N;;;;;-12302;CUNEIFORM SIGN TIR TIMES TAK4;Lo;0;L;;;;;N;;;;;-12303;CUNEIFORM SIGN TIR OVER TIR;Lo;0;L;;;;;N;;;;;-12304;CUNEIFORM SIGN TIR OVER TIR GAD OVER GAD GAR OVER GAR;Lo;0;L;;;;;N;;;;;-12305;CUNEIFORM SIGN TU;Lo;0;L;;;;;N;;;;;-12306;CUNEIFORM SIGN TUG2;Lo;0;L;;;;;N;;;;;-12307;CUNEIFORM SIGN TUK;Lo;0;L;;;;;N;;;;;-12308;CUNEIFORM SIGN TUM;Lo;0;L;;;;;N;;;;;-12309;CUNEIFORM SIGN TUR;Lo;0;L;;;;;N;;;;;-1230A;CUNEIFORM SIGN TUR OVER TUR ZA OVER ZA;Lo;0;L;;;;;N;;;;;-1230B;CUNEIFORM SIGN U;Lo;0;L;;;;;N;;;;;-1230C;CUNEIFORM SIGN U GUD;Lo;0;L;;;;;N;;;;;-1230D;CUNEIFORM SIGN U U U;Lo;0;L;;;;;N;;;;;-1230E;CUNEIFORM SIGN U OVER U PA OVER PA GAR OVER GAR;Lo;0;L;;;;;N;;;;;-1230F;CUNEIFORM SIGN U OVER U SUR OVER SUR;Lo;0;L;;;;;N;;;;;-12310;CUNEIFORM SIGN U OVER U U REVERSED OVER U REVERSED;Lo;0;L;;;;;N;;;;;-12311;CUNEIFORM SIGN U2;Lo;0;L;;;;;N;;;;;-12312;CUNEIFORM SIGN UB;Lo;0;L;;;;;N;;;;;-12313;CUNEIFORM SIGN UD;Lo;0;L;;;;;N;;;;;-12314;CUNEIFORM SIGN UD KUSHU2;Lo;0;L;;;;;N;;;;;-12315;CUNEIFORM SIGN UD TIMES BAD;Lo;0;L;;;;;N;;;;;-12316;CUNEIFORM SIGN UD TIMES MI;Lo;0;L;;;;;N;;;;;-12317;CUNEIFORM SIGN UD TIMES U PLUS U PLUS U;Lo;0;L;;;;;N;;;;;-12318;CUNEIFORM SIGN UD TIMES U PLUS U PLUS U GUNU;Lo;0;L;;;;;N;;;;;-12319;CUNEIFORM SIGN UD GUNU;Lo;0;L;;;;;N;;;;;-1231A;CUNEIFORM SIGN UD SHESHIG;Lo;0;L;;;;;N;;;;;-1231B;CUNEIFORM SIGN UD SHESHIG TIMES BAD;Lo;0;L;;;;;N;;;;;-1231C;CUNEIFORM SIGN UDUG;Lo;0;L;;;;;N;;;;;-1231D;CUNEIFORM SIGN UM;Lo;0;L;;;;;N;;;;;-1231E;CUNEIFORM SIGN UM TIMES LAGAB;Lo;0;L;;;;;N;;;;;-1231F;CUNEIFORM SIGN UM TIMES ME PLUS DA;Lo;0;L;;;;;N;;;;;-12320;CUNEIFORM SIGN UM TIMES SHA3;Lo;0;L;;;;;N;;;;;-12321;CUNEIFORM SIGN UM TIMES U;Lo;0;L;;;;;N;;;;;-12322;CUNEIFORM SIGN UMBIN;Lo;0;L;;;;;N;;;;;-12323;CUNEIFORM SIGN UMUM;Lo;0;L;;;;;N;;;;;-12324;CUNEIFORM SIGN UMUM TIMES KASKAL;Lo;0;L;;;;;N;;;;;-12325;CUNEIFORM SIGN UMUM TIMES PA;Lo;0;L;;;;;N;;;;;-12326;CUNEIFORM SIGN UN;Lo;0;L;;;;;N;;;;;-12327;CUNEIFORM SIGN UN GUNU;Lo;0;L;;;;;N;;;;;-12328;CUNEIFORM SIGN UR;Lo;0;L;;;;;N;;;;;-12329;CUNEIFORM SIGN UR CROSSING UR;Lo;0;L;;;;;N;;;;;-1232A;CUNEIFORM SIGN UR SHESHIG;Lo;0;L;;;;;N;;;;;-1232B;CUNEIFORM SIGN UR2;Lo;0;L;;;;;N;;;;;-1232C;CUNEIFORM SIGN UR2 TIMES A PLUS HA;Lo;0;L;;;;;N;;;;;-1232D;CUNEIFORM SIGN UR2 TIMES A PLUS NA;Lo;0;L;;;;;N;;;;;-1232E;CUNEIFORM SIGN UR2 TIMES AL;Lo;0;L;;;;;N;;;;;-1232F;CUNEIFORM SIGN UR2 TIMES HA;Lo;0;L;;;;;N;;;;;-12330;CUNEIFORM SIGN UR2 TIMES NUN;Lo;0;L;;;;;N;;;;;-12331;CUNEIFORM SIGN UR2 TIMES U2;Lo;0;L;;;;;N;;;;;-12332;CUNEIFORM SIGN UR2 TIMES U2 PLUS ASH;Lo;0;L;;;;;N;;;;;-12333;CUNEIFORM SIGN UR2 TIMES U2 PLUS BI;Lo;0;L;;;;;N;;;;;-12334;CUNEIFORM SIGN UR4;Lo;0;L;;;;;N;;;;;-12335;CUNEIFORM SIGN URI;Lo;0;L;;;;;N;;;;;-12336;CUNEIFORM SIGN URI3;Lo;0;L;;;;;N;;;;;-12337;CUNEIFORM SIGN URU;Lo;0;L;;;;;N;;;;;-12338;CUNEIFORM SIGN URU TIMES A;Lo;0;L;;;;;N;;;;;-12339;CUNEIFORM SIGN URU TIMES ASHGAB;Lo;0;L;;;;;N;;;;;-1233A;CUNEIFORM SIGN URU TIMES BAR;Lo;0;L;;;;;N;;;;;-1233B;CUNEIFORM SIGN URU TIMES DUN;Lo;0;L;;;;;N;;;;;-1233C;CUNEIFORM SIGN URU TIMES GA;Lo;0;L;;;;;N;;;;;-1233D;CUNEIFORM SIGN URU TIMES GAL;Lo;0;L;;;;;N;;;;;-1233E;CUNEIFORM SIGN URU TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;-1233F;CUNEIFORM SIGN URU TIMES GAR;Lo;0;L;;;;;N;;;;;-12340;CUNEIFORM SIGN URU TIMES GU;Lo;0;L;;;;;N;;;;;-12341;CUNEIFORM SIGN URU TIMES HA;Lo;0;L;;;;;N;;;;;-12342;CUNEIFORM SIGN URU TIMES IGI;Lo;0;L;;;;;N;;;;;-12343;CUNEIFORM SIGN URU TIMES IM;Lo;0;L;;;;;N;;;;;-12344;CUNEIFORM SIGN URU TIMES ISH;Lo;0;L;;;;;N;;;;;-12345;CUNEIFORM SIGN URU TIMES KI;Lo;0;L;;;;;N;;;;;-12346;CUNEIFORM SIGN URU TIMES LUM;Lo;0;L;;;;;N;;;;;-12347;CUNEIFORM SIGN URU TIMES MIN;Lo;0;L;;;;;N;;;;;-12348;CUNEIFORM SIGN URU TIMES PA;Lo;0;L;;;;;N;;;;;-12349;CUNEIFORM SIGN URU TIMES SHE;Lo;0;L;;;;;N;;;;;-1234A;CUNEIFORM SIGN URU TIMES SIG4;Lo;0;L;;;;;N;;;;;-1234B;CUNEIFORM SIGN URU TIMES TU;Lo;0;L;;;;;N;;;;;-1234C;CUNEIFORM SIGN URU TIMES U PLUS GUD;Lo;0;L;;;;;N;;;;;-1234D;CUNEIFORM SIGN URU TIMES UD;Lo;0;L;;;;;N;;;;;-1234E;CUNEIFORM SIGN URU TIMES URUDA;Lo;0;L;;;;;N;;;;;-1234F;CUNEIFORM SIGN URUDA;Lo;0;L;;;;;N;;;;;-12350;CUNEIFORM SIGN URUDA TIMES U;Lo;0;L;;;;;N;;;;;-12351;CUNEIFORM SIGN USH;Lo;0;L;;;;;N;;;;;-12352;CUNEIFORM SIGN USH TIMES A;Lo;0;L;;;;;N;;;;;-12353;CUNEIFORM SIGN USH TIMES KU;Lo;0;L;;;;;N;;;;;-12354;CUNEIFORM SIGN USH TIMES KUR;Lo;0;L;;;;;N;;;;;-12355;CUNEIFORM SIGN USH TIMES TAK4;Lo;0;L;;;;;N;;;;;-12356;CUNEIFORM SIGN USHX;Lo;0;L;;;;;N;;;;;-12357;CUNEIFORM SIGN USH2;Lo;0;L;;;;;N;;;;;-12358;CUNEIFORM SIGN USHUMX;Lo;0;L;;;;;N;;;;;-12359;CUNEIFORM SIGN UTUKI;Lo;0;L;;;;;N;;;;;-1235A;CUNEIFORM SIGN UZ3;Lo;0;L;;;;;N;;;;;-1235B;CUNEIFORM SIGN UZ3 TIMES KASKAL;Lo;0;L;;;;;N;;;;;-1235C;CUNEIFORM SIGN UZU;Lo;0;L;;;;;N;;;;;-1235D;CUNEIFORM SIGN ZA;Lo;0;L;;;;;N;;;;;-1235E;CUNEIFORM SIGN ZA TENU;Lo;0;L;;;;;N;;;;;-1235F;CUNEIFORM SIGN ZA SQUARED TIMES KUR;Lo;0;L;;;;;N;;;;;-12360;CUNEIFORM SIGN ZAG;Lo;0;L;;;;;N;;;;;-12361;CUNEIFORM SIGN ZAMX;Lo;0;L;;;;;N;;;;;-12362;CUNEIFORM SIGN ZE2;Lo;0;L;;;;;N;;;;;-12363;CUNEIFORM SIGN ZI;Lo;0;L;;;;;N;;;;;-12364;CUNEIFORM SIGN ZI OVER ZI;Lo;0;L;;;;;N;;;;;-12365;CUNEIFORM SIGN ZI3;Lo;0;L;;;;;N;;;;;-12366;CUNEIFORM SIGN ZIB;Lo;0;L;;;;;N;;;;;-12367;CUNEIFORM SIGN ZIB KABA TENU;Lo;0;L;;;;;N;;;;;-12368;CUNEIFORM SIGN ZIG;Lo;0;L;;;;;N;;;;;-12369;CUNEIFORM SIGN ZIZ2;Lo;0;L;;;;;N;;;;;-1236A;CUNEIFORM SIGN ZU;Lo;0;L;;;;;N;;;;;-1236B;CUNEIFORM SIGN ZU5;Lo;0;L;;;;;N;;;;;-1236C;CUNEIFORM SIGN ZU5 TIMES A;Lo;0;L;;;;;N;;;;;-1236D;CUNEIFORM SIGN ZUBUR;Lo;0;L;;;;;N;;;;;-1236E;CUNEIFORM SIGN ZUM;Lo;0;L;;;;;N;;;;;-12400;CUNEIFORM NUMERIC SIGN TWO ASH;Nl;0;L;;;;2;N;;;;;-12401;CUNEIFORM NUMERIC SIGN THREE ASH;Nl;0;L;;;;3;N;;;;;-12402;CUNEIFORM NUMERIC SIGN FOUR ASH;Nl;0;L;;;;4;N;;;;;-12403;CUNEIFORM NUMERIC SIGN FIVE ASH;Nl;0;L;;;;5;N;;;;;-12404;CUNEIFORM NUMERIC SIGN SIX ASH;Nl;0;L;;;;6;N;;;;;-12405;CUNEIFORM NUMERIC SIGN SEVEN ASH;Nl;0;L;;;;7;N;;;;;-12406;CUNEIFORM NUMERIC SIGN EIGHT ASH;Nl;0;L;;;;8;N;;;;;-12407;CUNEIFORM NUMERIC SIGN NINE ASH;Nl;0;L;;;;9;N;;;;;-12408;CUNEIFORM NUMERIC SIGN THREE DISH;Nl;0;L;;;;3;N;;;;;-12409;CUNEIFORM NUMERIC SIGN FOUR DISH;Nl;0;L;;;;4;N;;;;;-1240A;CUNEIFORM NUMERIC SIGN FIVE DISH;Nl;0;L;;;;5;N;;;;;-1240B;CUNEIFORM NUMERIC SIGN SIX DISH;Nl;0;L;;;;6;N;;;;;-1240C;CUNEIFORM NUMERIC SIGN SEVEN DISH;Nl;0;L;;;;7;N;;;;;-1240D;CUNEIFORM NUMERIC SIGN EIGHT DISH;Nl;0;L;;;;8;N;;;;;-1240E;CUNEIFORM NUMERIC SIGN NINE DISH;Nl;0;L;;;;9;N;;;;;-1240F;CUNEIFORM NUMERIC SIGN FOUR U;Nl;0;L;;;;4;N;;;;;-12410;CUNEIFORM NUMERIC SIGN FIVE U;Nl;0;L;;;;5;N;;;;;-12411;CUNEIFORM NUMERIC SIGN SIX U;Nl;0;L;;;;6;N;;;;;-12412;CUNEIFORM NUMERIC SIGN SEVEN U;Nl;0;L;;;;7;N;;;;;-12413;CUNEIFORM NUMERIC SIGN EIGHT U;Nl;0;L;;;;8;N;;;;;-12414;CUNEIFORM NUMERIC SIGN NINE U;Nl;0;L;;;;9;N;;;;;-12415;CUNEIFORM NUMERIC SIGN ONE GESH2;Nl;0;L;;;;1;N;;;;;-12416;CUNEIFORM NUMERIC SIGN TWO GESH2;Nl;0;L;;;;2;N;;;;;-12417;CUNEIFORM NUMERIC SIGN THREE GESH2;Nl;0;L;;;;3;N;;;;;-12418;CUNEIFORM NUMERIC SIGN FOUR GESH2;Nl;0;L;;;;4;N;;;;;-12419;CUNEIFORM NUMERIC SIGN FIVE GESH2;Nl;0;L;;;;5;N;;;;;-1241A;CUNEIFORM NUMERIC SIGN SIX GESH2;Nl;0;L;;;;6;N;;;;;-1241B;CUNEIFORM NUMERIC SIGN SEVEN GESH2;Nl;0;L;;;;7;N;;;;;-1241C;CUNEIFORM NUMERIC SIGN EIGHT GESH2;Nl;0;L;;;;8;N;;;;;-1241D;CUNEIFORM NUMERIC SIGN NINE GESH2;Nl;0;L;;;;9;N;;;;;-1241E;CUNEIFORM NUMERIC SIGN ONE GESHU;Nl;0;L;;;;1;N;;;;;-1241F;CUNEIFORM NUMERIC SIGN TWO GESHU;Nl;0;L;;;;2;N;;;;;-12420;CUNEIFORM NUMERIC SIGN THREE GESHU;Nl;0;L;;;;3;N;;;;;-12421;CUNEIFORM NUMERIC SIGN FOUR GESHU;Nl;0;L;;;;4;N;;;;;-12422;CUNEIFORM NUMERIC SIGN FIVE GESHU;Nl;0;L;;;;5;N;;;;;-12423;CUNEIFORM NUMERIC SIGN TWO SHAR2;Nl;0;L;;;;2;N;;;;;-12424;CUNEIFORM NUMERIC SIGN THREE SHAR2;Nl;0;L;;;;3;N;;;;;-12425;CUNEIFORM NUMERIC SIGN THREE SHAR2 VARIANT FORM;Nl;0;L;;;;3;N;;;;;-12426;CUNEIFORM NUMERIC SIGN FOUR SHAR2;Nl;0;L;;;;4;N;;;;;-12427;CUNEIFORM NUMERIC SIGN FIVE SHAR2;Nl;0;L;;;;5;N;;;;;-12428;CUNEIFORM NUMERIC SIGN SIX SHAR2;Nl;0;L;;;;6;N;;;;;-12429;CUNEIFORM NUMERIC SIGN SEVEN SHAR2;Nl;0;L;;;;7;N;;;;;-1242A;CUNEIFORM NUMERIC SIGN EIGHT SHAR2;Nl;0;L;;;;8;N;;;;;-1242B;CUNEIFORM NUMERIC SIGN NINE SHAR2;Nl;0;L;;;;9;N;;;;;-1242C;CUNEIFORM NUMERIC SIGN ONE SHARU;Nl;0;L;;;;1;N;;;;;-1242D;CUNEIFORM NUMERIC SIGN TWO SHARU;Nl;0;L;;;;2;N;;;;;-1242E;CUNEIFORM NUMERIC SIGN THREE SHARU;Nl;0;L;;;;3;N;;;;;-1242F;CUNEIFORM NUMERIC SIGN THREE SHARU VARIANT FORM;Nl;0;L;;;;3;N;;;;;-12430;CUNEIFORM NUMERIC SIGN FOUR SHARU;Nl;0;L;;;;4;N;;;;;-12431;CUNEIFORM NUMERIC SIGN FIVE SHARU;Nl;0;L;;;;5;N;;;;;-12432;CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS DISH;Nl;0;L;;;;;N;;;;;-12433;CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS MIN;Nl;0;L;;;;;N;;;;;-12434;CUNEIFORM NUMERIC SIGN ONE BURU;Nl;0;L;;;;1;N;;;;;-12435;CUNEIFORM NUMERIC SIGN TWO BURU;Nl;0;L;;;;2;N;;;;;-12436;CUNEIFORM NUMERIC SIGN THREE BURU;Nl;0;L;;;;3;N;;;;;-12437;CUNEIFORM NUMERIC SIGN THREE BURU VARIANT FORM;Nl;0;L;;;;3;N;;;;;-12438;CUNEIFORM NUMERIC SIGN FOUR BURU;Nl;0;L;;;;4;N;;;;;-12439;CUNEIFORM NUMERIC SIGN FIVE BURU;Nl;0;L;;;;5;N;;;;;-1243A;CUNEIFORM NUMERIC SIGN THREE VARIANT FORM ESH16;Nl;0;L;;;;3;N;;;;;-1243B;CUNEIFORM NUMERIC SIGN THREE VARIANT FORM ESH21;Nl;0;L;;;;3;N;;;;;-1243C;CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU;Nl;0;L;;;;4;N;;;;;-1243D;CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU4;Nl;0;L;;;;4;N;;;;;-1243E;CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU A;Nl;0;L;;;;4;N;;;;;-1243F;CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU B;Nl;0;L;;;;4;N;;;;;-12440;CUNEIFORM NUMERIC SIGN SIX VARIANT FORM ASH9;Nl;0;L;;;;6;N;;;;;-12441;CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN3;Nl;0;L;;;;7;N;;;;;-12442;CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN A;Nl;0;L;;;;7;N;;;;;-12443;CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN B;Nl;0;L;;;;7;N;;;;;-12444;CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU;Nl;0;L;;;;8;N;;;;;-12445;CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU3;Nl;0;L;;;;8;N;;;;;-12446;CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU;Nl;0;L;;;;9;N;;;;;-12447;CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU3;Nl;0;L;;;;9;N;;;;;-12448;CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU4;Nl;0;L;;;;9;N;;;;;-12449;CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU A;Nl;0;L;;;;9;N;;;;;-1244A;CUNEIFORM NUMERIC SIGN TWO ASH TENU;Nl;0;L;;;;2;N;;;;;-1244B;CUNEIFORM NUMERIC SIGN THREE ASH TENU;Nl;0;L;;;;3;N;;;;;-1244C;CUNEIFORM NUMERIC SIGN FOUR ASH TENU;Nl;0;L;;;;4;N;;;;;-1244D;CUNEIFORM NUMERIC SIGN FIVE ASH TENU;Nl;0;L;;;;5;N;;;;;-1244E;CUNEIFORM NUMERIC SIGN SIX ASH TENU;Nl;0;L;;;;6;N;;;;;-1244F;CUNEIFORM NUMERIC SIGN ONE BAN2;Nl;0;L;;;;1;N;;;;;-12450;CUNEIFORM NUMERIC SIGN TWO BAN2;Nl;0;L;;;;2;N;;;;;-12451;CUNEIFORM NUMERIC SIGN THREE BAN2;Nl;0;L;;;;3;N;;;;;-12452;CUNEIFORM NUMERIC SIGN FOUR BAN2;Nl;0;L;;;;4;N;;;;;-12453;CUNEIFORM NUMERIC SIGN FOUR BAN2 VARIANT FORM;Nl;0;L;;;;4;N;;;;;-12454;CUNEIFORM NUMERIC SIGN FIVE BAN2;Nl;0;L;;;;5;N;;;;;-12455;CUNEIFORM NUMERIC SIGN FIVE BAN2 VARIANT FORM;Nl;0;L;;;;5;N;;;;;-12456;CUNEIFORM NUMERIC SIGN NIGIDAMIN;Nl;0;L;;;;;N;;;;;-12457;CUNEIFORM NUMERIC SIGN NIGIDAESH;Nl;0;L;;;;;N;;;;;-12458;CUNEIFORM NUMERIC SIGN ONE ESHE3;Nl;0;L;;;;1;N;;;;;-12459;CUNEIFORM NUMERIC SIGN TWO ESHE3;Nl;0;L;;;;2;N;;;;;-1245A;CUNEIFORM NUMERIC SIGN ONE THIRD DISH;Nl;0;L;;;;1/3;N;;;;;-1245B;CUNEIFORM NUMERIC SIGN TWO THIRDS DISH;Nl;0;L;;;;2/3;N;;;;;-1245C;CUNEIFORM NUMERIC SIGN FIVE SIXTHS DISH;Nl;0;L;;;;5/6;N;;;;;-1245D;CUNEIFORM NUMERIC SIGN ONE THIRD VARIANT FORM A;Nl;0;L;;;;1/3;N;;;;;-1245E;CUNEIFORM NUMERIC SIGN TWO THIRDS VARIANT FORM A;Nl;0;L;;;;2/3;N;;;;;-1245F;CUNEIFORM NUMERIC SIGN ONE EIGHTH ASH;Nl;0;L;;;;1/8;N;;;;;-12460;CUNEIFORM NUMERIC SIGN ONE QUARTER ASH;Nl;0;L;;;;1/4;N;;;;;-12461;CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE SIXTH;Nl;0;L;;;;1/6;N;;;;;-12462;CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER;Nl;0;L;;;;1/4;N;;;;;-12470;CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER;Po;0;L;;;;;N;;;;;-12471;CUNEIFORM PUNCTUATION SIGN VERTICAL COLON;Po;0;L;;;;;N;;;;;-12472;CUNEIFORM PUNCTUATION SIGN DIAGONAL COLON;Po;0;L;;;;;N;;;;;-12473;CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON;Po;0;L;;;;;N;;;;;-1D000;BYZANTINE MUSICAL SYMBOL PSILI;So;0;L;;;;;N;;;;;-1D001;BYZANTINE MUSICAL SYMBOL DASEIA;So;0;L;;;;;N;;;;;-1D002;BYZANTINE MUSICAL SYMBOL PERISPOMENI;So;0;L;;;;;N;;;;;-1D003;BYZANTINE MUSICAL SYMBOL OXEIA EKFONITIKON;So;0;L;;;;;N;;;;;-1D004;BYZANTINE MUSICAL SYMBOL OXEIA DIPLI;So;0;L;;;;;N;;;;;-1D005;BYZANTINE MUSICAL SYMBOL VAREIA EKFONITIKON;So;0;L;;;;;N;;;;;-1D006;BYZANTINE MUSICAL SYMBOL VAREIA DIPLI;So;0;L;;;;;N;;;;;-1D007;BYZANTINE MUSICAL SYMBOL KATHISTI;So;0;L;;;;;N;;;;;-1D008;BYZANTINE MUSICAL SYMBOL SYRMATIKI;So;0;L;;;;;N;;;;;-1D009;BYZANTINE MUSICAL SYMBOL PARAKLITIKI;So;0;L;;;;;N;;;;;-1D00A;BYZANTINE MUSICAL SYMBOL YPOKRISIS;So;0;L;;;;;N;;;;;-1D00B;BYZANTINE MUSICAL SYMBOL YPOKRISIS DIPLI;So;0;L;;;;;N;;;;;-1D00C;BYZANTINE MUSICAL SYMBOL KREMASTI;So;0;L;;;;;N;;;;;-1D00D;BYZANTINE MUSICAL SYMBOL APESO EKFONITIKON;So;0;L;;;;;N;;;;;-1D00E;BYZANTINE MUSICAL SYMBOL EXO EKFONITIKON;So;0;L;;;;;N;;;;;-1D00F;BYZANTINE MUSICAL SYMBOL TELEIA;So;0;L;;;;;N;;;;;-1D010;BYZANTINE MUSICAL SYMBOL KENTIMATA;So;0;L;;;;;N;;;;;-1D011;BYZANTINE MUSICAL SYMBOL APOSTROFOS;So;0;L;;;;;N;;;;;-1D012;BYZANTINE MUSICAL SYMBOL APOSTROFOS DIPLI;So;0;L;;;;;N;;;;;-1D013;BYZANTINE MUSICAL SYMBOL SYNEVMA;So;0;L;;;;;N;;;;;-1D014;BYZANTINE MUSICAL SYMBOL THITA;So;0;L;;;;;N;;;;;-1D015;BYZANTINE MUSICAL SYMBOL OLIGON ARCHAION;So;0;L;;;;;N;;;;;-1D016;BYZANTINE MUSICAL SYMBOL GORGON ARCHAION;So;0;L;;;;;N;;;;;-1D017;BYZANTINE MUSICAL SYMBOL PSILON;So;0;L;;;;;N;;;;;-1D018;BYZANTINE MUSICAL SYMBOL CHAMILON;So;0;L;;;;;N;;;;;-1D019;BYZANTINE MUSICAL SYMBOL VATHY;So;0;L;;;;;N;;;;;-1D01A;BYZANTINE MUSICAL SYMBOL ISON ARCHAION;So;0;L;;;;;N;;;;;-1D01B;BYZANTINE MUSICAL SYMBOL KENTIMA ARCHAION;So;0;L;;;;;N;;;;;-1D01C;BYZANTINE MUSICAL SYMBOL KENTIMATA ARCHAION;So;0;L;;;;;N;;;;;-1D01D;BYZANTINE MUSICAL SYMBOL SAXIMATA;So;0;L;;;;;N;;;;;-1D01E;BYZANTINE MUSICAL SYMBOL PARICHON;So;0;L;;;;;N;;;;;-1D01F;BYZANTINE MUSICAL SYMBOL STAVROS APODEXIA;So;0;L;;;;;N;;;;;-1D020;BYZANTINE MUSICAL SYMBOL OXEIAI ARCHAION;So;0;L;;;;;N;;;;;-1D021;BYZANTINE MUSICAL SYMBOL VAREIAI ARCHAION;So;0;L;;;;;N;;;;;-1D022;BYZANTINE MUSICAL SYMBOL APODERMA ARCHAION;So;0;L;;;;;N;;;;;-1D023;BYZANTINE MUSICAL SYMBOL APOTHEMA;So;0;L;;;;;N;;;;;-1D024;BYZANTINE MUSICAL SYMBOL KLASMA;So;0;L;;;;;N;;;;;-1D025;BYZANTINE MUSICAL SYMBOL REVMA;So;0;L;;;;;N;;;;;-1D026;BYZANTINE MUSICAL SYMBOL PIASMA ARCHAION;So;0;L;;;;;N;;;;;-1D027;BYZANTINE MUSICAL SYMBOL TINAGMA;So;0;L;;;;;N;;;;;-1D028;BYZANTINE MUSICAL SYMBOL ANATRICHISMA;So;0;L;;;;;N;;;;;-1D029;BYZANTINE MUSICAL SYMBOL SEISMA;So;0;L;;;;;N;;;;;-1D02A;BYZANTINE MUSICAL SYMBOL SYNAGMA ARCHAION;So;0;L;;;;;N;;;;;-1D02B;BYZANTINE MUSICAL SYMBOL SYNAGMA META STAVROU;So;0;L;;;;;N;;;;;-1D02C;BYZANTINE MUSICAL SYMBOL OYRANISMA ARCHAION;So;0;L;;;;;N;;;;;-1D02D;BYZANTINE MUSICAL SYMBOL THEMA;So;0;L;;;;;N;;;;;-1D02E;BYZANTINE MUSICAL SYMBOL LEMOI;So;0;L;;;;;N;;;;;-1D02F;BYZANTINE MUSICAL SYMBOL DYO;So;0;L;;;;;N;;;;;-1D030;BYZANTINE MUSICAL SYMBOL TRIA;So;0;L;;;;;N;;;;;-1D031;BYZANTINE MUSICAL SYMBOL TESSERA;So;0;L;;;;;N;;;;;-1D032;BYZANTINE MUSICAL SYMBOL KRATIMATA;So;0;L;;;;;N;;;;;-1D033;BYZANTINE MUSICAL SYMBOL APESO EXO NEO;So;0;L;;;;;N;;;;;-1D034;BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION;So;0;L;;;;;N;;;;;-1D035;BYZANTINE MUSICAL SYMBOL IMIFTHORA;So;0;L;;;;;N;;;;;-1D036;BYZANTINE MUSICAL SYMBOL TROMIKON ARCHAION;So;0;L;;;;;N;;;;;-1D037;BYZANTINE MUSICAL SYMBOL KATAVA TROMIKON;So;0;L;;;;;N;;;;;-1D038;BYZANTINE MUSICAL SYMBOL PELASTON;So;0;L;;;;;N;;;;;-1D039;BYZANTINE MUSICAL SYMBOL PSIFISTON;So;0;L;;;;;N;;;;;-1D03A;BYZANTINE MUSICAL SYMBOL KONTEVMA;So;0;L;;;;;N;;;;;-1D03B;BYZANTINE MUSICAL SYMBOL CHOREVMA ARCHAION;So;0;L;;;;;N;;;;;-1D03C;BYZANTINE MUSICAL SYMBOL RAPISMA;So;0;L;;;;;N;;;;;-1D03D;BYZANTINE MUSICAL SYMBOL PARAKALESMA ARCHAION;So;0;L;;;;;N;;;;;-1D03E;BYZANTINE MUSICAL SYMBOL PARAKLITIKI ARCHAION;So;0;L;;;;;N;;;;;-1D03F;BYZANTINE MUSICAL SYMBOL ICHADIN;So;0;L;;;;;N;;;;;-1D040;BYZANTINE MUSICAL SYMBOL NANA;So;0;L;;;;;N;;;;;-1D041;BYZANTINE MUSICAL SYMBOL PETASMA;So;0;L;;;;;N;;;;;-1D042;BYZANTINE MUSICAL SYMBOL KONTEVMA ALLO;So;0;L;;;;;N;;;;;-1D043;BYZANTINE MUSICAL SYMBOL TROMIKON ALLO;So;0;L;;;;;N;;;;;-1D044;BYZANTINE MUSICAL SYMBOL STRAGGISMATA;So;0;L;;;;;N;;;;;-1D045;BYZANTINE MUSICAL SYMBOL GRONTHISMATA;So;0;L;;;;;N;;;;;-1D046;BYZANTINE MUSICAL SYMBOL ISON NEO;So;0;L;;;;;N;;;;;-1D047;BYZANTINE MUSICAL SYMBOL OLIGON NEO;So;0;L;;;;;N;;;;;-1D048;BYZANTINE MUSICAL SYMBOL OXEIA NEO;So;0;L;;;;;N;;;;;-1D049;BYZANTINE MUSICAL SYMBOL PETASTI;So;0;L;;;;;N;;;;;-1D04A;BYZANTINE MUSICAL SYMBOL KOUFISMA;So;0;L;;;;;N;;;;;-1D04B;BYZANTINE MUSICAL SYMBOL PETASTOKOUFISMA;So;0;L;;;;;N;;;;;-1D04C;BYZANTINE MUSICAL SYMBOL KRATIMOKOUFISMA;So;0;L;;;;;N;;;;;-1D04D;BYZANTINE MUSICAL SYMBOL PELASTON NEO;So;0;L;;;;;N;;;;;-1D04E;BYZANTINE MUSICAL SYMBOL KENTIMATA NEO ANO;So;0;L;;;;;N;;;;;-1D04F;BYZANTINE MUSICAL SYMBOL KENTIMA NEO ANO;So;0;L;;;;;N;;;;;-1D050;BYZANTINE MUSICAL SYMBOL YPSILI;So;0;L;;;;;N;;;;;-1D051;BYZANTINE MUSICAL SYMBOL APOSTROFOS NEO;So;0;L;;;;;N;;;;;-1D052;BYZANTINE MUSICAL SYMBOL APOSTROFOI SYNDESMOS NEO;So;0;L;;;;;N;;;;;-1D053;BYZANTINE MUSICAL SYMBOL YPORROI;So;0;L;;;;;N;;;;;-1D054;BYZANTINE MUSICAL SYMBOL KRATIMOYPORROON;So;0;L;;;;;N;;;;;-1D055;BYZANTINE MUSICAL SYMBOL ELAFRON;So;0;L;;;;;N;;;;;-1D056;BYZANTINE MUSICAL SYMBOL CHAMILI;So;0;L;;;;;N;;;;;-1D057;BYZANTINE MUSICAL SYMBOL MIKRON ISON;So;0;L;;;;;N;;;;;-1D058;BYZANTINE MUSICAL SYMBOL VAREIA NEO;So;0;L;;;;;N;;;;;-1D059;BYZANTINE MUSICAL SYMBOL PIASMA NEO;So;0;L;;;;;N;;;;;-1D05A;BYZANTINE MUSICAL SYMBOL PSIFISTON NEO;So;0;L;;;;;N;;;;;-1D05B;BYZANTINE MUSICAL SYMBOL OMALON;So;0;L;;;;;N;;;;;-1D05C;BYZANTINE MUSICAL SYMBOL ANTIKENOMA;So;0;L;;;;;N;;;;;-1D05D;BYZANTINE MUSICAL SYMBOL LYGISMA;So;0;L;;;;;N;;;;;-1D05E;BYZANTINE MUSICAL SYMBOL PARAKLITIKI NEO;So;0;L;;;;;N;;;;;-1D05F;BYZANTINE MUSICAL SYMBOL PARAKALESMA NEO;So;0;L;;;;;N;;;;;-1D060;BYZANTINE MUSICAL SYMBOL ETERON PARAKALESMA;So;0;L;;;;;N;;;;;-1D061;BYZANTINE MUSICAL SYMBOL KYLISMA;So;0;L;;;;;N;;;;;-1D062;BYZANTINE MUSICAL SYMBOL ANTIKENOKYLISMA;So;0;L;;;;;N;;;;;-1D063;BYZANTINE MUSICAL SYMBOL TROMIKON NEO;So;0;L;;;;;N;;;;;-1D064;BYZANTINE MUSICAL SYMBOL EKSTREPTON;So;0;L;;;;;N;;;;;-1D065;BYZANTINE MUSICAL SYMBOL SYNAGMA NEO;So;0;L;;;;;N;;;;;-1D066;BYZANTINE MUSICAL SYMBOL SYRMA;So;0;L;;;;;N;;;;;-1D067;BYZANTINE MUSICAL SYMBOL CHOREVMA NEO;So;0;L;;;;;N;;;;;-1D068;BYZANTINE MUSICAL SYMBOL EPEGERMA;So;0;L;;;;;N;;;;;-1D069;BYZANTINE MUSICAL SYMBOL SEISMA NEO;So;0;L;;;;;N;;;;;-1D06A;BYZANTINE MUSICAL SYMBOL XIRON KLASMA;So;0;L;;;;;N;;;;;-1D06B;BYZANTINE MUSICAL SYMBOL TROMIKOPSIFISTON;So;0;L;;;;;N;;;;;-1D06C;BYZANTINE MUSICAL SYMBOL PSIFISTOLYGISMA;So;0;L;;;;;N;;;;;-1D06D;BYZANTINE MUSICAL SYMBOL TROMIKOLYGISMA;So;0;L;;;;;N;;;;;-1D06E;BYZANTINE MUSICAL SYMBOL TROMIKOPARAKALESMA;So;0;L;;;;;N;;;;;-1D06F;BYZANTINE MUSICAL SYMBOL PSIFISTOPARAKALESMA;So;0;L;;;;;N;;;;;-1D070;BYZANTINE MUSICAL SYMBOL TROMIKOSYNAGMA;So;0;L;;;;;N;;;;;-1D071;BYZANTINE MUSICAL SYMBOL PSIFISTOSYNAGMA;So;0;L;;;;;N;;;;;-1D072;BYZANTINE MUSICAL SYMBOL GORGOSYNTHETON;So;0;L;;;;;N;;;;;-1D073;BYZANTINE MUSICAL SYMBOL ARGOSYNTHETON;So;0;L;;;;;N;;;;;-1D074;BYZANTINE MUSICAL SYMBOL ETERON ARGOSYNTHETON;So;0;L;;;;;N;;;;;-1D075;BYZANTINE MUSICAL SYMBOL OYRANISMA NEO;So;0;L;;;;;N;;;;;-1D076;BYZANTINE MUSICAL SYMBOL THEMATISMOS ESO;So;0;L;;;;;N;;;;;-1D077;BYZANTINE MUSICAL SYMBOL THEMATISMOS EXO;So;0;L;;;;;N;;;;;-1D078;BYZANTINE MUSICAL SYMBOL THEMA APLOUN;So;0;L;;;;;N;;;;;-1D079;BYZANTINE MUSICAL SYMBOL THES KAI APOTHES;So;0;L;;;;;N;;;;;-1D07A;BYZANTINE MUSICAL SYMBOL KATAVASMA;So;0;L;;;;;N;;;;;-1D07B;BYZANTINE MUSICAL SYMBOL ENDOFONON;So;0;L;;;;;N;;;;;-1D07C;BYZANTINE MUSICAL SYMBOL YFEN KATO;So;0;L;;;;;N;;;;;-1D07D;BYZANTINE MUSICAL SYMBOL YFEN ANO;So;0;L;;;;;N;;;;;-1D07E;BYZANTINE MUSICAL SYMBOL STAVROS;So;0;L;;;;;N;;;;;-1D07F;BYZANTINE MUSICAL SYMBOL KLASMA ANO;So;0;L;;;;;N;;;;;-1D080;BYZANTINE MUSICAL SYMBOL DIPLI ARCHAION;So;0;L;;;;;N;;;;;-1D081;BYZANTINE MUSICAL SYMBOL KRATIMA ARCHAION;So;0;L;;;;;N;;;;;-1D082;BYZANTINE MUSICAL SYMBOL KRATIMA ALLO;So;0;L;;;;;N;;;;;-1D083;BYZANTINE MUSICAL SYMBOL KRATIMA NEO;So;0;L;;;;;N;;;;;-1D084;BYZANTINE MUSICAL SYMBOL APODERMA NEO;So;0;L;;;;;N;;;;;-1D085;BYZANTINE MUSICAL SYMBOL APLI;So;0;L;;;;;N;;;;;-1D086;BYZANTINE MUSICAL SYMBOL DIPLI;So;0;L;;;;;N;;;;;-1D087;BYZANTINE MUSICAL SYMBOL TRIPLI;So;0;L;;;;;N;;;;;-1D088;BYZANTINE MUSICAL SYMBOL TETRAPLI;So;0;L;;;;;N;;;;;-1D089;BYZANTINE MUSICAL SYMBOL KORONIS;So;0;L;;;;;N;;;;;-1D08A;BYZANTINE MUSICAL SYMBOL LEIMMA ENOS CHRONOU;So;0;L;;;;;N;;;;;-1D08B;BYZANTINE MUSICAL SYMBOL LEIMMA DYO CHRONON;So;0;L;;;;;N;;;;;-1D08C;BYZANTINE MUSICAL SYMBOL LEIMMA TRION CHRONON;So;0;L;;;;;N;;;;;-1D08D;BYZANTINE MUSICAL SYMBOL LEIMMA TESSARON CHRONON;So;0;L;;;;;N;;;;;-1D08E;BYZANTINE MUSICAL SYMBOL LEIMMA IMISEOS CHRONOU;So;0;L;;;;;N;;;;;-1D08F;BYZANTINE MUSICAL SYMBOL GORGON NEO ANO;So;0;L;;;;;N;;;;;-1D090;BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON ARISTERA;So;0;L;;;;;N;;;;;-1D091;BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON DEXIA;So;0;L;;;;;N;;;;;-1D092;BYZANTINE MUSICAL SYMBOL DIGORGON;So;0;L;;;;;N;;;;;-1D093;BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA KATO;So;0;L;;;;;N;;;;;-1D094;BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA ANO;So;0;L;;;;;N;;;;;-1D095;BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON DEXIA;So;0;L;;;;;N;;;;;-1D096;BYZANTINE MUSICAL SYMBOL TRIGORGON;So;0;L;;;;;N;;;;;-1D097;BYZANTINE MUSICAL SYMBOL ARGON;So;0;L;;;;;N;;;;;-1D098;BYZANTINE MUSICAL SYMBOL IMIDIARGON;So;0;L;;;;;N;;;;;-1D099;BYZANTINE MUSICAL SYMBOL DIARGON;So;0;L;;;;;N;;;;;-1D09A;BYZANTINE MUSICAL SYMBOL AGOGI POLI ARGI;So;0;L;;;;;N;;;;;-1D09B;BYZANTINE MUSICAL SYMBOL AGOGI ARGOTERI;So;0;L;;;;;N;;;;;-1D09C;BYZANTINE MUSICAL SYMBOL AGOGI ARGI;So;0;L;;;;;N;;;;;-1D09D;BYZANTINE MUSICAL SYMBOL AGOGI METRIA;So;0;L;;;;;N;;;;;-1D09E;BYZANTINE MUSICAL SYMBOL AGOGI MESI;So;0;L;;;;;N;;;;;-1D09F;BYZANTINE MUSICAL SYMBOL AGOGI GORGI;So;0;L;;;;;N;;;;;-1D0A0;BYZANTINE MUSICAL SYMBOL AGOGI GORGOTERI;So;0;L;;;;;N;;;;;-1D0A1;BYZANTINE MUSICAL SYMBOL AGOGI POLI GORGI;So;0;L;;;;;N;;;;;-1D0A2;BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOS ICHOS;So;0;L;;;;;N;;;;;-1D0A3;BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI PROTOS ICHOS;So;0;L;;;;;N;;;;;-1D0A4;BYZANTINE MUSICAL SYMBOL MARTYRIA DEYTEROS ICHOS;So;0;L;;;;;N;;;;;-1D0A5;BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI DEYTEROS ICHOS;So;0;L;;;;;N;;;;;-1D0A6;BYZANTINE MUSICAL SYMBOL MARTYRIA TRITOS ICHOS;So;0;L;;;;;N;;;;;-1D0A7;BYZANTINE MUSICAL SYMBOL MARTYRIA TRIFONIAS;So;0;L;;;;;N;;;;;-1D0A8;BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS ICHOS;So;0;L;;;;;N;;;;;-1D0A9;BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS LEGETOS ICHOS;So;0;L;;;;;N;;;;;-1D0AA;BYZANTINE MUSICAL SYMBOL MARTYRIA LEGETOS ICHOS;So;0;L;;;;;N;;;;;-1D0AB;BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS ICHOS;So;0;L;;;;;N;;;;;-1D0AC;BYZANTINE MUSICAL SYMBOL ISAKIA TELOUS ICHIMATOS;So;0;L;;;;;N;;;;;-1D0AD;BYZANTINE MUSICAL SYMBOL APOSTROFOI TELOUS ICHIMATOS;So;0;L;;;;;N;;;;;-1D0AE;BYZANTINE MUSICAL SYMBOL FANEROSIS TETRAFONIAS;So;0;L;;;;;N;;;;;-1D0AF;BYZANTINE MUSICAL SYMBOL FANEROSIS MONOFONIAS;So;0;L;;;;;N;;;;;-1D0B0;BYZANTINE MUSICAL SYMBOL FANEROSIS DIFONIAS;So;0;L;;;;;N;;;;;-1D0B1;BYZANTINE MUSICAL SYMBOL MARTYRIA VARYS ICHOS;So;0;L;;;;;N;;;;;-1D0B2;BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOVARYS ICHOS;So;0;L;;;;;N;;;;;-1D0B3;BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS TETARTOS ICHOS;So;0;L;;;;;N;;;;;-1D0B4;BYZANTINE MUSICAL SYMBOL GORTHMIKON N APLOUN;So;0;L;;;;;N;;;;;-1D0B5;BYZANTINE MUSICAL SYMBOL GORTHMIKON N DIPLOUN;So;0;L;;;;;N;;;;;-1D0B6;BYZANTINE MUSICAL SYMBOL ENARXIS KAI FTHORA VOU;So;0;L;;;;;N;;;;;-1D0B7;BYZANTINE MUSICAL SYMBOL IMIFONON;So;0;L;;;;;N;;;;;-1D0B8;BYZANTINE MUSICAL SYMBOL IMIFTHORON;So;0;L;;;;;N;;;;;-1D0B9;BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION DEYTEROU ICHOU;So;0;L;;;;;N;;;;;-1D0BA;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI PA;So;0;L;;;;;N;;;;;-1D0BB;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NANA;So;0;L;;;;;N;;;;;-1D0BC;BYZANTINE MUSICAL SYMBOL FTHORA NAOS ICHOS;So;0;L;;;;;N;;;;;-1D0BD;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI DI;So;0;L;;;;;N;;;;;-1D0BE;BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON DIATONON DI;So;0;L;;;;;N;;;;;-1D0BF;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI KE;So;0;L;;;;;N;;;;;-1D0C0;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI ZO;So;0;L;;;;;N;;;;;-1D0C1;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI KATO;So;0;L;;;;;N;;;;;-1D0C2;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI ANO;So;0;L;;;;;N;;;;;-1D0C3;BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA DIFONIAS;So;0;L;;;;;N;;;;;-1D0C4;BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA MONOFONIAS;So;0;L;;;;;N;;;;;-1D0C5;BYZANTINE MUSICAL SYMBOL FHTORA SKLIRON CHROMA VASIS;So;0;L;;;;;N;;;;;-1D0C6;BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON CHROMA SYNAFI;So;0;L;;;;;N;;;;;-1D0C7;BYZANTINE MUSICAL SYMBOL FTHORA NENANO;So;0;L;;;;;N;;;;;-1D0C8;BYZANTINE MUSICAL SYMBOL CHROA ZYGOS;So;0;L;;;;;N;;;;;-1D0C9;BYZANTINE MUSICAL SYMBOL CHROA KLITON;So;0;L;;;;;N;;;;;-1D0CA;BYZANTINE MUSICAL SYMBOL CHROA SPATHI;So;0;L;;;;;N;;;;;-1D0CB;BYZANTINE MUSICAL SYMBOL FTHORA I YFESIS TETARTIMORION;So;0;L;;;;;N;;;;;-1D0CC;BYZANTINE MUSICAL SYMBOL FTHORA ENARMONIOS ANTIFONIA;So;0;L;;;;;N;;;;;-1D0CD;BYZANTINE MUSICAL SYMBOL YFESIS TRITIMORION;So;0;L;;;;;N;;;;;-1D0CE;BYZANTINE MUSICAL SYMBOL DIESIS TRITIMORION;So;0;L;;;;;N;;;;;-1D0CF;BYZANTINE MUSICAL SYMBOL DIESIS TETARTIMORION;So;0;L;;;;;N;;;;;-1D0D0;BYZANTINE MUSICAL SYMBOL DIESIS APLI DYO DODEKATA;So;0;L;;;;;N;;;;;-1D0D1;BYZANTINE MUSICAL SYMBOL DIESIS MONOGRAMMOS TESSERA DODEKATA;So;0;L;;;;;N;;;;;-1D0D2;BYZANTINE MUSICAL SYMBOL DIESIS DIGRAMMOS EX DODEKATA;So;0;L;;;;;N;;;;;-1D0D3;BYZANTINE MUSICAL SYMBOL DIESIS TRIGRAMMOS OKTO DODEKATA;So;0;L;;;;;N;;;;;-1D0D4;BYZANTINE MUSICAL SYMBOL YFESIS APLI DYO DODEKATA;So;0;L;;;;;N;;;;;-1D0D5;BYZANTINE MUSICAL SYMBOL YFESIS MONOGRAMMOS TESSERA DODEKATA;So;0;L;;;;;N;;;;;-1D0D6;BYZANTINE MUSICAL SYMBOL YFESIS DIGRAMMOS EX DODEKATA;So;0;L;;;;;N;;;;;-1D0D7;BYZANTINE MUSICAL SYMBOL YFESIS TRIGRAMMOS OKTO DODEKATA;So;0;L;;;;;N;;;;;-1D0D8;BYZANTINE MUSICAL SYMBOL GENIKI DIESIS;So;0;L;;;;;N;;;;;-1D0D9;BYZANTINE MUSICAL SYMBOL GENIKI YFESIS;So;0;L;;;;;N;;;;;-1D0DA;BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MIKRI;So;0;L;;;;;N;;;;;-1D0DB;BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MEGALI;So;0;L;;;;;N;;;;;-1D0DC;BYZANTINE MUSICAL SYMBOL DIASTOLI DIPLI;So;0;L;;;;;N;;;;;-1D0DD;BYZANTINE MUSICAL SYMBOL DIASTOLI THESEOS;So;0;L;;;;;N;;;;;-1D0DE;BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS;So;0;L;;;;;N;;;;;-1D0DF;BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS DISIMOU;So;0;L;;;;;N;;;;;-1D0E0;BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TRISIMOU;So;0;L;;;;;N;;;;;-1D0E1;BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TETRASIMOU;So;0;L;;;;;N;;;;;-1D0E2;BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS;So;0;L;;;;;N;;;;;-1D0E3;BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS DISIMOU;So;0;L;;;;;N;;;;;-1D0E4;BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TRISIMOU;So;0;L;;;;;N;;;;;-1D0E5;BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TETRASIMOU;So;0;L;;;;;N;;;;;-1D0E6;BYZANTINE MUSICAL SYMBOL DIGRAMMA GG;So;0;L;;;;;N;;;;;-1D0E7;BYZANTINE MUSICAL SYMBOL DIFTOGGOS OU;So;0;L;;;;;N;;;;;-1D0E8;BYZANTINE MUSICAL SYMBOL STIGMA;So;0;L;;;;;N;;;;;-1D0E9;BYZANTINE MUSICAL SYMBOL ARKTIKO PA;So;0;L;;;;;N;;;;;-1D0EA;BYZANTINE MUSICAL SYMBOL ARKTIKO VOU;So;0;L;;;;;N;;;;;-1D0EB;BYZANTINE MUSICAL SYMBOL ARKTIKO GA;So;0;L;;;;;N;;;;;-1D0EC;BYZANTINE MUSICAL SYMBOL ARKTIKO DI;So;0;L;;;;;N;;;;;-1D0ED;BYZANTINE MUSICAL SYMBOL ARKTIKO KE;So;0;L;;;;;N;;;;;-1D0EE;BYZANTINE MUSICAL SYMBOL ARKTIKO ZO;So;0;L;;;;;N;;;;;-1D0EF;BYZANTINE MUSICAL SYMBOL ARKTIKO NI;So;0;L;;;;;N;;;;;-1D0F0;BYZANTINE MUSICAL SYMBOL KENTIMATA NEO MESO;So;0;L;;;;;N;;;;;-1D0F1;BYZANTINE MUSICAL SYMBOL KENTIMA NEO MESO;So;0;L;;;;;N;;;;;-1D0F2;BYZANTINE MUSICAL SYMBOL KENTIMATA NEO KATO;So;0;L;;;;;N;;;;;-1D0F3;BYZANTINE MUSICAL SYMBOL KENTIMA NEO KATO;So;0;L;;;;;N;;;;;-1D0F4;BYZANTINE MUSICAL SYMBOL KLASMA KATO;So;0;L;;;;;N;;;;;-1D0F5;BYZANTINE MUSICAL SYMBOL GORGON NEO KATO;So;0;L;;;;;N;;;;;-1D100;MUSICAL SYMBOL SINGLE BARLINE;So;0;L;;;;;N;;;;;-1D101;MUSICAL SYMBOL DOUBLE BARLINE;So;0;L;;;;;N;;;;;-1D102;MUSICAL SYMBOL FINAL BARLINE;So;0;L;;;;;N;;;;;-1D103;MUSICAL SYMBOL REVERSE FINAL BARLINE;So;0;L;;;;;N;;;;;-1D104;MUSICAL SYMBOL DASHED BARLINE;So;0;L;;;;;N;;;;;-1D105;MUSICAL SYMBOL SHORT BARLINE;So;0;L;;;;;N;;;;;-1D106;MUSICAL SYMBOL LEFT REPEAT SIGN;So;0;L;;;;;N;;;;;-1D107;MUSICAL SYMBOL RIGHT REPEAT SIGN;So;0;L;;;;;N;;;;;-1D108;MUSICAL SYMBOL REPEAT DOTS;So;0;L;;;;;N;;;;;-1D109;MUSICAL SYMBOL DAL SEGNO;So;0;L;;;;;N;;;;;-1D10A;MUSICAL SYMBOL DA CAPO;So;0;L;;;;;N;;;;;-1D10B;MUSICAL SYMBOL SEGNO;So;0;L;;;;;N;;;;;-1D10C;MUSICAL SYMBOL CODA;So;0;L;;;;;N;;;;;-1D10D;MUSICAL SYMBOL REPEATED FIGURE-1;So;0;L;;;;;N;;;;;-1D10E;MUSICAL SYMBOL REPEATED FIGURE-2;So;0;L;;;;;N;;;;;-1D10F;MUSICAL SYMBOL REPEATED FIGURE-3;So;0;L;;;;;N;;;;;-1D110;MUSICAL SYMBOL FERMATA;So;0;L;;;;;N;;;;;-1D111;MUSICAL SYMBOL FERMATA BELOW;So;0;L;;;;;N;;;;;-1D112;MUSICAL SYMBOL BREATH MARK;So;0;L;;;;;N;;;;;-1D113;MUSICAL SYMBOL CAESURA;So;0;L;;;;;N;;;;;-1D114;MUSICAL SYMBOL BRACE;So;0;L;;;;;N;;;;;-1D115;MUSICAL SYMBOL BRACKET;So;0;L;;;;;N;;;;;-1D116;MUSICAL SYMBOL ONE-LINE STAFF;So;0;L;;;;;N;;;;;-1D117;MUSICAL SYMBOL TWO-LINE STAFF;So;0;L;;;;;N;;;;;-1D118;MUSICAL SYMBOL THREE-LINE STAFF;So;0;L;;;;;N;;;;;-1D119;MUSICAL SYMBOL FOUR-LINE STAFF;So;0;L;;;;;N;;;;;-1D11A;MUSICAL SYMBOL FIVE-LINE STAFF;So;0;L;;;;;N;;;;;-1D11B;MUSICAL SYMBOL SIX-LINE STAFF;So;0;L;;;;;N;;;;;-1D11C;MUSICAL SYMBOL SIX-STRING FRETBOARD;So;0;L;;;;;N;;;;;-1D11D;MUSICAL SYMBOL FOUR-STRING FRETBOARD;So;0;L;;;;;N;;;;;-1D11E;MUSICAL SYMBOL G CLEF;So;0;L;;;;;N;;;;;-1D11F;MUSICAL SYMBOL G CLEF OTTAVA ALTA;So;0;L;;;;;N;;;;;-1D120;MUSICAL SYMBOL G CLEF OTTAVA BASSA;So;0;L;;;;;N;;;;;-1D121;MUSICAL SYMBOL C CLEF;So;0;L;;;;;N;;;;;-1D122;MUSICAL SYMBOL F CLEF;So;0;L;;;;;N;;;;;-1D123;MUSICAL SYMBOL F CLEF OTTAVA ALTA;So;0;L;;;;;N;;;;;-1D124;MUSICAL SYMBOL F CLEF OTTAVA BASSA;So;0;L;;;;;N;;;;;-1D125;MUSICAL SYMBOL DRUM CLEF-1;So;0;L;;;;;N;;;;;-1D126;MUSICAL SYMBOL DRUM CLEF-2;So;0;L;;;;;N;;;;;-1D12A;MUSICAL SYMBOL DOUBLE SHARP;So;0;L;;;;;N;;;;;-1D12B;MUSICAL SYMBOL DOUBLE FLAT;So;0;L;;;;;N;;;;;-1D12C;MUSICAL SYMBOL FLAT UP;So;0;L;;;;;N;;;;;-1D12D;MUSICAL SYMBOL FLAT DOWN;So;0;L;;;;;N;;;;;-1D12E;MUSICAL SYMBOL NATURAL UP;So;0;L;;;;;N;;;;;-1D12F;MUSICAL SYMBOL NATURAL DOWN;So;0;L;;;;;N;;;;;-1D130;MUSICAL SYMBOL SHARP UP;So;0;L;;;;;N;;;;;-1D131;MUSICAL SYMBOL SHARP DOWN;So;0;L;;;;;N;;;;;-1D132;MUSICAL SYMBOL QUARTER TONE SHARP;So;0;L;;;;;N;;;;;-1D133;MUSICAL SYMBOL QUARTER TONE FLAT;So;0;L;;;;;N;;;;;-1D134;MUSICAL SYMBOL COMMON TIME;So;0;L;;;;;N;;;;;-1D135;MUSICAL SYMBOL CUT TIME;So;0;L;;;;;N;;;;;-1D136;MUSICAL SYMBOL OTTAVA ALTA;So;0;L;;;;;N;;;;;-1D137;MUSICAL SYMBOL OTTAVA BASSA;So;0;L;;;;;N;;;;;-1D138;MUSICAL SYMBOL QUINDICESIMA ALTA;So;0;L;;;;;N;;;;;-1D139;MUSICAL SYMBOL QUINDICESIMA BASSA;So;0;L;;;;;N;;;;;-1D13A;MUSICAL SYMBOL MULTI REST;So;0;L;;;;;N;;;;;-1D13B;MUSICAL SYMBOL WHOLE REST;So;0;L;;;;;N;;;;;-1D13C;MUSICAL SYMBOL HALF REST;So;0;L;;;;;N;;;;;-1D13D;MUSICAL SYMBOL QUARTER REST;So;0;L;;;;;N;;;;;-1D13E;MUSICAL SYMBOL EIGHTH REST;So;0;L;;;;;N;;;;;-1D13F;MUSICAL SYMBOL SIXTEENTH REST;So;0;L;;;;;N;;;;;-1D140;MUSICAL SYMBOL THIRTY-SECOND REST;So;0;L;;;;;N;;;;;-1D141;MUSICAL SYMBOL SIXTY-FOURTH REST;So;0;L;;;;;N;;;;;-1D142;MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH REST;So;0;L;;;;;N;;;;;-1D143;MUSICAL SYMBOL X NOTEHEAD;So;0;L;;;;;N;;;;;-1D144;MUSICAL SYMBOL PLUS NOTEHEAD;So;0;L;;;;;N;;;;;-1D145;MUSICAL SYMBOL CIRCLE X NOTEHEAD;So;0;L;;;;;N;;;;;-1D146;MUSICAL SYMBOL SQUARE NOTEHEAD WHITE;So;0;L;;;;;N;;;;;-1D147;MUSICAL SYMBOL SQUARE NOTEHEAD BLACK;So;0;L;;;;;N;;;;;-1D148;MUSICAL SYMBOL TRIANGLE NOTEHEAD UP WHITE;So;0;L;;;;;N;;;;;-1D149;MUSICAL SYMBOL TRIANGLE NOTEHEAD UP BLACK;So;0;L;;;;;N;;;;;-1D14A;MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT WHITE;So;0;L;;;;;N;;;;;-1D14B;MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT BLACK;So;0;L;;;;;N;;;;;-1D14C;MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT WHITE;So;0;L;;;;;N;;;;;-1D14D;MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT BLACK;So;0;L;;;;;N;;;;;-1D14E;MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN WHITE;So;0;L;;;;;N;;;;;-1D14F;MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN BLACK;So;0;L;;;;;N;;;;;-1D150;MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT WHITE;So;0;L;;;;;N;;;;;-1D151;MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT BLACK;So;0;L;;;;;N;;;;;-1D152;MUSICAL SYMBOL MOON NOTEHEAD WHITE;So;0;L;;;;;N;;;;;-1D153;MUSICAL SYMBOL MOON NOTEHEAD BLACK;So;0;L;;;;;N;;;;;-1D154;MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN WHITE;So;0;L;;;;;N;;;;;-1D155;MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN BLACK;So;0;L;;;;;N;;;;;-1D156;MUSICAL SYMBOL PARENTHESIS NOTEHEAD;So;0;L;;;;;N;;;;;-1D157;MUSICAL SYMBOL VOID NOTEHEAD;So;0;L;;;;;N;;;;;-1D158;MUSICAL SYMBOL NOTEHEAD BLACK;So;0;L;;;;;N;;;;;-1D159;MUSICAL SYMBOL NULL NOTEHEAD;So;0;L;;;;;N;;;;;-1D15A;MUSICAL SYMBOL CLUSTER NOTEHEAD WHITE;So;0;L;;;;;N;;;;;-1D15B;MUSICAL SYMBOL CLUSTER NOTEHEAD BLACK;So;0;L;;;;;N;;;;;-1D15C;MUSICAL SYMBOL BREVE;So;0;L;;;;;N;;;;;-1D15D;MUSICAL SYMBOL WHOLE NOTE;So;0;L;;;;;N;;;;;-1D15E;MUSICAL SYMBOL HALF NOTE;So;0;L;1D157 1D165;;;;N;;;;;-1D15F;MUSICAL SYMBOL QUARTER NOTE;So;0;L;1D158 1D165;;;;N;;;;;-1D160;MUSICAL SYMBOL EIGHTH NOTE;So;0;L;1D15F 1D16E;;;;N;;;;;-1D161;MUSICAL SYMBOL SIXTEENTH NOTE;So;0;L;1D15F 1D16F;;;;N;;;;;-1D162;MUSICAL SYMBOL THIRTY-SECOND NOTE;So;0;L;1D15F 1D170;;;;N;;;;;-1D163;MUSICAL SYMBOL SIXTY-FOURTH NOTE;So;0;L;1D15F 1D171;;;;N;;;;;-1D164;MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE;So;0;L;1D15F 1D172;;;;N;;;;;-1D165;MUSICAL SYMBOL COMBINING STEM;Mc;216;L;;;;;N;;;;;-1D166;MUSICAL SYMBOL COMBINING SPRECHGESANG STEM;Mc;216;L;;;;;N;;;;;-1D167;MUSICAL SYMBOL COMBINING TREMOLO-1;Mn;1;NSM;;;;;N;;;;;-1D168;MUSICAL SYMBOL COMBINING TREMOLO-2;Mn;1;NSM;;;;;N;;;;;-1D169;MUSICAL SYMBOL COMBINING TREMOLO-3;Mn;1;NSM;;;;;N;;;;;-1D16A;MUSICAL SYMBOL FINGERED TREMOLO-1;So;0;L;;;;;N;;;;;-1D16B;MUSICAL SYMBOL FINGERED TREMOLO-2;So;0;L;;;;;N;;;;;-1D16C;MUSICAL SYMBOL FINGERED TREMOLO-3;So;0;L;;;;;N;;;;;-1D16D;MUSICAL SYMBOL COMBINING AUGMENTATION DOT;Mc;226;L;;;;;N;;;;;-1D16E;MUSICAL SYMBOL COMBINING FLAG-1;Mc;216;L;;;;;N;;;;;-1D16F;MUSICAL SYMBOL COMBINING FLAG-2;Mc;216;L;;;;;N;;;;;-1D170;MUSICAL SYMBOL COMBINING FLAG-3;Mc;216;L;;;;;N;;;;;-1D171;MUSICAL SYMBOL COMBINING FLAG-4;Mc;216;L;;;;;N;;;;;-1D172;MUSICAL SYMBOL COMBINING FLAG-5;Mc;216;L;;;;;N;;;;;-1D173;MUSICAL SYMBOL BEGIN BEAM;Cf;0;BN;;;;;N;;;;;-1D174;MUSICAL SYMBOL END BEAM;Cf;0;BN;;;;;N;;;;;-1D175;MUSICAL SYMBOL BEGIN TIE;Cf;0;BN;;;;;N;;;;;-1D176;MUSICAL SYMBOL END TIE;Cf;0;BN;;;;;N;;;;;-1D177;MUSICAL SYMBOL BEGIN SLUR;Cf;0;BN;;;;;N;;;;;-1D178;MUSICAL SYMBOL END SLUR;Cf;0;BN;;;;;N;;;;;-1D179;MUSICAL SYMBOL BEGIN PHRASE;Cf;0;BN;;;;;N;;;;;-1D17A;MUSICAL SYMBOL END PHRASE;Cf;0;BN;;;;;N;;;;;-1D17B;MUSICAL SYMBOL COMBINING ACCENT;Mn;220;NSM;;;;;N;;;;;-1D17C;MUSICAL SYMBOL COMBINING STACCATO;Mn;220;NSM;;;;;N;;;;;-1D17D;MUSICAL SYMBOL COMBINING TENUTO;Mn;220;NSM;;;;;N;;;;;-1D17E;MUSICAL SYMBOL COMBINING STACCATISSIMO;Mn;220;NSM;;;;;N;;;;;-1D17F;MUSICAL SYMBOL COMBINING MARCATO;Mn;220;NSM;;;;;N;;;;;-1D180;MUSICAL SYMBOL COMBINING MARCATO-STACCATO;Mn;220;NSM;;;;;N;;;;;-1D181;MUSICAL SYMBOL COMBINING ACCENT-STACCATO;Mn;220;NSM;;;;;N;;;;;-1D182;MUSICAL SYMBOL COMBINING LOURE;Mn;220;NSM;;;;;N;;;;;-1D183;MUSICAL SYMBOL ARPEGGIATO UP;So;0;L;;;;;N;;;;;-1D184;MUSICAL SYMBOL ARPEGGIATO DOWN;So;0;L;;;;;N;;;;;-1D185;MUSICAL SYMBOL COMBINING DOIT;Mn;230;NSM;;;;;N;;;;;-1D186;MUSICAL SYMBOL COMBINING RIP;Mn;230;NSM;;;;;N;;;;;-1D187;MUSICAL SYMBOL COMBINING FLIP;Mn;230;NSM;;;;;N;;;;;-1D188;MUSICAL SYMBOL COMBINING SMEAR;Mn;230;NSM;;;;;N;;;;;-1D189;MUSICAL SYMBOL COMBINING BEND;Mn;230;NSM;;;;;N;;;;;-1D18A;MUSICAL SYMBOL COMBINING DOUBLE TONGUE;Mn;220;NSM;;;;;N;;;;;-1D18B;MUSICAL SYMBOL COMBINING TRIPLE TONGUE;Mn;220;NSM;;;;;N;;;;;-1D18C;MUSICAL SYMBOL RINFORZANDO;So;0;L;;;;;N;;;;;-1D18D;MUSICAL SYMBOL SUBITO;So;0;L;;;;;N;;;;;-1D18E;MUSICAL SYMBOL Z;So;0;L;;;;;N;;;;;-1D18F;MUSICAL SYMBOL PIANO;So;0;L;;;;;N;;;;;-1D190;MUSICAL SYMBOL MEZZO;So;0;L;;;;;N;;;;;-1D191;MUSICAL SYMBOL FORTE;So;0;L;;;;;N;;;;;-1D192;MUSICAL SYMBOL CRESCENDO;So;0;L;;;;;N;;;;;-1D193;MUSICAL SYMBOL DECRESCENDO;So;0;L;;;;;N;;;;;-1D194;MUSICAL SYMBOL GRACE NOTE SLASH;So;0;L;;;;;N;;;;;-1D195;MUSICAL SYMBOL GRACE NOTE NO SLASH;So;0;L;;;;;N;;;;;-1D196;MUSICAL SYMBOL TR;So;0;L;;;;;N;;;;;-1D197;MUSICAL SYMBOL TURN;So;0;L;;;;;N;;;;;-1D198;MUSICAL SYMBOL INVERTED TURN;So;0;L;;;;;N;;;;;-1D199;MUSICAL SYMBOL TURN SLASH;So;0;L;;;;;N;;;;;-1D19A;MUSICAL SYMBOL TURN UP;So;0;L;;;;;N;;;;;-1D19B;MUSICAL SYMBOL ORNAMENT STROKE-1;So;0;L;;;;;N;;;;;-1D19C;MUSICAL SYMBOL ORNAMENT STROKE-2;So;0;L;;;;;N;;;;;-1D19D;MUSICAL SYMBOL ORNAMENT STROKE-3;So;0;L;;;;;N;;;;;-1D19E;MUSICAL SYMBOL ORNAMENT STROKE-4;So;0;L;;;;;N;;;;;-1D19F;MUSICAL SYMBOL ORNAMENT STROKE-5;So;0;L;;;;;N;;;;;-1D1A0;MUSICAL SYMBOL ORNAMENT STROKE-6;So;0;L;;;;;N;;;;;-1D1A1;MUSICAL SYMBOL ORNAMENT STROKE-7;So;0;L;;;;;N;;;;;-1D1A2;MUSICAL SYMBOL ORNAMENT STROKE-8;So;0;L;;;;;N;;;;;-1D1A3;MUSICAL SYMBOL ORNAMENT STROKE-9;So;0;L;;;;;N;;;;;-1D1A4;MUSICAL SYMBOL ORNAMENT STROKE-10;So;0;L;;;;;N;;;;;-1D1A5;MUSICAL SYMBOL ORNAMENT STROKE-11;So;0;L;;;;;N;;;;;-1D1A6;MUSICAL SYMBOL HAUPTSTIMME;So;0;L;;;;;N;;;;;-1D1A7;MUSICAL SYMBOL NEBENSTIMME;So;0;L;;;;;N;;;;;-1D1A8;MUSICAL SYMBOL END OF STIMME;So;0;L;;;;;N;;;;;-1D1A9;MUSICAL SYMBOL DEGREE SLASH;So;0;L;;;;;N;;;;;-1D1AA;MUSICAL SYMBOL COMBINING DOWN BOW;Mn;230;NSM;;;;;N;;;;;-1D1AB;MUSICAL SYMBOL COMBINING UP BOW;Mn;230;NSM;;;;;N;;;;;-1D1AC;MUSICAL SYMBOL COMBINING HARMONIC;Mn;230;NSM;;;;;N;;;;;-1D1AD;MUSICAL SYMBOL COMBINING SNAP PIZZICATO;Mn;230;NSM;;;;;N;;;;;-1D1AE;MUSICAL SYMBOL PEDAL MARK;So;0;L;;;;;N;;;;;-1D1AF;MUSICAL SYMBOL PEDAL UP MARK;So;0;L;;;;;N;;;;;-1D1B0;MUSICAL SYMBOL HALF PEDAL MARK;So;0;L;;;;;N;;;;;-1D1B1;MUSICAL SYMBOL GLISSANDO UP;So;0;L;;;;;N;;;;;-1D1B2;MUSICAL SYMBOL GLISSANDO DOWN;So;0;L;;;;;N;;;;;-1D1B3;MUSICAL SYMBOL WITH FINGERNAILS;So;0;L;;;;;N;;;;;-1D1B4;MUSICAL SYMBOL DAMP;So;0;L;;;;;N;;;;;-1D1B5;MUSICAL SYMBOL DAMP ALL;So;0;L;;;;;N;;;;;-1D1B6;MUSICAL SYMBOL MAXIMA;So;0;L;;;;;N;;;;;-1D1B7;MUSICAL SYMBOL LONGA;So;0;L;;;;;N;;;;;-1D1B8;MUSICAL SYMBOL BREVIS;So;0;L;;;;;N;;;;;-1D1B9;MUSICAL SYMBOL SEMIBREVIS WHITE;So;0;L;;;;;N;;;;;-1D1BA;MUSICAL SYMBOL SEMIBREVIS BLACK;So;0;L;;;;;N;;;;;-1D1BB;MUSICAL SYMBOL MINIMA;So;0;L;1D1B9 1D165;;;;N;;;;;-1D1BC;MUSICAL SYMBOL MINIMA BLACK;So;0;L;1D1BA 1D165;;;;N;;;;;-1D1BD;MUSICAL SYMBOL SEMIMINIMA WHITE;So;0;L;1D1BB 1D16E;;;;N;;;;;-1D1BE;MUSICAL SYMBOL SEMIMINIMA BLACK;So;0;L;1D1BC 1D16E;;;;N;;;;;-1D1BF;MUSICAL SYMBOL FUSA WHITE;So;0;L;1D1BB 1D16F;;;;N;;;;;-1D1C0;MUSICAL SYMBOL FUSA BLACK;So;0;L;1D1BC 1D16F;;;;N;;;;;-1D1C1;MUSICAL SYMBOL LONGA PERFECTA REST;So;0;L;;;;;N;;;;;-1D1C2;MUSICAL SYMBOL LONGA IMPERFECTA REST;So;0;L;;;;;N;;;;;-1D1C3;MUSICAL SYMBOL BREVIS REST;So;0;L;;;;;N;;;;;-1D1C4;MUSICAL SYMBOL SEMIBREVIS REST;So;0;L;;;;;N;;;;;-1D1C5;MUSICAL SYMBOL MINIMA REST;So;0;L;;;;;N;;;;;-1D1C6;MUSICAL SYMBOL SEMIMINIMA REST;So;0;L;;;;;N;;;;;-1D1C7;MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA;So;0;L;;;;;N;;;;;-1D1C8;MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE IMPERFECTA;So;0;L;;;;;N;;;;;-1D1C9;MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA DIMINUTION-1;So;0;L;;;;;N;;;;;-1D1CA;MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE PERFECTA;So;0;L;;;;;N;;;;;-1D1CB;MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA;So;0;L;;;;;N;;;;;-1D1CC;MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-1;So;0;L;;;;;N;;;;;-1D1CD;MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-2;So;0;L;;;;;N;;;;;-1D1CE;MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-3;So;0;L;;;;;N;;;;;-1D1CF;MUSICAL SYMBOL CROIX;So;0;L;;;;;N;;;;;-1D1D0;MUSICAL SYMBOL GREGORIAN C CLEF;So;0;L;;;;;N;;;;;-1D1D1;MUSICAL SYMBOL GREGORIAN F CLEF;So;0;L;;;;;N;;;;;-1D1D2;MUSICAL SYMBOL SQUARE B;So;0;L;;;;;N;;;;;-1D1D3;MUSICAL SYMBOL VIRGA;So;0;L;;;;;N;;;;;-1D1D4;MUSICAL SYMBOL PODATUS;So;0;L;;;;;N;;;;;-1D1D5;MUSICAL SYMBOL CLIVIS;So;0;L;;;;;N;;;;;-1D1D6;MUSICAL SYMBOL SCANDICUS;So;0;L;;;;;N;;;;;-1D1D7;MUSICAL SYMBOL CLIMACUS;So;0;L;;;;;N;;;;;-1D1D8;MUSICAL SYMBOL TORCULUS;So;0;L;;;;;N;;;;;-1D1D9;MUSICAL SYMBOL PORRECTUS;So;0;L;;;;;N;;;;;-1D1DA;MUSICAL SYMBOL PORRECTUS FLEXUS;So;0;L;;;;;N;;;;;-1D1DB;MUSICAL SYMBOL SCANDICUS FLEXUS;So;0;L;;;;;N;;;;;-1D1DC;MUSICAL SYMBOL TORCULUS RESUPINUS;So;0;L;;;;;N;;;;;-1D1DD;MUSICAL SYMBOL PES SUBPUNCTIS;So;0;L;;;;;N;;;;;-1D200;GREEK VOCAL NOTATION SYMBOL-1;So;0;ON;;;;;N;;;;;-1D201;GREEK VOCAL NOTATION SYMBOL-2;So;0;ON;;;;;N;;;;;-1D202;GREEK VOCAL NOTATION SYMBOL-3;So;0;ON;;;;;N;;;;;-1D203;GREEK VOCAL NOTATION SYMBOL-4;So;0;ON;;;;;N;;;;;-1D204;GREEK VOCAL NOTATION SYMBOL-5;So;0;ON;;;;;N;;;;;-1D205;GREEK VOCAL NOTATION SYMBOL-6;So;0;ON;;;;;N;;;;;-1D206;GREEK VOCAL NOTATION SYMBOL-7;So;0;ON;;;;;N;;;;;-1D207;GREEK VOCAL NOTATION SYMBOL-8;So;0;ON;;;;;N;;;;;-1D208;GREEK VOCAL NOTATION SYMBOL-9;So;0;ON;;;;;N;;;;;-1D209;GREEK VOCAL NOTATION SYMBOL-10;So;0;ON;;;;;N;;;;;-1D20A;GREEK VOCAL NOTATION SYMBOL-11;So;0;ON;;;;;N;;;;;-1D20B;GREEK VOCAL NOTATION SYMBOL-12;So;0;ON;;;;;N;;;;;-1D20C;GREEK VOCAL NOTATION SYMBOL-13;So;0;ON;;;;;N;;;;;-1D20D;GREEK VOCAL NOTATION SYMBOL-14;So;0;ON;;;;;N;;;;;-1D20E;GREEK VOCAL NOTATION SYMBOL-15;So;0;ON;;;;;N;;;;;-1D20F;GREEK VOCAL NOTATION SYMBOL-16;So;0;ON;;;;;N;;;;;-1D210;GREEK VOCAL NOTATION SYMBOL-17;So;0;ON;;;;;N;;;;;-1D211;GREEK VOCAL NOTATION SYMBOL-18;So;0;ON;;;;;N;;;;;-1D212;GREEK VOCAL NOTATION SYMBOL-19;So;0;ON;;;;;N;;;;;-1D213;GREEK VOCAL NOTATION SYMBOL-20;So;0;ON;;;;;N;;;;;-1D214;GREEK VOCAL NOTATION SYMBOL-21;So;0;ON;;;;;N;;;;;-1D215;GREEK VOCAL NOTATION SYMBOL-22;So;0;ON;;;;;N;;;;;-1D216;GREEK VOCAL NOTATION SYMBOL-23;So;0;ON;;;;;N;;;;;-1D217;GREEK VOCAL NOTATION SYMBOL-24;So;0;ON;;;;;N;;;;;-1D218;GREEK VOCAL NOTATION SYMBOL-50;So;0;ON;;;;;N;;;;;-1D219;GREEK VOCAL NOTATION SYMBOL-51;So;0;ON;;;;;N;;;;;-1D21A;GREEK VOCAL NOTATION SYMBOL-52;So;0;ON;;;;;N;;;;;-1D21B;GREEK VOCAL NOTATION SYMBOL-53;So;0;ON;;;;;N;;;;;-1D21C;GREEK VOCAL NOTATION SYMBOL-54;So;0;ON;;;;;N;;;;;-1D21D;GREEK INSTRUMENTAL NOTATION SYMBOL-1;So;0;ON;;;;;N;;;;;-1D21E;GREEK INSTRUMENTAL NOTATION SYMBOL-2;So;0;ON;;;;;N;;;;;-1D21F;GREEK INSTRUMENTAL NOTATION SYMBOL-4;So;0;ON;;;;;N;;;;;-1D220;GREEK INSTRUMENTAL NOTATION SYMBOL-5;So;0;ON;;;;;N;;;;;-1D221;GREEK INSTRUMENTAL NOTATION SYMBOL-7;So;0;ON;;;;;N;;;;;-1D222;GREEK INSTRUMENTAL NOTATION SYMBOL-8;So;0;ON;;;;;N;;;;;-1D223;GREEK INSTRUMENTAL NOTATION SYMBOL-11;So;0;ON;;;;;N;;;;;-1D224;GREEK INSTRUMENTAL NOTATION SYMBOL-12;So;0;ON;;;;;N;;;;;-1D225;GREEK INSTRUMENTAL NOTATION SYMBOL-13;So;0;ON;;;;;N;;;;;-1D226;GREEK INSTRUMENTAL NOTATION SYMBOL-14;So;0;ON;;;;;N;;;;;-1D227;GREEK INSTRUMENTAL NOTATION SYMBOL-17;So;0;ON;;;;;N;;;;;-1D228;GREEK INSTRUMENTAL NOTATION SYMBOL-18;So;0;ON;;;;;N;;;;;-1D229;GREEK INSTRUMENTAL NOTATION SYMBOL-19;So;0;ON;;;;;N;;;;;-1D22A;GREEK INSTRUMENTAL NOTATION SYMBOL-23;So;0;ON;;;;;N;;;;;-1D22B;GREEK INSTRUMENTAL NOTATION SYMBOL-24;So;0;ON;;;;;N;;;;;-1D22C;GREEK INSTRUMENTAL NOTATION SYMBOL-25;So;0;ON;;;;;N;;;;;-1D22D;GREEK INSTRUMENTAL NOTATION SYMBOL-26;So;0;ON;;;;;N;;;;;-1D22E;GREEK INSTRUMENTAL NOTATION SYMBOL-27;So;0;ON;;;;;N;;;;;-1D22F;GREEK INSTRUMENTAL NOTATION SYMBOL-29;So;0;ON;;;;;N;;;;;-1D230;GREEK INSTRUMENTAL NOTATION SYMBOL-30;So;0;ON;;;;;N;;;;;-1D231;GREEK INSTRUMENTAL NOTATION SYMBOL-32;So;0;ON;;;;;N;;;;;-1D232;GREEK INSTRUMENTAL NOTATION SYMBOL-36;So;0;ON;;;;;N;;;;;-1D233;GREEK INSTRUMENTAL NOTATION SYMBOL-37;So;0;ON;;;;;N;;;;;-1D234;GREEK INSTRUMENTAL NOTATION SYMBOL-38;So;0;ON;;;;;N;;;;;-1D235;GREEK INSTRUMENTAL NOTATION SYMBOL-39;So;0;ON;;;;;N;;;;;-1D236;GREEK INSTRUMENTAL NOTATION SYMBOL-40;So;0;ON;;;;;N;;;;;-1D237;GREEK INSTRUMENTAL NOTATION SYMBOL-42;So;0;ON;;;;;N;;;;;-1D238;GREEK INSTRUMENTAL NOTATION SYMBOL-43;So;0;ON;;;;;N;;;;;-1D239;GREEK INSTRUMENTAL NOTATION SYMBOL-45;So;0;ON;;;;;N;;;;;-1D23A;GREEK INSTRUMENTAL NOTATION SYMBOL-47;So;0;ON;;;;;N;;;;;-1D23B;GREEK INSTRUMENTAL NOTATION SYMBOL-48;So;0;ON;;;;;N;;;;;-1D23C;GREEK INSTRUMENTAL NOTATION SYMBOL-49;So;0;ON;;;;;N;;;;;-1D23D;GREEK INSTRUMENTAL NOTATION SYMBOL-50;So;0;ON;;;;;N;;;;;-1D23E;GREEK INSTRUMENTAL NOTATION SYMBOL-51;So;0;ON;;;;;N;;;;;-1D23F;GREEK INSTRUMENTAL NOTATION SYMBOL-52;So;0;ON;;;;;N;;;;;-1D240;GREEK INSTRUMENTAL NOTATION SYMBOL-53;So;0;ON;;;;;N;;;;;-1D241;GREEK INSTRUMENTAL NOTATION SYMBOL-54;So;0;ON;;;;;N;;;;;-1D242;COMBINING GREEK MUSICAL TRISEME;Mn;230;NSM;;;;;N;;;;;-1D243;COMBINING GREEK MUSICAL TETRASEME;Mn;230;NSM;;;;;N;;;;;-1D244;COMBINING GREEK MUSICAL PENTASEME;Mn;230;NSM;;;;;N;;;;;-1D245;GREEK MUSICAL LEIMMA;So;0;ON;;;;;N;;;;;-1D300;MONOGRAM FOR EARTH;So;0;ON;;;;;N;;ren *;;;-1D301;DIGRAM FOR HEAVENLY EARTH;So;0;ON;;;;;N;;tian ren *;;;-1D302;DIGRAM FOR HUMAN EARTH;So;0;ON;;;;;N;;di ren *;;;-1D303;DIGRAM FOR EARTHLY HEAVEN;So;0;ON;;;;;N;;ren tian *;;;-1D304;DIGRAM FOR EARTHLY HUMAN;So;0;ON;;;;;N;;ren di *;;;-1D305;DIGRAM FOR EARTH;So;0;ON;;;;;N;;ren ren *;;;-1D306;TETRAGRAM FOR CENTRE;So;0;ON;;;;;N;;;;;-1D307;TETRAGRAM FOR FULL CIRCLE;So;0;ON;;;;;N;;;;;-1D308;TETRAGRAM FOR MIRED;So;0;ON;;;;;N;;;;;-1D309;TETRAGRAM FOR BARRIER;So;0;ON;;;;;N;;;;;-1D30A;TETRAGRAM FOR KEEPING SMALL;So;0;ON;;;;;N;;;;;-1D30B;TETRAGRAM FOR CONTRARIETY;So;0;ON;;;;;N;;;;;-1D30C;TETRAGRAM FOR ASCENT;So;0;ON;;;;;N;;;;;-1D30D;TETRAGRAM FOR OPPOSITION;So;0;ON;;;;;N;;;;;-1D30E;TETRAGRAM FOR BRANCHING OUT;So;0;ON;;;;;N;;;;;-1D30F;TETRAGRAM FOR DEFECTIVENESS OR DISTORTION;So;0;ON;;;;;N;;;;;-1D310;TETRAGRAM FOR DIVERGENCE;So;0;ON;;;;;N;;;;;-1D311;TETRAGRAM FOR YOUTHFULNESS;So;0;ON;;;;;N;;;;;-1D312;TETRAGRAM FOR INCREASE;So;0;ON;;;;;N;;;;;-1D313;TETRAGRAM FOR PENETRATION;So;0;ON;;;;;N;;;;;-1D314;TETRAGRAM FOR REACH;So;0;ON;;;;;N;;;;;-1D315;TETRAGRAM FOR CONTACT;So;0;ON;;;;;N;;;;;-1D316;TETRAGRAM FOR HOLDING BACK;So;0;ON;;;;;N;;;;;-1D317;TETRAGRAM FOR WAITING;So;0;ON;;;;;N;;;;;-1D318;TETRAGRAM FOR FOLLOWING;So;0;ON;;;;;N;;;;;-1D319;TETRAGRAM FOR ADVANCE;So;0;ON;;;;;N;;;;;-1D31A;TETRAGRAM FOR RELEASE;So;0;ON;;;;;N;;;;;-1D31B;TETRAGRAM FOR RESISTANCE;So;0;ON;;;;;N;;;;;-1D31C;TETRAGRAM FOR EASE;So;0;ON;;;;;N;;;;;-1D31D;TETRAGRAM FOR JOY;So;0;ON;;;;;N;;;;;-1D31E;TETRAGRAM FOR CONTENTION;So;0;ON;;;;;N;;;;;-1D31F;TETRAGRAM FOR ENDEAVOUR;So;0;ON;;;;;N;;;;;-1D320;TETRAGRAM FOR DUTIES;So;0;ON;;;;;N;;;;;-1D321;TETRAGRAM FOR CHANGE;So;0;ON;;;;;N;;;;;-1D322;TETRAGRAM FOR DECISIVENESS;So;0;ON;;;;;N;;;;;-1D323;TETRAGRAM FOR BOLD RESOLUTION;So;0;ON;;;;;N;;;;;-1D324;TETRAGRAM FOR PACKING;So;0;ON;;;;;N;;;;;-1D325;TETRAGRAM FOR LEGION;So;0;ON;;;;;N;;;;;-1D326;TETRAGRAM FOR CLOSENESS;So;0;ON;;;;;N;;;;;-1D327;TETRAGRAM FOR KINSHIP;So;0;ON;;;;;N;;;;;-1D328;TETRAGRAM FOR GATHERING;So;0;ON;;;;;N;;;;;-1D329;TETRAGRAM FOR STRENGTH;So;0;ON;;;;;N;;;;;-1D32A;TETRAGRAM FOR PURITY;So;0;ON;;;;;N;;;;;-1D32B;TETRAGRAM FOR FULLNESS;So;0;ON;;;;;N;;;;;-1D32C;TETRAGRAM FOR RESIDENCE;So;0;ON;;;;;N;;;;;-1D32D;TETRAGRAM FOR LAW OR MODEL;So;0;ON;;;;;N;;;;;-1D32E;TETRAGRAM FOR RESPONSE;So;0;ON;;;;;N;;;;;-1D32F;TETRAGRAM FOR GOING TO MEET;So;0;ON;;;;;N;;;;;-1D330;TETRAGRAM FOR ENCOUNTERS;So;0;ON;;;;;N;;;;;-1D331;TETRAGRAM FOR STOVE;So;0;ON;;;;;N;;;;;-1D332;TETRAGRAM FOR GREATNESS;So;0;ON;;;;;N;;;;;-1D333;TETRAGRAM FOR ENLARGEMENT;So;0;ON;;;;;N;;;;;-1D334;TETRAGRAM FOR PATTERN;So;0;ON;;;;;N;;;;;-1D335;TETRAGRAM FOR RITUAL;So;0;ON;;;;;N;;;;;-1D336;TETRAGRAM FOR FLIGHT;So;0;ON;;;;;N;;;;;-1D337;TETRAGRAM FOR VASTNESS OR WASTING;So;0;ON;;;;;N;;;;;-1D338;TETRAGRAM FOR CONSTANCY;So;0;ON;;;;;N;;;;;-1D339;TETRAGRAM FOR MEASURE;So;0;ON;;;;;N;;;;;-1D33A;TETRAGRAM FOR ETERNITY;So;0;ON;;;;;N;;;;;-1D33B;TETRAGRAM FOR UNITY;So;0;ON;;;;;N;;;;;-1D33C;TETRAGRAM FOR DIMINISHMENT;So;0;ON;;;;;N;;;;;-1D33D;TETRAGRAM FOR CLOSED MOUTH;So;0;ON;;;;;N;;;;;-1D33E;TETRAGRAM FOR GUARDEDNESS;So;0;ON;;;;;N;;;;;-1D33F;TETRAGRAM FOR GATHERING IN;So;0;ON;;;;;N;;;;;-1D340;TETRAGRAM FOR MASSING;So;0;ON;;;;;N;;;;;-1D341;TETRAGRAM FOR ACCUMULATION;So;0;ON;;;;;N;;;;;-1D342;TETRAGRAM FOR EMBELLISHMENT;So;0;ON;;;;;N;;;;;-1D343;TETRAGRAM FOR DOUBT;So;0;ON;;;;;N;;;;;-1D344;TETRAGRAM FOR WATCH;So;0;ON;;;;;N;;;;;-1D345;TETRAGRAM FOR SINKING;So;0;ON;;;;;N;;;;;-1D346;TETRAGRAM FOR INNER;So;0;ON;;;;;N;;;;;-1D347;TETRAGRAM FOR DEPARTURE;So;0;ON;;;;;N;;;;;-1D348;TETRAGRAM FOR DARKENING;So;0;ON;;;;;N;;;;;-1D349;TETRAGRAM FOR DIMMING;So;0;ON;;;;;N;;;;;-1D34A;TETRAGRAM FOR EXHAUSTION;So;0;ON;;;;;N;;;;;-1D34B;TETRAGRAM FOR SEVERANCE;So;0;ON;;;;;N;;;;;-1D34C;TETRAGRAM FOR STOPPAGE;So;0;ON;;;;;N;;;;;-1D34D;TETRAGRAM FOR HARDNESS;So;0;ON;;;;;N;;;;;-1D34E;TETRAGRAM FOR COMPLETION;So;0;ON;;;;;N;;;;;-1D34F;TETRAGRAM FOR CLOSURE;So;0;ON;;;;;N;;;;;-1D350;TETRAGRAM FOR FAILURE;So;0;ON;;;;;N;;;;;-1D351;TETRAGRAM FOR AGGRAVATION;So;0;ON;;;;;N;;;;;-1D352;TETRAGRAM FOR COMPLIANCE;So;0;ON;;;;;N;;;;;-1D353;TETRAGRAM FOR ON THE VERGE;So;0;ON;;;;;N;;;;;-1D354;TETRAGRAM FOR DIFFICULTIES;So;0;ON;;;;;N;;;;;-1D355;TETRAGRAM FOR LABOURING;So;0;ON;;;;;N;;;;;-1D356;TETRAGRAM FOR FOSTERING;So;0;ON;;;;;N;;;;;-1D360;COUNTING ROD UNIT DIGIT ONE;No;0;L;;;;1;N;;;;;-1D361;COUNTING ROD UNIT DIGIT TWO;No;0;L;;;;2;N;;;;;-1D362;COUNTING ROD UNIT DIGIT THREE;No;0;L;;;;3;N;;;;;-1D363;COUNTING ROD UNIT DIGIT FOUR;No;0;L;;;;4;N;;;;;-1D364;COUNTING ROD UNIT DIGIT FIVE;No;0;L;;;;5;N;;;;;-1D365;COUNTING ROD UNIT DIGIT SIX;No;0;L;;;;6;N;;;;;-1D366;COUNTING ROD UNIT DIGIT SEVEN;No;0;L;;;;7;N;;;;;-1D367;COUNTING ROD UNIT DIGIT EIGHT;No;0;L;;;;8;N;;;;;-1D368;COUNTING ROD UNIT DIGIT NINE;No;0;L;;;;9;N;;;;;-1D369;COUNTING ROD TENS DIGIT ONE;No;0;L;;;;10;N;;;;;-1D36A;COUNTING ROD TENS DIGIT TWO;No;0;L;;;;20;N;;;;;-1D36B;COUNTING ROD TENS DIGIT THREE;No;0;L;;;;30;N;;;;;-1D36C;COUNTING ROD TENS DIGIT FOUR;No;0;L;;;;40;N;;;;;-1D36D;COUNTING ROD TENS DIGIT FIVE;No;0;L;;;;50;N;;;;;-1D36E;COUNTING ROD TENS DIGIT SIX;No;0;L;;;;60;N;;;;;-1D36F;COUNTING ROD TENS DIGIT SEVEN;No;0;L;;;;70;N;;;;;-1D370;COUNTING ROD TENS DIGIT EIGHT;No;0;L;;;;80;N;;;;;-1D371;COUNTING ROD TENS DIGIT NINE;No;0;L;;;;90;N;;;;;-1D400;MATHEMATICAL BOLD CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;-1D401;MATHEMATICAL BOLD CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;-1D402;MATHEMATICAL BOLD CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;-1D403;MATHEMATICAL BOLD CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;-1D404;MATHEMATICAL BOLD CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;-1D405;MATHEMATICAL BOLD CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;-1D406;MATHEMATICAL BOLD CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;-1D407;MATHEMATICAL BOLD CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;-1D408;MATHEMATICAL BOLD CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;-1D409;MATHEMATICAL BOLD CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;-1D40A;MATHEMATICAL BOLD CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;-1D40B;MATHEMATICAL BOLD CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;-1D40C;MATHEMATICAL BOLD CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;-1D40D;MATHEMATICAL BOLD CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;-1D40E;MATHEMATICAL BOLD CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;-1D40F;MATHEMATICAL BOLD CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;-1D410;MATHEMATICAL BOLD CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;-1D411;MATHEMATICAL BOLD CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;-1D412;MATHEMATICAL BOLD CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;-1D413;MATHEMATICAL BOLD CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;-1D414;MATHEMATICAL BOLD CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;-1D415;MATHEMATICAL BOLD CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;-1D416;MATHEMATICAL BOLD CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;-1D417;MATHEMATICAL BOLD CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;-1D418;MATHEMATICAL BOLD CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;-1D419;MATHEMATICAL BOLD CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;-1D41A;MATHEMATICAL BOLD SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;-1D41B;MATHEMATICAL BOLD SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;-1D41C;MATHEMATICAL BOLD SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;-1D41D;MATHEMATICAL BOLD SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;-1D41E;MATHEMATICAL BOLD SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;-1D41F;MATHEMATICAL BOLD SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;-1D420;MATHEMATICAL BOLD SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;-1D421;MATHEMATICAL BOLD SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;-1D422;MATHEMATICAL BOLD SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;-1D423;MATHEMATICAL BOLD SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;-1D424;MATHEMATICAL BOLD SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;-1D425;MATHEMATICAL BOLD SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;-1D426;MATHEMATICAL BOLD SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;-1D427;MATHEMATICAL BOLD SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;-1D428;MATHEMATICAL BOLD SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;-1D429;MATHEMATICAL BOLD SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;-1D42A;MATHEMATICAL BOLD SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;-1D42B;MATHEMATICAL BOLD SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;-1D42C;MATHEMATICAL BOLD SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;-1D42D;MATHEMATICAL BOLD SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;-1D42E;MATHEMATICAL BOLD SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;-1D42F;MATHEMATICAL BOLD SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;-1D430;MATHEMATICAL BOLD SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;-1D431;MATHEMATICAL BOLD SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;-1D432;MATHEMATICAL BOLD SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;-1D433;MATHEMATICAL BOLD SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;-1D434;MATHEMATICAL ITALIC CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;-1D435;MATHEMATICAL ITALIC CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;-1D436;MATHEMATICAL ITALIC CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;-1D437;MATHEMATICAL ITALIC CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;-1D438;MATHEMATICAL ITALIC CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;-1D439;MATHEMATICAL ITALIC CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;-1D43A;MATHEMATICAL ITALIC CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;-1D43B;MATHEMATICAL ITALIC CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;-1D43C;MATHEMATICAL ITALIC CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;-1D43D;MATHEMATICAL ITALIC CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;-1D43E;MATHEMATICAL ITALIC CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;-1D43F;MATHEMATICAL ITALIC CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;-1D440;MATHEMATICAL ITALIC CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;-1D441;MATHEMATICAL ITALIC CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;-1D442;MATHEMATICAL ITALIC CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;-1D443;MATHEMATICAL ITALIC CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;-1D444;MATHEMATICAL ITALIC CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;-1D445;MATHEMATICAL ITALIC CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;-1D446;MATHEMATICAL ITALIC CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;-1D447;MATHEMATICAL ITALIC CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;-1D448;MATHEMATICAL ITALIC CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;-1D449;MATHEMATICAL ITALIC CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;-1D44A;MATHEMATICAL ITALIC CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;-1D44B;MATHEMATICAL ITALIC CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;-1D44C;MATHEMATICAL ITALIC CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;-1D44D;MATHEMATICAL ITALIC CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;-1D44E;MATHEMATICAL ITALIC SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;-1D44F;MATHEMATICAL ITALIC SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;-1D450;MATHEMATICAL ITALIC SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;-1D451;MATHEMATICAL ITALIC SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;-1D452;MATHEMATICAL ITALIC SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;-1D453;MATHEMATICAL ITALIC SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;-1D454;MATHEMATICAL ITALIC SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;-1D456;MATHEMATICAL ITALIC SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;-1D457;MATHEMATICAL ITALIC SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;-1D458;MATHEMATICAL ITALIC SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;-1D459;MATHEMATICAL ITALIC SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;-1D45A;MATHEMATICAL ITALIC SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;-1D45B;MATHEMATICAL ITALIC SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;-1D45C;MATHEMATICAL ITALIC SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;-1D45D;MATHEMATICAL ITALIC SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;-1D45E;MATHEMATICAL ITALIC SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;-1D45F;MATHEMATICAL ITALIC SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;-1D460;MATHEMATICAL ITALIC SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;-1D461;MATHEMATICAL ITALIC SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;-1D462;MATHEMATICAL ITALIC SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;-1D463;MATHEMATICAL ITALIC SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;-1D464;MATHEMATICAL ITALIC SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;-1D465;MATHEMATICAL ITALIC SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;-1D466;MATHEMATICAL ITALIC SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;-1D467;MATHEMATICAL ITALIC SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;-1D468;MATHEMATICAL BOLD ITALIC CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;-1D469;MATHEMATICAL BOLD ITALIC CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;-1D46A;MATHEMATICAL BOLD ITALIC CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;-1D46B;MATHEMATICAL BOLD ITALIC CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;-1D46C;MATHEMATICAL BOLD ITALIC CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;-1D46D;MATHEMATICAL BOLD ITALIC CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;-1D46E;MATHEMATICAL BOLD ITALIC CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;-1D46F;MATHEMATICAL BOLD ITALIC CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;-1D470;MATHEMATICAL BOLD ITALIC CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;-1D471;MATHEMATICAL BOLD ITALIC CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;-1D472;MATHEMATICAL BOLD ITALIC CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;-1D473;MATHEMATICAL BOLD ITALIC CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;-1D474;MATHEMATICAL BOLD ITALIC CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;-1D475;MATHEMATICAL BOLD ITALIC CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;-1D476;MATHEMATICAL BOLD ITALIC CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;-1D477;MATHEMATICAL BOLD ITALIC CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;-1D478;MATHEMATICAL BOLD ITALIC CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;-1D479;MATHEMATICAL BOLD ITALIC CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;-1D47A;MATHEMATICAL BOLD ITALIC CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;-1D47B;MATHEMATICAL BOLD ITALIC CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;-1D47C;MATHEMATICAL BOLD ITALIC CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;-1D47D;MATHEMATICAL BOLD ITALIC CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;-1D47E;MATHEMATICAL BOLD ITALIC CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;-1D47F;MATHEMATICAL BOLD ITALIC CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;-1D480;MATHEMATICAL BOLD ITALIC CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;-1D481;MATHEMATICAL BOLD ITALIC CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;-1D482;MATHEMATICAL BOLD ITALIC SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;-1D483;MATHEMATICAL BOLD ITALIC SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;-1D484;MATHEMATICAL BOLD ITALIC SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;-1D485;MATHEMATICAL BOLD ITALIC SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;-1D486;MATHEMATICAL BOLD ITALIC SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;-1D487;MATHEMATICAL BOLD ITALIC SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;-1D488;MATHEMATICAL BOLD ITALIC SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;-1D489;MATHEMATICAL BOLD ITALIC SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;-1D48A;MATHEMATICAL BOLD ITALIC SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;-1D48B;MATHEMATICAL BOLD ITALIC SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;-1D48C;MATHEMATICAL BOLD ITALIC SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;-1D48D;MATHEMATICAL BOLD ITALIC SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;-1D48E;MATHEMATICAL BOLD ITALIC SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;-1D48F;MATHEMATICAL BOLD ITALIC SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;-1D490;MATHEMATICAL BOLD ITALIC SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;-1D491;MATHEMATICAL BOLD ITALIC SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;-1D492;MATHEMATICAL BOLD ITALIC SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;-1D493;MATHEMATICAL BOLD ITALIC SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;-1D494;MATHEMATICAL BOLD ITALIC SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;-1D495;MATHEMATICAL BOLD ITALIC SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;-1D496;MATHEMATICAL BOLD ITALIC SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;-1D497;MATHEMATICAL BOLD ITALIC SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;-1D498;MATHEMATICAL BOLD ITALIC SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;-1D499;MATHEMATICAL BOLD ITALIC SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;-1D49A;MATHEMATICAL BOLD ITALIC SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;-1D49B;MATHEMATICAL BOLD ITALIC SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;-1D49C;MATHEMATICAL SCRIPT CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;-1D49E;MATHEMATICAL SCRIPT CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;-1D49F;MATHEMATICAL SCRIPT CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;-1D4A2;MATHEMATICAL SCRIPT CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;-1D4A5;MATHEMATICAL SCRIPT CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;-1D4A6;MATHEMATICAL SCRIPT CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;-1D4A9;MATHEMATICAL SCRIPT CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;-1D4AA;MATHEMATICAL SCRIPT CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;-1D4AB;MATHEMATICAL SCRIPT CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;-1D4AC;MATHEMATICAL SCRIPT CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;-1D4AE;MATHEMATICAL SCRIPT CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;-1D4AF;MATHEMATICAL SCRIPT CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;-1D4B0;MATHEMATICAL SCRIPT CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;-1D4B1;MATHEMATICAL SCRIPT CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;-1D4B2;MATHEMATICAL SCRIPT CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;-1D4B3;MATHEMATICAL SCRIPT CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;-1D4B4;MATHEMATICAL SCRIPT CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;-1D4B5;MATHEMATICAL SCRIPT CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;-1D4B6;MATHEMATICAL SCRIPT SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;-1D4B7;MATHEMATICAL SCRIPT SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;-1D4B8;MATHEMATICAL SCRIPT SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;-1D4B9;MATHEMATICAL SCRIPT SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;-1D4BB;MATHEMATICAL SCRIPT SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;-1D4BD;MATHEMATICAL SCRIPT SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;-1D4BE;MATHEMATICAL SCRIPT SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;-1D4BF;MATHEMATICAL SCRIPT SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;-1D4C0;MATHEMATICAL SCRIPT SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;-1D4C1;MATHEMATICAL SCRIPT SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;-1D4C2;MATHEMATICAL SCRIPT SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;-1D4C3;MATHEMATICAL SCRIPT SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;-1D4C5;MATHEMATICAL SCRIPT SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;-1D4C6;MATHEMATICAL SCRIPT SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;-1D4C7;MATHEMATICAL SCRIPT SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;-1D4C8;MATHEMATICAL SCRIPT SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;-1D4C9;MATHEMATICAL SCRIPT SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;-1D4CA;MATHEMATICAL SCRIPT SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;-1D4CB;MATHEMATICAL SCRIPT SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;-1D4CC;MATHEMATICAL SCRIPT SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;-1D4CD;MATHEMATICAL SCRIPT SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;-1D4CE;MATHEMATICAL SCRIPT SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;-1D4CF;MATHEMATICAL SCRIPT SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;-1D4D0;MATHEMATICAL BOLD SCRIPT CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;-1D4D1;MATHEMATICAL BOLD SCRIPT CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;-1D4D2;MATHEMATICAL BOLD SCRIPT CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;-1D4D3;MATHEMATICAL BOLD SCRIPT CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;-1D4D4;MATHEMATICAL BOLD SCRIPT CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;-1D4D5;MATHEMATICAL BOLD SCRIPT CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;-1D4D6;MATHEMATICAL BOLD SCRIPT CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;-1D4D7;MATHEMATICAL BOLD SCRIPT CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;-1D4D8;MATHEMATICAL BOLD SCRIPT CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;-1D4D9;MATHEMATICAL BOLD SCRIPT CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;-1D4DA;MATHEMATICAL BOLD SCRIPT CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;-1D4DB;MATHEMATICAL BOLD SCRIPT CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;-1D4DC;MATHEMATICAL BOLD SCRIPT CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;-1D4DD;MATHEMATICAL BOLD SCRIPT CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;-1D4DE;MATHEMATICAL BOLD SCRIPT CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;-1D4DF;MATHEMATICAL BOLD SCRIPT CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;-1D4E0;MATHEMATICAL BOLD SCRIPT CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;-1D4E1;MATHEMATICAL BOLD SCRIPT CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;-1D4E2;MATHEMATICAL BOLD SCRIPT CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;-1D4E3;MATHEMATICAL BOLD SCRIPT CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;-1D4E4;MATHEMATICAL BOLD SCRIPT CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;-1D4E5;MATHEMATICAL BOLD SCRIPT CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;-1D4E6;MATHEMATICAL BOLD SCRIPT CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;-1D4E7;MATHEMATICAL BOLD SCRIPT CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;-1D4E8;MATHEMATICAL BOLD SCRIPT CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;-1D4E9;MATHEMATICAL BOLD SCRIPT CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;-1D4EA;MATHEMATICAL BOLD SCRIPT SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;-1D4EB;MATHEMATICAL BOLD SCRIPT SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;-1D4EC;MATHEMATICAL BOLD SCRIPT SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;-1D4ED;MATHEMATICAL BOLD SCRIPT SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;-1D4EE;MATHEMATICAL BOLD SCRIPT SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;-1D4EF;MATHEMATICAL BOLD SCRIPT SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;-1D4F0;MATHEMATICAL BOLD SCRIPT SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;-1D4F1;MATHEMATICAL BOLD SCRIPT SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;-1D4F2;MATHEMATICAL BOLD SCRIPT SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;-1D4F3;MATHEMATICAL BOLD SCRIPT SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;-1D4F4;MATHEMATICAL BOLD SCRIPT SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;-1D4F5;MATHEMATICAL BOLD SCRIPT SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;-1D4F6;MATHEMATICAL BOLD SCRIPT SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;-1D4F7;MATHEMATICAL BOLD SCRIPT SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;-1D4F8;MATHEMATICAL BOLD SCRIPT SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;-1D4F9;MATHEMATICAL BOLD SCRIPT SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;-1D4FA;MATHEMATICAL BOLD SCRIPT SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;-1D4FB;MATHEMATICAL BOLD SCRIPT SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;-1D4FC;MATHEMATICAL BOLD SCRIPT SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;-1D4FD;MATHEMATICAL BOLD SCRIPT SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;-1D4FE;MATHEMATICAL BOLD SCRIPT SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;-1D4FF;MATHEMATICAL BOLD SCRIPT SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;-1D500;MATHEMATICAL BOLD SCRIPT SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;-1D501;MATHEMATICAL BOLD SCRIPT SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;-1D502;MATHEMATICAL BOLD SCRIPT SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;-1D503;MATHEMATICAL BOLD SCRIPT SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;-1D504;MATHEMATICAL FRAKTUR CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;-1D505;MATHEMATICAL FRAKTUR CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;-1D507;MATHEMATICAL FRAKTUR CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;-1D508;MATHEMATICAL FRAKTUR CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;-1D509;MATHEMATICAL FRAKTUR CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;-1D50A;MATHEMATICAL FRAKTUR CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;-1D50D;MATHEMATICAL FRAKTUR CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;-1D50E;MATHEMATICAL FRAKTUR CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;-1D50F;MATHEMATICAL FRAKTUR CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;-1D510;MATHEMATICAL FRAKTUR CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;-1D511;MATHEMATICAL FRAKTUR CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;-1D512;MATHEMATICAL FRAKTUR CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;-1D513;MATHEMATICAL FRAKTUR CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;-1D514;MATHEMATICAL FRAKTUR CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;-1D516;MATHEMATICAL FRAKTUR CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;-1D517;MATHEMATICAL FRAKTUR CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;-1D518;MATHEMATICAL FRAKTUR CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;-1D519;MATHEMATICAL FRAKTUR CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;-1D51A;MATHEMATICAL FRAKTUR CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;-1D51B;MATHEMATICAL FRAKTUR CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;-1D51C;MATHEMATICAL FRAKTUR CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;-1D51E;MATHEMATICAL FRAKTUR SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;-1D51F;MATHEMATICAL FRAKTUR SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;-1D520;MATHEMATICAL FRAKTUR SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;-1D521;MATHEMATICAL FRAKTUR SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;-1D522;MATHEMATICAL FRAKTUR SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;-1D523;MATHEMATICAL FRAKTUR SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;-1D524;MATHEMATICAL FRAKTUR SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;-1D525;MATHEMATICAL FRAKTUR SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;-1D526;MATHEMATICAL FRAKTUR SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;-1D527;MATHEMATICAL FRAKTUR SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;-1D528;MATHEMATICAL FRAKTUR SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;-1D529;MATHEMATICAL FRAKTUR SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;-1D52A;MATHEMATICAL FRAKTUR SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;-1D52B;MATHEMATICAL FRAKTUR SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;-1D52C;MATHEMATICAL FRAKTUR SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;-1D52D;MATHEMATICAL FRAKTUR SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;-1D52E;MATHEMATICAL FRAKTUR SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;-1D52F;MATHEMATICAL FRAKTUR SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;-1D530;MATHEMATICAL FRAKTUR SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;-1D531;MATHEMATICAL FRAKTUR SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;-1D532;MATHEMATICAL FRAKTUR SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;-1D533;MATHEMATICAL FRAKTUR SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;-1D534;MATHEMATICAL FRAKTUR SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;-1D535;MATHEMATICAL FRAKTUR SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;-1D536;MATHEMATICAL FRAKTUR SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;-1D537;MATHEMATICAL FRAKTUR SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;-1D538;MATHEMATICAL DOUBLE-STRUCK CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;-1D539;MATHEMATICAL DOUBLE-STRUCK CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;-1D53B;MATHEMATICAL DOUBLE-STRUCK CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;-1D53C;MATHEMATICAL DOUBLE-STRUCK CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;-1D53D;MATHEMATICAL DOUBLE-STRUCK CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;-1D53E;MATHEMATICAL DOUBLE-STRUCK CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;-1D540;MATHEMATICAL DOUBLE-STRUCK CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;-1D541;MATHEMATICAL DOUBLE-STRUCK CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;-1D542;MATHEMATICAL DOUBLE-STRUCK CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;-1D543;MATHEMATICAL DOUBLE-STRUCK CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;-1D544;MATHEMATICAL DOUBLE-STRUCK CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;-1D546;MATHEMATICAL DOUBLE-STRUCK CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;-1D54A;MATHEMATICAL DOUBLE-STRUCK CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;-1D54B;MATHEMATICAL DOUBLE-STRUCK CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;-1D54C;MATHEMATICAL DOUBLE-STRUCK CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;-1D54D;MATHEMATICAL DOUBLE-STRUCK CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;-1D54E;MATHEMATICAL DOUBLE-STRUCK CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;-1D54F;MATHEMATICAL DOUBLE-STRUCK CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;-1D550;MATHEMATICAL DOUBLE-STRUCK CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;-1D552;MATHEMATICAL DOUBLE-STRUCK SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;-1D553;MATHEMATICAL DOUBLE-STRUCK SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;-1D554;MATHEMATICAL DOUBLE-STRUCK SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;-1D555;MATHEMATICAL DOUBLE-STRUCK SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;-1D556;MATHEMATICAL DOUBLE-STRUCK SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;-1D557;MATHEMATICAL DOUBLE-STRUCK SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;-1D558;MATHEMATICAL DOUBLE-STRUCK SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;-1D559;MATHEMATICAL DOUBLE-STRUCK SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;-1D55A;MATHEMATICAL DOUBLE-STRUCK SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;-1D55B;MATHEMATICAL DOUBLE-STRUCK SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;-1D55C;MATHEMATICAL DOUBLE-STRUCK SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;-1D55D;MATHEMATICAL DOUBLE-STRUCK SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;-1D55E;MATHEMATICAL DOUBLE-STRUCK SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;-1D55F;MATHEMATICAL DOUBLE-STRUCK SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;-1D560;MATHEMATICAL DOUBLE-STRUCK SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;-1D561;MATHEMATICAL DOUBLE-STRUCK SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;-1D562;MATHEMATICAL DOUBLE-STRUCK SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;-1D563;MATHEMATICAL DOUBLE-STRUCK SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;-1D564;MATHEMATICAL DOUBLE-STRUCK SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;-1D565;MATHEMATICAL DOUBLE-STRUCK SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;-1D566;MATHEMATICAL DOUBLE-STRUCK SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;-1D567;MATHEMATICAL DOUBLE-STRUCK SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;-1D568;MATHEMATICAL DOUBLE-STRUCK SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;-1D569;MATHEMATICAL DOUBLE-STRUCK SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;-1D56A;MATHEMATICAL DOUBLE-STRUCK SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;-1D56B;MATHEMATICAL DOUBLE-STRUCK SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;-1D56C;MATHEMATICAL BOLD FRAKTUR CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;-1D56D;MATHEMATICAL BOLD FRAKTUR CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;-1D56E;MATHEMATICAL BOLD FRAKTUR CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;-1D56F;MATHEMATICAL BOLD FRAKTUR CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;-1D570;MATHEMATICAL BOLD FRAKTUR CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;-1D571;MATHEMATICAL BOLD FRAKTUR CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;-1D572;MATHEMATICAL BOLD FRAKTUR CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;-1D573;MATHEMATICAL BOLD FRAKTUR CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;-1D574;MATHEMATICAL BOLD FRAKTUR CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;-1D575;MATHEMATICAL BOLD FRAKTUR CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;-1D576;MATHEMATICAL BOLD FRAKTUR CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;-1D577;MATHEMATICAL BOLD FRAKTUR CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;-1D578;MATHEMATICAL BOLD FRAKTUR CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;-1D579;MATHEMATICAL BOLD FRAKTUR CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;-1D57A;MATHEMATICAL BOLD FRAKTUR CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;-1D57B;MATHEMATICAL BOLD FRAKTUR CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;-1D57C;MATHEMATICAL BOLD FRAKTUR CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;-1D57D;MATHEMATICAL BOLD FRAKTUR CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;-1D57E;MATHEMATICAL BOLD FRAKTUR CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;-1D57F;MATHEMATICAL BOLD FRAKTUR CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;-1D580;MATHEMATICAL BOLD FRAKTUR CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;-1D581;MATHEMATICAL BOLD FRAKTUR CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;-1D582;MATHEMATICAL BOLD FRAKTUR CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;-1D583;MATHEMATICAL BOLD FRAKTUR CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;-1D584;MATHEMATICAL BOLD FRAKTUR CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;-1D585;MATHEMATICAL BOLD FRAKTUR CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;-1D586;MATHEMATICAL BOLD FRAKTUR SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;-1D587;MATHEMATICAL BOLD FRAKTUR SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;-1D588;MATHEMATICAL BOLD FRAKTUR SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;-1D589;MATHEMATICAL BOLD FRAKTUR SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;-1D58A;MATHEMATICAL BOLD FRAKTUR SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;-1D58B;MATHEMATICAL BOLD FRAKTUR SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;-1D58C;MATHEMATICAL BOLD FRAKTUR SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;-1D58D;MATHEMATICAL BOLD FRAKTUR SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;-1D58E;MATHEMATICAL BOLD FRAKTUR SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;-1D58F;MATHEMATICAL BOLD FRAKTUR SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;-1D590;MATHEMATICAL BOLD FRAKTUR SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;-1D591;MATHEMATICAL BOLD FRAKTUR SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;-1D592;MATHEMATICAL BOLD FRAKTUR SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;-1D593;MATHEMATICAL BOLD FRAKTUR SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;-1D594;MATHEMATICAL BOLD FRAKTUR SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;-1D595;MATHEMATICAL BOLD FRAKTUR SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;-1D596;MATHEMATICAL BOLD FRAKTUR SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;-1D597;MATHEMATICAL BOLD FRAKTUR SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;-1D598;MATHEMATICAL BOLD FRAKTUR SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;-1D599;MATHEMATICAL BOLD FRAKTUR SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;-1D59A;MATHEMATICAL BOLD FRAKTUR SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;-1D59B;MATHEMATICAL BOLD FRAKTUR SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;-1D59C;MATHEMATICAL BOLD FRAKTUR SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;-1D59D;MATHEMATICAL BOLD FRAKTUR SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;-1D59E;MATHEMATICAL BOLD FRAKTUR SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;-1D59F;MATHEMATICAL BOLD FRAKTUR SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;-1D5A0;MATHEMATICAL SANS-SERIF CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;-1D5A1;MATHEMATICAL SANS-SERIF CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;-1D5A2;MATHEMATICAL SANS-SERIF CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;-1D5A3;MATHEMATICAL SANS-SERIF CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;-1D5A4;MATHEMATICAL SANS-SERIF CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;-1D5A5;MATHEMATICAL SANS-SERIF CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;-1D5A6;MATHEMATICAL SANS-SERIF CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;-1D5A7;MATHEMATICAL SANS-SERIF CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;-1D5A8;MATHEMATICAL SANS-SERIF CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;-1D5A9;MATHEMATICAL SANS-SERIF CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;-1D5AA;MATHEMATICAL SANS-SERIF CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;-1D5AB;MATHEMATICAL SANS-SERIF CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;-1D5AC;MATHEMATICAL SANS-SERIF CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;-1D5AD;MATHEMATICAL SANS-SERIF CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;-1D5AE;MATHEMATICAL SANS-SERIF CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;-1D5AF;MATHEMATICAL SANS-SERIF CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;-1D5B0;MATHEMATICAL SANS-SERIF CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;-1D5B1;MATHEMATICAL SANS-SERIF CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;-1D5B2;MATHEMATICAL SANS-SERIF CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;-1D5B3;MATHEMATICAL SANS-SERIF CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;-1D5B4;MATHEMATICAL SANS-SERIF CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;-1D5B5;MATHEMATICAL SANS-SERIF CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;-1D5B6;MATHEMATICAL SANS-SERIF CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;-1D5B7;MATHEMATICAL SANS-SERIF CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;-1D5B8;MATHEMATICAL SANS-SERIF CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;-1D5B9;MATHEMATICAL SANS-SERIF CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;-1D5BA;MATHEMATICAL SANS-SERIF SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;-1D5BB;MATHEMATICAL SANS-SERIF SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;-1D5BC;MATHEMATICAL SANS-SERIF SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;-1D5BD;MATHEMATICAL SANS-SERIF SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;-1D5BE;MATHEMATICAL SANS-SERIF SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;-1D5BF;MATHEMATICAL SANS-SERIF SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;-1D5C0;MATHEMATICAL SANS-SERIF SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;-1D5C1;MATHEMATICAL SANS-SERIF SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;-1D5C2;MATHEMATICAL SANS-SERIF SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;-1D5C3;MATHEMATICAL SANS-SERIF SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;-1D5C4;MATHEMATICAL SANS-SERIF SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;-1D5C5;MATHEMATICAL SANS-SERIF SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;-1D5C6;MATHEMATICAL SANS-SERIF SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;-1D5C7;MATHEMATICAL SANS-SERIF SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;-1D5C8;MATHEMATICAL SANS-SERIF SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;-1D5C9;MATHEMATICAL SANS-SERIF SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;-1D5CA;MATHEMATICAL SANS-SERIF SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;-1D5CB;MATHEMATICAL SANS-SERIF SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;-1D5CC;MATHEMATICAL SANS-SERIF SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;-1D5CD;MATHEMATICAL SANS-SERIF SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;-1D5CE;MATHEMATICAL SANS-SERIF SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;-1D5CF;MATHEMATICAL SANS-SERIF SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;-1D5D0;MATHEMATICAL SANS-SERIF SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;-1D5D1;MATHEMATICAL SANS-SERIF SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;-1D5D2;MATHEMATICAL SANS-SERIF SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;-1D5D3;MATHEMATICAL SANS-SERIF SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;-1D5D4;MATHEMATICAL SANS-SERIF BOLD CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;-1D5D5;MATHEMATICAL SANS-SERIF BOLD CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;-1D5D6;MATHEMATICAL SANS-SERIF BOLD CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;-1D5D7;MATHEMATICAL SANS-SERIF BOLD CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;-1D5D8;MATHEMATICAL SANS-SERIF BOLD CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;-1D5D9;MATHEMATICAL SANS-SERIF BOLD CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;-1D5DA;MATHEMATICAL SANS-SERIF BOLD CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;-1D5DB;MATHEMATICAL SANS-SERIF BOLD CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;-1D5DC;MATHEMATICAL SANS-SERIF BOLD CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;-1D5DD;MATHEMATICAL SANS-SERIF BOLD CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;-1D5DE;MATHEMATICAL SANS-SERIF BOLD CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;-1D5DF;MATHEMATICAL SANS-SERIF BOLD CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;-1D5E0;MATHEMATICAL SANS-SERIF BOLD CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;-1D5E1;MATHEMATICAL SANS-SERIF BOLD CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;-1D5E2;MATHEMATICAL SANS-SERIF BOLD CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;-1D5E3;MATHEMATICAL SANS-SERIF BOLD CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;-1D5E4;MATHEMATICAL SANS-SERIF BOLD CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;-1D5E5;MATHEMATICAL SANS-SERIF BOLD CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;-1D5E6;MATHEMATICAL SANS-SERIF BOLD CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;-1D5E7;MATHEMATICAL SANS-SERIF BOLD CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;-1D5E8;MATHEMATICAL SANS-SERIF BOLD CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;-1D5E9;MATHEMATICAL SANS-SERIF BOLD CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;-1D5EA;MATHEMATICAL SANS-SERIF BOLD CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;-1D5EB;MATHEMATICAL SANS-SERIF BOLD CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;-1D5EC;MATHEMATICAL SANS-SERIF BOLD CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;-1D5ED;MATHEMATICAL SANS-SERIF BOLD CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;-1D5EE;MATHEMATICAL SANS-SERIF BOLD SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;-1D5EF;MATHEMATICAL SANS-SERIF BOLD SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;-1D5F0;MATHEMATICAL SANS-SERIF BOLD SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;-1D5F1;MATHEMATICAL SANS-SERIF BOLD SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;-1D5F2;MATHEMATICAL SANS-SERIF BOLD SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;-1D5F3;MATHEMATICAL SANS-SERIF BOLD SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;-1D5F4;MATHEMATICAL SANS-SERIF BOLD SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;-1D5F5;MATHEMATICAL SANS-SERIF BOLD SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;-1D5F6;MATHEMATICAL SANS-SERIF BOLD SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;-1D5F7;MATHEMATICAL SANS-SERIF BOLD SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;-1D5F8;MATHEMATICAL SANS-SERIF BOLD SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;-1D5F9;MATHEMATICAL SANS-SERIF BOLD SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;-1D5FA;MATHEMATICAL SANS-SERIF BOLD SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;-1D5FB;MATHEMATICAL SANS-SERIF BOLD SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;-1D5FC;MATHEMATICAL SANS-SERIF BOLD SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;-1D5FD;MATHEMATICAL SANS-SERIF BOLD SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;-1D5FE;MATHEMATICAL SANS-SERIF BOLD SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;-1D5FF;MATHEMATICAL SANS-SERIF BOLD SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;-1D600;MATHEMATICAL SANS-SERIF BOLD SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;-1D601;MATHEMATICAL SANS-SERIF BOLD SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;-1D602;MATHEMATICAL SANS-SERIF BOLD SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;-1D603;MATHEMATICAL SANS-SERIF BOLD SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;-1D604;MATHEMATICAL SANS-SERIF BOLD SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;-1D605;MATHEMATICAL SANS-SERIF BOLD SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;-1D606;MATHEMATICAL SANS-SERIF BOLD SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;-1D607;MATHEMATICAL SANS-SERIF BOLD SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;-1D608;MATHEMATICAL SANS-SERIF ITALIC CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;-1D609;MATHEMATICAL SANS-SERIF ITALIC CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;-1D60A;MATHEMATICAL SANS-SERIF ITALIC CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;-1D60B;MATHEMATICAL SANS-SERIF ITALIC CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;-1D60C;MATHEMATICAL SANS-SERIF ITALIC CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;-1D60D;MATHEMATICAL SANS-SERIF ITALIC CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;-1D60E;MATHEMATICAL SANS-SERIF ITALIC CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;-1D60F;MATHEMATICAL SANS-SERIF ITALIC CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;-1D610;MATHEMATICAL SANS-SERIF ITALIC CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;-1D611;MATHEMATICAL SANS-SERIF ITALIC CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;-1D612;MATHEMATICAL SANS-SERIF ITALIC CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;-1D613;MATHEMATICAL SANS-SERIF ITALIC CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;-1D614;MATHEMATICAL SANS-SERIF ITALIC CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;-1D615;MATHEMATICAL SANS-SERIF ITALIC CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;-1D616;MATHEMATICAL SANS-SERIF ITALIC CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;-1D617;MATHEMATICAL SANS-SERIF ITALIC CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;-1D618;MATHEMATICAL SANS-SERIF ITALIC CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;-1D619;MATHEMATICAL SANS-SERIF ITALIC CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;-1D61A;MATHEMATICAL SANS-SERIF ITALIC CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;-1D61B;MATHEMATICAL SANS-SERIF ITALIC CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;-1D61C;MATHEMATICAL SANS-SERIF ITALIC CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;-1D61D;MATHEMATICAL SANS-SERIF ITALIC CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;-1D61E;MATHEMATICAL SANS-SERIF ITALIC CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;-1D61F;MATHEMATICAL SANS-SERIF ITALIC CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;-1D620;MATHEMATICAL SANS-SERIF ITALIC CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;-1D621;MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;-1D622;MATHEMATICAL SANS-SERIF ITALIC SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;-1D623;MATHEMATICAL SANS-SERIF ITALIC SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;-1D624;MATHEMATICAL SANS-SERIF ITALIC SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;-1D625;MATHEMATICAL SANS-SERIF ITALIC SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;-1D626;MATHEMATICAL SANS-SERIF ITALIC SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;-1D627;MATHEMATICAL SANS-SERIF ITALIC SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;-1D628;MATHEMATICAL SANS-SERIF ITALIC SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;-1D629;MATHEMATICAL SANS-SERIF ITALIC SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;-1D62A;MATHEMATICAL SANS-SERIF ITALIC SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;-1D62B;MATHEMATICAL SANS-SERIF ITALIC SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;-1D62C;MATHEMATICAL SANS-SERIF ITALIC SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;-1D62D;MATHEMATICAL SANS-SERIF ITALIC SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;-1D62E;MATHEMATICAL SANS-SERIF ITALIC SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;-1D62F;MATHEMATICAL SANS-SERIF ITALIC SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;-1D630;MATHEMATICAL SANS-SERIF ITALIC SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;-1D631;MATHEMATICAL SANS-SERIF ITALIC SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;-1D632;MATHEMATICAL SANS-SERIF ITALIC SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;-1D633;MATHEMATICAL SANS-SERIF ITALIC SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;-1D634;MATHEMATICAL SANS-SERIF ITALIC SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;-1D635;MATHEMATICAL SANS-SERIF ITALIC SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;-1D636;MATHEMATICAL SANS-SERIF ITALIC SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;-1D637;MATHEMATICAL SANS-SERIF ITALIC SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;-1D638;MATHEMATICAL SANS-SERIF ITALIC SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;-1D639;MATHEMATICAL SANS-SERIF ITALIC SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;-1D63A;MATHEMATICAL SANS-SERIF ITALIC SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;-1D63B;MATHEMATICAL SANS-SERIF ITALIC SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;-1D63C;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;-1D63D;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;-1D63E;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;-1D63F;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;-1D640;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;-1D641;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;-1D642;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;-1D643;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;-1D644;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;-1D645;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;-1D646;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;-1D647;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;-1D648;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;-1D649;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;-1D64A;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;-1D64B;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;-1D64C;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;-1D64D;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;-1D64E;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;-1D64F;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;-1D650;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;-1D651;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;-1D652;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;-1D653;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;-1D654;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;-1D655;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;-1D656;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;-1D657;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;-1D658;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;-1D659;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;-1D65A;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;-1D65B;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;-1D65C;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;-1D65D;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;-1D65E;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;-1D65F;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;-1D660;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;-1D661;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;-1D662;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;-1D663;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;-1D664;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;-1D665;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;-1D666;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;-1D667;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;-1D668;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;-1D669;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;-1D66A;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;-1D66B;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;-1D66C;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;-1D66D;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;-1D66E;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;-1D66F;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;-1D670;MATHEMATICAL MONOSPACE CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;-1D671;MATHEMATICAL MONOSPACE CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;-1D672;MATHEMATICAL MONOSPACE CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;-1D673;MATHEMATICAL MONOSPACE CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;-1D674;MATHEMATICAL MONOSPACE CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;-1D675;MATHEMATICAL MONOSPACE CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;-1D676;MATHEMATICAL MONOSPACE CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;-1D677;MATHEMATICAL MONOSPACE CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;-1D678;MATHEMATICAL MONOSPACE CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;-1D679;MATHEMATICAL MONOSPACE CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;-1D67A;MATHEMATICAL MONOSPACE CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;-1D67B;MATHEMATICAL MONOSPACE CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;-1D67C;MATHEMATICAL MONOSPACE CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;-1D67D;MATHEMATICAL MONOSPACE CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;-1D67E;MATHEMATICAL MONOSPACE CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;-1D67F;MATHEMATICAL MONOSPACE CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;-1D680;MATHEMATICAL MONOSPACE CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;-1D681;MATHEMATICAL MONOSPACE CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;-1D682;MATHEMATICAL MONOSPACE CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;-1D683;MATHEMATICAL MONOSPACE CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;-1D684;MATHEMATICAL MONOSPACE CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;-1D685;MATHEMATICAL MONOSPACE CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;-1D686;MATHEMATICAL MONOSPACE CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;-1D687;MATHEMATICAL MONOSPACE CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;-1D688;MATHEMATICAL MONOSPACE CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;-1D689;MATHEMATICAL MONOSPACE CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;-1D68A;MATHEMATICAL MONOSPACE SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;-1D68B;MATHEMATICAL MONOSPACE SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;-1D68C;MATHEMATICAL MONOSPACE SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;-1D68D;MATHEMATICAL MONOSPACE SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;-1D68E;MATHEMATICAL MONOSPACE SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;-1D68F;MATHEMATICAL MONOSPACE SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;-1D690;MATHEMATICAL MONOSPACE SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;-1D691;MATHEMATICAL MONOSPACE SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;-1D692;MATHEMATICAL MONOSPACE SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;-1D693;MATHEMATICAL MONOSPACE SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;-1D694;MATHEMATICAL MONOSPACE SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;-1D695;MATHEMATICAL MONOSPACE SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;-1D696;MATHEMATICAL MONOSPACE SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;-1D697;MATHEMATICAL MONOSPACE SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;-1D698;MATHEMATICAL MONOSPACE SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;-1D699;MATHEMATICAL MONOSPACE SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;-1D69A;MATHEMATICAL MONOSPACE SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;-1D69B;MATHEMATICAL MONOSPACE SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;-1D69C;MATHEMATICAL MONOSPACE SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;-1D69D;MATHEMATICAL MONOSPACE SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;-1D69E;MATHEMATICAL MONOSPACE SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;-1D69F;MATHEMATICAL MONOSPACE SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;-1D6A0;MATHEMATICAL MONOSPACE SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;-1D6A1;MATHEMATICAL MONOSPACE SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;-1D6A2;MATHEMATICAL MONOSPACE SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;-1D6A3;MATHEMATICAL MONOSPACE SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;-1D6A4;MATHEMATICAL ITALIC SMALL DOTLESS I;Ll;0;L;<font> 0131;;;;N;;;;;-1D6A5;MATHEMATICAL ITALIC SMALL DOTLESS J;Ll;0;L;<font> 0237;;;;N;;;;;-1D6A8;MATHEMATICAL BOLD CAPITAL ALPHA;Lu;0;L;<font> 0391;;;;N;;;;;-1D6A9;MATHEMATICAL BOLD CAPITAL BETA;Lu;0;L;<font> 0392;;;;N;;;;;-1D6AA;MATHEMATICAL BOLD CAPITAL GAMMA;Lu;0;L;<font> 0393;;;;N;;;;;-1D6AB;MATHEMATICAL BOLD CAPITAL DELTA;Lu;0;L;<font> 0394;;;;N;;;;;-1D6AC;MATHEMATICAL BOLD CAPITAL EPSILON;Lu;0;L;<font> 0395;;;;N;;;;;-1D6AD;MATHEMATICAL BOLD CAPITAL ZETA;Lu;0;L;<font> 0396;;;;N;;;;;-1D6AE;MATHEMATICAL BOLD CAPITAL ETA;Lu;0;L;<font> 0397;;;;N;;;;;-1D6AF;MATHEMATICAL BOLD CAPITAL THETA;Lu;0;L;<font> 0398;;;;N;;;;;-1D6B0;MATHEMATICAL BOLD CAPITAL IOTA;Lu;0;L;<font> 0399;;;;N;;;;;-1D6B1;MATHEMATICAL BOLD CAPITAL KAPPA;Lu;0;L;<font> 039A;;;;N;;;;;-1D6B2;MATHEMATICAL BOLD CAPITAL LAMDA;Lu;0;L;<font> 039B;;;;N;;;;;-1D6B3;MATHEMATICAL BOLD CAPITAL MU;Lu;0;L;<font> 039C;;;;N;;;;;-1D6B4;MATHEMATICAL BOLD CAPITAL NU;Lu;0;L;<font> 039D;;;;N;;;;;-1D6B5;MATHEMATICAL BOLD CAPITAL XI;Lu;0;L;<font> 039E;;;;N;;;;;-1D6B6;MATHEMATICAL BOLD CAPITAL OMICRON;Lu;0;L;<font> 039F;;;;N;;;;;-1D6B7;MATHEMATICAL BOLD CAPITAL PI;Lu;0;L;<font> 03A0;;;;N;;;;;-1D6B8;MATHEMATICAL BOLD CAPITAL RHO;Lu;0;L;<font> 03A1;;;;N;;;;;-1D6B9;MATHEMATICAL BOLD CAPITAL THETA SYMBOL;Lu;0;L;<font> 03F4;;;;N;;;;;-1D6BA;MATHEMATICAL BOLD CAPITAL SIGMA;Lu;0;L;<font> 03A3;;;;N;;;;;-1D6BB;MATHEMATICAL BOLD CAPITAL TAU;Lu;0;L;<font> 03A4;;;;N;;;;;-1D6BC;MATHEMATICAL BOLD CAPITAL UPSILON;Lu;0;L;<font> 03A5;;;;N;;;;;-1D6BD;MATHEMATICAL BOLD CAPITAL PHI;Lu;0;L;<font> 03A6;;;;N;;;;;-1D6BE;MATHEMATICAL BOLD CAPITAL CHI;Lu;0;L;<font> 03A7;;;;N;;;;;-1D6BF;MATHEMATICAL BOLD CAPITAL PSI;Lu;0;L;<font> 03A8;;;;N;;;;;-1D6C0;MATHEMATICAL BOLD CAPITAL OMEGA;Lu;0;L;<font> 03A9;;;;N;;;;;-1D6C1;MATHEMATICAL BOLD NABLA;Sm;0;L;<font> 2207;;;;N;;;;;-1D6C2;MATHEMATICAL BOLD SMALL ALPHA;Ll;0;L;<font> 03B1;;;;N;;;;;-1D6C3;MATHEMATICAL BOLD SMALL BETA;Ll;0;L;<font> 03B2;;;;N;;;;;-1D6C4;MATHEMATICAL BOLD SMALL GAMMA;Ll;0;L;<font> 03B3;;;;N;;;;;-1D6C5;MATHEMATICAL BOLD SMALL DELTA;Ll;0;L;<font> 03B4;;;;N;;;;;-1D6C6;MATHEMATICAL BOLD SMALL EPSILON;Ll;0;L;<font> 03B5;;;;N;;;;;-1D6C7;MATHEMATICAL BOLD SMALL ZETA;Ll;0;L;<font> 03B6;;;;N;;;;;-1D6C8;MATHEMATICAL BOLD SMALL ETA;Ll;0;L;<font> 03B7;;;;N;;;;;-1D6C9;MATHEMATICAL BOLD SMALL THETA;Ll;0;L;<font> 03B8;;;;N;;;;;-1D6CA;MATHEMATICAL BOLD SMALL IOTA;Ll;0;L;<font> 03B9;;;;N;;;;;-1D6CB;MATHEMATICAL BOLD SMALL KAPPA;Ll;0;L;<font> 03BA;;;;N;;;;;-1D6CC;MATHEMATICAL BOLD SMALL LAMDA;Ll;0;L;<font> 03BB;;;;N;;;;;-1D6CD;MATHEMATICAL BOLD SMALL MU;Ll;0;L;<font> 03BC;;;;N;;;;;-1D6CE;MATHEMATICAL BOLD SMALL NU;Ll;0;L;<font> 03BD;;;;N;;;;;-1D6CF;MATHEMATICAL BOLD SMALL XI;Ll;0;L;<font> 03BE;;;;N;;;;;-1D6D0;MATHEMATICAL BOLD SMALL OMICRON;Ll;0;L;<font> 03BF;;;;N;;;;;-1D6D1;MATHEMATICAL BOLD SMALL PI;Ll;0;L;<font> 03C0;;;;N;;;;;-1D6D2;MATHEMATICAL BOLD SMALL RHO;Ll;0;L;<font> 03C1;;;;N;;;;;-1D6D3;MATHEMATICAL BOLD SMALL FINAL SIGMA;Ll;0;L;<font> 03C2;;;;N;;;;;-1D6D4;MATHEMATICAL BOLD SMALL SIGMA;Ll;0;L;<font> 03C3;;;;N;;;;;-1D6D5;MATHEMATICAL BOLD SMALL TAU;Ll;0;L;<font> 03C4;;;;N;;;;;-1D6D6;MATHEMATICAL BOLD SMALL UPSILON;Ll;0;L;<font> 03C5;;;;N;;;;;-1D6D7;MATHEMATICAL BOLD SMALL PHI;Ll;0;L;<font> 03C6;;;;N;;;;;-1D6D8;MATHEMATICAL BOLD SMALL CHI;Ll;0;L;<font> 03C7;;;;N;;;;;-1D6D9;MATHEMATICAL BOLD SMALL PSI;Ll;0;L;<font> 03C8;;;;N;;;;;-1D6DA;MATHEMATICAL BOLD SMALL OMEGA;Ll;0;L;<font> 03C9;;;;N;;;;;-1D6DB;MATHEMATICAL BOLD PARTIAL DIFFERENTIAL;Sm;0;L;<font> 2202;;;;Y;;;;;-1D6DC;MATHEMATICAL BOLD EPSILON SYMBOL;Ll;0;L;<font> 03F5;;;;N;;;;;-1D6DD;MATHEMATICAL BOLD THETA SYMBOL;Ll;0;L;<font> 03D1;;;;N;;;;;-1D6DE;MATHEMATICAL BOLD KAPPA SYMBOL;Ll;0;L;<font> 03F0;;;;N;;;;;-1D6DF;MATHEMATICAL BOLD PHI SYMBOL;Ll;0;L;<font> 03D5;;;;N;;;;;-1D6E0;MATHEMATICAL BOLD RHO SYMBOL;Ll;0;L;<font> 03F1;;;;N;;;;;-1D6E1;MATHEMATICAL BOLD PI SYMBOL;Ll;0;L;<font> 03D6;;;;N;;;;;-1D6E2;MATHEMATICAL ITALIC CAPITAL ALPHA;Lu;0;L;<font> 0391;;;;N;;;;;-1D6E3;MATHEMATICAL ITALIC CAPITAL BETA;Lu;0;L;<font> 0392;;;;N;;;;;-1D6E4;MATHEMATICAL ITALIC CAPITAL GAMMA;Lu;0;L;<font> 0393;;;;N;;;;;-1D6E5;MATHEMATICAL ITALIC CAPITAL DELTA;Lu;0;L;<font> 0394;;;;N;;;;;-1D6E6;MATHEMATICAL ITALIC CAPITAL EPSILON;Lu;0;L;<font> 0395;;;;N;;;;;-1D6E7;MATHEMATICAL ITALIC CAPITAL ZETA;Lu;0;L;<font> 0396;;;;N;;;;;-1D6E8;MATHEMATICAL ITALIC CAPITAL ETA;Lu;0;L;<font> 0397;;;;N;;;;;-1D6E9;MATHEMATICAL ITALIC CAPITAL THETA;Lu;0;L;<font> 0398;;;;N;;;;;-1D6EA;MATHEMATICAL ITALIC CAPITAL IOTA;Lu;0;L;<font> 0399;;;;N;;;;;-1D6EB;MATHEMATICAL ITALIC CAPITAL KAPPA;Lu;0;L;<font> 039A;;;;N;;;;;-1D6EC;MATHEMATICAL ITALIC CAPITAL LAMDA;Lu;0;L;<font> 039B;;;;N;;;;;-1D6ED;MATHEMATICAL ITALIC CAPITAL MU;Lu;0;L;<font> 039C;;;;N;;;;;-1D6EE;MATHEMATICAL ITALIC CAPITAL NU;Lu;0;L;<font> 039D;;;;N;;;;;-1D6EF;MATHEMATICAL ITALIC CAPITAL XI;Lu;0;L;<font> 039E;;;;N;;;;;-1D6F0;MATHEMATICAL ITALIC CAPITAL OMICRON;Lu;0;L;<font> 039F;;;;N;;;;;-1D6F1;MATHEMATICAL ITALIC CAPITAL PI;Lu;0;L;<font> 03A0;;;;N;;;;;-1D6F2;MATHEMATICAL ITALIC CAPITAL RHO;Lu;0;L;<font> 03A1;;;;N;;;;;-1D6F3;MATHEMATICAL ITALIC CAPITAL THETA SYMBOL;Lu;0;L;<font> 03F4;;;;N;;;;;-1D6F4;MATHEMATICAL ITALIC CAPITAL SIGMA;Lu;0;L;<font> 03A3;;;;N;;;;;-1D6F5;MATHEMATICAL ITALIC CAPITAL TAU;Lu;0;L;<font> 03A4;;;;N;;;;;-1D6F6;MATHEMATICAL ITALIC CAPITAL UPSILON;Lu;0;L;<font> 03A5;;;;N;;;;;-1D6F7;MATHEMATICAL ITALIC CAPITAL PHI;Lu;0;L;<font> 03A6;;;;N;;;;;-1D6F8;MATHEMATICAL ITALIC CAPITAL CHI;Lu;0;L;<font> 03A7;;;;N;;;;;-1D6F9;MATHEMATICAL ITALIC CAPITAL PSI;Lu;0;L;<font> 03A8;;;;N;;;;;-1D6FA;MATHEMATICAL ITALIC CAPITAL OMEGA;Lu;0;L;<font> 03A9;;;;N;;;;;-1D6FB;MATHEMATICAL ITALIC NABLA;Sm;0;L;<font> 2207;;;;N;;;;;-1D6FC;MATHEMATICAL ITALIC SMALL ALPHA;Ll;0;L;<font> 03B1;;;;N;;;;;-1D6FD;MATHEMATICAL ITALIC SMALL BETA;Ll;0;L;<font> 03B2;;;;N;;;;;-1D6FE;MATHEMATICAL ITALIC SMALL GAMMA;Ll;0;L;<font> 03B3;;;;N;;;;;-1D6FF;MATHEMATICAL ITALIC SMALL DELTA;Ll;0;L;<font> 03B4;;;;N;;;;;-1D700;MATHEMATICAL ITALIC SMALL EPSILON;Ll;0;L;<font> 03B5;;;;N;;;;;-1D701;MATHEMATICAL ITALIC SMALL ZETA;Ll;0;L;<font> 03B6;;;;N;;;;;-1D702;MATHEMATICAL ITALIC SMALL ETA;Ll;0;L;<font> 03B7;;;;N;;;;;-1D703;MATHEMATICAL ITALIC SMALL THETA;Ll;0;L;<font> 03B8;;;;N;;;;;-1D704;MATHEMATICAL ITALIC SMALL IOTA;Ll;0;L;<font> 03B9;;;;N;;;;;-1D705;MATHEMATICAL ITALIC SMALL KAPPA;Ll;0;L;<font> 03BA;;;;N;;;;;-1D706;MATHEMATICAL ITALIC SMALL LAMDA;Ll;0;L;<font> 03BB;;;;N;;;;;-1D707;MATHEMATICAL ITALIC SMALL MU;Ll;0;L;<font> 03BC;;;;N;;;;;-1D708;MATHEMATICAL ITALIC SMALL NU;Ll;0;L;<font> 03BD;;;;N;;;;;-1D709;MATHEMATICAL ITALIC SMALL XI;Ll;0;L;<font> 03BE;;;;N;;;;;-1D70A;MATHEMATICAL ITALIC SMALL OMICRON;Ll;0;L;<font> 03BF;;;;N;;;;;-1D70B;MATHEMATICAL ITALIC SMALL PI;Ll;0;L;<font> 03C0;;;;N;;;;;-1D70C;MATHEMATICAL ITALIC SMALL RHO;Ll;0;L;<font> 03C1;;;;N;;;;;-1D70D;MATHEMATICAL ITALIC SMALL FINAL SIGMA;Ll;0;L;<font> 03C2;;;;N;;;;;-1D70E;MATHEMATICAL ITALIC SMALL SIGMA;Ll;0;L;<font> 03C3;;;;N;;;;;-1D70F;MATHEMATICAL ITALIC SMALL TAU;Ll;0;L;<font> 03C4;;;;N;;;;;-1D710;MATHEMATICAL ITALIC SMALL UPSILON;Ll;0;L;<font> 03C5;;;;N;;;;;-1D711;MATHEMATICAL ITALIC SMALL PHI;Ll;0;L;<font> 03C6;;;;N;;;;;-1D712;MATHEMATICAL ITALIC SMALL CHI;Ll;0;L;<font> 03C7;;;;N;;;;;-1D713;MATHEMATICAL ITALIC SMALL PSI;Ll;0;L;<font> 03C8;;;;N;;;;;-1D714;MATHEMATICAL ITALIC SMALL OMEGA;Ll;0;L;<font> 03C9;;;;N;;;;;-1D715;MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL;Sm;0;L;<font> 2202;;;;Y;;;;;-1D716;MATHEMATICAL ITALIC EPSILON SYMBOL;Ll;0;L;<font> 03F5;;;;N;;;;;-1D717;MATHEMATICAL ITALIC THETA SYMBOL;Ll;0;L;<font> 03D1;;;;N;;;;;-1D718;MATHEMATICAL ITALIC KAPPA SYMBOL;Ll;0;L;<font> 03F0;;;;N;;;;;-1D719;MATHEMATICAL ITALIC PHI SYMBOL;Ll;0;L;<font> 03D5;;;;N;;;;;-1D71A;MATHEMATICAL ITALIC RHO SYMBOL;Ll;0;L;<font> 03F1;;;;N;;;;;-1D71B;MATHEMATICAL ITALIC PI SYMBOL;Ll;0;L;<font> 03D6;;;;N;;;;;-1D71C;MATHEMATICAL BOLD ITALIC CAPITAL ALPHA;Lu;0;L;<font> 0391;;;;N;;;;;-1D71D;MATHEMATICAL BOLD ITALIC CAPITAL BETA;Lu;0;L;<font> 0392;;;;N;;;;;-1D71E;MATHEMATICAL BOLD ITALIC CAPITAL GAMMA;Lu;0;L;<font> 0393;;;;N;;;;;-1D71F;MATHEMATICAL BOLD ITALIC CAPITAL DELTA;Lu;0;L;<font> 0394;;;;N;;;;;-1D720;MATHEMATICAL BOLD ITALIC CAPITAL EPSILON;Lu;0;L;<font> 0395;;;;N;;;;;-1D721;MATHEMATICAL BOLD ITALIC CAPITAL ZETA;Lu;0;L;<font> 0396;;;;N;;;;;-1D722;MATHEMATICAL BOLD ITALIC CAPITAL ETA;Lu;0;L;<font> 0397;;;;N;;;;;-1D723;MATHEMATICAL BOLD ITALIC CAPITAL THETA;Lu;0;L;<font> 0398;;;;N;;;;;-1D724;MATHEMATICAL BOLD ITALIC CAPITAL IOTA;Lu;0;L;<font> 0399;;;;N;;;;;-1D725;MATHEMATICAL BOLD ITALIC CAPITAL KAPPA;Lu;0;L;<font> 039A;;;;N;;;;;-1D726;MATHEMATICAL BOLD ITALIC CAPITAL LAMDA;Lu;0;L;<font> 039B;;;;N;;;;;-1D727;MATHEMATICAL BOLD ITALIC CAPITAL MU;Lu;0;L;<font> 039C;;;;N;;;;;-1D728;MATHEMATICAL BOLD ITALIC CAPITAL NU;Lu;0;L;<font> 039D;;;;N;;;;;-1D729;MATHEMATICAL BOLD ITALIC CAPITAL XI;Lu;0;L;<font> 039E;;;;N;;;;;-1D72A;MATHEMATICAL BOLD ITALIC CAPITAL OMICRON;Lu;0;L;<font> 039F;;;;N;;;;;-1D72B;MATHEMATICAL BOLD ITALIC CAPITAL PI;Lu;0;L;<font> 03A0;;;;N;;;;;-1D72C;MATHEMATICAL BOLD ITALIC CAPITAL RHO;Lu;0;L;<font> 03A1;;;;N;;;;;-1D72D;MATHEMATICAL BOLD ITALIC CAPITAL THETA SYMBOL;Lu;0;L;<font> 03F4;;;;N;;;;;-1D72E;MATHEMATICAL BOLD ITALIC CAPITAL SIGMA;Lu;0;L;<font> 03A3;;;;N;;;;;-1D72F;MATHEMATICAL BOLD ITALIC CAPITAL TAU;Lu;0;L;<font> 03A4;;;;N;;;;;-1D730;MATHEMATICAL BOLD ITALIC CAPITAL UPSILON;Lu;0;L;<font> 03A5;;;;N;;;;;-1D731;MATHEMATICAL BOLD ITALIC CAPITAL PHI;Lu;0;L;<font> 03A6;;;;N;;;;;-1D732;MATHEMATICAL BOLD ITALIC CAPITAL CHI;Lu;0;L;<font> 03A7;;;;N;;;;;-1D733;MATHEMATICAL BOLD ITALIC CAPITAL PSI;Lu;0;L;<font> 03A8;;;;N;;;;;-1D734;MATHEMATICAL BOLD ITALIC CAPITAL OMEGA;Lu;0;L;<font> 03A9;;;;N;;;;;-1D735;MATHEMATICAL BOLD ITALIC NABLA;Sm;0;L;<font> 2207;;;;N;;;;;-1D736;MATHEMATICAL BOLD ITALIC SMALL ALPHA;Ll;0;L;<font> 03B1;;;;N;;;;;-1D737;MATHEMATICAL BOLD ITALIC SMALL BETA;Ll;0;L;<font> 03B2;;;;N;;;;;-1D738;MATHEMATICAL BOLD ITALIC SMALL GAMMA;Ll;0;L;<font> 03B3;;;;N;;;;;-1D739;MATHEMATICAL BOLD ITALIC SMALL DELTA;Ll;0;L;<font> 03B4;;;;N;;;;;-1D73A;MATHEMATICAL BOLD ITALIC SMALL EPSILON;Ll;0;L;<font> 03B5;;;;N;;;;;-1D73B;MATHEMATICAL BOLD ITALIC SMALL ZETA;Ll;0;L;<font> 03B6;;;;N;;;;;-1D73C;MATHEMATICAL BOLD ITALIC SMALL ETA;Ll;0;L;<font> 03B7;;;;N;;;;;-1D73D;MATHEMATICAL BOLD ITALIC SMALL THETA;Ll;0;L;<font> 03B8;;;;N;;;;;-1D73E;MATHEMATICAL BOLD ITALIC SMALL IOTA;Ll;0;L;<font> 03B9;;;;N;;;;;-1D73F;MATHEMATICAL BOLD ITALIC SMALL KAPPA;Ll;0;L;<font> 03BA;;;;N;;;;;-1D740;MATHEMATICAL BOLD ITALIC SMALL LAMDA;Ll;0;L;<font> 03BB;;;;N;;;;;-1D741;MATHEMATICAL BOLD ITALIC SMALL MU;Ll;0;L;<font> 03BC;;;;N;;;;;-1D742;MATHEMATICAL BOLD ITALIC SMALL NU;Ll;0;L;<font> 03BD;;;;N;;;;;-1D743;MATHEMATICAL BOLD ITALIC SMALL XI;Ll;0;L;<font> 03BE;;;;N;;;;;-1D744;MATHEMATICAL BOLD ITALIC SMALL OMICRON;Ll;0;L;<font> 03BF;;;;N;;;;;-1D745;MATHEMATICAL BOLD ITALIC SMALL PI;Ll;0;L;<font> 03C0;;;;N;;;;;-1D746;MATHEMATICAL BOLD ITALIC SMALL RHO;Ll;0;L;<font> 03C1;;;;N;;;;;-1D747;MATHEMATICAL BOLD ITALIC SMALL FINAL SIGMA;Ll;0;L;<font> 03C2;;;;N;;;;;-1D748;MATHEMATICAL BOLD ITALIC SMALL SIGMA;Ll;0;L;<font> 03C3;;;;N;;;;;-1D749;MATHEMATICAL BOLD ITALIC SMALL TAU;Ll;0;L;<font> 03C4;;;;N;;;;;-1D74A;MATHEMATICAL BOLD ITALIC SMALL UPSILON;Ll;0;L;<font> 03C5;;;;N;;;;;-1D74B;MATHEMATICAL BOLD ITALIC SMALL PHI;Ll;0;L;<font> 03C6;;;;N;;;;;-1D74C;MATHEMATICAL BOLD ITALIC SMALL CHI;Ll;0;L;<font> 03C7;;;;N;;;;;-1D74D;MATHEMATICAL BOLD ITALIC SMALL PSI;Ll;0;L;<font> 03C8;;;;N;;;;;-1D74E;MATHEMATICAL BOLD ITALIC SMALL OMEGA;Ll;0;L;<font> 03C9;;;;N;;;;;-1D74F;MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL;Sm;0;L;<font> 2202;;;;Y;;;;;-1D750;MATHEMATICAL BOLD ITALIC EPSILON SYMBOL;Ll;0;L;<font> 03F5;;;;N;;;;;-1D751;MATHEMATICAL BOLD ITALIC THETA SYMBOL;Ll;0;L;<font> 03D1;;;;N;;;;;-1D752;MATHEMATICAL BOLD ITALIC KAPPA SYMBOL;Ll;0;L;<font> 03F0;;;;N;;;;;-1D753;MATHEMATICAL BOLD ITALIC PHI SYMBOL;Ll;0;L;<font> 03D5;;;;N;;;;;-1D754;MATHEMATICAL BOLD ITALIC RHO SYMBOL;Ll;0;L;<font> 03F1;;;;N;;;;;-1D755;MATHEMATICAL BOLD ITALIC PI SYMBOL;Ll;0;L;<font> 03D6;;;;N;;;;;-1D756;MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA;Lu;0;L;<font> 0391;;;;N;;;;;-1D757;MATHEMATICAL SANS-SERIF BOLD CAPITAL BETA;Lu;0;L;<font> 0392;;;;N;;;;;-1D758;MATHEMATICAL SANS-SERIF BOLD CAPITAL GAMMA;Lu;0;L;<font> 0393;;;;N;;;;;-1D759;MATHEMATICAL SANS-SERIF BOLD CAPITAL DELTA;Lu;0;L;<font> 0394;;;;N;;;;;-1D75A;MATHEMATICAL SANS-SERIF BOLD CAPITAL EPSILON;Lu;0;L;<font> 0395;;;;N;;;;;-1D75B;MATHEMATICAL SANS-SERIF BOLD CAPITAL ZETA;Lu;0;L;<font> 0396;;;;N;;;;;-1D75C;MATHEMATICAL SANS-SERIF BOLD CAPITAL ETA;Lu;0;L;<font> 0397;;;;N;;;;;-1D75D;MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA;Lu;0;L;<font> 0398;;;;N;;;;;-1D75E;MATHEMATICAL SANS-SERIF BOLD CAPITAL IOTA;Lu;0;L;<font> 0399;;;;N;;;;;-1D75F;MATHEMATICAL SANS-SERIF BOLD CAPITAL KAPPA;Lu;0;L;<font> 039A;;;;N;;;;;-1D760;MATHEMATICAL SANS-SERIF BOLD CAPITAL LAMDA;Lu;0;L;<font> 039B;;;;N;;;;;-1D761;MATHEMATICAL SANS-SERIF BOLD CAPITAL MU;Lu;0;L;<font> 039C;;;;N;;;;;-1D762;MATHEMATICAL SANS-SERIF BOLD CAPITAL NU;Lu;0;L;<font> 039D;;;;N;;;;;-1D763;MATHEMATICAL SANS-SERIF BOLD CAPITAL XI;Lu;0;L;<font> 039E;;;;N;;;;;-1D764;MATHEMATICAL SANS-SERIF BOLD CAPITAL OMICRON;Lu;0;L;<font> 039F;;;;N;;;;;-1D765;MATHEMATICAL SANS-SERIF BOLD CAPITAL PI;Lu;0;L;<font> 03A0;;;;N;;;;;-1D766;MATHEMATICAL SANS-SERIF BOLD CAPITAL RHO;Lu;0;L;<font> 03A1;;;;N;;;;;-1D767;MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA SYMBOL;Lu;0;L;<font> 03F4;;;;N;;;;;-1D768;MATHEMATICAL SANS-SERIF BOLD CAPITAL SIGMA;Lu;0;L;<font> 03A3;;;;N;;;;;-1D769;MATHEMATICAL SANS-SERIF BOLD CAPITAL TAU;Lu;0;L;<font> 03A4;;;;N;;;;;-1D76A;MATHEMATICAL SANS-SERIF BOLD CAPITAL UPSILON;Lu;0;L;<font> 03A5;;;;N;;;;;-1D76B;MATHEMATICAL SANS-SERIF BOLD CAPITAL PHI;Lu;0;L;<font> 03A6;;;;N;;;;;-1D76C;MATHEMATICAL SANS-SERIF BOLD CAPITAL CHI;Lu;0;L;<font> 03A7;;;;N;;;;;-1D76D;MATHEMATICAL SANS-SERIF BOLD CAPITAL PSI;Lu;0;L;<font> 03A8;;;;N;;;;;-1D76E;MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA;Lu;0;L;<font> 03A9;;;;N;;;;;-1D76F;MATHEMATICAL SANS-SERIF BOLD NABLA;Sm;0;L;<font> 2207;;;;N;;;;;-1D770;MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA;Ll;0;L;<font> 03B1;;;;N;;;;;-1D771;MATHEMATICAL SANS-SERIF BOLD SMALL BETA;Ll;0;L;<font> 03B2;;;;N;;;;;-1D772;MATHEMATICAL SANS-SERIF BOLD SMALL GAMMA;Ll;0;L;<font> 03B3;;;;N;;;;;-1D773;MATHEMATICAL SANS-SERIF BOLD SMALL DELTA;Ll;0;L;<font> 03B4;;;;N;;;;;-1D774;MATHEMATICAL SANS-SERIF BOLD SMALL EPSILON;Ll;0;L;<font> 03B5;;;;N;;;;;-1D775;MATHEMATICAL SANS-SERIF BOLD SMALL ZETA;Ll;0;L;<font> 03B6;;;;N;;;;;-1D776;MATHEMATICAL SANS-SERIF BOLD SMALL ETA;Ll;0;L;<font> 03B7;;;;N;;;;;-1D777;MATHEMATICAL SANS-SERIF BOLD SMALL THETA;Ll;0;L;<font> 03B8;;;;N;;;;;-1D778;MATHEMATICAL SANS-SERIF BOLD SMALL IOTA;Ll;0;L;<font> 03B9;;;;N;;;;;-1D779;MATHEMATICAL SANS-SERIF BOLD SMALL KAPPA;Ll;0;L;<font> 03BA;;;;N;;;;;-1D77A;MATHEMATICAL SANS-SERIF BOLD SMALL LAMDA;Ll;0;L;<font> 03BB;;;;N;;;;;-1D77B;MATHEMATICAL SANS-SERIF BOLD SMALL MU;Ll;0;L;<font> 03BC;;;;N;;;;;-1D77C;MATHEMATICAL SANS-SERIF BOLD SMALL NU;Ll;0;L;<font> 03BD;;;;N;;;;;-1D77D;MATHEMATICAL SANS-SERIF BOLD SMALL XI;Ll;0;L;<font> 03BE;;;;N;;;;;-1D77E;MATHEMATICAL SANS-SERIF BOLD SMALL OMICRON;Ll;0;L;<font> 03BF;;;;N;;;;;-1D77F;MATHEMATICAL SANS-SERIF BOLD SMALL PI;Ll;0;L;<font> 03C0;;;;N;;;;;-1D780;MATHEMATICAL SANS-SERIF BOLD SMALL RHO;Ll;0;L;<font> 03C1;;;;N;;;;;-1D781;MATHEMATICAL SANS-SERIF BOLD SMALL FINAL SIGMA;Ll;0;L;<font> 03C2;;;;N;;;;;-1D782;MATHEMATICAL SANS-SERIF BOLD SMALL SIGMA;Ll;0;L;<font> 03C3;;;;N;;;;;-1D783;MATHEMATICAL SANS-SERIF BOLD SMALL TAU;Ll;0;L;<font> 03C4;;;;N;;;;;-1D784;MATHEMATICAL SANS-SERIF BOLD SMALL UPSILON;Ll;0;L;<font> 03C5;;;;N;;;;;-1D785;MATHEMATICAL SANS-SERIF BOLD SMALL PHI;Ll;0;L;<font> 03C6;;;;N;;;;;-1D786;MATHEMATICAL SANS-SERIF BOLD SMALL CHI;Ll;0;L;<font> 03C7;;;;N;;;;;-1D787;MATHEMATICAL SANS-SERIF BOLD SMALL PSI;Ll;0;L;<font> 03C8;;;;N;;;;;-1D788;MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA;Ll;0;L;<font> 03C9;;;;N;;;;;-1D789;MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL;Sm;0;L;<font> 2202;;;;Y;;;;;-1D78A;MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL;Ll;0;L;<font> 03F5;;;;N;;;;;-1D78B;MATHEMATICAL SANS-SERIF BOLD THETA SYMBOL;Ll;0;L;<font> 03D1;;;;N;;;;;-1D78C;MATHEMATICAL SANS-SERIF BOLD KAPPA SYMBOL;Ll;0;L;<font> 03F0;;;;N;;;;;-1D78D;MATHEMATICAL SANS-SERIF BOLD PHI SYMBOL;Ll;0;L;<font> 03D5;;;;N;;;;;-1D78E;MATHEMATICAL SANS-SERIF BOLD RHO SYMBOL;Ll;0;L;<font> 03F1;;;;N;;;;;-1D78F;MATHEMATICAL SANS-SERIF BOLD PI SYMBOL;Ll;0;L;<font> 03D6;;;;N;;;;;-1D790;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA;Lu;0;L;<font> 0391;;;;N;;;;;-1D791;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL BETA;Lu;0;L;<font> 0392;;;;N;;;;;-1D792;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL GAMMA;Lu;0;L;<font> 0393;;;;N;;;;;-1D793;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL DELTA;Lu;0;L;<font> 0394;;;;N;;;;;-1D794;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL EPSILON;Lu;0;L;<font> 0395;;;;N;;;;;-1D795;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ZETA;Lu;0;L;<font> 0396;;;;N;;;;;-1D796;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ETA;Lu;0;L;<font> 0397;;;;N;;;;;-1D797;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA;Lu;0;L;<font> 0398;;;;N;;;;;-1D798;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL IOTA;Lu;0;L;<font> 0399;;;;N;;;;;-1D799;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL KAPPA;Lu;0;L;<font> 039A;;;;N;;;;;-1D79A;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL LAMDA;Lu;0;L;<font> 039B;;;;N;;;;;-1D79B;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL MU;Lu;0;L;<font> 039C;;;;N;;;;;-1D79C;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL NU;Lu;0;L;<font> 039D;;;;N;;;;;-1D79D;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL XI;Lu;0;L;<font> 039E;;;;N;;;;;-1D79E;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMICRON;Lu;0;L;<font> 039F;;;;N;;;;;-1D79F;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PI;Lu;0;L;<font> 03A0;;;;N;;;;;-1D7A0;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL RHO;Lu;0;L;<font> 03A1;;;;N;;;;;-1D7A1;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA SYMBOL;Lu;0;L;<font> 03F4;;;;N;;;;;-1D7A2;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL SIGMA;Lu;0;L;<font> 03A3;;;;N;;;;;-1D7A3;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL TAU;Lu;0;L;<font> 03A4;;;;N;;;;;-1D7A4;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL UPSILON;Lu;0;L;<font> 03A5;;;;N;;;;;-1D7A5;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PHI;Lu;0;L;<font> 03A6;;;;N;;;;;-1D7A6;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL CHI;Lu;0;L;<font> 03A7;;;;N;;;;;-1D7A7;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PSI;Lu;0;L;<font> 03A8;;;;N;;;;;-1D7A8;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA;Lu;0;L;<font> 03A9;;;;N;;;;;-1D7A9;MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA;Sm;0;L;<font> 2207;;;;N;;;;;-1D7AA;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA;Ll;0;L;<font> 03B1;;;;N;;;;;-1D7AB;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL BETA;Ll;0;L;<font> 03B2;;;;N;;;;;-1D7AC;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL GAMMA;Ll;0;L;<font> 03B3;;;;N;;;;;-1D7AD;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL DELTA;Ll;0;L;<font> 03B4;;;;N;;;;;-1D7AE;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL EPSILON;Ll;0;L;<font> 03B5;;;;N;;;;;-1D7AF;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ZETA;Ll;0;L;<font> 03B6;;;;N;;;;;-1D7B0;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ETA;Ll;0;L;<font> 03B7;;;;N;;;;;-1D7B1;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL THETA;Ll;0;L;<font> 03B8;;;;N;;;;;-1D7B2;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL IOTA;Ll;0;L;<font> 03B9;;;;N;;;;;-1D7B3;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL KAPPA;Ll;0;L;<font> 03BA;;;;N;;;;;-1D7B4;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL LAMDA;Ll;0;L;<font> 03BB;;;;N;;;;;-1D7B5;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL MU;Ll;0;L;<font> 03BC;;;;N;;;;;-1D7B6;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL NU;Ll;0;L;<font> 03BD;;;;N;;;;;-1D7B7;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL XI;Ll;0;L;<font> 03BE;;;;N;;;;;-1D7B8;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMICRON;Ll;0;L;<font> 03BF;;;;N;;;;;-1D7B9;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PI;Ll;0;L;<font> 03C0;;;;N;;;;;-1D7BA;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL RHO;Ll;0;L;<font> 03C1;;;;N;;;;;-1D7BB;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL FINAL SIGMA;Ll;0;L;<font> 03C2;;;;N;;;;;-1D7BC;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL SIGMA;Ll;0;L;<font> 03C3;;;;N;;;;;-1D7BD;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL TAU;Ll;0;L;<font> 03C4;;;;N;;;;;-1D7BE;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL UPSILON;Ll;0;L;<font> 03C5;;;;N;;;;;-1D7BF;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PHI;Ll;0;L;<font> 03C6;;;;N;;;;;-1D7C0;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL CHI;Ll;0;L;<font> 03C7;;;;N;;;;;-1D7C1;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PSI;Ll;0;L;<font> 03C8;;;;N;;;;;-1D7C2;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA;Ll;0;L;<font> 03C9;;;;N;;;;;-1D7C3;MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL;Sm;0;L;<font> 2202;;;;Y;;;;;-1D7C4;MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL;Ll;0;L;<font> 03F5;;;;N;;;;;-1D7C5;MATHEMATICAL SANS-SERIF BOLD ITALIC THETA SYMBOL;Ll;0;L;<font> 03D1;;;;N;;;;;-1D7C6;MATHEMATICAL SANS-SERIF BOLD ITALIC KAPPA SYMBOL;Ll;0;L;<font> 03F0;;;;N;;;;;-1D7C7;MATHEMATICAL SANS-SERIF BOLD ITALIC PHI SYMBOL;Ll;0;L;<font> 03D5;;;;N;;;;;-1D7C8;MATHEMATICAL SANS-SERIF BOLD ITALIC RHO SYMBOL;Ll;0;L;<font> 03F1;;;;N;;;;;-1D7C9;MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL;Ll;0;L;<font> 03D6;;;;N;;;;;-1D7CA;MATHEMATICAL BOLD CAPITAL DIGAMMA;Lu;0;L;<font> 03DC;;;;N;;;;;-1D7CB;MATHEMATICAL BOLD SMALL DIGAMMA;Ll;0;L;<font> 03DD;;;;N;;;;;-1D7CE;MATHEMATICAL BOLD DIGIT ZERO;Nd;0;EN;<font> 0030;0;0;0;N;;;;;-1D7CF;MATHEMATICAL BOLD DIGIT ONE;Nd;0;EN;<font> 0031;1;1;1;N;;;;;-1D7D0;MATHEMATICAL BOLD DIGIT TWO;Nd;0;EN;<font> 0032;2;2;2;N;;;;;-1D7D1;MATHEMATICAL BOLD DIGIT THREE;Nd;0;EN;<font> 0033;3;3;3;N;;;;;-1D7D2;MATHEMATICAL BOLD DIGIT FOUR;Nd;0;EN;<font> 0034;4;4;4;N;;;;;-1D7D3;MATHEMATICAL BOLD DIGIT FIVE;Nd;0;EN;<font> 0035;5;5;5;N;;;;;-1D7D4;MATHEMATICAL BOLD DIGIT SIX;Nd;0;EN;<font> 0036;6;6;6;N;;;;;-1D7D5;MATHEMATICAL BOLD DIGIT SEVEN;Nd;0;EN;<font> 0037;7;7;7;N;;;;;-1D7D6;MATHEMATICAL BOLD DIGIT EIGHT;Nd;0;EN;<font> 0038;8;8;8;N;;;;;-1D7D7;MATHEMATICAL BOLD DIGIT NINE;Nd;0;EN;<font> 0039;9;9;9;N;;;;;-1D7D8;MATHEMATICAL DOUBLE-STRUCK DIGIT ZERO;Nd;0;EN;<font> 0030;0;0;0;N;;;;;-1D7D9;MATHEMATICAL DOUBLE-STRUCK DIGIT ONE;Nd;0;EN;<font> 0031;1;1;1;N;;;;;-1D7DA;MATHEMATICAL DOUBLE-STRUCK DIGIT TWO;Nd;0;EN;<font> 0032;2;2;2;N;;;;;-1D7DB;MATHEMATICAL DOUBLE-STRUCK DIGIT THREE;Nd;0;EN;<font> 0033;3;3;3;N;;;;;-1D7DC;MATHEMATICAL DOUBLE-STRUCK DIGIT FOUR;Nd;0;EN;<font> 0034;4;4;4;N;;;;;-1D7DD;MATHEMATICAL DOUBLE-STRUCK DIGIT FIVE;Nd;0;EN;<font> 0035;5;5;5;N;;;;;-1D7DE;MATHEMATICAL DOUBLE-STRUCK DIGIT SIX;Nd;0;EN;<font> 0036;6;6;6;N;;;;;-1D7DF;MATHEMATICAL DOUBLE-STRUCK DIGIT SEVEN;Nd;0;EN;<font> 0037;7;7;7;N;;;;;-1D7E0;MATHEMATICAL DOUBLE-STRUCK DIGIT EIGHT;Nd;0;EN;<font> 0038;8;8;8;N;;;;;-1D7E1;MATHEMATICAL DOUBLE-STRUCK DIGIT NINE;Nd;0;EN;<font> 0039;9;9;9;N;;;;;-1D7E2;MATHEMATICAL SANS-SERIF DIGIT ZERO;Nd;0;EN;<font> 0030;0;0;0;N;;;;;-1D7E3;MATHEMATICAL SANS-SERIF DIGIT ONE;Nd;0;EN;<font> 0031;1;1;1;N;;;;;-1D7E4;MATHEMATICAL SANS-SERIF DIGIT TWO;Nd;0;EN;<font> 0032;2;2;2;N;;;;;-1D7E5;MATHEMATICAL SANS-SERIF DIGIT THREE;Nd;0;EN;<font> 0033;3;3;3;N;;;;;-1D7E6;MATHEMATICAL SANS-SERIF DIGIT FOUR;Nd;0;EN;<font> 0034;4;4;4;N;;;;;-1D7E7;MATHEMATICAL SANS-SERIF DIGIT FIVE;Nd;0;EN;<font> 0035;5;5;5;N;;;;;-1D7E8;MATHEMATICAL SANS-SERIF DIGIT SIX;Nd;0;EN;<font> 0036;6;6;6;N;;;;;-1D7E9;MATHEMATICAL SANS-SERIF DIGIT SEVEN;Nd;0;EN;<font> 0037;7;7;7;N;;;;;-1D7EA;MATHEMATICAL SANS-SERIF DIGIT EIGHT;Nd;0;EN;<font> 0038;8;8;8;N;;;;;-1D7EB;MATHEMATICAL SANS-SERIF DIGIT NINE;Nd;0;EN;<font> 0039;9;9;9;N;;;;;-1D7EC;MATHEMATICAL SANS-SERIF BOLD DIGIT ZERO;Nd;0;EN;<font> 0030;0;0;0;N;;;;;-1D7ED;MATHEMATICAL SANS-SERIF BOLD DIGIT ONE;Nd;0;EN;<font> 0031;1;1;1;N;;;;;-1D7EE;MATHEMATICAL SANS-SERIF BOLD DIGIT TWO;Nd;0;EN;<font> 0032;2;2;2;N;;;;;-1D7EF;MATHEMATICAL SANS-SERIF BOLD DIGIT THREE;Nd;0;EN;<font> 0033;3;3;3;N;;;;;-1D7F0;MATHEMATICAL SANS-SERIF BOLD DIGIT FOUR;Nd;0;EN;<font> 0034;4;4;4;N;;;;;-1D7F1;MATHEMATICAL SANS-SERIF BOLD DIGIT FIVE;Nd;0;EN;<font> 0035;5;5;5;N;;;;;-1D7F2;MATHEMATICAL SANS-SERIF BOLD DIGIT SIX;Nd;0;EN;<font> 0036;6;6;6;N;;;;;-1D7F3;MATHEMATICAL SANS-SERIF BOLD DIGIT SEVEN;Nd;0;EN;<font> 0037;7;7;7;N;;;;;-1D7F4;MATHEMATICAL SANS-SERIF BOLD DIGIT EIGHT;Nd;0;EN;<font> 0038;8;8;8;N;;;;;-1D7F5;MATHEMATICAL SANS-SERIF BOLD DIGIT NINE;Nd;0;EN;<font> 0039;9;9;9;N;;;;;-1D7F6;MATHEMATICAL MONOSPACE DIGIT ZERO;Nd;0;EN;<font> 0030;0;0;0;N;;;;;-1D7F7;MATHEMATICAL MONOSPACE DIGIT ONE;Nd;0;EN;<font> 0031;1;1;1;N;;;;;-1D7F8;MATHEMATICAL MONOSPACE DIGIT TWO;Nd;0;EN;<font> 0032;2;2;2;N;;;;;-1D7F9;MATHEMATICAL MONOSPACE DIGIT THREE;Nd;0;EN;<font> 0033;3;3;3;N;;;;;-1D7FA;MATHEMATICAL MONOSPACE DIGIT FOUR;Nd;0;EN;<font> 0034;4;4;4;N;;;;;-1D7FB;MATHEMATICAL MONOSPACE DIGIT FIVE;Nd;0;EN;<font> 0035;5;5;5;N;;;;;-1D7FC;MATHEMATICAL MONOSPACE DIGIT SIX;Nd;0;EN;<font> 0036;6;6;6;N;;;;;-1D7FD;MATHEMATICAL MONOSPACE DIGIT SEVEN;Nd;0;EN;<font> 0037;7;7;7;N;;;;;-1D7FE;MATHEMATICAL MONOSPACE DIGIT EIGHT;Nd;0;EN;<font> 0038;8;8;8;N;;;;;-1D7FF;MATHEMATICAL MONOSPACE DIGIT NINE;Nd;0;EN;<font> 0039;9;9;9;N;;;;;-20000;<CJK Ideograph Extension B, First>;Lo;0;L;;;;;N;;;;;-2A6D6;<CJK Ideograph Extension B, Last>;Lo;0;L;;;;;N;;;;;-2F800;CJK COMPATIBILITY IDEOGRAPH-2F800;Lo;0;L;4E3D;;;;N;;;;;-2F801;CJK COMPATIBILITY IDEOGRAPH-2F801;Lo;0;L;4E38;;;;N;;;;;-2F802;CJK COMPATIBILITY IDEOGRAPH-2F802;Lo;0;L;4E41;;;;N;;;;;-2F803;CJK COMPATIBILITY IDEOGRAPH-2F803;Lo;0;L;20122;;;;N;;;;;-2F804;CJK COMPATIBILITY IDEOGRAPH-2F804;Lo;0;L;4F60;;;;N;;;;;-2F805;CJK COMPATIBILITY IDEOGRAPH-2F805;Lo;0;L;4FAE;;;;N;;;;;-2F806;CJK COMPATIBILITY IDEOGRAPH-2F806;Lo;0;L;4FBB;;;;N;;;;;-2F807;CJK COMPATIBILITY IDEOGRAPH-2F807;Lo;0;L;5002;;;;N;;;;;-2F808;CJK COMPATIBILITY IDEOGRAPH-2F808;Lo;0;L;507A;;;;N;;;;;-2F809;CJK COMPATIBILITY IDEOGRAPH-2F809;Lo;0;L;5099;;;;N;;;;;-2F80A;CJK COMPATIBILITY IDEOGRAPH-2F80A;Lo;0;L;50E7;;;;N;;;;;-2F80B;CJK COMPATIBILITY IDEOGRAPH-2F80B;Lo;0;L;50CF;;;;N;;;;;-2F80C;CJK COMPATIBILITY IDEOGRAPH-2F80C;Lo;0;L;349E;;;;N;;;;;-2F80D;CJK COMPATIBILITY IDEOGRAPH-2F80D;Lo;0;L;2063A;;;;N;;;;;-2F80E;CJK COMPATIBILITY IDEOGRAPH-2F80E;Lo;0;L;514D;;;;N;;;;;-2F80F;CJK COMPATIBILITY IDEOGRAPH-2F80F;Lo;0;L;5154;;;;N;;;;;-2F810;CJK COMPATIBILITY IDEOGRAPH-2F810;Lo;0;L;5164;;;;N;;;;;-2F811;CJK COMPATIBILITY IDEOGRAPH-2F811;Lo;0;L;5177;;;;N;;;;;-2F812;CJK COMPATIBILITY IDEOGRAPH-2F812;Lo;0;L;2051C;;;;N;;;;;-2F813;CJK COMPATIBILITY IDEOGRAPH-2F813;Lo;0;L;34B9;;;;N;;;;;-2F814;CJK COMPATIBILITY IDEOGRAPH-2F814;Lo;0;L;5167;;;;N;;;;;-2F815;CJK COMPATIBILITY IDEOGRAPH-2F815;Lo;0;L;518D;;;;N;;;;;-2F816;CJK COMPATIBILITY IDEOGRAPH-2F816;Lo;0;L;2054B;;;;N;;;;;-2F817;CJK COMPATIBILITY IDEOGRAPH-2F817;Lo;0;L;5197;;;;N;;;;;-2F818;CJK COMPATIBILITY IDEOGRAPH-2F818;Lo;0;L;51A4;;;;N;;;;;-2F819;CJK COMPATIBILITY IDEOGRAPH-2F819;Lo;0;L;4ECC;;;;N;;;;;-2F81A;CJK COMPATIBILITY IDEOGRAPH-2F81A;Lo;0;L;51AC;;;;N;;;;;-2F81B;CJK COMPATIBILITY IDEOGRAPH-2F81B;Lo;0;L;51B5;;;;N;;;;;-2F81C;CJK COMPATIBILITY IDEOGRAPH-2F81C;Lo;0;L;291DF;;;;N;;;;;-2F81D;CJK COMPATIBILITY IDEOGRAPH-2F81D;Lo;0;L;51F5;;;;N;;;;;-2F81E;CJK COMPATIBILITY IDEOGRAPH-2F81E;Lo;0;L;5203;;;;N;;;;;-2F81F;CJK COMPATIBILITY IDEOGRAPH-2F81F;Lo;0;L;34DF;;;;N;;;;;-2F820;CJK COMPATIBILITY IDEOGRAPH-2F820;Lo;0;L;523B;;;;N;;;;;-2F821;CJK COMPATIBILITY IDEOGRAPH-2F821;Lo;0;L;5246;;;;N;;;;;-2F822;CJK COMPATIBILITY IDEOGRAPH-2F822;Lo;0;L;5272;;;;N;;;;;-2F823;CJK COMPATIBILITY IDEOGRAPH-2F823;Lo;0;L;5277;;;;N;;;;;-2F824;CJK COMPATIBILITY IDEOGRAPH-2F824;Lo;0;L;3515;;;;N;;;;;-2F825;CJK COMPATIBILITY IDEOGRAPH-2F825;Lo;0;L;52C7;;;;N;;;;;-2F826;CJK COMPATIBILITY IDEOGRAPH-2F826;Lo;0;L;52C9;;;;N;;;;;-2F827;CJK COMPATIBILITY IDEOGRAPH-2F827;Lo;0;L;52E4;;;;N;;;;;-2F828;CJK COMPATIBILITY IDEOGRAPH-2F828;Lo;0;L;52FA;;;;N;;;;;-2F829;CJK COMPATIBILITY IDEOGRAPH-2F829;Lo;0;L;5305;;;;N;;;;;-2F82A;CJK COMPATIBILITY IDEOGRAPH-2F82A;Lo;0;L;5306;;;;N;;;;;-2F82B;CJK COMPATIBILITY IDEOGRAPH-2F82B;Lo;0;L;5317;;;;N;;;;;-2F82C;CJK COMPATIBILITY IDEOGRAPH-2F82C;Lo;0;L;5349;;;;N;;;;;-2F82D;CJK COMPATIBILITY IDEOGRAPH-2F82D;Lo;0;L;5351;;;;N;;;;;-2F82E;CJK COMPATIBILITY IDEOGRAPH-2F82E;Lo;0;L;535A;;;;N;;;;;-2F82F;CJK COMPATIBILITY IDEOGRAPH-2F82F;Lo;0;L;5373;;;;N;;;;;-2F830;CJK COMPATIBILITY IDEOGRAPH-2F830;Lo;0;L;537D;;;;N;;;;;-2F831;CJK COMPATIBILITY IDEOGRAPH-2F831;Lo;0;L;537F;;;;N;;;;;-2F832;CJK COMPATIBILITY IDEOGRAPH-2F832;Lo;0;L;537F;;;;N;;;;;-2F833;CJK COMPATIBILITY IDEOGRAPH-2F833;Lo;0;L;537F;;;;N;;;;;-2F834;CJK COMPATIBILITY IDEOGRAPH-2F834;Lo;0;L;20A2C;;;;N;;;;;-2F835;CJK COMPATIBILITY IDEOGRAPH-2F835;Lo;0;L;7070;;;;N;;;;;-2F836;CJK COMPATIBILITY IDEOGRAPH-2F836;Lo;0;L;53CA;;;;N;;;;;-2F837;CJK COMPATIBILITY IDEOGRAPH-2F837;Lo;0;L;53DF;;;;N;;;;;-2F838;CJK COMPATIBILITY IDEOGRAPH-2F838;Lo;0;L;20B63;;;;N;;;;;-2F839;CJK COMPATIBILITY IDEOGRAPH-2F839;Lo;0;L;53EB;;;;N;;;;;-2F83A;CJK COMPATIBILITY IDEOGRAPH-2F83A;Lo;0;L;53F1;;;;N;;;;;-2F83B;CJK COMPATIBILITY IDEOGRAPH-2F83B;Lo;0;L;5406;;;;N;;;;;-2F83C;CJK COMPATIBILITY IDEOGRAPH-2F83C;Lo;0;L;549E;;;;N;;;;;-2F83D;CJK COMPATIBILITY IDEOGRAPH-2F83D;Lo;0;L;5438;;;;N;;;;;-2F83E;CJK COMPATIBILITY IDEOGRAPH-2F83E;Lo;0;L;5448;;;;N;;;;;-2F83F;CJK COMPATIBILITY IDEOGRAPH-2F83F;Lo;0;L;5468;;;;N;;;;;-2F840;CJK COMPATIBILITY IDEOGRAPH-2F840;Lo;0;L;54A2;;;;N;;;;;-2F841;CJK COMPATIBILITY IDEOGRAPH-2F841;Lo;0;L;54F6;;;;N;;;;;-2F842;CJK COMPATIBILITY IDEOGRAPH-2F842;Lo;0;L;5510;;;;N;;;;;-2F843;CJK COMPATIBILITY IDEOGRAPH-2F843;Lo;0;L;5553;;;;N;;;;;-2F844;CJK COMPATIBILITY IDEOGRAPH-2F844;Lo;0;L;5563;;;;N;;;;;-2F845;CJK COMPATIBILITY IDEOGRAPH-2F845;Lo;0;L;5584;;;;N;;;;;-2F846;CJK COMPATIBILITY IDEOGRAPH-2F846;Lo;0;L;5584;;;;N;;;;;-2F847;CJK COMPATIBILITY IDEOGRAPH-2F847;Lo;0;L;5599;;;;N;;;;;-2F848;CJK COMPATIBILITY IDEOGRAPH-2F848;Lo;0;L;55AB;;;;N;;;;;-2F849;CJK COMPATIBILITY IDEOGRAPH-2F849;Lo;0;L;55B3;;;;N;;;;;-2F84A;CJK COMPATIBILITY IDEOGRAPH-2F84A;Lo;0;L;55C2;;;;N;;;;;-2F84B;CJK COMPATIBILITY IDEOGRAPH-2F84B;Lo;0;L;5716;;;;N;;;;;-2F84C;CJK COMPATIBILITY IDEOGRAPH-2F84C;Lo;0;L;5606;;;;N;;;;;-2F84D;CJK COMPATIBILITY IDEOGRAPH-2F84D;Lo;0;L;5717;;;;N;;;;;-2F84E;CJK COMPATIBILITY IDEOGRAPH-2F84E;Lo;0;L;5651;;;;N;;;;;-2F84F;CJK COMPATIBILITY IDEOGRAPH-2F84F;Lo;0;L;5674;;;;N;;;;;-2F850;CJK COMPATIBILITY IDEOGRAPH-2F850;Lo;0;L;5207;;;;N;;;;;-2F851;CJK COMPATIBILITY IDEOGRAPH-2F851;Lo;0;L;58EE;;;;N;;;;;-2F852;CJK COMPATIBILITY IDEOGRAPH-2F852;Lo;0;L;57CE;;;;N;;;;;-2F853;CJK COMPATIBILITY IDEOGRAPH-2F853;Lo;0;L;57F4;;;;N;;;;;-2F854;CJK COMPATIBILITY IDEOGRAPH-2F854;Lo;0;L;580D;;;;N;;;;;-2F855;CJK COMPATIBILITY IDEOGRAPH-2F855;Lo;0;L;578B;;;;N;;;;;-2F856;CJK COMPATIBILITY IDEOGRAPH-2F856;Lo;0;L;5832;;;;N;;;;;-2F857;CJK COMPATIBILITY IDEOGRAPH-2F857;Lo;0;L;5831;;;;N;;;;;-2F858;CJK COMPATIBILITY IDEOGRAPH-2F858;Lo;0;L;58AC;;;;N;;;;;-2F859;CJK COMPATIBILITY IDEOGRAPH-2F859;Lo;0;L;214E4;;;;N;;;;;-2F85A;CJK COMPATIBILITY IDEOGRAPH-2F85A;Lo;0;L;58F2;;;;N;;;;;-2F85B;CJK COMPATIBILITY IDEOGRAPH-2F85B;Lo;0;L;58F7;;;;N;;;;;-2F85C;CJK COMPATIBILITY IDEOGRAPH-2F85C;Lo;0;L;5906;;;;N;;;;;-2F85D;CJK COMPATIBILITY IDEOGRAPH-2F85D;Lo;0;L;591A;;;;N;;;;;-2F85E;CJK COMPATIBILITY IDEOGRAPH-2F85E;Lo;0;L;5922;;;;N;;;;;-2F85F;CJK COMPATIBILITY IDEOGRAPH-2F85F;Lo;0;L;5962;;;;N;;;;;-2F860;CJK COMPATIBILITY IDEOGRAPH-2F860;Lo;0;L;216A8;;;;N;;;;;-2F861;CJK COMPATIBILITY IDEOGRAPH-2F861;Lo;0;L;216EA;;;;N;;;;;-2F862;CJK COMPATIBILITY IDEOGRAPH-2F862;Lo;0;L;59EC;;;;N;;;;;-2F863;CJK COMPATIBILITY IDEOGRAPH-2F863;Lo;0;L;5A1B;;;;N;;;;;-2F864;CJK COMPATIBILITY IDEOGRAPH-2F864;Lo;0;L;5A27;;;;N;;;;;-2F865;CJK COMPATIBILITY IDEOGRAPH-2F865;Lo;0;L;59D8;;;;N;;;;;-2F866;CJK COMPATIBILITY IDEOGRAPH-2F866;Lo;0;L;5A66;;;;N;;;;;-2F867;CJK COMPATIBILITY IDEOGRAPH-2F867;Lo;0;L;36EE;;;;N;;;;;-2F868;CJK COMPATIBILITY IDEOGRAPH-2F868;Lo;0;L;36FC;;;;N;;;;;-2F869;CJK COMPATIBILITY IDEOGRAPH-2F869;Lo;0;L;5B08;;;;N;;;;;-2F86A;CJK COMPATIBILITY IDEOGRAPH-2F86A;Lo;0;L;5B3E;;;;N;;;;;-2F86B;CJK COMPATIBILITY IDEOGRAPH-2F86B;Lo;0;L;5B3E;;;;N;;;;;-2F86C;CJK COMPATIBILITY IDEOGRAPH-2F86C;Lo;0;L;219C8;;;;N;;;;;-2F86D;CJK COMPATIBILITY IDEOGRAPH-2F86D;Lo;0;L;5BC3;;;;N;;;;;-2F86E;CJK COMPATIBILITY IDEOGRAPH-2F86E;Lo;0;L;5BD8;;;;N;;;;;-2F86F;CJK COMPATIBILITY IDEOGRAPH-2F86F;Lo;0;L;5BE7;;;;N;;;;;-2F870;CJK COMPATIBILITY IDEOGRAPH-2F870;Lo;0;L;5BF3;;;;N;;;;;-2F871;CJK COMPATIBILITY IDEOGRAPH-2F871;Lo;0;L;21B18;;;;N;;;;;-2F872;CJK COMPATIBILITY IDEOGRAPH-2F872;Lo;0;L;5BFF;;;;N;;;;;-2F873;CJK COMPATIBILITY IDEOGRAPH-2F873;Lo;0;L;5C06;;;;N;;;;;-2F874;CJK COMPATIBILITY IDEOGRAPH-2F874;Lo;0;L;5F53;;;;N;;;;;-2F875;CJK COMPATIBILITY IDEOGRAPH-2F875;Lo;0;L;5C22;;;;N;;;;;-2F876;CJK COMPATIBILITY IDEOGRAPH-2F876;Lo;0;L;3781;;;;N;;;;;-2F877;CJK COMPATIBILITY IDEOGRAPH-2F877;Lo;0;L;5C60;;;;N;;;;;-2F878;CJK COMPATIBILITY IDEOGRAPH-2F878;Lo;0;L;5C6E;;;;N;;;;;-2F879;CJK COMPATIBILITY IDEOGRAPH-2F879;Lo;0;L;5CC0;;;;N;;;;;-2F87A;CJK COMPATIBILITY IDEOGRAPH-2F87A;Lo;0;L;5C8D;;;;N;;;;;-2F87B;CJK COMPATIBILITY IDEOGRAPH-2F87B;Lo;0;L;21DE4;;;;N;;;;;-2F87C;CJK COMPATIBILITY IDEOGRAPH-2F87C;Lo;0;L;5D43;;;;N;;;;;-2F87D;CJK COMPATIBILITY IDEOGRAPH-2F87D;Lo;0;L;21DE6;;;;N;;;;;-2F87E;CJK COMPATIBILITY IDEOGRAPH-2F87E;Lo;0;L;5D6E;;;;N;;;;;-2F87F;CJK COMPATIBILITY IDEOGRAPH-2F87F;Lo;0;L;5D6B;;;;N;;;;;-2F880;CJK COMPATIBILITY IDEOGRAPH-2F880;Lo;0;L;5D7C;;;;N;;;;;-2F881;CJK COMPATIBILITY IDEOGRAPH-2F881;Lo;0;L;5DE1;;;;N;;;;;-2F882;CJK COMPATIBILITY IDEOGRAPH-2F882;Lo;0;L;5DE2;;;;N;;;;;-2F883;CJK COMPATIBILITY IDEOGRAPH-2F883;Lo;0;L;382F;;;;N;;;;;-2F884;CJK COMPATIBILITY IDEOGRAPH-2F884;Lo;0;L;5DFD;;;;N;;;;;-2F885;CJK COMPATIBILITY IDEOGRAPH-2F885;Lo;0;L;5E28;;;;N;;;;;-2F886;CJK COMPATIBILITY IDEOGRAPH-2F886;Lo;0;L;5E3D;;;;N;;;;;-2F887;CJK COMPATIBILITY IDEOGRAPH-2F887;Lo;0;L;5E69;;;;N;;;;;-2F888;CJK COMPATIBILITY IDEOGRAPH-2F888;Lo;0;L;3862;;;;N;;;;;-2F889;CJK COMPATIBILITY IDEOGRAPH-2F889;Lo;0;L;22183;;;;N;;;;;-2F88A;CJK COMPATIBILITY IDEOGRAPH-2F88A;Lo;0;L;387C;;;;N;;;;;-2F88B;CJK COMPATIBILITY IDEOGRAPH-2F88B;Lo;0;L;5EB0;;;;N;;;;;-2F88C;CJK COMPATIBILITY IDEOGRAPH-2F88C;Lo;0;L;5EB3;;;;N;;;;;-2F88D;CJK COMPATIBILITY IDEOGRAPH-2F88D;Lo;0;L;5EB6;;;;N;;;;;-2F88E;CJK COMPATIBILITY IDEOGRAPH-2F88E;Lo;0;L;5ECA;;;;N;;;;;-2F88F;CJK COMPATIBILITY IDEOGRAPH-2F88F;Lo;0;L;2A392;;;;N;;;;;-2F890;CJK COMPATIBILITY IDEOGRAPH-2F890;Lo;0;L;5EFE;;;;N;;;;;-2F891;CJK COMPATIBILITY IDEOGRAPH-2F891;Lo;0;L;22331;;;;N;;;;;-2F892;CJK COMPATIBILITY IDEOGRAPH-2F892;Lo;0;L;22331;;;;N;;;;;-2F893;CJK COMPATIBILITY IDEOGRAPH-2F893;Lo;0;L;8201;;;;N;;;;;-2F894;CJK COMPATIBILITY IDEOGRAPH-2F894;Lo;0;L;5F22;;;;N;;;;;-2F895;CJK COMPATIBILITY IDEOGRAPH-2F895;Lo;0;L;5F22;;;;N;;;;;-2F896;CJK COMPATIBILITY IDEOGRAPH-2F896;Lo;0;L;38C7;;;;N;;;;;-2F897;CJK COMPATIBILITY IDEOGRAPH-2F897;Lo;0;L;232B8;;;;N;;;;;-2F898;CJK COMPATIBILITY IDEOGRAPH-2F898;Lo;0;L;261DA;;;;N;;;;;-2F899;CJK COMPATIBILITY IDEOGRAPH-2F899;Lo;0;L;5F62;;;;N;;;;;-2F89A;CJK COMPATIBILITY IDEOGRAPH-2F89A;Lo;0;L;5F6B;;;;N;;;;;-2F89B;CJK COMPATIBILITY IDEOGRAPH-2F89B;Lo;0;L;38E3;;;;N;;;;;-2F89C;CJK COMPATIBILITY IDEOGRAPH-2F89C;Lo;0;L;5F9A;;;;N;;;;;-2F89D;CJK COMPATIBILITY IDEOGRAPH-2F89D;Lo;0;L;5FCD;;;;N;;;;;-2F89E;CJK COMPATIBILITY IDEOGRAPH-2F89E;Lo;0;L;5FD7;;;;N;;;;;-2F89F;CJK COMPATIBILITY IDEOGRAPH-2F89F;Lo;0;L;5FF9;;;;N;;;;;-2F8A0;CJK COMPATIBILITY IDEOGRAPH-2F8A0;Lo;0;L;6081;;;;N;;;;;-2F8A1;CJK COMPATIBILITY IDEOGRAPH-2F8A1;Lo;0;L;393A;;;;N;;;;;-2F8A2;CJK COMPATIBILITY IDEOGRAPH-2F8A2;Lo;0;L;391C;;;;N;;;;;-2F8A3;CJK COMPATIBILITY IDEOGRAPH-2F8A3;Lo;0;L;6094;;;;N;;;;;-2F8A4;CJK COMPATIBILITY IDEOGRAPH-2F8A4;Lo;0;L;226D4;;;;N;;;;;-2F8A5;CJK COMPATIBILITY IDEOGRAPH-2F8A5;Lo;0;L;60C7;;;;N;;;;;-2F8A6;CJK COMPATIBILITY IDEOGRAPH-2F8A6;Lo;0;L;6148;;;;N;;;;;-2F8A7;CJK COMPATIBILITY IDEOGRAPH-2F8A7;Lo;0;L;614C;;;;N;;;;;-2F8A8;CJK COMPATIBILITY IDEOGRAPH-2F8A8;Lo;0;L;614E;;;;N;;;;;-2F8A9;CJK COMPATIBILITY IDEOGRAPH-2F8A9;Lo;0;L;614C;;;;N;;;;;-2F8AA;CJK COMPATIBILITY IDEOGRAPH-2F8AA;Lo;0;L;617A;;;;N;;;;;-2F8AB;CJK COMPATIBILITY IDEOGRAPH-2F8AB;Lo;0;L;618E;;;;N;;;;;-2F8AC;CJK COMPATIBILITY IDEOGRAPH-2F8AC;Lo;0;L;61B2;;;;N;;;;;-2F8AD;CJK COMPATIBILITY IDEOGRAPH-2F8AD;Lo;0;L;61A4;;;;N;;;;;-2F8AE;CJK COMPATIBILITY IDEOGRAPH-2F8AE;Lo;0;L;61AF;;;;N;;;;;-2F8AF;CJK COMPATIBILITY IDEOGRAPH-2F8AF;Lo;0;L;61DE;;;;N;;;;;-2F8B0;CJK COMPATIBILITY IDEOGRAPH-2F8B0;Lo;0;L;61F2;;;;N;;;;;-2F8B1;CJK COMPATIBILITY IDEOGRAPH-2F8B1;Lo;0;L;61F6;;;;N;;;;;-2F8B2;CJK COMPATIBILITY IDEOGRAPH-2F8B2;Lo;0;L;6210;;;;N;;;;;-2F8B3;CJK COMPATIBILITY IDEOGRAPH-2F8B3;Lo;0;L;621B;;;;N;;;;;-2F8B4;CJK COMPATIBILITY IDEOGRAPH-2F8B4;Lo;0;L;625D;;;;N;;;;;-2F8B5;CJK COMPATIBILITY IDEOGRAPH-2F8B5;Lo;0;L;62B1;;;;N;;;;;-2F8B6;CJK COMPATIBILITY IDEOGRAPH-2F8B6;Lo;0;L;62D4;;;;N;;;;;-2F8B7;CJK COMPATIBILITY IDEOGRAPH-2F8B7;Lo;0;L;6350;;;;N;;;;;-2F8B8;CJK COMPATIBILITY IDEOGRAPH-2F8B8;Lo;0;L;22B0C;;;;N;;;;;-2F8B9;CJK COMPATIBILITY IDEOGRAPH-2F8B9;Lo;0;L;633D;;;;N;;;;;-2F8BA;CJK COMPATIBILITY IDEOGRAPH-2F8BA;Lo;0;L;62FC;;;;N;;;;;-2F8BB;CJK COMPATIBILITY IDEOGRAPH-2F8BB;Lo;0;L;6368;;;;N;;;;;-2F8BC;CJK COMPATIBILITY IDEOGRAPH-2F8BC;Lo;0;L;6383;;;;N;;;;;-2F8BD;CJK COMPATIBILITY IDEOGRAPH-2F8BD;Lo;0;L;63E4;;;;N;;;;;-2F8BE;CJK COMPATIBILITY IDEOGRAPH-2F8BE;Lo;0;L;22BF1;;;;N;;;;;-2F8BF;CJK COMPATIBILITY IDEOGRAPH-2F8BF;Lo;0;L;6422;;;;N;;;;;-2F8C0;CJK COMPATIBILITY IDEOGRAPH-2F8C0;Lo;0;L;63C5;;;;N;;;;;-2F8C1;CJK COMPATIBILITY IDEOGRAPH-2F8C1;Lo;0;L;63A9;;;;N;;;;;-2F8C2;CJK COMPATIBILITY IDEOGRAPH-2F8C2;Lo;0;L;3A2E;;;;N;;;;;-2F8C3;CJK COMPATIBILITY IDEOGRAPH-2F8C3;Lo;0;L;6469;;;;N;;;;;-2F8C4;CJK COMPATIBILITY IDEOGRAPH-2F8C4;Lo;0;L;647E;;;;N;;;;;-2F8C5;CJK COMPATIBILITY IDEOGRAPH-2F8C5;Lo;0;L;649D;;;;N;;;;;-2F8C6;CJK COMPATIBILITY IDEOGRAPH-2F8C6;Lo;0;L;6477;;;;N;;;;;-2F8C7;CJK COMPATIBILITY IDEOGRAPH-2F8C7;Lo;0;L;3A6C;;;;N;;;;;-2F8C8;CJK COMPATIBILITY IDEOGRAPH-2F8C8;Lo;0;L;654F;;;;N;;;;;-2F8C9;CJK COMPATIBILITY IDEOGRAPH-2F8C9;Lo;0;L;656C;;;;N;;;;;-2F8CA;CJK COMPATIBILITY IDEOGRAPH-2F8CA;Lo;0;L;2300A;;;;N;;;;;-2F8CB;CJK COMPATIBILITY IDEOGRAPH-2F8CB;Lo;0;L;65E3;;;;N;;;;;-2F8CC;CJK COMPATIBILITY IDEOGRAPH-2F8CC;Lo;0;L;66F8;;;;N;;;;;-2F8CD;CJK COMPATIBILITY IDEOGRAPH-2F8CD;Lo;0;L;6649;;;;N;;;;;-2F8CE;CJK COMPATIBILITY IDEOGRAPH-2F8CE;Lo;0;L;3B19;;;;N;;;;;-2F8CF;CJK COMPATIBILITY IDEOGRAPH-2F8CF;Lo;0;L;6691;;;;N;;;;;-2F8D0;CJK COMPATIBILITY IDEOGRAPH-2F8D0;Lo;0;L;3B08;;;;N;;;;;-2F8D1;CJK COMPATIBILITY IDEOGRAPH-2F8D1;Lo;0;L;3AE4;;;;N;;;;;-2F8D2;CJK COMPATIBILITY IDEOGRAPH-2F8D2;Lo;0;L;5192;;;;N;;;;;-2F8D3;CJK COMPATIBILITY IDEOGRAPH-2F8D3;Lo;0;L;5195;;;;N;;;;;-2F8D4;CJK COMPATIBILITY IDEOGRAPH-2F8D4;Lo;0;L;6700;;;;N;;;;;-2F8D5;CJK COMPATIBILITY IDEOGRAPH-2F8D5;Lo;0;L;669C;;;;N;;;;;-2F8D6;CJK COMPATIBILITY IDEOGRAPH-2F8D6;Lo;0;L;80AD;;;;N;;;;;-2F8D7;CJK COMPATIBILITY IDEOGRAPH-2F8D7;Lo;0;L;43D9;;;;N;;;;;-2F8D8;CJK COMPATIBILITY IDEOGRAPH-2F8D8;Lo;0;L;6717;;;;N;;;;;-2F8D9;CJK COMPATIBILITY IDEOGRAPH-2F8D9;Lo;0;L;671B;;;;N;;;;;-2F8DA;CJK COMPATIBILITY IDEOGRAPH-2F8DA;Lo;0;L;6721;;;;N;;;;;-2F8DB;CJK COMPATIBILITY IDEOGRAPH-2F8DB;Lo;0;L;675E;;;;N;;;;;-2F8DC;CJK COMPATIBILITY IDEOGRAPH-2F8DC;Lo;0;L;6753;;;;N;;;;;-2F8DD;CJK COMPATIBILITY IDEOGRAPH-2F8DD;Lo;0;L;233C3;;;;N;;;;;-2F8DE;CJK COMPATIBILITY IDEOGRAPH-2F8DE;Lo;0;L;3B49;;;;N;;;;;-2F8DF;CJK COMPATIBILITY IDEOGRAPH-2F8DF;Lo;0;L;67FA;;;;N;;;;;-2F8E0;CJK COMPATIBILITY IDEOGRAPH-2F8E0;Lo;0;L;6785;;;;N;;;;;-2F8E1;CJK COMPATIBILITY IDEOGRAPH-2F8E1;Lo;0;L;6852;;;;N;;;;;-2F8E2;CJK COMPATIBILITY IDEOGRAPH-2F8E2;Lo;0;L;6885;;;;N;;;;;-2F8E3;CJK COMPATIBILITY IDEOGRAPH-2F8E3;Lo;0;L;2346D;;;;N;;;;;-2F8E4;CJK COMPATIBILITY IDEOGRAPH-2F8E4;Lo;0;L;688E;;;;N;;;;;-2F8E5;CJK COMPATIBILITY IDEOGRAPH-2F8E5;Lo;0;L;681F;;;;N;;;;;-2F8E6;CJK COMPATIBILITY IDEOGRAPH-2F8E6;Lo;0;L;6914;;;;N;;;;;-2F8E7;CJK COMPATIBILITY IDEOGRAPH-2F8E7;Lo;0;L;3B9D;;;;N;;;;;-2F8E8;CJK COMPATIBILITY IDEOGRAPH-2F8E8;Lo;0;L;6942;;;;N;;;;;-2F8E9;CJK COMPATIBILITY IDEOGRAPH-2F8E9;Lo;0;L;69A3;;;;N;;;;;-2F8EA;CJK COMPATIBILITY IDEOGRAPH-2F8EA;Lo;0;L;69EA;;;;N;;;;;-2F8EB;CJK COMPATIBILITY IDEOGRAPH-2F8EB;Lo;0;L;6AA8;;;;N;;;;;-2F8EC;CJK COMPATIBILITY IDEOGRAPH-2F8EC;Lo;0;L;236A3;;;;N;;;;;-2F8ED;CJK COMPATIBILITY IDEOGRAPH-2F8ED;Lo;0;L;6ADB;;;;N;;;;;-2F8EE;CJK COMPATIBILITY IDEOGRAPH-2F8EE;Lo;0;L;3C18;;;;N;;;;;-2F8EF;CJK COMPATIBILITY IDEOGRAPH-2F8EF;Lo;0;L;6B21;;;;N;;;;;-2F8F0;CJK COMPATIBILITY IDEOGRAPH-2F8F0;Lo;0;L;238A7;;;;N;;;;;-2F8F1;CJK COMPATIBILITY IDEOGRAPH-2F8F1;Lo;0;L;6B54;;;;N;;;;;-2F8F2;CJK COMPATIBILITY IDEOGRAPH-2F8F2;Lo;0;L;3C4E;;;;N;;;;;-2F8F3;CJK COMPATIBILITY IDEOGRAPH-2F8F3;Lo;0;L;6B72;;;;N;;;;;-2F8F4;CJK COMPATIBILITY IDEOGRAPH-2F8F4;Lo;0;L;6B9F;;;;N;;;;;-2F8F5;CJK COMPATIBILITY IDEOGRAPH-2F8F5;Lo;0;L;6BBA;;;;N;;;;;-2F8F6;CJK COMPATIBILITY IDEOGRAPH-2F8F6;Lo;0;L;6BBB;;;;N;;;;;-2F8F7;CJK COMPATIBILITY IDEOGRAPH-2F8F7;Lo;0;L;23A8D;;;;N;;;;;-2F8F8;CJK COMPATIBILITY IDEOGRAPH-2F8F8;Lo;0;L;21D0B;;;;N;;;;;-2F8F9;CJK COMPATIBILITY IDEOGRAPH-2F8F9;Lo;0;L;23AFA;;;;N;;;;;-2F8FA;CJK COMPATIBILITY IDEOGRAPH-2F8FA;Lo;0;L;6C4E;;;;N;;;;;-2F8FB;CJK COMPATIBILITY IDEOGRAPH-2F8FB;Lo;0;L;23CBC;;;;N;;;;;-2F8FC;CJK COMPATIBILITY IDEOGRAPH-2F8FC;Lo;0;L;6CBF;;;;N;;;;;-2F8FD;CJK COMPATIBILITY IDEOGRAPH-2F8FD;Lo;0;L;6CCD;;;;N;;;;;-2F8FE;CJK COMPATIBILITY IDEOGRAPH-2F8FE;Lo;0;L;6C67;;;;N;;;;;-2F8FF;CJK COMPATIBILITY IDEOGRAPH-2F8FF;Lo;0;L;6D16;;;;N;;;;;-2F900;CJK COMPATIBILITY IDEOGRAPH-2F900;Lo;0;L;6D3E;;;;N;;;;;-2F901;CJK COMPATIBILITY IDEOGRAPH-2F901;Lo;0;L;6D77;;;;N;;;;;-2F902;CJK COMPATIBILITY IDEOGRAPH-2F902;Lo;0;L;6D41;;;;N;;;;;-2F903;CJK COMPATIBILITY IDEOGRAPH-2F903;Lo;0;L;6D69;;;;N;;;;;-2F904;CJK COMPATIBILITY IDEOGRAPH-2F904;Lo;0;L;6D78;;;;N;;;;;-2F905;CJK COMPATIBILITY IDEOGRAPH-2F905;Lo;0;L;6D85;;;;N;;;;;-2F906;CJK COMPATIBILITY IDEOGRAPH-2F906;Lo;0;L;23D1E;;;;N;;;;;-2F907;CJK COMPATIBILITY IDEOGRAPH-2F907;Lo;0;L;6D34;;;;N;;;;;-2F908;CJK COMPATIBILITY IDEOGRAPH-2F908;Lo;0;L;6E2F;;;;N;;;;;-2F909;CJK COMPATIBILITY IDEOGRAPH-2F909;Lo;0;L;6E6E;;;;N;;;;;-2F90A;CJK COMPATIBILITY IDEOGRAPH-2F90A;Lo;0;L;3D33;;;;N;;;;;-2F90B;CJK COMPATIBILITY IDEOGRAPH-2F90B;Lo;0;L;6ECB;;;;N;;;;;-2F90C;CJK COMPATIBILITY IDEOGRAPH-2F90C;Lo;0;L;6EC7;;;;N;;;;;-2F90D;CJK COMPATIBILITY IDEOGRAPH-2F90D;Lo;0;L;23ED1;;;;N;;;;;-2F90E;CJK COMPATIBILITY IDEOGRAPH-2F90E;Lo;0;L;6DF9;;;;N;;;;;-2F90F;CJK COMPATIBILITY IDEOGRAPH-2F90F;Lo;0;L;6F6E;;;;N;;;;;-2F910;CJK COMPATIBILITY IDEOGRAPH-2F910;Lo;0;L;23F5E;;;;N;;;;;-2F911;CJK COMPATIBILITY IDEOGRAPH-2F911;Lo;0;L;23F8E;;;;N;;;;;-2F912;CJK COMPATIBILITY IDEOGRAPH-2F912;Lo;0;L;6FC6;;;;N;;;;;-2F913;CJK COMPATIBILITY IDEOGRAPH-2F913;Lo;0;L;7039;;;;N;;;;;-2F914;CJK COMPATIBILITY IDEOGRAPH-2F914;Lo;0;L;701E;;;;N;;;;;-2F915;CJK COMPATIBILITY IDEOGRAPH-2F915;Lo;0;L;701B;;;;N;;;;;-2F916;CJK COMPATIBILITY IDEOGRAPH-2F916;Lo;0;L;3D96;;;;N;;;;;-2F917;CJK COMPATIBILITY IDEOGRAPH-2F917;Lo;0;L;704A;;;;N;;;;;-2F918;CJK COMPATIBILITY IDEOGRAPH-2F918;Lo;0;L;707D;;;;N;;;;;-2F919;CJK COMPATIBILITY IDEOGRAPH-2F919;Lo;0;L;7077;;;;N;;;;;-2F91A;CJK COMPATIBILITY IDEOGRAPH-2F91A;Lo;0;L;70AD;;;;N;;;;;-2F91B;CJK COMPATIBILITY IDEOGRAPH-2F91B;Lo;0;L;20525;;;;N;;;;;-2F91C;CJK COMPATIBILITY IDEOGRAPH-2F91C;Lo;0;L;7145;;;;N;;;;;-2F91D;CJK COMPATIBILITY IDEOGRAPH-2F91D;Lo;0;L;24263;;;;N;;;;;-2F91E;CJK COMPATIBILITY IDEOGRAPH-2F91E;Lo;0;L;719C;;;;N;;;;;-2F91F;CJK COMPATIBILITY IDEOGRAPH-2F91F;Lo;0;L;243AB;;;;N;;;;;-2F920;CJK COMPATIBILITY IDEOGRAPH-2F920;Lo;0;L;7228;;;;N;;;;;-2F921;CJK COMPATIBILITY IDEOGRAPH-2F921;Lo;0;L;7235;;;;N;;;;;-2F922;CJK COMPATIBILITY IDEOGRAPH-2F922;Lo;0;L;7250;;;;N;;;;;-2F923;CJK COMPATIBILITY IDEOGRAPH-2F923;Lo;0;L;24608;;;;N;;;;;-2F924;CJK COMPATIBILITY IDEOGRAPH-2F924;Lo;0;L;7280;;;;N;;;;;-2F925;CJK COMPATIBILITY IDEOGRAPH-2F925;Lo;0;L;7295;;;;N;;;;;-2F926;CJK COMPATIBILITY IDEOGRAPH-2F926;Lo;0;L;24735;;;;N;;;;;-2F927;CJK COMPATIBILITY IDEOGRAPH-2F927;Lo;0;L;24814;;;;N;;;;;-2F928;CJK COMPATIBILITY IDEOGRAPH-2F928;Lo;0;L;737A;;;;N;;;;;-2F929;CJK COMPATIBILITY IDEOGRAPH-2F929;Lo;0;L;738B;;;;N;;;;;-2F92A;CJK COMPATIBILITY IDEOGRAPH-2F92A;Lo;0;L;3EAC;;;;N;;;;;-2F92B;CJK COMPATIBILITY IDEOGRAPH-2F92B;Lo;0;L;73A5;;;;N;;;;;-2F92C;CJK COMPATIBILITY IDEOGRAPH-2F92C;Lo;0;L;3EB8;;;;N;;;;;-2F92D;CJK COMPATIBILITY IDEOGRAPH-2F92D;Lo;0;L;3EB8;;;;N;;;;;-2F92E;CJK COMPATIBILITY IDEOGRAPH-2F92E;Lo;0;L;7447;;;;N;;;;;-2F92F;CJK COMPATIBILITY IDEOGRAPH-2F92F;Lo;0;L;745C;;;;N;;;;;-2F930;CJK COMPATIBILITY IDEOGRAPH-2F930;Lo;0;L;7471;;;;N;;;;;-2F931;CJK COMPATIBILITY IDEOGRAPH-2F931;Lo;0;L;7485;;;;N;;;;;-2F932;CJK COMPATIBILITY IDEOGRAPH-2F932;Lo;0;L;74CA;;;;N;;;;;-2F933;CJK COMPATIBILITY IDEOGRAPH-2F933;Lo;0;L;3F1B;;;;N;;;;;-2F934;CJK COMPATIBILITY IDEOGRAPH-2F934;Lo;0;L;7524;;;;N;;;;;-2F935;CJK COMPATIBILITY IDEOGRAPH-2F935;Lo;0;L;24C36;;;;N;;;;;-2F936;CJK COMPATIBILITY IDEOGRAPH-2F936;Lo;0;L;753E;;;;N;;;;;-2F937;CJK COMPATIBILITY IDEOGRAPH-2F937;Lo;0;L;24C92;;;;N;;;;;-2F938;CJK COMPATIBILITY IDEOGRAPH-2F938;Lo;0;L;7570;;;;N;;;;;-2F939;CJK COMPATIBILITY IDEOGRAPH-2F939;Lo;0;L;2219F;;;;N;;;;;-2F93A;CJK COMPATIBILITY IDEOGRAPH-2F93A;Lo;0;L;7610;;;;N;;;;;-2F93B;CJK COMPATIBILITY IDEOGRAPH-2F93B;Lo;0;L;24FA1;;;;N;;;;;-2F93C;CJK COMPATIBILITY IDEOGRAPH-2F93C;Lo;0;L;24FB8;;;;N;;;;;-2F93D;CJK COMPATIBILITY IDEOGRAPH-2F93D;Lo;0;L;25044;;;;N;;;;;-2F93E;CJK COMPATIBILITY IDEOGRAPH-2F93E;Lo;0;L;3FFC;;;;N;;;;;-2F93F;CJK COMPATIBILITY IDEOGRAPH-2F93F;Lo;0;L;4008;;;;N;;;;;-2F940;CJK COMPATIBILITY IDEOGRAPH-2F940;Lo;0;L;76F4;;;;N;;;;;-2F941;CJK COMPATIBILITY IDEOGRAPH-2F941;Lo;0;L;250F3;;;;N;;;;;-2F942;CJK COMPATIBILITY IDEOGRAPH-2F942;Lo;0;L;250F2;;;;N;;;;;-2F943;CJK COMPATIBILITY IDEOGRAPH-2F943;Lo;0;L;25119;;;;N;;;;;-2F944;CJK COMPATIBILITY IDEOGRAPH-2F944;Lo;0;L;25133;;;;N;;;;;-2F945;CJK COMPATIBILITY IDEOGRAPH-2F945;Lo;0;L;771E;;;;N;;;;;-2F946;CJK COMPATIBILITY IDEOGRAPH-2F946;Lo;0;L;771F;;;;N;;;;;-2F947;CJK COMPATIBILITY IDEOGRAPH-2F947;Lo;0;L;771F;;;;N;;;;;-2F948;CJK COMPATIBILITY IDEOGRAPH-2F948;Lo;0;L;774A;;;;N;;;;;-2F949;CJK COMPATIBILITY IDEOGRAPH-2F949;Lo;0;L;4039;;;;N;;;;;-2F94A;CJK COMPATIBILITY IDEOGRAPH-2F94A;Lo;0;L;778B;;;;N;;;;;-2F94B;CJK COMPATIBILITY IDEOGRAPH-2F94B;Lo;0;L;4046;;;;N;;;;;-2F94C;CJK COMPATIBILITY IDEOGRAPH-2F94C;Lo;0;L;4096;;;;N;;;;;-2F94D;CJK COMPATIBILITY IDEOGRAPH-2F94D;Lo;0;L;2541D;;;;N;;;;;-2F94E;CJK COMPATIBILITY IDEOGRAPH-2F94E;Lo;0;L;784E;;;;N;;;;;-2F94F;CJK COMPATIBILITY IDEOGRAPH-2F94F;Lo;0;L;788C;;;;N;;;;;-2F950;CJK COMPATIBILITY IDEOGRAPH-2F950;Lo;0;L;78CC;;;;N;;;;;-2F951;CJK COMPATIBILITY IDEOGRAPH-2F951;Lo;0;L;40E3;;;;N;;;;;-2F952;CJK COMPATIBILITY IDEOGRAPH-2F952;Lo;0;L;25626;;;;N;;;;;-2F953;CJK COMPATIBILITY IDEOGRAPH-2F953;Lo;0;L;7956;;;;N;;;;;-2F954;CJK COMPATIBILITY IDEOGRAPH-2F954;Lo;0;L;2569A;;;;N;;;;;-2F955;CJK COMPATIBILITY IDEOGRAPH-2F955;Lo;0;L;256C5;;;;N;;;;;-2F956;CJK COMPATIBILITY IDEOGRAPH-2F956;Lo;0;L;798F;;;;N;;;;;-2F957;CJK COMPATIBILITY IDEOGRAPH-2F957;Lo;0;L;79EB;;;;N;;;;;-2F958;CJK COMPATIBILITY IDEOGRAPH-2F958;Lo;0;L;412F;;;;N;;;;;-2F959;CJK COMPATIBILITY IDEOGRAPH-2F959;Lo;0;L;7A40;;;;N;;;;;-2F95A;CJK COMPATIBILITY IDEOGRAPH-2F95A;Lo;0;L;7A4A;;;;N;;;;;-2F95B;CJK COMPATIBILITY IDEOGRAPH-2F95B;Lo;0;L;7A4F;;;;N;;;;;-2F95C;CJK COMPATIBILITY IDEOGRAPH-2F95C;Lo;0;L;2597C;;;;N;;;;;-2F95D;CJK COMPATIBILITY IDEOGRAPH-2F95D;Lo;0;L;25AA7;;;;N;;;;;-2F95E;CJK COMPATIBILITY IDEOGRAPH-2F95E;Lo;0;L;25AA7;;;;N;;;;;-2F95F;CJK COMPATIBILITY IDEOGRAPH-2F95F;Lo;0;L;7AEE;;;;N;;;;;-2F960;CJK COMPATIBILITY IDEOGRAPH-2F960;Lo;0;L;4202;;;;N;;;;;-2F961;CJK COMPATIBILITY IDEOGRAPH-2F961;Lo;0;L;25BAB;;;;N;;;;;-2F962;CJK COMPATIBILITY IDEOGRAPH-2F962;Lo;0;L;7BC6;;;;N;;;;;-2F963;CJK COMPATIBILITY IDEOGRAPH-2F963;Lo;0;L;7BC9;;;;N;;;;;-2F964;CJK COMPATIBILITY IDEOGRAPH-2F964;Lo;0;L;4227;;;;N;;;;;-2F965;CJK COMPATIBILITY IDEOGRAPH-2F965;Lo;0;L;25C80;;;;N;;;;;-2F966;CJK COMPATIBILITY IDEOGRAPH-2F966;Lo;0;L;7CD2;;;;N;;;;;-2F967;CJK COMPATIBILITY IDEOGRAPH-2F967;Lo;0;L;42A0;;;;N;;;;;-2F968;CJK COMPATIBILITY IDEOGRAPH-2F968;Lo;0;L;7CE8;;;;N;;;;;-2F969;CJK COMPATIBILITY IDEOGRAPH-2F969;Lo;0;L;7CE3;;;;N;;;;;-2F96A;CJK COMPATIBILITY IDEOGRAPH-2F96A;Lo;0;L;7D00;;;;N;;;;;-2F96B;CJK COMPATIBILITY IDEOGRAPH-2F96B;Lo;0;L;25F86;;;;N;;;;;-2F96C;CJK COMPATIBILITY IDEOGRAPH-2F96C;Lo;0;L;7D63;;;;N;;;;;-2F96D;CJK COMPATIBILITY IDEOGRAPH-2F96D;Lo;0;L;4301;;;;N;;;;;-2F96E;CJK COMPATIBILITY IDEOGRAPH-2F96E;Lo;0;L;7DC7;;;;N;;;;;-2F96F;CJK COMPATIBILITY IDEOGRAPH-2F96F;Lo;0;L;7E02;;;;N;;;;;-2F970;CJK COMPATIBILITY IDEOGRAPH-2F970;Lo;0;L;7E45;;;;N;;;;;-2F971;CJK COMPATIBILITY IDEOGRAPH-2F971;Lo;0;L;4334;;;;N;;;;;-2F972;CJK COMPATIBILITY IDEOGRAPH-2F972;Lo;0;L;26228;;;;N;;;;;-2F973;CJK COMPATIBILITY IDEOGRAPH-2F973;Lo;0;L;26247;;;;N;;;;;-2F974;CJK COMPATIBILITY IDEOGRAPH-2F974;Lo;0;L;4359;;;;N;;;;;-2F975;CJK COMPATIBILITY IDEOGRAPH-2F975;Lo;0;L;262D9;;;;N;;;;;-2F976;CJK COMPATIBILITY IDEOGRAPH-2F976;Lo;0;L;7F7A;;;;N;;;;;-2F977;CJK COMPATIBILITY IDEOGRAPH-2F977;Lo;0;L;2633E;;;;N;;;;;-2F978;CJK COMPATIBILITY IDEOGRAPH-2F978;Lo;0;L;7F95;;;;N;;;;;-2F979;CJK COMPATIBILITY IDEOGRAPH-2F979;Lo;0;L;7FFA;;;;N;;;;;-2F97A;CJK COMPATIBILITY IDEOGRAPH-2F97A;Lo;0;L;8005;;;;N;;;;;-2F97B;CJK COMPATIBILITY IDEOGRAPH-2F97B;Lo;0;L;264DA;;;;N;;;;;-2F97C;CJK COMPATIBILITY IDEOGRAPH-2F97C;Lo;0;L;26523;;;;N;;;;;-2F97D;CJK COMPATIBILITY IDEOGRAPH-2F97D;Lo;0;L;8060;;;;N;;;;;-2F97E;CJK COMPATIBILITY IDEOGRAPH-2F97E;Lo;0;L;265A8;;;;N;;;;;-2F97F;CJK COMPATIBILITY IDEOGRAPH-2F97F;Lo;0;L;8070;;;;N;;;;;-2F980;CJK COMPATIBILITY IDEOGRAPH-2F980;Lo;0;L;2335F;;;;N;;;;;-2F981;CJK COMPATIBILITY IDEOGRAPH-2F981;Lo;0;L;43D5;;;;N;;;;;-2F982;CJK COMPATIBILITY IDEOGRAPH-2F982;Lo;0;L;80B2;;;;N;;;;;-2F983;CJK COMPATIBILITY IDEOGRAPH-2F983;Lo;0;L;8103;;;;N;;;;;-2F984;CJK COMPATIBILITY IDEOGRAPH-2F984;Lo;0;L;440B;;;;N;;;;;-2F985;CJK COMPATIBILITY IDEOGRAPH-2F985;Lo;0;L;813E;;;;N;;;;;-2F986;CJK COMPATIBILITY IDEOGRAPH-2F986;Lo;0;L;5AB5;;;;N;;;;;-2F987;CJK COMPATIBILITY IDEOGRAPH-2F987;Lo;0;L;267A7;;;;N;;;;;-2F988;CJK COMPATIBILITY IDEOGRAPH-2F988;Lo;0;L;267B5;;;;N;;;;;-2F989;CJK COMPATIBILITY IDEOGRAPH-2F989;Lo;0;L;23393;;;;N;;;;;-2F98A;CJK COMPATIBILITY IDEOGRAPH-2F98A;Lo;0;L;2339C;;;;N;;;;;-2F98B;CJK COMPATIBILITY IDEOGRAPH-2F98B;Lo;0;L;8201;;;;N;;;;;-2F98C;CJK COMPATIBILITY IDEOGRAPH-2F98C;Lo;0;L;8204;;;;N;;;;;-2F98D;CJK COMPATIBILITY IDEOGRAPH-2F98D;Lo;0;L;8F9E;;;;N;;;;;-2F98E;CJK COMPATIBILITY IDEOGRAPH-2F98E;Lo;0;L;446B;;;;N;;;;;-2F98F;CJK COMPATIBILITY IDEOGRAPH-2F98F;Lo;0;L;8291;;;;N;;;;;-2F990;CJK COMPATIBILITY IDEOGRAPH-2F990;Lo;0;L;828B;;;;N;;;;;-2F991;CJK COMPATIBILITY IDEOGRAPH-2F991;Lo;0;L;829D;;;;N;;;;;-2F992;CJK COMPATIBILITY IDEOGRAPH-2F992;Lo;0;L;52B3;;;;N;;;;;-2F993;CJK COMPATIBILITY IDEOGRAPH-2F993;Lo;0;L;82B1;;;;N;;;;;-2F994;CJK COMPATIBILITY IDEOGRAPH-2F994;Lo;0;L;82B3;;;;N;;;;;-2F995;CJK COMPATIBILITY IDEOGRAPH-2F995;Lo;0;L;82BD;;;;N;;;;;-2F996;CJK COMPATIBILITY IDEOGRAPH-2F996;Lo;0;L;82E6;;;;N;;;;;-2F997;CJK COMPATIBILITY IDEOGRAPH-2F997;Lo;0;L;26B3C;;;;N;;;;;-2F998;CJK COMPATIBILITY IDEOGRAPH-2F998;Lo;0;L;82E5;;;;N;;;;;-2F999;CJK COMPATIBILITY IDEOGRAPH-2F999;Lo;0;L;831D;;;;N;;;;;-2F99A;CJK COMPATIBILITY IDEOGRAPH-2F99A;Lo;0;L;8363;;;;N;;;;;-2F99B;CJK COMPATIBILITY IDEOGRAPH-2F99B;Lo;0;L;83AD;;;;N;;;;;-2F99C;CJK COMPATIBILITY IDEOGRAPH-2F99C;Lo;0;L;8323;;;;N;;;;;-2F99D;CJK COMPATIBILITY IDEOGRAPH-2F99D;Lo;0;L;83BD;;;;N;;;;;-2F99E;CJK COMPATIBILITY IDEOGRAPH-2F99E;Lo;0;L;83E7;;;;N;;;;;-2F99F;CJK COMPATIBILITY IDEOGRAPH-2F99F;Lo;0;L;8457;;;;N;;;;;-2F9A0;CJK COMPATIBILITY IDEOGRAPH-2F9A0;Lo;0;L;8353;;;;N;;;;;-2F9A1;CJK COMPATIBILITY IDEOGRAPH-2F9A1;Lo;0;L;83CA;;;;N;;;;;-2F9A2;CJK COMPATIBILITY IDEOGRAPH-2F9A2;Lo;0;L;83CC;;;;N;;;;;-2F9A3;CJK COMPATIBILITY IDEOGRAPH-2F9A3;Lo;0;L;83DC;;;;N;;;;;-2F9A4;CJK COMPATIBILITY IDEOGRAPH-2F9A4;Lo;0;L;26C36;;;;N;;;;;-2F9A5;CJK COMPATIBILITY IDEOGRAPH-2F9A5;Lo;0;L;26D6B;;;;N;;;;;-2F9A6;CJK COMPATIBILITY IDEOGRAPH-2F9A6;Lo;0;L;26CD5;;;;N;;;;;-2F9A7;CJK COMPATIBILITY IDEOGRAPH-2F9A7;Lo;0;L;452B;;;;N;;;;;-2F9A8;CJK COMPATIBILITY IDEOGRAPH-2F9A8;Lo;0;L;84F1;;;;N;;;;;-2F9A9;CJK COMPATIBILITY IDEOGRAPH-2F9A9;Lo;0;L;84F3;;;;N;;;;;-2F9AA;CJK COMPATIBILITY IDEOGRAPH-2F9AA;Lo;0;L;8516;;;;N;;;;;-2F9AB;CJK COMPATIBILITY IDEOGRAPH-2F9AB;Lo;0;L;273CA;;;;N;;;;;-2F9AC;CJK COMPATIBILITY IDEOGRAPH-2F9AC;Lo;0;L;8564;;;;N;;;;;-2F9AD;CJK COMPATIBILITY IDEOGRAPH-2F9AD;Lo;0;L;26F2C;;;;N;;;;;-2F9AE;CJK COMPATIBILITY IDEOGRAPH-2F9AE;Lo;0;L;455D;;;;N;;;;;-2F9AF;CJK COMPATIBILITY IDEOGRAPH-2F9AF;Lo;0;L;4561;;;;N;;;;;-2F9B0;CJK COMPATIBILITY IDEOGRAPH-2F9B0;Lo;0;L;26FB1;;;;N;;;;;-2F9B1;CJK COMPATIBILITY IDEOGRAPH-2F9B1;Lo;0;L;270D2;;;;N;;;;;-2F9B2;CJK COMPATIBILITY IDEOGRAPH-2F9B2;Lo;0;L;456B;;;;N;;;;;-2F9B3;CJK COMPATIBILITY IDEOGRAPH-2F9B3;Lo;0;L;8650;;;;N;;;;;-2F9B4;CJK COMPATIBILITY IDEOGRAPH-2F9B4;Lo;0;L;865C;;;;N;;;;;-2F9B5;CJK COMPATIBILITY IDEOGRAPH-2F9B5;Lo;0;L;8667;;;;N;;;;;-2F9B6;CJK COMPATIBILITY IDEOGRAPH-2F9B6;Lo;0;L;8669;;;;N;;;;;-2F9B7;CJK COMPATIBILITY IDEOGRAPH-2F9B7;Lo;0;L;86A9;;;;N;;;;;-2F9B8;CJK COMPATIBILITY IDEOGRAPH-2F9B8;Lo;0;L;8688;;;;N;;;;;-2F9B9;CJK COMPATIBILITY IDEOGRAPH-2F9B9;Lo;0;L;870E;;;;N;;;;;-2F9BA;CJK COMPATIBILITY IDEOGRAPH-2F9BA;Lo;0;L;86E2;;;;N;;;;;-2F9BB;CJK COMPATIBILITY IDEOGRAPH-2F9BB;Lo;0;L;8779;;;;N;;;;;-2F9BC;CJK COMPATIBILITY IDEOGRAPH-2F9BC;Lo;0;L;8728;;;;N;;;;;-2F9BD;CJK COMPATIBILITY IDEOGRAPH-2F9BD;Lo;0;L;876B;;;;N;;;;;-2F9BE;CJK COMPATIBILITY IDEOGRAPH-2F9BE;Lo;0;L;8786;;;;N;;;;;-2F9BF;CJK COMPATIBILITY IDEOGRAPH-2F9BF;Lo;0;L;45D7;;;;N;;;;;-2F9C0;CJK COMPATIBILITY IDEOGRAPH-2F9C0;Lo;0;L;87E1;;;;N;;;;;-2F9C1;CJK COMPATIBILITY IDEOGRAPH-2F9C1;Lo;0;L;8801;;;;N;;;;;-2F9C2;CJK COMPATIBILITY IDEOGRAPH-2F9C2;Lo;0;L;45F9;;;;N;;;;;-2F9C3;CJK COMPATIBILITY IDEOGRAPH-2F9C3;Lo;0;L;8860;;;;N;;;;;-2F9C4;CJK COMPATIBILITY IDEOGRAPH-2F9C4;Lo;0;L;8863;;;;N;;;;;-2F9C5;CJK COMPATIBILITY IDEOGRAPH-2F9C5;Lo;0;L;27667;;;;N;;;;;-2F9C6;CJK COMPATIBILITY IDEOGRAPH-2F9C6;Lo;0;L;88D7;;;;N;;;;;-2F9C7;CJK COMPATIBILITY IDEOGRAPH-2F9C7;Lo;0;L;88DE;;;;N;;;;;-2F9C8;CJK COMPATIBILITY IDEOGRAPH-2F9C8;Lo;0;L;4635;;;;N;;;;;-2F9C9;CJK COMPATIBILITY IDEOGRAPH-2F9C9;Lo;0;L;88FA;;;;N;;;;;-2F9CA;CJK COMPATIBILITY IDEOGRAPH-2F9CA;Lo;0;L;34BB;;;;N;;;;;-2F9CB;CJK COMPATIBILITY IDEOGRAPH-2F9CB;Lo;0;L;278AE;;;;N;;;;;-2F9CC;CJK COMPATIBILITY IDEOGRAPH-2F9CC;Lo;0;L;27966;;;;N;;;;;-2F9CD;CJK COMPATIBILITY IDEOGRAPH-2F9CD;Lo;0;L;46BE;;;;N;;;;;-2F9CE;CJK COMPATIBILITY IDEOGRAPH-2F9CE;Lo;0;L;46C7;;;;N;;;;;-2F9CF;CJK COMPATIBILITY IDEOGRAPH-2F9CF;Lo;0;L;8AA0;;;;N;;;;;-2F9D0;CJK COMPATIBILITY IDEOGRAPH-2F9D0;Lo;0;L;8AED;;;;N;;;;;-2F9D1;CJK COMPATIBILITY IDEOGRAPH-2F9D1;Lo;0;L;8B8A;;;;N;;;;;-2F9D2;CJK COMPATIBILITY IDEOGRAPH-2F9D2;Lo;0;L;8C55;;;;N;;;;;-2F9D3;CJK COMPATIBILITY IDEOGRAPH-2F9D3;Lo;0;L;27CA8;;;;N;;;;;-2F9D4;CJK COMPATIBILITY IDEOGRAPH-2F9D4;Lo;0;L;8CAB;;;;N;;;;;-2F9D5;CJK COMPATIBILITY IDEOGRAPH-2F9D5;Lo;0;L;8CC1;;;;N;;;;;-2F9D6;CJK COMPATIBILITY IDEOGRAPH-2F9D6;Lo;0;L;8D1B;;;;N;;;;;-2F9D7;CJK COMPATIBILITY IDEOGRAPH-2F9D7;Lo;0;L;8D77;;;;N;;;;;-2F9D8;CJK COMPATIBILITY IDEOGRAPH-2F9D8;Lo;0;L;27F2F;;;;N;;;;;-2F9D9;CJK COMPATIBILITY IDEOGRAPH-2F9D9;Lo;0;L;20804;;;;N;;;;;-2F9DA;CJK COMPATIBILITY IDEOGRAPH-2F9DA;Lo;0;L;8DCB;;;;N;;;;;-2F9DB;CJK COMPATIBILITY IDEOGRAPH-2F9DB;Lo;0;L;8DBC;;;;N;;;;;-2F9DC;CJK COMPATIBILITY IDEOGRAPH-2F9DC;Lo;0;L;8DF0;;;;N;;;;;-2F9DD;CJK COMPATIBILITY IDEOGRAPH-2F9DD;Lo;0;L;208DE;;;;N;;;;;-2F9DE;CJK COMPATIBILITY IDEOGRAPH-2F9DE;Lo;0;L;8ED4;;;;N;;;;;-2F9DF;CJK COMPATIBILITY IDEOGRAPH-2F9DF;Lo;0;L;8F38;;;;N;;;;;-2F9E0;CJK COMPATIBILITY IDEOGRAPH-2F9E0;Lo;0;L;285D2;;;;N;;;;;-2F9E1;CJK COMPATIBILITY IDEOGRAPH-2F9E1;Lo;0;L;285ED;;;;N;;;;;-2F9E2;CJK COMPATIBILITY IDEOGRAPH-2F9E2;Lo;0;L;9094;;;;N;;;;;-2F9E3;CJK COMPATIBILITY IDEOGRAPH-2F9E3;Lo;0;L;90F1;;;;N;;;;;-2F9E4;CJK COMPATIBILITY IDEOGRAPH-2F9E4;Lo;0;L;9111;;;;N;;;;;-2F9E5;CJK COMPATIBILITY IDEOGRAPH-2F9E5;Lo;0;L;2872E;;;;N;;;;;-2F9E6;CJK COMPATIBILITY IDEOGRAPH-2F9E6;Lo;0;L;911B;;;;N;;;;;-2F9E7;CJK COMPATIBILITY IDEOGRAPH-2F9E7;Lo;0;L;9238;;;;N;;;;;-2F9E8;CJK COMPATIBILITY IDEOGRAPH-2F9E8;Lo;0;L;92D7;;;;N;;;;;-2F9E9;CJK COMPATIBILITY IDEOGRAPH-2F9E9;Lo;0;L;92D8;;;;N;;;;;-2F9EA;CJK COMPATIBILITY IDEOGRAPH-2F9EA;Lo;0;L;927C;;;;N;;;;;-2F9EB;CJK COMPATIBILITY IDEOGRAPH-2F9EB;Lo;0;L;93F9;;;;N;;;;;-2F9EC;CJK COMPATIBILITY IDEOGRAPH-2F9EC;Lo;0;L;9415;;;;N;;;;;-2F9ED;CJK COMPATIBILITY IDEOGRAPH-2F9ED;Lo;0;L;28BFA;;;;N;;;;;-2F9EE;CJK COMPATIBILITY IDEOGRAPH-2F9EE;Lo;0;L;958B;;;;N;;;;;-2F9EF;CJK COMPATIBILITY IDEOGRAPH-2F9EF;Lo;0;L;4995;;;;N;;;;;-2F9F0;CJK COMPATIBILITY IDEOGRAPH-2F9F0;Lo;0;L;95B7;;;;N;;;;;-2F9F1;CJK COMPATIBILITY IDEOGRAPH-2F9F1;Lo;0;L;28D77;;;;N;;;;;-2F9F2;CJK COMPATIBILITY IDEOGRAPH-2F9F2;Lo;0;L;49E6;;;;N;;;;;-2F9F3;CJK COMPATIBILITY IDEOGRAPH-2F9F3;Lo;0;L;96C3;;;;N;;;;;-2F9F4;CJK COMPATIBILITY IDEOGRAPH-2F9F4;Lo;0;L;5DB2;;;;N;;;;;-2F9F5;CJK COMPATIBILITY IDEOGRAPH-2F9F5;Lo;0;L;9723;;;;N;;;;;-2F9F6;CJK COMPATIBILITY IDEOGRAPH-2F9F6;Lo;0;L;29145;;;;N;;;;;-2F9F7;CJK COMPATIBILITY IDEOGRAPH-2F9F7;Lo;0;L;2921A;;;;N;;;;;-2F9F8;CJK COMPATIBILITY IDEOGRAPH-2F9F8;Lo;0;L;4A6E;;;;N;;;;;-2F9F9;CJK COMPATIBILITY IDEOGRAPH-2F9F9;Lo;0;L;4A76;;;;N;;;;;-2F9FA;CJK COMPATIBILITY IDEOGRAPH-2F9FA;Lo;0;L;97E0;;;;N;;;;;-2F9FB;CJK COMPATIBILITY IDEOGRAPH-2F9FB;Lo;0;L;2940A;;;;N;;;;;-2F9FC;CJK COMPATIBILITY IDEOGRAPH-2F9FC;Lo;0;L;4AB2;;;;N;;;;;-2F9FD;CJK COMPATIBILITY IDEOGRAPH-2F9FD;Lo;0;L;29496;;;;N;;;;;-2F9FE;CJK COMPATIBILITY IDEOGRAPH-2F9FE;Lo;0;L;980B;;;;N;;;;;-2F9FF;CJK COMPATIBILITY IDEOGRAPH-2F9FF;Lo;0;L;980B;;;;N;;;;;-2FA00;CJK COMPATIBILITY IDEOGRAPH-2FA00;Lo;0;L;9829;;;;N;;;;;-2FA01;CJK COMPATIBILITY IDEOGRAPH-2FA01;Lo;0;L;295B6;;;;N;;;;;-2FA02;CJK COMPATIBILITY IDEOGRAPH-2FA02;Lo;0;L;98E2;;;;N;;;;;-2FA03;CJK COMPATIBILITY IDEOGRAPH-2FA03;Lo;0;L;4B33;;;;N;;;;;-2FA04;CJK COMPATIBILITY IDEOGRAPH-2FA04;Lo;0;L;9929;;;;N;;;;;-2FA05;CJK COMPATIBILITY IDEOGRAPH-2FA05;Lo;0;L;99A7;;;;N;;;;;-2FA06;CJK COMPATIBILITY IDEOGRAPH-2FA06;Lo;0;L;99C2;;;;N;;;;;-2FA07;CJK COMPATIBILITY IDEOGRAPH-2FA07;Lo;0;L;99FE;;;;N;;;;;-2FA08;CJK COMPATIBILITY IDEOGRAPH-2FA08;Lo;0;L;4BCE;;;;N;;;;;-2FA09;CJK COMPATIBILITY IDEOGRAPH-2FA09;Lo;0;L;29B30;;;;N;;;;;-2FA0A;CJK COMPATIBILITY IDEOGRAPH-2FA0A;Lo;0;L;9B12;;;;N;;;;;-2FA0B;CJK COMPATIBILITY IDEOGRAPH-2FA0B;Lo;0;L;9C40;;;;N;;;;;-2FA0C;CJK COMPATIBILITY IDEOGRAPH-2FA0C;Lo;0;L;9CFD;;;;N;;;;;-2FA0D;CJK COMPATIBILITY IDEOGRAPH-2FA0D;Lo;0;L;4CCE;;;;N;;;;;-2FA0E;CJK COMPATIBILITY IDEOGRAPH-2FA0E;Lo;0;L;4CED;;;;N;;;;;-2FA0F;CJK COMPATIBILITY IDEOGRAPH-2FA0F;Lo;0;L;9D67;;;;N;;;;;-2FA10;CJK COMPATIBILITY IDEOGRAPH-2FA10;Lo;0;L;2A0CE;;;;N;;;;;-2FA11;CJK COMPATIBILITY IDEOGRAPH-2FA11;Lo;0;L;4CF8;;;;N;;;;;-2FA12;CJK COMPATIBILITY IDEOGRAPH-2FA12;Lo;0;L;2A105;;;;N;;;;;-2FA13;CJK COMPATIBILITY IDEOGRAPH-2FA13;Lo;0;L;2A20E;;;;N;;;;;-2FA14;CJK COMPATIBILITY IDEOGRAPH-2FA14;Lo;0;L;2A291;;;;N;;;;;-2FA15;CJK COMPATIBILITY IDEOGRAPH-2FA15;Lo;0;L;9EBB;;;;N;;;;;-2FA16;CJK COMPATIBILITY IDEOGRAPH-2FA16;Lo;0;L;4D56;;;;N;;;;;-2FA17;CJK COMPATIBILITY IDEOGRAPH-2FA17;Lo;0;L;9EF9;;;;N;;;;;-2FA18;CJK COMPATIBILITY IDEOGRAPH-2FA18;Lo;0;L;9EFE;;;;N;;;;;-2FA19;CJK COMPATIBILITY IDEOGRAPH-2FA19;Lo;0;L;9F05;;;;N;;;;;-2FA1A;CJK COMPATIBILITY IDEOGRAPH-2FA1A;Lo;0;L;9F0F;;;;N;;;;;-2FA1B;CJK COMPATIBILITY IDEOGRAPH-2FA1B;Lo;0;L;9F16;;;;N;;;;;-2FA1C;CJK COMPATIBILITY IDEOGRAPH-2FA1C;Lo;0;L;9F3B;;;;N;;;;;-2FA1D;CJK COMPATIBILITY IDEOGRAPH-2FA1D;Lo;0;L;2A600;;;;N;;;;;-E0001;LANGUAGE TAG;Cf;0;BN;;;;;N;;;;;-E0020;TAG SPACE;Cf;0;BN;;;;;N;;;;;-E0021;TAG EXCLAMATION MARK;Cf;0;BN;;;;;N;;;;;-E0022;TAG QUOTATION MARK;Cf;0;BN;;;;;N;;;;;-E0023;TAG NUMBER SIGN;Cf;0;BN;;;;;N;;;;;-E0024;TAG DOLLAR SIGN;Cf;0;BN;;;;;N;;;;;-E0025;TAG PERCENT SIGN;Cf;0;BN;;;;;N;;;;;-E0026;TAG AMPERSAND;Cf;0;BN;;;;;N;;;;;-E0027;TAG APOSTROPHE;Cf;0;BN;;;;;N;;;;;-E0028;TAG LEFT PARENTHESIS;Cf;0;BN;;;;;N;;;;;-E0029;TAG RIGHT PARENTHESIS;Cf;0;BN;;;;;N;;;;;-E002A;TAG ASTERISK;Cf;0;BN;;;;;N;;;;;-E002B;TAG PLUS SIGN;Cf;0;BN;;;;;N;;;;;-E002C;TAG COMMA;Cf;0;BN;;;;;N;;;;;-E002D;TAG HYPHEN-MINUS;Cf;0;BN;;;;;N;;;;;-E002E;TAG FULL STOP;Cf;0;BN;;;;;N;;;;;-E002F;TAG SOLIDUS;Cf;0;BN;;;;;N;;;;;-E0030;TAG DIGIT ZERO;Cf;0;BN;;;;;N;;;;;-E0031;TAG DIGIT ONE;Cf;0;BN;;;;;N;;;;;-E0032;TAG DIGIT TWO;Cf;0;BN;;;;;N;;;;;-E0033;TAG DIGIT THREE;Cf;0;BN;;;;;N;;;;;-E0034;TAG DIGIT FOUR;Cf;0;BN;;;;;N;;;;;-E0035;TAG DIGIT FIVE;Cf;0;BN;;;;;N;;;;;-E0036;TAG DIGIT SIX;Cf;0;BN;;;;;N;;;;;-E0037;TAG DIGIT SEVEN;Cf;0;BN;;;;;N;;;;;-E0038;TAG DIGIT EIGHT;Cf;0;BN;;;;;N;;;;;-E0039;TAG DIGIT NINE;Cf;0;BN;;;;;N;;;;;-E003A;TAG COLON;Cf;0;BN;;;;;N;;;;;-E003B;TAG SEMICOLON;Cf;0;BN;;;;;N;;;;;-E003C;TAG LESS-THAN SIGN;Cf;0;BN;;;;;N;;;;;-E003D;TAG EQUALS SIGN;Cf;0;BN;;;;;N;;;;;-E003E;TAG GREATER-THAN SIGN;Cf;0;BN;;;;;N;;;;;-E003F;TAG QUESTION MARK;Cf;0;BN;;;;;N;;;;;-E0040;TAG COMMERCIAL AT;Cf;0;BN;;;;;N;;;;;-E0041;TAG LATIN CAPITAL LETTER A;Cf;0;BN;;;;;N;;;;;-E0042;TAG LATIN CAPITAL LETTER B;Cf;0;BN;;;;;N;;;;;-E0043;TAG LATIN CAPITAL LETTER C;Cf;0;BN;;;;;N;;;;;-E0044;TAG LATIN CAPITAL LETTER D;Cf;0;BN;;;;;N;;;;;-E0045;TAG LATIN CAPITAL LETTER E;Cf;0;BN;;;;;N;;;;;-E0046;TAG LATIN CAPITAL LETTER F;Cf;0;BN;;;;;N;;;;;-E0047;TAG LATIN CAPITAL LETTER G;Cf;0;BN;;;;;N;;;;;-E0048;TAG LATIN CAPITAL LETTER H;Cf;0;BN;;;;;N;;;;;-E0049;TAG LATIN CAPITAL LETTER I;Cf;0;BN;;;;;N;;;;;-E004A;TAG LATIN CAPITAL LETTER J;Cf;0;BN;;;;;N;;;;;-E004B;TAG LATIN CAPITAL LETTER K;Cf;0;BN;;;;;N;;;;;-E004C;TAG LATIN CAPITAL LETTER L;Cf;0;BN;;;;;N;;;;;-E004D;TAG LATIN CAPITAL LETTER M;Cf;0;BN;;;;;N;;;;;-E004E;TAG LATIN CAPITAL LETTER N;Cf;0;BN;;;;;N;;;;;-E004F;TAG LATIN CAPITAL LETTER O;Cf;0;BN;;;;;N;;;;;-E0050;TAG LATIN CAPITAL LETTER P;Cf;0;BN;;;;;N;;;;;-E0051;TAG LATIN CAPITAL LETTER Q;Cf;0;BN;;;;;N;;;;;-E0052;TAG LATIN CAPITAL LETTER R;Cf;0;BN;;;;;N;;;;;-E0053;TAG LATIN CAPITAL LETTER S;Cf;0;BN;;;;;N;;;;;-E0054;TAG LATIN CAPITAL LETTER T;Cf;0;BN;;;;;N;;;;;-E0055;TAG LATIN CAPITAL LETTER U;Cf;0;BN;;;;;N;;;;;-E0056;TAG LATIN CAPITAL LETTER V;Cf;0;BN;;;;;N;;;;;-E0057;TAG LATIN CAPITAL LETTER W;Cf;0;BN;;;;;N;;;;;-E0058;TAG LATIN CAPITAL LETTER X;Cf;0;BN;;;;;N;;;;;-E0059;TAG LATIN CAPITAL LETTER Y;Cf;0;BN;;;;;N;;;;;-E005A;TAG LATIN CAPITAL LETTER Z;Cf;0;BN;;;;;N;;;;;-E005B;TAG LEFT SQUARE BRACKET;Cf;0;BN;;;;;N;;;;;-E005C;TAG REVERSE SOLIDUS;Cf;0;BN;;;;;N;;;;;-E005D;TAG RIGHT SQUARE BRACKET;Cf;0;BN;;;;;N;;;;;-E005E;TAG CIRCUMFLEX ACCENT;Cf;0;BN;;;;;N;;;;;-E005F;TAG LOW LINE;Cf;0;BN;;;;;N;;;;;-E0060;TAG GRAVE ACCENT;Cf;0;BN;;;;;N;;;;;-E0061;TAG LATIN SMALL LETTER A;Cf;0;BN;;;;;N;;;;;-E0062;TAG LATIN SMALL LETTER B;Cf;0;BN;;;;;N;;;;;-E0063;TAG LATIN SMALL LETTER C;Cf;0;BN;;;;;N;;;;;-E0064;TAG LATIN SMALL LETTER D;Cf;0;BN;;;;;N;;;;;-E0065;TAG LATIN SMALL LETTER E;Cf;0;BN;;;;;N;;;;;-E0066;TAG LATIN SMALL LETTER F;Cf;0;BN;;;;;N;;;;;-E0067;TAG LATIN SMALL LETTER G;Cf;0;BN;;;;;N;;;;;-E0068;TAG LATIN SMALL LETTER H;Cf;0;BN;;;;;N;;;;;-E0069;TAG LATIN SMALL LETTER I;Cf;0;BN;;;;;N;;;;;-E006A;TAG LATIN SMALL LETTER J;Cf;0;BN;;;;;N;;;;;-E006B;TAG LATIN SMALL LETTER K;Cf;0;BN;;;;;N;;;;;-E006C;TAG LATIN SMALL LETTER L;Cf;0;BN;;;;;N;;;;;-E006D;TAG LATIN SMALL LETTER M;Cf;0;BN;;;;;N;;;;;-E006E;TAG LATIN SMALL LETTER N;Cf;0;BN;;;;;N;;;;;-E006F;TAG LATIN SMALL LETTER O;Cf;0;BN;;;;;N;;;;;-E0070;TAG LATIN SMALL LETTER P;Cf;0;BN;;;;;N;;;;;-E0071;TAG LATIN SMALL LETTER Q;Cf;0;BN;;;;;N;;;;;-E0072;TAG LATIN SMALL LETTER R;Cf;0;BN;;;;;N;;;;;-E0073;TAG LATIN SMALL LETTER S;Cf;0;BN;;;;;N;;;;;-E0074;TAG LATIN SMALL LETTER T;Cf;0;BN;;;;;N;;;;;-E0075;TAG LATIN SMALL LETTER U;Cf;0;BN;;;;;N;;;;;-E0076;TAG LATIN SMALL LETTER V;Cf;0;BN;;;;;N;;;;;-E0077;TAG LATIN SMALL LETTER W;Cf;0;BN;;;;;N;;;;;-E0078;TAG LATIN SMALL LETTER X;Cf;0;BN;;;;;N;;;;;-E0079;TAG LATIN SMALL LETTER Y;Cf;0;BN;;;;;N;;;;;-E007A;TAG LATIN SMALL LETTER Z;Cf;0;BN;;;;;N;;;;;-E007B;TAG LEFT CURLY BRACKET;Cf;0;BN;;;;;N;;;;;-E007C;TAG VERTICAL LINE;Cf;0;BN;;;;;N;;;;;-E007D;TAG RIGHT CURLY BRACKET;Cf;0;BN;;;;;N;;;;;-E007E;TAG TILDE;Cf;0;BN;;;;;N;;;;;-E007F;CANCEL TAG;Cf;0;BN;;;;;N;;;;;-E0100;VARIATION SELECTOR-17;Mn;0;NSM;;;;;N;;;;;-E0101;VARIATION SELECTOR-18;Mn;0;NSM;;;;;N;;;;;-E0102;VARIATION SELECTOR-19;Mn;0;NSM;;;;;N;;;;;-E0103;VARIATION SELECTOR-20;Mn;0;NSM;;;;;N;;;;;-E0104;VARIATION SELECTOR-21;Mn;0;NSM;;;;;N;;;;;-E0105;VARIATION SELECTOR-22;Mn;0;NSM;;;;;N;;;;;-E0106;VARIATION SELECTOR-23;Mn;0;NSM;;;;;N;;;;;-E0107;VARIATION SELECTOR-24;Mn;0;NSM;;;;;N;;;;;-E0108;VARIATION SELECTOR-25;Mn;0;NSM;;;;;N;;;;;-E0109;VARIATION SELECTOR-26;Mn;0;NSM;;;;;N;;;;;-E010A;VARIATION SELECTOR-27;Mn;0;NSM;;;;;N;;;;;-E010B;VARIATION SELECTOR-28;Mn;0;NSM;;;;;N;;;;;-E010C;VARIATION SELECTOR-29;Mn;0;NSM;;;;;N;;;;;-E010D;VARIATION SELECTOR-30;Mn;0;NSM;;;;;N;;;;;-E010E;VARIATION SELECTOR-31;Mn;0;NSM;;;;;N;;;;;-E010F;VARIATION SELECTOR-32;Mn;0;NSM;;;;;N;;;;;-E0110;VARIATION SELECTOR-33;Mn;0;NSM;;;;;N;;;;;-E0111;VARIATION SELECTOR-34;Mn;0;NSM;;;;;N;;;;;-E0112;VARIATION SELECTOR-35;Mn;0;NSM;;;;;N;;;;;-E0113;VARIATION SELECTOR-36;Mn;0;NSM;;;;;N;;;;;-E0114;VARIATION SELECTOR-37;Mn;0;NSM;;;;;N;;;;;-E0115;VARIATION SELECTOR-38;Mn;0;NSM;;;;;N;;;;;-E0116;VARIATION SELECTOR-39;Mn;0;NSM;;;;;N;;;;;-E0117;VARIATION SELECTOR-40;Mn;0;NSM;;;;;N;;;;;-E0118;VARIATION SELECTOR-41;Mn;0;NSM;;;;;N;;;;;-E0119;VARIATION SELECTOR-42;Mn;0;NSM;;;;;N;;;;;-E011A;VARIATION SELECTOR-43;Mn;0;NSM;;;;;N;;;;;-E011B;VARIATION SELECTOR-44;Mn;0;NSM;;;;;N;;;;;-E011C;VARIATION SELECTOR-45;Mn;0;NSM;;;;;N;;;;;-E011D;VARIATION SELECTOR-46;Mn;0;NSM;;;;;N;;;;;-E011E;VARIATION SELECTOR-47;Mn;0;NSM;;;;;N;;;;;-E011F;VARIATION SELECTOR-48;Mn;0;NSM;;;;;N;;;;;-E0120;VARIATION SELECTOR-49;Mn;0;NSM;;;;;N;;;;;-E0121;VARIATION SELECTOR-50;Mn;0;NSM;;;;;N;;;;;-E0122;VARIATION SELECTOR-51;Mn;0;NSM;;;;;N;;;;;-E0123;VARIATION SELECTOR-52;Mn;0;NSM;;;;;N;;;;;-E0124;VARIATION SELECTOR-53;Mn;0;NSM;;;;;N;;;;;-E0125;VARIATION SELECTOR-54;Mn;0;NSM;;;;;N;;;;;-E0126;VARIATION SELECTOR-55;Mn;0;NSM;;;;;N;;;;;-E0127;VARIATION SELECTOR-56;Mn;0;NSM;;;;;N;;;;;-E0128;VARIATION SELECTOR-57;Mn;0;NSM;;;;;N;;;;;-E0129;VARIATION SELECTOR-58;Mn;0;NSM;;;;;N;;;;;-E012A;VARIATION SELECTOR-59;Mn;0;NSM;;;;;N;;;;;-E012B;VARIATION SELECTOR-60;Mn;0;NSM;;;;;N;;;;;-E012C;VARIATION SELECTOR-61;Mn;0;NSM;;;;;N;;;;;-E012D;VARIATION SELECTOR-62;Mn;0;NSM;;;;;N;;;;;-E012E;VARIATION SELECTOR-63;Mn;0;NSM;;;;;N;;;;;-E012F;VARIATION SELECTOR-64;Mn;0;NSM;;;;;N;;;;;-E0130;VARIATION SELECTOR-65;Mn;0;NSM;;;;;N;;;;;-E0131;VARIATION SELECTOR-66;Mn;0;NSM;;;;;N;;;;;-E0132;VARIATION SELECTOR-67;Mn;0;NSM;;;;;N;;;;;-E0133;VARIATION SELECTOR-68;Mn;0;NSM;;;;;N;;;;;-E0134;VARIATION SELECTOR-69;Mn;0;NSM;;;;;N;;;;;-E0135;VARIATION SELECTOR-70;Mn;0;NSM;;;;;N;;;;;-E0136;VARIATION SELECTOR-71;Mn;0;NSM;;;;;N;;;;;-E0137;VARIATION SELECTOR-72;Mn;0;NSM;;;;;N;;;;;-E0138;VARIATION SELECTOR-73;Mn;0;NSM;;;;;N;;;;;-E0139;VARIATION SELECTOR-74;Mn;0;NSM;;;;;N;;;;;-E013A;VARIATION SELECTOR-75;Mn;0;NSM;;;;;N;;;;;-E013B;VARIATION SELECTOR-76;Mn;0;NSM;;;;;N;;;;;-E013C;VARIATION SELECTOR-77;Mn;0;NSM;;;;;N;;;;;-E013D;VARIATION SELECTOR-78;Mn;0;NSM;;;;;N;;;;;-E013E;VARIATION SELECTOR-79;Mn;0;NSM;;;;;N;;;;;-E013F;VARIATION SELECTOR-80;Mn;0;NSM;;;;;N;;;;;-E0140;VARIATION SELECTOR-81;Mn;0;NSM;;;;;N;;;;;-E0141;VARIATION SELECTOR-82;Mn;0;NSM;;;;;N;;;;;-E0142;VARIATION SELECTOR-83;Mn;0;NSM;;;;;N;;;;;-E0143;VARIATION SELECTOR-84;Mn;0;NSM;;;;;N;;;;;-E0144;VARIATION SELECTOR-85;Mn;0;NSM;;;;;N;;;;;-E0145;VARIATION SELECTOR-86;Mn;0;NSM;;;;;N;;;;;-E0146;VARIATION SELECTOR-87;Mn;0;NSM;;;;;N;;;;;-E0147;VARIATION SELECTOR-88;Mn;0;NSM;;;;;N;;;;;-E0148;VARIATION SELECTOR-89;Mn;0;NSM;;;;;N;;;;;-E0149;VARIATION SELECTOR-90;Mn;0;NSM;;;;;N;;;;;-E014A;VARIATION SELECTOR-91;Mn;0;NSM;;;;;N;;;;;-E014B;VARIATION SELECTOR-92;Mn;0;NSM;;;;;N;;;;;-E014C;VARIATION SELECTOR-93;Mn;0;NSM;;;;;N;;;;;-E014D;VARIATION SELECTOR-94;Mn;0;NSM;;;;;N;;;;;-E014E;VARIATION SELECTOR-95;Mn;0;NSM;;;;;N;;;;;-E014F;VARIATION SELECTOR-96;Mn;0;NSM;;;;;N;;;;;-E0150;VARIATION SELECTOR-97;Mn;0;NSM;;;;;N;;;;;-E0151;VARIATION SELECTOR-98;Mn;0;NSM;;;;;N;;;;;-E0152;VARIATION SELECTOR-99;Mn;0;NSM;;;;;N;;;;;-E0153;VARIATION SELECTOR-100;Mn;0;NSM;;;;;N;;;;;-E0154;VARIATION SELECTOR-101;Mn;0;NSM;;;;;N;;;;;-E0155;VARIATION SELECTOR-102;Mn;0;NSM;;;;;N;;;;;-E0156;VARIATION SELECTOR-103;Mn;0;NSM;;;;;N;;;;;-E0157;VARIATION SELECTOR-104;Mn;0;NSM;;;;;N;;;;;-E0158;VARIATION SELECTOR-105;Mn;0;NSM;;;;;N;;;;;-E0159;VARIATION SELECTOR-106;Mn;0;NSM;;;;;N;;;;;-E015A;VARIATION SELECTOR-107;Mn;0;NSM;;;;;N;;;;;-E015B;VARIATION SELECTOR-108;Mn;0;NSM;;;;;N;;;;;-E015C;VARIATION SELECTOR-109;Mn;0;NSM;;;;;N;;;;;-E015D;VARIATION SELECTOR-110;Mn;0;NSM;;;;;N;;;;;-E015E;VARIATION SELECTOR-111;Mn;0;NSM;;;;;N;;;;;-E015F;VARIATION SELECTOR-112;Mn;0;NSM;;;;;N;;;;;-E0160;VARIATION SELECTOR-113;Mn;0;NSM;;;;;N;;;;;-E0161;VARIATION SELECTOR-114;Mn;0;NSM;;;;;N;;;;;-E0162;VARIATION SELECTOR-115;Mn;0;NSM;;;;;N;;;;;-E0163;VARIATION SELECTOR-116;Mn;0;NSM;;;;;N;;;;;-E0164;VARIATION SELECTOR-117;Mn;0;NSM;;;;;N;;;;;-E0165;VARIATION SELECTOR-118;Mn;0;NSM;;;;;N;;;;;-E0166;VARIATION SELECTOR-119;Mn;0;NSM;;;;;N;;;;;-E0167;VARIATION SELECTOR-120;Mn;0;NSM;;;;;N;;;;;-E0168;VARIATION SELECTOR-121;Mn;0;NSM;;;;;N;;;;;-E0169;VARIATION SELECTOR-122;Mn;0;NSM;;;;;N;;;;;-E016A;VARIATION SELECTOR-123;Mn;0;NSM;;;;;N;;;;;-E016B;VARIATION SELECTOR-124;Mn;0;NSM;;;;;N;;;;;-E016C;VARIATION SELECTOR-125;Mn;0;NSM;;;;;N;;;;;-E016D;VARIATION SELECTOR-126;Mn;0;NSM;;;;;N;;;;;-E016E;VARIATION SELECTOR-127;Mn;0;NSM;;;;;N;;;;;-E016F;VARIATION SELECTOR-128;Mn;0;NSM;;;;;N;;;;;-E0170;VARIATION SELECTOR-129;Mn;0;NSM;;;;;N;;;;;-E0171;VARIATION SELECTOR-130;Mn;0;NSM;;;;;N;;;;;-E0172;VARIATION SELECTOR-131;Mn;0;NSM;;;;;N;;;;;-E0173;VARIATION SELECTOR-132;Mn;0;NSM;;;;;N;;;;;-E0174;VARIATION SELECTOR-133;Mn;0;NSM;;;;;N;;;;;-E0175;VARIATION SELECTOR-134;Mn;0;NSM;;;;;N;;;;;-E0176;VARIATION SELECTOR-135;Mn;0;NSM;;;;;N;;;;;-E0177;VARIATION SELECTOR-136;Mn;0;NSM;;;;;N;;;;;-E0178;VARIATION SELECTOR-137;Mn;0;NSM;;;;;N;;;;;-E0179;VARIATION SELECTOR-138;Mn;0;NSM;;;;;N;;;;;-E017A;VARIATION SELECTOR-139;Mn;0;NSM;;;;;N;;;;;-E017B;VARIATION SELECTOR-140;Mn;0;NSM;;;;;N;;;;;-E017C;VARIATION SELECTOR-141;Mn;0;NSM;;;;;N;;;;;-E017D;VARIATION SELECTOR-142;Mn;0;NSM;;;;;N;;;;;-E017E;VARIATION SELECTOR-143;Mn;0;NSM;;;;;N;;;;;-E017F;VARIATION SELECTOR-144;Mn;0;NSM;;;;;N;;;;;-E0180;VARIATION SELECTOR-145;Mn;0;NSM;;;;;N;;;;;-E0181;VARIATION SELECTOR-146;Mn;0;NSM;;;;;N;;;;;-E0182;VARIATION SELECTOR-147;Mn;0;NSM;;;;;N;;;;;-E0183;VARIATION SELECTOR-148;Mn;0;NSM;;;;;N;;;;;-E0184;VARIATION SELECTOR-149;Mn;0;NSM;;;;;N;;;;;-E0185;VARIATION SELECTOR-150;Mn;0;NSM;;;;;N;;;;;-E0186;VARIATION SELECTOR-151;Mn;0;NSM;;;;;N;;;;;-E0187;VARIATION SELECTOR-152;Mn;0;NSM;;;;;N;;;;;-E0188;VARIATION SELECTOR-153;Mn;0;NSM;;;;;N;;;;;-E0189;VARIATION SELECTOR-154;Mn;0;NSM;;;;;N;;;;;-E018A;VARIATION SELECTOR-155;Mn;0;NSM;;;;;N;;;;;-E018B;VARIATION SELECTOR-156;Mn;0;NSM;;;;;N;;;;;-E018C;VARIATION SELECTOR-157;Mn;0;NSM;;;;;N;;;;;-E018D;VARIATION SELECTOR-158;Mn;0;NSM;;;;;N;;;;;-E018E;VARIATION SELECTOR-159;Mn;0;NSM;;;;;N;;;;;-E018F;VARIATION SELECTOR-160;Mn;0;NSM;;;;;N;;;;;-E0190;VARIATION SELECTOR-161;Mn;0;NSM;;;;;N;;;;;-E0191;VARIATION SELECTOR-162;Mn;0;NSM;;;;;N;;;;;-E0192;VARIATION SELECTOR-163;Mn;0;NSM;;;;;N;;;;;-E0193;VARIATION SELECTOR-164;Mn;0;NSM;;;;;N;;;;;-E0194;VARIATION SELECTOR-165;Mn;0;NSM;;;;;N;;;;;-E0195;VARIATION SELECTOR-166;Mn;0;NSM;;;;;N;;;;;-E0196;VARIATION SELECTOR-167;Mn;0;NSM;;;;;N;;;;;-E0197;VARIATION SELECTOR-168;Mn;0;NSM;;;;;N;;;;;-E0198;VARIATION SELECTOR-169;Mn;0;NSM;;;;;N;;;;;-E0199;VARIATION SELECTOR-170;Mn;0;NSM;;;;;N;;;;;-E019A;VARIATION SELECTOR-171;Mn;0;NSM;;;;;N;;;;;-E019B;VARIATION SELECTOR-172;Mn;0;NSM;;;;;N;;;;;-E019C;VARIATION SELECTOR-173;Mn;0;NSM;;;;;N;;;;;-E019D;VARIATION SELECTOR-174;Mn;0;NSM;;;;;N;;;;;-E019E;VARIATION SELECTOR-175;Mn;0;NSM;;;;;N;;;;;-E019F;VARIATION SELECTOR-176;Mn;0;NSM;;;;;N;;;;;-E01A0;VARIATION SELECTOR-177;Mn;0;NSM;;;;;N;;;;;-E01A1;VARIATION SELECTOR-178;Mn;0;NSM;;;;;N;;;;;-E01A2;VARIATION SELECTOR-179;Mn;0;NSM;;;;;N;;;;;-E01A3;VARIATION SELECTOR-180;Mn;0;NSM;;;;;N;;;;;-E01A4;VARIATION SELECTOR-181;Mn;0;NSM;;;;;N;;;;;-E01A5;VARIATION SELECTOR-182;Mn;0;NSM;;;;;N;;;;;-E01A6;VARIATION SELECTOR-183;Mn;0;NSM;;;;;N;;;;;-E01A7;VARIATION SELECTOR-184;Mn;0;NSM;;;;;N;;;;;-E01A8;VARIATION SELECTOR-185;Mn;0;NSM;;;;;N;;;;;-E01A9;VARIATION SELECTOR-186;Mn;0;NSM;;;;;N;;;;;-E01AA;VARIATION SELECTOR-187;Mn;0;NSM;;;;;N;;;;;-E01AB;VARIATION SELECTOR-188;Mn;0;NSM;;;;;N;;;;;-E01AC;VARIATION SELECTOR-189;Mn;0;NSM;;;;;N;;;;;-E01AD;VARIATION SELECTOR-190;Mn;0;NSM;;;;;N;;;;;-E01AE;VARIATION SELECTOR-191;Mn;0;NSM;;;;;N;;;;;-E01AF;VARIATION SELECTOR-192;Mn;0;NSM;;;;;N;;;;;-E01B0;VARIATION SELECTOR-193;Mn;0;NSM;;;;;N;;;;;-E01B1;VARIATION SELECTOR-194;Mn;0;NSM;;;;;N;;;;;-E01B2;VARIATION SELECTOR-195;Mn;0;NSM;;;;;N;;;;;-E01B3;VARIATION SELECTOR-196;Mn;0;NSM;;;;;N;;;;;-E01B4;VARIATION SELECTOR-197;Mn;0;NSM;;;;;N;;;;;-E01B5;VARIATION SELECTOR-198;Mn;0;NSM;;;;;N;;;;;-E01B6;VARIATION SELECTOR-199;Mn;0;NSM;;;;;N;;;;;-E01B7;VARIATION SELECTOR-200;Mn;0;NSM;;;;;N;;;;;-E01B8;VARIATION SELECTOR-201;Mn;0;NSM;;;;;N;;;;;-E01B9;VARIATION SELECTOR-202;Mn;0;NSM;;;;;N;;;;;-E01BA;VARIATION SELECTOR-203;Mn;0;NSM;;;;;N;;;;;-E01BB;VARIATION SELECTOR-204;Mn;0;NSM;;;;;N;;;;;-E01BC;VARIATION SELECTOR-205;Mn;0;NSM;;;;;N;;;;;-E01BD;VARIATION SELECTOR-206;Mn;0;NSM;;;;;N;;;;;-E01BE;VARIATION SELECTOR-207;Mn;0;NSM;;;;;N;;;;;-E01BF;VARIATION SELECTOR-208;Mn;0;NSM;;;;;N;;;;;-E01C0;VARIATION SELECTOR-209;Mn;0;NSM;;;;;N;;;;;-E01C1;VARIATION SELECTOR-210;Mn;0;NSM;;;;;N;;;;;-E01C2;VARIATION SELECTOR-211;Mn;0;NSM;;;;;N;;;;;-E01C3;VARIATION SELECTOR-212;Mn;0;NSM;;;;;N;;;;;-E01C4;VARIATION SELECTOR-213;Mn;0;NSM;;;;;N;;;;;-E01C5;VARIATION SELECTOR-214;Mn;0;NSM;;;;;N;;;;;-E01C6;VARIATION SELECTOR-215;Mn;0;NSM;;;;;N;;;;;-E01C7;VARIATION SELECTOR-216;Mn;0;NSM;;;;;N;;;;;-E01C8;VARIATION SELECTOR-217;Mn;0;NSM;;;;;N;;;;;-E01C9;VARIATION SELECTOR-218;Mn;0;NSM;;;;;N;;;;;-E01CA;VARIATION SELECTOR-219;Mn;0;NSM;;;;;N;;;;;-E01CB;VARIATION SELECTOR-220;Mn;0;NSM;;;;;N;;;;;-E01CC;VARIATION SELECTOR-221;Mn;0;NSM;;;;;N;;;;;-E01CD;VARIATION SELECTOR-222;Mn;0;NSM;;;;;N;;;;;-E01CE;VARIATION SELECTOR-223;Mn;0;NSM;;;;;N;;;;;-E01CF;VARIATION SELECTOR-224;Mn;0;NSM;;;;;N;;;;;-E01D0;VARIATION SELECTOR-225;Mn;0;NSM;;;;;N;;;;;-E01D1;VARIATION SELECTOR-226;Mn;0;NSM;;;;;N;;;;;-E01D2;VARIATION SELECTOR-227;Mn;0;NSM;;;;;N;;;;;-E01D3;VARIATION SELECTOR-228;Mn;0;NSM;;;;;N;;;;;-E01D4;VARIATION SELECTOR-229;Mn;0;NSM;;;;;N;;;;;-E01D5;VARIATION SELECTOR-230;Mn;0;NSM;;;;;N;;;;;-E01D6;VARIATION SELECTOR-231;Mn;0;NSM;;;;;N;;;;;-E01D7;VARIATION SELECTOR-232;Mn;0;NSM;;;;;N;;;;;-E01D8;VARIATION SELECTOR-233;Mn;0;NSM;;;;;N;;;;;-E01D9;VARIATION SELECTOR-234;Mn;0;NSM;;;;;N;;;;;-E01DA;VARIATION SELECTOR-235;Mn;0;NSM;;;;;N;;;;;-E01DB;VARIATION SELECTOR-236;Mn;0;NSM;;;;;N;;;;;-E01DC;VARIATION SELECTOR-237;Mn;0;NSM;;;;;N;;;;;-E01DD;VARIATION SELECTOR-238;Mn;0;NSM;;;;;N;;;;;-E01DE;VARIATION SELECTOR-239;Mn;0;NSM;;;;;N;;;;;-E01DF;VARIATION SELECTOR-240;Mn;0;NSM;;;;;N;;;;;-E01E0;VARIATION SELECTOR-241;Mn;0;NSM;;;;;N;;;;;-E01E1;VARIATION SELECTOR-242;Mn;0;NSM;;;;;N;;;;;-E01E2;VARIATION SELECTOR-243;Mn;0;NSM;;;;;N;;;;;-E01E3;VARIATION SELECTOR-244;Mn;0;NSM;;;;;N;;;;;-E01E4;VARIATION SELECTOR-245;Mn;0;NSM;;;;;N;;;;;-E01E5;VARIATION SELECTOR-246;Mn;0;NSM;;;;;N;;;;;-E01E6;VARIATION SELECTOR-247;Mn;0;NSM;;;;;N;;;;;-E01E7;VARIATION SELECTOR-248;Mn;0;NSM;;;;;N;;;;;-E01E8;VARIATION SELECTOR-249;Mn;0;NSM;;;;;N;;;;;-E01E9;VARIATION SELECTOR-250;Mn;0;NSM;;;;;N;;;;;-E01EA;VARIATION SELECTOR-251;Mn;0;NSM;;;;;N;;;;;-E01EB;VARIATION SELECTOR-252;Mn;0;NSM;;;;;N;;;;;-E01EC;VARIATION SELECTOR-253;Mn;0;NSM;;;;;N;;;;;-E01ED;VARIATION SELECTOR-254;Mn;0;NSM;;;;;N;;;;;-E01EE;VARIATION SELECTOR-255;Mn;0;NSM;;;;;N;;;;;-E01EF;VARIATION SELECTOR-256;Mn;0;NSM;;;;;N;;;;;-F0000;<Plane 15 Private Use, First>;Co;0;L;;;;;N;;;;;-FFFFD;<Plane 15 Private Use, Last>;Co;0;L;;;;;N;;;;;-100000;<Plane 16 Private Use, First>;Co;0;L;;;;;N;;;;;-10FFFD;<Plane 16 Private Use, Last>;Co;0;L;;;;;N;;;;;
src/Text/XML/HXT/RelaxNG/XmlSchema/Regex.hs view
@@ -44,7 +44,7 @@     ) where -import Data.Maybe+import Data.List	( foldl' )  -- ------------------------------------------------------------ @@ -290,7 +290,7 @@ -- ------------------------------------------------------------  delta'		:: Regex -> String -> Regex-delta'		= foldl delta+delta'		= foldl' delta  matchWithRE		:: Regex -> String -> Maybe String matchWithRE e
src/Text/XML/HXT/RelaxNG/XmlSchema/RegexParser.hs view
@@ -55,7 +55,7 @@     where     branch1 	= do-	  char '|'+	  _ <- char '|' 	  branch  branch	:: Parser Regex@@ -73,21 +73,21 @@ quantifier	:: Regex -> Parser Regex quantifier r     = ( do-	char '?'+	_ <- char '?' 	return $ mkOpt r )       <|>       ( do-	char '*'+	_ <- char '*' 	return $ mkStar r )       <|>       ( do-	char '+'+	_ <- char '+' 	return $ mkRep 1 r )       <|>       ( do-	char '{'+	_ <- char '{' 	res <- quantity r-	char '}'+	_ <- char '}' 	return res       )       <|>@@ -102,7 +102,7 @@ quantityRest	:: Regex -> Int -> Parser Regex quantityRest r lb     = ( do-	char ','+	_ <- char ',' 	ub <- many digit 	return ( if null ub 		 then mkRep lb r@@ -137,7 +137,7 @@ charClassEsc	:: Parser Regex charClassEsc     = do-      char '\\'+      _ <- char '\\'       ( singleCharEsc 	<|> 	multiCharEsc@@ -184,7 +184,7 @@ catEsc	:: Parser Regex catEsc     = do-      char 'p'+      _ <- char 'p'       s <- between (char '{') (char '}') charProp       return $ mkSym s @@ -197,7 +197,7 @@ isBlock		:: Parser (Char -> Bool) isBlock     = do-      string "Is"+      _ <- string "Is"       name <- many1 (satisfy legalChar)       let b = lookup name codeBlocks       if isJust b@@ -273,7 +273,7 @@     where     prop c1 cs2 	= do-	  char c1+	  _ <- char c1 	  s2 <- option "" 		( do 		  c2 <- satisfy (`elem` cs2)@@ -283,7 +283,7 @@ complEsc	:: Parser Regex complEsc     = do-      char 'P'+      _ <- char 'P'       s <- between (char '{') (char '}') charProp       return $ mkSym (not . s) @@ -300,7 +300,7 @@ 	   )       s <- option (mkZero "")	-- charClassSub 	   ( do-	     char '-'+	     _ <- char '-' 	     charClassExpr 	   )       return $ mkDif r s@@ -321,7 +321,7 @@ seRange     = do       c1 <- charOrEsc'-      char '-'+      _ <- char '-'       c2 <- charOrEsc'       return $ mkSymRng c1 c2 @@ -340,14 +340,14 @@ negCharGroup	:: Parser Regex negCharGroup     = do-      char '^'+      _ <- char '^'       r <- posCharGroup       return $ mkCompl r  wildCardEsc	:: Parser Regex wildCardEsc     = do-      char '.'+      _ <- char '.'       return $ mkSym (`notElem` "\n\r")  
src/Text/XML/HXT/Version.hs view
@@ -1,4 +1,4 @@ module Text.XML.HXT.Version where hxt_version :: String-hxt_version = "8.3.2"+hxt_version = "8.4.0"
src/Text/XML/HXT/XPath/XPathParser.hs view
@@ -120,7 +120,7 @@ tokenParser p     = try ( do             skipS0-            p+            _ <- p             skipS0            ) @@ -619,7 +619,7 @@ 	 return (enhanceQN as uris $ mkPrefixLocalPart "" "*")       <|>       try ( do pre <- ncName-               symbol ":*"+               _ <- symbol ":*"                uris <- getState                return (enhanceQN as uris $ mkPrefixLocalPart pre "*") 	  )
− src/Text/XML/HXT/XSLT/Application.hs
@@ -1,640 +0,0 @@--- --------------------------------------------------------------{- |-   Module     : Text.XML.HXT.XSLT.Application-   Copyright  : Copyright (C) 2006 Tim Walkenhorst, Uwe Schmidt-   License    : MIT--   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)-   Stability  : experimental-   Portability: portable-   Version    : $Id: Application.hs,v 1.7 2007/05/02 06:41:05 hxml Exp $--   The transformation functions for XSLT transformation of XML documents--   Exports only two pure functions 'applyStylesheet' and 'applyStylesheetWParams'---}---- --------------------------------------------------------------module Text.XML.HXT.XSLT.Application -    ( applyStylesheet        -- CompiledStylesheet -> XmlTree -> [XmlTree]-    , applyStylesheetWParams -- Map ExName Expr -> CompiledStylesheet -> XmlTree -> [XmlTree]-    , XPathParams-    )-where--import Text.XML.HXT.XSLT.Common-import Text.XML.HXT.XSLT.CompiledStylesheet--import Data.Maybe-import Data.Either-import Data.List--import Data.Map(Map)-import qualified Data.Map as Map hiding (Map)--import Data.Char---- --------------------------------------------------------------type XPathParams = Map ExName Expr--type VariableSet = Map ExName XPathValue--type ParamSet = VariableSet--data Context = Ctx NavXmlTree               -- current node-                   [NavXmlTree]             -- current node list -                   Int                      -- pos. of curr-node 1..length-                   Int                      -- length of node list-                   VariableSet              -- glob. Var-                   VariableSet              -- loc. Var-                   CompiledStylesheet       -- The stylesheet which is being applied-                   (Maybe MatchRule)        -- Just the last applied match rule, Nothing within xsl:for-each-                   Int                      -- recursion depth, needed for the creation of rtf-ids-               | CtxEmpty        -- The empty-context, indicates that a branch of a transformation has been finished--ctxGetNode :: Context -> NavXmlTree-ctxGetNode CtxEmpty = error "ctxGetNode: Internal error attempt to access the empty context"-ctxGetNode (Ctx node _ _ _ _ _ _ _ _) = node--ctxGetStylesheet :: Context -> CompiledStylesheet-ctxGetStylesheet CtxEmpty = error "ctxGetStylesheet: Internal error attempt to access the empty context"-ctxGetStylesheet (Ctx _ _ _ _ _ _ stylesheet _ _) = stylesheet--ctxGetRule :: Context -> Maybe MatchRule-ctxGetRule CtxEmpty = Nothing-ctxGetRule (Ctx _ _ _ _ _ _ _ rule _) = rule--ctxSetNodes :: [NavXmlTree] -> Context -> Context-ctxSetNodes _ CtxEmpty = error "ctxSetNodes: Internal error attempt to access the empty context"-ctxSetNodes [] _       = CtxEmpty-ctxSetNodes nodes (Ctx _ _ _ _ globVars locVars cs rl rd) =-  Ctx (head nodes) nodes 1 (length nodes) globVars locVars cs rl rd--ctxSetRule :: Maybe MatchRule -> Context -> Context-ctxSetRule _ CtxEmpty = error "ctxSetRule: Internal error attempt to access the empty context"-ctxSetRule rule (Ctx node nodes pos len globVars locVars cs _ rd) =-  Ctx node nodes pos len globVars locVars cs rule rd--addVariableBinding :: ExName -> XPathValue -> Context -> Context-addVariableBinding name val (Ctx node nodes pos len globVars locVars cs rl rd)-    = Ctx node nodes pos len globVars locVarsNew cs rl rd-    where-    locVarsNew = Map.insertWith (errF) name val locVars-    errF       = error $ "Local variable or parameter " ++ show name ++ " is already bound in this context"--addVariableBinding _ _ CtxEmpty = CtxEmpty--clearLocalVariables :: Context -> Context-clearLocalVariables CtxEmpty = CtxEmpty-clearLocalVariables (Ctx node nodes pos len globVars _ cs rl rd)-    = (Ctx node nodes pos len globVars Map.empty cs rl rd)--processContext :: Context -> (Context->[XmlTree]) -> [XmlTree]-processContext CtxEmpty _f = []-processContext ctx@(Ctx _node nodeList pos len globVar locVar cs rl rd) f-    | pos > len-	= []-    | otherwise-	= f ctx ++ processContext (Ctx (nodeList!!pos) nodeList (pos+1) len globVar locVar cs rl rd) f-                 -incRecDepth :: Context -> Context-incRecDepth CtxEmpty = CtxEmpty-incRecDepth (Ctx n nl p l gl lc cs rl rd) = Ctx n nl p l gl lc cs rl (rd+1)--recDepth :: Context -> Int-recDepth (Ctx _ _ _ _ _ _ _ _ rd) = rd-recDepth CtxEmpty = 0-                 --- ------------------evalXPathExpr :: Expr -> Context -> XPathValue-evalXPathExpr expr (Ctx node _ pos len globVars locVars _ _ _)-    = filterXPath $ evalExpr (vars,[]) (pos, len, node) expr (XPVNode [node])-    where -    filterXPath (XPVError err)    = error err-    filterXPath (XPVNode nodes)   = XPVNode $ (\x -> fst x ++ snd x) $ partition (isAttr.subtreeNT) nodes-    -- line above: complicated issue: consider: <lre><xsl:copy-of select="a/@*|a/*|b/@*"/></lre>-    -- assume a is in document order before b. Shall b's attributes be added to lre or be ignored?!-    filterXPath xpv               = xpv-    vars                          = map (\(name, val) -> ((exUri name, exLocal name), val)) varList-    varList                       = Map.toAscList $ locVars `Map.union` globVars--evalXPathExpr _ CtxEmpty-    = error "internal error in evalXPathExpr in XSLT module"--evalRtf :: Template -> String -> Context -> XPathValue-evalRtf template rtfId ctx = XPVNode [ntree rtfRoot]-  where-    rtfRoot = setAttribute rootIdName ("rtf " ++ rtfId) $ mkRoot [] $ applyTemplate template ctx-    rootIdName = mkQName "" "rootId" ""--applySelect :: SelectExpr -> Context -> [NavXmlTree]-applySelect (SelectExpr expr) ctx = -    extractNodes xpathResult-  where -    xpathResult                  = evalXPathExpr expr ctx-    extractNodes (XPVNode nodes) = nodes-    extractNodes r               = error $ "XPATH-Expression in select or match attribute returned a value of the wrong type ("              -                                           ++ take 15 (show r)  ++ "...)"--applyTest :: TestExpr -> Context -> Bool-applyTest (TestExpr expr) ctx = bool-  where (XPVBool bool) = evalXPathExpr expr ctx--applyStringExpr :: StringExpr -> Context -> String-applyStringExpr (StringExpr expr) ctx = string-  where (XPVString string) = evalXPathExpr expr ctx--applyMatch :: MatchExpr -> Context -> Bool-applyMatch (MatchExpr expr) ctx-    = matchBySelect (SelectExpr expr) (ctxGetNode ctx) ctx-    where-    matchBySelect :: SelectExpr -> NavXmlTree -> Context -> Bool-    matchBySelect _ _ CtxEmpty = False-    matchBySelect expr' matchNode ctx'  -	| matchNode `isNotInNodeList` applySelect expr' ctx'-	    = matchBySelect expr' matchNode $ ctxSetNodes (maybeToList $ upNT $ ctxGetNode ctx') ctx'-        | otherwise-	    = True   ---- --------------------------------------applyComputedQName :: ComputedQName -> Context -> QName--applyComputedQName (LiteralQName qName) ctx = -    lookupAlias (getAliases $ ctxGetStylesheet ctx) qName--applyComputedQName (CompQName uris nameATV nsATV) ctx =-    if null nsuri && not (null pref)-    then mkQName pref loc $ lookupPrefix uris pref-    else mkQName pref loc nsuri-  where       -    nsuri         = applyStringExpr nsATV ctx   -    (pref, loc)   = if null loc' then ("", pref') -                                 else (pref', tail loc')-    (pref', loc') = span (/=':') $ applyStringExpr nameATV ctx---- ------------------------------------- -applyComposite :: Template -> Context -> [XmlTree]-applyComposite (TemplComposite templates) ctx-    = concat $ reverse $ fst $ foldl applyElem ([], ctx) templates-    where -    applyElem :: ([[XmlTree]], Context) -> Template -> ([[XmlTree]], Context)-    applyElem (nodes, ctx') (TemplVariable v) = (nodes, processLocalVariable v Map.empty ctx')-    applyElem (nodes, ctx') t                 = (applyTemplate t ctx' : nodes, ctx')--applyComposite _ _ = []---applyForEach :: Template -> Context -> [XmlTree]-applyForEach (TemplForEach expr sorting template) ctx-    = processContext sortedCtx $ applyTemplate template-    where -    sortedCtx = applySorting sorting ctxWOrule nodes-    ctxWOrule = ctxSetRule Nothing $ ctx-    nodes     = applySelect expr ctx--applyForEach _ _ = []--         -applyChoose :: Template -> Context -> [XmlTree]-applyChoose (TemplChoose whenList) ctx-    = applyWhenList whenList ctx--applyChoose _ _ = []---applyWhenList :: [When] -> Context -> [XmlTree]-applyWhenList []  _ = []-applyWhenList ((WhenPart expr template):xs) ctx-    | applyTest expr ctx-	= applyTemplate template ctx-    | otherwise-	= applyWhenList xs ctx--applyMessage :: Template -> Context -> [XmlTree]-applyMessage (TemplMessage halt template) ctx-    | halt-	= error $ "Message(fatal): " ++ msg-    | otherwise-	= []	-- trace ("Message(trace): " ++ msg) []-    where-    msg     = showTrees content-    content = applyTemplate template ctx--applyMessage _ _ = []---- --------------------------------------applyElement :: Template -> Context -> [XmlTree]-applyElement (TemplElement compQName uris attribSets template) ctx =-    return $ createElement name uris aliases fullcontent-  where -    aliases     = getAliases $ ctxGetStylesheet ctx-    name        = applyComputedQName compQName ctx-    fullcontent = applyAttribSets [] attribSets ctx ++ applyTemplate template ctx--applyElement _ _ = []----- create an element from a list of attributes followed by content--createElement :: QName -> UriMapping -> NSAliasing -> [XmlTree] -> XmlTree-createElement name uris aliases fullcontent =-    mkElement name (nsAttrs ++ distinctAttribs) content-  where -    nsAttrs            = uriMap2Attrs $ aliasUriMapping aliases uris-    distinctAttribs    = nubBy eqAttr $ reverse attribs -    (attribs, content) = span (isAttr) fullcontent-    eqAttr node1 node2 = equivQName (fromJust $ getAttrName node1) (fromJust $ getAttrName node2)  ---applyAttribute :: Template -> Context -> [XmlTree]-applyAttribute (TemplAttribute compQName template) ctx =-    return $ mkAttr qName content-  where -    qName   = applyComputedQName compQName ctx-    content = applyTemplate template ctx--applyAttribute _ _ = []--  -applyText :: Template -> Context -> [XmlTree]-applyText (TemplText s) _-    = [mkText s]--applyText _ _ = []---applyValueOf :: Template -> Context -> [XmlTree]-applyValueOf (TemplValueOf expr) ctx-    = [mkText $ applyStringExpr expr ctx]--applyValueOf _ _ = []---applyComment :: Template -> Context -> [XmlTree]-applyComment (TemplComment content) ctx = -    return $ mkCmt $ format $ collectTextnodes $ applyTemplate content ctx-  where-    format ""           = ""               -- could probably move to hxt...?-    format "-"          = "- "-    format ('-':'-':xs) = '-':' ':format ('-':xs)-    format (x:xs)       = x:format xs--applyComment _ _ = []--applyProcInstr :: Template -> Context -> [XmlTree]-applyProcInstr (TemplProcInstr nameExpr template) ctx =-    return $ mkPi (mkName name) [mkText . format . collectTextnodes . applyTemplate template $ ctx]-  where-    name      = applyStringExpr nameExpr ctx      -    format ""           = ""                       -- In a better Haskell: format = replaceAll "?>" "? >"-    format ('?':'>':xs) = '?':' ':'>':format xs    -- could probably move to hxt...?-    format (x:xs)       = x:format xs--applyProcInstr _ _ = []---- --------------------------------------applyApplTempl :: Template -> Context -> [XmlTree]-applyApplTempl (TemplApply expr mode args sorting) ctx =-    applyMatchRulesToEntireContext params rules mode sortedCtx-  where -    params      = createParamSet args ctx-    sortedCtx   = applySorting sorting ctx nodes-    nodes       = maybe (getChildrenNT $ ctxGetNode ctx)-                        (flip applySelect ctx)-                        expr-    rules       = getMatchRules $ ctxGetStylesheet ctx--applyApplTempl _ _ = []---applyImports :: Template -> Context -> [XmlTree]-applyImports (TemplApplyImports) ctx= -    applyMatchRules Map.empty rules mode ctx-  where-    rules    = getRuleImports currRule-    mode     = getRuleMode currRule-    currRule = maybe (error "apply-imports must not be called during xsl:for-each") id $ ctxGetRule ctx--applyImports _ _ = []---applyCallTempl  :: Template -> Context -> [XmlTree]-applyCallTempl (TemplCall name args) ctx =-    instantiateNamedRule params rule ctx-  where-    params      = createParamSet args ctx-    rule        = maybe errNoRule id $ Map.lookup name rules-    rules       = getNamedRules $ ctxGetStylesheet ctx-    errNoRule   = error $ "No rule with qualified name: " ++ show name--applyCallTempl _ _ = []---- --------------------------------------applyCopy :: Template -> Context -> [XmlTree]-applyCopy (TemplCopy attrsets template) ctx-    | isRoot currNode			-- Case 1: Root node => just use the content template-	= applyTemplate template ctx-    | isElem currNode			-- Case 2: Any other element-node-	= return $ createElement name (getUriMap currNode) Map.empty fullcontent-    | otherwise				-- Just return the current node as result-	= return currNode        -  where-    currNode    = subtreeNT $ ctxGetNode ctx-    name        = fromJust $ getElemName currNode-    fullcontent = applyAttribSets [] attrsets ctx ++ applyTemplate template ctx--applyCopy _ _ = []--applyCopyOf :: Template -> Context -> [XmlTree]-applyCopyOf (TemplCopyOf expr)-    = concatMap expandRoot . xPValue2XmlTrees . evalXPathExpr expr-    where-    expandRoot node-	| isRoot node	= getChildren node-        | otherwise	= return node--applyCopyOf _ = const []---- --------------------------------------applyTemplate :: Template -> Context -> [XmlTree]-applyTemplate t@(TemplComposite _)     = applyComposite t-applyTemplate t@(TemplMessage _ _)     = applyMessage t-applyTemplate t@(TemplForEach _ _ _)   = applyForEach t-applyTemplate t@(TemplChoose _)        = applyChoose t-applyTemplate t@(TemplElement _ _ _ _) = applyElement t-applyTemplate t@(TemplAttribute _ _)   = applyAttribute t-applyTemplate t@(TemplText _)          = applyText t-applyTemplate t@(TemplValueOf _)       = applyValueOf t-applyTemplate t@(TemplComment _)       = applyComment t-applyTemplate t@(TemplProcInstr _ _)   = applyProcInstr t-applyTemplate t@(TemplApply _ _ _ _)   = applyApplTempl t-applyTemplate t@(TemplApplyImports)    = applyImports t-applyTemplate t@(TemplCall _ _)        = applyCallTempl t-applyTemplate t@(TemplCopy _ _)        = applyCopy t-applyTemplate t@(TemplCopyOf _)        = applyCopyOf t-applyTemplate   (TemplVariable _)      = const []	-- trace ("Warning: Unreacheable variable: " ++ show (getVarName v)) const []---- --------------------------------------- "Main" :--applyStylesheetWParams :: XPathParams -> CompiledStylesheet -> XmlTree -> [XmlTree]-applyStylesheetWParams inputParams cs@(CompStylesheet matchRules _ vars _ strips _) rawDoc = -    map fixupNS $ applyMatchRules Map.empty matchRules Nothing ctxRoot-  where-    ctxRoot   = Ctx docNode [docNode] 1 1 gloVars Map.empty cs Nothing 0-    gloVars   = Map.map (evalVariableWParamSet extParams ctxRoot) vars-    extParams = Map.map (flip evalXPathExpr ctxRoot) inputParams-    docNode   = ntree $ expandNSDecls $ stripDocument strips rawDoc--applyStylesheet :: CompiledStylesheet -> XmlTree -> [XmlTree]-applyStylesheet  = applyStylesheetWParams Map.empty---- --------------------------------------- calling named- and applying match-rules--applyMatchRulesToChildren :: ParamSet -> [MatchRule] -> (Maybe ExName) -> Context -> [XmlTree]-applyMatchRulesToChildren args rules mode ctx = -    applyMatchRulesToEntireContext args rules mode childCtx-  where-    childCtx = ctxSetNodes (getChildrenNT $ ctxGetNode ctx) ctx--applyMatchRulesToEntireContext :: ParamSet -> [MatchRule] -> Maybe ExName -> Context -> [XmlTree]-applyMatchRulesToEntireContext args rules mode ctx = processContext ctx (applyMatchRules args rules mode)--applyMatchRules :: ParamSet -> [MatchRule] -> (Maybe ExName) -> Context -> [XmlTree]-applyMatchRules _    []           mode ctx = matchDefaultRules mode ctx-applyMatchRules args (rule:rules) mode ctx = -    maybe (applyMatchRules args rules mode ctx) -          id-          (applyMatchRule args rule mode ctx)--applyMatchRule :: ParamSet -> MatchRule -> Maybe ExName -> Context -> Maybe [XmlTree]-applyMatchRule args rule@(MatRule expr _ ruleMode _ _ _) mode ctx =-  if mode==ruleMode && applyMatch expr ctx-    then Just $ instantiateMatchRule args rule $ ctxSetRule (Just rule) ctx-    else Nothing---instantiateMatchRule :: ParamSet -> MatchRule -> Context -> [XmlTree]-instantiateMatchRule args (MatRule _ _ _ _ params content) ctx =-    applyTemplate content ctxNew-  where -    ctxNew = incRecDepth $ processParameters params args $ clearLocalVariables ctx--instantiateNamedRule :: ParamSet -> NamedRule -> Context -> [XmlTree]-instantiateNamedRule args (NamRule _ params content) ctx =-    applyTemplate content ctxNew-  where -    ctxNew = incRecDepth $ processParameters params args $ clearLocalVariables ctx---- -------------------------------------    -matchDefaultRules :: (Maybe ExName) -> Context -> [XmlTree]-matchDefaultRules mode ctx@(Ctx ctxNavNode _ _ _ _ _ stylesheet _ _)-    | isElem ctxNode				-- rules for match="*|/"-	= applyMatchRulesToChildren Map.empty rules mode ctx -    | isText ctxNode				-- rule for match="text()"-	= [ctxNode]-    | isAttr ctxNode				-- rule for match="@*"-	= [mkText $ collectTextnodes $ getChildren ctxNode]-    | otherwise					-- the glorious rest (PIs and comments):-	= []-    where -    rules   = getMatchRules stylesheet-    ctxNode = subtreeNT ctxNavNode--matchDefaultRules _ _ = []-  --- ---------------------------------------- Variables and Parameters---- Evaluate a xsl:variable or xsl:param element and add the newly--- created local variable to the context--processLocalVariable :: Variable -> ParamSet -> Context -> Context-processLocalVariable var@(MkVar _ name _) arguments ctx =    -    addVariableBinding name val ctx-  where-    val = evalVariableWParamSet arguments ctx var--processParameters :: [Variable] -> ParamSet -> Context -> Context-processParameters params arguments ctx-    = foldl (\c v -> processLocalVariable v arguments c) ctx params--evalVariableWParamSet :: ParamSet -> Context -> Variable -> XPathValue-evalVariableWParamSet ps ctx (MkVar isPar name exprOrRtf)-    | isPar-	= maybe (resultFromVar exprOrRtf) id $ Map.lookup name ps -    | otherwise-	= resultFromVar exprOrRtf-  where-    resultFromVar (Left expr) = evalXPathExpr expr ctx-    resultFromVar (Right rtf) = evalRtf rtf (show (recDepth ctx) ++ " " ++ show name) ctx---- create a set of parameters (Names refering to XPath-values) from a set of Variable-placeholders (unevaluated expressions)-createParamSet :: Map ExName Variable -> Context -> ParamSet-createParamSet wParamList ctx = Map.map (evalVariableWParamSet Map.empty ctx) wParamList---- --------------------------------------- handling of imported attributes--applyAttribSets :: [ExName] -> UsedAttribSets -> Context -> [XmlTree]-applyAttribSets callstack (UsedAttribSets sets) ctx = concatMap (\name -> applyAllAttrSetForName callstack name ctx) sets--applyAllAttrSetForName :: [ExName] -> ExName -> Context -> [XmlTree]-applyAllAttrSetForName callstack name ctx =--    if name `elem` callstack-    then error $ "Attribute-Set " ++ show name ++ " is recursively used." ++-                 concatMap (("\n  used in "++) . show) callstack-    -    else if isNothing attrset-    then error $ "No attribute set with name: " ++ show name-    -    else concatMap (flip (applyAttribSet (name:callstack)) ctx) $ fromJust attrset--  where-    attrset = Map.lookup name $ getAttributeSets $ ctxGetStylesheet ctx--applyAttribSet :: [ExName] -> AttributeSet -> Context -> [XmlTree]-applyAttribSet callstack (AttribSet _ usedSets content) ctx = -    applyAttribSets callstack usedSets ctx ++ applyTemplate content ctx-    --- --------------------------------------- Sorting--applySorting :: [SortKey] -> Context -> [NavXmlTree] -> Context-applySorting [] ctx nodes = ctxSetNodes nodes ctx-applySorting sortKeys ctx nodes = -    ctxSetNodes resultOrder ctx-  where-    resultOrder          = snd $ unzip sortedKVs-    sortedKVs            = sortBy compKV keysWVals-    keysWVals            = zip keys nodes-    keys                 = map extract nodes-    (extrFs, cmpFs)      = unzip $ map (flip applySortKey ctx) sortKeys--    -- helper functions:-    extract node         = map ($ ctxSetNodes [node] ctx) extrFs-    compKV (k1,_) (k2,_) = compressOrds $ compares k1 k2-    compares             = zipWith3 (($) $) cmpFs-    compressOrds         = maybe EQ id . find (/=EQ)--type SortVal = Either Float String--applySortKey :: SortKey -> Context -> ( Context -> SortVal-                                      , SortVal -> SortVal -> Ordering)-applySortKey (SortK expr typeATV orderATV) ctx-    | typ /= "number"-      &&-      typ /= "text" -	  = error $ "unsupported type in xsl:sort: " ++ typ-    | ordering /="ascending"-      &&-      ordering /="descending"-	  = error $ "order in xsl:sort element must be ascending or descending. Found: " ++ ordering-    | otherwise-	= (extractFct, cmpFct)-    where-    isNum          = typ == "number"-    isDesc         = ordering == "descending"-    ordering       = applyStringExpr orderATV ctx-    typ            = applyStringExpr typeATV ctx--    extractFct ctx'-	= let-	  val = applyStringExpr expr ctx'-	  in-          if isNum-          then Left $ readWDefault (-1.0 / 0.0) val-          else Right val--    cmpFct a-	= ( if isDesc then invertOrd else id ) -          .-          ( if isNum then cmpNum a else cmpString a )--    cmpNum (Left n1)  (Left n2)-	= compare n1 n2-    cmpNum _ _-	= error "internal error in cmpNum in applySortKey"--    cmpString (Right s1) (Right s2)-	= compare (map toLower s1) (map toLower s2)      -- The text comparison still needs to be improved...-    cmpString _ _-	= error "internal error in cmpString in applySortKey"--invertOrd :: Ordering -> Ordering-invertOrd EQ = EQ-invertOrd LT = GT-invertOrd GT = LT---- --------------------------------------- Namespace FIXUP--fixupNS :: XmlTree -> XmlTree-fixupNS = compressNS . disambigNS--compressNS :: XmlTree -> XmlTree-compressNS = -    mapTreeCtx compressElem $ Map.fromAscList [("xml", xmlNamespace), ("xmlns", xmlnsNamespace)]-  -compressElem :: UriMapping -> XNode -> (UriMapping, XNode)-compressElem uris node-  | isElem node = (newUris, changeAttrl (filter $ isImportant) node)-  | otherwise   = (uris, node)-  where-    newUris       = uris `Map.union` getUriMap node-    isImportant n = not (isNsAttr n) -                         || not ((localPart $ fromJust $ getAttrName n) `Map.member` uris)--disambigNS :: XmlTree -> XmlTree-disambigNS = -    mapTreeCtx step $ Map.fromAscList [("xml", xmlNamespace), ("xmlns", xmlnsNamespace)]-  where-    step uris node-      | isElem node = let uris'               = uris `Map.union` getUriMap node-                          (newUris, newNode') = disambigElem uris' node in-                        (newUris, setUriMap newUris newNode')-      | otherwise   = (uris, node)--disambigElem :: UriMapping -> XNode -> (UriMapping, XNode)-disambigElem nsMap element =    -    (newNsMap, XTag                  -                 (remapNsName newNsMap $ fromJust $ getElemName element)-                 $ map (changeName $ remapNsName newNsMap) $ fromJust $ getAttrl element )-  where-    newNsMap   = nsMap `Map.union` Map.fromAscList newTuples-    newTuples  = zip newPrefs $ nub newUris-    newUris    = filter (`notElem` oldUris) $ filter (not . null) $ map namespaceUri $ mapMaybe getName-                   (element : map getNode (fromJust $ getAttrl element))-    newPrefs   = filter (`notElem` oldPrefs) ["ns" ++ show i | i <- [(1::Int)..]]-    oldPrefs   = Map.keys nsMap-    oldUris    = Map.elems nsMap  --remapNsName :: UriMapping -> QName -> QName-remapNsName nsMap name = --    if maybe (nsUri=="") (== nsUri) luUri-    then name--    else mkQName newPref (localPart name) nsUri--  where-    luUri   = Map.lookup (namePrefix name) nsMap-    newPref = head $ (++ (error $ "int. error: No prefix for " ++ nsUri)) -                $ Map.keys $ Map.filter (==namespaceUri name) nsMap-    nsUri   = namespaceUri name-
− src/Text/XML/HXT/XSLT/Common.hs
@@ -1,406 +0,0 @@--- --------------------------------------------------------------{- |-   Module     : Text.XML.HXT.XSLT.Application-   Copyright  : Copyright (C) 2006-2008 Tim Walkenhorst, Uwe Schmidt-   License    : MIT--   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)-   Stability  : experimental-   Portability: portable--   Common imports and functions for HXSLT---}---- --------------------------------------------------------------module Text.XML.HXT.XSLT.Common-    ( module Control.Arrow-    , module Text.XML.HXT.DOM.XmlNode-    , module Text.XML.HXT.DOM.XmlKeywords-    , module Text.XML.HXT.DOM.TypeDefs-    , module Text.XML.HXT.DOM.FormatXmlTree-    , module Text.XML.HXT.XPath.XPathDataTypes-    , module Text.XML.HXT.XPath.XPathParser-    , module Text.XML.HXT.XPath.XPathEval-    , module Text.XML.HXT.XPath.XPathFct-    , module Text.XML.HXT.XPath.XPathToString-    , module Data.NavTree-    , module Data.Tree.Class--    -- Tree Functions-    , filterTree                 -- Tree t => (a -> Bool) -> t a -> Maybe (t a)-    , mapTreeCtx                 -- Tree t => (c -> a -> (c, b)) -> c -> t a -> t b-    , filterTreeCtx              -- Tree t => (c -> a -> (c, Bool)) -> c -> t a -> Maybe (t a)-    , zipTreeWith                -- Tree t => (a -> b -> c) -> t a -> t b -> t c-    , zipTree                    -- Tree t => t a -> t b -> t (a,b)           (zipTreeWith (,))-    , unzipTree                  -- Tree t => t (a,b) -> (t a, t b)           (mapTree fst &&& mapTree snd)-    , showTrees--    -- XML functions-    , isElemType                 -- XmlNode n => QName -> n -> Bool-    , isAttrType                 -- XmlNode n => QName -> n -> Bool-    , isWhitespaceNode           -- XmlTree -> Bool-    , collectTextnodes           -- [XmlTree] -> String-    , tryFetchAttribute          -- XmlNode n => n -> QName -> Maybe String-    , fetchAttributeWDefault     -- XmlNode n => n -> QName -> String -> String-    , fetchAttribute             -- XmlNode n => n -> QName -> String-    , hasAttribute               -- XmlNode n => n -> QName -> Bool-    , setAttribute               -- XmlNode n => QName -> String -> n -> n--    -- Namespace functions-    , ExName(ExName)             -- String (local) -> String (uri) -> ExName-    , mkExName                   -- QName -> ExName-    , exLocal		         -- ExName -> String-    , exUri		         -- ExName -> String-    , parseExName                -- UriMapping -> String -> ExName-    , UriMapping                 -- Map String String-    , getUriMap                  -- XmlNode n => n -> UriMapping (extract an Ns-Uri Map from an Element node)-    , setUriMap                  -- XmlNode n => UriMap -> n -> n-    , uriMap2Attrs               -- UriMapping -> [XmlTree]      (create xmlns:* Attribute nodes for Uri-Mapping)-    , expandNSDecls              -- XmlTree -> XmlTree-    , lookupPrefix               -- UriMapping -> String -> String-    , isNsAttr                   -- XmlTree -> Bool--    -- additions to XPATH:-    , mkLiteralExpr              -- String -> Expr-    , mkStringExpr               -- Expr -> Expr-    , mkBoolExpr                 -- Expr -> Expr-    , mkTrueExpr                 -- Expr-    , concatExpr                 -- [Expr] -> Expr-    , splitExpr                  -- Expr -> [Expr]-    , unionExpr                  -- [Expr] -> Expr-    , splitMatchByPrio           -- Expr -> [(Float, Expr)]-    , computePriority            -- Expr -> Float-    , computeNTestPriority       -- NodeTest -> Float-    , isMatchExpr                -- Expr -> Bool--    -- Misc.:-    , fromJustErr                -- String -> Maybe a -> a, fromJust with error message-    , readWDefault               -- Read a => a -> String -> a-    )-where--import Control.Arrow-import Control.Arrow.ListArrow-import Control.Arrow.ArrowList--import Text.XML.HXT.Arrow.XmlArrow	( xshow-					)-import Text.XML.HXT.DOM.XmlKeywords-import Text.XML.HXT.DOM.XmlNode		( XmlNode (..)-					, mkElement-					, mkRoot-					, mkAttr-					, mergeAttrl-					)--import Text.XML.HXT.DOM.TypeDefs	( XmlTree-					, XNode(XTag, XAttr)-					, QName-					, toNsEnv-					, namePrefix-					, localPart-					, namespaceUri-					, equivQName-					, mkName-					, mkQName-					)-import Text.XML.HXT.DOM.FormatXmlTree	( formatXmlTree-					)--import Text.XML.HXT.XPath.XPathDataTypes( Expr		( LiteralExpr-							, FctExpr-							, GenExpr-							, PathExpr-							)-					, Op		( Union )-					, LocationPath	( LocPath )-					, Path		( Rel )-					, XStep 	( Step )-					, NodeTest	( NameTest-							, PI-							, TypeTest-							)-					, NavXmlTree-					, XPathValue	( XPVNode-							, XPVBool-							, XPVString-							, XPVError-							)-					)-import Text.XML.HXT.XPath.XPathParser	( parseXPath-					)-import Text.XML.HXT.XPath.XPathEval	( evalExpr-					)-import Text.XML.HXT.XPath.XPathFct	( isNotInNodeList-					)-import Text.XML.HXT.XPath.XPathToString ( xPValue2XmlTrees-					)--import           Data.Map (Map)-import qualified Data.Map as Map hiding (Map)--import Data.Tree.Class --import Data.NavTree			( NavTree-					, ntree-					, subtreeNT-					, upNT-					, downNT-					, rightNT-					, leftNT-					, getChildrenNT-					)-import Data.Maybe-import Data.List-import Data.Char----------------------------- --- Tree functions---- mapTree :: Functor t => (a -> b) -> t a -> t b--- mapTree = fmap---- "map" on a tree with a context. --- Contextual information from the ancestors of the current node can be collected in the context--mapTreeCtx :: Tree t => (c -> a -> (c, b)) -> c -> t a -> t b-mapTreeCtx f c tree = -    mkTree b $ map (mapTreeCtx f cN) $ getChildren tree-  where -    (cN, b) = f c $ getNode tree--filterTree :: Tree t => (a -> Bool) -> t a -> Maybe (t a)-filterTree p tree = if p node-                      then Just $ mkTree node $ mapMaybe (filterTree p) $ getChildren tree-                      else Nothing-                    where node = getNode tree---- "filter" on a tree with a context. --- Contextual information from the ancestors of the current node can be collected in the context-filterTreeCtx :: Tree t => (c -> a -> (c, Bool)) -> c -> t a -> Maybe (t a)-filterTreeCtx p c tree =-  if b -    then Just $ mkTree node $ mapMaybe (filterTreeCtx p cN) $ getChildren tree-    else Nothing-  where -    (cN, b) = p c node-    node    = getNode tree--zipTreeWith   :: Tree t => (a -> b -> c) -> t a -> t b -> t c-zipTreeWith f a b = mkTree (f (getNode a) (getNode b)) -                       $ zipWith (zipTreeWith f) (getChildren a) $ getChildren b--zipTree     :: Tree t => t a -> t b -> t (a,b)-zipTree      = zipTreeWith (,)--unzipTree  :: Functor t => t (a,b) -> (t a, t b)-unzipTree   = fmap fst &&& fmap snd--showTrees	:: [XmlTree] -> String-showTrees ts-    = concat -      (runLA (xshow (constL ts)) $ undefined)----------------------------- --- Xml Functions--collectTextnodes :: [XmlTree] -> String-collectTextnodes-    = concat . mapMaybe getText--isElemType :: XmlNode n => QName -> n -> Bool-isElemType qn node-    = isElem node-      &&-      equivQName qn (fromJust $ getElemName node)--isAttrType :: XmlNode n => QName -> n -> Bool-isAttrType qname node-    = isAttr node-      &&-      equivQName qname (fromJust $ getAttrName node)--tryFetchAttribute :: XmlNode n => n -> QName -> Maybe String-tryFetchAttribute node qn-  | isElem node =--      if null candidates -      then Nothing--      else if length candidates > 1-      then error ("More than one attribute " ++ show qn)--      else Just $ collectTextnodes $ getChildren $ head candidates--  | otherwise = Nothing    -  where -    candidates = filter (isAttrType qn) $ fromJust $ getAttrl node--fetchAttributeWDefault ::  XmlNode n => n -> QName -> String -> String-fetchAttributeWDefault node name def = maybe def id (tryFetchAttribute node name)--fetchAttribute ::  XmlNode n => n -> QName -> String-fetchAttribute node name = fetchAttributeWDefault node name $ error ("Element " ++ show (getElemName node) ++ " has no attribute: " ++ show name)--hasAttribute ::  XmlNode n => n -> QName -> Bool-hasAttribute node = isJust . tryFetchAttribute node--setAttribute :: XmlNode n => QName -> String -> n -> n-setAttribute qn val node-  | isElem node = setElemAttrl (newA : attrs) node-  | otherwise   = error $ "setAttribute on none-element node"             -- how print an XmlNode...-  where -    attrs = filter (not . isAttrType qn) $ fromJust $ getAttrl node-    newA  = mkTree (XAttr qn) [mkText val]--isWhitespaceNode :: (XmlNode n) => n -> Bool-isWhitespaceNode = maybe False (all isSpace) . getText----------------------------- --- Namespace Functions---- Expanded name, is unique can therefore be used as a key (unlike QName)--data ExName = ExName String String-  deriving (Show, Eq, Ord)--mkExName :: QName -> ExName-mkExName qn = ExName (localPart qn) (namespaceUri qn)--exLocal, exUri :: ExName -> String-exLocal (ExName l _) = l-exUri   (ExName _ u) = u--parseExName :: UriMapping -> String -> ExName-parseExName uris str-    | noPrefix	= ExName str ""-    | otherwise	= ExName loc $ lookupPrefix uris prefix-    where-    noPrefix       = null loc -    loc            = drop 1 loc'                -    (prefix, loc') = span (/= ':') str---- Mapping from namespace-Prefixes to namespace-URIs--type UriMapping = Map String String--getUriMap :: XmlNode n => n -> UriMapping-getUriMap-    = uriMappingsFromNsAttrs . filter isNsAttr . maybe err id . getAttrl-      where-      err = error "Internal error: getUriMap on none-element node"--setUriMap :: XmlNode n => UriMapping -> n -> n-setUriMap nsMap node-    = setElemAttrl (mergeAttrl (maybe [] id $ getAttrl node) $ uriMap2Attrs nsMap) node--uriMap2Attrs :: UriMapping -> [XmlTree]-uriMap2Attrs-    = map joinNsAttr . Map.toAscList--lookupPrefix :: UriMapping -> String -> String-lookupPrefix uris prefix-    = fromJustErr ("No namespace-Uri bound to prefix: "++prefix) $ Map.lookup prefix uris--expandNSDecls :: XmlTree -> XmlTree-expandNSDecls-    = mapTreeCtx (expandNSElem) $ Map.fromAscList [("xml", xmlNamespace), ("xmlns", xmlnsNamespace)]--expandNSElem :: UriMapping -> XNode -> (UriMapping, XNode)-expandNSElem umap node-  | isElem node = (umapNew, nodeNew)-  | otherwise   = (umap, node)-  where-    nodeNew          = XTag (fromJust $ getElemName node) attrNew-    attrNew          = attrs ++ map joinNsAttr (Map.toAscList umapNew)-    umapNew          = uriMappingsFromNsAttrs nsAttrs `Map.union` umap-    (nsAttrs, attrs) = partition isNsAttr $ fromJust $ getAttrl node--uriMappingsFromNsAttrs :: [XmlTree] -> UriMapping-uriMappingsFromNsAttrs-    = Map.fromList . map splitNsAttr--isNsAttr :: XmlTree -> Bool-isNsAttr-    = maybe False ((==) xmlnsNamespace . namespaceUri) . getAttrName--splitNsAttr :: XmlTree -> (String, String)-splitNsAttr node-    = (localPart $ fromJust $ getAttrName node, collectTextnodes $ getChildren node)--joinNsAttr :: (String, String) -> XmlTree-joinNsAttr (prefix, uri)-    = mkAttr (mkQName "xmlns" prefix xmlnsNamespace) [mkText uri]------------------------------ additions to XPATH:--mkLiteralExpr :: String -> Expr-mkLiteralExpr = LiteralExpr--mkStringExpr :: Expr -> Expr-mkStringExpr = FctExpr "string" . return--mkBoolExpr :: Expr -> Expr-mkBoolExpr = FctExpr "boolean" . return--mkTrueExpr :: Expr-mkTrueExpr = FctExpr "true" []--concatExpr :: [Expr] -> Expr-concatExpr []                    = LiteralExpr ""-concatExpr [lit@(LiteralExpr _)] = lit-concatExpr xs1@[_]               = FctExpr "string" xs1-concatExpr xs                    = FctExpr "concat" xs--splitExpr :: Expr -> [Expr]-splitExpr (GenExpr Union expr) = expr-splitExpr rest                 = [rest]--unionExpr :: [Expr] -> Expr-unionExpr [e] = e-unionExpr es  = GenExpr Union es---- Intelligent splitting: Split an expression into subexpressions with equal priority--- for example: "a|c/d|e|f/g"  => [(0.0, "a|e"), (0.5, "c/d|f/g")]-splitMatchByPrio :: Expr -> [(Float, Expr)]-splitMatchByPrio = -    map compress . groupBy eq . sortBy cmp . map (computePriority &&& id) . splitExpr-  where-    eq  x y  = fst x == fst y-    cmp x y  = compare (fst x) (fst y)-    compress = (head *** unionExpr) . unzip--computePriority :: Expr -> Float-computePriority (PathExpr Nothing (Just (LocPath Rel [Step _ ntest []]))) = computeNTestPriority ntest-computePriority _ = 0.5--computeNTestPriority :: NodeTest -> Float-computeNTestPriority (PI _)        =  0.0-computeNTestPriority (TypeTest _)  = -0.5-computeNTestPriority (NameTest nt) -  | namePrefix nt /= ""-    && localPart nt == "*"        = -0.25-  | localPart nt == "*"           = -0.5-  | otherwise                     =  0.0--isMatchExpr :: Expr -> Bool-isMatchExpr (GenExpr Union exprs)                          = all isMatchExpr exprs-isMatchExpr (PathExpr _ _)                                 = True-isMatchExpr (FctExpr "id" [LiteralExpr _])                 = True-isMatchExpr (FctExpr "key" [LiteralExpr _, LiteralExpr _]) = True-isMatchExpr _                                              = False----------------------------- --- Misc:--fromJustErr :: String -> Maybe a -> a-fromJustErr msg = maybe (error msg) id --readWDefault :: Read a => a -> String -> a-readWDefault a str = fst $ head $ reads str ++ [(a, "")]----------------------------- 
− src/Text/XML/HXT/XSLT/Compilation.hs
@@ -1,501 +0,0 @@--- --------------------------------------------------------------{- |-   Module     : Text.XML.HXT.XSLT.Application-   Copyright  : Copyright (C) 2006 Tim Walkenhorst, Uwe Schmidt-   License    : MIT--   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)-   Stability  : experimental-   Portability: portable--   The compilation functions for XSLT stylesheets---}---- --------------------------------------------------------------module Text.XML.HXT.XSLT.Compilation -    ( prepareXSLTDocument        -- :: XmlTree -> XmlTree-    , assembleStylesheet         -- :: XmlTree -> [CompiledStylesheet] -> CompiledStylesheet-    )-where--import           Control.Monad--import           Data.Maybe-import           Data.Either-import           Data.List-import qualified Data.Map as Map hiding (Map)-import           Data.Map(Map)--import           Text.ParserCombinators.Parsec.Prim	( runParser )--import           Text.XML.HXT.XSLT.Common-import           Text.XML.HXT.XSLT.Names-import           Text.XML.HXT.XSLT.CompiledStylesheet---- No deep meaning just a shortcut notation for a *very* common expression...--infixl 9 ><--(><)	:: XmlNode n => (UriMapping -> a ) -> n -> a-f >< node-    = f $ getUriMap node---- ----------------------------parseExpr :: UriMapping -> String -> Expr-parseExpr uris selectStr-    = either (error.show) id parseResult                               -    where-    parseResult = runParser parseXPath (toNsEnv . Map.toList $ uris) ("select-expr:"++selectStr) selectStr --parseSelect :: UriMapping -> String -> SelectExpr-parseSelect uris-    = SelectExpr . parseExpr uris--parseTest :: UriMapping -> String -> TestExpr-parseTest uris-    = TestExpr . mkBoolExpr . parseExpr uris--parseStringExpr :: UriMapping -> String -> StringExpr-parseStringExpr uris-    = StringExpr . mkStringExpr . parseExpr uris--parseMatch :: UriMapping -> String -> MatchExpr-parseMatch uris str-    = if isMatchExpr expr-      then MatchExpr expr-      else error $ str ++ " is not a legal match-expression"-    where -    expr = parseExpr uris str---- ----------------------------parseAVT :: UriMapping -> String -> StringExpr-parseAVT uris str = -    StringExpr $ concatExpr $ splitAVT str ""-  where--    splitAVT :: String -> String -> [Expr]-    splitAVT ""           acc = acc2lit acc-    splitAVT ('{':'{':xs) acc = splitAVT xs $ '{':acc-    splitAVT ('}':'}':xs) acc = splitAVT xs $ '}':acc-    splitAVT ('{':xs)     acc = let (body, rest) = span (`notElem` "{}") xs in-                                  if not (null rest) && head rest == '}'-                                    then acc2lit acc ++ parseExpr uris body : splitAVT (tail rest) ""-                                    else error $ "Unterminated expression " ++ xs ++ " in AVT."-    splitAVT ('}':_)      _   = error $ "deserted '}' in AVT."-    splitAVT (x:xs)       acc = splitAVT xs $ x:acc--    acc2lit :: String -> [Expr] -    acc2lit ""  = []-    acc2lit acc = [mkLiteralExpr $ reverse acc]---- ------------------------------ extract ComputedQName from "name" and "namespace" AVTs of an xsl:element- or xsl-attribute-node-compileComputedQName :: XmlTree -> ComputedQName-compileComputedQName node =-    (CompQName><node) nameAVT nsAVT-  where -    nameAVT  = parseAVT><node $ fetchAttribute node xsltName-    nsAVT    = parseAVT><node $ fetchAttributeWDefault node xsltNamespace ""---- ----------------------------compileComposite :: [XmlTree] -> Template-compileComposite = TemplComposite . map (compileTemplate . return)--compileMessage :: XmlTree -> Template-compileMessage node = TemplMessage halt content-  where halt     = termAttr == "yes"-        termAttr = fetchAttributeWDefault node xsltTerminate "no"-        content  = compileTemplate (getChildren node)--compileForEach :: XmlTree -> Template-compileForEach node = TemplForEach expr sorting template-  where expr       = parseSelect><node $ fetchAttribute node xsltSelect-        sorting    = map compileSortKey srt-        template   = compileTemplate cnt-        (srt, cnt) = partition (isElemType xsltSort) $ getChildren node--compileChoose :: XmlTree -> Template-compileChoose node = TemplChoose whenParts-  where whenParts  = map compl children-        children   = filter isElem (getChildren node)-        compl node' = let elemName = fromJust $ getElemName node' in-                        if      equivQName elemName xsltWhen      then compileWhen node'-                        else if equivQName elemName xsltOtherwise then compileOtherwise node'-                        else error ("No elements of type " ++ show elemName ++ " allowed within xsl-choose template!")--compileWhen :: XmlTree -> When-compileWhen node = WhenPart expr $ compileTemplate $ getChildren node-  where expr     = parseTest><node $ fetchAttribute node xsltTest---- Otherwise is treated as a when-Part with node-test "true()"-compileOtherwise :: XmlTree -> When-compileOtherwise node = WhenPart (TestExpr mkTrueExpr) $ compileTemplate $ getChildren node---- "if" is treated as a convenience-form of choose with exactly one "when"-Part-compileIf :: XmlTree -> Template-compileIf = TemplChoose . return . compileWhen---- -------------------------------------parseExNames :: UriMapping -> String -> [ExName]-parseExNames urm = map (parseExName urm) . words--compileElement :: XmlTree -> Template-compileElement node = -    TemplElement compQName Map.empty attribSets template-  where -    compQName   = compileComputedQName node-    attribSets  = UsedAttribSets $ parseExNames><node-                  $ fetchAttributeWDefault node xsltUseAttributeSets ""-    template    = compileTemplate (getChildren node)--compileAttribute :: XmlTree -> Template-compileAttribute node = -    TemplAttribute (compileComputedQName node) $ compileTemplate (getChildren node)---- compiles xsl:text-compileText :: XmlTree -> Template-compileText = TemplText . collectTextnodes . getChildren---- compiles textNode -compileTextnode :: XmlTree -> Template-compileTextnode = TemplText . fromJust . getText--compileValueOf :: XmlTree -> Template-compileValueOf node = -    TemplValueOf $ parseStringExpr><node $ fetchAttribute node xsltSelect--compileComment :: XmlTree -> Template-compileComment = TemplComment . compileTemplate . getChildren--compileProcInstr :: XmlTree -> Template-compileProcInstr node = -   TemplProcInstr name content-  where-    name    = parseAVT><node  $ fetchAttribute node xsltName-    content = compileTemplate $ getChildren node---- -------------------------------------compileLiteralResultElement :: XmlTree -> Template-compileLiteralResultElement node =-    TemplElement compQName nsUris attribSets content-  where -    nsUris             = extractAddUris node-    compQName          = LiteralQName   $ fromJust $ getElemName node-    attribSets         = UsedAttribSets $ parseExNames><node $ attrSetsStr-    attrSetsStr        = fetchAttributeWDefault node xsltUseAttributeSetsLRE ""-    content            = TemplComposite $ attributes ++ [template]-    attributes         = mapMaybe (compileLREAttribute><node) $ fromJust $ getAttrl node-    template           = compileTemplate (getChildren node)--compileLREAttribute :: UriMapping -> XmlTree -> Maybe Template-compileLREAttribute uris node = -    if isSpecial -      then Nothing-      else Just $ TemplAttribute (LiteralQName name) val  -  where -    isSpecial = namespaceUri name `elem` [xsltUri, xmlnsNamespace]-    name      = fromJust $ getAttrName node-    val       = TemplValueOf $ parseAVT uris $ collectTextnodes $ getChildren node---- -------------------------------------compileApplyTempl :: XmlTree -> Template-compileApplyTempl node =-    TemplApply expr mode args sorting-  where-    expr    = liftM (parseSelect><node) $ tryFetchAttribute node xsltSelect-    mode    = liftM (parseExName><node) $ tryFetchAttribute node xsltMode-    args    = compileVariables          $ filter (isElemType xsltWithParam) $ par-    sorting =  map compileSortKey srt-    (srt,par) =  partition (isElemType xsltSort) $ getChildren node--compileApplyImports :: XmlTree -> Template-compileApplyImports _node-    = TemplApplyImports--compileCallTempl :: XmlTree -> Template-compileCallTempl node =-    TemplCall name args-  where-    name = parseExName><node $ fetchAttribute node xsltName-    args = compileVariables  $ filter (isElemType xsltWithParam) $ getChildren node--compileTemplVariable :: XmlTree -> Template-compileTemplVariable = TemplVariable . compileVariable---- -------------------------------------compileCopy :: XmlTree -> Template-compileCopy node =-    TemplCopy attribSets $ compileTemplate (getChildren node)-  where-    attribSets  = UsedAttribSets $ parseExNames><node $ fetchAttributeWDefault node xsltUseAttributeSets ""--compileCopyOf :: XmlTree -> Template-compileCopyOf node = TemplCopyOf $ parseExpr><node $ fetchAttribute node xsltSelect---- -------------------------------------compileTemplate :: [XmlTree] -> Template-compileTemplate [node]       = -   if isElem node-   then let elemName = fromJust $ getElemName node in        -        if      equivQName elemName xsltMessage        then compileMessage       node-        else if equivQName elemName xsltForEach        then compileForEach       node-        else if equivQName elemName xsltChoose         then compileChoose        node   -        else if equivQName elemName xsltIf             then compileIf            node-        else if equivQName elemName xsltElement        then compileElement       node-        else if equivQName elemName xsltAttribute      then compileAttribute     node-        else if equivQName elemName xsltText           then compileText          node-        else if equivQName elemName xsltValueOf        then compileValueOf       node-        else if equivQName elemName xsltComment        then compileComment       node-        else if equivQName elemName xsltProcInstr      then compileProcInstr     node-        else if equivQName elemName xsltApplyTemplates then compileApplyTempl    node-        else if equivQName elemName xsltApplyImports   then compileApplyImports  node-        else if equivQName elemName xsltCallTemplate   then compileCallTempl     node-        else if equivQName elemName xsltVariable       then compileTemplVariable node-        else if equivQName elemName xsltCopy           then compileCopy          node-        else if equivQName elemName xsltCopyOf         then compileCopyOf        node--        -- no other xslt elements allowed here:-        else if namespaceUri elemName == xsltUri-        then error $ "xslt-element " ++ localPart elemName ++ " not allowed within this context."--        -- for now all other elements will be considered as Literal Result Elements-        else compileLiteralResultElement node--   else if isText node then compileTextnode node--   else-       error $ "Unsupported node-type in xslt sheet: " ++ show (getNode node)-compileTemplate list = compileComposite list----- -------------------------------------- Assembling of the entire stylesheet--assembleStylesheet :: XmlTree -> [CompiledStylesheet] -> CompiledStylesheet-assembleStylesheet xslNode imports =-    CompStylesheet matchRules namedRules variables attsets strips aliases-  where -    -- entire contents:-    (namedRules,    -     matchRules)          = assembleRules ruleElems importedMatchRules importedNamedRules-    variables             = assembleVariables varElems importedVariables-    attsets               = assembleAttrSets attsetElems importedAttribSets-    strips                = assembleStrips stripElems preserveElems importedStrips-    aliases               = assembleAliases nsAliasElems importedAliases--    -- element content:-    (nsAliasElems, _r5)   = partition (isElemType xsltNamespaceAlias) r4-    (ruleElems, r4)       = partition (isElemType xsltTemplate) r3-    (varElems, r3)        = partition (\node -> isElemType xsltVariable node || isElemType xsltParam node) r2-    (attsetElems, r2)     = partition (isElemType xsltAttributeSet) r1-    (preserveElems, r1)   = partition (isElemType xsltPreserveSpace) r0-    (stripElems, r0)      = partition (isElemType xsltStripSpace) $ getChildren xslNode--    -- imported stuff:-    importedAttribSets    = map getAttributeSets imports-    importedVariables     = map getVariables revImports-    importedNamedRules    = map getNamedRules revImports-    importedMatchRules    = concatMap getMatchRules revImports-    importedStrips        = concatMap getStrips revImports-    importedAliases       = map getAliases revImports-    revImports            = reverse imports--assembleRules :: [XmlTree] -> [MatchRule] -> [Map ExName NamedRule] -> (Map ExName NamedRule, [MatchRule])-assembleRules nodes importedMatches importedProcs =-    (resProcs, resMatches)-  where-  -  -- matches:  -    resMatches       = localMatches ++ importedMatches-    localMatches     = reverse $ sortBy cmp matches-    cmp rulA rulB    = compare (getRulePrio rulA) (getRulePrio rulB)--  -- procedures:-    resProcs         = Map.unions (localProcs:importedProcs)-    localProcs       = foldl ins Map.empty procs-    ins map' rule    = Map.insertWith (error $ "named-rule "++ show (getRuleName rule) ++" is already defined on this level")-                                     (getRuleName rule) rule map'--  -- compile all xsl:template's:-    (procs, matches) = catMaybes *** concat $ unzip $ map (compileRule importedMatches) nodes--assembleVariables :: [XmlTree] -> [(Map ExName Variable)] -> (Map ExName Variable)       -assembleVariables varElems = Map.unions . (compileVariables varElems:)--assembleAttrSets :: [XmlTree] -> [Map ExName [AttributeSet]] -> Map ExName [AttributeSet]-assembleAttrSets attsetElems =-    foldr (Map.unionWith (++)) localAttribSets-  where-    localAttribSets       = foldr insertAs Map.empty-                            $ map compileAttributeSet attsetElems-    insertAs as@(AttribSet name _ _) = Map.insertWith (++) name [as]--assembleStrips :: [XmlTree] -> [XmlTree]-> [Strips] -> [Strips]-assembleStrips stripElems preserveElems =-    (localStrips :)-  where-    localStrips = feedStrips (concatMap compileStrips stripElems)-                  $ feedPreserves (concatMap compilePreserves preserveElems)-                  $ Map.empty--assembleAliases :: [XmlTree] -> [NSAliasing] -> NSAliasing-assembleAliases nsAliasElems =-    Map.unions . (localAliases:)-  where-    localAliases          = foldr addAlias' Map.empty nsAliasElems-    addAlias' node        = uncurry (addAlias><node) $ compileAlias node---- --------------------------------------- compile a rule from an xsl:template element.--- The resulting rule can either be a one or more match rule or a named rule, or both.--- The first argument is needed for xsl:apply-imports and contains--- a list of all subsequently imported rules-compileRule :: [MatchRule] -> XmlTree -> (Maybe NamedRule, [MatchRule])-compileRule imports node =--    if isNothing match && isNothing name -    then error "Error: Bogus rule (xsl:template) with neither match nor name attribute is illegal"--    else if isJust mode && isNothing match -    then error "Error: Bogus mode attribute on none-match rule is illegal"--    else if isJust priority && isNothing match -    then error "Error: Bogus priority attribute on none-match rule is illegal"--    else -      (-        liftM (\n -> NamRule n params template) name-      , concat $ maybeToList $ liftM (assembleMatchRule priority mode imports params template) match-      ) --  where-    match      = liftM (parseMatch><node)  $ tryFetchAttribute node xsltMatch-    name       = liftM (parseExName><node) $ tryFetchAttribute node xsltName-    priority   = liftM read                $ tryFetchAttribute node xsltPriority-    mode       = liftM (parseExName><node) $ tryFetchAttribute node xsltMode-    template   = compileTemplate content-    params     = map compileVariable paramsXml-    (paramsXml, content) =-                  partition (isElemType xsltParam) $ getChildren node--assembleMatchRule :: Maybe Float -> Maybe ExName -> [MatchRule] -> [Variable] -> Template ->  MatchExpr -> [MatchRule]-assembleMatchRule pri m imp par tmpl mtch@(MatchExpr expr) =-    if isJust pri-    then return $ MatRule mtch (fromJust pri) m imp par tmpl-    else map expand $ splitMatchByPrio expr-  where -    expand (pri', mtch') = MatRule (MatchExpr mtch') pri' m imp par tmpl---- -------------------------------------compileVariables :: [XmlTree] -> Map ExName Variable-compileVariables nodes =-    foldl insertVar Map.empty $ varList-  where-    varList               = map compileVariable $ nodes-    insertVar map' var    = Map.insertWith (error $ "parameter or variable "++ show (getVarName var) ++" is already defined on this level")-                                           (getVarName var) var map'--compileVariable :: XmlTree -> Variable-compileVariable node =-    MkVar modus name exprOrRtf-  where -    modus     = isElemType xsltParam node-    name      = parseExName><node $ fetchAttribute node xsltName-    exprOrRtf = if hasAttribute node xsltSelect || null (getChildren node)-                then Left $ parseExpr><node $ fetchAttributeWDefault node xsltSelect "''"-                else Right $ compileTemplate $ getChildren node---- -------------------------------------compileAttributeSet :: XmlTree -> AttributeSet-compileAttributeSet node =-    AttribSet name usedsets template-  where-    name     = parseExName><node $ fetchAttribute node xsltName-    usedsets = UsedAttribSets    $ parseExNames><node $ fetchAttributeWDefault node xsltUseAttributeSets ""-    template = compileTemplate   $ filter (isElemType xsltAttribute) $ getChildren node---- -------------------------------------compileSortKey :: XmlTree -> SortKey-compileSortKey node =-    SortK expr dataType order-  where-    expr     = parseStringExpr><node $ fetchAttributeWDefault node xsltSelect "."-    dataType = parseAVT><node        $ fetchAttributeWDefault node xsltDataType "text"-    order    = parseAVT><node        $ fetchAttributeWDefault node xsltOrder "ascending"---- -------------------------------------parseNTests :: UriMapping -> String -> [NTest]-parseNTests uris = map (parseNTest uris) . words--compileStrips,compilePreserves :: XmlTree -> [NTest]-compileStrips node = parseNTests><node $ fetchAttribute node xsltElements-compilePreserves = compileStrips---- -------------------------------------compileAlias :: XmlTree -> (String, String)-compileAlias node = -  (fetchAttribute node xsltStylesheetPrefix, fetchAttribute node xsltResultPrefix)---- -------------------------------------- Document level preprocessing--prepareXSLTDocument	:: XmlTree -> XmlTree-prepareXSLTDocument	= expandExEx . expandNSDecls . stripStylesheet . removePiCmt--removePiCmt :: XmlTree -> XmlTree-removePiCmt = fromJustErr "XSLT: No root element" . filterTree (\n -> not (isPi n) && not (isCmt n))---- Expand exclude-result-prefixes AND extension-element-prefixes--expandExEx :: XmlTree -> XmlTree-expandExEx = mapTreeCtx expandExExElem ([xsltUri,xmlNamespace,xmlnsNamespace],[])--expandExExElem :: ([String], [String]) -> XNode -> (([String], [String]), XNode)-expandExExElem c@(excl, ext) node-  | isElem node = ((exclAcc, extAcc), nodeNew)-  | otherwise   = (c, node)-  where-    nodeNew    = setAttribute nameExcl (unwords exclAcc) $ setAttribute nameExt (unwords extAcc) node-    exclAcc    = exclNew ++ excl-    extAcc     = extNew  ++ ext-    exclNew    = extNew  ++ (parsePreList><node $ fetchAttributeWDefault node nameExcl "")-    extNew     =             parsePreList><node $ fetchAttributeWDefault node nameExt  ""-    (nameExcl,-     nameExt)  = if (namespaceUri $ fromJust $ getElemName node) == xsltUri-                   then (xsltExlcudeResultPrefixes   , xsltExtensionElementPrefixes   )-                   else (xsltExlcudeResultPrefixesLRE, xsltExtensionElementPrefixesLRE)---- parse a prefix list, create a list of uris: --- "pre1 pre2 pre3" -> ["pre1.uri","pre2.uri","pre3.uri"]--parsePreList :: UriMapping -> String -> [String]-parsePreList uris = map (lookupPrefix uris) . words---- -------------------------------------- Extraction of contextual Information from an XML-Node--extractAddUris :: XmlTree -> UriMapping-extractAddUris node = -    (Map.filter (`notElem` exclUris))><node-  where-    exclUris = words $ fetchAttributeWDefault node xsltExlcudeResultPrefixesLRE ""---- -----------------------------------
− src/Text/XML/HXT/XSLT/CompiledStylesheet.hs
@@ -1,267 +0,0 @@--- --------------------------------------------------------------{- |-   Module     : Text.XML.HXT.XSLT.Application-   Copyright  : Copyright (C) 2006 Tim Walkenhorst, Uwe Schmidt-   License    : MIT--   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)-   Stability  : experimental-   Portability: portable-   Version    : $Id: CompiledStylesheet.hs,v 1.3 2007/05/02 06:41:05 hxml Exp $--   Types for compiled stylesheets---}---- --------------------------------------------------------------module Text.XML.HXT.XSLT.CompiledStylesheet-where  --import Text.XML.HXT.XSLT.Common-import Text.XML.HXT.XSLT.Names--import Data.Maybe-import Data.List--import Data.Map(Map)-import qualified Data.Map as Map hiding (Map)---- ----------------------- compiled-Stylesheet:--data CompiledStylesheet = -  CompStylesheet-    [MatchRule]                -    (Map ExName NamedRule)-    (Map ExName Variable)       -    (Map ExName [AttributeSet]) -    [Strips]                   -    NSAliasing                  -  deriving Show--getMatchRules :: CompiledStylesheet -> [MatchRule]-getMatchRules (CompStylesheet matchRules _ _ _ _ _) = matchRules--getNamedRules :: CompiledStylesheet -> (Map ExName NamedRule)-getNamedRules (CompStylesheet _ namedRules _ _ _ _) = namedRules--getVariables :: CompiledStylesheet -> (Map ExName Variable)-getVariables (CompStylesheet _ _ variables _ _ _) = variables--getAttributeSets :: CompiledStylesheet -> Map ExName [AttributeSet]-getAttributeSets (CompStylesheet _ _ _ attrSets _ _) = attrSets--getStrips :: CompiledStylesheet -> [Strips]-getStrips (CompStylesheet _ _ _ _ strips _) = strips--getAliases :: CompiledStylesheet -> NSAliasing-getAliases (CompStylesheet _ _ _ _ _ aliases) = aliases---- ---------------------- Match-Rules:--data MatchRule = -  MatRule MatchExpr-          Float           -- priority-          (Maybe ExName)  -- mode-          [MatchRule]     -- Imported rules only for xsl:apply-imports-          [Variable]      -- xsl:param list-          Template        -- content-  --deriving Show         -- output of imported Rules makes it unreadable--instance Show MatchRule where-    show (MatRule expr prio mode imprules params content)-	= "MkRule expr: " ++ show expr ++ "\n  prio: " ++ show prio ++ "\n  mode: "++ show mode -	  ++ "\n  no. imported rules: " ++ show (length imprules) ++ "\n  xsl-params: " ++ show params -          ++ "\n  content: " ++ show content ++"\n"--getRulePrio :: MatchRule -> Float-getRulePrio (MatRule _ prio _ _ _ _) = prio--getRuleMode :: MatchRule -> Maybe ExName-getRuleMode (MatRule _ _ mode _ _ _) = mode--getRuleImports :: MatchRule -> [MatchRule]-getRuleImports (MatRule _ _ _ imports _ _) = imports---- ---------------------- Named-Rules:--data NamedRule = NamRule ExName [Variable] Template-  deriving Show--getRuleName :: NamedRule -> ExName-getRuleName (NamRule name _ _)  = name---- ---------------------- Variables --data Variable = MkVar -                  Bool                   -- modus: False => xsl:variable, True => xsl:param-                  ExName                 -- name-                  (Either Expr Template) -- select-expression or result tree fragment-		deriving Show--getVarName :: Variable -> ExName-getVarName (MkVar _ name _) = name--isParam :: Variable -> Bool-isParam (MkVar isP _ _) = isP---- ---------------------- Attribute sets:--newtype UsedAttribSets = UsedAttribSets [ExName]-  deriving Show--data AttributeSet = AttribSet ExName UsedAttribSets Template-  deriving Show---- ---------------------- Whitespace-stripping--type NTest = ExName --parseNTest :: UriMapping -> String -> NTest-parseNTest = parseExName--type Strips = Map NTest Bool---- Lookup whether an element of the source document must be stripped.--- Strip descriptions are ordered by descending import precedence:--lookupStrip :: ExName -> [Strips] -> Bool-lookupStrip name-    = head . (++ [False]) . mapMaybe (lookupStrip1 name)---- Try to match a qualified name with a set of strip- and preserve-space attributes of the same import precedence:--lookupStrip1 :: ExName -> Strips -> Maybe Bool-lookupStrip1 name spec = -    if      isJust nameMatch then nameMatch-    else if isJust prefMatch then prefMatch-    else if isJust globMatch then globMatch-    else Nothing-  where-    nameMatch = Map.lookup (       name             ) spec-    prefMatch = Map.lookup (ExName "*"  $ exUri name) spec-    globMatch = Map.lookup (ExName "*"  ""          ) spec--feedSpaces :: Bool -> [NTest] -> Strips -> Strips-feedSpaces strip tests = -    Map.unionWithKey feedErr $ Map.fromListWithKey feedErr $ zip tests $ repeat strip-  where-    feedErr k = error $ "Ambiguous strip- or preserve-space rules for " ++ show k--feedStrips, feedPreserves :: [NTest] -> Strips -> Strips-feedStrips    = feedSpaces True-feedPreserves = feedSpaces False--stripDocument :: [Strips] -> XmlTree -> XmlTree-stripDocument strips-    = stripSpaces (\_ n -> lookupStrip (mkExName $ fromJust $ getElemName n) strips) False--stripStylesheet :: XmlTree -> XmlTree-stripStylesheet-    = stripSpaces isStrip True-    where-    isStrip strip' node-	= not (isElemType xsltText node)-	  &&-	  ( maybe strip' (=="default") $ tryFetchAttribute node xmlSpace )--stripSpaces :: (Bool -> XNode -> Bool) -> Bool -> XmlTree -> XmlTree-stripSpaces f def = -    fromJustErr "stripSpaces (internal error)" . filterTreeCtx step def-  where-    step strip node -     | isElem node           = (f strip node, True)-     | isWhitespaceNode node = (strip       , not strip)-     | otherwise             = (strip       , True)---- ---------------------- Namespace aliases and exclusion---- Map a namespace URI to a new URI tuple,--type NSAliasing = Map String String--addAlias :: UriMapping -> String -> String -> NSAliasing -> NSAliasing-addAlias uris oldPr newPr-    = Map.insertWith (error $ "duplicate mapping for " ++ old) old new-    where-    old = lookupPrefix uris oldPr-    new = lookupPrefix uris newPr---- lookup an alias in a namespace-mapping.--- returns the original name, if there is no alias for that name.--lookupAlias :: NSAliasing -> QName -> QName-lookupAlias nsm qn-    = mkQName (namePrefix qn) (localPart qn) -      $ maybe (namespaceUri qn) id-      $ Map.lookup (namespaceUri qn) nsm- -aliasUriMapping :: NSAliasing -> UriMapping -> UriMapping-aliasUriMapping nsm = Map.map (\uri -> Map.findWithDefault uri uri nsm)---- ---------------------- Templates:--data Template-    = TemplComposite [Template]   -    | TemplForEach SelectExpr [SortKey] Template-    | TemplChoose [When]    -- otherwise will be represented by <xsl:when test="true()"/> in the abstract Syntax-    | TemplMessage Bool     -- halt?-                   Template -- content            -    | TemplElement ComputedQName-                   UriMapping              -- Namespaces which *must* be added-                   UsedAttribSets          -- -                   Template                -- content-    | TemplAttribute ComputedQName-                     Template              -- content-    | TemplText      String-    | TemplValueOf StringExpr  -- select-    | TemplComment Template-    | TemplProcInstr StringExpr       -- name-                     Template               -- content-    | TemplApply (Maybe SelectExpr) -                 (Maybe ExName)  -- mode-                 (Map ExName Variable) -- passed arguments-                 [SortKey]-    | TemplApplyImports-    | TemplVariable Variable-    | TemplCall ExName                 -- name-               (Map ExName Variable) -- passed arguments-    | TemplCopy UsedAttribSets-                Template-    | TemplCopyOf Expr-    deriving Show--data SortKey-    = SortK StringExpr -- select-            StringExpr -- data-type: number or text(default)-            StringExpr -- order: ascending(default) or descending-    deriving Show--data When-    = WhenPart TestExpr Template -    deriving Show--data ComputedQName-    = LiteralQName QName-    | CompQName UriMapping -- namespace-env-                StringExpr -- name-                StringExpr -- namespace-    deriving Show---- ---------------------- different kinds of expressions--newtype SelectExpr = SelectExpr Expr   deriving Show-newtype TestExpr   = TestExpr   Expr   deriving Show-newtype StringExpr = StringExpr Expr   deriving Show-newtype MatchExpr  = MatchExpr  Expr   deriving Show
− src/Text/XML/HXT/XSLT/Names.hs
@@ -1,152 +0,0 @@--- --------------------------------------------------------------{- |-   Module     : Text.XML.HXT.XSLT.Application-   Copyright  : Copyright (C) 2006 Tim Walkenhorst, Uwe Schmidt-   License    : MIT--   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-   Stability  : experimental-   Portability: portable-   Version    : $Id: Names.hs,v 1.2 2006/11/11 15:36:05 hxml Exp $--   Names and constants for HXSLT---}---- --------------------------------------------------------------module Text.XML.HXT.XSLT.Names-where--import Text.XML.HXT.XSLT.Common--xsltPrefix	:: String-xsltPrefix	= "xsl"--xsltUri		:: String-xsltUri		= "http://www.w3.org/1999/XSL/Transform"--mkXsltName :: String -> QName-mkXsltName name = mkQName xsltPrefix name xsltUri--mkXsltAttribName :: String -> QName-mkXsltAttribName name = mkQName "" name ""---- XSLT-Element QNames-xsltTransform-  , xsltStylesheet-  , xsltMessage-  , xsltForEach-  , xsltChoose-  , xsltWhen-  , xsltOtherwise-  , xsltIf-  , xsltElement-  , xsltAttribute-  , xsltText-  , xsltValueOf-  , xsltComment-  , xsltProcInstr-  , xsltInclude-  , xsltImport-  , xsltTemplate-  , xsltApplyTemplates-  , xsltApplyImports-  , xsltCallTemplate-  , xsltVariable-  , xsltParam-  , xsltWithParam-  , xsltAttributeSet-  , xsltCopy-  , xsltCopyOf-  , xsltSort-  , xsltStripSpace-  , xsltPreserveSpace-  , xsltNamespaceAlias	:: QName--xsltTransform                   = mkXsltName "transform"-xsltStylesheet                  = mkXsltName "stylesheet"-xsltMessage                     = mkXsltName "message"-xsltForEach                     = mkXsltName "for-each"-xsltChoose                      = mkXsltName "choose"-xsltWhen                        = mkXsltName "when"-xsltOtherwise                   = mkXsltName "otherwise"-xsltIf                          = mkXsltName "if"-xsltElement                     = mkXsltName "element"-xsltAttribute                   = mkXsltName "attribute"-xsltText                        = mkXsltName "text"-xsltValueOf                     = mkXsltName "value-of"-xsltComment                     = mkXsltName "comment"-xsltProcInstr                   = mkXsltName "processing-instruction"-xsltInclude                     = mkXsltName "include"-xsltImport                      = mkXsltName "import"-xsltTemplate                    = mkXsltName "template"-xsltApplyTemplates              = mkXsltName "apply-templates"-xsltApplyImports                = mkXsltName "apply-imports"-xsltCallTemplate                = mkXsltName "call-template"-xsltVariable                    = mkXsltName "variable"-xsltParam                       = mkXsltName "param"-xsltWithParam                   = mkXsltName "with-param"-xsltAttributeSet                = mkXsltName "attribute-set"-xsltCopy                        = mkXsltName "copy"-xsltCopyOf                      = mkXsltName "copy-of"-xsltSort                        = mkXsltName "sort"-xsltStripSpace                  = mkXsltName "strip-space"-xsltPreserveSpace               = mkXsltName "preserve-space"-xsltNamespaceAlias              = mkXsltName "namespace-alias"---- XSLT-Attribute QNames-xsltTerminate-  , xsltSelect-  , xsltTest-  , xsltName-  , xsltNamespace-  , xsltUseAttributeSets-  , xsltHRef-  , xsltMatch-  , xsltPriority-  , xsltMode-  , xsltDataType-  , xsltOrder-  , xsltElements-  , xsltStylesheetPrefix-  , xsltResultPrefix-  , xsltVersion-  , xsltExlcudeResultPrefixes-  , xsltExtensionElementPrefixes	:: QName--xsltTerminate                   = mkXsltAttribName "terminate" -xsltSelect                      = mkXsltAttribName "select" -xsltTest                        = mkXsltAttribName "test" -xsltName                        = mkXsltAttribName "name"-xsltNamespace                   = mkXsltAttribName "namespace"-xsltUseAttributeSets            = mkXsltAttribName "use-attribute-sets"-xsltHRef                        = mkXsltAttribName "href"-xsltMatch                       = mkXsltAttribName "match"-xsltPriority                    = mkXsltAttribName "priority"-xsltMode                        = mkXsltAttribName "mode"-xsltDataType                    = mkXsltAttribName "data-type"-xsltOrder                       = mkXsltAttribName "order"-xsltElements                    = mkXsltAttribName "elements"-xsltStylesheetPrefix            = mkXsltAttribName "stylesheet-prefix"-xsltResultPrefix                = mkXsltAttribName "result-prefix"-xsltVersion                     = mkXsltAttribName "version"-xsltExlcudeResultPrefixes       = mkXsltAttribName "exclude-result-prefixes"-xsltExtensionElementPrefixes    = mkXsltAttribName "extension-element-prefixes"---- XSLT-Attribute QNames for special Literal result element attributes-xsltUseAttributeSetsLRE-  , xsltVersionLRE-  , xsltExlcudeResultPrefixesLRE-  , xsltExtensionElementPrefixesLRE	:: QName--xsltUseAttributeSetsLRE         = mkXsltName "use-attribute-sets" -xsltVersionLRE                  = mkXsltName "version"-xsltExlcudeResultPrefixesLRE    = mkXsltName "exclude-result-prefixes"-xsltExtensionElementPrefixesLRE = mkXsltName "extension-element-prefixes"---- xml:space attribute-name-xmlSpace	:: QName--xmlSpace                        = mkQName "xml" "space" xmlNamespace
− src/Text/XML/HXT/XSLT/XsltArrows.hs
@@ -1,310 +0,0 @@--- --------------------------------------------------------------{- |-   Module     : Text.XML.HXT.XSLT.XsltArrows-   Copyright  : Copyright (C) 2006 Tim Walkenhorst, Uwe Schmidt-   License    : MIT--   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-   Stability  : experimental-   Portability: portable-   Version    : $Id: XsltArrows.hs,v 1.1 2006/11/11 15:36:05 hxml Exp $--   The HXT arrow interface for the XSLT module--   The application programming interface to the arrow modules of the Haskell XML Toolbox.-   This module exports all important arrows for input, output, parsing, validating and transforming XML.-   It also exports all basic datatypes and functions of the toolbox.---}---- ---------------------------------------------------------------module Text.XML.HXT.XSLT.XsltArrows-    ( xsltCompileStylesheet-    , xsltCompileStylesheetFromURI-    , xsltApplyStylesheet-    , xsltApplyStylesheetFromURI-    , CompiledStylesheet-    )-where--import Prelude hiding ( catch )--import Control.Exception-    ( SomeException-    , catch-    , evaluate )--import Control.Arrow.ListArrows--import Text.XML.HXT.DOM.Interface-import Text.XML.HXT.Arrow.XmlIOStateArrow-import Text.XML.HXT.Arrow.XmlArrow-import Text.XML.HXT.Arrow.ReadDocument--import Text.XML.HXT.XSLT.Names--import Text.XML.HXT.XSLT.CompiledStylesheet-    ( CompiledStylesheet )--import Text.XML.HXT.XSLT.Compilation-    ( prepareXSLTDocument-    , assembleStylesheet-    )--import Text.XML.HXT.XSLT.Application-    ( applyStylesheet )---- ---------------------------------------------------------------- | arrow for applying a pure partial function, catch the error case and issue the error--arrWithCatch	:: (a -> b) -> IOSArrow a b-arrWithCatch f-    = arrIO (applyf f)-      >>>-      ( (applyA (arr issueErr) >>> none)-	|||-	this-      )--applyf	:: (a -> b) -> a -> IO (Either String b)-applyf f x-	= catch'  ( do-		    res <- evaluate ( f x )-		    return . Right $ res-		  )-	  (\ e -> return . Left . ("XSLT: " ++) . show $ e)-        where-        catch' :: IO a -> (SomeException -> IO a) -> IO a-	catch' = catch-	  --- ---------------------------------------------------------------- | lift prepareXSLTDocument--prepareXSLTDoc	:: IOSArrow XmlTree XmlTree-prepareXSLTDoc-    = ( arrWithCatch prepareXSLTDocument-	>>>-	traceDoc "prepareXSLTDocument"-      )-      `when`-      documentStatusOk---- | read an XSLT stylesheet--readXSLTDoc	:: Attributes -> IOSArrow String XmlTree-readXSLTDoc options-    = readFromDocument (options ++ defaultOptions)-    where-    defaultOptions-	= [ (a_check_namespaces, v_1)-	  , (a_validate, v_0)-	  , (a_preserve_comment, v_0)-	  ]---- | Normalize stylesheet, expand includes, select imports and assemble the rules--compileSSTWithIncludeStack :: [String] -> IOSArrow XmlTree CompiledStylesheet-compileSSTWithIncludeStack incStack-    = traceMsg 2 "compile stylesheet"-      >>>-      getChildren					-- remove document root-      >>>-      isElem						-- select XSLT root element-      >>>-      choiceA-      [ isXsltLREstylesheet				-- simplified syntax-	:-> ( xsltlre2stylesheet-	      >>>-	      assStylesheet []-	    )-      , isXsltStylesheetElem				-- xsl:stylesheet or xsl:transform-	:-> ( expStylesheet-	      $< ( listA ( getChildren			-- take contents and expand includes-			   >>>-			   expandIncludes incStack-			 )-		   >>>-		   partitionA isXsltImport		-- separate imports from normal rules-		 )-	    )-      , this-	:-> ( issueErr "XSLT: Either xsl:stylesheet/xsl:transform or simplified syntax expected"-	      >>>-	      none-	    )-      ]-    where-    assStylesheet imports				-- do the assembly, the compilation-	= arrWithCatch (flip assembleStylesheet $ imports)--    expStylesheet (imports, rest)-	= traceMsg 2 "expandStylesheet"-	  >>>-	  setChildren rest				-- remove import rules from stylesheet-	  >>>-	  assStylesheet $< listA ( constL imports	-- read the imports and assemble the stylesheet-				   >>>-				   getXsltAttrValue xsltHRef-				   >>>-				   compileSSTFromUriWithIncludeStack incStack-				 )---- | read an include and check for recursive includes--readSSTWithIncludeStack	:: [String] -> IOSArrow String XmlTree-readSSTWithIncludeStack incStack-    = ifP (`elem` incStack)-      ( (issueErr $< arr recursiveInclude) >>> none )-      ( readXSLTDoc []-	>>>-	prepareXSLTDoc-      ) -    where-    recursiveInclude uri-	= "XSLT error: "-	  ++ show uri ++ " is recursively imported/included." -          ++ concatMap (("\n  imported/included from: " ++) . show) incStack--compileSSTFromUriWithIncludeStack	:: [String] -> IOSArrow String CompiledStylesheet-compileSSTFromUriWithIncludeStack incStack-    = comp $< this-    where-    comp uri-	= readSSTWithIncludeStack incStack-	  >>>-	  compileSSTWithIncludeStack (uri:incStack)--expandIncludes	:: [String] -> IOSArrow XmlTree XmlTree-expandIncludes incStack-    = isElem-      >>>-      ( ( expandInclude $< getXsltAttrValue xsltHRef )-        `when`-	isXsltInclude-      )-    where-    expandInclude href-	= ( constA href-	    >>>-	    readSSTWithIncludeStack incStack-	    >>>-	    getChildren-	    >>>-	    isElem-	    >>>-	    choiceA-	    [ isXsltLREstylesheet-	      :-> xsltlre2template--	    , isXsltStylesheetElem-	      :-> ( getChildren-		    >>>-		    expandIncludes (href:incStack)-		  )--	    , this-              :-> issueFatal ("XSLT error: Included file " ++ show href ++ " is not a stylesheet")-	    ]-	  )--isXsltElem		:: ArrowXml a => QName -> a XmlTree XmlTree-isXsltElem qn		= isElem >>> hasNameWith (equivQName qn)--isXsltAttr		:: ArrowXml a => QName -> a XmlTree XmlTree-isXsltAttr qn		= isAttr >>> hasNameWith (equivQName qn)--hasXsltAttr		:: ArrowXml a => QName -> a XmlTree XmlTree-hasXsltAttr qn		= ( getAttrl >>> isXsltAttr qn )-			  `guards`-			  this--isXsltInclude		:: ArrowXml a => a XmlTree XmlTree-isXsltInclude		= isXsltElem xsltInclude--isXsltImport		:: ArrowXml a => a XmlTree XmlTree-isXsltImport		= isXsltElem xsltImport--isXsltLREstylesheet	:: ArrowXml a => a XmlTree XmlTree-isXsltLREstylesheet	= hasXsltAttr xsltVersionLRE--isXsltStylesheetElem	:: ArrowXml a => a XmlTree XmlTree-isXsltStylesheetElem	=  ( isXsltElem xsltTransform-			     <+>-			     isXsltElem xsltStylesheet-			   )-                           >>>-			   hasXsltAttr xsltVersion--getXsltAttrValue	:: ArrowXml a => QName -> a XmlTree String-getXsltAttrValue qn	= getAttrl >>> isXsltAttr qn >>> xshow getChildren--xsltlre2template	:: ArrowXml a => a XmlTree XmlTree-xsltlre2template	= mkqelem xsltTemplate [sqattr xsltMatch "/"] [this]--xsltlre2stylesheet	:: ArrowXml a => a XmlTree XmlTree-xsltlre2stylesheet	= mkqelem xsltTransform [] [ this >>> xsltlre2template ]------checkApplySST	::  IOSArrow XmlTree XmlTree -> IOSArrow XmlTree XmlTree-checkApplySST appl-    = ( isRoot-	>>>-	replaceChildren appl-	>>>-	traceDoc "XSLT stylesheet applied"-	>>>-	setDocumentStatusFromSystemState "applying XSLT styleshhet"-      )-      `orElse`-      issueErr "XSLT: complete document with root node required for stylesheet application"---- | Compile a document representing an XSLT stylesheet into an internal representation------ The internal representation is an abstract syntax tree for the XSLT rules.--- XSLT imports and includes are evaluated and the rules are normalized and prepared--- for easy application.--xsltCompileStylesheet		:: IOSArrow XmlTree CompiledStylesheet-xsltCompileStylesheet-    = prepareXSLTDoc-      >>>-      compileSSTWithIncludeStack []---- | A convinient function for combining reading a stylesheet and compilation.------ Reading an XSLT stylesheet is always done without validation but with--- namespace propagation. Comments are removed from the stylesheet.--xsltCompileStylesheetFromURI	:: IOSArrow String CompiledStylesheet-xsltCompileStylesheetFromURI	= compileSSTFromUriWithIncludeStack []---- | apply a compiled XSLT stylesheet to a whole document tree------ The compiled stylesheet must have been created with 'xsltCompileStylesheet'--- or 'xsltCompileStylesheetFromURI'--xsltApplyStylesheet		:: CompiledStylesheet -> IOSArrow XmlTree XmlTree-xsltApplyStylesheet css-    = checkApplySST (arrWithCatch (applyStylesheet css) >>. concat)---- | apply an XSLT stylesheet given by an URI to a whole document tree------ The string parameter is the URI of the XSLT stylesheet.--- In case of an error during stylesheet compilation or stylesheet application--- all children of the root node are removed and--- the error status is set in the attribute list of the root node of the input document.--xsltApplyStylesheetFromURI	:: String -> IOSArrow XmlTree XmlTree-xsltApplyStylesheetFromURI uri-    = xsltApplyStylesheet $< (constA uri >>> xsltCompileStylesheetFromURI)--{--xsltApplyStylesheetWParams	:: Map ExName Expr -> CompiledStylesheet -> IOSArrow XmlTree XmlTree-xsltApplyStylesheetWParams wp css	= arrL (applyStylesheetWParams wp css)--}
− src/hxt-package.hs
@@ -1,132 +0,0 @@-module Main-where--import Data.List--import System.Environment-import System.IO--part1	:: [String]-part1-    = [ "-- arch-tag: Haskell XML Toolbox main description file"-      , "name: hxt"-      ]--version	:: String-version-    = "version: "--part2	:: [String]-part2-    = [ "license: OtherLicense"-      , "license-file: LICENCE"-      , "maintainer: Uwe Schmidt <uwe@fh-wedel.de>"-      , "stability: stable"-      , "category: XML"-      , "synopsis: A collection of tools for processing XML with Haskell. "-      , "description:  The Haskell XML Toolbox bases on the ideas of HaXml and HXML," ++-	" but introduces a more general approach for processing XML with Haskell. The Haskell XML Toolbox" ++-	" uses a generic data model for representing XML documents, including the DTD subset and the document" ++-	" subset, in Haskell. It contains a validating XML parser, a HTML parser, namespace support," ++-	" an XPath expression evaluator, an XSLT library, a RelaxNG schema validator" ++-	" and funtions for serialization and deserialization of user defined data." ++-	" The libraray make extensive use of the arrow approach for processing XML."-      , "homepage: http://www.fh-wedel.de/~si/HXmlToolbox/index.html"-      , "copyright: Copyright (c) 2005-2008 Uwe Schmidt"-      ]--part3a	:: [String]-part3a-    = [ "tested-with: ghc-6.10.4"-      , "exposed: True"-      , "exposed-modules:"-      ]--part3b :: [String]-part3b-    = [ "build-type: Simple"-      , "cabal-version: >=1.6"-      , ""-      , "library"-      , " exposed-modules:"-      ]--part4a	:: String -> [String]-part4a dir-    = [ "hs-source-dirs: ."-      , "ghc-options: -Wall -fglasgow-exts"-      , "import-dirs: " ++ dir ++ "/imports"-      , "library-dirs: " ++ dir-      , "hs-libraries: HShxt"-      , "build-depends: base >= 4.0.0.0,"-      , "         haskell98 >= 1.0.1.0,"-      , "         bytestring >= 0.9.1.4,"-      , "         parallel >= 1.1.0.0,"-      , "         parsec >= 2.1.0.1,"-      , "         network >= 2.2.0.1,"-      , "         containers >= 0.2.0.0,"-      , "         directory >= 1.0.0.2,"-      , "         tagsoup >= 0.6,"-      , "         curl >= 1.3.3"-{-      , "depends: base-4.0.0.0,"-      , "         haskell98-1.0.1.0,"-      , "         bytestring-0.9.1.4,"-      , "         parallel-1.1.0.0,"-      , "         parsec-2.1.0.1,"-      , "         network-2.2.0.1,"-      , "         containers-0.2.0.0,"-      , "         directory-1.0.0.2,"-      , "         tagsoup-0.6,"-      , "         curl-1.3.3"--}      ]--part4b :: [String]-part4b-    = [ " hs-source-dirs: src"-      , " ghc-options: -Wall"-      , " extensions: MultiParamTypeClasses DeriveDataTypeable FunctionalDependencies FlexibleInstances"-      , ""-      , " build-depends: base       >= 4 && < 5,"-      , "                haskell98  >= 1 && < 2,"-      , "                containers >= 0.1 && < 1,"-      , "                directory  >= 1 && < 2,"-      , "                filepath   >= 1 && < 2,"-      , "                parsec     >= 2.1 && < 4,"-      , "                HUnit      >= 1.2 && < 2,"-      , "                network    >= 2.1 && < 3,"-      , "                parallel   >= 1.0 && < 2,"-      , "                bytestring >= 0.9 && < 1,"-      , "                tagsoup    >= 0.6 && < 1,"-      , "                curl       >= 1.3 && < 2"-      ]--main	:: IO()-main-    = do-      vers : cabal : installdir : modules <- getArgs-      putStrLn (cabalFile vers cabal installdir modules)-      hFlush stdout--cabalFile	:: String -> String -> String -> [String] -> String-cabalFile vers cabal installdir modules-    = unlines $-      part1 ++-      [ version ++ vers ] ++-      part2 ++-      ( if isCabal-	then part3b-	else part3a-      ) ++-      [ml modules] ++-      ( if isCabal-	then part4b-	else part4a installdir-      )-    where-    isCabal = cabal == "cabal"-    ml = foldr1 (\ x y -> x ++ ",\n" ++ y) . sort . map editPath-    editPath = ("  " ++) . map slash2dot . reverse . drop 1 . dropWhile (/= '.') . reverse . removeLeadingDot-    slash2dot '/' = '.'-    slash2dot c   = c-    removeLeadingDot ('.':'/':path)	= path-    removeLeadingDot path		= path