IDEA-26662 fontName attribute not expected by Embed metatag
authorMaxim.Mossienko <Maxim.Mossienko@jetbrains.com>
Thu, 10 Dec 2009 17:54:51 +0000 (20:54 +0300)
committerMaxim.Mossienko <Maxim.Mossienko@jetbrains.com>
Thu, 10 Dec 2009 17:58:01 +0000 (20:58 +0300)
xml/impl/src/com/intellij/lexer/_OldXmlLexer.flex
xml/impl/src/com/intellij/lexer/_OldXmlLexer.java
xml/impl/src/com/intellij/psi/xml/DTDTokenType.java [deleted file]

index c3abefa2a5badf4a8a5893697545d9082552fc19..965b0d654cab1075dbb2fb15acc7952170af8917 100644 (file)
@@ -33,6 +33,7 @@ import com.intellij.psi.xml.*;
 %state ATTRIBUTE_VALUE_DQ
 %state ATTRIBUTE_VALUE_SQ
 %state PROCESSING_INSTRUCTION
+%state DOCTYPE_MARKUP_STARTED
 
 %state DOCTYPE
 %state DOCTYPE_EXTERNAL_ID
@@ -48,13 +49,9 @@ DIGIT=[0-9]
 WS=[\ \n\r\t\f]
 S={WS}+
 
-STRING_LITERAL=(\"[^\"]*\")|('[^']*')
-NON_CLOSED_STRING_LITERAL=(\"[^\"]*)|('[^']*)
-
 TAG_NAME=({ALPHA}|"_"|":")({ALPHA}|{DIGIT}|"_"|":"|"."|"-")*
 NAME=({ALPHA}|"_"|":")({ALPHA}|{DIGIT}|"_"|":"|"."|"-")*
 NMTOKEN=({ALPHA}|{DIGIT}|"_"|":"|"."|"-")+
-DATA_CHARACTERS=([^\<]|("<"[^[:letter:]\/\!])|("<!"[^\-])|("<!-"[^\-]))*
 
 %%
 "<![CDATA[" {yybegin(CDATA); return XmlTokenType.XML_CDATA_START; }
@@ -109,7 +106,8 @@ DATA_CHARACTERS=([^\<]|("<"[^[:letter:]\/\!])|("<!"[^\-])|("<!-"[^\-]))*
 <DOCTYPE_MARKUP> "+" { return XmlTokenType.XML_PLUS;}
 <DOCTYPE_MARKUP> "*" { return XmlTokenType.XML_STAR;}
 <DOCTYPE_MARKUP> "%" { return XmlTokenType.XML_PERCENT;}
-<DOCTYPE_MARKUP> "--" { yybegin(DOCTYPE_COMMENT); return XmlTokenType.XML_COMMENT_START;}
+<DOCTYPE_MARKUP> "--" ([^\-]|(\-[^\-]))* "--" { yybegin(DOCTYPE_MARKUP_STARTED); yypushback(yylength()); }
+<DOCTYPE_MARKUP_STARTED> "--" { yybegin(DOCTYPE_COMMENT); return XmlTokenType.XML_COMMENT_START;}
 <DOCTYPE_COMMENT> ([^\-]|(\-[^\-]))* { return XmlTokenType.XML_COMMENT_CHARACTERS; }
 <DOCTYPE_COMMENT> "--" { yybegin(DOCTYPE_MARKUP); return XmlTokenType.XML_COMMENT_END;}
 <DOCTYPE_MARKUP> \| { return XmlTokenType.XML_BAR;}
index b7ce713364c0f05dce451b0fa33e4179f69c751b..b25c00b3fd9518d73a39e57b78a861b87b6228da 100644 (file)
@@ -1,20 +1,4 @@
-/*
- * Copyright 2000-2009 JetBrains s.r.o.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/* The following code was generated by JFlex 1.4.1 on 12/21/06 11:03 PM */
+/* The following code was generated by JFlex 1.4.1 on 10.12.09 20:28 */
 
  /* It's an automatically generated code. Do not modify it. */
 package com.intellij.lexer;
@@ -27,8 +11,8 @@ import com.intellij.psi.xml.*;
 /**
  * This class is a scanner generated by 
  * <a href="http://www.jflex.de/">JFlex</a> 1.4.1
- * on 12/21/06 11:03 PM from the specification file
- * <tt>C:/work/Irida/tools/lexer/_OldXmlLexer.flex</tt>
+ * on 10.12.09 20:28 from the specification file
+ * <tt>C:/IDEA/tools/lexer/../../community/xml/impl/src/com/intellij/lexer/_OldXmlLexer.flex</tt>
  */
 public class _OldXmlLexer implements FlexLexer {
   /** initial size of the lookahead buffer */
@@ -41,32 +25,33 @@ public class _OldXmlLexer implements FlexLexer {
   public static final int ATTRIBUTE_VALUE_START = 8;
   public static final int DECL_ATTR_VALUE_SQ = 4;
   public static final int ATTRIBUTE_VALUE_DQ = 9;
-  public static final int CONDITIONAL = 18;
+  public static final int CONDITIONAL = 19;
   public static final int DECL = 1;
+  public static final int DOCTYPE_MARKUP_STARTED = 12;
   public static final int ATTRIBUTE_VALUE_SQ = 10;
-  public static final int DOCTYPE_EXTERNAL_ID = 13;
-  public static final int CDATA = 17;
+  public static final int DOCTYPE_EXTERNAL_ID = 14;
+  public static final int CDATA = 18;
   public static final int COMMENT = 7;
   public static final int TAG_NAME = 5;
-  public static final int DOCTYPE_MARKUP = 14;
-  public static final int DOCTYPE_COMMENT = 19;
-  public static final int DOCTYPE_MARKUP_DQ = 15;
+  public static final int DOCTYPE_MARKUP = 15;
+  public static final int DOCTYPE_COMMENT = 20;
+  public static final int DOCTYPE_MARKUP_DQ = 16;
   public static final int YYINITIAL = 0;
   public static final int TAG_ATTRIBUTES = 6;
-  public static final int DOCTYPE = 12;
-  public static final int DOCTYPE_MARKUP_SQ = 16;
+  public static final int DOCTYPE_MARKUP_SQ = 17;
+  public static final int DOCTYPE = 13;
 
   /** 
    * Translates characters to character classes
    */
   private static final String ZZ_CMAP_PACKED = 
-    "\11\0\2\3\1\0\2\3\22\0\1\43\1\12\1\4\1\35\1\0"+
-    "\1\34\1\32\1\5\1\52\1\53\1\55\1\54\1\57\1\7\1\6"+
-    "\1\11\12\2\1\1\1\33\1\10\1\44\1\21\1\40\1\0\1\16"+
-    "\1\51\1\14\1\15\1\26\1\61\1\27\1\1\1\22\2\1\1\24"+
-    "\1\50\1\23\1\30\1\46\1\60\1\31\1\47\1\17\1\25\2\1"+
-    "\1\62\1\45\1\1\1\13\1\0\1\20\1\0\1\1\1\0\6\37"+
-    "\5\1\1\42\1\41\12\1\1\36\2\1\1\0\1\56\55\0\1\1"+
+    "\11\0\2\3\1\0\2\3\22\0\1\40\1\7\1\43\1\32\1\0"+
+    "\1\31\1\27\1\42\1\51\1\52\1\54\1\53\1\56\1\5\1\4"+
+    "\1\62\12\2\1\1\1\30\1\6\1\41\1\16\1\35\1\0\1\13"+
+    "\1\50\1\11\1\12\1\23\1\60\1\24\1\1\1\17\2\1\1\21"+
+    "\1\47\1\20\1\25\1\45\1\57\1\26\1\46\1\14\1\22\2\1"+
+    "\1\61\1\44\1\1\1\10\1\0\1\15\1\0\1\1\1\0\6\34"+
+    "\5\1\1\37\1\36\12\1\1\33\2\1\1\0\1\55\55\0\1\1"+
     "\12\0\1\1\4\0\1\1\5\0\27\1\1\0\37\1\1\0\u013f\1"+
     "\31\0\162\1\4\0\14\1\16\0\5\1\11\0\1\1\213\0\1\1"+
     "\13\0\1\1\1\0\3\1\1\0\1\1\1\0\24\1\1\0\54\1"+
@@ -134,30 +119,31 @@ public class _OldXmlLexer implements FlexLexer {
   private static final int [] ZZ_ACTION = zzUnpackAction();
 
   private static final String ZZ_ACTION_PACKED_0 =
-    "\3\0\2\1\2\0\1\2\13\0\1\2\1\3\1\4"+
+    "\3\0\2\1\2\0\1\2\14\0\1\2\1\3\1\4"+
     "\1\5\1\3\1\6\1\3\1\6\1\7\2\6\1\10"+
-    "\2\6\1\11\1\12\1\13\1\1\1\14\11\1\1\15"+
-    "\1\5\1\16\1\6\1\17\1\20\1\2\1\6\4\2"+
-    "\1\21\1\22\1\1\1\23\3\1\6\24\1\25\1\26"+
-    "\2\16\2\6\1\27\1\30\1\16\1\6\1\16\1\31"+
-    "\1\32\1\16\1\33\1\34\1\35\1\6\1\36\2\16"+
+    "\2\6\1\11\1\12\1\13\5\1\1\14\5\1\1\15"+
+    "\1\5\1\16\1\17\1\20\1\6\1\2\1\6\4\2"+
+    "\1\21\1\22\4\1\1\23\6\24\1\6\1\25\1\26"+
+    "\2\16\2\6\1\16\1\6\1\16\1\27\1\30\1\16"+
+    "\1\31\1\32\1\33\1\6\1\34\1\35\1\36\2\16"+
     "\1\37\1\40\1\41\1\42\1\43\1\44\1\45\3\3"+
-    "\2\6\1\46\1\0\1\47\4\0\1\50\10\1\1\51"+
-    "\2\0\4\2\1\52\2\16\2\0\1\53\1\0\2\16"+
-    "\4\0\2\16\4\0\1\54\1\0\1\55\5\0\1\56"+
-    "\1\57\2\0\1\55\1\56\1\57\2\1\1\55\1\56"+
-    "\1\57\2\1\1\60\1\0\1\55\1\56\1\0\1\57"+
-    "\2\2\2\16\1\61\1\16\4\0\2\16\1\0\1\62"+
-    "\2\0\1\63\7\0\1\64\1\0\1\1\1\64\2\1"+
-    "\1\64\1\1\1\2\1\64\1\2\3\16\4\0\2\16"+
-    "\11\0\2\1\1\2\2\16\1\65\4\0\2\16\10\0"+
-    "\1\66\2\1\1\2\1\67\1\70\3\0\1\71\1\72"+
-    "\1\73\1\0\1\74\6\0\2\1\1\2\2\0\1\75"+
-    "\1\76\4\0\1\77\1\0\2\1\1\2\1\100\1\0"+
-    "\1\101\1\102\1\103\1\0\1\104\3\101\1\105\1\106";
+    "\2\6\1\0\1\46\1\47\4\0\1\50\10\1\1\51"+
+    "\2\0\4\2\1\52\1\53\2\16\2\0\1\16\1\0"+
+    "\2\16\4\0\2\16\4\0\1\54\1\0\1\55\5\0"+
+    "\1\56\1\57\2\0\1\55\1\56\1\57\2\1\1\55"+
+    "\1\56\1\57\2\1\1\60\1\0\1\55\1\56\1\0"+
+    "\1\57\2\2\2\16\1\0\1\16\1\61\1\16\4\0"+
+    "\2\16\1\0\1\62\2\0\1\63\7\0\1\64\1\0"+
+    "\1\1\1\64\2\1\1\64\1\1\1\2\1\64\1\2"+
+    "\2\16\1\0\1\65\1\16\4\0\2\16\11\0\2\1"+
+    "\1\2\2\16\1\65\1\66\4\0\2\16\10\0\1\67"+
+    "\2\1\1\2\1\70\1\71\3\0\1\72\1\73\1\74"+
+    "\1\0\1\75\6\0\2\1\1\2\2\0\1\76\1\77"+
+    "\4\0\1\100\1\0\2\1\1\2\1\101\1\0\1\102"+
+    "\1\103\1\104\1\0\1\105\3\102\1\106\1\107";
 
   private static int [] zzUnpackAction() {
-    int [] result = new int[296];
+    int [] result = new int[304];
     int offset = 0;
     offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
     return result;
@@ -185,43 +171,44 @@ public class _OldXmlLexer implements FlexLexer {
     "\0\0\0\63\0\146\0\231\0\314\0\377\0\u0132\0\u0165"+
     "\0\u0198\0\u01cb\0\u01fe\0\u0231\0\u0264\0\u0297\0\u02ca\0\u02fd"+
     "\0\u0330\0\u0363\0\u0396\0\u03c9\0\u03fc\0\u042f\0\u0462\0\u0495"+
-    "\0\u04c8\0\u04fb\0\u03fc\0\u052e\0\u0561\0\u0495\0\u03fc\0\u04fb"+
-    "\0\u0594\0\u03fc\0\u03fc\0\u03fc\0\u05c7\0\u03fc\0\u05fa\0\u062d"+
-    "\0\u0660\0\u0693\0\u06c6\0\u06f9\0\u072c\0\u075f\0\u0792\0\u07c5"+
-    "\0\u07f8\0\u082b\0\u085e\0\u03fc\0\u03fc\0\u0891\0\u08c4\0\u08f7"+
-    "\0\u092a\0\u095d\0\u0990\0\u03fc\0\u03fc\0\u03fc\0\u03fc\0\u0495"+
-    "\0\u04c8\0\u04fb\0\u03fc\0\u0561\0\u0495\0\u04c8\0\u04fb\0\u09c3"+
-    "\0\u03fc\0\u03fc\0\u09f6\0\u0a29\0\u0a5c\0\u0a8f\0\u03fc\0\u03fc"+
-    "\0\u0ac2\0\u0af5\0\u0b28\0\u0495\0\u03fc\0\u0b5b\0\u04c8\0\u03fc"+
-    "\0\u04fb\0\u0b8e\0\u03fc\0\u0bc1\0\u0bf4\0\u03fc\0\u03fc\0\u03fc"+
-    "\0\u03fc\0\u03fc\0\u03fc\0\u03fc\0\u0c27\0\u0c5a\0\u04c8\0\u0c8d"+
-    "\0\u0cc0\0\u03fc\0\u0cf3\0\u0d26\0\u0d59\0\u0d8c\0\u0dbf\0\u0df2"+
-    "\0\u03fc\0\u0e25\0\u0e58\0\u0e8b\0\u0ebe\0\u0ef1\0\u0f24\0\u0f57"+
-    "\0\u0f8a\0\u03fc\0\u0fbd\0\u0ff0\0\u1023\0\u1056\0\u1089\0\u10bc"+
-    "\0\u03fc\0\u10ef\0\u1122\0\u0a5c\0\u0a8f\0\u082b\0\u1155\0\u1188"+
+    "\0\u04c8\0\u04fb\0\u052e\0\u042f\0\u0561\0\u0594\0\u04c8\0\u042f"+
+    "\0\u052e\0\u05c7\0\u042f\0\u042f\0\u042f\0\u05fa\0\u062d\0\u0660"+
+    "\0\u0693\0\u06c6\0\u042f\0\u06f9\0\u072c\0\u075f\0\u0792\0\u07c5"+
+    "\0\u07f8\0\u082b\0\u085e\0\u042f\0\u042f\0\u0891\0\u08c4\0\u08f7"+
+    "\0\u092a\0\u095d\0\u0990\0\u09c3\0\u042f\0\u042f\0\u042f\0\u04c8"+
+    "\0\u04fb\0\u052e\0\u042f\0\u042f\0\u0594\0\u04c8\0\u04fb\0\u052e"+
+    "\0\u09f6\0\u0a29\0\u042f\0\u042f\0\u0a5c\0\u0a8f\0\u0ac2\0\u0af5"+
+    "\0\u0b28\0\u0b5b\0\u0b8e\0\u04c8\0\u042f\0\u0bc1\0\u04fb\0\u042f"+
+    "\0\u052e\0\u0bf4\0\u042f\0\u042f\0\u042f\0\u0c27\0\u0c5a\0\u042f"+
+    "\0\u042f\0\u042f\0\u042f\0\u042f\0\u042f\0\u042f\0\u0c8d\0\u0cc0"+
+    "\0\u04fb\0\u0cf3\0\u0d26\0\u0d59\0\u0d8c\0\u042f\0\u0dbf\0\u0df2"+
+    "\0\u0e25\0\u0e58\0\u042f\0\u0e8b\0\u0ebe\0\u0ef1\0\u0f24\0\u0f57"+
+    "\0\u0f8a\0\u0fbd\0\u0ff0\0\u042f\0\u1023\0\u1056\0\u1089\0\u10bc"+
+    "\0\u10ef\0\u1122\0\u042f\0\u042f\0\u1155\0\u1188\0\u0ac2\0\u0af5"+
     "\0\u11bb\0\u11ee\0\u1221\0\u1254\0\u1287\0\u12ba\0\u12ed\0\u1320"+
-    "\0\u1353\0\u1386\0\u13b9\0\u03fc\0\u13ec\0\u141f\0\u1452\0\u1485"+
-    "\0\u14b8\0\u14eb\0\u151e\0\u03fc\0\u03fc\0\u1551\0\u1584\0\u15b7"+
-    "\0\u05c7\0\u05c7\0\u15ea\0\u161d\0\u1650\0\u06c6\0\u06c6\0\u1683"+
-    "\0\u16b6\0\u03fc\0\u16e9\0\u171c\0\u0891\0\u174f\0\u0891\0\u1782"+
-    "\0\u17b5\0\u17e8\0\u181b\0\u082b\0\u184e\0\u1881\0\u18b4\0\u18e7"+
-    "\0\u191a\0\u194d\0\u1980\0\u19b3\0\u03fc\0\u19e6\0\u1a19\0\u03fc"+
-    "\0\u1a4c\0\u1a7f\0\u1ab2\0\u1ae5\0\u1b18\0\u1b4b\0\u1b7e\0\u03fc"+
-    "\0\u1bb1\0\u1be4\0\u05c7\0\u1c17\0\u1c4a\0\u06c6\0\u1c7d\0\u1cb0"+
-    "\0\u0891\0\u1ce3\0\u1d16\0\u1d49\0\u1d7c\0\u1daf\0\u1de2\0\u1e15"+
-    "\0\u1e48\0\u1e7b\0\u1eae\0\u1ee1\0\u1f14\0\u1f47\0\u1f7a\0\u1fad"+
-    "\0\u1fe0\0\u2013\0\u2046\0\u2079\0\u20ac\0\u20df\0\u2112\0\u2145"+
-    "\0\u2178\0\u082b\0\u21ab\0\u21de\0\u2211\0\u2244\0\u2277\0\u22aa"+
-    "\0\u22dd\0\u2310\0\u2343\0\u2376\0\u23a9\0\u23dc\0\u240f\0\u2442"+
-    "\0\u03fc\0\u2475\0\u24a8\0\u24db\0\u082b\0\u082b\0\u250e\0\u2541"+
-    "\0\u2574\0\u03fc\0\u082b\0\u082b\0\u25a7\0\u03fc\0\u25da\0\u260d"+
-    "\0\u2640\0\u2673\0\u26a6\0\u26d9\0\u270c\0\u273f\0\u2772\0\u27a5"+
-    "\0\u27d8\0\u03fc\0\u03fc\0\u280b\0\u283e\0\u2871\0\u28a4\0\u03fc"+
-    "\0\u28d7\0\u290a\0\u293d\0\u2970\0\u03fc\0\u29a3\0\u03fc\0\u03fc"+
-    "\0\u03fc\0\u29d6\0\u03fc\0\u05c7\0\u06c6\0\u0891\0\u03fc\0\u03fc";
+    "\0\u1353\0\u1386\0\u13b9\0\u13ec\0\u141f\0\u1452\0\u042f\0\u1485"+
+    "\0\u14b8\0\u14eb\0\u151e\0\u1551\0\u1584\0\u15b7\0\u042f\0\u042f"+
+    "\0\u15ea\0\u161d\0\u1650\0\u05fa\0\u05fa\0\u1683\0\u16b6\0\u16e9"+
+    "\0\u06f9\0\u06f9\0\u171c\0\u174f\0\u042f\0\u1782\0\u17b5\0\u08c4"+
+    "\0\u17e8\0\u08c4\0\u181b\0\u184e\0\u1881\0\u18b4\0\u18e7\0\u191a"+
+    "\0\u085e\0\u194d\0\u1980\0\u19b3\0\u19e6\0\u1a19\0\u1a4c\0\u1a7f"+
+    "\0\u1ab2\0\u042f\0\u1ae5\0\u1b18\0\u042f\0\u1b4b\0\u1b7e\0\u1bb1"+
+    "\0\u1be4\0\u1c17\0\u1c4a\0\u1c7d\0\u042f\0\u1cb0\0\u1ce3\0\u05fa"+
+    "\0\u1d16\0\u1d49\0\u06f9\0\u1d7c\0\u1daf\0\u08c4\0\u1de2\0\u1e15"+
+    "\0\u1e48\0\u1e7b\0\u085e\0\u1eae\0\u1ee1\0\u1f14\0\u1f47\0\u1f7a"+
+    "\0\u1fad\0\u1fe0\0\u2013\0\u2046\0\u2079\0\u20ac\0\u20df\0\u2112"+
+    "\0\u2145\0\u2178\0\u21ab\0\u21de\0\u2211\0\u2244\0\u2277\0\u22aa"+
+    "\0\u042f\0\u085e\0\u22dd\0\u2310\0\u2343\0\u2376\0\u23a9\0\u23dc"+
+    "\0\u240f\0\u2442\0\u2475\0\u24a8\0\u24db\0\u250e\0\u2541\0\u2574"+
+    "\0\u042f\0\u25a7\0\u25da\0\u260d\0\u085e\0\u085e\0\u2640\0\u2673"+
+    "\0\u26a6\0\u042f\0\u085e\0\u085e\0\u26d9\0\u042f\0\u270c\0\u273f"+
+    "\0\u2772\0\u27a5\0\u27d8\0\u280b\0\u283e\0\u2871\0\u28a4\0\u28d7"+
+    "\0\u290a\0\u042f\0\u042f\0\u293d\0\u2970\0\u29a3\0\u29d6\0\u042f"+
+    "\0\u2a09\0\u2a3c\0\u2a6f\0\u2aa2\0\u042f\0\u2ad5\0\u042f\0\u042f"+
+    "\0\u042f\0\u2b08\0\u042f\0\u05fa\0\u06f9\0\u08c4\0\u042f\0\u042f";
 
   private static int [] zzUnpackRowMap() {
-    int [] result = new int[296];
+    int [] result = new int[304];
     int offset = 0;
     offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
     return result;
@@ -244,212 +231,219 @@ public class _OldXmlLexer implements FlexLexer {
   private static final int [] ZZ_TRANS = zzUnpackTrans();
 
   private static final String ZZ_TRANS_PACKED_0 =
-    "\3\25\1\26\4\25\1\27\7\25\1\30\11\25\1\31"+
-    "\1\25\1\32\6\25\1\26\17\25\1\33\1\34\1\33"+
-    "\1\26\4\33\1\35\3\33\4\34\1\36\1\37\10\34"+
-    "\1\31\1\33\1\40\1\33\2\34\1\41\2\34\1\26"+
-    "\1\33\5\34\6\33\3\34\3\33\1\26\1\42\1\43"+
-    "\2\33\1\35\7\33\1\36\11\33\1\31\1\33\1\40"+
-    "\6\33\1\26\1\44\16\33\4\45\1\46\3\45\1\47"+
-    "\7\45\1\50\11\45\1\51\1\45\1\52\26\45\5\53"+
-    "\1\46\2\53\1\54\7\53\1\55\11\53\1\56\1\53"+
-    "\1\57\26\53\1\33\1\60\1\33\1\26\4\33\1\61"+
-    "\3\33\4\60\1\36\1\33\10\60\1\31\1\33\1\40"+
-    "\1\33\2\60\1\33\2\60\1\26\1\33\5\60\6\33"+
-    "\3\60\1\33\1\62\1\33\1\26\4\33\1\61\1\63"+
-    "\2\33\4\62\1\36\1\64\10\62\1\31\1\33\1\40"+
-    "\1\33\2\62\1\33\2\62\1\26\1\65\5\62\6\33"+
-    "\3\62\7\66\1\67\1\70\7\66\1\71\11\66\1\72"+
-    "\1\66\1\73\26\66\3\33\1\26\1\74\1\75\2\33"+
-    "\1\61\1\63\6\33\1\36\1\64\10\33\1\31\1\33"+
-    "\1\40\6\33\1\26\17\33\4\76\1\77\3\76\1\61"+
-    "\7\76\1\100\11\76\1\101\1\76\1\102\33\76\1\77"+
-    "\2\76\1\61\7\76\1\100\11\76\1\101\1\76\1\102"+
-    "\26\76\10\103\1\104\7\103\1\105\11\103\1\106\1\103"+
-    "\1\107\3\103\1\110\22\103\1\33\1\62\1\33\1\26"+
-    "\4\33\1\35\2\33\1\111\4\62\1\36\1\112\10\62"+
-    "\1\31\1\33\1\40\1\33\2\62\1\33\2\62\1\26"+
-    "\1\33\1\62\1\113\1\114\2\62\6\33\3\62\3\33"+
-    "\1\26\1\115\1\116\2\33\1\35\2\33\1\111\4\33"+
-    "\1\36\1\112\10\33\1\31\1\33\1\40\6\33\1\26"+
-    "\20\33\2\62\1\26\1\117\1\120\1\62\1\121\1\122"+
-    "\3\33\2\62\1\123\1\62\1\124\1\125\4\62\1\126"+
-    "\3\62\1\127\1\130\1\131\1\132\2\62\1\133\2\62"+
-    "\1\26\1\33\1\62\1\134\1\135\2\62\1\136\1\137"+
-    "\1\140\1\141\1\142\1\143\3\62\4\45\1\144\3\45"+
-    "\1\47\7\45\1\50\11\45\1\51\1\45\1\52\26\45"+
-    "\5\53\1\144\2\53\1\54\7\53\1\55\11\53\1\56"+
-    "\1\53\1\57\26\53\10\25\1\145\7\25\1\146\11\25"+
-    "\1\147\1\25\1\32\26\25\3\33\1\26\4\33\1\35"+
-    "\2\33\1\111\4\33\1\36\1\33\1\150\7\33\1\31"+
-    "\1\33\1\40\6\33\1\26\17\33\7\66\1\151\1\70"+
-    "\7\66\1\71\11\66\1\72\1\66\1\73\26\66\66\0"+
-    "\1\26\37\0\1\26\30\0\1\152\1\153\25\0\1\154"+
-    "\42\0\1\155\43\0\1\156\12\0\4\156\2\0\10\156"+
-    "\3\0\1\157\2\156\1\0\2\156\2\0\5\156\6\0"+
-    "\3\156\1\0\1\156\12\0\4\156\2\0\10\156\4\0"+
-    "\2\156\1\0\2\156\2\0\5\156\6\0\3\156\1\0"+
-    "\2\34\3\0\2\34\4\0\4\34\2\0\10\34\4\0"+
-    "\2\34\1\0\2\34\2\0\5\34\6\0\3\34\12\0"+
-    "\1\160\71\0\1\161\41\0\4\45\1\0\62\45\1\0"+
-    "\5\45\1\162\54\45\1\0\13\45\1\163\43\45\1\164"+
-    "\2\45\1\0\7\45\4\164\2\45\10\164\3\45\1\165"+
-    "\2\164\1\45\2\164\2\45\5\164\6\45\3\164\1\45"+
-    "\1\164\2\45\1\0\7\45\4\164\2\45\10\164\4\45"+
-    "\2\164\1\45\2\164\2\45\5\164\6\45\3\164\5\53"+
-    "\1\0\62\53\1\0\4\53\1\166\55\53\1\0\12\53"+
-    "\1\167\43\53\1\170\3\53\1\0\6\53\4\170\2\53"+
-    "\10\170\3\53\1\171\2\170\1\53\2\170\2\53\5\170"+
-    "\6\53\3\170\1\53\1\170\3\53\1\0\6\53\4\170"+
-    "\2\53\10\170\4\53\2\170\1\53\2\170\2\53\5\170"+
-    "\6\53\3\170\1\0\2\60\3\0\2\60\4\0\4\60"+
-    "\2\0\10\60\4\0\2\60\1\0\2\60\2\0\5\60"+
-    "\6\0\3\60\11\0\1\152\1\160\51\0\2\62\3\0"+
-    "\2\62\4\0\4\62\2\0\10\62\4\0\2\62\1\0"+
-    "\2\62\2\0\5\62\6\0\3\62\21\0\1\172\41\0"+
-    "\7\66\1\173\62\66\1\174\62\66\1\173\2\66\1\175"+
-    "\57\66\1\173\10\66\1\176\43\66\1\177\5\66\1\173"+
-    "\4\66\4\177\2\66\10\177\3\66\1\200\2\177\1\66"+
-    "\2\177\2\66\5\177\6\66\3\177\1\66\1\177\5\66"+
-    "\1\173\4\66\4\177\2\66\10\177\4\66\2\177\1\66"+
-    "\2\177\2\66\5\177\6\66\3\177\21\0\1\201\42\0"+
-    "\2\62\3\0\2\62\4\0\4\62\2\0\3\62\1\202"+
-    "\4\62\4\0\2\62\1\0\2\62\2\0\5\62\6\0"+
-    "\3\62\1\0\2\62\3\0\2\62\4\0\4\62\2\0"+
-    "\10\62\4\0\2\62\1\0\2\62\2\0\1\203\4\62"+
-    "\6\0\3\62\4\204\1\76\56\204\5\205\1\76\55\205"+
-    "\1\0\2\62\3\0\1\62\1\206\4\0\4\62\2\0"+
-    "\10\62\4\0\2\62\1\0\2\62\2\0\5\62\6\0"+
-    "\3\62\12\0\1\207\51\0\2\62\3\0\2\62\4\0"+
-    "\4\62\2\0\1\62\1\210\6\62\4\0\2\62\1\0"+
-    "\2\62\2\0\5\62\6\0\3\62\1\0\2\62\3\0"+
-    "\2\62\4\0\4\62\2\0\10\62\4\0\2\62\1\0"+
-    "\2\62\2\0\3\62\1\211\1\62\6\0\3\62\22\0"+
-    "\1\212\6\0\1\213\14\0\1\214\12\0\1\215\2\0"+
-    "\2\62\3\0\2\62\4\0\4\62\2\0\3\62\1\216"+
-    "\4\62\4\0\2\62\1\0\2\62\2\0\5\62\6\0"+
-    "\3\62\1\0\2\62\3\0\2\62\4\0\4\62\2\0"+
-    "\10\62\4\0\2\62\1\0\2\62\2\0\1\217\4\62"+
-    "\6\0\3\62\12\0\1\220\70\0\1\221\65\0\1\222"+
-    "\3\0\1\223\33\0\7\66\1\224\53\66\7\0\1\225"+
-    "\3\0\1\226\1\0\1\227\1\230\4\0\1\231\2\0"+
-    "\1\232\72\0\1\233\45\0\1\234\42\0\2\156\3\0"+
-    "\2\156\4\0\4\156\2\0\10\156\1\0\1\235\2\0"+
-    "\2\156\1\0\2\156\2\0\5\156\6\0\3\156\2\0"+
-    "\1\236\33\0\1\237\33\0\1\225\3\0\1\226\47\0"+
-    "\4\45\1\0\6\45\1\240\53\45\1\0\14\45\1\241"+
-    "\42\45\2\164\1\45\1\0\1\45\2\164\4\45\4\164"+
-    "\2\45\10\164\1\45\1\242\2\45\2\164\1\45\2\164"+
-    "\2\45\5\164\6\45\3\164\2\45\1\243\1\45\1\0"+
-    "\31\45\1\244\24\45\5\53\1\0\5\53\1\245\54\53"+
-    "\1\0\13\53\1\246\42\53\2\170\2\53\1\0\2\170"+
-    "\4\53\4\170\2\53\10\170\1\53\1\247\2\53\2\170"+
-    "\1\53\2\170\2\53\5\170\6\53\3\170\2\53\1\250"+
-    "\2\53\1\0\30\53\1\251\24\53\7\66\1\0\53\66"+
-    "\21\0\1\252\41\0\7\66\1\253\3\66\1\254\56\66"+
-    "\1\173\11\66\1\255\42\66\2\177\3\66\1\177\1\256"+
-    "\4\66\4\177\2\66\10\177\1\66\1\257\2\66\2\177"+
-    "\1\66\2\177\2\66\5\177\6\66\3\177\2\66\1\260"+
-    "\4\66\1\173\26\66\1\261\24\66\1\0\2\62\3\0"+
-    "\2\62\4\0\4\62\2\0\10\62\4\0\2\62\1\0"+
-    "\2\62\2\0\4\62\1\262\6\0\3\62\1\0\2\62"+
-    "\3\0\2\62\4\0\4\62\2\0\10\62\4\0\2\62"+
-    "\1\0\2\62\2\0\2\62\1\263\2\62\6\0\3\62"+
-    "\7\0\1\225\3\0\1\226\2\0\1\230\4\0\1\231"+
-    "\2\0\1\232\35\0\2\62\3\0\2\62\4\0\4\62"+
-    "\2\0\10\62\4\0\2\62\1\0\2\62\2\0\1\264"+
-    "\4\62\6\0\3\62\1\0\2\62\3\0\2\62\4\0"+
-    "\4\62\2\0\10\62\4\0\2\62\1\0\2\62\2\0"+
-    "\1\62\1\265\3\62\6\0\3\62\50\0\1\266\40\0"+
-    "\1\267\50\0\1\270\70\0\1\271\41\0\2\62\3\0"+
-    "\2\62\4\0\4\62\2\0\10\62\4\0\2\62\1\0"+
-    "\2\62\2\0\4\62\1\272\6\0\3\62\1\0\2\62"+
-    "\3\0\2\62\4\0\4\62\2\0\10\62\4\0\2\62"+
-    "\1\0\2\62\2\0\2\62\1\273\2\62\6\0\3\62"+
-    "\7\0\1\274\3\0\1\226\70\0\1\275\55\0\1\276"+
-    "\71\0\1\277\46\0\1\300\67\0\1\301\76\0\1\302"+
-    "\51\0\1\303\73\0\1\304\55\0\1\305\1\306\77\0"+
-    "\1\307\23\0\1\236\30\0\1\310\31\0\1\311\11\0"+
-    "\3\311\7\0\1\311\10\0\1\311\11\0\1\311\7\0"+
-    "\1\311\1\0\4\45\1\0\7\45\1\312\50\45\1\243"+
-    "\1\45\1\0\26\45\1\313\31\45\1\314\1\45\1\0"+
-    "\7\45\3\314\7\45\1\314\10\45\1\314\11\45\1\314"+
-    "\7\45\1\314\1\45\5\53\1\0\6\53\1\315\50\53"+
-    "\1\250\2\53\1\0\25\53\1\316\31\53\1\317\2\53"+
-    "\1\0\6\53\3\317\7\53\1\317\10\53\1\317\11\53"+
-    "\1\317\7\53\1\317\1\53\7\66\1\300\62\66\1\173"+
-    "\4\66\1\320\47\66\2\177\3\66\1\177\1\156\4\66"+
-    "\4\177\2\66\10\177\1\66\1\257\2\66\2\177\1\66"+
-    "\2\177\2\66\5\177\6\66\3\177\2\66\1\260\4\66"+
-    "\1\173\23\66\1\321\31\66\1\322\4\66\1\173\4\66"+
-    "\3\322\7\66\1\322\10\66\1\322\11\66\1\322\7\66"+
-    "\1\322\1\66\1\0\2\62\3\0\2\62\4\0\4\62"+
-    "\2\0\2\62\1\323\5\62\4\0\2\62\1\0\2\62"+
-    "\2\0\5\62\6\0\3\62\1\0\2\62\3\0\2\62"+
-    "\4\0\3\62\1\324\2\0\10\62\4\0\2\62\1\0"+
-    "\2\62\2\0\5\62\6\0\3\62\1\0\2\62\3\0"+
-    "\2\62\4\0\3\62\1\325\2\0\10\62\4\0\2\62"+
-    "\1\0\2\62\2\0\5\62\6\0\3\62\46\0\1\326"+
-    "\74\0\1\327\17\0\1\330\127\0\1\331\1\0\2\62"+
-    "\3\0\2\62\4\0\4\62\2\0\2\62\1\332\5\62"+
-    "\4\0\2\62\1\0\2\62\2\0\5\62\6\0\3\62"+
-    "\1\0\2\62\3\0\2\62\4\0\3\62\1\333\2\0"+
-    "\10\62\4\0\2\62\1\0\2\62\2\0\5\62\6\0"+
-    "\3\62\7\0\1\25\77\0\1\334\66\0\1\335\47\0"+
-    "\1\336\61\0\1\337\65\0\1\340\62\0\1\341\62\0"+
-    "\1\342\71\0\1\343\76\0\1\344\22\0\1\311\11\0"+
-    "\3\311\7\0\1\311\4\0\1\310\3\0\1\311\11\0"+
-    "\1\311\7\0\1\311\1\0\4\45\1\0\10\45\1\345"+
-    "\47\45\1\314\1\45\1\0\7\45\3\314\7\45\1\314"+
-    "\4\45\1\313\3\45\1\314\11\45\1\314\7\45\1\314"+
-    "\1\45\5\53\1\0\7\53\1\346\47\53\1\317\2\53"+
-    "\1\0\6\53\3\317\7\53\1\317\4\53\1\316\3\53"+
-    "\1\317\11\53\1\317\7\53\1\317\1\53\7\66\1\173"+
-    "\5\66\1\347\47\66\1\322\4\66\1\173\4\66\3\322"+
-    "\7\66\1\322\4\66\1\321\3\66\1\322\11\66\1\322"+
-    "\7\66\1\322\1\66\1\0\2\62\3\0\2\62\4\0"+
-    "\4\62\2\0\1\350\7\62\4\0\2\62\1\0\2\62"+
-    "\2\0\5\62\6\0\3\62\1\0\2\62\3\0\2\62"+
-    "\4\0\4\62\2\0\4\62\1\351\3\62\4\0\2\62"+
-    "\1\0\2\62\2\0\5\62\6\0\3\62\1\0\2\62"+
-    "\3\0\2\62\4\0\4\62\2\0\10\62\4\0\2\62"+
-    "\1\0\2\62\2\0\1\352\4\62\6\0\3\62\24\0"+
-    "\1\353\63\0\1\354\53\0\1\355\72\0\1\356\35\0"+
-    "\2\62\3\0\2\62\4\0\4\62\2\0\1\357\7\62"+
-    "\4\0\2\62\1\0\2\62\2\0\5\62\6\0\3\62"+
-    "\1\0\2\62\3\0\2\62\4\0\4\62\2\0\4\62"+
-    "\1\360\3\62\4\0\2\62\1\0\2\62\2\0\5\62"+
-    "\6\0\3\62\25\0\1\361\66\0\1\362\47\0\1\363"+
-    "\63\0\1\364\67\0\1\365\54\0\1\366\66\0\1\367"+
-    "\110\0\1\370\55\0\1\371\17\0\4\45\1\0\11\45"+
-    "\1\372\44\45\5\53\1\0\10\53\1\373\44\53\7\66"+
-    "\1\173\6\66\1\374\44\66\1\0\2\62\3\0\2\62"+
-    "\4\0\1\375\3\62\2\0\10\62\4\0\2\62\1\0"+
-    "\2\62\2\0\5\62\6\0\3\62\1\0\2\62\3\0"+
-    "\2\62\4\0\4\62\2\0\10\62\4\0\2\62\1\0"+
-    "\2\62\2\0\3\62\1\376\1\62\6\0\3\62\22\0"+
-    "\1\377\62\0\1\u0100\57\0\1\u0101\60\0\1\u0102\46\0"+
-    "\2\62\3\0\2\62\4\0\1\u0103\3\62\2\0\10\62"+
-    "\4\0\2\62\1\0\2\62\2\0\5\62\6\0\3\62"+
-    "\1\0\2\62\3\0\2\62\4\0\4\62\2\0\10\62"+
-    "\4\0\2\62\1\0\2\62\2\0\3\62\1\u0104\1\62"+
-    "\6\0\3\62\15\0\1\u0105\73\0\1\u0106\53\0\1\u0107"+
-    "\110\0\1\u0108\37\0\1\u0109\57\0\1\u010a\62\0\1\u010b"+
-    "\71\0\1\u010c\34\0\4\45\1\0\12\45\1\u010d\43\45"+
-    "\5\53\1\0\11\53\1\u010e\43\53\7\66\1\173\7\66"+
-    "\1\u010f\43\66\26\0\1\u0110\65\0\1\u0111\47\0\1\u0112"+
-    "\72\0\1\u0113\52\0\1\u0114\112\0\1\u0115\63\0\1\u0116"+
-    "\35\0\1\u0117\105\0\1\u0118\40\0\1\u0119\37\0\4\45"+
-    "\1\0\11\45\1\u011a\44\45\5\53\1\0\10\53\1\u011b"+
-    "\44\53\7\66\1\173\6\66\1\u011c\44\66\15\0\1\u011d"+
-    "\73\0\1\u011e\47\0\1\u011f\75\0\1\u0120\53\0\1\u0121"+
-    "\73\0\1\u0122\51\0\1\u0123\43\0\4\45\1\0\6\45"+
-    "\1\u0124\47\45\5\53\1\0\5\53\1\u0125\47\53\7\66"+
-    "\1\173\3\66\1\u0126\47\66\15\0\1\u0127\70\0\1\u0128"+
-    "\37\0";
+    "\3\26\1\27\2\26\1\30\6\26\1\31\11\26\1\32"+
+    "\1\26\1\33\6\26\1\27\22\26\1\34\1\35\1\34"+
+    "\1\27\2\34\1\36\2\34\4\35\1\37\1\40\10\35"+
+    "\1\32\1\34\1\41\1\34\2\35\1\42\2\35\1\27"+
+    "\3\34\5\35\6\34\3\35\4\34\1\27\2\34\1\36"+
+    "\6\34\1\37\11\34\1\32\1\34\1\41\6\34\1\27"+
+    "\1\43\1\44\1\45\17\34\6\46\1\47\6\46\1\50"+
+    "\11\46\1\51\1\46\1\52\11\46\1\53\17\46\6\54"+
+    "\1\55\6\54\1\56\11\54\1\57\1\54\1\60\10\54"+
+    "\1\53\20\54\1\34\1\61\1\34\1\27\2\34\1\62"+
+    "\2\34\4\61\1\37\1\34\10\61\1\32\1\34\1\41"+
+    "\1\34\2\61\1\34\2\61\1\27\3\34\5\61\6\34"+
+    "\3\61\2\34\1\63\1\34\1\27\2\34\1\62\2\34"+
+    "\4\63\1\37\1\64\10\63\1\32\1\34\1\41\1\34"+
+    "\2\63\1\34\2\63\1\27\1\65\2\34\5\63\6\34"+
+    "\3\63\1\66\5\67\1\70\1\71\6\67\1\72\11\67"+
+    "\1\73\1\67\1\74\31\67\3\34\1\27\2\34\1\62"+
+    "\6\34\1\37\1\64\10\34\1\32\1\34\1\41\6\34"+
+    "\1\27\1\34\1\75\1\76\16\34\1\66\6\77\1\62"+
+    "\6\77\1\100\11\77\1\101\1\77\1\102\11\77\1\103"+
+    "\25\77\1\62\6\77\1\100\11\77\1\101\1\77\1\102"+
+    "\10\77\1\103\20\77\6\104\1\105\6\104\1\106\11\104"+
+    "\1\107\1\104\1\110\3\104\1\111\25\104\5\34\1\112"+
+    "\1\36\6\34\1\37\11\34\1\32\1\34\1\41\32\34"+
+    "\1\63\1\34\1\27\2\34\1\36\1\34\1\113\4\63"+
+    "\1\37\1\114\10\63\1\32\1\34\1\41\1\34\2\63"+
+    "\1\34\2\63\1\27\3\34\1\63\1\115\1\116\2\63"+
+    "\6\34\3\63\4\34\1\27\2\34\1\36\1\34\1\113"+
+    "\4\34\1\37\1\114\10\34\1\32\1\34\1\41\6\34"+
+    "\1\27\1\34\1\117\1\120\20\34\2\63\1\27\1\63"+
+    "\1\121\1\122\2\34\2\63\1\123\1\63\1\124\1\125"+
+    "\4\63\1\126\3\63\1\127\1\130\1\131\1\132\2\63"+
+    "\1\133\2\63\1\27\1\34\1\134\1\135\1\63\1\136"+
+    "\1\137\2\63\1\140\1\141\1\142\1\143\1\144\1\145"+
+    "\3\63\1\34\6\46\1\47\6\46\1\50\11\46\1\51"+
+    "\1\46\1\52\11\46\1\146\17\46\6\54\1\55\6\54"+
+    "\1\56\11\54\1\57\1\54\1\60\10\54\1\146\20\54"+
+    "\6\26\1\147\6\26\1\150\11\26\1\151\1\26\1\33"+
+    "\31\26\3\34\1\27\2\34\1\36\1\34\1\113\4\34"+
+    "\1\37\1\34\1\152\7\34\1\32\1\34\1\41\6\34"+
+    "\1\27\22\34\5\67\1\153\1\71\6\67\1\72\11\67"+
+    "\1\73\1\67\1\74\31\67\66\0\1\27\34\0\1\27"+
+    "\31\0\1\154\25\0\1\155\24\0\1\156\15\0\1\157"+
+    "\46\0\1\160\7\0\4\160\2\0\10\160\3\0\1\161"+
+    "\2\160\1\0\2\160\4\0\5\160\6\0\3\160\2\0"+
+    "\1\160\7\0\4\160\2\0\10\160\4\0\2\160\1\0"+
+    "\2\160\4\0\5\160\6\0\3\160\2\0\2\35\1\0"+
+    "\2\35\3\0\4\35\2\0\10\35\4\0\2\35\1\0"+
+    "\2\35\4\0\5\35\6\0\3\35\10\0\1\162\71\0"+
+    "\1\163\44\0\43\46\1\0\26\46\1\164\33\46\1\0"+
+    "\34\46\1\165\25\46\1\0\20\46\1\166\7\46\4\166"+
+    "\2\46\10\166\3\46\1\167\2\166\1\46\2\166\3\46"+
+    "\1\0\5\166\6\46\3\166\2\46\1\166\7\46\4\166"+
+    "\2\46\10\166\4\46\2\166\1\46\2\166\3\46\1\0"+
+    "\5\166\6\46\3\166\1\46\42\54\1\0\27\54\1\170"+
+    "\32\54\1\0\35\54\1\171\24\54\1\0\21\54\1\172"+
+    "\7\54\4\172\2\54\10\172\3\54\1\173\2\172\1\54"+
+    "\2\172\2\54\1\0\1\54\5\172\6\54\3\172\2\54"+
+    "\1\172\7\54\4\172\2\54\10\172\4\54\2\172\1\54"+
+    "\2\172\2\54\1\0\1\54\5\172\6\54\3\172\1\54"+
+    "\1\0\2\61\1\0\2\61\3\0\4\61\2\0\10\61"+
+    "\4\0\2\61\1\0\2\61\4\0\5\61\6\0\3\61"+
+    "\10\0\1\162\52\0\1\156\1\0\2\63\1\0\2\63"+
+    "\3\0\4\63\2\0\10\63\4\0\2\63\1\0\2\63"+
+    "\4\0\5\63\6\0\3\63\17\0\1\174\44\0\5\67"+
+    "\1\175\62\67\1\176\62\67\1\175\1\67\1\177\60\67"+
+    "\1\175\7\67\1\200\46\67\1\201\3\67\1\175\3\67"+
+    "\4\201\2\67\10\201\3\67\1\202\2\201\1\67\2\201"+
+    "\4\67\5\201\6\67\3\201\2\67\1\201\3\67\1\175"+
+    "\3\67\4\201\2\67\10\201\4\67\2\201\1\67\2\201"+
+    "\4\67\5\201\6\67\3\201\1\67\16\0\1\203\51\0"+
+    "\1\204\56\0\2\63\1\0\2\63\3\0\4\63\2\0"+
+    "\3\63\1\205\4\63\4\0\2\63\1\0\2\63\4\0"+
+    "\5\63\6\0\3\63\2\0\2\63\1\0\2\63\3\0"+
+    "\4\63\2\0\10\63\4\0\2\63\1\0\2\63\4\0"+
+    "\1\206\4\63\6\0\3\63\1\0\42\207\1\77\20\207"+
+    "\43\210\1\77\17\210\1\0\2\63\1\0\1\63\1\211"+
+    "\3\0\4\63\2\0\10\63\4\0\2\63\1\0\2\63"+
+    "\4\0\5\63\6\0\3\63\10\0\1\212\54\0\2\63"+
+    "\1\0\2\63\3\0\4\63\2\0\1\63\1\213\6\63"+
+    "\4\0\2\63\1\0\2\63\4\0\5\63\6\0\3\63"+
+    "\2\0\2\63\1\0\2\63\3\0\4\63\2\0\10\63"+
+    "\4\0\2\63\1\0\2\63\4\0\3\63\1\214\1\63"+
+    "\6\0\3\63\20\0\1\215\6\0\1\216\16\0\1\217"+
+    "\12\0\1\220\3\0\2\63\1\0\2\63\3\0\4\63"+
+    "\2\0\3\63\1\221\4\63\4\0\2\63\1\0\2\63"+
+    "\4\0\5\63\6\0\3\63\2\0\2\63\1\0\2\63"+
+    "\3\0\4\63\2\0\10\63\4\0\2\63\1\0\2\63"+
+    "\4\0\1\222\4\63\6\0\3\63\10\0\1\223\70\0"+
+    "\1\224\65\0\1\225\3\0\1\226\36\0\5\67\1\227"+
+    "\55\67\5\0\1\230\2\0\1\231\1\0\1\232\1\233"+
+    "\4\0\1\234\2\0\1\235\72\0\1\236\45\0\1\237"+
+    "\45\0\2\160\1\0\2\160\3\0\4\160\2\0\10\160"+
+    "\1\0\1\240\2\0\2\160\1\0\2\160\4\0\5\160"+
+    "\6\0\3\160\3\0\1\241\30\0\1\242\34\0\1\230"+
+    "\2\0\1\231\52\0\10\46\1\243\32\46\1\0\35\46"+
+    "\1\244\24\46\1\0\20\46\2\166\1\46\2\166\3\46"+
+    "\4\166\2\46\10\166\1\46\1\245\2\46\2\166\1\46"+
+    "\2\166\3\46\1\0\5\166\6\46\3\166\3\46\1\246"+
+    "\30\46\1\247\7\46\1\0\17\46\10\54\1\250\31\54"+
+    "\1\0\36\54\1\251\23\54\1\0\21\54\2\172\1\54"+
+    "\2\172\3\54\4\172\2\54\10\172\1\54\1\252\2\54"+
+    "\2\172\1\54\2\172\2\54\1\0\1\54\5\172\6\54"+
+    "\3\172\3\54\1\253\30\54\1\254\6\54\1\0\20\54"+
+    "\5\67\1\0\55\67\16\0\1\255\44\0\5\67\1\256"+
+    "\2\67\1\257\57\67\1\175\10\67\1\260\45\67\2\201"+
+    "\1\67\1\201\1\261\3\67\4\201\2\67\10\201\1\67"+
+    "\1\262\2\67\2\201\1\67\2\201\4\67\5\201\6\67"+
+    "\3\201\3\67\1\263\2\67\1\175\25\67\1\264\27\67"+
+    "\1\0\2\63\1\0\2\63\3\0\4\63\2\0\10\63"+
+    "\4\0\2\63\1\0\2\63\4\0\4\63\1\265\6\0"+
+    "\3\63\2\0\2\63\1\0\2\63\3\0\4\63\2\0"+
+    "\10\63\4\0\2\63\1\0\2\63\4\0\2\63\1\266"+
+    "\2\63\6\0\3\63\1\0\1\267\2\211\1\267\1\211"+
+    "\1\270\3\267\4\211\2\267\10\211\4\267\2\211\1\267"+
+    "\2\211\4\267\5\211\6\267\3\211\1\267\5\0\1\230"+
+    "\2\0\1\231\2\0\1\233\4\0\1\234\2\0\1\235"+
+    "\40\0\2\63\1\0\2\63\3\0\4\63\2\0\10\63"+
+    "\4\0\2\63\1\0\2\63\4\0\1\271\4\63\6\0"+
+    "\3\63\2\0\2\63\1\0\2\63\3\0\4\63\2\0"+
+    "\10\63\4\0\2\63\1\0\2\63\4\0\1\63\1\272"+
+    "\3\63\6\0\3\63\50\0\1\273\36\0\1\274\50\0"+
+    "\1\275\70\0\1\276\44\0\2\63\1\0\2\63\3\0"+
+    "\4\63\2\0\10\63\4\0\2\63\1\0\2\63\4\0"+
+    "\4\63\1\277\6\0\3\63\2\0\2\63\1\0\2\63"+
+    "\3\0\4\63\2\0\10\63\4\0\2\63\1\0\2\63"+
+    "\4\0\2\63\1\300\2\63\6\0\3\63\6\0\1\301"+
+    "\2\0\1\231\70\0\1\302\55\0\1\303\71\0\1\304"+
+    "\47\0\1\305\66\0\1\306\76\0\1\307\51\0\1\310"+
+    "\73\0\1\311\55\0\1\312\1\313\77\0\1\314\26\0"+
+    "\1\241\25\0\1\315\34\0\1\316\6\0\3\316\7\0"+
+    "\1\316\10\0\1\316\13\0\1\316\7\0\1\316\2\0"+
+    "\11\46\1\317\31\46\1\0\21\46\1\246\25\46\1\320"+
+    "\12\46\1\0\21\46\1\321\6\46\3\321\7\46\1\321"+
+    "\10\46\1\321\6\46\1\0\4\46\1\321\7\46\1\321"+
+    "\2\46\11\54\1\322\30\54\1\0\22\54\1\253\25\54"+
+    "\1\323\11\54\1\0\22\54\1\324\6\54\3\324\7\54"+
+    "\1\324\10\54\1\324\5\54\1\0\5\54\1\324\7\54"+
+    "\1\324\2\54\5\67\1\305\62\67\1\175\3\67\1\325"+
+    "\52\67\2\201\1\67\1\201\1\160\3\67\4\201\2\67"+
+    "\10\201\1\67\1\262\2\67\2\201\1\67\2\201\4\67"+
+    "\5\201\6\67\3\201\3\67\1\263\2\67\1\175\22\67"+
+    "\1\326\34\67\1\327\2\67\1\175\3\67\3\327\7\67"+
+    "\1\327\10\67\1\327\13\67\1\327\7\67\1\327\2\67"+
+    "\1\0\2\63\1\0\2\63\3\0\4\63\2\0\2\63"+
+    "\1\330\5\63\4\0\2\63\1\0\2\63\4\0\5\63"+
+    "\6\0\3\63\2\0\2\63\1\0\2\63\3\0\3\63"+
+    "\1\331\2\0\10\63\4\0\2\63\1\0\2\63\4\0"+
+    "\5\63\6\0\3\63\1\0\5\267\1\332\56\267\2\211"+
+    "\1\267\1\211\1\333\3\267\4\211\2\267\10\211\4\267"+
+    "\2\211\1\267\2\211\4\267\5\211\6\267\3\211\1\267"+
+    "\1\0\2\63\1\0\2\63\3\0\3\63\1\334\2\0"+
+    "\10\63\4\0\2\63\1\0\2\63\4\0\5\63\6\0"+
+    "\3\63\46\0\1\335\74\0\1\336\15\0\1\337\131\0"+
+    "\1\340\2\0\2\63\1\0\2\63\3\0\4\63\2\0"+
+    "\2\63\1\341\5\63\4\0\2\63\1\0\2\63\4\0"+
+    "\5\63\6\0\3\63\2\0\2\63\1\0\2\63\3\0"+
+    "\3\63\1\342\2\0\10\63\4\0\2\63\1\0\2\63"+
+    "\4\0\5\63\6\0\3\63\6\0\1\26\76\0\1\343"+
+    "\66\0\1\344\47\0\1\345\61\0\1\346\65\0\1\347"+
+    "\62\0\1\350\62\0\1\351\71\0\1\352\76\0\1\353"+
+    "\25\0\1\316\6\0\3\316\7\0\1\316\4\0\1\315"+
+    "\3\0\1\316\13\0\1\316\7\0\1\316\2\0\12\46"+
+    "\1\354\30\46\1\0\21\46\1\321\6\46\3\321\7\46"+
+    "\1\321\4\46\1\320\3\46\1\321\6\46\1\0\4\46"+
+    "\1\321\7\46\1\321\2\46\12\54\1\355\27\54\1\0"+
+    "\22\54\1\324\6\54\3\324\7\54\1\324\4\54\1\323"+
+    "\3\54\1\324\5\54\1\0\5\54\1\324\7\54\1\324"+
+    "\2\54\5\67\1\175\4\67\1\356\52\67\1\327\2\67"+
+    "\1\175\3\67\3\327\7\67\1\327\4\67\1\326\3\67"+
+    "\1\327\13\67\1\327\7\67\1\327\2\67\1\0\2\63"+
+    "\1\0\2\63\3\0\4\63\2\0\1\357\7\63\4\0"+
+    "\2\63\1\0\2\63\4\0\5\63\6\0\3\63\2\0"+
+    "\2\63\1\0\2\63\3\0\4\63\2\0\4\63\1\360"+
+    "\3\63\4\0\2\63\1\0\2\63\4\0\5\63\6\0"+
+    "\3\63\1\0\5\267\1\361\55\267\1\0\2\63\1\0"+
+    "\2\63\3\0\4\63\2\0\10\63\4\0\2\63\1\0"+
+    "\2\63\4\0\1\362\4\63\6\0\3\63\22\0\1\363"+
+    "\63\0\1\364\53\0\1\365\72\0\1\366\40\0\2\63"+
+    "\1\0\2\63\3\0\4\63\2\0\1\367\7\63\4\0"+
+    "\2\63\1\0\2\63\4\0\5\63\6\0\3\63\2\0"+
+    "\2\63\1\0\2\63\3\0\4\63\2\0\4\63\1\370"+
+    "\3\63\4\0\2\63\1\0\2\63\4\0\5\63\6\0"+
+    "\3\63\23\0\1\371\66\0\1\372\47\0\1\373\63\0"+
+    "\1\374\67\0\1\375\54\0\1\376\66\0\1\377\112\0"+
+    "\1\u0100\53\0\1\u0101\22\0\13\46\1\u0102\27\46\1\0"+
+    "\17\46\13\54\1\u0103\26\54\1\0\20\54\5\67\1\175"+
+    "\5\67\1\u0104\47\67\1\0\2\63\1\0\2\63\3\0"+
+    "\1\u0105\3\63\2\0\10\63\4\0\2\63\1\0\2\63"+
+    "\4\0\5\63\6\0\3\63\2\0\2\63\1\0\2\63"+
+    "\3\0\4\63\2\0\10\63\4\0\2\63\1\0\2\63"+
+    "\4\0\3\63\1\u0106\1\63\6\0\3\63\20\0\1\u0107"+
+    "\62\0\1\u0108\57\0\1\u0109\60\0\1\u010a\51\0\2\63"+
+    "\1\0\2\63\3\0\1\u010b\3\63\2\0\10\63\4\0"+
+    "\2\63\1\0\2\63\4\0\5\63\6\0\3\63\2\0"+
+    "\2\63\1\0\2\63\3\0\4\63\2\0\10\63\4\0"+
+    "\2\63\1\0\2\63\4\0\3\63\1\u010c\1\63\6\0"+
+    "\3\63\13\0\1\u010d\73\0\1\u010e\53\0\1\u010f\112\0"+
+    "\1\u0110\35\0\1\u0111\57\0\1\u0112\62\0\1\u0113\71\0"+
+    "\1\u0114\37\0\14\46\1\u0115\26\46\1\0\17\46\14\54"+
+    "\1\u0116\25\54\1\0\20\54\5\67\1\175\6\67\1\u0117"+
+    "\46\67\23\0\1\u0118\65\0\1\u0119\47\0\1\u011a\72\0"+
+    "\1\u011b\52\0\1\u011c\114\0\1\u011d\63\0\1\u011e\33\0"+
+    "\1\u011f\107\0\1\u0120\36\0\1\u0121\42\0\13\46\1\u0122"+
+    "\27\46\1\0\17\46\13\54\1\u0123\26\54\1\0\20\54"+
+    "\5\67\1\175\5\67\1\u0124\47\67\12\0\1\u0125\73\0"+
+    "\1\u0126\47\0\1\u0127\75\0\1\u0128\53\0\1\u0129\73\0"+
+    "\1\u012a\51\0\1\u012b\46\0\10\46\1\u012c\32\46\1\0"+
+    "\17\46\10\54\1\u012d\31\54\1\0\20\54\5\67\1\175"+
+    "\2\67\1\u012e\52\67\12\0\1\u012f\70\0\1\u0130\42\0";
 
   private static int [] zzUnpackTrans() {
-    int [] result = new int[10761];
+    int [] result = new int[11067];
     int offset = 0;
     offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
     return result;
@@ -490,22 +484,23 @@ public class _OldXmlLexer implements FlexLexer {
   private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
 
   private static final String ZZ_ATTRIBUTE_PACKED_0 =
-    "\3\0\2\1\2\0\1\1\13\0\1\1\1\11\5\1"+
-    "\1\11\3\1\1\11\2\1\3\11\1\1\1\11\15\1"+
-    "\2\11\6\1\4\11\3\1\1\11\5\1\2\11\4\1"+
-    "\2\11\4\1\1\11\2\1\1\11\2\1\1\11\2\1"+
-    "\7\11\5\1\1\11\1\0\1\1\4\0\1\11\10\1"+
-    "\1\11\2\0\4\1\1\11\2\1\2\0\1\1\1\0"+
-    "\2\1\4\0\2\1\4\0\1\11\1\0\1\1\5\0"+
-    "\2\11\2\0\12\1\1\11\1\0\2\1\1\0\7\1"+
+    "\3\0\2\1\2\0\1\1\14\0\1\1\1\11\5\1"+
+    "\1\11\3\1\1\11\2\1\3\11\5\1\1\11\10\1"+
+    "\2\11\7\1\3\11\3\1\2\11\6\1\2\11\10\1"+
+    "\1\11\2\1\1\11\2\1\3\11\2\1\7\11\5\1"+
+    "\1\0\1\1\1\11\4\0\1\11\10\1\1\11\2\0"+
+    "\4\1\2\11\2\1\2\0\1\1\1\0\2\1\4\0"+
+    "\2\1\4\0\1\11\1\0\1\1\5\0\2\11\2\0"+
+    "\12\1\1\11\1\0\2\1\1\0\5\1\1\0\3\1"+
     "\4\0\2\1\1\0\1\11\2\0\1\11\7\0\1\11"+
-    "\1\0\14\1\4\0\2\1\11\0\6\1\4\0\2\1"+
-    "\10\0\1\11\5\1\3\0\1\11\2\1\1\0\1\11"+
-    "\6\0\3\1\2\0\2\11\4\0\1\11\1\0\3\1"+
-    "\1\11\1\0\3\11\1\0\1\11\3\1\2\11";
+    "\1\0\13\1\1\0\2\1\4\0\2\1\11\0\5\1"+
+    "\1\11\1\1\4\0\2\1\10\0\1\11\5\1\3\0"+
+    "\1\11\2\1\1\0\1\11\6\0\3\1\2\0\2\11"+
+    "\4\0\1\11\1\0\3\1\1\11\1\0\3\11\1\0"+
+    "\1\11\3\1\2\11";
 
   private static int [] zzUnpackAttribute() {
-    int [] result = new int[296];
+    int [] result = new int[304];
     int offset = 0;
     offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
     return result;
@@ -620,10 +615,18 @@ public class _OldXmlLexer implements FlexLexer {
     yybegin(initialState);
   }
 
+  // For Demetra compatibility
   public void reset(CharSequence buffer, int initialState){
-    reset(buffer, 0, buffer.length(), initialState);
+    zzBuffer = buffer;
+    zzBufferArray = null; 
+    zzCurrentPos = zzMarkedPos = zzStartRead = 0;
+    zzPushbackPos = 0;
+    zzAtEOF = false;
+    zzAtBOL = true;
+    zzEndRead = buffer.length();
+    yybegin(initialState);
   }
-  
+
   /**
    * Refills the input buffer.
    *
@@ -819,286 +822,290 @@ public class _OldXmlLexer implements FlexLexer {
       zzMarkedPos = zzMarkedPosL;
 
       switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
+        case 53: 
+          { yybegin(DOCTYPE_MARKUP_STARTED); yypushback(yylength());
+          }
+        case 72: break;
         case 21: 
           { yybegin(DOCTYPE_MARKUP); return XmlTokenType.XML_MARKUP_START;
           }
-        case 71: break;
+        case 73: break;
         case 1: 
           { return XmlTokenType.XML_ATTRIBUTE_VALUE_TOKEN;
           }
-        case 72: break;
-        case 59
+        case 74: break;
+        case 60
           { return XmlTokenType.XML_DOCTYPE_SYSTEM;
           }
-        case 73: break;
+        case 75: break;
         case 36: 
           { return XmlTokenType.XML_COMMA;
           }
-        case 74: break;
-        case 11
+        case 76: break;
+        case 9
           { return XmlTokenType.XML_EQ;
           }
-        case 75: break;
-        case 65
+        case 77: break;
+        case 66
           { yybegin(CDATA); return XmlTokenType.XML_CDATA_START;
           }
-        case 76: break;
+        case 78: break;
         case 16: 
           { yybegin(ATTRIBUTE_VALUE_START); return XmlTokenType.XML_EQ;
           }
-        case 77: break;
-        case 60
+        case 79: break;
+        case 61
           { return XmlTokenType.XML_CONDITIONAL_IGNORE;
           }
-        case 78: break;
-        case 28
+        case 80: break;
+        case 26
           { return XmlTokenType.XML_SEMI;
           }
-        case 79: break;
-        case 54
+        case 81: break;
+        case 55
           { yybegin(DECL); return XmlTokenType.XML_DECL_START;
           }
-        case 80: break;
-        case 9
+        case 82: break;
+        case 11
           { yybegin(DECL_ATTR_VALUE_DQ); return XmlTokenType.XML_ATTRIBUTE_VALUE_START_DELIMITER;
           }
-        case 81: break;
-        case 68
+        case 83: break;
+        case 69
           { yybegin(DOCTYPE_MARKUP); return XmlTokenType.XML_ELEMENT_DECL_START;
           }
-        case 82: break;
+        case 84: break;
         case 14: 
           { return XmlTokenType.XML_NAME;
           }
-        case 83: break;
+        case 85: break;
         case 19: 
           { yybegin(TAG_ATTRIBUTES); return XmlTokenType.XML_ATTRIBUTE_VALUE_END_DELIMITER;
           }
-        case 84: break;
+        case 86: break;
         case 10: 
           { yybegin(DECL_ATTR_VALUE_SQ); return XmlTokenType.XML_ATTRIBUTE_VALUE_START_DELIMITER;
           }
-        case 85: break;
-        case 58
+        case 87: break;
+        case 59
           { return XmlTokenType.XML_DOCTYPE_PUBLIC;
           }
-        case 86: break;
+        case 88: break;
         case 51: 
           { yybegin(COMMENT); return XmlTokenType.XML_COMMENT_START;
           }
-        case 87: break;
+        case 89: break;
         case 7: 
           { yybegin(DECL_ATTR); return XmlTokenType.XML_NAME;
           }
-        case 88: break;
+        case 90: break;
         case 37: 
           { yybegin(DOCTYPE_MARKUP); return XmlTokenType.XML_ATTRIBUTE_VALUE_END_DELIMITER;
           }
-        case 89: break;
-        case 64
+        case 91: break;
+        case 65
           { return XmlTokenType.XML_ATT_IMPLIED;
           }
-        case 90: break;
-        case 67
+        case 92: break;
+        case 68
           { yybegin(DOCTYPE_MARKUP); return XmlTokenType.XML_ATTLIST_DECL_START;
           }
-        case 91: break;
+        case 93: break;
         case 3: 
           { return XmlTokenType.XML_DATA_CHARACTERS;
           }
-        case 92: break;
+        case 94: break;
         case 6: 
           { return XmlTokenType.XML_BAD_CHARACTER;
           }
-        case 93: break;
+        case 95: break;
         case 15: 
           { yybegin(YYINITIAL); return XmlTokenType.XML_TAG_END;
           }
-        case 94: break;
+        case 96: break;
         case 13: 
           { yybegin(TAG_ATTRIBUTES); return XmlTokenType.XML_TAG_NAME;
           }
-        case 95: break;
+        case 97: break;
         case 48: 
           { yybegin(YYINITIAL); return XmlTokenType.XML_COMMENT_END;
           }
-        case 96: break;
+        case 98: break;
         case 31: 
           { return XmlTokenType.XML_LEFT_PAREN;
           }
-        case 97: break;
-        case 61
+        case 99: break;
+        case 62
           { return XmlTokenType.XML_PCDATA;
           }
-        case 98: break;
-        case 38
+        case 100: break;
+        case 39
           { yybegin(TAG_NAME); return XmlTokenType.XML_END_TAG_START;
           }
-        case 99: break;
-        case 57
+        case 101: break;
+        case 58
           { return XmlTokenType.XML_ATT_FIXED;
           }
-        case 100: break;
+        case 102: break;
         case 44: 
           { yybegin(DOCTYPE_MARKUP); return XmlTokenType.XML_COMMENT_END;
           }
-        case 101: break;
-        case 25
+        case 103: break;
+        case 23
           { yybegin(DOCTYPE); return XmlTokenType.XML_MARKUP_END;
           }
-        case 102: break;
+        case 104: break;
         case 43: 
           { yybegin(DOCTYPE_COMMENT); return XmlTokenType.XML_COMMENT_START;
           }
-        case 103: break;
+        case 105: break;
         case 20: 
           { return XmlTokenType.XML_PI_TARGET;
           }
-        case 104: break;
-        case 62
+        case 106: break;
+        case 63
           { return XmlTokenType.XML_CONDITIONAL_INCLUDE;
           }
-        case 105: break;
+        case 107: break;
         case 41: 
           { yybegin(YYINITIAL); return XmlTokenType.XML_EMPTY_ELEMENT_END;
           }
-        case 106: break;
+        case 108: break;
         case 32: 
           { return XmlTokenType.XML_RIGHT_PAREN;
           }
-        case 107: break;
+        case 109: break;
         case 8: 
           { yybegin(YYINITIAL); return XmlTokenType.XML_BAD_CHARACTER;
           }
-        case 108: break;
-        case 39
+        case 110: break;
+        case 38
           { yybegin(PROCESSING_INSTRUCTION); return XmlTokenType.XML_PI_START;
           }
-        case 109: break;
-        case 63
+        case 111: break;
+        case 64
           { yybegin(DOCTYPE_MARKUP); return XmlTokenType.XML_ENTITY_DECL_START;
           }
-        case 110: break;
-        case 24
+        case 112: break;
+        case 29
           { yybegin(DOCTYPE_MARKUP_SQ); return XmlTokenType.XML_ATTRIBUTE_VALUE_START_DELIMITER;
           }
-        case 111: break;
-        case 53
+        case 113: break;
+        case 54
           { return XmlTokenType.XML_CONTENT_EMPTY;
           }
-        case 112: break;
+        case 114: break;
         case 33: 
           { return XmlTokenType.XML_PLUS;
           }
-        case 113: break;
-        case 23
+        case 115: break;
+        case 30
           { yybegin(DOCTYPE_MARKUP_DQ); return XmlTokenType.XML_ATTRIBUTE_VALUE_START_DELIMITER;
           }
-        case 114: break;
+        case 116: break;
         case 49: 
           { return XmlTokenType.XML_CONTENT_ANY;
           }
-        case 115: break;
+        case 117: break;
         case 22: 
           { yybegin(YYINITIAL); return XmlTokenType.XML_DOCTYPE_END;
           }
-        case 116: break;
+        case 118: break;
         case 52: 
           { return XmlTokenType.XML_CHAR_ENTITY_REF;
           }
-        case 117: break;
-        case 69
+        case 119: break;
+        case 70
           { return XmlTokenType.XML_ATT_REQUIRED;
           }
-        case 118: break;
-        case 30
+        case 120: break;
+        case 28
           { return XmlTokenType.XML_QUESTION;
           }
-        case 119: break;
-        case 56
+        case 121: break;
+        case 57
           { yybegin(DOCTYPE_EXTERNAL_ID); return XmlTokenType.XML_DOCTYPE_SYSTEM;
           }
-        case 120: break;
+        case 122: break;
         case 34: 
           { return XmlTokenType.XML_STAR;
           }
-        case 121: break;
+        case 123: break;
         case 40: 
           { yybegin(YYINITIAL); return XmlTokenType.XML_DECL_END;
           }
-        case 122: break;
+        case 124: break;
         case 4: 
           { return XmlTokenType.XML_WHITE_SPACE;
           }
-        case 123: break;
+        case 125: break;
         case 47: 
           { return XmlTokenType.XML_ENTITY_REF_TOKEN;
           }
-        case 124: break;
-        case 29
+        case 126: break;
+        case 27
           { return XmlTokenType.XML_PERCENT;
           }
-        case 125: break;
+        case 127: break;
         case 5: 
           { yybegin(TAG_NAME); return XmlTokenType.XML_START_TAG_START;
           }
-        case 126: break;
+        case 128: break;
         case 46: 
           { yybegin(YYINITIAL); return XmlTokenType.XML_CONDITIONAL_SECTION_END;
           }
-        case 127: break;
+        case 129: break;
         case 50: 
           { yybegin(YYINITIAL); return XmlTokenType.XML_CDATA_END;
           }
-        case 128: break;
-        case 55
+        case 130: break;
+        case 56
           { yybegin(DOCTYPE_EXTERNAL_ID); return XmlTokenType.XML_DOCTYPE_PUBLIC;
           }
-        case 129: break;
+        case 131: break;
         case 12: 
           { yybegin(DECL); return XmlTokenType.XML_ATTRIBUTE_VALUE_END_DELIMITER;
           }
-        case 130: break;
-        case 27
+        case 132: break;
+        case 25
           { return XmlTokenType.XML_AMP;
           }
-        case 131: break;
+        case 133: break;
         case 42: 
           { yybegin(YYINITIAL); return XmlTokenType.XML_PI_END;
           }
-        case 132: break;
-        case 17
+        case 134: break;
+        case 18
           { yybegin(ATTRIBUTE_VALUE_DQ); return XmlTokenType.XML_ATTRIBUTE_VALUE_START_DELIMITER;
           }
-        case 133: break;
-        case 66
+        case 135: break;
+        case 67
           { yybegin(DOCTYPE); return XmlTokenType.XML_DOCTYPE_START;
           }
-        case 134: break;
-        case 18
+        case 136: break;
+        case 17
           { yybegin(ATTRIBUTE_VALUE_SQ); return XmlTokenType.XML_ATTRIBUTE_VALUE_START_DELIMITER;
           }
-        case 135: break;
-        case 70
+        case 137: break;
+        case 71
           { yybegin(DOCTYPE_MARKUP); return XmlTokenType.XML_NOTATION_DECL_START;
           }
-        case 136: break;
-        case 26
+        case 138: break;
+        case 24
           { return XmlTokenType.XML_TAG_END;
           }
-        case 137: break;
+        case 139: break;
         case 35: 
           { return XmlTokenType.XML_BAR;
           }
-        case 138: break;
+        case 140: break;
         case 2: 
           { return XmlTokenType.XML_COMMENT_CHARACTERS;
           }
-        case 139: break;
+        case 141: break;
         case 45: 
           { yybegin(CONDITIONAL); return XmlTokenType.XML_CONDITIONAL_SECTION_START;
           }
-        case 140: break;
+        case 142: break;
         default:
           if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
             zzAtEOF = true;
diff --git a/xml/impl/src/com/intellij/psi/xml/DTDTokenType.java b/xml/impl/src/com/intellij/psi/xml/DTDTokenType.java
deleted file mode 100644 (file)
index ba2589f..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright 2000-2009 JetBrains s.r.o.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.intellij.psi.xml;
-
-import com.intellij.psi.tree.IElementType;
-import com.intellij.psi.tree.xml.IDTDElementType;
-
-/**
- * Created by IntelliJ IDEA.
- * User: ik
- * Date: 18.08.2004
- * Time: 16:45:52
- * To change this template use File | Settings | File Templates.
- */
-public interface DTDTokenType {
-  IDTDElementType DTD_NAME = new IDTDElementType("DTD_NAME");
-  IDTDElementType DTD_NMTOKEN = new IDTDElementType("DTD_NMTOKEN");
-  IDTDElementType DTD_ATTRIBUTE_VALUE_TOKEN = new IDTDElementType("DTD_ATTRIBUTE_VALUE_TOKEN");
-  IDTDElementType DTD_ATTRIBUTE_VALUE_START_DELIMITER = new IDTDElementType("DTD_ATTRIBUTE_VALUE_START_DELIMITER");// "\"" or "'"
-  IDTDElementType DTD_ATTRIBUTE_VALUE_END_DELIMITER = new IDTDElementType("DTD_ATTRIBUTE_VALUE_END_DELIMITER");// "\"" or "'"
-
-  IDTDElementType DTD_ELEMENT_DECL_START = new IDTDElementType("DTD_ELEMENT_DECL_START");//<!ELEMENT
-  IDTDElementType DTD_NOTATION_DECL_START = new IDTDElementType("DTD_NOTATION_DECL_START");//<!NOTATION
-  IDTDElementType DTD_ATTLIST_DECL_START = new IDTDElementType("DTD_ATTLIST_DECL_START");//<!ATTLIST
-  IDTDElementType DTD_ENTITY_DECL_START = new IDTDElementType("DTD_ENTITY_DECL_START");//<!ENTITY
-  IDTDElementType DTD_CONDITIONAL_START = new IDTDElementType("DTD_CONDITIONAL_START");
-
-  IDTDElementType DTD_DECL_END = new IDTDElementType("DTD_DECL_END");
-
-  IDTDElementType DTD_LEFT_PAREN = new IDTDElementType("DTD_LEFT_PAREN");//(
-  IDTDElementType DTD_RIGHT_PAREN = new IDTDElementType("DTD_RIGHT_PAREN");//)
-  IDTDElementType DTD_QUESTION = new IDTDElementType("DTD_QUESTION");//?
-  IDTDElementType DTD_STAR = new IDTDElementType("DTD_STAR");//*
-  IDTDElementType DTD_PLUS = new IDTDElementType("DTD_PLUS");//+
-  IDTDElementType DTD_BAR = new IDTDElementType("DTD_BAR");//|
-  IDTDElementType DTD_COMMA = new IDTDElementType("DTD_COMMA");//,
-  IDTDElementType DTD_AMP = new IDTDElementType("DTD_AMP");//&
-  IDTDElementType DTD_PERCENT = new IDTDElementType("DTD_PERCENT");//%
-
-  IDTDElementType DTD_TAG_CONTENT_SPEC = new IDTDElementType("DTD_TAG_CONTENT_SPEC");// EMPTY, ANY...
-  IDTDElementType DTD_PCDATA = new IDTDElementType("DTD_PCDATA");//#PCDATA
-
-  IDTDElementType DTD_ATTR_CONTENT_SPEC = new IDTDElementType("DTD_ATTR_CONTENT_SPEC");
-
-  IDTDElementType DTD_ATT_IMPLIED = new IDTDElementType("DTD_ATT_IMPLIED");//; #IMPLIED
-  IDTDElementType DTD_ATT_REQUIRED = new IDTDElementType("DTD_ATT_REQUIRED");//; #REQUIRED
-  IDTDElementType DTD_ATT_FIXED = new IDTDElementType("DTD_ATT_FIXED");//; #FIXED
-
-  IDTDElementType DTD_ENTITY_REF_TOKEN = new IDTDElementType("DTD_ENTITY_REF_TOKEN");
-  IDTDElementType DTD_CHAR_ENTITY_REF = new IDTDElementType("DTD_CHAR_ENTITY_REF");
-
-  IDTDElementType DTD_INCLUDE = new IDTDElementType("DTD_INCLUDE");
-  IDTDElementType DTD_IGNORE = new IDTDElementType("DTD_IGNORE");
-
-  IDTDElementType DTD_PUBLIC = new IDTDElementType("DTD_PUBLIC");
-  IDTDElementType DTD_SYSTEM = new IDTDElementType("DTD_SYSTEM");
-
-  IDTDElementType DTD_NOTATION = new IDTDElementType("DTD_NOTATION");
-
-  IDTDElementType DTD_NDATA = new IDTDElementType("DTD_NDATA");
-
-  IDTDElementType DTD_BAD_CHARACTER = new IDTDElementType("DTD_BAD_CHARACTER");
-
-  IElementType DTD_COMMENT_START = XmlTokenType.XML_COMMENT_START;
-  IElementType DTD_COMMENT_END = XmlTokenType.XML_COMMENT_END;
-  IElementType DTD_COMMENT_CHARACTERS = XmlTokenType.XML_COMMENT_CHARACTERS;
-}