refresh
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/CSSTokenizer/devel/CSSTokenizer.java b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/CSSTokenizer/devel/CSSTokenizer.java
new file mode 100644
index 0000000..b30ce69
--- /dev/null
+++ b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/CSSTokenizer/devel/CSSTokenizer.java
@@ -0,0 +1,1948 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *     Jens Lukowski/Innoopract - initial renaming/restructuring
+ *     
+ *******************************************************************************/
+/* The following code was generated by JFlex 1.2.2 on 04/10/01 22:53 */
+
+/*nlsXXX*/
+package org.eclipse.wst.sse.core.css.internal.parser;
+
+import java.io.CharArrayReader;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.wst.sse.core.css.internal.parser.regions.CSSTextRegionFactory;
+import org.eclipse.wst.sse.core.css.parser.CSSRegionContexts;
+import org.eclipse.wst.sse.core.css.parser.CSSTextToken;
+import org.eclipse.wst.sse.core.text.ITextRegion;
+
+
+/**
+ * This class is a scanner generated by 
+ * <a href="http://www.informatik.tu-muenchen.de/~kleing/jflex/">JFlex</a> 1.2.2
+ */
+public class CSSTokenizer implements CSSRegionContexts {
+
+  /** this character denotes the end of file */
+  final public static int YYEOF = -1;
+
+  /** lexical states */
+  final public static int ST_SELECTOR_ATTRIBUTE_NAME = 11;
+  final public static int ST_IMPORT_DELIMITER = 5;
+  final public static int ST_DECLARATION_PRE_VALUE = 17;
+  final public static int ST_SELECTOR = 0;
+  final public static int ST_CHARSET_DELIMITER = 2;
+  final public static int ST_DECLARATION_VALUE = 18;
+  final public static int ST_PAGE_PSEUDO_PAGE = 8;
+  final public static int ST_IMPORT_URI = 3;
+  final public static int ST_SELECTOR_ATTRIBUTE_END = 14;
+  final public static int ST_SELECTOR_ATTRIBUTE_OPERATOR = 12;
+  final public static int ST_DECLARATION = 15;
+  final public static int ST_PAGE_DELIMITER = 9;
+  final public static int ST_SELECTOR_ATTRIBUTE_VALUE = 13;
+  final public static int ST_MEDIA_MEDIUM = 6;
+  final public static int ST_CHARSET_NAME = 1;
+  final public static int ST_IMPORT_MEDIUM = 4;
+  final public static int ST_DECLARATION_SEPARATOR = 16;
+  final public static int ST_FONT_FACE_DELIMITER = 9;
+  final public static int ST_MEDIA_DELIMITER = 7;
+  final public static int ST_SELECTOR_MODIFIER = 10;
+  final public static int YYINITIAL = 0;
+
+  /** 
+   * Translates characters to character classes
+   */
+  final private static String yycmap_packed = 
+    "\11\0\1\11\1\17\1\0\1\4\1\20\22\0\1\6\1\31\1\10"+
+    "\1\22\1\16\1\72\1\16\1\5\1\26\1\12\1\35\1\14\1\55"+
+    "\1\13\1\15\1\34\12\1\1\62\1\50\1\30\1\67\1\32\1\21"+
+    "\1\36\1\43\1\27\1\40\1\57\1\46\1\64\1\61\1\41\1\51"+
+    "\2\2\1\25\1\52\1\65\1\54\1\53\1\2\1\24\1\44\1\47"+
+    "\1\23\5\2\1\66\1\3\1\71\1\16\1\2\1\16\1\42\1\7"+
+    "\1\37\1\56\1\45\1\63\1\61\1\41\1\51\2\2\1\25\1\52"+
+    "\1\65\1\54\1\53\1\2\1\24\1\44\1\47\1\23\5\2\1\60"+
+    "\1\70\1\33\1\70\1\0\uff80\2";
+
+  /** 
+   * Translates characters to character classes
+   */
+  final private static char [] yycmap = yy_unpack_cmap(yycmap_packed);
+
+  /** 
+   * Translates a state to a row index in the transition table
+   */
+  final private static int yy_rowMap [] = { 
+        0,    59,   118,   177,   236,   295,   354,   413,   472,   531, 
+      590,   649,   708,   767,   826,   885,   944,  1003,  1062,  1121, 
+     1180,  1239,  1298,  1357,  1416,  1475,  1534,  1121,  1593,  1121, 
+     1652,  1711,  1121,  1770,  1829,  1888,  1121,  1947,  2006,  2065, 
+     2124,  2183,  2242,  1121,  2301,  2360,  2419,  1121,  1121,  2478, 
+     2537,  2596,  1121,  2655,  2714,  1121,  1121,  2773,  2832,  2891, 
+     1121,  2950,  1121,  3009,  3068,  3127,  3186,  3245,  3304,  3363, 
+     3422,  1121,  1121,  3481,  3540,  3599,  3658,  3717,  1121,  3776, 
+     3835,  3894,  3953,  4012,  4071,  1593,  1121,  4130,  1239,  4189, 
+     4248,  1416,  4307,  1475,  4366,  4425,  4484,  4543,  4602,  4661, 
+     4720,  4779,  4838,  4897,  1770,  4956,  1121,  1829,  5015,  5074, 
+     1947,  5133,  1121,  2006,  5192,  5251,  2183,  5310,  5369,  2360, 
+     5428,  5487,  2537,  5546,  5605,  1121,  2714,  2832,  5664,  5723, 
+     3068,  5782,  3127,  5841,  1121,  3186,  5900,  5959,  3363,  6018, 
+     6077,  6136,  6195,  3894,  1121,  3599,  1121,  6254,  3658,  6313, 
+     1121,  3717,  6372,  6431,  6490,  6549,  3953,  6608,  6667,  6726, 
+     4071,  6785,  1121,  4130,  6844,  1121,  6903,  6962,  7021,  7080, 
+     7139,  7198,  7257,  7316,  7375,  7434,  7493,  7552,  1770,  7611, 
+     7670,  1829,  7729,  7788,  1947,  7847,  7906,  2006,  7965,  8024, 
+     8083,  8142,  8201,  8260,  8319,  8378,  3127,  8437,  8496,  3186, 
+     8555,  8614,  8673,  8732,  8791,  3658,  8850,  8909,  3717,  8968, 
+     9027,  9086,  9145,  9204,  9263,  9322,  9381,  1121,  1121,  9440, 
+     9499,  9558,  9617,  9676,  9735,  9794,  9853,  9912,  9971, 10030, 
+    10089, 10148, 10207, 10266, 10325, 10384, 10443, 10502, 10561, 10620, 
+    10679, 10738, 10797, 10856, 10915, 10974, 11033, 11092, 11151, 11210, 
+    11269, 11328, 11387, 11446, 11505,  1121, 11564, 11623,  1121, 11682, 
+    11741, 11800, 11859, 11918, 11977, 12036, 12095, 12154, 12213,  1121, 
+    12272, 12331, 12390, 12449, 12508, 12567, 12626, 12685, 12744, 12803, 
+    12862, 12921, 12980, 13039, 13098, 13157, 13216, 11092, 13275, 13334, 
+     1121, 13393, 13452, 13511, 13570, 13629, 13688,  1121, 13747, 13806, 
+    13865, 13924, 13983, 14042, 14101, 14160, 14219, 12036, 14278, 14337, 
+    14396, 14455, 14514, 14573, 14632, 14691, 14750, 14809, 14868, 14927, 
+    14986, 15045, 15104, 15163, 15222, 15281, 15340, 13157, 15399, 15458, 
+    15517, 15576, 15635, 15694, 15753,  1121, 15812, 15871, 15930, 15989, 
+    16048, 16107, 16166, 16225, 16284, 16343, 16402, 16461, 16520, 16579, 
+    16638, 16697, 16756, 16815, 16874, 16933, 16992, 17051, 17110, 17169, 
+    17228, 17287, 17346, 17405, 17464, 17523, 17582, 17641, 17700, 17759, 
+    17818, 17877, 17936, 17995, 18054,  1121, 18113, 18172, 18231, 18290, 
+    18349, 18408, 18467, 18526, 18585, 12154, 18644, 12213, 18703, 18762, 
+    18821, 18880, 18939, 18998, 19057, 19116, 19175, 19234, 13275, 19293, 
+    13334, 19352, 19411, 19470, 19529, 19588, 19647, 19706, 19765, 19824, 
+    19883, 19942,  1121, 20001, 20060, 20119, 20178,  1121, 20237, 20296, 
+    20355,  1121, 20414, 20473, 20532, 20591, 20650, 20709, 20768, 20827, 
+    20886, 20945
+  };
+
+  /** 
+   * The packed transition table of the DFA
+   */
+  final private static String yy_packed = 
+    "\2\24\1\25\1\26\1\27\1\24\1\27\1\25\1\24"+
+    "\1\27\1\24\1\30\1\24\1\31\1\24\2\27\1\24"+
+    "\1\32\3\25\1\24\1\25\1\33\2\24\1\34\1\35"+
+    "\1\36\1\37\11\25\1\24\4\25\1\24\2\25\1\24"+
+    "\1\25\1\40\3\25\1\41\10\24\1\27\1\42\1\27"+
+    "\1\24\1\43\1\27\1\24\1\44\3\24\2\27\7\24"+
+    "\1\33\2\24\1\34\1\35\1\24\1\37\40\24\1\27"+
+    "\1\24\1\27\2\24\1\27\1\24\1\44\3\24\2\27"+
+    "\7\24\1\33\2\24\1\34\1\35\1\24\1\37\11\24"+
+    "\1\45\26\24\1\27\1\46\1\27\1\24\1\47\1\27"+
+    "\1\24\1\44\3\24\2\27\2\24\1\50\4\24\1\33"+
+    "\2\24\1\34\1\35\1\24\1\37\11\24\1\45\24\24"+
+    "\1\51\1\52\1\27\1\24\1\27\1\51\1\24\1\27"+
+    "\1\24\1\53\3\24\2\27\2\24\3\51\1\24\1\51"+
+    "\1\33\2\24\1\34\1\35\1\24\1\37\11\51\1\45"+
+    "\4\51\1\24\2\51\1\24\1\51\1\24\3\51\11\24"+
+    "\1\27\1\24\1\27\2\24\1\27\1\24\1\44\3\24"+
+    "\2\27\7\24\1\33\2\24\1\34\1\35\1\24\1\37"+
+    "\11\24\1\45\4\24\1\54\17\24\1\55\1\56\1\27"+
+    "\1\24\1\27\1\55\1\24\1\27\1\24\1\57\3\24"+
+    "\2\27\2\24\3\55\1\24\1\55\1\33\2\24\1\34"+
+    "\1\35\1\24\1\37\11\55\1\24\4\55\1\24\2\55"+
+    "\1\24\1\55\1\24\3\55\11\24\1\27\1\24\1\27"+
+    "\2\24\1\27\1\24\1\44\3\24\2\27\7\24\1\33"+
+    "\2\24\1\34\1\35\1\24\1\37\16\24\1\60\2\24"+
+    "\1\61\14\24\1\62\1\63\1\27\1\24\1\27\1\62"+
+    "\1\24\1\27\1\24\1\64\3\24\2\27\2\24\3\62"+
+    "\1\24\1\62\1\33\2\24\1\34\1\35\1\24\1\37"+
+    "\11\62\1\24\4\62\1\24\2\62\1\65\1\62\1\66"+
+    "\3\62\11\24\1\27\1\24\1\27\2\24\1\27\1\24"+
+    "\1\44\3\24\2\27\7\24\1\33\2\24\1\34\1\35"+
+    "\1\24\1\37\21\24\1\65\16\24\1\67\1\24\1\67"+
+    "\2\24\1\67\1\24\1\44\1\70\1\31\1\24\2\67"+
+    "\1\24\1\32\5\24\1\33\1\24\1\70\1\34\1\35"+
+    "\1\36\1\37\16\24\1\71\2\24\1\65\1\24\1\40"+
+    "\3\24\1\41\6\24\1\72\1\73\1\27\1\24\1\27"+
+    "\1\72\1\24\1\27\1\24\1\74\3\24\2\27\2\24"+
+    "\3\72\1\24\1\72\1\33\2\24\1\34\1\35\1\24"+
+    "\1\37\11\72\1\24\4\72\1\24\2\72\1\24\1\72"+
+    "\1\24\3\72\11\24\1\27\1\24\1\27\2\24\1\27"+
+    "\1\24\1\44\3\24\2\27\7\24\1\33\2\24\1\34"+
+    "\1\35\1\24\1\37\30\24\1\75\1\76\1\77\3\24"+
+    "\1\100\1\101\1\27\1\102\1\27\1\100\1\103\1\27"+
+    "\1\24\1\104\3\24\2\27\2\24\3\100\1\24\1\100"+
+    "\1\33\2\24\1\34\1\35\1\24\1\37\11\100\1\24"+
+    "\4\100\1\24\2\100\1\24\1\100\1\24\3\100\11\24"+
+    "\1\27\1\24\1\27\2\24\1\27\1\24\1\44\3\24"+
+    "\2\27\7\24\1\33\2\24\1\34\1\35\1\24\1\37"+
+    "\32\24\1\77\3\24\1\105\1\106\1\27\1\24\1\27"+
+    "\1\105\1\24\1\27\1\24\1\107\3\24\2\27\2\24"+
+    "\3\105\1\24\1\105\1\33\2\24\1\34\1\35\1\24"+
+    "\1\37\11\105\1\110\4\105\1\24\2\105\1\24\1\105"+
+    "\1\24\3\105\11\24\1\27\1\24\1\27\2\24\1\27"+
+    "\1\24\1\44\3\24\2\27\7\24\1\33\2\24\1\34"+
+    "\1\35\1\24\1\37\11\24\1\110\11\24\1\111\11\24"+
+    "\1\112\1\113\1\114\1\27\1\115\1\27\1\113\1\116"+
+    "\1\27\1\117\1\120\1\121\1\122\1\24\2\27\1\24"+
+    "\1\123\1\124\2\113\1\24\1\113\1\33\1\125\1\24"+
+    "\1\34\1\126\1\24\1\37\11\113\1\110\4\113\1\127"+
+    "\2\113\1\24\1\113\1\24\3\113\6\24\1\112\1\113"+
+    "\1\114\1\130\1\115\1\130\1\113\1\116\1\130\1\117"+
+    "\1\120\1\121\1\122\1\24\2\130\1\24\1\123\1\124"+
+    "\2\113\1\24\1\113\1\33\1\125\1\24\1\34\1\126"+
+    "\1\24\1\37\11\113\1\110\4\113\1\127\2\113\1\24"+
+    "\1\113\1\24\3\113\5\24\74\0\2\25\1\131\3\0"+
+    "\1\25\3\0\1\25\7\0\3\25\1\0\1\25\7\0"+
+    "\11\25\1\0\4\25\1\0\2\25\1\0\1\25\1\0"+
+    "\3\25\6\0\1\132\2\25\1\0\2\25\1\132\1\25"+
+    "\1\0\5\25\2\0\16\25\1\132\2\25\1\132\2\25"+
+    "\1\132\10\25\1\132\4\25\1\132\7\25\4\0\1\27"+
+    "\1\0\1\27\2\0\1\27\5\0\2\27\53\0\2\25"+
+    "\1\131\3\0\1\25\3\0\1\133\7\0\3\25\1\0"+
+    "\1\25\7\0\11\25\1\0\4\25\1\0\2\25\1\0"+
+    "\1\25\1\0\3\25\6\0\2\134\1\135\3\0\1\134"+
+    "\3\0\1\134\7\0\3\134\1\0\1\134\7\0\11\134"+
+    "\1\0\4\134\1\0\2\134\1\0\1\134\1\0\3\134"+
+    "\6\0\2\136\1\137\3\0\1\136\3\0\1\136\7\0"+
+    "\3\136\1\0\1\136\7\0\11\136\1\0\4\136\1\0"+
+    "\2\136\1\0\1\136\1\0\3\136\36\0\1\140\76\0"+
+    "\1\141\74\0\2\142\10\0\1\143\1\144\1\145\7\0"+
+    "\2\146\10\0\1\147\1\150\3\0\1\147\3\0\1\147"+
+    "\7\0\3\147\1\0\1\147\7\0\11\147\1\0\4\147"+
+    "\1\0\2\147\1\0\1\147\1\0\3\147\6\0\2\151"+
+    "\1\152\1\0\1\153\11\151\2\0\52\151\1\0\2\154"+
+    "\1\155\1\0\3\154\1\153\6\154\2\0\52\154\13\0"+
+    "\1\156\60\0\2\157\1\160\1\0\1\161\11\157\2\0"+
+    "\52\157\1\0\2\162\1\163\1\0\3\162\1\161\6\162"+
+    "\2\0\52\162\24\0\1\164\47\0\2\51\1\165\3\0"+
+    "\1\51\3\0\1\51\7\0\3\51\1\0\1\51\7\0"+
+    "\11\51\1\0\4\51\1\0\2\51\1\0\1\51\1\0"+
+    "\3\51\6\0\1\166\2\51\1\0\2\51\1\166\1\51"+
+    "\1\0\5\51\2\0\16\51\1\166\2\51\1\166\2\51"+
+    "\1\166\10\51\1\166\4\51\1\166\7\51\1\0\2\51"+
+    "\1\165\3\0\1\51\3\0\1\167\7\0\3\51\1\0"+
+    "\1\51\7\0\11\51\1\0\4\51\1\0\2\51\1\0"+
+    "\1\51\1\0\3\51\6\0\2\55\1\170\3\0\1\55"+
+    "\3\0\1\55\7\0\3\55\1\0\1\55\7\0\11\55"+
+    "\1\0\4\55\1\0\2\55\1\0\1\55\1\0\3\55"+
+    "\6\0\1\171\2\55\1\0\2\55\1\171\1\55\1\0"+
+    "\5\55\2\0\16\55\1\171\2\55\1\171\2\55\1\171"+
+    "\10\55\1\171\4\55\1\171\7\55\1\0\2\55\1\170"+
+    "\3\0\1\55\3\0\1\172\7\0\3\55\1\0\1\55"+
+    "\7\0\11\55\1\0\4\55\1\0\2\55\1\0\1\55"+
+    "\1\0\3\55\6\0\2\62\1\173\3\0\1\62\3\0"+
+    "\1\62\7\0\3\62\1\0\1\62\7\0\11\62\1\0"+
+    "\4\62\1\0\2\62\1\0\1\62\1\0\3\62\6\0"+
+    "\1\174\2\62\1\0\2\62\1\174\1\62\1\0\5\62"+
+    "\2\0\16\62\1\174\2\62\1\174\2\62\1\174\10\62"+
+    "\1\174\4\62\1\174\7\62\1\0\2\62\1\173\3\0"+
+    "\1\62\3\0\1\175\7\0\3\62\1\0\1\62\7\0"+
+    "\11\62\1\0\4\62\1\0\2\62\1\0\1\62\1\0"+
+    "\3\62\7\0\1\62\1\173\3\0\1\62\3\0\1\62"+
+    "\7\0\3\62\1\0\1\62\7\0\11\62\1\0\4\62"+
+    "\1\0\2\62\1\0\1\62\1\0\3\62\5\0\4\176"+
+    "\1\177\1\176\1\177\2\176\1\177\2\176\1\0\2\176"+
+    "\2\177\11\176\1\0\25\176\1\0\12\176\1\0\2\72"+
+    "\1\200\3\0\1\72\3\0\1\72\7\0\3\72\1\0"+
+    "\1\72\7\0\11\72\1\0\4\72\1\0\2\72\1\0"+
+    "\1\72\1\0\3\72\6\0\1\201\2\72\1\0\2\72"+
+    "\1\201\1\72\1\0\5\72\2\0\16\72\1\201\2\72"+
+    "\1\201\2\72\1\201\10\72\1\201\4\72\1\201\7\72"+
+    "\1\0\2\72\1\200\3\0\1\72\3\0\1\202\7\0"+
+    "\3\72\1\0\1\72\7\0\11\72\1\0\4\72\1\0"+
+    "\2\72\1\0\1\72\1\0\3\72\74\0\1\75\4\0"+
+    "\2\100\1\203\3\0\1\100\3\0\1\100\7\0\3\100"+
+    "\1\0\1\100\7\0\11\100\1\0\4\100\1\0\2\100"+
+    "\1\0\1\100\1\0\3\100\6\0\1\204\2\100\1\0"+
+    "\2\100\1\204\1\100\1\0\5\100\2\0\16\100\1\204"+
+    "\2\100\1\204\2\100\1\204\10\100\1\204\4\100\1\204"+
+    "\7\100\1\0\2\205\1\206\1\0\1\207\11\205\2\0"+
+    "\52\205\1\0\2\210\1\211\1\0\3\210\1\207\6\210"+
+    "\2\0\52\210\1\0\2\100\1\203\3\0\1\100\3\0"+
+    "\1\212\7\0\3\100\1\0\1\100\7\0\11\100\1\0"+
+    "\4\100\1\0\2\100\1\0\1\100\1\0\3\100\6\0"+
+    "\2\105\1\213\3\0\1\105\3\0\1\105\7\0\3\105"+
+    "\1\0\1\105\7\0\11\105\1\0\4\105\1\0\2\105"+
+    "\1\0\1\105\1\0\3\105\6\0\1\214\2\105\1\0"+
+    "\2\105\1\214\1\105\1\0\5\105\2\0\16\105\1\214"+
+    "\2\105\1\214\2\105\1\214\10\105\1\214\4\105\1\214"+
+    "\7\105\1\0\2\105\1\213\3\0\1\105\3\0\1\215"+
+    "\7\0\3\105\1\0\1\105\7\0\11\105\1\0\4\105"+
+    "\1\0\2\105\1\0\1\105\1\0\3\105\6\0\1\112"+
+    "\1\216\1\217\3\0\1\216\3\0\1\216\1\0\1\220"+
+    "\5\0\3\216\1\0\1\216\7\0\11\216\1\0\4\216"+
+    "\1\0\2\216\1\0\1\216\1\0\3\216\4\0\1\221"+
+    "\1\0\2\113\1\222\3\0\1\113\3\0\1\113\7\0"+
+    "\3\113\1\223\1\113\7\0\11\113\1\0\4\113\1\0"+
+    "\2\113\1\0\1\113\1\0\3\113\6\0\1\224\2\113"+
+    "\1\0\2\113\1\224\1\113\1\0\5\113\2\0\16\113"+
+    "\1\224\2\113\1\224\2\113\1\224\10\113\1\224\4\113"+
+    "\1\224\7\113\1\0\2\225\1\226\1\0\1\227\11\225"+
+    "\2\0\52\225\1\0\2\230\1\231\1\0\3\230\1\227"+
+    "\6\230\2\0\52\230\1\0\1\232\1\113\1\222\3\0"+
+    "\1\113\3\0\1\233\1\0\1\220\5\0\3\113\1\223"+
+    "\1\113\7\0\11\113\1\0\4\113\1\0\2\113\1\0"+
+    "\1\113\1\0\3\113\6\0\1\112\13\0\1\220\56\0"+
+    "\1\234\72\0\2\235\1\236\3\0\1\235\3\0\1\235"+
+    "\7\0\3\235\1\0\1\235\7\0\11\235\1\0\4\235"+
+    "\1\0\2\235\1\0\1\235\1\0\3\235\6\0\2\113"+
+    "\1\222\3\0\1\113\3\0\1\113\1\237\6\0\1\113"+
+    "\1\240\1\113\1\223\1\113\7\0\11\113\1\0\4\113"+
+    "\1\0\2\113\1\0\1\113\1\0\3\113\11\0\1\241"+
+    "\1\0\1\241\2\0\1\241\5\0\2\241\30\0\1\242"+
+    "\21\0\4\243\1\244\1\243\1\244\2\243\1\244\5\243"+
+    "\2\244\12\243\1\0\14\243\1\0\22\243\1\0\1\245"+
+    "\1\25\1\131\1\25\1\0\1\25\1\245\1\0\1\25"+
+    "\1\0\1\25\3\0\2\25\2\0\3\25\1\0\1\25"+
+    "\7\0\1\245\2\25\1\245\2\25\1\245\2\25\1\0"+
+    "\4\25\1\0\1\245\1\25\1\0\1\25\1\0\1\245"+
+    "\2\25\6\0\2\25\1\131\3\0\1\25\3\0\1\25"+
+    "\7\0\3\25\1\0\1\25\2\0\1\246\4\0\11\25"+
+    "\1\0\4\25\1\0\2\25\1\0\1\25\1\0\3\25"+
+    "\6\0\1\247\2\134\1\0\2\134\1\247\1\134\1\0"+
+    "\5\134\2\0\16\134\1\247\2\134\1\247\2\134\1\247"+
+    "\10\134\1\247\4\134\1\247\7\134\1\0\1\250\2\136"+
+    "\1\0\2\136\1\250\1\136\1\0\5\136\2\0\16\136"+
+    "\1\250\2\136\1\250\2\136\1\250\10\136\1\250\4\136"+
+    "\1\250\7\136\13\0\1\251\57\0\35\141\1\252\35\141"+
+    "\41\0\1\253\103\0\1\254\65\0\2\255\66\0\2\256"+
+    "\103\0\1\257\17\0\2\147\1\150\3\0\1\147\3\0"+
+    "\1\147\7\0\3\147\1\260\1\147\7\0\11\147\1\0"+
+    "\4\147\1\0\2\147\1\0\1\147\1\0\3\147\6\0"+
+    "\1\261\2\147\1\0\2\147\1\261\1\147\1\0\5\147"+
+    "\2\0\16\147\1\261\2\147\1\261\2\147\1\261\10\147"+
+    "\1\261\4\147\1\261\7\147\1\0\1\262\1\151\1\152"+
+    "\1\151\1\263\1\151\1\262\10\151\1\264\16\151\1\262"+
+    "\2\151\1\262\2\151\1\262\10\151\1\262\4\151\1\262"+
+    "\7\151\1\0\1\265\1\154\1\155\3\154\1\265\1\266"+
+    "\7\154\1\267\16\154\1\265\2\154\1\265\2\154\1\265"+
+    "\10\154\1\265\4\154\1\265\7\154\32\0\1\246\41\0"+
+    "\1\270\1\157\1\160\1\157\1\271\1\157\1\270\10\157"+
+    "\1\272\16\157\1\270\2\157\1\270\2\157\1\270\10\157"+
+    "\1\270\4\157\1\270\7\157\1\0\1\273\1\162\1\163"+
+    "\3\162\1\273\1\274\7\162\1\275\16\162\1\273\2\162"+
+    "\1\273\2\162\1\273\10\162\1\273\4\162\1\273\7\162"+
+    "\25\0\1\276\46\0\1\277\1\51\1\165\1\51\1\0"+
+    "\1\51\1\277\1\0\1\51\1\0\1\51\3\0\2\51"+
+    "\2\0\3\51\1\0\1\51\7\0\1\277\2\51\1\277"+
+    "\2\51\1\277\2\51\1\0\4\51\1\0\1\277\1\51"+
+    "\1\0\1\51\1\0\1\277\2\51\6\0\2\51\1\165"+
+    "\3\0\1\51\3\0\1\51\7\0\3\51\1\0\1\51"+
+    "\2\0\1\246\4\0\11\51\1\0\4\51\1\0\2\51"+
+    "\1\0\1\51\1\0\3\51\6\0\1\300\1\55\1\170"+
+    "\1\55\1\0\1\55\1\300\1\0\1\55\1\0\1\55"+
+    "\3\0\2\55\2\0\3\55\1\0\1\55\7\0\1\300"+
+    "\2\55\1\300\2\55\1\300\2\55\1\0\4\55\1\0"+
+    "\1\300\1\55\1\0\1\55\1\0\1\300\2\55\6\0"+
+    "\2\55\1\170\3\0\1\55\3\0\1\55\7\0\3\55"+
+    "\1\0\1\55\2\0\1\246\4\0\11\55\1\0\4\55"+
+    "\1\0\2\55\1\0\1\55\1\0\3\55\6\0\1\301"+
+    "\1\62\1\173\1\62\1\0\1\62\1\301\1\0\1\62"+
+    "\1\0\1\62\3\0\2\62\2\0\3\62\1\0\1\62"+
+    "\7\0\1\301\2\62\1\301\2\62\1\301\2\62\1\0"+
+    "\4\62\1\0\1\301\1\62\1\0\1\62\1\0\1\301"+
+    "\2\62\6\0\2\62\1\173\3\0\1\62\3\0\1\62"+
+    "\7\0\3\62\1\0\1\62\2\0\1\246\4\0\11\62"+
+    "\1\0\4\62\1\0\2\62\1\0\1\62\1\0\3\62"+
+    "\6\0\1\302\1\72\1\200\1\72\1\0\1\72\1\302"+
+    "\1\0\1\72\1\0\1\72\3\0\2\72\2\0\3\72"+
+    "\1\0\1\72\7\0\1\302\2\72\1\302\2\72\1\302"+
+    "\2\72\1\0\4\72\1\0\1\302\1\72\1\0\1\72"+
+    "\1\0\1\302\2\72\6\0\2\72\1\200\3\0\1\72"+
+    "\3\0\1\72\7\0\3\72\1\0\1\72\2\0\1\246"+
+    "\4\0\11\72\1\0\4\72\1\0\2\72\1\0\1\72"+
+    "\1\0\3\72\6\0\1\303\1\100\1\203\1\100\1\0"+
+    "\1\100\1\303\1\0\1\100\1\0\1\100\3\0\2\100"+
+    "\2\0\3\100\1\0\1\100\7\0\1\303\2\100\1\303"+
+    "\2\100\1\303\2\100\1\0\4\100\1\0\1\303\1\100"+
+    "\1\0\1\100\1\0\1\303\2\100\6\0\1\304\1\205"+
+    "\1\206\1\205\1\305\1\205\1\304\10\205\1\306\16\205"+
+    "\1\304\2\205\1\304\2\205\1\304\10\205\1\304\4\205"+
+    "\1\304\7\205\1\0\1\307\1\210\1\211\3\210\1\307"+
+    "\1\310\7\210\1\311\16\210\1\307\2\210\1\307\2\210"+
+    "\1\307\10\210\1\307\4\210\1\307\7\210\1\0\2\100"+
+    "\1\203\3\0\1\100\3\0\1\100\7\0\3\100\1\0"+
+    "\1\100\2\0\1\246\4\0\11\100\1\0\4\100\1\0"+
+    "\2\100\1\0\1\100\1\0\3\100\6\0\1\312\1\105"+
+    "\1\213\1\105\1\0\1\105\1\312\1\0\1\105\1\0"+
+    "\1\105\3\0\2\105\2\0\3\105\1\0\1\105\7\0"+
+    "\1\312\2\105\1\312\2\105\1\312\2\105\1\0\4\105"+
+    "\1\0\1\312\1\105\1\0\1\105\1\0\1\312\2\105"+
+    "\6\0\2\105\1\213\3\0\1\105\3\0\1\105\7\0"+
+    "\3\105\1\0\1\105\2\0\1\246\4\0\11\105\1\0"+
+    "\4\105\1\0\2\105\1\0\1\105\1\0\3\105\6\0"+
+    "\2\216\1\217\3\0\1\216\3\0\1\216\7\0\3\216"+
+    "\1\0\1\216\7\0\11\216\1\0\4\216\1\0\2\216"+
+    "\1\0\1\216\1\0\3\216\6\0\1\313\2\216\1\0"+
+    "\2\216\1\313\1\216\1\0\5\216\2\0\16\216\1\313"+
+    "\2\216\1\313\2\216\1\313\10\216\1\313\4\216\1\313"+
+    "\7\216\1\0\1\314\1\113\1\222\1\113\1\0\1\113"+
+    "\1\314\1\0\1\113\1\0\1\113\3\0\2\113\2\0"+
+    "\3\113\1\223\1\113\7\0\1\314\2\113\1\314\2\113"+
+    "\1\314\2\113\1\0\4\113\1\0\1\314\1\113\1\0"+
+    "\1\113\1\0\1\314\2\113\6\0\1\315\1\225\1\226"+
+    "\1\225\1\316\1\225\1\315\10\225\1\317\16\225\1\315"+
+    "\2\225\1\315\2\225\1\315\10\225\1\315\4\225\1\315"+
+    "\7\225\1\0\1\320\1\230\1\231\3\230\1\320\1\321"+
+    "\7\230\1\322\16\230\1\320\2\230\1\320\2\230\1\320"+
+    "\10\230\1\320\4\230\1\320\7\230\1\0\1\232\1\113"+
+    "\1\222\3\0\1\113\3\0\1\113\1\0\1\220\5\0"+
+    "\3\113\1\223\1\113\7\0\11\113\1\0\4\113\1\0"+
+    "\2\113\1\0\1\113\1\0\3\113\4\0\1\221\1\0"+
+    "\2\113\1\222\3\0\1\113\3\0\1\113\7\0\3\113"+
+    "\1\223\1\113\2\0\1\246\4\0\11\113\1\0\4\113"+
+    "\1\0\2\113\1\0\1\113\1\0\3\113\6\0\1\234"+
+    "\1\216\1\217\3\0\1\216\3\0\1\216\7\0\3\216"+
+    "\1\0\1\216\7\0\11\216\1\0\4\216\1\0\2\216"+
+    "\1\0\1\216\1\0\3\216\4\0\1\221\1\0\1\323"+
+    "\2\235\1\0\2\235\1\323\1\235\1\0\5\235\2\0"+
+    "\16\235\1\323\2\235\1\323\2\235\1\323\10\235\1\323"+
+    "\4\235\1\323\7\235\1\0\1\324\5\0\1\324\11\0"+
+    "\1\324\5\0\1\324\7\0\2\324\1\0\2\324\1\0"+
+    "\2\324\7\0\2\324\3\0\2\324\7\0\2\113\1\222"+
+    "\3\0\1\113\3\0\1\113\7\0\2\113\1\325\1\223"+
+    "\1\113\7\0\11\113\1\0\4\113\1\0\2\113\1\0"+
+    "\1\113\1\0\3\113\57\0\1\326\21\0\1\327\1\25"+
+    "\1\131\1\25\1\0\1\25\1\327\1\0\1\25\1\0"+
+    "\1\25\3\0\2\25\2\0\3\25\1\0\1\25\7\0"+
+    "\1\327\2\25\1\327\2\25\1\327\2\25\1\0\4\25"+
+    "\1\0\1\327\1\25\1\0\1\25\1\0\1\327\2\25"+
+    "\6\0\1\330\1\134\1\135\1\134\1\0\1\134\1\330"+
+    "\1\0\1\134\1\0\1\134\3\0\2\134\2\0\3\134"+
+    "\1\0\1\134\7\0\1\330\2\134\1\330\2\134\1\330"+
+    "\2\134\1\0\4\134\1\0\1\330\1\134\1\0\1\134"+
+    "\1\0\1\330\2\134\6\0\1\331\1\136\1\137\1\136"+
+    "\1\0\1\136\1\331\1\0\1\136\1\0\1\136\3\0"+
+    "\2\136\2\0\3\136\1\0\1\136\7\0\1\331\2\136"+
+    "\1\331\2\136\1\331\2\136\1\0\4\136\1\0\1\331"+
+    "\1\136\1\0\1\136\1\0\1\331\2\136\20\0\1\332"+
+    "\57\0\34\141\1\333\1\252\35\141\42\0\2\334\102\0"+
+    "\1\335\75\0\2\336\74\0\1\337\76\0\1\340\7\0"+
+    "\1\341\1\342\1\260\1\0\1\260\1\341\1\0\1\260"+
+    "\1\0\1\341\3\0\2\260\2\0\3\341\1\0\1\341"+
+    "\7\0\11\341\1\0\4\341\1\0\2\341\1\0\1\341"+
+    "\1\0\3\341\6\0\1\343\1\147\1\150\1\147\1\0"+
+    "\1\147\1\343\1\0\1\147\1\0\1\147\3\0\2\147"+
+    "\2\0\3\147\1\260\1\147\7\0\1\343\2\147\1\343"+
+    "\2\147\1\343\2\147\1\0\4\147\1\0\1\343\1\147"+
+    "\1\0\1\147\1\0\1\343\2\147\6\0\1\344\1\151"+
+    "\1\152\1\151\1\153\1\151\1\344\27\151\1\344\2\151"+
+    "\1\344\2\151\1\344\10\151\1\344\4\151\1\344\7\151"+
+    "\1\0\2\151\1\152\1\0\1\153\12\151\1\0\52\151"+
+    "\1\0\1\345\1\154\1\155\3\154\1\345\1\153\26\154"+
+    "\1\345\2\154\1\345\2\154\1\345\10\154\1\345\4\154"+
+    "\1\345\7\154\1\0\2\154\1\155\1\0\3\154\1\153"+
+    "\7\154\1\0\52\154\1\0\1\346\1\157\1\160\1\157"+
+    "\1\161\1\157\1\346\27\157\1\346\2\157\1\346\2\157"+
+    "\1\346\10\157\1\346\4\157\1\346\7\157\1\0\2\157"+
+    "\1\160\1\0\1\161\12\157\1\0\52\157\1\0\1\347"+
+    "\1\162\1\163\3\162\1\347\1\161\26\162\1\347\2\162"+
+    "\1\347\2\162\1\347\10\162\1\347\4\162\1\347\7\162"+
+    "\1\0\2\162\1\163\1\0\3\162\1\161\7\162\1\0"+
+    "\52\162\26\0\1\350\45\0\1\351\1\51\1\165\1\51"+
+    "\1\0\1\51\1\351\1\0\1\51\1\0\1\51\3\0"+
+    "\2\51\2\0\3\51\1\0\1\51\7\0\1\351\2\51"+
+    "\1\351\2\51\1\351\2\51\1\0\4\51\1\0\1\351"+
+    "\1\51\1\0\1\51\1\0\1\351\2\51\6\0\1\352"+
+    "\1\55\1\170\1\55\1\0\1\55\1\352\1\0\1\55"+
+    "\1\0\1\55\3\0\2\55\2\0\3\55\1\0\1\55"+
+    "\7\0\1\352\2\55\1\352\2\55\1\352\2\55\1\0"+
+    "\4\55\1\0\1\352\1\55\1\0\1\55\1\0\1\352"+
+    "\2\55\6\0\1\353\1\62\1\173\1\62\1\0\1\62"+
+    "\1\353\1\0\1\62\1\0\1\62\3\0\2\62\2\0"+
+    "\3\62\1\0\1\62\7\0\1\353\2\62\1\353\2\62"+
+    "\1\353\2\62\1\0\4\62\1\0\1\353\1\62\1\0"+
+    "\1\62\1\0\1\353\2\62\6\0\1\354\1\72\1\200"+
+    "\1\72\1\0\1\72\1\354\1\0\1\72\1\0\1\72"+
+    "\3\0\2\72\2\0\3\72\1\0\1\72\7\0\1\354"+
+    "\2\72\1\354\2\72\1\354\2\72\1\0\4\72\1\0"+
+    "\1\354\1\72\1\0\1\72\1\0\1\354\2\72\6\0"+
+    "\1\355\1\100\1\203\1\100\1\0\1\100\1\355\1\0"+
+    "\1\100\1\0\1\100\3\0\2\100\2\0\3\100\1\0"+
+    "\1\100\7\0\1\355\2\100\1\355\2\100\1\355\2\100"+
+    "\1\0\4\100\1\0\1\355\1\100\1\0\1\100\1\0"+
+    "\1\355\2\100\6\0\1\356\1\205\1\206\1\205\1\207"+
+    "\1\205\1\356\27\205\1\356\2\205\1\356\2\205\1\356"+
+    "\10\205\1\356\4\205\1\356\7\205\1\0\2\205\1\206"+
+    "\1\0\1\207\12\205\1\0\52\205\1\0\1\357\1\210"+
+    "\1\211\3\210\1\357\1\207\26\210\1\357\2\210\1\357"+
+    "\2\210\1\357\10\210\1\357\4\210\1\357\7\210\1\0"+
+    "\2\210\1\211\1\0\3\210\1\207\7\210\1\0\52\210"+
+    "\1\0\1\360\1\105\1\213\1\105\1\0\1\105\1\360"+
+    "\1\0\1\105\1\0\1\105\3\0\2\105\2\0\3\105"+
+    "\1\0\1\105\7\0\1\360\2\105\1\360\2\105\1\360"+
+    "\2\105\1\0\4\105\1\0\1\360\1\105\1\0\1\105"+
+    "\1\0\1\360\2\105\6\0\1\361\1\216\1\217\1\216"+
+    "\1\0\1\216\1\361\1\0\1\216\1\0\1\216\3\0"+
+    "\2\216\2\0\3\216\1\0\1\216\7\0\1\361\2\216"+
+    "\1\361\2\216\1\361\2\216\1\0\4\216\1\0\1\361"+
+    "\1\216\1\0\1\216\1\0\1\361\2\216\6\0\1\362"+
+    "\1\113\1\222\1\113\1\0\1\113\1\362\1\0\1\113"+
+    "\1\0\1\113\3\0\2\113\2\0\3\113\1\223\1\113"+
+    "\7\0\1\362\2\113\1\362\2\113\1\362\2\113\1\0"+
+    "\4\113\1\0\1\362\1\113\1\0\1\113\1\0\1\362"+
+    "\2\113\6\0\1\363\1\225\1\226\1\225\1\227\1\225"+
+    "\1\363\27\225\1\363\2\225\1\363\2\225\1\363\10\225"+
+    "\1\363\4\225\1\363\7\225\1\0\2\225\1\226\1\0"+
+    "\1\227\12\225\1\0\52\225\1\0\1\364\1\230\1\231"+
+    "\3\230\1\364\1\227\26\230\1\364\2\230\1\364\2\230"+
+    "\1\364\10\230\1\364\4\230\1\364\7\230\1\0\2\230"+
+    "\1\231\1\0\3\230\1\227\7\230\1\0\52\230\1\0"+
+    "\1\365\1\235\1\236\1\235\1\0\1\235\1\365\1\0"+
+    "\1\235\1\0\1\235\3\0\2\235\2\0\3\235\1\0"+
+    "\1\235\7\0\1\365\2\235\1\365\2\235\1\365\2\235"+
+    "\1\0\4\235\1\0\1\365\1\235\1\0\1\235\1\0"+
+    "\1\365\2\235\6\0\1\366\5\0\1\366\3\0\1\367"+
+    "\5\0\1\366\5\0\1\366\7\0\2\366\1\0\2\366"+
+    "\1\0\2\366\7\0\2\366\3\0\2\366\7\0\2\113"+
+    "\1\222\3\0\1\113\3\0\1\113\7\0\3\113\1\370"+
+    "\1\113\7\0\11\113\1\0\4\113\1\0\2\113\1\0"+
+    "\1\113\1\0\3\113\60\0\1\371\20\0\1\372\1\25"+
+    "\1\131\1\25\1\0\1\25\1\372\1\0\1\25\1\0"+
+    "\1\25\3\0\2\25\2\0\3\25\1\0\1\25\7\0"+
+    "\1\372\2\25\1\372\2\25\1\372\2\25\1\0\4\25"+
+    "\1\0\1\372\1\25\1\0\1\25\1\0\1\372\2\25"+
+    "\6\0\1\373\1\134\1\135\1\134\1\0\1\134\1\373"+
+    "\1\0\1\134\1\0\1\134\3\0\2\134\2\0\3\134"+
+    "\1\0\1\134\7\0\1\373\2\134\1\373\2\134\1\373"+
+    "\2\134\1\0\4\134\1\0\1\373\1\134\1\0\1\134"+
+    "\1\0\1\373\2\134\6\0\1\374\1\136\1\137\1\136"+
+    "\1\0\1\136\1\374\1\0\1\136\1\0\1\136\3\0"+
+    "\2\136\2\0\3\136\1\0\1\136\7\0\1\374\2\136"+
+    "\1\374\2\136\1\374\2\136\1\0\4\136\1\0\1\374"+
+    "\1\136\1\0\1\136\1\0\1\374\2\136\31\0\1\375"+
+    "\122\0\1\376\67\0\1\377\66\0\2\u0100\73\0\1\u0101"+
+    "\24\0\2\341\1\342\1\u0102\1\0\1\u0102\1\341\1\0"+
+    "\1\u0102\1\u0103\1\341\3\0\2\u0102\2\0\3\341\1\0"+
+    "\1\341\7\0\11\341\1\0\4\341\1\0\2\341\1\0"+
+    "\1\341\1\0\3\341\6\0\1\u0104\2\341\1\0\2\341"+
+    "\1\u0104\1\341\1\0\5\341\2\0\16\341\1\u0104\2\341"+
+    "\1\u0104\2\341\1\u0104\10\341\1\u0104\4\341\1\u0104\7\341"+
+    "\1\0\1\u0105\1\147\1\150\1\147\1\0\1\147\1\u0105"+
+    "\1\0\1\147\1\0\1\147\3\0\2\147\2\0\3\147"+
+    "\1\260\1\147\7\0\1\u0105\2\147\1\u0105\2\147\1\u0105"+
+    "\2\147\1\0\4\147\1\0\1\u0105\1\147\1\0\1\147"+
+    "\1\0\1\u0105\2\147\6\0\1\u0106\1\151\1\152\1\151"+
+    "\1\153\1\151\1\u0106\27\151\1\u0106\2\151\1\u0106\2\151"+
+    "\1\u0106\10\151\1\u0106\4\151\1\u0106\7\151\1\0\1\u0107"+
+    "\1\154\1\155\3\154\1\u0107\1\153\26\154\1\u0107\2\154"+
+    "\1\u0107\2\154\1\u0107\10\154\1\u0107\4\154\1\u0107\7\154"+
+    "\1\0\1\u0108\1\157\1\160\1\157\1\161\1\157\1\u0108"+
+    "\27\157\1\u0108\2\157\1\u0108\2\157\1\u0108\10\157\1\u0108"+
+    "\4\157\1\u0108\7\157\1\0\1\u0109\1\162\1\163\3\162"+
+    "\1\u0109\1\161\26\162\1\u0109\2\162\1\u0109\2\162\1\u0109"+
+    "\10\162\1\u0109\4\162\1\u0109\7\162\1\0\2\u010a\1\u010b"+
+    "\1\350\1\u010c\1\350\1\u010a\1\u010d\1\350\1\u010e\4\u010a"+
+    "\2\350\5\u010a\1\0\44\u010a\1\0\1\u010f\1\51\1\165"+
+    "\1\51\1\0\1\51\1\u010f\1\0\1\51\1\0\1\51"+
+    "\3\0\2\51\2\0\3\51\1\0\1\51\7\0\1\u010f"+
+    "\2\51\1\u010f\2\51\1\u010f\2\51\1\0\4\51\1\0"+
+    "\1\u010f\1\51\1\0\1\51\1\0\1\u010f\2\51\6\0"+
+    "\1\u0110\1\55\1\170\1\55\1\0\1\55\1\u0110\1\0"+
+    "\1\55\1\0\1\55\3\0\2\55\2\0\3\55\1\0"+
+    "\1\55\7\0\1\u0110\2\55\1\u0110\2\55\1\u0110\2\55"+
+    "\1\0\4\55\1\0\1\u0110\1\55\1\0\1\55\1\0"+
+    "\1\u0110\2\55\6\0\1\u0111\1\62\1\173\1\62\1\0"+
+    "\1\62\1\u0111\1\0\1\62\1\0\1\62\3\0\2\62"+
+    "\2\0\3\62\1\0\1\62\7\0\1\u0111\2\62\1\u0111"+
+    "\2\62\1\u0111\2\62\1\0\4\62\1\0\1\u0111\1\62"+
+    "\1\0\1\62\1\0\1\u0111\2\62\6\0\1\u0112\1\72"+
+    "\1\200\1\72\1\0\1\72\1\u0112\1\0\1\72\1\0"+
+    "\1\72\3\0\2\72\2\0\3\72\1\0\1\72\7\0"+
+    "\1\u0112\2\72\1\u0112\2\72\1\u0112\2\72\1\0\4\72"+
+    "\1\0\1\u0112\1\72\1\0\1\72\1\0\1\u0112\2\72"+
+    "\6\0\1\u0113\1\100\1\203\1\100\1\0\1\100\1\u0113"+
+    "\1\0\1\100\1\0\1\100\3\0\2\100\2\0\3\100"+
+    "\1\0\1\100\7\0\1\u0113\2\100\1\u0113\2\100\1\u0113"+
+    "\2\100\1\0\4\100\1\0\1\u0113\1\100\1\0\1\100"+
+    "\1\0\1\u0113\2\100\6\0\1\u0114\1\205\1\206\1\205"+
+    "\1\207\1\205\1\u0114\27\205\1\u0114\2\205\1\u0114\2\205"+
+    "\1\u0114\10\205\1\u0114\4\205\1\u0114\7\205\1\0\1\u0115"+
+    "\1\210\1\211\3\210\1\u0115\1\207\26\210\1\u0115\2\210"+
+    "\1\u0115\2\210\1\u0115\10\210\1\u0115\4\210\1\u0115\7\210"+
+    "\1\0\1\u0116\1\105\1\213\1\105\1\0\1\105\1\u0116"+
+    "\1\0\1\105\1\0\1\105\3\0\2\105\2\0\3\105"+
+    "\1\0\1\105\7\0\1\u0116\2\105\1\u0116\2\105\1\u0116"+
+    "\2\105\1\0\4\105\1\0\1\u0116\1\105\1\0\1\105"+
+    "\1\0\1\u0116\2\105\6\0\1\u0117\1\216\1\217\1\216"+
+    "\1\0\1\216\1\u0117\1\0\1\216\1\0\1\216\3\0"+
+    "\2\216\2\0\3\216\1\0\1\216\7\0\1\u0117\2\216"+
+    "\1\u0117\2\216\1\u0117\2\216\1\0\4\216\1\0\1\u0117"+
+    "\1\216\1\0\1\216\1\0\1\u0117\2\216\6\0\1\u0118"+
+    "\1\113\1\222\1\113\1\0\1\113\1\u0118\1\0\1\113"+
+    "\1\0\1\113\3\0\2\113\2\0\3\113\1\223\1\113"+
+    "\7\0\1\u0118\2\113\1\u0118\2\113\1\u0118\2\113\1\0"+
+    "\4\113\1\0\1\u0118\1\113\1\0\1\113\1\0\1\u0118"+
+    "\2\113\6\0\1\u0119\1\225\1\226\1\225\1\227\1\225"+
+    "\1\u0119\27\225\1\u0119\2\225\1\u0119\2\225\1\u0119\10\225"+
+    "\1\u0119\4\225\1\u0119\7\225\1\0\1\u011a\1\230\1\231"+
+    "\3\230\1\u011a\1\227\26\230\1\u011a\2\230\1\u011a\2\230"+
+    "\1\u011a\10\230\1\u011a\4\230\1\u011a\7\230\1\0\1\u011b"+
+    "\1\235\1\236\1\235\1\0\1\235\1\u011b\1\0\1\235"+
+    "\1\0\1\235\3\0\2\235\2\0\3\235\1\0\1\235"+
+    "\7\0\1\u011b\2\235\1\u011b\2\235\1\u011b\2\235\1\0"+
+    "\4\235\1\0\1\u011b\1\235\1\0\1\235\1\0\1\u011b"+
+    "\2\235\6\0\1\u011c\5\0\1\u011c\3\0\1\367\5\0"+
+    "\1\u011c\5\0\1\u011c\7\0\2\u011c\1\0\2\u011c\1\0"+
+    "\2\u011c\7\0\2\u011c\3\0\2\u011c\7\0\1\u011d\5\0"+
+    "\1\u011d\11\0\1\u011d\5\0\1\u011d\7\0\2\u011d\1\0"+
+    "\2\u011d\1\0\2\u011d\7\0\2\u011d\3\0\2\u011d\7\0"+
+    "\2\u011e\1\u011f\1\u0120\1\u0121\1\u0120\1\u011e\1\u0122\1\u0120"+
+    "\1\u0123\4\u011e\2\u0120\5\u011e\1\0\44\u011e\54\0\1\u0124"+
+    "\17\0\1\u0125\1\25\1\131\1\25\1\0\1\25\1\u0125"+
+    "\1\0\1\25\1\0\1\25\3\0\2\25\2\0\3\25"+
+    "\1\0\1\25\7\0\1\u0125\2\25\1\u0125\2\25\1\u0125"+
+    "\2\25\1\0\4\25\1\0\1\u0125\1\25\1\0\1\25"+
+    "\1\0\1\u0125\2\25\6\0\1\u0126\1\134\1\135\1\134"+
+    "\1\0\1\134\1\u0126\1\0\1\134\1\0\1\134\3\0"+
+    "\2\134\2\0\3\134\1\0\1\134\7\0\1\u0126\2\134"+
+    "\1\u0126\2\134\1\u0126\2\134\1\0\4\134\1\0\1\u0126"+
+    "\1\134\1\0\1\134\1\0\1\u0126\2\134\6\0\1\u0127"+
+    "\1\136\1\137\1\136\1\0\1\136\1\u0127\1\0\1\136"+
+    "\1\0\1\136\3\0\2\136\2\0\3\136\1\0\1\136"+
+    "\7\0\1\u0127\2\136\1\u0127\2\136\1\u0127\2\136\1\0"+
+    "\4\136\1\0\1\u0127\1\136\1\0\1\136\1\0\1\u0127"+
+    "\2\136\51\0\1\u0128\52\0\1\u0129\110\0\2\u012a\42\0"+
+    "\1\u012b\63\0\1\u0102\1\0\1\u0102\2\0\1\u0102\1\u0103"+
+    "\4\0\2\u0102\53\0\1\u012c\1\341\1\342\1\341\1\0"+
+    "\1\341\1\u012c\1\0\1\341\1\u0103\1\341\3\0\2\341"+
+    "\2\0\3\341\1\0\1\341\7\0\1\u012c\2\341\1\u012c"+
+    "\2\341\1\u012c\2\341\1\0\4\341\1\0\1\u012c\1\341"+
+    "\1\0\1\341\1\0\1\u012c\2\341\6\0\1\u012d\1\147"+
+    "\1\150\1\147\1\0\1\147\1\u012d\1\0\1\147\1\0"+
+    "\1\147\3\0\2\147\2\0\3\147\1\260\1\147\7\0"+
+    "\1\u012d\2\147\1\u012d\2\147\1\u012d\2\147\1\0\4\147"+
+    "\1\0\1\u012d\1\147\1\0\1\147\1\0\1\u012d\2\147"+
+    "\6\0\1\u012e\1\151\1\152\1\151\1\153\1\151\1\u012e"+
+    "\27\151\1\u012e\2\151\1\u012e\2\151\1\u012e\10\151\1\u012e"+
+    "\4\151\1\u012e\7\151\1\0\1\u012f\1\154\1\155\3\154"+
+    "\1\u012f\1\153\26\154\1\u012f\2\154\1\u012f\2\154\1\u012f"+
+    "\10\154\1\u012f\4\154\1\u012f\7\154\1\0\1\u0130\1\157"+
+    "\1\160\1\157\1\161\1\157\1\u0130\27\157\1\u0130\2\157"+
+    "\1\u0130\2\157\1\u0130\10\157\1\u0130\4\157\1\u0130\7\157"+
+    "\1\0\1\u0131\1\162\1\163\3\162\1\u0131\1\161\26\162"+
+    "\1\u0131\2\162\1\u0131\2\162\1\u0131\10\162\1\u0131\4\162"+
+    "\1\u0131\7\162\1\0\2\u010a\1\u010b\1\u0132\1\0\2\u010a"+
+    "\1\0\1\u0132\1\u010e\4\u010a\2\u0132\5\u010a\1\0\44\u010a"+
+    "\1\0\1\u0133\1\u010a\1\u010b\1\u0132\2\u010a\1\u0133\1\u010a"+
+    "\1\u0132\1\u0134\4\u010a\2\u0132\16\u010a\1\u0133\2\u010a\1\u0133"+
+    "\2\u010a\1\u0133\10\u010a\1\u0133\4\u010a\1\u0133\7\u010a\1\0"+
+    "\2\u010c\1\u0135\1\0\1\u0132\11\u010c\2\0\52\u010c\1\0"+
+    "\2\u010d\1\u0136\1\0\3\u010d\1\u0132\6\u010d\2\0\52\u010d"+
+    "\1\0\1\u0137\1\51\1\165\1\51\1\0\1\51\1\u0137"+
+    "\1\0\1\51\1\0\1\51\3\0\2\51\2\0\3\51"+
+    "\1\0\1\51\7\0\1\u0137\2\51\1\u0137\2\51\1\u0137"+
+    "\2\51\1\0\4\51\1\0\1\u0137\1\51\1\0\1\51"+
+    "\1\0\1\u0137\2\51\6\0\1\u0138\1\55\1\170\1\55"+
+    "\1\0\1\55\1\u0138\1\0\1\55\1\0\1\55\3\0"+
+    "\2\55\2\0\3\55\1\0\1\55\7\0\1\u0138\2\55"+
+    "\1\u0138\2\55\1\u0138\2\55\1\0\4\55\1\0\1\u0138"+
+    "\1\55\1\0\1\55\1\0\1\u0138\2\55\6\0\1\u0139"+
+    "\1\62\1\173\1\62\1\0\1\62\1\u0139\1\0\1\62"+
+    "\1\0\1\62\3\0\2\62\2\0\3\62\1\0\1\62"+
+    "\7\0\1\u0139\2\62\1\u0139\2\62\1\u0139\2\62\1\0"+
+    "\4\62\1\0\1\u0139\1\62\1\0\1\62\1\0\1\u0139"+
+    "\2\62\6\0\1\u013a\1\72\1\200\1\72\1\0\1\72"+
+    "\1\u013a\1\0\1\72\1\0\1\72\3\0\2\72\2\0"+
+    "\3\72\1\0\1\72\7\0\1\u013a\2\72\1\u013a\2\72"+
+    "\1\u013a\2\72\1\0\4\72\1\0\1\u013a\1\72\1\0"+
+    "\1\72\1\0\1\u013a\2\72\6\0\1\u013b\1\100\1\203"+
+    "\1\100\1\0\1\100\1\u013b\1\0\1\100\1\0\1\100"+
+    "\3\0\2\100\2\0\3\100\1\0\1\100\7\0\1\u013b"+
+    "\2\100\1\u013b\2\100\1\u013b\2\100\1\0\4\100\1\0"+
+    "\1\u013b\1\100\1\0\1\100\1\0\1\u013b\2\100\6\0"+
+    "\1\u013c\1\205\1\206\1\205\1\207\1\205\1\u013c\27\205"+
+    "\1\u013c\2\205\1\u013c\2\205\1\u013c\10\205\1\u013c\4\205"+
+    "\1\u013c\7\205\1\0\1\u013d\1\210\1\211\3\210\1\u013d"+
+    "\1\207\26\210\1\u013d\2\210\1\u013d\2\210\1\u013d\10\210"+
+    "\1\u013d\4\210\1\u013d\7\210\1\0\1\u013e\1\105\1\213"+
+    "\1\105\1\0\1\105\1\u013e\1\0\1\105\1\0\1\105"+
+    "\3\0\2\105\2\0\3\105\1\0\1\105\7\0\1\u013e"+
+    "\2\105\1\u013e\2\105\1\u013e\2\105\1\0\4\105\1\0"+
+    "\1\u013e\1\105\1\0\1\105\1\0\1\u013e\2\105\6\0"+
+    "\1\u013f\1\216\1\217\1\216\1\0\1\216\1\u013f\1\0"+
+    "\1\216\1\0\1\216\3\0\2\216\2\0\3\216\1\0"+
+    "\1\216\7\0\1\u013f\2\216\1\u013f\2\216\1\u013f\2\216"+
+    "\1\0\4\216\1\0\1\u013f\1\216\1\0\1\216\1\0"+
+    "\1\u013f\2\216\6\0\1\u0140\1\113\1\222\1\113\1\0"+
+    "\1\113\1\u0140\1\0\1\113\1\0\1\113\3\0\2\113"+
+    "\2\0\3\113\1\223\1\113\7\0\1\u0140\2\113\1\u0140"+
+    "\2\113\1\u0140\2\113\1\0\4\113\1\0\1\u0140\1\113"+
+    "\1\0\1\113\1\0\1\u0140\2\113\6\0\1\u0141\1\225"+
+    "\1\226\1\225\1\227\1\225\1\u0141\27\225\1\u0141\2\225"+
+    "\1\u0141\2\225\1\u0141\10\225\1\u0141\4\225\1\u0141\7\225"+
+    "\1\0\1\u0142\1\230\1\231\3\230\1\u0142\1\227\26\230"+
+    "\1\u0142\2\230\1\u0142\2\230\1\u0142\10\230\1\u0142\4\230"+
+    "\1\u0142\7\230\1\0\1\u0143\1\235\1\236\1\235\1\0"+
+    "\1\235\1\u0143\1\0\1\235\1\0\1\235\3\0\2\235"+
+    "\2\0\3\235\1\0\1\235\7\0\1\u0143\2\235\1\u0143"+
+    "\2\235\1\u0143\2\235\1\0\4\235\1\0\1\u0143\1\235"+
+    "\1\0\1\235\1\0\1\u0143\2\235\6\0\1\u0144\5\0"+
+    "\1\u0144\3\0\1\367\5\0\1\u0144\5\0\1\u0144\7\0"+
+    "\2\u0144\1\0\2\u0144\1\0\2\u0144\7\0\2\u0144\3\0"+
+    "\2\u0144\7\0\1\u0145\5\0\1\u0145\11\0\1\u0145\5\0"+
+    "\1\u0145\7\0\2\u0145\1\0\2\u0145\1\0\2\u0145\7\0"+
+    "\2\u0145\3\0\2\u0145\7\0\2\u011e\1\u011f\1\u0146\1\0"+
+    "\2\u011e\1\0\1\u0146\1\u0123\4\u011e\2\u0146\5\u011e\1\0"+
+    "\44\u011e\1\0\1\u0147\1\u011e\1\u011f\1\u0146\2\u011e\1\u0147"+
+    "\1\u011e\1\u0146\1\u0148\4\u011e\2\u0146\16\u011e\1\u0147\2\u011e"+
+    "\1\u0147\2\u011e\1\u0147\10\u011e\1\u0147\4\u011e\1\u0147\7\u011e"+
+    "\1\0\2\u0121\1\u0149\1\0\1\u0146\11\u0121\2\0\52\u0121"+
+    "\1\0\2\u0122\1\u014a\1\0\3\u0122\1\u0146\6\u0122\2\0"+
+    "\52\u0122\24\0\1\u014b\47\0\1\u014c\1\25\1\131\1\25"+
+    "\1\0\1\25\1\u014c\1\0\1\25\1\0\1\25\3\0"+
+    "\2\25\2\0\3\25\1\0\1\25\7\0\1\u014c\2\25"+
+    "\1\u014c\2\25\1\u014c\2\25\1\0\4\25\1\0\1\u014c"+
+    "\1\25\1\0\1\25\1\0\1\u014c\2\25\6\0\1\u014d"+
+    "\1\134\1\135\1\134\1\0\1\134\1\u014d\1\0\1\134"+
+    "\1\0\1\134\3\0\2\134\2\0\3\134\1\0\1\134"+
+    "\7\0\1\u014d\2\134\1\u014d\2\134\1\u014d\2\134\1\0"+
+    "\4\134\1\0\1\u014d\1\134\1\0\1\134\1\0\1\u014d"+
+    "\2\134\6\0\1\u014e\1\136\1\137\1\136\1\0\1\136"+
+    "\1\u014e\1\0\1\136\1\0\1\136\3\0\2\136\2\0"+
+    "\3\136\1\0\1\136\7\0\1\u014e\2\136\1\u014e\2\136"+
+    "\1\u014e\2\136\1\0\4\136\1\0\1\u014e\1\136\1\0"+
+    "\1\136\1\0\1\u014e\2\136\52\0\2\u014f\73\0\1\u0150"+
+    "\106\0\2\u0151\7\0\1\u0152\1\341\1\342\1\341\1\0"+
+    "\1\341\1\u0152\1\0\1\341\1\u0103\1\341\3\0\2\341"+
+    "\2\0\3\341\1\0\1\341\7\0\1\u0152\2\341\1\u0152"+
+    "\2\341\1\u0152\2\341\1\0\4\341\1\0\1\u0152\1\341"+
+    "\1\0\1\341\1\0\1\u0152\2\341\6\0\1\u0153\1\147"+
+    "\1\150\1\147\1\0\1\147\1\u0153\1\0\1\147\1\0"+
+    "\1\147\3\0\2\147\2\0\3\147\1\260\1\147\7\0"+
+    "\1\u0153\2\147\1\u0153\2\147\1\u0153\2\147\1\0\4\147"+
+    "\1\0\1\u0153\1\147\1\0\1\147\1\0\1\u0153\2\147"+
+    "\6\0\1\u0154\1\151\1\152\1\151\1\153\1\151\1\u0154"+
+    "\27\151\1\u0154\2\151\1\u0154\2\151\1\u0154\10\151\1\u0154"+
+    "\4\151\1\u0154\7\151\1\0\1\u0155\1\154\1\155\3\154"+
+    "\1\u0155\1\153\26\154\1\u0155\2\154\1\u0155\2\154\1\u0155"+
+    "\10\154\1\u0155\4\154\1\u0155\7\154\1\0\1\u0156\1\157"+
+    "\1\160\1\157\1\161\1\157\1\u0156\27\157\1\u0156\2\157"+
+    "\1\u0156\2\157\1\u0156\10\157\1\u0156\4\157\1\u0156\7\157"+
+    "\1\0\1\u0157\1\162\1\163\3\162\1\u0157\1\161\26\162"+
+    "\1\u0157\2\162\1\u0157\2\162\1\u0157\10\162\1\u0157\4\162"+
+    "\1\u0157\7\162\4\0\1\u0132\1\0\1\u0132\2\0\1\u0132"+
+    "\1\u010e\4\0\2\u0132\53\0\1\u0158\1\u010a\1\u010b\1\u010a"+
+    "\1\0\1\u010a\1\u0158\1\0\1\u010a\1\u010e\13\u010a\1\0"+
+    "\10\u010a\1\u0158\2\u010a\1\u0158\2\u010a\1\u0158\10\u010a\1\u0158"+
+    "\4\u010a\1\u0158\7\u010a\1\0\1\u0159\1\u010c\1\u0135\1\u010c"+
+    "\1\u015a\1\u010c\1\u0159\10\u010c\1\u015b\16\u010c\1\u0159\2\u010c"+
+    "\1\u0159\2\u010c\1\u0159\10\u010c\1\u0159\4\u010c\1\u0159\7\u010c"+
+    "\1\0\1\u015c\1\u010d\1\u0136\3\u010d\1\u015c\1\u015d\7\u010d"+
+    "\1\u015e\16\u010d\1\u015c\2\u010d\1\u015c\2\u010d\1\u015c\10\u010d"+
+    "\1\u015c\4\u010d\1\u015c\7\u010d\1\0\1\u015f\1\51\1\165"+
+    "\1\51\1\0\1\51\1\u015f\1\0\1\51\1\0\1\51"+
+    "\3\0\2\51\2\0\3\51\1\0\1\51\7\0\1\u015f"+
+    "\2\51\1\u015f\2\51\1\u015f\2\51\1\0\4\51\1\0"+
+    "\1\u015f\1\51\1\0\1\51\1\0\1\u015f\2\51\6\0"+
+    "\1\u0160\1\55\1\170\1\55\1\0\1\55\1\u0160\1\0"+
+    "\1\55\1\0\1\55\3\0\2\55\2\0\3\55\1\0"+
+    "\1\55\7\0\1\u0160\2\55\1\u0160\2\55\1\u0160\2\55"+
+    "\1\0\4\55\1\0\1\u0160\1\55\1\0\1\55\1\0"+
+    "\1\u0160\2\55\6\0\1\u0161\1\62\1\173\1\62\1\0"+
+    "\1\62\1\u0161\1\0\1\62\1\0\1\62\3\0\2\62"+
+    "\2\0\3\62\1\0\1\62\7\0\1\u0161\2\62\1\u0161"+
+    "\2\62\1\u0161\2\62\1\0\4\62\1\0\1\u0161\1\62"+
+    "\1\0\1\62\1\0\1\u0161\2\62\6\0\1\u0162\1\72"+
+    "\1\200\1\72\1\0\1\72\1\u0162\1\0\1\72\1\0"+
+    "\1\72\3\0\2\72\2\0\3\72\1\0\1\72\7\0"+
+    "\1\u0162\2\72\1\u0162\2\72\1\u0162\2\72\1\0\4\72"+
+    "\1\0\1\u0162\1\72\1\0\1\72\1\0\1\u0162\2\72"+
+    "\6\0\1\u0163\1\100\1\203\1\100\1\0\1\100\1\u0163"+
+    "\1\0\1\100\1\0\1\100\3\0\2\100\2\0\3\100"+
+    "\1\0\1\100\7\0\1\u0163\2\100\1\u0163\2\100\1\u0163"+
+    "\2\100\1\0\4\100\1\0\1\u0163\1\100\1\0\1\100"+
+    "\1\0\1\u0163\2\100\6\0\1\u0164\1\205\1\206\1\205"+
+    "\1\207\1\205\1\u0164\27\205\1\u0164\2\205\1\u0164\2\205"+
+    "\1\u0164\10\205\1\u0164\4\205\1\u0164\7\205\1\0\1\u0165"+
+    "\1\210\1\211\3\210\1\u0165\1\207\26\210\1\u0165\2\210"+
+    "\1\u0165\2\210\1\u0165\10\210\1\u0165\4\210\1\u0165\7\210"+
+    "\1\0\1\u0166\1\105\1\213\1\105\1\0\1\105\1\u0166"+
+    "\1\0\1\105\1\0\1\105\3\0\2\105\2\0\3\105"+
+    "\1\0\1\105\7\0\1\u0166\2\105\1\u0166\2\105\1\u0166"+
+    "\2\105\1\0\4\105\1\0\1\u0166\1\105\1\0\1\105"+
+    "\1\0\1\u0166\2\105\6\0\1\u0167\1\216\1\217\1\216"+
+    "\1\0\1\216\1\u0167\1\0\1\216\1\0\1\216\3\0"+
+    "\2\216\2\0\3\216\1\0\1\216\7\0\1\u0167\2\216"+
+    "\1\u0167\2\216\1\u0167\2\216\1\0\4\216\1\0\1\u0167"+
+    "\1\216\1\0\1\216\1\0\1\u0167\2\216\6\0\1\u0168"+
+    "\1\113\1\222\1\113\1\0\1\113\1\u0168\1\0\1\113"+
+    "\1\0\1\113\3\0\2\113\2\0\3\113\1\223\1\113"+
+    "\7\0\1\u0168\2\113\1\u0168\2\113\1\u0168\2\113\1\0"+
+    "\4\113\1\0\1\u0168\1\113\1\0\1\113\1\0\1\u0168"+
+    "\2\113\6\0\1\u0169\1\225\1\226\1\225\1\227\1\225"+
+    "\1\u0169\27\225\1\u0169\2\225\1\u0169\2\225\1\u0169\10\225"+
+    "\1\u0169\4\225\1\u0169\7\225\1\0\1\u016a\1\230\1\231"+
+    "\3\230\1\u016a\1\227\26\230\1\u016a\2\230\1\u016a\2\230"+
+    "\1\u016a\10\230\1\u016a\4\230\1\u016a\7\230\1\0\1\u016b"+
+    "\1\235\1\236\1\235\1\0\1\235\1\u016b\1\0\1\235"+
+    "\1\0\1\235\3\0\2\235\2\0\3\235\1\0\1\235"+
+    "\7\0\1\u016b\2\235\1\u016b\2\235\1\u016b\2\235\1\0"+
+    "\4\235\1\0\1\u016b\1\235\1\0\1\235\1\0\1\u016b"+
+    "\2\235\6\0\1\u016c\5\0\1\u016c\3\0\1\367\5\0"+
+    "\1\u016c\5\0\1\u016c\7\0\2\u016c\1\0\2\u016c\1\0"+
+    "\2\u016c\7\0\2\u016c\3\0\2\u016c\7\0\1\u016d\5\0"+
+    "\1\u016d\11\0\1\u016d\5\0\1\u016d\7\0\2\u016d\1\0"+
+    "\2\u016d\1\0\2\u016d\7\0\2\u016d\3\0\2\u016d\12\0"+
+    "\1\u0146\1\0\1\u0146\2\0\1\u0146\1\u0123\4\0\2\u0146"+
+    "\53\0\1\u016e\1\u011e\1\u011f\1\u011e\1\0\1\u011e\1\u016e"+
+    "\1\0\1\u011e\1\u0123\13\u011e\1\0\10\u011e\1\u016e\2\u011e"+
+    "\1\u016e\2\u011e\1\u016e\10\u011e\1\u016e\4\u011e\1\u016e\7\u011e"+
+    "\1\0\1\u016f\1\u0121\1\u0149\1\u0121\1\u0170\1\u0121\1\u016f"+
+    "\10\u0121\1\u0171\16\u0121\1\u016f\2\u0121\1\u016f\2\u0121\1\u016f"+
+    "\10\u0121\1\u016f\4\u0121\1\u016f\7\u0121\1\0\1\u0172\1\u0122"+
+    "\1\u014a\3\u0122\1\u0172\1\u0173\7\u0122\1\u0174\16\u0122\1\u0172"+
+    "\2\u0122\1\u0172\2\u0122\1\u0172\10\u0122\1\u0172\4\u0122\1\u0172"+
+    "\7\u0122\47\0\1\u0175\24\0\2\25\1\131\1\25\1\0"+
+    "\2\25\1\0\1\25\1\0\1\25\3\0\2\25\2\0"+
+    "\3\25\1\0\1\25\7\0\11\25\1\0\4\25\1\0"+
+    "\2\25\1\0\1\25\1\0\3\25\6\0\1\u0176\1\134"+
+    "\1\135\1\134\1\0\1\134\1\u0176\1\0\1\134\1\0"+
+    "\1\134\3\0\2\134\2\0\3\134\1\0\1\134\7\0"+
+    "\1\u0176\2\134\1\u0176\2\134\1\u0176\2\134\1\0\4\134"+
+    "\1\0\1\u0176\1\134\1\0\1\134\1\0\1\u0176\2\134"+
+    "\6\0\1\u0177\1\136\1\137\1\136\1\0\1\136\1\u0177"+
+    "\1\0\1\136\1\0\1\136\3\0\2\136\2\0\3\136"+
+    "\1\0\1\136\7\0\1\u0177\2\136\1\u0177\2\136\1\u0177"+
+    "\2\136\1\0\4\136\1\0\1\u0177\1\136\1\0\1\136"+
+    "\1\0\1\u0177\2\136\54\0\1\u0178\65\0\2\u0179\30\0"+
+    "\1\u017a\1\341\1\342\1\341\1\0\1\341\1\u017a\1\0"+
+    "\1\341\1\u0103\1\341\3\0\2\341\2\0\3\341\1\0"+
+    "\1\341\7\0\1\u017a\2\341\1\u017a\2\341\1\u017a\2\341"+
+    "\1\0\4\341\1\0\1\u017a\1\341\1\0\1\341\1\0"+
+    "\1\u017a\2\341\6\0\1\u017b\1\147\1\150\1\147\1\0"+
+    "\1\147\1\u017b\1\0\1\147\1\0\1\147\3\0\2\147"+
+    "\2\0\3\147\1\260\1\147\7\0\1\u017b\2\147\1\u017b"+
+    "\2\147\1\u017b\2\147\1\0\4\147\1\0\1\u017b\1\147"+
+    "\1\0\1\147\1\0\1\u017b\2\147\6\0\1\u017c\1\151"+
+    "\1\152\1\151\1\153\1\151\1\u017c\27\151\1\u017c\2\151"+
+    "\1\u017c\2\151\1\u017c\10\151\1\u017c\4\151\1\u017c\7\151"+
+    "\1\0\1\u017d\1\154\1\155\3\154\1\u017d\1\153\26\154"+
+    "\1\u017d\2\154\1\u017d\2\154\1\u017d\10\154\1\u017d\4\154"+
+    "\1\u017d\7\154\1\0\1\u017e\1\157\1\160\1\157\1\161"+
+    "\1\157\1\u017e\27\157\1\u017e\2\157\1\u017e\2\157\1\u017e"+
+    "\10\157\1\u017e\4\157\1\u017e\7\157\1\0\1\u017f\1\162"+
+    "\1\163\3\162\1\u017f\1\161\26\162\1\u017f\2\162\1\u017f"+
+    "\2\162\1\u017f\10\162\1\u017f\4\162\1\u017f\7\162\1\0"+
+    "\1\u0180\1\u010a\1\u010b\1\u010a\1\0\1\u010a\1\u0180\1\0"+
+    "\1\u010a\1\u010e\13\u010a\1\0\10\u010a\1\u0180\2\u010a\1\u0180"+
+    "\2\u010a\1\u0180\10\u010a\1\u0180\4\u010a\1\u0180\7\u010a\1\0"+
+    "\1\u0181\1\u010c\1\u0135\1\u010c\1\u0132\1\u010c\1\u0181\27\u010c"+
+    "\1\u0181\2\u010c\1\u0181\2\u010c\1\u0181\10\u010c\1\u0181\4\u010c"+
+    "\1\u0181\7\u010c\1\0\2\u010c\1\u0135\2\u0132\1\u015a\2\u010c"+
+    "\1\u015a\1\u0182\4\u010c\2\u0132\52\u010c\1\0\2\u010c\1\u0135"+
+    "\1\0\1\u0132\12\u010c\1\0\52\u010c\1\0\1\u0183\1\u010d"+
+    "\1\u0136\3\u010d\1\u0183\1\u0132\26\u010d\1\u0183\2\u010d\1\u0183"+
+    "\2\u010d\1\u0183\10\u010d\1\u0183\4\u010d\1\u0183\7\u010d\1\0"+
+    "\2\u010d\1\u0136\1\u0132\1\u010d\1\u015d\1\u010d\1\u0132\1\u015d"+
+    "\1\u0184\4\u010d\2\u0132\52\u010d\1\0\2\u010d\1\u0136\1\0"+
+    "\3\u010d\1\u0132\7\u010d\1\0\52\u010d\1\0\2\51\1\165"+
+    "\1\51\1\0\2\51\1\0\1\51\1\0\1\51\3\0"+
+    "\2\51\2\0\3\51\1\0\1\51\7\0\11\51\1\0"+
+    "\4\51\1\0\2\51\1\0\1\51\1\0\3\51\6\0"+
+    "\2\55\1\170\1\55\1\0\2\55\1\0\1\55\1\0"+
+    "\1\55\3\0\2\55\2\0\3\55\1\0\1\55\7\0"+
+    "\11\55\1\0\4\55\1\0\2\55\1\0\1\55\1\0"+
+    "\3\55\6\0\2\62\1\173\1\62\1\0\2\62\1\0"+
+    "\1\62\1\0\1\62\3\0\2\62\2\0\3\62\1\0"+
+    "\1\62\7\0\11\62\1\0\4\62\1\0\2\62\1\0"+
+    "\1\62\1\0\3\62\6\0\2\72\1\200\1\72\1\0"+
+    "\2\72\1\0\1\72\1\0\1\72\3\0\2\72\2\0"+
+    "\3\72\1\0\1\72\7\0\11\72\1\0\4\72\1\0"+
+    "\2\72\1\0\1\72\1\0\3\72\6\0\2\100\1\203"+
+    "\1\100\1\0\2\100\1\0\1\100\1\0\1\100\3\0"+
+    "\2\100\2\0\3\100\1\0\1\100\7\0\11\100\1\0"+
+    "\4\100\1\0\2\100\1\0\1\100\1\0\3\100\6\0"+
+    "\1\u0185\1\205\1\206\1\205\1\207\1\205\1\u0185\27\205"+
+    "\1\u0185\2\205\1\u0185\2\205\1\u0185\10\205\1\u0185\4\205"+
+    "\1\u0185\7\205\1\0\1\u0186\1\210\1\211\3\210\1\u0186"+
+    "\1\207\26\210\1\u0186\2\210\1\u0186\2\210\1\u0186\10\210"+
+    "\1\u0186\4\210\1\u0186\7\210\1\0\2\105\1\213\1\105"+
+    "\1\0\2\105\1\0\1\105\1\0\1\105\3\0\2\105"+
+    "\2\0\3\105\1\0\1\105\7\0\11\105\1\0\4\105"+
+    "\1\0\2\105\1\0\1\105\1\0\3\105\6\0\1\u0187"+
+    "\1\216\1\217\1\216\1\0\1\216\1\u0187\1\0\1\216"+
+    "\1\0\1\216\3\0\2\216\2\0\3\216\1\0\1\216"+
+    "\7\0\1\u0187\2\216\1\u0187\2\216\1\u0187\2\216\1\0"+
+    "\4\216\1\0\1\u0187\1\216\1\0\1\216\1\0\1\u0187"+
+    "\2\216\6\0\2\113\1\222\1\113\1\0\2\113\1\0"+
+    "\1\113\1\0\1\113\3\0\2\113\2\0\3\113\1\223"+
+    "\1\113\7\0\11\113\1\0\4\113\1\0\2\113\1\0"+
+    "\1\113\1\0\3\113\6\0\1\u0188\1\225\1\226\1\225"+
+    "\1\227\1\225\1\u0188\27\225\1\u0188\2\225\1\u0188\2\225"+
+    "\1\u0188\10\225\1\u0188\4\225\1\u0188\7\225\1\0\1\u0189"+
+    "\1\230\1\231\3\230\1\u0189\1\227\26\230\1\u0189\2\230"+
+    "\1\u0189\2\230\1\u0189\10\230\1\u0189\4\230\1\u0189\7\230"+
+    "\1\0\1\u018a\1\235\1\236\1\235\1\0\1\235\1\u018a"+
+    "\1\0\1\235\1\0\1\235\3\0\2\235\2\0\3\235"+
+    "\1\0\1\235\7\0\1\u018a\2\235\1\u018a\2\235\1\u018a"+
+    "\2\235\1\0\4\235\1\0\1\u018a\1\235\1\0\1\235"+
+    "\1\0\1\u018a\2\235\6\0\1\u018b\5\0\1\u018b\3\0"+
+    "\1\367\5\0\1\u018b\5\0\1\u018b\7\0\2\u018b\1\0"+
+    "\2\u018b\1\0\2\u018b\7\0\2\u018b\3\0\2\u018b\7\0"+
+    "\1\u018c\5\0\1\u018c\11\0\1\u018c\5\0\1\u018c\7\0"+
+    "\2\u018c\1\0\2\u018c\1\0\2\u018c\7\0\2\u018c\3\0"+
+    "\2\u018c\7\0\1\u018d\1\u011e\1\u011f\1\u011e\1\0\1\u011e"+
+    "\1\u018d\1\0\1\u011e\1\u0123\13\u011e\1\0\10\u011e\1\u018d"+
+    "\2\u011e\1\u018d\2\u011e\1\u018d\10\u011e\1\u018d\4\u011e\1\u018d"+
+    "\7\u011e\1\0\1\u018e\1\u0121\1\u0149\1\u0121\1\u0146\1\u0121"+
+    "\1\u018e\27\u0121\1\u018e\2\u0121\1\u018e\2\u0121\1\u018e\10\u0121"+
+    "\1\u018e\4\u0121\1\u018e\7\u0121\1\0\2\u0121\1\u0149\2\u0146"+
+    "\1\u0170\2\u0121\1\u0170\1\u018f\4\u0121\2\u0146\52\u0121\1\0"+
+    "\2\u0121\1\u0149\1\0\1\u0146\12\u0121\1\0\52\u0121\1\0"+
+    "\1\u0190\1\u0122\1\u014a\3\u0122\1\u0190\1\u0146\26\u0122\1\u0190"+
+    "\2\u0122\1\u0190\2\u0122\1\u0190\10\u0122\1\u0190\4\u0122\1\u0190"+
+    "\7\u0122\1\0\2\u0122\1\u014a\1\u0146\1\u0122\1\u0173\1\u0122"+
+    "\1\u0146\1\u0173\1\u0191\4\u0122\2\u0146\52\u0122\1\0\2\u0122"+
+    "\1\u014a\1\0\3\u0122\1\u0146\7\u0122\1\0\52\u0122\42\0"+
+    "\2\u0192\30\0\2\134\1\135\1\134\1\0\2\134\1\0"+
+    "\1\134\1\0\1\134\3\0\2\134\2\0\3\134\1\0"+
+    "\1\134\7\0\11\134\1\0\4\134\1\0\2\134\1\0"+
+    "\1\134\1\0\3\134\6\0\2\136\1\137\1\136\1\0"+
+    "\2\136\1\0\1\136\1\0\1\136\3\0\2\136\2\0"+
+    "\3\136\1\0\1\136\7\0\11\136\1\0\4\136\1\0"+
+    "\2\136\1\0\1\136\1\0\3\136\44\0\2\u0193\33\0"+
+    "\1\u0194\1\341\1\342\1\341\1\0\1\341\1\u0194\1\0"+
+    "\1\341\1\u0103\1\341\3\0\2\341\2\0\3\341\1\0"+
+    "\1\341\7\0\1\u0194\2\341\1\u0194\2\341\1\u0194\2\341"+
+    "\1\0\4\341\1\0\1\u0194\1\341\1\0\1\341\1\0"+
+    "\1\u0194\2\341\6\0\2\147\1\150\1\147\1\0\2\147"+
+    "\1\0\1\147\1\0\1\147\3\0\2\147\2\0\3\147"+
+    "\1\260\1\147\7\0\11\147\1\0\4\147\1\0\2\147"+
+    "\1\0\1\147\1\0\3\147\6\0\2\151\1\152\1\151"+
+    "\1\153\65\151\1\0\2\154\1\155\4\154\1\153\62\154"+
+    "\1\0\2\157\1\160\1\157\1\161\65\157\1\0\2\162"+
+    "\1\163\4\162\1\161\62\162\1\0\1\u0195\1\u010a\1\u010b"+
+    "\1\u010a\1\0\1\u010a\1\u0195\1\0\1\u010a\1\u010e\13\u010a"+
+    "\1\0\10\u010a\1\u0195\2\u010a\1\u0195\2\u010a\1\u0195\10\u010a"+
+    "\1\u0195\4\u010a\1\u0195\7\u010a\1\0\1\u0196\1\u010c\1\u0135"+
+    "\1\u010c\1\u0132\1\u010c\1\u0196\27\u010c\1\u0196\2\u010c\1\u0196"+
+    "\2\u010c\1\u0196\10\u010c\1\u0196\4\u010c\1\u0196\7\u010c\1\0"+
+    "\1\u0197\1\u010d\1\u0136\3\u010d\1\u0197\1\u0132\26\u010d\1\u0197"+
+    "\2\u010d\1\u0197\2\u010d\1\u0197\10\u010d\1\u0197\4\u010d\1\u0197"+
+    "\7\u010d\1\0\2\205\1\206\1\205\1\207\65\205\1\0"+
+    "\2\210\1\211\4\210\1\207\62\210\1\0\2\216\1\217"+
+    "\1\216\1\0\2\216\1\0\1\216\1\0\1\216\3\0"+
+    "\2\216\2\0\3\216\1\0\1\216\7\0\11\216\1\0"+
+    "\4\216\1\0\2\216\1\0\1\216\1\0\3\216\6\0"+
+    "\2\225\1\226\1\225\1\227\65\225\1\0\2\230\1\231"+
+    "\4\230\1\227\62\230\1\0\2\235\1\236\1\235\1\0"+
+    "\2\235\1\0\1\235\1\0\1\235\3\0\2\235\2\0"+
+    "\3\235\1\0\1\235\7\0\11\235\1\0\4\235\1\0"+
+    "\2\235\1\0\1\235\1\0\3\235\20\0\1\367\60\0"+
+    "\1\u0198\5\0\1\u0198\11\0\1\u0198\5\0\1\u0198\7\0"+
+    "\2\u0198\1\0\2\u0198\1\0\2\u0198\7\0\2\u0198\3\0"+
+    "\2\u0198\7\0\1\u0199\1\u011e\1\u011f\1\u011e\1\0\1\u011e"+
+    "\1\u0199\1\0\1\u011e\1\u0123\13\u011e\1\0\10\u011e\1\u0199"+
+    "\2\u011e\1\u0199\2\u011e\1\u0199\10\u011e\1\u0199\4\u011e\1\u0199"+
+    "\7\u011e\1\0\1\u019a\1\u0121\1\u0149\1\u0121\1\u0146\1\u0121"+
+    "\1\u019a\27\u0121\1\u019a\2\u0121\1\u019a\2\u0121\1\u019a\10\u0121"+
+    "\1\u019a\4\u0121\1\u019a\7\u0121\1\0\1\u019b\1\u0122\1\u014a"+
+    "\3\u0122\1\u019b\1\u0146\26\u0122\1\u019b\2\u0122\1\u019b\2\u0122"+
+    "\1\u019b\10\u0122\1\u019b\4\u0122\1\u019b\7\u0122\65\0\1\u019c"+
+    "\52\0\2\u019d\25\0\1\u019e\1\341\1\342\1\341\1\0"+
+    "\1\341\1\u019e\1\0\1\341\1\u0103\1\341\3\0\2\341"+
+    "\2\0\3\341\1\0\1\341\7\0\1\u019e\2\341\1\u019e"+
+    "\2\341\1\u019e\2\341\1\0\4\341\1\0\1\u019e\1\341"+
+    "\1\0\1\341\1\0\1\u019e\2\341\6\0\1\u019f\1\u010a"+
+    "\1\u010b\1\u010a\1\0\1\u010a\1\u019f\1\0\1\u010a\1\u010e"+
+    "\13\u010a\1\0\10\u010a\1\u019f\2\u010a\1\u019f\2\u010a\1\u019f"+
+    "\10\u010a\1\u019f\4\u010a\1\u019f\7\u010a\1\0\1\u01a0\1\u010c"+
+    "\1\u0135\1\u010c\1\u0132\1\u010c\1\u01a0\27\u010c\1\u01a0\2\u010c"+
+    "\1\u01a0\2\u010c\1\u01a0\10\u010c\1\u01a0\4\u010c\1\u01a0\7\u010c"+
+    "\1\0\1\u01a1\1\u010d\1\u0136\3\u010d\1\u01a1\1\u0132\26\u010d"+
+    "\1\u01a1\2\u010d\1\u01a1\2\u010d\1\u01a1\10\u010d\1\u01a1\4\u010d"+
+    "\1\u01a1\7\u010d\1\0\1\u01a2\5\0\1\u01a2\11\0\1\u01a2"+
+    "\5\0\1\u01a2\7\0\2\u01a2\1\0\2\u01a2\1\0\2\u01a2"+
+    "\7\0\2\u01a2\3\0\2\u01a2\7\0\1\u01a3\1\u011e\1\u011f"+
+    "\1\u011e\1\0\1\u011e\1\u01a3\1\0\1\u011e\1\u0123\13\u011e"+
+    "\1\0\10\u011e\1\u01a3\2\u011e\1\u01a3\2\u011e\1\u01a3\10\u011e"+
+    "\1\u01a3\4\u011e\1\u01a3\7\u011e\1\0\1\u01a4\1\u0121\1\u0149"+
+    "\1\u0121\1\u0146\1\u0121\1\u01a4\27\u0121\1\u01a4\2\u0121\1\u01a4"+
+    "\2\u0121\1\u01a4\10\u0121\1\u01a4\4\u0121\1\u01a4\7\u0121\1\0"+
+    "\1\u01a5\1\u0122\1\u014a\3\u0122\1\u01a5\1\u0146\26\u0122\1\u01a5"+
+    "\2\u0122\1\u01a5\2\u0122\1\u01a5\10\u0122\1\u01a5\4\u0122\1\u01a5"+
+    "\7\u0122\47\0\1\u01a6\24\0\2\341\1\342\1\341\1\0"+
+    "\2\341\1\0\1\341\1\u0103\1\341\3\0\2\341\2\0"+
+    "\3\341\1\0\1\341\7\0\11\341\1\0\4\341\1\0"+
+    "\2\341\1\0\1\341\1\0\3\341\6\0\1\u01a7\1\u010a"+
+    "\1\u010b\1\u010a\1\0\1\u010a\1\u01a7\1\0\1\u010a\1\u010e"+
+    "\13\u010a\1\0\10\u010a\1\u01a7\2\u010a\1\u01a7\2\u010a\1\u01a7"+
+    "\10\u010a\1\u01a7\4\u010a\1\u01a7\7\u010a\1\0\1\u01a8\1\u010c"+
+    "\1\u0135\1\u010c\1\u0132\1\u010c\1\u01a8\27\u010c\1\u01a8\2\u010c"+
+    "\1\u01a8\2\u010c\1\u01a8\10\u010c\1\u01a8\4\u010c\1\u01a8\7\u010c"+
+    "\1\0\1\u01a9\1\u010d\1\u0136\3\u010d\1\u01a9\1\u0132\26\u010d"+
+    "\1\u01a9\2\u010d\1\u01a9\2\u010d\1\u01a9\10\u010d\1\u01a9\4\u010d"+
+    "\1\u01a9\7\u010d\1\0\1\u01aa\1\u011e\1\u011f\1\u011e\1\0"+
+    "\1\u011e\1\u01aa\1\0\1\u011e\1\u0123\13\u011e\1\0\10\u011e"+
+    "\1\u01aa\2\u011e\1\u01aa\2\u011e\1\u01aa\10\u011e\1\u01aa\4\u011e"+
+    "\1\u01aa\7\u011e\1\0\1\u01ab\1\u0121\1\u0149\1\u0121\1\u0146"+
+    "\1\u0121\1\u01ab\27\u0121\1\u01ab\2\u0121\1\u01ab\2\u0121\1\u01ab"+
+    "\10\u0121\1\u01ab\4\u0121\1\u01ab\7\u0121\1\0\1\u01ac\1\u0122"+
+    "\1\u014a\3\u0122\1\u01ac\1\u0146\26\u0122\1\u01ac\2\u0122\1\u01ac"+
+    "\2\u0122\1\u01ac\10\u0122\1\u01ac\4\u0122\1\u01ac\7\u0122\1\0"+
+    "\2\u010a\1\u010b\1\u010a\1\0\2\u010a\1\0\1\u010a\1\u010e"+
+    "\13\u010a\1\0\44\u010a\1\0\1\u01ad\1\u010c\1\u0135\1\u010c"+
+    "\1\u0132\1\u010c\1\u01ad\27\u010c\1\u01ad\2\u010c\1\u01ad\2\u010c"+
+    "\1\u01ad\10\u010c\1\u01ad\4\u010c\1\u01ad\7\u010c\1\0\1\u01ae"+
+    "\1\u010d\1\u0136\3\u010d\1\u01ae\1\u0132\26\u010d\1\u01ae\2\u010d"+
+    "\1\u01ae\2\u010d\1\u01ae\10\u010d\1\u01ae\4\u010d\1\u01ae\7\u010d"+
+    "\1\0\2\u011e\1\u011f\1\u011e\1\0\2\u011e\1\0\1\u011e"+
+    "\1\u0123\13\u011e\1\0\44\u011e\1\0\1\u01af\1\u0121\1\u0149"+
+    "\1\u0121\1\u0146\1\u0121\1\u01af\27\u0121\1\u01af\2\u0121\1\u01af"+
+    "\2\u0121\1\u01af\10\u0121\1\u01af\4\u0121\1\u01af\7\u0121\1\0"+
+    "\1\u01b0\1\u0122\1\u014a\3\u0122\1\u01b0\1\u0146\26\u0122\1\u01b0"+
+    "\2\u0122\1\u01b0\2\u0122\1\u01b0\10\u0122\1\u01b0\4\u0122\1\u01b0"+
+    "\7\u0122\1\0\2\u010c\1\u0135\1\u010c\1\u0132\65\u010c\1\0"+
+    "\2\u010d\1\u0136\4\u010d\1\u0132\62\u010d\1\0\2\u0121\1\u0149"+
+    "\1\u0121\1\u0146\65\u0121\1\0\2\u0122\1\u014a\4\u0122\1\u0146"+
+    "\62\u0122";
+
+  /** 
+   * The transition table of the DFA
+   */
+  final private static int yytrans [] = yy_unpack(yy_packed);
+
+
+  /* error codes */
+  final private static int YY_UNKNOWN_ERROR = 0;
+  final private static int YY_ILLEGAL_STATE = 1;
+  final private static int YY_NO_MATCH = 2;
+  final private static int YY_PUSHBACK_2BIG = 3;
+
+  /* error messages for the codes above */
+  final private static String YY_ERROR_MSG[] = {
+    "Unkown internal scanner error",
+    "Internal error: unknown state",
+    "Error: could not match input",
+    "Error: pushback value was too large"
+  };
+
+  /**
+   * YY_ATTRIBUTE[aState] contains the attributes of state <code>aState</code>
+   */
+  private final static byte YY_ATTRIBUTE[] = {
+     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
+     0,  0,  0,  9,  1,  1,  1,  1,  1,  1,  1,  9,  1,  9,  1,  1, 
+     9,  1,  1,  1,  9,  1,  1,  1,  1,  1,  1,  9,  1,  1,  1,  9, 
+     9,  1,  1,  1,  9,  1,  3,  9,  9,  1,  1,  1,  9,  1,  9,  1, 
+     1,  1,  1,  1,  1,  1,  1,  9,  9,  1,  1,  1,  1,  1,  9,  1, 
+     1,  1,  1,  1,  1,  1,  9,  3,  0,  1,  1,  1,  0,  1,  0,  0, 
+     0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  9,  0,  0,  0,  0,  0, 
+     9,  0,  0,  0,  0,  1,  1,  0,  1,  1,  0,  1,  1, 13,  7,  0, 
+     1,  1,  0,  1,  0,  0,  9,  0,  0,  1,  0,  1,  1,  1,  0,  0, 
+     9,  0,  9,  1,  0,  0,  9,  0,  0,  1,  1,  1,  1,  0,  0,  1, 
+     0,  0, 13,  7,  1,  9,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0, 
+     1,  0,  1,  0,  0,  1,  0,  0,  1,  0,  0,  1,  0,  0,  1,  1, 
+     1,  1,  1,  0,  1,  0,  0,  1,  0,  1,  1,  1,  0,  1,  0,  0, 
+     1,  0,  1,  1,  1,  0,  1,  1,  1,  9,  9,  0,  0,  0,  0,  0, 
+     0,  0,  1,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  0,  0,  1, 
+     1,  1,  0,  0,  1,  1,  0,  1,  0,  1,  1,  1,  0,  0,  0,  9, 
+     0,  0,  9,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  9,  1,  1, 
+     1,  1,  1,  0,  0,  1,  1,  1,  0,  0,  1,  1,  1,  0,  0,  0, 
+     0,  0,  9,  0,  1,  1,  1,  0,  0,  9,  0,  0,  1,  0,  0,  0, 
+     0,  0,  0,  1,  0,  0,  1,  1,  1,  1,  1,  0,  0,  1,  1,  1, 
+     0,  0,  1,  1,  1,  0,  0,  1,  0,  0,  0,  1,  1,  1,  0,  9, 
+     0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1, 
+     1,  1,  1,  0,  0,  1,  1,  1,  0,  0,  1,  1,  1,  0,  0,  0, 
+     0,  0,  0,  0,  0,  1,  1,  9,  0,  0,  1,  0,  0,  0,  0,  0, 
+     0,  1,  0,  1,  0,  0,  1,  0,  0,  1,  1,  1,  0,  0,  1,  0, 
+     1,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  9,  0,  0,  0, 
+     0,  9,  0,  0,  0,  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
+  };
+
+  /** the input device */
+  private java.io.Reader yy_reader;
+
+  /** the current state of the DFA */
+  private int yy_state;
+
+  /** the current lexical state */
+  private int yy_lexical_state = YYINITIAL;
+
+  /** this buffer contains the current text to be matched and is
+      the source of the yytext() string */
+  private char yy_buffer[] = new char[16384];
+
+  /** the textposition at the last accepting state */
+  private int yy_markedPos;
+
+  /** the textposition at the last state to be included in yytext */
+  private int yy_pushbackPos;
+
+  /** the current text position in the buffer */
+  private int yy_currentPos;
+
+  /** startRead marks the beginning of the yytext() string in the buffer */
+  private int yy_startRead;
+
+  /** endRead marks the last character in the buffer, that has been read
+      from input */
+  private int yy_endRead;
+
+  /** number of newlines encountered up to the start of the matched text */
+  private int yyline;
+
+  /** the number of characters up to the start of the matched text */
+  private int yychar;
+
+  /**
+   * the number of characters from the last newline up to the start of the 
+   * matched text
+   */
+  private int yycolumn; 
+
+  /** 
+   * yy_atBOL == true <=> the scanner is currently at the beginning of a line
+   */
+  private boolean yy_atBOL;
+
+  /** yy_atEOF == true <=> the scanner has returned a value for EOF */
+  private boolean yy_atEOF;
+
+  /* user code: */
+	private final static String UNDEFINED = "undefined";
+	private String fBufferedContext = null;
+	private int fBufferedStart;
+//	private int fBufferedTextLength;
+	private int fBufferedLength;
+//	private StringBuffer fBufferedText = null;
+	private CSSTextRegionFactory fRegionFactory = CSSTextRegionFactory.getInstance();
+	private int fInitialState = YYINITIAL;
+	public final static int BUFFER_SIZE_NORMAL = 16384;
+	public final static int BUFFER_SIZE_SMALL = 256;
+	private int fInitialBufferSize = BUFFER_SIZE_NORMAL;
+
+	public void setInitialState(int state) {
+		fInitialState = state;
+	}
+	
+	public void setInitialBufferSize(int size) {
+		fInitialBufferSize = size;
+	}
+
+	/* user method */
+  	public final ITextRegion getNextToken() throws IOException {
+		String context;
+		String nextTokenType;
+		boolean spaceFollows;
+//		StringBuffer text;
+		int start;
+		int textLength;
+		int length;
+		if (fBufferedContext != null) {
+			context = fBufferedContext;
+//			text = fBufferedText;
+			start = fBufferedStart;
+			textLength = length = fBufferedLength;
+
+			fBufferedContext = null;
+		} else {
+			context = primGetNextToken();
+//			text = new StringBuffer(yytext());
+			start = yychar;
+			textLength = length = yylength();
+		}
+
+		if (context != null) {
+			if (context == UNDEFINED) {
+				// undef -> concatenate undef's
+				nextTokenType = primGetNextToken();
+				while (nextTokenType == UNDEFINED) {
+//					text.append(yytext());
+					textLength += yylength();
+					length = textLength;
+					nextTokenType = primGetNextToken();
+				}
+				fBufferedContext = nextTokenType;
+//				fBufferedText = new StringBuffer(yytext());
+				fBufferedStart = yychar;
+				fBufferedLength = yylength();
+			} else {
+				nextTokenType = null;
+				spaceFollows = false;
+				if (CSSRegionUtil.isDeclarationValueType(context)) { // declaration value can contain VALUE_S
+					nextTokenType = primGetNextToken();
+					spaceFollows = (nextTokenType == CSS_DECLARATION_VALUE_S);
+				} else if (canContainSpace(context)) {
+					nextTokenType = primGetNextToken();
+					spaceFollows = (nextTokenType == CSS_S);
+				}
+				if (nextTokenType != null) { // nextToken is retrieved
+					if (spaceFollows) {
+						// next is space -> append
+//						text.append(yytext());
+						length += yylength();
+					} else {
+						// next is NOT space -> push this for next time, return itself
+						fBufferedContext = nextTokenType;
+//						fBufferedText = new StringBuffer(yytext());
+						fBufferedStart = yychar;
+						fBufferedLength = yylength();
+					}
+				}
+			}
+		}
+
+		if (context != null) {
+			if (context == UNDEFINED) {
+				context = CSS_UNKNOWN;
+			}
+			return fRegionFactory.createRegion(context, start, textLength, length);
+		} else {
+			return null;
+		}
+  	}
+
+	/* user method */
+	/* for standalone use */
+  	public final List parseText() throws IOException {
+  		List tokens = new ArrayList();
+
+  		CSSTextToken token;
+		for (String kind = primGetNextToken(); kind != null; kind = primGetNextToken()) {
+			token = new CSSTextToken();
+			token.kind = kind;  				
+			token.start = yychar;
+			token.length = yylength();
+			token.image = yytext();
+			tokens.add(token);
+		}
+
+  		return tokens;
+  	}
+  	
+  	/* user method */
+  	private boolean canContainSpace(String type) {
+  		if (type == CSS_DELIMITER || type == CSS_RBRACE || type == CSS_DECLARATION_DELIMITER) {
+  			return false;
+  		} else {
+  			return true;
+  		}
+  	}
+
+	/* user method */
+	public final int getOffset() {
+		return yychar;
+	}
+	
+	/* user method */
+	public final boolean isEOF() {
+		return yy_atEOF;
+	}
+
+	/* user method */
+	public void reset(char[] charArray) {
+		reset(new CharArrayReader(charArray), 0);
+	}
+
+	/* user method */
+	public final void reset(java.io.Reader in, int newOffset) {
+		/** the input device */
+		yy_reader = in;
+
+		/** the current state of the DFA */
+		yy_state = 0;
+
+		/** the current lexical state */
+		yy_lexical_state = fInitialState; //YYINITIAL;
+
+		/** this buffer contains the current text to be matched and is
+			the source of the yytext() string */
+		if (yy_buffer.length != fInitialBufferSize) {
+			yy_buffer = new char[fInitialBufferSize];
+		}
+		java.util.Arrays.fill(yy_buffer, (char)0);
+
+		/** the textposition at the last accepting state */
+		yy_markedPos = 0;
+
+		/** the textposition at the last state to be included in yytext */
+		yy_pushbackPos = 0;
+
+		/** the current text position in the buffer */
+		yy_currentPos = 0;
+
+		/** startRead marks the beginning of the yytext() string in the buffer */
+		yy_startRead = 0;
+
+		/** endRead marks the last character in the buffer, that has been read
+			from input */
+		yy_endRead = 0;
+
+		/** number of newlines encountered up to the start of the matched text */
+		yyline = 0;
+
+		/** the number of characters up to the start of the matched text */
+		yychar = 0;
+
+		/**
+		 * the number of characters from the last newline up to the start of the 
+		 * matched text
+		 */
+		yycolumn = 0; 
+
+		/** 
+		 * yy_atBOL == true <=> the scanner is currently at the beginning of a line
+		 */
+		yy_atBOL = false;
+		
+		/** yy_atEOF == true <=> the scanner has returned a value for EOF */
+		yy_atEOF = false;
+
+		/* user variables */
+		//		fUndefined.delete(0, fUndefined.length());
+	}
+
+	/* user method */
+	public CSSTokenizer() {
+		super();
+	}
+
+
+
+  /**
+   * Creates a new scanner
+   * There is also a java.io.InputStream version of this constructor.
+   *
+   * @param   in  the java.io.Reader to read input from.
+   */
+  public CSSTokenizer(java.io.Reader in) {
+    this.yy_reader = in;
+  }
+
+  /**
+   * Creates a new scanner.
+   * There is also java.io.Reader version of this constructor.
+   *
+   * @param   in  the java.io.Inputstream to read input from.
+   */
+  public CSSTokenizer(java.io.InputStream in) {
+    this(new java.io.InputStreamReader(in));
+  }
+
+  /** 
+   * Unpacks the compressed DFA transition table.
+   *
+   * @param packed   the packed transition table
+   * @return         the unpacked transition table
+   */
+  private static int [] yy_unpack(String packed) {
+    int [] trans = new int[21004];
+    int i = 0;  /* index in packed string  */
+    int j = 0;  /* index in unpacked array */
+    while (i < 13906) {
+      int count = packed.charAt(i++);
+      int value = packed.charAt(i++);
+      value--;
+      do trans[j++] = value; while (--count > 0);
+    }
+    return trans;
+  }
+
+  /** 
+   * Unpacks the compressed character translation table.
+   *
+   * @param packed   the packed character translation table
+   * @return         the unpacked character translation table
+   */
+  private static char [] yy_unpack_cmap(String packed) {
+    char [] map = new char[0x10000];
+    int i = 0;  /* index in packed string  */
+    int j = 0;  /* index in unpacked array */
+    while (i < 170) {
+      int  count = packed.charAt(i++);
+      char value = packed.charAt(i++);
+      do map[j++] = value; while (--count > 0);
+    }
+    return map;
+  }
+
+
+  /**
+   * Gets the next input character.
+   *
+   * @return      the next character of the input stream, EOF if the
+   *              end of the stream is reached.
+   * @exception   IOException  if any I/O-Error occurs
+   */
+  private int yy_advance() throws java.io.IOException {
+
+    /* standard case */
+    if (yy_currentPos < yy_endRead) return yy_buffer[yy_currentPos++];
+
+    /* if the eof is reached, we don't need to work hard */ 
+    if (yy_atEOF) return YYEOF;
+
+    /* otherwise: need to refill the buffer */
+
+    /* first: make room (if you can) */
+    if (yy_startRead > 0) {
+      System.arraycopy(yy_buffer, yy_startRead, 
+                       yy_buffer, 0, 
+                       yy_endRead-yy_startRead);
+
+      /* translate stored positions */
+      yy_endRead-= yy_startRead;
+      yy_currentPos-= yy_startRead;
+      yy_markedPos-= yy_startRead;
+      yy_pushbackPos-= yy_startRead;
+      yy_startRead = 0;
+    }
+
+    /* is the buffer big enough? */
+    if (yy_currentPos >= yy_buffer.length) {
+      /* if not: blow it up */
+      char newBuffer[] = new char[yy_currentPos*2];
+      System.arraycopy(yy_buffer, 0, newBuffer, 0, yy_buffer.length);
+      yy_buffer = newBuffer;
+    }
+
+    /* finally: fill the buffer with new input */
+    int numRead = yy_reader.read(yy_buffer, yy_endRead, 
+                                            yy_buffer.length-yy_endRead);
+
+    if ( numRead == -1 ) return YYEOF;
+
+    yy_endRead+= numRead;
+
+    return yy_buffer[yy_currentPos++];
+  }
+
+
+  /**
+   * Closes the input stream.
+   */
+  final public void yyclose() throws java.io.IOException {
+    yy_atEOF = true;            /* indicate end of file */
+    yy_endRead = yy_startRead;  /* invalidate buffer    */
+    yy_reader.close();
+  }
+
+
+  /**
+   * Returns the current lexical state.
+   */
+  final public int yystate() {
+    return yy_lexical_state;
+  }
+
+  /**
+   * Enters a new lexical state
+   *
+   * @param newState the new lexical state
+   */
+  final public void yybegin(int newState) {
+    yy_lexical_state = newState;
+  }
+
+
+  /**
+   * Returns the text matched by the current regular expression.
+   */
+  final public String yytext() {
+    return new String( yy_buffer, yy_startRead, yy_markedPos-yy_startRead );
+  }
+
+  /**
+   * Returns the length of the matched text region.
+   */
+  final public int yylength() {
+    return yy_markedPos-yy_startRead;
+  }
+
+
+  /**
+   * Reports an error that occured while scanning.
+   *
+   * @param   errorCode  the code of the errormessage to display
+   */
+  private void yy_ScanError(int errorCode) {
+    try {
+      System.out.println(YY_ERROR_MSG[errorCode]);
+    }
+    catch (ArrayIndexOutOfBoundsException e) {
+      System.out.println(YY_ERROR_MSG[YY_UNKNOWN_ERROR]);
+    }
+
+    System.exit(1);
+  } 
+
+
+  /**
+   * Pushes the specified amount of characters back into the input stream.
+   *
+   * They will be read again by then next call of the scanning method
+   *
+   * @param number  the number of characters to be read again.
+   *                This number must not be greater than yylength()!
+   */
+  private void yypushback(int number) {
+    if ( number > yylength() )
+      yy_ScanError(YY_PUSHBACK_2BIG);
+
+    yy_markedPos -= number;
+  }
+
+
+  /**
+   * Resumes scanning until the next regular expression is matched,
+   * the end of input is encountered or an I/O-Error occurs.
+   *
+   * @return      the next token
+   * @exception   IOException  if any I/O-Error occurs
+   */
+  public String primGetNextToken() throws java.io.IOException {
+    int yy_input;
+    int yy_action;
+
+    yy_pushbackPos = -1;
+    boolean yy_was_pushback;
+
+    while (true) {
+
+      yychar+= yylength();
+
+      boolean yy_counted = false;
+      for (yy_currentPos = yy_startRead; yy_currentPos < yy_markedPos;
+                                                      yy_currentPos++) {
+        switch (yy_buffer[yy_currentPos]) {
+        case '\r':
+          yyline++;
+          yy_counted = true;
+          break;
+        case '\n':
+          if (yy_counted)
+            yy_counted = false;
+          else {
+            yyline++;
+          }
+          break;
+        default:
+          yy_counted = false;
+        }
+      }
+
+      if (yy_counted) {
+        if ( yy_advance() == '\n' ) yyline--;
+        if ( !yy_atEOF ) yy_currentPos--;
+      }
+
+      yy_action = -1;
+
+      yy_currentPos = yy_startRead = yy_markedPos;
+
+      yy_state = yy_lexical_state;
+
+      yy_was_pushback = false;
+
+      yy_forAction: {
+        while (true) {
+
+          yy_input = yy_advance();
+
+          if ( yy_input == YYEOF ) break yy_forAction;
+
+          int yy_next = yytrans[ yy_rowMap[yy_state] + yycmap[yy_input] ];
+          if (yy_next == -1) break yy_forAction;
+          yy_state = yy_next;
+
+          int yy_attributes = YY_ATTRIBUTE[yy_state];
+          if ( (yy_attributes & 2) > 0 )
+            yy_pushbackPos = yy_currentPos;
+
+          if ( (yy_attributes & 1) > 0 ) {
+            yy_was_pushback = (yy_attributes & 4) > 0;
+            yy_action = yy_state; 
+            yy_markedPos = yy_currentPos; 
+            if ( (yy_attributes & 8) > 0 ) break yy_forAction;
+          }
+
+        }
+      }
+
+      if (yy_was_pushback)
+        yy_markedPos = yy_pushbackPos;
+
+      switch (yy_action) {    
+
+        case 421: 
+          {  yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_IMPORTANT;  }
+        case 433: break;
+        case 412: 
+          {  yybegin(ST_FONT_FACE_DELIMITER); return CSS_FONT_FACE;  }
+        case 434: break;
+        case 375: 
+          {  yybegin(ST_CHARSET_NAME); return CSS_CHARSET;  }
+        case 435: break;
+        case 335: 
+          {  yybegin(ST_IMPORT_URI); return CSS_IMPORT;  }
+        case 436: break;
+        case 297: 
+          {  yybegin(ST_MEDIA_MEDIUM); return CSS_MEDIA;  }
+        case 437: break;
+        case 290: 
+        case 327: 
+        case 398: 
+        case 400: 
+          {  yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_URI;  }
+        case 438: break;
+        case 269: 
+        case 307: 
+        case 385: 
+        case 387: 
+          {  yybegin(ST_IMPORT_MEDIUM); return CSS_URI;  }
+        case 439: break;
+        case 255: 
+          {  yybegin(ST_PAGE_PSEUDO_PAGE); return CSS_PAGE;  }
+        case 440: break;
+        case 218: 
+          {  return CSS_COMMENT;  }
+        case 441: break;
+        case 217: 
+          {  return CSS_CDO;  }
+        case 442: break;
+        case 211: 
+        case 245: 
+        case 283: 
+        case 284: 
+        case 323: 
+        case 324: 
+        case 363: 
+        case 364: 
+        case 394: 
+        case 395: 
+        case 407: 
+        case 417: 
+          {  yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_UNICODE_RANGE;  }
+        case 443: break;
+        case 165: 
+          {  return CSS_CDC;  }
+        case 444: break;
+        case 162: 
+          {  return CSS_DECLARATION_VALUE_S;  }
+        case 445: break;
+        case 156: 
+        case 210: 
+        case 244: 
+        case 282: 
+        case 322: 
+        case 362: 
+        case 393: 
+          {  yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_HASH;  }
+        case 446: break;
+        case 150: 
+        case 205: 
+        case 208: 
+          {  yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_STRING;  }
+        case 447: break;
+        case 57: 
+        case 59: 
+        case 128: 
+        case 129: 
+        case 193: 
+        case 235: 
+        case 273: 
+        case 313: 
+        case 353: 
+          {  yybegin(ST_SELECTOR_ATTRIBUTE_OPERATOR); return CSS_SELECTOR_ATTRIBUTE_NAME;  }
+        case 448: break;
+        case 56: 
+          {  yybegin(ST_SELECTOR); return CSS_SELECTOR_SEPARATOR;  }
+        case 449: break;
+        case 55: 
+        case 125: 
+          {  yybegin(ST_SELECTOR); return CSS_SELECTOR_COMBINATOR;  }
+        case 450: break;
+        case 52: 
+          {  yybegin(ST_DECLARATION); return CSS_LBRACE;  }
+        case 451: break;
+        case 49: 
+        case 51: 
+        case 123: 
+        case 124: 
+        case 192: 
+        case 234: 
+        case 272: 
+        case 312: 
+        case 352: 
+          {  yybegin(ST_PAGE_DELIMITER); return CSS_PAGE_SELECTOR;  }
+        case 452: break;
+        case 48: 
+          {  yybegin(YYINITIAL); return CSS_LBRACE;  }
+        case 453: break;
+        case 47: 
+          {  yybegin(ST_MEDIA_MEDIUM); return CSS_MEDIA_SEPARATOR;  }
+        case 454: break;
+        case 44: 
+        case 46: 
+        case 120: 
+        case 121: 
+        case 191: 
+        case 233: 
+        case 271: 
+        case 311: 
+        case 351: 
+          {  yybegin(ST_MEDIA_DELIMITER); return CSS_MEDIUM;  }
+        case 455: break;
+        case 43: 
+          {  yybegin(ST_IMPORT_MEDIUM); return CSS_MEDIA_SEPARATOR;  }
+        case 456: break;
+        case 20: 
+        case 23: 
+        case 89: 
+        case 90: 
+        case 164: 
+        case 214: 
+        case 249: 
+        case 292: 
+        case 331: 
+          {  yybegin(ST_SELECTOR_MODIFIER); return CSS_SELECTOR_ELEMENT_NAME;  }
+        case 457: break;
+        case 22: 
+        case 54: 
+        case 87: 
+        case 126: 
+        case 163: 
+          {  return CSS_S;  }
+        case 458: break;
+        case 27: 
+          {  yybegin(YYINITIAL); return CSS_RBRACE;  }
+        case 459: break;
+        case 29: 
+          {  yybegin(ST_SELECTOR_MODIFIER); return CSS_SELECTOR_UNIVERSAL;  }
+        case 460: break;
+        case 32: 
+          {  yybegin(ST_SELECTOR_ATTRIBUTE_NAME); return CSS_SELECTOR_ATTRIBUTE_START;  }
+        case 461: break;
+        case 36: 
+          {  yybegin(YYINITIAL); return CSS_DELIMITER;  }
+        case 462: break;
+        case 40: 
+        case 42: 
+        case 117: 
+        case 118: 
+        case 190: 
+        case 232: 
+        case 270: 
+        case 310: 
+        case 350: 
+          {  yybegin(ST_IMPORT_DELIMITER); return CSS_MEDIUM;  }
+        case 463: break;
+        case 60: 
+          {  yybegin(ST_SELECTOR_ATTRIBUTE_VALUE); return CSS_SELECTOR_ATTRIBUTE_OPERATOR;  }
+        case 464: break;
+        case 62: 
+          {  yybegin(ST_SELECTOR_MODIFIER); return CSS_SELECTOR_ATTRIBUTE_END;  }
+        case 465: break;
+        case 63: 
+        case 67: 
+        case 131: 
+        case 134: 
+        case 137: 
+        case 194: 
+        case 196: 
+        case 199: 
+        case 236: 
+        case 274: 
+        case 314: 
+        case 354: 
+          {  yybegin(ST_SELECTOR_ATTRIBUTE_END); return CSS_SELECTOR_ATTRIBUTE_VALUE;  }
+        case 466: break;
+        case 68: 
+        case 70: 
+        case 139: 
+        case 140: 
+        case 201: 
+        case 239: 
+        case 277: 
+        case 317: 
+        case 357: 
+          {  yybegin(ST_DECLARATION_SEPARATOR); return CSS_DECLARATION_PROPERTY;  }
+        case 467: break;
+        case 71: 
+          {  yybegin(ST_DECLARATION); return CSS_DECLARATION_DELIMITER;  }
+        case 468: break;
+        case 72: 
+          {  yybegin(ST_DECLARATION_PRE_VALUE); return CSS_DECLARATION_SEPARATOR;  }
+        case 469: break;
+        case 73: 
+        case 155: 
+          {  yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_NUMBER;  }
+        case 470: break;
+        case 74: 
+        case 79: 
+        case 83: 
+        case 147: 
+        case 153: 
+        case 154: 
+        case 159: 
+        case 203: 
+        case 212: 
+        case 241: 
+        case 279: 
+        case 319: 
+        case 359: 
+          {  yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_IDENT;  }
+        case 471: break;
+        case 78: 
+          {  yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_PARENTHESIS_CLOSE;  }
+        case 472: break;
+        case 85: 
+        case 86: 
+          {  yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_OPERATOR;  }
+        case 473: break;
+        case 91: 
+        case 166: 
+        case 215: 
+        case 250: 
+        case 293: 
+        case 332: 
+        case 373: 
+          {  yybegin(ST_SELECTOR_MODIFIER); return CSS_SELECTOR_CLASS;  }
+        case 474: break;
+        case 93: 
+        case 167: 
+        case 216: 
+        case 251: 
+        case 294: 
+        case 333: 
+        case 374: 
+          {  yybegin(ST_SELECTOR_MODIFIER); return CSS_SELECTOR_ID;  }
+        case 475: break;
+        case 102: 
+        case 176: 
+        case 226: 
+        case 258: 
+        case 260: 
+        case 300: 
+        case 338: 
+        case 378: 
+          {  yybegin(ST_SELECTOR_MODIFIER); return CSS_SELECTOR_PSEUDO;  }
+        case 476: break;
+        case 106: 
+        case 178: 
+        case 181: 
+          {  yybegin(ST_CHARSET_DELIMITER); return CSS_STRING;  }
+        case 477: break;
+        case 112: 
+        case 184: 
+        case 187: 
+          {  yybegin(ST_IMPORT_MEDIUM); return CSS_STRING;  }
+        case 478: break;
+        case 141: 
+        case 202: 
+        case 240: 
+        case 278: 
+        case 318: 
+        case 358: 
+        case 390: 
+          {  yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_DIMENSION;  }
+        case 479: break;
+        case 144: 
+          {  yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_PERCENTAGE;  }
+        case 480: break;
+        case 146: 
+        case 247: 
+          {  yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_FUNCTION;  }
+        case 481: break;
+        case 19: 
+        case 21: 
+        case 24: 
+        case 25: 
+        case 26: 
+        case 28: 
+        case 30: 
+        case 31: 
+        case 33: 
+        case 34: 
+        case 35: 
+        case 37: 
+        case 38: 
+        case 39: 
+        case 41: 
+        case 45: 
+        case 50: 
+        case 53: 
+        case 58: 
+        case 61: 
+        case 64: 
+        case 65: 
+        case 66: 
+        case 69: 
+        case 75: 
+        case 76: 
+        case 77: 
+        case 80: 
+        case 81: 
+        case 82: 
+        case 84: 
+          { 
+	return UNDEFINED;
+ }
+        case 482: break;
+        default: 
+          if (yy_input == YYEOF && yy_startRead == yy_currentPos) {
+            yy_atEOF = true;
+              return null;
+          } 
+          else {
+            yy_ScanError(YY_NO_MATCH);
+          }
+      }
+    }
+  }    
+
+  /**
+   * Runs the scanner on input files.
+   *
+   * This main method is the debugging routine for the scanner.
+   * It prints each returned token to System.out until the end of
+   * file is reached, or an error occured.
+   *
+   * @param argv   the command line, contains the filenames to run
+   *               the scanner on.
+   */
+  public static void main(String argv[]) {
+    for (int i = 0; i < argv.length; i++) {
+      CSSTokenizer scanner = null;
+      try {
+        scanner = new CSSTokenizer( new java.io.FileReader(argv[i]) );
+      }
+      catch (java.io.FileNotFoundException e) {
+        System.out.println("File not found : \""+argv[i]+"\"");
+        System.exit(1);
+      }
+      catch (java.io.IOException e) {
+        System.out.println("Error opening file \""+argv[i]+"\"");
+        System.exit(1);
+      }
+      catch (ArrayIndexOutOfBoundsException e) {
+        System.out.println("Usage : java CSSTokenizer <inputfile>");
+        System.exit(1);
+      }
+
+      try {
+        do {
+          System.out.println(scanner.primGetNextToken());
+        } while (!scanner.yy_atEOF);
+
+      }
+      catch (java.io.IOException e) {
+        System.out.println("An I/O error occured while scanning :");
+        System.out.println(e);
+        System.exit(1);
+      }
+      catch (Exception e) {
+        e.printStackTrace();
+        System.exit(1);
+      }
+    }
+  }
+
+
+}
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/CSSTokenizer/devel/CSSTokenizer.jflex b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/CSSTokenizer/devel/CSSTokenizer.jflex
new file mode 100644
index 0000000..f6cac38
--- /dev/null
+++ b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/CSSTokenizer/devel/CSSTokenizer.jflex
@@ -0,0 +1,495 @@
+/*******************************************************************************

+ * Copyright (c) 2004 IBM Corporation and others.

+ * All rights reserved. This program and the accompanying materials

+ * are made available under the terms of the Eclipse Public License v1.0

+ * which accompanies this distribution, and is available at

+ * http://www.eclipse.org/legal/epl-v10.html

+ * 

+ * Contributors:

+ *     IBM Corporation - initial API and implementation

+ *******************************************************************************/

+/*nlsXXX*/

+package org.eclipse.wst.sse.core.css.internal.parser;

+

+import java.io.CharArrayReader;

+import java.io.IOException;

+import java.util.ArrayList;

+import java.util.List;

+

+import org.eclipse.wst.sse.core.css.internal.parser.regions.CSSTextRegionFactory;

+import org.eclipse.wst.sse.core.css.parser.CSSRegionContexts;

+import org.eclipse.wst.sse.core.css.parser.CSSTextToken;

+import org.eclipse.wst.sse.core.text.ITextRegion;

+

+%%

+

+%public

+%class CSSTokenizer

+%implements CSSRegionContexts

+%function primGetNextToken

+%type String

+%char

+%line

+%unicode

+%caseless

+%debug

+%pack

+

+%{

+	private final static String UNDEFINED = "undefined";

+	private String fBufferedContext = null;

+	private int fBufferedStart;

+//	private int fBufferedTextLength;

+	private int fBufferedLength;

+//	private StringBuffer fBufferedText = null;

+	private CSSTextRegionFactory fRegionFactory = CSSTextRegionFactory.getInstance();

+	private int fInitialState = YYINITIAL;

+	public final static int BUFFER_SIZE_NORMAL = 16384;

+	public final static int BUFFER_SIZE_SMALL = 256;

+	private int fInitialBufferSize = BUFFER_SIZE_NORMAL;

+

+	public void setInitialState(int state) {

+		fInitialState = state;

+	}

+	

+	public void setInitialBufferSize(int size) {

+		fInitialBufferSize = size;

+	}

+

+	/* user method */

+  	public final ITextRegion getNextToken() throws IOException {

+		String context;

+		String nextTokenType;

+		boolean spaceFollows;

+//		StringBuffer text;

+		int start;

+		int textLength;

+		int length;

+		if (fBufferedContext != null) {

+			context = fBufferedContext;

+//			text = fBufferedText;

+			start = fBufferedStart;

+			textLength = length = fBufferedLength;

+

+			fBufferedContext = null;

+		} else {

+			context = primGetNextToken();

+//			text = new StringBuffer(yytext());

+			start = yychar;

+			textLength = length = yylength();

+		}

+

+		if (context != null) {

+			if (context == UNDEFINED) {

+				// undef -> concatenate undef's

+				nextTokenType = primGetNextToken();

+				while (nextTokenType == UNDEFINED) {

+//					text.append(yytext());

+					textLength += yylength();

+					length = textLength;

+					nextTokenType = primGetNextToken();

+				}

+				fBufferedContext = nextTokenType;

+//				fBufferedText = new StringBuffer(yytext());

+				fBufferedStart = yychar;

+				fBufferedLength = yylength();

+			} else {

+				nextTokenType = null;

+				spaceFollows = false;

+				if (CSSRegionUtil.isDeclarationValueType(context)) { // declaration value can contain VALUE_S

+					nextTokenType = primGetNextToken();

+					spaceFollows = (nextTokenType == CSS_DECLARATION_VALUE_S);

+				} else if (canContainSpace(context)) {

+					nextTokenType = primGetNextToken();

+					spaceFollows = (nextTokenType == CSS_S);

+				}

+				if (nextTokenType != null) { // nextToken is retrieved

+					if (spaceFollows) {

+						// next is space -> append

+//						text.append(yytext());

+						length += yylength();

+					} else {

+						// next is NOT space -> push this for next time, return itself

+						fBufferedContext = nextTokenType;

+//						fBufferedText = new StringBuffer(yytext());

+						fBufferedStart = yychar;

+						fBufferedLength = yylength();

+					}

+				}

+			}

+		}

+

+		if (context != null) {

+			if (context == UNDEFINED) {

+				context = CSS_UNKNOWN;

+			}

+			return fRegionFactory.createRegion(context, start, textLength, length);

+		} else {

+			return null;

+		}

+  	}

+

+	/* user method */

+	/* for standalone use */

+  	public final List parseText() throws IOException {

+  		List tokens = new ArrayList();

+

+  		CSSTextToken token;

+		for (String kind = primGetNextToken(); kind != null; kind = primGetNextToken()) {

+			token = new CSSTextToken();

+			token.kind = kind;  				

+			token.start = yychar;

+			token.length = yylength();

+			token.image = yytext();

+			tokens.add(token);

+		}

+

+  		return tokens;

+  	}

+  	

+  	/* user method */

+  	private boolean canContainSpace(String type) {

+  		if (type == CSS_DELIMITER || type == CSS_RBRACE || type == CSS_DECLARATION_DELIMITER) {

+  			return false;

+  		} else {

+  			return true;

+  		}

+  	}

+

+	/* user method */

+	public final int getOffset() {

+		return yychar;

+	}

+	

+	/* user method */

+	public final boolean isEOF() {

+		return yy_atEOF;

+	}

+

+	/* user method */

+	public void reset(char[] charArray) {

+		reset(new CharArrayReader(charArray), 0);

+	}

+

+	/* user method */

+	public final void reset(java.io.Reader in, int newOffset) {

+		/** the input device */

+		yy_reader = in;

+

+		/** the current state of the DFA */

+		yy_state = 0;

+

+		/** the current lexical state */

+		yy_lexical_state = fInitialState; //YYINITIAL;

+

+		/** this buffer contains the current text to be matched and is

+			the source of the yytext() string */

+		if (yy_buffer.length != fInitialBufferSize) {

+			yy_buffer = new char[fInitialBufferSize];

+		}

+		java.util.Arrays.fill(yy_buffer, (char)0);

+

+		/** the textposition at the last accepting state */

+		yy_markedPos = 0;

+

+		/** the textposition at the last state to be included in yytext */

+		yy_pushbackPos = 0;

+

+		/** the current text position in the buffer */

+		yy_currentPos = 0;

+

+		/** startRead marks the beginning of the yytext() string in the buffer */

+		yy_startRead = 0;

+

+		/** endRead marks the last character in the buffer, that has been read

+			from input */

+		yy_endRead = 0;

+

+		/** number of newlines encountered up to the start of the matched text */

+		yyline = 0;

+

+		/** the number of characters up to the start of the matched text */

+		yychar = 0;

+

+		/**

+		 * the number of characters from the last newline up to the start of the 

+		 * matched text

+		 */

+		yycolumn = 0; 

+

+		/** 

+		 * yy_atBOL == true <=> the scanner is currently at the beginning of a line

+		 */

+		yy_atBOL = false;

+		

+		/** yy_atEOF == true <=> the scanner has returned a value for EOF */

+		yy_atEOF = false;

+

+		/* user variables */

+		//		fUndefined.delete(0, fUndefined.length());

+	}

+

+	/* user method */

+	public CSSTokenizer() {

+		super();

+	}

+

+%}

+

+%state ST_CHARSET_NAME

+%state ST_CHARSET_DELIMITER

+%state ST_IMPORT_URI

+%state ST_IMPORT_MEDIUM

+%state ST_IMPORT_DELIMITER

+%state ST_MEDIA_MEDIUM

+%state ST_MEDIA_DELIMITER

+%state ST_PAGE_PSEUDO_PAGE

+%state ST_PAGE_DELIMITER

+%state ST_FONT_FACE_DELIMITER

+%state ST_SELECTOR

+%state ST_SELECTOR_MODIFIER

+%state ST_SELECTOR_ATTRIBUTE_NAME

+%state ST_SELECTOR_ATTRIBUTE_OPERATOR

+%state ST_SELECTOR_ATTRIBUTE_VALUE

+%state ST_SELECTOR_ATTRIBUTE_END

+%state ST_DECLARATION

+%state ST_DECLARATION_SEPARATOR

+%state ST_DECLARATION_PRE_VALUE

+%state ST_DECLARATION_VALUE

+

+h = [0-9a-f]

+nonascii = [\u0080-\uffff]

+unicode = \\{h}{1,6}[ \t\r\n\f]?

+escape = {unicode}|\\[ -~\u0080-\uffff]

+nmstart = [_a-zA-Z-]|{nonascii}|{escape}

+nmchar = [_a-zA-Z0-9-]|{nonascii}|{escape}

+string1 = \"([\t !#$%&(-~]|\\{nl}|\'|{nonascii}|{escape})*\"

+string2 = \'([\t !#$%&(-~]|\\{nl}|\"|{nonascii}|{escape})*\'

+

+ident = {nmstart}{nmchar}*

+name = {nmchar}+

+num = [+-]?([0-9]+|[0-9]*"."[0-9]+)

+string = {string1}|{string2}

+url = ([ !#$%&*-~]|{nonascii}|{escape})*

+s = [ \t\r\n\f]

+w = {s}*

+nl = \n|\r\n|\r|\f

+range = \?{1,6}|{h}(\?{0,5}|{h}(\?{0,4}|{h}(\?{0,3}|{h}(\?{0,2}|{h}(\??|{h})))))

+

+hash = "#"{name}

+uri = ("url("{w}{string}{w}")"|"url("{w}{url}{w}")")

+function = {ident}"("

+unicode_range = "U"\+[0-9a-fA-F?]{1,6}("-"[0-9a-fA-F?]{1,6})?

+

+%%

+

+/*

+ * *** global ***

+ */

+

+{s}+ { return CSS_S; }

+"<!--" { return CSS_CDO; }

+"-->" { return CSS_CDC; }

+"}" { yybegin(YYINITIAL); return CSS_RBRACE; }

+\/\*[^*]*\*+([^/*][^*]*\*+)*\/ { return CSS_COMMENT; }

+

+//<YYINITIAL> {

+//	"@import" {	yybegin(ST_IMPORT_URI); return CSS_IMPORT; }

+//}

+

+/*

+ * *** charset rule ***

+ * CHARSET_SYM S* STRING S* ';'

+ */

+

+"@charset" { yybegin(ST_CHARSET_NAME); return CSS_CHARSET; }

+

+<ST_CHARSET_NAME> {

+	{string} { yybegin(ST_CHARSET_DELIMITER); return CSS_STRING; }

+}

+

+<ST_CHARSET_DELIMITER> {

+	";" { yybegin(YYINITIAL); return CSS_DELIMITER; }

+}

+

+/*

+ * *** import rule ***

+ * IMPORT_SYM S* [STRING|URI] S* [ medium [ COMMA S* medium]* ]? ';' S*

+ */

+

+"@import" { yybegin(ST_IMPORT_URI); return CSS_IMPORT; }

+

+<ST_IMPORT_URI> {

+	{string} { yybegin(ST_IMPORT_MEDIUM); return CSS_STRING; }

+	//	"url("{w}{string}{w}")" { yybegin(ST_IMPORT_MEDIUM); return CSS_URI; }

+	//	"url("{w}{url}{w}")" { yybegin(ST_IMPORT_MEDIUM); return CSS_URI; }

+	{uri} { yybegin(ST_IMPORT_MEDIUM); return CSS_URI; }

+	";" { yybegin(YYINITIAL); return CSS_DELIMITER; }

+}

+

+<ST_IMPORT_MEDIUM> {

+	{ident} { yybegin(ST_IMPORT_DELIMITER); return CSS_MEDIUM; }

+	";" { yybegin(YYINITIAL); return CSS_DELIMITER; }

+}

+

+<ST_IMPORT_DELIMITER> {

+	";" { yybegin(YYINITIAL); return CSS_DELIMITER; }

+	"," { yybegin(ST_IMPORT_MEDIUM); return CSS_MEDIA_SEPARATOR; }

+}

+

+/*

+ * *** media rule ***

+ * MEDIA_SYM S* medium [ COMMA S* medium ]* LBRACE S* ruleset* '}' S*

+ */

+

+"@media" { yybegin(ST_MEDIA_MEDIUM); return CSS_MEDIA; }

+

+/* 

+ * medium

+ * IDENT S*

+ */

+<ST_MEDIA_MEDIUM> {

+	{ident} { yybegin(ST_MEDIA_DELIMITER); return CSS_MEDIUM; }

+}

+

+<ST_MEDIA_DELIMITER> {

+	"{" { yybegin(YYINITIAL); return CSS_LBRACE; }

+	"," { yybegin(ST_MEDIA_MEDIUM); return CSS_MEDIA_SEPARATOR; }

+}

+

+/*

+ * *** page rule **

+ * PAGE_SYM S* pseudo_page? S* LBRACE S* declaration [ ';' S* declaration ]* '}' S*

+ */

+

+"@page" { yybegin(ST_PAGE_PSEUDO_PAGE); return CSS_PAGE; }

+ 

+/*

+ * pseudo_page

+ * ':' IDENT

+ */

+

+<ST_PAGE_PSEUDO_PAGE> {

+	":"?{ident} { yybegin(ST_PAGE_DELIMITER); return CSS_PAGE_SELECTOR; }

+	"{" { yybegin(ST_DECLARATION); return CSS_LBRACE; }

+}

+

+<ST_PAGE_DELIMITER> {

+	"{" { yybegin(ST_DECLARATION); return CSS_LBRACE; }

+}

+

+/*

+ * font-face

+ * FONT_FACE_SYM S* '{' S* declaration [ ';' S* declaration '* '}' S*

+ */

+

+"@font-face" { yybegin(ST_FONT_FACE_DELIMITER); return CSS_FONT_FACE; }

+

+<ST_FONT_FACE_DELIMITER> {

+	"{" { yybegin(ST_DECLARATION); return CSS_LBRACE; }

+}

+

+/*

+ * selector

+ * simple_selector [ combinator simple_selector ]*

+ */

+

+/*

+ * simple_selector

+ * element_name [ HASH | class | attrib | pseudo ]* | [ HASH | class | attrib | pseudo ]+

+ */

+

+<YYINITIAL, ST_SELECTOR_MODIFIER, ST_SELECTOR> {

+	"*" { yybegin(ST_SELECTOR_MODIFIER); return CSS_SELECTOR_UNIVERSAL; }

+	{hash} { yybegin(ST_SELECTOR_MODIFIER); return CSS_SELECTOR_ID; }

+//	":"{ident} { yybegin(ST_SELECTOR_MODIFIER); return CSS_SELECTOR_PSEUDO; }

+	":"{ident}("("{s}*{ident}{s}*")")? { yybegin(ST_SELECTOR_MODIFIER); return CSS_SELECTOR_PSEUDO; }

+	"."{name} { yybegin(ST_SELECTOR_MODIFIER); return CSS_SELECTOR_CLASS; }

+	"[" { yybegin(ST_SELECTOR_ATTRIBUTE_NAME); return CSS_SELECTOR_ATTRIBUTE_START; }

+}

+

+<YYINITIAL, ST_SELECTOR> {

+	{ident} { yybegin(ST_SELECTOR_MODIFIER); return CSS_SELECTOR_ELEMENT_NAME; }

+}

+

+<ST_SELECTOR_MODIFIER> {

+	"," { yybegin(ST_SELECTOR); return CSS_SELECTOR_SEPARATOR; }

+	// using LOOKAHEAD

+	{s}+/[^+>\{] { yybegin(ST_SELECTOR); return CSS_SELECTOR_COMBINATOR; }

+	"+"|">" { yybegin(ST_SELECTOR); return CSS_SELECTOR_COMBINATOR; }

+	"{" { yybegin(ST_DECLARATION); return CSS_LBRACE; }

+}

+

+/*

+ * attrib

+ * '[' S* IDENT S* [ [ '=' | INCLUDES | DASHMATCH ] S* [ IDENT | STRING ] S* ]? ']'

+ */

+

+<ST_SELECTOR_ATTRIBUTE_NAME> {

+	{ident} { yybegin(ST_SELECTOR_ATTRIBUTE_OPERATOR); return CSS_SELECTOR_ATTRIBUTE_NAME; }

+}

+

+<ST_SELECTOR_ATTRIBUTE_OPERATOR> {

+	"="|"~="|"|=" { yybegin(ST_SELECTOR_ATTRIBUTE_VALUE); return CSS_SELECTOR_ATTRIBUTE_OPERATOR; }

+	"]" { yybegin(ST_SELECTOR_MODIFIER); return CSS_SELECTOR_ATTRIBUTE_END; }

+}

+

+<ST_SELECTOR_ATTRIBUTE_VALUE> {

+	{ident}|{string} { yybegin(ST_SELECTOR_ATTRIBUTE_END); return CSS_SELECTOR_ATTRIBUTE_VALUE; }

+}

+

+<ST_SELECTOR_ATTRIBUTE_END> {

+	"]" { yybegin(ST_SELECTOR_MODIFIER); return CSS_SELECTOR_ATTRIBUTE_END; }

+}

+

+/*

+ * declaration

+ * property ':' S* expr prio? | // empty //

+ */

+

+<ST_DECLARATION> {

+	{ident} { yybegin(ST_DECLARATION_SEPARATOR); return CSS_DECLARATION_PROPERTY; }

+}

+

+<ST_DECLARATION_SEPARATOR> {

+	":" { yybegin(ST_DECLARATION_PRE_VALUE); return CSS_DECLARATION_SEPARATOR; }

+}

+

+<ST_DECLARATION_PRE_VALUE, ST_DECLARATION_VALUE> {

+	"!"{s}*"important" { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_IMPORTANT; }

+	{ident} { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_IDENT; }

+	")" { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_PARENTHESIS_CLOSE; }

+	{num}{ident} { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_DIMENSION; }

+	{num}"%" { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_PERCENTAGE; }

+	{num} { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_NUMBER; }

+	{function} { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_FUNCTION; }

+	{string} { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_STRING; }

+	{uri} { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_URI; }

+	"#"{name} { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_HASH; }

+	{unicode_range} { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_UNICODE_RANGE; }

+	[,/] { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_OPERATOR; }

+}

+

+<ST_DECLARATION_VALUE> {

+	{s}+/[^;}] { return CSS_DECLARATION_VALUE_S; }

+}

+

+<ST_DECLARATION, ST_DECLARATION_SEPARATOR, ST_DECLARATION_PRE_VALUE, ST_DECLARATION_VALUE> {

+	";" { yybegin(ST_DECLARATION); return CSS_DECLARATION_DELIMITER; }

+	//	"}" { yybegin(YYINITIAL); return CSS_RBRACE; }

+}

+

+

+//<YYINITIAL, ST_IMPORT_URI, ST_IMPORT_MEDIUM, ST_IMPORT_DELIMITER> {

+//	\/\*[^*]*\*+([^/*][^*]*\*+)*\/ { return CSS_COMMENT; }

+//	{s}+ { return CSS_S; }

+//	. { return UNDEFINED; }

+//}

+

+//<YYINITIAL, ST_IMPORT_URI, ST_IMPORT_MEDIUM, ST_IMPORT_DELIMITER> {

+//	[^ \t\r\n\f]+ { return CSS_UNKNOWN; }

+//}

+

+. {

+	return UNDEFINED;

+}

diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/CSSTokenizer/devel/flex.cmd b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/CSSTokenizer/devel/flex.cmd
new file mode 100644
index 0000000..30fce78
--- /dev/null
+++ b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/CSSTokenizer/devel/flex.cmd
@@ -0,0 +1,7 @@
+@echo off

+set PATH=%PATH%;c:\jdk1.4\bin

+java -Xmx470000000 -cp JFlex\lib\sed-jflex.jar;. JFlex.Main JSPTokenizer -skel skeleton.sed

+java -Xmx470000000 -cp JFlex\lib\sed-jflex.jar;. JFlex.Main XMLTokenizer -skel skeleton.sed

+rm -f JSPTokenizer.java~ JSPTokenizer~ XMLTokenizer.java~ XMLTokenizer~

+copy XMLTokenizer.java ..\..\..\..\sedmodel\com\ibm\sed\parser\internal

+copy JSPTokenizer.java ..\..\..\..\sedmodel\com\ibm\sed\parser\internal

diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/CSSTokenizer/devel/flex.sh b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/CSSTokenizer/devel/flex.sh
new file mode 100644
index 0000000..f7872f3
--- /dev/null
+++ b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/CSSTokenizer/devel/flex.sh
@@ -0,0 +1,15 @@
+#!/bin/sh

+

+JAVADIR=C:/App/IBM/Java141/bin

+JAVAOPT=-Xmx470000000

+CLASSPATH=../../HTMLTokenizer/devel/JFlex/lib/sed-jflex.jar\;.

+DESTDIR=../../../../../org.eclipse.wst.sse.core.css/src/com/ibm/sse/model/css/internal/parser

+

+#export PATH=$PATH:/opt/IBMJava2-131/bin/:/opt/IBMJava2-13/bin/:/opt/jdk1.4

+#java -Xmx470000000 -cp JFlex/lib/sed-jflex.jar;. JFlex.Main CSSTokenizer -skel skeleton.sse

+

+$JAVADIR/java $JAVAOPT -cp $CLASSPATH JFlex.Main CSSTokenizer.jflex

+

+rm -f CSSTokenizer.java~ CSSTokenizer.jflex~

+cp -v CSSTokenizer.java $DESTDIR

+#$JAVADIR/javac $DESTDIR/*.java