updated for version 7.0e03
diff --git a/runtime/autoload/htmlcomplete.vim b/runtime/autoload/htmlcomplete.vim
index c663e3c..e307698 100644
--- a/runtime/autoload/htmlcomplete.vim
+++ b/runtime/autoload/htmlcomplete.vim
@@ -210,7 +210,14 @@
 		let tag = ''
 	else
 		let tag = split(context)[0]
+		if tag =~ '[A-Z]'
+			let uppercase_tag = 1
+			let tag = tolower(tag)
+		else
+			let uppercase_tag = 0
+		endif
 	endif
+	let g:ta = tag
 	" Get last word, it should be attr name
 	let attr = matchstr(context, '.*\s\zs.*')
 	" Possible situations where any prediction would be difficult:
@@ -438,10 +445,10 @@
 		endif
 		" Value of attribute completion {{{
 		" If attr contains =\s*[\"'] we catched value of attribute
-		if attr =~ "=\s*[\"']"
+		if attr =~ "=\s*[\"']" || attr =~ "=\s*$"
 			" Let do attribute specific completion
 			let attrname = matchstr(attr, '.*\ze\s*=')
-			let entered_value = matchstr(attr, ".*=\\s*[\"']\\zs.*")
+			let entered_value = matchstr(attr, ".*=\\s*[\"']\\?\\zs.*")
 			let values = []
 			if attrname == 'href'
 				" Now we are looking for local anchors defined by name or id
@@ -469,15 +476,21 @@
 			" We need special version of sbase
 			let attrbase = matchstr(context, ".*[\"']")
 			let attrquote = matchstr(attrbase, '.$')
+			if attrquote !~ "['\"]"
+				let attrquoteopen = '"'
+				let attrquote = '"'
+			else
+				let attrquoteopen = ''
+			endif
 
 			for m in values
 				" This if is needed to not offer all completions as-is
 				" alphabetically but sort them. Those beginning with entered
 				" part will be as first choices
 				if m =~ '^'.entered_value
-					call add(res, m . attrquote.' ')
+					call add(res, attrquoteopen . m . attrquote.' ')
 				elseif m =~ entered_value
-					call add(res2, m . attrquote.' ')
+					call add(res2, attrquoteopen . m . attrquote.' ')
 				endif
 			endfor
 
@@ -494,8 +507,12 @@
 			call htmlcomplete#LoadData()
 		endif
 		" }}}
-		"
-		let attrs = keys(g:html_omni[tag][1])
+		
+		if has_key(g:html_omni, tag)
+			let attrs = keys(g:html_omni[tag][1])
+		else
+			return []
+		endif
 
 		for m in sort(attrs)
 			if m =~ '^'.attr
@@ -539,6 +556,7 @@
 			return [opentag.">"]
 		endif
 	endif
+	" }}}
 	" Load data {{{
 	if !exists("g:html_omni")
 		"runtime! autoload/xml/xhtml10s.vim
@@ -547,10 +565,9 @@
 	" }}}
 	" Tag completion {{{
 	" Deal with tag completion.
-	let opentag = xmlcomplete#GetLastOpenTag("b:unaryTagsStack")
+	let opentag = tolower(xmlcomplete#GetLastOpenTag("b:unaryTagsStack"))
 	" MM: TODO: GLOT works always the same but with some weird situation it
 	" behaves as intended in HTML but screws in PHP
-	let g:ot = opentag
 	if opentag == '' || &ft == 'php' && !has_key(g:html_omni, opentag)
 		" Hack for sometimes failing GetLastOpenTag.
 		" As far as I tested fail isn't GLOT fault but problem
@@ -559,9 +576,17 @@
 	    let tags = keys(g:html_omni)
 		call filter(tags, 'v:val !~ "^vimxml"')
 	else
-		let tags = g:html_omni[opentag][0]
+		if has_key(g:html_omni, opentag)
+			let tags = g:html_omni[opentag][0]
+		else
+			return []
+		endif
 	endif
 	" }}}
+	
+	if exists("uppercase_tag") && uppercase_tag == 1
+		let context = tolower(context)
+	endif
 
 	for m in sort(tags)
 		if m =~ '^'.context
diff --git a/runtime/autoload/xml/html401s.vim b/runtime/autoload/xml/html401s.vim
new file mode 100644
index 0000000..5c9476a
--- /dev/null
+++ b/runtime/autoload/xml/html401s.vim
@@ -0,0 +1,325 @@
+let g:xmldata_html401s = {
+\ 'vimxmlentities' : ["AElig", "Aacute", "Acirc", "Agrave", "Alpha", "Aring", "Atilde", "Auml", "Beta", "Ccedil", "Chi", "Dagger", "Delta", "ETH", "Eacute", "Ecirc", "Egrave", "Epsilon", "Eta", "Euml", "Gamma", "Iacute", "Icirc", "Igrave", "Iota", "Iuml", "Kappa", "Lambda", "Mu", "Ntilde", "Nu", "OElig", "Oacute", "Ocirc", "Ograve", "Omega", "Omicron", "Oslash", "Otilde", "Ouml", "Phi", "Pi", "Prime", "Psi", "Rho", "Scaron", "Sigma", "THORN", "TITY", "Tau", "Theta", "Uacute", "Ucirc", "Ugrave", "Upsilon", "Uuml", "Xi", "Yacute", "Yuml", "Zeta", "amp", "aacute", "acirc", "acute", "aelig", "agrave", "alefsym", "alpha", "and", "ang", "apos", "aring", "asymp", "atilde", "auml", "bdquo", "beta", "brvbar", "bull", "cap", "ccedil", "cedil", "cent", "chi", "circ", "clubs", "copy", "cong", "crarr", "cup", "curren", "dArr", "dagger", "darr", "deg", "delta", "diams", "divide", "eacute", "ecirc", "egrave", "empty", "ensp", "emsp", "epsilon", "equiv", "eta", "eth", "euro", "euml", "exist", "fnof", "forall", "frac12", "frac14", "frac34", "frasl", "gt", "gamma", "ge", "hArr", "harr", "hearts", "hellip", "iacute", "icirc", "iexcl", "igrave", "image", "infin", "int", "iota", "iquest", "isin", "iuml", "kappa", "lt", "laquo", "lArr", "lambda", "lang", "larr", "lceil", "ldquo", "le", "lfloor", "lowast", "loz", "lrm", "lsaquo", "lsquo", "macr", "mdash", "micro", "middot", "minus", "mu", "nbsp", "nabla", "ndash", "ne", "ni", "not", "notin", "nsub", "ntilde", "nu", "oacute", "ocirc", "oelig", "ograve", "oline", "omega", "omicron", "oplus", "or", "ordf", "ordm", "oslash", "otilde", "otimes", "ouml", "para", "part", "permil", "perp", "phi", "pi", "piv", "plusmn", "pound", "prime", "prod", "prop", "psi", "quot", "rArr", "raquo", "radic", "rang", "rarr", "rceil", "rdquo", "real", "reg", "rfloor", "rho", "rlm", "rsaquo", "rsquo", "sbquo", "scaron", "sdot", "sect", "shy", "sigma", "sigmaf", "sim", "spades", "sub", "sube", "sum", "sup", "sup1", "sup2", "sup3", "supe", "szlig", "tau", "there4", "theta", "thetasym", "thinsp", "thorn", "tilde", "times", "trade", "uArr", "uacute", "uarr", "ucirc", "ugrave", "uml", "upsih", "upsilon", "uuml", "weierp", "xi", "yacute", "yen", "yuml", "zeta", "zwj", "zwnj"],
+\ 'vimxmlroot': ['html'],
+\ 'a': [
+\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'rel': [], 'accesskey': [], 'coords': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onfocus': [], 'onkeydown': [], 'onkeyup': [], 'href': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'tabindex': [], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'name': [], 'style': [], 'charset': [], 'hreflang': [], 'onkeypress': [], 'onmousedown': [], 'rev': [], 'class': [], 'title': [], 'onclick': [], 'type': [], 'shape': ['rect', 'rect', 'circle', 'poly', 'default']}
+\ ],
+\ 'abbr': [
+\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
+\ ],
+\ 'acronym': [
+\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
+\ ],
+\ 'address': [
+\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
+\ ],
+\ 'area': [
+\ [],
+\ { 'accesskey': [], 'coords': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onkeydown': [], 'nohref': ['nohref'], 'onfocus': [], 'onkeyup': [], 'href': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'alt': [], 'tabindex': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'shape': ['rect', 'rect', 'circle', 'poly', 'default'], 'class': [], 'title': [], 'onclick': []}
+\ ],
+\ 'b': [
+\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
+\ ],
+\ 'base': [
+\ [],
+\ { 'href': []}
+\ ],
+\ 'bdo': [
+\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'dir': ['ltr', 'rtl'], 'id': [], 'lang': [], 'style': [], 'class': [], 'title': []}
+\ ],
+\ 'big': [
+\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
+\ ],
+\ 'blockquote': [
+\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'pre', 'dl', 'div', 'noscript', 'blockquote', 'form', 'hr', 'table', 'fieldset', 'address', 'script'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'cite': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
+\ ],
+\ 'body': [
+\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'pre', 'dl', 'div', 'noscript', 'blockquote', 'form', 'hr', 'table', 'fieldset', 'address', 'script'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onunload': [], 'onkeypress': [], 'onmousedown': [], 'onload': [], 'class': [], 'title': [], 'onclick': []}
+\ ],
+\ 'br': [
+\ [],
+\ { 'id': [], 'style': [], 'class': [], 'title': []}
+\ ],
+\ 'button': [
+\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'pre', 'dl', 'div', 'noscript', 'blockquote', 'form', 'hr', 'table', 'fieldset', 'address', '#pcdata', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'accesskey': [], 'disabled': ['disabled'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onkeydown': [], 'onfocus': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'tabindex': [], 'value': [], 'name': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'type': ['submit', 'button', 'submit', 'reset']}
+\ ],
+\ 'caption': [
+\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
+\ ],
+\ 'cite': [
+\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
+\ ],
+\ 'code': [
+\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
+\ ],
+\ 'col': [
+\ [],
+\ { 'width': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'charoff': [], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'char': [], 'span': ['1'], 'class': [], 'title': [], 'onclick': []}
+\ ],
+\ 'colgroup': [
+\ ['col'],
+\ { 'width': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'charoff': [], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'char': [], 'span': ['1'], 'class': [], 'title': [], 'onclick': []}
+\ ],
+\ 'dd': [
+\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'pre', 'dl', 'div', 'noscript', 'blockquote', 'form', 'hr', 'table', 'fieldset', 'address', '#pcdata', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
+\ ],
+\ 'del': [
+\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'pre', 'dl', 'div', 'noscript', 'blockquote', 'form', 'hr', 'table', 'fieldset', 'address', '#pcdata', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'datetime': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'cite': [], 'onmouseover': [], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
+\ ],
+\ 'dfn': [
+\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
+\ ],
+\ 'div': [
+\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'pre', 'dl', 'div', 'noscript', 'blockquote', 'form', 'hr', 'table', 'fieldset', 'address', '#pcdata', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
+\ ],
+\ 'dl': [
+\ ['dt', 'dd'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
+\ ],
+\ 'dt': [
+\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
+\ ],
+\ 'em': [
+\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
+\ ],
+\ 'fieldset': [
+\ ['legend', 'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'pre', 'dl', 'div', 'noscript', 'blockquote', 'form', 'hr', 'table', 'fieldset', 'address', '#pcdata', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
+\ ],
+\ 'form': [
+\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'pre', 'dl', 'div', 'noscript', 'blockquote', 'form', 'hr', 'table', 'fieldset', 'address', 'script'],
+\ { 'enctype': ['application/x-www-form-urlencoded'], 'onsubmit': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'onreset': [], 'id': [], 'method': ['GET', 'GET', 'POST'], 'onmouseover': [], 'lang': [], 'accept': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'name': [], 'accept-charset': [], 'onkeypress': [], 'onmousedown': [], 'action': [], 'class': [], 'title': [], 'onclick': []}
+\ ],
+\ 'h1': [
+\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
+\ ],
+\ 'h2': [
+\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
+\ ],
+\ 'h3': [
+\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
+\ ],
+\ 'h4': [
+\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
+\ ],
+\ 'h5': [
+\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
+\ ],
+\ 'h6': [
+\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
+\ ],
+\ 'head': [
+\ ['title', 'base'],
+\ { 'profile': [], 'dir': ['ltr', 'rtl'], 'lang': []}
+\ ],
+\ 'hr': [
+\ [],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
+\ ],
+\ 'html': [
+\ ['head', 'body'],
+\ { 'dir': ['ltr', 'rtl'], 'lang': []}
+\ ],
+\ 'i': [
+\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
+\ ],
+\ 'img': [
+\ [],
+\ { 'width': [], 'usemap': [], 'ismap': ['ismap'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'alt': [], 'lang': [], 'src': [], 'longdesc': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'name': [], 'height': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
+\ ],
+\ 'input': [
+\ [],
+\ { 'ondblclick': [], 'onkeydown': [], 'readonly': ['readonly'], 'onchange': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'value': [], 'src': [], 'name': [], 'checked': ['checked'], 'onkeypress': [], 'onmousedown': [], 'type': ['TEXT', 'TEXT', 'PASSWORD', 'CHECKBOX', 'RADIO', 'SUBMIT', 'RESET', 'FILE', 'IMAGE', 'BUTTON'], 'class': [], 'title': [], 'onclick': [], 'accesskey': [], 'disabled': ['disabled'], 'usemap': [], 'ismap': ['ismap'], 'dir': ['ltr', 'rtl'], 'size': [], 'onblur': [], 'onfocus': [], 'maxlength': [], 'onselect': [], 'accept': [], 'alt': [], 'tabindex': [], 'style': [], 'onmousemove': [], 'onmouseout': []}
+\ ],
+\ 'ins': [
+\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'pre', 'dl', 'div', 'noscript', 'blockquote', 'form', 'hr', 'table', 'fieldset', 'address', '#pcdata', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'datetime': [], 'cite': [], 'onmouseout': [], 'onmousemove': [], 'style': []}
+\ ],
+\ 'kbd': [
+\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
+\ ],
+\ 'label': [
+\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'for': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'accesskey': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onfocus': [], 'onmouseout': [], 'onmousemove': [], 'style': []}
+\ ],
+\ 'legend': [
+\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'accesskey': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
+\ ],
+\ 'li': [
+\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'pre', 'dl', 'div', 'noscript', 'blockquote', 'form', 'hr', 'table', 'fieldset', 'address', '#pcdata', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
+\ ],
+\ 'link': [
+\ [],
+\ { 'rel': [], 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'href': [], 'media': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'charset': [], 'hreflang': [], 'onkeypress': [], 'onmousedown': [], 'rev': [], 'class': [], 'title': [], 'onclick': [], 'type': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
+\ ],
+\ 'map': [
+\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'pre', 'dl', 'div', 'noscript', 'blockquote', 'form', 'hr', 'table', 'fieldset', 'address', 'area'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'name': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
+\ ],
+\ 'meta': [
+\ [],
+\ { 'http-equiv': [], 'content': [], 'lang': [], 'name': [], 'scheme': [], 'dir': ['ltr', 'rtl']}
+\ ],
+\ 'noscript': [
+\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'pre', 'dl', 'div', 'noscript', 'blockquote', 'form', 'hr', 'table', 'fieldset', 'address'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
+\ ],
+\ 'object': [
+\ ['param', 'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'pre', 'dl', 'div', 'noscript', 'blockquote', 'form', 'hr', 'table', 'fieldset', 'address', '#pcdata', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'name': [], 'data': [], 'declare': ['declare'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'type': [], 'width': [], 'usemap': [], 'dir': ['ltr', 'rtl'], 'archive': [], 'standby': [], 'tabindex': [], 'classid': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'height': [], 'codetype': [], 'codebase': []}
+\ ],
+\ 'ol': [
+\ ['li'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
+\ ],
+\ 'optgroup': [
+\ ['option'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'label': [], 'disabled': ['disabled'], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
+\ ],
+\ 'option': [
+\ [''],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'value': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'label': [], 'disabled': ['disabled'], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'selected': ['selected']}
+\ ],
+\ 'p': [
+\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
+\ ],
+\ 'param': [
+\ [],
+\ { 'id': [], 'value': [], 'name': [], 'type': [], 'valuetype': ['DATA', 'DATA', 'REF', 'OBJECT']}
+\ ],
+\ 'pre': [
+\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
+\ ],
+\ 'q': [
+\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'cite': [], 'style': [], 'onmousemove': [], 'onmouseout': []}
+\ ],
+\ 'samp': [
+\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
+\ ],
+\ 'script': [
+\ ['cdata'],
+\ { 'src': [], 'for': [], 'charset': [], 'event': [], 'type': [], 'defer': ['defer']}
+\ ],
+\ 'select': [
+\ ['optgroup', 'option'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onchange': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'name': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'disabled': ['disabled'], 'dir': ['ltr', 'rtl'], 'size': [], 'onblur': [], 'onfocus': [], 'tabindex': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'multiple': ['multiple']}
+\ ],
+\ 'small': [
+\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
+\ ],
+\ 'span': [
+\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
+\ ],
+\ 'strong': [
+\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
+\ ],
+\ 'style': [
+\ ['cdata'],
+\ { 'media': [], 'lang': [], 'type': [], 'title': [], 'dir': ['ltr', 'rtl']}
+\ ],
+\ 'sub': [
+\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
+\ ],
+\ 'sup': [
+\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
+\ ],
+\ 'table': [
+\ ['caption', 'col', 'colgroup', 'thead', 'tfoot', 'tbody'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'datapagesize': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'width': [], 'frame': ['void', 'above', 'below', 'hsides', 'lhs', 'rhs', 'vsides', 'box', 'border'], 'rules': ['none', 'groups', 'rows', 'cols', 'all'], 'dir': ['ltr', 'rtl'], 'summary': [], 'cellspacing': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'border': [], 'cellpadding': []}
+\ ],
+\ 'tbody': [
+\ ['tr'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'char': []}
+\ ],
+\ 'td': [
+\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'pre', 'dl', 'div', 'noscript', 'blockquote', 'form', 'hr', 'table', 'fieldset', 'address', '#pcdata', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'axis': [], 'onkeydown': [], 'abbr': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'scope': ['row', 'col', 'rowgroup', 'colgroup'], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'headers': [], 'dir': ['ltr', 'rtl'], 'rowspan': ['1'], 'colspan': ['1'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'char': []}
+\ ],
+\ 'textarea': [
+\ [''],
+\ { 'ondblclick': [], 'cols': [], 'onkeydown': [], 'readonly': ['readonly'], 'onchange': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'name': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'accesskey': [], 'disabled': ['disabled'], 'rows': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onfocus': [], 'onselect': [], 'tabindex': [], 'onmouseout': [], 'onmousemove': [], 'style': []}
+\ ],
+\ 'tfoot': [
+\ ['tr'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'char': []}
+\ ],
+\ 'th': [
+\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'pre', 'dl', 'div', 'noscript', 'blockquote', 'form', 'hr', 'table', 'fieldset', 'address', '#pcdata', 'tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'axis': [], 'onkeydown': [], 'abbr': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'scope': ['row', 'col', 'rowgroup', 'colgroup'], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'headers': [], 'dir': ['ltr', 'rtl'], 'rowspan': ['1'], 'colspan': ['1'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'char': []}
+\ ],
+\ 'thead': [
+\ ['tr'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'char': []}
+\ ],
+\ 'title': [
+\ [''],
+\ { 'lang': [], 'dir': ['ltr', 'rtl']}
+\ ],
+\ 'tr': [
+\ ['th', 'td'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'char': []}
+\ ],
+\ 'tt': [
+\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
+\ ],
+\ 'ul': [
+\ ['li'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
+\ ],
+\ 'var': [
+\ ['tt', 'i', 'b', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'object', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
+\ ],
+\ 'vimxmltaginfo': {
+\ 'area': ['/>', ''],
+\ 'base': ['/>', ''],
+\ 'br': ['/>', ''],
+\ 'col': ['/>', ''],
+\ 'hr': ['/>', ''],
+\ 'img': ['/>', ''],
+\ 'input': ['/>', ''],
+\ 'link': ['/>', ''],
+\ 'meta': ['/>', ''],
+\ 'param': ['/>', ''],
+\ }
+\ }
+" vim:ft=vim:ff=unix
diff --git a/runtime/autoload/xml/html401t.vim b/runtime/autoload/xml/html401t.vim
new file mode 100644
index 0000000..eb94b50
--- /dev/null
+++ b/runtime/autoload/xml/html401t.vim
@@ -0,0 +1,375 @@
+let g:xmldata_html401t = {
+\ 'vimxmlentities' : ["AElig", "Aacute", "Acirc", "Agrave", "Alpha", "Aring", "Atilde", "Auml", "Beta", "Ccedil", "Chi", "Dagger", "Delta", "ETH", "Eacute", "Ecirc", "Egrave", "Epsilon", "Eta", "Euml", "Gamma", "Iacute", "Icirc", "Igrave", "Iota", "Iuml", "Kappa", "Lambda", "Mu", "Ntilde", "Nu", "OElig", "Oacute", "Ocirc", "Ograve", "Omega", "Omicron", "Oslash", "Otilde", "Ouml", "Phi", "Pi", "Prime", "Psi", "Rho", "Scaron", "Sigma", "THORN", "TITY", "Tau", "Theta", "Uacute", "Ucirc", "Ugrave", "Upsilon", "Uuml", "Xi", "Yacute", "Yuml", "Zeta", "amp", "aacute", "acirc", "acute", "aelig", "agrave", "alefsym", "alpha", "and", "ang", "apos", "aring", "asymp", "atilde", "auml", "bdquo", "beta", "brvbar", "bull", "cap", "ccedil", "cedil", "cent", "chi", "circ", "clubs", "copy", "cong", "crarr", "cup", "curren", "dArr", "dagger", "darr", "deg", "delta", "diams", "divide", "eacute", "ecirc", "egrave", "empty", "ensp", "emsp", "epsilon", "equiv", "eta", "eth", "euro", "euml", "exist", "fnof", "forall", "frac12", "frac14", "frac34", "frasl", "gt", "gamma", "ge", "hArr", "harr", "hearts", "hellip", "iacute", "icirc", "iexcl", "igrave", "image", "infin", "int", "iota", "iquest", "isin", "iuml", "kappa", "lt", "laquo", "lArr", "lambda", "lang", "larr", "lceil", "ldquo", "le", "lfloor", "lowast", "loz", "lrm", "lsaquo", "lsquo", "macr", "mdash", "micro", "middot", "minus", "mu", "nbsp", "nabla", "ndash", "ne", "ni", "not", "notin", "nsub", "ntilde", "nu", "oacute", "ocirc", "oelig", "ograve", "oline", "omega", "omicron", "oplus", "or", "ordf", "ordm", "oslash", "otilde", "otimes", "ouml", "para", "part", "permil", "perp", "phi", "pi", "piv", "plusmn", "pound", "prime", "prod", "prop", "psi", "quot", "rArr", "raquo", "radic", "rang", "rarr", "rceil", "rdquo", "real", "reg", "rfloor", "rho", "rlm", "rsaquo", "rsquo", "sbquo", "scaron", "sdot", "sect", "shy", "sigma", "sigmaf", "sim", "spades", "sub", "sube", "sum", "sup", "sup1", "sup2", "sup3", "supe", "szlig", "tau", "there4", "theta", "thetasym", "thinsp", "thorn", "tilde", "times", "trade", "uArr", "uacute", "uarr", "ucirc", "ugrave", "uml", "upsih", "upsilon", "uuml", "weierp", "xi", "yacute", "yen", "yuml", "zeta", "zwj", "zwnj"],
+\ 'vimxmlroot': ['html'],
+\ 'a': [
+\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'rel': [], 'accesskey': [], 'coords': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onkeydown': [], 'onfocus': [], 'target': [], 'onkeyup': [], 'href': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'tabindex': [], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'name': [], 'charset': [], 'hreflang': [], 'onkeypress': [], 'onmousedown': [], 'rev': [], 'class': [], 'title': [], 'onclick': [], 'type': [], 'shape': ['rect', 'rect', 'circle', 'poly', 'default']}
+\ ],
+\ 'abbr': [
+\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
+\ ],
+\ 'acronym': [
+\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
+\ ],
+\ 'address': [
+\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button', 'p'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
+\ ],
+\ 'applet': [
+\ ['param', 'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', '#pcdata', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'width': [], 'object': [], 'id': [], 'code': [], 'vspace': [], 'archive': [], 'alt': [], 'align': ['top', 'middle', 'bottom', 'left', 'right'], 'style': [], 'name': [], 'height': [], 'hspace': [], 'title': [], 'class': [], 'codebase': []}
+\ ],
+\ 'area': [
+\ [],
+\ { 'accesskey': [], 'coords': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onkeydown': [], 'target': [], 'nohref': ['nohref'], 'onfocus': [], 'onkeyup': [], 'href': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'alt': [], 'tabindex': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'shape': ['rect', 'rect', 'circle', 'poly', 'default'], 'class': [], 'title': [], 'onclick': []}
+\ ],
+\ 'b': [
+\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
+\ ],
+\ 'base': [
+\ [],
+\ { 'target': [], 'href': []}
+\ ],
+\ 'basefont': [
+\ [],
+\ { 'size': [], 'face': [], 'color': [], 'id': []}
+\ ],
+\ 'bdo': [
+\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'dir': ['ltr', 'rtl'], 'id': [], 'lang': [], 'style': [], 'class': [], 'title': []}
+\ ],
+\ 'big': [
+\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
+\ ],
+\ 'blockquote': [
+\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', '#pcdata', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'cite': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
+\ ],
+\ 'body': [
+\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', '#pcdata', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'vlink': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'alink': [], 'onkeyup': [], 'bgcolor': [], 'text': [], 'onmouseup': [], 'id': [], 'link': [], 'onmouseover': [], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'background': [], 'onunload': [], 'onkeypress': [], 'onmousedown': [], 'onload': [], 'class': [], 'title': [], 'onclick': []}
+\ ],
+\ 'br': [
+\ [],
+\ { 'clear': ['none', 'left', 'all', 'right', 'none'], 'id': [], 'style': [], 'class': [], 'title': []}
+\ ],
+\ 'button': [
+\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', '#pcdata', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'accesskey': [], 'disabled': ['disabled'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onkeydown': [], 'onfocus': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'tabindex': [], 'value': [], 'name': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'type': ['submit', 'button', 'submit', 'reset']}
+\ ],
+\ 'caption': [
+\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['top', 'bottom', 'left', 'right'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
+\ ],
+\ 'center': [
+\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', '#pcdata', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
+\ ],
+\ 'cite': [
+\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
+\ ],
+\ 'code': [
+\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
+\ ],
+\ 'col': [
+\ [],
+\ { 'width': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'charoff': [], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'char': [], 'span': ['1'], 'class': [], 'title': [], 'onclick': []}
+\ ],
+\ 'colgroup': [
+\ ['col'],
+\ { 'width': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'charoff': [], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'char': [], 'span': ['1'], 'class': [], 'title': [], 'onclick': []}
+\ ],
+\ 'dd': [
+\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', '#pcdata', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
+\ ],
+\ 'del': [
+\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', '#pcdata', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'datetime': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'cite': [], 'onmouseover': [], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
+\ ],
+\ 'dfn': [
+\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
+\ ],
+\ 'dir': [
+\ ['li'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'compact': ['compact'], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
+\ ],
+\ 'div': [
+\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', '#pcdata', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
+\ ],
+\ 'dl': [
+\ ['dt', 'dd'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'compact': ['compact'], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
+\ ],
+\ 'dt': [
+\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
+\ ],
+\ 'em': [
+\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
+\ ],
+\ 'fieldset': [
+\ ['legend', 'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', '#pcdata', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
+\ ],
+\ 'font': [
+\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'dir': ['ltr', 'rtl'], 'size': [], 'face': [], 'color': [], 'id': [], 'lang': [], 'style': [], 'class': [], 'title': []}
+\ ],
+\ 'form': [
+\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', '#pcdata', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'enctype': ['application/x-www-form-urlencoded'], 'onsubmit': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'target': [], 'onkeyup': [], 'onmouseup': [], 'onreset': [], 'id': [], 'method': ['GET', 'GET', 'POST'], 'onmouseover': [], 'lang': [], 'accept': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'name': [], 'accept-charset': [], 'onkeypress': [], 'onmousedown': [], 'action': [], 'class': [], 'title': [], 'onclick': []}
+\ ],
+\ 'h1': [
+\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
+\ ],
+\ 'h2': [
+\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
+\ ],
+\ 'h3': [
+\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
+\ ],
+\ 'h4': [
+\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
+\ ],
+\ 'h5': [
+\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
+\ ],
+\ 'h6': [
+\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
+\ ],
+\ 'head': [
+\ ['title', 'isindex', 'base'],
+\ { 'profile': [], 'dir': ['ltr', 'rtl'], 'lang': []}
+\ ],
+\ 'hr': [
+\ [],
+\ { 'width': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'size': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'noshade': ['noshade'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
+\ ],
+\ 'html': [
+\ ['head', 'body'],
+\ { 'dir': ['ltr', 'rtl'], 'lang': [], 'version': ['-//W3C//DTD HTML 4.01 Transitional//EN']}
+\ ],
+\ 'i': [
+\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
+\ ],
+\ 'iframe': [
+\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', '#pcdata', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'width': [], 'scrolling': ['auto', 'yes', 'no', 'auto'], 'marginwidth': [], 'id': [], 'marginheight': [], 'align': ['top', 'middle', 'bottom', 'left', 'right'], 'longdesc': [], 'src': [], 'style': [], 'name': [], 'height': [], 'frameborder': ['1', '1', '0'], 'title': [], 'class': []}
+\ ],
+\ 'img': [
+\ [],
+\ { 'width': [], 'usemap': [], 'ismap': ['ismap'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'vspace': [], 'onmouseover': [], 'alt': [], 'lang': [], 'align': ['top', 'middle', 'bottom', 'left', 'right'], 'src': [], 'longdesc': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'name': [], 'height': [], 'border': [], 'hspace': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
+\ ],
+\ 'input': [
+\ [],
+\ { 'ondblclick': [], 'onkeydown': [], 'readonly': ['readonly'], 'onchange': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'align': ['top', 'middle', 'bottom', 'left', 'right'], 'value': [], 'src': [], 'name': [], 'checked': ['checked'], 'onkeypress': [], 'onmousedown': [], 'type': ['TEXT', 'TEXT', 'PASSWORD', 'CHECKBOX', 'RADIO', 'SUBMIT', 'RESET', 'FILE', 'IMAGE', 'BUTTON'], 'class': [], 'title': [], 'onclick': [], 'accesskey': [], 'disabled': ['disabled'], 'usemap': [], 'ismap': ['ismap'], 'dir': ['ltr', 'rtl'], 'size': [], 'onblur': [], 'onfocus': [], 'maxlength': [], 'onselect': [], 'tabindex': [], 'accept': [], 'alt': [], 'style': [], 'onmousemove': [], 'onmouseout': []}
+\ ],
+\ 'ins': [
+\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', '#pcdata', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'datetime': [], 'cite': [], 'onmouseout': [], 'onmousemove': [], 'style': []}
+\ ],
+\ 'isindex': [
+\ [],
+\ { 'id': [], 'lang': [], 'prompt': [], 'class': [], 'title': [], 'dir': ['ltr', 'rtl'], 'style': []}
+\ ],
+\ 'kbd': [
+\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
+\ ],
+\ 'label': [
+\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'for': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'accesskey': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onfocus': [], 'onmouseout': [], 'onmousemove': [], 'style': []}
+\ ],
+\ 'legend': [
+\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['top', 'bottom', 'left', 'right'], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'accesskey': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
+\ ],
+\ 'li': [
+\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', '#pcdata', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'value': [], 'onkeypress': [], 'onmousedown': [], 'type': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
+\ ],
+\ 'link': [
+\ [],
+\ { 'rel': [], 'ondblclick': [], 'onkeydown': [], 'target': [], 'onkeyup': [], 'href': [], 'media': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'charset': [], 'hreflang': [], 'onkeypress': [], 'onmousedown': [], 'rev': [], 'class': [], 'title': [], 'onclick': [], 'type': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
+\ ],
+\ 'map': [
+\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', 'area'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'name': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
+\ ],
+\ 'menu': [
+\ ['li'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'compact': ['compact'], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
+\ ],
+\ 'meta': [
+\ [],
+\ { 'http-equiv': [], 'content': [], 'lang': [], 'name': [], 'scheme': [], 'dir': ['ltr', 'rtl']}
+\ ],
+\ 'noframes': [
+\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', '#pcdata', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
+\ ],
+\ 'noscript': [
+\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', '#pcdata', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
+\ ],
+\ 'object': [
+\ ['param', 'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', '#pcdata', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'align': ['top', 'middle', 'bottom', 'left', 'right'], 'name': [], 'data': [], 'declare': ['declare'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'type': [], 'width': [], 'usemap': [], 'dir': ['ltr', 'rtl'], 'vspace': [], 'tabindex': [], 'standby': [], 'archive': [], 'classid': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'height': [], 'border': [], 'codetype': [], 'hspace': [], 'codebase': []}
+\ ],
+\ 'ol': [
+\ ['li'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'compact': ['compact'], 'onmouseover': [], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'type': [], 'class': [], 'title': [], 'onclick': [], 'start': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
+\ ],
+\ 'optgroup': [
+\ ['option'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'label': [], 'disabled': ['disabled'], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
+\ ],
+\ 'option': [
+\ [''],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'value': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'label': [], 'disabled': ['disabled'], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'selected': ['selected']}
+\ ],
+\ 'p': [
+\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
+\ ],
+\ 'param': [
+\ [],
+\ { 'id': [], 'value': [], 'name': [], 'type': [], 'valuetype': ['DATA', 'DATA', 'REF', 'OBJECT']}
+\ ],
+\ 'pre': [
+\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'width': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
+\ ],
+\ 'q': [
+\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'cite': [], 'style': [], 'onmousemove': [], 'onmouseout': []}
+\ ],
+\ 's': [
+\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
+\ ],
+\ 'samp': [
+\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
+\ ],
+\ 'script': [
+\ ['cdata'],
+\ { 'src': [], 'for': [], 'charset': [], 'event': [], 'type': [], 'defer': ['defer'], 'language': []}
+\ ],
+\ 'select': [
+\ ['optgroup', 'option'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onchange': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'name': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'disabled': ['disabled'], 'dir': ['ltr', 'rtl'], 'size': [], 'onblur': [], 'onfocus': [], 'tabindex': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'multiple': ['multiple']}
+\ ],
+\ 'small': [
+\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
+\ ],
+\ 'span': [
+\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
+\ ],
+\ 'strike': [
+\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
+\ ],
+\ 'strong': [
+\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
+\ ],
+\ 'style': [
+\ ['cdata'],
+\ { 'media': [], 'lang': [], 'type': [], 'title': [], 'dir': ['ltr', 'rtl']}
+\ ],
+\ 'sub': [
+\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
+\ ],
+\ 'sup': [
+\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
+\ ],
+\ 'table': [
+\ ['caption', 'col', 'colgroup', 'thead', 'tfoot', 'tbody'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'datapagesize': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'width': [], 'frame': ['void', 'above', 'below', 'hsides', 'lhs', 'rhs', 'vsides', 'box', 'border'], 'rules': ['none', 'groups', 'rows', 'cols', 'all'], 'dir': ['ltr', 'rtl'], 'summary': [], 'bgcolor': [], 'cellspacing': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'border': [], 'cellpadding': []}
+\ ],
+\ 'tbody': [
+\ ['tr'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'char': []}
+\ ],
+\ 'td': [
+\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', '#pcdata', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'axis': [], 'onkeydown': [], 'abbr': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'scope': ['row', 'col', 'rowgroup', 'colgroup'], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'width': [], 'headers': [], 'nowrap': ['nowrap'], 'dir': ['ltr', 'rtl'], 'rowspan': ['1'], 'colspan': ['1'], 'bgcolor': [], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'height': [], 'char': []}
+\ ],
+\ 'textarea': [
+\ [''],
+\ { 'ondblclick': [], 'cols': [], 'onkeydown': [], 'readonly': ['readonly'], 'onchange': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'name': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'accesskey': [], 'disabled': ['disabled'], 'rows': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onfocus': [], 'onselect': [], 'tabindex': [], 'onmouseout': [], 'onmousemove': [], 'style': []}
+\ ],
+\ 'tfoot': [
+\ ['tr'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'char': []}
+\ ],
+\ 'th': [
+\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'dir', 'menu', 'pre', 'dl', 'div', 'center', 'noscript', 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table', 'fieldset', 'address', '#pcdata', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'axis': [], 'onkeydown': [], 'abbr': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'scope': ['row', 'col', 'rowgroup', 'colgroup'], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'width': [], 'headers': [], 'nowrap': ['nowrap'], 'dir': ['ltr', 'rtl'], 'rowspan': ['1'], 'colspan': ['1'], 'bgcolor': [], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'height': [], 'char': []}
+\ ],
+\ 'thead': [
+\ ['tr'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'char': []}
+\ ],
+\ 'title': [
+\ [''],
+\ { 'lang': [], 'dir': ['ltr', 'rtl']}
+\ ],
+\ 'tr': [
+\ ['th', 'td'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'bgcolor': [], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'char': []}
+\ ],
+\ 'tt': [
+\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
+\ ],
+\ 'u': [
+\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
+\ ],
+\ 'ul': [
+\ ['li'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'compact': ['compact'], 'onmouseover': [], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'type': ['disc', 'square', 'circle'], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': []}
+\ ],
+\ 'var': [
+\ ['tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'applet', 'object', 'font', 'basefont', 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo', 'iframe', 'input', 'select', 'textarea', 'label', 'button'],
+\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': []}
+\ ],
+\ 'vimxmltaginfo': {
+\ 'area': ['/>', ''],
+\ 'base': ['/>', ''],
+\ 'basefont': ['/>', ''],
+\ 'br': ['/>', ''],
+\ 'col': ['/>', ''],
+\ 'hr': ['/>', ''],
+\ 'img': ['/>', ''],
+\ 'input': ['/>', ''],
+\ 'isindex': ['/>', ''],
+\ 'link': ['/>', ''],
+\ 'meta': ['/>', ''],
+\ 'param': ['/>', ''],
+\ }
+\ }
+" vim:ft=vim:ff=unix
diff --git a/runtime/autoload/xmlcomplete.vim b/runtime/autoload/xmlcomplete.vim
index 60ed919..0729b09 100644
--- a/runtime/autoload/xmlcomplete.vim
+++ b/runtime/autoload/xmlcomplete.vim
@@ -1,7 +1,7 @@
 " Vim completion script
 " Language:	XML
 " Maintainer:	Mikolaj Machowski ( mikmach AT wp DOT pl )
-" Last Change:	2006 Apr 12
+" Last Change:	2006 Apr 19
 
 " This function will create Dictionary with users namespace strings and values
 " canonical (system) names of data files.  Names should be lowercase,
@@ -186,16 +186,20 @@
 	if context =~ '\s'
 
 		" If attr contains =\s*[\"'] we catched value of attribute
-		if attr =~ "=\s*[\"']"
+		if attr =~ "=\s*[\"']" || attr =~ "=\s*$"
 			" Let do attribute specific completion
 			let attrname = matchstr(attr, '.*\ze\s*=')
-			let entered_value = matchstr(attr, ".*=\\s*[\"']\\zs.*")
+			let entered_value = matchstr(attr, ".*=\\s*[\"']\\?\\zs.*")
 
 			if tag =~ '^[?!]'
 				" Return nothing if we are inside of ! or ? tag
 				return []
 			else
-				let values = g:xmldata{'_'.g:xmldata_connection[b:xml_namespace]}[tag][1][attrname]
+				if has_key(g:xmldata{'_'.g:xmldata_connection[b:xml_namespace]}, tag) && has_key(g:xmldata{'_'.g:xmldata_connection[b:xml_namespace]}[tag][1], attrname)
+					let values = g:xmldata{'_'.g:xmldata_connection[b:xml_namespace]}[tag][1][attrname]
+				else
+					return []
+				endif
 			endif
 
 			if len(values) == 0
@@ -205,15 +209,21 @@
 			" We need special version of sbase
 			let attrbase = matchstr(context, ".*[\"']")
 			let attrquote = matchstr(attrbase, '.$')
+			if attrquote !~ "['\"]"
+				let attrquoteopen = '"'
+				let attrquote = '"'
+			else
+				let attrquoteopen = ''
+			endif
 
 			for m in values
 				" This if is needed to not offer all completions as-is
 				" alphabetically but sort them. Those beginning with entered
 				" part will be as first choices
 				if m =~ '^'.entered_value
-					call add(res, m . attrquote.' ')
+					call add(res, attrquoteopen . m . attrquote.' ')
 				elseif m =~ entered_value
-					call add(res2, m . attrquote.' ')
+					call add(res2, attrquoteopen . m . attrquote.' ')
 				endif
 			endfor
 
diff --git a/runtime/doc/map.txt b/runtime/doc/map.txt
index 3ed090a..506ca24 100644
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -1,4 +1,4 @@
-*map.txt*       For Vim version 7.0e.  Last change: 2006 Apr 11
+*map.txt*       For Vim version 7.0e.  Last change: 2006 Apr 19
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -239,6 +239,16 @@
 CTRL-L inserts the next number, CTRL-R resets the count.  CTRL-R returns an
 empty string, so that nothing is inserted.
 
+Note that there are some tricks to make special keys work and escape CSI bytes
+in the text.  The |:map| command also does this, thus you must avoid that it
+is done twice.  This does not work: >
+	:imap <expr> <F3> "<Char-0x611B>"
+Because the <Char- sequence is escaped for being a |:imap| argument and then
+again for using <expr>.  This does work: >
+	:imap <expr> <F3> "\u611B"
+Using 0x80 as a single byte before other text does not work, it will be seen
+as a special key.
+
 
 1.3 MAPPING AND MODES					*:map-modes*
 
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 4f98431..e3f0f6f 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.0e.  Last change: 2006 Apr 18
+*todo.txt*      For Vim version 7.0e.  Last change: 2006 Apr 19
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -30,6 +30,15 @@
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
+Hang in omni completion when 'lines' is 6. (dtsfan)
+
+Crash in "z=" when the change triggers checking out the file, FileChangedRO
+event.  Problem in move_lines()?  FileChangedShell also involved? (Neil Bird)
+Added a few checks for valid buffer, did that help?
+
+Check findoption() return value.
+Other coverity false positives?
+
 Add more tests for all new functionality in Vim 7.  Especially new functions.
 
 Win32: Describe how to do debugging. (George Reilly)
@@ -777,6 +786,7 @@
 8   Xterm sends ^[[H for <Home> and ^[[F for <End> in some mode.  Also
     recognize these keys?  Mostly useful for xterm simulators, like gnometerm.
     See http://dickey.his.com/xterm/xterm.faq.html#xterm_pc_style.
+8   For xterm also recognize keypad up/down/left/right and insert.
 8   '[ and '] should be set to start/end of line when using a linewise operator
     (e.g., ":w").
 8   CTRL-A can't handle big "long" numbers, they become negative.  Check for
diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt
index 4bafdbe..624c194 100644
--- a/runtime/doc/version7.txt
+++ b/runtime/doc/version7.txt
@@ -1,4 +1,4 @@
-*version7.txt*  For Vim version 7.0e.  Last change: 2006 Apr 18
+*version7.txt*  For Vim version 7.0e.  Last change: 2006 Apr 19
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -2556,4 +2556,7 @@
 
 The taglist() function could hang on a tags line with a non-ASCII character.
 
+Win32: When 'encoding' differs from the system encoding tab page labels with
+non-ASCII characters looked wrong. (Yegappan Lakshmanan)
+
  vim:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/filetype.vim b/runtime/filetype.vim
index 2e14397..ef59e53 100644
--- a/runtime/filetype.vim
+++ b/runtime/filetype.vim
@@ -1,7 +1,7 @@
 " Vim support file to detect file types
 "
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2006 Apr 18
+" Last Change:	2006 Apr 19
 
 " Listen very carefully, I will say this only once
 if exists("did_load_filetypes")
@@ -2082,6 +2082,9 @@
 	\|  call s:StarSetf('jargon')
 	\|endif
 
+" Kconfig
+au BufNewFile,BufRead Kconfig.*			call s:StarSetf('kconfig')
+
 " Makefile
 au BufNewFile,BufRead [mM]akefile*		call s:StarSetf('make')
 
diff --git a/runtime/ftplugin/initex.vim b/runtime/ftplugin/initex.vim
new file mode 100644
index 0000000..4f35d04
--- /dev/null
+++ b/runtime/ftplugin/initex.vim
@@ -0,0 +1,38 @@
+" filetype plugin for TeX and variants
+" Language:     TeX (ft=initex)
+" Maintainer:   Benji Fisher, Ph.D. <benji@member.AMS.org>
+" Version:	1.0
+" Last Change:	Wed 19 Apr 2006
+
+" Only do this when not done yet for this buffer.
+if exists("b:did_ftplugin")
+  finish
+endif
+
+" Don't load another plugin for this buffer.
+let b:did_ftplugin = 1
+
+" Avoid problems if running in 'compatible' mode.
+let s:save_cpo = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< define< include< sua<"
+
+" Set 'comments' to format dashed lists in comments
+setlocal com=sO:%\ -,mO:%\ \ ,eO:%%,:%
+
+" Set 'commentstring' to recognize the % comment character:
+" (Thanks to Ajit Thakkar.)
+setlocal cms=%%s
+
+" Allow "[d" to be used to find a macro definition:
+let &l:define='\\\([egx]\|char\|mathchar\|count\|dimen\|muskip\|skip\|toks\)\='
+	\ .	'def\|\\font\|\\\(future\)\=let'
+
+" Tell Vim to recognize \input bar :
+let &l:include = '\\input'
+setlocal suffixesadd=.tex
+
+let &cpo = s:save_cpo
+
+" vim:sts=2:sw=2:
diff --git a/runtime/ftplugin/kconfig.vim b/runtime/ftplugin/kconfig.vim
index ca1a56b..bb93218 100644
--- a/runtime/ftplugin/kconfig.vim
+++ b/runtime/ftplugin/kconfig.vim
@@ -10,5 +10,3 @@
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
-
-
diff --git a/runtime/ftplugin/mailaliases.vim b/runtime/ftplugin/mailaliases.vim
new file mode 100644
index 0000000..f52583f
--- /dev/null
+++ b/runtime/ftplugin/mailaliases.vim
@@ -0,0 +1,12 @@
+" Vim filetype plugin file
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-03-27
+
+if exists("b:did_ftplugin")
+  finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
diff --git a/runtime/ftplugin/plaintex.vim b/runtime/ftplugin/plaintex.vim
index 1660a3a..5862d00 100644
--- a/runtime/ftplugin/plaintex.vim
+++ b/runtime/ftplugin/plaintex.vim
@@ -1,46 +1,34 @@
 " plain TeX filetype plugin
 " Language:     plain TeX (ft=plaintex)
 " Maintainer:   Benji Fisher, Ph.D. <benji@member.AMS.org>
-" Version:	1.0
-" Last Change:	Wed 22 Mar 2006 09:36:32 AM EST
+" Version:	1.1
+" Last Change:	Wed 19 Apr 2006
 
 " Only do this when not done yet for this buffer.
 if exists("b:did_ftplugin")
   finish
 endif
 
-" Don't load another plugin for this buffer.
-let b:did_ftplugin = 1
+" Start with initex.  This will also define b:did_ftplugin and b:undo_ftplugin .
+source $VIMRUNTIME/ftplugin/initex.vim
 
 " Avoid problems if running in 'compatible' mode.
 let s:save_cpo = &cpo
 set cpo&vim
 
-" Set 'comments' to format dashed lists in comments
-setlocal com=sO:%\ -,mO:%\ \ ,eO:%%,:%
-
-" Set 'commentstring' to recognize the % comment character:
-" (Thanks to Ajit Thakkar.)
-setlocal cms=%%s
+let b:undo_ftplugin .= "| unlet! b:match_ignorecase b:match_skip b:match_words"
 
 " Allow "[d" to be used to find a macro definition:
-let &l:define='\\\([egx]\|char\|mathchar\|count\|dimen\|muskip\|skip\|toks\)\='
-	\ .	'def\|\\font\|\\\(future\)\=let'
-	\ . '\|\\new\(count\|dimen\|skip\|muskip\|box\|toks\|read\|write'
+let &l:define .= '\|\\new\(count\|dimen\|skip\|muskip\|box\|toks\|read\|write'
 	\ .	'\|fam\|insert\)'
 
-" Tell Vim to recognize \input bar :
-let &l:include = '\\input'
-setlocal suffixesadd=.tex
-
 " The following lines enable the macros/matchit.vim plugin for
 " extended matching with the % key.
 " There is no default meaning for \(...\) etc., but many users define one.
 if exists("loaded_matchit")
   let b:match_ignorecase = 0
     \ | let b:match_skip = 'r:\\\@<!\%(\\\\\)*%'
-    \ | let b:match_words = '(:),\[:],{:},\\(:\\),\\\[:\\],' .
-    \ '\\begin\s*\({\a\+\*\=}\):\\end\s*\1'
+    \ | let b:match_words = '(:),\[:],{:},\\(:\\),\\\[:\\],\\{:\\}'
 endif " exists("loaded_matchit")
 
 let &cpo = s:save_cpo
diff --git a/runtime/ftplugin/tex.vim b/runtime/ftplugin/tex.vim
index b392fa2..4089927 100644
--- a/runtime/ftplugin/tex.vim
+++ b/runtime/ftplugin/tex.vim
@@ -1,8 +1,8 @@
 " LaTeX filetype plugin
 " Language:     LaTeX (ft=tex)
 " Maintainer:   Benji Fisher, Ph.D. <benji@member.AMS.org>
-" Version:	1.3
-" Last Change:	Wed 22 Mar 2006 09:36:32 AM EST
+" Version:	1.4
+" Last Change:	Wed 19 Apr 2006
 "  URL:		http://www.vim.org/script.php?script_id=411
 
 " Only do this when not done yet for this buffer.
@@ -17,6 +17,8 @@
 let s:save_cpo = &cpo
 set cpo&vim
 
+let b:undo_ftplugin .= "| setl inex<"
+
 " Allow "[d" to be used to find a macro definition:
 " Recognize plain TeX \def as well as LaTeX \newcommand and \renewcommand .
 " I may as well add the AMS-LaTeX DeclareMathOperator as well.
@@ -33,9 +35,9 @@
 " The following lines enable the macros/matchit.vim plugin for
 " extended matching with the % key.
 " ftplugin/plaintex.vim already defines b:match_skip and b:match_ignorecase
-" and matches \(, \), \[, and \].
+" and matches \(, \), \[, \], \{, and \} .
 if exists("loaded_matchit")
-  let b:match_words .= '\\begin\s*\({\a\+\*\=}\):\\end\s*\1'
+  let b:match_words .= ',\\begin\s*\({\a\+\*\=}\):\\end\s*\1'
 endif " exists("loaded_matchit")
 
 let &cpo = s:save_cpo
diff --git a/runtime/lang/menu_zh_cn.utf-8.vim b/runtime/lang/menu_zh_cn.utf-8.vim
index 0dd446e..0df3242 100644
--- a/runtime/lang/menu_zh_cn.utf-8.vim
+++ b/runtime/lang/menu_zh_cn.utf-8.vim
@@ -1,6 +1,8 @@
-" Menu Translations:	Simplified Chinese (UTF-8)
-" Translated By:	Wang Jun <junw@turbolinux.com.cn>
-" Last Change:		Tue Sep  4 11:26:52 CST 2001
+" Menu Translations:	Simplified Chinese <i18n-translation@lists.linux.net.cn>
+" Translated By:	Yuheng Xie <elephant@linux.net.cn>
+" Last Change:		Tue Apr 18 22:00:00 2006
+
+" vim: ts=8 sw=8 noet
 
 " Quit when menu translations have already been done.
 if exists("did_menu_trans")
@@ -14,62 +16,68 @@
 menutrans &Help			帮助(&H)
 menutrans &Overview<Tab><F1>	预览(&O)<Tab><F1>
 menutrans &User\ Manual		用户手册(&U)
-menutrans &GUI			图形界面(&G)
-menutrans &How-to\ links	HOWTO文档\.\.\.(&H)
+menutrans &How-to\ links	How-to\ 连接(&H)
+menutrans &Find\.\.\.		查找(&F)\.\.\.
 menutrans &Credits		作者(&C)
 menutrans Co&pying		版权(&P)
 menutrans &Version		版本(&V)
-menutrans &About		关于\ Vim(&A)
+menutrans &Sponsor/Register	赞助/注册(&S)
+menutrans O&rphans		孤儿(&R)
+menutrans &Version		版本(&V)
+menutrans &About		关于(&A)
 
 " File menu
 menutrans &File				文件(&F)
 menutrans &Open\.\.\.<Tab>:e		打开(&O)\.\.\.<Tab>:e
-menutrans Sp&lit-Open\.\.\.<Tab>:sp	分割窗口并打开(&L)<Tab>:sp
+menutrans Sp&lit-Open\.\.\.<Tab>:sp	分割并打开(&L)\.\.\.<Tab>:sp
+menutrans Open\ Tab\.\.\.<Tab>:tabnew	打开标签\.\.\.<Tab>:tabnew
 menutrans &New<Tab>:enew		新建(&N)<Tab>:enew
 menutrans &Close<Tab>:close		关闭(&C)<Tab>:close
 menutrans &Save<Tab>:w			保存(&S)<Tab>:w
 menutrans Save\ &As\.\.\.<Tab>:sav	另存为(&A)\.\.\.<Tab>:sav
-menutrans Split\ &Diff\ with\.\.\.	分割比较(&Diff)\.\.\.
-menutrans Split\ Patched\ &By\.\.\.	分割打补丁(&Patch)\.\.\.
+menutrans Split\ &Diff\ with\.\.\.	分割比较(Diff)(&D)\.\.\.
+menutrans Split\ Patched\ &By\.\.\.	分割打补丁(Patch)(&B)\.\.\.
 menutrans &Print			打印(&P)
 menutrans Sa&ve-Exit<Tab>:wqa		保存并退出(&V)<Tab>:wqa
 menutrans E&xit<Tab>:qa			退出(&X)<Tab>:qa
 
 " Edit menu
 menutrans &Edit				编辑(&E)
-menutrans &Undo<Tab>u			恢复(&U)<Tab>u
+menutrans &Undo<Tab>u			撤销(&U)<Tab>u
 menutrans &Redo<Tab>^R			重做(&R)<Tab>^R
-menutrans Rep&eat<Tab>\.		重复上次动作(&E)<Tab>\.
+menutrans Rep&eat<Tab>\.		重复上次操作(&E)<Tab>\.
 menutrans Cu&t<Tab>"+x			剪切(&T)<Tab>"+x
 menutrans &Copy<Tab>"+y			复制(&C)<Tab>"+y
-menutrans &Paste<Tab>"+gP		粘帖(&P)<Tab>"+gP
-menutrans Put\ &Before<Tab>[p		贴到光标前(&B)<Tab>[p
-menutrans Put\ &After<Tab>]p		贴到光标后(&A)<Tab>]p
+menutrans &Paste<Tab>"+gP		粘贴(&P)<Tab>"+gP
+menutrans Put\ &Before<Tab>[p		粘贴到光标前(&B)<Tab>[p
+menutrans Put\ &After<Tab>]p		粘贴到光标后(&A)<Tab>]p
 menutrans &Delete<Tab>x			删除(&D)<Tab>x
-menutrans &Select\ all<Tab>ggVG		全选(&S)<Tab>ggvG
+menutrans &Select\ all<Tab>ggVG		全选(&S)<Tab>ggVG
 menutrans &Find\.\.\.			查找(&F)\.\.\.
-menutrans Find\ and\ Rep&lace\.\.\.	查找替换(&L)\.\.\.
+menutrans Find\ and\ Rep&lace\.\.\.	查找和替换(&L)\.\.\.
+menutrans &Find<Tab>/			查找(&F)<Tab>/
+menutrans Find\ and\ Rep&lace<Tab>:%s	查找和替换(&L)<Tab>:%s
 menutrans Settings\ &Window		设定窗口(&W)
+menutrans Startup\ &Settings		启动设定(&S)
 menutrans &Global\ Settings		全局设定(&G)
 
-" Build boolean options
-menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!	开/关增量查找模式<Tab>:set\ hls!
-menutrans Toggle\ &Ignore-case<Tab>:set\ ic!		开/关忽略大小写模式<Tab>:set\ ic!
-menutrans Toggle\ &Showmatch<Tab>:set\ sm!		开/关匹配显示<Tab>:set sm!
+" Edit/Global Settings
+menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!	开/关模式高亮(&H)<Tab>:set\ hls!
+menutrans Toggle\ &Ignore-case<Tab>:set\ ic!		开/关忽略大小写(&I)<Tab>:set\ ic!
+menutrans Toggle\ &Showmatch<Tab>:set\ sm!		开/关显示配对(&S)<Tab>:set\ sm!
 menutrans &Context\ lines			上下文行数(&C)
 
-menutrans &Virtual\ Edit			可视化编辑模式(&V)
+menutrans &Virtual\ Edit			虚拟编辑(&V)
 menutrans Never					从不
 menutrans Block\ Selection			块选择
 menutrans Insert\ mode				插入模式
-menutrans Block\ and\ Insert			块选择与插入模式
-menutrans Always				所有模式
+menutrans Block\ and\ Insert			块选择和插入模式
+menutrans Always				总是
 
-menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!	开/关插入模式<Tab>:set\ im!
-
-menutrans Search\ &Path\.\.\.			查找路径\.\.\.(&P)
-
-menutrans Ta&g\ Files\.\.\.			标签文件\.\.\.(&g)
+menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!	开/关插入模式(&M)<Tab>:set\ im!
+menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!	开/关\ Vi\ 兼容<Tab>:set\ cp!
+menutrans Search\ &Path\.\.\.			查找路径(&P)\.\.\.
+menutrans Ta&g\ Files\.\.\.			Tag\ 文件(&T)\.\.\.
 
 " GUI options
 menutrans Toggle\ &Toolbar			开/关工具条(&T)
@@ -77,87 +85,111 @@
 menutrans Toggle\ &Left\ Scrollbar		开/关左端滚动条(&L)
 menutrans Toggle\ &Right\ Scrollbar		开/关右端滚动条(&R)
 
-
 " Edit/File Settings
-menutrans F&ile\ Settings			文件设定(&i)
+menutrans F&ile\ Settings			文件设定(&I)
 
 " Boolean options
-menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!	开/关显示行号<Tab>:set\ nu!
-menutrans Toggle\ &List\ Mode<Tab>:set\ list!		开/关显示Tab<Tab>:set\ list!
-menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!		开/关自动折行<Tab>:set\ wrap!
-menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!	开/关词尾折行<Tab>:set\ lbr!
-menutrans Toggle\ &expand-tab<Tab>:set\ et!		开/关expand-tab<Tab>:set\ et!
-menutrans Toggle\ &auto-indent<Tab>:set\ ai!		开/关auto-indent<Tab>:set\ ai!
-menutrans Toggle\ &C-indenting<Tab>:set\ cin!		开/关C-indent<Tab>:set\ cin!
-
+menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!	开/关显示行号(&N)<Tab>:set\ nu!
+menutrans Toggle\ &List\ Mode<Tab>:set\ list!		开/关\ list\ 模式(&L)<Tab>:set\ list!
+menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!		开/关折行(&W)<Tab>:set\ wrap!
+menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!	开/关整词折行(&R)<Tab>:set\ lbr!
+menutrans Toggle\ &expand-tab<Tab>:set\ et!		开/关扩展\ tab(&E)<Tab>:set\ et!
+menutrans Toggle\ &auto-indent<Tab>:set\ ai!		开/关自动缩进(&A)<Tab>:set\ ai!
+menutrans Toggle\ &C-indenting<Tab>:set\ cin!		开/关\ C\ 缩进(&C)<Tab>:set\ cin!
 
 " other options
-menutrans &Shiftwidth			缩排宽度(&S)
-menutrans Soft\ &Tabstop		伪Tab宽度(&T)
-menutrans Te&xt\ Width\.\.\.		页面宽度(&x)\.\.\.
+menutrans &Shiftwidth			缩进宽度(&S)
+menutrans Soft\ &Tabstop		Soft\ Tab\ 宽度(&T)
+menutrans Te&xt\ Width\.\.\.		文本宽度(&X)\.\.\.
 menutrans &File\ Format\.\.\.		文件格式(&F)\.\.\.
-
-menutrans C&olor\ Scheme		调色板(&o)
-menutrans Select\ Fo&nt\.\.\.		选择字体(&n)\.\.\.
-
+menutrans C&olor\ Scheme		配色方案(&O)
+menutrans Select\ Fo&nt\.\.\.		选择字体(&N)\.\.\.
+menutrans &Keymap			Keymap(&K)
 
 " Programming menu
 menutrans &Tools			工具(&T)
-menutrans &Jump\ to\ this\ tag<Tab>g^]	检索光标处的标签关键字(tag)(&J)<Tab>g^]
-menutrans Jump\ &back<Tab>^T		跳回检索前的位置(&B)<Tab>^T
-menutrans Build\ &Tags\ File		建立标签索引文件\ Tags(&T)
-menutrans &Folding			Folding设定(&F)
-menutrans &Diff				比较(&D)
-menutrans &Make<Tab>:make		执行\ Make(&M)<Tab>:make
-menutrans &List\ Errors<Tab>:cl		列出编译错误(&E)<Tab>:cl
-menutrans L&ist\ Messages<Tab>:cl!	列出所有信息(&I)<Tab>:cl!
-menutrans &Next\ Error<Tab>:cn		下一个编译错误处(&N)<Tab>:cn
-menutrans &Previous\ Error<Tab>:cp	上一个编译错误处(&P)<Tab>:cp
-menutrans &Older\ List<Tab>:cold	旧错误列表(&O)<Tab>:cold
-menutrans N&ewer\ List<Tab>:cnew	新错误列表(&E)<Tab>:cnew
-menutrans Error\ &Window		错误信息窗口(&W)
-menutrans &Set\ Compiler		设置编译器(&S)
-menutrans &Convert\ to\ HEX<Tab>:%!xxd	转换成16进制<Tab>:%!xxd
-menutrans Conve&rt\ back<Tab>:%!xxd\ -r	从16进制转换回文字<Tab>:%!xxd\ -r
+menutrans &Jump\ to\ this\ tag<Tab>g^]	跳转到这个\ tag(&J)<Tab>g^]
+menutrans Jump\ &back<Tab>^T		跳转返回(&B)<Tab>^T
+menutrans Build\ &Tags\ File		建立 Tags 文件(&T)
+
+" Tools.Spelling Menu
+menutrans &Spelling				拼写检查(&S)
+menutrans &Spell\ Check\ On			打开拼写检查(&S)
+menutrans Spell\ Check\ &Off			关闭拼写检查(&O)
+menutrans To\ &Next\ error<Tab>]s		上一个错误(&N)<Tab>]s
+menutrans To\ &Previous\ error<Tab>[s		下一个错误(&P)<Tab>[s
+menutrans Suggest\ &Corrections<Tab>z=		修正建议(&C)<Tab>z=
+menutrans &Repeat\ correction<Tab>:spellrepall	重复修正(&R)<Tab>:spellrepall
+menutrans Set\ language\ to\ "en"		设定语言为\ "en"
+menutrans Set\ language\ to\ "en_au"		设定语言为\ "en_au"
+menutrans Set\ language\ to\ "en_ca"		设定语言为\ "en_ca"
+menutrans Set\ language\ to\ "en_gb"		设定语言为\ "en_gb"
+menutrans Set\ language\ to\ "en_nz"		设定语言为\ "en_nz"
+menutrans Set\ language\ to\ "en_us"		设定语言为\ "en_us"
+menutrans &Find\ More\ Languages		查找更多语言(&F)
 
 " Tools.Fold Menu
-menutrans &Enable/Disable\ folds<Tab>zi		使用/不使用Folding(&E)<Tab>zi
+" open close folds
+menutrans &Folding				折叠(&F)
+menutrans &Enable/Disable\ folds<Tab>zi		启用/禁用折叠(&E)<Tab>zi
 menutrans &View\ Cursor\ Line<Tab>zv		查看此行(&V)<Tab>zv
-menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx	只查看此行(&W)<Tab>zMzx
-menutrans C&lose\ more\ folds<Tab>zm		关闭Folds(&L)<Tab>zm
-menutrans &Close\ all\ folds<Tab>zM		关闭所有Folds(&C)<Tab>zM
-menutrans O&pen\ more\ folds<Tab>zr		展开Folds(&P)<Tab>zr
-menutrans &Open\ all\ folds<Tab>zR		展开所有Folds(&O)<Tab>zR
+menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx	仅查看此行(&W)<Tab>zMzx
+menutrans C&lose\ more\ folds<Tab>zm		关闭更多折叠(&L)<Tab>zm
+menutrans &Close\ all\ folds<Tab>zM		关闭所有折叠(&C)<Tab>zM
+menutrans O&pen\ more\ folds<Tab>zr		打开更多折叠(&P)<Tab>zr
+menutrans &Open\ all\ folds<Tab>zR		打开所有折叠(&O)<Tab>zR
 " fold method
-menutrans Fold\ Met&hod				Fold方式(&H)
-menutrans Create\ &Fold<Tab>zf			建立Fold(&F)<Tab>zf
-menutrans &Delete\ Fold<Tab>zd			删除Fold(&D)<Tab>zd
-menutrans Delete\ &All\ Folds<Tab>zD		删除所有Fold(&A)<Tab>zD
+menutrans Fold\ Met&hod			折叠方法(&H)
+menutrans M&anual			手工(&A)
+menutrans I&ndent			缩进(&N)
+menutrans E&xpression			表达式(&X)
+menutrans S&yntax			语法(&Y)
+menutrans &Diff				比较(Diff)(&D)
+menutrans Ma&rker			标记(&R)
+" create and delete folds
+menutrans Create\ &Fold<Tab>zf		创建折叠(&F)<Tab>zf
+menutrans &Delete\ Fold<Tab>zd		删除折叠(&D)<Tab>zd
+menutrans Delete\ &All\ Folds<Tab>zD	删除所有折叠(&A)<Tab>zD
 " moving around in folds
-menutrans Fold\ column\ &width			设定Fold栏宽(&W)
+menutrans Fold\ column\ &width		折叠栏宽度(&W)
 
 " Tools.Diff Menu
-menutrans &Update		更新(&U)
-menutrans &Get\ Block		取得不同部分(&G)
-menutrans &Put\ Block		将不同部分应用到对方(&P)
+menutrans &Diff				比较(Diff)(&D)
+menutrans &Update			更新(&U)
+menutrans &Get\ Block			得到块(&G)
+menutrans &Put\ Block			放置块(&P)
 
+menutrans &Make<Tab>:make		Make(&M)<Tab>:make
+menutrans &List\ Errors<Tab>:cl		列出错误(&L)<Tab>:cl
+menutrans L&ist\ Messages<Tab>:cl!	列出消息(&I)<Tab>:cl!
+menutrans &Next\ Error<Tab>:cn		下一个错误(&N)<Tab>:cn
+menutrans &Previous\ Error<Tab>:cp	上一个错误(&P)<Tab>:cp
+menutrans &Older\ List<Tab>:cold	更旧的错误列表(&O)<Tab>:cold
+menutrans N&ewer\ List<Tab>:cnew	更新的错误列表(&E)<Tab>:cnew
+menutrans Error\ &Window		错误窗口(&W)
+menutrans &Update<Tab>:cwin		更新(&U)<Tab>:cwin
+menutrans &Open<Tab>:copen		打开(&O)<Tab>:copen
+menutrans &Close<Tab>:cclose		关闭(&C)<Tab>:cclose
+menutrans &Convert\ to\ HEX<Tab>:%!xxd	转换成十六进制<Tab>:%!xxd
+menutrans Conve&rt\ back<Tab>:%!xxd\ -r	转换返回<Tab>:%!xxd\ -r
+menutrans Se&T\ Compiler		设定编译器(&T)
 
 " Names for buffer menu.
 menutrans &Buffers		缓冲区(&B)
-menutrans &Refresh\ menu	更新(&R)
+menutrans &Refresh\ menu	更新菜单(&R)
 menutrans &Delete		删除(&D)
-menutrans &Alternate		修改(&L)
+menutrans &Alternate		交替(&A)
 menutrans &Next			下一个(&N)
-menutrans &Previous		前一个(&P)
+menutrans &Previous		上一个(&P)
 
 " Window menu
 menutrans &Window			窗口(&W)
-menutrans &New<Tab>^Wn			新建窗口(&N)<Tab>^Wn
-menutrans S&plit<Tab>^Ws		分割窗口(&P)<Tab>^Ws
-menutrans Sp&lit\ To\ #<Tab>^W^^	分割到#(&L)<Tab>^W^^
+menutrans &New<Tab>^Wn			新建(&N)<Tab>^Wn
+menutrans S&plit<Tab>^Ws		分割(&P)<Tab>^Ws
+menutrans Sp&lit\ To\ #<Tab>^W^^	分割到\ #(&L)<Tab>^W^^
 menutrans Split\ &Vertically<Tab>^Wv	垂直分割(&V)<Tab>^Wv
-menutrans Split\ File\ E&xplorer	文件浏览器式分割(&X)
-menutrans &Close<Tab>^Wc		关闭窗口(&C)<Tab>^Wc
+menutrans Split\ File\ E&xplorer	分割文件浏览器(&X)
+menutrans &Close<Tab>^Wc		关闭(&C)<Tab>^Wc
 menutrans Close\ &Other(s)<Tab>^Wo	关闭其它窗口(&O)<Tab>^Wo
 menutrans Move\ &To			移动到(&T)
 menutrans &Top<Tab>^WK			顶端(&T)<Tab>^WK
@@ -166,13 +198,13 @@
 menutrans &Right\ side<Tab>^WL		右边(&R)<Tab>^WL
 " menutrans Ne&xt<Tab>^Ww		下一个(&X)<Tab>^Ww
 " menutrans P&revious<Tab>^WW		上一个(&R)<Tab>^WW
-menutrans Rotate\ &Up<Tab>^WR		上移窗口(&U)<Tab>^WR
-menutrans Rotate\ &Down<Tab>^Wr		下移窗口(&D)<Tab>^Wr
-menutrans &Equal\ Size<Tab>^W=		所有窗口等高(&E)<Tab>^W=
+menutrans Rotate\ &Up<Tab>^WR		向上轮换(&U)<Tab>^WR
+menutrans Rotate\ &Down<Tab>^Wr		向下轮换(&D)<Tab>^Wr
+menutrans &Equal\ Size<Tab>^W=		等大(&E)<Tab>^W=
 menutrans &Max\ Height<Tab>^W_		最大高度(&M)<Tab>^W
-menutrans M&in\ Height<Tab>^W1_		最小高度(&i)<Tab>^W1_
+menutrans M&in\ Height<Tab>^W1_		最小高度(&I)<Tab>^W1_
 menutrans Max\ &Width<Tab>^W\|		最大宽度(&W)<Tab>^W\|
-menutrans Min\ Widt&h<Tab>^W1\|		最小宽度(&h)<Tab>^W1\|
+menutrans Min\ Widt&h<Tab>^W1\|		最小宽度(&H)<Tab>^W1\|
 "
 " The popup menu
 menutrans &Undo			撤销(&U)
@@ -180,8 +212,10 @@
 menutrans &Copy			复制(&C)
 menutrans &Paste		粘帖(&P)
 menutrans &Delete		删除(&D)
-menutrans Select\ Blockwise	Blockwise选择
+menutrans Select\ Blockwise	选择块
 menutrans Select\ &Word		选择单词(&W)
+menutrans Select\ &Sentence	选择句子(&S)
+menutrans Select\ Pa&ragraph	选择段落(&R)
 menutrans Select\ &Line		选择行(&L)
 menutrans Select\ &Block	选择块(&B)
 menutrans Select\ &All		全选(&A)
@@ -196,35 +230,35 @@
     tmenu ToolBar.Save		保存当前文件
     tmenu ToolBar.SaveAll	保存全部文件
     tmenu ToolBar.Print		打印
-    tmenu ToolBar.Undo		撤销上次修改
-    tmenu ToolBar.Redo		重做上次撤销的动作
-    tmenu ToolBar.Cut		剪切至剪贴板
+    tmenu ToolBar.Undo		撤销
+    tmenu ToolBar.Redo		重做
+    tmenu ToolBar.Cut		剪切到剪贴板
     tmenu ToolBar.Copy		复制到剪贴板
-    tmenu ToolBar.Paste		由剪贴板粘帖
+    tmenu ToolBar.Paste		从剪贴板粘帖
     tmenu ToolBar.Find		查找...
     tmenu ToolBar.FindNext	查找下一个
     tmenu ToolBar.FindPrev	查找上一个
-    tmenu ToolBar.Replace	替换...
+    tmenu ToolBar.Replace	查找和替换...
     tmenu ToolBar.LoadSesn	加载会话
-    tmenu ToolBar.SaveSesn	保存当前的会话
-    tmenu ToolBar.RunScript	运行Vim脚本
-    tmenu ToolBar.Make		执行 Make
-    tmenu ToolBar.Shell		打开一个命令窗口
-    tmenu ToolBar.RunCtags	执行 ctags
-    tmenu ToolBar.TagJump	跳到当前光标位置的标签
+    tmenu ToolBar.SaveSesn	保存当前会话
+    tmenu ToolBar.RunScript	运行 Vim 脚本
+    tmenu ToolBar.Make		执行 Make (:make)
+    tmenu ToolBar.RunCtags	在当前目录建立 tags (!ctags -R .)
+    tmenu ToolBar.TagJump	跳转到光标位置的 tag
     tmenu ToolBar.Help		Vim 帮助
     tmenu ToolBar.FindHelp	查找 Vim 帮助
   endfun
 endif
 
 " Syntax menu
-menutrans &Syntax		语法(&S)
-menutrans Set\ '&syntax'\ only	只设定\ 'syntax'(&s)
-menutrans Set\ '&filetype'\ too	也设定\ 'filetype'(&f)
-menutrans &Off			关闭(&O)
-menutrans &Manual		手动设定(&M)
-menutrans A&utomatic		自动设定(&U)
-menutrans on/off\ for\ &This\ file	只对这个文件打开/关闭(&T)
-menutrans Co&lor\ test		色彩显示测试(&L)
-menutrans &Highlight\ test	语法效果测试(&H)
-menutrans &Convert\ to\ HTML	转换成\ HTML\ 格式(&C)
+menutrans &Syntax			语法(&S)
+menutrans &Manual			手工(&M)
+menutrans A&utomatic			自动(&U)
+menutrans on/off\ for\ &This\ file	仅对这个文件开/关(&T)
+menutrans &Show\ filetypes\ in\ menu	在菜单中显示文件类型(&S)
+menutrans &Off				关闭(&O)
+menutrans Co&lor\ test			色彩测试(&L)
+menutrans &Highlight\ test		高亮测试(&H)
+menutrans &Convert\ to\ HTML		转换成\ HTML(&C)
+menutrans Set\ '&syntax'\ only		仅设定\ 'syntax'(&S)
+menutrans Set\ '&filetype'\ too		也设定\ 'filetype'(&F)
diff --git a/runtime/syntax/2html.vim b/runtime/syntax/2html.vim
index b852f48..8c5b4cf 100644
--- a/runtime/syntax/2html.vim
+++ b/runtime/syntax/2html.vim
@@ -1,6 +1,6 @@
 " Vim syntax support file
 " Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2006 Apr 18
+" Last Change: 2006 Apr 19
 "	       (modified by David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>)
 "	       (XHTML support by Panagiotis Issaris <takis@lumumba.luc.ac.be>)
 
@@ -112,9 +112,10 @@
   " Replace the reserved html characters
   let formatted = substitute(substitute(substitute(substitute(substitute(formatted, '&', '\&amp;', 'g'), '<', '\&lt;', 'g'), '>', '\&gt;', 'g'), '"', '\&quot;', 'g'), "\x0c", '<hr class="PAGE-BREAK">', 'g')
   
-  " Replace double spaces
+  " Replace double spaces and leading spaces
   if ' ' != s:HtmlSpace 
     let formatted = substitute(formatted, '  ', s:HtmlSpace . s:HtmlSpace, 'g')
+    let formatted = substitute(formatted, '^ ', s:HtmlSpace, 'g')
   endif
 
   " Enclose in a span of class style_name
@@ -363,7 +364,7 @@
     let s:len = strlen(s:line)
 
     if s:numblines
-      let s:new = '<span class="lnr">' . s:new . '</span>'
+      let s:new = s:HtmlFormat(s:new, "lnr")
     endif
 
     " Get the diff attribute, if any.
@@ -419,7 +420,7 @@
   if exists("use_xhtml")
     exe "normal! a</p>\n</body>\n</html>\e"
   else
-    exe "normal! a\n</body>\n</html>\e"
+    exe "normal! a</body>\n</html>\e"
   endif
 else
   if exists("use_xhtml")
@@ -470,7 +471,7 @@
   if exists("html_use_css")
     execute "normal! A\n.lnr { " . s:CSS1(hlID("LineNr")) . "}\e"
   else
-    execute '%s+<span class="lnr">\([^<]*\)</span>+' . s:HtmlOpening(hlID("LineNr")) . '\1' . s:HtmlClosing(hlID("LineNr")) . '+g'
+    execute '%s+^<span class="lnr">\([^<]*\)</span>+' . s:HtmlOpening(hlID("LineNr")) . '\1' . s:HtmlClosing(hlID("LineNr")) . '+g'
   endif
 endif
 
diff --git a/runtime/syntax/coretex.vim b/runtime/syntax/coretex.vim
deleted file mode 100644
index adb77bb..0000000
--- a/runtime/syntax/coretex.vim
+++ /dev/null
@@ -1,377 +0,0 @@
-" Vim syntax file
-" Language:         TeX (core definition)
-" Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-03-26
-
-if exists("b:current_syntax")
-  finish
-endif
-
-let s:cpo_save = &cpo
-set cpo&vim
-
-" This follows the grouping (sort of) found at
-" http://www.tug.org/utilities/plain/cseq.html#top-fam
-
-syn keyword coretexTodo                         TODO FIXME XXX NOTE
-
-syn match coretexComment                        display contains=coretexTodo
-      \ '\\\@<!\%(\\\\\)*\zs%.*$'
-
-syn match   coretexDimension                    display contains=@NoSpell
-      \ '[+-]\=\s*\%(\d\+\%([.,]\d*\)\=\|[.,]\d\+\)\s*\%(true\)\=\s*\%(p[tc]\|in\|bp\|c[mc]\|m[mu]\|dd\|sp\|e[mx]\)\>'
-
-syn cluster coretexBox
-      \ contains=coretexBoxCommand,coretexBoxInternalQuantity,
-      \ coretexBoxParameterDimen,coretexBoxParameterInteger,
-      \ coretexBoxParameterToken
-
-syn cluster coretexCharacter
-      \ contains=coretexCharacterCommand,coretexCharacterInternalQuantity,
-      \ coretexCharacterParameterInteger
-
-syn cluster coretexDebugging
-      \ contains=coretexDebuggingCommand,coretexDebuggingParameterInteger,
-      \ coretexDebuggingParameterToken
-
-syn cluster coretexFileIO
-      \ contains=coretexFileIOCommand,coretexFileIOInternalQuantity,
-      \ coretexFileIOParameterToken
-
-syn cluster coretexFonts
-      \ contains=coretexFontsCommand,coretexFontsInternalQuantity
-
-syn cluster coretexGlue
-      \ contains=coretexGlueCommand,coretexGlueDerivedCommand
-
-syn cluster coretexHyphenation
-      \ contains=coretexHyphenationCommand,coretexHyphenationDerivedCommand,
-      \ coretexHyphenationInternalQuantity,coretexHyphenationParameterInteger
-
-syn cluster coretexInserts
-      \ contains=coretexInsertsCommand,coretexInsertsParameterDimen,
-      \ coretexInsertsParameterGlue,coretexInsertsParameterInteger
-
-syn cluster coretexJob
-      \ contains=coretexJobCommand,coretexJobInternalQuantity,
-      \ coretexJobParameterInteger
-
-syn cluster coretexKern
-      \ contains=coretexKernCommand,coretexKernInternalQuantity
-
-syn cluster coretexLogic
-      \ contains=coretexLogicCommand
-
-syn cluster coretexMacro
-      \ contains=coretexMacroCommand,coretexMacroDerivedCommand,
-      \ coretexMacroParameterInteger
-
-syn cluster coretexMarks
-      \ contains=coretexMarksCommand
-
-syn cluster coretexMath
-      \ contains=coretexMathCommand,coretexMathDerivedCommand,
-      \ coretexMathInternalQuantity,coretexMathParameterDimen,
-      \ coretexMathParameterGlue,coretexMathParameterInteger,
-      \ coretexMathParameterMuglue,coretexMathParameterToken
-
-syn cluster coretexPage
-      \ contains=coretexPageInternalQuantity,coretexPageParameterDimen,
-      \ coretexPageParameterGlue
-
-syn cluster coretexParagraph
-      \ contains=coretexParagraphCommand,coretexParagraphInternalQuantity,
-      \ coretexParagraphParameterDimen,coretexParagraphParameterGlue,
-      \ coretexParagraphParameterInteger,coretexParagraphParameterToken
-
-syn cluster coretexPenalties
-      \ contains=coretexPenaltiesCommand,coretexPenaltiesInternalQuantity,
-      \ coretexPenaltiesParameterInteger
-
-syn cluster coretexRegisters
-      \ contains=coretexRegistersCommand,coretexRegistersInternalQuantity
-
-syn cluster coretexTables
-      \ contains=coretexTablesCommand,coretexTablesParameterGlue,
-      \ coretexTablesParameterToken
-
-syn cluster coretexCommand
-      \ contains=coretexBoxCommand,coretexCharacterCommand,
-      \ coretexDebuggingCommand,coretexFileIOCommand,
-      \ coretexFontsCommand,coretexGlueCommand,
-      \ coretexHyphenationCommand,coretexInsertsCommand,
-      \ coretexJobCommand,coretexKernCommand,coretexLogicCommand,
-      \ coretexMacroCommand,coretexMarksCommand,coretexMathCommand,
-      \ coretexParagraphCommand,coretexPenaltiesCommand,coretexRegistersCommand,
-      \ coretexTablesCommand
-
-syn match   coretexBoxCommand                   display contains=@NoSpell
-      \ '\\\%([hv]\=box\|[cx]\=leaders\|copy\|[hv]rule\|lastbox\|setbox\|un[hv]\%(box\|copy\)\|vtop\)\>'
-syn match   coretexCharacterCommand             display contains=@NoSpell
-      \ '\\\%([] ]\|\%(^^M\|accent\|char\|\%(lower\|upper\)case\|number\|romannumeral\|string\)\>\)'
-syn match   coretexDebuggingCommand             display contains=@NoSpell
-      \ '\\\%(\%(batch\|\%(non\|error\)stop\|scroll\)mode\|\%(err\)\=message\|meaning\|show\%(box\%(breadth\|depth\)\=\|lists\|the\)\)\>'
-syn match   coretexFileIOCommand                display contains=@NoSpell
-      \ '\\\%(\%(close\|open\)\%(in\|out\)\|endinput\|immediate\|input\|read\|shipout\|special\|write\)\>'
-syn match   coretexFontsCommand                 display contains=@NoSpell
-      \ '\\\%(/\|fontname\)\>'
-syn match   coretexGlueCommand                  display contains=@NoSpell
-      \ '\\\%([hv]\|un\)skip\>'
-syn match   coretexHyphenationCommand           display contains=@NoSpell
-      \ '\\\%(discretionary\|hyphenation\|patterns\|setlanguage\)\>'
-syn match   coretexInsertsCommand               display contains=@NoSpell
-      \ '\\\%(insert\|split\%(bot\|first\)mark\|vsplit\)\>'
-syn match   coretexJobCommand                   display contains=@NoSpell
-      \ '\\\%(dump\|end\|jobname\)\>'
-syn match   coretexKernCommand                  display contains=@NoSpell
-      \ '\\\%(kern\|lower\|move\%(left\|right\)\|raise\|unkern\)\>'
-syn match   coretexLogicCommand                 display contains=@NoSpell
-      \ '\\\%(else\|fi\|if[a-zA-Z@]\+\|or\)\>'
-"      \ '\\\%(else\|fi\|if\%(case\|cat\|dim\|eof\|false\|[hv]box\|[hmv]mode\|inner\|num\|odd\|true\|void\|x\)\=\|or\)\>'
-syn match   coretexMacroCommand                 display contains=@NoSpell
-      \ '\\\%(after\%(assignment\|group\)\|\%(begin\|end\)group\|\%(end\)\=csname\|e\=def\|expandafter\|futurelet\|global\|let\|long\|noexpand\|outer\|relax\|the\)\>'
-syn match   coretexMarksCommand                 display contains=@NoSpell
-      \ '\\\%(bot\|first\|top\)\=mark\>'
-syn match   coretexMathCommand                  display contains=@NoSpell
-      \ '\\\%(abovewithdelims\|delimiter\|display\%(limits\|style\)\|l\=eqno\|left\|\%(no\)\=limits\|math\%(accent\|bin\|char\|choice\|close\|code\|inner\|op\|open\|ord\|punct\|rel\)\|mkern\|mskip\|muskipdef\|nonscript\|\%(over\|under\)line\|radical\|right\|\%(\%(script\)\{1,2}\|text\)style\|vcenter\)\>'
-syn match   coretexParagraphCommand             display contains=@NoSpell
-      \ '\\\%(ignorespaces\|indent\|no\%(boundary\|indent\)\|par\|vadjust\)\>'
-syn match   coretexPenaltiesCommand             display contains=@NoSpell
-      \ '\\\%(un\)\=penalty\>'
-syn match   coretexRegistersCommand             display contains=@NoSpell
-      \ '\\\%(advance\|\%(count\|dimen\|skip\|toks\)def\|divide\|multiply\)\>'
-syn match   coretexTablesCommand                display contains=@NoSpell
-      \ '\\\%(cr\|crcr\|[hv]align\|noalign\|omit\|span\)\>'
-
-syn cluster coretexDerivedCommand
-      \ contains=coretexGlueDerivedCommand,coretexHyphenationDerivedCommand,
-      \ coretexMacroDerivedCommand,coretexMathDerivedCommand
-
-syn match   coretexGlueDerivedCommand           display contains=@NoSpell
-      \ '\\\%([hv]fil\%(l\|neg\)\=\|[hv]ss\)\>'
-syn match   coretexHyphenationDerivedCommand    display contains=@NoSpell
-      \ '\\-'
-syn match   coretexMacroDerivedCommand          display contains=@NoSpell
-      \ '\\[gx]def\>'
-syn match   coretexMathDerivedCommand           display contains=@NoSpell
-      \ '\\\%(above\|atop\%(withdelims\)\=\|mathchardef\|over\|overwithdelims\)\>'
-
-syn cluster coretexInternalQuantity
-      \ contains=coretexBoxInternalQuantity,coretexCharacterInternalQuantity,
-      \ coretexFileIOInternalQuantity,coretexFontsInternalQuantity,
-      \ coretexHyphenationInternalQuantity,coretexJobInternalQuantity,
-      \ coretexKernInternalQuantity,coretexMathInternalQuantity,
-      \ coretexPageInternalQuantity,coretexParagraphInternalQuantity,
-      \ coretexPenaltiesInternalQuantity,coretexRegistersInternalQuantity
-
-syn match   coretexBoxInternalQuantity          display contains=@NoSpell
-      \ '\\\%(badness\|dp\|ht\|prevdepth\|wd\)\>'
-syn match   coretexCharacterInternalQuantity    display contains=@NoSpell
-      \ '\\\%(catcode\|chardef\|\%([ul]c\|sf\)code\)\>'
-syn match   coretexFileIOInternalQuantity       display contains=@NoSpell
-      \ '\\inputlineno\>'
-syn match   coretexFontsInternalQuantity        display contains=@NoSpell
-      \ '\\\%(font\%(dimen\)\=\|nullfont\)\>'
-syn match   coretexHyphenationInternalQuantity  display contains=@NoSpell
-      \ '\\hyphenchar\>'
-syn match   coretexJobInternalQuantity          display contains=@NoSpell
-      \ '\\deadcycles\>'
-syn match   coretexKernInternalQuantity         display contains=@NoSpell
-      \ '\\lastkern\>'
-syn match   coretexMathInternalQuantity         display contains=@NoSpell
-      \ '\\\%(delcode\|mathcode\|muskip\|\%(\%(script\)\{1,2}\|text\)font\|skewchar\)\>'
-syn match   coretexPageInternalQuantity         display contains=@NoSpell
-      \ '\\page\%(depth\|fil\{1,3}stretch\|goal\|shrink\|stretch\|total\)\>'
-syn match   coretexParagraphInternalQuantity    display contains=@NoSpell
-      \ '\\\%(prevgraf\|spacefactor\)\>'
-syn match   coretexPenaltiesInternalQuantity    display contains=@NoSpell
-      \ '\\lastpenalty\>'
-syn match   coretexRegistersInternalQuantity    display contains=@NoSpell
-      \ '\\\%(count\|dimen\|skip\|toks\)\d\+\>'
-
-syn cluster coretexParameterDimen
-      \ contains=coretexBoxParameterDimen,coretexInsertsParameterDimen,
-      \ coretexMathParameterDimen,coretexPageParameterDimen,
-      \ coretexParagraphParameterDimen
-
-syn match   coretexBoxParameterDimen            display contains=@NoSpell
-      \ '\\\%(boxmaxdepth\|[hv]fuzz\|overfullrule\)\>'
-syn match   coretexInsertsParameterDimen        display contains=@NoSpell
-      \ '\\splitmaxdepth\>'
-syn match   coretexMathParameterDimen           display contains=@NoSpell
-      \ '\\\%(delimitershortfall\|display\%(indent\|width\)\|mathsurround\|nulldelimiterspace\|predisplaysize\|scriptspace\)\>'
-syn match   coretexPageParameterDimen           display contains=@NoSpell
-      \ '\\\%([hv]offset\|maxdepth\|vsize\)\>'
-syn match   coretexParagraphParameterDimen      display contains=@NoSpell
-      \ '\\\%(emergencystretch\|\%(hang\|par\)indent\|hsize\|lineskiplimit\)\>'
-
-syn cluster coretexParameterGlue
-      \ contains=coretexInsertsParameterGlue,coretexMathParameterGlue,
-      \ coretexPageParameterGlue,coretexParagraphParameterGlue,
-      \ coretexTablesParameterGlue
-
-syn match   coretexInsertsParameterGlue         display contains=@NoSpell
-      \ '\\splittopskip\>'
-syn match   coretexMathParameterGlue            display contains=@NoSpell
-      \ '\\\%(above\|below\)display\%(short\)\=skip\>'
-syn match   coretexPageParameterGlue            display contains=@NoSpell
-      \ '\\topskip\>'
-syn match   coretexParagraphParameterGlue       display contains=@NoSpell
-      \ '\\\%(baseline\|left\|line\|par\%(fill\)\=\|right\|x\=space\)skip\>'
-syn match   coretexTablesParameterGlue          display contains=@NoSpell
-      \ '\\tabskip\>'
-
-syn cluster coretexParameterInteger
-      \ contains=coretexBoxParameterInteger,coretexCharacterParameterInteger,
-      \ coretexDebuggingParameterInteger,coretexHyphenationParameterInteger,
-      \ coretexInsertsParameterInteger,coretexJobParameterInteger,
-      \ coretexMacroParameterInteger,coretexMathParameterInteger,
-      \ coretexParagraphParameterInteger,coretexPenaltiesParameterInteger,
-
-syn match   coretexBoxParameterInteger          display contains=@NoSpell
-      \ '\\[hv]badness\>'
-syn match   coretexCharacterParameterInteger    display contains=@NoSpell
-      \ '\\\%(\%(endline\|escape\|newline\)char\)\>'
-syn match   coretexDebuggingParameterInteger    display contains=@NoSpell
-      \ '\\\%(errorcontextlines\|pausing\|tracing\%(commands\|lostchars\|macros\|online\|output\|pages\|paragraphs\|restores|stats\)\)\>'
-syn match   coretexHyphenationParameterInteger  display contains=@NoSpell
-      \ '\\\%(defaulthyphenchar\|language\|\%(left\|right\)hyphenmin\|uchyph\)\>'
-syn match   coretexInsertsParameterInteger      display contains=@NoSpell
-      \ '\\\%(holdinginserts\)\>'
-syn match   coretexJobParameterInteger          display contains=@NoSpell
-      \ '\\\%(day\|mag\|maxdeadcycles\|month\|time\|year\)\>'
-syn match   coretexMacroParameterInteger        display contains=@NoSpell
-      \ '\\globaldefs\>'
-syn match   coretexMathParameterInteger         display contains=@NoSpell
-      \ '\\\%(binoppenalty\|defaultskewchar\|delimiterfactor\|displaywidowpenalty\|fam\|\%(post\|pre\)displaypenalty\|relpenalty\)\>'
-syn match   coretexParagraphParameterInteger    display contains=@NoSpell
-      \ '\\\%(\%(adj\|\%(double\|final\)hyphen\)demerits\|looseness\|\%(pre\)\=tolerance\)\>'
-syn match   coretexPenaltiesParameterInteger    display contains=@NoSpell
-      \ '\\\%(broken\|club\|exhyphen\|floating\|hyphen\|interline\|line\|output\|widow\)penalty\>'
-
-syn cluster coretexParameterMuglue
-      \ contains=coretexMathParameterMuglue
-
-syn match   coretexMathParameterMuglue          display contains=@NoSpell
-      \ '\\\%(med\|thick\|thin\)muskip\>'
-
-syn cluster coretexParameterDimen
-      \ contains=coretexBoxParameterToken,coretexDebuggingParameterToken,
-      \ coretexFileIOParameterToken,coretexMathParameterToken,
-      \ coretexParagraphParameterToken,coretexTablesParameterToken
-
-syn match   coretexBoxParameterToken            display contains=@NoSpell
-      \ '\\every[hv]box\>'
-syn match   coretexDebuggingParameterToken      display contains=@NoSpell
-      \ '\\errhelp\>'
-syn match   coretexFileIOParameterToken         display contains=@NoSpell
-      \ '\\output\>'
-syn match   coretexMathParameterToken           display contains=@NoSpell
-      \ '\\every\%(display\|math\)\>'
-syn match   coretexParagraphParameterToken      display contains=@NoSpell
-      \ '\\everypar\>'
-syn match   coretexTablesParameterToken         display contains=@NoSpell
-      \ '\\everycr\>'
-
-
-hi def link coretexCharacter                    Character
-hi def link coretexNumber                       Number
-
-hi def link coretexIdentifier                   Identifier
-
-hi def link coretexStatement                    Statement
-hi def link coretexConditional                  Conditional
-
-hi def link coretexPreProc                      PreProc
-hi def link coretexMacro                        Macro
-
-hi def link coretexType                         Type
-
-hi def link coretexDebug                        Debug
-
-hi def link coretexTodo                         Todo
-hi def link coretexComment                      Comment
-hi def link coretexDimension                    coretexNumber
-
-hi def link coretexCommand                      coretexStatement
-hi def link coretexBoxCommand                   coretexCommand
-hi def link coretexCharacterCommand             coretexCharacter
-hi def link coretexDebuggingCommand             coretexDebug
-hi def link coretexFileIOCommand                coretexCommand
-hi def link coretexFontsCommand                 coretexType
-hi def link coretexGlueCommand                  coretexCommand
-hi def link coretexHyphenationCommand           coretexCommand
-hi def link coretexInsertsCommand               coretexCommand
-hi def link coretexJobCommand                   coretexPreProc
-hi def link coretexKernCommand                  coretexCommand
-hi def link coretexLogicCommand                 coretexConditional
-hi def link coretexMacroCommand                 coretexMacro
-hi def link coretexMarksCommand                 coretexCommand
-hi def link coretexMathCommand                  coretexCommand
-hi def link coretexParagraphCommand             coretexCommand
-hi def link coretexPenaltiesCommand             coretexCommand
-hi def link coretexRegistersCommand             coretexCommand
-hi def link coretexTablesCommand                coretexCommand
-
-hi def link coretexDerivedCommand               coretexStatement
-hi def link coretexGlueDerivedCommand           coretexDerivedCommand
-hi def link coretexHyphenationDerivedCommand    coretexDerivedCommand
-hi def link coretexMacroDerivedCommand          coretexDerivedCommand
-hi def link coretexMathDerivedCommand           coretexDerivedCommand
-
-hi def link coretexInternalQuantity             coretexIdentifier
-hi def link coretexBoxInternalQuantity          coretexInternalQuantity
-hi def link coretexCharacterInternalQuantity    coretexInternalQuantity
-hi def link coretexFileIOInternalQuantity       coretexInternalQuantity
-hi def link coretexFontsInternalQuantity        coretexInternalQuantity
-hi def link coretexHyphenationInternalQuantity  coretexInternalQuantity
-hi def link coretexJobInternalQuantity          coretexInternalQuantity
-hi def link coretexKernInternalQuantity         coretexInternalQuantity
-hi def link coretexMathInternalQuantity         coretexInternalQuantity
-hi def link coretexPageInternalQuantity         coretexInternalQuantity
-hi def link coretexParagraphInternalQuantity    coretexInternalQuantity
-hi def link coretexPenaltiesInternalQuantity    coretexInternalQuantity
-hi def link coretexRegistersInternalQuantity    coretexInternalQuantity
-
-hi def link coretexParameterDimen               coretexNumber
-hi def link coretexBoxParameterDimen            coretexParameterDimen
-hi def link coretexInsertsParameterDimen        coretexParameterDimen
-hi def link coretexMathParameterDimen           coretexParameterDimen
-hi def link coretexPageParameterDimen           coretexParameterDimen
-hi def link coretexParagraphParameterDimen      coretexParameterDimen
-
-hi def link coretexParameterGlue                coretexNumber
-hi def link coretexInsertsParameterGlue         coretexParameterGlue
-hi def link coretexMathParameterGlue            coretexParameterGlue
-hi def link coretexPageParameterGlue            coretexParameterGlue
-hi def link coretexParagraphParameterGlue       coretexParameterGlue
-hi def link coretexTablesParameterGlue          coretexParameterGlue
-
-hi def link coretexParameterInteger             coretexNumber
-hi def link coretexBoxParameterInteger          coretexParameterInteger
-hi def link coretexCharacterParameterInteger    coretexParameterInteger
-hi def link coretexDebuggingParameterInteger    coretexParameterInteger
-hi def link coretexHyphenationParameterInteger  coretexParameterInteger
-hi def link coretexInsertsParameterInteger      coretexParameterInteger
-hi def link coretexJobParameterInteger          coretexParameterInteger
-hi def link coretexMacroParameterInteger        coretexParameterInteger
-hi def link coretexMathParameterInteger         coretexParameterInteger
-hi def link coretexParagraphParameterInteger    coretexParameterInteger
-hi def link coretexPenaltiesParameterInteger    coretexParameterInteger
-
-hi def link coretexParameterMuglue              coretexNumber
-hi def link coretexMathParameterMuglue          coretexParameterMuglue
-
-hi def link coretexParameterToken               coretexIdentifier
-hi def link coretexBoxParameterToken            coretexParameterToken
-hi def link coretexDebuggingParameterToken      coretexParameterToken
-hi def link coretexFileIOParameterToken         coretexParameterToken
-hi def link coretexMathParameterToken           coretexParameterToken
-hi def link coretexParagraphParameterToken      coretexParameterToken
-hi def link coretexTablesParameterToken         coretexParameterToken
-
-let b:current_syntax = "coretex"
-
-let &cpo = s:cpo_save
-unlet s:cpo_save
-
diff --git a/runtime/syntax/initex.vim b/runtime/syntax/initex.vim
new file mode 100644
index 0000000..8f3462f
--- /dev/null
+++ b/runtime/syntax/initex.vim
@@ -0,0 +1,376 @@
+" Vim syntax file
+" Language:         TeX (core definition)
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
+
+if exists("b:current_syntax")
+  finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+" This follows the grouping (sort of) found at
+" http://www.tug.org/utilities/plain/cseq.html#top-fam
+
+syn keyword initexTodo                          TODO FIXME XXX NOTE
+
+syn match initexComment                         display contains=initexTodo
+      \ '\\\@<!\%(\\\\\)*\zs%.*$'
+
+syn match   initexDimension                     display contains=@NoSpell
+      \ '[+-]\=\s*\%(\d\+\%([.,]\d*\)\=\|[.,]\d\+\)\s*\%(true\)\=\s*\%(p[tc]\|in\|bp\|c[mc]\|m[mu]\|dd\|sp\|e[mx]\)\>'
+
+syn cluster initexBox
+      \ contains=initexBoxCommand,initexBoxInternalQuantity,
+      \ initexBoxParameterDimen,initexBoxParameterInteger,
+      \ initexBoxParameterToken
+
+syn cluster initexCharacter
+      \ contains=initexCharacterCommand,initexCharacterInternalQuantity,
+      \ initexCharacterParameterInteger
+
+syn cluster initexDebugging
+      \ contains=initexDebuggingCommand,initexDebuggingParameterInteger,
+      \ initexDebuggingParameterToken
+
+syn cluster initexFileIO
+      \ contains=initexFileIOCommand,initexFileIOInternalQuantity,
+      \ initexFileIOParameterToken
+
+syn cluster initexFonts
+      \ contains=initexFontsCommand,initexFontsInternalQuantity
+
+syn cluster initexGlue
+      \ contains=initexGlueCommand,initexGlueDerivedCommand
+
+syn cluster initexHyphenation
+      \ contains=initexHyphenationCommand,initexHyphenationDerivedCommand,
+      \ initexHyphenationInternalQuantity,initexHyphenationParameterInteger
+
+syn cluster initexInserts
+      \ contains=initexInsertsCommand,initexInsertsParameterDimen,
+      \ initexInsertsParameterGlue,initexInsertsParameterInteger
+
+syn cluster initexJob
+      \ contains=initexJobCommand,initexJobInternalQuantity,
+      \ initexJobParameterInteger
+
+syn cluster initexKern
+      \ contains=initexKernCommand,initexKernInternalQuantity
+
+syn cluster initexLogic
+      \ contains=initexLogicCommand
+
+syn cluster initexMacro
+      \ contains=initexMacroCommand,initexMacroDerivedCommand,
+      \ initexMacroParameterInteger
+
+syn cluster initexMarks
+      \ contains=initexMarksCommand
+
+syn cluster initexMath
+      \ contains=initexMathCommand,initexMathDerivedCommand,
+      \ initexMathInternalQuantity,initexMathParameterDimen,
+      \ initexMathParameterGlue,initexMathParameterInteger,
+      \ initexMathParameterMuglue,initexMathParameterToken
+
+syn cluster initexPage
+      \ contains=initexPageInternalQuantity,initexPageParameterDimen,
+      \ initexPageParameterGlue
+
+syn cluster initexParagraph
+      \ contains=initexParagraphCommand,initexParagraphInternalQuantity,
+      \ initexParagraphParameterDimen,initexParagraphParameterGlue,
+      \ initexParagraphParameterInteger,initexParagraphParameterToken
+
+syn cluster initexPenalties
+      \ contains=initexPenaltiesCommand,initexPenaltiesInternalQuantity,
+      \ initexPenaltiesParameterInteger
+
+syn cluster initexRegisters
+      \ contains=initexRegistersCommand,initexRegistersInternalQuantity
+
+syn cluster initexTables
+      \ contains=initexTablesCommand,initexTablesParameterGlue,
+      \ initexTablesParameterToken
+
+syn cluster initexCommand
+      \ contains=initexBoxCommand,initexCharacterCommand,
+      \ initexDebuggingCommand,initexFileIOCommand,
+      \ initexFontsCommand,initexGlueCommand,
+      \ initexHyphenationCommand,initexInsertsCommand,
+      \ initexJobCommand,initexKernCommand,initexLogicCommand,
+      \ initexMacroCommand,initexMarksCommand,initexMathCommand,
+      \ initexParagraphCommand,initexPenaltiesCommand,initexRegistersCommand,
+      \ initexTablesCommand
+
+syn match   initexBoxCommand                    display contains=@NoSpell
+      \ '\\\%([hv]\=box\|[cx]\=leaders\|copy\|[hv]rule\|lastbox\|setbox\|un[hv]\%(box\|copy\)\|vtop\)\>'
+syn match   initexCharacterCommand              display contains=@NoSpell
+      \ '\\\%([] ]\|\%(^^M\|accent\|char\|\%(lower\|upper\)case\|number\|romannumeral\|string\)\>\)'
+syn match   initexDebuggingCommand              display contains=@NoSpell
+      \ '\\\%(\%(batch\|\%(non\|error\)stop\|scroll\)mode\|\%(err\)\=message\|meaning\|show\%(box\%(breadth\|depth\)\=\|lists\|the\)\)\>'
+syn match   initexFileIOCommand                 display contains=@NoSpell
+      \ '\\\%(\%(close\|open\)\%(in\|out\)\|endinput\|immediate\|input\|read\|shipout\|special\|write\)\>'
+syn match   initexFontsCommand                  display contains=@NoSpell
+      \ '\\\%(/\|fontname\)\>'
+syn match   initexGlueCommand                   display contains=@NoSpell
+      \ '\\\%([hv]\|un\)skip\>'
+syn match   initexHyphenationCommand            display contains=@NoSpell
+      \ '\\\%(discretionary\|hyphenation\|patterns\|setlanguage\)\>'
+syn match   initexInsertsCommand                display contains=@NoSpell
+      \ '\\\%(insert\|split\%(bot\|first\)mark\|vsplit\)\>'
+syn match   initexJobCommand                    display contains=@NoSpell
+      \ '\\\%(dump\|end\|jobname\)\>'
+syn match   initexKernCommand                   display contains=@NoSpell
+      \ '\\\%(kern\|lower\|move\%(left\|right\)\|raise\|unkern\)\>'
+syn match   initexLogicCommand                  display contains=@NoSpell
+      \ '\\\%(else\|fi\|if[a-zA-Z@]\+\|or\)\>'
+"      \ '\\\%(else\|fi\|if\%(case\|cat\|dim\|eof\|false\|[hv]box\|[hmv]mode\|inner\|num\|odd\|true\|void\|x\)\=\|or\)\>'
+syn match   initexMacroCommand                  display contains=@NoSpell
+      \ '\\\%(after\%(assignment\|group\)\|\%(begin\|end\)group\|\%(end\)\=csname\|e\=def\|expandafter\|futurelet\|global\|let\|long\|noexpand\|outer\|relax\|the\)\>'
+syn match   initexMarksCommand                  display contains=@NoSpell
+      \ '\\\%(bot\|first\|top\)\=mark\>'
+syn match   initexMathCommand                   display contains=@NoSpell
+      \ '\\\%(abovewithdelims\|delimiter\|display\%(limits\|style\)\|l\=eqno\|left\|\%(no\)\=limits\|math\%(accent\|bin\|char\|choice\|close\|code\|inner\|op\|open\|ord\|punct\|rel\)\|mkern\|mskip\|muskipdef\|nonscript\|\%(over\|under\)line\|radical\|right\|\%(\%(script\)\{1,2}\|text\)style\|vcenter\)\>'
+syn match   initexParagraphCommand              display contains=@NoSpell
+      \ '\\\%(ignorespaces\|indent\|no\%(boundary\|indent\)\|par\|vadjust\)\>'
+syn match   initexPenaltiesCommand              display contains=@NoSpell
+      \ '\\\%(un\)\=penalty\>'
+syn match   initexRegistersCommand              display contains=@NoSpell
+      \ '\\\%(advance\|\%(count\|dimen\|skip\|toks\)def\|divide\|multiply\)\>'
+syn match   initexTablesCommand                 display contains=@NoSpell
+      \ '\\\%(cr\|crcr\|[hv]align\|noalign\|omit\|span\)\>'
+
+syn cluster initexDerivedCommand
+      \ contains=initexGlueDerivedCommand,initexHyphenationDerivedCommand,
+      \ initexMacroDerivedCommand,initexMathDerivedCommand
+
+syn match   initexGlueDerivedCommand            display contains=@NoSpell
+      \ '\\\%([hv]fil\%(l\|neg\)\=\|[hv]ss\)\>'
+syn match   initexHyphenationDerivedCommand     display contains=@NoSpell
+      \ '\\-'
+syn match   initexMacroDerivedCommand           display contains=@NoSpell
+      \ '\\[gx]def\>'
+syn match   initexMathDerivedCommand            display contains=@NoSpell
+      \ '\\\%(above\|atop\%(withdelims\)\=\|mathchardef\|over\|overwithdelims\)\>'
+
+syn cluster initexInternalQuantity
+      \ contains=initexBoxInternalQuantity,initexCharacterInternalQuantity,
+      \ initexFileIOInternalQuantity,initexFontsInternalQuantity,
+      \ initexHyphenationInternalQuantity,initexJobInternalQuantity,
+      \ initexKernInternalQuantity,initexMathInternalQuantity,
+      \ initexPageInternalQuantity,initexParagraphInternalQuantity,
+      \ initexPenaltiesInternalQuantity,initexRegistersInternalQuantity
+
+syn match   initexBoxInternalQuantity           display contains=@NoSpell
+      \ '\\\%(badness\|dp\|ht\|prevdepth\|wd\)\>'
+syn match   initexCharacterInternalQuantity     display contains=@NoSpell
+      \ '\\\%(catcode\|chardef\|\%([ul]c\|sf\)code\)\>'
+syn match   initexFileIOInternalQuantity        display contains=@NoSpell
+      \ '\\inputlineno\>'
+syn match   initexFontsInternalQuantity         display contains=@NoSpell
+      \ '\\\%(font\%(dimen\)\=\|nullfont\)\>'
+syn match   initexHyphenationInternalQuantity   display contains=@NoSpell
+      \ '\\hyphenchar\>'
+syn match   initexJobInternalQuantity           display contains=@NoSpell
+      \ '\\deadcycles\>'
+syn match   initexKernInternalQuantity          display contains=@NoSpell
+      \ '\\lastkern\>'
+syn match   initexMathInternalQuantity          display contains=@NoSpell
+      \ '\\\%(delcode\|mathcode\|muskip\|\%(\%(script\)\{1,2}\|text\)font\|skewchar\)\>'
+syn match   initexPageInternalQuantity          display contains=@NoSpell
+      \ '\\page\%(depth\|fil\{1,3}stretch\|goal\|shrink\|stretch\|total\)\>'
+syn match   initexParagraphInternalQuantity     display contains=@NoSpell
+      \ '\\\%(prevgraf\|spacefactor\)\>'
+syn match   initexPenaltiesInternalQuantity     display contains=@NoSpell
+      \ '\\lastpenalty\>'
+syn match   initexRegistersInternalQuantity     display contains=@NoSpell
+      \ '\\\%(count\|dimen\|skip\|toks\)\d\+\>'
+
+syn cluster initexParameterDimen
+      \ contains=initexBoxParameterDimen,initexInsertsParameterDimen,
+      \ initexMathParameterDimen,initexPageParameterDimen,
+      \ initexParagraphParameterDimen
+
+syn match   initexBoxParameterDimen             display contains=@NoSpell
+      \ '\\\%(boxmaxdepth\|[hv]fuzz\|overfullrule\)\>'
+syn match   initexInsertsParameterDimen         display contains=@NoSpell
+      \ '\\splitmaxdepth\>'
+syn match   initexMathParameterDimen            display contains=@NoSpell
+      \ '\\\%(delimitershortfall\|display\%(indent\|width\)\|mathsurround\|nulldelimiterspace\|predisplaysize\|scriptspace\)\>'
+syn match   initexPageParameterDimen            display contains=@NoSpell
+      \ '\\\%([hv]offset\|maxdepth\|vsize\)\>'
+syn match   initexParagraphParameterDimen       display contains=@NoSpell
+      \ '\\\%(emergencystretch\|\%(hang\|par\)indent\|hsize\|lineskiplimit\)\>'
+
+syn cluster initexParameterGlue
+      \ contains=initexInsertsParameterGlue,initexMathParameterGlue,
+      \ initexPageParameterGlue,initexParagraphParameterGlue,
+      \ initexTablesParameterGlue
+
+syn match   initexInsertsParameterGlue          display contains=@NoSpell
+      \ '\\splittopskip\>'
+syn match   initexMathParameterGlue             display contains=@NoSpell
+      \ '\\\%(above\|below\)display\%(short\)\=skip\>'
+syn match   initexPageParameterGlue             display contains=@NoSpell
+      \ '\\topskip\>'
+syn match   initexParagraphParameterGlue        display contains=@NoSpell
+      \ '\\\%(baseline\|left\|line\|par\%(fill\)\=\|right\|x\=space\)skip\>'
+syn match   initexTablesParameterGlue           display contains=@NoSpell
+      \ '\\tabskip\>'
+
+syn cluster initexParameterInteger
+      \ contains=initexBoxParameterInteger,initexCharacterParameterInteger,
+      \ initexDebuggingParameterInteger,initexHyphenationParameterInteger,
+      \ initexInsertsParameterInteger,initexJobParameterInteger,
+      \ initexMacroParameterInteger,initexMathParameterInteger,
+      \ initexParagraphParameterInteger,initexPenaltiesParameterInteger,
+
+syn match   initexBoxParameterInteger           display contains=@NoSpell
+      \ '\\[hv]badness\>'
+syn match   initexCharacterParameterInteger     display contains=@NoSpell
+      \ '\\\%(\%(endline\|escape\|newline\)char\)\>'
+syn match   initexDebuggingParameterInteger     display contains=@NoSpell
+      \ '\\\%(errorcontextlines\|pausing\|tracing\%(commands\|lostchars\|macros\|online\|output\|pages\|paragraphs\|restores|stats\)\)\>'
+syn match   initexHyphenationParameterInteger   display contains=@NoSpell
+      \ '\\\%(defaulthyphenchar\|language\|\%(left\|right\)hyphenmin\|uchyph\)\>'
+syn match   initexInsertsParameterInteger       display contains=@NoSpell
+      \ '\\\%(holdinginserts\)\>'
+syn match   initexJobParameterInteger           display contains=@NoSpell
+      \ '\\\%(day\|mag\|maxdeadcycles\|month\|time\|year\)\>'
+syn match   initexMacroParameterInteger         display contains=@NoSpell
+      \ '\\globaldefs\>'
+syn match   initexMathParameterInteger          display contains=@NoSpell
+      \ '\\\%(binoppenalty\|defaultskewchar\|delimiterfactor\|displaywidowpenalty\|fam\|\%(post\|pre\)displaypenalty\|relpenalty\)\>'
+syn match   initexParagraphParameterInteger     display contains=@NoSpell
+      \ '\\\%(\%(adj\|\%(double\|final\)hyphen\)demerits\|looseness\|\%(pre\)\=tolerance\)\>'
+syn match   initexPenaltiesParameterInteger     display contains=@NoSpell
+      \ '\\\%(broken\|club\|exhyphen\|floating\|hyphen\|interline\|line\|output\|widow\)penalty\>'
+
+syn cluster initexParameterMuglue
+      \ contains=initexMathParameterMuglue
+
+syn match   initexMathParameterMuglue           display contains=@NoSpell
+      \ '\\\%(med\|thick\|thin\)muskip\>'
+
+syn cluster initexParameterDimen
+      \ contains=initexBoxParameterToken,initexDebuggingParameterToken,
+      \ initexFileIOParameterToken,initexMathParameterToken,
+      \ initexParagraphParameterToken,initexTablesParameterToken
+
+syn match   initexBoxParameterToken             display contains=@NoSpell
+      \ '\\every[hv]box\>'
+syn match   initexDebuggingParameterToken       display contains=@NoSpell
+      \ '\\errhelp\>'
+syn match   initexFileIOParameterToken          display contains=@NoSpell
+      \ '\\output\>'
+syn match   initexMathParameterToken            display contains=@NoSpell
+      \ '\\every\%(display\|math\)\>'
+syn match   initexParagraphParameterToken       display contains=@NoSpell
+      \ '\\everypar\>'
+syn match   initexTablesParameterToken          display contains=@NoSpell
+      \ '\\everycr\>'
+
+
+hi def link initexCharacter                     Character
+hi def link initexNumber                        Number
+
+hi def link initexIdentifier                    Identifier
+
+hi def link initexStatement                     Statement
+hi def link initexConditional                   Conditional
+
+hi def link initexPreProc                       PreProc
+hi def link initexMacro                         Macro
+
+hi def link initexType                          Type
+
+hi def link initexDebug                         Debug
+
+hi def link initexTodo                          Todo
+hi def link initexComment                       Comment
+hi def link initexDimension                     initexNumber
+
+hi def link initexCommand                       initexStatement
+hi def link initexBoxCommand                    initexCommand
+hi def link initexCharacterCommand              initexCharacter
+hi def link initexDebuggingCommand              initexDebug
+hi def link initexFileIOCommand                 initexCommand
+hi def link initexFontsCommand                  initexType
+hi def link initexGlueCommand                   initexCommand
+hi def link initexHyphenationCommand            initexCommand
+hi def link initexInsertsCommand                initexCommand
+hi def link initexJobCommand                    initexPreProc
+hi def link initexKernCommand                   initexCommand
+hi def link initexLogicCommand                  initexConditional
+hi def link initexMacroCommand                  initexMacro
+hi def link initexMarksCommand                  initexCommand
+hi def link initexMathCommand                   initexCommand
+hi def link initexParagraphCommand              initexCommand
+hi def link initexPenaltiesCommand              initexCommand
+hi def link initexRegistersCommand              initexCommand
+hi def link initexTablesCommand                 initexCommand
+
+hi def link initexDerivedCommand                initexStatement
+hi def link initexGlueDerivedCommand            initexDerivedCommand
+hi def link initexHyphenationDerivedCommand     initexDerivedCommand
+hi def link initexMacroDerivedCommand           initexDerivedCommand
+hi def link initexMathDerivedCommand            initexDerivedCommand
+
+hi def link initexInternalQuantity              initexIdentifier
+hi def link initexBoxInternalQuantity           initexInternalQuantity
+hi def link initexCharacterInternalQuantity     initexInternalQuantity
+hi def link initexFileIOInternalQuantity        initexInternalQuantity
+hi def link initexFontsInternalQuantity         initexInternalQuantity
+hi def link initexHyphenationInternalQuantity   initexInternalQuantity
+hi def link initexJobInternalQuantity           initexInternalQuantity
+hi def link initexKernInternalQuantity          initexInternalQuantity
+hi def link initexMathInternalQuantity          initexInternalQuantity
+hi def link initexPageInternalQuantity          initexInternalQuantity
+hi def link initexParagraphInternalQuantity     initexInternalQuantity
+hi def link initexPenaltiesInternalQuantity     initexInternalQuantity
+hi def link initexRegistersInternalQuantity     initexInternalQuantity
+
+hi def link initexParameterDimen                initexNumber
+hi def link initexBoxParameterDimen             initexParameterDimen
+hi def link initexInsertsParameterDimen         initexParameterDimen
+hi def link initexMathParameterDimen            initexParameterDimen
+hi def link initexPageParameterDimen            initexParameterDimen
+hi def link initexParagraphParameterDimen       initexParameterDimen
+
+hi def link initexParameterGlue                 initexNumber
+hi def link initexInsertsParameterGlue          initexParameterGlue
+hi def link initexMathParameterGlue             initexParameterGlue
+hi def link initexPageParameterGlue             initexParameterGlue
+hi def link initexParagraphParameterGlue        initexParameterGlue
+hi def link initexTablesParameterGlue           initexParameterGlue
+
+hi def link initexParameterInteger              initexNumber
+hi def link initexBoxParameterInteger           initexParameterInteger
+hi def link initexCharacterParameterInteger     initexParameterInteger
+hi def link initexDebuggingParameterInteger     initexParameterInteger
+hi def link initexHyphenationParameterInteger   initexParameterInteger
+hi def link initexInsertsParameterInteger       initexParameterInteger
+hi def link initexJobParameterInteger           initexParameterInteger
+hi def link initexMacroParameterInteger         initexParameterInteger
+hi def link initexMathParameterInteger          initexParameterInteger
+hi def link initexParagraphParameterInteger     initexParameterInteger
+hi def link initexPenaltiesParameterInteger     initexParameterInteger
+
+hi def link initexParameterMuglue               initexNumber
+hi def link initexMathParameterMuglue           initexParameterMuglue
+
+hi def link initexParameterToken                initexIdentifier
+hi def link initexBoxParameterToken             initexParameterToken
+hi def link initexDebuggingParameterToken       initexParameterToken
+hi def link initexFileIOParameterToken          initexParameterToken
+hi def link initexMathParameterToken            initexParameterToken
+hi def link initexParagraphParameterToken       initexParameterToken
+hi def link initexTablesParameterToken          initexParameterToken
+
+let b:current_syntax = "initex"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/kconfig.vim b/runtime/syntax/kconfig.vim
index 05730a5..a68592e 100644
--- a/runtime/syntax/kconfig.vim
+++ b/runtime/syntax/kconfig.vim
@@ -1,6 +1,6 @@
 " Vim syntax file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-13
+" Latest Revision:  2006-04-14
 
 if exists("b:current_syntax")
   finish
@@ -677,6 +677,7 @@
 syn keyword kconfigTriState           y m n
 
 syn match   kconfigSpecialChar        contained '\\.'
+syn match   kconfigSpecialChar        '\\$'
 
 syn region  kconfigPath               matchgroup=kconfigPath
                                       \ start=+"+ skip=+\\\\\|\\\"+ end=+"+
diff --git a/runtime/syntax/lua.vim b/runtime/syntax/lua.vim
index 5553728..fe97712 100644
--- a/runtime/syntax/lua.vim
+++ b/runtime/syntax/lua.vim
@@ -1,254 +1,297 @@
-" Vim syntax file
-" Language:	Lua 4.0 and Lua 5.0
-" Maintainer:	Marcus Aurelius Farias <marcus.cf 'at' bol.com.br>
-" First Author:	Carlos Augusto Teixeira Mendes <cmendes 'at' inf puc-rio br>
-" Last Change:	2004 Aug 29
-" Options:	lua_version = 4 or 5 [default]
-"
-" For version 5.x: Clear all syntax items
-" For version 6.x: Quit when a syntax file was already loaded
-if version < 600
-  syntax clear
-elseif exists("b:current_syntax")
-  finish
-endif
-
-if !exists("lua_version")
-  let lua_version = 5
-endif
-
-syn case match
-
-" Comments
-syn keyword luaTodo		contained TODO FIXME XXX
-syn match   luaComment		"--.*$" contains=luaTodo
-if lua_version > 4
-  syn region  luaComment	matchgroup=luaComment start="--\[\[" end="\]\]" contains=luaTodo,luaInnerComment
-  syn region  luaInnerComment	contained transparent start="\[\[" end="\]\]"
-endif
-" First line may start with #!
-syn match   luaComment		"\%^#!.*"
-
-" catch errors caused by wrong parenthesis and wrong curly brackets or
-" keywords placed outside their respective blocks
-
-syn region  luaParen		transparent start='(' end=')' contains=ALLBUT,luaError,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaCondStart,luaBlock,luaRepeatBlock,luaRepeat,luaStatement
-syn match   luaError		")"
-syn match   luaError		"}"
-syn match   luaError		"\<\%(end\|else\|elseif\|then\|until\|in\)\>"
-
-
-" Function declaration
-syn region  luaFunctionBlock    transparent matchgroup=luaFunction start="\<function\>" end="\<end\>" contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaRepeat
-
-" if then else elseif end
-syn keyword luaCond		contained else
-
-" then ... end
-syn region  luaCondEnd		contained transparent matchgroup=luaCond start="\<then\>" end="\<end\>" contains=ALLBUT,luaTodo,luaSpecial,luaRepeat
-
-" elseif ... then
-syn region  luaCondElseif	contained transparent matchgroup=luaCond start="\<elseif\>" end="\<then\>" contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaRepeat
-
-" if ... then
-syn region  luaCondStart	transparent matchgroup=luaCond start="\<if\>" end="\<then\>"me=e-4 contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaRepeat nextgroup=luaCondEnd skipwhite skipempty
-
-" do ... end
-syn region  luaBlock		transparent matchgroup=luaStatement start="\<do\>" end="\<end\>" contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaRepeat
-
-" repeat ... until
-syn region  luaRepeatBlock	transparent matchgroup=luaRepeat start="\<repeat\>" end="\<until\>" contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaRepeat
-
-" while ... do
-syn region  luaRepeatBlock	transparent matchgroup=luaRepeat start="\<while\>" end="\<do\>"me=e-2 contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaRepeat nextgroup=luaBlock skipwhite skipempty
-
-" for ... do and for ... in ... do
-syn region luaRepeatBlock	transparent matchgroup=luaRepeat start="\<for\>" end="\<do\>"me=e-2 contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd nextgroup=luaBlock skipwhite skipempty
-
-" Following 'else' example. This is another item to those
-" contains=ALLBUT,... because only the 'for' luaRepeatBlock contains it.
-syn keyword luaRepeat		contained in
-
-" other keywords
-syn keyword luaStatement	return local break
-syn keyword luaOperator		and or not
-syn keyword luaConstant		nil
-if lua_version > 4
-  syn keyword luaConstant	true false
-endif
-
-" Pre processor doesn't exist since Lua 4.0
-" syn match   luaPreProc	  "^\s*$\%(debug\|nodebug\|if\|ifnot\|end\|else\|endinput\)\>"
-
-" Strings
-syn match   luaSpecial		contained "\\[\\abfnrtv\'\"[\]]\|\\\d\{,3}"
-syn region  luaString		start=+'+  end=+'+ skip=+\\\\\|\\'+ contains=luaSpecial
-syn region  luaString		start=+"+  end=+"+ skip=+\\\\\|\\"+ contains=luaSpecial
-" Nested strings
-syn region  luaString2		matchgroup=luaString start=+\[\[+ end=+\]\]+ contains=luaString2
-
-" integer number
-syn match luaNumber		"\<[0-9]\+\>"
-" floating point number, with dot, optional exponent
-syn match luaFloat		"\<[0-9]\+\.[0-9]*\%(e[-+]\=[0-9]\+\)\=\>"
-" floating point number, starting with a dot, optional exponent
-syn match luaFloat		"\.[0-9]\+\%(e[-+]\=[0-9]\+\)\=\>"
-" floating point number, without dot, with exponent
-syn match luaFloat		"\<[0-9]\+e[-+]\=[0-9]\+\>"
-
-" tables
-syn region  luaTableBlock       transparent matchgroup=luaTable start="{" end="}" contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaCondStart,luaBlock,luaRepeatBlock,luaRepeat,luaStatement
-
-syn keyword luaFunc	assert collectgarbage dofile error gcinfo next
-syn keyword luaFunc	print rawget rawset tonumber tostring type _VERSION
-
-if lua_version == 4
-  syn keyword luaFunc	_ALERT _ERRORMESSAGE
-  syn keyword luaFunc	call copytagmethods dostring
-  syn keyword luaFunc	foreach foreachi getglobal getn
-  syn keyword luaFunc	gettagmethod globals newtag
-  syn keyword luaFunc	setglobal settag settagmethod sort
-  syn keyword luaFunc	tag tinsert tremove
-  syn keyword luaFunc	_INPUT _OUTPUT _STDIN _STDOUT _STDERR
-  syn keyword luaFunc	openfile closefile flush seek
-  syn keyword luaFunc	setlocale execute remove rename tmpname
-  syn keyword luaFunc	getenv date clock exit
-  syn keyword luaFunc	readfrom writeto appendto read write
-  syn keyword luaFunc	PI abs sin cos tan asin
-  syn keyword luaFunc	acos atan atan2 ceil floor
-  syn keyword luaFunc	mod frexp ldexp sqrt min max log
-  syn keyword luaFunc	log10 exp deg rad random
-  syn keyword luaFunc	randomseed strlen strsub strlower strupper
-  syn keyword luaFunc	strchar strrep ascii strbyte
-  syn keyword luaFunc	format strfind gsub
-  syn keyword luaFunc	getinfo getlocal setlocal setcallhook setlinehook
-else
-  syn keyword luaFunc	_G getfenv getmetatable ipairs loadfile
-  syn keyword luaFunc	loadlib loadstring pairs pcall rawequal
-  syn keyword luaFunc	require setfenv setmetatable unpack xpcall
-  syn keyword luaFunc	LUA_PATH _LOADED _REQUIREDNAME
-  " Not sure if all these functions need to be highlighted...
-  syn match   luaFunc	/coroutine\.create/
-  syn match   luaFunc	/coroutine\.resume/
-  syn match   luaFunc	/coroutine\.status/
-  syn match   luaFunc	/coroutine\.wrap/
-  syn match   luaFunc	/coroutine\.yield/
-  syn match   luaFunc	/string\.byte/
-  syn match   luaFunc	/string\.char/
-  syn match   luaFunc	/string\.dump/
-  syn match   luaFunc	/string\.find/
-  syn match   luaFunc	/string\.len/
-  syn match   luaFunc	/string\.lower/
-  syn match   luaFunc	/string\.rep/
-  syn match   luaFunc	/string\.sub/
-  syn match   luaFunc	/string\.upper/
-  syn match   luaFunc	/string\.format/
-  syn match   luaFunc	/string\.gfind/
-  syn match   luaFunc	/string\.gsub/
-  syn match   luaFunc	/table\.concat/
-  syn match   luaFunc	/table\.foreach/
-  syn match   luaFunc	/table\.foreachi/
-  syn match   luaFunc	/table\.getn/
-  syn match   luaFunc	/table\.sort/
-  syn match   luaFunc	/table\.insert/
-  syn match   luaFunc	/table\.remove/
-  syn match   luaFunc	/table\.setn/
-  syn match   luaFunc	/math\.abs/
-  syn match   luaFunc	/math\.acos/
-  syn match   luaFunc	/math\.asin/
-  syn match   luaFunc	/math\.atan/
-  syn match   luaFunc	/math\.atan2/
-  syn match   luaFunc	/math\.ceil/
-  syn match   luaFunc	/math\.cos/
-  syn match   luaFunc	/math\.deg/
-  syn match   luaFunc	/math\.exp/
-  syn match   luaFunc	/math\.floor/
-  syn match   luaFunc	/math\.log/
-  syn match   luaFunc	/math\.log10/
-  syn match   luaFunc	/math\.max/
-  syn match   luaFunc	/math\.min/
-  syn match   luaFunc	/math\.mod/
-  syn match   luaFunc	/math\.pow/
-  syn match   luaFunc	/math\.rad/
-  syn match   luaFunc	/math\.sin/
-  syn match   luaFunc	/math\.sqrt/
-  syn match   luaFunc	/math\.tan/
-  syn match   luaFunc	/math\.frexp/
-  syn match   luaFunc	/math\.ldexp/
-  syn match   luaFunc	/math\.random/
-  syn match   luaFunc	/math\.randomseed/
-  syn match   luaFunc	/math\.pi/
-  syn match   luaFunc	/io\.stdin/
-  syn match   luaFunc	/io\.stdout/
-  syn match   luaFunc	/io\.stderr/
-  syn match   luaFunc	/io\.close/
-  syn match   luaFunc	/io\.flush/
-  syn match   luaFunc	/io\.input/
-  syn match   luaFunc	/io\.lines/
-  syn match   luaFunc	/io\.open/
-  syn match   luaFunc	/io\.output/
-  syn match   luaFunc	/io\.popen/
-  syn match   luaFunc	/io\.read/
-  syn match   luaFunc	/io\.tmpfile/
-  syn match   luaFunc	/io\.type/
-  syn match   luaFunc	/io\.write/
-  syn match   luaFunc	/os\.clock/
-  syn match   luaFunc	/os\.date/
-  syn match   luaFunc	/os\.difftime/
-  syn match   luaFunc	/os\.execute/
-  syn match   luaFunc	/os\.exit/
-  syn match   luaFunc	/os\.getenv/
-  syn match   luaFunc	/os\.remove/
-  syn match   luaFunc	/os\.rename/
-  syn match   luaFunc	/os\.setlocale/
-  syn match   luaFunc	/os\.time/
-  syn match   luaFunc	/os\.tmpname/
-  syn match   luaFunc	/debug\.debug/
-  syn match   luaFunc	/debug\.gethook/
-  syn match   luaFunc	/debug\.getinfo/
-  syn match   luaFunc	/debug\.getlocal/
-  syn match   luaFunc	/debug\.getupvalue/
-  syn match   luaFunc	/debug\.setlocal/
-  syn match   luaFunc	/debug\.setupvalue/
-  syn match   luaFunc	/debug\.sethook/
-  syn match   luaFunc	/debug\.traceback/
-endif
-
-"syncing method
-syn sync minlines=100
-
-" Define the default highlighting.
-" For version 5.7 and earlier: only when not done already
-" For version 5.8 and later: only when an item doesn't have highlighting yet
-if version >= 508 || !exists("did_lua_syntax_inits")
-  if version < 508
-    let did_lua_syntax_inits = 1
-    command -nargs=+ HiLink hi link <args>
-  else
-    command -nargs=+ HiLink hi def link <args>
-  endif
-
-  HiLink luaStatement		Statement
-  HiLink luaRepeat		Repeat
-  HiLink luaString		String
-  HiLink luaString2		String
-  HiLink luaNumber		Number
-  HiLink luaFloat		Float
-  HiLink luaOperator		Operator
-  HiLink luaConstant		Constant
-  HiLink luaCond		Conditional
-  HiLink luaFunction		Function
-  HiLink luaComment		Comment
-  HiLink luaTodo		Todo
-  HiLink luaTable		Structure
-  HiLink luaError		Error
-  HiLink luaSpecial		SpecialChar
-  " HiLink luaPreProc		PreProc
-  HiLink luaFunc		Identifier
-
-  delcommand HiLink
-endif
-
-let b:current_syntax = "lua"
-
-" vim: noet ts=8
+" Vim syntax file

+" Language:	Lua 4.0, Lua 5.0 and Lua 5.1

+" Maintainer:	Marcus Aurelius Farias <marcus.cf 'at' bol.com.br>

+" First Author:	Carlos Augusto Teixeira Mendes <cmendes 'at' inf puc-rio br>

+" Last Change:	2006 Apr. 19

+" Options:	lua_version = 4 or 5

+"		lua_subversion = 0 (4.0, 5.0) or 1 (5.1)

+"		default 5.1

+

+" For version 5.x: Clear all syntax items

+" For version 6.x: Quit when a syntax file was already loaded

+if version < 600

+  syntax clear

+elseif exists("b:current_syntax")

+  finish

+endif

+

+if !exists("lua_version")

+  " Default is lua 5.1

+  let lua_version = 5

+  let lua_subversion = 1

+elseif !exists("lua_subversion")

+  " lua_version exists, but lua_subversion doesn't. So, set it to 0

+  let lua_subversion = 0

+endif

+

+syn case match

+

+" syncing method

+syn sync minlines=100

+

+" Comments

+syn keyword luaTodo             contained TODO FIXME XXX

+syn match   luaComment          "--.*$" contains=luaTodo

+if lua_version == 5 && lua_subversion == 0

+  syn region  luaComment        matchgroup=luaComment start="--\[\[" end="\]\]" contains=luaTodo,luaInnerComment

+  syn region  luaInnerComment   contained transparent start="\[\[" end="\]\]"

+elseif lua_version > 5 || (lua_version == 5 && lua_subversion >= 1)

+  " Comments in Lua 5.1: [[ ... ]], [=[ ... ]=], [===[ ... ]===], etc.

+  syn region  luaComment        matchgroup=luaComment start="--\[\z(=*\)\[" end="\]\z1\]"

+endif

+

+" First line may start with #!

+syn match luaComment "\%^#!.*"

+

+" catch errors caused by wrong parenthesis and wrong curly brackets or

+" keywords placed outside their respective blocks

+

+syn region luaParen transparent start='(' end=')' contains=ALLBUT,luaError,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaCondStart,luaBlock,luaRepeatBlock,luaRepeat,luaStatement

+syn match  luaError ")"

+syn match  luaError "}"

+syn match  luaError "\<\%(end\|else\|elseif\|then\|until\|in\)\>"

+

+" Function declaration

+syn region luaFunctionBlock transparent matchgroup=luaFunction start="\<function\>" end="\<end\>" contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaRepeat

+

+" if then else elseif end

+syn keyword luaCond contained else

+

+" then ... end

+syn region luaCondEnd contained transparent matchgroup=luaCond start="\<then\>" end="\<end\>" contains=ALLBUT,luaTodo,luaSpecial,luaRepeat

+

+" elseif ... then

+syn region luaCondElseif contained transparent matchgroup=luaCond start="\<elseif\>" end="\<then\>" contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaRepeat

+

+" if ... then

+syn region luaCondStart transparent matchgroup=luaCond start="\<if\>" end="\<then\>"me=e-4 contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaRepeat nextgroup=luaCondEnd skipwhite skipempty

+

+" do ... end

+syn region luaBlock transparent matchgroup=luaStatement start="\<do\>" end="\<end\>" contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaRepeat

+

+" repeat ... until

+syn region luaRepeatBlock transparent matchgroup=luaRepeat start="\<repeat\>" end="\<until\>" contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaRepeat

+

+" while ... do

+syn region luaRepeatBlock transparent matchgroup=luaRepeat start="\<while\>" end="\<do\>"me=e-2 contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaRepeat nextgroup=luaBlock skipwhite skipempty

+

+" for ... do and for ... in ... do

+syn region luaRepeatBlock transparent matchgroup=luaRepeat start="\<for\>" end="\<do\>"me=e-2 contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd nextgroup=luaBlock skipwhite skipempty

+

+" Following 'else' example. This is another item to those

+" contains=ALLBUT,... because only the 'for' luaRepeatBlock contains it.

+syn keyword luaRepeat contained in

+

+" other keywords

+syn keyword luaStatement return local break

+syn keyword luaOperator  and or not

+syn keyword luaConstant  nil

+if lua_version > 4

+  syn keyword luaConstant true false

+endif

+

+" Strings

+syn match  luaSpecial contained "\\[\\abfnrtv\'\"[\]]\|\\\d\{,3}"

+syn region luaString  start=+'+ end=+'+ skip=+\\\\\|\\'+ contains=luaSpecial

+syn region luaString  start=+"+ end=+"+ skip=+\\\\\|\\"+ contains=luaSpecial

+" Nested strings

+if (lua_version == 5 && lua_subversion == 0) || lua_version < 5

+  syn region luaString2 matchgroup=luaString start=+\[\[+ end=+\]\]+ contains=luaString2

+elseif lua_version > 5 || (lua_version == 5 && lua_subversion >= 1)

+  syn region luaString2 matchgroup=luaString start="\[\z(=*\)\[" end="\]\z1\]"

+endif

+

+" integer number

+syn match luaNumber "\<[0-9]\+\>"

+" floating point number, with dot, optional exponent

+syn match luaFloat  "\<[0-9]\+\.[0-9]*\%(e[-+]\=[0-9]\+\)\=\>"

+" floating point number, starting with a dot, optional exponent

+syn match luaFloat  "\.[0-9]\+\%(e[-+]\=[0-9]\+\)\=\>"

+" floating point number, without dot, with exponent

+syn match luaFloat  "\<[0-9]\+e[-+]\=[0-9]\+\>"

+

+" tables

+syn region  luaTableBlock transparent matchgroup=luaTable start="{" end="}" contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaCondStart,luaBlock,luaRepeatBlock,luaRepeat,luaStatement

+

+syn keyword luaFunc assert collectgarbage dofile error gcinfo next

+syn keyword luaFunc print rawget rawset tonumber tostring type _VERSION

+

+if lua_version == 4

+  syn keyword luaFunc _ALERT _ERRORMESSAGE

+  syn keyword luaFunc call copytagmethods dostring

+  syn keyword luaFunc foreach foreachi getglobal getn

+  syn keyword luaFunc gettagmethod globals newtag

+  syn keyword luaFunc setglobal settag settagmethod sort

+  syn keyword luaFunc tag tinsert tremove

+  syn keyword luaFunc _INPUT _OUTPUT _STDIN _STDOUT _STDERR

+  syn keyword luaFunc openfile closefile flush seek

+  syn keyword luaFunc setlocale execute remove rename tmpname

+  syn keyword luaFunc getenv date clock exit

+  syn keyword luaFunc readfrom writeto appendto read write

+  syn keyword luaFunc PI abs sin cos tan asin

+  syn keyword luaFunc acos atan atan2 ceil floor

+  syn keyword luaFunc mod frexp ldexp sqrt min max log

+  syn keyword luaFunc log10 exp deg rad random

+  syn keyword luaFunc randomseed strlen strsub strlower strupper

+  syn keyword luaFunc strchar strrep ascii strbyte

+  syn keyword luaFunc format strfind gsub

+  syn keyword luaFunc getinfo getlocal setlocal setcallhook setlinehook

+elseif lua_version == 5

+  " Not sure if all these functions need to be highlighted...

+  syn keyword luaFunc _G getfenv getmetatable ipairs loadfile

+  syn keyword luaFunc loadstring pairs pcall rawequal

+  syn keyword luaFunc require setfenv setmetatable unpack xpcall

+  if lua_subversion == 0

+    syn keyword luaFunc loadlib LUA_PATH _LOADED _REQUIREDNAME

+  elseif lua_subversion == 1

+    syn keyword luaFunc load module select

+    syn match luaFunc /package\.cpath/

+    syn match luaFunc /package\.loaded/

+    syn match luaFunc /package\.loadlib/

+    syn match luaFunc /package\.path/

+    syn match luaFunc /package\.preload/

+    syn match luaFunc /package\.seeall/

+    syn match luaFunc /coroutine\.running/

+  endif

+  syn match   luaFunc /coroutine\.create/

+  syn match   luaFunc /coroutine\.resume/

+  syn match   luaFunc /coroutine\.status/

+  syn match   luaFunc /coroutine\.wrap/

+  syn match   luaFunc /coroutine\.yield/

+  syn match   luaFunc /string\.byte/

+  syn match   luaFunc /string\.char/

+  syn match   luaFunc /string\.dump/

+  syn match   luaFunc /string\.find/

+  syn match   luaFunc /string\.len/

+  syn match   luaFunc /string\.lower/

+  syn match   luaFunc /string\.rep/

+  syn match   luaFunc /string\.sub/

+  syn match   luaFunc /string\.upper/

+  syn match   luaFunc /string\.format/

+  syn match   luaFunc /string\.gsub/

+  if lua_subversion == 0

+    syn match luaFunc /string\.gfind/

+  elseif lua_subversion == 1

+    syn match luaFunc /string\.gmatch/

+    syn match luaFunc /string\.match/

+    syn match luaFunc /string\.reverse/

+    syn match luaFunc /table\.maxn/

+  endif

+  syn match   luaFunc /table\.concat/

+  syn match   luaFunc /table\.foreach/

+  syn match   luaFunc /table\.foreachi/

+  syn match   luaFunc /table\.getn/

+  syn match   luaFunc /table\.sort/

+  syn match   luaFunc /table\.insert/

+  syn match   luaFunc /table\.remove/

+  syn match   luaFunc /table\.setn/

+  syn match   luaFunc /math\.abs/

+  syn match   luaFunc /math\.acos/

+  syn match   luaFunc /math\.asin/

+  syn match   luaFunc /math\.atan/

+  syn match   luaFunc /math\.atan2/

+  syn match   luaFunc /math\.ceil/

+  syn match   luaFunc /math\.sin/

+  syn match   luaFunc /math\.cos/

+  syn match   luaFunc /math\.tan/

+  syn match   luaFunc /math\.deg/

+  syn match   luaFunc /math\.exp/

+  syn match   luaFunc /math\.floor/

+  syn match   luaFunc /math\.log/

+  syn match   luaFunc /math\.log10/

+  syn match   luaFunc /math\.max/

+  syn match   luaFunc /math\.min/

+  if lua_subversion == 0

+    syn match luaFunc /math\.mod/

+  elseif lua_subversion == 1

+    syn match luaFunc /math\.fmod/

+    syn match luaFunc /math\.modf/

+    syn match luaFunc /math\.cosh/

+    syn match luaFunc /math\.sinh/

+    syn match luaFunc /math\.tanh/

+  endif

+  syn match   luaFunc /math\.pow/

+  syn match   luaFunc /math\.rad/

+  syn match   luaFunc /math\.sqrt/

+  syn match   luaFunc /math\.frexp/

+  syn match   luaFunc /math\.ldexp/

+  syn match   luaFunc /math\.random/

+  syn match   luaFunc /math\.randomseed/

+  syn match   luaFunc /math\.pi/

+  syn match   luaFunc /io\.stdin/

+  syn match   luaFunc /io\.stdout/

+  syn match   luaFunc /io\.stderr/

+  syn match   luaFunc /io\.close/

+  syn match   luaFunc /io\.flush/

+  syn match   luaFunc /io\.input/

+  syn match   luaFunc /io\.lines/

+  syn match   luaFunc /io\.open/

+  syn match   luaFunc /io\.output/

+  syn match   luaFunc /io\.popen/

+  syn match   luaFunc /io\.read/

+  syn match   luaFunc /io\.tmpfile/

+  syn match   luaFunc /io\.type/

+  syn match   luaFunc /io\.write/

+  syn match   luaFunc /os\.clock/

+  syn match   luaFunc /os\.date/

+  syn match   luaFunc /os\.difftime/

+  syn match   luaFunc /os\.execute/

+  syn match   luaFunc /os\.exit/

+  syn match   luaFunc /os\.getenv/

+  syn match   luaFunc /os\.remove/

+  syn match   luaFunc /os\.rename/

+  syn match   luaFunc /os\.setlocale/

+  syn match   luaFunc /os\.time/

+  syn match   luaFunc /os\.tmpname/

+  syn match   luaFunc /debug\.debug/

+  syn match   luaFunc /debug\.gethook/

+  syn match   luaFunc /debug\.getinfo/

+  syn match   luaFunc /debug\.getlocal/

+  syn match   luaFunc /debug\.getupvalue/

+  syn match   luaFunc /debug\.setlocal/

+  syn match   luaFunc /debug\.setupvalue/

+  syn match   luaFunc /debug\.sethook/

+  syn match   luaFunc /debug\.traceback/

+  if lua_subversion == 1

+    syn match luaFunc /debug\.getfenv/

+    syn match luaFunc /debug\.getmetatable/

+    syn match luaFunc /debug\.getregistry/

+    syn match luaFunc /debug\.setfenv/

+    syn match luaFunc /debug\.setmetatable/

+  endif

+endif

+

+" Define the default highlighting.

+" For version 5.7 and earlier: only when not done already

+" For version 5.8 and later: only when an item doesn't have highlighting yet

+if version >= 508 || !exists("did_lua_syntax_inits")

+  if version < 508

+    let did_lua_syntax_inits = 1

+    command -nargs=+ HiLink hi link <args>

+  else

+    command -nargs=+ HiLink hi def link <args>

+  endif

+

+  HiLink luaStatement		Statement

+  HiLink luaRepeat		Repeat

+  HiLink luaString		String

+  HiLink luaString2		String

+  HiLink luaNumber		Number

+  HiLink luaFloat		Float

+  HiLink luaOperator		Operator

+  HiLink luaConstant		Constant

+  HiLink luaCond		Conditional

+  HiLink luaFunction		Function

+  HiLink luaComment		Comment

+  HiLink luaTodo		Todo

+  HiLink luaTable		Structure

+  HiLink luaError		Error

+  HiLink luaSpecial		SpecialChar

+  HiLink luaFunc		Identifier

+

+  delcommand HiLink

+endif

+

+let b:current_syntax = "lua"

+

+" vim: et ts=8

diff --git a/runtime/syntax/plaintex.vim b/runtime/syntax/plaintex.vim
index a930712..2e2bb31 100644
--- a/runtime/syntax/plaintex.vim
+++ b/runtime/syntax/plaintex.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         TeX (plain.tex format)
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-03-26
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
@@ -13,10 +13,10 @@
 syn match   plaintexControlSequence         display contains=@NoSpell
       \ '\\[a-zA-Z@]\+'
 
-runtime! syntax/coretex.vim
+runtime! syntax/initex.vim
 
 syn match   plaintexComment                 display
-      \ contains=ALLBUT,coretexComment,plaintexComment
+      \ contains=ALLBUT,initexComment,plaintexComment
       \ '^\s*%[CDM].*$'
 
 if exists("g:plaintex_delimiters")
@@ -59,12 +59,14 @@
 syn match   plaintexTablesCommand           display contains=@NoSpell
       \ '&\|\\+\|\\\%(cleartabs\|endline\|hidewidth\|ialign\|multispan\|settabs\|tabalign\)\>'
 
-syn region  plaintexMath                    matchgroup=plaintexMath
+if !exists("g:plaintex_no_math")
+  syn region  plaintexMath                  matchgroup=plaintexMath
       \ contains=@plaintexMath
       \ start='\$' skip='\\\\\|\\\$' end='\$'
-syn region  plaintexMath                    matchgroup=plaintexMath
+  syn region  plaintexMath                  matchgroup=plaintexMath
       \ contains=@plaintexMath keepend
       \ start='\$\$' skip='\\\\\|\\\$' end='\$\$'
+endif
 
 syn cluster plaintexMath
       \ contains=plaintexMathCommand,plaintexMathBoxCommand,
@@ -122,16 +124,16 @@
 hi def link plaintexInclude                 Include
 hi def link plaintexRepeat                  Repeat
 
-hi def link plaintexCommand                 coretexCommand
+hi def link plaintexCommand                 initexCommand
 hi def link plaintexBoxCommand              plaintexCommand
-hi def link plaintexCharacterCommand        coretexCharacterCommand
-hi def link plaintexDebuggingCommand        coretexDebuggingCommand
-hi def link plaintexFontsCommand            coretexFontsCommand
+hi def link plaintexCharacterCommand        initexCharacterCommand
+hi def link plaintexDebuggingCommand        initexDebuggingCommand
+hi def link plaintexFontsCommand            initexFontsCommand
 hi def link plaintexGlueCommand             plaintexCommand
 hi def link plaintexInsertsCommand          plaintexCommand
-hi def link plaintexJobCommand              coretexJobCommand
+hi def link plaintexJobCommand              initexJobCommand
 hi def link plaintexKernCommand             plaintexCommand
-hi def link plaintexMacroCommand            coretexMacroCommand
+hi def link plaintexMacroCommand            initexMacroCommand
 hi def link plaintexPageCommand             plaintexCommand
 hi def link plaintexParagraphCommand        plaintexCommand
 hi def link plaintexPenaltiesCommand        plaintexCommand
@@ -151,16 +153,15 @@
 hi def link plaintexMathPunctuation         plaintexCharacterCommand
 hi def link plaintexMathRelation            plaintexOperator
 
-hi def link plaintexParameterDimen          coretexParameterDimen
-hi def link plaintexMathParameterDimen      coretexMathParameterDimen
-hi def link plaintexParagraphParameterGlue  coretexParagraphParameterGlue
-hi def link plaintexFontParameterInteger    coretexFontParameterInteger
-hi def link plaintexJobParameterInteger     coretexJobParameterInteger
-hi def link plaintexPageParameterInteger    coretexPageParameterInteger
-hi def link plaintexPageParameterToken      coretexParameterToken
+hi def link plaintexParameterDimen          initexParameterDimen
+hi def link plaintexMathParameterDimen      initexMathParameterDimen
+hi def link plaintexParagraphParameterGlue  initexParagraphParameterGlue
+hi def link plaintexFontParameterInteger    initexFontParameterInteger
+hi def link plaintexJobParameterInteger     initexJobParameterInteger
+hi def link plaintexPageParameterInteger    initexPageParameterInteger
+hi def link plaintexPageParameterToken      initexParameterToken
 
 let b:current_syntax = "plaintex"
 
 let &cpo = s:cpo_save
 unlet s:cpo_save
-
diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim
index 5b8b32e..099d8e4 100644
--- a/runtime/syntax/vim.vim
+++ b/runtime/syntax/vim.vim
@@ -1,8 +1,8 @@
 " Vim syntax file
 " Language:	Vim 7.0 script
 " Maintainer:	Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
-" Last Change:	Apr 18, 2006
-" Version:	7.0-44
+" Last Change:	April 19, 2006
+" Version:	7.0-45
 " Automatically generated keyword lists: {{{1
 
 " Quit when a syntax file was already loaded {{{2
@@ -55,7 +55,7 @@
 syn case match
 
 " Function Names {{{2
-syn keyword vimFuncName contained	add append argc argidx argv browse browsedir bufexists buflisted bufloaded bufname bufnr bufwinnr byte2line byteidx call changenr char2nr cindent col complete complete_add complete_check confirm copy count cscope_connection cursor deepcopy delete did_filetype diff_filler diff_hlID empty escape eval eventhandler executable exists expand expr8 extend filereadable filewritable filter finddir findfile fnamemodify foldclosed foldclosedend foldlevel foldtext foldtextresult foreground function garbagecollect get getbufline getbufvar getchar getcharmod getcmdline getcmdpos getcmdtype getcwd getfontname getfperm getfsize getftime getftype getline getloclist getpos getqflist getreg getregtype getwinposx getwinposy getwinvar glob globpath has has_key hasmapto histadd histdel histget histnr hlexists hlID hostname iconv indent index input inputdialog inputlist inputrestore inputsave inputsecret insert isdirectory islocked items join keys len libcall libcallnr line line2byte lispindent localtime map maparg mapcheck match matcharg matchend matchlist matchstr max min mkdir mode nextnonblank nr2char pathshorten prevnonblank printf pumvisible range readfile reltime reltimestr remote_expr remote_foreground remote_peek remote_read remote_send remove rename repeat resolve reverse search searchdecl searchpair searchpairpos searchpos server2client serverlist setbufvar setcmdpos setline setloclist setpos setqflist setreg setwinvar simplify sort soundfold spellbadword spellsuggest split str2nr strftime stridx string strlen strpart strridx strtrans submatch substitute synID synIDattr synIDtrans system tabpagebuflist tabpagenr tabpagewinnr tagfiles taglist tempname tolower toupper tr type values virtcol visualmode winbufnr wincol winheight winline winnr winrestcmd winrestview winsaveview winwidth writefile 
+syn keyword vimFuncName contained	add append argc argidx argv browse browsedir bufexists buflisted bufloaded bufname bufnr bufwinnr byte2line byteidx call changenr char2nr cindent col complete complete_add complete_check confirm copy count cscope_connection cursor deepcopy delete did_filetype diff_filler diff_hlID empty escape eval eventhandler executable exists expand expr8 extend filereadable filewritable filter finddir findfile fnamemodify foldclosed foldclosedend foldlevel foldtext foldtextresult foreground function garbagecollect get getbufline getbufvar getchar getcharmod getcmdline getcmdpos getcmdtype getcwd getfontname getfperm getfsize getftime getftype getline getloclist getpos getqflist getreg getregtype gettabwinvar getwinposx getwinposy getwinvar glob globpath has has_key hasmapto histadd histdel histget histnr hlexists hlID hostname iconv indent index input inputdialog inputlist inputrestore inputsave inputsecret insert isdirectory islocked items join keys len libcall libcallnr line line2byte lispindent localtime map maparg mapcheck match matcharg matchend matchlist matchstr max min mkdir mode nextnonblank nr2char pathshorten prevnonblank printf pumvisible range readfile reltime reltimestr remote_expr remote_foreground remote_peek remote_read remote_send remove rename repeat resolve reverse search searchdecl searchpair searchpairpos searchpos server2client serverlist setbufvar setcmdpos setline setloclist setpos setqflist setreg settabwinvar setwinvar simplify sort soundfold spellbadword spellsuggest split str2nr strftime stridx string strlen strpart strridx strtrans submatch substitute synID synIDattr synIDtrans system tabpagebuflist tabpagenr tabpagewinnr tagfiles taglist tempname tolower toupper tr type values virtcol visualmode winbufnr wincol winheight winline winnr winrestcmd winrestview winsaveview winwidth writefile 
 
 "--- syntax above generated by mkvimvim ---
 " Special Vim Highlighting (not automatic) {{{1