Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 206963 | Differences between
and this patch

Collapse All | Expand All

(-)src/org/eclipse/jst/jsp/core/internal/text/StructuredTextPartitionerForJSP.java (-1 / +1 lines)
Lines 318-324 Link Here
318
			List fCustomActionPrefixes = ((JSPSourceParser) parser).getNestablePrefixes();
318
			List fCustomActionPrefixes = ((JSPSourceParser) parser).getNestablePrefixes();
319
			for (int i = 0; i < fCustomActionPrefixes.size(); i++)
319
			for (int i = 0; i < fCustomActionPrefixes.size(); i++)
320
				if (tagName.startsWith(((TagMarker) fCustomActionPrefixes.get(i)).getTagName())) {
320
				if (tagName.startsWith(((TagMarker) fCustomActionPrefixes.get(i)).getTagName())) {
321
					fLastCheckedPrefix = tagName;
321
					fLastCheckedPrefix = ((TagMarker) fCustomActionPrefixes.get(i)).getTagName();
322
					return true;
322
					return true;
323
				}
323
				}
324
		}
324
		}
(-)src/org/eclipse/jst/jsp/core/internal/java/JSPTranslator.java (-2 / +8 lines)
Lines 53-58 Link Here
53
import org.eclipse.jst.jsp.core.internal.contenttype.DeploymentDescriptorPropertyCache.PropertyGroup;
53
import org.eclipse.jst.jsp.core.internal.contenttype.DeploymentDescriptorPropertyCache.PropertyGroup;
54
import org.eclipse.jst.jsp.core.internal.parser.JSPSourceParser;
54
import org.eclipse.jst.jsp.core.internal.parser.JSPSourceParser;
55
import org.eclipse.jst.jsp.core.internal.provisional.JSP11Namespace;
55
import org.eclipse.jst.jsp.core.internal.provisional.JSP11Namespace;
56
import org.eclipse.jst.jsp.core.internal.provisional.JSP12Namespace;
56
import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
57
import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
57
import org.eclipse.jst.jsp.core.internal.taglib.TaglibHelper;
58
import org.eclipse.jst.jsp.core.internal.taglib.TaglibHelper;
58
import org.eclipse.jst.jsp.core.internal.taglib.TaglibHelperManager;
59
import org.eclipse.jst.jsp.core.internal.taglib.TaglibHelperManager;
Lines 734-740 Link Here
734
		addTaglibVariables(tagToAdd, getCurrentNode());
735
		addTaglibVariables(tagToAdd, getCurrentNode());
735
	}
736
	}
736
737
737
	protected void addTaglibVariables(String tagToAdd, IStructuredDocumentRegion customTag) {
738
	protected void addTaglibVariables(String tagToAdd, ITextRegionCollection customTag) {
738
		IFile f = getFile();
739
		IFile f = getFile();
739
740
740
		if (f == null || !f.exists())
741
		if (f == null || !f.exists())
Lines 1005-1010 Link Here
1005
					// ////////////////////////////////////////////////////////////////////////////////
1006
					// ////////////////////////////////////////////////////////////////////////////////
1006
				}
1007
				}
1007
			}
1008
			}
1009
			if (region instanceof ITextRegionCollection && ((ITextRegionCollection) region).getNumberOfRegions() > 0) {
1010
				translateRegionContainer((ITextRegionCollection) region, EMBEDDED_JSP);
1011
			}
1008
			if (type != null && isJSP(type)) // <%, <%=, <%!, <%@
1012
			if (type != null && isJSP(type)) // <%, <%=, <%!, <%@
1009
			{
1013
			{
1010
				// translateJSPNode(region, regions, type, JSPType);
1014
				// translateJSPNode(region, regions, type, JSPType);
Lines 1791-1797 Link Here
1791
					while (!sdRegion.isDeleted() && taglibRegions.hasNext()) {
1795
					while (!sdRegion.isDeleted() && taglibRegions.hasNext()) {
1792
						r = (ITextRegion) taglibRegions.next();
1796
						r = (ITextRegion) taglibRegions.next();
1793
						if (r.getType().equals(DOMJSPRegionContexts.JSP_DIRECTIVE_NAME)) {
1797
						if (r.getType().equals(DOMJSPRegionContexts.JSP_DIRECTIVE_NAME)) {
1794
							if (sdRegion.getText(r).equals(JSP12TLDNames.TAGLIB)) {
1798
							String text = sdRegion.getText(r);
1799
							if (JSP12TLDNames.TAGLIB.equals(text) || JSP12Namespace.ElementName.DIRECTIVE_TAGLIB.equals(text)) {
1795
								addBlockMarkers(tracker.getDocument());
1800
								addBlockMarkers(tracker.getDocument());
1796
							}
1801
							}
1797
						}
1802
						}
Lines 1950-1955 Link Here
1950
				if (!getIncludes().contains(filePath) && !filePath.equals(basePath.toString())) {
1955
				if (!getIncludes().contains(filePath) && !filePath.equals(basePath.toString())) {
1951
					getIncludes().push(filePath);
1956
					getIncludes().push(filePath);
1952
					JSPIncludeRegionHelper helper = new JSPIncludeRegionHelper(this);
1957
					JSPIncludeRegionHelper helper = new JSPIncludeRegionHelper(this);
1958
					// Should we consider preludes on this segment?
1953
					helper.parse(filePath);
1959
					helper.parse(filePath);
1954
					getIncludes().pop();
1960
					getIncludes().pop();
1955
				}
1961
				}
(-)src/org/eclipse/jst/jsp/core/internal/java/XMLJSPRegionHelper.java (+13 lines)
Lines 17-22 Link Here
17
import org.eclipse.core.runtime.Path;
17
import org.eclipse.core.runtime.Path;
18
import org.eclipse.jst.jsp.core.internal.Logger;
18
import org.eclipse.jst.jsp.core.internal.Logger;
19
import org.eclipse.jst.jsp.core.internal.contentmodel.tld.TLDCMDocumentManager;
19
import org.eclipse.jst.jsp.core.internal.contentmodel.tld.TLDCMDocumentManager;
20
import org.eclipse.jst.jsp.core.internal.contentmodel.tld.TaglibTracker;
20
import org.eclipse.jst.jsp.core.internal.parser.JSPSourceParser;
21
import org.eclipse.jst.jsp.core.internal.parser.JSPSourceParser;
21
import org.eclipse.jst.jsp.core.internal.provisional.JSP11Namespace;
22
import org.eclipse.jst.jsp.core.internal.provisional.JSP11Namespace;
22
import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
23
import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
Lines 106-111 Link Here
106
		for (int i = 0; i < blockMarkers.size(); i++) {
107
		for (int i = 0; i < blockMarkers.size(); i++) {
107
			addBlockMarker((BlockMarker) blockMarkers.get(i));
108
			addBlockMarker((BlockMarker) blockMarkers.get(i));
108
		}
109
		}
110
		// RATLC01139770
111
//		getLocalParser().getNestablePrefixes().addAll(((JSPSourceParser)fTranslator.getStructuredDocument().getParser()).getNestablePrefixes());
112
		TLDCMDocumentManager documentManager = this.fTranslator.getTLDCMDocumentManager();
113
		if (documentManager != null) {
114
			List trackers = documentManager.getTaglibTrackers();
115
			for (Iterator it = trackers.iterator(); it.hasNext();) {
116
				TaglibTracker tracker = (TaglibTracker) it.next();
117
				String prefix = tracker.getPrefix();
118
				getLocalParser().getNestablePrefixes().add(new TagMarker(prefix));
119
			}
120
		}
121
109
		reset(contents);
122
		reset(contents);
110
		// forceParse();
123
		// forceParse();
111
		document.set(contents);
124
		document.set(contents);
(-)src/org/eclipse/jst/jsp/core/internal/taglib/TaglibHelper.java (-5 / +5 lines)
Lines 51-58 Link Here
51
import org.eclipse.wst.sse.core.StructuredModelManager;
51
import org.eclipse.wst.sse.core.StructuredModelManager;
52
import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
52
import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
53
import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
53
import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
54
import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
55
import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
54
import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
55
import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionCollection;
56
import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
56
import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
57
import org.eclipse.wst.sse.core.utils.StringUtils;
57
import org.eclipse.wst.sse.core.utils.StringUtils;
58
import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
58
import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
Lines 100-106 Link Here
100
	 *            is the IStructuredDocumentRegion opening tag for the custom
100
	 *            is the IStructuredDocumentRegion opening tag for the custom
101
	 *            tag
101
	 *            tag
102
	 */
102
	 */
103
	public TaglibVariable[] getTaglibVariables(String tagToAdd, IStructuredDocument structuredDoc, IStructuredDocumentRegion customTag) {
103
	public TaglibVariable[] getTaglibVariables(String tagToAdd, IStructuredDocument structuredDoc, ITextRegionCollection customTag) {
104
104
105
		List results = new ArrayList();
105
		List results = new ArrayList();
106
		fValidationMessages.clear();
106
		fValidationMessages.clear();
Lines 158-164 Link Here
158
	 *            list where the <code>TaglibVariable</code> s are added
158
	 *            list where the <code>TaglibVariable</code> s are added
159
	 * @param node
159
	 * @param node
160
	 */
160
	 */
161
	private void addVariables(List results, CMNode node, IStructuredDocumentRegion customTag) {
161
	private void addVariables(List results, CMNode node, ITextRegionCollection customTag) {
162
162
163
		List list = ((TLDElementDeclaration) node).getVariables();
163
		List list = ((TLDElementDeclaration) node).getVariables();
164
		Iterator it = list.iterator();
164
		Iterator it = list.iterator();
Lines 214-220 Link Here
214
	 * @param uri
214
	 * @param uri
215
	 *            URI where the tld can be found
215
	 *            URI where the tld can be found
216
	 */
216
	 */
217
	private void addTEIVariables(IStructuredDocumentRegion customTag, List results, TLDElementDeclaration decl, String prefix, String uri) {
217
	private void addTEIVariables(ITextRegionCollection customTag, List results, TLDElementDeclaration decl, String prefix, String uri) {
218
		String teiClassname = decl.getTeiclass();
218
		String teiClassname = decl.getTeiclass();
219
		if (teiClassname == null || teiClassname.length() == 0)
219
		if (teiClassname == null || teiClassname.length() == 0)
220
			return;
220
			return;
Lines 344-350 Link Here
344
	 * @param customTag
344
	 * @param customTag
345
	 * @return
345
	 * @return
346
	 */
346
	 */
347
	private Hashtable extractTagData(IStructuredDocumentRegion customTag) {
347
	private Hashtable extractTagData(ITextRegionCollection customTag) {
348
348
349
		Hashtable tagDataTable = new Hashtable();
349
		Hashtable tagDataTable = new Hashtable();
350
		ITextRegionList regions = customTag.getRegions();
350
		ITextRegionList regions = customTag.getRegions();
(-)src/org/eclipse/jst/jsp/core/internal/parser/internal/JSPTokenizer.java (-1074 / +1132 lines)
Lines 1-4 Link Here
1
/* The following code was generated by JFlex 1.2.2 on 10/17/07 4:12 AM */
1
/* The following code was generated by JFlex 1.2.2 on 10/24/07 5:16 AM */
2
2
3
/*******************************************************************************
3
/*******************************************************************************
4
 * Copyright (c) 2004, 2007 IBM Corporation and others.
4
 * Copyright (c) 2004, 2007 IBM Corporation and others.
Lines 35-41 Link Here
35
/**
35
/**
36
 * This class is a scanner generated by 
36
 * This class is a scanner generated by 
37
 * <a href="http://www.informatik.tu-muenchen.de/~kleing/jflex/">JFlex</a> 1.2.2
37
 * <a href="http://www.informatik.tu-muenchen.de/~kleing/jflex/">JFlex</a> 1.2.2
38
 * on 10/17/07 4:12 AM from the specification file
38
 * on 10/24/07 5:16 AM from the specification file
39
 * <tt>file:/D:/eclipse.wtp/workspace/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.jflex</tt>
39
 * <tt>file:/D:/eclipse.wtp/workspace/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.jflex</tt>
40
 */
40
 */
41
public class JSPTokenizer implements BlockTokenizer, DOMJSPRegionContexts {
41
public class JSPTokenizer implements BlockTokenizer, DOMJSPRegionContexts {
Lines 44-59 Link Here
44
  final public static int YYEOF = -1;
44
  final public static int YYEOF = -1;
45
45
46
  /** lexical states */
46
  /** lexical states */
47
  final public static int ST_JSP_VBL_DQUOTES = 52;
47
  final public static int ST_JSP_VBL_DQUOTES = 51;
48
  final public static int ST_JSP_VBL_SQUOTES = 51;
48
  final public static int ST_JSP_VBL_SQUOTES = 50;
49
  final public static int ST_JSP_VBL_SQUOTES_END = 53;
49
  final public static int ST_JSP_VBL_SQUOTES_END = 52;
50
  final public static int ST_XML_COMMENT_END = 4;
50
  final public static int ST_XML_COMMENT_END = 4;
51
  final public static int ST_JSP_DIRECTIVE_ATTRIBUTE_VALUE = 21;
51
  final public static int ST_JSP_DIRECTIVE_ATTRIBUTE_VALUE = 21;
52
  final public static int ST_JSP_EL_SQUOTES_END = 46;
52
  final public static int ST_JSP_EL_SQUOTES_END = 45;
53
  final public static int ST_JSP_EL_DQUOTES = 45;
53
  final public static int ST_JSP_EL_DQUOTES = 44;
54
  final public static int ST_JSP_EL = 43;
54
  final public static int ST_JSP_EL = 42;
55
  final public static int ST_BLOCK_TAG_SCAN = 36;
55
  final public static int ST_BLOCK_TAG_SCAN = 36;
56
  final public static int ST_JSP_EL_SQUOTES = 44;
56
  final public static int ST_JSP_EL_SQUOTES = 43;
57
  final public static int ST_DHTML_ATTRIBUTE_VALUE = 14;
57
  final public static int ST_DHTML_ATTRIBUTE_VALUE = 14;
58
  final public static int ST_XML_PI_ATTRIBUTE_NAME = 8;
58
  final public static int ST_XML_PI_ATTRIBUTE_NAME = 8;
59
  final public static int ST_DHTML_TAG_CLOSE = 15;
59
  final public static int ST_DHTML_TAG_CLOSE = 15;
Lines 61-68 Link Here
61
  final public static int ST_DHTML_EQUALS = 13;
61
  final public static int ST_DHTML_EQUALS = 13;
62
  final public static int ST_XML_PI_ATTRIBUTE_VALUE = 10;
62
  final public static int ST_XML_PI_ATTRIBUTE_VALUE = 10;
63
  final public static int ST_XML_ATTRIBUTE_VALUE = 25;
63
  final public static int ST_XML_ATTRIBUTE_VALUE = 25;
64
  final public static int ST_JSP_VBL = 50;
64
  final public static int ST_JSP_VBL = 49;
65
  final public static int ST_JSP_SQUOTED_VBL = 56;
65
  final public static int ST_JSP_SQUOTED_VBL = 55;
66
  final public static int ST_XML_ATTRIBUTE_VALUE_SQUOTED = 40;
66
  final public static int ST_XML_ATTRIBUTE_VALUE_SQUOTED = 40;
67
  final public static int ST_XML_ATTRIBUTE_NAME = 23;
67
  final public static int ST_XML_ATTRIBUTE_NAME = 23;
68
  final public static int ST_XML_EQUALS = 24;
68
  final public static int ST_XML_EQUALS = 24;
Lines 73-80 Link Here
73
  final public static int ST_XML_ELEMENT_DECLARATION = 32;
73
  final public static int ST_XML_ELEMENT_DECLARATION = 32;
74
  final public static int ST_XML_DECLARATION_CLOSE = 27;
74
  final public static int ST_XML_DECLARATION_CLOSE = 27;
75
  final public static int ST_JSP_DIRECTIVE_EQUALS = 20;
75
  final public static int ST_JSP_DIRECTIVE_EQUALS = 20;
76
  final public static int ST_JSP_VBL_DQUOTES_END = 54;
76
  final public static int ST_JSP_VBL_DQUOTES_END = 53;
77
  final public static int ST_JSP_DQUOTED_EL = 48;
77
  final public static int ST_JSP_DQUOTED_EL = 47;
78
  final public static int ST_XML_DOCTYPE_DECLARATION = 28;
78
  final public static int ST_XML_DOCTYPE_DECLARATION = 28;
79
  final public static int ST_CDATA_END = 2;
79
  final public static int ST_CDATA_END = 2;
80
  final public static int ST_PI_WS = 6;
80
  final public static int ST_PI_WS = 6;
Lines 82-96 Link Here
82
  final public static int ST_JSP_DIRECTIVE_NAME_WHITESPACE = 18;
82
  final public static int ST_JSP_DIRECTIVE_NAME_WHITESPACE = 18;
83
  final public static int ST_XML_ELEMENT_DECLARATION_CONTENT = 33;
83
  final public static int ST_XML_ELEMENT_DECLARATION_CONTENT = 33;
84
  final public static int ST_XML_ATTLIST_DECLARATION = 34;
84
  final public static int ST_XML_ATTLIST_DECLARATION = 34;
85
  final public static int ST_JSP_EL_DQUOTES_END = 47;
85
  final public static int ST_JSP_EL_DQUOTES_END = 46;
86
  final public static int ST_JSP_SQUOTED_EL = 49;
86
  final public static int ST_JSP_SQUOTED_EL = 48;
87
  final public static int ST_JSP_COMMENT_END = 39;
87
  final public static int ST_JSP_COMMENT_END = 39;
88
  final public static int ST_XML_PI_EQUALS = 9;
88
  final public static int ST_XML_PI_EQUALS = 9;
89
  final public static int ST_XML_ATTLIST_DECLARATION_CONTENT = 35;
89
  final public static int ST_XML_ATTLIST_DECLARATION_CONTENT = 35;
90
  final public static int ST_XML_DOCTYPE_ID_PUBLIC = 30;
90
  final public static int ST_XML_DOCTYPE_ID_PUBLIC = 30;
91
  final public static int ST_JSP_DQUOTED_VBL = 55;
91
  final public static int ST_JSP_DQUOTED_VBL = 54;
92
  final public static int ST_DHTML_ATTRIBUTE_NAME = 12;
92
  final public static int ST_DHTML_ATTRIBUTE_NAME = 12;
93
  final public static int ST_ABORT_EMBEDDED = 42;
93
  final public static int ST_ABORT_EMBEDDED = 37;
94
  final public static int ST_XML_DOCTYPE_EXTERNAL_ID = 29;
94
  final public static int ST_XML_DOCTYPE_EXTERNAL_ID = 29;
95
  final public static int ST_JSP_COMMENT = 38;
95
  final public static int ST_JSP_COMMENT = 38;
96
  final public static int ST_PI_CONTENT = 7;
96
  final public static int ST_PI_CONTENT = 7;
Lines 191-773 Link Here
191
     2130,  2201,  2272,  2343,  2414,  2485,  2556,  2627,  2698,  2769, 
191
     2130,  2201,  2272,  2343,  2414,  2485,  2556,  2627,  2698,  2769, 
192
     2840,  2911,  2982,  3053,  3124,  3195,  3266,  3337,  3408,  3479, 
192
     2840,  2911,  2982,  3053,  3124,  3195,  3266,  3337,  3408,  3479, 
193
     3550,  3621,  3692,  3763,  3834,  3905,  3976,  4047,  4118,  4189, 
193
     3550,  3621,  3692,  3763,  3834,  3905,  3976,  4047,  4118,  4189, 
194
     4260,  4331,  4402,  4473,  4544,  4473,  4544,  4615,  4473,  4473, 
194
     4260,  4331,  4402,  4473,  4402,  4473,  4544,  4402,  4402,  4473, 
195
     4544,  4686,  4757,  4828,  4899,  4970,  5041,  5112,  5183,  4473, 
195
     4615,  4686,  4757,  4828,  4899,  4970,  5041,  5112,  4402,  4473, 
196
     4544,  5254,  5325,  5396,  4473,  5467,  5467,  5538,  5609,  5680, 
196
     5183,  5254,  5325,  4402,  5396,  5396,  5467,  5538,  5609,  5183, 
197
     5254,  4473,  5751,  5822,  4473,  5893,  5964,  6035,  6106,  4473, 
197
     4402,  5680,  5751,  4402,  5822,  5893,  5964,  6035,  4402,  4473, 
198
     4544,  6177,  6248,  6319,  6390,  6461,  6532,  4473,  6603,  6603, 
198
     6106,  6177,  6248,  6319,  6390,  6461,  4402,  6532,  6532,  6603, 
199
     6674,  6745,  6816,  6887,  6958,  4473,  7029,  7100,  7171,  7242, 
199
     6674,  6745,  6816,  6887,  4402,  6958,  7029,  7100,  7171,  7242, 
200
     7313,  7384,  4473,  7455,  7526,  7597,  7668,  7739,  7810,  7881, 
200
     7313,  4402,  7384,  7455,  7526,  7597,  7668,  7739,  7810,  7881, 
201
     7952,  4473,  8023,  8094,  8165,  8236,  8307,  8378,  8449,  8520, 
201
     4402,  7952,  8023,  8094,  8165,  8236,  8307,  8378,  8449,  8449, 
202
     8520,  8591,  8662,  8733,  8804,  8804,  8875,  8946,  9017,  9088, 
202
     8520,  8591,  8662,  8733,  8733,  8804,  8875,  8946,  9017,  9017, 
203
     9088,  9159,  9230,  9301,  9372,  4473,  9443,  9443,  9514,  9585, 
203
     9088,  9159,  9230,  9301,  4402,  9372,  9372,  9443,  9514,  9585, 
204
     9656,  9727,  4473,  4473,  4544,  9798,  4473,  4544,  9869,  9940, 
204
     9656,  4402,  4402,  4473,  4402,  4473,  9727,  9798,  9869,  9940, 
205
    10011, 10082,  4473, 10153, 10224, 10295, 10366,  4473, 10437, 10508, 
205
     4402, 10011, 10082, 10153, 10224,  4402, 10295, 10366, 10437, 10508, 
206
    10579, 10650,  4473,  4473, 10721,  4473, 10792, 10863, 10792, 10934, 
206
     4402,  4402, 10579,  4402, 10650, 10721, 10650, 10792, 10863, 10792, 
207
    11005, 10934,  4473,  4473, 11076, 11147, 11218,  4473, 11289, 11360, 
207
     4402,  4402, 10934, 11005, 11076,  4402, 11147, 11218, 11289, 11360, 
208
    11431, 11502, 11573,  4473,  4473, 11644,  4473, 11715, 11786, 11715, 
208
    11431,  4402,  4402, 11502,  4402, 11573, 11644, 11573, 11715, 11786, 
209
    11857, 11928, 11857,  4473,  4473, 11999, 12070, 12141,  4473, 12212, 
209
    11715,  4402,  4402, 11857, 11928, 11999,  4402, 12070, 12141, 12212, 
210
    12283, 12354,  4473,  4473, 12425, 12496, 12567, 12638, 12709,  4473, 
210
     4402,  4402, 12283, 12354, 12425, 12496, 12567,  4402, 12638, 12709, 
211
    12780, 12851, 12922, 12993, 13064, 13135, 13206, 13277, 13348,  4473, 
211
    12780, 12851, 12922, 12993, 13064, 13135,  4402, 13206, 13277, 13348, 
212
    13419, 13490, 13561,  4473,  4473,  5467,  5609,  4473, 13632,  5680, 
212
     4402,  4402,  5396,  5538,  4402, 13419,  5609, 13490,  5680,  5822, 
213
    13703,  5751,  5893,  5964, 13774,  6035,  4473, 13845, 13916,  6106, 
213
     5893, 13561,  5964,  4402, 13632, 13703,  6035, 13774,  4402, 12354, 
214
    13987,  4473, 12496,  4473,  6603,  6674,  4473, 14058,  6745, 14129, 
214
     4402,  6532,  6603,  4402, 13845,  6674, 13916,  4402, 13987, 14058, 
215
     4473, 14200, 14271,  7455, 14342,  7668,  4473, 14413,  7739, 14484, 
215
     7384, 14129,  7597,  4402, 14200,  7668, 14271, 14342, 14413, 14484, 
216
    14555, 14626, 14697, 14768, 14839,  8236,  4473, 14910, 14981,  8520, 
216
    14555, 14626,  8165,  4402, 14697, 14768,  8449,  8520,  4402, 14839, 
217
     8591,  4473, 15052, 15123, 15194, 15265, 15336,  8733,  8520,  8804, 
217
    14910, 14981, 15052, 15123,  8662,  8449,  8733,  8804,  4402,  8875, 
218
     8875,  4473,  8946,  9017,  8804,  9088,  9159,  4473, 15407, 15478, 
218
     8946,  8733,  9017,  9088,  4402, 15194, 15265, 15336, 15407, 15478, 
219
    15549, 15620, 15691, 15762, 15833,  9443,  9514,  4473, 15904, 15975, 
219
    15549, 15620,  9372,  9443,  4402, 15691, 15762, 15833, 15904, 15975, 
220
    16046, 16117, 16188, 16259, 16330, 16401, 16472,  4473,  4473,  4473, 
220
    16046, 16117, 16188, 16259,  4402,  4402,  4402, 16330,  4402,  4402, 
221
    16543,  4473,  4473, 16614, 16685, 16756, 16827, 10792,  4473, 16898, 
221
    16401, 16472, 16543, 16614, 10650,  4402, 16685, 16756, 10792,  4402, 
222
    16969, 10934,  4473, 17040, 17111, 17182, 17253, 17324, 17395, 17466, 
222
    16827, 16898, 16969, 17040, 17111, 17182, 17253, 17324, 17395, 11360, 
223
    17537, 17608, 11502, 11715,  4473, 17679, 17750, 11857,  4473, 17821, 
223
    11573,  4402, 17466, 17537, 11715,  4402, 17608, 17679, 17750, 17821, 
224
    17892, 17963, 18034, 18105, 18176, 18247, 18318, 18389,  4473,  4473, 
224
    17892, 17963, 18034, 18105, 18176,  4402,  4402,  4402, 18247, 18318, 
225
     4473, 18460, 18531, 18602, 18673, 18744,  4473, 18815, 18886,  4473, 
225
    18389, 18460, 18531,  4402, 18602, 18673,  4402,  4402,  4402,  4402, 
226
     4473,  4473,  4473,  4473,  4899, 18957, 19028, 19099, 19170, 19241, 
226
     4402,  4828, 18744, 18815, 18886, 18957, 19028, 19099, 19170, 19099, 
227
    19312, 19383, 19312, 19454, 19525, 19454, 19596, 19667, 19738, 19809, 
227
    19241, 19312, 19241, 19383, 19454, 19525, 19596, 19667, 19738, 19809, 
228
    19880, 19951, 20022, 20022, 20093, 20164, 20164, 20235,  9301,  9301, 
228
    19809, 19880, 19951, 19951, 20022,  9230,  9230,  9230, 20093, 20164, 
229
    20306, 20377, 20448, 20448, 20519,  9656,  9656, 20590, 20661, 16756, 
229
    20235, 20235, 20306,  9585,  9585,  9585, 20377, 20448, 16543, 20519, 
230
    20732, 10579, 10579, 20803, 20874, 10792, 10792, 20945, 21016, 10934, 
230
    10437, 10437, 10437, 20590, 20661, 10650, 10650, 10650, 20732, 20803, 
231
    10934, 21087, 21158, 11076, 11076, 17324, 21229, 21300, 11289, 11289, 
231
    10792, 10792, 10792, 20874, 20945, 10934, 10934, 10934, 17111, 21016, 
232
    17537, 21371, 21442, 11502, 11502, 21513, 11715, 11715, 21584, 21655, 
232
    21087, 11147, 11147, 11147, 17324, 21158, 21229, 11360, 11360, 11360, 
233
    11857, 11857, 21726, 21797, 11999, 11999, 18105, 21868, 21939, 12212, 
233
    21300, 11573, 11573, 11573, 21371, 21442, 11715, 11715, 11715, 21513, 
234
    12212, 18318, 22010,  4473,  4473, 22081, 22152,  4473, 22223, 22294, 
234
    21584, 11857, 11857, 11857, 17892, 21655, 21726, 12070, 12070, 12070, 
235
    22365, 22436,  7455,  4473,  4473, 22507, 22578, 22649, 22720, 22791, 
235
    18105, 21797,  4402,  4402, 21868, 21939,  4402, 22010, 22081, 22152, 
236
    15265, 15620,  9301, 22862, 16117,  9656, 22933,  4473, 10579, 10792, 
236
    22223,  7384,  4402,  4402, 22294, 22365, 22436, 22507, 22578, 15052, 
237
    23004, 10934, 23075, 11076, 23146,  4473, 11289, 23217, 11502, 11715, 
237
    15407,  9230, 22649, 15904,  9585, 22720,  4402, 10437, 10650, 22791, 
238
    23288, 11857, 23359, 11999, 23430,  4473, 12212, 23501, 23572, 23643, 
238
    10792, 22862, 10934, 22933,  4402, 11147, 23004, 11360, 11573, 23075, 
239
    23714, 23785, 23856, 23927, 23998, 24069, 24140, 24211, 24282, 24353, 
239
    11715, 23146, 11857, 23217,  4402, 12070, 23288, 23359, 23430, 23501, 
240
    24424, 24495, 24566, 24637, 24708, 24779, 24850, 24921, 24992, 25063, 
240
    23572, 23643, 23714, 23785, 23856, 23927, 23998, 24069, 24140, 24211, 
241
     4899, 25134, 25205, 25276, 25347, 25418,  4473,  4473, 25489, 25560, 
241
    24282, 24353, 24424, 24495, 24566, 24637, 24708, 24779, 24850,  4828, 
242
    25631, 25702, 17324, 17537, 25773, 25844, 18105, 18318, 25915, 25986, 
242
    24921, 24992, 25063, 25134, 25205,  4402,  4402, 25276, 25347, 25418, 
243
    26057, 26128,  4473,  4473,  4473, 26199, 26270, 26341, 26412, 26483, 
243
    25489, 17111, 17324, 25560, 25631, 17892, 18105, 25702, 25773, 25844, 
244
    26554, 26625, 26696,  7171, 26767, 26838, 26909, 26980, 27051, 27122, 
244
    25915,  4402,  4402,  4402, 25986, 26057, 26128, 26199, 26270, 26341, 
245
    27193,  4473, 27264, 27335,  9301,  9656, 10792, 10934, 11715, 11857, 
245
    26412, 26483,  7100, 26554, 26625, 26696, 26767, 26838, 26909, 26980, 
246
    27406, 27477, 27548, 27619, 27690, 27761, 27832, 27903,  4899, 27974, 
246
     4402, 27051, 27122,  9230,  9585, 10650, 10792, 11573, 11715, 27193, 
247
    28045, 28116, 28187, 28258, 28329, 28400, 28471, 28542, 28613, 28684, 
247
    27264, 27335, 27406, 27477, 27548, 27619, 27690,  4828, 27761, 27832, 
248
    28755, 28826, 28897, 28968, 29039, 29110, 29181, 29252, 29323, 29394, 
248
    27903, 27974, 28045, 28116, 28187, 28258, 28329, 28400, 28471, 28542, 
249
    29465, 29536, 29607, 29678, 29749, 29820, 29891, 29962, 30033, 30104, 
249
    28613, 28684, 28755, 28826, 28897, 28968, 29039, 29110, 29181, 29252, 
250
    30175, 30246, 30317, 30388, 30459,  4473, 30530, 30601, 30672, 30743, 
250
    29323, 29394, 29465, 29536, 29607, 29678, 29749, 29820, 29891, 29962, 
251
     7171, 30814, 30885, 30956, 31027, 31098, 31169, 31240, 31311, 31382, 
251
    30033, 30104, 30175, 30246,  4402, 30317, 30388, 30459, 30530,  7100, 
252
    31453, 31524, 31595, 31666, 31737
252
    30601, 30672, 30743, 30814, 30885, 30956, 31027, 31098, 31169, 31240, 
253
    31311, 31382, 31453, 31524
253
  };
254
  };
254
255
255
  /** 
256
  /** 
256
   * The packed transition table of the DFA
257
   * The packed transition table of the DFA
257
   */
258
   */
258
  final private static String yy_packed = 
259
  final private static String yy_packed = 
259
    "\1\72\1\73\11\72\1\74\1\72\1\75\4\72\1\76"+
260
    "\1\71\1\72\11\71\1\73\1\71\1\74\4\71\1\75"+
260
    "\42\72\1\77\21\72\1\100\1\101\105\100\1\102\1\103"+
261
    "\42\71\1\76\21\71\1\77\1\100\105\77\1\101\1\102"+
261
    "\21\102\1\104\2\102\1\105\60\102\1\106\1\107\105\106"+
262
    "\21\101\1\103\2\101\1\104\60\101\1\105\1\106\105\105"+
262
    "\1\102\1\103\5\102\1\110\16\102\1\105\61\102\1\103"+
263
    "\1\101\1\102\5\101\1\107\16\101\1\104\61\101\1\102"+
263
    "\2\102\1\111\1\112\2\102\2\113\5\102\1\112\6\102"+
264
    "\2\101\1\110\1\111\2\101\2\112\5\101\1\111\6\101"+
264
    "\1\112\1\114\1\115\4\113\1\102\10\113\1\116\2\113"+
265
    "\1\111\1\113\1\114\4\112\1\101\10\112\1\115\2\112"+
265
    "\1\102\11\113\1\116\1\113\1\102\4\113\1\102\4\113"+
266
    "\1\101\11\112\1\115\1\112\1\101\4\112\1\101\4\112"+
266
    "\1\102\4\113\2\102\1\113\1\102\1\103\2\102\1\111"+
267
    "\1\101\4\112\2\101\1\112\1\101\1\102\2\101\1\110"+
267
    "\1\117\11\102\1\117\6\102\1\117\60\102\1\120\1\121"+
268
    "\1\116\11\101\1\116\6\101\1\116\60\101\1\117\1\120"+
268
    "\2\120\1\122\21\120\1\105\60\120\1\102\1\103\2\102"+
269
    "\2\117\1\121\21\117\1\104\60\117\1\101\1\102\2\101"+
269
    "\1\123\1\112\2\102\2\124\5\102\1\112\6\102\1\112"+
270
    "\1\122\1\111\2\101\2\123\5\101\1\111\6\101\1\111"+
270
    "\6\124\1\102\13\124\1\102\13\124\1\102\4\124\1\102"+
271
    "\6\123\1\101\13\123\1\101\13\123\1\101\4\123\1\101"+
271
    "\4\124\1\102\4\124\2\102\1\124\1\102\1\103\2\102"+
272
    "\4\123\1\101\4\123\2\101\1\123\1\101\1\102\2\101"+
272
    "\1\123\1\112\2\102\2\124\5\102\1\112\6\102\1\112"+
273
    "\1\122\1\111\2\101\2\123\5\101\1\111\6\101\1\111"+
273
    "\6\124\1\102\13\124\1\125\13\124\1\102\4\124\1\102"+
274
    "\6\123\1\101\13\123\1\124\13\123\1\101\4\123\1\101"+
274
    "\4\124\1\102\4\124\2\102\1\124\1\126\1\103\1\102"+
275
    "\4\123\1\101\4\123\2\101\1\123\1\125\1\102\1\101"+
275
    "\1\127\1\130\1\112\4\126\1\131\1\126\1\132\2\126"+
276
    "\1\126\1\127\1\111\4\125\1\130\1\125\1\131\2\125"+
276
    "\1\112\6\126\1\112\60\126\1\102\1\103\2\102\1\133"+
277
    "\1\111\6\125\1\111\60\125\1\101\1\102\2\101\1\132"+
277
    "\21\102\1\105\61\102\1\103\1\134\1\135\1\102\1\112"+
278
    "\21\101\1\104\61\101\1\102\1\133\1\134\1\101\1\111"+
278
    "\2\102\2\136\5\102\1\112\6\102\1\112\6\136\1\102"+
279
    "\2\101\2\135\5\101\1\111\6\101\1\111\6\135\1\101"+
279
    "\13\136\1\102\13\136\1\102\4\136\1\102\4\136\1\102"+
280
    "\13\135\1\101\13\135\1\101\4\135\1\101\4\135\1\101"+
280
    "\4\136\2\102\1\136\1\102\1\103\1\134\1\135\1\102"+
281
    "\4\135\2\101\1\135\1\101\1\102\1\133\1\134\1\101"+
281
    "\1\112\2\102\2\136\5\102\1\112\6\102\1\112\6\136"+
282
    "\1\111\2\101\2\135\5\101\1\111\6\101\1\111\6\135"+
282
    "\1\102\13\136\1\137\13\136\1\102\4\136\1\102\4\136"+
283
    "\1\101\13\135\1\136\13\135\1\101\4\135\1\101\4\135"+
283
    "\1\102\4\136\2\102\1\136\1\140\1\103\1\134\1\141"+
284
    "\1\101\4\135\2\101\1\135\1\137\1\102\1\133\1\140"+
284
    "\1\140\1\112\4\140\1\142\1\140\1\143\2\140\1\112"+
285
    "\1\137\1\111\4\137\1\141\1\137\1\142\2\137\1\111"+
285
    "\6\140\1\112\60\140\1\102\1\103\3\102\1\112\11\102"+
286
    "\6\137\1\111\60\137\1\101\1\102\3\101\1\111\11\101"+
286
    "\1\112\6\102\1\112\60\102\1\144\1\145\20\144\1\146"+
287
    "\1\111\6\101\1\111\60\101\1\143\1\144\20\143\1\145"+
287
    "\64\144\1\102\1\147\3\102\1\112\2\102\2\150\5\102"+
288
    "\64\143\1\101\1\146\3\101\1\111\2\101\2\147\5\101"+
288
    "\1\112\2\102\1\151\3\102\1\112\6\150\1\102\13\150"+
289
    "\1\111\2\101\1\150\3\101\1\111\6\147\1\101\13\147"+
289
    "\1\102\13\150\1\102\4\150\1\102\4\150\1\102\4\150"+
290
    "\1\101\13\147\1\101\4\147\1\101\4\147\1\101\4\147"+
290
    "\2\102\1\150\1\102\1\147\3\102\1\152\11\102\1\152"+
291
    "\2\101\1\147\1\101\1\146\3\101\1\151\11\101\1\151"+
291
    "\2\102\1\151\3\102\1\152\61\102\1\147\3\102\1\112"+
292
    "\2\101\1\150\3\101\1\151\61\101\1\146\3\101\1\111"+
292
    "\2\102\2\153\5\102\1\112\2\102\1\151\3\102\1\112"+
293
    "\2\101\2\152\5\101\1\111\2\101\1\150\3\101\1\111"+
293
    "\6\153\1\102\13\153\1\102\13\153\1\102\4\153\1\102"+
294
    "\6\152\1\101\13\152\1\101\13\152\1\101\4\152\1\101"+
294
    "\4\153\1\102\4\153\2\102\1\153\1\102\1\147\3\102"+
295
    "\4\152\1\101\4\152\2\101\1\152\1\101\1\146\3\101"+
295
    "\1\112\2\102\2\153\5\102\1\112\2\102\1\151\3\102"+
296
    "\1\111\2\101\2\152\5\101\1\111\2\101\1\150\3\101"+
296
    "\1\112\6\153\1\102\13\153\1\154\13\153\1\102\4\153"+
297
    "\1\111\6\152\1\101\13\152\1\153\13\152\1\101\4\152"+
297
    "\1\102\4\153\1\102\4\153\2\102\1\153\1\155\1\147"+
298
    "\1\101\4\152\1\101\4\152\2\101\1\152\1\154\1\146"+
298
    "\1\102\1\156\1\155\1\112\4\155\1\157\1\155\1\160"+
299
    "\1\101\1\155\1\154\1\111\4\154\1\156\1\154\1\157"+
299
    "\2\155\1\112\2\155\1\161\3\155\1\112\60\155\1\162"+
300
    "\2\154\1\111\2\154\1\160\3\154\1\111\60\154\1\161"+
300
    "\1\163\1\164\1\165\4\162\2\166\15\162\6\167\1\162"+
301
    "\1\162\1\163\1\164\4\161\2\165\15\161\6\166\1\161"+
301
    "\13\167\1\162\13\167\1\162\4\167\1\162\4\167\1\162"+
302
    "\13\166\1\161\13\166\1\161\4\166\1\161\4\166\1\161"+
302
    "\1\170\3\167\2\162\1\167\1\102\1\171\1\164\1\165"+
303
    "\1\167\3\166\2\161\1\166\1\101\1\170\1\163\1\164"+
303
    "\1\102\1\112\2\102\2\172\5\102\1\112\6\102\1\112"+
304
    "\1\101\1\111\2\101\2\171\5\101\1\111\6\101\1\111"+
304
    "\6\172\1\102\13\172\1\102\13\172\1\102\4\172\1\102"+
305
    "\6\171\1\101\13\171\1\101\13\171\1\101\4\171\1\101"+
305
    "\4\172\1\102\4\172\2\102\1\172\1\102\1\171\1\164"+
306
    "\4\171\1\101\4\171\2\101\1\171\1\101\1\170\1\163"+
306
    "\1\165\1\102\1\112\2\102\2\172\5\102\1\112\6\102"+
307
    "\1\164\1\101\1\111\2\101\2\171\5\101\1\111\6\101"+
307
    "\1\112\6\172\1\102\13\172\1\173\13\172\1\102\4\172"+
308
    "\1\111\6\171\1\101\13\171\1\172\13\171\1\101\4\171"+
308
    "\1\102\4\172\1\102\4\172\2\102\1\172\1\174\1\175"+
309
    "\1\101\4\171\1\101\4\171\2\101\1\171\1\173\1\174"+
309
    "\1\164\1\176\1\174\1\112\4\174\1\177\1\174\1\200"+
310
    "\1\163\1\175\1\173\1\111\4\173\1\176\1\173\1\177"+
310
    "\1\201\1\174\1\112\6\174\1\112\36\174\1\202\21\174"+
311
    "\1\200\1\173\1\111\6\173\1\111\36\173\1\201\21\173"+
311
    "\1\102\1\203\1\204\2\102\1\112\11\102\1\112\6\102"+
312
    "\1\101\1\202\1\203\2\101\1\111\11\101\1\111\6\101"+
312
    "\1\112\10\102\1\205\1\206\2\102\1\207\11\102\1\207"+
313
    "\1\111\10\101\1\204\1\205\2\101\1\206\11\101\1\206"+
313
    "\1\102\1\206\1\205\27\102\1\103\1\204\2\102\1\112"+
314
    "\1\101\1\205\1\204\27\101\1\102\1\203\2\101\1\111"+
314
    "\11\102\1\112\6\102\1\112\6\102\1\210\52\102\1\103"+
315
    "\11\101\1\111\6\101\1\111\6\101\1\207\52\101\1\102"+
315
    "\1\204\2\102\1\112\2\102\2\211\5\102\1\112\6\102"+
316
    "\1\203\2\101\1\111\2\101\2\210\5\101\1\111\6\101"+
316
    "\1\112\6\211\1\210\13\211\1\102\13\211\1\102\4\211"+
317
    "\1\111\6\210\1\207\13\210\1\101\13\210\1\101\4\210"+
317
    "\1\102\4\211\1\102\4\211\2\102\1\211\1\102\1\103"+
318
    "\1\101\4\210\1\101\4\210\2\101\1\210\1\101\1\102"+
318
    "\1\204\2\102\1\112\11\102\1\112\6\102\1\112\6\102"+
319
    "\1\203\2\101\1\111\11\101\1\111\6\101\1\111\6\101"+
319
    "\1\210\7\102\1\212\6\102\1\213\11\102\1\212\12\102"+
320
    "\1\207\7\101\1\211\6\101\1\212\11\101\1\211\12\101"+
320
    "\1\213\5\102\1\214\1\103\1\204\1\215\1\214\1\112"+
321
    "\1\212\5\101\1\213\1\102\1\203\1\214\1\213\1\111"+
321
    "\4\214\1\216\1\214\1\217\2\214\1\112\6\214\1\112"+
322
    "\4\213\1\215\1\213\1\216\2\213\1\111\6\213\1\111"+
322
    "\6\214\1\220\51\214\1\221\1\103\1\204\1\222\1\221"+
323
    "\6\213\1\217\51\213\1\220\1\102\1\203\1\221\1\220"+
323
    "\1\112\4\221\1\223\1\221\1\224\2\221\1\112\6\221"+
324
    "\1\111\4\220\1\222\1\220\1\223\2\220\1\111\6\220"+
324
    "\1\112\6\221\1\225\51\221\1\226\1\103\1\204\1\227"+
325
    "\1\111\6\220\1\224\51\220\1\225\1\102\1\203\1\226"+
325
    "\1\226\1\112\4\226\1\230\1\226\1\231\2\226\1\112"+
326
    "\1\225\1\111\4\225\1\227\1\225\1\230\2\225\1\111"+
326
    "\6\226\1\112\60\226\1\232\1\233\1\234\104\232\1\235"+
327
    "\6\225\1\111\60\225\1\231\1\232\1\233\104\231\1\234"+
327
    "\1\103\1\204\1\236\1\235\1\112\4\235\1\237\1\235"+
328
    "\1\102\1\203\1\235\1\234\1\111\4\234\1\236\1\234"+
328
    "\1\240\2\235\1\112\6\235\1\112\60\235\1\241\1\242"+
329
    "\1\237\2\234\1\111\6\234\1\111\60\234\1\240\1\241"+
329
    "\1\243\104\241\1\244\1\245\105\244\1\102\1\246\24\102"+
330
    "\1\242\104\240\1\243\1\244\105\243\1\101\1\102\24\101"+
330
    "\1\105\60\102\1\247\1\250\105\247\1\102\1\103\5\102"+
331
    "\1\104\60\101\1\245\1\246\105\245\1\101\1\102\5\101"+
331
    "\1\251\16\102\1\105\60\102\1\252\1\253\3\252\1\254"+
332
    "\1\247\16\101\1\104\60\101\1\250\1\251\3\250\1\252"+
332
    "\6\252\1\255\1\256\1\252\1\254\6\252\1\254\36\252"+
333
    "\6\250\1\253\1\254\1\250\1\252\6\250\1\252\36\250"+
333
    "\1\257\21\252\1\260\1\253\3\260\1\261\4\260\1\262"+
334
    "\1\255\21\250\1\256\1\251\3\256\1\257\4\256\1\260"+
334
    "\2\260\1\263\1\260\1\261\6\260\1\261\36\260\1\264"+
335
    "\2\256\1\261\1\256\1\257\6\256\1\257\36\256\1\262"+
335
    "\21\260\1\102\1\103\24\102\1\105\60\102\1\265\1\266"+
336
    "\21\256\1\263\1\264\10\263\1\265\1\263\1\266\1\267"+
336
    "\10\265\1\267\1\265\1\270\1\271\67\265\1\272\1\265"+
337
    "\67\263\1\270\1\263\1\271\1\272\12\271\1\101\11\271"+
337
    "\1\273\1\274\12\273\1\102\11\273\1\275\60\273\1\276"+
338
    "\1\273\60\271\1\274\1\275\10\274\1\101\13\274\1\276"+
338
    "\1\277\10\276\1\102\13\276\1\300\60\276\1\102\1\103"+
339
    "\60\274\1\101\1\102\12\101\1\277\11\101\1\104\61\101"+
339
    "\12\102\1\301\11\102\1\105\61\102\1\103\10\102\1\302"+
340
    "\1\102\10\101\1\300\13\101\1\104\60\101\1\301\1\302"+
340
    "\13\102\1\105\60\102\1\303\1\304\10\303\1\262\71\303"+
341
    "\10\301\1\260\71\301\1\303\1\304\1\301\1\305\1\306"+
341
    "\1\305\1\306\1\303\1\307\1\310\12\307\1\255\67\307"+
342
    "\12\305\1\253\67\305\1\307\1\304\1\305\1\310\1\311"+
342
    "\1\311\1\306\1\307\1\312\1\313\10\312\1\314\1\312"+
343
    "\10\310\1\312\1\310\1\313\50\310\1\314\17\310\1\315"+
343
    "\1\315\50\312\1\316\17\312\1\317\1\312\1\320\1\321"+
344
    "\1\310\1\316\1\317\12\316\1\101\11\316\1\320\60\316"+
344
    "\12\320\1\102\11\320\1\322\60\320\1\323\1\324\10\323"+
345
    "\1\321\1\322\10\321\1\101\13\321\1\323\60\321\1\101"+
345
    "\1\102\13\323\1\325\60\323\1\102\1\103\12\102\1\326"+
346
    "\1\102\12\101\1\324\11\101\1\104\61\101\1\102\10\101"+
346
    "\11\102\1\105\61\102\1\103\10\102\1\327\13\102\1\105"+
347
    "\1\325\13\101\1\104\60\101\1\326\1\327\10\326\1\260"+
347
    "\60\102\1\330\1\331\10\330\1\262\71\330\1\332\1\333"+
348
    "\71\326\1\330\1\331\1\326\1\332\1\333\12\332\1\253"+
348
    "\1\330\1\334\1\335\12\334\1\255\67\334\1\336\1\333"+
349
    "\67\332\1\334\1\331\1\332\1\71\1\0\11\71\1\0"+
349
    "\1\334\1\72\1\0\11\72\1\0\1\72\1\0\4\72"+
350
    "\1\71\1\0\4\71\1\0\42\71\1\0\21\71\3\0"+
350
    "\1\0\42\72\1\0\21\72\3\0\1\337\1\340\15\0"+
351
    "\1\335\1\336\15\0\1\337\2\0\1\340\66\0\1\341"+
351
    "\1\341\2\0\1\342\66\0\1\343\2\0\2\344\5\0"+
352
    "\2\0\2\342\5\0\1\341\6\0\1\341\6\342\1\0"+
352
    "\1\343\6\0\1\343\6\344\1\0\13\344\1\0\13\344"+
353
    "\13\342\1\0\13\342\1\343\4\342\1\0\4\342\1\0"+
353
    "\1\345\4\344\1\0\4\344\1\0\4\344\2\0\1\344"+
354
    "\4\342\2\0\1\342\1\344\1\0\11\344\1\0\1\344"+
354
    "\1\346\1\0\11\346\1\0\1\346\1\347\1\350\3\346"+
355
    "\1\345\1\346\3\344\1\0\64\344\5\0\1\341\2\0"+
355
    "\1\0\64\346\5\0\1\343\2\0\2\351\5\0\1\343"+
356
    "\2\347\5\0\1\341\6\0\1\341\6\347\1\0\13\347"+
356
    "\6\0\1\343\6\351\1\0\13\351\1\0\13\351\1\0"+
357
    "\1\0\13\347\1\0\4\347\1\0\4\347\1\0\4\347"+
357
    "\4\351\1\0\4\351\1\0\4\351\2\0\1\351\1\346"+
358
    "\2\0\1\347\1\344\1\0\11\344\1\0\2\344\1\350"+
358
    "\1\0\11\346\1\0\2\346\1\352\3\346\1\0\42\346"+
359
    "\3\344\1\0\42\344\1\351\21\344\131\0\1\337\2\0"+
359
    "\1\353\21\346\131\0\1\354\2\0\1\355\104\0\1\356"+
360
    "\1\352\104\0\1\353\72\0\1\354\101\0\1\355\111\0"+
360
    "\72\0\1\357\101\0\1\360\111\0\1\112\11\0\1\112"+
361
    "\1\111\11\0\1\111\6\0\1\111\66\0\4\112\6\0"+
361
    "\6\0\1\112\66\0\4\113\6\0\1\113\6\0\6\113"+
362
    "\1\112\6\0\6\112\1\0\13\112\1\0\13\112\1\0"+
362
    "\1\0\13\113\1\0\13\113\1\0\4\113\1\0\11\113"+
363
    "\4\112\1\0\11\112\2\0\1\112\6\0\4\112\6\0"+
363
    "\2\0\1\113\6\0\4\113\6\0\1\113\6\0\2\113"+
364
    "\1\112\6\0\2\112\2\356\2\112\1\0\13\112\1\0"+
364
    "\2\361\2\113\1\0\13\113\1\0\13\113\1\0\4\113"+
365
    "\13\112\1\0\4\112\1\0\11\112\2\0\1\112\6\0"+
365
    "\1\0\11\113\2\0\1\113\6\0\4\113\6\0\1\113"+
366
    "\4\112\6\0\1\112\6\0\2\112\1\356\1\357\2\112"+
366
    "\6\0\2\113\1\361\1\362\2\113\1\0\13\113\1\0"+
367
    "\1\0\13\112\1\0\13\112\1\0\4\112\1\0\11\112"+
367
    "\13\113\1\0\4\113\1\0\11\113\2\0\1\113\6\0"+
368
    "\2\0\1\112\6\0\4\112\6\0\1\112\6\0\2\112"+
368
    "\4\113\6\0\1\113\6\0\2\113\2\363\2\113\1\0"+
369
    "\2\360\2\112\1\0\13\112\1\0\13\112\1\0\4\112"+
369
    "\13\113\1\0\13\113\1\0\4\113\1\0\11\113\2\0"+
370
    "\1\0\11\112\2\0\1\112\5\0\1\116\11\0\1\116"+
370
    "\1\113\5\0\1\117\11\0\1\117\6\0\1\117\62\0"+
371
    "\6\0\1\116\62\0\1\361\106\0\1\362\112\0\4\123"+
371
    "\1\364\106\0\1\365\112\0\4\124\6\0\1\124\6\0"+
372
    "\6\0\1\123\6\0\6\123\1\0\13\123\1\0\13\123"+
372
    "\6\124\1\0\13\124\1\0\13\124\1\0\4\124\1\0"+
373
    "\1\0\4\123\1\0\11\123\2\0\1\123\1\125\2\0"+
373
    "\11\124\2\0\1\124\1\126\2\0\1\366\1\126\1\0"+
374
    "\1\363\1\125\1\0\4\125\1\0\1\125\1\0\2\125"+
374
    "\4\126\1\0\1\126\1\0\2\126\1\0\6\126\1\0"+
375
    "\1\0\6\125\1\0\61\125\1\0\1\362\1\363\1\125"+
375
    "\61\126\1\0\1\365\1\366\1\126\1\0\4\126\1\0"+
376
    "\1\0\4\125\1\0\1\125\1\0\2\125\1\0\6\125"+
376
    "\1\126\1\0\2\126\1\0\6\126\1\0\60\126\1\367"+
377
    "\1\0\60\125\1\364\1\0\10\364\1\365\2\364\1\366"+
377
    "\1\0\10\367\1\370\2\367\1\371\47\367\1\371\21\367"+
378
    "\47\364\1\366\21\364\1\367\1\0\12\367\1\365\1\370"+
378
    "\1\372\1\0\12\372\1\370\1\373\47\372\1\373\21\372"+
379
    "\47\367\1\370\21\367\2\0\1\133\1\371\111\0\4\135"+
379
    "\2\0\1\134\1\374\111\0\4\136\6\0\1\136\6\0"+
380
    "\6\0\1\135\6\0\6\135\1\0\13\135\1\0\13\135"+
380
    "\6\136\1\0\13\136\1\0\13\136\1\0\4\136\1\0"+
381
    "\1\0\4\135\1\0\11\135\2\0\1\135\1\137\2\0"+
381
    "\11\136\2\0\1\136\1\140\2\0\1\375\1\140\1\0"+
382
    "\1\372\1\137\1\0\4\137\1\0\1\137\1\0\2\137"+
382
    "\4\140\1\0\1\140\1\0\2\140\1\0\6\140\1\0"+
383
    "\1\0\6\137\1\0\61\137\1\0\1\133\1\373\1\137"+
383
    "\61\140\1\0\1\134\1\376\1\140\1\0\4\140\1\0"+
384
    "\1\0\4\137\1\0\1\137\1\0\2\137\1\0\6\137"+
384
    "\1\140\1\0\2\140\1\0\6\140\1\0\60\140\1\142"+
385
    "\1\0\60\137\1\141\1\0\1\374\1\375\1\141\1\374"+
385
    "\1\0\1\377\1\u0100\1\142\1\377\4\142\1\u0101\1\142"+
386
    "\4\141\1\376\1\141\1\374\1\377\1\141\1\374\6\141"+
386
    "\1\377\1\u0102\1\142\1\377\6\142\1\377\36\142\1\u0102"+
387
    "\1\374\36\141\1\377\21\141\1\142\1\0\1\u0100\1\u0101"+
387
    "\21\142\1\143\1\0\1\u0103\1\u0104\1\143\1\u0103\4\143"+
388
    "\1\142\1\u0100\4\142\1\u0100\1\142\1\376\1\u0102\1\142"+
388
    "\1\u0103\1\143\1\u0101\1\u0105\1\143\1\u0103\6\143\1\u0103"+
389
    "\1\u0100\6\142\1\u0100\36\142\1\u0102\21\142\2\0\1\u0103"+
389
    "\36\143\1\u0105\21\143\2\0\1\u0106\126\0\1\354\2\0"+
390
    "\126\0\1\337\2\0\1\u0104\67\0\4\147\6\0\1\147"+
390
    "\1\u0107\67\0\4\150\6\0\1\150\6\0\6\150\1\0"+
391
    "\6\0\6\147\1\0\13\147\1\0\13\147\1\0\4\147"+
391
    "\13\150\1\0\13\150\1\0\4\150\1\0\11\150\2\0"+
392
    "\1\0\11\147\2\0\1\147\2\0\1\u0105\111\0\1\151"+
392
    "\1\150\2\0\1\u0108\111\0\1\152\11\0\1\152\6\0"+
393
    "\11\0\1\151\6\0\1\151\66\0\4\152\6\0\1\152"+
393
    "\1\152\66\0\4\153\6\0\1\153\6\0\6\153\1\0"+
394
    "\6\0\6\152\1\0\13\152\1\0\13\152\1\0\4\152"+
394
    "\13\153\1\0\13\153\1\0\4\153\1\0\11\153\2\0"+
395
    "\1\0\11\152\2\0\1\152\1\154\2\0\1\u0106\1\154"+
395
    "\1\153\1\155\2\0\1\u0109\1\155\1\0\4\155\1\0"+
396
    "\1\0\4\154\1\0\1\154\1\0\2\154\1\0\6\154"+
396
    "\1\155\1\0\2\155\1\0\6\155\1\0\60\155\1\u010a"+
397
    "\1\0\60\154\1\u0107\1\0\10\u0107\1\u0108\2\u0107\1\u0109"+
397
    "\1\0\10\u010a\1\u010b\2\u010a\1\u010c\47\u010a\1\u010c\21\u010a"+
398
    "\47\u0107\1\u0109\21\u0107\1\u010a\1\0\12\u010a\1\u0108\1\u010b"+
398
    "\1\u010d\1\0\12\u010d\1\u010b\1\u010e\47\u010d\1\u010e\21\u010d"+
399
    "\47\u010a\1\u010b\21\u010a\1\154\1\0\1\u0105\1\u0106\1\154"+
399
    "\1\155\1\0\1\u0108\1\u0109\1\155\1\0\4\155\1\0"+
400
    "\1\0\4\154\1\0\1\154\1\0\2\154\1\0\6\154"+
400
    "\1\155\1\0\2\155\1\0\6\155\1\0\60\155\1\162"+
401
    "\1\0\60\154\1\161\3\0\23\161\6\0\1\161\13\0"+
401
    "\3\0\23\162\6\0\1\162\13\0\1\162\13\0\1\162"+
402
    "\1\161\13\0\1\161\4\0\1\161\4\0\1\161\4\0"+
402
    "\4\0\1\162\4\0\1\162\4\0\2\162\4\0\1\337"+
403
    "\2\161\4\0\1\335\16\0\1\337\2\0\1\340\63\0"+
403
    "\16\0\1\354\2\0\1\342\63\0\1\u010f\104\0\1\162"+
404
    "\1\u010c\104\0\1\161\3\0\2\161\4\165\6\161\1\165"+
404
    "\3\0\2\162\4\166\6\162\1\166\6\162\6\167\1\162"+
405
    "\6\161\6\166\1\161\13\166\1\161\13\166\1\161\4\166"+
405
    "\13\167\1\162\13\167\1\162\4\167\1\162\4\167\1\166"+
406
    "\1\161\4\166\1\165\4\166\2\161\1\166\6\0\4\166"+
406
    "\4\167\2\162\1\167\6\0\4\167\6\0\1\167\6\0"+
407
    "\6\0\1\166\6\0\6\166\1\0\13\166\1\0\13\166"+
407
    "\6\167\1\0\13\167\1\0\13\167\1\0\4\167\1\0"+
408
    "\1\0\4\166\1\0\11\166\2\0\1\166\6\0\4\166"+
408
    "\11\167\2\0\1\167\6\0\4\167\6\0\1\167\6\0"+
409
    "\6\0\1\166\6\0\6\166\1\0\7\166\1\u010d\3\166"+
409
    "\6\167\1\0\7\167\1\u0110\3\167\1\0\13\167\1\0"+
410
    "\1\0\13\166\1\0\4\166\1\0\11\166\2\0\1\166"+
410
    "\4\167\1\0\11\167\2\0\1\167\3\0\1\337\4\0"+
411
    "\3\0\1\335\4\0\2\u010e\10\0\1\337\2\0\1\340"+
411
    "\2\u0111\10\0\1\354\2\0\1\342\1\0\6\u0111\1\0"+
412
    "\1\0\6\u010e\1\0\13\u010e\1\0\13\u010e\1\0\4\u010e"+
412
    "\13\u0111\1\0\13\u0111\1\0\4\u0111\1\0\4\u0111\1\0"+
413
    "\1\0\4\u010e\1\0\4\u010e\2\0\1\u010e\6\0\4\171"+
413
    "\4\u0111\2\0\1\u0111\6\0\4\172\6\0\1\172\6\0"+
414
    "\6\0\1\171\6\0\6\171\1\0\13\171\1\0\13\171"+
414
    "\6\172\1\0\13\172\1\0\13\172\1\0\4\172\1\0"+
415
    "\1\0\4\171\1\0\11\171\2\0\1\171\1\173\2\0"+
415
    "\11\172\2\0\1\172\1\174\2\0\1\u0112\1\174\1\0"+
416
    "\1\u010f\1\173\1\0\4\173\1\0\1\173\1\0\2\173"+
416
    "\4\174\1\0\1\174\1\0\2\174\1\0\6\174\1\0"+
417
    "\1\0\6\173\1\0\60\173\3\0\1\335\4\0\2\u0110"+
417
    "\60\174\3\0\1\337\4\0\2\u0113\10\0\1\354\2\0"+
418
    "\10\0\1\337\2\0\1\340\1\0\6\u0110\1\0\13\u0110"+
418
    "\1\342\1\0\6\u0113\1\0\13\u0113\1\0\13\u0113\1\0"+
419
    "\1\0\13\u0110\1\0\4\u0110\1\0\4\u0110\1\0\4\u0110"+
419
    "\4\u0113\1\0\4\u0113\1\0\4\u0113\2\0\1\u0113\1\174"+
420
    "\2\0\1\u0110\1\173\1\0\1\u010c\1\u010f\1\173\1\0"+
420
    "\1\0\1\u010f\1\u0112\1\174\1\0\4\174\1\0\1\174"+
421
    "\4\173\1\0\1\173\1\0\2\173\1\0\6\173\1\0"+
421
    "\1\0\2\174\1\0\6\174\1\0\60\174\1\u0114\1\0"+
422
    "\60\173\1\u0111\1\0\10\u0111\1\u0112\2\u0111\1\u0113\47\u0111"+
422
    "\10\u0114\1\u0115\2\u0114\1\u0116\47\u0114\1\u0116\21\u0114\1\u0117"+
423
    "\1\u0113\21\u0111\1\u0114\1\0\12\u0114\1\u0112\1\u0115\47\u0114"+
423
    "\1\0\12\u0117\1\u0115\1\u0118\47\u0117\1\u0118\21\u0117\1\174"+
424
    "\1\u0115\21\u0114\1\173\2\0\1\u010f\1\173\1\0\4\173"+
424
    "\2\0\1\u0112\1\174\1\0\4\174\1\0\1\174\1\0"+
425
    "\1\0\1\173\1\0\1\173\1\u0116\1\0\6\173\1\0"+
425
    "\1\174\1\u0119\1\0\6\174\1\0\61\174\2\0\1\u0112"+
426
    "\61\173\2\0\1\u010f\1\173\1\0\4\173\1\0\1\173"+
426
    "\1\174\1\0\4\174\1\0\1\174\1\0\1\174\1\u011a"+
427
    "\1\0\1\173\1\u0117\1\0\6\173\1\0\60\173\3\0"+
427
    "\1\0\6\174\1\0\60\174\3\0\1\337\16\0\1\354"+
428
    "\1\335\16\0\1\337\2\0\1\u0104\130\0\1\u0118\2\0"+
428
    "\2\0\1\u0107\130\0\1\u011b\2\0\1\u011b\75\0\1\u011c"+
429
    "\1\u0118\75\0\1\u0119\14\0\1\u0119\63\0\2\u011a\52\0"+
429
    "\14\0\1\u011c\63\0\2\u011d\52\0\23\u011e\1\u011f\63\u011e"+
430
    "\23\u011b\1\u011c\63\u011b\6\0\4\210\6\0\1\210\6\0"+
430
    "\6\0\4\211\6\0\1\211\6\0\6\211\1\0\13\211"+
431
    "\6\210\1\0\13\210\1\0\13\210\1\0\4\210\1\0"+
431
    "\1\0\13\211\1\0\4\211\1\0\11\211\2\0\1\211"+
432
    "\11\210\2\0\1\210\53\0\1\u011d\5\0\1\u011d\116\0"+
432
    "\53\0\1\u0120\5\0\1\u0120\116\0\1\u0121\10\0\1\u0121"+
433
    "\1\u011e\10\0\1\u011e\4\0\1\213\2\0\1\u011f\1\213"+
433
    "\4\0\1\214\2\0\1\u0122\1\214\1\0\4\214\1\0"+
434
    "\1\0\4\213\1\0\1\213\1\0\2\213\1\0\6\213"+
434
    "\1\214\1\0\2\214\1\0\6\214\1\0\60\214\1\u0123"+
435
    "\1\0\60\213\1\u0120\1\0\10\u0120\1\u0121\2\u0120\1\u0122"+
435
    "\1\0\10\u0123\1\u0124\2\u0123\1\u0125\47\u0123\1\u0125\21\u0123"+
436
    "\47\u0120\1\u0122\21\u0120\1\u0123\1\0\1\u0123\2\u0124\1\u0123"+
436
    "\1\u0126\1\0\1\u0126\2\u0127\1\u0126\4\u0127\2\u0126\1\u0128"+
437
    "\4\u0124\2\u0123\1\u0125\1\u0126\1\u0123\4\u0124\1\u0123\11\u0124"+
437
    "\1\u0129\1\u0126\4\u0127\1\u0126\11\u0127\1\u0126\27\u0127\1\u0129"+
438
    "\1\u0123\27\u0124\1\u0126\10\u0124\2\u0123\4\u0124\2\u0123\1\u0124"+
438
    "\10\u0127\2\u0126\4\u0127\2\u0126\1\u0127\1\220\2\u011e\1\u012a"+
439
    "\1\217\2\u011b\1\u0127\1\217\1\u011b\4\217\1\u011b\1\217"+
439
    "\1\220\1\u011e\4\220\1\u011e\1\220\1\u011e\2\220\1\u011e"+
440
    "\1\u011b\2\217\1\u011b\3\217\1\u0128\2\217\1\u011b\60\217"+
440
    "\3\220\1\u012b\2\220\1\u011e\60\220\1\221\2\0\1\u012c"+
441
    "\1\220\2\0\1\u0129\1\220\1\0\4\220\1\0\1\220"+
441
    "\1\221\1\0\4\221\1\0\1\221\1\0\2\221\1\0"+
442
    "\1\0\2\220\1\0\6\220\1\0\60\220\12\u012a\1\u012b"+
442
    "\6\221\1\0\60\221\12\u012d\1\u012e\74\u012d\14\u012f\1\u012e"+
443
    "\74\u012a\14\u012c\1\u012b\72\u012c\1\224\2\u011b\1\u012d\1\224"+
443
    "\72\u012f\1\225\2\u011e\1\u0130\1\225\1\u011e\4\225\1\u011e"+
444
    "\1\u011b\4\224\1\u011b\1\224\1\u011b\2\224\1\u011b\3\224"+
444
    "\1\225\1\u011e\2\225\1\u011e\3\225\1\u0131\2\225\1\u011e"+
445
    "\1\u012e\2\224\1\u011b\60\224\1\225\2\0\1\u012f\1\225"+
445
    "\60\225\1\226\2\0\1\u0132\1\226\1\0\4\226\1\0"+
446
    "\1\0\4\225\1\0\1\225\1\0\2\225\1\0\6\225"+
446
    "\1\226\1\0\2\226\1\0\6\226\1\0\60\226\1\u0133"+
447
    "\1\0\60\225\1\u0130\1\0\10\u0130\1\u0131\2\u0130\1\u0132"+
447
    "\1\0\10\u0133\1\u0134\2\u0133\1\u0135\47\u0133\1\u0135\21\u0133"+
448
    "\47\u0130\1\u0132\21\u0130\1\u0133\1\0\1\u0133\2\u0134\1\u0133"+
448
    "\1\u0136\1\0\1\u0136\2\u0137\1\u0136\4\u0137\2\u0136\1\u0138"+
449
    "\4\u0134\2\u0133\1\u0135\1\u0136\1\u0133\4\u0134\1\u0133\11\u0134"+
449
    "\1\u0139\1\u0136\4\u0137\1\u0136\11\u0137\1\u0136\27\u0137\1\u0139"+
450
    "\1\u0133\27\u0134\1\u0136\10\u0134\2\u0133\4\u0134\2\u0133\1\u0134"+
450
    "\10\u0137\2\u0136\4\u0137\2\u0136\1\u0137\2\232\1\0\106\232"+
451
    "\2\231\1\0\106\231\1\0\17\231\1\u0137\2\231\1\u0138"+
451
    "\1\0\17\232\1\u013a\2\232\1\u013b\61\232\1\235\2\0"+
452
    "\61\231\1\234\2\0\1\u0139\1\234\1\0\4\234\1\0"+
452
    "\1\u013c\1\235\1\0\4\235\1\0\1\235\1\0\2\235"+
453
    "\1\234\1\0\2\234\1\0\6\234\1\0\60\234\1\u013a"+
453
    "\1\0\6\235\1\0\60\235\1\u013d\1\0\10\u013d\1\u013e"+
454
    "\1\0\10\u013a\1\u013b\2\u013a\1\u013c\47\u013a\1\u013c\21\u013a"+
454
    "\2\u013d\1\u013f\47\u013d\1\u013f\21\u013d\1\u0140\1\0\1\u0140"+
455
    "\1\u013d\1\0\1\u013d\2\u013e\1\u013d\4\u013e\2\u013d\1\u013f"+
455
    "\2\u0141\1\u0140\4\u0141\2\u0140\1\u0142\1\u0143\1\u0140\4\u0141"+
456
    "\1\u0140\1\u013d\4\u013e\1\u013d\11\u013e\1\u013d\27\u013e\1\u0140"+
456
    "\1\u0140\11\u0141\1\u0140\27\u0141\1\u0143\10\u0141\2\u0140\4\u0141"+
457
    "\10\u013e\2\u013d\4\u013e\2\u013d\1\u013e\2\240\1\0\106\240"+
457
    "\2\u0140\1\u0141\2\241\1\0\106\241\1\0\17\241\1\u0144"+
458
    "\1\0\17\240\1\u0141\2\240\1\u0142\61\240\7\0\1\u0143"+
458
    "\2\241\1\u0145\61\241\22\0\1\341\2\0\1\355\70\0"+
459
    "\77\0\1\250\1\0\12\250\1\0\1\u0144\47\250\1\u0144"+
459
    "\1\u0146\77\0\1\252\1\0\12\252\1\0\1\u0147\47\252"+
460
    "\21\250\3\0\1\u0145\16\0\1\337\2\0\1\352\61\0"+
460
    "\1\u0147\21\252\3\0\1\u0148\16\0\1\354\2\0\1\355"+
461
    "\1\250\1\0\3\250\1\252\6\250\1\0\1\u0144\1\250"+
461
    "\61\0\1\252\1\0\3\252\1\254\6\252\1\0\1\u0147"+
462
    "\1\252\6\250\1\252\36\250\1\u0144\37\250\1\u0146\106\250"+
462
    "\1\252\1\254\6\252\1\254\36\252\1\u0147\37\252\1\u0149"+
463
    "\1\u0147\70\250\1\256\1\0\10\256\1\0\2\256\1\u0148"+
463
    "\106\252\1\u014a\70\252\1\260\1\0\10\260\1\0\2\260"+
464
    "\47\256\1\u0148\22\256\1\0\3\256\1\257\4\256\1\0"+
464
    "\1\u014b\47\260\1\u014b\22\260\1\0\3\260\1\261\4\260"+
465
    "\2\256\1\u0148\1\256\1\257\6\256\1\257\36\256\1\u0148"+
465
    "\1\0\2\260\1\u014b\1\260\1\261\6\260\1\261\36\260"+
466
    "\37\256\1\u0149\106\256\1\u014a\70\256\12\263\1\0\1\263"+
466
    "\1\u014b\37\260\1\u014c\106\260\1\u014d\70\260\12\265\1\0"+
467
    "\1\0\1\u014b\67\263\1\0\13\263\1\0\1\263\1\0"+
467
    "\1\265\1\0\1\u014e\67\265\1\0\13\265\1\0\1\265"+
468
    "\1\u014b\4\263\1\u014c\62\263\1\0\13\263\1\0\1\263"+
468
    "\1\0\1\u014e\4\265\1\u014f\62\265\1\0\13\265\1\0"+
469
    "\1\0\1\263\1\u014d\66\263\1\u014e\1\263\14\u014f\1\u0150"+
469
    "\1\265\1\0\1\265\1\u0150\66\265\1\u0151\1\265\14\u0152"+
470
    "\106\u014f\1\u0150\5\u014f\1\u0151\2\u014f\1\u0152\61\u014f\12\u0153"+
470
    "\1\u0153\106\u0152\1\u0153\5\u0152\1\u0154\2\u0152\1\u0155\61\u0152"+
471
    "\1\u0154\106\u0153\1\u0154\7\u0153\1\u0155\2\u0153\1\u0156\61\u0153"+
471
    "\12\u0156\1\u0157\106\u0156\1\u0157\7\u0156\1\u0158\2\u0156\1\u0159"+
472
    "\12\301\1\0\71\301\1\u0157\1\0\13\301\1\0\7\301"+
472
    "\61\u0156\12\303\1\0\71\303\1\u015a\1\0\13\303\1\0"+
473
    "\1\u0158\61\301\1\u0157\1\0\13\301\1\u0159\74\301\14\305"+
473
    "\7\303\1\u015b\61\303\1\u015a\1\0\13\303\1\u015c\74\303"+
474
    "\1\0\67\305\1\u015a\1\0\15\305\1\0\5\305\1\u015b"+
474
    "\14\307\1\0\67\307\1\u015d\1\0\15\307\1\0\5\307"+
475
    "\61\305\1\u015a\1\0\15\305\1\u015c\72\305\12\310\1\0"+
475
    "\1\u015e\61\307\1\u015d\1\0\15\307\1\u015f\72\307\12\312"+
476
    "\1\310\1\0\70\310\1\0\13\310\1\0\1\310\1\0"+
476
    "\1\0\1\312\1\0\70\312\1\0\13\312\1\0\1\312"+
477
    "\5\310\1\u015d\62\310\1\0\13\310\1\0\1\310\1\0"+
477
    "\1\0\5\312\1\u0160\62\312\1\0\13\312\1\0\1\312"+
478
    "\1\310\1\u015e\66\310\1\0\1\310\14\u015f\1\u0160\106\u015f"+
478
    "\1\0\1\312\1\u0161\66\312\1\0\1\312\14\u0162\1\u0163"+
479
    "\1\u0160\5\u015f\1\u0161\2\u015f\1\u0162\61\u015f\12\u0163\1\u0164"+
479
    "\106\u0162\1\u0163\5\u0162\1\u0164\2\u0162\1\u0165\61\u0162\12\u0166"+
480
    "\106\u0163\1\u0164\7\u0163\1\u0165\2\u0163\1\u0166\61\u0163\12\326"+
480
    "\1\u0167\106\u0166\1\u0167\7\u0166\1\u0168\2\u0166\1\u0169\61\u0166"+
481
    "\1\0\71\326\1\u0167\1\0\13\326\1\0\7\326\1\u0168"+
481
    "\12\330\1\0\71\330\1\u016a\1\0\13\330\1\0\7\330"+
482
    "\61\326\1\u0167\1\0\13\326\1\u0169\74\326\14\332\1\0"+
482
    "\1\u016b\61\330\1\u016a\1\0\13\330\1\u016c\74\330\14\334"+
483
    "\67\332\1\u016a\1\0\15\332\1\0\5\332\1\u016b\61\332"+
483
    "\1\0\67\334\1\u016d\1\0\15\334\1\0\5\334\1\u016e"+
484
    "\1\u016a\1\0\15\332\1\u016c\72\332\7\0\1\u016d\11\0"+
484
    "\61\334\1\u016d\1\0\15\334\1\u016f\72\334\7\0\1\u0170"+
485
    "\1\u016e\3\0\1\u016f\23\0\1\u0170\44\0\1\u0171\25\0"+
485
    "\11\0\1\u0171\3\0\1\u0172\23\0\1\u0173\44\0\1\u0174"+
486
    "\1\u0172\56\0\1\341\2\0\2\u0173\5\0\1\341\6\0"+
486
    "\25\0\1\u0175\56\0\1\343\2\0\2\u0176\5\0\1\343"+
487
    "\1\341\6\u0173\1\0\13\u0173\1\0\13\u0173\1\0\4\u0173"+
487
    "\6\0\1\343\6\u0176\1\0\13\u0176\1\0\13\u0176\1\0"+
488
    "\1\0\4\u0173\1\0\4\u0173\2\0\1\u0173\1\u0174\1\0"+
488
    "\4\u0176\1\0\4\u0176\1\0\4\u0176\2\0\1\u0176\1\u0177"+
489
    "\3\u0174\1\u0175\4\342\1\u0174\1\0\3\u0174\1\u0175\1\342"+
489
    "\1\0\3\u0177\1\u0178\4\344\1\u0177\1\0\3\u0177\1\u0178"+
490
    "\1\u0174\1\0\3\u0174\1\u0175\6\342\1\u0174\13\342\1\u0174"+
490
    "\1\344\1\u0177\1\0\3\u0177\1\u0178\6\344\1\u0177\13\344"+
491
    "\13\342\1\u0174\4\342\1\u0176\11\342\2\u0174\1\342\20\0"+
491
    "\1\u0177\13\344\1\u0177\4\344\1\u0179\11\344\2\u0177\1\344"+
492
    "\1\u0177\7\0\1\u0178\73\0\1\345\71\0\105\346\1\u0179"+
492
    "\20\0\1\u017a\7\0\1\u017b\73\0\1\347\71\0\105\350"+
493
    "\1\346\1\u0174\1\0\3\u0174\1\u0175\4\347\1\u0174\1\0"+
493
    "\1\u017c\1\350\1\u0177\1\0\3\u0177\1\u0178\4\351\1\u0177"+
494
    "\3\u0174\1\u0175\1\347\1\u0174\1\0\3\u0174\1\u0175\6\347"+
494
    "\1\0\3\u0177\1\u0178\1\351\1\u0177\1\0\3\u0177\1\u0178"+
495
    "\1\u0174\13\347\1\u0174\13\347\1\u0174\4\347\1\u017a\11\347"+
495
    "\6\351\1\u0177\13\351\1\u0177\13\351\1\u0177\4\351\1\u017d"+
496
    "\2\u0174\1\347\105\350\1\u017b\1\350\65\0\1\351\56\0"+
496
    "\11\351\2\u0177\1\351\105\352\1\u017e\1\352\65\0\1\353"+
497
    "\1\u0172\53\0\1\u017c\106\0\1\u017d\112\0\4\112\6\0"+
497
    "\30\0\1\u0170\15\0\1\u0172\23\0\1\u0173\72\0\1\u0175"+
498
    "\1\112\6\0\4\112\2\u017e\1\0\13\112\1\0\13\112"+
498
    "\53\0\1\u017f\106\0\1\u0180\112\0\4\113\6\0\1\113"+
499
    "\1\0\4\112\1\0\11\112\2\0\1\112\6\0\4\112"+
499
    "\6\0\4\113\2\u0181\1\0\13\113\1\0\13\113\1\0"+
500
    "\6\0\1\112\6\0\4\112\1\u017e\1\u017f\1\0\13\112"+
500
    "\4\113\1\0\11\113\2\0\1\113\6\0\4\113\6\0"+
501
    "\1\0\13\112\1\0\4\112\1\0\11\112\2\0\1\112"+
501
    "\1\113\6\0\4\113\1\u0181\1\u0182\1\0\13\113\1\0"+
502
    "\6\0\4\112\6\0\1\112\6\0\6\112\1\0\13\112"+
502
    "\13\113\1\0\4\113\1\0\11\113\2\0\1\113\6\0"+
503
    "\1\0\2\112\1\u0180\10\112\1\0\4\112\1\0\6\112"+
503
    "\4\113\6\0\1\113\6\0\6\113\1\0\13\113\1\0"+
504
    "\1\u0180\2\112\2\0\1\112\12\364\1\365\3\364\1\0"+
504
    "\2\113\1\u0183\10\113\1\0\4\113\1\0\6\113\1\u0183"+
505
    "\70\364\14\367\1\365\1\367\1\0\70\367\1\374\1\0"+
505
    "\2\113\2\0\1\113\12\367\1\370\3\367\1\0\70\367"+
506
    "\10\374\1\376\2\374\1\u0181\47\374\1\u0181\21\374\1\141"+
506
    "\14\372\1\370\1\372\1\0\70\372\1\377\1\0\10\377"+
507
    "\2\374\1\375\1\141\1\374\4\141\1\376\1\141\1\374"+
507
    "\1\u0101\2\377\1\u0184\47\377\1\u0184\21\377\1\142\2\377"+
508
    "\1\141\1\137\1\374\6\141\1\374\60\141\1\u0100\1\0"+
508
    "\1\u0100\1\142\1\377\4\142\1\u0101\1\142\1\377\1\142"+
509
    "\12\u0100\1\376\1\u0182\47\u0100\1\u0182\21\u0100\1\142\2\u0100"+
509
    "\1\140\1\377\6\142\1\377\60\142\1\u0103\1\0\12\u0103"+
510
    "\1\u0101\1\142\1\u0100\4\142\1\u0100\1\142\1\376\1\142"+
510
    "\1\u0101\1\u0185\47\u0103\1\u0185\21\u0103\1\143\2\u0103\1\u0104"+
511
    "\1\137\1\u0100\6\142\1\u0100\60\142\12\u0107\1\u0108\3\u0107"+
511
    "\1\143\1\u0103\4\143\1\u0103\1\143\1\u0101\1\143\1\140"+
512
    "\1\0\70\u0107\14\u010a\1\u0108\1\u010a\1\0\70\u010a\6\0"+
512
    "\1\u0103\6\143\1\u0103\60\143\12\u010a\1\u010b\3\u010a\1\0"+
513
    "\4\166\6\0\1\166\6\0\6\166\1\0\13\166\1\0"+
513
    "\70\u010a\14\u010d\1\u010b\1\u010d\1\0\70\u010d\6\0\4\167"+
514
    "\13\166\1\0\4\166\1\0\6\166\1\u0183\2\166\2\0"+
514
    "\6\0\1\167\6\0\6\167\1\0\13\167\1\0\13\167"+
515
    "\1\166\6\0\4\u010e\6\0\1\u010e\6\0\6\u010e\1\0"+
515
    "\1\0\4\167\1\0\6\167\1\u0186\2\167\2\0\1\167"+
516
    "\13\u010e\1\0\13\u010e\1\0\4\u010e\1\0\11\u010e\2\0"+
516
    "\6\0\4\u0111\6\0\1\u0111\6\0\6\u0111\1\0\13\u0111"+
517
    "\1\u010e\6\0\4\u0110\6\0\1\u0110\6\0\6\u0110\1\0"+
517
    "\1\0\13\u0111\1\0\4\u0111\1\0\11\u0111\2\0\1\u0111"+
518
    "\13\u0110\1\0\13\u0110\1\0\4\u0110\1\0\11\u0110\2\0"+
518
    "\6\0\4\u0113\6\0\1\u0113\6\0\6\u0113\1\0\13\u0113"+
519
    "\1\u0110\12\u0111\1\u0112\3\u0111\1\0\70\u0111\14\u0114\1\u0112"+
519
    "\1\0\13\u0113\1\0\4\u0113\1\0\11\u0113\2\0\1\u0113"+
520
    "\1\u0114\1\0\70\u0114\1\u0184\2\u0185\1\u0186\1\u0184\1\u0185"+
520
    "\12\u0114\1\u0115\3\u0114\1\0\70\u0114\14\u0117\1\u0115\1\u0117"+
521
    "\4\u0184\1\u0185\1\u0184\1\u0185\2\u0184\1\u0185\6\u0184\1\u0185"+
521
    "\1\0\70\u0117\1\u0187\2\u0188\1\u0189\1\u0187\1\u0188\4\u0187"+
522
    "\56\u0184\1\173\1\u0184\1\u0187\2\u0188\1\u0189\1\u0187\1\u0188"+
522
    "\1\u0188\1\u0187\1\u0188\2\u0187\1\u0188\6\u0187\1\u0188\56\u0187"+
523
    "\4\u0187\1\u0188\1\u0187\1\u0188\2\u0187\1\u0188\6\u0187\1\u0188"+
523
    "\1\174\1\u0187\1\u018a\2\u018b\1\u018c\1\u018a\1\u018b\4\u018a"+
524
    "\56\u0187\1\173\1\u0187\36\0\1\u018a\35\0\1\u018a\53\0"+
524
    "\1\u018b\1\u018a\1\u018b\2\u018a\1\u018b\6\u018a\1\u018b\56\u018a"+
525
    "\1\u018b\14\0\1\u018b\73\0\1\u018c\11\0\1\u018c\76\0"+
525
    "\1\174\1\u018a\36\0\1\u018d\35\0\1\u018d\53\0\1\u018e"+
526
    "\1\u018d\20\0\1\u018d\113\0\1\u018e\7\0\1\u018e\3\0"+
526
    "\14\0\1\u018e\73\0\1\u018f\11\0\1\u018f\76\0\1\u0190"+
527
    "\12\u0120\1\u0121\3\u0120\1\0\70\u0120\1\u0123\1\0\12\u0123"+
527
    "\20\0\1\u0190\113\0\1\u0191\7\0\1\u0191\3\0\12\u0123"+
528
    "\1\u0121\1\u018f\47\u0123\1\u018f\22\u0123\1\0\12\u0123\1\u0190"+
528
    "\1\u0124\3\u0123\1\0\70\u0123\1\u0126\1\0\12\u0126\1\u0124"+
529
    "\1\u018f\47\u0123\1\u018f\21\u0123\14\0\1\u0191\72\0\14\u0123"+
529
    "\1\u0192\47\u0126\1\u0192\22\u0126\1\0\12\u0126\1\u0193\1\u0192"+
530
    "\1\u0190\1\u0123\1\0\70\u0123\12\u0130\1\u0131\3\u0130\1\0"+
530
    "\47\u0126\1\u0192\21\u0126\14\0\1\u0194\72\0\14\u0126\1\u0193"+
531
    "\70\u0130\1\u0133\1\0\12\u0133\1\u0131\1\u0192\47\u0133\1\u0192"+
531
    "\1\u0126\1\0\70\u0126\12\u0133\1\u0134\3\u0133\1\0\70\u0133"+
532
    "\22\u0133\1\0\12\u0133\1\u0193\1\u0192\47\u0133\1\u0192\21\u0133"+
532
    "\1\u0136\1\0\12\u0136\1\u0134\1\u0195\47\u0136\1\u0195\22\u0136"+
533
    "\14\0\1\u0194\72\0\14\u0133\1\u0193\1\u0133\1\0\70\u0133"+
533
    "\1\0\12\u0136\1\u0196\1\u0195\47\u0136\1\u0195\21\u0136\14\0"+
534
    "\2\231\1\0\4\231\1\u0195\11\231\1\u0196\3\231\1\u0197"+
534
    "\1\u0197\72\0\14\u0136\1\u0196\1\u0136\1\0\70\u0136\2\232"+
535
    "\23\231\1\u0198\37\231\1\0\32\231\1\u0199\51\231\12\u013a"+
535
    "\1\0\4\232\1\u0198\15\232\1\u0199\23\232\1\u019a\37\232"+
536
    "\1\u013b\3\u013a\1\0\70\u013a\1\u013d\1\0\12\u013d\1\u013b"+
536
    "\1\0\32\232\1\u019b\51\232\12\u013d\1\u013e\3\u013d\1\0"+
537
    "\1\u019a\47\u013d\1\u019a\22\u013d\1\0\12\u013d\1\u019b\1\u019a"+
537
    "\70\u013d\1\u0140\1\0\12\u0140\1\u013e\1\u019c\47\u0140\1\u019c"+
538
    "\47\u013d\1\u019a\21\u013d\14\0\1\u019c\72\0\14\u013d\1\u019b"+
538
    "\22\u0140\1\0\12\u0140\1\u019d\1\u019c\47\u0140\1\u019c\21\u0140"+
539
    "\1\u013d\1\0\70\u013d\2\240\1\0\4\240\1\u019d\11\240"+
539
    "\14\0\1\u019e\72\0\14\u0140\1\u019d\1\u0140\1\0\70\u0140"+
540
    "\1\u019e\3\240\1\u019f\23\240\1\u01a0\37\240\1\0\32\240"+
540
    "\2\241\1\0\4\241\1\u019f\15\241\1\u01a0\23\241\1\u01a1"+
541
    "\1\u01a1\51\240\22\0\1\u01a2\64\0\16\250\1\0\70\250"+
541
    "\37\241\1\0\32\241\1\u01a2\51\241\22\0\1\u01a3\64\0"+
542
    "\16\256\1\0\70\256\12\263\1\0\1\263\1\0\1\263"+
542
    "\16\252\1\0\70\252\16\260\1\0\70\260\12\265\1\0"+
543
    "\1\u01a3\66\263\1\u014e\10\263\1\u01a4\2\263\1\0\1\263"+
543
    "\1\265\1\0\1\265\1\u01a4\66\265\1\u0151\10\265\1\u01a5"+
544
    "\1\0\1\u014b\3\263\1\u01a5\3\263\1\u01a6\23\263\1\u01a7"+
544
    "\2\265\1\0\1\265\1\0\1\u014e\7\265\1\u01a6\23\265"+
545
    "\33\263\1\0\1\263\12\u01a3\1\0\1\u01a3\1\0\70\u01a3"+
545
    "\1\u01a7\33\265\1\0\1\265\12\u01a4\1\0\1\u01a4\1\0"+
546
    "\1\0\1\u01a3\12\u014e\1\0\1\u014e\1\0\1\u01a8\67\u014e"+
546
    "\70\u01a4\1\0\1\u01a4\12\u0151\1\0\1\u0151\1\0\1\u01a8"+
547
    "\1\0\1\u014e\7\u014f\1\u01a9\4\u014f\1\u0150\4\u014f\1\u01aa"+
547
    "\67\u0151\1\0\1\u0151\7\u0152\1\u01a9\4\u0152\1\u0153\10\u0152"+
548
    "\3\u014f\1\u01ab\23\u014f\1\u01ac\51\u014f\1\u0150\20\u014f\1\u01ad"+
548
    "\1\u01aa\23\u0152\1\u01ab\51\u0152\1\u0153\20\u0152\1\u01ac\51\u0152"+
549
    "\51\u014f\7\u0153\1\u01ae\2\u0153\1\u0154\6\u0153\1\u01af\3\u0153"+
549
    "\7\u0156\1\u01ad\2\u0156\1\u0157\12\u0156\1\u01ae\23\u0156\1\u01af"+
550
    "\1\u01b0\23\u0153\1\u01b1\47\u0153\1\u0154\22\u0153\1\u01b2\51\u0153"+
550
    "\47\u0156\1\u0157\22\u0156\1\u01b0\51\u0156\12\303\1\0\103\303"+
551
    "\12\301\1\0\103\301\1\u01b3\2\301\1\0\6\301\1\u01b4"+
551
    "\1\u01b1\2\303\1\0\12\303\1\u01b2\23\303\1\u01b3\32\303"+
552
    "\3\301\1\u01b5\23\301\1\u01b6\32\301\1\u0157\1\0\1\301"+
552
    "\1\u015a\1\0\1\303\104\u01b4\1\u01b5\2\u01b4\14\307\1\0"+
553
    "\104\u01b7\1\u01b8\2\u01b7\14\305\1\0\101\305\1\u01b9\4\305"+
553
    "\101\307\1\u01b6\4\307\1\0\10\307\1\u01b7\23\307\1\u01b8"+
554
    "\1\0\4\305\1\u01ba\3\305\1\u01bb\23\305\1\u01bc\32\305"+
554
    "\32\307\1\u015d\1\0\1\307\104\u01b9\1\u01ba\2\u01b9\7\312"+
555
    "\1\u015a\1\0\1\305\104\u01bd\1\u01be\2\u01bd\7\310\1\u01bf"+
555
    "\1\u01bb\2\312\1\0\1\312\1\0\10\312\1\u01bc\23\312"+
556
    "\2\310\1\0\1\310\1\0\4\310\1\u01c0\3\310\1\u01c1"+
556
    "\1\u01bd\33\312\1\0\1\312\7\u0162\1\u01be\4\u0162\1\u0163"+
557
    "\23\310\1\u01c2\33\310\1\0\1\310\7\u015f\1\u01c3\4\u015f"+
557
    "\10\u0162\1\u01bf\23\u0162\1\u01c0\51\u0162\1\u0163\20\u0162\1\u01c1"+
558
    "\1\u0160\4\u015f\1\u01c4\3\u015f\1\u01c5\23\u015f\1\u01c6\51\u015f"+
558
    "\51\u0162\7\u0166\1\u01c2\2\u0166\1\u0167\12\u0166\1\u01c3\23\u0166"+
559
    "\1\u0160\20\u015f\1\u01c7\51\u015f\7\u0163\1\u01c8\2\u0163\1\u0164"+
559
    "\1\u01c4\47\u0166\1\u0167\22\u0166\1\u01c5\51\u0166\12\330\1\0"+
560
    "\6\u0163\1\u01c9\3\u0163\1\u01ca\23\u0163\1\u01cb\47\u0163\1\u0164"+
560
    "\103\330\1\u01c6\2\330\1\0\12\330\1\u01c7\23\330\1\u01c8"+
561
    "\22\u0163\1\u01cc\51\u0163\12\326\1\0\103\326\1\u01cd\2\326"+
561
    "\32\330\1\u016a\1\0\1\330\104\u01c9\1\u01ca\2\u01c9\14\334"+
562
    "\1\0\6\326\1\u01ce\3\326\1\u01cf\23\326\1\u01d0\32\326"+
562
    "\1\0\101\334\1\u01cb\4\334\1\0\10\334\1\u01cc\23\334"+
563
    "\1\u0167\1\0\1\326\104\u01d1\1\u01d2\2\u01d1\14\332\1\0"+
563
    "\1\u01cd\32\334\1\u016d\1\0\1\334\104\u01ce\1\u01cf\2\u01ce"+
564
    "\101\332\1\u01d3\4\332\1\0\4\332\1\u01d4\3\332\1\u01d5"+
564
    "\7\0\1\u01d0\106\0\1\u01d1\135\0\1\u01d2\50\0\1\u0176"+
565
    "\23\332\1\u01d6\32\332\1\u016a\1\0\1\332\104\u01d7\1\u01d8"+
565
    "\1\0\11\u0176\1\0\6\u0176\1\0\64\u0176\1\u0177\1\0"+
566
    "\2\u01d7\7\0\1\u01d9\106\0\1\u01da\135\0\1\u01db\50\0"+
566
    "\11\u0177\1\0\6\u0177\1\0\47\u0177\1\0\15\u0177\1\0"+
567
    "\1\u0173\1\0\11\u0173\1\0\6\u0173\1\0\64\u0173\1\u0174"+
567
    "\3\u0177\1\u0178\5\u0177\1\0\3\u0177\1\u0178\2\u0177\1\0"+
568
    "\1\0\11\u0174\1\0\6\u0174\1\0\47\u0174\1\0\15\u0174"+
568
    "\3\u0177\1\u0178\43\u0177\1\u01d3\14\u0177\20\0\1\u017a\51\0"+
569
    "\1\0\3\u0174\1\u0175\5\u0174\1\0\3\u0174\1\u0175\2\u0174"+
569
    "\1\u01d4\34\0\1\u01d5\15\0\3\u01d5\2\0\1\u01d5\11\0"+
570
    "\1\0\3\u0174\1\u0175\43\u0174\1\u01dc\14\u0174\20\0\1\u0177"+
570
    "\1\u01d5\1\0\2\u01d5\7\0\1\u01d5\2\0\2\u01d5\6\0"+
571
    "\51\0\1\u01dd\34\0\1\u01de\15\0\3\u01de\2\0\1\u01de"+
571
    "\1\u01d5\11\0\1\113\1\u01d6\2\113\6\0\1\113\6\0"+
572
    "\11\0\1\u01de\1\0\2\u01de\7\0\1\u01de\2\0\2\u01de"+
572
    "\6\113\1\0\13\113\1\0\13\113\1\0\4\113\1\0"+
573
    "\6\0\1\u01de\11\0\1\112\1\u01df\2\112\6\0\1\112"+
573
    "\11\113\2\0\1\113\6\0\4\113\6\0\1\113\6\0"+
574
    "\6\0\6\112\1\0\13\112\1\0\13\112\1\0\4\112"+
574
    "\6\113\1\0\11\113\1\u01d7\1\113\1\0\1\u01d7\12\113"+
575
    "\1\0\11\112\2\0\1\112\6\0\4\112\6\0\1\112"+
575
    "\1\0\4\113\1\0\11\113\2\0\1\113\12\377\1\u0101"+
576
    "\6\0\6\112\1\0\11\112\1\u01e0\1\112\1\0\1\u01e0"+
576
    "\3\377\1\0\70\377\14\u0103\1\u0101\1\u0103\1\0\70\u0103"+
577
    "\12\112\1\0\4\112\1\0\11\112\2\0\1\112\12\374"+
577
    "\6\0\3\167\1\u01d8\6\0\1\167\6\0\6\167\1\0"+
578
    "\1\376\3\374\1\0\70\374\14\u0100\1\376\1\u0100\1\0"+
578
    "\13\167\1\0\13\167\1\0\4\167\1\0\11\167\2\0"+
579
    "\70\u0100\6\0\3\166\1\u01e1\6\0\1\166\6\0\6\166"+
579
    "\1\167\1\u0187\2\u0188\1\u0189\1\u0187\1\u0188\4\u0187\1\u0188"+
580
    "\1\0\13\166\1\0\13\166\1\0\4\166\1\0\11\166"+
580
    "\1\u0187\1\u0188\2\u0187\1\u0188\6\u0187\1\u0188\56\u0187\1\u01d9"+
581
    "\2\0\1\166\1\u0184\2\u0185\1\u0186\1\u0184\1\u0185\4\u0184"+
581
    "\1\u0187\105\u0188\1\u01da\1\u0188\1\u018a\2\u018b\1\u018c\1\u018a"+
582
    "\1\u0185\1\u0184\1\u0185\2\u0184\1\u0185\6\u0184\1\u0185\56\u0184"+
582
    "\1\u018b\4\u018a\1\u018b\1\u018a\1\u018b\2\u018a\1\u018b\6\u018a"+
583
    "\1\u01e2\1\u0184\105\u0185\1\u01e3\1\u0185\1\u0187\2\u0188\1\u0189"+
583
    "\1\u018b\56\u018a\1\u01d9\1\u018a\105\u018b\1\u01db\1\u018b\41\0"+
584
    "\1\u0187\1\u0188\4\u0187\1\u0188\1\u0187\1\u0188\2\u0187\1\u0188"+
584
    "\1\u01dc\14\0\1\u01dc\63\0\2\u01dd\103\0\2\u01de\115\0"+
585
    "\6\u0187\1\u0188\56\u0187\1\u01e2\1\u0187\105\u0188\1\u01e4\1\u0188"+
585
    "\1\u01df\14\0\1\u01df\63\0\2\u01e0\52\0\14\u0126\1\u0124"+
586
    "\41\0\1\u01e5\14\0\1\u01e5\63\0\2\u01e6\103\0\2\u01e7"+
586
    "\1\u0126\1\0\70\u0126\3\0\2\u01e1\1\0\4\u01e1\2\0"+
587
    "\115\0\1\u01e8\14\0\1\u01e8\63\0\2\u01e9\52\0\14\u0123"+
587
    "\1\u0128\1\u01e1\1\0\4\u01e1\1\0\11\u01e1\1\0\40\u01e1"+
588
    "\1\u0121\1\u0123\1\0\70\u0123\3\0\2\u01ea\1\0\4\u01ea"+
588
    "\2\0\4\u01e1\2\0\1\u01e1\14\u0136\1\u0134\1\u0136\1\0"+
589
    "\2\0\1\u0125\1\u01ea\1\0\4\u01ea\1\0\11\u01ea\1\0"+
589
    "\70\u0136\3\0\2\u01e2\1\0\4\u01e2\2\0\1\u0138\1\u01e2"+
590
    "\40\u01ea\2\0\4\u01ea\2\0\1\u01ea\14\u0133\1\u0131\1\u0133"+
590
    "\1\0\4\u01e2\1\0\11\u01e2\1\0\40\u01e2\2\0\4\u01e2"+
591
    "\1\0\70\u0133\3\0\2\u01eb\1\0\4\u01eb\2\0\1\u0135"+
591
    "\2\0\1\u01e2\2\232\1\0\4\232\1\u01e3\101\232\1\0"+
592
    "\1\u01eb\1\0\4\u01eb\1\0\11\u01eb\1\0\40\u01eb\2\0"+
592
    "\33\232\1\u01e4\50\232\14\u0140\1\u013e\1\u0140\1\0\70\u0140"+
593
    "\4\u01eb\2\0\1\u01eb\2\231\1\0\4\231\1\u01ec\101\231"+
593
    "\3\0\2\u01e5\1\0\4\u01e5\2\0\1\u0142\1\u01e5\1\0"+
594
    "\1\0\33\231\1\u01ed\50\231\14\u013d\1\u013b\1\u013d\1\0"+
594
    "\4\u01e5\1\0\11\u01e5\1\0\40\u01e5\2\0\4\u01e5\2\0"+
595
    "\70\u013d\3\0\2\u01ee\1\0\4\u01ee\2\0\1\u013f\1\u01ee"+
595
    "\1\u01e5\2\241\1\0\4\241\1\u01e6\101\241\1\0\33\241"+
596
    "\1\0\4\u01ee\1\0\11\u01ee\1\0\40\u01ee\2\0\4\u01ee"+
596
    "\1\u01e7\50\241\2\0\1\u01e8\104\0\7\265\1\u01e9\2\265"+
597
    "\2\0\1\u01ee\2\240\1\0\4\240\1\u01ef\101\240\1\0"+
597
    "\1\0\1\265\1\0\1\u014e\67\265\1\0\1\265\12\u0151"+
598
    "\33\240\1\u01f0\50\240\2\0\1\u01f1\104\0\7\263\1\u01f2"+
598
    "\1\0\1\u0151\1\0\1\u0151\1\0\70\u0151\7\u0152\1\u01ea"+
599
    "\2\263\1\0\1\263\1\0\1\u014b\67\263\1\0\1\263"+
599
    "\4\u0152\1\u0153\106\u0152\1\u0153\21\u0152\1\u01eb\50\u0152\7\u0156"+
600
    "\12\u014e\1\0\1\u014e\1\0\1\u014e\1\0\70\u014e\7\u014f"+
600
    "\1\u01ec\2\u0156\1\u0157\106\u0156\1\u0157\23\u0156\1\u01ed\50\u0156"+
601
    "\1\u01f3\4\u014f\1\u0150\106\u014f\1\u0150\21\u014f\1\u01f4\50\u014f"+
601
    "\7\303\1\u01ee\2\303\1\0\71\303\1\u015a\1\0\1\303"+
602
    "\7\u0153\1\u01f5\2\u0153\1\u0154\106\u0153\1\u0154\23\u0153\1\u01f6"+
602
    "\12\u01ef\1\u01f0\72\u01ef\1\0\1\u01ef\7\307\1\u01f1\4\307"+
603
    "\50\u0153\7\301\1\u01f7\2\301\1\0\71\301\1\u0157\1\0"+
603
    "\1\0\67\307\1\u015d\1\0\1\307\14\u01f2\1\u01f0\70\u01f2"+
604
    "\1\301\12\u01f8\1\u01f9\72\u01f8\1\0\1\u01f8\7\305\1\u01fa"+
604
    "\1\0\1\u01f2\7\312\1\u01f3\2\312\1\0\1\312\1\0"+
605
    "\4\305\1\0\67\305\1\u015a\1\0\1\305\14\u01fb\1\u01f9"+
605
    "\70\312\1\0\1\312\7\u0162\1\u01f4\4\u0162\1\u0163\106\u0162"+
606
    "\70\u01fb\1\0\1\u01fb\7\310\1\u01fc\2\310\1\0\1\310"+
606
    "\1\u0163\21\u0162\1\u01f5\50\u0162\7\u0166\1\u01f6\2\u0166\1\u0167"+
607
    "\1\0\70\310\1\0\1\310\7\u015f\1\u01fd\4\u015f\1\u0160"+
607
    "\106\u0166\1\u0167\23\u0166\1\u01f7\50\u0166\7\330\1\u01f8\2\330"+
608
    "\106\u015f\1\u0160\21\u015f\1\u01fe\50\u015f\7\u0163\1\u01ff\2\u0163"+
608
    "\1\0\71\330\1\u016a\1\0\1\330\12\u01f9\1\u01fa\72\u01f9"+
609
    "\1\u0164\106\u0163\1\u0164\23\u0163\1\u0200\50\u0163\7\326\1\u0201"+
609
    "\1\0\1\u01f9\7\334\1\u01fb\4\334\1\0\67\334\1\u016d"+
610
    "\2\326\1\0\71\326\1\u0167\1\0\1\326\12\u0202\1\u0203"+
610
    "\1\0\1\334\14\u01fc\1\u01fa\70\u01fc\1\0\1\u01fc\37\0"+
611
    "\72\u0202\1\0\1\u0202\7\332\1\u0204\4\332\1\0\67\332"+
611
    "\1\u01fd\141\0\1\u01d3\34\0\1\u01d5\15\0\3\u01d5\2\0"+
612
    "\1\u016a\1\0\1\332\14\u0205\1\u0203\70\u0205\1\0\1\u0205"+
612
    "\1\u01d5\11\0\1\u01d5\1\0\2\u01d5\7\0\1\u01d5\1\0"+
613
    "\37\0\1\u0206\141\0\1\u01dc\34\0\1\u01de\15\0\3\u01de"+
613
    "\1\u01d4\2\u01d5\6\0\1\u01d5\11\0\4\113\6\0\1\113"+
614
    "\2\0\1\u01de\11\0\1\u01de\1\0\2\u01de\7\0\1\u01de"+
614
    "\6\0\6\113\1\0\7\113\1\u01fe\3\113\1\0\13\113"+
615
    "\1\0\1\u01dd\2\u01de\6\0\1\u01de\11\0\4\112\6\0"+
615
    "\1\0\4\113\1\0\11\113\2\0\1\113\6\0\4\113"+
616
    "\1\112\6\0\6\112\1\0\7\112\1\u0207\3\112\1\0"+
616
    "\6\0\1\113\6\0\6\113\1\0\6\113\1\u01ff\4\113"+
617
    "\13\112\1\0\4\112\1\0\11\112\2\0\1\112\6\0"+
617
    "\1\0\13\113\1\0\1\113\1\u01ff\2\113\1\0\11\113"+
618
    "\4\112\6\0\1\112\6\0\6\112\1\0\6\112\1\u0208"+
618
    "\2\0\1\113\6\0\4\167\6\0\1\167\6\0\6\167"+
619
    "\4\112\1\0\13\112\1\0\1\112\1\u0208\2\112\1\0"+
619
    "\1\0\6\167\1\u0200\4\167\1\0\6\167\1\u0201\4\167"+
620
    "\11\112\2\0\1\112\6\0\4\166\6\0\1\166\6\0"+
620
    "\1\0\4\167\1\0\11\167\2\0\1\167\53\0\1\u0202"+
621
    "\6\166\1\0\6\166\1\u0209\4\166\1\0\6\166\1\u020a"+
621
    "\5\0\1\u0202\73\0\1\u0203\14\0\1\u0203\66\0\1\u0204"+
622
    "\4\166\1\0\4\166\1\0\11\166\2\0\1\166\53\0"+
622
    "\11\0\1\u0204\74\0\1\u0205\11\0\1\u0205\77\0\1\u0206"+
623
    "\1\u020b\5\0\1\u020b\73\0\1\u020c\14\0\1\u020c\66\0"+
623
    "\14\0\1\u0206\23\0\2\232\1\0\34\232\1\u0207\47\232"+
624
    "\1\u020d\11\0\1\u020d\74\0\1\u020e\11\0\1\u020e\77\0"+
624
    "\2\241\1\0\34\241\1\u0208\47\241\14\u0152\1\u0153\22\u0152"+
625
    "\1\u020f\14\0\1\u020f\23\0\2\231\1\0\34\231\1\u0210"+
625
    "\1\u0209\47\u0152\12\u0156\1\u0157\24\u0156\1\u020a\47\u0156\12\u01ef"+
626
    "\47\231\2\240\1\0\34\240\1\u0211\47\240\14\u014f\1\u0150"+
626
    "\1\u01b4\71\u01ef\1\u020b\1\u01b4\1\u01ef\14\u01f2\1\u01b9\67\u01f2"+
627
    "\22\u014f\1\u0212\47\u014f\12\u0153\1\u0154\24\u0153\1\u0213\47\u0153"+
627
    "\1\u020c\1\u01b9\1\u01f2\14\u0162\1\u0163\22\u0162\1\u020d\47\u0162"+
628
    "\12\u01f8\1\u01b7\71\u01f8\1\u0214\1\u01b7\1\u01f8\14\u01fb\1\u01bd"+
628
    "\12\u0166\1\u0167\24\u0166\1\u020e\47\u0166\12\u01f9\1\u01c9\71\u01f9"+
629
    "\67\u01fb\1\u0215\1\u01bd\1\u01fb\14\u015f\1\u0160\22\u015f\1\u0216"+
629
    "\1\u020f\1\u01c9\1\u01f9\14\u01fc\1\u01ce\67\u01fc\1\u0210\1\u01ce"+
630
    "\47\u015f\12\u0163\1\u0164\24\u0163\1\u0217\47\u0163\12\u0202\1\u01d1"+
630
    "\1\u01fc\40\0\1\u0211\54\0\4\113\6\0\1\113\6\0"+
631
    "\71\u0202\1\u0218\1\u01d1\1\u0202\14\u0205\1\u01d7\67\u0205\1\u0219"+
631
    "\6\113\1\0\13\113\1\0\4\113\1\u0212\6\113\1\0"+
632
    "\1\u01d7\1\u0205\40\0\1\u021a\54\0\4\112\6\0\1\112"+
632
    "\4\113\1\0\11\113\2\0\1\113\6\0\4\113\6\0"+
633
    "\6\0\6\112\1\0\13\112\1\0\4\112\1\u021b\6\112"+
633
    "\1\113\6\0\6\113\1\0\3\113\1\u0213\7\113\1\0"+
634
    "\1\0\4\112\1\0\11\112\2\0\1\112\6\0\4\112"+
634
    "\4\113\1\u0213\6\113\1\0\4\113\1\0\11\113\2\0"+
635
    "\6\0\1\112\6\0\6\112\1\0\3\112\1\u021c\7\112"+
635
    "\1\113\6\0\4\167\6\0\1\167\6\0\6\167\1\0"+
636
    "\1\0\4\112\1\u021c\6\112\1\0\4\112\1\0\11\112"+
636
    "\11\167\1\u0214\1\167\1\0\13\167\1\0\4\167\1\0"+
637
    "\2\0\1\112\6\0\4\166\6\0\1\166\6\0\6\166"+
637
    "\11\167\2\0\1\167\6\0\4\167\6\0\1\167\6\0"+
638
    "\1\0\11\166\1\u021d\1\166\1\0\13\166\1\0\4\166"+
638
    "\6\167\1\0\10\167\1\u0215\2\167\1\0\13\167\1\0"+
639
    "\1\0\11\166\2\0\1\166\6\0\4\166\6\0\1\166"+
639
    "\4\167\1\0\11\167\2\0\1\167\54\0\1\u0216\24\0"+
640
    "\6\0\6\166\1\0\10\166\1\u021e\2\166\1\0\13\166"+
640
    "\1\u0216\52\0\1\u0217\20\0\1\u0217\70\0\1\u0218\13\0"+
641
    "\1\0\4\166\1\0\11\166\2\0\1\166\54\0\1\u021f"+
641
    "\1\u0218\53\0\2\u0219\112\0\1\u021a\35\0\1\u021a\12\0"+
642
    "\24\0\1\u021f\52\0\1\u0220\20\0\1\u0220\70\0\1\u0221"+
642
    "\2\232\1\0\35\232\1\u021b\46\232\2\241\1\0\35\241"+
643
    "\13\0\1\u0221\53\0\2\u0222\112\0\1\u0223\35\0\1\u0223"+
643
    "\1\u021c\46\241\14\u0152\1\u0153\23\u0152\1\u021d\46\u0152\12\u0156"+
644
    "\12\0\2\231\1\0\35\231\1\u0224\46\231\2\240\1\0"+
644
    "\1\u0157\25\u0156\1\u021e\46\u0156\12\u01ef\1\u021f\71\u01ef\1\u020b"+
645
    "\35\240\1\u0225\46\240\14\u014f\1\u0150\23\u014f\1\u0226\46\u014f"+
645
    "\1\u01b4\1\u01ef\14\u01f2\1\u0220\67\u01f2\1\u020c\1\u01b9\1\u01f2"+
646
    "\12\u0153\1\u0154\25\u0153\1\u0227\46\u0153\12\u01f8\1\u0228\71\u01f8"+
646
    "\14\u0162\1\u0163\23\u0162\1\u0221\46\u0162\12\u0166\1\u0167\25\u0166"+
647
    "\1\u0214\1\u01b7\1\u01f8\14\u01fb\1\u0229\67\u01fb\1\u0215\1\u01bd"+
647
    "\1\u0222\46\u0166\12\u01f9\1\u0223\71\u01f9\1\u020f\1\u01c9\1\u01f9"+
648
    "\1\u01fb\14\u015f\1\u0160\23\u015f\1\u022a\46\u015f\12\u0163\1\u0164"+
648
    "\14\u01fc\1\u0224\67\u01fc\1\u0210\1\u01ce\1\u01fc\41\0\1\u0225"+
649
    "\25\u0163\1\u022b\46\u0163\12\u0202\1\u022c\71\u0202\1\u0218\1\u01d1"+
649
    "\53\0\4\113\6\0\1\113\6\0\6\113\1\0\13\113"+
650
    "\1\u0202\14\u0205\1\u022d\67\u0205\1\u0219\1\u01d7\1\u0205\41\0"+
650
    "\1\0\7\113\1\u0226\3\113\1\0\4\113\1\0\11\113"+
651
    "\1\u022e\53\0\4\112\6\0\1\112\6\0\6\112\1\0"+
651
    "\2\0\1\113\6\0\4\167\6\0\1\167\6\0\6\167"+
652
    "\13\112\1\0\7\112\1\u022f\3\112\1\0\4\112\1\0"+
652
    "\1\0\11\167\1\u0227\1\167\1\0\13\167\1\0\4\167"+
653
    "\11\112\2\0\1\112\6\0\4\166\6\0\1\166\6\0"+
653
    "\1\0\11\167\2\0\1\167\6\0\4\167\6\0\1\167"+
654
    "\6\166\1\0\11\166\1\u0230\1\166\1\0\13\166\1\0"+
654
    "\6\0\6\167\1\0\6\167\1\u0228\4\167\1\0\13\167"+
655
    "\4\166\1\0\11\166\2\0\1\166\6\0\4\166\6\0"+
655
    "\1\0\4\167\1\0\11\167\2\0\1\167\43\0\1\u0229"+
656
    "\1\166\6\0\6\166\1\0\6\166\1\u0231\4\166\1\0"+
656
    "\11\0\1\u0229\72\0\1\u022a\14\0\1\u022a\71\0\1\u022b"+
657
    "\13\166\1\0\4\166\1\0\11\166\2\0\1\166\43\0"+
657
    "\14\0\1\u022b\30\0\2\232\1\0\36\232\1\u022c\45\232"+
658
    "\1\u0232\11\0\1\u0232\72\0\1\u0233\14\0\1\u0233\71\0"+
658
    "\2\241\1\0\36\241\1\u022d\45\241\14\u0152\1\u0153\24\u0152"+
659
    "\1\u0234\14\0\1\u0234\30\0\2\231\1\0\36\231\1\u0235"+
659
    "\1\u022e\45\u0152\12\u0156\1\u0157\26\u0156\1\u022f\45\u0156\14\u0162"+
660
    "\45\231\2\240\1\0\36\240\1\u0236\45\240\14\u014f\1\u0150"+
660
    "\1\u0163\24\u0162\1\u0230\45\u0162\12\u0166\1\u0167\26\u0166\1\u0231"+
661
    "\24\u014f\1\u0237\45\u014f\12\u0153\1\u0154\26\u0153\1\u0238\45\u0153"+
661
    "\45\u0166\40\0\1\u0232\54\0\4\113\6\0\1\113\6\0"+
662
    "\14\u015f\1\u0160\24\u015f\1\u0239\45\u015f\12\u0163\1\u0164\26\u0163"+
662
    "\5\113\1\u0233\1\0\13\113\1\0\13\113\1\0\4\113"+
663
    "\1\u023a\45\u0163\40\0\1\u023b\54\0\4\112\6\0\1\112"+
663
    "\1\0\11\113\2\0\1\113\6\0\4\167\6\0\1\167"+
664
    "\6\0\5\112\1\u023c\1\0\13\112\1\0\13\112\1\0"+
664
    "\6\0\6\167\1\0\13\167\1\0\4\167\1\u0234\6\167"+
665
    "\4\112\1\0\11\112\2\0\1\112\6\0\4\166\6\0"+
665
    "\1\0\4\167\1\0\11\167\2\0\1\167\6\0\4\167"+
666
    "\1\166\6\0\6\166\1\0\13\166\1\0\4\166\1\u023d"+
666
    "\6\0\1\167\6\0\6\167\1\0\5\167\1\u0235\5\167"+
667
    "\6\166\1\0\4\166\1\0\11\166\2\0\1\166\6\0"+
667
    "\1\0\13\167\1\0\4\167\1\0\11\167\2\0\1\167"+
668
    "\4\166\6\0\1\166\6\0\6\166\1\0\5\166\1\u023e"+
668
    "\2\232\1\0\35\232\1\u0236\46\232\2\241\1\0\35\241"+
669
    "\5\166\1\0\13\166\1\0\4\166\1\0\11\166\2\0"+
669
    "\1\u0237\46\241\14\u0152\1\u0153\23\u0152\1\u0238\46\u0152\12\u0156"+
670
    "\1\166\2\231\1\0\35\231\1\u023f\46\231\2\240\1\0"+
670
    "\1\u0157\25\u0156\1\u0239\46\u0156\14\u0162\1\u0163\23\u0162\1\u023a"+
671
    "\35\240\1\u0240\46\240\14\u014f\1\u0150\23\u014f\1\u0241\46\u014f"+
671
    "\46\u0162\12\u0166\1\u0167\25\u0166\1\u023b\46\u0166\35\0\1\u023c"+
672
    "\12\u0153\1\u0154\25\u0153\1\u0242\46\u0153\14\u015f\1\u0160\23\u015f"+
672
    "\57\0\4\113\6\0\1\113\6\0\6\113\1\0\5\113"+
673
    "\1\u0243\46\u015f\12\u0163\1\u0164\25\u0163\1\u0244\46\u0163\35\0"+
673
    "\1\u023d\5\113\1\0\13\113\1\0\4\113\1\0\11\113"+
674
    "\1\u0245\57\0\4\112\6\0\1\112\6\0\6\112\1\0"+
674
    "\2\0\1\113\6\0\4\167\6\0\1\167\6\0\6\167"+
675
    "\5\112\1\u0246\5\112\1\0\13\112\1\0\4\112\1\0"+
675
    "\1\0\13\167\1\0\13\167\1\0\4\167\1\0\1\167"+
676
    "\11\112\2\0\1\112\6\0\4\166\6\0\1\166\6\0"+
676
    "\1\u023e\7\167\2\0\1\167\2\232\1\0\32\232\1\u023f"+
677
    "\6\166\1\0\13\166\1\0\13\166\1\0\4\166\1\0"+
677
    "\51\232\2\241\1\0\32\241\1\u0240\51\241\14\u0152\1\u0153"+
678
    "\1\166\1\u0247\7\166\2\0\1\166\2\231\1\0\32\231"+
678
    "\20\u0152\1\u0241\51\u0152\12\u0156\1\u0157\22\u0156\1\u0242\51\u0156"+
679
    "\1\u0248\51\231\2\240\1\0\32\240\1\u0249\51\240\14\u014f"+
679
    "\14\u0162\1\u0163\20\u0162\1\u0243\51\u0162\12\u0166\1\u0167\22\u0166"+
680
    "\1\u0150\20\u014f\1\u024a\51\u014f\12\u0153\1\u0154\22\u0153\1\u024b"+
680
    "\1\u0244\51\u0166\6\0\4\113\6\0\1\113\6\0\6\113"+
681
    "\51\u0153\14\u015f\1\u0160\20\u015f\1\u024c\51\u015f\12\u0163\1\u0164"+
681
    "\1\0\7\113\1\u0245\3\113\1\0\13\113\1\0\4\113"+
682
    "\22\u0163\1\u024d\51\u0163\6\0\4\112\6\0\1\112\6\0"+
682
    "\1\0\11\113\2\0\1\113\6\0\4\167\6\0\1\167"+
683
    "\6\112\1\0\7\112\1\u024e\3\112\1\0\13\112\1\0"+
683
    "\6\0\6\167\1\0\13\167\1\0\4\167\1\u0246\6\167"+
684
    "\4\112\1\0\11\112\2\0\1\112\6\0\4\166\6\0"+
684
    "\1\0\4\167\1\0\11\167\2\0\1\167\6\0\4\113"+
685
    "\1\166\6\0\6\166\1\0\13\166\1\0\4\166\1\u024f"+
685
    "\6\0\1\113\6\0\6\113\1\0\13\113\1\0\13\113"+
686
    "\6\166\1\0\4\166\1\0\11\166\2\0\1\166\6\0"+
686
    "\1\0\4\113\1\0\11\113\2\0\1\u0247\6\0\4\167"+
687
    "\4\112\6\0\1\112\6\0\6\112\1\0\13\112\1\0"+
687
    "\6\0\1\167\6\0\6\167\1\0\10\167\1\u0248\2\167"+
688
    "\13\112\1\0\4\112\1\0\11\112\2\0\1\u0250\6\0"+
688
    "\1\0\13\167\1\0\4\167\1\0\11\167\2\0\1\167"+
689
    "\4\166\6\0\1\166\6\0\6\166\1\0\10\166\1\u0251"+
689
    "\6\0\4\113\6\0\1\113\6\0\6\113\1\0\5\113"+
690
    "\2\166\1\0\13\166\1\0\4\166\1\0\11\166\2\0"+
690
    "\1\u0249\5\113\1\0\13\113\1\0\4\113\1\0\11\113"+
691
    "\1\166\6\0\4\112\6\0\1\112\6\0\6\112\1\0"+
691
    "\2\0\1\113\6\0\4\167\6\0\1\167\6\0\6\167"+
692
    "\5\112\1\u0252\5\112\1\0\13\112\1\0\4\112\1\0"+
692
    "\1\0\4\167\1\u024a\6\167\1\0\13\167\1\0\4\167"+
693
    "\11\112\2\0\1\112\6\0\4\166\6\0\1\166\6\0"+
693
    "\1\0\11\167\2\0\1\167\6\0\4\113\6\0\1\113"+
694
    "\6\166\1\0\4\166\1\u0253\6\166\1\0\13\166\1\0"+
694
    "\6\0\6\113\1\0\5\113\1\u024b\5\113\1\0\13\113"+
695
    "\4\166\1\0\11\166\2\0\1\166\6\0\4\112\6\0"+
695
    "\1\0\4\113\1\0\11\113\2\0\1\113\6\0\4\167"+
696
    "\1\112\6\0\6\112\1\0\5\112\1\u0254\5\112\1\0"+
696
    "\6\0\1\167\6\0\6\167\1\0\5\167\1\u024c\5\167"+
697
    "\13\112\1\0\4\112\1\0\11\112\2\0\1\112\6\0"+
697
    "\1\0\13\167\1\0\4\167\1\0\11\167\2\0\1\167"+
698
    "\4\166\6\0\1\166\6\0\6\166\1\0\5\166\1\u0255"+
698
    "\6\0\4\113\6\0\1\113\6\0\6\113\1\0\13\113"+
699
    "\5\166\1\0\13\166\1\0\4\166\1\0\11\166\2\0"+
699
    "\1\0\4\113\1\u024d\6\113\1\0\4\113\1\0\11\113"+
700
    "\1\166\6\0\4\112\6\0\1\112\6\0\6\112\1\0"+
700
    "\2\0\1\113\6\u024e\4\u024f\6\u024e\1\u024f\5\u024e\1\0"+
701
    "\13\112\1\0\4\112\1\u0256\6\112\1\0\4\112\1\0"+
701
    "\6\u024f\1\u024e\13\u024f\1\u024e\13\u024f\1\u024e\4\u024f\1\u024e"+
702
    "\11\112\2\0\1\112\6\u0257\4\u0258\6\u0257\1\u0258\5\u0257"+
702
    "\11\u024f\2\u024e\1\u024f\42\0\1\u0250\3\0\1\u0251\7\0"+
703
    "\1\0\6\u0258\1\u0257\13\u0258\1\u0257\13\u0258\1\u0257\4\u0258"+
703
    "\1\u0252\1\u0253\21\0\1\u0254\13\0\4\167\6\0\1\167"+
704
    "\1\u0257\11\u0258\2\u0257\1\u0258\42\0\1\u0259\3\0\1\u025a"+
704
    "\6\0\6\167\1\0\4\167\1\u0255\3\167\1\u0256\2\167"+
705
    "\7\0\1\u025b\1\u025c\21\0\1\u025d\13\0\4\166\6\0"+
705
    "\1\0\4\167\1\u0257\1\u0258\5\167\1\0\4\167\1\0"+
706
    "\1\166\6\0\6\166\1\0\4\166\1\u025e\3\166\1\u025f"+
706
    "\6\167\1\u0259\2\167\2\0\1\167\57\0\1\u025a\77\0"+
707
    "\2\166\1\0\4\166\1\u0260\1\u0261\5\166\1\0\4\166"+
707
    "\1\u025b\115\0\1\u025c\105\0\1\u025d\107\0\1\u025e\35\0"+
708
    "\1\0\6\166\1\u0262\2\166\2\0\1\166\57\0\1\u0263"+
708
    "\4\167\6\0\1\167\6\0\6\167\1\0\13\167\1\0"+
709
    "\77\0\1\u0264\115\0\1\u0265\105\0\1\u0266\107\0\1\u0267"+
709
    "\5\167\1\u025f\5\167\1\0\4\167\1\0\11\167\2\0"+
710
    "\35\0\4\166\6\0\1\166\6\0\6\166\1\0\13\166"+
710
    "\1\167\6\0\4\167\6\0\1\167\6\0\6\167\1\0"+
711
    "\1\0\5\166\1\u0268\5\166\1\0\4\166\1\0\11\166"+
711
    "\12\167\1\u0260\1\0\13\167\1\0\4\167\1\0\11\167"+
712
    "\2\0\1\166\6\0\4\166\6\0\1\166\6\0\6\166"+
712
    "\2\0\1\167\6\0\4\167\6\0\1\167\6\0\6\167"+
713
    "\1\0\12\166\1\u0269\1\0\13\166\1\0\4\166\1\0"+
713
    "\1\0\13\167\1\0\5\167\1\u0261\5\167\1\0\4\167"+
714
    "\11\166\2\0\1\166\6\0\4\166\6\0\1\166\6\0"+
714
    "\1\0\11\167\2\0\1\167\6\0\4\167\6\0\1\167"+
715
    "\6\166\1\0\13\166\1\0\5\166\1\u026a\5\166\1\0"+
715
    "\6\0\6\167\1\0\13\167\1\0\4\167\1\u0262\6\167"+
716
    "\4\166\1\0\11\166\2\0\1\166\6\0\4\166\6\0"+
716
    "\1\0\4\167\1\0\11\167\2\0\1\167\6\0\4\167"+
717
    "\1\166\6\0\6\166\1\0\13\166\1\0\4\166\1\u026b"+
717
    "\6\0\1\167\6\0\6\167\1\0\13\167\1\0\5\167"+
718
    "\6\166\1\0\4\166\1\0\11\166\2\0\1\166\6\0"+
718
    "\1\u0263\5\167\1\0\4\167\1\0\11\167\2\0\1\167"+
719
    "\4\166\6\0\1\166\6\0\6\166\1\0\13\166\1\0"+
719
    "\44\0\1\u0264\136\0\1\u0265\107\0\1\u0266\67\0\1\u0267"+
720
    "\5\166\1\u026c\5\166\1\0\4\166\1\0\11\166\2\0"+
720
    "\125\0\1\u0268\17\0\4\167\6\0\1\167\6\0\6\167"+
721
    "\1\166\44\0\1\u026d\136\0\1\u026e\107\0\1\u026f\67\0"+
721
    "\1\0\6\167\1\u0269\4\167\1\0\13\167\1\0\4\167"+
722
    "\1\u0270\125\0\1\u0271\17\0\4\166\6\0\1\166\6\0"+
722
    "\1\0\11\167\2\0\1\167\6\0\4\167\6\0\1\167"+
723
    "\6\166\1\0\6\166\1\u0272\4\166\1\0\13\166\1\0"+
723
    "\6\0\6\167\1\0\13\167\1\0\13\167\1\0\4\167"+
724
    "\4\166\1\0\11\166\2\0\1\166\6\0\4\166\6\0"+
724
    "\1\0\1\167\1\u026a\7\167\2\0\1\167\6\0\4\167"+
725
    "\1\166\6\0\6\166\1\0\13\166\1\0\13\166\1\0"+
725
    "\6\0\1\167\6\0\6\167\1\0\13\167\1\0\13\167"+
726
    "\4\166\1\0\1\166\1\u0273\7\166\2\0\1\166\6\0"+
726
    "\1\0\4\167\1\0\2\167\1\u026b\6\167\2\0\1\167"+
727
    "\4\166\6\0\1\166\6\0\6\166\1\0\13\166\1\0"+
727
    "\6\0\4\167\6\0\1\167\6\0\6\167\1\0\13\167"+
728
    "\13\166\1\0\4\166\1\0\2\166\1\u0274\6\166\2\0"+
728
    "\1\0\4\167\1\u026c\6\167\1\0\4\167\1\0\11\167"+
729
    "\1\166\6\0\4\166\6\0\1\166\6\0\6\166\1\0"+
729
    "\2\0\1\167\6\0\4\167\6\0\1\167\6\0\6\167"+
730
    "\13\166\1\0\4\166\1\u0275\6\166\1\0\4\166\1\0"+
730
    "\1\0\13\167\1\0\13\167\1\0\4\167\1\0\2\167"+
731
    "\11\166\2\0\1\166\6\0\4\166\6\0\1\166\6\0"+
731
    "\1\u026d\6\167\2\0\1\167\46\0\1\u026e\74\0\1\u026f"+
732
    "\6\166\1\0\13\166\1\0\13\166\1\0\4\166\1\0"+
732
    "\106\0\1\u0270\116\0\1\u0271\105\0\1\u0272\51\0\4\167"+
733
    "\2\166\1\u0276\6\166\2\0\1\166\46\0\1\u0277\74\0"+
733
    "\6\0\1\167\6\0\6\167\1\0\10\167\1\u0273\2\167"+
734
    "\1\u0278\106\0\1\u0279\116\0\1\u027a\105\0\1\u027b\51\0"+
734
    "\1\0\13\167\1\0\4\167\1\0\11\167\2\0\1\167"+
735
    "\4\166\6\0\1\166\6\0\6\166\1\0\10\166\1\u027c"+
735
    "\6\0\4\167\6\0\1\167\6\0\5\167\1\u0274\1\0"+
736
    "\2\166\1\0\13\166\1\0\4\166\1\0\11\166\2\0"+
736
    "\13\167\1\0\13\167\1\0\4\167\1\0\11\167\2\0"+
737
    "\1\166\6\0\4\166\6\0\1\166\6\0\5\166\1\u027d"+
737
    "\1\167\6\0\4\167\6\0\1\167\6\0\5\167\1\u0275"+
738
    "\1\0\13\166\1\0\13\166\1\0\4\166\1\0\11\166"+
738
    "\1\0\13\167\1\0\13\167\1\0\4\167\1\0\11\167"+
739
    "\2\0\1\166\6\0\4\166\6\0\1\166\6\0\5\166"+
739
    "\2\0\1\167\6\0\4\167\6\0\1\167\6\0\6\167"+
740
    "\1\u027e\1\0\13\166\1\0\13\166\1\0\4\166\1\0"+
740
    "\1\0\6\167\1\u0276\4\167\1\0\13\167\1\0\4\167"+
741
    "\11\166\2\0\1\166\6\0\4\166\6\0\1\166\6\0"+
741
    "\1\0\11\167\2\0\1\167\6\0\4\167\6\0\1\167"+
742
    "\6\166\1\0\6\166\1\u027f\4\166\1\0\13\166\1\0"+
742
    "\6\0\6\167\1\0\5\167\1\u0277\5\167\1\0\13\167"+
743
    "\4\166\1\0\11\166\2\0\1\166\6\0\4\166\6\0"+
743
    "\1\0\4\167\1\0\11\167\2\0\1\167\57\0\1\u0278"+
744
    "\1\166\6\0\6\166\1\0\5\166\1\u0280\5\166\1\0"+
744
    "\131\0\1\u0279\52\0\1\u027a\106\0\1\u027b\46\0\4\167"+
745
    "\13\166\1\0\4\166\1\0\11\166\2\0\1\166\57\0"+
745
    "\6\0\1\167\6\0\6\167\1\0\13\167\1\0\5\167"+
746
    "\1\u0281\131\0\1\u0282\52\0\1\u0283\106\0\1\u0284\46\0"+
746
    "\1\u027c\5\167\1\0\4\167\1\0\11\167\2\0\1\167"+
747
    "\4\166\6\0\1\166\6\0\6\166\1\0\13\166\1\0"+
747
    "\6\0\4\167\6\0\1\167\6\0\6\167\1\0\13\167"+
748
    "\5\166\1\u0285\5\166\1\0\4\166\1\0\11\166\2\0"+
748
    "\1\0\13\167\1\0\4\167\1\0\7\167\1\u027d\1\167"+
749
    "\1\166\6\0\4\166\6\0\1\166\6\0\6\166\1\0"+
749
    "\2\0\1\167\6\0\4\167\6\0\1\167\6\0\6\167"+
750
    "\13\166\1\0\13\166\1\0\4\166\1\0\7\166\1\u0286"+
750
    "\1\0\10\167\1\u027e\2\167\1\0\13\167\1\0\4\167"+
751
    "\1\166\2\0\1\166\6\0\4\166\6\0\1\166\6\0"+
751
    "\1\0\11\167\2\0\1\167\6\0\4\167\6\0\1\167"+
752
    "\6\166\1\0\10\166\1\u0287\2\166\1\0\13\166\1\0"+
752
    "\6\0\6\167\1\0\10\167\1\u027f\2\167\1\0\13\167"+
753
    "\4\166\1\0\11\166\2\0\1\166\6\0\4\166\6\0"+
753
    "\1\0\4\167\1\0\11\167\2\0\1\167\103\0\1\u0280"+
754
    "\1\166\6\0\6\166\1\0\10\166\1\u0288\2\166\1\0"+
754
    "\63\0\1\u0268\131\0\1\u0272\106\0\1\u0281\11\0\4\167"+
755
    "\13\166\1\0\4\166\1\0\11\166\2\0\1\166\103\0"+
755
    "\6\0\1\167\6\0\6\167\1\0\13\167\1\0\13\167"+
756
    "\1\u0289\63\0\1\u0271\131\0\1\u027b\106\0\1\u028a\11\0"+
756
    "\1\0\4\167\1\0\10\167\1\u0282\2\0\1\167\6\0"+
757
    "\4\166\6\0\1\166\6\0\6\166\1\0\13\166\1\0"+
757
    "\4\167\6\0\1\167\6\0\6\167\1\0\13\167\1\0"+
758
    "\13\166\1\0\4\166\1\0\10\166\1\u028b\2\0\1\166"+
758
    "\6\167\1\u026d\4\167\1\0\4\167\1\0\11\167\2\0"+
759
    "\6\0\4\166\6\0\1\166\6\0\6\166\1\0\13\166"+
759
    "\1\167\6\0\4\167\6\0\1\167\6\0\6\167\1\0"+
760
    "\1\0\6\166\1\u0276\4\166\1\0\4\166\1\0\11\166"+
760
    "\13\167\1\0\13\167\1\0\4\167\1\0\10\167\1\u0277"+
761
    "\2\0\1\166\6\0\4\166\6\0\1\166\6\0\6\166"+
761
    "\2\0\1\167\6\0\4\167\6\0\1\167\6\0\6\167"+
762
    "\1\0\13\166\1\0\13\166\1\0\4\166\1\0\10\166"+
762
    "\1\0\13\167\1\0\13\167\1\0\4\167\1\0\10\167"+
763
    "\1\u0280\2\0\1\166\6\0\4\166\6\0\1\166\6\0"+
763
    "\1\u0283\2\0\1\167\34\0\1\u0268\154\0\1\u0284\12\0"+
764
    "\6\166\1\0\13\166\1\0\13\166\1\0\4\166\1\0"+
764
    "\4\167\6\0\1\167\6\0\5\167\1\u026d\1\0\13\167"+
765
    "\10\166\1\u028c\2\0\1\166\34\0\1\u0271\154\0\1\u028d"+
765
    "\1\0\13\167\1\0\4\167\1\0\11\167\2\0\1\167"+
766
    "\12\0\4\166\6\0\1\166\6\0\5\166\1\u0276\1\0"+
766
    "\6\0\4\167\6\0\1\167\6\0\6\167\1\0\13\167"+
767
    "\13\166\1\0\13\166\1\0\4\166\1\0\11\166\2\0"+
767
    "\1\0\13\167\1\0\4\167\1\0\7\167\1\u0285\1\167"+
768
    "\1\166\6\0\4\166\6\0\1\166\6\0\6\166\1\0"+
768
    "\2\0\1\167\56\0\1\u0268\36\0\4\167\6\0\1\167"+
769
    "\13\166\1\0\13\166\1\0\4\166\1\0\7\166\1\u028e"+
769
    "\6\0\6\167\1\0\13\167\1\0\4\167\1\u026d\6\167"+
770
    "\1\166\2\0\1\166\56\0\1\u0271\36\0\4\166\6\0"+
770
    "\1\0\4\167\1\0\11\167\2\0\1\167";
771
    "\1\166\6\0\6\166\1\0\13\166\1\0\4\166\1\u0276"+
772
    "\6\166\1\0\4\166\1\0\11\166\2\0\1\166";
771
773
772
  /** 
774
  /** 
773
   * The transition table of the DFA
775
   * The transition table of the DFA
Lines 795-839 Link Here
795
  private final static byte YY_ATTRIBUTE[] = {
797
  private final static byte YY_ATTRIBUTE[] = {
796
     1,  0,  0,  0,  0,  1,  0,  0,  1,  1,  1,  0,  1,  1,  1,  1, 
798
     1,  0,  0,  0,  0,  1,  0,  0,  1,  1,  1,  0,  1,  1,  1,  1, 
797
     0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
799
     0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
798
     1,  1,  1,  1,  0,  0,  0,  0,  1,  1,  0,  1,  0,  0,  0,  0, 
800
     1,  1,  1,  1,  0,  0,  0,  0,  1,  1,  1,  0,  0,  0,  0,  0, 
799
     0,  0,  1,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  1,  9, 
801
     0,  1,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  1,  9,  1, 
800
     1,  9,  1,  1,  9,  9,  1,  1,  1,  1,  1,  1,  1,  1,  1,  9, 
802
     9,  1,  1,  9,  9,  1,  1,  1,  1,  1,  1,  1,  1,  1,  9,  1, 
801
     1,  1,  1,  1,  9,  1,  1,  1,  1,  1,  1,  9,  1,  1,  9,  1, 
803
     1,  1,  1,  9,  1,  1,  1,  1,  1,  1,  9,  1,  1,  9,  1,  1, 
802
     1,  1,  1,  9,  1,  1,  1,  1,  1,  1,  1,  9,  1,  1,  1,  1, 
804
     1,  1,  9,  1,  1,  1,  1,  1,  1,  1,  9,  1,  1,  1,  1,  1, 
803
     1,  1,  1,  9,  1,  1,  1,  1,  1,  1,  9,  1,  1,  1,  1,  1, 
805
     1,  1,  9,  1,  1,  1,  1,  1,  1,  9,  1,  1,  1,  1,  1,  1, 
804
     1,  1,  1,  9,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
806
     1,  1,  9,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
805
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  9,  1,  1,  1,  1, 
807
     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  9,  1,  1,  1,  1,  1, 
806
     1,  1,  9,  9,  1,  1,  9,  1,  1,  1,  1,  1,  9,  1,  1,  1, 
808
     1,  9,  9,  1,  9,  1,  1,  1,  1,  1,  9,  1,  1,  1,  1,  9, 
807
     1,  9,  1,  1,  1,  1,  9,  9,  1,  9,  3,  3,  3,  3,  3,  3, 
809
     1,  1,  1,  1,  9,  9,  1,  9,  3,  3,  3,  3,  3,  3,  9,  9, 
808
     9,  9,  1,  1,  1,  9,  1,  1,  1,  1,  1,  9,  9,  1,  9,  3, 
810
     1,  1,  1,  9,  1,  1,  1,  1,  1,  9,  9,  1,  9,  3,  3,  3, 
809
     3,  3,  3,  3,  3,  9,  9,  1,  1,  1,  9,  1,  1,  1,  9,  9, 
811
     3,  3,  3,  9,  9,  1,  1,  1,  9,  1,  1,  1,  9,  9,  1,  1, 
810
     1,  1,  0,  1,  0,  9,  1,  2,  1,  2,  1,  1,  0,  0,  0,  9, 
812
     0,  1,  0,  9,  1,  2,  1,  2,  1,  0,  0,  0,  9,  1,  1,  1, 
811
     1,  1,  1,  9,  9,  0,  0,  9,  0,  0,  0,  0,  0,  0,  0,  0, 
813
     9,  9,  0,  0,  9,  0,  0,  0,  0,  0,  0,  0,  0,  9,  1,  0, 
812
     9,  1,  0,  0,  1,  9,  0,  9,  0,  0,  9,  0,  0,  0,  9,  1, 
814
     0,  1,  9,  0,  9,  0,  0,  9,  0,  0,  0,  9,  1,  1,  0,  1, 
813
     1,  0,  1,  0,  9,  0,  0,  0,  1,  1,  0,  0,  0,  0,  9,  0, 
815
     0,  9,  0,  0,  0,  1,  1,  0,  0,  0,  0,  9,  0,  0,  0,  0, 
814
     0,  0,  0,  9,  0,  0,  0,  1,  0,  0,  1,  0,  0,  9,  0,  0, 
816
     9,  0,  0,  0,  1,  0,  0,  1,  0,  0,  9,  0,  0,  1,  0,  0, 
815
     1,  0,  0,  9,  0,  0,  0,  1,  0,  1,  1,  0,  0,  9,  0,  0, 
817
     9,  0,  0,  0,  1,  0,  1,  1,  0,  0,  9,  0,  0,  0,  1,  0, 
816
     0,  1,  0,  1,  1,  0,  0,  9,  9,  9,  0,  9,  9,  1,  1,  1, 
818
     1,  1,  0,  0,  9,  9,  9,  0,  9,  9,  1,  1,  1,  1,  2, 13, 
817
     1,  2, 13,  3,  2,  2, 13,  3,  2,  0,  1,  1,  0,  1,  1,  1, 
819
     3,  2,  2, 13,  3,  2,  0,  1,  1,  0,  1,  1,  1,  1,  2, 13, 
818
     1,  2, 13,  3,  2,  2, 13,  3,  2,  0,  1,  1,  0,  1,  1,  0, 
820
     3,  2,  2, 13,  3,  2,  0,  1,  1,  0,  1,  1,  0,  9,  9,  9, 
819
     9,  9,  9,  0,  0,  1,  1,  1,  9,  0,  0, 13,  9, 13,  9,  9, 
821
     0,  0,  1,  1,  1,  9,  0,  0, 13,  9, 13,  9,  9,  1,  1,  1, 
820
     1,  1,  1,  0,  0,  1,  3,  2,  2,  3,  2,  2,  0,  0,  0,  0, 
822
     0,  0,  1,  3,  2,  2,  3,  2,  2,  0,  0,  0,  0,  0,  0,  1, 
821
     0,  0,  1,  0,  0,  1,  0,  1,  1,  1,  1,  0,  1,  0,  1,  1, 
823
     0,  0,  1,  0,  1,  1,  1,  1,  1,  0,  1,  0,  1,  1,  1,  1, 
822
     1,  1,  0,  1,  1,  1,  1,  0,  2,  3,  3,  2,  2,  3,  3,  2, 
824
     1,  0,  1,  1,  1,  1,  1,  0,  2,  3,  3,  3,  2,  2,  3,  3, 
823
     1,  1,  1,  0,  0,  1,  1,  1,  0,  0,  1,  1,  1,  2,  3,  3, 
825
     3,  2,  1,  1,  1,  1,  0,  0,  1,  1,  1,  1,  0,  0,  1,  1, 
824
     2,  2,  3,  3,  2,  1,  1,  1,  0,  0,  1,  1,  1,  0,  0,  9, 
826
     1,  1,  2,  3,  3,  3,  2,  2,  3,  3,  3,  2,  1,  1,  1,  1, 
825
     9,  0,  1,  9,  0,  1,  1,  1,  5, 13, 13,  0,  0,  0,  0,  0, 
827
     0,  0,  1,  1,  1,  1,  0,  0,  9,  9,  0,  1,  9,  0,  1,  1, 
826
     0,  0,  1,  1,  0,  1,  1,  9,  1,  3,  2,  3,  2,  1,  0,  9, 
828
     1,  5, 13, 13,  0,  0,  0,  0,  0,  0,  0,  1,  1,  0,  1,  1, 
827
     1,  0,  1,  3,  2,  3,  2,  1,  0,  9,  1,  0,  0,  1,  1,  1, 
829
     9,  1,  3,  2,  3,  2,  1,  0,  9,  1,  0,  1,  3,  2,  3,  2, 
828
     1,  0,  0,  0,  0,  0,  1,  1,  2,  2,  0,  0,  2,  2,  0,  0, 
830
     1,  0,  9,  1,  0,  0,  1,  1,  1,  1,  0,  0,  0,  0,  0,  1, 
829
     0,  1,  1,  1,  1,  0,  0,  0,  9,  9,  1,  1,  2,  2,  1,  1, 
831
     1,  2,  2,  0,  0,  2,  2,  0,  0,  0,  1,  1,  1,  1,  0,  0, 
830
     2,  2,  1,  1,  0,  1,  1,  1,  9,  9,  9,  1,  1,  2,  2,  2, 
832
     0,  9,  9,  1,  1,  2,  2,  1,  1,  2,  2,  1,  1,  0,  1,  1, 
831
     2,  0,  1,  1,  1,  1,  1,  2,  2,  2,  2,  9,  1,  1,  1,  1, 
833
     1,  9,  9,  9,  1,  1,  2,  2,  2,  2,  0,  1,  1,  1,  1,  1, 
832
     3,  3,  3,  3,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  1,  0, 
834
     2,  2,  2,  2,  9,  1,  1,  1,  1,  3,  3,  3,  3,  1,  1,  1, 
833
     0,  0,  0,  0,  1,  1,  1,  1,  1,  0,  0,  0,  0,  0,  1,  1, 
835
     1,  1,  1,  1,  1,  1,  0,  1,  0,  0,  0,  0,  0,  1,  1,  1, 
834
     1,  1,  1,  0,  0,  1,  0,  0,  1,  1,  1,  1,  1,  0,  0,  0, 
836
     1,  1,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  0,  0,  1,  0, 
835
     0,  9,  1,  1,  1,  1,  1,  0,  0,  0,  0,  1,  1,  1,  1,  0, 
837
     0,  1,  1,  1,  1,  1,  0,  0,  0,  0,  9,  1,  1,  1,  1,  1, 
836
     0,  1,  1,  0,  1
838
     0,  0,  0,  0,  1,  1,  1,  1,  0,  0,  1,  1,  0,  1
837
  };
839
  };
838
840
839
  /** the input device */
841
  /** the input device */
Lines 1738-1747 Link Here
1738
   * @return         the unpacked transition table
1740
   * @return         the unpacked transition table
1739
   */
1741
   */
1740
  private static int [] yy_unpack(String packed) {
1742
  private static int [] yy_unpack(String packed) {
1741
    int [] trans = new int[31808];
1743
    int [] trans = new int[31595];
1742
    int i = 0;  /* index in packed string  */
1744
    int i = 0;  /* index in packed string  */
1743
    int j = 0;  /* index in unpacked array */
1745
    int j = 0;  /* index in unpacked array */
1744
    while (i < 8188) {
1746
    while (i < 8206) {
1745
      int count = packed.charAt(i++);
1747
      int count = packed.charAt(i++);
1746
      int value = packed.charAt(i++);
1748
      int value = packed.charAt(i++);
1747
      value--;
1749
      value--;
Lines 2073-2082 Link Here
2073
2075
2074
      switch (yy_action) {    
2076
      switch (yy_action) {    
2075
2077
2076
        case 613: 
2078
        case 622: 
2077
        case 618: 
2079
        case 627: 
2078
        case 625: 
2080
        case 634: 
2079
        case 630: 
2081
        case 639: 
2080
          { 
2082
          { 
2081
	if(Debug.debugTokenizer)
2083
	if(Debug.debugTokenizer)
2082
		dump("jsp directive tag name");//$NON-NLS-1$
2084
		dump("jsp directive tag name");//$NON-NLS-1$
Lines 2085-2092 Link Here
2085
        yybegin(ST_XML_ATTRIBUTE_NAME);
2087
        yybegin(ST_XML_ATTRIBUTE_NAME);
2086
        return JSP_DIRECTIVE_NAME;
2088
        return JSP_DIRECTIVE_NAME;
2087
 }
2089
 }
2088
        case 646: break;
2090
        case 655: break;
2089
        case 588: 
2091
        case 597: 
2090
          { 
2092
          { 
2091
	if(Debug.debugTokenizer)
2093
	if(Debug.debugTokenizer)
2092
		dump("XSL processing instruction target");//$NON-NLS-1$
2094
		dump("XSL processing instruction target");//$NON-NLS-1$
Lines 2094-2107 Link Here
2094
        yybegin(ST_XML_PI_ATTRIBUTE_NAME);
2096
        yybegin(ST_XML_PI_ATTRIBUTE_NAME);
2095
        return XML_TAG_NAME;
2097
        return XML_TAG_NAME;
2096
 }
2098
 }
2097
        case 647: break;
2099
        case 656: break;
2098
        case 571: 
2100
        case 580: 
2099
        case 574: 
2101
        case 583: 
2100
        case 575: 
2102
        case 584: 
2101
        case 576: 
2103
        case 585: 
2102
        case 577: 
2104
        case 586: 
2103
        case 578: 
2105
        case 587: 
2104
        case 579: 
2106
        case 588: 
2105
          { 
2107
          { 
2106
	if(Debug.debugTokenizer)
2108
	if(Debug.debugTokenizer)
2107
		dump("\nCDATA start");//$NON-NLS-1$
2109
		dump("\nCDATA start");//$NON-NLS-1$
Lines 2109-2116 Link Here
2109
	yybegin(ST_CDATA_TEXT);
2111
	yybegin(ST_CDATA_TEXT);
2110
	return XML_CDATA_OPEN;
2112
	return XML_CDATA_OPEN;
2111
 }
2113
 }
2112
        case 648: break;
2114
        case 657: break;
2113
        case 563: 
2115
        case 572: 
2114
          { 
2116
          { 
2115
	if(Debug.debugTokenizer)
2117
	if(Debug.debugTokenizer)
2116
		dump("jsp:root tag name");//$NON-NLS-1$
2118
		dump("jsp:root tag name");//$NON-NLS-1$
Lines 2119-2150 Link Here
2119
        yybegin(ST_XML_ATTRIBUTE_NAME);
2121
        yybegin(ST_XML_ATTRIBUTE_NAME);
2120
        return JSP_ROOT_TAG_NAME;
2122
        return JSP_ROOT_TAG_NAME;
2121
 }
2123
 }
2122
        case 649: break;
2124
        case 658: break;
2123
        case 554: 
2125
        case 563: 
2124
          { 
2126
          { 
2125
	if(Debug.debugTokenizer)
2127
	if(Debug.debugTokenizer)
2126
		dump("element");//$NON-NLS-1$
2128
		dump("element");//$NON-NLS-1$
2127
	yybegin(ST_XML_ELEMENT_DECLARATION);
2129
	yybegin(ST_XML_ELEMENT_DECLARATION);
2128
	return XML_ELEMENT_DECLARATION;
2130
	return XML_ELEMENT_DECLARATION;
2129
 }
2131
 }
2130
        case 650: break;
2132
        case 659: break;
2131
        case 553: 
2133
        case 562: 
2132
          { 
2134
          { 
2133
	if(Debug.debugTokenizer)
2135
	if(Debug.debugTokenizer)
2134
		dump("attlist");//$NON-NLS-1$
2136
		dump("attlist");//$NON-NLS-1$
2135
	yybegin(ST_XML_ATTLIST_DECLARATION);
2137
	yybegin(ST_XML_ATTLIST_DECLARATION);
2136
	return XML_ATTLIST_DECLARATION;
2138
	return XML_ATTLIST_DECLARATION;
2137
 }
2139
 }
2138
        case 651: break;
2140
        case 660: break;
2139
        case 552: 
2141
        case 561: 
2140
          { 
2142
          { 
2141
	if(Debug.debugTokenizer)
2143
	if(Debug.debugTokenizer)
2142
		dump("doctype");//$NON-NLS-1$
2144
		dump("doctype");//$NON-NLS-1$
2143
	yybegin(ST_XML_DOCTYPE_DECLARATION);
2145
	yybegin(ST_XML_DOCTYPE_DECLARATION);
2144
	return XML_DOCTYPE_DECLARATION;
2146
	return XML_DOCTYPE_DECLARATION;
2145
 }
2147
 }
2146
        case 652: break;
2148
        case 661: break;
2147
        case 537: 
2149
        case 546: 
2148
          { 
2150
          { 
2149
	if(Debug.debugTokenizer)
2151
	if(Debug.debugTokenizer)
2150
		dump("doctype external id");//$NON-NLS-1$
2152
		dump("doctype external id");//$NON-NLS-1$
Lines 2152-2159 Link Here
2152
	yybegin(ST_XML_DOCTYPE_ID_PUBLIC);
2154
	yybegin(ST_XML_DOCTYPE_ID_PUBLIC);
2153
	return XML_DOCTYPE_EXTERNAL_ID_PUBLIC;
2155
	return XML_DOCTYPE_EXTERNAL_ID_PUBLIC;
2154
 }
2156
 }
2155
        case 653: break;
2157
        case 662: break;
2156
        case 536: 
2158
        case 545: 
2157
          { 
2159
          { 
2158
	if(Debug.debugTokenizer)
2160
	if(Debug.debugTokenizer)
2159
		dump("doctype external id");//$NON-NLS-1$
2161
		dump("doctype external id");//$NON-NLS-1$
Lines 2161-2168 Link Here
2161
	yybegin(ST_XML_DOCTYPE_ID_SYSTEM);
2163
	yybegin(ST_XML_DOCTYPE_ID_SYSTEM);
2162
	return XML_DOCTYPE_EXTERNAL_ID_SYSTEM;
2164
	return XML_DOCTYPE_EXTERNAL_ID_SYSTEM;
2163
 }
2165
 }
2164
        case 654: break;
2166
        case 663: break;
2165
        case 530: 
2167
        case 539: 
2166
          { 
2168
          { 
2167
	if(Debug.debugTokenizer)
2169
	if(Debug.debugTokenizer)
2168
		dump("DHTML processing instruction target");//$NON-NLS-1$
2170
		dump("DHTML processing instruction target");//$NON-NLS-1$
Lines 2171-2200 Link Here
2171
        yybegin(ST_DHTML_ATTRIBUTE_NAME);
2173
        yybegin(ST_DHTML_ATTRIBUTE_NAME);
2172
        return XML_TAG_NAME;
2174
        return XML_TAG_NAME;
2173
 }
2175
 }
2174
        case 655: break;
2176
        case 664: break;
2175
        case 505: 
2177
        case 514: 
2176
        case 546: 
2178
        case 555: 
2177
        case 547: 
2179
        case 556: 
2178
          { 
2180
          { 
2179
	return JSP_VBL_QUOTED_CONTENT;
2181
	return JSP_VBL_QUOTED_CONTENT;
2180
 }
2182
 }
2181
        case 656: break;
2183
        case 665: break;
2182
        case 495: 
2184
        case 504: 
2183
        case 542: 
2185
        case 551: 
2184
        case 543: 
2186
        case 552: 
2185
          { 
2187
          { 
2186
	return JSP_EL_QUOTED_CONTENT;
2188
	return JSP_EL_QUOTED_CONTENT;
2187
 }
2189
 }
2188
        case 657: break;
2190
        case 666: break;
2189
        case 487: 
2191
        case 496: 
2190
          { 
2192
          { 
2191
	if(Debug.debugTokenizer)
2193
	if(Debug.debugTokenizer)
2192
		dump("\nJSP comment close");//$NON-NLS-1$
2194
		dump("\nJSP comment close");//$NON-NLS-1$
2193
	yybegin(YYINITIAL);
2195
	yybegin(YYINITIAL);
2194
	return JSP_COMMENT_CLOSE;
2196
	return JSP_COMMENT_CLOSE;
2195
 }
2197
 }
2196
        case 658: break;
2198
        case 667: break;
2197
        case 474: 
2199
        case 483: 
2198
          { 
2200
          { 
2199
	if (Debug.debugTokenizer) {
2201
	if (Debug.debugTokenizer) {
2200
		System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
2202
		System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
Lines 2215-2222 Link Here
2215
	fEmbeddedPostState = ST_XML_EQUALS;
2217
	fEmbeddedPostState = ST_XML_EQUALS;
2216
	return PROXY_CONTEXT;
2218
	return PROXY_CONTEXT;
2217
 }
2219
 }
2218
        case 659: break;
2220
        case 668: break;
2219
        case 473: 
2221
        case 482: 
2220
          { 
2222
          { 
2221
	if (Debug.debugTokenizer) {
2223
	if (Debug.debugTokenizer) {
2222
		System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
2224
		System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
Lines 2237-2251 Link Here
2237
	fEmbeddedPostState = ST_XML_EQUALS;
2239
	fEmbeddedPostState = ST_XML_EQUALS;
2238
	return PROXY_CONTEXT;
2240
	return PROXY_CONTEXT;
2239
 }
2241
 }
2240
        case 660: break;
2242
        case 669: break;
2241
        case 467: 
2243
        case 476: 
2242
          { 
2244
          { 
2243
	if(Debug.debugTokenizer)
2245
	if(Debug.debugTokenizer)
2244
		dump("\nCharRef");//$NON-NLS-1$
2246
		dump("\nCharRef");//$NON-NLS-1$
2245
	return XML_CHAR_REFERENCE;
2247
	return XML_CHAR_REFERENCE;
2246
 }
2248
 }
2247
        case 661: break;
2249
        case 670: break;
2248
        case 464: 
2250
        case 473: 
2249
          { 
2251
          { 
2250
	if(Debug.debugTokenizer)
2252
	if(Debug.debugTokenizer)
2251
		dump("\ncomment start");//$NON-NLS-1$
2253
		dump("\ncomment start");//$NON-NLS-1$
Lines 2254-2273 Link Here
2254
	yybegin(ST_XML_COMMENT);
2256
	yybegin(ST_XML_COMMENT);
2255
	return XML_COMMENT_OPEN;
2257
	return XML_COMMENT_OPEN;
2256
 }
2258
 }
2257
        case 662: break;
2259
        case 671: break;
2258
        case 463: 
2260
        case 472: 
2259
        case 482: 
2260
        case 485: 
2261
        case 488: 
2262
        case 489: 
2263
        case 491: 
2261
        case 491: 
2264
        case 493: 
2262
        case 494: 
2265
        case 496: 
2263
        case 497: 
2266
        case 498: 
2264
        case 498: 
2267
        case 499: 
2265
        case 500: 
2268
        case 501: 
2266
        case 502: 
2269
        case 503: 
2267
        case 505: 
2270
        case 506: 
2268
        case 507: 
2269
        case 508: 
2270
        case 510: 
2271
        case 512: 
2272
        case 515: 
2271
          { 
2273
          { 
2272
	/* JSP comment begun (anywhere)
2274
	/* JSP comment begun (anywhere)
2273
	 * A consequence of the start anywhere possibility is that the
2275
	 * A consequence of the start anywhere possibility is that the
Lines 2349-2357 Link Here
2349
		return PROXY_CONTEXT;
2351
		return PROXY_CONTEXT;
2350
	}
2352
	}
2351
 }
2353
 }
2352
        case 663: break;
2354
        case 672: break;
2353
        case 384: 
2355
        case 381: 
2354
        case 385: 
2356
        case 382: 
2355
          { 
2357
          { 
2356
	if(Debug.debugTokenizer)
2358
	if(Debug.debugTokenizer)
2357
		dump("XML processing instruction target");//$NON-NLS-1$
2359
		dump("XML processing instruction target");//$NON-NLS-1$
Lines 2360-2367 Link Here
2360
        yybegin(ST_XML_PI_ATTRIBUTE_NAME);
2362
        yybegin(ST_XML_PI_ATTRIBUTE_NAME);
2361
        return XML_TAG_NAME;
2363
        return XML_TAG_NAME;
2362
 }
2364
 }
2363
        case 664: break;
2365
        case 673: break;
2364
        case 383: 
2366
        case 380: 
2365
          { 
2367
          { 
2366
	if(Debug.debugTokenizer)
2368
	if(Debug.debugTokenizer)
2367
		dump("comment end");//$NON-NLS-1$
2369
		dump("comment end");//$NON-NLS-1$
Lines 2369-2384 Link Here
2369
	yybegin(YYINITIAL);
2371
	yybegin(YYINITIAL);
2370
	return XML_COMMENT_CLOSE;
2372
	return XML_COMMENT_CLOSE;
2371
 }
2373
 }
2372
        case 665: break;
2374
        case 674: break;
2373
        case 382: 
2375
        case 379: 
2374
          { 
2376
          { 
2375
	if(Debug.debugTokenizer)
2377
	if(Debug.debugTokenizer)
2376
		dump("CDATA end");//$NON-NLS-1$
2378
		dump("CDATA end");//$NON-NLS-1$
2377
	yybegin(fStateStack.pop());
2379
	yybegin(fStateStack.pop());
2378
	return XML_CDATA_CLOSE;
2380
	return XML_CDATA_CLOSE;
2379
 }
2381
 }
2380
        case 666: break;
2382
        case 675: break;
2381
        case 381: 
2383
        case 378: 
2382
          { 
2384
          { 
2383
	yybegin(ST_JSP_VBL);
2385
	yybegin(ST_JSP_VBL);
2384
	if(yylength() > 2)
2386
	if(yylength() > 2)
Lines 2391-2405 Link Here
2391
	yybegin(YYINITIAL);
2393
	yybegin(YYINITIAL);
2392
	return PROXY_CONTEXT;
2394
	return PROXY_CONTEXT;
2393
 }
2395
 }
2394
        case 667: break;
2396
        case 676: break;
2395
        case 380: 
2397
        case 377: 
2396
          { 
2398
          { 
2397
	if(Debug.debugTokenizer)
2399
	if(Debug.debugTokenizer)
2398
		dump("\nPEReference");//$NON-NLS-1$
2400
		dump("\nPEReference");//$NON-NLS-1$
2399
	return XML_PE_REFERENCE;
2401
	return XML_PE_REFERENCE;
2400
 }
2402
 }
2401
        case 668: break;
2403
        case 677: break;
2402
        case 379: 
2404
        case 376: 
2403
          { 
2405
          { 
2404
	yybegin(ST_JSP_EL);
2406
	yybegin(ST_JSP_EL);
2405
	if(yylength() > 2)
2407
	if(yylength() > 2)
Lines 2412-2438 Link Here
2412
	yybegin(YYINITIAL);
2414
	yybegin(YYINITIAL);
2413
	return PROXY_CONTEXT;
2415
	return PROXY_CONTEXT;
2414
 }
2416
 }
2415
        case 669: break;
2417
        case 678: break;
2416
        case 376: 
2418
        case 373: 
2417
          { 
2419
          { 
2418
	if(Debug.debugTokenizer)
2420
	if(Debug.debugTokenizer)
2419
		dump("\nEntityRef");//$NON-NLS-1$
2421
		dump("\nEntityRef");//$NON-NLS-1$
2420
	return XML_ENTITY_REFERENCE;
2422
	return XML_ENTITY_REFERENCE;
2421
 }
2423
 }
2422
        case 670: break;
2424
        case 679: break;
2423
        case 370: 
2425
        case 367: 
2424
        case 409: 
2426
        case 407: 
2425
        case 416: 
2427
        case 415: 
2426
        case 422: 
2428
        case 422: 
2427
        case 426: 
2429
        case 427: 
2428
        case 430: 
2430
        case 432: 
2429
        case 434: 
2431
        case 437: 
2430
        case 439: 
2432
        case 443: 
2431
        case 444: 
2433
        case 449: 
2432
        case 447: 
2434
        case 453: 
2433
        case 451: 
2435
        case 458: 
2434
        case 455: 
2436
        case 463: 
2435
        case 460: 
2437
        case 469: 
2436
          { 
2438
          { 
2437
	/* JSP expression begun (anywhere)
2439
	/* JSP expression begun (anywhere)
2438
	 * A consequence of the start anywhere possibility is that the
2440
	 * A consequence of the start anywhere possibility is that the
Lines 2502-2521 Link Here
2502
		return PROXY_CONTEXT;
2504
		return PROXY_CONTEXT;
2503
	}
2505
	}
2504
 }
2506
 }
2505
        case 671: break;
2507
        case 680: break;
2506
        case 369: 
2508
        case 366: 
2507
        case 408: 
2509
        case 406: 
2508
        case 415: 
2510
        case 414: 
2509
        case 421: 
2511
        case 421: 
2510
        case 425: 
2512
        case 426: 
2511
        case 429: 
2513
        case 431: 
2512
        case 433: 
2514
        case 436: 
2513
        case 438: 
2515
        case 442: 
2514
        case 443: 
2516
        case 448: 
2515
        case 446: 
2517
        case 452: 
2516
        case 450: 
2518
        case 457: 
2517
        case 454: 
2519
        case 462: 
2518
        case 459: 
2520
        case 468: 
2519
          { 
2521
          { 
2520
	/* JSP declaration begun (anywhere)
2522
	/* JSP declaration begun (anywhere)
2521
	 * A consequence of the start anywhere possibility is that the
2523
	 * A consequence of the start anywhere possibility is that the
Lines 2585-2595 Link Here
2585
		return PROXY_CONTEXT;
2587
		return PROXY_CONTEXT;
2586
	}
2588
	}
2587
 }
2589
 }
2588
        case 672: break;
2590
        case 681: break;
2589
        case 368: 
2591
        case 365: 
2592
        case 405: 
2593
        case 413: 
2594
        case 420: 
2595
        case 425: 
2596
        case 430: 
2597
        case 435: 
2598
        case 441: 
2599
        case 447: 
2600
        case 451: 
2601
        case 456: 
2602
        case 461: 
2603
        case 467: 
2590
          { 
2604
          { 
2605
	/* JSP directive begun (anywhere)
2606
	 * A consequence of the start anywhere possibility is that the
2607
	 *  incoming state must be checked to see if it's erroneous
2608
	 *  due to the order of precedence generated
2609
	 */
2610
	// begin sanity checks
2611
	if(yystate() == ST_JSP_CONTENT) {
2612
		// at the beginning?!
2613
		yypushback(2);
2614
		return JSP_CONTENT;
2615
	}
2616
	else if(yystate() == ST_BLOCK_TAG_SCAN) {
2617
		yypushback(3);
2618
		return doBlockTagScan();
2619
	}
2620
	else if(yystate() == ST_XML_COMMENT) {
2621
		yypushback(3);
2622
		return scanXMLCommentText();
2623
	}
2624
	else if(yystate() == ST_JSP_COMMENT) {
2625
		yypushback(3);
2626
		return scanJSPCommentText();
2627
	}
2628
	// end sanity checks
2591
	fStateStack.push(yystate());
2629
	fStateStack.push(yystate());
2592
	if(fStateStack.peek()==YYINITIAL) {
2630
	if(fStateStack.peek()==YYINITIAL) {
2631
		// the simple case, just a declaration out in content
2593
		if(Debug.debugTokenizer)
2632
		if(Debug.debugTokenizer)
2594
			dump("\nJSP directive start");//$NON-NLS-1$
2633
			dump("\nJSP directive start");//$NON-NLS-1$
2595
		yybegin(ST_JSP_DIRECTIVE_NAME);
2634
		yybegin(ST_JSP_DIRECTIVE_NAME);
Lines 2600-2663 Link Here
2600
			System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
2639
			System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
2601
		}
2640
		}
2602
		if(Debug.debugTokenizer)
2641
		if(Debug.debugTokenizer)
2603
			dump("JSP directive start");//$NON-NLS-1$
2642
			dump("JSP declaration start");//$NON-NLS-1$
2643
		if(yystate() == ST_XML_ATTRIBUTE_VALUE_DQUOTED)
2644
			fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_DQUOTED;
2645
		else if(yystate() == ST_XML_ATTRIBUTE_VALUE_SQUOTED)
2646
			fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_SQUOTED;
2647
		else if(yystate() == ST_CDATA_TEXT) {
2648
			fEmbeddedPostState = ST_CDATA_TEXT;
2649
			fEmbeddedHint = XML_CDATA_TEXT;
2650
		}
2604
		yybegin(ST_JSP_DIRECTIVE_NAME);
2651
		yybegin(ST_JSP_DIRECTIVE_NAME);
2605
		assembleEmbeddedContainer(JSP_DIRECTIVE_OPEN, new String[]{JSP_DIRECTIVE_CLOSE, JSP_CLOSE});
2652
		assembleEmbeddedContainer(JSP_DIRECTIVE_OPEN, new String[]{JSP_DIRECTIVE_CLOSE, JSP_CLOSE});
2606
		if(yystate() == ST_BLOCK_TAG_INTERNAL_SCAN) {
2653
		if(yystate() == ST_BLOCK_TAG_INTERNAL_SCAN) {
2607
			yybegin(ST_BLOCK_TAG_SCAN);
2654
			yybegin(ST_BLOCK_TAG_SCAN);
2608
			return BLOCK_TEXT;
2655
			return BLOCK_TEXT;
2609
		}
2656
		}
2657
		// required help for successive embedded regions
2658
		if(yystate() == ST_XML_TAG_NAME) {
2659
			fEmbeddedHint = XML_TAG_NAME;
2660
			fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
2661
		}
2662
		else if((yystate() == ST_XML_ATTRIBUTE_NAME || yystate() == ST_XML_EQUALS)) {
2663
			fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
2664
			fEmbeddedPostState = ST_XML_EQUALS;
2665
		}
2666
		else if(yystate() == ST_XML_ATTRIBUTE_VALUE) {
2667
			fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;
2668
			fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
2669
		}
2610
		return PROXY_CONTEXT;
2670
		return PROXY_CONTEXT;
2611
	}
2671
	}
2612
 }
2672
 }
2613
        case 673: break;
2673
        case 682: break;
2614
        case 358: 
2674
        case 355: 
2615
          { 
2675
          { 
2616
	yybegin(ST_JSP_VBL_DQUOTES_END);
2676
	yybegin(ST_JSP_VBL_DQUOTES_END);
2617
	return JSP_VBL_QUOTED_CONTENT;
2677
	return JSP_VBL_QUOTED_CONTENT;
2618
 }
2678
 }
2619
        case 674: break;
2679
        case 683: break;
2620
        case 354: 
2680
        case 351: 
2621
          { 
2681
          { 
2622
	yybegin(ST_JSP_VBL_SQUOTES_END);
2682
	yybegin(ST_JSP_VBL_SQUOTES_END);
2623
	return JSP_VBL_QUOTED_CONTENT;
2683
	return JSP_VBL_QUOTED_CONTENT;
2624
 }
2684
 }
2625
        case 675: break;
2685
        case 684: break;
2626
        case 352: 
2686
        case 349: 
2627
          { 
2687
          { 
2628
	fELlevel++;
2688
	fELlevel++;
2629
	if(fELlevel == 1) {
2689
	if(fELlevel == 1) {
2630
		return JSP_VBL_OPEN;
2690
		return JSP_VBL_OPEN;
2631
	}
2691
	}
2632
 }
2692
 }
2633
        case 676: break;
2693
        case 685: break;
2634
        case 342: 
2694
        case 339: 
2635
          { 
2695
          { 
2636
	yybegin(ST_JSP_EL_DQUOTES_END);
2696
	yybegin(ST_JSP_EL_DQUOTES_END);
2637
	return JSP_EL_QUOTED_CONTENT;
2697
	return JSP_EL_QUOTED_CONTENT;
2638
 }
2698
 }
2639
        case 677: break;
2699
        case 686: break;
2640
        case 338: 
2700
        case 335: 
2641
          { 
2701
          { 
2642
	yybegin(ST_JSP_EL_SQUOTES_END);
2702
	yybegin(ST_JSP_EL_SQUOTES_END);
2643
	return JSP_EL_QUOTED_CONTENT;
2703
	return JSP_EL_QUOTED_CONTENT;
2644
 }
2704
 }
2645
        case 678: break;
2705
        case 687: break;
2646
        case 336: 
2706
        case 333: 
2647
          { 
2707
          { 
2648
	//System.out.println(JSP_EL_CONTENT+ ":[" + yytext() + "]");
2708
	//System.out.println(JSP_EL_CONTENT+ ":[" + yytext() + "]");
2649
	return JSP_EL_CONTENT;
2709
	return JSP_EL_CONTENT;
2650
 }
2710
 }
2651
        case 679: break;
2711
        case 688: break;
2652
        case 335: 
2712
        case 332: 
2653
          { 
2713
          { 
2654
	fELlevel++;
2714
	fELlevel++;
2655
	if(fELlevel == 1) {
2715
	if(fELlevel == 1) {
2656
		return JSP_EL_OPEN;
2716
		return JSP_EL_OPEN;
2657
	}
2717
	}
2658
 }
2718
 }
2659
        case 680: break;
2719
        case 689: break;
2660
        case 332: 
2720
        case 329: 
2661
          { 
2721
          { 
2662
	int enterState = yystate();
2722
	int enterState = yystate();
2663
	yybegin(ST_JSP_DQUOTED_VBL);
2723
	yybegin(ST_JSP_DQUOTED_VBL);
Lines 2672-2679 Link Here
2672
	}
2732
	}
2673
	return PROXY_CONTEXT;
2733
	return PROXY_CONTEXT;
2674
 }
2734
 }
2675
        case 681: break;
2735
        case 690: break;
2676
        case 331: 
2736
        case 328: 
2677
          { 
2737
          { 
2678
	int enterState = yystate();
2738
	int enterState = yystate();
2679
	yybegin(ST_JSP_DQUOTED_EL);
2739
	yybegin(ST_JSP_DQUOTED_EL);
Lines 2688-2695 Link Here
2688
	}
2748
	}
2689
	return PROXY_CONTEXT;
2749
	return PROXY_CONTEXT;
2690
 }
2750
 }
2691
        case 682: break;
2751
        case 691: break;
2692
        case 329: 
2752
        case 326: 
2693
          { 
2753
          { 
2694
	int enterState = yystate();
2754
	int enterState = yystate();
2695
	yybegin(ST_JSP_SQUOTED_VBL);
2755
	yybegin(ST_JSP_SQUOTED_VBL);
Lines 2704-2711 Link Here
2704
	}
2764
	}
2705
	return PROXY_CONTEXT;
2765
	return PROXY_CONTEXT;
2706
 }
2766
 }
2707
        case 683: break;
2767
        case 692: break;
2708
        case 328: 
2768
        case 325: 
2709
          { 
2769
          { 
2710
	int enterState = yystate();
2770
	int enterState = yystate();
2711
	yybegin(ST_JSP_SQUOTED_EL);
2771
	yybegin(ST_JSP_SQUOTED_EL);
Lines 2720-2727 Link Here
2720
	}
2780
	}
2721
	return PROXY_CONTEXT;
2781
	return PROXY_CONTEXT;
2722
 }
2782
 }
2723
        case 684: break;
2783
        case 693: break;
2724
        case 327: 
2784
        case 324: 
2725
          { 
2785
          { 
2726
	if (Debug.debugTokenizer) {
2786
	if (Debug.debugTokenizer) {
2727
		System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
2787
		System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
Lines 2737-2751 Link Here
2737
        yybegin(incomingState);
2797
        yybegin(incomingState);
2738
	return PROXY_CONTEXT;
2798
	return PROXY_CONTEXT;
2739
 }
2799
 }
2740
        case 685: break;
2800
        case 694: break;
2741
        case 286: 
2801
        case 283: 
2742
        case 298: 
2802
        case 295: 
2743
        case 304: 
2803
        case 301: 
2744
          { 
2804
          { 
2745
	return XML_DOCTYPE_INTERNAL_SUBSET;
2805
	return XML_DOCTYPE_INTERNAL_SUBSET;
2746
 }
2806
 }
2747
        case 686: break;
2807
        case 695: break;
2748
        case 274: 
2808
        case 271: 
2749
          { 
2809
          { 
2750
	String tagName = yytext().substring(1);
2810
	String tagName = yytext().substring(1);
2751
	// pushback to just after the opening bracket
2811
	// pushback to just after the opening bracket
Lines 2770-2777 Link Here
2770
	yybegin(ST_XML_ATTRIBUTE_NAME);
2830
	yybegin(ST_XML_ATTRIBUTE_NAME);
2771
	return PROXY_CONTEXT;
2831
	return PROXY_CONTEXT;
2772
 }
2832
 }
2773
        case 687: break;
2833
        case 696: break;
2774
        case 272: 
2834
        case 269: 
2775
          { 
2835
          { 
2776
	String tagName = yytext().substring(1);
2836
	String tagName = yytext().substring(1);
2777
	// pushback to just after the opening bracket
2837
	// pushback to just after the opening bracket
Lines 2796-2803 Link Here
2796
	yybegin(ST_XML_EQUALS);
2856
	yybegin(ST_XML_EQUALS);
2797
	return PROXY_CONTEXT;
2857
	return PROXY_CONTEXT;
2798
 }
2858
 }
2799
        case 688: break;
2859
        case 697: break;
2800
        case 270: 
2860
        case 267: 
2801
          { 
2861
          { 
2802
        yybegin(YYINITIAL);
2862
        yybegin(YYINITIAL);
2803
	fEmbeddedHint = UNDEFINED;
2863
	fEmbeddedHint = UNDEFINED;
Lines 2805-2812 Link Here
2805
		dump("empty tag close");//$NON-NLS-1$
2865
		dump("empty tag close");//$NON-NLS-1$
2806
        return XML_EMPTY_TAG_CLOSE;
2866
        return XML_EMPTY_TAG_CLOSE;
2807
 }
2867
 }
2808
        case 689: break;
2868
        case 698: break;
2809
        case 126: 
2869
        case 125: 
2810
          { 
2870
          { 
2811
	if (Debug.debugTokenizer) {
2871
	if (Debug.debugTokenizer) {
2812
		System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
2872
		System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
Lines 2824-2831 Link Here
2824
	yybegin(ST_XML_ATTRIBUTE_NAME);
2884
	yybegin(ST_XML_ATTRIBUTE_NAME);
2825
	return PROXY_CONTEXT;
2885
	return PROXY_CONTEXT;
2826
 }
2886
 }
2827
        case 690: break;
2887
        case 699: break;
2828
        case 124: 
2888
        case 123: 
2829
          { 
2889
          { 
2830
	if (Debug.debugTokenizer) {
2890
	if (Debug.debugTokenizer) {
2831
		System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
2891
		System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
Lines 2843-2858 Link Here
2843
	fEmbeddedPostState = ST_XML_EQUALS;
2903
	fEmbeddedPostState = ST_XML_EQUALS;
2844
	return PROXY_CONTEXT;
2904
	return PROXY_CONTEXT;
2845
 }
2905
 }
2846
        case 691: break;
2906
        case 700: break;
2847
        case 123: 
2907
        case 122: 
2908
        case 127: 
2848
        case 128: 
2909
        case 128: 
2849
        case 129: 
2910
        case 273: 
2850
        case 276: 
2911
        case 277: 
2851
        case 280: 
2912
        case 278: 
2852
        case 281: 
2913
        case 387: 
2853
        case 390: 
2914
        case 390: 
2854
        case 393: 
2915
        case 481: 
2855
        case 472: 
2856
          { 
2916
          { 
2857
	if(Debug.debugTokenizer)
2917
	if(Debug.debugTokenizer)
2858
		dump("attr value");//$NON-NLS-1$
2918
		dump("attr value");//$NON-NLS-1$
Lines 2861-2868 Link Here
2861
        yybegin(ST_XML_ATTRIBUTE_NAME);
2921
        yybegin(ST_XML_ATTRIBUTE_NAME);
2862
        return XML_TAG_ATTRIBUTE_VALUE;
2922
        return XML_TAG_ATTRIBUTE_VALUE;
2863
 }
2923
 }
2864
        case 692: break;
2924
        case 701: break;
2865
        case 122: 
2925
        case 121: 
2866
          { 
2926
          { 
2867
	if(Debug.debugTokenizer)
2927
	if(Debug.debugTokenizer)
2868
		dump("equals");//$NON-NLS-1$
2928
		dump("equals");//$NON-NLS-1$
Lines 2871-2879 Link Here
2871
        yybegin(ST_XML_ATTRIBUTE_VALUE);
2931
        yybegin(ST_XML_ATTRIBUTE_VALUE);
2872
        return XML_TAG_ATTRIBUTE_EQUALS;
2932
        return XML_TAG_ATTRIBUTE_EQUALS;
2873
 }
2933
 }
2874
        case 693: break;
2934
        case 702: break;
2875
        case 121: 
2935
        case 120: 
2876
          { 
2936
          { 
2877
	if(Debug.debugTokenizer)
2937
	if(Debug.debugTokenizer)
2878
		dump("attr name");//$NON-NLS-1$
2938
		dump("attr name");//$NON-NLS-1$
2879
	fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
2939
	fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
Lines 2881-2931 Link Here
2881
        yybegin(ST_XML_EQUALS);
2941
        yybegin(ST_XML_EQUALS);
2882
        return XML_TAG_ATTRIBUTE_NAME;
2942
        return XML_TAG_ATTRIBUTE_NAME;
2883
 }
2943
 }
2884
        case 694: break;
2944
        case 703: break;
2945
        case 116: 
2885
        case 117: 
2946
        case 117: 
2886
        case 118: 
2947
        case 118: 
2887
        case 119: 
2948
        case 268: 
2888
        case 271: 
2949
        case 386: 
2889
        case 389: 
2950
        case 480: 
2890
        case 471: 
2951
        case 520: 
2891
        case 511: 
2952
        case 521: 
2892
        case 512: 
2953
        case 540: 
2893
        case 531: 
2954
        case 541: 
2894
        case 532: 
2955
        case 559: 
2895
        case 550: 
2956
        case 560: 
2896
        case 551: 
2897
        case 564: 
2898
        case 573: 
2957
        case 573: 
2899
        case 581: 
2958
        case 582: 
2900
        case 583: 
2901
        case 585: 
2902
        case 587: 
2903
        case 590: 
2959
        case 590: 
2960
        case 592: 
2961
        case 594: 
2904
        case 596: 
2962
        case 596: 
2905
        case 597: 
2906
        case 598: 
2907
        case 599: 
2963
        case 599: 
2908
        case 600: 
2964
        case 605: 
2909
        case 606: 
2965
        case 606: 
2910
        case 607: 
2966
        case 607: 
2911
        case 608: 
2967
        case 608: 
2912
        case 609: 
2968
        case 609: 
2913
        case 610: 
2969
        case 615: 
2914
        case 616: 
2970
        case 616: 
2915
        case 617: 
2971
        case 617: 
2972
        case 618: 
2916
        case 619: 
2973
        case 619: 
2917
        case 620: 
2974
        case 625: 
2918
        case 626: 
2975
        case 626: 
2919
        case 627: 
2920
        case 628: 
2976
        case 628: 
2921
        case 629: 
2977
        case 629: 
2922
        case 635: 
2978
        case 635: 
2923
        case 636: 
2979
        case 636: 
2924
        case 637: 
2980
        case 637: 
2925
        case 638: 
2981
        case 638: 
2926
        case 641: 
2927
        case 642: 
2928
        case 644: 
2982
        case 644: 
2983
        case 645: 
2984
        case 646: 
2985
        case 647: 
2986
        case 650: 
2987
        case 651: 
2988
        case 653: 
2929
          { 
2989
          { 
2930
	if(Debug.debugTokenizer)
2990
	if(Debug.debugTokenizer)
2931
		dump("tag name");//$NON-NLS-1$
2991
		dump("tag name");//$NON-NLS-1$
Lines 2934-2941 Link Here
2934
        yybegin(ST_XML_ATTRIBUTE_NAME);
2994
        yybegin(ST_XML_ATTRIBUTE_NAME);
2935
        return XML_TAG_NAME;
2995
        return XML_TAG_NAME;
2936
 }
2996
 }
2937
        case 695: break;
2997
        case 704: break;
2938
        case 115: 
2998
        case 114: 
2939
          { 
2999
          { 
2940
	if(Debug.debugTokenizer)
3000
	if(Debug.debugTokenizer)
2941
		dump("tag close");//$NON-NLS-1$
3001
		dump("tag close");//$NON-NLS-1$
Lines 2949-3004 Link Here
2949
        	yybegin(YYINITIAL);
3009
        	yybegin(YYINITIAL);
2950
        return XML_TAG_CLOSE;
3010
        return XML_TAG_CLOSE;
2951
 }
3011
 }
2952
        case 696: break;
3012
        case 705: break;
2953
        case 108: 
3013
        case 107: 
2954
        case 112: 
3014
        case 111: 
2955
        case 266: 
3015
        case 263: 
2956
          { 
3016
          { 
2957
	if(Debug.debugTokenizer)
3017
	if(Debug.debugTokenizer)
2958
		dump("attr value");//$NON-NLS-1$
3018
		dump("attr value");//$NON-NLS-1$
2959
        yybegin(ST_JSP_DIRECTIVE_ATTRIBUTE_NAME);
3019
        yybegin(ST_JSP_DIRECTIVE_ATTRIBUTE_NAME);
2960
        return XML_TAG_ATTRIBUTE_VALUE;
3020
        return XML_TAG_ATTRIBUTE_VALUE;
2961
 }
3021
 }
2962
        case 697: break;
3022
        case 706: break;
2963
        case 107: 
3023
        case 106: 
2964
          { 
3024
          { 
2965
	if(Debug.debugTokenizer)
3025
	if(Debug.debugTokenizer)
2966
		dump("equals");//$NON-NLS-1$
3026
		dump("equals");//$NON-NLS-1$
2967
        yybegin(ST_JSP_DIRECTIVE_ATTRIBUTE_VALUE);
3027
        yybegin(ST_JSP_DIRECTIVE_ATTRIBUTE_VALUE);
2968
        return XML_TAG_ATTRIBUTE_EQUALS;
3028
        return XML_TAG_ATTRIBUTE_EQUALS;
2969
 }
3029
 }
2970
        case 698: break;
3030
        case 707: break;
2971
        case 106: 
3031
        case 105: 
2972
          { 
3032
          { 
2973
	if(Debug.debugTokenizer)
3033
	if(Debug.debugTokenizer)
2974
		dump("attr name");//$NON-NLS-1$
3034
		dump("attr name");//$NON-NLS-1$
2975
        yybegin(ST_JSP_DIRECTIVE_EQUALS);
3035
        yybegin(ST_JSP_DIRECTIVE_EQUALS);
2976
        return XML_TAG_ATTRIBUTE_NAME;
3036
        return XML_TAG_ATTRIBUTE_NAME;
2977
 }
3037
 }
2978
        case 699: break;
3038
        case 708: break;
2979
        case 103: 
3039
        case 102: 
2980
          { 
3040
          { 
2981
	if(Debug.debugTokenizer)
3041
	if(Debug.debugTokenizer)
2982
		dump("JSP directive name");//$NON-NLS-1$
3042
		dump("JSP directive name");//$NON-NLS-1$
2983
	yybegin(ST_JSP_DIRECTIVE_NAME_WHITESPACE);
3043
	yybegin(ST_JSP_DIRECTIVE_NAME_WHITESPACE);
2984
	return JSP_DIRECTIVE_NAME;
3044
	return JSP_DIRECTIVE_NAME;
2985
 }
3045
 }
2986
        case 700: break;
3046
        case 709: break;
3047
        case 98: 
2987
        case 99: 
3048
        case 99: 
2988
        case 100: 
3049
        case 100: 
2989
        case 101: 
2990
          { 
3050
          { 
2991
	if(Debug.debugTokenizer)
3051
	if(Debug.debugTokenizer)
2992
		dump("JSP code content");//$NON-NLS-1$
3052
		dump("JSP code content");//$NON-NLS-1$
2993
	return doScan("%>", false, false, false, JSP_CONTENT, ST_JSP_CONTENT, ST_JSP_CONTENT);
3053
	return doScan("%>", false, false, false, JSP_CONTENT, ST_JSP_CONTENT, ST_JSP_CONTENT);
2994
 }
3054
 }
2995
        case 701: break;
3055
        case 710: break;
2996
        case 95: 
3056
        case 94: 
3057
        case 96: 
2997
        case 97: 
3058
        case 97: 
2998
        case 98: 
3059
        case 253: 
2999
        case 256: 
3060
        case 254: 
3000
        case 257: 
3061
        case 257: 
3001
        case 260: 
3002
          { 
3062
          { 
3003
	if(Debug.debugTokenizer)
3063
	if(Debug.debugTokenizer)
3004
		dump("DHTML processing instruction attribute value");//$NON-NLS-1$
3064
		dump("DHTML processing instruction attribute value");//$NON-NLS-1$
Lines 3007-3014 Link Here
3007
        yybegin(ST_DHTML_ATTRIBUTE_NAME);
3067
        yybegin(ST_DHTML_ATTRIBUTE_NAME);
3008
        return XML_TAG_ATTRIBUTE_VALUE;
3068
        return XML_TAG_ATTRIBUTE_VALUE;
3009
 }
3069
 }
3010
        case 702: break;
3070
        case 711: break;
3011
        case 94: 
3071
        case 93: 
3012
          { 
3072
          { 
3013
	if(Debug.debugTokenizer)
3073
	if(Debug.debugTokenizer)
3014
		dump("DHTML processing instruction '='");//$NON-NLS-1$
3074
		dump("DHTML processing instruction '='");//$NON-NLS-1$
Lines 3017-3032 Link Here
3017
        yybegin(ST_DHTML_ATTRIBUTE_VALUE);
3077
        yybegin(ST_DHTML_ATTRIBUTE_VALUE);
3018
        return XML_TAG_ATTRIBUTE_EQUALS;
3078
        return XML_TAG_ATTRIBUTE_EQUALS;
3019
 }
3079
 }
3020
        case 703: break;
3080
        case 712: break;
3021
        case 93: 
3081
        case 92: 
3022
          { 
3082
          { 
3023
	if(Debug.debugTokenizer)
3083
	if(Debug.debugTokenizer)
3024
		dump("DHTML processing instruction attribute name");//$NON-NLS-1$
3084
		dump("DHTML processing instruction attribute name");//$NON-NLS-1$
3025
        yybegin(ST_DHTML_EQUALS);
3085
        yybegin(ST_DHTML_EQUALS);
3026
        return XML_TAG_ATTRIBUTE_NAME;
3086
        return XML_TAG_ATTRIBUTE_NAME;
3027
 }
3087
 }
3028
        case 704: break;
3088
        case 713: break;
3029
        case 91: 
3089
        case 90: 
3030
          { 
3090
          { 
3031
	if(Debug.debugTokenizer)
3091
	if(Debug.debugTokenizer)
3032
		dump("DHTML processing instruction end");//$NON-NLS-1$
3092
		dump("DHTML processing instruction end");//$NON-NLS-1$
Lines 3034-3043 Link Here
3034
        yybegin(YYINITIAL);
3094
        yybegin(YYINITIAL);
3035
        return XML_PI_CLOSE;
3095
        return XML_PI_CLOSE;
3036
 }
3096
 }
3037
        case 705: break;
3097
        case 714: break;
3038
        case 85: 
3098
        case 84: 
3039
        case 87: 
3099
        case 86: 
3040
        case 247: 
3100
        case 244: 
3041
          { 
3101
          { 
3042
	if(Debug.debugTokenizer)
3102
	if(Debug.debugTokenizer)
3043
		dump("XML processing instruction attribute value");//$NON-NLS-1$
3103
		dump("XML processing instruction attribute value");//$NON-NLS-1$
Lines 3046-3053 Link Here
3046
        yybegin(ST_XML_PI_ATTRIBUTE_NAME);
3106
        yybegin(ST_XML_PI_ATTRIBUTE_NAME);
3047
        return XML_TAG_ATTRIBUTE_VALUE;
3107
        return XML_TAG_ATTRIBUTE_VALUE;
3048
 }
3108
 }
3049
        case 706: break;
3109
        case 715: break;
3050
        case 84: 
3110
        case 83: 
3051
          { 
3111
          { 
3052
	if(Debug.debugTokenizer)
3112
	if(Debug.debugTokenizer)
3053
		dump("XML processing instruction '='");//$NON-NLS-1$
3113
		dump("XML processing instruction '='");//$NON-NLS-1$
Lines 3056-3134 Link Here
3056
        yybegin(ST_XML_PI_ATTRIBUTE_VALUE);
3116
        yybegin(ST_XML_PI_ATTRIBUTE_VALUE);
3057
        return XML_TAG_ATTRIBUTE_EQUALS;
3117
        return XML_TAG_ATTRIBUTE_EQUALS;
3058
 }
3118
 }
3059
        case 707: break;
3119
        case 716: break;
3060
        case 50: 
3120
        case 49: 
3061
        case 201: 
3121
        case 199: 
3062
        case 202: 
3122
        case 200: 
3063
        case 205: 
3123
        case 203: 
3064
        case 215: 
3124
        case 213: 
3065
        case 216: 
3125
        case 214: 
3066
        case 219: 
3126
        case 217: 
3067
        case 220: 
3127
        case 218: 
3128
        case 360: 
3068
        case 363: 
3129
        case 363: 
3069
        case 366: 
3130
        case 446: 
3070
        case 442: 
3131
        case 460: 
3071
        case 453: 
3132
        case 466: 
3072
        case 458: 
3073
          { 
3133
          { 
3074
	return JSP_VBL_CONTENT;
3134
	return JSP_VBL_CONTENT;
3075
 }
3135
 }
3076
        case 708: break;
3136
        case 717: break;
3077
        case 43: 
3137
        case 42: 
3078
        case 180: 
3138
        case 178: 
3079
        case 181: 
3139
        case 179: 
3080
        case 184: 
3140
        case 182: 
3081
        case 194: 
3141
        case 192: 
3082
        case 195: 
3142
        case 193: 
3083
        case 198: 
3143
        case 196: 
3084
        case 199: 
3144
        case 197: 
3085
        case 333: 
3145
        case 330: 
3146
        case 344: 
3086
        case 347: 
3147
        case 347: 
3087
        case 350: 
3148
        case 418: 
3088
        case 419: 
3149
        case 419: 
3089
        case 420: 
3150
        case 434: 
3090
        case 432: 
3151
        case 440: 
3091
        case 437: 
3092
          { 
3152
          { 
3093
	return JSP_EL_CONTENT;
3153
	return JSP_EL_CONTENT;
3094
 }
3154
 }
3095
        case 709: break;
3155
        case 718: break;
3096
        case 35: 
3156
        case 35: 
3157
        case 159: 
3097
        case 160: 
3158
        case 160: 
3098
        case 161: 
3159
        case 321: 
3099
        case 324: 
3160
        case 412: 
3100
        case 414: 
3161
        case 416: 
3101
        case 417: 
3162
        case 495: 
3102
        case 486: 
3163
        case 528: 
3103
        case 519: 
3164
        case 548: 
3104
        case 539: 
3165
        case 565: 
3105
        case 556: 
3166
        case 575: 
3106
        case 566: 
3107
          { 
3167
          { 
3108
	if(Debug.debugTokenizer)
3168
	if(Debug.debugTokenizer)
3109
		dump("attlist contentspec");//$NON-NLS-1$
3169
		dump("attlist contentspec");//$NON-NLS-1$
3110
	return XML_ATTLIST_DECL_CONTENT;
3170
	return XML_ATTLIST_DECL_CONTENT;
3111
 }
3171
 }
3112
        case 710: break;
3172
        case 719: break;
3113
        case 33: 
3173
        case 33: 
3174
        case 152: 
3114
        case 153: 
3175
        case 153: 
3115
        case 154: 
3176
        case 311: 
3116
        case 314: 
3177
        case 404: 
3117
        case 407: 
3178
        case 408: 
3118
        case 410: 
3179
        case 492: 
3119
        case 483: 
3180
        case 527: 
3120
        case 518: 
3181
        case 547: 
3121
        case 538: 
3182
        case 564: 
3122
        case 555: 
3183
        case 574: 
3123
        case 565: 
3124
          { 
3184
          { 
3125
	if(Debug.debugTokenizer)
3185
	if(Debug.debugTokenizer)
3126
		dump("elementdecl contentspec");//$NON-NLS-1$
3186
		dump("elementdecl contentspec");//$NON-NLS-1$
3127
	return XML_ELEMENT_DECL_CONTENT;
3187
	return XML_ELEMENT_DECL_CONTENT;
3128
 }
3188
 }
3129
        case 711: break;
3189
        case 720: break;
3130
        case 22: 
3190
        case 22: 
3131
        case 113: 
3191
        case 112: 
3132
          { 
3192
          { 
3133
	if(Debug.debugTokenizer)
3193
	if(Debug.debugTokenizer)
3134
		dump("inappropriate tag name");//$NON-NLS-1$
3194
		dump("inappropriate tag name");//$NON-NLS-1$
Lines 3140-3155 Link Here
3140
	yybegin(YYINITIAL);
3200
	yybegin(YYINITIAL);
3141
        return XML_CONTENT;
3201
        return XML_CONTENT;
3142
 }
3202
 }
3143
        case 712: break;
3203
        case 721: break;
3144
        case 18: 
3204
        case 18: 
3145
        case 105: 
3205
        case 104: 
3146
          { 
3206
          { 
3147
	if(Debug.debugTokenizer)
3207
	if(Debug.debugTokenizer)
3148
		dump("white space");//$NON-NLS-1$
3208
		dump("white space");//$NON-NLS-1$
3149
	yybegin(ST_JSP_DIRECTIVE_ATTRIBUTE_NAME);
3209
	yybegin(ST_JSP_DIRECTIVE_ATTRIBUTE_NAME);
3150
	return WHITE_SPACE;
3210
	return WHITE_SPACE;
3151
 }
3211
 }
3152
        case 713: break;
3212
        case 722: break;
3153
        case 5: 
3213
        case 5: 
3154
        case 8: 
3214
        case 8: 
3155
        case 9: 
3215
        case 9: 
Lines 3175-3213 Link Here
3175
        case 34: 
3235
        case 34: 
3176
        case 40: 
3236
        case 40: 
3177
        case 41: 
3237
        case 41: 
3178
        case 73: 
3238
        case 72: 
3179
        case 171: 
3239
        case 169: 
3180
        case 176: 
3240
        case 174: 
3181
          { 
3241
          { 
3182
	if(Debug.debugTokenizer)
3242
	if(Debug.debugTokenizer)
3183
		dump("white space");//$NON-NLS-1$
3243
		dump("white space");//$NON-NLS-1$
3184
        return WHITE_SPACE;
3244
        return WHITE_SPACE;
3185
 }
3245
 }
3186
        case 714: break;
3246
        case 723: break;
3187
        case 0: 
3247
        case 0: 
3188
        case 57: 
3248
        case 56: 
3189
        case 60: 
3249
        case 59: 
3190
        case 62: 
3250
        case 61: 
3251
        case 225: 
3191
        case 227: 
3252
        case 227: 
3192
        case 229: 
3253
        case 228: 
3193
        case 230: 
3254
        case 230: 
3194
        case 232: 
3255
        case 232: 
3195
        case 234: 
3256
        case 370: 
3196
        case 373: 
3257
        case 371: 
3197
        case 374: 
3258
        case 372: 
3198
        case 375: 
3259
        case 475: 
3199
        case 466: 
3200
          { 
3260
          { 
3201
	if(Debug.debugTokenizer)
3261
	if(Debug.debugTokenizer)
3202
		dump("\nXML content");//$NON-NLS-1$
3262
		dump("\nXML content");//$NON-NLS-1$
3203
	return XML_CONTENT;
3263
	return XML_CONTENT;
3204
 }
3264
 }
3205
        case 715: break;
3265
        case 724: break;
3206
        case 58: 
3266
        case 57: 
3207
        case 102: 
3267
        case 101: 
3208
        case 114: 
3268
        case 113: 
3209
        case 120: 
3269
        case 119: 
3210
        case 130: 
3270
        case 129: 
3211
          { 
3271
          { 
3212
	if(Debug.debugTokenizer)
3272
	if(Debug.debugTokenizer)
3213
		dump("\nstart tag open");//$NON-NLS-1$
3273
		dump("\nstart tag open");//$NON-NLS-1$
Lines 3216-3287 Link Here
3216
        yybegin(ST_XML_TAG_NAME);
3276
        yybegin(ST_XML_TAG_NAME);
3217
        return XML_TAG_OPEN;
3277
        return XML_TAG_OPEN;
3218
 }
3278
 }
3219
        case 716: break;
3279
        case 725: break;
3220
        case 59: 
3280
        case 58: 
3221
        case 61: 
3281
        case 60: 
3282
        case 64: 
3222
        case 65: 
3283
        case 65: 
3223
        case 66: 
3284
        case 66: 
3224
        case 67: 
3285
        case 70: 
3225
        case 71: 
3286
        case 71: 
3226
        case 72: 
3287
        case 81: 
3227
        case 82: 
3288
        case 85: 
3228
        case 86: 
3289
        case 87: 
3229
        case 88: 
3290
        case 88: 
3230
        case 89: 
3291
        case 89: 
3231
        case 90: 
3292
        case 91: 
3232
        case 92: 
3293
        case 95: 
3233
        case 96: 
3294
        case 103: 
3234
        case 104: 
3295
        case 108: 
3235
        case 109: 
3296
        case 109: 
3236
        case 110: 
3297
        case 110: 
3237
        case 111: 
3298
        case 115: 
3238
        case 116: 
3299
        case 124: 
3239
        case 125: 
3300
        case 131: 
3240
        case 132: 
3301
        case 132: 
3241
        case 133: 
3302
        case 133: 
3242
        case 134: 
3303
        case 134: 
3243
        case 135: 
3304
        case 136: 
3244
        case 137: 
3305
        case 137: 
3245
        case 138: 
3306
        case 139: 
3246
        case 140: 
3307
        case 140: 
3247
        case 141: 
3308
        case 141: 
3248
        case 142: 
3309
        case 144: 
3249
        case 145: 
3310
        case 145: 
3250
        case 146: 
3311
        case 146: 
3251
        case 147: 
3312
        case 149: 
3252
        case 150: 
3313
        case 150: 
3253
        case 151: 
3314
        case 151: 
3254
        case 152: 
3315
        case 156: 
3255
        case 157: 
3316
        case 157: 
3256
        case 158: 
3317
        case 158: 
3257
        case 159: 
3318
        case 166: 
3258
        case 165: 
3319
        case 171: 
3259
        case 168: 
3320
        case 172: 
3260
        case 173: 
3321
        case 176: 
3261
        case 174: 
3322
        case 177: 
3262
        case 178: 
3323
        case 184: 
3263
        case 179: 
3324
        case 185: 
3264
        case 186: 
3265
        case 187: 
3325
        case 187: 
3266
        case 189: 
3326
        case 188: 
3267
        case 190: 
3327
        case 194: 
3268
        case 196: 
3328
        case 198: 
3269
        case 200: 
3329
        case 205: 
3270
        case 207: 
3330
        case 206: 
3271
        case 208: 
3331
        case 208: 
3272
        case 210: 
3332
        case 209: 
3273
        case 211: 
3333
        case 215: 
3274
        case 217: 
3334
        case 219: 
3275
        case 221: 
3276
          { 
3335
          { 
3277
	if (Debug.debugTokenizer)
3336
	if (Debug.debugTokenizer)
3278
		System.out.println("!!!unexpected!!!: \"" + yytext() + "\":" + //$NON-NLS-2$//$NON-NLS-1$
3337
		System.out.println("!!!unexpected!!!: \"" + yytext() + "\":" + //$NON-NLS-2$//$NON-NLS-1$
3279
			yychar + "-" + (yychar + yylength()));//$NON-NLS-1$
3338
			yychar + "-" + (yychar + yylength()));//$NON-NLS-1$
3280
	return UNDEFINED;
3339
	return UNDEFINED;
3281
 }
3340
 }
3282
        case 717: break;
3341
        case 726: break;
3342
        case 62: 
3283
        case 63: 
3343
        case 63: 
3284
        case 64: 
3285
          { 
3344
          { 
3286
	if(Debug.debugTokenizer)
3345
	if(Debug.debugTokenizer)
3287
		dump("CDATA text");//$NON-NLS-1$
3346
		dump("CDATA text");//$NON-NLS-1$
Lines 3292-3337 Link Here
3292
		yybegin(ST_CDATA_END);
3351
		yybegin(ST_CDATA_END);
3293
	return returnedContext;
3352
	return returnedContext;
3294
 }
3353
 }
3295
        case 718: break;
3354
        case 727: break;
3296
        case 68: 
3355
        case 67: 
3297
        case 188: 
3356
        case 186: 
3298
        case 191: 
3357
        case 189: 
3299
        case 209: 
3358
        case 207: 
3300
        case 212: 
3359
        case 210: 
3301
          { 
3360
          { 
3302
	if(Debug.debugTokenizer)
3361
	if(Debug.debugTokenizer)
3303
		dump("LINE FEED");//$NON-NLS-1$
3362
		dump("LINE FEED");//$NON-NLS-1$
3304
	return WHITE_SPACE;
3363
	return WHITE_SPACE;
3305
 }
3364
 }
3306
        case 719: break;
3365
        case 728: break;
3366
        case 68: 
3307
        case 69: 
3367
        case 69: 
3308
        case 70: 
3309
          { 
3368
          { 
3310
	if(Debug.debugTokenizer)
3369
	if(Debug.debugTokenizer)
3311
		dump("comment content");//$NON-NLS-1$
3370
		dump("comment content");//$NON-NLS-1$
3312
	return scanXMLCommentText();
3371
	return scanXMLCommentText();
3313
 }
3372
 }
3314
        case 720: break;
3373
        case 729: break;
3374
        case 73: 
3315
        case 74: 
3375
        case 74: 
3316
        case 75: 
3376
        case 75: 
3317
        case 76: 
3377
        case 76: 
3318
        case 77: 
3378
        case 237: 
3319
        case 240: 
3379
        case 238: 
3320
        case 241: 
3380
        case 239: 
3321
        case 242: 
3381
        case 383: 
3322
        case 386: 
3382
        case 478: 
3323
        case 469: 
3383
        case 479: 
3324
        case 470: 
3384
        case 518: 
3325
        case 509: 
3385
        case 519: 
3326
        case 510: 
3386
        case 538: 
3327
        case 529: 
3387
        case 558: 
3328
        case 549: 
3388
        case 571: 
3329
        case 562: 
3389
        case 581: 
3330
        case 572: 
3390
        case 589: 
3331
        case 580: 
3391
        case 591: 
3332
        case 582: 
3392
        case 593: 
3333
        case 584: 
3393
        case 595: 
3334
        case 586: 
3335
          { 
3394
          { 
3336
	if(Debug.debugTokenizer)
3395
	if(Debug.debugTokenizer)
3337
		dump("processing instruction target");//$NON-NLS-1$
3396
		dump("processing instruction target");//$NON-NLS-1$
Lines 3339-3368 Link Here
3339
        yybegin(ST_PI_WS);
3398
        yybegin(ST_PI_WS);
3340
        return XML_TAG_NAME;
3399
        return XML_TAG_NAME;
3341
 }
3400
 }
3342
        case 721: break;
3401
        case 730: break;
3343
        case 78: 
3402
        case 77: 
3344
          { 
3403
          { 
3345
        yybegin(ST_PI_CONTENT);
3404
        yybegin(ST_PI_CONTENT);
3346
        return WHITE_SPACE;
3405
        return WHITE_SPACE;
3347
 }
3406
 }
3348
        case 722: break;
3407
        case 731: break;
3408
        case 78: 
3349
        case 79: 
3409
        case 79: 
3350
        case 80: 
3410
        case 80: 
3351
        case 81: 
3352
          { 
3411
          { 
3353
		// block scan until close is found
3412
		// block scan until close is found
3354
	return doScan("?>", false, false, false, XML_PI_CONTENT, ST_XML_PI_TAG_CLOSE, ST_XML_PI_TAG_CLOSE);
3413
	return doScan("?>", false, false, false, XML_PI_CONTENT, ST_XML_PI_TAG_CLOSE, ST_XML_PI_TAG_CLOSE);
3355
 }
3414
 }
3356
        case 723: break;
3415
        case 732: break;
3357
        case 83: 
3416
        case 82: 
3358
          { 
3417
          { 
3359
	if(Debug.debugTokenizer)
3418
	if(Debug.debugTokenizer)
3360
		dump("XML processing instruction attribute name");//$NON-NLS-1$
3419
		dump("XML processing instruction attribute name");//$NON-NLS-1$
3361
        yybegin(ST_XML_PI_EQUALS);
3420
        yybegin(ST_XML_PI_EQUALS);
3362
        return XML_TAG_ATTRIBUTE_NAME;
3421
        return XML_TAG_ATTRIBUTE_NAME;
3363
 }
3422
 }
3364
        case 724: break;
3423
        case 733: break;
3365
        case 127: 
3424
        case 126: 
3366
          { 
3425
          { 
3367
	if (Debug.debugTokenizer) {
3426
	if (Debug.debugTokenizer) {
3368
		System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
3427
		System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
Lines 3380-3387 Link Here
3380
        yybegin(ST_XML_ATTRIBUTE_NAME);
3439
        yybegin(ST_XML_ATTRIBUTE_NAME);
3381
	return PROXY_CONTEXT;
3440
	return PROXY_CONTEXT;
3382
 }
3441
 }
3383
        case 725: break;
3442
        case 734: break;
3384
        case 131: 
3443
        case 130: 
3385
          { 
3444
          { 
3386
	if(Debug.debugTokenizer)
3445
	if(Debug.debugTokenizer)
3387
		dump("declaration end");//$NON-NLS-1$
3446
		dump("declaration end");//$NON-NLS-1$
Lines 3392-3411 Link Here
3392
	yybegin(fStateStack.pop());
3451
	yybegin(fStateStack.pop());
3393
	return XML_DECLARATION_CLOSE;
3452
	return XML_DECLARATION_CLOSE;
3394
 }
3453
 }
3395
        case 726: break;
3454
        case 735: break;
3396
        case 136: 
3455
        case 135: 
3397
          { 
3456
          { 
3398
	if(Debug.debugTokenizer)
3457
	if(Debug.debugTokenizer)
3399
		dump("doctype type");//$NON-NLS-1$
3458
		dump("doctype type");//$NON-NLS-1$
3400
	yybegin(ST_XML_DOCTYPE_EXTERNAL_ID);
3459
	yybegin(ST_XML_DOCTYPE_EXTERNAL_ID);
3401
	return XML_DOCTYPE_NAME;
3460
	return XML_DOCTYPE_NAME;
3402
 }
3461
 }
3403
        case 727: break;
3462
        case 736: break;
3404
        case 139: 
3463
        case 138: 
3405
        case 143: 
3464
        case 142: 
3406
        case 291: 
3465
        case 288: 
3407
        case 295: 
3466
        case 292: 
3408
        case 402: 
3467
        case 399: 
3409
          { 
3468
          { 
3410
	if(Debug.debugTokenizer)
3469
	if(Debug.debugTokenizer)
3411
		dump("doctype public reference");//$NON-NLS-1$
3470
		dump("doctype public reference");//$NON-NLS-1$
Lines 3414-3423 Link Here
3414
	yybegin(ST_XML_DOCTYPE_ID_SYSTEM);
3473
	yybegin(ST_XML_DOCTYPE_ID_SYSTEM);
3415
	return XML_DOCTYPE_EXTERNAL_ID_PUBREF;
3474
	return XML_DOCTYPE_EXTERNAL_ID_PUBREF;
3416
 }
3475
 }
3417
        case 728: break;
3476
        case 737: break;
3418
        case 144: 
3477
        case 143: 
3419
        case 148: 
3478
        case 147: 
3420
        case 301: 
3479
        case 298: 
3421
          { 
3480
          { 
3422
	if(Debug.debugTokenizer)
3481
	if(Debug.debugTokenizer)
3423
		dump("doctype system reference");//$NON-NLS-1$
3482
		dump("doctype system reference");//$NON-NLS-1$
Lines 3426-3436 Link Here
3426
	yybegin(ST_XML_DECLARATION_CLOSE);
3485
	yybegin(ST_XML_DECLARATION_CLOSE);
3427
	return XML_DOCTYPE_EXTERNAL_ID_SYSREF;
3486
	return XML_DOCTYPE_EXTERNAL_ID_SYSREF;
3428
 }
3487
 }
3429
        case 729: break;
3488
        case 738: break;
3430
        case 149: 
3489
        case 148: 
3431
        case 307: 
3490
        case 304: 
3432
        case 311: 
3491
        case 308: 
3433
        case 405: 
3492
        case 402: 
3434
          { 
3493
          { 
3435
	if(Debug.debugTokenizer)
3494
	if(Debug.debugTokenizer)
3436
		dump("elementdecl name");//$NON-NLS-1$
3495
		dump("elementdecl name");//$NON-NLS-1$
Lines 3439-3446 Link Here
3439
	yybegin(ST_XML_ELEMENT_DECLARATION_CONTENT);
3498
	yybegin(ST_XML_ELEMENT_DECLARATION_CONTENT);
3440
	return XML_ELEMENT_DECL_NAME;
3499
	return XML_ELEMENT_DECL_NAME;
3441
 }
3500
 }
3442
        case 730: break;
3501
        case 739: break;
3443
        case 155: 
3502
        case 154: 
3444
          { 
3503
          { 
3445
	if(Debug.debugTokenizer)
3504
	if(Debug.debugTokenizer)
3446
		dump("elementdecl close");//$NON-NLS-1$
3505
		dump("elementdecl close");//$NON-NLS-1$
Lines 3451-3461 Link Here
3451
	yybegin(fStateStack.pop());
3510
	yybegin(fStateStack.pop());
3452
	return XML_DECLARATION_CLOSE;
3511
	return XML_DECLARATION_CLOSE;
3453
 }
3512
 }
3454
        case 731: break;
3513
        case 740: break;
3455
        case 156: 
3514
        case 155: 
3456
        case 317: 
3515
        case 314: 
3457
        case 321: 
3516
        case 318: 
3458
        case 412: 
3517
        case 410: 
3459
          { 
3518
          { 
3460
	if(Debug.debugTokenizer)
3519
	if(Debug.debugTokenizer)
3461
		dump("attlist name");//$NON-NLS-1$
3520
		dump("attlist name");//$NON-NLS-1$
Lines 3464-3471 Link Here
3464
	yybegin(ST_XML_ATTLIST_DECLARATION_CONTENT);
3523
	yybegin(ST_XML_ATTLIST_DECLARATION_CONTENT);
3465
	return XML_ATTLIST_DECL_NAME;
3524
	return XML_ATTLIST_DECL_NAME;
3466
 }
3525
 }
3467
        case 732: break;
3526
        case 741: break;
3468
        case 162: 
3527
        case 161: 
3469
          { 
3528
          { 
3470
	if(Debug.debugTokenizer)
3529
	if(Debug.debugTokenizer)
3471
		dump("attlist close");//$NON-NLS-1$
3530
		dump("attlist close");//$NON-NLS-1$
Lines 3476-3497 Link Here
3476
	yybegin(fStateStack.pop());
3535
	yybegin(fStateStack.pop());
3477
	return XML_DECLARATION_CLOSE;
3536
	return XML_DECLARATION_CLOSE;
3478
 }
3537
 }
3479
        case 733: break;
3538
        case 742: break;
3480
        case 166: 
3539
        case 164: 
3481
        case 167: 
3540
        case 165: 
3482
          { 
3541
          { 
3483
	if(Debug.debugTokenizer)
3542
	if(Debug.debugTokenizer)
3484
		dump("\nJSP comment text");//$NON-NLS-1$
3543
		dump("\nJSP comment text");//$NON-NLS-1$
3485
	return scanJSPCommentText();
3544
	return scanJSPCommentText();
3486
 }
3545
 }
3487
        case 734: break;
3546
        case 743: break;
3488
        case 169: 
3547
        case 167: 
3489
        case 175: 
3548
        case 173: 
3490
          { 
3549
          { 
3491
	return XML_TAG_ATTRIBUTE_VALUE;
3550
	return XML_TAG_ATTRIBUTE_VALUE;
3492
 }
3551
 }
3493
        case 735: break;
3552
        case 744: break;
3494
        case 170: 
3553
        case 168: 
3495
          { 
3554
          { 
3496
	if (Debug.debugTokenizer) {
3555
	if (Debug.debugTokenizer) {
3497
		System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
3556
		System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
Lines 3507-3536 Link Here
3507
        yybegin(incomingState);
3566
        yybegin(incomingState);
3508
	return PROXY_CONTEXT;
3567
	return PROXY_CONTEXT;
3509
 }
3568
 }
3510
        case 736: break;
3569
        case 745: break;
3511
        case 172: 
3570
        case 170: 
3512
          { 
3571
          { 
3513
	return XML_TAG_ATTRIBUTE_VALUE_SQUOTE;
3572
	return XML_TAG_ATTRIBUTE_VALUE_SQUOTE;
3514
 }
3573
 }
3515
        case 737: break;
3574
        case 746: break;
3516
        case 177: 
3575
        case 175: 
3517
          { 
3576
          { 
3518
	return XML_TAG_ATTRIBUTE_VALUE_DQUOTE;
3577
	return XML_TAG_ATTRIBUTE_VALUE_DQUOTE;
3519
 }
3578
 }
3520
        case 738: break;
3579
        case 747: break;
3521
        case 182: 
3580
        case 180: 
3522
          { 
3581
          { 
3523
	yybegin(ST_JSP_EL_DQUOTES);
3582
	yybegin(ST_JSP_EL_DQUOTES);
3524
	return JSP_EL_DQUOTE;
3583
	return JSP_EL_DQUOTE;
3525
 }
3584
 }
3526
        case 739: break;
3585
        case 748: break;
3527
        case 183: 
3586
        case 181: 
3528
          { 
3587
          { 
3529
	yybegin(ST_JSP_EL_SQUOTES);
3588
	yybegin(ST_JSP_EL_SQUOTES);
3530
	return JSP_EL_SQUOTE;
3589
	return JSP_EL_SQUOTE;
3531
 }
3590
 }
3532
        case 740: break;
3591
        case 749: break;
3533
        case 185: 
3592
        case 183: 
3534
          { 
3593
          { 
3535
	fELlevel--;
3594
	fELlevel--;
3536
	if(fELlevel == 0) {
3595
	if(fELlevel == 0) {
Lines 3539-3575 Link Here
3539
	}
3598
	}
3540
	return JSP_EL_CONTENT;
3599
	return JSP_EL_CONTENT;
3541
 }
3600
 }
3542
        case 741: break;
3601
        case 750: break;
3543
        case 192: 
3602
        case 190: 
3544
          { 
3603
          { 
3545
	yybegin(ST_JSP_EL);
3604
	yybegin(ST_JSP_EL);
3546
	return JSP_EL_SQUOTE;
3605
	return JSP_EL_SQUOTE;
3547
 }
3606
 }
3548
        case 742: break;
3607
        case 751: break;
3549
        case 193: 
3608
        case 191: 
3550
          { 
3609
          { 
3551
	yybegin(ST_JSP_EL);
3610
	yybegin(ST_JSP_EL);
3552
	return JSP_EL_DQUOTE;
3611
	return JSP_EL_DQUOTE;
3553
 }
3612
 }
3554
        case 743: break;
3613
        case 752: break;
3555
        case 197: 
3614
        case 195: 
3556
          { 
3615
          { 
3557
	return JSP_EL_CLOSE;
3616
	return JSP_EL_CLOSE;
3558
 }
3617
 }
3559
        case 744: break;
3618
        case 753: break;
3560
        case 203: 
3619
        case 201: 
3561
          { 
3620
          { 
3562
	yybegin(ST_JSP_VBL_DQUOTES);
3621
	yybegin(ST_JSP_VBL_DQUOTES);
3563
	return JSP_VBL_DQUOTE;
3622
	return JSP_VBL_DQUOTE;
3564
 }
3623
 }
3565
        case 745: break;
3624
        case 754: break;
3566
        case 204: 
3625
        case 202: 
3567
          { 
3626
          { 
3568
	yybegin(ST_JSP_VBL_SQUOTES);
3627
	yybegin(ST_JSP_VBL_SQUOTES);
3569
	return JSP_VBL_SQUOTE;
3628
	return JSP_VBL_SQUOTE;
3570
 }
3629
 }
3571
        case 746: break;
3630
        case 755: break;
3572
        case 206: 
3631
        case 204: 
3573
          { 
3632
          { 
3574
	fELlevel--;
3633
	fELlevel--;
3575
	if(fELlevel == 0) {
3634
	if(fELlevel == 0) {
Lines 3578-3602 Link Here
3578
	}
3637
	}
3579
	return JSP_VBL_CONTENT;
3638
	return JSP_VBL_CONTENT;
3580
 }
3639
 }
3581
        case 747: break;
3640
        case 756: break;
3582
        case 213: 
3641
        case 211: 
3583
          { 
3642
          { 
3584
	yybegin(ST_JSP_VBL);
3643
	yybegin(ST_JSP_VBL);
3585
	return JSP_VBL_SQUOTE;
3644
	return JSP_VBL_SQUOTE;
3586
 }
3645
 }
3587
        case 748: break;
3646
        case 757: break;
3588
        case 214: 
3647
        case 212: 
3589
          { 
3648
          { 
3590
	yybegin(ST_JSP_VBL);
3649
	yybegin(ST_JSP_VBL);
3591
	return JSP_VBL_DQUOTE;
3650
	return JSP_VBL_DQUOTE;
3592
 }
3651
 }
3593
        case 749: break;
3652
        case 758: break;
3594
        case 218: 
3653
        case 216: 
3595
          { 
3654
          { 
3596
	return JSP_VBL_CLOSE;
3655
	return JSP_VBL_CLOSE;
3597
 }
3656
 }
3598
        case 750: break;
3657
        case 759: break;
3599
        case 222: 
3658
        case 220: 
3600
          { 
3659
          { 
3601
	if(Debug.debugTokenizer)
3660
	if(Debug.debugTokenizer)
3602
		dump("\nend tag open");//$NON-NLS-1$
3661
		dump("\nend tag open");//$NON-NLS-1$
Lines 3605-3633 Link Here
3605
        yybegin(ST_XML_TAG_NAME);
3664
        yybegin(ST_XML_TAG_NAME);
3606
        return XML_END_TAG_OPEN;
3665
        return XML_END_TAG_OPEN;
3607
 }
3666
 }
3608
        case 751: break;
3667
        case 760: break;
3609
        case 223: 
3668
        case 221: 
3610
          { 
3669
          { 
3611
	if(Debug.debugTokenizer)
3670
	if(Debug.debugTokenizer)
3612
		dump("\nprocessing instruction start");//$NON-NLS-1$
3671
		dump("\nprocessing instruction start");//$NON-NLS-1$
3613
	yybegin(ST_PI);
3672
	yybegin(ST_PI);
3614
        return XML_PI_OPEN;
3673
        return XML_PI_OPEN;
3615
 }
3674
 }
3616
        case 752: break;
3675
        case 761: break;
3617
        case 224: 
3676
        case 222: 
3618
        case 235: 
3677
        case 310: 
3619
        case 313: 
3678
        case 320: 
3620
        case 323: 
3679
        case 331: 
3621
        case 334: 
3680
        case 336: 
3622
        case 339: 
3681
        case 340: 
3623
        case 343: 
3682
        case 343: 
3624
        case 346: 
3683
        case 346: 
3625
        case 349: 
3684
        case 348: 
3626
        case 351: 
3685
        case 352: 
3627
        case 355: 
3686
        case 356: 
3628
        case 359: 
3687
        case 359: 
3629
        case 362: 
3688
        case 362: 
3630
        case 365: 
3631
          { 
3689
          { 
3632
	/* JSP scriptlet begun (anywhere)
3690
	/* JSP scriptlet begun (anywhere)
3633
	 * A consequence of the start anywhere possibility is that the
3691
	 * A consequence of the start anywhere possibility is that the
Lines 3697-3704 Link Here
3697
		return PROXY_CONTEXT;
3755
		return PROXY_CONTEXT;
3698
	}
3756
	}
3699
 }
3757
 }
3700
        case 753: break;
3758
        case 762: break;
3701
        case 225: 
3759
        case 223: 
3702
          { 
3760
          { 
3703
	fStateStack.push(yystate());
3761
	fStateStack.push(yystate());
3704
	if(Debug.debugTokenizer)
3762
	if(Debug.debugTokenizer)
Lines 3706-3713 Link Here
3706
        yybegin(ST_XML_DECLARATION);
3764
        yybegin(ST_XML_DECLARATION);
3707
	return XML_DECLARATION_OPEN;
3765
	return XML_DECLARATION_OPEN;
3708
 }
3766
 }
3709
        case 754: break;
3767
        case 763: break;
3710
        case 239: 
3768
        case 236: 
3711
          { 
3769
          { 
3712
	if(Debug.debugTokenizer)
3770
	if(Debug.debugTokenizer)
3713
		dump("processing instruction end");//$NON-NLS-1$
3771
		dump("processing instruction end");//$NON-NLS-1$
Lines 3715-3730 Link Here
3715
        yybegin(YYINITIAL);
3773
        yybegin(YYINITIAL);
3716
        return XML_PI_CLOSE;
3774
        return XML_PI_CLOSE;
3717
 }
3775
 }
3718
        case 755: break;
3776
        case 764: break;
3719
        case 243: 
3777
        case 240: 
3720
          { 
3778
          { 
3721
		// ended with nothing inside
3779
		// ended with nothing inside
3722
		fEmbeddedHint = UNDEFINED;
3780
		fEmbeddedHint = UNDEFINED;
3723
        yybegin(YYINITIAL);
3781
        yybegin(YYINITIAL);
3724
        return XML_PI_CLOSE;
3782
        return XML_PI_CLOSE;
3725
 }
3783
 }
3726
        case 756: break;
3784
        case 765: break;
3727
        case 244: 
3785
        case 241: 
3728
          { 
3786
          { 
3729
	if(Debug.debugTokenizer)
3787
	if(Debug.debugTokenizer)
3730
		dump("XML processing instruction end");//$NON-NLS-1$
3788
		dump("XML processing instruction end");//$NON-NLS-1$
Lines 3732-3739 Link Here
3732
        yybegin(YYINITIAL);
3790
        yybegin(YYINITIAL);
3733
        return XML_PI_CLOSE;
3791
        return XML_PI_CLOSE;
3734
 }
3792
 }
3735
        case 757: break;
3793
        case 766: break;
3736
        case 261: 
3794
        case 258: 
3737
          { 
3795
          { 
3738
	if(Debug.debugTokenizer)
3796
	if(Debug.debugTokenizer)
3739
		dump("JSP end");//$NON-NLS-1$
3797
		dump("JSP end");//$NON-NLS-1$
Lines 3744-3751 Link Here
3744
	yybegin(fStateStack.pop());
3802
	yybegin(fStateStack.pop());
3745
	return JSP_CLOSE;
3803
	return JSP_CLOSE;
3746
 }
3804
 }
3747
        case 758: break;
3805
        case 767: break;
3748
        case 263: 
3806
        case 260: 
3749
          { 
3807
          { 
3750
	if(Debug.debugTokenizer)
3808
	if(Debug.debugTokenizer)
3751
		dump("JSP end");//$NON-NLS-1$
3809
		dump("JSP end");//$NON-NLS-1$
Lines 3756-3768 Link Here
3756
	yybegin(fStateStack.pop());
3814
	yybegin(fStateStack.pop());
3757
	return JSP_DIRECTIVE_CLOSE;
3815
	return JSP_DIRECTIVE_CLOSE;
3758
 }
3816
 }
3759
        case 759: break;
3817
        case 768: break;
3818
        case 162: 
3760
        case 163: 
3819
        case 163: 
3761
        case 164: 
3762
          { 
3820
          { 
3763
		return doBlockTagScan();
3821
		return doBlockTagScan();
3764
	 }
3822
	 }
3765
        case 760: break;
3823
        case 769: break;
3766
        default: 
3824
        default: 
3767
          if (yy_input == YYEOF && yy_startRead == yy_currentPos) {
3825
          if (yy_input == YYEOF && yy_startRead == yy_currentPos) {
3768
            yy_atEOF = true;
3826
            yy_atEOF = true;
(-)src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDCMDocumentManager.java (-158 / +106 lines)
Lines 59-64 Link Here
59
import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
59
import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
60
import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
60
import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
61
import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
61
import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
62
import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionCollection;
62
import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
63
import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
63
import org.eclipse.wst.sse.core.internal.util.Assert;
64
import org.eclipse.wst.sse.core.internal.util.Assert;
64
import org.eclipse.wst.sse.core.internal.util.Debug;
65
import org.eclipse.wst.sse.core.internal.util.Debug;
Lines 76-82 Link Here
76
		 * IStructuredDocumentRegion along with position cues during reparses
77
		 * IStructuredDocumentRegion along with position cues during reparses
77
		 * allow the JSPSourceParser to enable/ignore the tags as blocks.
78
		 * allow the JSPSourceParser to enable/ignore the tags as blocks.
78
		 */
79
		 */
79
		protected void addBlockTag(String tagnameNS, IStructuredDocumentRegion marker) {
80
		protected void addBlockTag(String tagnameNS, ITextRegionCollection marker) {
80
			if (getParser() == null)
81
			if (getParser() == null)
81
				return;
82
				return;
82
			if (getParser().getBlockMarker(tagnameNS) == null) {
83
			if (getParser().getBlockMarker(tagnameNS) == null) {
Lines 146-213 Link Here
146
				System.out.println("TLDCMDocumentManager registered a tracker for directory" + tagdir + " with prefix " + prefix); //$NON-NLS-2$//$NON-NLS-1$
147
				System.out.println("TLDCMDocumentManager registered a tracker for directory" + tagdir + " with prefix " + prefix); //$NON-NLS-2$//$NON-NLS-1$
147
			}
148
			}
148
		}
149
		}
150
		
151
		protected void processRegionCollection(ITextRegionCollection regionCollection, IStructuredDocumentRegion anchorStructuredDocumentRegion, JSPSourceParser textSource) {
152
			/*
153
			 * Would test > 1, but since we only care if there are 8 (<%@,
154
			 * taglib, uri, =, where, prefix, =, what) [or 4 for include
155
			 * directives]
156
			 */
157
			if (regionCollection.getNumberOfRegions() > 4 && regionCollection.getRegions().get(1).getType() == DOMJSPRegionContexts.JSP_DIRECTIVE_NAME) {
158
				ITextRegion name = regionCollection.getRegions().get(1);
159
				boolean taglibDetected = false;
160
				boolean taglibDirectiveDetected = false;
161
				boolean includeDetected = false;
162
				boolean includeDirectiveDetected = false;
163
				int startOffset = regionCollection.getStartOffset(name);
164
				int textLength = name.getTextLength();
165
166
				taglibDetected = textSource.regionMatches(startOffset, textLength, JSP12TLDNames.TAGLIB);
167
				if (!taglibDetected)
168
					taglibDirectiveDetected = textSource.regionMatches(startOffset, textLength, JSP12Namespace.ElementName.DIRECTIVE_TAGLIB);
169
				if (!taglibDirectiveDetected)
170
					includeDetected = textSource.regionMatches(startOffset, textLength, JSP12TLDNames.INCLUDE);
171
				if (!includeDetected)
172
					includeDirectiveDetected = textSource.regionMatches(startOffset, textLength, JSP12Namespace.ElementName.DIRECTIVE_INCLUDE);
173
				if (taglibDetected || taglibDirectiveDetected) {
174
					processTaglib(regionCollection, anchorStructuredDocumentRegion, textSource);
175
				}
176
				else if (includeDetected || includeDirectiveDetected) {
177
					processInclude(regionCollection, anchorStructuredDocumentRegion, textSource);
178
				}
179
			}
180
			else if (regionCollection.getNumberOfRegions() > 1 && DOMRegionContext.XML_TAG_OPEN.equals(regionCollection.getFirstRegion().getType())) {
181
				processXMLStartTag(regionCollection, anchorStructuredDocumentRegion, textSource);
182
			}			
183
		}
149
184
150
		public void nodeParsed(IStructuredDocumentRegion aCoreStructuredDocumentRegion) {
185
		public void nodeParsed(IStructuredDocumentRegion structuredDocumentRegion) {
151
			if (!preludesHandled) {
186
			if (!preludesHandled) {
152
				handlePreludes();
187
				handlePreludes();
153
				preludesHandled = true;
188
				preludesHandled = true;
154
			}
189
			}
155
			// could test > 1, but since we only care if there are 8 (<%@,
190
			processRegionCollection(structuredDocumentRegion, structuredDocumentRegion, getParser());
156
			// taglib, uri, =, where, prefix, =, what) [or 4 for includes]
157
			if (aCoreStructuredDocumentRegion.getNumberOfRegions() > 4 && aCoreStructuredDocumentRegion.getRegions().get(1).getType() == DOMJSPRegionContexts.JSP_DIRECTIVE_NAME) {
158
				ITextRegion name = aCoreStructuredDocumentRegion.getRegions().get(1);
159
				try {
160
					if (getParser() == null) {
161
						Logger.log(Logger.WARNING, "Warning: parser text was requested by " + getClass().getName() + " but none was available; taglib support disabled"); //$NON-NLS-1$ //$NON-NLS-2$
162
					}
163
					else {
164
						boolean taglibDetected = false;
165
						boolean taglibDirectiveDetected = false;
166
						boolean includeDetected = false;
167
						boolean includeDirectiveDetected = false;
168
						int startOffset = aCoreStructuredDocumentRegion.getStartOffset(name);
169
						int textLength = name.getTextLength();
170
171
						if (getParser() != null) {
172
							taglibDetected = getParser().regionMatches(startOffset, textLength, JSP12TLDNames.TAGLIB);
173
							taglibDirectiveDetected = getParser().regionMatches(startOffset, textLength, JSP12Namespace.ElementName.DIRECTIVE_TAGLIB);
174
							includeDetected = getParser().regionMatches(startOffset, textLength, JSP12TLDNames.INCLUDE);
175
							includeDirectiveDetected = getParser().regionMatches(startOffset, textLength, JSP12Namespace.ElementName.DIRECTIVE_INCLUDE);
176
						}
177
						else {
178
							// old fashioned way
179
							String directiveName = getParser().getText(startOffset, textLength);
180
							taglibDetected = directiveName.equals(JSP12TLDNames.TAGLIB);
181
							taglibDirectiveDetected = directiveName.equals(JSP12Namespace.ElementName.DIRECTIVE_TAGLIB);
182
							includeDetected = directiveName.equals(JSP12TLDNames.INCLUDE);
183
							includeDirectiveDetected = directiveName.equals(JSP12Namespace.ElementName.DIRECTIVE_INCLUDE);
184
						}
185
						if (taglibDetected || taglibDirectiveDetected) {
186
							processTaglib(aCoreStructuredDocumentRegion);
187
						}
188
						else if (includeDetected || includeDirectiveDetected) {
189
							processInclude(aCoreStructuredDocumentRegion);
190
						}
191
					}
192
				}
193
				catch (StringIndexOutOfBoundsException sioobExc) {
194
					// do nothing
195
				}
196
			}
197
			// could test > 1, but since we only care if there are 5 (<,
198
			// jsp:root, xmlns:prefix, =, where)
199
			else if (aCoreStructuredDocumentRegion.getNumberOfRegions() > 4 && aCoreStructuredDocumentRegion.getRegions().get(1).getType() == DOMJSPRegionContexts.JSP_ROOT_TAG_NAME) {
200
				if (getParser() == null) {
201
					Logger.log(Logger.WARNING, "Warning: parser text was requested by " + getClass().getName() + " but none was available; taglib support disabled"); //$NON-NLS-1$ //$NON-NLS-2$
202
				}
203
				else {
204
					processJSPRoot(aCoreStructuredDocumentRegion);
205
				}
206
			}
207
		}
208
209
		protected void processInclude(IStructuredDocumentRegion aCoreStructuredDocumentRegion) {
210
			processInclude(aCoreStructuredDocumentRegion, aCoreStructuredDocumentRegion, getParser());
211
		}
191
		}
212
192
213
		/**
193
		/**
Lines 216-230 Link Here
216
		 * anchorStructuredDocumentRegion. Includes use the including file as
196
		 * anchorStructuredDocumentRegion. Includes use the including file as
217
		 * the point of reference, not necessarily the "top" file.
197
		 * the point of reference, not necessarily the "top" file.
218
		 */
198
		 */
219
		protected void processInclude(IStructuredDocumentRegion includeStructuredDocumentRegion, IStructuredDocumentRegion anchorStructuredDocumentRegion, JSPSourceParser textSource) {
199
		protected void processInclude(ITextRegionCollection includeDirectiveCollection, IStructuredDocumentRegion anchorStructuredDocumentRegion, JSPSourceParser textSource) {
220
			ITextRegionList regions = includeStructuredDocumentRegion.getRegions();
200
			ITextRegionList regions = includeDirectiveCollection.getRegions();
221
			String includedFile = null;
201
			String includedFile = null;
222
			boolean isFilename = false;
202
			boolean isFilename = false;
223
			try {
203
			try {
224
				for (int i = 0; i < regions.size(); i++) {
204
				for (int i = 2; includedFile == null && i < regions.size(); i++) {
225
					ITextRegion region = regions.get(i);
205
					ITextRegion region = regions.get(i);
226
					if (region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
206
					if (region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
227
						if (textSource.getText(includeStructuredDocumentRegion.getStartOffset(region), region.getTextLength()).equals(JSP12TLDNames.FILE)) {
207
						if (textSource.regionMatches(includeDirectiveCollection.getStartOffset(region), region.getTextLength(), JSP12TLDNames.FILE)) {
228
							isFilename = true;
208
							isFilename = true;
229
						}
209
						}
230
						else {
210
						else {
Lines 232-238 Link Here
232
						}
212
						}
233
					}
213
					}
234
					else if (isFilename && region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
214
					else if (isFilename && region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
235
						includedFile = textSource.getText(includeStructuredDocumentRegion.getStartOffset(region), region.getTextLength());
215
						includedFile = textSource.getText(includeDirectiveCollection.getStartOffset(region), region.getTextLength());
236
						isFilename = false;
216
						isFilename = false;
237
					}
217
					}
238
				}
218
				}
Lines 272-289 Link Here
272
					 */
252
					 */
273
					if (hasAnyIncludeBeenModified(filePath)) {
253
					if (hasAnyIncludeBeenModified(filePath)) {
274
						getIncludes().push(filePath);
254
						getIncludes().push(filePath);
275
						if (getParser() != null) {
255
276
							IncludeHelper includeHelper = new IncludeHelper(anchorStructuredDocumentRegion, getParser());
256
						IncludeHelper includeHelper = new IncludeHelper(anchorStructuredDocumentRegion, getParser());
277
							includeHelper.parse(filePath);
257
						includeHelper.parse(filePath);
278
							List references = includeHelper.taglibReferences;
258
						List references = includeHelper.taglibReferences;
279
							fTLDCMReferencesMap.put(filePath, references);
259
						fTLDCMReferencesMap.put(filePath, references);
280
							/*
260
						for (int i = 0; references != null && i < references.size(); i++) {
281
							 * TODO: walk up the include hierarchy and add
261
							TLDCMDocumentReference reference = (TLDCMDocumentReference) references.get(i);
282
							 * these references to each of the parents.
262
							getParser().addNestablePrefix(new TagMarker(reference.prefix + ":")); //$NON-NLS-1$
283
							 */
284
						}
263
						}
285
						else
264
						/*
286
							Logger.log(Logger.WARNING, "Warning: parser text was requested by " + getClass().getName() + " but none was available; taglib support disabled"); //$NON-NLS-1$ //$NON-NLS-2$
265
						 * TODO: walk up the include hierarchy and add
266
						 * these references to each of the parents?
267
						 */
268
287
						getIncludes().pop();
269
						getIncludes().pop();
288
					}
270
					}
289
					else {
271
					else {
Lines 295-301 Link Here
295
							 * The uri might not be resolved properly if
277
							 * The uri might not be resolved properly if
296
							 * relative to the JSP fragment.
278
							 * relative to the JSP fragment.
297
							 */
279
							 */
298
							enableTaglibFromURI(reference.prefix, reference.uri, includeStructuredDocumentRegion);
280
							enableTaglibFromURI(reference.prefix, reference.uri, anchorStructuredDocumentRegion);
299
							getParser().addNestablePrefix(new TagMarker(reference.prefix + ":")); //$NON-NLS-1$
281
							getParser().addNestablePrefix(new TagMarker(reference.prefix + ":")); //$NON-NLS-1$
300
						}
282
						}
301
					}
283
					}
Lines 307-357 Link Here
307
			}
289
			}
308
		}
290
		}
309
291
310
		// Pulls the URI and prefix from the given jsp:root
292
		protected void processXMLStartTag(ITextRegionCollection startTagRegionCollection, IStructuredDocumentRegion anchorStructuredDocumentRegion, JSPSourceParser textSource) {
311
		// IStructuredDocumentRegion and
293
			ITextRegionList regions = startTagRegionCollection.getRegions();
312
		// makes sure the tags are known.
313
		protected void processJSPRoot(IStructuredDocumentRegion jspRootStructuredDocumentRegion) {
314
			processJSPRoot(jspRootStructuredDocumentRegion, jspRootStructuredDocumentRegion, getParser());
315
		}
316
317
		protected void processJSPRoot(IStructuredDocumentRegion taglibStructuredDocumentRegion, IStructuredDocumentRegion anchorStructuredDocumentRegion, JSPSourceParser textSource) {
318
			ITextRegionList regions = taglibStructuredDocumentRegion.getRegions();
319
			String uri = null;
294
			String uri = null;
320
			String prefix = null;
295
			String prefix = null;
321
			boolean taglib = false;
296
			boolean isTaglibValue = false;
322
			try {
297
			// skip the first two, they're the open bracket and name
323
				// skip the first two, they're the open bracket and name
298
			for (int i = 2; i < regions.size(); i++) {
324
				for (int i = 2; i < regions.size(); i++) {
299
				ITextRegion region = regions.get(i);
325
					ITextRegion region = regions.get(i);
300
				if (region instanceof ITextRegionCollection) {
301
					// Handle nested directives
302
					processRegionCollection((ITextRegionCollection) region, anchorStructuredDocumentRegion, textSource);
303
				}
304
				else {
305
					// Handle xmlns:xxx=yyy
306
					int regionStartOffset = startTagRegionCollection.getStartOffset(region);
307
					int regionTextLength = region.getTextLength();
326
					if (region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
308
					if (region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
327
						String name = textSource.getText(taglibStructuredDocumentRegion.getStartOffset(region), region.getTextLength());
309
						if (regionTextLength > XMLNS_LENGTH && textSource.regionMatches(regionStartOffset, XMLNS_LENGTH, XMLNS)) {
328
						if (name.startsWith(XMLNS)) { //$NON-NLS-1$
310
							prefix = textSource.getText(regionStartOffset + XMLNS_LENGTH, regionTextLength - XMLNS_LENGTH);
329
							prefix = name.substring(XMLNS_LENGTH);
330
							if (!bannedPrefixes.contains(prefix))
311
							if (!bannedPrefixes.contains(prefix))
331
								taglib = true;
312
								isTaglibValue = true;
332
						}
313
						}
333
						else {
314
						else {
334
							prefix = null;
315
							prefix = null;
335
							taglib = false;
316
							isTaglibValue = false;
336
						}
317
						}
337
					}
318
					}
338
					else if (taglib && region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
319
					else if (isTaglibValue && region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
339
						if (prefix != null && prefix.length() > 0) {
320
						if (prefix != null && prefix.length() > 0) {
340
							uri = textSource.getText(taglibStructuredDocumentRegion.getStartOffset(region), region.getTextLength());
321
							uri = textSource.getText(regionStartOffset, regionTextLength);
341
							uri = StringUtils.strip(uri);
322
							uri = StringUtils.strip(uri);
342
							if (uri != null && uri.length() > 0) {
323
							int uriLength = uri.length();
343
								if (uri.startsWith(URN_TLD)) {
324
							if (uri != null && uriLength > 0) {
344
									uri = uri.substring(URN_TLD.length());
325
								if (uriLength > URN_TLD_LENGTH && uri.startsWith(URN_TLD)) {
345
								}
326
									uri = uri.substring(URN_TLD_LENGTH);
346
								else if (uri.startsWith(URN_TAGDIR)) {
347
									uri = uri.substring(URN_TAGDIR.length());
348
								}
327
								}
349
								if (anchorStructuredDocumentRegion == null) {
328
								else if (uriLength > URN_TAGDIR_LENGTH && uri.startsWith(URN_TAGDIR)) {
350
									enableTags(prefix, uri, taglibStructuredDocumentRegion);
329
									uri = uri.substring(URN_TAGDIR_LENGTH);
351
								}
352
								else {
353
									enableTags(prefix, uri, anchorStructuredDocumentRegion);
354
								}
330
								}
331
								enableTags(prefix, uri, anchorStructuredDocumentRegion);
355
								uri = null;
332
								uri = null;
356
								prefix = null;
333
								prefix = null;
357
							}
334
							}
Lines 359-390 Link Here
359
					}
336
					}
360
				}
337
				}
361
			}
338
			}
362
			catch (StringIndexOutOfBoundsException sioobExc) {
363
				// nothing to be done
364
				uri = null;
365
				prefix = null;
366
			}
367
		}
368
369
		protected void processTaglib(IStructuredDocumentRegion taglibStructuredDocumentRegion) {
370
			processTaglib(taglibStructuredDocumentRegion, taglibStructuredDocumentRegion, getParser());
371
		}
339
		}
372
340
373
		/**
341
		/**
374
		 * Pulls the URI and prefix from the given taglib directive
342
		 * Pulls the URI and prefix from the given taglib directive
375
		 * IStructuredDocumentRegion and makes sure the tags are known.
343
		 * IStructuredDocumentRegion and makes sure the tags are known.
376
		 */
344
		 */
377
		protected void processTaglib(IStructuredDocumentRegion taglibStructuredDocumentRegion, IStructuredDocumentRegion anchorStructuredDocumentRegion, JSPSourceParser textSource) {
345
		protected void processTaglib(ITextRegionCollection taglibDirectiveCollection, IStructuredDocumentRegion anchorStructuredDocumentRegion, JSPSourceParser textSource) {
378
			ITextRegionList regions = taglibStructuredDocumentRegion.getRegions();
346
			ITextRegionList regions = taglibDirectiveCollection.getRegions();
379
			String uri = null;
347
			String uri = null;
380
			String prefix = null;
348
			String prefix = null;
381
			String tagdir = null;
349
			String tagdir = null;
382
			String attrName = null;
350
			String attrName = null;
383
			try {
351
			try {
384
				for (int i = 0; i < regions.size(); i++) {
352
				for (int i = 2; i < regions.size(); i++) {
385
					ITextRegion region = regions.get(i);
353
					ITextRegion region = regions.get(i);
386
					// remember attribute name
354
					// remember attribute name
387
					int startOffset = taglibStructuredDocumentRegion.getStartOffset(region);
355
					int startOffset = taglibDirectiveCollection.getStartOffset(region);
388
					int textLength = region.getTextLength();
356
					int textLength = region.getTextLength();
389
					if (region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
357
					if (region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
390
						// String name = textSource.getText(startOffset,
358
						// String name = textSource.getText(startOffset,
Lines 419-434 Link Here
419
				prefix = null;
387
				prefix = null;
420
			}
388
			}
421
			if (uri != null && prefix != null && uri.length() > 0 && prefix.length() > 0) {
389
			if (uri != null && prefix != null && uri.length() > 0 && prefix.length() > 0) {
422
				if (anchorStructuredDocumentRegion == null)
390
				enableTaglibFromURI(prefix, StringUtils.strip(uri), anchorStructuredDocumentRegion);
423
					enableTaglibFromURI(prefix, StringUtils.strip(uri), taglibStructuredDocumentRegion);
424
				else
425
					enableTaglibFromURI(prefix, uri, anchorStructuredDocumentRegion);
426
			}
391
			}
427
			else if (tagdir != null && prefix != null && tagdir.length() > 0 && prefix.length() > 0) {
392
			else if (tagdir != null && prefix != null && tagdir.length() > 0 && prefix.length() > 0) {
428
				if (anchorStructuredDocumentRegion == null)
393
				enableTagsInDir(StringUtils.strip(prefix), StringUtils.strip(tagdir), anchorStructuredDocumentRegion);
429
					enableTagsInDir(StringUtils.strip(prefix), StringUtils.strip(tagdir), taglibStructuredDocumentRegion);
430
				else
431
					enableTagsInDir(StringUtils.strip(prefix), StringUtils.strip(tagdir), anchorStructuredDocumentRegion);
432
			}
394
			}
433
		}
395
		}
434
396
Lines 524-552 Link Here
524
			return FileContentCache.getInstance().getContents(filePath);
486
			return FileContentCache.getInstance().getContents(filePath);
525
		}
487
		}
526
488
527
		public void nodeParsed(IStructuredDocumentRegion aCoreStructuredDocumentRegion) {
489
		public void nodeParsed(IStructuredDocumentRegion structuredDocumentRegion) {
528
			// could test > 1, but since we only care if there are 8 (<%@,
490
			processRegionCollection(structuredDocumentRegion, fAnchor, fLocalParser);
529
			// taglib, uri, =, where, prefix, =, what)
530
			if (aCoreStructuredDocumentRegion.getNumberOfRegions() > 1 && aCoreStructuredDocumentRegion.getRegions().get(1).getType() == DOMJSPRegionContexts.JSP_DIRECTIVE_NAME) {
531
				ITextRegion name = aCoreStructuredDocumentRegion.getRegions().get(1);
532
				try {
533
					String directiveName = fLocalParser.getText(aCoreStructuredDocumentRegion.getStartOffset(name), name.getTextLength());
534
					if (directiveName.equals(JSP12TLDNames.TAGLIB) || directiveName.equals(JSP12Namespace.ElementName.DIRECTIVE_TAGLIB)) {
535
						processTaglib(aCoreStructuredDocumentRegion, fAnchor, fLocalParser);
536
					}
537
					if (directiveName.equals(JSP12TLDNames.INCLUDE) || directiveName.equals(JSP12Namespace.ElementName.DIRECTIVE_INCLUDE)) {
538
						processInclude(aCoreStructuredDocumentRegion, fAnchor, fLocalParser);
539
					}
540
				}
541
				catch (StringIndexOutOfBoundsException sioobExc) {
542
					// do nothing
543
				}
544
			}
545
			// could test > 1, but since we only care if there are 5 (<,
546
			// jsp:root, xmlns:prefix, =, where)
547
			else if (aCoreStructuredDocumentRegion.getNumberOfRegions() > 4 && aCoreStructuredDocumentRegion.getRegions().get(1).getType() == DOMJSPRegionContexts.JSP_ROOT_TAG_NAME) {
548
				processJSPRoot(aCoreStructuredDocumentRegion, fAnchor, fLocalParser);
549
			}
550
		}
491
		}
551
492
552
		/**
493
		/**
Lines 556-569 Link Here
556
		void parse(IPath path) {
497
		void parse(IPath path) {
557
			JSPSourceParser p = new JSPSourceParser();
498
			JSPSourceParser p = new JSPSourceParser();
558
			fLocalParser = p;
499
			fLocalParser = p;
559
			List blockTags = fParentParser.getBlockMarkers();
560
			String s = getContents(path);
500
			String s = getContents(path);
561
			fLocalParser.addStructuredDocumentRegionHandler(this);
501
			// Should we consider preludes on this segment?
502
			fLocalParser.addStructuredDocumentRegionHandler(IncludeHelper.this);
562
			fLocalParser.reset(s);
503
			fLocalParser.reset(s);
504
			List blockTags = fParentParser.getBlockMarkers();
563
			for (int i = 0; i < blockTags.size(); i++) {
505
			for (int i = 0; i < blockTags.size(); i++) {
564
				BlockMarker marker = (BlockMarker) blockTags.get(i);
506
				BlockMarker marker = (BlockMarker) blockTags.get(i);
565
				fLocalParser.addBlockMarker(new BlockMarker(marker.getTagName(), null, marker.getContext(), marker.isCaseSensitive()));
507
				fLocalParser.addBlockMarker(new BlockMarker(marker.getTagName(), null, marker.getContext(), marker.isCaseSensitive()));
566
			}
508
			}
509
			TagMarker[] knownPrefixes = (TagMarker[]) fParentParser.getNestablePrefixes().toArray(new TagMarker[0]);
510
			for (int i = 0; i < knownPrefixes.length; i++) {
511
				fLocalParser.addNestablePrefix(new TagMarker(knownPrefixes[i].getTagName(), null));
512
			}
567
			// force parse
513
			// force parse
568
			fLocalParser.getDocumentRegions();
514
			fLocalParser.getDocumentRegions();
569
			fLocalParser = null;
515
			fLocalParser = null;
Lines 603-613 Link Here
603
	protected static List bannedPrefixes = null;
549
	protected static List bannedPrefixes = null;
604
550
605
	private static Hashtable fCache = null;
551
	private static Hashtable fCache = null;
606
	String XMLNS = "xmlns:"; //$NON-NLS-1$ 
552
	final String XMLNS = "xmlns:"; //$NON-NLS-1$ 
607
	protected String URN_TAGDIR = "urn:jsptagdir:";
553
	final String URN_TAGDIR = "urn:jsptagdir:";
608
	protected String URN_TLD = "urn:jsptld:";
554
	final String URN_TLD = "urn:jsptld:";
609
555
610
	int XMLNS_LENGTH = XMLNS.length();
556
	final int XMLNS_LENGTH = XMLNS.length();
557
	final int URN_TAGDIR_LENGTH = URN_TAGDIR.length();
558
	final int URN_TLD_LENGTH = URN_TLD.length();
611
559
612
	static {
560
	static {
613
		bannedPrefixes = new ArrayList(7);
561
		bannedPrefixes = new ArrayList(7);
(-)DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.jflex (-2 / +52 lines)
Lines 1933-1938 Link Here
1933
		return PROXY_CONTEXT;
1933
		return PROXY_CONTEXT;
1934
	}
1934
	}
1935
}
1935
}
1936
1936
<ST_BLOCK_TAG_INTERNAL_SCAN> {jspCommentStart}  {
1937
<ST_BLOCK_TAG_INTERNAL_SCAN> {jspCommentStart}  {
1937
	yybegin(ST_JSP_COMMENT);
1938
	yybegin(ST_JSP_COMMENT);
1938
	assembleEmbeddedContainer(JSP_COMMENT_OPEN, JSP_COMMENT_CLOSE);
1939
	assembleEmbeddedContainer(JSP_COMMENT_OPEN, JSP_COMMENT_CLOSE);
Lines 1940-1948 Link Here
1940
		yybegin(ST_BLOCK_TAG_SCAN);
1941
		yybegin(ST_BLOCK_TAG_SCAN);
1941
	return PROXY_CONTEXT;
1942
	return PROXY_CONTEXT;
1942
}
1943
}
1943
<YYINITIAL,ST_BLOCK_TAG_INTERNAL_SCAN> {jspDirectiveStart}  {
1944
1945
{jspDirectiveStart} {
1946
	/* JSP directive begun (anywhere)
1947
	 * A consequence of the start anywhere possibility is that the
1948
	 *  incoming state must be checked to see if it's erroneous
1949
	 *  due to the order of precedence generated
1950
	 */
1951
	// begin sanity checks
1952
	if(yystate() == ST_JSP_CONTENT) {
1953
		// at the beginning?!
1954
		yypushback(2);
1955
		return JSP_CONTENT;
1956
	}
1957
	else if(yystate() == ST_BLOCK_TAG_SCAN) {
1958
		yypushback(3);
1959
		return doBlockTagScan();
1960
	}
1961
	else if(yystate() == ST_XML_COMMENT) {
1962
		yypushback(3);
1963
		return scanXMLCommentText();
1964
	}
1965
	else if(yystate() == ST_JSP_COMMENT) {
1966
		yypushback(3);
1967
		return scanJSPCommentText();
1968
	}
1969
	// end sanity checks
1944
	fStateStack.push(yystate());
1970
	fStateStack.push(yystate());
1945
	if(fStateStack.peek()==YYINITIAL) {
1971
	if(fStateStack.peek()==YYINITIAL) {
1972
		// the simple case, just a declaration out in content
1946
		if(Debug.debugTokenizer)
1973
		if(Debug.debugTokenizer)
1947
			dump("\nJSP directive start");//$NON-NLS-1$
1974
			dump("\nJSP directive start");//$NON-NLS-1$
1948
		yybegin(ST_JSP_DIRECTIVE_NAME);
1975
		yybegin(ST_JSP_DIRECTIVE_NAME);
Lines 1953-1968 Link Here
1953
			System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
1980
			System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
1954
		}
1981
		}
1955
		if(Debug.debugTokenizer)
1982
		if(Debug.debugTokenizer)
1956
			dump("JSP directive start");//$NON-NLS-1$
1983
			dump("JSP declaration start");//$NON-NLS-1$
1984
		if(yystate() == ST_XML_ATTRIBUTE_VALUE_DQUOTED)
1985
			fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_DQUOTED;
1986
		else if(yystate() == ST_XML_ATTRIBUTE_VALUE_SQUOTED)
1987
			fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_SQUOTED;
1988
		else if(yystate() == ST_CDATA_TEXT) {
1989
			fEmbeddedPostState = ST_CDATA_TEXT;
1990
			fEmbeddedHint = XML_CDATA_TEXT;
1991
		}
1957
		yybegin(ST_JSP_DIRECTIVE_NAME);
1992
		yybegin(ST_JSP_DIRECTIVE_NAME);
1958
		assembleEmbeddedContainer(JSP_DIRECTIVE_OPEN, new String[]{JSP_DIRECTIVE_CLOSE, JSP_CLOSE});
1993
		assembleEmbeddedContainer(JSP_DIRECTIVE_OPEN, new String[]{JSP_DIRECTIVE_CLOSE, JSP_CLOSE});
1959
		if(yystate() == ST_BLOCK_TAG_INTERNAL_SCAN) {
1994
		if(yystate() == ST_BLOCK_TAG_INTERNAL_SCAN) {
1960
			yybegin(ST_BLOCK_TAG_SCAN);
1995
			yybegin(ST_BLOCK_TAG_SCAN);
1961
			return BLOCK_TEXT;
1996
			return BLOCK_TEXT;
1962
		}
1997
		}
1998
		// required help for successive embedded regions
1999
		if(yystate() == ST_XML_TAG_NAME) {
2000
			fEmbeddedHint = XML_TAG_NAME;
2001
			fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
2002
		}
2003
		else if((yystate() == ST_XML_ATTRIBUTE_NAME || yystate() == ST_XML_EQUALS)) {
2004
			fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
2005
			fEmbeddedPostState = ST_XML_EQUALS;
2006
		}
2007
		else if(yystate() == ST_XML_ATTRIBUTE_VALUE) {
2008
			fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;
2009
			fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
2010
		}
1963
		return PROXY_CONTEXT;
2011
		return PROXY_CONTEXT;
1964
	}
2012
	}
1965
}
2013
}
2014
2015
1966
<ST_JSP_DIRECTIVE_NAME> {Name} {
2016
<ST_JSP_DIRECTIVE_NAME> {Name} {
1967
	if(Debug.debugTokenizer)
2017
	if(Debug.debugTokenizer)
1968
		dump("JSP directive name");//$NON-NLS-1$
2018
		dump("JSP directive name");//$NON-NLS-1$

Return to bug 206963