[206963] JSP directives not allowed in tag itself
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDCMDocumentManager.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDCMDocumentManager.java
index 224ae1a..6c5c4e7 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDCMDocumentManager.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDCMDocumentManager.java
@@ -59,6 +59,7 @@
import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
+import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionCollection;
import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
import org.eclipse.wst.sse.core.internal.util.Assert;
import org.eclipse.wst.sse.core.internal.util.Debug;
@@ -76,7 +77,7 @@
* IStructuredDocumentRegion along with position cues during reparses
* allow the JSPSourceParser to enable/ignore the tags as blocks.
*/
- protected void addBlockTag(String tagnameNS, IStructuredDocumentRegion marker) {
+ protected void addBlockTag(String tagnameNS, ITextRegionCollection marker) {
if (getParser() == null)
return;
if (getParser().getBlockMarker(tagnameNS) == null) {
@@ -146,68 +147,47 @@
System.out.println("TLDCMDocumentManager registered a tracker for directory" + tagdir + " with prefix " + prefix); //$NON-NLS-2$//$NON-NLS-1$
}
}
+
+ protected void processRegionCollection(ITextRegionCollection regionCollection, IStructuredDocumentRegion anchorStructuredDocumentRegion, JSPSourceParser textSource) {
+ /*
+ * Would test > 1, but since we only care if there are 8 (<%@,
+ * taglib, uri, =, where, prefix, =, what) [or 4 for include
+ * directives]
+ */
+ if (regionCollection.getNumberOfRegions() > 4 && regionCollection.getRegions().get(1).getType() == DOMJSPRegionContexts.JSP_DIRECTIVE_NAME) {
+ ITextRegion name = regionCollection.getRegions().get(1);
+ boolean taglibDetected = false;
+ boolean taglibDirectiveDetected = false;
+ boolean includeDetected = false;
+ boolean includeDirectiveDetected = false;
+ int startOffset = regionCollection.getStartOffset(name);
+ int textLength = name.getTextLength();
- public void nodeParsed(IStructuredDocumentRegion aCoreStructuredDocumentRegion) {
+ taglibDetected = textSource.regionMatches(startOffset, textLength, JSP12TLDNames.TAGLIB);
+ if (!taglibDetected)
+ taglibDirectiveDetected = textSource.regionMatches(startOffset, textLength, JSP12Namespace.ElementName.DIRECTIVE_TAGLIB);
+ if (!taglibDirectiveDetected)
+ includeDetected = textSource.regionMatches(startOffset, textLength, JSP12TLDNames.INCLUDE);
+ if (!includeDetected)
+ includeDirectiveDetected = textSource.regionMatches(startOffset, textLength, JSP12Namespace.ElementName.DIRECTIVE_INCLUDE);
+ if (taglibDetected || taglibDirectiveDetected) {
+ processTaglib(regionCollection, anchorStructuredDocumentRegion, textSource);
+ }
+ else if (includeDetected || includeDirectiveDetected) {
+ processInclude(regionCollection, anchorStructuredDocumentRegion, textSource);
+ }
+ }
+ else if (regionCollection.getNumberOfRegions() > 1 && DOMRegionContext.XML_TAG_OPEN.equals(regionCollection.getFirstRegion().getType())) {
+ processXMLStartTag(regionCollection, anchorStructuredDocumentRegion, textSource);
+ }
+ }
+
+ public void nodeParsed(IStructuredDocumentRegion structuredDocumentRegion) {
if (!preludesHandled) {
handlePreludes();
preludesHandled = true;
}
- // could test > 1, but since we only care if there are 8 (<%@,
- // taglib, uri, =, where, prefix, =, what) [or 4 for includes]
- if (aCoreStructuredDocumentRegion.getNumberOfRegions() > 4 && aCoreStructuredDocumentRegion.getRegions().get(1).getType() == DOMJSPRegionContexts.JSP_DIRECTIVE_NAME) {
- ITextRegion name = aCoreStructuredDocumentRegion.getRegions().get(1);
- try {
- if (getParser() == null) {
- 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$
- }
- else {
- boolean taglibDetected = false;
- boolean taglibDirectiveDetected = false;
- boolean includeDetected = false;
- boolean includeDirectiveDetected = false;
- int startOffset = aCoreStructuredDocumentRegion.getStartOffset(name);
- int textLength = name.getTextLength();
-
- if (getParser() != null) {
- taglibDetected = getParser().regionMatches(startOffset, textLength, JSP12TLDNames.TAGLIB);
- taglibDirectiveDetected = getParser().regionMatches(startOffset, textLength, JSP12Namespace.ElementName.DIRECTIVE_TAGLIB);
- includeDetected = getParser().regionMatches(startOffset, textLength, JSP12TLDNames.INCLUDE);
- includeDirectiveDetected = getParser().regionMatches(startOffset, textLength, JSP12Namespace.ElementName.DIRECTIVE_INCLUDE);
- }
- else {
- // old fashioned way
- String directiveName = getParser().getText(startOffset, textLength);
- taglibDetected = directiveName.equals(JSP12TLDNames.TAGLIB);
- taglibDirectiveDetected = directiveName.equals(JSP12Namespace.ElementName.DIRECTIVE_TAGLIB);
- includeDetected = directiveName.equals(JSP12TLDNames.INCLUDE);
- includeDirectiveDetected = directiveName.equals(JSP12Namespace.ElementName.DIRECTIVE_INCLUDE);
- }
- if (taglibDetected || taglibDirectiveDetected) {
- processTaglib(aCoreStructuredDocumentRegion);
- }
- else if (includeDetected || includeDirectiveDetected) {
- processInclude(aCoreStructuredDocumentRegion);
- }
- }
- }
- catch (StringIndexOutOfBoundsException sioobExc) {
- // do nothing
- }
- }
- // could test > 1, but since we only care if there are 5 (<,
- // jsp:root, xmlns:prefix, =, where)
- else if (aCoreStructuredDocumentRegion.getNumberOfRegions() > 4 && aCoreStructuredDocumentRegion.getRegions().get(1).getType() == DOMJSPRegionContexts.JSP_ROOT_TAG_NAME) {
- if (getParser() == null) {
- 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$
- }
- else {
- processJSPRoot(aCoreStructuredDocumentRegion);
- }
- }
- }
-
- protected void processInclude(IStructuredDocumentRegion aCoreStructuredDocumentRegion) {
- processInclude(aCoreStructuredDocumentRegion, aCoreStructuredDocumentRegion, getParser());
+ processRegionCollection(structuredDocumentRegion, structuredDocumentRegion, getParser());
}
/**
@@ -216,15 +196,15 @@
* anchorStructuredDocumentRegion. Includes use the including file as
* the point of reference, not necessarily the "top" file.
*/
- protected void processInclude(IStructuredDocumentRegion includeStructuredDocumentRegion, IStructuredDocumentRegion anchorStructuredDocumentRegion, JSPSourceParser textSource) {
- ITextRegionList regions = includeStructuredDocumentRegion.getRegions();
+ protected void processInclude(ITextRegionCollection includeDirectiveCollection, IStructuredDocumentRegion anchorStructuredDocumentRegion, JSPSourceParser textSource) {
+ ITextRegionList regions = includeDirectiveCollection.getRegions();
String includedFile = null;
boolean isFilename = false;
try {
- for (int i = 0; i < regions.size(); i++) {
+ for (int i = 2; includedFile == null && i < regions.size(); i++) {
ITextRegion region = regions.get(i);
if (region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
- if (textSource.getText(includeStructuredDocumentRegion.getStartOffset(region), region.getTextLength()).equals(JSP12TLDNames.FILE)) {
+ if (textSource.regionMatches(includeDirectiveCollection.getStartOffset(region), region.getTextLength(), JSP12TLDNames.FILE)) {
isFilename = true;
}
else {
@@ -232,7 +212,7 @@
}
}
else if (isFilename && region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
- includedFile = textSource.getText(includeStructuredDocumentRegion.getStartOffset(region), region.getTextLength());
+ includedFile = textSource.getText(includeDirectiveCollection.getStartOffset(region), region.getTextLength());
isFilename = false;
}
}
@@ -272,18 +252,20 @@
*/
if (hasAnyIncludeBeenModified(filePath)) {
getIncludes().push(filePath);
- if (getParser() != null) {
- IncludeHelper includeHelper = new IncludeHelper(anchorStructuredDocumentRegion, getParser());
- includeHelper.parse(filePath);
- List references = includeHelper.taglibReferences;
- fTLDCMReferencesMap.put(filePath, references);
- /*
- * TODO: walk up the include hierarchy and add
- * these references to each of the parents.
- */
+
+ IncludeHelper includeHelper = new IncludeHelper(anchorStructuredDocumentRegion, getParser());
+ includeHelper.parse(filePath);
+ List references = includeHelper.taglibReferences;
+ fTLDCMReferencesMap.put(filePath, references);
+ for (int i = 0; references != null && i < references.size(); i++) {
+ TLDCMDocumentReference reference = (TLDCMDocumentReference) references.get(i);
+ getParser().addNestablePrefix(new TagMarker(reference.prefix + ":")); //$NON-NLS-1$
}
- else
- 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$
+ /*
+ * TODO: walk up the include hierarchy and add
+ * these references to each of the parents?
+ */
+
getIncludes().pop();
}
else {
@@ -295,7 +277,7 @@
* The uri might not be resolved properly if
* relative to the JSP fragment.
*/
- enableTaglibFromURI(reference.prefix, reference.uri, includeStructuredDocumentRegion);
+ enableTaglibFromURI(reference.prefix, reference.uri, anchorStructuredDocumentRegion);
getParser().addNestablePrefix(new TagMarker(reference.prefix + ":")); //$NON-NLS-1$
}
}
@@ -307,51 +289,46 @@
}
}
- // Pulls the URI and prefix from the given jsp:root
- // IStructuredDocumentRegion and
- // makes sure the tags are known.
- protected void processJSPRoot(IStructuredDocumentRegion jspRootStructuredDocumentRegion) {
- processJSPRoot(jspRootStructuredDocumentRegion, jspRootStructuredDocumentRegion, getParser());
- }
-
- protected void processJSPRoot(IStructuredDocumentRegion taglibStructuredDocumentRegion, IStructuredDocumentRegion anchorStructuredDocumentRegion, JSPSourceParser textSource) {
- ITextRegionList regions = taglibStructuredDocumentRegion.getRegions();
+ protected void processXMLStartTag(ITextRegionCollection startTagRegionCollection, IStructuredDocumentRegion anchorStructuredDocumentRegion, JSPSourceParser textSource) {
+ ITextRegionList regions = startTagRegionCollection.getRegions();
String uri = null;
String prefix = null;
- boolean taglib = false;
- try {
- // skip the first two, they're the open bracket and name
- for (int i = 2; i < regions.size(); i++) {
- ITextRegion region = regions.get(i);
+ boolean isTaglibValue = false;
+ // skip the first two, they're the open bracket and name
+ for (int i = 2; i < regions.size(); i++) {
+ ITextRegion region = regions.get(i);
+ if (region instanceof ITextRegionCollection) {
+ // Handle nested directives
+ processRegionCollection((ITextRegionCollection) region, anchorStructuredDocumentRegion, textSource);
+ }
+ else {
+ // Handle xmlns:xxx=yyy
+ int regionStartOffset = startTagRegionCollection.getStartOffset(region);
+ int regionTextLength = region.getTextLength();
if (region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
- String name = textSource.getText(taglibStructuredDocumentRegion.getStartOffset(region), region.getTextLength());
- if (name.startsWith(XMLNS)) { //$NON-NLS-1$
- prefix = name.substring(XMLNS_LENGTH);
+ if (regionTextLength > XMLNS_LENGTH && textSource.regionMatches(regionStartOffset, XMLNS_LENGTH, XMLNS)) {
+ prefix = textSource.getText(regionStartOffset + XMLNS_LENGTH, regionTextLength - XMLNS_LENGTH);
if (!bannedPrefixes.contains(prefix))
- taglib = true;
+ isTaglibValue = true;
}
else {
prefix = null;
- taglib = false;
+ isTaglibValue = false;
}
}
- else if (taglib && region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
+ else if (isTaglibValue && region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
if (prefix != null && prefix.length() > 0) {
- uri = textSource.getText(taglibStructuredDocumentRegion.getStartOffset(region), region.getTextLength());
+ uri = textSource.getText(regionStartOffset, regionTextLength);
uri = StringUtils.strip(uri);
- if (uri != null && uri.length() > 0) {
- if (uri.startsWith(URN_TLD)) {
- uri = uri.substring(URN_TLD.length());
+ int uriLength = uri.length();
+ if (uri != null && uriLength > 0) {
+ if (uriLength > URN_TLD_LENGTH && uri.startsWith(URN_TLD)) {
+ uri = uri.substring(URN_TLD_LENGTH);
}
- else if (uri.startsWith(URN_TAGDIR)) {
- uri = uri.substring(URN_TAGDIR.length());
+ else if (uriLength > URN_TAGDIR_LENGTH && uri.startsWith(URN_TAGDIR)) {
+ uri = uri.substring(URN_TAGDIR_LENGTH);
}
- if (anchorStructuredDocumentRegion == null) {
- enableTags(prefix, uri, taglibStructuredDocumentRegion);
- }
- else {
- enableTags(prefix, uri, anchorStructuredDocumentRegion);
- }
+ enableTags(prefix, uri, anchorStructuredDocumentRegion);
uri = null;
prefix = null;
}
@@ -359,32 +336,23 @@
}
}
}
- catch (StringIndexOutOfBoundsException sioobExc) {
- // nothing to be done
- uri = null;
- prefix = null;
- }
- }
-
- protected void processTaglib(IStructuredDocumentRegion taglibStructuredDocumentRegion) {
- processTaglib(taglibStructuredDocumentRegion, taglibStructuredDocumentRegion, getParser());
}
/**
* Pulls the URI and prefix from the given taglib directive
* IStructuredDocumentRegion and makes sure the tags are known.
*/
- protected void processTaglib(IStructuredDocumentRegion taglibStructuredDocumentRegion, IStructuredDocumentRegion anchorStructuredDocumentRegion, JSPSourceParser textSource) {
- ITextRegionList regions = taglibStructuredDocumentRegion.getRegions();
+ protected void processTaglib(ITextRegionCollection taglibDirectiveCollection, IStructuredDocumentRegion anchorStructuredDocumentRegion, JSPSourceParser textSource) {
+ ITextRegionList regions = taglibDirectiveCollection.getRegions();
String uri = null;
String prefix = null;
String tagdir = null;
String attrName = null;
try {
- for (int i = 0; i < regions.size(); i++) {
+ for (int i = 2; i < regions.size(); i++) {
ITextRegion region = regions.get(i);
// remember attribute name
- int startOffset = taglibStructuredDocumentRegion.getStartOffset(region);
+ int startOffset = taglibDirectiveCollection.getStartOffset(region);
int textLength = region.getTextLength();
if (region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
// String name = textSource.getText(startOffset,
@@ -419,16 +387,10 @@
prefix = null;
}
if (uri != null && prefix != null && uri.length() > 0 && prefix.length() > 0) {
- if (anchorStructuredDocumentRegion == null)
- enableTaglibFromURI(prefix, StringUtils.strip(uri), taglibStructuredDocumentRegion);
- else
- enableTaglibFromURI(prefix, uri, anchorStructuredDocumentRegion);
+ enableTaglibFromURI(prefix, StringUtils.strip(uri), anchorStructuredDocumentRegion);
}
else if (tagdir != null && prefix != null && tagdir.length() > 0 && prefix.length() > 0) {
- if (anchorStructuredDocumentRegion == null)
- enableTagsInDir(StringUtils.strip(prefix), StringUtils.strip(tagdir), taglibStructuredDocumentRegion);
- else
- enableTagsInDir(StringUtils.strip(prefix), StringUtils.strip(tagdir), anchorStructuredDocumentRegion);
+ enableTagsInDir(StringUtils.strip(prefix), StringUtils.strip(tagdir), anchorStructuredDocumentRegion);
}
}
@@ -524,29 +486,8 @@
return FileContentCache.getInstance().getContents(filePath);
}
- public void nodeParsed(IStructuredDocumentRegion aCoreStructuredDocumentRegion) {
- // could test > 1, but since we only care if there are 8 (<%@,
- // taglib, uri, =, where, prefix, =, what)
- if (aCoreStructuredDocumentRegion.getNumberOfRegions() > 1 && aCoreStructuredDocumentRegion.getRegions().get(1).getType() == DOMJSPRegionContexts.JSP_DIRECTIVE_NAME) {
- ITextRegion name = aCoreStructuredDocumentRegion.getRegions().get(1);
- try {
- String directiveName = fLocalParser.getText(aCoreStructuredDocumentRegion.getStartOffset(name), name.getTextLength());
- if (directiveName.equals(JSP12TLDNames.TAGLIB) || directiveName.equals(JSP12Namespace.ElementName.DIRECTIVE_TAGLIB)) {
- processTaglib(aCoreStructuredDocumentRegion, fAnchor, fLocalParser);
- }
- if (directiveName.equals(JSP12TLDNames.INCLUDE) || directiveName.equals(JSP12Namespace.ElementName.DIRECTIVE_INCLUDE)) {
- processInclude(aCoreStructuredDocumentRegion, fAnchor, fLocalParser);
- }
- }
- catch (StringIndexOutOfBoundsException sioobExc) {
- // do nothing
- }
- }
- // could test > 1, but since we only care if there are 5 (<,
- // jsp:root, xmlns:prefix, =, where)
- else if (aCoreStructuredDocumentRegion.getNumberOfRegions() > 4 && aCoreStructuredDocumentRegion.getRegions().get(1).getType() == DOMJSPRegionContexts.JSP_ROOT_TAG_NAME) {
- processJSPRoot(aCoreStructuredDocumentRegion, fAnchor, fLocalParser);
- }
+ public void nodeParsed(IStructuredDocumentRegion structuredDocumentRegion) {
+ processRegionCollection(structuredDocumentRegion, fAnchor, fLocalParser);
}
/**
@@ -556,14 +497,19 @@
void parse(IPath path) {
JSPSourceParser p = new JSPSourceParser();
fLocalParser = p;
- List blockTags = fParentParser.getBlockMarkers();
String s = getContents(path);
- fLocalParser.addStructuredDocumentRegionHandler(this);
+ // Should we consider preludes on this segment?
+ fLocalParser.addStructuredDocumentRegionHandler(IncludeHelper.this);
fLocalParser.reset(s);
+ List blockTags = fParentParser.getBlockMarkers();
for (int i = 0; i < blockTags.size(); i++) {
BlockMarker marker = (BlockMarker) blockTags.get(i);
fLocalParser.addBlockMarker(new BlockMarker(marker.getTagName(), null, marker.getContext(), marker.isCaseSensitive()));
}
+ TagMarker[] knownPrefixes = (TagMarker[]) fParentParser.getNestablePrefixes().toArray(new TagMarker[0]);
+ for (int i = 0; i < knownPrefixes.length; i++) {
+ fLocalParser.addNestablePrefix(new TagMarker(knownPrefixes[i].getTagName(), null));
+ }
// force parse
fLocalParser.getDocumentRegions();
fLocalParser = null;
@@ -603,11 +549,13 @@
protected static List bannedPrefixes = null;
private static Hashtable fCache = null;
- String XMLNS = "xmlns:"; //$NON-NLS-1$
- protected String URN_TAGDIR = "urn:jsptagdir:";
- protected String URN_TLD = "urn:jsptld:";
+ final String XMLNS = "xmlns:"; //$NON-NLS-1$
+ final String URN_TAGDIR = "urn:jsptagdir:";
+ final String URN_TLD = "urn:jsptld:";
- int XMLNS_LENGTH = XMLNS.length();
+ final int XMLNS_LENGTH = XMLNS.length();
+ final int URN_TAGDIR_LENGTH = URN_TAGDIR.length();
+ final int URN_TLD_LENGTH = URN_TLD.length();
static {
bannedPrefixes = new ArrayList(7);
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslator.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslator.java
index 4a623b7..65636bf 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslator.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslator.java
@@ -53,6 +53,7 @@
import org.eclipse.jst.jsp.core.internal.contenttype.DeploymentDescriptorPropertyCache.PropertyGroup;
import org.eclipse.jst.jsp.core.internal.parser.JSPSourceParser;
import org.eclipse.jst.jsp.core.internal.provisional.JSP11Namespace;
+import org.eclipse.jst.jsp.core.internal.provisional.JSP12Namespace;
import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
import org.eclipse.jst.jsp.core.internal.taglib.TaglibHelper;
import org.eclipse.jst.jsp.core.internal.taglib.TaglibHelperManager;
@@ -734,7 +735,7 @@
addTaglibVariables(tagToAdd, getCurrentNode());
}
- protected void addTaglibVariables(String tagToAdd, IStructuredDocumentRegion customTag) {
+ protected void addTaglibVariables(String tagToAdd, ITextRegionCollection customTag) {
IFile f = getFile();
if (f == null || !f.exists())
@@ -1005,6 +1006,9 @@
// ////////////////////////////////////////////////////////////////////////////////
}
}
+ if (region instanceof ITextRegionCollection && ((ITextRegionCollection) region).getNumberOfRegions() > 0) {
+ translateRegionContainer((ITextRegionCollection) region, EMBEDDED_JSP);
+ }
if (type != null && isJSP(type)) // <%, <%=, <%!, <%@
{
// translateJSPNode(region, regions, type, JSPType);
@@ -1791,7 +1795,8 @@
while (!sdRegion.isDeleted() && taglibRegions.hasNext()) {
r = (ITextRegion) taglibRegions.next();
if (r.getType().equals(DOMJSPRegionContexts.JSP_DIRECTIVE_NAME)) {
- if (sdRegion.getText(r).equals(JSP12TLDNames.TAGLIB)) {
+ String text = sdRegion.getText(r);
+ if (JSP12TLDNames.TAGLIB.equals(text) || JSP12Namespace.ElementName.DIRECTIVE_TAGLIB.equals(text)) {
addBlockMarkers(tracker.getDocument());
}
}
@@ -1950,6 +1955,7 @@
if (!getIncludes().contains(filePath) && !filePath.equals(basePath.toString())) {
getIncludes().push(filePath);
JSPIncludeRegionHelper helper = new JSPIncludeRegionHelper(this);
+ // Should we consider preludes on this segment?
helper.parse(filePath);
getIncludes().pop();
}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/XMLJSPRegionHelper.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/XMLJSPRegionHelper.java
index 2276bf9..c57d86f 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/XMLJSPRegionHelper.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/XMLJSPRegionHelper.java
@@ -17,6 +17,7 @@
import org.eclipse.core.runtime.Path;
import org.eclipse.jst.jsp.core.internal.Logger;
import org.eclipse.jst.jsp.core.internal.contentmodel.tld.TLDCMDocumentManager;
+import org.eclipse.jst.jsp.core.internal.contentmodel.tld.TaglibTracker;
import org.eclipse.jst.jsp.core.internal.parser.JSPSourceParser;
import org.eclipse.jst.jsp.core.internal.provisional.JSP11Namespace;
import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
@@ -106,6 +107,18 @@
for (int i = 0; i < blockMarkers.size(); i++) {
addBlockMarker((BlockMarker) blockMarkers.get(i));
}
+ // RATLC01139770
+// getLocalParser().getNestablePrefixes().addAll(((JSPSourceParser)fTranslator.getStructuredDocument().getParser()).getNestablePrefixes());
+ TLDCMDocumentManager documentManager = this.fTranslator.getTLDCMDocumentManager();
+ if (documentManager != null) {
+ List trackers = documentManager.getTaglibTrackers();
+ for (Iterator it = trackers.iterator(); it.hasNext();) {
+ TaglibTracker tracker = (TaglibTracker) it.next();
+ String prefix = tracker.getPrefix();
+ getLocalParser().getNestablePrefixes().add(new TagMarker(prefix));
+ }
+ }
+
reset(contents);
// forceParse();
document.set(contents);
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/parser/internal/JSPTokenizer.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/parser/internal/JSPTokenizer.java
index 7dd5132..b424476 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/parser/internal/JSPTokenizer.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/parser/internal/JSPTokenizer.java
@@ -1,4 +1,4 @@
-/* The following code was generated by JFlex 1.2.2 on 10/17/07 4:12 AM */
+/* The following code was generated by JFlex 1.2.2 on 10/24/07 5:16 AM */
/*******************************************************************************
* Copyright (c) 2004, 2007 IBM Corporation and others.
@@ -35,7 +35,7 @@
/**
* This class is a scanner generated by
* <a href="http://www.informatik.tu-muenchen.de/~kleing/jflex/">JFlex</a> 1.2.2
- * on 10/17/07 4:12 AM from the specification file
+ * on 10/24/07 5:16 AM from the specification file
* <tt>file:/D:/eclipse.wtp/workspace/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.jflex</tt>
*/
public class JSPTokenizer implements BlockTokenizer, DOMJSPRegionContexts {
@@ -44,16 +44,16 @@
final public static int YYEOF = -1;
/** lexical states */
- final public static int ST_JSP_VBL_DQUOTES = 52;
- final public static int ST_JSP_VBL_SQUOTES = 51;
- final public static int ST_JSP_VBL_SQUOTES_END = 53;
+ final public static int ST_JSP_VBL_DQUOTES = 51;
+ final public static int ST_JSP_VBL_SQUOTES = 50;
+ final public static int ST_JSP_VBL_SQUOTES_END = 52;
final public static int ST_XML_COMMENT_END = 4;
final public static int ST_JSP_DIRECTIVE_ATTRIBUTE_VALUE = 21;
- final public static int ST_JSP_EL_SQUOTES_END = 46;
- final public static int ST_JSP_EL_DQUOTES = 45;
- final public static int ST_JSP_EL = 43;
+ final public static int ST_JSP_EL_SQUOTES_END = 45;
+ final public static int ST_JSP_EL_DQUOTES = 44;
+ final public static int ST_JSP_EL = 42;
final public static int ST_BLOCK_TAG_SCAN = 36;
- final public static int ST_JSP_EL_SQUOTES = 44;
+ final public static int ST_JSP_EL_SQUOTES = 43;
final public static int ST_DHTML_ATTRIBUTE_VALUE = 14;
final public static int ST_XML_PI_ATTRIBUTE_NAME = 8;
final public static int ST_DHTML_TAG_CLOSE = 15;
@@ -61,8 +61,8 @@
final public static int ST_DHTML_EQUALS = 13;
final public static int ST_XML_PI_ATTRIBUTE_VALUE = 10;
final public static int ST_XML_ATTRIBUTE_VALUE = 25;
- final public static int ST_JSP_VBL = 50;
- final public static int ST_JSP_SQUOTED_VBL = 56;
+ final public static int ST_JSP_VBL = 49;
+ final public static int ST_JSP_SQUOTED_VBL = 55;
final public static int ST_XML_ATTRIBUTE_VALUE_SQUOTED = 40;
final public static int ST_XML_ATTRIBUTE_NAME = 23;
final public static int ST_XML_EQUALS = 24;
@@ -73,8 +73,8 @@
final public static int ST_XML_ELEMENT_DECLARATION = 32;
final public static int ST_XML_DECLARATION_CLOSE = 27;
final public static int ST_JSP_DIRECTIVE_EQUALS = 20;
- final public static int ST_JSP_VBL_DQUOTES_END = 54;
- final public static int ST_JSP_DQUOTED_EL = 48;
+ final public static int ST_JSP_VBL_DQUOTES_END = 53;
+ final public static int ST_JSP_DQUOTED_EL = 47;
final public static int ST_XML_DOCTYPE_DECLARATION = 28;
final public static int ST_CDATA_END = 2;
final public static int ST_PI_WS = 6;
@@ -82,15 +82,15 @@
final public static int ST_JSP_DIRECTIVE_NAME_WHITESPACE = 18;
final public static int ST_XML_ELEMENT_DECLARATION_CONTENT = 33;
final public static int ST_XML_ATTLIST_DECLARATION = 34;
- final public static int ST_JSP_EL_DQUOTES_END = 47;
- final public static int ST_JSP_SQUOTED_EL = 49;
+ final public static int ST_JSP_EL_DQUOTES_END = 46;
+ final public static int ST_JSP_SQUOTED_EL = 48;
final public static int ST_JSP_COMMENT_END = 39;
final public static int ST_XML_PI_EQUALS = 9;
final public static int ST_XML_ATTLIST_DECLARATION_CONTENT = 35;
final public static int ST_XML_DOCTYPE_ID_PUBLIC = 30;
- final public static int ST_JSP_DQUOTED_VBL = 55;
+ final public static int ST_JSP_DQUOTED_VBL = 54;
final public static int ST_DHTML_ATTRIBUTE_NAME = 12;
- final public static int ST_ABORT_EMBEDDED = 42;
+ final public static int ST_ABORT_EMBEDDED = 37;
final public static int ST_XML_DOCTYPE_EXTERNAL_ID = 29;
final public static int ST_JSP_COMMENT = 38;
final public static int ST_PI_CONTENT = 7;
@@ -191,583 +191,585 @@
2130, 2201, 2272, 2343, 2414, 2485, 2556, 2627, 2698, 2769,
2840, 2911, 2982, 3053, 3124, 3195, 3266, 3337, 3408, 3479,
3550, 3621, 3692, 3763, 3834, 3905, 3976, 4047, 4118, 4189,
- 4260, 4331, 4402, 4473, 4544, 4473, 4544, 4615, 4473, 4473,
- 4544, 4686, 4757, 4828, 4899, 4970, 5041, 5112, 5183, 4473,
- 4544, 5254, 5325, 5396, 4473, 5467, 5467, 5538, 5609, 5680,
- 5254, 4473, 5751, 5822, 4473, 5893, 5964, 6035, 6106, 4473,
- 4544, 6177, 6248, 6319, 6390, 6461, 6532, 4473, 6603, 6603,
- 6674, 6745, 6816, 6887, 6958, 4473, 7029, 7100, 7171, 7242,
- 7313, 7384, 4473, 7455, 7526, 7597, 7668, 7739, 7810, 7881,
- 7952, 4473, 8023, 8094, 8165, 8236, 8307, 8378, 8449, 8520,
- 8520, 8591, 8662, 8733, 8804, 8804, 8875, 8946, 9017, 9088,
- 9088, 9159, 9230, 9301, 9372, 4473, 9443, 9443, 9514, 9585,
- 9656, 9727, 4473, 4473, 4544, 9798, 4473, 4544, 9869, 9940,
- 10011, 10082, 4473, 10153, 10224, 10295, 10366, 4473, 10437, 10508,
- 10579, 10650, 4473, 4473, 10721, 4473, 10792, 10863, 10792, 10934,
- 11005, 10934, 4473, 4473, 11076, 11147, 11218, 4473, 11289, 11360,
- 11431, 11502, 11573, 4473, 4473, 11644, 4473, 11715, 11786, 11715,
- 11857, 11928, 11857, 4473, 4473, 11999, 12070, 12141, 4473, 12212,
- 12283, 12354, 4473, 4473, 12425, 12496, 12567, 12638, 12709, 4473,
- 12780, 12851, 12922, 12993, 13064, 13135, 13206, 13277, 13348, 4473,
- 13419, 13490, 13561, 4473, 4473, 5467, 5609, 4473, 13632, 5680,
- 13703, 5751, 5893, 5964, 13774, 6035, 4473, 13845, 13916, 6106,
- 13987, 4473, 12496, 4473, 6603, 6674, 4473, 14058, 6745, 14129,
- 4473, 14200, 14271, 7455, 14342, 7668, 4473, 14413, 7739, 14484,
- 14555, 14626, 14697, 14768, 14839, 8236, 4473, 14910, 14981, 8520,
- 8591, 4473, 15052, 15123, 15194, 15265, 15336, 8733, 8520, 8804,
- 8875, 4473, 8946, 9017, 8804, 9088, 9159, 4473, 15407, 15478,
- 15549, 15620, 15691, 15762, 15833, 9443, 9514, 4473, 15904, 15975,
- 16046, 16117, 16188, 16259, 16330, 16401, 16472, 4473, 4473, 4473,
- 16543, 4473, 4473, 16614, 16685, 16756, 16827, 10792, 4473, 16898,
- 16969, 10934, 4473, 17040, 17111, 17182, 17253, 17324, 17395, 17466,
- 17537, 17608, 11502, 11715, 4473, 17679, 17750, 11857, 4473, 17821,
- 17892, 17963, 18034, 18105, 18176, 18247, 18318, 18389, 4473, 4473,
- 4473, 18460, 18531, 18602, 18673, 18744, 4473, 18815, 18886, 4473,
- 4473, 4473, 4473, 4473, 4899, 18957, 19028, 19099, 19170, 19241,
- 19312, 19383, 19312, 19454, 19525, 19454, 19596, 19667, 19738, 19809,
- 19880, 19951, 20022, 20022, 20093, 20164, 20164, 20235, 9301, 9301,
- 20306, 20377, 20448, 20448, 20519, 9656, 9656, 20590, 20661, 16756,
- 20732, 10579, 10579, 20803, 20874, 10792, 10792, 20945, 21016, 10934,
- 10934, 21087, 21158, 11076, 11076, 17324, 21229, 21300, 11289, 11289,
- 17537, 21371, 21442, 11502, 11502, 21513, 11715, 11715, 21584, 21655,
- 11857, 11857, 21726, 21797, 11999, 11999, 18105, 21868, 21939, 12212,
- 12212, 18318, 22010, 4473, 4473, 22081, 22152, 4473, 22223, 22294,
- 22365, 22436, 7455, 4473, 4473, 22507, 22578, 22649, 22720, 22791,
- 15265, 15620, 9301, 22862, 16117, 9656, 22933, 4473, 10579, 10792,
- 23004, 10934, 23075, 11076, 23146, 4473, 11289, 23217, 11502, 11715,
- 23288, 11857, 23359, 11999, 23430, 4473, 12212, 23501, 23572, 23643,
- 23714, 23785, 23856, 23927, 23998, 24069, 24140, 24211, 24282, 24353,
- 24424, 24495, 24566, 24637, 24708, 24779, 24850, 24921, 24992, 25063,
- 4899, 25134, 25205, 25276, 25347, 25418, 4473, 4473, 25489, 25560,
- 25631, 25702, 17324, 17537, 25773, 25844, 18105, 18318, 25915, 25986,
- 26057, 26128, 4473, 4473, 4473, 26199, 26270, 26341, 26412, 26483,
- 26554, 26625, 26696, 7171, 26767, 26838, 26909, 26980, 27051, 27122,
- 27193, 4473, 27264, 27335, 9301, 9656, 10792, 10934, 11715, 11857,
- 27406, 27477, 27548, 27619, 27690, 27761, 27832, 27903, 4899, 27974,
- 28045, 28116, 28187, 28258, 28329, 28400, 28471, 28542, 28613, 28684,
- 28755, 28826, 28897, 28968, 29039, 29110, 29181, 29252, 29323, 29394,
- 29465, 29536, 29607, 29678, 29749, 29820, 29891, 29962, 30033, 30104,
- 30175, 30246, 30317, 30388, 30459, 4473, 30530, 30601, 30672, 30743,
- 7171, 30814, 30885, 30956, 31027, 31098, 31169, 31240, 31311, 31382,
- 31453, 31524, 31595, 31666, 31737
+ 4260, 4331, 4402, 4473, 4402, 4473, 4544, 4402, 4402, 4473,
+ 4615, 4686, 4757, 4828, 4899, 4970, 5041, 5112, 4402, 4473,
+ 5183, 5254, 5325, 4402, 5396, 5396, 5467, 5538, 5609, 5183,
+ 4402, 5680, 5751, 4402, 5822, 5893, 5964, 6035, 4402, 4473,
+ 6106, 6177, 6248, 6319, 6390, 6461, 4402, 6532, 6532, 6603,
+ 6674, 6745, 6816, 6887, 4402, 6958, 7029, 7100, 7171, 7242,
+ 7313, 4402, 7384, 7455, 7526, 7597, 7668, 7739, 7810, 7881,
+ 4402, 7952, 8023, 8094, 8165, 8236, 8307, 8378, 8449, 8449,
+ 8520, 8591, 8662, 8733, 8733, 8804, 8875, 8946, 9017, 9017,
+ 9088, 9159, 9230, 9301, 4402, 9372, 9372, 9443, 9514, 9585,
+ 9656, 4402, 4402, 4473, 4402, 4473, 9727, 9798, 9869, 9940,
+ 4402, 10011, 10082, 10153, 10224, 4402, 10295, 10366, 10437, 10508,
+ 4402, 4402, 10579, 4402, 10650, 10721, 10650, 10792, 10863, 10792,
+ 4402, 4402, 10934, 11005, 11076, 4402, 11147, 11218, 11289, 11360,
+ 11431, 4402, 4402, 11502, 4402, 11573, 11644, 11573, 11715, 11786,
+ 11715, 4402, 4402, 11857, 11928, 11999, 4402, 12070, 12141, 12212,
+ 4402, 4402, 12283, 12354, 12425, 12496, 12567, 4402, 12638, 12709,
+ 12780, 12851, 12922, 12993, 13064, 13135, 4402, 13206, 13277, 13348,
+ 4402, 4402, 5396, 5538, 4402, 13419, 5609, 13490, 5680, 5822,
+ 5893, 13561, 5964, 4402, 13632, 13703, 6035, 13774, 4402, 12354,
+ 4402, 6532, 6603, 4402, 13845, 6674, 13916, 4402, 13987, 14058,
+ 7384, 14129, 7597, 4402, 14200, 7668, 14271, 14342, 14413, 14484,
+ 14555, 14626, 8165, 4402, 14697, 14768, 8449, 8520, 4402, 14839,
+ 14910, 14981, 15052, 15123, 8662, 8449, 8733, 8804, 4402, 8875,
+ 8946, 8733, 9017, 9088, 4402, 15194, 15265, 15336, 15407, 15478,
+ 15549, 15620, 9372, 9443, 4402, 15691, 15762, 15833, 15904, 15975,
+ 16046, 16117, 16188, 16259, 4402, 4402, 4402, 16330, 4402, 4402,
+ 16401, 16472, 16543, 16614, 10650, 4402, 16685, 16756, 10792, 4402,
+ 16827, 16898, 16969, 17040, 17111, 17182, 17253, 17324, 17395, 11360,
+ 11573, 4402, 17466, 17537, 11715, 4402, 17608, 17679, 17750, 17821,
+ 17892, 17963, 18034, 18105, 18176, 4402, 4402, 4402, 18247, 18318,
+ 18389, 18460, 18531, 4402, 18602, 18673, 4402, 4402, 4402, 4402,
+ 4402, 4828, 18744, 18815, 18886, 18957, 19028, 19099, 19170, 19099,
+ 19241, 19312, 19241, 19383, 19454, 19525, 19596, 19667, 19738, 19809,
+ 19809, 19880, 19951, 19951, 20022, 9230, 9230, 9230, 20093, 20164,
+ 20235, 20235, 20306, 9585, 9585, 9585, 20377, 20448, 16543, 20519,
+ 10437, 10437, 10437, 20590, 20661, 10650, 10650, 10650, 20732, 20803,
+ 10792, 10792, 10792, 20874, 20945, 10934, 10934, 10934, 17111, 21016,
+ 21087, 11147, 11147, 11147, 17324, 21158, 21229, 11360, 11360, 11360,
+ 21300, 11573, 11573, 11573, 21371, 21442, 11715, 11715, 11715, 21513,
+ 21584, 11857, 11857, 11857, 17892, 21655, 21726, 12070, 12070, 12070,
+ 18105, 21797, 4402, 4402, 21868, 21939, 4402, 22010, 22081, 22152,
+ 22223, 7384, 4402, 4402, 22294, 22365, 22436, 22507, 22578, 15052,
+ 15407, 9230, 22649, 15904, 9585, 22720, 4402, 10437, 10650, 22791,
+ 10792, 22862, 10934, 22933, 4402, 11147, 23004, 11360, 11573, 23075,
+ 11715, 23146, 11857, 23217, 4402, 12070, 23288, 23359, 23430, 23501,
+ 23572, 23643, 23714, 23785, 23856, 23927, 23998, 24069, 24140, 24211,
+ 24282, 24353, 24424, 24495, 24566, 24637, 24708, 24779, 24850, 4828,
+ 24921, 24992, 25063, 25134, 25205, 4402, 4402, 25276, 25347, 25418,
+ 25489, 17111, 17324, 25560, 25631, 17892, 18105, 25702, 25773, 25844,
+ 25915, 4402, 4402, 4402, 25986, 26057, 26128, 26199, 26270, 26341,
+ 26412, 26483, 7100, 26554, 26625, 26696, 26767, 26838, 26909, 26980,
+ 4402, 27051, 27122, 9230, 9585, 10650, 10792, 11573, 11715, 27193,
+ 27264, 27335, 27406, 27477, 27548, 27619, 27690, 4828, 27761, 27832,
+ 27903, 27974, 28045, 28116, 28187, 28258, 28329, 28400, 28471, 28542,
+ 28613, 28684, 28755, 28826, 28897, 28968, 29039, 29110, 29181, 29252,
+ 29323, 29394, 29465, 29536, 29607, 29678, 29749, 29820, 29891, 29962,
+ 30033, 30104, 30175, 30246, 4402, 30317, 30388, 30459, 30530, 7100,
+ 30601, 30672, 30743, 30814, 30885, 30956, 31027, 31098, 31169, 31240,
+ 31311, 31382, 31453, 31524
};
/**
* The packed transition table of the DFA
*/
final private static String yy_packed =
- "\1\72\1\73\11\72\1\74\1\72\1\75\4\72\1\76"+
- "\42\72\1\77\21\72\1\100\1\101\105\100\1\102\1\103"+
- "\21\102\1\104\2\102\1\105\60\102\1\106\1\107\105\106"+
- "\1\102\1\103\5\102\1\110\16\102\1\105\61\102\1\103"+
- "\2\102\1\111\1\112\2\102\2\113\5\102\1\112\6\102"+
- "\1\112\1\114\1\115\4\113\1\102\10\113\1\116\2\113"+
- "\1\102\11\113\1\116\1\113\1\102\4\113\1\102\4\113"+
- "\1\102\4\113\2\102\1\113\1\102\1\103\2\102\1\111"+
- "\1\117\11\102\1\117\6\102\1\117\60\102\1\120\1\121"+
- "\2\120\1\122\21\120\1\105\60\120\1\102\1\103\2\102"+
- "\1\123\1\112\2\102\2\124\5\102\1\112\6\102\1\112"+
- "\6\124\1\102\13\124\1\102\13\124\1\102\4\124\1\102"+
- "\4\124\1\102\4\124\2\102\1\124\1\102\1\103\2\102"+
- "\1\123\1\112\2\102\2\124\5\102\1\112\6\102\1\112"+
- "\6\124\1\102\13\124\1\125\13\124\1\102\4\124\1\102"+
- "\4\124\1\102\4\124\2\102\1\124\1\126\1\103\1\102"+
- "\1\127\1\130\1\112\4\126\1\131\1\126\1\132\2\126"+
- "\1\112\6\126\1\112\60\126\1\102\1\103\2\102\1\133"+
- "\21\102\1\105\61\102\1\103\1\134\1\135\1\102\1\112"+
- "\2\102\2\136\5\102\1\112\6\102\1\112\6\136\1\102"+
- "\13\136\1\102\13\136\1\102\4\136\1\102\4\136\1\102"+
- "\4\136\2\102\1\136\1\102\1\103\1\134\1\135\1\102"+
- "\1\112\2\102\2\136\5\102\1\112\6\102\1\112\6\136"+
- "\1\102\13\136\1\137\13\136\1\102\4\136\1\102\4\136"+
- "\1\102\4\136\2\102\1\136\1\140\1\103\1\134\1\141"+
- "\1\140\1\112\4\140\1\142\1\140\1\143\2\140\1\112"+
- "\6\140\1\112\60\140\1\102\1\103\3\102\1\112\11\102"+
- "\1\112\6\102\1\112\60\102\1\144\1\145\20\144\1\146"+
- "\64\144\1\102\1\147\3\102\1\112\2\102\2\150\5\102"+
- "\1\112\2\102\1\151\3\102\1\112\6\150\1\102\13\150"+
- "\1\102\13\150\1\102\4\150\1\102\4\150\1\102\4\150"+
- "\2\102\1\150\1\102\1\147\3\102\1\152\11\102\1\152"+
- "\2\102\1\151\3\102\1\152\61\102\1\147\3\102\1\112"+
- "\2\102\2\153\5\102\1\112\2\102\1\151\3\102\1\112"+
- "\6\153\1\102\13\153\1\102\13\153\1\102\4\153\1\102"+
- "\4\153\1\102\4\153\2\102\1\153\1\102\1\147\3\102"+
- "\1\112\2\102\2\153\5\102\1\112\2\102\1\151\3\102"+
- "\1\112\6\153\1\102\13\153\1\154\13\153\1\102\4\153"+
- "\1\102\4\153\1\102\4\153\2\102\1\153\1\155\1\147"+
- "\1\102\1\156\1\155\1\112\4\155\1\157\1\155\1\160"+
- "\2\155\1\112\2\155\1\161\3\155\1\112\60\155\1\162"+
- "\1\163\1\164\1\165\4\162\2\166\15\162\6\167\1\162"+
- "\13\167\1\162\13\167\1\162\4\167\1\162\4\167\1\162"+
- "\1\170\3\167\2\162\1\167\1\102\1\171\1\164\1\165"+
- "\1\102\1\112\2\102\2\172\5\102\1\112\6\102\1\112"+
- "\6\172\1\102\13\172\1\102\13\172\1\102\4\172\1\102"+
- "\4\172\1\102\4\172\2\102\1\172\1\102\1\171\1\164"+
- "\1\165\1\102\1\112\2\102\2\172\5\102\1\112\6\102"+
- "\1\112\6\172\1\102\13\172\1\173\13\172\1\102\4\172"+
- "\1\102\4\172\1\102\4\172\2\102\1\172\1\174\1\175"+
- "\1\164\1\176\1\174\1\112\4\174\1\177\1\174\1\200"+
- "\1\201\1\174\1\112\6\174\1\112\36\174\1\202\21\174"+
- "\1\102\1\203\1\204\2\102\1\112\11\102\1\112\6\102"+
- "\1\112\10\102\1\205\1\206\2\102\1\207\11\102\1\207"+
- "\1\102\1\206\1\205\27\102\1\103\1\204\2\102\1\112"+
- "\11\102\1\112\6\102\1\112\6\102\1\210\52\102\1\103"+
- "\1\204\2\102\1\112\2\102\2\211\5\102\1\112\6\102"+
- "\1\112\6\211\1\210\13\211\1\102\13\211\1\102\4\211"+
- "\1\102\4\211\1\102\4\211\2\102\1\211\1\102\1\103"+
- "\1\204\2\102\1\112\11\102\1\112\6\102\1\112\6\102"+
- "\1\210\7\102\1\212\6\102\1\213\11\102\1\212\12\102"+
- "\1\213\5\102\1\214\1\103\1\204\1\215\1\214\1\112"+
- "\4\214\1\216\1\214\1\217\2\214\1\112\6\214\1\112"+
- "\6\214\1\220\51\214\1\221\1\103\1\204\1\222\1\221"+
- "\1\112\4\221\1\223\1\221\1\224\2\221\1\112\6\221"+
- "\1\112\6\221\1\225\51\221\1\226\1\103\1\204\1\227"+
- "\1\226\1\112\4\226\1\230\1\226\1\231\2\226\1\112"+
- "\6\226\1\112\60\226\1\232\1\233\1\234\104\232\1\235"+
- "\1\103\1\204\1\236\1\235\1\112\4\235\1\237\1\235"+
- "\1\240\2\235\1\112\6\235\1\112\60\235\1\241\1\242"+
- "\1\243\104\241\1\244\1\245\105\244\1\102\1\246\24\102"+
- "\1\105\60\102\1\247\1\250\105\247\1\102\1\103\5\102"+
- "\1\251\16\102\1\105\60\102\1\252\1\253\3\252\1\254"+
- "\6\252\1\255\1\256\1\252\1\254\6\252\1\254\36\252"+
- "\1\257\21\252\1\260\1\253\3\260\1\261\4\260\1\262"+
- "\2\260\1\263\1\260\1\261\6\260\1\261\36\260\1\264"+
- "\21\260\1\102\1\103\24\102\1\105\60\102\1\265\1\266"+
- "\10\265\1\267\1\265\1\270\1\271\67\265\1\272\1\265"+
- "\1\273\1\274\12\273\1\102\11\273\1\275\60\273\1\276"+
- "\1\277\10\276\1\102\13\276\1\300\60\276\1\102\1\103"+
- "\12\102\1\301\11\102\1\105\61\102\1\103\10\102\1\302"+
- "\13\102\1\105\60\102\1\303\1\304\10\303\1\262\71\303"+
- "\1\305\1\306\1\303\1\307\1\310\12\307\1\255\67\307"+
- "\1\311\1\306\1\307\1\312\1\313\10\312\1\314\1\312"+
- "\1\315\50\312\1\316\17\312\1\317\1\312\1\320\1\321"+
- "\12\320\1\102\11\320\1\322\60\320\1\323\1\324\10\323"+
- "\1\102\13\323\1\325\60\323\1\102\1\103\12\102\1\326"+
- "\11\102\1\105\61\102\1\103\10\102\1\327\13\102\1\105"+
- "\60\102\1\330\1\331\10\330\1\262\71\330\1\332\1\333"+
- "\1\330\1\334\1\335\12\334\1\255\67\334\1\336\1\333"+
- "\1\334\1\72\1\0\11\72\1\0\1\72\1\0\4\72"+
- "\1\0\42\72\1\0\21\72\3\0\1\337\1\340\15\0"+
- "\1\341\2\0\1\342\66\0\1\343\2\0\2\344\5\0"+
- "\1\343\6\0\1\343\6\344\1\0\13\344\1\0\13\344"+
- "\1\345\4\344\1\0\4\344\1\0\4\344\2\0\1\344"+
- "\1\346\1\0\11\346\1\0\1\346\1\347\1\350\3\346"+
- "\1\0\64\346\5\0\1\343\2\0\2\351\5\0\1\343"+
- "\6\0\1\343\6\351\1\0\13\351\1\0\13\351\1\0"+
- "\4\351\1\0\4\351\1\0\4\351\2\0\1\351\1\346"+
- "\1\0\11\346\1\0\2\346\1\352\3\346\1\0\42\346"+
- "\1\353\21\346\131\0\1\354\2\0\1\355\104\0\1\356"+
- "\72\0\1\357\101\0\1\360\111\0\1\112\11\0\1\112"+
- "\6\0\1\112\66\0\4\113\6\0\1\113\6\0\6\113"+
- "\1\0\13\113\1\0\13\113\1\0\4\113\1\0\11\113"+
- "\2\0\1\113\6\0\4\113\6\0\1\113\6\0\2\113"+
- "\2\361\2\113\1\0\13\113\1\0\13\113\1\0\4\113"+
- "\1\0\11\113\2\0\1\113\6\0\4\113\6\0\1\113"+
- "\6\0\2\113\1\361\1\362\2\113\1\0\13\113\1\0"+
- "\13\113\1\0\4\113\1\0\11\113\2\0\1\113\6\0"+
- "\4\113\6\0\1\113\6\0\2\113\2\363\2\113\1\0"+
- "\13\113\1\0\13\113\1\0\4\113\1\0\11\113\2\0"+
- "\1\113\5\0\1\117\11\0\1\117\6\0\1\117\62\0"+
- "\1\364\106\0\1\365\112\0\4\124\6\0\1\124\6\0"+
- "\6\124\1\0\13\124\1\0\13\124\1\0\4\124\1\0"+
- "\11\124\2\0\1\124\1\126\2\0\1\366\1\126\1\0"+
- "\4\126\1\0\1\126\1\0\2\126\1\0\6\126\1\0"+
- "\61\126\1\0\1\365\1\366\1\126\1\0\4\126\1\0"+
- "\1\126\1\0\2\126\1\0\6\126\1\0\60\126\1\367"+
- "\1\0\10\367\1\370\2\367\1\371\47\367\1\371\21\367"+
- "\1\372\1\0\12\372\1\370\1\373\47\372\1\373\21\372"+
- "\2\0\1\134\1\374\111\0\4\136\6\0\1\136\6\0"+
- "\6\136\1\0\13\136\1\0\13\136\1\0\4\136\1\0"+
- "\11\136\2\0\1\136\1\140\2\0\1\375\1\140\1\0"+
- "\4\140\1\0\1\140\1\0\2\140\1\0\6\140\1\0"+
- "\61\140\1\0\1\134\1\376\1\140\1\0\4\140\1\0"+
- "\1\140\1\0\2\140\1\0\6\140\1\0\60\140\1\142"+
- "\1\0\1\377\1\u0100\1\142\1\377\4\142\1\u0101\1\142"+
- "\1\377\1\u0102\1\142\1\377\6\142\1\377\36\142\1\u0102"+
- "\21\142\1\143\1\0\1\u0103\1\u0104\1\143\1\u0103\4\143"+
- "\1\u0103\1\143\1\u0101\1\u0105\1\143\1\u0103\6\143\1\u0103"+
- "\36\143\1\u0105\21\143\2\0\1\u0106\126\0\1\354\2\0"+
- "\1\u0107\67\0\4\150\6\0\1\150\6\0\6\150\1\0"+
- "\13\150\1\0\13\150\1\0\4\150\1\0\11\150\2\0"+
- "\1\150\2\0\1\u0108\111\0\1\152\11\0\1\152\6\0"+
- "\1\152\66\0\4\153\6\0\1\153\6\0\6\153\1\0"+
- "\13\153\1\0\13\153\1\0\4\153\1\0\11\153\2\0"+
- "\1\153\1\155\2\0\1\u0109\1\155\1\0\4\155\1\0"+
- "\1\155\1\0\2\155\1\0\6\155\1\0\60\155\1\u010a"+
- "\1\0\10\u010a\1\u010b\2\u010a\1\u010c\47\u010a\1\u010c\21\u010a"+
- "\1\u010d\1\0\12\u010d\1\u010b\1\u010e\47\u010d\1\u010e\21\u010d"+
- "\1\155\1\0\1\u0108\1\u0109\1\155\1\0\4\155\1\0"+
- "\1\155\1\0\2\155\1\0\6\155\1\0\60\155\1\162"+
- "\3\0\23\162\6\0\1\162\13\0\1\162\13\0\1\162"+
- "\4\0\1\162\4\0\1\162\4\0\2\162\4\0\1\337"+
- "\16\0\1\354\2\0\1\342\63\0\1\u010f\104\0\1\162"+
- "\3\0\2\162\4\166\6\162\1\166\6\162\6\167\1\162"+
- "\13\167\1\162\13\167\1\162\4\167\1\162\4\167\1\166"+
- "\4\167\2\162\1\167\6\0\4\167\6\0\1\167\6\0"+
- "\6\167\1\0\13\167\1\0\13\167\1\0\4\167\1\0"+
- "\11\167\2\0\1\167\6\0\4\167\6\0\1\167\6\0"+
- "\6\167\1\0\7\167\1\u0110\3\167\1\0\13\167\1\0"+
- "\4\167\1\0\11\167\2\0\1\167\3\0\1\337\4\0"+
- "\2\u0111\10\0\1\354\2\0\1\342\1\0\6\u0111\1\0"+
- "\13\u0111\1\0\13\u0111\1\0\4\u0111\1\0\4\u0111\1\0"+
- "\4\u0111\2\0\1\u0111\6\0\4\172\6\0\1\172\6\0"+
- "\6\172\1\0\13\172\1\0\13\172\1\0\4\172\1\0"+
- "\11\172\2\0\1\172\1\174\2\0\1\u0112\1\174\1\0"+
- "\4\174\1\0\1\174\1\0\2\174\1\0\6\174\1\0"+
- "\60\174\3\0\1\337\4\0\2\u0113\10\0\1\354\2\0"+
- "\1\342\1\0\6\u0113\1\0\13\u0113\1\0\13\u0113\1\0"+
- "\4\u0113\1\0\4\u0113\1\0\4\u0113\2\0\1\u0113\1\174"+
- "\1\0\1\u010f\1\u0112\1\174\1\0\4\174\1\0\1\174"+
- "\1\0\2\174\1\0\6\174\1\0\60\174\1\u0114\1\0"+
- "\10\u0114\1\u0115\2\u0114\1\u0116\47\u0114\1\u0116\21\u0114\1\u0117"+
- "\1\0\12\u0117\1\u0115\1\u0118\47\u0117\1\u0118\21\u0117\1\174"+
- "\2\0\1\u0112\1\174\1\0\4\174\1\0\1\174\1\0"+
- "\1\174\1\u0119\1\0\6\174\1\0\61\174\2\0\1\u0112"+
- "\1\174\1\0\4\174\1\0\1\174\1\0\1\174\1\u011a"+
- "\1\0\6\174\1\0\60\174\3\0\1\337\16\0\1\354"+
- "\2\0\1\u0107\130\0\1\u011b\2\0\1\u011b\75\0\1\u011c"+
- "\14\0\1\u011c\63\0\2\u011d\52\0\23\u011e\1\u011f\63\u011e"+
- "\6\0\4\211\6\0\1\211\6\0\6\211\1\0\13\211"+
- "\1\0\13\211\1\0\4\211\1\0\11\211\2\0\1\211"+
- "\53\0\1\u0120\5\0\1\u0120\116\0\1\u0121\10\0\1\u0121"+
- "\4\0\1\214\2\0\1\u0122\1\214\1\0\4\214\1\0"+
- "\1\214\1\0\2\214\1\0\6\214\1\0\60\214\1\u0123"+
- "\1\0\10\u0123\1\u0124\2\u0123\1\u0125\47\u0123\1\u0125\21\u0123"+
- "\1\u0126\1\0\1\u0126\2\u0127\1\u0126\4\u0127\2\u0126\1\u0128"+
- "\1\u0129\1\u0126\4\u0127\1\u0126\11\u0127\1\u0126\27\u0127\1\u0129"+
- "\10\u0127\2\u0126\4\u0127\2\u0126\1\u0127\1\220\2\u011e\1\u012a"+
- "\1\220\1\u011e\4\220\1\u011e\1\220\1\u011e\2\220\1\u011e"+
- "\3\220\1\u012b\2\220\1\u011e\60\220\1\221\2\0\1\u012c"+
- "\1\221\1\0\4\221\1\0\1\221\1\0\2\221\1\0"+
- "\6\221\1\0\60\221\12\u012d\1\u012e\74\u012d\14\u012f\1\u012e"+
- "\72\u012f\1\225\2\u011e\1\u0130\1\225\1\u011e\4\225\1\u011e"+
- "\1\225\1\u011e\2\225\1\u011e\3\225\1\u0131\2\225\1\u011e"+
- "\60\225\1\226\2\0\1\u0132\1\226\1\0\4\226\1\0"+
- "\1\226\1\0\2\226\1\0\6\226\1\0\60\226\1\u0133"+
- "\1\0\10\u0133\1\u0134\2\u0133\1\u0135\47\u0133\1\u0135\21\u0133"+
- "\1\u0136\1\0\1\u0136\2\u0137\1\u0136\4\u0137\2\u0136\1\u0138"+
- "\1\u0139\1\u0136\4\u0137\1\u0136\11\u0137\1\u0136\27\u0137\1\u0139"+
- "\10\u0137\2\u0136\4\u0137\2\u0136\1\u0137\2\232\1\0\106\232"+
- "\1\0\17\232\1\u013a\2\232\1\u013b\61\232\1\235\2\0"+
- "\1\u013c\1\235\1\0\4\235\1\0\1\235\1\0\2\235"+
- "\1\0\6\235\1\0\60\235\1\u013d\1\0\10\u013d\1\u013e"+
- "\2\u013d\1\u013f\47\u013d\1\u013f\21\u013d\1\u0140\1\0\1\u0140"+
- "\2\u0141\1\u0140\4\u0141\2\u0140\1\u0142\1\u0143\1\u0140\4\u0141"+
- "\1\u0140\11\u0141\1\u0140\27\u0141\1\u0143\10\u0141\2\u0140\4\u0141"+
- "\2\u0140\1\u0141\2\241\1\0\106\241\1\0\17\241\1\u0144"+
- "\2\241\1\u0145\61\241\22\0\1\341\2\0\1\355\70\0"+
- "\1\u0146\77\0\1\252\1\0\12\252\1\0\1\u0147\47\252"+
- "\1\u0147\21\252\3\0\1\u0148\16\0\1\354\2\0\1\355"+
- "\61\0\1\252\1\0\3\252\1\254\6\252\1\0\1\u0147"+
- "\1\252\1\254\6\252\1\254\36\252\1\u0147\37\252\1\u0149"+
- "\106\252\1\u014a\70\252\1\260\1\0\10\260\1\0\2\260"+
- "\1\u014b\47\260\1\u014b\22\260\1\0\3\260\1\261\4\260"+
- "\1\0\2\260\1\u014b\1\260\1\261\6\260\1\261\36\260"+
- "\1\u014b\37\260\1\u014c\106\260\1\u014d\70\260\12\265\1\0"+
- "\1\265\1\0\1\u014e\67\265\1\0\13\265\1\0\1\265"+
- "\1\0\1\u014e\4\265\1\u014f\62\265\1\0\13\265\1\0"+
- "\1\265\1\0\1\265\1\u0150\66\265\1\u0151\1\265\14\u0152"+
- "\1\u0153\106\u0152\1\u0153\5\u0152\1\u0154\2\u0152\1\u0155\61\u0152"+
- "\12\u0156\1\u0157\106\u0156\1\u0157\7\u0156\1\u0158\2\u0156\1\u0159"+
- "\61\u0156\12\303\1\0\71\303\1\u015a\1\0\13\303\1\0"+
- "\7\303\1\u015b\61\303\1\u015a\1\0\13\303\1\u015c\74\303"+
- "\14\307\1\0\67\307\1\u015d\1\0\15\307\1\0\5\307"+
- "\1\u015e\61\307\1\u015d\1\0\15\307\1\u015f\72\307\12\312"+
- "\1\0\1\312\1\0\70\312\1\0\13\312\1\0\1\312"+
- "\1\0\5\312\1\u0160\62\312\1\0\13\312\1\0\1\312"+
- "\1\0\1\312\1\u0161\66\312\1\0\1\312\14\u0162\1\u0163"+
- "\106\u0162\1\u0163\5\u0162\1\u0164\2\u0162\1\u0165\61\u0162\12\u0166"+
- "\1\u0167\106\u0166\1\u0167\7\u0166\1\u0168\2\u0166\1\u0169\61\u0166"+
- "\12\330\1\0\71\330\1\u016a\1\0\13\330\1\0\7\330"+
- "\1\u016b\61\330\1\u016a\1\0\13\330\1\u016c\74\330\14\334"+
- "\1\0\67\334\1\u016d\1\0\15\334\1\0\5\334\1\u016e"+
- "\61\334\1\u016d\1\0\15\334\1\u016f\72\334\7\0\1\u0170"+
- "\11\0\1\u0171\3\0\1\u0172\23\0\1\u0173\44\0\1\u0174"+
- "\25\0\1\u0175\56\0\1\343\2\0\2\u0176\5\0\1\343"+
- "\6\0\1\343\6\u0176\1\0\13\u0176\1\0\13\u0176\1\0"+
- "\4\u0176\1\0\4\u0176\1\0\4\u0176\2\0\1\u0176\1\u0177"+
- "\1\0\3\u0177\1\u0178\4\344\1\u0177\1\0\3\u0177\1\u0178"+
- "\1\344\1\u0177\1\0\3\u0177\1\u0178\6\344\1\u0177\13\344"+
- "\1\u0177\13\344\1\u0177\4\344\1\u0179\11\344\2\u0177\1\344"+
- "\20\0\1\u017a\7\0\1\u017b\73\0\1\347\71\0\105\350"+
- "\1\u017c\1\350\1\u0177\1\0\3\u0177\1\u0178\4\351\1\u0177"+
- "\1\0\3\u0177\1\u0178\1\351\1\u0177\1\0\3\u0177\1\u0178"+
- "\6\351\1\u0177\13\351\1\u0177\13\351\1\u0177\4\351\1\u017d"+
- "\11\351\2\u0177\1\351\105\352\1\u017e\1\352\65\0\1\353"+
- "\30\0\1\u0170\15\0\1\u0172\23\0\1\u0173\72\0\1\u0175"+
- "\53\0\1\u017f\106\0\1\u0180\112\0\4\113\6\0\1\113"+
- "\6\0\4\113\2\u0181\1\0\13\113\1\0\13\113\1\0"+
- "\4\113\1\0\11\113\2\0\1\113\6\0\4\113\6\0"+
- "\1\113\6\0\4\113\1\u0181\1\u0182\1\0\13\113\1\0"+
- "\13\113\1\0\4\113\1\0\11\113\2\0\1\113\6\0"+
- "\4\113\6\0\1\113\6\0\6\113\1\0\13\113\1\0"+
- "\2\113\1\u0183\10\113\1\0\4\113\1\0\6\113\1\u0183"+
- "\2\113\2\0\1\113\12\367\1\370\3\367\1\0\70\367"+
- "\14\372\1\370\1\372\1\0\70\372\1\377\1\0\10\377"+
- "\1\u0101\2\377\1\u0184\47\377\1\u0184\21\377\1\142\2\377"+
- "\1\u0100\1\142\1\377\4\142\1\u0101\1\142\1\377\1\142"+
- "\1\140\1\377\6\142\1\377\60\142\1\u0103\1\0\12\u0103"+
- "\1\u0101\1\u0185\47\u0103\1\u0185\21\u0103\1\143\2\u0103\1\u0104"+
- "\1\143\1\u0103\4\143\1\u0103\1\143\1\u0101\1\143\1\140"+
- "\1\u0103\6\143\1\u0103\60\143\12\u010a\1\u010b\3\u010a\1\0"+
- "\70\u010a\14\u010d\1\u010b\1\u010d\1\0\70\u010d\6\0\4\167"+
- "\6\0\1\167\6\0\6\167\1\0\13\167\1\0\13\167"+
- "\1\0\4\167\1\0\6\167\1\u0186\2\167\2\0\1\167"+
- "\6\0\4\u0111\6\0\1\u0111\6\0\6\u0111\1\0\13\u0111"+
- "\1\0\13\u0111\1\0\4\u0111\1\0\11\u0111\2\0\1\u0111"+
- "\6\0\4\u0113\6\0\1\u0113\6\0\6\u0113\1\0\13\u0113"+
- "\1\0\13\u0113\1\0\4\u0113\1\0\11\u0113\2\0\1\u0113"+
- "\12\u0114\1\u0115\3\u0114\1\0\70\u0114\14\u0117\1\u0115\1\u0117"+
- "\1\0\70\u0117\1\u0187\2\u0188\1\u0189\1\u0187\1\u0188\4\u0187"+
- "\1\u0188\1\u0187\1\u0188\2\u0187\1\u0188\6\u0187\1\u0188\56\u0187"+
- "\1\174\1\u0187\1\u018a\2\u018b\1\u018c\1\u018a\1\u018b\4\u018a"+
- "\1\u018b\1\u018a\1\u018b\2\u018a\1\u018b\6\u018a\1\u018b\56\u018a"+
- "\1\174\1\u018a\36\0\1\u018d\35\0\1\u018d\53\0\1\u018e"+
- "\14\0\1\u018e\73\0\1\u018f\11\0\1\u018f\76\0\1\u0190"+
- "\20\0\1\u0190\113\0\1\u0191\7\0\1\u0191\3\0\12\u0123"+
- "\1\u0124\3\u0123\1\0\70\u0123\1\u0126\1\0\12\u0126\1\u0124"+
- "\1\u0192\47\u0126\1\u0192\22\u0126\1\0\12\u0126\1\u0193\1\u0192"+
- "\47\u0126\1\u0192\21\u0126\14\0\1\u0194\72\0\14\u0126\1\u0193"+
- "\1\u0126\1\0\70\u0126\12\u0133\1\u0134\3\u0133\1\0\70\u0133"+
- "\1\u0136\1\0\12\u0136\1\u0134\1\u0195\47\u0136\1\u0195\22\u0136"+
- "\1\0\12\u0136\1\u0196\1\u0195\47\u0136\1\u0195\21\u0136\14\0"+
- "\1\u0197\72\0\14\u0136\1\u0196\1\u0136\1\0\70\u0136\2\232"+
- "\1\0\4\232\1\u0198\15\232\1\u0199\23\232\1\u019a\37\232"+
- "\1\0\32\232\1\u019b\51\232\12\u013d\1\u013e\3\u013d\1\0"+
- "\70\u013d\1\u0140\1\0\12\u0140\1\u013e\1\u019c\47\u0140\1\u019c"+
- "\22\u0140\1\0\12\u0140\1\u019d\1\u019c\47\u0140\1\u019c\21\u0140"+
- "\14\0\1\u019e\72\0\14\u0140\1\u019d\1\u0140\1\0\70\u0140"+
- "\2\241\1\0\4\241\1\u019f\15\241\1\u01a0\23\241\1\u01a1"+
- "\37\241\1\0\32\241\1\u01a2\51\241\22\0\1\u01a3\64\0"+
- "\16\252\1\0\70\252\16\260\1\0\70\260\12\265\1\0"+
- "\1\265\1\0\1\265\1\u01a4\66\265\1\u0151\10\265\1\u01a5"+
- "\2\265\1\0\1\265\1\0\1\u014e\7\265\1\u01a6\23\265"+
- "\1\u01a7\33\265\1\0\1\265\12\u01a4\1\0\1\u01a4\1\0"+
- "\70\u01a4\1\0\1\u01a4\12\u0151\1\0\1\u0151\1\0\1\u01a8"+
- "\67\u0151\1\0\1\u0151\7\u0152\1\u01a9\4\u0152\1\u0153\10\u0152"+
- "\1\u01aa\23\u0152\1\u01ab\51\u0152\1\u0153\20\u0152\1\u01ac\51\u0152"+
- "\7\u0156\1\u01ad\2\u0156\1\u0157\12\u0156\1\u01ae\23\u0156\1\u01af"+
- "\47\u0156\1\u0157\22\u0156\1\u01b0\51\u0156\12\303\1\0\103\303"+
- "\1\u01b1\2\303\1\0\12\303\1\u01b2\23\303\1\u01b3\32\303"+
- "\1\u015a\1\0\1\303\104\u01b4\1\u01b5\2\u01b4\14\307\1\0"+
- "\101\307\1\u01b6\4\307\1\0\10\307\1\u01b7\23\307\1\u01b8"+
- "\32\307\1\u015d\1\0\1\307\104\u01b9\1\u01ba\2\u01b9\7\312"+
- "\1\u01bb\2\312\1\0\1\312\1\0\10\312\1\u01bc\23\312"+
- "\1\u01bd\33\312\1\0\1\312\7\u0162\1\u01be\4\u0162\1\u0163"+
- "\10\u0162\1\u01bf\23\u0162\1\u01c0\51\u0162\1\u0163\20\u0162\1\u01c1"+
- "\51\u0162\7\u0166\1\u01c2\2\u0166\1\u0167\12\u0166\1\u01c3\23\u0166"+
- "\1\u01c4\47\u0166\1\u0167\22\u0166\1\u01c5\51\u0166\12\330\1\0"+
- "\103\330\1\u01c6\2\330\1\0\12\330\1\u01c7\23\330\1\u01c8"+
- "\32\330\1\u016a\1\0\1\330\104\u01c9\1\u01ca\2\u01c9\14\334"+
- "\1\0\101\334\1\u01cb\4\334\1\0\10\334\1\u01cc\23\334"+
- "\1\u01cd\32\334\1\u016d\1\0\1\334\104\u01ce\1\u01cf\2\u01ce"+
- "\7\0\1\u01d0\106\0\1\u01d1\135\0\1\u01d2\50\0\1\u0176"+
- "\1\0\11\u0176\1\0\6\u0176\1\0\64\u0176\1\u0177\1\0"+
- "\11\u0177\1\0\6\u0177\1\0\47\u0177\1\0\15\u0177\1\0"+
- "\3\u0177\1\u0178\5\u0177\1\0\3\u0177\1\u0178\2\u0177\1\0"+
- "\3\u0177\1\u0178\43\u0177\1\u01d3\14\u0177\20\0\1\u017a\51\0"+
- "\1\u01d4\34\0\1\u01d5\15\0\3\u01d5\2\0\1\u01d5\11\0"+
- "\1\u01d5\1\0\2\u01d5\7\0\1\u01d5\2\0\2\u01d5\6\0"+
- "\1\u01d5\11\0\1\113\1\u01d6\2\113\6\0\1\113\6\0"+
- "\6\113\1\0\13\113\1\0\13\113\1\0\4\113\1\0"+
- "\11\113\2\0\1\113\6\0\4\113\6\0\1\113\6\0"+
- "\6\113\1\0\11\113\1\u01d7\1\113\1\0\1\u01d7\12\113"+
- "\1\0\4\113\1\0\11\113\2\0\1\113\12\377\1\u0101"+
- "\3\377\1\0\70\377\14\u0103\1\u0101\1\u0103\1\0\70\u0103"+
- "\6\0\3\167\1\u01d8\6\0\1\167\6\0\6\167\1\0"+
- "\13\167\1\0\13\167\1\0\4\167\1\0\11\167\2\0"+
- "\1\167\1\u0187\2\u0188\1\u0189\1\u0187\1\u0188\4\u0187\1\u0188"+
- "\1\u0187\1\u0188\2\u0187\1\u0188\6\u0187\1\u0188\56\u0187\1\u01d9"+
- "\1\u0187\105\u0188\1\u01da\1\u0188\1\u018a\2\u018b\1\u018c\1\u018a"+
- "\1\u018b\4\u018a\1\u018b\1\u018a\1\u018b\2\u018a\1\u018b\6\u018a"+
- "\1\u018b\56\u018a\1\u01d9\1\u018a\105\u018b\1\u01db\1\u018b\41\0"+
- "\1\u01dc\14\0\1\u01dc\63\0\2\u01dd\103\0\2\u01de\115\0"+
- "\1\u01df\14\0\1\u01df\63\0\2\u01e0\52\0\14\u0126\1\u0124"+
- "\1\u0126\1\0\70\u0126\3\0\2\u01e1\1\0\4\u01e1\2\0"+
- "\1\u0128\1\u01e1\1\0\4\u01e1\1\0\11\u01e1\1\0\40\u01e1"+
- "\2\0\4\u01e1\2\0\1\u01e1\14\u0136\1\u0134\1\u0136\1\0"+
- "\70\u0136\3\0\2\u01e2\1\0\4\u01e2\2\0\1\u0138\1\u01e2"+
- "\1\0\4\u01e2\1\0\11\u01e2\1\0\40\u01e2\2\0\4\u01e2"+
- "\2\0\1\u01e2\2\232\1\0\4\232\1\u01e3\101\232\1\0"+
- "\33\232\1\u01e4\50\232\14\u0140\1\u013e\1\u0140\1\0\70\u0140"+
- "\3\0\2\u01e5\1\0\4\u01e5\2\0\1\u0142\1\u01e5\1\0"+
- "\4\u01e5\1\0\11\u01e5\1\0\40\u01e5\2\0\4\u01e5\2\0"+
- "\1\u01e5\2\241\1\0\4\241\1\u01e6\101\241\1\0\33\241"+
- "\1\u01e7\50\241\2\0\1\u01e8\104\0\7\265\1\u01e9\2\265"+
- "\1\0\1\265\1\0\1\u014e\67\265\1\0\1\265\12\u0151"+
- "\1\0\1\u0151\1\0\1\u0151\1\0\70\u0151\7\u0152\1\u01ea"+
- "\4\u0152\1\u0153\106\u0152\1\u0153\21\u0152\1\u01eb\50\u0152\7\u0156"+
- "\1\u01ec\2\u0156\1\u0157\106\u0156\1\u0157\23\u0156\1\u01ed\50\u0156"+
- "\7\303\1\u01ee\2\303\1\0\71\303\1\u015a\1\0\1\303"+
- "\12\u01ef\1\u01f0\72\u01ef\1\0\1\u01ef\7\307\1\u01f1\4\307"+
- "\1\0\67\307\1\u015d\1\0\1\307\14\u01f2\1\u01f0\70\u01f2"+
- "\1\0\1\u01f2\7\312\1\u01f3\2\312\1\0\1\312\1\0"+
- "\70\312\1\0\1\312\7\u0162\1\u01f4\4\u0162\1\u0163\106\u0162"+
- "\1\u0163\21\u0162\1\u01f5\50\u0162\7\u0166\1\u01f6\2\u0166\1\u0167"+
- "\106\u0166\1\u0167\23\u0166\1\u01f7\50\u0166\7\330\1\u01f8\2\330"+
- "\1\0\71\330\1\u016a\1\0\1\330\12\u01f9\1\u01fa\72\u01f9"+
- "\1\0\1\u01f9\7\334\1\u01fb\4\334\1\0\67\334\1\u016d"+
- "\1\0\1\334\14\u01fc\1\u01fa\70\u01fc\1\0\1\u01fc\37\0"+
- "\1\u01fd\141\0\1\u01d3\34\0\1\u01d5\15\0\3\u01d5\2\0"+
- "\1\u01d5\11\0\1\u01d5\1\0\2\u01d5\7\0\1\u01d5\1\0"+
- "\1\u01d4\2\u01d5\6\0\1\u01d5\11\0\4\113\6\0\1\113"+
- "\6\0\6\113\1\0\7\113\1\u01fe\3\113\1\0\13\113"+
- "\1\0\4\113\1\0\11\113\2\0\1\113\6\0\4\113"+
- "\6\0\1\113\6\0\6\113\1\0\6\113\1\u01ff\4\113"+
- "\1\0\13\113\1\0\1\113\1\u01ff\2\113\1\0\11\113"+
- "\2\0\1\113\6\0\4\167\6\0\1\167\6\0\6\167"+
- "\1\0\6\167\1\u0200\4\167\1\0\6\167\1\u0201\4\167"+
- "\1\0\4\167\1\0\11\167\2\0\1\167\53\0\1\u0202"+
- "\5\0\1\u0202\73\0\1\u0203\14\0\1\u0203\66\0\1\u0204"+
- "\11\0\1\u0204\74\0\1\u0205\11\0\1\u0205\77\0\1\u0206"+
- "\14\0\1\u0206\23\0\2\232\1\0\34\232\1\u0207\47\232"+
- "\2\241\1\0\34\241\1\u0208\47\241\14\u0152\1\u0153\22\u0152"+
- "\1\u0209\47\u0152\12\u0156\1\u0157\24\u0156\1\u020a\47\u0156\12\u01ef"+
- "\1\u01b4\71\u01ef\1\u020b\1\u01b4\1\u01ef\14\u01f2\1\u01b9\67\u01f2"+
- "\1\u020c\1\u01b9\1\u01f2\14\u0162\1\u0163\22\u0162\1\u020d\47\u0162"+
- "\12\u0166\1\u0167\24\u0166\1\u020e\47\u0166\12\u01f9\1\u01c9\71\u01f9"+
- "\1\u020f\1\u01c9\1\u01f9\14\u01fc\1\u01ce\67\u01fc\1\u0210\1\u01ce"+
- "\1\u01fc\40\0\1\u0211\54\0\4\113\6\0\1\113\6\0"+
- "\6\113\1\0\13\113\1\0\4\113\1\u0212\6\113\1\0"+
- "\4\113\1\0\11\113\2\0\1\113\6\0\4\113\6\0"+
- "\1\113\6\0\6\113\1\0\3\113\1\u0213\7\113\1\0"+
- "\4\113\1\u0213\6\113\1\0\4\113\1\0\11\113\2\0"+
- "\1\113\6\0\4\167\6\0\1\167\6\0\6\167\1\0"+
- "\11\167\1\u0214\1\167\1\0\13\167\1\0\4\167\1\0"+
- "\11\167\2\0\1\167\6\0\4\167\6\0\1\167\6\0"+
- "\6\167\1\0\10\167\1\u0215\2\167\1\0\13\167\1\0"+
- "\4\167\1\0\11\167\2\0\1\167\54\0\1\u0216\24\0"+
- "\1\u0216\52\0\1\u0217\20\0\1\u0217\70\0\1\u0218\13\0"+
- "\1\u0218\53\0\2\u0219\112\0\1\u021a\35\0\1\u021a\12\0"+
- "\2\232\1\0\35\232\1\u021b\46\232\2\241\1\0\35\241"+
- "\1\u021c\46\241\14\u0152\1\u0153\23\u0152\1\u021d\46\u0152\12\u0156"+
- "\1\u0157\25\u0156\1\u021e\46\u0156\12\u01ef\1\u021f\71\u01ef\1\u020b"+
- "\1\u01b4\1\u01ef\14\u01f2\1\u0220\67\u01f2\1\u020c\1\u01b9\1\u01f2"+
- "\14\u0162\1\u0163\23\u0162\1\u0221\46\u0162\12\u0166\1\u0167\25\u0166"+
- "\1\u0222\46\u0166\12\u01f9\1\u0223\71\u01f9\1\u020f\1\u01c9\1\u01f9"+
- "\14\u01fc\1\u0224\67\u01fc\1\u0210\1\u01ce\1\u01fc\41\0\1\u0225"+
- "\53\0\4\113\6\0\1\113\6\0\6\113\1\0\13\113"+
- "\1\0\7\113\1\u0226\3\113\1\0\4\113\1\0\11\113"+
- "\2\0\1\113\6\0\4\167\6\0\1\167\6\0\6\167"+
- "\1\0\11\167\1\u0227\1\167\1\0\13\167\1\0\4\167"+
- "\1\0\11\167\2\0\1\167\6\0\4\167\6\0\1\167"+
- "\6\0\6\167\1\0\6\167\1\u0228\4\167\1\0\13\167"+
- "\1\0\4\167\1\0\11\167\2\0\1\167\43\0\1\u0229"+
- "\11\0\1\u0229\72\0\1\u022a\14\0\1\u022a\71\0\1\u022b"+
- "\14\0\1\u022b\30\0\2\232\1\0\36\232\1\u022c\45\232"+
- "\2\241\1\0\36\241\1\u022d\45\241\14\u0152\1\u0153\24\u0152"+
- "\1\u022e\45\u0152\12\u0156\1\u0157\26\u0156\1\u022f\45\u0156\14\u0162"+
- "\1\u0163\24\u0162\1\u0230\45\u0162\12\u0166\1\u0167\26\u0166\1\u0231"+
- "\45\u0166\40\0\1\u0232\54\0\4\113\6\0\1\113\6\0"+
- "\5\113\1\u0233\1\0\13\113\1\0\13\113\1\0\4\113"+
- "\1\0\11\113\2\0\1\113\6\0\4\167\6\0\1\167"+
- "\6\0\6\167\1\0\13\167\1\0\4\167\1\u0234\6\167"+
- "\1\0\4\167\1\0\11\167\2\0\1\167\6\0\4\167"+
- "\6\0\1\167\6\0\6\167\1\0\5\167\1\u0235\5\167"+
- "\1\0\13\167\1\0\4\167\1\0\11\167\2\0\1\167"+
- "\2\232\1\0\35\232\1\u0236\46\232\2\241\1\0\35\241"+
- "\1\u0237\46\241\14\u0152\1\u0153\23\u0152\1\u0238\46\u0152\12\u0156"+
- "\1\u0157\25\u0156\1\u0239\46\u0156\14\u0162\1\u0163\23\u0162\1\u023a"+
- "\46\u0162\12\u0166\1\u0167\25\u0166\1\u023b\46\u0166\35\0\1\u023c"+
- "\57\0\4\113\6\0\1\113\6\0\6\113\1\0\5\113"+
- "\1\u023d\5\113\1\0\13\113\1\0\4\113\1\0\11\113"+
- "\2\0\1\113\6\0\4\167\6\0\1\167\6\0\6\167"+
- "\1\0\13\167\1\0\13\167\1\0\4\167\1\0\1\167"+
- "\1\u023e\7\167\2\0\1\167\2\232\1\0\32\232\1\u023f"+
- "\51\232\2\241\1\0\32\241\1\u0240\51\241\14\u0152\1\u0153"+
- "\20\u0152\1\u0241\51\u0152\12\u0156\1\u0157\22\u0156\1\u0242\51\u0156"+
- "\14\u0162\1\u0163\20\u0162\1\u0243\51\u0162\12\u0166\1\u0167\22\u0166"+
- "\1\u0244\51\u0166\6\0\4\113\6\0\1\113\6\0\6\113"+
- "\1\0\7\113\1\u0245\3\113\1\0\13\113\1\0\4\113"+
- "\1\0\11\113\2\0\1\113\6\0\4\167\6\0\1\167"+
- "\6\0\6\167\1\0\13\167\1\0\4\167\1\u0246\6\167"+
- "\1\0\4\167\1\0\11\167\2\0\1\167\6\0\4\113"+
- "\6\0\1\113\6\0\6\113\1\0\13\113\1\0\13\113"+
- "\1\0\4\113\1\0\11\113\2\0\1\u0247\6\0\4\167"+
- "\6\0\1\167\6\0\6\167\1\0\10\167\1\u0248\2\167"+
- "\1\0\13\167\1\0\4\167\1\0\11\167\2\0\1\167"+
- "\6\0\4\113\6\0\1\113\6\0\6\113\1\0\5\113"+
- "\1\u0249\5\113\1\0\13\113\1\0\4\113\1\0\11\113"+
- "\2\0\1\113\6\0\4\167\6\0\1\167\6\0\6\167"+
- "\1\0\4\167\1\u024a\6\167\1\0\13\167\1\0\4\167"+
- "\1\0\11\167\2\0\1\167\6\0\4\113\6\0\1\113"+
- "\6\0\6\113\1\0\5\113\1\u024b\5\113\1\0\13\113"+
- "\1\0\4\113\1\0\11\113\2\0\1\113\6\0\4\167"+
- "\6\0\1\167\6\0\6\167\1\0\5\167\1\u024c\5\167"+
- "\1\0\13\167\1\0\4\167\1\0\11\167\2\0\1\167"+
- "\6\0\4\113\6\0\1\113\6\0\6\113\1\0\13\113"+
- "\1\0\4\113\1\u024d\6\113\1\0\4\113\1\0\11\113"+
- "\2\0\1\113\6\u024e\4\u024f\6\u024e\1\u024f\5\u024e\1\0"+
- "\6\u024f\1\u024e\13\u024f\1\u024e\13\u024f\1\u024e\4\u024f\1\u024e"+
- "\11\u024f\2\u024e\1\u024f\42\0\1\u0250\3\0\1\u0251\7\0"+
- "\1\u0252\1\u0253\21\0\1\u0254\13\0\4\167\6\0\1\167"+
- "\6\0\6\167\1\0\4\167\1\u0255\3\167\1\u0256\2\167"+
- "\1\0\4\167\1\u0257\1\u0258\5\167\1\0\4\167\1\0"+
- "\6\167\1\u0259\2\167\2\0\1\167\57\0\1\u025a\77\0"+
- "\1\u025b\115\0\1\u025c\105\0\1\u025d\107\0\1\u025e\35\0"+
- "\4\167\6\0\1\167\6\0\6\167\1\0\13\167\1\0"+
- "\5\167\1\u025f\5\167\1\0\4\167\1\0\11\167\2\0"+
- "\1\167\6\0\4\167\6\0\1\167\6\0\6\167\1\0"+
- "\12\167\1\u0260\1\0\13\167\1\0\4\167\1\0\11\167"+
- "\2\0\1\167\6\0\4\167\6\0\1\167\6\0\6\167"+
- "\1\0\13\167\1\0\5\167\1\u0261\5\167\1\0\4\167"+
- "\1\0\11\167\2\0\1\167\6\0\4\167\6\0\1\167"+
- "\6\0\6\167\1\0\13\167\1\0\4\167\1\u0262\6\167"+
- "\1\0\4\167\1\0\11\167\2\0\1\167\6\0\4\167"+
- "\6\0\1\167\6\0\6\167\1\0\13\167\1\0\5\167"+
- "\1\u0263\5\167\1\0\4\167\1\0\11\167\2\0\1\167"+
- "\44\0\1\u0264\136\0\1\u0265\107\0\1\u0266\67\0\1\u0267"+
- "\125\0\1\u0268\17\0\4\167\6\0\1\167\6\0\6\167"+
- "\1\0\6\167\1\u0269\4\167\1\0\13\167\1\0\4\167"+
- "\1\0\11\167\2\0\1\167\6\0\4\167\6\0\1\167"+
- "\6\0\6\167\1\0\13\167\1\0\13\167\1\0\4\167"+
- "\1\0\1\167\1\u026a\7\167\2\0\1\167\6\0\4\167"+
- "\6\0\1\167\6\0\6\167\1\0\13\167\1\0\13\167"+
- "\1\0\4\167\1\0\2\167\1\u026b\6\167\2\0\1\167"+
- "\6\0\4\167\6\0\1\167\6\0\6\167\1\0\13\167"+
- "\1\0\4\167\1\u026c\6\167\1\0\4\167\1\0\11\167"+
- "\2\0\1\167\6\0\4\167\6\0\1\167\6\0\6\167"+
- "\1\0\13\167\1\0\13\167\1\0\4\167\1\0\2\167"+
- "\1\u026d\6\167\2\0\1\167\46\0\1\u026e\74\0\1\u026f"+
- "\106\0\1\u0270\116\0\1\u0271\105\0\1\u0272\51\0\4\167"+
- "\6\0\1\167\6\0\6\167\1\0\10\167\1\u0273\2\167"+
- "\1\0\13\167\1\0\4\167\1\0\11\167\2\0\1\167"+
- "\6\0\4\167\6\0\1\167\6\0\5\167\1\u0274\1\0"+
- "\13\167\1\0\13\167\1\0\4\167\1\0\11\167\2\0"+
- "\1\167\6\0\4\167\6\0\1\167\6\0\5\167\1\u0275"+
- "\1\0\13\167\1\0\13\167\1\0\4\167\1\0\11\167"+
- "\2\0\1\167\6\0\4\167\6\0\1\167\6\0\6\167"+
- "\1\0\6\167\1\u0276\4\167\1\0\13\167\1\0\4\167"+
- "\1\0\11\167\2\0\1\167\6\0\4\167\6\0\1\167"+
- "\6\0\6\167\1\0\5\167\1\u0277\5\167\1\0\13\167"+
- "\1\0\4\167\1\0\11\167\2\0\1\167\57\0\1\u0278"+
- "\131\0\1\u0279\52\0\1\u027a\106\0\1\u027b\46\0\4\167"+
- "\6\0\1\167\6\0\6\167\1\0\13\167\1\0\5\167"+
- "\1\u027c\5\167\1\0\4\167\1\0\11\167\2\0\1\167"+
- "\6\0\4\167\6\0\1\167\6\0\6\167\1\0\13\167"+
- "\1\0\13\167\1\0\4\167\1\0\7\167\1\u027d\1\167"+
- "\2\0\1\167\6\0\4\167\6\0\1\167\6\0\6\167"+
- "\1\0\10\167\1\u027e\2\167\1\0\13\167\1\0\4\167"+
- "\1\0\11\167\2\0\1\167\6\0\4\167\6\0\1\167"+
- "\6\0\6\167\1\0\10\167\1\u027f\2\167\1\0\13\167"+
- "\1\0\4\167\1\0\11\167\2\0\1\167\103\0\1\u0280"+
- "\63\0\1\u0268\131\0\1\u0272\106\0\1\u0281\11\0\4\167"+
- "\6\0\1\167\6\0\6\167\1\0\13\167\1\0\13\167"+
- "\1\0\4\167\1\0\10\167\1\u0282\2\0\1\167\6\0"+
- "\4\167\6\0\1\167\6\0\6\167\1\0\13\167\1\0"+
- "\6\167\1\u026d\4\167\1\0\4\167\1\0\11\167\2\0"+
- "\1\167\6\0\4\167\6\0\1\167\6\0\6\167\1\0"+
- "\13\167\1\0\13\167\1\0\4\167\1\0\10\167\1\u0277"+
- "\2\0\1\167\6\0\4\167\6\0\1\167\6\0\6\167"+
- "\1\0\13\167\1\0\13\167\1\0\4\167\1\0\10\167"+
- "\1\u0283\2\0\1\167\34\0\1\u0268\154\0\1\u0284\12\0"+
- "\4\167\6\0\1\167\6\0\5\167\1\u026d\1\0\13\167"+
- "\1\0\13\167\1\0\4\167\1\0\11\167\2\0\1\167"+
- "\6\0\4\167\6\0\1\167\6\0\6\167\1\0\13\167"+
- "\1\0\13\167\1\0\4\167\1\0\7\167\1\u0285\1\167"+
- "\2\0\1\167\56\0\1\u0268\36\0\4\167\6\0\1\167"+
- "\6\0\6\167\1\0\13\167\1\0\4\167\1\u026d\6\167"+
- "\1\0\4\167\1\0\11\167\2\0\1\167";
+ "\1\71\1\72\11\71\1\73\1\71\1\74\4\71\1\75"+
+ "\42\71\1\76\21\71\1\77\1\100\105\77\1\101\1\102"+
+ "\21\101\1\103\2\101\1\104\60\101\1\105\1\106\105\105"+
+ "\1\101\1\102\5\101\1\107\16\101\1\104\61\101\1\102"+
+ "\2\101\1\110\1\111\2\101\2\112\5\101\1\111\6\101"+
+ "\1\111\1\113\1\114\4\112\1\101\10\112\1\115\2\112"+
+ "\1\101\11\112\1\115\1\112\1\101\4\112\1\101\4\112"+
+ "\1\101\4\112\2\101\1\112\1\101\1\102\2\101\1\110"+
+ "\1\116\11\101\1\116\6\101\1\116\60\101\1\117\1\120"+
+ "\2\117\1\121\21\117\1\104\60\117\1\101\1\102\2\101"+
+ "\1\122\1\111\2\101\2\123\5\101\1\111\6\101\1\111"+
+ "\6\123\1\101\13\123\1\101\13\123\1\101\4\123\1\101"+
+ "\4\123\1\101\4\123\2\101\1\123\1\101\1\102\2\101"+
+ "\1\122\1\111\2\101\2\123\5\101\1\111\6\101\1\111"+
+ "\6\123\1\101\13\123\1\124\13\123\1\101\4\123\1\101"+
+ "\4\123\1\101\4\123\2\101\1\123\1\125\1\102\1\101"+
+ "\1\126\1\127\1\111\4\125\1\130\1\125\1\131\2\125"+
+ "\1\111\6\125\1\111\60\125\1\101\1\102\2\101\1\132"+
+ "\21\101\1\104\61\101\1\102\1\133\1\134\1\101\1\111"+
+ "\2\101\2\135\5\101\1\111\6\101\1\111\6\135\1\101"+
+ "\13\135\1\101\13\135\1\101\4\135\1\101\4\135\1\101"+
+ "\4\135\2\101\1\135\1\101\1\102\1\133\1\134\1\101"+
+ "\1\111\2\101\2\135\5\101\1\111\6\101\1\111\6\135"+
+ "\1\101\13\135\1\136\13\135\1\101\4\135\1\101\4\135"+
+ "\1\101\4\135\2\101\1\135\1\137\1\102\1\133\1\140"+
+ "\1\137\1\111\4\137\1\141\1\137\1\142\2\137\1\111"+
+ "\6\137\1\111\60\137\1\101\1\102\3\101\1\111\11\101"+
+ "\1\111\6\101\1\111\60\101\1\143\1\144\20\143\1\145"+
+ "\64\143\1\101\1\146\3\101\1\111\2\101\2\147\5\101"+
+ "\1\111\2\101\1\150\3\101\1\111\6\147\1\101\13\147"+
+ "\1\101\13\147\1\101\4\147\1\101\4\147\1\101\4\147"+
+ "\2\101\1\147\1\101\1\146\3\101\1\151\11\101\1\151"+
+ "\2\101\1\150\3\101\1\151\61\101\1\146\3\101\1\111"+
+ "\2\101\2\152\5\101\1\111\2\101\1\150\3\101\1\111"+
+ "\6\152\1\101\13\152\1\101\13\152\1\101\4\152\1\101"+
+ "\4\152\1\101\4\152\2\101\1\152\1\101\1\146\3\101"+
+ "\1\111\2\101\2\152\5\101\1\111\2\101\1\150\3\101"+
+ "\1\111\6\152\1\101\13\152\1\153\13\152\1\101\4\152"+
+ "\1\101\4\152\1\101\4\152\2\101\1\152\1\154\1\146"+
+ "\1\101\1\155\1\154\1\111\4\154\1\156\1\154\1\157"+
+ "\2\154\1\111\2\154\1\160\3\154\1\111\60\154\1\161"+
+ "\1\162\1\163\1\164\4\161\2\165\15\161\6\166\1\161"+
+ "\13\166\1\161\13\166\1\161\4\166\1\161\4\166\1\161"+
+ "\1\167\3\166\2\161\1\166\1\101\1\170\1\163\1\164"+
+ "\1\101\1\111\2\101\2\171\5\101\1\111\6\101\1\111"+
+ "\6\171\1\101\13\171\1\101\13\171\1\101\4\171\1\101"+
+ "\4\171\1\101\4\171\2\101\1\171\1\101\1\170\1\163"+
+ "\1\164\1\101\1\111\2\101\2\171\5\101\1\111\6\101"+
+ "\1\111\6\171\1\101\13\171\1\172\13\171\1\101\4\171"+
+ "\1\101\4\171\1\101\4\171\2\101\1\171\1\173\1\174"+
+ "\1\163\1\175\1\173\1\111\4\173\1\176\1\173\1\177"+
+ "\1\200\1\173\1\111\6\173\1\111\36\173\1\201\21\173"+
+ "\1\101\1\202\1\203\2\101\1\111\11\101\1\111\6\101"+
+ "\1\111\10\101\1\204\1\205\2\101\1\206\11\101\1\206"+
+ "\1\101\1\205\1\204\27\101\1\102\1\203\2\101\1\111"+
+ "\11\101\1\111\6\101\1\111\6\101\1\207\52\101\1\102"+
+ "\1\203\2\101\1\111\2\101\2\210\5\101\1\111\6\101"+
+ "\1\111\6\210\1\207\13\210\1\101\13\210\1\101\4\210"+
+ "\1\101\4\210\1\101\4\210\2\101\1\210\1\101\1\102"+
+ "\1\203\2\101\1\111\11\101\1\111\6\101\1\111\6\101"+
+ "\1\207\7\101\1\211\6\101\1\212\11\101\1\211\12\101"+
+ "\1\212\5\101\1\213\1\102\1\203\1\214\1\213\1\111"+
+ "\4\213\1\215\1\213\1\216\2\213\1\111\6\213\1\111"+
+ "\6\213\1\217\51\213\1\220\1\102\1\203\1\221\1\220"+
+ "\1\111\4\220\1\222\1\220\1\223\2\220\1\111\6\220"+
+ "\1\111\6\220\1\224\51\220\1\225\1\102\1\203\1\226"+
+ "\1\225\1\111\4\225\1\227\1\225\1\230\2\225\1\111"+
+ "\6\225\1\111\60\225\1\231\1\232\1\233\104\231\1\234"+
+ "\1\102\1\203\1\235\1\234\1\111\4\234\1\236\1\234"+
+ "\1\237\2\234\1\111\6\234\1\111\60\234\1\240\1\241"+
+ "\1\242\104\240\1\243\1\244\105\243\1\101\1\102\24\101"+
+ "\1\104\60\101\1\245\1\246\105\245\1\101\1\102\5\101"+
+ "\1\247\16\101\1\104\60\101\1\250\1\251\3\250\1\252"+
+ "\6\250\1\253\1\254\1\250\1\252\6\250\1\252\36\250"+
+ "\1\255\21\250\1\256\1\251\3\256\1\257\4\256\1\260"+
+ "\2\256\1\261\1\256\1\257\6\256\1\257\36\256\1\262"+
+ "\21\256\1\263\1\264\10\263\1\265\1\263\1\266\1\267"+
+ "\67\263\1\270\1\263\1\271\1\272\12\271\1\101\11\271"+
+ "\1\273\60\271\1\274\1\275\10\274\1\101\13\274\1\276"+
+ "\60\274\1\101\1\102\12\101\1\277\11\101\1\104\61\101"+
+ "\1\102\10\101\1\300\13\101\1\104\60\101\1\301\1\302"+
+ "\10\301\1\260\71\301\1\303\1\304\1\301\1\305\1\306"+
+ "\12\305\1\253\67\305\1\307\1\304\1\305\1\310\1\311"+
+ "\10\310\1\312\1\310\1\313\50\310\1\314\17\310\1\315"+
+ "\1\310\1\316\1\317\12\316\1\101\11\316\1\320\60\316"+
+ "\1\321\1\322\10\321\1\101\13\321\1\323\60\321\1\101"+
+ "\1\102\12\101\1\324\11\101\1\104\61\101\1\102\10\101"+
+ "\1\325\13\101\1\104\60\101\1\326\1\327\10\326\1\260"+
+ "\71\326\1\330\1\331\1\326\1\332\1\333\12\332\1\253"+
+ "\67\332\1\334\1\331\1\332\1\71\1\0\11\71\1\0"+
+ "\1\71\1\0\4\71\1\0\42\71\1\0\21\71\3\0"+
+ "\1\335\1\336\15\0\1\337\2\0\1\340\66\0\1\341"+
+ "\2\0\2\342\5\0\1\341\6\0\1\341\6\342\1\0"+
+ "\13\342\1\0\13\342\1\343\4\342\1\0\4\342\1\0"+
+ "\4\342\2\0\1\342\1\344\1\0\11\344\1\0\1\344"+
+ "\1\345\1\346\3\344\1\0\64\344\5\0\1\341\2\0"+
+ "\2\347\5\0\1\341\6\0\1\341\6\347\1\0\13\347"+
+ "\1\0\13\347\1\0\4\347\1\0\4\347\1\0\4\347"+
+ "\2\0\1\347\1\344\1\0\11\344\1\0\2\344\1\350"+
+ "\3\344\1\0\42\344\1\351\21\344\131\0\1\337\2\0"+
+ "\1\352\104\0\1\353\72\0\1\354\101\0\1\355\111\0"+
+ "\1\111\11\0\1\111\6\0\1\111\66\0\4\112\6\0"+
+ "\1\112\6\0\6\112\1\0\13\112\1\0\13\112\1\0"+
+ "\4\112\1\0\11\112\2\0\1\112\6\0\4\112\6\0"+
+ "\1\112\6\0\2\112\2\356\2\112\1\0\13\112\1\0"+
+ "\13\112\1\0\4\112\1\0\11\112\2\0\1\112\6\0"+
+ "\4\112\6\0\1\112\6\0\2\112\1\356\1\357\2\112"+
+ "\1\0\13\112\1\0\13\112\1\0\4\112\1\0\11\112"+
+ "\2\0\1\112\6\0\4\112\6\0\1\112\6\0\2\112"+
+ "\2\360\2\112\1\0\13\112\1\0\13\112\1\0\4\112"+
+ "\1\0\11\112\2\0\1\112\5\0\1\116\11\0\1\116"+
+ "\6\0\1\116\62\0\1\361\106\0\1\362\112\0\4\123"+
+ "\6\0\1\123\6\0\6\123\1\0\13\123\1\0\13\123"+
+ "\1\0\4\123\1\0\11\123\2\0\1\123\1\125\2\0"+
+ "\1\363\1\125\1\0\4\125\1\0\1\125\1\0\2\125"+
+ "\1\0\6\125\1\0\61\125\1\0\1\362\1\363\1\125"+
+ "\1\0\4\125\1\0\1\125\1\0\2\125\1\0\6\125"+
+ "\1\0\60\125\1\364\1\0\10\364\1\365\2\364\1\366"+
+ "\47\364\1\366\21\364\1\367\1\0\12\367\1\365\1\370"+
+ "\47\367\1\370\21\367\2\0\1\133\1\371\111\0\4\135"+
+ "\6\0\1\135\6\0\6\135\1\0\13\135\1\0\13\135"+
+ "\1\0\4\135\1\0\11\135\2\0\1\135\1\137\2\0"+
+ "\1\372\1\137\1\0\4\137\1\0\1\137\1\0\2\137"+
+ "\1\0\6\137\1\0\61\137\1\0\1\133\1\373\1\137"+
+ "\1\0\4\137\1\0\1\137\1\0\2\137\1\0\6\137"+
+ "\1\0\60\137\1\141\1\0\1\374\1\375\1\141\1\374"+
+ "\4\141\1\376\1\141\1\374\1\377\1\141\1\374\6\141"+
+ "\1\374\36\141\1\377\21\141\1\142\1\0\1\u0100\1\u0101"+
+ "\1\142\1\u0100\4\142\1\u0100\1\142\1\376\1\u0102\1\142"+
+ "\1\u0100\6\142\1\u0100\36\142\1\u0102\21\142\2\0\1\u0103"+
+ "\126\0\1\337\2\0\1\u0104\67\0\4\147\6\0\1\147"+
+ "\6\0\6\147\1\0\13\147\1\0\13\147\1\0\4\147"+
+ "\1\0\11\147\2\0\1\147\2\0\1\u0105\111\0\1\151"+
+ "\11\0\1\151\6\0\1\151\66\0\4\152\6\0\1\152"+
+ "\6\0\6\152\1\0\13\152\1\0\13\152\1\0\4\152"+
+ "\1\0\11\152\2\0\1\152\1\154\2\0\1\u0106\1\154"+
+ "\1\0\4\154\1\0\1\154\1\0\2\154\1\0\6\154"+
+ "\1\0\60\154\1\u0107\1\0\10\u0107\1\u0108\2\u0107\1\u0109"+
+ "\47\u0107\1\u0109\21\u0107\1\u010a\1\0\12\u010a\1\u0108\1\u010b"+
+ "\47\u010a\1\u010b\21\u010a\1\154\1\0\1\u0105\1\u0106\1\154"+
+ "\1\0\4\154\1\0\1\154\1\0\2\154\1\0\6\154"+
+ "\1\0\60\154\1\161\3\0\23\161\6\0\1\161\13\0"+
+ "\1\161\13\0\1\161\4\0\1\161\4\0\1\161\4\0"+
+ "\2\161\4\0\1\335\16\0\1\337\2\0\1\340\63\0"+
+ "\1\u010c\104\0\1\161\3\0\2\161\4\165\6\161\1\165"+
+ "\6\161\6\166\1\161\13\166\1\161\13\166\1\161\4\166"+
+ "\1\161\4\166\1\165\4\166\2\161\1\166\6\0\4\166"+
+ "\6\0\1\166\6\0\6\166\1\0\13\166\1\0\13\166"+
+ "\1\0\4\166\1\0\11\166\2\0\1\166\6\0\4\166"+
+ "\6\0\1\166\6\0\6\166\1\0\7\166\1\u010d\3\166"+
+ "\1\0\13\166\1\0\4\166\1\0\11\166\2\0\1\166"+
+ "\3\0\1\335\4\0\2\u010e\10\0\1\337\2\0\1\340"+
+ "\1\0\6\u010e\1\0\13\u010e\1\0\13\u010e\1\0\4\u010e"+
+ "\1\0\4\u010e\1\0\4\u010e\2\0\1\u010e\6\0\4\171"+
+ "\6\0\1\171\6\0\6\171\1\0\13\171\1\0\13\171"+
+ "\1\0\4\171\1\0\11\171\2\0\1\171\1\173\2\0"+
+ "\1\u010f\1\173\1\0\4\173\1\0\1\173\1\0\2\173"+
+ "\1\0\6\173\1\0\60\173\3\0\1\335\4\0\2\u0110"+
+ "\10\0\1\337\2\0\1\340\1\0\6\u0110\1\0\13\u0110"+
+ "\1\0\13\u0110\1\0\4\u0110\1\0\4\u0110\1\0\4\u0110"+
+ "\2\0\1\u0110\1\173\1\0\1\u010c\1\u010f\1\173\1\0"+
+ "\4\173\1\0\1\173\1\0\2\173\1\0\6\173\1\0"+
+ "\60\173\1\u0111\1\0\10\u0111\1\u0112\2\u0111\1\u0113\47\u0111"+
+ "\1\u0113\21\u0111\1\u0114\1\0\12\u0114\1\u0112\1\u0115\47\u0114"+
+ "\1\u0115\21\u0114\1\173\2\0\1\u010f\1\173\1\0\4\173"+
+ "\1\0\1\173\1\0\1\173\1\u0116\1\0\6\173\1\0"+
+ "\61\173\2\0\1\u010f\1\173\1\0\4\173\1\0\1\173"+
+ "\1\0\1\173\1\u0117\1\0\6\173\1\0\60\173\3\0"+
+ "\1\335\16\0\1\337\2\0\1\u0104\130\0\1\u0118\2\0"+
+ "\1\u0118\75\0\1\u0119\14\0\1\u0119\63\0\2\u011a\52\0"+
+ "\23\u011b\1\u011c\63\u011b\6\0\4\210\6\0\1\210\6\0"+
+ "\6\210\1\0\13\210\1\0\13\210\1\0\4\210\1\0"+
+ "\11\210\2\0\1\210\53\0\1\u011d\5\0\1\u011d\116\0"+
+ "\1\u011e\10\0\1\u011e\4\0\1\213\2\0\1\u011f\1\213"+
+ "\1\0\4\213\1\0\1\213\1\0\2\213\1\0\6\213"+
+ "\1\0\60\213\1\u0120\1\0\10\u0120\1\u0121\2\u0120\1\u0122"+
+ "\47\u0120\1\u0122\21\u0120\1\u0123\1\0\1\u0123\2\u0124\1\u0123"+
+ "\4\u0124\2\u0123\1\u0125\1\u0126\1\u0123\4\u0124\1\u0123\11\u0124"+
+ "\1\u0123\27\u0124\1\u0126\10\u0124\2\u0123\4\u0124\2\u0123\1\u0124"+
+ "\1\217\2\u011b\1\u0127\1\217\1\u011b\4\217\1\u011b\1\217"+
+ "\1\u011b\2\217\1\u011b\3\217\1\u0128\2\217\1\u011b\60\217"+
+ "\1\220\2\0\1\u0129\1\220\1\0\4\220\1\0\1\220"+
+ "\1\0\2\220\1\0\6\220\1\0\60\220\12\u012a\1\u012b"+
+ "\74\u012a\14\u012c\1\u012b\72\u012c\1\224\2\u011b\1\u012d\1\224"+
+ "\1\u011b\4\224\1\u011b\1\224\1\u011b\2\224\1\u011b\3\224"+
+ "\1\u012e\2\224\1\u011b\60\224\1\225\2\0\1\u012f\1\225"+
+ "\1\0\4\225\1\0\1\225\1\0\2\225\1\0\6\225"+
+ "\1\0\60\225\1\u0130\1\0\10\u0130\1\u0131\2\u0130\1\u0132"+
+ "\47\u0130\1\u0132\21\u0130\1\u0133\1\0\1\u0133\2\u0134\1\u0133"+
+ "\4\u0134\2\u0133\1\u0135\1\u0136\1\u0133\4\u0134\1\u0133\11\u0134"+
+ "\1\u0133\27\u0134\1\u0136\10\u0134\2\u0133\4\u0134\2\u0133\1\u0134"+
+ "\2\231\1\0\106\231\1\0\17\231\1\u0137\2\231\1\u0138"+
+ "\61\231\1\234\2\0\1\u0139\1\234\1\0\4\234\1\0"+
+ "\1\234\1\0\2\234\1\0\6\234\1\0\60\234\1\u013a"+
+ "\1\0\10\u013a\1\u013b\2\u013a\1\u013c\47\u013a\1\u013c\21\u013a"+
+ "\1\u013d\1\0\1\u013d\2\u013e\1\u013d\4\u013e\2\u013d\1\u013f"+
+ "\1\u0140\1\u013d\4\u013e\1\u013d\11\u013e\1\u013d\27\u013e\1\u0140"+
+ "\10\u013e\2\u013d\4\u013e\2\u013d\1\u013e\2\240\1\0\106\240"+
+ "\1\0\17\240\1\u0141\2\240\1\u0142\61\240\7\0\1\u0143"+
+ "\77\0\1\250\1\0\12\250\1\0\1\u0144\47\250\1\u0144"+
+ "\21\250\3\0\1\u0145\16\0\1\337\2\0\1\352\61\0"+
+ "\1\250\1\0\3\250\1\252\6\250\1\0\1\u0144\1\250"+
+ "\1\252\6\250\1\252\36\250\1\u0144\37\250\1\u0146\106\250"+
+ "\1\u0147\70\250\1\256\1\0\10\256\1\0\2\256\1\u0148"+
+ "\47\256\1\u0148\22\256\1\0\3\256\1\257\4\256\1\0"+
+ "\2\256\1\u0148\1\256\1\257\6\256\1\257\36\256\1\u0148"+
+ "\37\256\1\u0149\106\256\1\u014a\70\256\12\263\1\0\1\263"+
+ "\1\0\1\u014b\67\263\1\0\13\263\1\0\1\263\1\0"+
+ "\1\u014b\4\263\1\u014c\62\263\1\0\13\263\1\0\1\263"+
+ "\1\0\1\263\1\u014d\66\263\1\u014e\1\263\14\u014f\1\u0150"+
+ "\106\u014f\1\u0150\5\u014f\1\u0151\2\u014f\1\u0152\61\u014f\12\u0153"+
+ "\1\u0154\106\u0153\1\u0154\7\u0153\1\u0155\2\u0153\1\u0156\61\u0153"+
+ "\12\301\1\0\71\301\1\u0157\1\0\13\301\1\0\7\301"+
+ "\1\u0158\61\301\1\u0157\1\0\13\301\1\u0159\74\301\14\305"+
+ "\1\0\67\305\1\u015a\1\0\15\305\1\0\5\305\1\u015b"+
+ "\61\305\1\u015a\1\0\15\305\1\u015c\72\305\12\310\1\0"+
+ "\1\310\1\0\70\310\1\0\13\310\1\0\1\310\1\0"+
+ "\5\310\1\u015d\62\310\1\0\13\310\1\0\1\310\1\0"+
+ "\1\310\1\u015e\66\310\1\0\1\310\14\u015f\1\u0160\106\u015f"+
+ "\1\u0160\5\u015f\1\u0161\2\u015f\1\u0162\61\u015f\12\u0163\1\u0164"+
+ "\106\u0163\1\u0164\7\u0163\1\u0165\2\u0163\1\u0166\61\u0163\12\326"+
+ "\1\0\71\326\1\u0167\1\0\13\326\1\0\7\326\1\u0168"+
+ "\61\326\1\u0167\1\0\13\326\1\u0169\74\326\14\332\1\0"+
+ "\67\332\1\u016a\1\0\15\332\1\0\5\332\1\u016b\61\332"+
+ "\1\u016a\1\0\15\332\1\u016c\72\332\7\0\1\u016d\11\0"+
+ "\1\u016e\3\0\1\u016f\23\0\1\u0170\44\0\1\u0171\25\0"+
+ "\1\u0172\56\0\1\341\2\0\2\u0173\5\0\1\341\6\0"+
+ "\1\341\6\u0173\1\0\13\u0173\1\0\13\u0173\1\0\4\u0173"+
+ "\1\0\4\u0173\1\0\4\u0173\2\0\1\u0173\1\u0174\1\0"+
+ "\3\u0174\1\u0175\4\342\1\u0174\1\0\3\u0174\1\u0175\1\342"+
+ "\1\u0174\1\0\3\u0174\1\u0175\6\342\1\u0174\13\342\1\u0174"+
+ "\13\342\1\u0174\4\342\1\u0176\11\342\2\u0174\1\342\20\0"+
+ "\1\u0177\7\0\1\u0178\73\0\1\345\71\0\105\346\1\u0179"+
+ "\1\346\1\u0174\1\0\3\u0174\1\u0175\4\347\1\u0174\1\0"+
+ "\3\u0174\1\u0175\1\347\1\u0174\1\0\3\u0174\1\u0175\6\347"+
+ "\1\u0174\13\347\1\u0174\13\347\1\u0174\4\347\1\u017a\11\347"+
+ "\2\u0174\1\347\105\350\1\u017b\1\350\65\0\1\351\56\0"+
+ "\1\u0172\53\0\1\u017c\106\0\1\u017d\112\0\4\112\6\0"+
+ "\1\112\6\0\4\112\2\u017e\1\0\13\112\1\0\13\112"+
+ "\1\0\4\112\1\0\11\112\2\0\1\112\6\0\4\112"+
+ "\6\0\1\112\6\0\4\112\1\u017e\1\u017f\1\0\13\112"+
+ "\1\0\13\112\1\0\4\112\1\0\11\112\2\0\1\112"+
+ "\6\0\4\112\6\0\1\112\6\0\6\112\1\0\13\112"+
+ "\1\0\2\112\1\u0180\10\112\1\0\4\112\1\0\6\112"+
+ "\1\u0180\2\112\2\0\1\112\12\364\1\365\3\364\1\0"+
+ "\70\364\14\367\1\365\1\367\1\0\70\367\1\374\1\0"+
+ "\10\374\1\376\2\374\1\u0181\47\374\1\u0181\21\374\1\141"+
+ "\2\374\1\375\1\141\1\374\4\141\1\376\1\141\1\374"+
+ "\1\141\1\137\1\374\6\141\1\374\60\141\1\u0100\1\0"+
+ "\12\u0100\1\376\1\u0182\47\u0100\1\u0182\21\u0100\1\142\2\u0100"+
+ "\1\u0101\1\142\1\u0100\4\142\1\u0100\1\142\1\376\1\142"+
+ "\1\137\1\u0100\6\142\1\u0100\60\142\12\u0107\1\u0108\3\u0107"+
+ "\1\0\70\u0107\14\u010a\1\u0108\1\u010a\1\0\70\u010a\6\0"+
+ "\4\166\6\0\1\166\6\0\6\166\1\0\13\166\1\0"+
+ "\13\166\1\0\4\166\1\0\6\166\1\u0183\2\166\2\0"+
+ "\1\166\6\0\4\u010e\6\0\1\u010e\6\0\6\u010e\1\0"+
+ "\13\u010e\1\0\13\u010e\1\0\4\u010e\1\0\11\u010e\2\0"+
+ "\1\u010e\6\0\4\u0110\6\0\1\u0110\6\0\6\u0110\1\0"+
+ "\13\u0110\1\0\13\u0110\1\0\4\u0110\1\0\11\u0110\2\0"+
+ "\1\u0110\12\u0111\1\u0112\3\u0111\1\0\70\u0111\14\u0114\1\u0112"+
+ "\1\u0114\1\0\70\u0114\1\u0184\2\u0185\1\u0186\1\u0184\1\u0185"+
+ "\4\u0184\1\u0185\1\u0184\1\u0185\2\u0184\1\u0185\6\u0184\1\u0185"+
+ "\56\u0184\1\173\1\u0184\1\u0187\2\u0188\1\u0189\1\u0187\1\u0188"+
+ "\4\u0187\1\u0188\1\u0187\1\u0188\2\u0187\1\u0188\6\u0187\1\u0188"+
+ "\56\u0187\1\173\1\u0187\36\0\1\u018a\35\0\1\u018a\53\0"+
+ "\1\u018b\14\0\1\u018b\73\0\1\u018c\11\0\1\u018c\76\0"+
+ "\1\u018d\20\0\1\u018d\113\0\1\u018e\7\0\1\u018e\3\0"+
+ "\12\u0120\1\u0121\3\u0120\1\0\70\u0120\1\u0123\1\0\12\u0123"+
+ "\1\u0121\1\u018f\47\u0123\1\u018f\22\u0123\1\0\12\u0123\1\u0190"+
+ "\1\u018f\47\u0123\1\u018f\21\u0123\14\0\1\u0191\72\0\14\u0123"+
+ "\1\u0190\1\u0123\1\0\70\u0123\12\u0130\1\u0131\3\u0130\1\0"+
+ "\70\u0130\1\u0133\1\0\12\u0133\1\u0131\1\u0192\47\u0133\1\u0192"+
+ "\22\u0133\1\0\12\u0133\1\u0193\1\u0192\47\u0133\1\u0192\21\u0133"+
+ "\14\0\1\u0194\72\0\14\u0133\1\u0193\1\u0133\1\0\70\u0133"+
+ "\2\231\1\0\4\231\1\u0195\11\231\1\u0196\3\231\1\u0197"+
+ "\23\231\1\u0198\37\231\1\0\32\231\1\u0199\51\231\12\u013a"+
+ "\1\u013b\3\u013a\1\0\70\u013a\1\u013d\1\0\12\u013d\1\u013b"+
+ "\1\u019a\47\u013d\1\u019a\22\u013d\1\0\12\u013d\1\u019b\1\u019a"+
+ "\47\u013d\1\u019a\21\u013d\14\0\1\u019c\72\0\14\u013d\1\u019b"+
+ "\1\u013d\1\0\70\u013d\2\240\1\0\4\240\1\u019d\11\240"+
+ "\1\u019e\3\240\1\u019f\23\240\1\u01a0\37\240\1\0\32\240"+
+ "\1\u01a1\51\240\22\0\1\u01a2\64\0\16\250\1\0\70\250"+
+ "\16\256\1\0\70\256\12\263\1\0\1\263\1\0\1\263"+
+ "\1\u01a3\66\263\1\u014e\10\263\1\u01a4\2\263\1\0\1\263"+
+ "\1\0\1\u014b\3\263\1\u01a5\3\263\1\u01a6\23\263\1\u01a7"+
+ "\33\263\1\0\1\263\12\u01a3\1\0\1\u01a3\1\0\70\u01a3"+
+ "\1\0\1\u01a3\12\u014e\1\0\1\u014e\1\0\1\u01a8\67\u014e"+
+ "\1\0\1\u014e\7\u014f\1\u01a9\4\u014f\1\u0150\4\u014f\1\u01aa"+
+ "\3\u014f\1\u01ab\23\u014f\1\u01ac\51\u014f\1\u0150\20\u014f\1\u01ad"+
+ "\51\u014f\7\u0153\1\u01ae\2\u0153\1\u0154\6\u0153\1\u01af\3\u0153"+
+ "\1\u01b0\23\u0153\1\u01b1\47\u0153\1\u0154\22\u0153\1\u01b2\51\u0153"+
+ "\12\301\1\0\103\301\1\u01b3\2\301\1\0\6\301\1\u01b4"+
+ "\3\301\1\u01b5\23\301\1\u01b6\32\301\1\u0157\1\0\1\301"+
+ "\104\u01b7\1\u01b8\2\u01b7\14\305\1\0\101\305\1\u01b9\4\305"+
+ "\1\0\4\305\1\u01ba\3\305\1\u01bb\23\305\1\u01bc\32\305"+
+ "\1\u015a\1\0\1\305\104\u01bd\1\u01be\2\u01bd\7\310\1\u01bf"+
+ "\2\310\1\0\1\310\1\0\4\310\1\u01c0\3\310\1\u01c1"+
+ "\23\310\1\u01c2\33\310\1\0\1\310\7\u015f\1\u01c3\4\u015f"+
+ "\1\u0160\4\u015f\1\u01c4\3\u015f\1\u01c5\23\u015f\1\u01c6\51\u015f"+
+ "\1\u0160\20\u015f\1\u01c7\51\u015f\7\u0163\1\u01c8\2\u0163\1\u0164"+
+ "\6\u0163\1\u01c9\3\u0163\1\u01ca\23\u0163\1\u01cb\47\u0163\1\u0164"+
+ "\22\u0163\1\u01cc\51\u0163\12\326\1\0\103\326\1\u01cd\2\326"+
+ "\1\0\6\326\1\u01ce\3\326\1\u01cf\23\326\1\u01d0\32\326"+
+ "\1\u0167\1\0\1\326\104\u01d1\1\u01d2\2\u01d1\14\332\1\0"+
+ "\101\332\1\u01d3\4\332\1\0\4\332\1\u01d4\3\332\1\u01d5"+
+ "\23\332\1\u01d6\32\332\1\u016a\1\0\1\332\104\u01d7\1\u01d8"+
+ "\2\u01d7\7\0\1\u01d9\106\0\1\u01da\135\0\1\u01db\50\0"+
+ "\1\u0173\1\0\11\u0173\1\0\6\u0173\1\0\64\u0173\1\u0174"+
+ "\1\0\11\u0174\1\0\6\u0174\1\0\47\u0174\1\0\15\u0174"+
+ "\1\0\3\u0174\1\u0175\5\u0174\1\0\3\u0174\1\u0175\2\u0174"+
+ "\1\0\3\u0174\1\u0175\43\u0174\1\u01dc\14\u0174\20\0\1\u0177"+
+ "\51\0\1\u01dd\34\0\1\u01de\15\0\3\u01de\2\0\1\u01de"+
+ "\11\0\1\u01de\1\0\2\u01de\7\0\1\u01de\2\0\2\u01de"+
+ "\6\0\1\u01de\11\0\1\112\1\u01df\2\112\6\0\1\112"+
+ "\6\0\6\112\1\0\13\112\1\0\13\112\1\0\4\112"+
+ "\1\0\11\112\2\0\1\112\6\0\4\112\6\0\1\112"+
+ "\6\0\6\112\1\0\11\112\1\u01e0\1\112\1\0\1\u01e0"+
+ "\12\112\1\0\4\112\1\0\11\112\2\0\1\112\12\374"+
+ "\1\376\3\374\1\0\70\374\14\u0100\1\376\1\u0100\1\0"+
+ "\70\u0100\6\0\3\166\1\u01e1\6\0\1\166\6\0\6\166"+
+ "\1\0\13\166\1\0\13\166\1\0\4\166\1\0\11\166"+
+ "\2\0\1\166\1\u0184\2\u0185\1\u0186\1\u0184\1\u0185\4\u0184"+
+ "\1\u0185\1\u0184\1\u0185\2\u0184\1\u0185\6\u0184\1\u0185\56\u0184"+
+ "\1\u01e2\1\u0184\105\u0185\1\u01e3\1\u0185\1\u0187\2\u0188\1\u0189"+
+ "\1\u0187\1\u0188\4\u0187\1\u0188\1\u0187\1\u0188\2\u0187\1\u0188"+
+ "\6\u0187\1\u0188\56\u0187\1\u01e2\1\u0187\105\u0188\1\u01e4\1\u0188"+
+ "\41\0\1\u01e5\14\0\1\u01e5\63\0\2\u01e6\103\0\2\u01e7"+
+ "\115\0\1\u01e8\14\0\1\u01e8\63\0\2\u01e9\52\0\14\u0123"+
+ "\1\u0121\1\u0123\1\0\70\u0123\3\0\2\u01ea\1\0\4\u01ea"+
+ "\2\0\1\u0125\1\u01ea\1\0\4\u01ea\1\0\11\u01ea\1\0"+
+ "\40\u01ea\2\0\4\u01ea\2\0\1\u01ea\14\u0133\1\u0131\1\u0133"+
+ "\1\0\70\u0133\3\0\2\u01eb\1\0\4\u01eb\2\0\1\u0135"+
+ "\1\u01eb\1\0\4\u01eb\1\0\11\u01eb\1\0\40\u01eb\2\0"+
+ "\4\u01eb\2\0\1\u01eb\2\231\1\0\4\231\1\u01ec\101\231"+
+ "\1\0\33\231\1\u01ed\50\231\14\u013d\1\u013b\1\u013d\1\0"+
+ "\70\u013d\3\0\2\u01ee\1\0\4\u01ee\2\0\1\u013f\1\u01ee"+
+ "\1\0\4\u01ee\1\0\11\u01ee\1\0\40\u01ee\2\0\4\u01ee"+
+ "\2\0\1\u01ee\2\240\1\0\4\240\1\u01ef\101\240\1\0"+
+ "\33\240\1\u01f0\50\240\2\0\1\u01f1\104\0\7\263\1\u01f2"+
+ "\2\263\1\0\1\263\1\0\1\u014b\67\263\1\0\1\263"+
+ "\12\u014e\1\0\1\u014e\1\0\1\u014e\1\0\70\u014e\7\u014f"+
+ "\1\u01f3\4\u014f\1\u0150\106\u014f\1\u0150\21\u014f\1\u01f4\50\u014f"+
+ "\7\u0153\1\u01f5\2\u0153\1\u0154\106\u0153\1\u0154\23\u0153\1\u01f6"+
+ "\50\u0153\7\301\1\u01f7\2\301\1\0\71\301\1\u0157\1\0"+
+ "\1\301\12\u01f8\1\u01f9\72\u01f8\1\0\1\u01f8\7\305\1\u01fa"+
+ "\4\305\1\0\67\305\1\u015a\1\0\1\305\14\u01fb\1\u01f9"+
+ "\70\u01fb\1\0\1\u01fb\7\310\1\u01fc\2\310\1\0\1\310"+
+ "\1\0\70\310\1\0\1\310\7\u015f\1\u01fd\4\u015f\1\u0160"+
+ "\106\u015f\1\u0160\21\u015f\1\u01fe\50\u015f\7\u0163\1\u01ff\2\u0163"+
+ "\1\u0164\106\u0163\1\u0164\23\u0163\1\u0200\50\u0163\7\326\1\u0201"+
+ "\2\326\1\0\71\326\1\u0167\1\0\1\326\12\u0202\1\u0203"+
+ "\72\u0202\1\0\1\u0202\7\332\1\u0204\4\332\1\0\67\332"+
+ "\1\u016a\1\0\1\332\14\u0205\1\u0203\70\u0205\1\0\1\u0205"+
+ "\37\0\1\u0206\141\0\1\u01dc\34\0\1\u01de\15\0\3\u01de"+
+ "\2\0\1\u01de\11\0\1\u01de\1\0\2\u01de\7\0\1\u01de"+
+ "\1\0\1\u01dd\2\u01de\6\0\1\u01de\11\0\4\112\6\0"+
+ "\1\112\6\0\6\112\1\0\7\112\1\u0207\3\112\1\0"+
+ "\13\112\1\0\4\112\1\0\11\112\2\0\1\112\6\0"+
+ "\4\112\6\0\1\112\6\0\6\112\1\0\6\112\1\u0208"+
+ "\4\112\1\0\13\112\1\0\1\112\1\u0208\2\112\1\0"+
+ "\11\112\2\0\1\112\6\0\4\166\6\0\1\166\6\0"+
+ "\6\166\1\0\6\166\1\u0209\4\166\1\0\6\166\1\u020a"+
+ "\4\166\1\0\4\166\1\0\11\166\2\0\1\166\53\0"+
+ "\1\u020b\5\0\1\u020b\73\0\1\u020c\14\0\1\u020c\66\0"+
+ "\1\u020d\11\0\1\u020d\74\0\1\u020e\11\0\1\u020e\77\0"+
+ "\1\u020f\14\0\1\u020f\23\0\2\231\1\0\34\231\1\u0210"+
+ "\47\231\2\240\1\0\34\240\1\u0211\47\240\14\u014f\1\u0150"+
+ "\22\u014f\1\u0212\47\u014f\12\u0153\1\u0154\24\u0153\1\u0213\47\u0153"+
+ "\12\u01f8\1\u01b7\71\u01f8\1\u0214\1\u01b7\1\u01f8\14\u01fb\1\u01bd"+
+ "\67\u01fb\1\u0215\1\u01bd\1\u01fb\14\u015f\1\u0160\22\u015f\1\u0216"+
+ "\47\u015f\12\u0163\1\u0164\24\u0163\1\u0217\47\u0163\12\u0202\1\u01d1"+
+ "\71\u0202\1\u0218\1\u01d1\1\u0202\14\u0205\1\u01d7\67\u0205\1\u0219"+
+ "\1\u01d7\1\u0205\40\0\1\u021a\54\0\4\112\6\0\1\112"+
+ "\6\0\6\112\1\0\13\112\1\0\4\112\1\u021b\6\112"+
+ "\1\0\4\112\1\0\11\112\2\0\1\112\6\0\4\112"+
+ "\6\0\1\112\6\0\6\112\1\0\3\112\1\u021c\7\112"+
+ "\1\0\4\112\1\u021c\6\112\1\0\4\112\1\0\11\112"+
+ "\2\0\1\112\6\0\4\166\6\0\1\166\6\0\6\166"+
+ "\1\0\11\166\1\u021d\1\166\1\0\13\166\1\0\4\166"+
+ "\1\0\11\166\2\0\1\166\6\0\4\166\6\0\1\166"+
+ "\6\0\6\166\1\0\10\166\1\u021e\2\166\1\0\13\166"+
+ "\1\0\4\166\1\0\11\166\2\0\1\166\54\0\1\u021f"+
+ "\24\0\1\u021f\52\0\1\u0220\20\0\1\u0220\70\0\1\u0221"+
+ "\13\0\1\u0221\53\0\2\u0222\112\0\1\u0223\35\0\1\u0223"+
+ "\12\0\2\231\1\0\35\231\1\u0224\46\231\2\240\1\0"+
+ "\35\240\1\u0225\46\240\14\u014f\1\u0150\23\u014f\1\u0226\46\u014f"+
+ "\12\u0153\1\u0154\25\u0153\1\u0227\46\u0153\12\u01f8\1\u0228\71\u01f8"+
+ "\1\u0214\1\u01b7\1\u01f8\14\u01fb\1\u0229\67\u01fb\1\u0215\1\u01bd"+
+ "\1\u01fb\14\u015f\1\u0160\23\u015f\1\u022a\46\u015f\12\u0163\1\u0164"+
+ "\25\u0163\1\u022b\46\u0163\12\u0202\1\u022c\71\u0202\1\u0218\1\u01d1"+
+ "\1\u0202\14\u0205\1\u022d\67\u0205\1\u0219\1\u01d7\1\u0205\41\0"+
+ "\1\u022e\53\0\4\112\6\0\1\112\6\0\6\112\1\0"+
+ "\13\112\1\0\7\112\1\u022f\3\112\1\0\4\112\1\0"+
+ "\11\112\2\0\1\112\6\0\4\166\6\0\1\166\6\0"+
+ "\6\166\1\0\11\166\1\u0230\1\166\1\0\13\166\1\0"+
+ "\4\166\1\0\11\166\2\0\1\166\6\0\4\166\6\0"+
+ "\1\166\6\0\6\166\1\0\6\166\1\u0231\4\166\1\0"+
+ "\13\166\1\0\4\166\1\0\11\166\2\0\1\166\43\0"+
+ "\1\u0232\11\0\1\u0232\72\0\1\u0233\14\0\1\u0233\71\0"+
+ "\1\u0234\14\0\1\u0234\30\0\2\231\1\0\36\231\1\u0235"+
+ "\45\231\2\240\1\0\36\240\1\u0236\45\240\14\u014f\1\u0150"+
+ "\24\u014f\1\u0237\45\u014f\12\u0153\1\u0154\26\u0153\1\u0238\45\u0153"+
+ "\14\u015f\1\u0160\24\u015f\1\u0239\45\u015f\12\u0163\1\u0164\26\u0163"+
+ "\1\u023a\45\u0163\40\0\1\u023b\54\0\4\112\6\0\1\112"+
+ "\6\0\5\112\1\u023c\1\0\13\112\1\0\13\112\1\0"+
+ "\4\112\1\0\11\112\2\0\1\112\6\0\4\166\6\0"+
+ "\1\166\6\0\6\166\1\0\13\166\1\0\4\166\1\u023d"+
+ "\6\166\1\0\4\166\1\0\11\166\2\0\1\166\6\0"+
+ "\4\166\6\0\1\166\6\0\6\166\1\0\5\166\1\u023e"+
+ "\5\166\1\0\13\166\1\0\4\166\1\0\11\166\2\0"+
+ "\1\166\2\231\1\0\35\231\1\u023f\46\231\2\240\1\0"+
+ "\35\240\1\u0240\46\240\14\u014f\1\u0150\23\u014f\1\u0241\46\u014f"+
+ "\12\u0153\1\u0154\25\u0153\1\u0242\46\u0153\14\u015f\1\u0160\23\u015f"+
+ "\1\u0243\46\u015f\12\u0163\1\u0164\25\u0163\1\u0244\46\u0163\35\0"+
+ "\1\u0245\57\0\4\112\6\0\1\112\6\0\6\112\1\0"+
+ "\5\112\1\u0246\5\112\1\0\13\112\1\0\4\112\1\0"+
+ "\11\112\2\0\1\112\6\0\4\166\6\0\1\166\6\0"+
+ "\6\166\1\0\13\166\1\0\13\166\1\0\4\166\1\0"+
+ "\1\166\1\u0247\7\166\2\0\1\166\2\231\1\0\32\231"+
+ "\1\u0248\51\231\2\240\1\0\32\240\1\u0249\51\240\14\u014f"+
+ "\1\u0150\20\u014f\1\u024a\51\u014f\12\u0153\1\u0154\22\u0153\1\u024b"+
+ "\51\u0153\14\u015f\1\u0160\20\u015f\1\u024c\51\u015f\12\u0163\1\u0164"+
+ "\22\u0163\1\u024d\51\u0163\6\0\4\112\6\0\1\112\6\0"+
+ "\6\112\1\0\7\112\1\u024e\3\112\1\0\13\112\1\0"+
+ "\4\112\1\0\11\112\2\0\1\112\6\0\4\166\6\0"+
+ "\1\166\6\0\6\166\1\0\13\166\1\0\4\166\1\u024f"+
+ "\6\166\1\0\4\166\1\0\11\166\2\0\1\166\6\0"+
+ "\4\112\6\0\1\112\6\0\6\112\1\0\13\112\1\0"+
+ "\13\112\1\0\4\112\1\0\11\112\2\0\1\u0250\6\0"+
+ "\4\166\6\0\1\166\6\0\6\166\1\0\10\166\1\u0251"+
+ "\2\166\1\0\13\166\1\0\4\166\1\0\11\166\2\0"+
+ "\1\166\6\0\4\112\6\0\1\112\6\0\6\112\1\0"+
+ "\5\112\1\u0252\5\112\1\0\13\112\1\0\4\112\1\0"+
+ "\11\112\2\0\1\112\6\0\4\166\6\0\1\166\6\0"+
+ "\6\166\1\0\4\166\1\u0253\6\166\1\0\13\166\1\0"+
+ "\4\166\1\0\11\166\2\0\1\166\6\0\4\112\6\0"+
+ "\1\112\6\0\6\112\1\0\5\112\1\u0254\5\112\1\0"+
+ "\13\112\1\0\4\112\1\0\11\112\2\0\1\112\6\0"+
+ "\4\166\6\0\1\166\6\0\6\166\1\0\5\166\1\u0255"+
+ "\5\166\1\0\13\166\1\0\4\166\1\0\11\166\2\0"+
+ "\1\166\6\0\4\112\6\0\1\112\6\0\6\112\1\0"+
+ "\13\112\1\0\4\112\1\u0256\6\112\1\0\4\112\1\0"+
+ "\11\112\2\0\1\112\6\u0257\4\u0258\6\u0257\1\u0258\5\u0257"+
+ "\1\0\6\u0258\1\u0257\13\u0258\1\u0257\13\u0258\1\u0257\4\u0258"+
+ "\1\u0257\11\u0258\2\u0257\1\u0258\42\0\1\u0259\3\0\1\u025a"+
+ "\7\0\1\u025b\1\u025c\21\0\1\u025d\13\0\4\166\6\0"+
+ "\1\166\6\0\6\166\1\0\4\166\1\u025e\3\166\1\u025f"+
+ "\2\166\1\0\4\166\1\u0260\1\u0261\5\166\1\0\4\166"+
+ "\1\0\6\166\1\u0262\2\166\2\0\1\166\57\0\1\u0263"+
+ "\77\0\1\u0264\115\0\1\u0265\105\0\1\u0266\107\0\1\u0267"+
+ "\35\0\4\166\6\0\1\166\6\0\6\166\1\0\13\166"+
+ "\1\0\5\166\1\u0268\5\166\1\0\4\166\1\0\11\166"+
+ "\2\0\1\166\6\0\4\166\6\0\1\166\6\0\6\166"+
+ "\1\0\12\166\1\u0269\1\0\13\166\1\0\4\166\1\0"+
+ "\11\166\2\0\1\166\6\0\4\166\6\0\1\166\6\0"+
+ "\6\166\1\0\13\166\1\0\5\166\1\u026a\5\166\1\0"+
+ "\4\166\1\0\11\166\2\0\1\166\6\0\4\166\6\0"+
+ "\1\166\6\0\6\166\1\0\13\166\1\0\4\166\1\u026b"+
+ "\6\166\1\0\4\166\1\0\11\166\2\0\1\166\6\0"+
+ "\4\166\6\0\1\166\6\0\6\166\1\0\13\166\1\0"+
+ "\5\166\1\u026c\5\166\1\0\4\166\1\0\11\166\2\0"+
+ "\1\166\44\0\1\u026d\136\0\1\u026e\107\0\1\u026f\67\0"+
+ "\1\u0270\125\0\1\u0271\17\0\4\166\6\0\1\166\6\0"+
+ "\6\166\1\0\6\166\1\u0272\4\166\1\0\13\166\1\0"+
+ "\4\166\1\0\11\166\2\0\1\166\6\0\4\166\6\0"+
+ "\1\166\6\0\6\166\1\0\13\166\1\0\13\166\1\0"+
+ "\4\166\1\0\1\166\1\u0273\7\166\2\0\1\166\6\0"+
+ "\4\166\6\0\1\166\6\0\6\166\1\0\13\166\1\0"+
+ "\13\166\1\0\4\166\1\0\2\166\1\u0274\6\166\2\0"+
+ "\1\166\6\0\4\166\6\0\1\166\6\0\6\166\1\0"+
+ "\13\166\1\0\4\166\1\u0275\6\166\1\0\4\166\1\0"+
+ "\11\166\2\0\1\166\6\0\4\166\6\0\1\166\6\0"+
+ "\6\166\1\0\13\166\1\0\13\166\1\0\4\166\1\0"+
+ "\2\166\1\u0276\6\166\2\0\1\166\46\0\1\u0277\74\0"+
+ "\1\u0278\106\0\1\u0279\116\0\1\u027a\105\0\1\u027b\51\0"+
+ "\4\166\6\0\1\166\6\0\6\166\1\0\10\166\1\u027c"+
+ "\2\166\1\0\13\166\1\0\4\166\1\0\11\166\2\0"+
+ "\1\166\6\0\4\166\6\0\1\166\6\0\5\166\1\u027d"+
+ "\1\0\13\166\1\0\13\166\1\0\4\166\1\0\11\166"+
+ "\2\0\1\166\6\0\4\166\6\0\1\166\6\0\5\166"+
+ "\1\u027e\1\0\13\166\1\0\13\166\1\0\4\166\1\0"+
+ "\11\166\2\0\1\166\6\0\4\166\6\0\1\166\6\0"+
+ "\6\166\1\0\6\166\1\u027f\4\166\1\0\13\166\1\0"+
+ "\4\166\1\0\11\166\2\0\1\166\6\0\4\166\6\0"+
+ "\1\166\6\0\6\166\1\0\5\166\1\u0280\5\166\1\0"+
+ "\13\166\1\0\4\166\1\0\11\166\2\0\1\166\57\0"+
+ "\1\u0281\131\0\1\u0282\52\0\1\u0283\106\0\1\u0284\46\0"+
+ "\4\166\6\0\1\166\6\0\6\166\1\0\13\166\1\0"+
+ "\5\166\1\u0285\5\166\1\0\4\166\1\0\11\166\2\0"+
+ "\1\166\6\0\4\166\6\0\1\166\6\0\6\166\1\0"+
+ "\13\166\1\0\13\166\1\0\4\166\1\0\7\166\1\u0286"+
+ "\1\166\2\0\1\166\6\0\4\166\6\0\1\166\6\0"+
+ "\6\166\1\0\10\166\1\u0287\2\166\1\0\13\166\1\0"+
+ "\4\166\1\0\11\166\2\0\1\166\6\0\4\166\6\0"+
+ "\1\166\6\0\6\166\1\0\10\166\1\u0288\2\166\1\0"+
+ "\13\166\1\0\4\166\1\0\11\166\2\0\1\166\103\0"+
+ "\1\u0289\63\0\1\u0271\131\0\1\u027b\106\0\1\u028a\11\0"+
+ "\4\166\6\0\1\166\6\0\6\166\1\0\13\166\1\0"+
+ "\13\166\1\0\4\166\1\0\10\166\1\u028b\2\0\1\166"+
+ "\6\0\4\166\6\0\1\166\6\0\6\166\1\0\13\166"+
+ "\1\0\6\166\1\u0276\4\166\1\0\4\166\1\0\11\166"+
+ "\2\0\1\166\6\0\4\166\6\0\1\166\6\0\6\166"+
+ "\1\0\13\166\1\0\13\166\1\0\4\166\1\0\10\166"+
+ "\1\u0280\2\0\1\166\6\0\4\166\6\0\1\166\6\0"+
+ "\6\166\1\0\13\166\1\0\13\166\1\0\4\166\1\0"+
+ "\10\166\1\u028c\2\0\1\166\34\0\1\u0271\154\0\1\u028d"+
+ "\12\0\4\166\6\0\1\166\6\0\5\166\1\u0276\1\0"+
+ "\13\166\1\0\13\166\1\0\4\166\1\0\11\166\2\0"+
+ "\1\166\6\0\4\166\6\0\1\166\6\0\6\166\1\0"+
+ "\13\166\1\0\13\166\1\0\4\166\1\0\7\166\1\u028e"+
+ "\1\166\2\0\1\166\56\0\1\u0271\36\0\4\166\6\0"+
+ "\1\166\6\0\6\166\1\0\13\166\1\0\4\166\1\u0276"+
+ "\6\166\1\0\4\166\1\0\11\166\2\0\1\166";
/**
* The transition table of the DFA
@@ -795,45 +797,45 @@
private final static byte YY_ATTRIBUTE[] = {
1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1,
0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0,
- 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 9,
- 1, 9, 1, 1, 9, 9, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9,
- 1, 1, 1, 1, 9, 1, 1, 1, 1, 1, 1, 9, 1, 1, 9, 1,
- 1, 1, 1, 9, 1, 1, 1, 1, 1, 1, 1, 9, 1, 1, 1, 1,
- 1, 1, 1, 9, 1, 1, 1, 1, 1, 1, 9, 1, 1, 1, 1, 1,
- 1, 1, 1, 9, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9, 1, 1, 1, 1,
- 1, 1, 9, 9, 1, 1, 9, 1, 1, 1, 1, 1, 9, 1, 1, 1,
- 1, 9, 1, 1, 1, 1, 9, 9, 1, 9, 3, 3, 3, 3, 3, 3,
- 9, 9, 1, 1, 1, 9, 1, 1, 1, 1, 1, 9, 9, 1, 9, 3,
- 3, 3, 3, 3, 3, 9, 9, 1, 1, 1, 9, 1, 1, 1, 9, 9,
- 1, 1, 0, 1, 0, 9, 1, 2, 1, 2, 1, 1, 0, 0, 0, 9,
- 1, 1, 1, 9, 9, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0,
- 9, 1, 0, 0, 1, 9, 0, 9, 0, 0, 9, 0, 0, 0, 9, 1,
- 1, 0, 1, 0, 9, 0, 0, 0, 1, 1, 0, 0, 0, 0, 9, 0,
- 0, 0, 0, 9, 0, 0, 0, 1, 0, 0, 1, 0, 0, 9, 0, 0,
- 1, 0, 0, 9, 0, 0, 0, 1, 0, 1, 1, 0, 0, 9, 0, 0,
- 0, 1, 0, 1, 1, 0, 0, 9, 9, 9, 0, 9, 9, 1, 1, 1,
- 1, 2, 13, 3, 2, 2, 13, 3, 2, 0, 1, 1, 0, 1, 1, 1,
- 1, 2, 13, 3, 2, 2, 13, 3, 2, 0, 1, 1, 0, 1, 1, 0,
- 9, 9, 9, 0, 0, 1, 1, 1, 9, 0, 0, 13, 9, 13, 9, 9,
- 1, 1, 1, 0, 0, 1, 3, 2, 2, 3, 2, 2, 0, 0, 0, 0,
- 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1,
- 1, 1, 0, 1, 1, 1, 1, 0, 2, 3, 3, 2, 2, 3, 3, 2,
- 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 2, 3, 3,
- 2, 2, 3, 3, 2, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 9,
- 9, 0, 1, 9, 0, 1, 1, 1, 5, 13, 13, 0, 0, 0, 0, 0,
- 0, 0, 1, 1, 0, 1, 1, 9, 1, 3, 2, 3, 2, 1, 0, 9,
- 1, 0, 1, 3, 2, 3, 2, 1, 0, 9, 1, 0, 0, 1, 1, 1,
- 1, 0, 0, 0, 0, 0, 1, 1, 2, 2, 0, 0, 2, 2, 0, 0,
- 0, 1, 1, 1, 1, 0, 0, 0, 9, 9, 1, 1, 2, 2, 1, 1,
- 2, 2, 1, 1, 0, 1, 1, 1, 9, 9, 9, 1, 1, 2, 2, 2,
- 2, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 9, 1, 1, 1, 1,
- 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0,
- 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1,
- 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0,
- 0, 9, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0,
- 0, 1, 1, 0, 1
+ 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0,
+ 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 9, 1,
+ 9, 1, 1, 9, 9, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9, 1,
+ 1, 1, 1, 9, 1, 1, 1, 1, 1, 1, 9, 1, 1, 9, 1, 1,
+ 1, 1, 9, 1, 1, 1, 1, 1, 1, 1, 9, 1, 1, 1, 1, 1,
+ 1, 1, 9, 1, 1, 1, 1, 1, 1, 9, 1, 1, 1, 1, 1, 1,
+ 1, 1, 9, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9, 1, 1, 1, 1, 1,
+ 1, 9, 9, 1, 9, 1, 1, 1, 1, 1, 9, 1, 1, 1, 1, 9,
+ 1, 1, 1, 1, 9, 9, 1, 9, 3, 3, 3, 3, 3, 3, 9, 9,
+ 1, 1, 1, 9, 1, 1, 1, 1, 1, 9, 9, 1, 9, 3, 3, 3,
+ 3, 3, 3, 9, 9, 1, 1, 1, 9, 1, 1, 1, 9, 9, 1, 1,
+ 0, 1, 0, 9, 1, 2, 1, 2, 1, 0, 0, 0, 9, 1, 1, 1,
+ 9, 9, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 1, 0,
+ 0, 1, 9, 0, 9, 0, 0, 9, 0, 0, 0, 9, 1, 1, 0, 1,
+ 0, 9, 0, 0, 0, 1, 1, 0, 0, 0, 0, 9, 0, 0, 0, 0,
+ 9, 0, 0, 0, 1, 0, 0, 1, 0, 0, 9, 0, 0, 1, 0, 0,
+ 9, 0, 0, 0, 1, 0, 1, 1, 0, 0, 9, 0, 0, 0, 1, 0,
+ 1, 1, 0, 0, 9, 9, 9, 0, 9, 9, 1, 1, 1, 1, 2, 13,
+ 3, 2, 2, 13, 3, 2, 0, 1, 1, 0, 1, 1, 1, 1, 2, 13,
+ 3, 2, 2, 13, 3, 2, 0, 1, 1, 0, 1, 1, 0, 9, 9, 9,
+ 0, 0, 1, 1, 1, 9, 0, 0, 13, 9, 13, 9, 9, 1, 1, 1,
+ 0, 0, 1, 3, 2, 2, 3, 2, 2, 0, 0, 0, 0, 0, 0, 1,
+ 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1,
+ 1, 0, 1, 1, 1, 1, 1, 0, 2, 3, 3, 3, 2, 2, 3, 3,
+ 3, 2, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1,
+ 1, 1, 2, 3, 3, 3, 2, 2, 3, 3, 3, 2, 1, 1, 1, 1,
+ 0, 0, 1, 1, 1, 1, 0, 0, 9, 9, 0, 1, 9, 0, 1, 1,
+ 1, 5, 13, 13, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1,
+ 9, 1, 3, 2, 3, 2, 1, 0, 9, 1, 0, 1, 3, 2, 3, 2,
+ 1, 0, 9, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1,
+ 1, 2, 2, 0, 0, 2, 2, 0, 0, 0, 1, 1, 1, 1, 0, 0,
+ 0, 9, 9, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 0, 1, 1,
+ 1, 9, 9, 9, 1, 1, 2, 2, 2, 2, 0, 1, 1, 1, 1, 1,
+ 2, 2, 2, 2, 9, 1, 1, 1, 1, 3, 3, 3, 3, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1,
+ 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0,
+ 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 9, 1, 1, 1, 1, 1,
+ 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1
};
/** the input device */
@@ -1738,10 +1740,10 @@
* @return the unpacked transition table
*/
private static int [] yy_unpack(String packed) {
- int [] trans = new int[31808];
+ int [] trans = new int[31595];
int i = 0; /* index in packed string */
int j = 0; /* index in unpacked array */
- while (i < 8188) {
+ while (i < 8206) {
int count = packed.charAt(i++);
int value = packed.charAt(i++);
value--;
@@ -2073,10 +2075,10 @@
switch (yy_action) {
- case 613:
- case 618:
- case 625:
- case 630:
+ case 622:
+ case 627:
+ case 634:
+ case 639:
{
if(Debug.debugTokenizer)
dump("jsp directive tag name");//$NON-NLS-1$
@@ -2085,8 +2087,8 @@
yybegin(ST_XML_ATTRIBUTE_NAME);
return JSP_DIRECTIVE_NAME;
}
- case 646: break;
- case 588:
+ case 655: break;
+ case 597:
{
if(Debug.debugTokenizer)
dump("XSL processing instruction target");//$NON-NLS-1$
@@ -2094,14 +2096,14 @@
yybegin(ST_XML_PI_ATTRIBUTE_NAME);
return XML_TAG_NAME;
}
- case 647: break;
- case 571:
- case 574:
- case 575:
- case 576:
- case 577:
- case 578:
- case 579:
+ case 656: break;
+ case 580:
+ case 583:
+ case 584:
+ case 585:
+ case 586:
+ case 587:
+ case 588:
{
if(Debug.debugTokenizer)
dump("\nCDATA start");//$NON-NLS-1$
@@ -2109,8 +2111,8 @@
yybegin(ST_CDATA_TEXT);
return XML_CDATA_OPEN;
}
- case 648: break;
- case 563:
+ case 657: break;
+ case 572:
{
if(Debug.debugTokenizer)
dump("jsp:root tag name");//$NON-NLS-1$
@@ -2119,32 +2121,32 @@
yybegin(ST_XML_ATTRIBUTE_NAME);
return JSP_ROOT_TAG_NAME;
}
- case 649: break;
- case 554:
+ case 658: break;
+ case 563:
{
if(Debug.debugTokenizer)
dump("element");//$NON-NLS-1$
yybegin(ST_XML_ELEMENT_DECLARATION);
return XML_ELEMENT_DECLARATION;
}
- case 650: break;
- case 553:
+ case 659: break;
+ case 562:
{
if(Debug.debugTokenizer)
dump("attlist");//$NON-NLS-1$
yybegin(ST_XML_ATTLIST_DECLARATION);
return XML_ATTLIST_DECLARATION;
}
- case 651: break;
- case 552:
+ case 660: break;
+ case 561:
{
if(Debug.debugTokenizer)
dump("doctype");//$NON-NLS-1$
yybegin(ST_XML_DOCTYPE_DECLARATION);
return XML_DOCTYPE_DECLARATION;
}
- case 652: break;
- case 537:
+ case 661: break;
+ case 546:
{
if(Debug.debugTokenizer)
dump("doctype external id");//$NON-NLS-1$
@@ -2152,8 +2154,8 @@
yybegin(ST_XML_DOCTYPE_ID_PUBLIC);
return XML_DOCTYPE_EXTERNAL_ID_PUBLIC;
}
- case 653: break;
- case 536:
+ case 662: break;
+ case 545:
{
if(Debug.debugTokenizer)
dump("doctype external id");//$NON-NLS-1$
@@ -2161,8 +2163,8 @@
yybegin(ST_XML_DOCTYPE_ID_SYSTEM);
return XML_DOCTYPE_EXTERNAL_ID_SYSTEM;
}
- case 654: break;
- case 530:
+ case 663: break;
+ case 539:
{
if(Debug.debugTokenizer)
dump("DHTML processing instruction target");//$NON-NLS-1$
@@ -2171,30 +2173,30 @@
yybegin(ST_DHTML_ATTRIBUTE_NAME);
return XML_TAG_NAME;
}
- case 655: break;
- case 505:
- case 546:
- case 547:
+ case 664: break;
+ case 514:
+ case 555:
+ case 556:
{
return JSP_VBL_QUOTED_CONTENT;
}
- case 656: break;
- case 495:
- case 542:
- case 543:
+ case 665: break;
+ case 504:
+ case 551:
+ case 552:
{
return JSP_EL_QUOTED_CONTENT;
}
- case 657: break;
- case 487:
+ case 666: break;
+ case 496:
{
if(Debug.debugTokenizer)
dump("\nJSP comment close");//$NON-NLS-1$
yybegin(YYINITIAL);
return JSP_COMMENT_CLOSE;
}
- case 658: break;
- case 474:
+ case 667: break;
+ case 483:
{
if (Debug.debugTokenizer) {
System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
@@ -2215,8 +2217,8 @@
fEmbeddedPostState = ST_XML_EQUALS;
return PROXY_CONTEXT;
}
- case 659: break;
- case 473:
+ case 668: break;
+ case 482:
{
if (Debug.debugTokenizer) {
System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
@@ -2237,15 +2239,15 @@
fEmbeddedPostState = ST_XML_EQUALS;
return PROXY_CONTEXT;
}
- case 660: break;
- case 467:
+ case 669: break;
+ case 476:
{
if(Debug.debugTokenizer)
dump("\nCharRef");//$NON-NLS-1$
return XML_CHAR_REFERENCE;
}
- case 661: break;
- case 464:
+ case 670: break;
+ case 473:
{
if(Debug.debugTokenizer)
dump("\ncomment start");//$NON-NLS-1$
@@ -2254,20 +2256,20 @@
yybegin(ST_XML_COMMENT);
return XML_COMMENT_OPEN;
}
- case 662: break;
- case 463:
- case 482:
- case 485:
- case 488:
- case 489:
+ case 671: break;
+ case 472:
case 491:
- case 493:
- case 496:
+ case 494:
+ case 497:
case 498:
- case 499:
- case 501:
- case 503:
- case 506:
+ case 500:
+ case 502:
+ case 505:
+ case 507:
+ case 508:
+ case 510:
+ case 512:
+ case 515:
{
/* JSP comment begun (anywhere)
* A consequence of the start anywhere possibility is that the
@@ -2349,9 +2351,9 @@
return PROXY_CONTEXT;
}
}
- case 663: break;
- case 384:
- case 385:
+ case 672: break;
+ case 381:
+ case 382:
{
if(Debug.debugTokenizer)
dump("XML processing instruction target");//$NON-NLS-1$
@@ -2360,8 +2362,8 @@
yybegin(ST_XML_PI_ATTRIBUTE_NAME);
return XML_TAG_NAME;
}
- case 664: break;
- case 383:
+ case 673: break;
+ case 380:
{
if(Debug.debugTokenizer)
dump("comment end");//$NON-NLS-1$
@@ -2369,16 +2371,16 @@
yybegin(YYINITIAL);
return XML_COMMENT_CLOSE;
}
- case 665: break;
- case 382:
+ case 674: break;
+ case 379:
{
if(Debug.debugTokenizer)
dump("CDATA end");//$NON-NLS-1$
yybegin(fStateStack.pop());
return XML_CDATA_CLOSE;
}
- case 666: break;
- case 381:
+ case 675: break;
+ case 378:
{
yybegin(ST_JSP_VBL);
if(yylength() > 2)
@@ -2391,15 +2393,15 @@
yybegin(YYINITIAL);
return PROXY_CONTEXT;
}
- case 667: break;
- case 380:
+ case 676: break;
+ case 377:
{
if(Debug.debugTokenizer)
dump("\nPEReference");//$NON-NLS-1$
return XML_PE_REFERENCE;
}
- case 668: break;
- case 379:
+ case 677: break;
+ case 376:
{
yybegin(ST_JSP_EL);
if(yylength() > 2)
@@ -2412,27 +2414,27 @@
yybegin(YYINITIAL);
return PROXY_CONTEXT;
}
- case 669: break;
- case 376:
+ case 678: break;
+ case 373:
{
if(Debug.debugTokenizer)
dump("\nEntityRef");//$NON-NLS-1$
return XML_ENTITY_REFERENCE;
}
- case 670: break;
- case 370:
- case 409:
- case 416:
+ case 679: break;
+ case 367:
+ case 407:
+ case 415:
case 422:
- case 426:
- case 430:
- case 434:
- case 439:
- case 444:
- case 447:
- case 451:
- case 455:
- case 460:
+ case 427:
+ case 432:
+ case 437:
+ case 443:
+ case 449:
+ case 453:
+ case 458:
+ case 463:
+ case 469:
{
/* JSP expression begun (anywhere)
* A consequence of the start anywhere possibility is that the
@@ -2502,20 +2504,20 @@
return PROXY_CONTEXT;
}
}
- case 671: break;
- case 369:
- case 408:
- case 415:
+ case 680: break;
+ case 366:
+ case 406:
+ case 414:
case 421:
- case 425:
- case 429:
- case 433:
- case 438:
- case 443:
- case 446:
- case 450:
- case 454:
- case 459:
+ case 426:
+ case 431:
+ case 436:
+ case 442:
+ case 448:
+ case 452:
+ case 457:
+ case 462:
+ case 468:
{
/* JSP declaration begun (anywhere)
* A consequence of the start anywhere possibility is that the
@@ -2585,11 +2587,48 @@
return PROXY_CONTEXT;
}
}
- case 672: break;
- case 368:
+ case 681: break;
+ case 365:
+ case 405:
+ case 413:
+ case 420:
+ case 425:
+ case 430:
+ case 435:
+ case 441:
+ case 447:
+ case 451:
+ case 456:
+ case 461:
+ case 467:
{
+ /* JSP directive begun (anywhere)
+ * A consequence of the start anywhere possibility is that the
+ * incoming state must be checked to see if it's erroneous
+ * due to the order of precedence generated
+ */
+ // begin sanity checks
+ if(yystate() == ST_JSP_CONTENT) {
+ // at the beginning?!
+ yypushback(2);
+ return JSP_CONTENT;
+ }
+ else if(yystate() == ST_BLOCK_TAG_SCAN) {
+ yypushback(3);
+ return doBlockTagScan();
+ }
+ else if(yystate() == ST_XML_COMMENT) {
+ yypushback(3);
+ return scanXMLCommentText();
+ }
+ else if(yystate() == ST_JSP_COMMENT) {
+ yypushback(3);
+ return scanJSPCommentText();
+ }
+ // end sanity checks
fStateStack.push(yystate());
if(fStateStack.peek()==YYINITIAL) {
+ // the simple case, just a declaration out in content
if(Debug.debugTokenizer)
dump("\nJSP directive start");//$NON-NLS-1$
yybegin(ST_JSP_DIRECTIVE_NAME);
@@ -2600,64 +2639,85 @@
System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
}
if(Debug.debugTokenizer)
- dump("JSP directive start");//$NON-NLS-1$
+ dump("JSP declaration start");//$NON-NLS-1$
+ if(yystate() == ST_XML_ATTRIBUTE_VALUE_DQUOTED)
+ fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_DQUOTED;
+ else if(yystate() == ST_XML_ATTRIBUTE_VALUE_SQUOTED)
+ fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_SQUOTED;
+ else if(yystate() == ST_CDATA_TEXT) {
+ fEmbeddedPostState = ST_CDATA_TEXT;
+ fEmbeddedHint = XML_CDATA_TEXT;
+ }
yybegin(ST_JSP_DIRECTIVE_NAME);
assembleEmbeddedContainer(JSP_DIRECTIVE_OPEN, new String[]{JSP_DIRECTIVE_CLOSE, JSP_CLOSE});
if(yystate() == ST_BLOCK_TAG_INTERNAL_SCAN) {
yybegin(ST_BLOCK_TAG_SCAN);
return BLOCK_TEXT;
}
+ // required help for successive embedded regions
+ if(yystate() == ST_XML_TAG_NAME) {
+ fEmbeddedHint = XML_TAG_NAME;
+ fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
+ }
+ else if((yystate() == ST_XML_ATTRIBUTE_NAME || yystate() == ST_XML_EQUALS)) {
+ fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
+ fEmbeddedPostState = ST_XML_EQUALS;
+ }
+ else if(yystate() == ST_XML_ATTRIBUTE_VALUE) {
+ fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;
+ fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
+ }
return PROXY_CONTEXT;
}
}
- case 673: break;
- case 358:
+ case 682: break;
+ case 355:
{
yybegin(ST_JSP_VBL_DQUOTES_END);
return JSP_VBL_QUOTED_CONTENT;
}
- case 674: break;
- case 354:
+ case 683: break;
+ case 351:
{
yybegin(ST_JSP_VBL_SQUOTES_END);
return JSP_VBL_QUOTED_CONTENT;
}
- case 675: break;
- case 352:
+ case 684: break;
+ case 349:
{
fELlevel++;
if(fELlevel == 1) {
return JSP_VBL_OPEN;
}
}
- case 676: break;
- case 342:
+ case 685: break;
+ case 339:
{
yybegin(ST_JSP_EL_DQUOTES_END);
return JSP_EL_QUOTED_CONTENT;
}
- case 677: break;
- case 338:
+ case 686: break;
+ case 335:
{
yybegin(ST_JSP_EL_SQUOTES_END);
return JSP_EL_QUOTED_CONTENT;
}
- case 678: break;
- case 336:
+ case 687: break;
+ case 333:
{
//System.out.println(JSP_EL_CONTENT+ ":[" + yytext() + "]");
return JSP_EL_CONTENT;
}
- case 679: break;
- case 335:
+ case 688: break;
+ case 332:
{
fELlevel++;
if(fELlevel == 1) {
return JSP_EL_OPEN;
}
}
- case 680: break;
- case 332:
+ case 689: break;
+ case 329:
{
int enterState = yystate();
yybegin(ST_JSP_DQUOTED_VBL);
@@ -2672,8 +2732,8 @@
}
return PROXY_CONTEXT;
}
- case 681: break;
- case 331:
+ case 690: break;
+ case 328:
{
int enterState = yystate();
yybegin(ST_JSP_DQUOTED_EL);
@@ -2688,8 +2748,8 @@
}
return PROXY_CONTEXT;
}
- case 682: break;
- case 329:
+ case 691: break;
+ case 326:
{
int enterState = yystate();
yybegin(ST_JSP_SQUOTED_VBL);
@@ -2704,8 +2764,8 @@
}
return PROXY_CONTEXT;
}
- case 683: break;
- case 328:
+ case 692: break;
+ case 325:
{
int enterState = yystate();
yybegin(ST_JSP_SQUOTED_EL);
@@ -2720,8 +2780,8 @@
}
return PROXY_CONTEXT;
}
- case 684: break;
- case 327:
+ case 693: break;
+ case 324:
{
if (Debug.debugTokenizer) {
System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
@@ -2737,15 +2797,15 @@
yybegin(incomingState);
return PROXY_CONTEXT;
}
- case 685: break;
- case 286:
- case 298:
- case 304:
+ case 694: break;
+ case 283:
+ case 295:
+ case 301:
{
return XML_DOCTYPE_INTERNAL_SUBSET;
}
- case 686: break;
- case 274:
+ case 695: break;
+ case 271:
{
String tagName = yytext().substring(1);
// pushback to just after the opening bracket
@@ -2770,8 +2830,8 @@
yybegin(ST_XML_ATTRIBUTE_NAME);
return PROXY_CONTEXT;
}
- case 687: break;
- case 272:
+ case 696: break;
+ case 269:
{
String tagName = yytext().substring(1);
// pushback to just after the opening bracket
@@ -2796,8 +2856,8 @@
yybegin(ST_XML_EQUALS);
return PROXY_CONTEXT;
}
- case 688: break;
- case 270:
+ case 697: break;
+ case 267:
{
yybegin(YYINITIAL);
fEmbeddedHint = UNDEFINED;
@@ -2805,8 +2865,8 @@
dump("empty tag close");//$NON-NLS-1$
return XML_EMPTY_TAG_CLOSE;
}
- case 689: break;
- case 126:
+ case 698: break;
+ case 125:
{
if (Debug.debugTokenizer) {
System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
@@ -2824,8 +2884,8 @@
yybegin(ST_XML_ATTRIBUTE_NAME);
return PROXY_CONTEXT;
}
- case 690: break;
- case 124:
+ case 699: break;
+ case 123:
{
if (Debug.debugTokenizer) {
System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
@@ -2843,16 +2903,16 @@
fEmbeddedPostState = ST_XML_EQUALS;
return PROXY_CONTEXT;
}
- case 691: break;
- case 123:
+ case 700: break;
+ case 122:
+ case 127:
case 128:
- case 129:
- case 276:
- case 280:
- case 281:
+ case 273:
+ case 277:
+ case 278:
+ case 387:
case 390:
- case 393:
- case 472:
+ case 481:
{
if(Debug.debugTokenizer)
dump("attr value");//$NON-NLS-1$
@@ -2861,8 +2921,8 @@
yybegin(ST_XML_ATTRIBUTE_NAME);
return XML_TAG_ATTRIBUTE_VALUE;
}
- case 692: break;
- case 122:
+ case 701: break;
+ case 121:
{
if(Debug.debugTokenizer)
dump("equals");//$NON-NLS-1$
@@ -2871,8 +2931,8 @@
yybegin(ST_XML_ATTRIBUTE_VALUE);
return XML_TAG_ATTRIBUTE_EQUALS;
}
- case 693: break;
- case 121:
+ case 702: break;
+ case 120:
{
if(Debug.debugTokenizer)
dump("attr name");//$NON-NLS-1$
@@ -2881,51 +2941,51 @@
yybegin(ST_XML_EQUALS);
return XML_TAG_ATTRIBUTE_NAME;
}
- case 694: break;
+ case 703: break;
+ case 116:
case 117:
case 118:
- case 119:
- case 271:
- case 389:
- case 471:
- case 511:
- case 512:
- case 531:
- case 532:
- case 550:
- case 551:
- case 564:
+ case 268:
+ case 386:
+ case 480:
+ case 520:
+ case 521:
+ case 540:
+ case 541:
+ case 559:
+ case 560:
case 573:
- case 581:
- case 583:
- case 585:
- case 587:
+ case 582:
case 590:
+ case 592:
+ case 594:
case 596:
- case 597:
- case 598:
case 599:
- case 600:
+ case 605:
case 606:
case 607:
case 608:
case 609:
- case 610:
+ case 615:
case 616:
case 617:
+ case 618:
case 619:
- case 620:
+ case 625:
case 626:
- case 627:
case 628:
case 629:
case 635:
case 636:
case 637:
case 638:
- case 641:
- case 642:
case 644:
+ case 645:
+ case 646:
+ case 647:
+ case 650:
+ case 651:
+ case 653:
{
if(Debug.debugTokenizer)
dump("tag name");//$NON-NLS-1$
@@ -2934,8 +2994,8 @@
yybegin(ST_XML_ATTRIBUTE_NAME);
return XML_TAG_NAME;
}
- case 695: break;
- case 115:
+ case 704: break;
+ case 114:
{
if(Debug.debugTokenizer)
dump("tag close");//$NON-NLS-1$
@@ -2949,56 +3009,56 @@
yybegin(YYINITIAL);
return XML_TAG_CLOSE;
}
- case 696: break;
- case 108:
- case 112:
- case 266:
+ case 705: break;
+ case 107:
+ case 111:
+ case 263:
{
if(Debug.debugTokenizer)
dump("attr value");//$NON-NLS-1$
yybegin(ST_JSP_DIRECTIVE_ATTRIBUTE_NAME);
return XML_TAG_ATTRIBUTE_VALUE;
}
- case 697: break;
- case 107:
+ case 706: break;
+ case 106:
{
if(Debug.debugTokenizer)
dump("equals");//$NON-NLS-1$
yybegin(ST_JSP_DIRECTIVE_ATTRIBUTE_VALUE);
return XML_TAG_ATTRIBUTE_EQUALS;
}
- case 698: break;
- case 106:
+ case 707: break;
+ case 105:
{
if(Debug.debugTokenizer)
dump("attr name");//$NON-NLS-1$
yybegin(ST_JSP_DIRECTIVE_EQUALS);
return XML_TAG_ATTRIBUTE_NAME;
}
- case 699: break;
- case 103:
+ case 708: break;
+ case 102:
{
if(Debug.debugTokenizer)
dump("JSP directive name");//$NON-NLS-1$
yybegin(ST_JSP_DIRECTIVE_NAME_WHITESPACE);
return JSP_DIRECTIVE_NAME;
}
- case 700: break;
+ case 709: break;
+ case 98:
case 99:
case 100:
- case 101:
{
if(Debug.debugTokenizer)
dump("JSP code content");//$NON-NLS-1$
return doScan("%>", false, false, false, JSP_CONTENT, ST_JSP_CONTENT, ST_JSP_CONTENT);
}
- case 701: break;
- case 95:
+ case 710: break;
+ case 94:
+ case 96:
case 97:
- case 98:
- case 256:
+ case 253:
+ case 254:
case 257:
- case 260:
{
if(Debug.debugTokenizer)
dump("DHTML processing instruction attribute value");//$NON-NLS-1$
@@ -3007,8 +3067,8 @@
yybegin(ST_DHTML_ATTRIBUTE_NAME);
return XML_TAG_ATTRIBUTE_VALUE;
}
- case 702: break;
- case 94:
+ case 711: break;
+ case 93:
{
if(Debug.debugTokenizer)
dump("DHTML processing instruction '='");//$NON-NLS-1$
@@ -3017,16 +3077,16 @@
yybegin(ST_DHTML_ATTRIBUTE_VALUE);
return XML_TAG_ATTRIBUTE_EQUALS;
}
- case 703: break;
- case 93:
+ case 712: break;
+ case 92:
{
if(Debug.debugTokenizer)
dump("DHTML processing instruction attribute name");//$NON-NLS-1$
yybegin(ST_DHTML_EQUALS);
return XML_TAG_ATTRIBUTE_NAME;
}
- case 704: break;
- case 91:
+ case 713: break;
+ case 90:
{
if(Debug.debugTokenizer)
dump("DHTML processing instruction end");//$NON-NLS-1$
@@ -3034,10 +3094,10 @@
yybegin(YYINITIAL);
return XML_PI_CLOSE;
}
- case 705: break;
- case 85:
- case 87:
- case 247:
+ case 714: break;
+ case 84:
+ case 86:
+ case 244:
{
if(Debug.debugTokenizer)
dump("XML processing instruction attribute value");//$NON-NLS-1$
@@ -3046,8 +3106,8 @@
yybegin(ST_XML_PI_ATTRIBUTE_NAME);
return XML_TAG_ATTRIBUTE_VALUE;
}
- case 706: break;
- case 84:
+ case 715: break;
+ case 83:
{
if(Debug.debugTokenizer)
dump("XML processing instruction '='");//$NON-NLS-1$
@@ -3056,79 +3116,79 @@
yybegin(ST_XML_PI_ATTRIBUTE_VALUE);
return XML_TAG_ATTRIBUTE_EQUALS;
}
- case 707: break;
- case 50:
- case 201:
- case 202:
- case 205:
- case 215:
- case 216:
- case 219:
- case 220:
+ case 716: break;
+ case 49:
+ case 199:
+ case 200:
+ case 203:
+ case 213:
+ case 214:
+ case 217:
+ case 218:
+ case 360:
case 363:
- case 366:
- case 442:
- case 453:
- case 458:
+ case 446:
+ case 460:
+ case 466:
{
return JSP_VBL_CONTENT;
}
- case 708: break;
- case 43:
- case 180:
- case 181:
- case 184:
- case 194:
- case 195:
- case 198:
- case 199:
- case 333:
+ case 717: break;
+ case 42:
+ case 178:
+ case 179:
+ case 182:
+ case 192:
+ case 193:
+ case 196:
+ case 197:
+ case 330:
+ case 344:
case 347:
- case 350:
+ case 418:
case 419:
- case 420:
- case 432:
- case 437:
+ case 434:
+ case 440:
{
return JSP_EL_CONTENT;
}
- case 709: break;
+ case 718: break;
case 35:
+ case 159:
case 160:
- case 161:
- case 324:
- case 414:
- case 417:
- case 486:
- case 519:
- case 539:
- case 556:
- case 566:
+ case 321:
+ case 412:
+ case 416:
+ case 495:
+ case 528:
+ case 548:
+ case 565:
+ case 575:
{
if(Debug.debugTokenizer)
dump("attlist contentspec");//$NON-NLS-1$
return XML_ATTLIST_DECL_CONTENT;
}
- case 710: break;
+ case 719: break;
case 33:
+ case 152:
case 153:
- case 154:
- case 314:
- case 407:
- case 410:
- case 483:
- case 518:
- case 538:
- case 555:
- case 565:
+ case 311:
+ case 404:
+ case 408:
+ case 492:
+ case 527:
+ case 547:
+ case 564:
+ case 574:
{
if(Debug.debugTokenizer)
dump("elementdecl contentspec");//$NON-NLS-1$
return XML_ELEMENT_DECL_CONTENT;
}
- case 711: break;
+ case 720: break;
case 22:
- case 113:
+ case 112:
{
if(Debug.debugTokenizer)
dump("inappropriate tag name");//$NON-NLS-1$
@@ -3140,16 +3200,16 @@
yybegin(YYINITIAL);
return XML_CONTENT;
}
- case 712: break;
+ case 721: break;
case 18:
- case 105:
+ case 104:
{
if(Debug.debugTokenizer)
dump("white space");//$NON-NLS-1$
yybegin(ST_JSP_DIRECTIVE_ATTRIBUTE_NAME);
return WHITE_SPACE;
}
- case 713: break;
+ case 722: break;
case 5:
case 8:
case 9:
@@ -3175,39 +3235,39 @@
case 34:
case 40:
case 41:
- case 73:
- case 171:
- case 176:
+ case 72:
+ case 169:
+ case 174:
{
if(Debug.debugTokenizer)
dump("white space");//$NON-NLS-1$
return WHITE_SPACE;
}
- case 714: break;
+ case 723: break;
case 0:
- case 57:
- case 60:
- case 62:
+ case 56:
+ case 59:
+ case 61:
+ case 225:
case 227:
- case 229:
+ case 228:
case 230:
case 232:
- case 234:
- case 373:
- case 374:
- case 375:
- case 466:
+ case 370:
+ case 371:
+ case 372:
+ case 475:
{
if(Debug.debugTokenizer)
dump("\nXML content");//$NON-NLS-1$
return XML_CONTENT;
}
- case 715: break;
- case 58:
- case 102:
- case 114:
- case 120:
- case 130:
+ case 724: break;
+ case 57:
+ case 101:
+ case 113:
+ case 119:
+ case 129:
{
if(Debug.debugTokenizer)
dump("\nstart tag open");//$NON-NLS-1$
@@ -3216,72 +3276,71 @@
yybegin(ST_XML_TAG_NAME);
return XML_TAG_OPEN;
}
- case 716: break;
- case 59:
- case 61:
+ case 725: break;
+ case 58:
+ case 60:
+ case 64:
case 65:
case 66:
- case 67:
+ case 70:
case 71:
- case 72:
- case 82:
- case 86:
+ case 81:
+ case 85:
+ case 87:
case 88:
case 89:
- case 90:
- case 92:
- case 96:
- case 104:
+ case 91:
+ case 95:
+ case 103:
+ case 108:
case 109:
case 110:
- case 111:
- case 116:
- case 125:
+ case 115:
+ case 124:
+ case 131:
case 132:
case 133:
case 134:
- case 135:
+ case 136:
case 137:
- case 138:
+ case 139:
case 140:
case 141:
- case 142:
+ case 144:
case 145:
case 146:
- case 147:
+ case 149:
case 150:
case 151:
- case 152:
+ case 156:
case 157:
case 158:
- case 159:
- case 165:
- case 168:
- case 173:
- case 174:
- case 178:
- case 179:
- case 186:
+ case 166:
+ case 171:
+ case 172:
+ case 176:
+ case 177:
+ case 184:
+ case 185:
case 187:
- case 189:
- case 190:
- case 196:
- case 200:
- case 207:
+ case 188:
+ case 194:
+ case 198:
+ case 205:
+ case 206:
case 208:
- case 210:
- case 211:
- case 217:
- case 221:
+ case 209:
+ case 215:
+ case 219:
{
if (Debug.debugTokenizer)
System.out.println("!!!unexpected!!!: \"" + yytext() + "\":" + //$NON-NLS-2$//$NON-NLS-1$
yychar + "-" + (yychar + yylength()));//$NON-NLS-1$
return UNDEFINED;
}
- case 717: break;
+ case 726: break;
+ case 62:
case 63:
- case 64:
{
if(Debug.debugTokenizer)
dump("CDATA text");//$NON-NLS-1$
@@ -3292,46 +3351,46 @@
yybegin(ST_CDATA_END);
return returnedContext;
}
- case 718: break;
- case 68:
- case 188:
- case 191:
- case 209:
- case 212:
+ case 727: break;
+ case 67:
+ case 186:
+ case 189:
+ case 207:
+ case 210:
{
if(Debug.debugTokenizer)
dump("LINE FEED");//$NON-NLS-1$
return WHITE_SPACE;
}
- case 719: break;
+ case 728: break;
+ case 68:
case 69:
- case 70:
{
if(Debug.debugTokenizer)
dump("comment content");//$NON-NLS-1$
return scanXMLCommentText();
}
- case 720: break;
+ case 729: break;
+ case 73:
case 74:
case 75:
case 76:
- case 77:
- case 240:
- case 241:
- case 242:
- case 386:
- case 469:
- case 470:
- case 509:
- case 510:
- case 529:
- case 549:
- case 562:
- case 572:
- case 580:
- case 582:
- case 584:
- case 586:
+ case 237:
+ case 238:
+ case 239:
+ case 383:
+ case 478:
+ case 479:
+ case 518:
+ case 519:
+ case 538:
+ case 558:
+ case 571:
+ case 581:
+ case 589:
+ case 591:
+ case 593:
+ case 595:
{
if(Debug.debugTokenizer)
dump("processing instruction target");//$NON-NLS-1$
@@ -3339,30 +3398,30 @@
yybegin(ST_PI_WS);
return XML_TAG_NAME;
}
- case 721: break;
- case 78:
+ case 730: break;
+ case 77:
{
yybegin(ST_PI_CONTENT);
return WHITE_SPACE;
}
- case 722: break;
+ case 731: break;
+ case 78:
case 79:
case 80:
- case 81:
{
// block scan until close is found
return doScan("?>", false, false, false, XML_PI_CONTENT, ST_XML_PI_TAG_CLOSE, ST_XML_PI_TAG_CLOSE);
}
- case 723: break;
- case 83:
+ case 732: break;
+ case 82:
{
if(Debug.debugTokenizer)
dump("XML processing instruction attribute name");//$NON-NLS-1$
yybegin(ST_XML_PI_EQUALS);
return XML_TAG_ATTRIBUTE_NAME;
}
- case 724: break;
- case 127:
+ case 733: break;
+ case 126:
{
if (Debug.debugTokenizer) {
System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
@@ -3380,8 +3439,8 @@
yybegin(ST_XML_ATTRIBUTE_NAME);
return PROXY_CONTEXT;
}
- case 725: break;
- case 131:
+ case 734: break;
+ case 130:
{
if(Debug.debugTokenizer)
dump("declaration end");//$NON-NLS-1$
@@ -3392,20 +3451,20 @@
yybegin(fStateStack.pop());
return XML_DECLARATION_CLOSE;
}
- case 726: break;
- case 136:
+ case 735: break;
+ case 135:
{
if(Debug.debugTokenizer)
dump("doctype type");//$NON-NLS-1$
yybegin(ST_XML_DOCTYPE_EXTERNAL_ID);
return XML_DOCTYPE_NAME;
}
- case 727: break;
- case 139:
- case 143:
- case 291:
- case 295:
- case 402:
+ case 736: break;
+ case 138:
+ case 142:
+ case 288:
+ case 292:
+ case 399:
{
if(Debug.debugTokenizer)
dump("doctype public reference");//$NON-NLS-1$
@@ -3414,10 +3473,10 @@
yybegin(ST_XML_DOCTYPE_ID_SYSTEM);
return XML_DOCTYPE_EXTERNAL_ID_PUBREF;
}
- case 728: break;
- case 144:
- case 148:
- case 301:
+ case 737: break;
+ case 143:
+ case 147:
+ case 298:
{
if(Debug.debugTokenizer)
dump("doctype system reference");//$NON-NLS-1$
@@ -3426,11 +3485,11 @@
yybegin(ST_XML_DECLARATION_CLOSE);
return XML_DOCTYPE_EXTERNAL_ID_SYSREF;
}
- case 729: break;
- case 149:
- case 307:
- case 311:
- case 405:
+ case 738: break;
+ case 148:
+ case 304:
+ case 308:
+ case 402:
{
if(Debug.debugTokenizer)
dump("elementdecl name");//$NON-NLS-1$
@@ -3439,8 +3498,8 @@
yybegin(ST_XML_ELEMENT_DECLARATION_CONTENT);
return XML_ELEMENT_DECL_NAME;
}
- case 730: break;
- case 155:
+ case 739: break;
+ case 154:
{
if(Debug.debugTokenizer)
dump("elementdecl close");//$NON-NLS-1$
@@ -3451,11 +3510,11 @@
yybegin(fStateStack.pop());
return XML_DECLARATION_CLOSE;
}
- case 731: break;
- case 156:
- case 317:
- case 321:
- case 412:
+ case 740: break;
+ case 155:
+ case 314:
+ case 318:
+ case 410:
{
if(Debug.debugTokenizer)
dump("attlist name");//$NON-NLS-1$
@@ -3464,8 +3523,8 @@
yybegin(ST_XML_ATTLIST_DECLARATION_CONTENT);
return XML_ATTLIST_DECL_NAME;
}
- case 732: break;
- case 162:
+ case 741: break;
+ case 161:
{
if(Debug.debugTokenizer)
dump("attlist close");//$NON-NLS-1$
@@ -3476,22 +3535,22 @@
yybegin(fStateStack.pop());
return XML_DECLARATION_CLOSE;
}
- case 733: break;
- case 166:
- case 167:
+ case 742: break;
+ case 164:
+ case 165:
{
if(Debug.debugTokenizer)
dump("\nJSP comment text");//$NON-NLS-1$
return scanJSPCommentText();
}
- case 734: break;
- case 169:
- case 175:
+ case 743: break;
+ case 167:
+ case 173:
{
return XML_TAG_ATTRIBUTE_VALUE;
}
- case 735: break;
- case 170:
+ case 744: break;
+ case 168:
{
if (Debug.debugTokenizer) {
System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
@@ -3507,30 +3566,30 @@
yybegin(incomingState);
return PROXY_CONTEXT;
}
- case 736: break;
- case 172:
+ case 745: break;
+ case 170:
{
return XML_TAG_ATTRIBUTE_VALUE_SQUOTE;
}
- case 737: break;
- case 177:
+ case 746: break;
+ case 175:
{
return XML_TAG_ATTRIBUTE_VALUE_DQUOTE;
}
- case 738: break;
- case 182:
+ case 747: break;
+ case 180:
{
yybegin(ST_JSP_EL_DQUOTES);
return JSP_EL_DQUOTE;
}
- case 739: break;
- case 183:
+ case 748: break;
+ case 181:
{
yybegin(ST_JSP_EL_SQUOTES);
return JSP_EL_SQUOTE;
}
- case 740: break;
- case 185:
+ case 749: break;
+ case 183:
{
fELlevel--;
if(fELlevel == 0) {
@@ -3539,37 +3598,37 @@
}
return JSP_EL_CONTENT;
}
- case 741: break;
- case 192:
+ case 750: break;
+ case 190:
{
yybegin(ST_JSP_EL);
return JSP_EL_SQUOTE;
}
- case 742: break;
- case 193:
+ case 751: break;
+ case 191:
{
yybegin(ST_JSP_EL);
return JSP_EL_DQUOTE;
}
- case 743: break;
- case 197:
+ case 752: break;
+ case 195:
{
return JSP_EL_CLOSE;
}
- case 744: break;
- case 203:
+ case 753: break;
+ case 201:
{
yybegin(ST_JSP_VBL_DQUOTES);
return JSP_VBL_DQUOTE;
}
- case 745: break;
- case 204:
+ case 754: break;
+ case 202:
{
yybegin(ST_JSP_VBL_SQUOTES);
return JSP_VBL_SQUOTE;
}
- case 746: break;
- case 206:
+ case 755: break;
+ case 204:
{
fELlevel--;
if(fELlevel == 0) {
@@ -3578,25 +3637,25 @@
}
return JSP_VBL_CONTENT;
}
- case 747: break;
- case 213:
+ case 756: break;
+ case 211:
{
yybegin(ST_JSP_VBL);
return JSP_VBL_SQUOTE;
}
- case 748: break;
- case 214:
+ case 757: break;
+ case 212:
{
yybegin(ST_JSP_VBL);
return JSP_VBL_DQUOTE;
}
- case 749: break;
- case 218:
+ case 758: break;
+ case 216:
{
return JSP_VBL_CLOSE;
}
- case 750: break;
- case 222:
+ case 759: break;
+ case 220:
{
if(Debug.debugTokenizer)
dump("\nend tag open");//$NON-NLS-1$
@@ -3605,29 +3664,28 @@
yybegin(ST_XML_TAG_NAME);
return XML_END_TAG_OPEN;
}
- case 751: break;
- case 223:
+ case 760: break;
+ case 221:
{
if(Debug.debugTokenizer)
dump("\nprocessing instruction start");//$NON-NLS-1$
yybegin(ST_PI);
return XML_PI_OPEN;
}
- case 752: break;
- case 224:
- case 235:
- case 313:
- case 323:
- case 334:
- case 339:
+ case 761: break;
+ case 222:
+ case 310:
+ case 320:
+ case 331:
+ case 336:
+ case 340:
case 343:
case 346:
- case 349:
- case 351:
- case 355:
+ case 348:
+ case 352:
+ case 356:
case 359:
case 362:
- case 365:
{
/* JSP scriptlet begun (anywhere)
* A consequence of the start anywhere possibility is that the
@@ -3697,8 +3755,8 @@
return PROXY_CONTEXT;
}
}
- case 753: break;
- case 225:
+ case 762: break;
+ case 223:
{
fStateStack.push(yystate());
if(Debug.debugTokenizer)
@@ -3706,8 +3764,8 @@
yybegin(ST_XML_DECLARATION);
return XML_DECLARATION_OPEN;
}
- case 754: break;
- case 239:
+ case 763: break;
+ case 236:
{
if(Debug.debugTokenizer)
dump("processing instruction end");//$NON-NLS-1$
@@ -3715,16 +3773,16 @@
yybegin(YYINITIAL);
return XML_PI_CLOSE;
}
- case 755: break;
- case 243:
+ case 764: break;
+ case 240:
{
// ended with nothing inside
fEmbeddedHint = UNDEFINED;
yybegin(YYINITIAL);
return XML_PI_CLOSE;
}
- case 756: break;
- case 244:
+ case 765: break;
+ case 241:
{
if(Debug.debugTokenizer)
dump("XML processing instruction end");//$NON-NLS-1$
@@ -3732,8 +3790,8 @@
yybegin(YYINITIAL);
return XML_PI_CLOSE;
}
- case 757: break;
- case 261:
+ case 766: break;
+ case 258:
{
if(Debug.debugTokenizer)
dump("JSP end");//$NON-NLS-1$
@@ -3744,8 +3802,8 @@
yybegin(fStateStack.pop());
return JSP_CLOSE;
}
- case 758: break;
- case 263:
+ case 767: break;
+ case 260:
{
if(Debug.debugTokenizer)
dump("JSP end");//$NON-NLS-1$
@@ -3756,13 +3814,13 @@
yybegin(fStateStack.pop());
return JSP_DIRECTIVE_CLOSE;
}
- case 759: break;
+ case 768: break;
+ case 162:
case 163:
- case 164:
{
return doBlockTagScan();
}
- case 760: break;
+ case 769: break;
default:
if (yy_input == YYEOF && yy_startRead == yy_currentPos) {
yy_atEOF = true;
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/taglib/TaglibHelper.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/taglib/TaglibHelper.java
index 8755bdc..1bc3308 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/taglib/TaglibHelper.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/taglib/TaglibHelper.java
@@ -51,8 +51,8 @@
import org.eclipse.wst.sse.core.StructuredModelManager;
import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
+import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionCollection;
import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
import org.eclipse.wst.sse.core.utils.StringUtils;
import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
@@ -100,7 +100,7 @@
* is the IStructuredDocumentRegion opening tag for the custom
* tag
*/
- public TaglibVariable[] getTaglibVariables(String tagToAdd, IStructuredDocument structuredDoc, IStructuredDocumentRegion customTag) {
+ public TaglibVariable[] getTaglibVariables(String tagToAdd, IStructuredDocument structuredDoc, ITextRegionCollection customTag) {
List results = new ArrayList();
fValidationMessages.clear();
@@ -158,7 +158,7 @@
* list where the <code>TaglibVariable</code> s are added
* @param node
*/
- private void addVariables(List results, CMNode node, IStructuredDocumentRegion customTag) {
+ private void addVariables(List results, CMNode node, ITextRegionCollection customTag) {
List list = ((TLDElementDeclaration) node).getVariables();
Iterator it = list.iterator();
@@ -214,7 +214,7 @@
* @param uri
* URI where the tld can be found
*/
- private void addTEIVariables(IStructuredDocumentRegion customTag, List results, TLDElementDeclaration decl, String prefix, String uri) {
+ private void addTEIVariables(ITextRegionCollection customTag, List results, TLDElementDeclaration decl, String prefix, String uri) {
String teiClassname = decl.getTeiclass();
if (teiClassname == null || teiClassname.length() == 0)
return;
@@ -344,7 +344,7 @@
* @param customTag
* @return
*/
- private Hashtable extractTagData(IStructuredDocumentRegion customTag) {
+ private Hashtable extractTagData(ITextRegionCollection customTag) {
Hashtable tagDataTable = new Hashtable();
ITextRegionList regions = customTag.getRegions();
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/text/StructuredTextPartitionerForJSP.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/text/StructuredTextPartitionerForJSP.java
index 03ea74d..5974322 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/text/StructuredTextPartitionerForJSP.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/text/StructuredTextPartitionerForJSP.java
@@ -318,7 +318,7 @@
List fCustomActionPrefixes = ((JSPSourceParser) parser).getNestablePrefixes();
for (int i = 0; i < fCustomActionPrefixes.size(); i++)
if (tagName.startsWith(((TagMarker) fCustomActionPrefixes.get(i)).getTagName())) {
- fLastCheckedPrefix = tagName;
+ fLastCheckedPrefix = ((TagMarker) fCustomActionPrefixes.get(i)).getTagName();
return true;
}
}
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.java b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.java
index 7dd5132..b424476 100644
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.java
+++ b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.java
@@ -1,4 +1,4 @@
-/* The following code was generated by JFlex 1.2.2 on 10/17/07 4:12 AM */
+/* The following code was generated by JFlex 1.2.2 on 10/24/07 5:16 AM */
/*******************************************************************************
* Copyright (c) 2004, 2007 IBM Corporation and others.
@@ -35,7 +35,7 @@
/**
* This class is a scanner generated by
* <a href="http://www.informatik.tu-muenchen.de/~kleing/jflex/">JFlex</a> 1.2.2
- * on 10/17/07 4:12 AM from the specification file
+ * on 10/24/07 5:16 AM from the specification file
* <tt>file:/D:/eclipse.wtp/workspace/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.jflex</tt>
*/
public class JSPTokenizer implements BlockTokenizer, DOMJSPRegionContexts {
@@ -44,16 +44,16 @@
final public static int YYEOF = -1;
/** lexical states */
- final public static int ST_JSP_VBL_DQUOTES = 52;
- final public static int ST_JSP_VBL_SQUOTES = 51;
- final public static int ST_JSP_VBL_SQUOTES_END = 53;
+ final public static int ST_JSP_VBL_DQUOTES = 51;
+ final public static int ST_JSP_VBL_SQUOTES = 50;
+ final public static int ST_JSP_VBL_SQUOTES_END = 52;
final public static int ST_XML_COMMENT_END = 4;
final public static int ST_JSP_DIRECTIVE_ATTRIBUTE_VALUE = 21;
- final public static int ST_JSP_EL_SQUOTES_END = 46;
- final public static int ST_JSP_EL_DQUOTES = 45;
- final public static int ST_JSP_EL = 43;
+ final public static int ST_JSP_EL_SQUOTES_END = 45;
+ final public static int ST_JSP_EL_DQUOTES = 44;
+ final public static int ST_JSP_EL = 42;
final public static int ST_BLOCK_TAG_SCAN = 36;
- final public static int ST_JSP_EL_SQUOTES = 44;
+ final public static int ST_JSP_EL_SQUOTES = 43;
final public static int ST_DHTML_ATTRIBUTE_VALUE = 14;
final public static int ST_XML_PI_ATTRIBUTE_NAME = 8;
final public static int ST_DHTML_TAG_CLOSE = 15;
@@ -61,8 +61,8 @@
final public static int ST_DHTML_EQUALS = 13;
final public static int ST_XML_PI_ATTRIBUTE_VALUE = 10;
final public static int ST_XML_ATTRIBUTE_VALUE = 25;
- final public static int ST_JSP_VBL = 50;
- final public static int ST_JSP_SQUOTED_VBL = 56;
+ final public static int ST_JSP_VBL = 49;
+ final public static int ST_JSP_SQUOTED_VBL = 55;
final public static int ST_XML_ATTRIBUTE_VALUE_SQUOTED = 40;
final public static int ST_XML_ATTRIBUTE_NAME = 23;
final public static int ST_XML_EQUALS = 24;
@@ -73,8 +73,8 @@
final public static int ST_XML_ELEMENT_DECLARATION = 32;
final public static int ST_XML_DECLARATION_CLOSE = 27;
final public static int ST_JSP_DIRECTIVE_EQUALS = 20;
- final public static int ST_JSP_VBL_DQUOTES_END = 54;
- final public static int ST_JSP_DQUOTED_EL = 48;
+ final public static int ST_JSP_VBL_DQUOTES_END = 53;
+ final public static int ST_JSP_DQUOTED_EL = 47;
final public static int ST_XML_DOCTYPE_DECLARATION = 28;
final public static int ST_CDATA_END = 2;
final public static int ST_PI_WS = 6;
@@ -82,15 +82,15 @@
final public static int ST_JSP_DIRECTIVE_NAME_WHITESPACE = 18;
final public static int ST_XML_ELEMENT_DECLARATION_CONTENT = 33;
final public static int ST_XML_ATTLIST_DECLARATION = 34;
- final public static int ST_JSP_EL_DQUOTES_END = 47;
- final public static int ST_JSP_SQUOTED_EL = 49;
+ final public static int ST_JSP_EL_DQUOTES_END = 46;
+ final public static int ST_JSP_SQUOTED_EL = 48;
final public static int ST_JSP_COMMENT_END = 39;
final public static int ST_XML_PI_EQUALS = 9;
final public static int ST_XML_ATTLIST_DECLARATION_CONTENT = 35;
final public static int ST_XML_DOCTYPE_ID_PUBLIC = 30;
- final public static int ST_JSP_DQUOTED_VBL = 55;
+ final public static int ST_JSP_DQUOTED_VBL = 54;
final public static int ST_DHTML_ATTRIBUTE_NAME = 12;
- final public static int ST_ABORT_EMBEDDED = 42;
+ final public static int ST_ABORT_EMBEDDED = 37;
final public static int ST_XML_DOCTYPE_EXTERNAL_ID = 29;
final public static int ST_JSP_COMMENT = 38;
final public static int ST_PI_CONTENT = 7;
@@ -191,583 +191,585 @@
2130, 2201, 2272, 2343, 2414, 2485, 2556, 2627, 2698, 2769,
2840, 2911, 2982, 3053, 3124, 3195, 3266, 3337, 3408, 3479,
3550, 3621, 3692, 3763, 3834, 3905, 3976, 4047, 4118, 4189,
- 4260, 4331, 4402, 4473, 4544, 4473, 4544, 4615, 4473, 4473,
- 4544, 4686, 4757, 4828, 4899, 4970, 5041, 5112, 5183, 4473,
- 4544, 5254, 5325, 5396, 4473, 5467, 5467, 5538, 5609, 5680,
- 5254, 4473, 5751, 5822, 4473, 5893, 5964, 6035, 6106, 4473,
- 4544, 6177, 6248, 6319, 6390, 6461, 6532, 4473, 6603, 6603,
- 6674, 6745, 6816, 6887, 6958, 4473, 7029, 7100, 7171, 7242,
- 7313, 7384, 4473, 7455, 7526, 7597, 7668, 7739, 7810, 7881,
- 7952, 4473, 8023, 8094, 8165, 8236, 8307, 8378, 8449, 8520,
- 8520, 8591, 8662, 8733, 8804, 8804, 8875, 8946, 9017, 9088,
- 9088, 9159, 9230, 9301, 9372, 4473, 9443, 9443, 9514, 9585,
- 9656, 9727, 4473, 4473, 4544, 9798, 4473, 4544, 9869, 9940,
- 10011, 10082, 4473, 10153, 10224, 10295, 10366, 4473, 10437, 10508,
- 10579, 10650, 4473, 4473, 10721, 4473, 10792, 10863, 10792, 10934,
- 11005, 10934, 4473, 4473, 11076, 11147, 11218, 4473, 11289, 11360,
- 11431, 11502, 11573, 4473, 4473, 11644, 4473, 11715, 11786, 11715,
- 11857, 11928, 11857, 4473, 4473, 11999, 12070, 12141, 4473, 12212,
- 12283, 12354, 4473, 4473, 12425, 12496, 12567, 12638, 12709, 4473,
- 12780, 12851, 12922, 12993, 13064, 13135, 13206, 13277, 13348, 4473,
- 13419, 13490, 13561, 4473, 4473, 5467, 5609, 4473, 13632, 5680,
- 13703, 5751, 5893, 5964, 13774, 6035, 4473, 13845, 13916, 6106,
- 13987, 4473, 12496, 4473, 6603, 6674, 4473, 14058, 6745, 14129,
- 4473, 14200, 14271, 7455, 14342, 7668, 4473, 14413, 7739, 14484,
- 14555, 14626, 14697, 14768, 14839, 8236, 4473, 14910, 14981, 8520,
- 8591, 4473, 15052, 15123, 15194, 15265, 15336, 8733, 8520, 8804,
- 8875, 4473, 8946, 9017, 8804, 9088, 9159, 4473, 15407, 15478,
- 15549, 15620, 15691, 15762, 15833, 9443, 9514, 4473, 15904, 15975,
- 16046, 16117, 16188, 16259, 16330, 16401, 16472, 4473, 4473, 4473,
- 16543, 4473, 4473, 16614, 16685, 16756, 16827, 10792, 4473, 16898,
- 16969, 10934, 4473, 17040, 17111, 17182, 17253, 17324, 17395, 17466,
- 17537, 17608, 11502, 11715, 4473, 17679, 17750, 11857, 4473, 17821,
- 17892, 17963, 18034, 18105, 18176, 18247, 18318, 18389, 4473, 4473,
- 4473, 18460, 18531, 18602, 18673, 18744, 4473, 18815, 18886, 4473,
- 4473, 4473, 4473, 4473, 4899, 18957, 19028, 19099, 19170, 19241,
- 19312, 19383, 19312, 19454, 19525, 19454, 19596, 19667, 19738, 19809,
- 19880, 19951, 20022, 20022, 20093, 20164, 20164, 20235, 9301, 9301,
- 20306, 20377, 20448, 20448, 20519, 9656, 9656, 20590, 20661, 16756,
- 20732, 10579, 10579, 20803, 20874, 10792, 10792, 20945, 21016, 10934,
- 10934, 21087, 21158, 11076, 11076, 17324, 21229, 21300, 11289, 11289,
- 17537, 21371, 21442, 11502, 11502, 21513, 11715, 11715, 21584, 21655,
- 11857, 11857, 21726, 21797, 11999, 11999, 18105, 21868, 21939, 12212,
- 12212, 18318, 22010, 4473, 4473, 22081, 22152, 4473, 22223, 22294,
- 22365, 22436, 7455, 4473, 4473, 22507, 22578, 22649, 22720, 22791,
- 15265, 15620, 9301, 22862, 16117, 9656, 22933, 4473, 10579, 10792,
- 23004, 10934, 23075, 11076, 23146, 4473, 11289, 23217, 11502, 11715,
- 23288, 11857, 23359, 11999, 23430, 4473, 12212, 23501, 23572, 23643,
- 23714, 23785, 23856, 23927, 23998, 24069, 24140, 24211, 24282, 24353,
- 24424, 24495, 24566, 24637, 24708, 24779, 24850, 24921, 24992, 25063,
- 4899, 25134, 25205, 25276, 25347, 25418, 4473, 4473, 25489, 25560,
- 25631, 25702, 17324, 17537, 25773, 25844, 18105, 18318, 25915, 25986,
- 26057, 26128, 4473, 4473, 4473, 26199, 26270, 26341, 26412, 26483,
- 26554, 26625, 26696, 7171, 26767, 26838, 26909, 26980, 27051, 27122,
- 27193, 4473, 27264, 27335, 9301, 9656, 10792, 10934, 11715, 11857,
- 27406, 27477, 27548, 27619, 27690, 27761, 27832, 27903, 4899, 27974,
- 28045, 28116, 28187, 28258, 28329, 28400, 28471, 28542, 28613, 28684,
- 28755, 28826, 28897, 28968, 29039, 29110, 29181, 29252, 29323, 29394,
- 29465, 29536, 29607, 29678, 29749, 29820, 29891, 29962, 30033, 30104,
- 30175, 30246, 30317, 30388, 30459, 4473, 30530, 30601, 30672, 30743,
- 7171, 30814, 30885, 30956, 31027, 31098, 31169, 31240, 31311, 31382,
- 31453, 31524, 31595, 31666, 31737
+ 4260, 4331, 4402, 4473, 4402, 4473, 4544, 4402, 4402, 4473,
+ 4615, 4686, 4757, 4828, 4899, 4970, 5041, 5112, 4402, 4473,
+ 5183, 5254, 5325, 4402, 5396, 5396, 5467, 5538, 5609, 5183,
+ 4402, 5680, 5751, 4402, 5822, 5893, 5964, 6035, 4402, 4473,
+ 6106, 6177, 6248, 6319, 6390, 6461, 4402, 6532, 6532, 6603,
+ 6674, 6745, 6816, 6887, 4402, 6958, 7029, 7100, 7171, 7242,
+ 7313, 4402, 7384, 7455, 7526, 7597, 7668, 7739, 7810, 7881,
+ 4402, 7952, 8023, 8094, 8165, 8236, 8307, 8378, 8449, 8449,
+ 8520, 8591, 8662, 8733, 8733, 8804, 8875, 8946, 9017, 9017,
+ 9088, 9159, 9230, 9301, 4402, 9372, 9372, 9443, 9514, 9585,
+ 9656, 4402, 4402, 4473, 4402, 4473, 9727, 9798, 9869, 9940,
+ 4402, 10011, 10082, 10153, 10224, 4402, 10295, 10366, 10437, 10508,
+ 4402, 4402, 10579, 4402, 10650, 10721, 10650, 10792, 10863, 10792,
+ 4402, 4402, 10934, 11005, 11076, 4402, 11147, 11218, 11289, 11360,
+ 11431, 4402, 4402, 11502, 4402, 11573, 11644, 11573, 11715, 11786,
+ 11715, 4402, 4402, 11857, 11928, 11999, 4402, 12070, 12141, 12212,
+ 4402, 4402, 12283, 12354, 12425, 12496, 12567, 4402, 12638, 12709,
+ 12780, 12851, 12922, 12993, 13064, 13135, 4402, 13206, 13277, 13348,
+ 4402, 4402, 5396, 5538, 4402, 13419, 5609, 13490, 5680, 5822,
+ 5893, 13561, 5964, 4402, 13632, 13703, 6035, 13774, 4402, 12354,
+ 4402, 6532, 6603, 4402, 13845, 6674, 13916, 4402, 13987, 14058,
+ 7384, 14129, 7597, 4402, 14200, 7668, 14271, 14342, 14413, 14484,
+ 14555, 14626, 8165, 4402, 14697, 14768, 8449, 8520, 4402, 14839,
+ 14910, 14981, 15052, 15123, 8662, 8449, 8733, 8804, 4402, 8875,
+ 8946, 8733, 9017, 9088, 4402, 15194, 15265, 15336, 15407, 15478,
+ 15549, 15620, 9372, 9443, 4402, 15691, 15762, 15833, 15904, 15975,
+ 16046, 16117, 16188, 16259, 4402, 4402, 4402, 16330, 4402, 4402,
+ 16401, 16472, 16543, 16614, 10650, 4402, 16685, 16756, 10792, 4402,
+ 16827, 16898, 16969, 17040, 17111, 17182, 17253, 17324, 17395, 11360,
+ 11573, 4402, 17466, 17537, 11715, 4402, 17608, 17679, 17750, 17821,
+ 17892, 17963, 18034, 18105, 18176, 4402, 4402, 4402, 18247, 18318,
+ 18389, 18460, 18531, 4402, 18602, 18673, 4402, 4402, 4402, 4402,
+ 4402, 4828, 18744, 18815, 18886, 18957, 19028, 19099, 19170, 19099,
+ 19241, 19312, 19241, 19383, 19454, 19525, 19596, 19667, 19738, 19809,
+ 19809, 19880, 19951, 19951, 20022, 9230, 9230, 9230, 20093, 20164,
+ 20235, 20235, 20306, 9585, 9585, 9585, 20377, 20448, 16543, 20519,
+ 10437, 10437, 10437, 20590, 20661, 10650, 10650, 10650, 20732, 20803,
+ 10792, 10792, 10792, 20874, 20945, 10934, 10934, 10934, 17111, 21016,
+ 21087, 11147, 11147, 11147, 17324, 21158, 21229, 11360, 11360, 11360,
+ 21300, 11573, 11573, 11573, 21371, 21442, 11715, 11715, 11715, 21513,
+ 21584, 11857, 11857, 11857, 17892, 21655, 21726, 12070, 12070, 12070,
+ 18105, 21797, 4402, 4402, 21868, 21939, 4402, 22010, 22081, 22152,
+ 22223, 7384, 4402, 4402, 22294, 22365, 22436, 22507, 22578, 15052,
+ 15407, 9230, 22649, 15904, 9585, 22720, 4402, 10437, 10650, 22791,
+ 10792, 22862, 10934, 22933, 4402, 11147, 23004, 11360, 11573, 23075,
+ 11715, 23146, 11857, 23217, 4402, 12070, 23288, 23359, 23430, 23501,
+ 23572, 23643, 23714, 23785, 23856, 23927, 23998, 24069, 24140, 24211,
+ 24282, 24353, 24424, 24495, 24566, 24637, 24708, 24779, 24850, 4828,
+ 24921, 24992, 25063, 25134, 25205, 4402, 4402, 25276, 25347, 25418,
+ 25489, 17111, 17324, 25560, 25631, 17892, 18105, 25702, 25773, 25844,
+ 25915, 4402, 4402, 4402, 25986, 26057, 26128, 26199, 26270, 26341,
+ 26412, 26483, 7100, 26554, 26625, 26696, 26767, 26838, 26909, 26980,
+ 4402, 27051, 27122, 9230, 9585, 10650, 10792, 11573, 11715, 27193,
+ 27264, 27335, 27406, 27477, 27548, 27619, 27690, 4828, 27761, 27832,
+ 27903, 27974, 28045, 28116, 28187, 28258, 28329, 28400, 28471, 28542,
+ 28613, 28684, 28755, 28826, 28897, 28968, 29039, 29110, 29181, 29252,
+ 29323, 29394, 29465, 29536, 29607, 29678, 29749, 29820, 29891, 29962,
+ 30033, 30104, 30175, 30246, 4402, 30317, 30388, 30459, 30530, 7100,
+ 30601, 30672, 30743, 30814, 30885, 30956, 31027, 31098, 31169, 31240,
+ 31311, 31382, 31453, 31524
};
/**
* The packed transition table of the DFA
*/
final private static String yy_packed =
- "\1\72\1\73\11\72\1\74\1\72\1\75\4\72\1\76"+
- "\42\72\1\77\21\72\1\100\1\101\105\100\1\102\1\103"+
- "\21\102\1\104\2\102\1\105\60\102\1\106\1\107\105\106"+
- "\1\102\1\103\5\102\1\110\16\102\1\105\61\102\1\103"+
- "\2\102\1\111\1\112\2\102\2\113\5\102\1\112\6\102"+
- "\1\112\1\114\1\115\4\113\1\102\10\113\1\116\2\113"+
- "\1\102\11\113\1\116\1\113\1\102\4\113\1\102\4\113"+
- "\1\102\4\113\2\102\1\113\1\102\1\103\2\102\1\111"+
- "\1\117\11\102\1\117\6\102\1\117\60\102\1\120\1\121"+
- "\2\120\1\122\21\120\1\105\60\120\1\102\1\103\2\102"+
- "\1\123\1\112\2\102\2\124\5\102\1\112\6\102\1\112"+
- "\6\124\1\102\13\124\1\102\13\124\1\102\4\124\1\102"+
- "\4\124\1\102\4\124\2\102\1\124\1\102\1\103\2\102"+
- "\1\123\1\112\2\102\2\124\5\102\1\112\6\102\1\112"+
- "\6\124\1\102\13\124\1\125\13\124\1\102\4\124\1\102"+
- "\4\124\1\102\4\124\2\102\1\124\1\126\1\103\1\102"+
- "\1\127\1\130\1\112\4\126\1\131\1\126\1\132\2\126"+
- "\1\112\6\126\1\112\60\126\1\102\1\103\2\102\1\133"+
- "\21\102\1\105\61\102\1\103\1\134\1\135\1\102\1\112"+
- "\2\102\2\136\5\102\1\112\6\102\1\112\6\136\1\102"+
- "\13\136\1\102\13\136\1\102\4\136\1\102\4\136\1\102"+
- "\4\136\2\102\1\136\1\102\1\103\1\134\1\135\1\102"+
- "\1\112\2\102\2\136\5\102\1\112\6\102\1\112\6\136"+
- "\1\102\13\136\1\137\13\136\1\102\4\136\1\102\4\136"+
- "\1\102\4\136\2\102\1\136\1\140\1\103\1\134\1\141"+
- "\1\140\1\112\4\140\1\142\1\140\1\143\2\140\1\112"+
- "\6\140\1\112\60\140\1\102\1\103\3\102\1\112\11\102"+
- "\1\112\6\102\1\112\60\102\1\144\1\145\20\144\1\146"+
- "\64\144\1\102\1\147\3\102\1\112\2\102\2\150\5\102"+
- "\1\112\2\102\1\151\3\102\1\112\6\150\1\102\13\150"+
- "\1\102\13\150\1\102\4\150\1\102\4\150\1\102\4\150"+
- "\2\102\1\150\1\102\1\147\3\102\1\152\11\102\1\152"+
- "\2\102\1\151\3\102\1\152\61\102\1\147\3\102\1\112"+
- "\2\102\2\153\5\102\1\112\2\102\1\151\3\102\1\112"+
- "\6\153\1\102\13\153\1\102\13\153\1\102\4\153\1\102"+
- "\4\153\1\102\4\153\2\102\1\153\1\102\1\147\3\102"+
- "\1\112\2\102\2\153\5\102\1\112\2\102\1\151\3\102"+
- "\1\112\6\153\1\102\13\153\1\154\13\153\1\102\4\153"+
- "\1\102\4\153\1\102\4\153\2\102\1\153\1\155\1\147"+
- "\1\102\1\156\1\155\1\112\4\155\1\157\1\155\1\160"+
- "\2\155\1\112\2\155\1\161\3\155\1\112\60\155\1\162"+
- "\1\163\1\164\1\165\4\162\2\166\15\162\6\167\1\162"+
- "\13\167\1\162\13\167\1\162\4\167\1\162\4\167\1\162"+
- "\1\170\3\167\2\162\1\167\1\102\1\171\1\164\1\165"+
- "\1\102\1\112\2\102\2\172\5\102\1\112\6\102\1\112"+
- "\6\172\1\102\13\172\1\102\13\172\1\102\4\172\1\102"+
- "\4\172\1\102\4\172\2\102\1\172\1\102\1\171\1\164"+
- "\1\165\1\102\1\112\2\102\2\172\5\102\1\112\6\102"+
- "\1\112\6\172\1\102\13\172\1\173\13\172\1\102\4\172"+
- "\1\102\4\172\1\102\4\172\2\102\1\172\1\174\1\175"+
- "\1\164\1\176\1\174\1\112\4\174\1\177\1\174\1\200"+
- "\1\201\1\174\1\112\6\174\1\112\36\174\1\202\21\174"+
- "\1\102\1\203\1\204\2\102\1\112\11\102\1\112\6\102"+
- "\1\112\10\102\1\205\1\206\2\102\1\207\11\102\1\207"+
- "\1\102\1\206\1\205\27\102\1\103\1\204\2\102\1\112"+
- "\11\102\1\112\6\102\1\112\6\102\1\210\52\102\1\103"+
- "\1\204\2\102\1\112\2\102\2\211\5\102\1\112\6\102"+
- "\1\112\6\211\1\210\13\211\1\102\13\211\1\102\4\211"+
- "\1\102\4\211\1\102\4\211\2\102\1\211\1\102\1\103"+
- "\1\204\2\102\1\112\11\102\1\112\6\102\1\112\6\102"+
- "\1\210\7\102\1\212\6\102\1\213\11\102\1\212\12\102"+
- "\1\213\5\102\1\214\1\103\1\204\1\215\1\214\1\112"+
- "\4\214\1\216\1\214\1\217\2\214\1\112\6\214\1\112"+
- "\6\214\1\220\51\214\1\221\1\103\1\204\1\222\1\221"+
- "\1\112\4\221\1\223\1\221\1\224\2\221\1\112\6\221"+
- "\1\112\6\221\1\225\51\221\1\226\1\103\1\204\1\227"+
- "\1\226\1\112\4\226\1\230\1\226\1\231\2\226\1\112"+
- "\6\226\1\112\60\226\1\232\1\233\1\234\104\232\1\235"+
- "\1\103\1\204\1\236\1\235\1\112\4\235\1\237\1\235"+
- "\1\240\2\235\1\112\6\235\1\112\60\235\1\241\1\242"+
- "\1\243\104\241\1\244\1\245\105\244\1\102\1\246\24\102"+
- "\1\105\60\102\1\247\1\250\105\247\1\102\1\103\5\102"+
- "\1\251\16\102\1\105\60\102\1\252\1\253\3\252\1\254"+
- "\6\252\1\255\1\256\1\252\1\254\6\252\1\254\36\252"+
- "\1\257\21\252\1\260\1\253\3\260\1\261\4\260\1\262"+
- "\2\260\1\263\1\260\1\261\6\260\1\261\36\260\1\264"+
- "\21\260\1\102\1\103\24\102\1\105\60\102\1\265\1\266"+
- "\10\265\1\267\1\265\1\270\1\271\67\265\1\272\1\265"+
- "\1\273\1\274\12\273\1\102\11\273\1\275\60\273\1\276"+
- "\1\277\10\276\1\102\13\276\1\300\60\276\1\102\1\103"+
- "\12\102\1\301\11\102\1\105\61\102\1\103\10\102\1\302"+
- "\13\102\1\105\60\102\1\303\1\304\10\303\1\262\71\303"+
- "\1\305\1\306\1\303\1\307\1\310\12\307\1\255\67\307"+
- "\1\311\1\306\1\307\1\312\1\313\10\312\1\314\1\312"+
- "\1\315\50\312\1\316\17\312\1\317\1\312\1\320\1\321"+
- "\12\320\1\102\11\320\1\322\60\320\1\323\1\324\10\323"+
- "\1\102\13\323\1\325\60\323\1\102\1\103\12\102\1\326"+
- "\11\102\1\105\61\102\1\103\10\102\1\327\13\102\1\105"+
- "\60\102\1\330\1\331\10\330\1\262\71\330\1\332\1\333"+
- "\1\330\1\334\1\335\12\334\1\255\67\334\1\336\1\333"+
- "\1\334\1\72\1\0\11\72\1\0\1\72\1\0\4\72"+
- "\1\0\42\72\1\0\21\72\3\0\1\337\1\340\15\0"+
- "\1\341\2\0\1\342\66\0\1\343\2\0\2\344\5\0"+
- "\1\343\6\0\1\343\6\344\1\0\13\344\1\0\13\344"+
- "\1\345\4\344\1\0\4\344\1\0\4\344\2\0\1\344"+
- "\1\346\1\0\11\346\1\0\1\346\1\347\1\350\3\346"+
- "\1\0\64\346\5\0\1\343\2\0\2\351\5\0\1\343"+
- "\6\0\1\343\6\351\1\0\13\351\1\0\13\351\1\0"+
- "\4\351\1\0\4\351\1\0\4\351\2\0\1\351\1\346"+
- "\1\0\11\346\1\0\2\346\1\352\3\346\1\0\42\346"+
- "\1\353\21\346\131\0\1\354\2\0\1\355\104\0\1\356"+
- "\72\0\1\357\101\0\1\360\111\0\1\112\11\0\1\112"+
- "\6\0\1\112\66\0\4\113\6\0\1\113\6\0\6\113"+
- "\1\0\13\113\1\0\13\113\1\0\4\113\1\0\11\113"+
- "\2\0\1\113\6\0\4\113\6\0\1\113\6\0\2\113"+
- "\2\361\2\113\1\0\13\113\1\0\13\113\1\0\4\113"+
- "\1\0\11\113\2\0\1\113\6\0\4\113\6\0\1\113"+
- "\6\0\2\113\1\361\1\362\2\113\1\0\13\113\1\0"+
- "\13\113\1\0\4\113\1\0\11\113\2\0\1\113\6\0"+
- "\4\113\6\0\1\113\6\0\2\113\2\363\2\113\1\0"+
- "\13\113\1\0\13\113\1\0\4\113\1\0\11\113\2\0"+
- "\1\113\5\0\1\117\11\0\1\117\6\0\1\117\62\0"+
- "\1\364\106\0\1\365\112\0\4\124\6\0\1\124\6\0"+
- "\6\124\1\0\13\124\1\0\13\124\1\0\4\124\1\0"+
- "\11\124\2\0\1\124\1\126\2\0\1\366\1\126\1\0"+
- "\4\126\1\0\1\126\1\0\2\126\1\0\6\126\1\0"+
- "\61\126\1\0\1\365\1\366\1\126\1\0\4\126\1\0"+
- "\1\126\1\0\2\126\1\0\6\126\1\0\60\126\1\367"+
- "\1\0\10\367\1\370\2\367\1\371\47\367\1\371\21\367"+
- "\1\372\1\0\12\372\1\370\1\373\47\372\1\373\21\372"+
- "\2\0\1\134\1\374\111\0\4\136\6\0\1\136\6\0"+
- "\6\136\1\0\13\136\1\0\13\136\1\0\4\136\1\0"+
- "\11\136\2\0\1\136\1\140\2\0\1\375\1\140\1\0"+
- "\4\140\1\0\1\140\1\0\2\140\1\0\6\140\1\0"+
- "\61\140\1\0\1\134\1\376\1\140\1\0\4\140\1\0"+
- "\1\140\1\0\2\140\1\0\6\140\1\0\60\140\1\142"+
- "\1\0\1\377\1\u0100\1\142\1\377\4\142\1\u0101\1\142"+
- "\1\377\1\u0102\1\142\1\377\6\142\1\377\36\142\1\u0102"+
- "\21\142\1\143\1\0\1\u0103\1\u0104\1\143\1\u0103\4\143"+
- "\1\u0103\1\143\1\u0101\1\u0105\1\143\1\u0103\6\143\1\u0103"+
- "\36\143\1\u0105\21\143\2\0\1\u0106\126\0\1\354\2\0"+
- "\1\u0107\67\0\4\150\6\0\1\150\6\0\6\150\1\0"+
- "\13\150\1\0\13\150\1\0\4\150\1\0\11\150\2\0"+
- "\1\150\2\0\1\u0108\111\0\1\152\11\0\1\152\6\0"+
- "\1\152\66\0\4\153\6\0\1\153\6\0\6\153\1\0"+
- "\13\153\1\0\13\153\1\0\4\153\1\0\11\153\2\0"+
- "\1\153\1\155\2\0\1\u0109\1\155\1\0\4\155\1\0"+
- "\1\155\1\0\2\155\1\0\6\155\1\0\60\155\1\u010a"+
- "\1\0\10\u010a\1\u010b\2\u010a\1\u010c\47\u010a\1\u010c\21\u010a"+
- "\1\u010d\1\0\12\u010d\1\u010b\1\u010e\47\u010d\1\u010e\21\u010d"+
- "\1\155\1\0\1\u0108\1\u0109\1\155\1\0\4\155\1\0"+
- "\1\155\1\0\2\155\1\0\6\155\1\0\60\155\1\162"+
- "\3\0\23\162\6\0\1\162\13\0\1\162\13\0\1\162"+
- "\4\0\1\162\4\0\1\162\4\0\2\162\4\0\1\337"+
- "\16\0\1\354\2\0\1\342\63\0\1\u010f\104\0\1\162"+
- "\3\0\2\162\4\166\6\162\1\166\6\162\6\167\1\162"+
- "\13\167\1\162\13\167\1\162\4\167\1\162\4\167\1\166"+
- "\4\167\2\162\1\167\6\0\4\167\6\0\1\167\6\0"+
- "\6\167\1\0\13\167\1\0\13\167\1\0\4\167\1\0"+
- "\11\167\2\0\1\167\6\0\4\167\6\0\1\167\6\0"+
- "\6\167\1\0\7\167\1\u0110\3\167\1\0\13\167\1\0"+
- "\4\167\1\0\11\167\2\0\1\167\3\0\1\337\4\0"+
- "\2\u0111\10\0\1\354\2\0\1\342\1\0\6\u0111\1\0"+
- "\13\u0111\1\0\13\u0111\1\0\4\u0111\1\0\4\u0111\1\0"+
- "\4\u0111\2\0\1\u0111\6\0\4\172\6\0\1\172\6\0"+
- "\6\172\1\0\13\172\1\0\13\172\1\0\4\172\1\0"+
- "\11\172\2\0\1\172\1\174\2\0\1\u0112\1\174\1\0"+
- "\4\174\1\0\1\174\1\0\2\174\1\0\6\174\1\0"+
- "\60\174\3\0\1\337\4\0\2\u0113\10\0\1\354\2\0"+
- "\1\342\1\0\6\u0113\1\0\13\u0113\1\0\13\u0113\1\0"+
- "\4\u0113\1\0\4\u0113\1\0\4\u0113\2\0\1\u0113\1\174"+
- "\1\0\1\u010f\1\u0112\1\174\1\0\4\174\1\0\1\174"+
- "\1\0\2\174\1\0\6\174\1\0\60\174\1\u0114\1\0"+
- "\10\u0114\1\u0115\2\u0114\1\u0116\47\u0114\1\u0116\21\u0114\1\u0117"+
- "\1\0\12\u0117\1\u0115\1\u0118\47\u0117\1\u0118\21\u0117\1\174"+
- "\2\0\1\u0112\1\174\1\0\4\174\1\0\1\174\1\0"+
- "\1\174\1\u0119\1\0\6\174\1\0\61\174\2\0\1\u0112"+
- "\1\174\1\0\4\174\1\0\1\174\1\0\1\174\1\u011a"+
- "\1\0\6\174\1\0\60\174\3\0\1\337\16\0\1\354"+
- "\2\0\1\u0107\130\0\1\u011b\2\0\1\u011b\75\0\1\u011c"+
- "\14\0\1\u011c\63\0\2\u011d\52\0\23\u011e\1\u011f\63\u011e"+
- "\6\0\4\211\6\0\1\211\6\0\6\211\1\0\13\211"+
- "\1\0\13\211\1\0\4\211\1\0\11\211\2\0\1\211"+
- "\53\0\1\u0120\5\0\1\u0120\116\0\1\u0121\10\0\1\u0121"+
- "\4\0\1\214\2\0\1\u0122\1\214\1\0\4\214\1\0"+
- "\1\214\1\0\2\214\1\0\6\214\1\0\60\214\1\u0123"+
- "\1\0\10\u0123\1\u0124\2\u0123\1\u0125\47\u0123\1\u0125\21\u0123"+
- "\1\u0126\1\0\1\u0126\2\u0127\1\u0126\4\u0127\2\u0126\1\u0128"+
- "\1\u0129\1\u0126\4\u0127\1\u0126\11\u0127\1\u0126\27\u0127\1\u0129"+
- "\10\u0127\2\u0126\4\u0127\2\u0126\1\u0127\1\220\2\u011e\1\u012a"+
- "\1\220\1\u011e\4\220\1\u011e\1\220\1\u011e\2\220\1\u011e"+
- "\3\220\1\u012b\2\220\1\u011e\60\220\1\221\2\0\1\u012c"+
- "\1\221\1\0\4\221\1\0\1\221\1\0\2\221\1\0"+
- "\6\221\1\0\60\221\12\u012d\1\u012e\74\u012d\14\u012f\1\u012e"+
- "\72\u012f\1\225\2\u011e\1\u0130\1\225\1\u011e\4\225\1\u011e"+
- "\1\225\1\u011e\2\225\1\u011e\3\225\1\u0131\2\225\1\u011e"+
- "\60\225\1\226\2\0\1\u0132\1\226\1\0\4\226\1\0"+
- "\1\226\1\0\2\226\1\0\6\226\1\0\60\226\1\u0133"+
- "\1\0\10\u0133\1\u0134\2\u0133\1\u0135\47\u0133\1\u0135\21\u0133"+
- "\1\u0136\1\0\1\u0136\2\u0137\1\u0136\4\u0137\2\u0136\1\u0138"+
- "\1\u0139\1\u0136\4\u0137\1\u0136\11\u0137\1\u0136\27\u0137\1\u0139"+
- "\10\u0137\2\u0136\4\u0137\2\u0136\1\u0137\2\232\1\0\106\232"+
- "\1\0\17\232\1\u013a\2\232\1\u013b\61\232\1\235\2\0"+
- "\1\u013c\1\235\1\0\4\235\1\0\1\235\1\0\2\235"+
- "\1\0\6\235\1\0\60\235\1\u013d\1\0\10\u013d\1\u013e"+
- "\2\u013d\1\u013f\47\u013d\1\u013f\21\u013d\1\u0140\1\0\1\u0140"+
- "\2\u0141\1\u0140\4\u0141\2\u0140\1\u0142\1\u0143\1\u0140\4\u0141"+
- "\1\u0140\11\u0141\1\u0140\27\u0141\1\u0143\10\u0141\2\u0140\4\u0141"+
- "\2\u0140\1\u0141\2\241\1\0\106\241\1\0\17\241\1\u0144"+
- "\2\241\1\u0145\61\241\22\0\1\341\2\0\1\355\70\0"+
- "\1\u0146\77\0\1\252\1\0\12\252\1\0\1\u0147\47\252"+
- "\1\u0147\21\252\3\0\1\u0148\16\0\1\354\2\0\1\355"+
- "\61\0\1\252\1\0\3\252\1\254\6\252\1\0\1\u0147"+
- "\1\252\1\254\6\252\1\254\36\252\1\u0147\37\252\1\u0149"+
- "\106\252\1\u014a\70\252\1\260\1\0\10\260\1\0\2\260"+
- "\1\u014b\47\260\1\u014b\22\260\1\0\3\260\1\261\4\260"+
- "\1\0\2\260\1\u014b\1\260\1\261\6\260\1\261\36\260"+
- "\1\u014b\37\260\1\u014c\106\260\1\u014d\70\260\12\265\1\0"+
- "\1\265\1\0\1\u014e\67\265\1\0\13\265\1\0\1\265"+
- "\1\0\1\u014e\4\265\1\u014f\62\265\1\0\13\265\1\0"+
- "\1\265\1\0\1\265\1\u0150\66\265\1\u0151\1\265\14\u0152"+
- "\1\u0153\106\u0152\1\u0153\5\u0152\1\u0154\2\u0152\1\u0155\61\u0152"+
- "\12\u0156\1\u0157\106\u0156\1\u0157\7\u0156\1\u0158\2\u0156\1\u0159"+
- "\61\u0156\12\303\1\0\71\303\1\u015a\1\0\13\303\1\0"+
- "\7\303\1\u015b\61\303\1\u015a\1\0\13\303\1\u015c\74\303"+
- "\14\307\1\0\67\307\1\u015d\1\0\15\307\1\0\5\307"+
- "\1\u015e\61\307\1\u015d\1\0\15\307\1\u015f\72\307\12\312"+
- "\1\0\1\312\1\0\70\312\1\0\13\312\1\0\1\312"+
- "\1\0\5\312\1\u0160\62\312\1\0\13\312\1\0\1\312"+
- "\1\0\1\312\1\u0161\66\312\1\0\1\312\14\u0162\1\u0163"+
- "\106\u0162\1\u0163\5\u0162\1\u0164\2\u0162\1\u0165\61\u0162\12\u0166"+
- "\1\u0167\106\u0166\1\u0167\7\u0166\1\u0168\2\u0166\1\u0169\61\u0166"+
- "\12\330\1\0\71\330\1\u016a\1\0\13\330\1\0\7\330"+
- "\1\u016b\61\330\1\u016a\1\0\13\330\1\u016c\74\330\14\334"+
- "\1\0\67\334\1\u016d\1\0\15\334\1\0\5\334\1\u016e"+
- "\61\334\1\u016d\1\0\15\334\1\u016f\72\334\7\0\1\u0170"+
- "\11\0\1\u0171\3\0\1\u0172\23\0\1\u0173\44\0\1\u0174"+
- "\25\0\1\u0175\56\0\1\343\2\0\2\u0176\5\0\1\343"+
- "\6\0\1\343\6\u0176\1\0\13\u0176\1\0\13\u0176\1\0"+
- "\4\u0176\1\0\4\u0176\1\0\4\u0176\2\0\1\u0176\1\u0177"+
- "\1\0\3\u0177\1\u0178\4\344\1\u0177\1\0\3\u0177\1\u0178"+
- "\1\344\1\u0177\1\0\3\u0177\1\u0178\6\344\1\u0177\13\344"+
- "\1\u0177\13\344\1\u0177\4\344\1\u0179\11\344\2\u0177\1\344"+
- "\20\0\1\u017a\7\0\1\u017b\73\0\1\347\71\0\105\350"+
- "\1\u017c\1\350\1\u0177\1\0\3\u0177\1\u0178\4\351\1\u0177"+
- "\1\0\3\u0177\1\u0178\1\351\1\u0177\1\0\3\u0177\1\u0178"+
- "\6\351\1\u0177\13\351\1\u0177\13\351\1\u0177\4\351\1\u017d"+
- "\11\351\2\u0177\1\351\105\352\1\u017e\1\352\65\0\1\353"+
- "\30\0\1\u0170\15\0\1\u0172\23\0\1\u0173\72\0\1\u0175"+
- "\53\0\1\u017f\106\0\1\u0180\112\0\4\113\6\0\1\113"+
- "\6\0\4\113\2\u0181\1\0\13\113\1\0\13\113\1\0"+
- "\4\113\1\0\11\113\2\0\1\113\6\0\4\113\6\0"+
- "\1\113\6\0\4\113\1\u0181\1\u0182\1\0\13\113\1\0"+
- "\13\113\1\0\4\113\1\0\11\113\2\0\1\113\6\0"+
- "\4\113\6\0\1\113\6\0\6\113\1\0\13\113\1\0"+
- "\2\113\1\u0183\10\113\1\0\4\113\1\0\6\113\1\u0183"+
- "\2\113\2\0\1\113\12\367\1\370\3\367\1\0\70\367"+
- "\14\372\1\370\1\372\1\0\70\372\1\377\1\0\10\377"+
- "\1\u0101\2\377\1\u0184\47\377\1\u0184\21\377\1\142\2\377"+
- "\1\u0100\1\142\1\377\4\142\1\u0101\1\142\1\377\1\142"+
- "\1\140\1\377\6\142\1\377\60\142\1\u0103\1\0\12\u0103"+
- "\1\u0101\1\u0185\47\u0103\1\u0185\21\u0103\1\143\2\u0103\1\u0104"+
- "\1\143\1\u0103\4\143\1\u0103\1\143\1\u0101\1\143\1\140"+
- "\1\u0103\6\143\1\u0103\60\143\12\u010a\1\u010b\3\u010a\1\0"+
- "\70\u010a\14\u010d\1\u010b\1\u010d\1\0\70\u010d\6\0\4\167"+
- "\6\0\1\167\6\0\6\167\1\0\13\167\1\0\13\167"+
- "\1\0\4\167\1\0\6\167\1\u0186\2\167\2\0\1\167"+
- "\6\0\4\u0111\6\0\1\u0111\6\0\6\u0111\1\0\13\u0111"+
- "\1\0\13\u0111\1\0\4\u0111\1\0\11\u0111\2\0\1\u0111"+
- "\6\0\4\u0113\6\0\1\u0113\6\0\6\u0113\1\0\13\u0113"+
- "\1\0\13\u0113\1\0\4\u0113\1\0\11\u0113\2\0\1\u0113"+
- "\12\u0114\1\u0115\3\u0114\1\0\70\u0114\14\u0117\1\u0115\1\u0117"+
- "\1\0\70\u0117\1\u0187\2\u0188\1\u0189\1\u0187\1\u0188\4\u0187"+
- "\1\u0188\1\u0187\1\u0188\2\u0187\1\u0188\6\u0187\1\u0188\56\u0187"+
- "\1\174\1\u0187\1\u018a\2\u018b\1\u018c\1\u018a\1\u018b\4\u018a"+
- "\1\u018b\1\u018a\1\u018b\2\u018a\1\u018b\6\u018a\1\u018b\56\u018a"+
- "\1\174\1\u018a\36\0\1\u018d\35\0\1\u018d\53\0\1\u018e"+
- "\14\0\1\u018e\73\0\1\u018f\11\0\1\u018f\76\0\1\u0190"+
- "\20\0\1\u0190\113\0\1\u0191\7\0\1\u0191\3\0\12\u0123"+
- "\1\u0124\3\u0123\1\0\70\u0123\1\u0126\1\0\12\u0126\1\u0124"+
- "\1\u0192\47\u0126\1\u0192\22\u0126\1\0\12\u0126\1\u0193\1\u0192"+
- "\47\u0126\1\u0192\21\u0126\14\0\1\u0194\72\0\14\u0126\1\u0193"+
- "\1\u0126\1\0\70\u0126\12\u0133\1\u0134\3\u0133\1\0\70\u0133"+
- "\1\u0136\1\0\12\u0136\1\u0134\1\u0195\47\u0136\1\u0195\22\u0136"+
- "\1\0\12\u0136\1\u0196\1\u0195\47\u0136\1\u0195\21\u0136\14\0"+
- "\1\u0197\72\0\14\u0136\1\u0196\1\u0136\1\0\70\u0136\2\232"+
- "\1\0\4\232\1\u0198\15\232\1\u0199\23\232\1\u019a\37\232"+
- "\1\0\32\232\1\u019b\51\232\12\u013d\1\u013e\3\u013d\1\0"+
- "\70\u013d\1\u0140\1\0\12\u0140\1\u013e\1\u019c\47\u0140\1\u019c"+
- "\22\u0140\1\0\12\u0140\1\u019d\1\u019c\47\u0140\1\u019c\21\u0140"+
- "\14\0\1\u019e\72\0\14\u0140\1\u019d\1\u0140\1\0\70\u0140"+
- "\2\241\1\0\4\241\1\u019f\15\241\1\u01a0\23\241\1\u01a1"+
- "\37\241\1\0\32\241\1\u01a2\51\241\22\0\1\u01a3\64\0"+
- "\16\252\1\0\70\252\16\260\1\0\70\260\12\265\1\0"+
- "\1\265\1\0\1\265\1\u01a4\66\265\1\u0151\10\265\1\u01a5"+
- "\2\265\1\0\1\265\1\0\1\u014e\7\265\1\u01a6\23\265"+
- "\1\u01a7\33\265\1\0\1\265\12\u01a4\1\0\1\u01a4\1\0"+
- "\70\u01a4\1\0\1\u01a4\12\u0151\1\0\1\u0151\1\0\1\u01a8"+
- "\67\u0151\1\0\1\u0151\7\u0152\1\u01a9\4\u0152\1\u0153\10\u0152"+
- "\1\u01aa\23\u0152\1\u01ab\51\u0152\1\u0153\20\u0152\1\u01ac\51\u0152"+
- "\7\u0156\1\u01ad\2\u0156\1\u0157\12\u0156\1\u01ae\23\u0156\1\u01af"+
- "\47\u0156\1\u0157\22\u0156\1\u01b0\51\u0156\12\303\1\0\103\303"+
- "\1\u01b1\2\303\1\0\12\303\1\u01b2\23\303\1\u01b3\32\303"+
- "\1\u015a\1\0\1\303\104\u01b4\1\u01b5\2\u01b4\14\307\1\0"+
- "\101\307\1\u01b6\4\307\1\0\10\307\1\u01b7\23\307\1\u01b8"+
- "\32\307\1\u015d\1\0\1\307\104\u01b9\1\u01ba\2\u01b9\7\312"+
- "\1\u01bb\2\312\1\0\1\312\1\0\10\312\1\u01bc\23\312"+
- "\1\u01bd\33\312\1\0\1\312\7\u0162\1\u01be\4\u0162\1\u0163"+
- "\10\u0162\1\u01bf\23\u0162\1\u01c0\51\u0162\1\u0163\20\u0162\1\u01c1"+
- "\51\u0162\7\u0166\1\u01c2\2\u0166\1\u0167\12\u0166\1\u01c3\23\u0166"+
- "\1\u01c4\47\u0166\1\u0167\22\u0166\1\u01c5\51\u0166\12\330\1\0"+
- "\103\330\1\u01c6\2\330\1\0\12\330\1\u01c7\23\330\1\u01c8"+
- "\32\330\1\u016a\1\0\1\330\104\u01c9\1\u01ca\2\u01c9\14\334"+
- "\1\0\101\334\1\u01cb\4\334\1\0\10\334\1\u01cc\23\334"+
- "\1\u01cd\32\334\1\u016d\1\0\1\334\104\u01ce\1\u01cf\2\u01ce"+
- "\7\0\1\u01d0\106\0\1\u01d1\135\0\1\u01d2\50\0\1\u0176"+
- "\1\0\11\u0176\1\0\6\u0176\1\0\64\u0176\1\u0177\1\0"+
- "\11\u0177\1\0\6\u0177\1\0\47\u0177\1\0\15\u0177\1\0"+
- "\3\u0177\1\u0178\5\u0177\1\0\3\u0177\1\u0178\2\u0177\1\0"+
- "\3\u0177\1\u0178\43\u0177\1\u01d3\14\u0177\20\0\1\u017a\51\0"+
- "\1\u01d4\34\0\1\u01d5\15\0\3\u01d5\2\0\1\u01d5\11\0"+
- "\1\u01d5\1\0\2\u01d5\7\0\1\u01d5\2\0\2\u01d5\6\0"+
- "\1\u01d5\11\0\1\113\1\u01d6\2\113\6\0\1\113\6\0"+
- "\6\113\1\0\13\113\1\0\13\113\1\0\4\113\1\0"+
- "\11\113\2\0\1\113\6\0\4\113\6\0\1\113\6\0"+
- "\6\113\1\0\11\113\1\u01d7\1\113\1\0\1\u01d7\12\113"+
- "\1\0\4\113\1\0\11\113\2\0\1\113\12\377\1\u0101"+
- "\3\377\1\0\70\377\14\u0103\1\u0101\1\u0103\1\0\70\u0103"+
- "\6\0\3\167\1\u01d8\6\0\1\167\6\0\6\167\1\0"+
- "\13\167\1\0\13\167\1\0\4\167\1\0\11\167\2\0"+
- "\1\167\1\u0187\2\u0188\1\u0189\1\u0187\1\u0188\4\u0187\1\u0188"+
- "\1\u0187\1\u0188\2\u0187\1\u0188\6\u0187\1\u0188\56\u0187\1\u01d9"+
- "\1\u0187\105\u0188\1\u01da\1\u0188\1\u018a\2\u018b\1\u018c\1\u018a"+
- "\1\u018b\4\u018a\1\u018b\1\u018a\1\u018b\2\u018a\1\u018b\6\u018a"+
- "\1\u018b\56\u018a\1\u01d9\1\u018a\105\u018b\1\u01db\1\u018b\41\0"+
- "\1\u01dc\14\0\1\u01dc\63\0\2\u01dd\103\0\2\u01de\115\0"+
- "\1\u01df\14\0\1\u01df\63\0\2\u01e0\52\0\14\u0126\1\u0124"+
- "\1\u0126\1\0\70\u0126\3\0\2\u01e1\1\0\4\u01e1\2\0"+
- "\1\u0128\1\u01e1\1\0\4\u01e1\1\0\11\u01e1\1\0\40\u01e1"+
- "\2\0\4\u01e1\2\0\1\u01e1\14\u0136\1\u0134\1\u0136\1\0"+
- "\70\u0136\3\0\2\u01e2\1\0\4\u01e2\2\0\1\u0138\1\u01e2"+
- "\1\0\4\u01e2\1\0\11\u01e2\1\0\40\u01e2\2\0\4\u01e2"+
- "\2\0\1\u01e2\2\232\1\0\4\232\1\u01e3\101\232\1\0"+
- "\33\232\1\u01e4\50\232\14\u0140\1\u013e\1\u0140\1\0\70\u0140"+
- "\3\0\2\u01e5\1\0\4\u01e5\2\0\1\u0142\1\u01e5\1\0"+
- "\4\u01e5\1\0\11\u01e5\1\0\40\u01e5\2\0\4\u01e5\2\0"+
- "\1\u01e5\2\241\1\0\4\241\1\u01e6\101\241\1\0\33\241"+
- "\1\u01e7\50\241\2\0\1\u01e8\104\0\7\265\1\u01e9\2\265"+
- "\1\0\1\265\1\0\1\u014e\67\265\1\0\1\265\12\u0151"+
- "\1\0\1\u0151\1\0\1\u0151\1\0\70\u0151\7\u0152\1\u01ea"+
- "\4\u0152\1\u0153\106\u0152\1\u0153\21\u0152\1\u01eb\50\u0152\7\u0156"+
- "\1\u01ec\2\u0156\1\u0157\106\u0156\1\u0157\23\u0156\1\u01ed\50\u0156"+
- "\7\303\1\u01ee\2\303\1\0\71\303\1\u015a\1\0\1\303"+
- "\12\u01ef\1\u01f0\72\u01ef\1\0\1\u01ef\7\307\1\u01f1\4\307"+
- "\1\0\67\307\1\u015d\1\0\1\307\14\u01f2\1\u01f0\70\u01f2"+
- "\1\0\1\u01f2\7\312\1\u01f3\2\312\1\0\1\312\1\0"+
- "\70\312\1\0\1\312\7\u0162\1\u01f4\4\u0162\1\u0163\106\u0162"+
- "\1\u0163\21\u0162\1\u01f5\50\u0162\7\u0166\1\u01f6\2\u0166\1\u0167"+
- "\106\u0166\1\u0167\23\u0166\1\u01f7\50\u0166\7\330\1\u01f8\2\330"+
- "\1\0\71\330\1\u016a\1\0\1\330\12\u01f9\1\u01fa\72\u01f9"+
- "\1\0\1\u01f9\7\334\1\u01fb\4\334\1\0\67\334\1\u016d"+
- "\1\0\1\334\14\u01fc\1\u01fa\70\u01fc\1\0\1\u01fc\37\0"+
- "\1\u01fd\141\0\1\u01d3\34\0\1\u01d5\15\0\3\u01d5\2\0"+
- "\1\u01d5\11\0\1\u01d5\1\0\2\u01d5\7\0\1\u01d5\1\0"+
- "\1\u01d4\2\u01d5\6\0\1\u01d5\11\0\4\113\6\0\1\113"+
- "\6\0\6\113\1\0\7\113\1\u01fe\3\113\1\0\13\113"+
- "\1\0\4\113\1\0\11\113\2\0\1\113\6\0\4\113"+
- "\6\0\1\113\6\0\6\113\1\0\6\113\1\u01ff\4\113"+
- "\1\0\13\113\1\0\1\113\1\u01ff\2\113\1\0\11\113"+
- "\2\0\1\113\6\0\4\167\6\0\1\167\6\0\6\167"+
- "\1\0\6\167\1\u0200\4\167\1\0\6\167\1\u0201\4\167"+
- "\1\0\4\167\1\0\11\167\2\0\1\167\53\0\1\u0202"+
- "\5\0\1\u0202\73\0\1\u0203\14\0\1\u0203\66\0\1\u0204"+
- "\11\0\1\u0204\74\0\1\u0205\11\0\1\u0205\77\0\1\u0206"+
- "\14\0\1\u0206\23\0\2\232\1\0\34\232\1\u0207\47\232"+
- "\2\241\1\0\34\241\1\u0208\47\241\14\u0152\1\u0153\22\u0152"+
- "\1\u0209\47\u0152\12\u0156\1\u0157\24\u0156\1\u020a\47\u0156\12\u01ef"+
- "\1\u01b4\71\u01ef\1\u020b\1\u01b4\1\u01ef\14\u01f2\1\u01b9\67\u01f2"+
- "\1\u020c\1\u01b9\1\u01f2\14\u0162\1\u0163\22\u0162\1\u020d\47\u0162"+
- "\12\u0166\1\u0167\24\u0166\1\u020e\47\u0166\12\u01f9\1\u01c9\71\u01f9"+
- "\1\u020f\1\u01c9\1\u01f9\14\u01fc\1\u01ce\67\u01fc\1\u0210\1\u01ce"+
- "\1\u01fc\40\0\1\u0211\54\0\4\113\6\0\1\113\6\0"+
- "\6\113\1\0\13\113\1\0\4\113\1\u0212\6\113\1\0"+
- "\4\113\1\0\11\113\2\0\1\113\6\0\4\113\6\0"+
- "\1\113\6\0\6\113\1\0\3\113\1\u0213\7\113\1\0"+
- "\4\113\1\u0213\6\113\1\0\4\113\1\0\11\113\2\0"+
- "\1\113\6\0\4\167\6\0\1\167\6\0\6\167\1\0"+
- "\11\167\1\u0214\1\167\1\0\13\167\1\0\4\167\1\0"+
- "\11\167\2\0\1\167\6\0\4\167\6\0\1\167\6\0"+
- "\6\167\1\0\10\167\1\u0215\2\167\1\0\13\167\1\0"+
- "\4\167\1\0\11\167\2\0\1\167\54\0\1\u0216\24\0"+
- "\1\u0216\52\0\1\u0217\20\0\1\u0217\70\0\1\u0218\13\0"+
- "\1\u0218\53\0\2\u0219\112\0\1\u021a\35\0\1\u021a\12\0"+
- "\2\232\1\0\35\232\1\u021b\46\232\2\241\1\0\35\241"+
- "\1\u021c\46\241\14\u0152\1\u0153\23\u0152\1\u021d\46\u0152\12\u0156"+
- "\1\u0157\25\u0156\1\u021e\46\u0156\12\u01ef\1\u021f\71\u01ef\1\u020b"+
- "\1\u01b4\1\u01ef\14\u01f2\1\u0220\67\u01f2\1\u020c\1\u01b9\1\u01f2"+
- "\14\u0162\1\u0163\23\u0162\1\u0221\46\u0162\12\u0166\1\u0167\25\u0166"+
- "\1\u0222\46\u0166\12\u01f9\1\u0223\71\u01f9\1\u020f\1\u01c9\1\u01f9"+
- "\14\u01fc\1\u0224\67\u01fc\1\u0210\1\u01ce\1\u01fc\41\0\1\u0225"+
- "\53\0\4\113\6\0\1\113\6\0\6\113\1\0\13\113"+
- "\1\0\7\113\1\u0226\3\113\1\0\4\113\1\0\11\113"+
- "\2\0\1\113\6\0\4\167\6\0\1\167\6\0\6\167"+
- "\1\0\11\167\1\u0227\1\167\1\0\13\167\1\0\4\167"+
- "\1\0\11\167\2\0\1\167\6\0\4\167\6\0\1\167"+
- "\6\0\6\167\1\0\6\167\1\u0228\4\167\1\0\13\167"+
- "\1\0\4\167\1\0\11\167\2\0\1\167\43\0\1\u0229"+
- "\11\0\1\u0229\72\0\1\u022a\14\0\1\u022a\71\0\1\u022b"+
- "\14\0\1\u022b\30\0\2\232\1\0\36\232\1\u022c\45\232"+
- "\2\241\1\0\36\241\1\u022d\45\241\14\u0152\1\u0153\24\u0152"+
- "\1\u022e\45\u0152\12\u0156\1\u0157\26\u0156\1\u022f\45\u0156\14\u0162"+
- "\1\u0163\24\u0162\1\u0230\45\u0162\12\u0166\1\u0167\26\u0166\1\u0231"+
- "\45\u0166\40\0\1\u0232\54\0\4\113\6\0\1\113\6\0"+
- "\5\113\1\u0233\1\0\13\113\1\0\13\113\1\0\4\113"+
- "\1\0\11\113\2\0\1\113\6\0\4\167\6\0\1\167"+
- "\6\0\6\167\1\0\13\167\1\0\4\167\1\u0234\6\167"+
- "\1\0\4\167\1\0\11\167\2\0\1\167\6\0\4\167"+
- "\6\0\1\167\6\0\6\167\1\0\5\167\1\u0235\5\167"+
- "\1\0\13\167\1\0\4\167\1\0\11\167\2\0\1\167"+
- "\2\232\1\0\35\232\1\u0236\46\232\2\241\1\0\35\241"+
- "\1\u0237\46\241\14\u0152\1\u0153\23\u0152\1\u0238\46\u0152\12\u0156"+
- "\1\u0157\25\u0156\1\u0239\46\u0156\14\u0162\1\u0163\23\u0162\1\u023a"+
- "\46\u0162\12\u0166\1\u0167\25\u0166\1\u023b\46\u0166\35\0\1\u023c"+
- "\57\0\4\113\6\0\1\113\6\0\6\113\1\0\5\113"+
- "\1\u023d\5\113\1\0\13\113\1\0\4\113\1\0\11\113"+
- "\2\0\1\113\6\0\4\167\6\0\1\167\6\0\6\167"+
- "\1\0\13\167\1\0\13\167\1\0\4\167\1\0\1\167"+
- "\1\u023e\7\167\2\0\1\167\2\232\1\0\32\232\1\u023f"+
- "\51\232\2\241\1\0\32\241\1\u0240\51\241\14\u0152\1\u0153"+
- "\20\u0152\1\u0241\51\u0152\12\u0156\1\u0157\22\u0156\1\u0242\51\u0156"+
- "\14\u0162\1\u0163\20\u0162\1\u0243\51\u0162\12\u0166\1\u0167\22\u0166"+
- "\1\u0244\51\u0166\6\0\4\113\6\0\1\113\6\0\6\113"+
- "\1\0\7\113\1\u0245\3\113\1\0\13\113\1\0\4\113"+
- "\1\0\11\113\2\0\1\113\6\0\4\167\6\0\1\167"+
- "\6\0\6\167\1\0\13\167\1\0\4\167\1\u0246\6\167"+
- "\1\0\4\167\1\0\11\167\2\0\1\167\6\0\4\113"+
- "\6\0\1\113\6\0\6\113\1\0\13\113\1\0\13\113"+
- "\1\0\4\113\1\0\11\113\2\0\1\u0247\6\0\4\167"+
- "\6\0\1\167\6\0\6\167\1\0\10\167\1\u0248\2\167"+
- "\1\0\13\167\1\0\4\167\1\0\11\167\2\0\1\167"+
- "\6\0\4\113\6\0\1\113\6\0\6\113\1\0\5\113"+
- "\1\u0249\5\113\1\0\13\113\1\0\4\113\1\0\11\113"+
- "\2\0\1\113\6\0\4\167\6\0\1\167\6\0\6\167"+
- "\1\0\4\167\1\u024a\6\167\1\0\13\167\1\0\4\167"+
- "\1\0\11\167\2\0\1\167\6\0\4\113\6\0\1\113"+
- "\6\0\6\113\1\0\5\113\1\u024b\5\113\1\0\13\113"+
- "\1\0\4\113\1\0\11\113\2\0\1\113\6\0\4\167"+
- "\6\0\1\167\6\0\6\167\1\0\5\167\1\u024c\5\167"+
- "\1\0\13\167\1\0\4\167\1\0\11\167\2\0\1\167"+
- "\6\0\4\113\6\0\1\113\6\0\6\113\1\0\13\113"+
- "\1\0\4\113\1\u024d\6\113\1\0\4\113\1\0\11\113"+
- "\2\0\1\113\6\u024e\4\u024f\6\u024e\1\u024f\5\u024e\1\0"+
- "\6\u024f\1\u024e\13\u024f\1\u024e\13\u024f\1\u024e\4\u024f\1\u024e"+
- "\11\u024f\2\u024e\1\u024f\42\0\1\u0250\3\0\1\u0251\7\0"+
- "\1\u0252\1\u0253\21\0\1\u0254\13\0\4\167\6\0\1\167"+
- "\6\0\6\167\1\0\4\167\1\u0255\3\167\1\u0256\2\167"+
- "\1\0\4\167\1\u0257\1\u0258\5\167\1\0\4\167\1\0"+
- "\6\167\1\u0259\2\167\2\0\1\167\57\0\1\u025a\77\0"+
- "\1\u025b\115\0\1\u025c\105\0\1\u025d\107\0\1\u025e\35\0"+
- "\4\167\6\0\1\167\6\0\6\167\1\0\13\167\1\0"+
- "\5\167\1\u025f\5\167\1\0\4\167\1\0\11\167\2\0"+
- "\1\167\6\0\4\167\6\0\1\167\6\0\6\167\1\0"+
- "\12\167\1\u0260\1\0\13\167\1\0\4\167\1\0\11\167"+
- "\2\0\1\167\6\0\4\167\6\0\1\167\6\0\6\167"+
- "\1\0\13\167\1\0\5\167\1\u0261\5\167\1\0\4\167"+
- "\1\0\11\167\2\0\1\167\6\0\4\167\6\0\1\167"+
- "\6\0\6\167\1\0\13\167\1\0\4\167\1\u0262\6\167"+
- "\1\0\4\167\1\0\11\167\2\0\1\167\6\0\4\167"+
- "\6\0\1\167\6\0\6\167\1\0\13\167\1\0\5\167"+
- "\1\u0263\5\167\1\0\4\167\1\0\11\167\2\0\1\167"+
- "\44\0\1\u0264\136\0\1\u0265\107\0\1\u0266\67\0\1\u0267"+
- "\125\0\1\u0268\17\0\4\167\6\0\1\167\6\0\6\167"+
- "\1\0\6\167\1\u0269\4\167\1\0\13\167\1\0\4\167"+
- "\1\0\11\167\2\0\1\167\6\0\4\167\6\0\1\167"+
- "\6\0\6\167\1\0\13\167\1\0\13\167\1\0\4\167"+
- "\1\0\1\167\1\u026a\7\167\2\0\1\167\6\0\4\167"+
- "\6\0\1\167\6\0\6\167\1\0\13\167\1\0\13\167"+
- "\1\0\4\167\1\0\2\167\1\u026b\6\167\2\0\1\167"+
- "\6\0\4\167\6\0\1\167\6\0\6\167\1\0\13\167"+
- "\1\0\4\167\1\u026c\6\167\1\0\4\167\1\0\11\167"+
- "\2\0\1\167\6\0\4\167\6\0\1\167\6\0\6\167"+
- "\1\0\13\167\1\0\13\167\1\0\4\167\1\0\2\167"+
- "\1\u026d\6\167\2\0\1\167\46\0\1\u026e\74\0\1\u026f"+
- "\106\0\1\u0270\116\0\1\u0271\105\0\1\u0272\51\0\4\167"+
- "\6\0\1\167\6\0\6\167\1\0\10\167\1\u0273\2\167"+
- "\1\0\13\167\1\0\4\167\1\0\11\167\2\0\1\167"+
- "\6\0\4\167\6\0\1\167\6\0\5\167\1\u0274\1\0"+
- "\13\167\1\0\13\167\1\0\4\167\1\0\11\167\2\0"+
- "\1\167\6\0\4\167\6\0\1\167\6\0\5\167\1\u0275"+
- "\1\0\13\167\1\0\13\167\1\0\4\167\1\0\11\167"+
- "\2\0\1\167\6\0\4\167\6\0\1\167\6\0\6\167"+
- "\1\0\6\167\1\u0276\4\167\1\0\13\167\1\0\4\167"+
- "\1\0\11\167\2\0\1\167\6\0\4\167\6\0\1\167"+
- "\6\0\6\167\1\0\5\167\1\u0277\5\167\1\0\13\167"+
- "\1\0\4\167\1\0\11\167\2\0\1\167\57\0\1\u0278"+
- "\131\0\1\u0279\52\0\1\u027a\106\0\1\u027b\46\0\4\167"+
- "\6\0\1\167\6\0\6\167\1\0\13\167\1\0\5\167"+
- "\1\u027c\5\167\1\0\4\167\1\0\11\167\2\0\1\167"+
- "\6\0\4\167\6\0\1\167\6\0\6\167\1\0\13\167"+
- "\1\0\13\167\1\0\4\167\1\0\7\167\1\u027d\1\167"+
- "\2\0\1\167\6\0\4\167\6\0\1\167\6\0\6\167"+
- "\1\0\10\167\1\u027e\2\167\1\0\13\167\1\0\4\167"+
- "\1\0\11\167\2\0\1\167\6\0\4\167\6\0\1\167"+
- "\6\0\6\167\1\0\10\167\1\u027f\2\167\1\0\13\167"+
- "\1\0\4\167\1\0\11\167\2\0\1\167\103\0\1\u0280"+
- "\63\0\1\u0268\131\0\1\u0272\106\0\1\u0281\11\0\4\167"+
- "\6\0\1\167\6\0\6\167\1\0\13\167\1\0\13\167"+
- "\1\0\4\167\1\0\10\167\1\u0282\2\0\1\167\6\0"+
- "\4\167\6\0\1\167\6\0\6\167\1\0\13\167\1\0"+
- "\6\167\1\u026d\4\167\1\0\4\167\1\0\11\167\2\0"+
- "\1\167\6\0\4\167\6\0\1\167\6\0\6\167\1\0"+
- "\13\167\1\0\13\167\1\0\4\167\1\0\10\167\1\u0277"+
- "\2\0\1\167\6\0\4\167\6\0\1\167\6\0\6\167"+
- "\1\0\13\167\1\0\13\167\1\0\4\167\1\0\10\167"+
- "\1\u0283\2\0\1\167\34\0\1\u0268\154\0\1\u0284\12\0"+
- "\4\167\6\0\1\167\6\0\5\167\1\u026d\1\0\13\167"+
- "\1\0\13\167\1\0\4\167\1\0\11\167\2\0\1\167"+
- "\6\0\4\167\6\0\1\167\6\0\6\167\1\0\13\167"+
- "\1\0\13\167\1\0\4\167\1\0\7\167\1\u0285\1\167"+
- "\2\0\1\167\56\0\1\u0268\36\0\4\167\6\0\1\167"+
- "\6\0\6\167\1\0\13\167\1\0\4\167\1\u026d\6\167"+
- "\1\0\4\167\1\0\11\167\2\0\1\167";
+ "\1\71\1\72\11\71\1\73\1\71\1\74\4\71\1\75"+
+ "\42\71\1\76\21\71\1\77\1\100\105\77\1\101\1\102"+
+ "\21\101\1\103\2\101\1\104\60\101\1\105\1\106\105\105"+
+ "\1\101\1\102\5\101\1\107\16\101\1\104\61\101\1\102"+
+ "\2\101\1\110\1\111\2\101\2\112\5\101\1\111\6\101"+
+ "\1\111\1\113\1\114\4\112\1\101\10\112\1\115\2\112"+
+ "\1\101\11\112\1\115\1\112\1\101\4\112\1\101\4\112"+
+ "\1\101\4\112\2\101\1\112\1\101\1\102\2\101\1\110"+
+ "\1\116\11\101\1\116\6\101\1\116\60\101\1\117\1\120"+
+ "\2\117\1\121\21\117\1\104\60\117\1\101\1\102\2\101"+
+ "\1\122\1\111\2\101\2\123\5\101\1\111\6\101\1\111"+
+ "\6\123\1\101\13\123\1\101\13\123\1\101\4\123\1\101"+
+ "\4\123\1\101\4\123\2\101\1\123\1\101\1\102\2\101"+
+ "\1\122\1\111\2\101\2\123\5\101\1\111\6\101\1\111"+
+ "\6\123\1\101\13\123\1\124\13\123\1\101\4\123\1\101"+
+ "\4\123\1\101\4\123\2\101\1\123\1\125\1\102\1\101"+
+ "\1\126\1\127\1\111\4\125\1\130\1\125\1\131\2\125"+
+ "\1\111\6\125\1\111\60\125\1\101\1\102\2\101\1\132"+
+ "\21\101\1\104\61\101\1\102\1\133\1\134\1\101\1\111"+
+ "\2\101\2\135\5\101\1\111\6\101\1\111\6\135\1\101"+
+ "\13\135\1\101\13\135\1\101\4\135\1\101\4\135\1\101"+
+ "\4\135\2\101\1\135\1\101\1\102\1\133\1\134\1\101"+
+ "\1\111\2\101\2\135\5\101\1\111\6\101\1\111\6\135"+
+ "\1\101\13\135\1\136\13\135\1\101\4\135\1\101\4\135"+
+ "\1\101\4\135\2\101\1\135\1\137\1\102\1\133\1\140"+
+ "\1\137\1\111\4\137\1\141\1\137\1\142\2\137\1\111"+
+ "\6\137\1\111\60\137\1\101\1\102\3\101\1\111\11\101"+
+ "\1\111\6\101\1\111\60\101\1\143\1\144\20\143\1\145"+
+ "\64\143\1\101\1\146\3\101\1\111\2\101\2\147\5\101"+
+ "\1\111\2\101\1\150\3\101\1\111\6\147\1\101\13\147"+
+ "\1\101\13\147\1\101\4\147\1\101\4\147\1\101\4\147"+
+ "\2\101\1\147\1\101\1\146\3\101\1\151\11\101\1\151"+
+ "\2\101\1\150\3\101\1\151\61\101\1\146\3\101\1\111"+
+ "\2\101\2\152\5\101\1\111\2\101\1\150\3\101\1\111"+
+ "\6\152\1\101\13\152\1\101\13\152\1\101\4\152\1\101"+
+ "\4\152\1\101\4\152\2\101\1\152\1\101\1\146\3\101"+
+ "\1\111\2\101\2\152\5\101\1\111\2\101\1\150\3\101"+
+ "\1\111\6\152\1\101\13\152\1\153\13\152\1\101\4\152"+
+ "\1\101\4\152\1\101\4\152\2\101\1\152\1\154\1\146"+
+ "\1\101\1\155\1\154\1\111\4\154\1\156\1\154\1\157"+
+ "\2\154\1\111\2\154\1\160\3\154\1\111\60\154\1\161"+
+ "\1\162\1\163\1\164\4\161\2\165\15\161\6\166\1\161"+
+ "\13\166\1\161\13\166\1\161\4\166\1\161\4\166\1\161"+
+ "\1\167\3\166\2\161\1\166\1\101\1\170\1\163\1\164"+
+ "\1\101\1\111\2\101\2\171\5\101\1\111\6\101\1\111"+
+ "\6\171\1\101\13\171\1\101\13\171\1\101\4\171\1\101"+
+ "\4\171\1\101\4\171\2\101\1\171\1\101\1\170\1\163"+
+ "\1\164\1\101\1\111\2\101\2\171\5\101\1\111\6\101"+
+ "\1\111\6\171\1\101\13\171\1\172\13\171\1\101\4\171"+
+ "\1\101\4\171\1\101\4\171\2\101\1\171\1\173\1\174"+
+ "\1\163\1\175\1\173\1\111\4\173\1\176\1\173\1\177"+
+ "\1\200\1\173\1\111\6\173\1\111\36\173\1\201\21\173"+
+ "\1\101\1\202\1\203\2\101\1\111\11\101\1\111\6\101"+
+ "\1\111\10\101\1\204\1\205\2\101\1\206\11\101\1\206"+
+ "\1\101\1\205\1\204\27\101\1\102\1\203\2\101\1\111"+
+ "\11\101\1\111\6\101\1\111\6\101\1\207\52\101\1\102"+
+ "\1\203\2\101\1\111\2\101\2\210\5\101\1\111\6\101"+
+ "\1\111\6\210\1\207\13\210\1\101\13\210\1\101\4\210"+
+ "\1\101\4\210\1\101\4\210\2\101\1\210\1\101\1\102"+
+ "\1\203\2\101\1\111\11\101\1\111\6\101\1\111\6\101"+
+ "\1\207\7\101\1\211\6\101\1\212\11\101\1\211\12\101"+
+ "\1\212\5\101\1\213\1\102\1\203\1\214\1\213\1\111"+
+ "\4\213\1\215\1\213\1\216\2\213\1\111\6\213\1\111"+
+ "\6\213\1\217\51\213\1\220\1\102\1\203\1\221\1\220"+
+ "\1\111\4\220\1\222\1\220\1\223\2\220\1\111\6\220"+
+ "\1\111\6\220\1\224\51\220\1\225\1\102\1\203\1\226"+
+ "\1\225\1\111\4\225\1\227\1\225\1\230\2\225\1\111"+
+ "\6\225\1\111\60\225\1\231\1\232\1\233\104\231\1\234"+
+ "\1\102\1\203\1\235\1\234\1\111\4\234\1\236\1\234"+
+ "\1\237\2\234\1\111\6\234\1\111\60\234\1\240\1\241"+
+ "\1\242\104\240\1\243\1\244\105\243\1\101\1\102\24\101"+
+ "\1\104\60\101\1\245\1\246\105\245\1\101\1\102\5\101"+
+ "\1\247\16\101\1\104\60\101\1\250\1\251\3\250\1\252"+
+ "\6\250\1\253\1\254\1\250\1\252\6\250\1\252\36\250"+
+ "\1\255\21\250\1\256\1\251\3\256\1\257\4\256\1\260"+
+ "\2\256\1\261\1\256\1\257\6\256\1\257\36\256\1\262"+
+ "\21\256\1\263\1\264\10\263\1\265\1\263\1\266\1\267"+
+ "\67\263\1\270\1\263\1\271\1\272\12\271\1\101\11\271"+
+ "\1\273\60\271\1\274\1\275\10\274\1\101\13\274\1\276"+
+ "\60\274\1\101\1\102\12\101\1\277\11\101\1\104\61\101"+
+ "\1\102\10\101\1\300\13\101\1\104\60\101\1\301\1\302"+
+ "\10\301\1\260\71\301\1\303\1\304\1\301\1\305\1\306"+
+ "\12\305\1\253\67\305\1\307\1\304\1\305\1\310\1\311"+
+ "\10\310\1\312\1\310\1\313\50\310\1\314\17\310\1\315"+
+ "\1\310\1\316\1\317\12\316\1\101\11\316\1\320\60\316"+
+ "\1\321\1\322\10\321\1\101\13\321\1\323\60\321\1\101"+
+ "\1\102\12\101\1\324\11\101\1\104\61\101\1\102\10\101"+
+ "\1\325\13\101\1\104\60\101\1\326\1\327\10\326\1\260"+
+ "\71\326\1\330\1\331\1\326\1\332\1\333\12\332\1\253"+
+ "\67\332\1\334\1\331\1\332\1\71\1\0\11\71\1\0"+
+ "\1\71\1\0\4\71\1\0\42\71\1\0\21\71\3\0"+
+ "\1\335\1\336\15\0\1\337\2\0\1\340\66\0\1\341"+
+ "\2\0\2\342\5\0\1\341\6\0\1\341\6\342\1\0"+
+ "\13\342\1\0\13\342\1\343\4\342\1\0\4\342\1\0"+
+ "\4\342\2\0\1\342\1\344\1\0\11\344\1\0\1\344"+
+ "\1\345\1\346\3\344\1\0\64\344\5\0\1\341\2\0"+
+ "\2\347\5\0\1\341\6\0\1\341\6\347\1\0\13\347"+
+ "\1\0\13\347\1\0\4\347\1\0\4\347\1\0\4\347"+
+ "\2\0\1\347\1\344\1\0\11\344\1\0\2\344\1\350"+
+ "\3\344\1\0\42\344\1\351\21\344\131\0\1\337\2\0"+
+ "\1\352\104\0\1\353\72\0\1\354\101\0\1\355\111\0"+
+ "\1\111\11\0\1\111\6\0\1\111\66\0\4\112\6\0"+
+ "\1\112\6\0\6\112\1\0\13\112\1\0\13\112\1\0"+
+ "\4\112\1\0\11\112\2\0\1\112\6\0\4\112\6\0"+
+ "\1\112\6\0\2\112\2\356\2\112\1\0\13\112\1\0"+
+ "\13\112\1\0\4\112\1\0\11\112\2\0\1\112\6\0"+
+ "\4\112\6\0\1\112\6\0\2\112\1\356\1\357\2\112"+
+ "\1\0\13\112\1\0\13\112\1\0\4\112\1\0\11\112"+
+ "\2\0\1\112\6\0\4\112\6\0\1\112\6\0\2\112"+
+ "\2\360\2\112\1\0\13\112\1\0\13\112\1\0\4\112"+
+ "\1\0\11\112\2\0\1\112\5\0\1\116\11\0\1\116"+
+ "\6\0\1\116\62\0\1\361\106\0\1\362\112\0\4\123"+
+ "\6\0\1\123\6\0\6\123\1\0\13\123\1\0\13\123"+
+ "\1\0\4\123\1\0\11\123\2\0\1\123\1\125\2\0"+
+ "\1\363\1\125\1\0\4\125\1\0\1\125\1\0\2\125"+
+ "\1\0\6\125\1\0\61\125\1\0\1\362\1\363\1\125"+
+ "\1\0\4\125\1\0\1\125\1\0\2\125\1\0\6\125"+
+ "\1\0\60\125\1\364\1\0\10\364\1\365\2\364\1\366"+
+ "\47\364\1\366\21\364\1\367\1\0\12\367\1\365\1\370"+
+ "\47\367\1\370\21\367\2\0\1\133\1\371\111\0\4\135"+
+ "\6\0\1\135\6\0\6\135\1\0\13\135\1\0\13\135"+
+ "\1\0\4\135\1\0\11\135\2\0\1\135\1\137\2\0"+
+ "\1\372\1\137\1\0\4\137\1\0\1\137\1\0\2\137"+
+ "\1\0\6\137\1\0\61\137\1\0\1\133\1\373\1\137"+
+ "\1\0\4\137\1\0\1\137\1\0\2\137\1\0\6\137"+
+ "\1\0\60\137\1\141\1\0\1\374\1\375\1\141\1\374"+
+ "\4\141\1\376\1\141\1\374\1\377\1\141\1\374\6\141"+
+ "\1\374\36\141\1\377\21\141\1\142\1\0\1\u0100\1\u0101"+
+ "\1\142\1\u0100\4\142\1\u0100\1\142\1\376\1\u0102\1\142"+
+ "\1\u0100\6\142\1\u0100\36\142\1\u0102\21\142\2\0\1\u0103"+
+ "\126\0\1\337\2\0\1\u0104\67\0\4\147\6\0\1\147"+
+ "\6\0\6\147\1\0\13\147\1\0\13\147\1\0\4\147"+
+ "\1\0\11\147\2\0\1\147\2\0\1\u0105\111\0\1\151"+
+ "\11\0\1\151\6\0\1\151\66\0\4\152\6\0\1\152"+
+ "\6\0\6\152\1\0\13\152\1\0\13\152\1\0\4\152"+
+ "\1\0\11\152\2\0\1\152\1\154\2\0\1\u0106\1\154"+
+ "\1\0\4\154\1\0\1\154\1\0\2\154\1\0\6\154"+
+ "\1\0\60\154\1\u0107\1\0\10\u0107\1\u0108\2\u0107\1\u0109"+
+ "\47\u0107\1\u0109\21\u0107\1\u010a\1\0\12\u010a\1\u0108\1\u010b"+
+ "\47\u010a\1\u010b\21\u010a\1\154\1\0\1\u0105\1\u0106\1\154"+
+ "\1\0\4\154\1\0\1\154\1\0\2\154\1\0\6\154"+
+ "\1\0\60\154\1\161\3\0\23\161\6\0\1\161\13\0"+
+ "\1\161\13\0\1\161\4\0\1\161\4\0\1\161\4\0"+
+ "\2\161\4\0\1\335\16\0\1\337\2\0\1\340\63\0"+
+ "\1\u010c\104\0\1\161\3\0\2\161\4\165\6\161\1\165"+
+ "\6\161\6\166\1\161\13\166\1\161\13\166\1\161\4\166"+
+ "\1\161\4\166\1\165\4\166\2\161\1\166\6\0\4\166"+
+ "\6\0\1\166\6\0\6\166\1\0\13\166\1\0\13\166"+
+ "\1\0\4\166\1\0\11\166\2\0\1\166\6\0\4\166"+
+ "\6\0\1\166\6\0\6\166\1\0\7\166\1\u010d\3\166"+
+ "\1\0\13\166\1\0\4\166\1\0\11\166\2\0\1\166"+
+ "\3\0\1\335\4\0\2\u010e\10\0\1\337\2\0\1\340"+
+ "\1\0\6\u010e\1\0\13\u010e\1\0\13\u010e\1\0\4\u010e"+
+ "\1\0\4\u010e\1\0\4\u010e\2\0\1\u010e\6\0\4\171"+
+ "\6\0\1\171\6\0\6\171\1\0\13\171\1\0\13\171"+
+ "\1\0\4\171\1\0\11\171\2\0\1\171\1\173\2\0"+
+ "\1\u010f\1\173\1\0\4\173\1\0\1\173\1\0\2\173"+
+ "\1\0\6\173\1\0\60\173\3\0\1\335\4\0\2\u0110"+
+ "\10\0\1\337\2\0\1\340\1\0\6\u0110\1\0\13\u0110"+
+ "\1\0\13\u0110\1\0\4\u0110\1\0\4\u0110\1\0\4\u0110"+
+ "\2\0\1\u0110\1\173\1\0\1\u010c\1\u010f\1\173\1\0"+
+ "\4\173\1\0\1\173\1\0\2\173\1\0\6\173\1\0"+
+ "\60\173\1\u0111\1\0\10\u0111\1\u0112\2\u0111\1\u0113\47\u0111"+
+ "\1\u0113\21\u0111\1\u0114\1\0\12\u0114\1\u0112\1\u0115\47\u0114"+
+ "\1\u0115\21\u0114\1\173\2\0\1\u010f\1\173\1\0\4\173"+
+ "\1\0\1\173\1\0\1\173\1\u0116\1\0\6\173\1\0"+
+ "\61\173\2\0\1\u010f\1\173\1\0\4\173\1\0\1\173"+
+ "\1\0\1\173\1\u0117\1\0\6\173\1\0\60\173\3\0"+
+ "\1\335\16\0\1\337\2\0\1\u0104\130\0\1\u0118\2\0"+
+ "\1\u0118\75\0\1\u0119\14\0\1\u0119\63\0\2\u011a\52\0"+
+ "\23\u011b\1\u011c\63\u011b\6\0\4\210\6\0\1\210\6\0"+
+ "\6\210\1\0\13\210\1\0\13\210\1\0\4\210\1\0"+
+ "\11\210\2\0\1\210\53\0\1\u011d\5\0\1\u011d\116\0"+
+ "\1\u011e\10\0\1\u011e\4\0\1\213\2\0\1\u011f\1\213"+
+ "\1\0\4\213\1\0\1\213\1\0\2\213\1\0\6\213"+
+ "\1\0\60\213\1\u0120\1\0\10\u0120\1\u0121\2\u0120\1\u0122"+
+ "\47\u0120\1\u0122\21\u0120\1\u0123\1\0\1\u0123\2\u0124\1\u0123"+
+ "\4\u0124\2\u0123\1\u0125\1\u0126\1\u0123\4\u0124\1\u0123\11\u0124"+
+ "\1\u0123\27\u0124\1\u0126\10\u0124\2\u0123\4\u0124\2\u0123\1\u0124"+
+ "\1\217\2\u011b\1\u0127\1\217\1\u011b\4\217\1\u011b\1\217"+
+ "\1\u011b\2\217\1\u011b\3\217\1\u0128\2\217\1\u011b\60\217"+
+ "\1\220\2\0\1\u0129\1\220\1\0\4\220\1\0\1\220"+
+ "\1\0\2\220\1\0\6\220\1\0\60\220\12\u012a\1\u012b"+
+ "\74\u012a\14\u012c\1\u012b\72\u012c\1\224\2\u011b\1\u012d\1\224"+
+ "\1\u011b\4\224\1\u011b\1\224\1\u011b\2\224\1\u011b\3\224"+
+ "\1\u012e\2\224\1\u011b\60\224\1\225\2\0\1\u012f\1\225"+
+ "\1\0\4\225\1\0\1\225\1\0\2\225\1\0\6\225"+
+ "\1\0\60\225\1\u0130\1\0\10\u0130\1\u0131\2\u0130\1\u0132"+
+ "\47\u0130\1\u0132\21\u0130\1\u0133\1\0\1\u0133\2\u0134\1\u0133"+
+ "\4\u0134\2\u0133\1\u0135\1\u0136\1\u0133\4\u0134\1\u0133\11\u0134"+
+ "\1\u0133\27\u0134\1\u0136\10\u0134\2\u0133\4\u0134\2\u0133\1\u0134"+
+ "\2\231\1\0\106\231\1\0\17\231\1\u0137\2\231\1\u0138"+
+ "\61\231\1\234\2\0\1\u0139\1\234\1\0\4\234\1\0"+
+ "\1\234\1\0\2\234\1\0\6\234\1\0\60\234\1\u013a"+
+ "\1\0\10\u013a\1\u013b\2\u013a\1\u013c\47\u013a\1\u013c\21\u013a"+
+ "\1\u013d\1\0\1\u013d\2\u013e\1\u013d\4\u013e\2\u013d\1\u013f"+
+ "\1\u0140\1\u013d\4\u013e\1\u013d\11\u013e\1\u013d\27\u013e\1\u0140"+
+ "\10\u013e\2\u013d\4\u013e\2\u013d\1\u013e\2\240\1\0\106\240"+
+ "\1\0\17\240\1\u0141\2\240\1\u0142\61\240\7\0\1\u0143"+
+ "\77\0\1\250\1\0\12\250\1\0\1\u0144\47\250\1\u0144"+
+ "\21\250\3\0\1\u0145\16\0\1\337\2\0\1\352\61\0"+
+ "\1\250\1\0\3\250\1\252\6\250\1\0\1\u0144\1\250"+
+ "\1\252\6\250\1\252\36\250\1\u0144\37\250\1\u0146\106\250"+
+ "\1\u0147\70\250\1\256\1\0\10\256\1\0\2\256\1\u0148"+
+ "\47\256\1\u0148\22\256\1\0\3\256\1\257\4\256\1\0"+
+ "\2\256\1\u0148\1\256\1\257\6\256\1\257\36\256\1\u0148"+
+ "\37\256\1\u0149\106\256\1\u014a\70\256\12\263\1\0\1\263"+
+ "\1\0\1\u014b\67\263\1\0\13\263\1\0\1\263\1\0"+
+ "\1\u014b\4\263\1\u014c\62\263\1\0\13\263\1\0\1\263"+
+ "\1\0\1\263\1\u014d\66\263\1\u014e\1\263\14\u014f\1\u0150"+
+ "\106\u014f\1\u0150\5\u014f\1\u0151\2\u014f\1\u0152\61\u014f\12\u0153"+
+ "\1\u0154\106\u0153\1\u0154\7\u0153\1\u0155\2\u0153\1\u0156\61\u0153"+
+ "\12\301\1\0\71\301\1\u0157\1\0\13\301\1\0\7\301"+
+ "\1\u0158\61\301\1\u0157\1\0\13\301\1\u0159\74\301\14\305"+
+ "\1\0\67\305\1\u015a\1\0\15\305\1\0\5\305\1\u015b"+
+ "\61\305\1\u015a\1\0\15\305\1\u015c\72\305\12\310\1\0"+
+ "\1\310\1\0\70\310\1\0\13\310\1\0\1\310\1\0"+
+ "\5\310\1\u015d\62\310\1\0\13\310\1\0\1\310\1\0"+
+ "\1\310\1\u015e\66\310\1\0\1\310\14\u015f\1\u0160\106\u015f"+
+ "\1\u0160\5\u015f\1\u0161\2\u015f\1\u0162\61\u015f\12\u0163\1\u0164"+
+ "\106\u0163\1\u0164\7\u0163\1\u0165\2\u0163\1\u0166\61\u0163\12\326"+
+ "\1\0\71\326\1\u0167\1\0\13\326\1\0\7\326\1\u0168"+
+ "\61\326\1\u0167\1\0\13\326\1\u0169\74\326\14\332\1\0"+
+ "\67\332\1\u016a\1\0\15\332\1\0\5\332\1\u016b\61\332"+
+ "\1\u016a\1\0\15\332\1\u016c\72\332\7\0\1\u016d\11\0"+
+ "\1\u016e\3\0\1\u016f\23\0\1\u0170\44\0\1\u0171\25\0"+
+ "\1\u0172\56\0\1\341\2\0\2\u0173\5\0\1\341\6\0"+
+ "\1\341\6\u0173\1\0\13\u0173\1\0\13\u0173\1\0\4\u0173"+
+ "\1\0\4\u0173\1\0\4\u0173\2\0\1\u0173\1\u0174\1\0"+
+ "\3\u0174\1\u0175\4\342\1\u0174\1\0\3\u0174\1\u0175\1\342"+
+ "\1\u0174\1\0\3\u0174\1\u0175\6\342\1\u0174\13\342\1\u0174"+
+ "\13\342\1\u0174\4\342\1\u0176\11\342\2\u0174\1\342\20\0"+
+ "\1\u0177\7\0\1\u0178\73\0\1\345\71\0\105\346\1\u0179"+
+ "\1\346\1\u0174\1\0\3\u0174\1\u0175\4\347\1\u0174\1\0"+
+ "\3\u0174\1\u0175\1\347\1\u0174\1\0\3\u0174\1\u0175\6\347"+
+ "\1\u0174\13\347\1\u0174\13\347\1\u0174\4\347\1\u017a\11\347"+
+ "\2\u0174\1\347\105\350\1\u017b\1\350\65\0\1\351\56\0"+
+ "\1\u0172\53\0\1\u017c\106\0\1\u017d\112\0\4\112\6\0"+
+ "\1\112\6\0\4\112\2\u017e\1\0\13\112\1\0\13\112"+
+ "\1\0\4\112\1\0\11\112\2\0\1\112\6\0\4\112"+
+ "\6\0\1\112\6\0\4\112\1\u017e\1\u017f\1\0\13\112"+
+ "\1\0\13\112\1\0\4\112\1\0\11\112\2\0\1\112"+
+ "\6\0\4\112\6\0\1\112\6\0\6\112\1\0\13\112"+
+ "\1\0\2\112\1\u0180\10\112\1\0\4\112\1\0\6\112"+
+ "\1\u0180\2\112\2\0\1\112\12\364\1\365\3\364\1\0"+
+ "\70\364\14\367\1\365\1\367\1\0\70\367\1\374\1\0"+
+ "\10\374\1\376\2\374\1\u0181\47\374\1\u0181\21\374\1\141"+
+ "\2\374\1\375\1\141\1\374\4\141\1\376\1\141\1\374"+
+ "\1\141\1\137\1\374\6\141\1\374\60\141\1\u0100\1\0"+
+ "\12\u0100\1\376\1\u0182\47\u0100\1\u0182\21\u0100\1\142\2\u0100"+
+ "\1\u0101\1\142\1\u0100\4\142\1\u0100\1\142\1\376\1\142"+
+ "\1\137\1\u0100\6\142\1\u0100\60\142\12\u0107\1\u0108\3\u0107"+
+ "\1\0\70\u0107\14\u010a\1\u0108\1\u010a\1\0\70\u010a\6\0"+
+ "\4\166\6\0\1\166\6\0\6\166\1\0\13\166\1\0"+
+ "\13\166\1\0\4\166\1\0\6\166\1\u0183\2\166\2\0"+
+ "\1\166\6\0\4\u010e\6\0\1\u010e\6\0\6\u010e\1\0"+
+ "\13\u010e\1\0\13\u010e\1\0\4\u010e\1\0\11\u010e\2\0"+
+ "\1\u010e\6\0\4\u0110\6\0\1\u0110\6\0\6\u0110\1\0"+
+ "\13\u0110\1\0\13\u0110\1\0\4\u0110\1\0\11\u0110\2\0"+
+ "\1\u0110\12\u0111\1\u0112\3\u0111\1\0\70\u0111\14\u0114\1\u0112"+
+ "\1\u0114\1\0\70\u0114\1\u0184\2\u0185\1\u0186\1\u0184\1\u0185"+
+ "\4\u0184\1\u0185\1\u0184\1\u0185\2\u0184\1\u0185\6\u0184\1\u0185"+
+ "\56\u0184\1\173\1\u0184\1\u0187\2\u0188\1\u0189\1\u0187\1\u0188"+
+ "\4\u0187\1\u0188\1\u0187\1\u0188\2\u0187\1\u0188\6\u0187\1\u0188"+
+ "\56\u0187\1\173\1\u0187\36\0\1\u018a\35\0\1\u018a\53\0"+
+ "\1\u018b\14\0\1\u018b\73\0\1\u018c\11\0\1\u018c\76\0"+
+ "\1\u018d\20\0\1\u018d\113\0\1\u018e\7\0\1\u018e\3\0"+
+ "\12\u0120\1\u0121\3\u0120\1\0\70\u0120\1\u0123\1\0\12\u0123"+
+ "\1\u0121\1\u018f\47\u0123\1\u018f\22\u0123\1\0\12\u0123\1\u0190"+
+ "\1\u018f\47\u0123\1\u018f\21\u0123\14\0\1\u0191\72\0\14\u0123"+
+ "\1\u0190\1\u0123\1\0\70\u0123\12\u0130\1\u0131\3\u0130\1\0"+
+ "\70\u0130\1\u0133\1\0\12\u0133\1\u0131\1\u0192\47\u0133\1\u0192"+
+ "\22\u0133\1\0\12\u0133\1\u0193\1\u0192\47\u0133\1\u0192\21\u0133"+
+ "\14\0\1\u0194\72\0\14\u0133\1\u0193\1\u0133\1\0\70\u0133"+
+ "\2\231\1\0\4\231\1\u0195\11\231\1\u0196\3\231\1\u0197"+
+ "\23\231\1\u0198\37\231\1\0\32\231\1\u0199\51\231\12\u013a"+
+ "\1\u013b\3\u013a\1\0\70\u013a\1\u013d\1\0\12\u013d\1\u013b"+
+ "\1\u019a\47\u013d\1\u019a\22\u013d\1\0\12\u013d\1\u019b\1\u019a"+
+ "\47\u013d\1\u019a\21\u013d\14\0\1\u019c\72\0\14\u013d\1\u019b"+
+ "\1\u013d\1\0\70\u013d\2\240\1\0\4\240\1\u019d\11\240"+
+ "\1\u019e\3\240\1\u019f\23\240\1\u01a0\37\240\1\0\32\240"+
+ "\1\u01a1\51\240\22\0\1\u01a2\64\0\16\250\1\0\70\250"+
+ "\16\256\1\0\70\256\12\263\1\0\1\263\1\0\1\263"+
+ "\1\u01a3\66\263\1\u014e\10\263\1\u01a4\2\263\1\0\1\263"+
+ "\1\0\1\u014b\3\263\1\u01a5\3\263\1\u01a6\23\263\1\u01a7"+
+ "\33\263\1\0\1\263\12\u01a3\1\0\1\u01a3\1\0\70\u01a3"+
+ "\1\0\1\u01a3\12\u014e\1\0\1\u014e\1\0\1\u01a8\67\u014e"+
+ "\1\0\1\u014e\7\u014f\1\u01a9\4\u014f\1\u0150\4\u014f\1\u01aa"+
+ "\3\u014f\1\u01ab\23\u014f\1\u01ac\51\u014f\1\u0150\20\u014f\1\u01ad"+
+ "\51\u014f\7\u0153\1\u01ae\2\u0153\1\u0154\6\u0153\1\u01af\3\u0153"+
+ "\1\u01b0\23\u0153\1\u01b1\47\u0153\1\u0154\22\u0153\1\u01b2\51\u0153"+
+ "\12\301\1\0\103\301\1\u01b3\2\301\1\0\6\301\1\u01b4"+
+ "\3\301\1\u01b5\23\301\1\u01b6\32\301\1\u0157\1\0\1\301"+
+ "\104\u01b7\1\u01b8\2\u01b7\14\305\1\0\101\305\1\u01b9\4\305"+
+ "\1\0\4\305\1\u01ba\3\305\1\u01bb\23\305\1\u01bc\32\305"+
+ "\1\u015a\1\0\1\305\104\u01bd\1\u01be\2\u01bd\7\310\1\u01bf"+
+ "\2\310\1\0\1\310\1\0\4\310\1\u01c0\3\310\1\u01c1"+
+ "\23\310\1\u01c2\33\310\1\0\1\310\7\u015f\1\u01c3\4\u015f"+
+ "\1\u0160\4\u015f\1\u01c4\3\u015f\1\u01c5\23\u015f\1\u01c6\51\u015f"+
+ "\1\u0160\20\u015f\1\u01c7\51\u015f\7\u0163\1\u01c8\2\u0163\1\u0164"+
+ "\6\u0163\1\u01c9\3\u0163\1\u01ca\23\u0163\1\u01cb\47\u0163\1\u0164"+
+ "\22\u0163\1\u01cc\51\u0163\12\326\1\0\103\326\1\u01cd\2\326"+
+ "\1\0\6\326\1\u01ce\3\326\1\u01cf\23\326\1\u01d0\32\326"+
+ "\1\u0167\1\0\1\326\104\u01d1\1\u01d2\2\u01d1\14\332\1\0"+
+ "\101\332\1\u01d3\4\332\1\0\4\332\1\u01d4\3\332\1\u01d5"+
+ "\23\332\1\u01d6\32\332\1\u016a\1\0\1\332\104\u01d7\1\u01d8"+
+ "\2\u01d7\7\0\1\u01d9\106\0\1\u01da\135\0\1\u01db\50\0"+
+ "\1\u0173\1\0\11\u0173\1\0\6\u0173\1\0\64\u0173\1\u0174"+
+ "\1\0\11\u0174\1\0\6\u0174\1\0\47\u0174\1\0\15\u0174"+
+ "\1\0\3\u0174\1\u0175\5\u0174\1\0\3\u0174\1\u0175\2\u0174"+
+ "\1\0\3\u0174\1\u0175\43\u0174\1\u01dc\14\u0174\20\0\1\u0177"+
+ "\51\0\1\u01dd\34\0\1\u01de\15\0\3\u01de\2\0\1\u01de"+
+ "\11\0\1\u01de\1\0\2\u01de\7\0\1\u01de\2\0\2\u01de"+
+ "\6\0\1\u01de\11\0\1\112\1\u01df\2\112\6\0\1\112"+
+ "\6\0\6\112\1\0\13\112\1\0\13\112\1\0\4\112"+
+ "\1\0\11\112\2\0\1\112\6\0\4\112\6\0\1\112"+
+ "\6\0\6\112\1\0\11\112\1\u01e0\1\112\1\0\1\u01e0"+
+ "\12\112\1\0\4\112\1\0\11\112\2\0\1\112\12\374"+
+ "\1\376\3\374\1\0\70\374\14\u0100\1\376\1\u0100\1\0"+
+ "\70\u0100\6\0\3\166\1\u01e1\6\0\1\166\6\0\6\166"+
+ "\1\0\13\166\1\0\13\166\1\0\4\166\1\0\11\166"+
+ "\2\0\1\166\1\u0184\2\u0185\1\u0186\1\u0184\1\u0185\4\u0184"+
+ "\1\u0185\1\u0184\1\u0185\2\u0184\1\u0185\6\u0184\1\u0185\56\u0184"+
+ "\1\u01e2\1\u0184\105\u0185\1\u01e3\1\u0185\1\u0187\2\u0188\1\u0189"+
+ "\1\u0187\1\u0188\4\u0187\1\u0188\1\u0187\1\u0188\2\u0187\1\u0188"+
+ "\6\u0187\1\u0188\56\u0187\1\u01e2\1\u0187\105\u0188\1\u01e4\1\u0188"+
+ "\41\0\1\u01e5\14\0\1\u01e5\63\0\2\u01e6\103\0\2\u01e7"+
+ "\115\0\1\u01e8\14\0\1\u01e8\63\0\2\u01e9\52\0\14\u0123"+
+ "\1\u0121\1\u0123\1\0\70\u0123\3\0\2\u01ea\1\0\4\u01ea"+
+ "\2\0\1\u0125\1\u01ea\1\0\4\u01ea\1\0\11\u01ea\1\0"+
+ "\40\u01ea\2\0\4\u01ea\2\0\1\u01ea\14\u0133\1\u0131\1\u0133"+
+ "\1\0\70\u0133\3\0\2\u01eb\1\0\4\u01eb\2\0\1\u0135"+
+ "\1\u01eb\1\0\4\u01eb\1\0\11\u01eb\1\0\40\u01eb\2\0"+
+ "\4\u01eb\2\0\1\u01eb\2\231\1\0\4\231\1\u01ec\101\231"+
+ "\1\0\33\231\1\u01ed\50\231\14\u013d\1\u013b\1\u013d\1\0"+
+ "\70\u013d\3\0\2\u01ee\1\0\4\u01ee\2\0\1\u013f\1\u01ee"+
+ "\1\0\4\u01ee\1\0\11\u01ee\1\0\40\u01ee\2\0\4\u01ee"+
+ "\2\0\1\u01ee\2\240\1\0\4\240\1\u01ef\101\240\1\0"+
+ "\33\240\1\u01f0\50\240\2\0\1\u01f1\104\0\7\263\1\u01f2"+
+ "\2\263\1\0\1\263\1\0\1\u014b\67\263\1\0\1\263"+
+ "\12\u014e\1\0\1\u014e\1\0\1\u014e\1\0\70\u014e\7\u014f"+
+ "\1\u01f3\4\u014f\1\u0150\106\u014f\1\u0150\21\u014f\1\u01f4\50\u014f"+
+ "\7\u0153\1\u01f5\2\u0153\1\u0154\106\u0153\1\u0154\23\u0153\1\u01f6"+
+ "\50\u0153\7\301\1\u01f7\2\301\1\0\71\301\1\u0157\1\0"+
+ "\1\301\12\u01f8\1\u01f9\72\u01f8\1\0\1\u01f8\7\305\1\u01fa"+
+ "\4\305\1\0\67\305\1\u015a\1\0\1\305\14\u01fb\1\u01f9"+
+ "\70\u01fb\1\0\1\u01fb\7\310\1\u01fc\2\310\1\0\1\310"+
+ "\1\0\70\310\1\0\1\310\7\u015f\1\u01fd\4\u015f\1\u0160"+
+ "\106\u015f\1\u0160\21\u015f\1\u01fe\50\u015f\7\u0163\1\u01ff\2\u0163"+
+ "\1\u0164\106\u0163\1\u0164\23\u0163\1\u0200\50\u0163\7\326\1\u0201"+
+ "\2\326\1\0\71\326\1\u0167\1\0\1\326\12\u0202\1\u0203"+
+ "\72\u0202\1\0\1\u0202\7\332\1\u0204\4\332\1\0\67\332"+
+ "\1\u016a\1\0\1\332\14\u0205\1\u0203\70\u0205\1\0\1\u0205"+
+ "\37\0\1\u0206\141\0\1\u01dc\34\0\1\u01de\15\0\3\u01de"+
+ "\2\0\1\u01de\11\0\1\u01de\1\0\2\u01de\7\0\1\u01de"+
+ "\1\0\1\u01dd\2\u01de\6\0\1\u01de\11\0\4\112\6\0"+
+ "\1\112\6\0\6\112\1\0\7\112\1\u0207\3\112\1\0"+
+ "\13\112\1\0\4\112\1\0\11\112\2\0\1\112\6\0"+
+ "\4\112\6\0\1\112\6\0\6\112\1\0\6\112\1\u0208"+
+ "\4\112\1\0\13\112\1\0\1\112\1\u0208\2\112\1\0"+
+ "\11\112\2\0\1\112\6\0\4\166\6\0\1\166\6\0"+
+ "\6\166\1\0\6\166\1\u0209\4\166\1\0\6\166\1\u020a"+
+ "\4\166\1\0\4\166\1\0\11\166\2\0\1\166\53\0"+
+ "\1\u020b\5\0\1\u020b\73\0\1\u020c\14\0\1\u020c\66\0"+
+ "\1\u020d\11\0\1\u020d\74\0\1\u020e\11\0\1\u020e\77\0"+
+ "\1\u020f\14\0\1\u020f\23\0\2\231\1\0\34\231\1\u0210"+
+ "\47\231\2\240\1\0\34\240\1\u0211\47\240\14\u014f\1\u0150"+
+ "\22\u014f\1\u0212\47\u014f\12\u0153\1\u0154\24\u0153\1\u0213\47\u0153"+
+ "\12\u01f8\1\u01b7\71\u01f8\1\u0214\1\u01b7\1\u01f8\14\u01fb\1\u01bd"+
+ "\67\u01fb\1\u0215\1\u01bd\1\u01fb\14\u015f\1\u0160\22\u015f\1\u0216"+
+ "\47\u015f\12\u0163\1\u0164\24\u0163\1\u0217\47\u0163\12\u0202\1\u01d1"+
+ "\71\u0202\1\u0218\1\u01d1\1\u0202\14\u0205\1\u01d7\67\u0205\1\u0219"+
+ "\1\u01d7\1\u0205\40\0\1\u021a\54\0\4\112\6\0\1\112"+
+ "\6\0\6\112\1\0\13\112\1\0\4\112\1\u021b\6\112"+
+ "\1\0\4\112\1\0\11\112\2\0\1\112\6\0\4\112"+
+ "\6\0\1\112\6\0\6\112\1\0\3\112\1\u021c\7\112"+
+ "\1\0\4\112\1\u021c\6\112\1\0\4\112\1\0\11\112"+
+ "\2\0\1\112\6\0\4\166\6\0\1\166\6\0\6\166"+
+ "\1\0\11\166\1\u021d\1\166\1\0\13\166\1\0\4\166"+
+ "\1\0\11\166\2\0\1\166\6\0\4\166\6\0\1\166"+
+ "\6\0\6\166\1\0\10\166\1\u021e\2\166\1\0\13\166"+
+ "\1\0\4\166\1\0\11\166\2\0\1\166\54\0\1\u021f"+
+ "\24\0\1\u021f\52\0\1\u0220\20\0\1\u0220\70\0\1\u0221"+
+ "\13\0\1\u0221\53\0\2\u0222\112\0\1\u0223\35\0\1\u0223"+
+ "\12\0\2\231\1\0\35\231\1\u0224\46\231\2\240\1\0"+
+ "\35\240\1\u0225\46\240\14\u014f\1\u0150\23\u014f\1\u0226\46\u014f"+
+ "\12\u0153\1\u0154\25\u0153\1\u0227\46\u0153\12\u01f8\1\u0228\71\u01f8"+
+ "\1\u0214\1\u01b7\1\u01f8\14\u01fb\1\u0229\67\u01fb\1\u0215\1\u01bd"+
+ "\1\u01fb\14\u015f\1\u0160\23\u015f\1\u022a\46\u015f\12\u0163\1\u0164"+
+ "\25\u0163\1\u022b\46\u0163\12\u0202\1\u022c\71\u0202\1\u0218\1\u01d1"+
+ "\1\u0202\14\u0205\1\u022d\67\u0205\1\u0219\1\u01d7\1\u0205\41\0"+
+ "\1\u022e\53\0\4\112\6\0\1\112\6\0\6\112\1\0"+
+ "\13\112\1\0\7\112\1\u022f\3\112\1\0\4\112\1\0"+
+ "\11\112\2\0\1\112\6\0\4\166\6\0\1\166\6\0"+
+ "\6\166\1\0\11\166\1\u0230\1\166\1\0\13\166\1\0"+
+ "\4\166\1\0\11\166\2\0\1\166\6\0\4\166\6\0"+
+ "\1\166\6\0\6\166\1\0\6\166\1\u0231\4\166\1\0"+
+ "\13\166\1\0\4\166\1\0\11\166\2\0\1\166\43\0"+
+ "\1\u0232\11\0\1\u0232\72\0\1\u0233\14\0\1\u0233\71\0"+
+ "\1\u0234\14\0\1\u0234\30\0\2\231\1\0\36\231\1\u0235"+
+ "\45\231\2\240\1\0\36\240\1\u0236\45\240\14\u014f\1\u0150"+
+ "\24\u014f\1\u0237\45\u014f\12\u0153\1\u0154\26\u0153\1\u0238\45\u0153"+
+ "\14\u015f\1\u0160\24\u015f\1\u0239\45\u015f\12\u0163\1\u0164\26\u0163"+
+ "\1\u023a\45\u0163\40\0\1\u023b\54\0\4\112\6\0\1\112"+
+ "\6\0\5\112\1\u023c\1\0\13\112\1\0\13\112\1\0"+
+ "\4\112\1\0\11\112\2\0\1\112\6\0\4\166\6\0"+
+ "\1\166\6\0\6\166\1\0\13\166\1\0\4\166\1\u023d"+
+ "\6\166\1\0\4\166\1\0\11\166\2\0\1\166\6\0"+
+ "\4\166\6\0\1\166\6\0\6\166\1\0\5\166\1\u023e"+
+ "\5\166\1\0\13\166\1\0\4\166\1\0\11\166\2\0"+
+ "\1\166\2\231\1\0\35\231\1\u023f\46\231\2\240\1\0"+
+ "\35\240\1\u0240\46\240\14\u014f\1\u0150\23\u014f\1\u0241\46\u014f"+
+ "\12\u0153\1\u0154\25\u0153\1\u0242\46\u0153\14\u015f\1\u0160\23\u015f"+
+ "\1\u0243\46\u015f\12\u0163\1\u0164\25\u0163\1\u0244\46\u0163\35\0"+
+ "\1\u0245\57\0\4\112\6\0\1\112\6\0\6\112\1\0"+
+ "\5\112\1\u0246\5\112\1\0\13\112\1\0\4\112\1\0"+
+ "\11\112\2\0\1\112\6\0\4\166\6\0\1\166\6\0"+
+ "\6\166\1\0\13\166\1\0\13\166\1\0\4\166\1\0"+
+ "\1\166\1\u0247\7\166\2\0\1\166\2\231\1\0\32\231"+
+ "\1\u0248\51\231\2\240\1\0\32\240\1\u0249\51\240\14\u014f"+
+ "\1\u0150\20\u014f\1\u024a\51\u014f\12\u0153\1\u0154\22\u0153\1\u024b"+
+ "\51\u0153\14\u015f\1\u0160\20\u015f\1\u024c\51\u015f\12\u0163\1\u0164"+
+ "\22\u0163\1\u024d\51\u0163\6\0\4\112\6\0\1\112\6\0"+
+ "\6\112\1\0\7\112\1\u024e\3\112\1\0\13\112\1\0"+
+ "\4\112\1\0\11\112\2\0\1\112\6\0\4\166\6\0"+
+ "\1\166\6\0\6\166\1\0\13\166\1\0\4\166\1\u024f"+
+ "\6\166\1\0\4\166\1\0\11\166\2\0\1\166\6\0"+
+ "\4\112\6\0\1\112\6\0\6\112\1\0\13\112\1\0"+
+ "\13\112\1\0\4\112\1\0\11\112\2\0\1\u0250\6\0"+
+ "\4\166\6\0\1\166\6\0\6\166\1\0\10\166\1\u0251"+
+ "\2\166\1\0\13\166\1\0\4\166\1\0\11\166\2\0"+
+ "\1\166\6\0\4\112\6\0\1\112\6\0\6\112\1\0"+
+ "\5\112\1\u0252\5\112\1\0\13\112\1\0\4\112\1\0"+
+ "\11\112\2\0\1\112\6\0\4\166\6\0\1\166\6\0"+
+ "\6\166\1\0\4\166\1\u0253\6\166\1\0\13\166\1\0"+
+ "\4\166\1\0\11\166\2\0\1\166\6\0\4\112\6\0"+
+ "\1\112\6\0\6\112\1\0\5\112\1\u0254\5\112\1\0"+
+ "\13\112\1\0\4\112\1\0\11\112\2\0\1\112\6\0"+
+ "\4\166\6\0\1\166\6\0\6\166\1\0\5\166\1\u0255"+
+ "\5\166\1\0\13\166\1\0\4\166\1\0\11\166\2\0"+
+ "\1\166\6\0\4\112\6\0\1\112\6\0\6\112\1\0"+
+ "\13\112\1\0\4\112\1\u0256\6\112\1\0\4\112\1\0"+
+ "\11\112\2\0\1\112\6\u0257\4\u0258\6\u0257\1\u0258\5\u0257"+
+ "\1\0\6\u0258\1\u0257\13\u0258\1\u0257\13\u0258\1\u0257\4\u0258"+
+ "\1\u0257\11\u0258\2\u0257\1\u0258\42\0\1\u0259\3\0\1\u025a"+
+ "\7\0\1\u025b\1\u025c\21\0\1\u025d\13\0\4\166\6\0"+
+ "\1\166\6\0\6\166\1\0\4\166\1\u025e\3\166\1\u025f"+
+ "\2\166\1\0\4\166\1\u0260\1\u0261\5\166\1\0\4\166"+
+ "\1\0\6\166\1\u0262\2\166\2\0\1\166\57\0\1\u0263"+
+ "\77\0\1\u0264\115\0\1\u0265\105\0\1\u0266\107\0\1\u0267"+
+ "\35\0\4\166\6\0\1\166\6\0\6\166\1\0\13\166"+
+ "\1\0\5\166\1\u0268\5\166\1\0\4\166\1\0\11\166"+
+ "\2\0\1\166\6\0\4\166\6\0\1\166\6\0\6\166"+
+ "\1\0\12\166\1\u0269\1\0\13\166\1\0\4\166\1\0"+
+ "\11\166\2\0\1\166\6\0\4\166\6\0\1\166\6\0"+
+ "\6\166\1\0\13\166\1\0\5\166\1\u026a\5\166\1\0"+
+ "\4\166\1\0\11\166\2\0\1\166\6\0\4\166\6\0"+
+ "\1\166\6\0\6\166\1\0\13\166\1\0\4\166\1\u026b"+
+ "\6\166\1\0\4\166\1\0\11\166\2\0\1\166\6\0"+
+ "\4\166\6\0\1\166\6\0\6\166\1\0\13\166\1\0"+
+ "\5\166\1\u026c\5\166\1\0\4\166\1\0\11\166\2\0"+
+ "\1\166\44\0\1\u026d\136\0\1\u026e\107\0\1\u026f\67\0"+
+ "\1\u0270\125\0\1\u0271\17\0\4\166\6\0\1\166\6\0"+
+ "\6\166\1\0\6\166\1\u0272\4\166\1\0\13\166\1\0"+
+ "\4\166\1\0\11\166\2\0\1\166\6\0\4\166\6\0"+
+ "\1\166\6\0\6\166\1\0\13\166\1\0\13\166\1\0"+
+ "\4\166\1\0\1\166\1\u0273\7\166\2\0\1\166\6\0"+
+ "\4\166\6\0\1\166\6\0\6\166\1\0\13\166\1\0"+
+ "\13\166\1\0\4\166\1\0\2\166\1\u0274\6\166\2\0"+
+ "\1\166\6\0\4\166\6\0\1\166\6\0\6\166\1\0"+
+ "\13\166\1\0\4\166\1\u0275\6\166\1\0\4\166\1\0"+
+ "\11\166\2\0\1\166\6\0\4\166\6\0\1\166\6\0"+
+ "\6\166\1\0\13\166\1\0\13\166\1\0\4\166\1\0"+
+ "\2\166\1\u0276\6\166\2\0\1\166\46\0\1\u0277\74\0"+
+ "\1\u0278\106\0\1\u0279\116\0\1\u027a\105\0\1\u027b\51\0"+
+ "\4\166\6\0\1\166\6\0\6\166\1\0\10\166\1\u027c"+
+ "\2\166\1\0\13\166\1\0\4\166\1\0\11\166\2\0"+
+ "\1\166\6\0\4\166\6\0\1\166\6\0\5\166\1\u027d"+
+ "\1\0\13\166\1\0\13\166\1\0\4\166\1\0\11\166"+
+ "\2\0\1\166\6\0\4\166\6\0\1\166\6\0\5\166"+
+ "\1\u027e\1\0\13\166\1\0\13\166\1\0\4\166\1\0"+
+ "\11\166\2\0\1\166\6\0\4\166\6\0\1\166\6\0"+
+ "\6\166\1\0\6\166\1\u027f\4\166\1\0\13\166\1\0"+
+ "\4\166\1\0\11\166\2\0\1\166\6\0\4\166\6\0"+
+ "\1\166\6\0\6\166\1\0\5\166\1\u0280\5\166\1\0"+
+ "\13\166\1\0\4\166\1\0\11\166\2\0\1\166\57\0"+
+ "\1\u0281\131\0\1\u0282\52\0\1\u0283\106\0\1\u0284\46\0"+
+ "\4\166\6\0\1\166\6\0\6\166\1\0\13\166\1\0"+
+ "\5\166\1\u0285\5\166\1\0\4\166\1\0\11\166\2\0"+
+ "\1\166\6\0\4\166\6\0\1\166\6\0\6\166\1\0"+
+ "\13\166\1\0\13\166\1\0\4\166\1\0\7\166\1\u0286"+
+ "\1\166\2\0\1\166\6\0\4\166\6\0\1\166\6\0"+
+ "\6\166\1\0\10\166\1\u0287\2\166\1\0\13\166\1\0"+
+ "\4\166\1\0\11\166\2\0\1\166\6\0\4\166\6\0"+
+ "\1\166\6\0\6\166\1\0\10\166\1\u0288\2\166\1\0"+
+ "\13\166\1\0\4\166\1\0\11\166\2\0\1\166\103\0"+
+ "\1\u0289\63\0\1\u0271\131\0\1\u027b\106\0\1\u028a\11\0"+
+ "\4\166\6\0\1\166\6\0\6\166\1\0\13\166\1\0"+
+ "\13\166\1\0\4\166\1\0\10\166\1\u028b\2\0\1\166"+
+ "\6\0\4\166\6\0\1\166\6\0\6\166\1\0\13\166"+
+ "\1\0\6\166\1\u0276\4\166\1\0\4\166\1\0\11\166"+
+ "\2\0\1\166\6\0\4\166\6\0\1\166\6\0\6\166"+
+ "\1\0\13\166\1\0\13\166\1\0\4\166\1\0\10\166"+
+ "\1\u0280\2\0\1\166\6\0\4\166\6\0\1\166\6\0"+
+ "\6\166\1\0\13\166\1\0\13\166\1\0\4\166\1\0"+
+ "\10\166\1\u028c\2\0\1\166\34\0\1\u0271\154\0\1\u028d"+
+ "\12\0\4\166\6\0\1\166\6\0\5\166\1\u0276\1\0"+
+ "\13\166\1\0\13\166\1\0\4\166\1\0\11\166\2\0"+
+ "\1\166\6\0\4\166\6\0\1\166\6\0\6\166\1\0"+
+ "\13\166\1\0\13\166\1\0\4\166\1\0\7\166\1\u028e"+
+ "\1\166\2\0\1\166\56\0\1\u0271\36\0\4\166\6\0"+
+ "\1\166\6\0\6\166\1\0\13\166\1\0\4\166\1\u0276"+
+ "\6\166\1\0\4\166\1\0\11\166\2\0\1\166";
/**
* The transition table of the DFA
@@ -795,45 +797,45 @@
private final static byte YY_ATTRIBUTE[] = {
1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1,
0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0,
- 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 9,
- 1, 9, 1, 1, 9, 9, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9,
- 1, 1, 1, 1, 9, 1, 1, 1, 1, 1, 1, 9, 1, 1, 9, 1,
- 1, 1, 1, 9, 1, 1, 1, 1, 1, 1, 1, 9, 1, 1, 1, 1,
- 1, 1, 1, 9, 1, 1, 1, 1, 1, 1, 9, 1, 1, 1, 1, 1,
- 1, 1, 1, 9, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9, 1, 1, 1, 1,
- 1, 1, 9, 9, 1, 1, 9, 1, 1, 1, 1, 1, 9, 1, 1, 1,
- 1, 9, 1, 1, 1, 1, 9, 9, 1, 9, 3, 3, 3, 3, 3, 3,
- 9, 9, 1, 1, 1, 9, 1, 1, 1, 1, 1, 9, 9, 1, 9, 3,
- 3, 3, 3, 3, 3, 9, 9, 1, 1, 1, 9, 1, 1, 1, 9, 9,
- 1, 1, 0, 1, 0, 9, 1, 2, 1, 2, 1, 1, 0, 0, 0, 9,
- 1, 1, 1, 9, 9, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0,
- 9, 1, 0, 0, 1, 9, 0, 9, 0, 0, 9, 0, 0, 0, 9, 1,
- 1, 0, 1, 0, 9, 0, 0, 0, 1, 1, 0, 0, 0, 0, 9, 0,
- 0, 0, 0, 9, 0, 0, 0, 1, 0, 0, 1, 0, 0, 9, 0, 0,
- 1, 0, 0, 9, 0, 0, 0, 1, 0, 1, 1, 0, 0, 9, 0, 0,
- 0, 1, 0, 1, 1, 0, 0, 9, 9, 9, 0, 9, 9, 1, 1, 1,
- 1, 2, 13, 3, 2, 2, 13, 3, 2, 0, 1, 1, 0, 1, 1, 1,
- 1, 2, 13, 3, 2, 2, 13, 3, 2, 0, 1, 1, 0, 1, 1, 0,
- 9, 9, 9, 0, 0, 1, 1, 1, 9, 0, 0, 13, 9, 13, 9, 9,
- 1, 1, 1, 0, 0, 1, 3, 2, 2, 3, 2, 2, 0, 0, 0, 0,
- 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1,
- 1, 1, 0, 1, 1, 1, 1, 0, 2, 3, 3, 2, 2, 3, 3, 2,
- 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 2, 3, 3,
- 2, 2, 3, 3, 2, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 9,
- 9, 0, 1, 9, 0, 1, 1, 1, 5, 13, 13, 0, 0, 0, 0, 0,
- 0, 0, 1, 1, 0, 1, 1, 9, 1, 3, 2, 3, 2, 1, 0, 9,
- 1, 0, 1, 3, 2, 3, 2, 1, 0, 9, 1, 0, 0, 1, 1, 1,
- 1, 0, 0, 0, 0, 0, 1, 1, 2, 2, 0, 0, 2, 2, 0, 0,
- 0, 1, 1, 1, 1, 0, 0, 0, 9, 9, 1, 1, 2, 2, 1, 1,
- 2, 2, 1, 1, 0, 1, 1, 1, 9, 9, 9, 1, 1, 2, 2, 2,
- 2, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 9, 1, 1, 1, 1,
- 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0,
- 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1,
- 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0,
- 0, 9, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0,
- 0, 1, 1, 0, 1
+ 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0,
+ 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 9, 1,
+ 9, 1, 1, 9, 9, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9, 1,
+ 1, 1, 1, 9, 1, 1, 1, 1, 1, 1, 9, 1, 1, 9, 1, 1,
+ 1, 1, 9, 1, 1, 1, 1, 1, 1, 1, 9, 1, 1, 1, 1, 1,
+ 1, 1, 9, 1, 1, 1, 1, 1, 1, 9, 1, 1, 1, 1, 1, 1,
+ 1, 1, 9, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9, 1, 1, 1, 1, 1,
+ 1, 9, 9, 1, 9, 1, 1, 1, 1, 1, 9, 1, 1, 1, 1, 9,
+ 1, 1, 1, 1, 9, 9, 1, 9, 3, 3, 3, 3, 3, 3, 9, 9,
+ 1, 1, 1, 9, 1, 1, 1, 1, 1, 9, 9, 1, 9, 3, 3, 3,
+ 3, 3, 3, 9, 9, 1, 1, 1, 9, 1, 1, 1, 9, 9, 1, 1,
+ 0, 1, 0, 9, 1, 2, 1, 2, 1, 0, 0, 0, 9, 1, 1, 1,
+ 9, 9, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 1, 0,
+ 0, 1, 9, 0, 9, 0, 0, 9, 0, 0, 0, 9, 1, 1, 0, 1,
+ 0, 9, 0, 0, 0, 1, 1, 0, 0, 0, 0, 9, 0, 0, 0, 0,
+ 9, 0, 0, 0, 1, 0, 0, 1, 0, 0, 9, 0, 0, 1, 0, 0,
+ 9, 0, 0, 0, 1, 0, 1, 1, 0, 0, 9, 0, 0, 0, 1, 0,
+ 1, 1, 0, 0, 9, 9, 9, 0, 9, 9, 1, 1, 1, 1, 2, 13,
+ 3, 2, 2, 13, 3, 2, 0, 1, 1, 0, 1, 1, 1, 1, 2, 13,
+ 3, 2, 2, 13, 3, 2, 0, 1, 1, 0, 1, 1, 0, 9, 9, 9,
+ 0, 0, 1, 1, 1, 9, 0, 0, 13, 9, 13, 9, 9, 1, 1, 1,
+ 0, 0, 1, 3, 2, 2, 3, 2, 2, 0, 0, 0, 0, 0, 0, 1,
+ 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1,
+ 1, 0, 1, 1, 1, 1, 1, 0, 2, 3, 3, 3, 2, 2, 3, 3,
+ 3, 2, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1,
+ 1, 1, 2, 3, 3, 3, 2, 2, 3, 3, 3, 2, 1, 1, 1, 1,
+ 0, 0, 1, 1, 1, 1, 0, 0, 9, 9, 0, 1, 9, 0, 1, 1,
+ 1, 5, 13, 13, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1,
+ 9, 1, 3, 2, 3, 2, 1, 0, 9, 1, 0, 1, 3, 2, 3, 2,
+ 1, 0, 9, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1,
+ 1, 2, 2, 0, 0, 2, 2, 0, 0, 0, 1, 1, 1, 1, 0, 0,
+ 0, 9, 9, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 0, 1, 1,
+ 1, 9, 9, 9, 1, 1, 2, 2, 2, 2, 0, 1, 1, 1, 1, 1,
+ 2, 2, 2, 2, 9, 1, 1, 1, 1, 3, 3, 3, 3, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1,
+ 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0,
+ 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 9, 1, 1, 1, 1, 1,
+ 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1
};
/** the input device */
@@ -1738,10 +1740,10 @@
* @return the unpacked transition table
*/
private static int [] yy_unpack(String packed) {
- int [] trans = new int[31808];
+ int [] trans = new int[31595];
int i = 0; /* index in packed string */
int j = 0; /* index in unpacked array */
- while (i < 8188) {
+ while (i < 8206) {
int count = packed.charAt(i++);
int value = packed.charAt(i++);
value--;
@@ -2073,10 +2075,10 @@
switch (yy_action) {
- case 613:
- case 618:
- case 625:
- case 630:
+ case 622:
+ case 627:
+ case 634:
+ case 639:
{
if(Debug.debugTokenizer)
dump("jsp directive tag name");//$NON-NLS-1$
@@ -2085,8 +2087,8 @@
yybegin(ST_XML_ATTRIBUTE_NAME);
return JSP_DIRECTIVE_NAME;
}
- case 646: break;
- case 588:
+ case 655: break;
+ case 597:
{
if(Debug.debugTokenizer)
dump("XSL processing instruction target");//$NON-NLS-1$
@@ -2094,14 +2096,14 @@
yybegin(ST_XML_PI_ATTRIBUTE_NAME);
return XML_TAG_NAME;
}
- case 647: break;
- case 571:
- case 574:
- case 575:
- case 576:
- case 577:
- case 578:
- case 579:
+ case 656: break;
+ case 580:
+ case 583:
+ case 584:
+ case 585:
+ case 586:
+ case 587:
+ case 588:
{
if(Debug.debugTokenizer)
dump("\nCDATA start");//$NON-NLS-1$
@@ -2109,8 +2111,8 @@
yybegin(ST_CDATA_TEXT);
return XML_CDATA_OPEN;
}
- case 648: break;
- case 563:
+ case 657: break;
+ case 572:
{
if(Debug.debugTokenizer)
dump("jsp:root tag name");//$NON-NLS-1$
@@ -2119,32 +2121,32 @@
yybegin(ST_XML_ATTRIBUTE_NAME);
return JSP_ROOT_TAG_NAME;
}
- case 649: break;
- case 554:
+ case 658: break;
+ case 563:
{
if(Debug.debugTokenizer)
dump("element");//$NON-NLS-1$
yybegin(ST_XML_ELEMENT_DECLARATION);
return XML_ELEMENT_DECLARATION;
}
- case 650: break;
- case 553:
+ case 659: break;
+ case 562:
{
if(Debug.debugTokenizer)
dump("attlist");//$NON-NLS-1$
yybegin(ST_XML_ATTLIST_DECLARATION);
return XML_ATTLIST_DECLARATION;
}
- case 651: break;
- case 552:
+ case 660: break;
+ case 561:
{
if(Debug.debugTokenizer)
dump("doctype");//$NON-NLS-1$
yybegin(ST_XML_DOCTYPE_DECLARATION);
return XML_DOCTYPE_DECLARATION;
}
- case 652: break;
- case 537:
+ case 661: break;
+ case 546:
{
if(Debug.debugTokenizer)
dump("doctype external id");//$NON-NLS-1$
@@ -2152,8 +2154,8 @@
yybegin(ST_XML_DOCTYPE_ID_PUBLIC);
return XML_DOCTYPE_EXTERNAL_ID_PUBLIC;
}
- case 653: break;
- case 536:
+ case 662: break;
+ case 545:
{
if(Debug.debugTokenizer)
dump("doctype external id");//$NON-NLS-1$
@@ -2161,8 +2163,8 @@
yybegin(ST_XML_DOCTYPE_ID_SYSTEM);
return XML_DOCTYPE_EXTERNAL_ID_SYSTEM;
}
- case 654: break;
- case 530:
+ case 663: break;
+ case 539:
{
if(Debug.debugTokenizer)
dump("DHTML processing instruction target");//$NON-NLS-1$
@@ -2171,30 +2173,30 @@
yybegin(ST_DHTML_ATTRIBUTE_NAME);
return XML_TAG_NAME;
}
- case 655: break;
- case 505:
- case 546:
- case 547:
+ case 664: break;
+ case 514:
+ case 555:
+ case 556:
{
return JSP_VBL_QUOTED_CONTENT;
}
- case 656: break;
- case 495:
- case 542:
- case 543:
+ case 665: break;
+ case 504:
+ case 551:
+ case 552:
{
return JSP_EL_QUOTED_CONTENT;
}
- case 657: break;
- case 487:
+ case 666: break;
+ case 496:
{
if(Debug.debugTokenizer)
dump("\nJSP comment close");//$NON-NLS-1$
yybegin(YYINITIAL);
return JSP_COMMENT_CLOSE;
}
- case 658: break;
- case 474:
+ case 667: break;
+ case 483:
{
if (Debug.debugTokenizer) {
System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
@@ -2215,8 +2217,8 @@
fEmbeddedPostState = ST_XML_EQUALS;
return PROXY_CONTEXT;
}
- case 659: break;
- case 473:
+ case 668: break;
+ case 482:
{
if (Debug.debugTokenizer) {
System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
@@ -2237,15 +2239,15 @@
fEmbeddedPostState = ST_XML_EQUALS;
return PROXY_CONTEXT;
}
- case 660: break;
- case 467:
+ case 669: break;
+ case 476:
{
if(Debug.debugTokenizer)
dump("\nCharRef");//$NON-NLS-1$
return XML_CHAR_REFERENCE;
}
- case 661: break;
- case 464:
+ case 670: break;
+ case 473:
{
if(Debug.debugTokenizer)
dump("\ncomment start");//$NON-NLS-1$
@@ -2254,20 +2256,20 @@
yybegin(ST_XML_COMMENT);
return XML_COMMENT_OPEN;
}
- case 662: break;
- case 463:
- case 482:
- case 485:
- case 488:
- case 489:
+ case 671: break;
+ case 472:
case 491:
- case 493:
- case 496:
+ case 494:
+ case 497:
case 498:
- case 499:
- case 501:
- case 503:
- case 506:
+ case 500:
+ case 502:
+ case 505:
+ case 507:
+ case 508:
+ case 510:
+ case 512:
+ case 515:
{
/* JSP comment begun (anywhere)
* A consequence of the start anywhere possibility is that the
@@ -2349,9 +2351,9 @@
return PROXY_CONTEXT;
}
}
- case 663: break;
- case 384:
- case 385:
+ case 672: break;
+ case 381:
+ case 382:
{
if(Debug.debugTokenizer)
dump("XML processing instruction target");//$NON-NLS-1$
@@ -2360,8 +2362,8 @@
yybegin(ST_XML_PI_ATTRIBUTE_NAME);
return XML_TAG_NAME;
}
- case 664: break;
- case 383:
+ case 673: break;
+ case 380:
{
if(Debug.debugTokenizer)
dump("comment end");//$NON-NLS-1$
@@ -2369,16 +2371,16 @@
yybegin(YYINITIAL);
return XML_COMMENT_CLOSE;
}
- case 665: break;
- case 382:
+ case 674: break;
+ case 379:
{
if(Debug.debugTokenizer)
dump("CDATA end");//$NON-NLS-1$
yybegin(fStateStack.pop());
return XML_CDATA_CLOSE;
}
- case 666: break;
- case 381:
+ case 675: break;
+ case 378:
{
yybegin(ST_JSP_VBL);
if(yylength() > 2)
@@ -2391,15 +2393,15 @@
yybegin(YYINITIAL);
return PROXY_CONTEXT;
}
- case 667: break;
- case 380:
+ case 676: break;
+ case 377:
{
if(Debug.debugTokenizer)
dump("\nPEReference");//$NON-NLS-1$
return XML_PE_REFERENCE;
}
- case 668: break;
- case 379:
+ case 677: break;
+ case 376:
{
yybegin(ST_JSP_EL);
if(yylength() > 2)
@@ -2412,27 +2414,27 @@
yybegin(YYINITIAL);
return PROXY_CONTEXT;
}
- case 669: break;
- case 376:
+ case 678: break;
+ case 373:
{
if(Debug.debugTokenizer)
dump("\nEntityRef");//$NON-NLS-1$
return XML_ENTITY_REFERENCE;
}
- case 670: break;
- case 370:
- case 409:
- case 416:
+ case 679: break;
+ case 367:
+ case 407:
+ case 415:
case 422:
- case 426:
- case 430:
- case 434:
- case 439:
- case 444:
- case 447:
- case 451:
- case 455:
- case 460:
+ case 427:
+ case 432:
+ case 437:
+ case 443:
+ case 449:
+ case 453:
+ case 458:
+ case 463:
+ case 469:
{
/* JSP expression begun (anywhere)
* A consequence of the start anywhere possibility is that the
@@ -2502,20 +2504,20 @@
return PROXY_CONTEXT;
}
}
- case 671: break;
- case 369:
- case 408:
- case 415:
+ case 680: break;
+ case 366:
+ case 406:
+ case 414:
case 421:
- case 425:
- case 429:
- case 433:
- case 438:
- case 443:
- case 446:
- case 450:
- case 454:
- case 459:
+ case 426:
+ case 431:
+ case 436:
+ case 442:
+ case 448:
+ case 452:
+ case 457:
+ case 462:
+ case 468:
{
/* JSP declaration begun (anywhere)
* A consequence of the start anywhere possibility is that the
@@ -2585,11 +2587,48 @@
return PROXY_CONTEXT;
}
}
- case 672: break;
- case 368:
+ case 681: break;
+ case 365:
+ case 405:
+ case 413:
+ case 420:
+ case 425:
+ case 430:
+ case 435:
+ case 441:
+ case 447:
+ case 451:
+ case 456:
+ case 461:
+ case 467:
{
+ /* JSP directive begun (anywhere)
+ * A consequence of the start anywhere possibility is that the
+ * incoming state must be checked to see if it's erroneous
+ * due to the order of precedence generated
+ */
+ // begin sanity checks
+ if(yystate() == ST_JSP_CONTENT) {
+ // at the beginning?!
+ yypushback(2);
+ return JSP_CONTENT;
+ }
+ else if(yystate() == ST_BLOCK_TAG_SCAN) {
+ yypushback(3);
+ return doBlockTagScan();
+ }
+ else if(yystate() == ST_XML_COMMENT) {
+ yypushback(3);
+ return scanXMLCommentText();
+ }
+ else if(yystate() == ST_JSP_COMMENT) {
+ yypushback(3);
+ return scanJSPCommentText();
+ }
+ // end sanity checks
fStateStack.push(yystate());
if(fStateStack.peek()==YYINITIAL) {
+ // the simple case, just a declaration out in content
if(Debug.debugTokenizer)
dump("\nJSP directive start");//$NON-NLS-1$
yybegin(ST_JSP_DIRECTIVE_NAME);
@@ -2600,64 +2639,85 @@
System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
}
if(Debug.debugTokenizer)
- dump("JSP directive start");//$NON-NLS-1$
+ dump("JSP declaration start");//$NON-NLS-1$
+ if(yystate() == ST_XML_ATTRIBUTE_VALUE_DQUOTED)
+ fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_DQUOTED;
+ else if(yystate() == ST_XML_ATTRIBUTE_VALUE_SQUOTED)
+ fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_SQUOTED;
+ else if(yystate() == ST_CDATA_TEXT) {
+ fEmbeddedPostState = ST_CDATA_TEXT;
+ fEmbeddedHint = XML_CDATA_TEXT;
+ }
yybegin(ST_JSP_DIRECTIVE_NAME);
assembleEmbeddedContainer(JSP_DIRECTIVE_OPEN, new String[]{JSP_DIRECTIVE_CLOSE, JSP_CLOSE});
if(yystate() == ST_BLOCK_TAG_INTERNAL_SCAN) {
yybegin(ST_BLOCK_TAG_SCAN);
return BLOCK_TEXT;
}
+ // required help for successive embedded regions
+ if(yystate() == ST_XML_TAG_NAME) {
+ fEmbeddedHint = XML_TAG_NAME;
+ fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
+ }
+ else if((yystate() == ST_XML_ATTRIBUTE_NAME || yystate() == ST_XML_EQUALS)) {
+ fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
+ fEmbeddedPostState = ST_XML_EQUALS;
+ }
+ else if(yystate() == ST_XML_ATTRIBUTE_VALUE) {
+ fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;
+ fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
+ }
return PROXY_CONTEXT;
}
}
- case 673: break;
- case 358:
+ case 682: break;
+ case 355:
{
yybegin(ST_JSP_VBL_DQUOTES_END);
return JSP_VBL_QUOTED_CONTENT;
}
- case 674: break;
- case 354:
+ case 683: break;
+ case 351:
{
yybegin(ST_JSP_VBL_SQUOTES_END);
return JSP_VBL_QUOTED_CONTENT;
}
- case 675: break;
- case 352:
+ case 684: break;
+ case 349:
{
fELlevel++;
if(fELlevel == 1) {
return JSP_VBL_OPEN;
}
}
- case 676: break;
- case 342:
+ case 685: break;
+ case 339:
{
yybegin(ST_JSP_EL_DQUOTES_END);
return JSP_EL_QUOTED_CONTENT;
}
- case 677: break;
- case 338:
+ case 686: break;
+ case 335:
{
yybegin(ST_JSP_EL_SQUOTES_END);
return JSP_EL_QUOTED_CONTENT;
}
- case 678: break;
- case 336:
+ case 687: break;
+ case 333:
{
//System.out.println(JSP_EL_CONTENT+ ":[" + yytext() + "]");
return JSP_EL_CONTENT;
}
- case 679: break;
- case 335:
+ case 688: break;
+ case 332:
{
fELlevel++;
if(fELlevel == 1) {
return JSP_EL_OPEN;
}
}
- case 680: break;
- case 332:
+ case 689: break;
+ case 329:
{
int enterState = yystate();
yybegin(ST_JSP_DQUOTED_VBL);
@@ -2672,8 +2732,8 @@
}
return PROXY_CONTEXT;
}
- case 681: break;
- case 331:
+ case 690: break;
+ case 328:
{
int enterState = yystate();
yybegin(ST_JSP_DQUOTED_EL);
@@ -2688,8 +2748,8 @@
}
return PROXY_CONTEXT;
}
- case 682: break;
- case 329:
+ case 691: break;
+ case 326:
{
int enterState = yystate();
yybegin(ST_JSP_SQUOTED_VBL);
@@ -2704,8 +2764,8 @@
}
return PROXY_CONTEXT;
}
- case 683: break;
- case 328:
+ case 692: break;
+ case 325:
{
int enterState = yystate();
yybegin(ST_JSP_SQUOTED_EL);
@@ -2720,8 +2780,8 @@
}
return PROXY_CONTEXT;
}
- case 684: break;
- case 327:
+ case 693: break;
+ case 324:
{
if (Debug.debugTokenizer) {
System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
@@ -2737,15 +2797,15 @@
yybegin(incomingState);
return PROXY_CONTEXT;
}
- case 685: break;
- case 286:
- case 298:
- case 304:
+ case 694: break;
+ case 283:
+ case 295:
+ case 301:
{
return XML_DOCTYPE_INTERNAL_SUBSET;
}
- case 686: break;
- case 274:
+ case 695: break;
+ case 271:
{
String tagName = yytext().substring(1);
// pushback to just after the opening bracket
@@ -2770,8 +2830,8 @@
yybegin(ST_XML_ATTRIBUTE_NAME);
return PROXY_CONTEXT;
}
- case 687: break;
- case 272:
+ case 696: break;
+ case 269:
{
String tagName = yytext().substring(1);
// pushback to just after the opening bracket
@@ -2796,8 +2856,8 @@
yybegin(ST_XML_EQUALS);
return PROXY_CONTEXT;
}
- case 688: break;
- case 270:
+ case 697: break;
+ case 267:
{
yybegin(YYINITIAL);
fEmbeddedHint = UNDEFINED;
@@ -2805,8 +2865,8 @@
dump("empty tag close");//$NON-NLS-1$
return XML_EMPTY_TAG_CLOSE;
}
- case 689: break;
- case 126:
+ case 698: break;
+ case 125:
{
if (Debug.debugTokenizer) {
System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
@@ -2824,8 +2884,8 @@
yybegin(ST_XML_ATTRIBUTE_NAME);
return PROXY_CONTEXT;
}
- case 690: break;
- case 124:
+ case 699: break;
+ case 123:
{
if (Debug.debugTokenizer) {
System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
@@ -2843,16 +2903,16 @@
fEmbeddedPostState = ST_XML_EQUALS;
return PROXY_CONTEXT;
}
- case 691: break;
- case 123:
+ case 700: break;
+ case 122:
+ case 127:
case 128:
- case 129:
- case 276:
- case 280:
- case 281:
+ case 273:
+ case 277:
+ case 278:
+ case 387:
case 390:
- case 393:
- case 472:
+ case 481:
{
if(Debug.debugTokenizer)
dump("attr value");//$NON-NLS-1$
@@ -2861,8 +2921,8 @@
yybegin(ST_XML_ATTRIBUTE_NAME);
return XML_TAG_ATTRIBUTE_VALUE;
}
- case 692: break;
- case 122:
+ case 701: break;
+ case 121:
{
if(Debug.debugTokenizer)
dump("equals");//$NON-NLS-1$
@@ -2871,8 +2931,8 @@
yybegin(ST_XML_ATTRIBUTE_VALUE);
return XML_TAG_ATTRIBUTE_EQUALS;
}
- case 693: break;
- case 121:
+ case 702: break;
+ case 120:
{
if(Debug.debugTokenizer)
dump("attr name");//$NON-NLS-1$
@@ -2881,51 +2941,51 @@
yybegin(ST_XML_EQUALS);
return XML_TAG_ATTRIBUTE_NAME;
}
- case 694: break;
+ case 703: break;
+ case 116:
case 117:
case 118:
- case 119:
- case 271:
- case 389:
- case 471:
- case 511:
- case 512:
- case 531:
- case 532:
- case 550:
- case 551:
- case 564:
+ case 268:
+ case 386:
+ case 480:
+ case 520:
+ case 521:
+ case 540:
+ case 541:
+ case 559:
+ case 560:
case 573:
- case 581:
- case 583:
- case 585:
- case 587:
+ case 582:
case 590:
+ case 592:
+ case 594:
case 596:
- case 597:
- case 598:
case 599:
- case 600:
+ case 605:
case 606:
case 607:
case 608:
case 609:
- case 610:
+ case 615:
case 616:
case 617:
+ case 618:
case 619:
- case 620:
+ case 625:
case 626:
- case 627:
case 628:
case 629:
case 635:
case 636:
case 637:
case 638:
- case 641:
- case 642:
case 644:
+ case 645:
+ case 646:
+ case 647:
+ case 650:
+ case 651:
+ case 653:
{
if(Debug.debugTokenizer)
dump("tag name");//$NON-NLS-1$
@@ -2934,8 +2994,8 @@
yybegin(ST_XML_ATTRIBUTE_NAME);
return XML_TAG_NAME;
}
- case 695: break;
- case 115:
+ case 704: break;
+ case 114:
{
if(Debug.debugTokenizer)
dump("tag close");//$NON-NLS-1$
@@ -2949,56 +3009,56 @@
yybegin(YYINITIAL);
return XML_TAG_CLOSE;
}
- case 696: break;
- case 108:
- case 112:
- case 266:
+ case 705: break;
+ case 107:
+ case 111:
+ case 263:
{
if(Debug.debugTokenizer)
dump("attr value");//$NON-NLS-1$
yybegin(ST_JSP_DIRECTIVE_ATTRIBUTE_NAME);
return XML_TAG_ATTRIBUTE_VALUE;
}
- case 697: break;
- case 107:
+ case 706: break;
+ case 106:
{
if(Debug.debugTokenizer)
dump("equals");//$NON-NLS-1$
yybegin(ST_JSP_DIRECTIVE_ATTRIBUTE_VALUE);
return XML_TAG_ATTRIBUTE_EQUALS;
}
- case 698: break;
- case 106:
+ case 707: break;
+ case 105:
{
if(Debug.debugTokenizer)
dump("attr name");//$NON-NLS-1$
yybegin(ST_JSP_DIRECTIVE_EQUALS);
return XML_TAG_ATTRIBUTE_NAME;
}
- case 699: break;
- case 103:
+ case 708: break;
+ case 102:
{
if(Debug.debugTokenizer)
dump("JSP directive name");//$NON-NLS-1$
yybegin(ST_JSP_DIRECTIVE_NAME_WHITESPACE);
return JSP_DIRECTIVE_NAME;
}
- case 700: break;
+ case 709: break;
+ case 98:
case 99:
case 100:
- case 101:
{
if(Debug.debugTokenizer)
dump("JSP code content");//$NON-NLS-1$
return doScan("%>", false, false, false, JSP_CONTENT, ST_JSP_CONTENT, ST_JSP_CONTENT);
}
- case 701: break;
- case 95:
+ case 710: break;
+ case 94:
+ case 96:
case 97:
- case 98:
- case 256:
+ case 253:
+ case 254:
case 257:
- case 260:
{
if(Debug.debugTokenizer)
dump("DHTML processing instruction attribute value");//$NON-NLS-1$
@@ -3007,8 +3067,8 @@
yybegin(ST_DHTML_ATTRIBUTE_NAME);
return XML_TAG_ATTRIBUTE_VALUE;
}
- case 702: break;
- case 94:
+ case 711: break;
+ case 93:
{
if(Debug.debugTokenizer)
dump("DHTML processing instruction '='");//$NON-NLS-1$
@@ -3017,16 +3077,16 @@
yybegin(ST_DHTML_ATTRIBUTE_VALUE);
return XML_TAG_ATTRIBUTE_EQUALS;
}
- case 703: break;
- case 93:
+ case 712: break;
+ case 92:
{
if(Debug.debugTokenizer)
dump("DHTML processing instruction attribute name");//$NON-NLS-1$
yybegin(ST_DHTML_EQUALS);
return XML_TAG_ATTRIBUTE_NAME;
}
- case 704: break;
- case 91:
+ case 713: break;
+ case 90:
{
if(Debug.debugTokenizer)
dump("DHTML processing instruction end");//$NON-NLS-1$
@@ -3034,10 +3094,10 @@
yybegin(YYINITIAL);
return XML_PI_CLOSE;
}
- case 705: break;
- case 85:
- case 87:
- case 247:
+ case 714: break;
+ case 84:
+ case 86:
+ case 244:
{
if(Debug.debugTokenizer)
dump("XML processing instruction attribute value");//$NON-NLS-1$
@@ -3046,8 +3106,8 @@
yybegin(ST_XML_PI_ATTRIBUTE_NAME);
return XML_TAG_ATTRIBUTE_VALUE;
}
- case 706: break;
- case 84:
+ case 715: break;
+ case 83:
{
if(Debug.debugTokenizer)
dump("XML processing instruction '='");//$NON-NLS-1$
@@ -3056,79 +3116,79 @@
yybegin(ST_XML_PI_ATTRIBUTE_VALUE);
return XML_TAG_ATTRIBUTE_EQUALS;
}
- case 707: break;
- case 50:
- case 201:
- case 202:
- case 205:
- case 215:
- case 216:
- case 219:
- case 220:
+ case 716: break;
+ case 49:
+ case 199:
+ case 200:
+ case 203:
+ case 213:
+ case 214:
+ case 217:
+ case 218:
+ case 360:
case 363:
- case 366:
- case 442:
- case 453:
- case 458:
+ case 446:
+ case 460:
+ case 466:
{
return JSP_VBL_CONTENT;
}
- case 708: break;
- case 43:
- case 180:
- case 181:
- case 184:
- case 194:
- case 195:
- case 198:
- case 199:
- case 333:
+ case 717: break;
+ case 42:
+ case 178:
+ case 179:
+ case 182:
+ case 192:
+ case 193:
+ case 196:
+ case 197:
+ case 330:
+ case 344:
case 347:
- case 350:
+ case 418:
case 419:
- case 420:
- case 432:
- case 437:
+ case 434:
+ case 440:
{
return JSP_EL_CONTENT;
}
- case 709: break;
+ case 718: break;
case 35:
+ case 159:
case 160:
- case 161:
- case 324:
- case 414:
- case 417:
- case 486:
- case 519:
- case 539:
- case 556:
- case 566:
+ case 321:
+ case 412:
+ case 416:
+ case 495:
+ case 528:
+ case 548:
+ case 565:
+ case 575:
{
if(Debug.debugTokenizer)
dump("attlist contentspec");//$NON-NLS-1$
return XML_ATTLIST_DECL_CONTENT;
}
- case 710: break;
+ case 719: break;
case 33:
+ case 152:
case 153:
- case 154:
- case 314:
- case 407:
- case 410:
- case 483:
- case 518:
- case 538:
- case 555:
- case 565:
+ case 311:
+ case 404:
+ case 408:
+ case 492:
+ case 527:
+ case 547:
+ case 564:
+ case 574:
{
if(Debug.debugTokenizer)
dump("elementdecl contentspec");//$NON-NLS-1$
return XML_ELEMENT_DECL_CONTENT;
}
- case 711: break;
+ case 720: break;
case 22:
- case 113:
+ case 112:
{
if(Debug.debugTokenizer)
dump("inappropriate tag name");//$NON-NLS-1$
@@ -3140,16 +3200,16 @@
yybegin(YYINITIAL);
return XML_CONTENT;
}
- case 712: break;
+ case 721: break;
case 18:
- case 105:
+ case 104:
{
if(Debug.debugTokenizer)
dump("white space");//$NON-NLS-1$
yybegin(ST_JSP_DIRECTIVE_ATTRIBUTE_NAME);
return WHITE_SPACE;
}
- case 713: break;
+ case 722: break;
case 5:
case 8:
case 9:
@@ -3175,39 +3235,39 @@
case 34:
case 40:
case 41:
- case 73:
- case 171:
- case 176:
+ case 72:
+ case 169:
+ case 174:
{
if(Debug.debugTokenizer)
dump("white space");//$NON-NLS-1$
return WHITE_SPACE;
}
- case 714: break;
+ case 723: break;
case 0:
- case 57:
- case 60:
- case 62:
+ case 56:
+ case 59:
+ case 61:
+ case 225:
case 227:
- case 229:
+ case 228:
case 230:
case 232:
- case 234:
- case 373:
- case 374:
- case 375:
- case 466:
+ case 370:
+ case 371:
+ case 372:
+ case 475:
{
if(Debug.debugTokenizer)
dump("\nXML content");//$NON-NLS-1$
return XML_CONTENT;
}
- case 715: break;
- case 58:
- case 102:
- case 114:
- case 120:
- case 130:
+ case 724: break;
+ case 57:
+ case 101:
+ case 113:
+ case 119:
+ case 129:
{
if(Debug.debugTokenizer)
dump("\nstart tag open");//$NON-NLS-1$
@@ -3216,72 +3276,71 @@
yybegin(ST_XML_TAG_NAME);
return XML_TAG_OPEN;
}
- case 716: break;
- case 59:
- case 61:
+ case 725: break;
+ case 58:
+ case 60:
+ case 64:
case 65:
case 66:
- case 67:
+ case 70:
case 71:
- case 72:
- case 82:
- case 86:
+ case 81:
+ case 85:
+ case 87:
case 88:
case 89:
- case 90:
- case 92:
- case 96:
- case 104:
+ case 91:
+ case 95:
+ case 103:
+ case 108:
case 109:
case 110:
- case 111:
- case 116:
- case 125:
+ case 115:
+ case 124:
+ case 131:
case 132:
case 133:
case 134:
- case 135:
+ case 136:
case 137:
- case 138:
+ case 139:
case 140:
case 141:
- case 142:
+ case 144:
case 145:
case 146:
- case 147:
+ case 149:
case 150:
case 151:
- case 152:
+ case 156:
case 157:
case 158:
- case 159:
- case 165:
- case 168:
- case 173:
- case 174:
- case 178:
- case 179:
- case 186:
+ case 166:
+ case 171:
+ case 172:
+ case 176:
+ case 177:
+ case 184:
+ case 185:
case 187:
- case 189:
- case 190:
- case 196:
- case 200:
- case 207:
+ case 188:
+ case 194:
+ case 198:
+ case 205:
+ case 206:
case 208:
- case 210:
- case 211:
- case 217:
- case 221:
+ case 209:
+ case 215:
+ case 219:
{
if (Debug.debugTokenizer)
System.out.println("!!!unexpected!!!: \"" + yytext() + "\":" + //$NON-NLS-2$//$NON-NLS-1$
yychar + "-" + (yychar + yylength()));//$NON-NLS-1$
return UNDEFINED;
}
- case 717: break;
+ case 726: break;
+ case 62:
case 63:
- case 64:
{
if(Debug.debugTokenizer)
dump("CDATA text");//$NON-NLS-1$
@@ -3292,46 +3351,46 @@
yybegin(ST_CDATA_END);
return returnedContext;
}
- case 718: break;
- case 68:
- case 188:
- case 191:
- case 209:
- case 212:
+ case 727: break;
+ case 67:
+ case 186:
+ case 189:
+ case 207:
+ case 210:
{
if(Debug.debugTokenizer)
dump("LINE FEED");//$NON-NLS-1$
return WHITE_SPACE;
}
- case 719: break;
+ case 728: break;
+ case 68:
case 69:
- case 70:
{
if(Debug.debugTokenizer)
dump("comment content");//$NON-NLS-1$
return scanXMLCommentText();
}
- case 720: break;
+ case 729: break;
+ case 73:
case 74:
case 75:
case 76:
- case 77:
- case 240:
- case 241:
- case 242:
- case 386:
- case 469:
- case 470:
- case 509:
- case 510:
- case 529:
- case 549:
- case 562:
- case 572:
- case 580:
- case 582:
- case 584:
- case 586:
+ case 237:
+ case 238:
+ case 239:
+ case 383:
+ case 478:
+ case 479:
+ case 518:
+ case 519:
+ case 538:
+ case 558:
+ case 571:
+ case 581:
+ case 589:
+ case 591:
+ case 593:
+ case 595:
{
if(Debug.debugTokenizer)
dump("processing instruction target");//$NON-NLS-1$
@@ -3339,30 +3398,30 @@
yybegin(ST_PI_WS);
return XML_TAG_NAME;
}
- case 721: break;
- case 78:
+ case 730: break;
+ case 77:
{
yybegin(ST_PI_CONTENT);
return WHITE_SPACE;
}
- case 722: break;
+ case 731: break;
+ case 78:
case 79:
case 80:
- case 81:
{
// block scan until close is found
return doScan("?>", false, false, false, XML_PI_CONTENT, ST_XML_PI_TAG_CLOSE, ST_XML_PI_TAG_CLOSE);
}
- case 723: break;
- case 83:
+ case 732: break;
+ case 82:
{
if(Debug.debugTokenizer)
dump("XML processing instruction attribute name");//$NON-NLS-1$
yybegin(ST_XML_PI_EQUALS);
return XML_TAG_ATTRIBUTE_NAME;
}
- case 724: break;
- case 127:
+ case 733: break;
+ case 126:
{
if (Debug.debugTokenizer) {
System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
@@ -3380,8 +3439,8 @@
yybegin(ST_XML_ATTRIBUTE_NAME);
return PROXY_CONTEXT;
}
- case 725: break;
- case 131:
+ case 734: break;
+ case 130:
{
if(Debug.debugTokenizer)
dump("declaration end");//$NON-NLS-1$
@@ -3392,20 +3451,20 @@
yybegin(fStateStack.pop());
return XML_DECLARATION_CLOSE;
}
- case 726: break;
- case 136:
+ case 735: break;
+ case 135:
{
if(Debug.debugTokenizer)
dump("doctype type");//$NON-NLS-1$
yybegin(ST_XML_DOCTYPE_EXTERNAL_ID);
return XML_DOCTYPE_NAME;
}
- case 727: break;
- case 139:
- case 143:
- case 291:
- case 295:
- case 402:
+ case 736: break;
+ case 138:
+ case 142:
+ case 288:
+ case 292:
+ case 399:
{
if(Debug.debugTokenizer)
dump("doctype public reference");//$NON-NLS-1$
@@ -3414,10 +3473,10 @@
yybegin(ST_XML_DOCTYPE_ID_SYSTEM);
return XML_DOCTYPE_EXTERNAL_ID_PUBREF;
}
- case 728: break;
- case 144:
- case 148:
- case 301:
+ case 737: break;
+ case 143:
+ case 147:
+ case 298:
{
if(Debug.debugTokenizer)
dump("doctype system reference");//$NON-NLS-1$
@@ -3426,11 +3485,11 @@
yybegin(ST_XML_DECLARATION_CLOSE);
return XML_DOCTYPE_EXTERNAL_ID_SYSREF;
}
- case 729: break;
- case 149:
- case 307:
- case 311:
- case 405:
+ case 738: break;
+ case 148:
+ case 304:
+ case 308:
+ case 402:
{
if(Debug.debugTokenizer)
dump("elementdecl name");//$NON-NLS-1$
@@ -3439,8 +3498,8 @@
yybegin(ST_XML_ELEMENT_DECLARATION_CONTENT);
return XML_ELEMENT_DECL_NAME;
}
- case 730: break;
- case 155:
+ case 739: break;
+ case 154:
{
if(Debug.debugTokenizer)
dump("elementdecl close");//$NON-NLS-1$
@@ -3451,11 +3510,11 @@
yybegin(fStateStack.pop());
return XML_DECLARATION_CLOSE;
}
- case 731: break;
- case 156:
- case 317:
- case 321:
- case 412:
+ case 740: break;
+ case 155:
+ case 314:
+ case 318:
+ case 410:
{
if(Debug.debugTokenizer)
dump("attlist name");//$NON-NLS-1$
@@ -3464,8 +3523,8 @@
yybegin(ST_XML_ATTLIST_DECLARATION_CONTENT);
return XML_ATTLIST_DECL_NAME;
}
- case 732: break;
- case 162:
+ case 741: break;
+ case 161:
{
if(Debug.debugTokenizer)
dump("attlist close");//$NON-NLS-1$
@@ -3476,22 +3535,22 @@
yybegin(fStateStack.pop());
return XML_DECLARATION_CLOSE;
}
- case 733: break;
- case 166:
- case 167:
+ case 742: break;
+ case 164:
+ case 165:
{
if(Debug.debugTokenizer)
dump("\nJSP comment text");//$NON-NLS-1$
return scanJSPCommentText();
}
- case 734: break;
- case 169:
- case 175:
+ case 743: break;
+ case 167:
+ case 173:
{
return XML_TAG_ATTRIBUTE_VALUE;
}
- case 735: break;
- case 170:
+ case 744: break;
+ case 168:
{
if (Debug.debugTokenizer) {
System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
@@ -3507,30 +3566,30 @@
yybegin(incomingState);
return PROXY_CONTEXT;
}
- case 736: break;
- case 172:
+ case 745: break;
+ case 170:
{
return XML_TAG_ATTRIBUTE_VALUE_SQUOTE;
}
- case 737: break;
- case 177:
+ case 746: break;
+ case 175:
{
return XML_TAG_ATTRIBUTE_VALUE_DQUOTE;
}
- case 738: break;
- case 182:
+ case 747: break;
+ case 180:
{
yybegin(ST_JSP_EL_DQUOTES);
return JSP_EL_DQUOTE;
}
- case 739: break;
- case 183:
+ case 748: break;
+ case 181:
{
yybegin(ST_JSP_EL_SQUOTES);
return JSP_EL_SQUOTE;
}
- case 740: break;
- case 185:
+ case 749: break;
+ case 183:
{
fELlevel--;
if(fELlevel == 0) {
@@ -3539,37 +3598,37 @@
}
return JSP_EL_CONTENT;
}
- case 741: break;
- case 192:
+ case 750: break;
+ case 190:
{
yybegin(ST_JSP_EL);
return JSP_EL_SQUOTE;
}
- case 742: break;
- case 193:
+ case 751: break;
+ case 191:
{
yybegin(ST_JSP_EL);
return JSP_EL_DQUOTE;
}
- case 743: break;
- case 197:
+ case 752: break;
+ case 195:
{
return JSP_EL_CLOSE;
}
- case 744: break;
- case 203:
+ case 753: break;
+ case 201:
{
yybegin(ST_JSP_VBL_DQUOTES);
return JSP_VBL_DQUOTE;
}
- case 745: break;
- case 204:
+ case 754: break;
+ case 202:
{
yybegin(ST_JSP_VBL_SQUOTES);
return JSP_VBL_SQUOTE;
}
- case 746: break;
- case 206:
+ case 755: break;
+ case 204:
{
fELlevel--;
if(fELlevel == 0) {
@@ -3578,25 +3637,25 @@
}
return JSP_VBL_CONTENT;
}
- case 747: break;
- case 213:
+ case 756: break;
+ case 211:
{
yybegin(ST_JSP_VBL);
return JSP_VBL_SQUOTE;
}
- case 748: break;
- case 214:
+ case 757: break;
+ case 212:
{
yybegin(ST_JSP_VBL);
return JSP_VBL_DQUOTE;
}
- case 749: break;
- case 218:
+ case 758: break;
+ case 216:
{
return JSP_VBL_CLOSE;
}
- case 750: break;
- case 222:
+ case 759: break;
+ case 220:
{
if(Debug.debugTokenizer)
dump("\nend tag open");//$NON-NLS-1$
@@ -3605,29 +3664,28 @@
yybegin(ST_XML_TAG_NAME);
return XML_END_TAG_OPEN;
}
- case 751: break;
- case 223:
+ case 760: break;
+ case 221:
{
if(Debug.debugTokenizer)
dump("\nprocessing instruction start");//$NON-NLS-1$
yybegin(ST_PI);
return XML_PI_OPEN;
}
- case 752: break;
- case 224:
- case 235:
- case 313:
- case 323:
- case 334:
- case 339:
+ case 761: break;
+ case 222:
+ case 310:
+ case 320:
+ case 331:
+ case 336:
+ case 340:
case 343:
case 346:
- case 349:
- case 351:
- case 355:
+ case 348:
+ case 352:
+ case 356:
case 359:
case 362:
- case 365:
{
/* JSP scriptlet begun (anywhere)
* A consequence of the start anywhere possibility is that the
@@ -3697,8 +3755,8 @@
return PROXY_CONTEXT;
}
}
- case 753: break;
- case 225:
+ case 762: break;
+ case 223:
{
fStateStack.push(yystate());
if(Debug.debugTokenizer)
@@ -3706,8 +3764,8 @@
yybegin(ST_XML_DECLARATION);
return XML_DECLARATION_OPEN;
}
- case 754: break;
- case 239:
+ case 763: break;
+ case 236:
{
if(Debug.debugTokenizer)
dump("processing instruction end");//$NON-NLS-1$
@@ -3715,16 +3773,16 @@
yybegin(YYINITIAL);
return XML_PI_CLOSE;
}
- case 755: break;
- case 243:
+ case 764: break;
+ case 240:
{
// ended with nothing inside
fEmbeddedHint = UNDEFINED;
yybegin(YYINITIAL);
return XML_PI_CLOSE;
}
- case 756: break;
- case 244:
+ case 765: break;
+ case 241:
{
if(Debug.debugTokenizer)
dump("XML processing instruction end");//$NON-NLS-1$
@@ -3732,8 +3790,8 @@
yybegin(YYINITIAL);
return XML_PI_CLOSE;
}
- case 757: break;
- case 261:
+ case 766: break;
+ case 258:
{
if(Debug.debugTokenizer)
dump("JSP end");//$NON-NLS-1$
@@ -3744,8 +3802,8 @@
yybegin(fStateStack.pop());
return JSP_CLOSE;
}
- case 758: break;
- case 263:
+ case 767: break;
+ case 260:
{
if(Debug.debugTokenizer)
dump("JSP end");//$NON-NLS-1$
@@ -3756,13 +3814,13 @@
yybegin(fStateStack.pop());
return JSP_DIRECTIVE_CLOSE;
}
- case 759: break;
+ case 768: break;
+ case 162:
case 163:
- case 164:
{
return doBlockTagScan();
}
- case 760: break;
+ case 769: break;
default:
if (yy_input == YYEOF && yy_startRead == yy_currentPos) {
yy_atEOF = true;
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.jflex b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.jflex
index 595a44a..32fdb7b 100644
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.jflex
+++ b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.jflex
@@ -1933,6 +1933,7 @@
return PROXY_CONTEXT;
}
}
+
<ST_BLOCK_TAG_INTERNAL_SCAN> {jspCommentStart} {
yybegin(ST_JSP_COMMENT);
assembleEmbeddedContainer(JSP_COMMENT_OPEN, JSP_COMMENT_CLOSE);
@@ -1940,9 +1941,35 @@
yybegin(ST_BLOCK_TAG_SCAN);
return PROXY_CONTEXT;
}
-<YYINITIAL,ST_BLOCK_TAG_INTERNAL_SCAN> {jspDirectiveStart} {
+
+{jspDirectiveStart} {
+ /* JSP directive begun (anywhere)
+ * A consequence of the start anywhere possibility is that the
+ * incoming state must be checked to see if it's erroneous
+ * due to the order of precedence generated
+ */
+ // begin sanity checks
+ if(yystate() == ST_JSP_CONTENT) {
+ // at the beginning?!
+ yypushback(2);
+ return JSP_CONTENT;
+ }
+ else if(yystate() == ST_BLOCK_TAG_SCAN) {
+ yypushback(3);
+ return doBlockTagScan();
+ }
+ else if(yystate() == ST_XML_COMMENT) {
+ yypushback(3);
+ return scanXMLCommentText();
+ }
+ else if(yystate() == ST_JSP_COMMENT) {
+ yypushback(3);
+ return scanJSPCommentText();
+ }
+ // end sanity checks
fStateStack.push(yystate());
if(fStateStack.peek()==YYINITIAL) {
+ // the simple case, just a declaration out in content
if(Debug.debugTokenizer)
dump("\nJSP directive start");//$NON-NLS-1$
yybegin(ST_JSP_DIRECTIVE_NAME);
@@ -1953,16 +1980,39 @@
System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
}
if(Debug.debugTokenizer)
- dump("JSP directive start");//$NON-NLS-1$
+ dump("JSP declaration start");//$NON-NLS-1$
+ if(yystate() == ST_XML_ATTRIBUTE_VALUE_DQUOTED)
+ fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_DQUOTED;
+ else if(yystate() == ST_XML_ATTRIBUTE_VALUE_SQUOTED)
+ fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_SQUOTED;
+ else if(yystate() == ST_CDATA_TEXT) {
+ fEmbeddedPostState = ST_CDATA_TEXT;
+ fEmbeddedHint = XML_CDATA_TEXT;
+ }
yybegin(ST_JSP_DIRECTIVE_NAME);
assembleEmbeddedContainer(JSP_DIRECTIVE_OPEN, new String[]{JSP_DIRECTIVE_CLOSE, JSP_CLOSE});
if(yystate() == ST_BLOCK_TAG_INTERNAL_SCAN) {
yybegin(ST_BLOCK_TAG_SCAN);
return BLOCK_TEXT;
}
+ // required help for successive embedded regions
+ if(yystate() == ST_XML_TAG_NAME) {
+ fEmbeddedHint = XML_TAG_NAME;
+ fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
+ }
+ else if((yystate() == ST_XML_ATTRIBUTE_NAME || yystate() == ST_XML_EQUALS)) {
+ fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
+ fEmbeddedPostState = ST_XML_EQUALS;
+ }
+ else if(yystate() == ST_XML_ATTRIBUTE_VALUE) {
+ fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;
+ fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
+ }
return PROXY_CONTEXT;
}
}
+
+
<ST_JSP_DIRECTIVE_NAME> {Name} {
if(Debug.debugTokenizer)
dump("JSP directive name");//$NON-NLS-1$
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/flexj.cmd b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/flexj.cmd
index df212a6..e010e35 100644
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/flexj.cmd
+++ b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/flexj.cmd
@@ -1,3 +1,3 @@
@echo off
-PATH=%PATH%;c:\jdk1.4.2_09\bin
+PATH=%PATH%;d:\jdk6_01\bin
java -Xmx470000000 -cp d:\JFlex\1.2.2\lib\JFlex.jar;. JFlex.Main JSPTokenizer.jflex -skel skeleton.sse && rm -f JSPTokenizer.java~ JSPTokenizer~ && copy JSPTokenizer.java ..\..\..\..\..\org.eclipse.jst.jsp.core\src\org\eclipse\jst\jsp\core\internal\parser\\internal\JSPTokenizer.java